ikautak.log

C/C++, Python, CUDA, Android, Linux kernel, Network, etc.

P20 liteをLinuxに繋いでUSBデバッグ

USBでLinux PCに繋いでlsusbを実行しVendor IDとProduct IDを調べる。

$ lsusb
Bus 002 Device 006: ID 12d1:107e Huawei Technologies Co., Ltd.

/etc/udev/rules.d/51-android.rules のファイルを作って以下のようにIDを書く。

SUBSYSTEM=="usb", ATTR{idVendor}=="12d1", ATTR{idProduct}=="107e", "MODE="0666", GROUP="plugdev"

一応Linux PCを再起動する。

端末の設定→端末情報のビルド番号を何回もタップして開発者向けオプションを有効にする。
開発者向けオプションのUSBデバッグをONにする。

$ sudo ./adb devices
List of devices attached
* daemon not running; starting now at tcp:5037
* daemon started successfully
SCV7N18710001536 device

adbで認識された!

c++本

スコット・メイヤーズ

Effective C++ 第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTI)

Effective C++ 第3版 (ADDISON-WESLEY PROFESSIONAL COMPUTI)

新訂版 More Effective C++ (AddisonーWesley professional co)

新訂版 More Effective C++ (AddisonーWesley professional co)

  • 作者: スコット・メイヤーズ,安村通晃,伊賀聡一郎,飯田朱美,永田周一
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/06/29
  • メディア: 単行本(ソフトカバー)
  • 購入: 8人 クリック: 129回
  • この商品を含むブログ (44件) を見る

Effective Modern C++ ―C++11/14プログラムを進化させる42項目

Effective Modern C++ ―C++11/14プログラムを進化させる42項目

設計

オブジェクト指向における再利用のためのデザインパターン

オブジェクト指向における再利用のためのデザインパターン

C++のためのAPIデザイン

C++のためのAPIデザイン

古め

新装版 大規模C++ソフトウェアデザイン (ADDISON-WESLEY PROFESSIONAL COMPUTI) (ADDISON‐WESLEY PROFESSIONAL COMPUTING SERIES)

新装版 大規模C++ソフトウェアデザイン (ADDISON-WESLEY PROFESSIONAL COMPUTI) (ADDISON‐WESLEY PROFESSIONAL COMPUTING SERIES)

  • 作者: ジョン・ラコス,滝沢徹,牧野祐子
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2007/12/14
  • メディア: 単行本(ソフトカバー)
  • 購入: 5人 クリック: 70回
  • この商品を含むブログ (15件) を見る

テンプレート

古め

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

Modern C++ Design―ジェネリック・プログラミングおよびデザイン・パターンを利用するための究極のテンプレート活用術 (C++ In‐Depth Series)

最適化

Optimized C++ ―最適化、高速化のためのプログラミングテクニック

Optimized C++ ―最適化、高速化のためのプログラミングテクニック

古め

Efficient C++パフォーマンスプログラミングテクニック

Efficient C++パフォーマンスプログラミングテクニック

  • 作者: ダブブルカ,デビットメイヒュ,浜田光之,Dov Bulka,David Mayhew,浜田真理
  • 出版社/メーカー: ピアソンエデュケーション
  • 発売日: 2000/07
  • メディア: 単行本
  • 購入: 9人 クリック: 149回
  • この商品を含むブログ (31件) を見る

最新仕様

江添亮の詳説C++17

江添亮の詳説C++17

[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE)

[改訂第3版]C++ポケットリファレンス (POCKET REFERENCE)

標準入力をsplitして、行と列を変換するpythonスクリプト

例えば、以下のような9行を3行ずつsplitして、

f:id:trisection:20160628232037p:plain

このように整形したいとき、bashで一度にうまくやる方法がわからなかったので自作。

f:id:trisection:20160721230201p:plain

split-transpose.py

#!/usr/bin/env python

import sys

def split_transpose(n):
    line = ''
    count = 0

    for l in iter(sys.stdin.readline, ''):
        line += l.rstrip() + '\t'
        count += 1

        if count == n:
            print(line)
            line = ''
            count = 0

    if count != 0:
        print(line)


if __name__ == '__main__':
    if len(sys.argv) > 1:
        split_transpose(int(sys.argv[1]))

デリミタはとりあえずtab固定。

seq 12 を4行ごとにsplit-transposeした結果

$ seq 12 | ./split-transpose.py 4
1   2   3   4   
5   6   7   8   
9   10  11  12  

標準入力をsplitしてpasteするpythonスクリプト

標準入力を指定行数でsplitして、その結果をpaste、 というのを一度にやりたかったけど良い方法がわからなかったのでpythonで自作した。

例えば以下のような9行を3行でsplitして、

f:id:trisection:20160628232037p:plain

このようにpasteする。

f:id:trisection:20160628232041p:plain

#!/usr/bin/env python

import sys

def split_paste(n):
    d = [[] for _ in range(n)]

    for i, l in enumerate(iter(sys.stdin.readline, '')):
        d[i % n].append(l.rstrip())

    for l in d:
        print('\t'.join(l))


if __name__ == '__main__':
    if len(sys.argv) > 1:
        split_paste(int(sys.argv[1]))

デリミタはとりあえずtab固定。

seq 12 を4行ごとにsplit-pasteした結果

$ seq 12 | ./split-paste.py 4
1   5   9
2   6   10
3   7   11
4   8   12