Python東海 第22回勉強会に参加してきました
初めてなの
今回、初めて勉強会で発表してきた。内容は自己紹介。
当日資料をつくろうとしたけど、何を話そうか迷った。けど、初めてPython東海の勉強会に参加したので、せっかくだから自己紹介をした。腹の中に抱えていた就活も含めて話せて良かった。というかすっきりした。
話した内容は
発表した動機
動機は、内向的な性格だから。
喋りたいけど、きっかけが難しい。しゃべりかけるのチョー勇気いる><
参考資料↓(感化された。こちらは、シャイな人に訴えているけど内向的な人向けなきがする)
http://www.slideshare.net/authorNari/dead-or-shy
最後に
主催者の方はじめ参加者の皆様、どうもありがとうございました。
懇親会楽しかったですw
kanazawa.rb #7に参加してきた
はじめに
http://kanazawarb.github.com/meetup/7/
今回のkanazawa.rbは#6に続いて2回目。
申込時に
申込時はmeetupと懇親会の両方参加で申し込んだ。今回は人数が多くてキャンセル待ちだった。
そこで、懇親会の申込期限が切れた後に、懇親会だけでも参加できないかと打診。
ここで制限人数を増やしてもらい、懇親会のみならずmeetupまでも参加できるようにしていただいた。
テーマ
テーマはアジャイル。
アジャイルという言葉は聞いたことはあったけど、それが一体何かは知らなかった。今回の勉強会でアジャイルとは何かを知っれれば良いなと、お話を聞く前は思っていた。
色々メモったけど端折る。
ただ、アジャイルでは振り返るということが重要とのこと。
振り返る上で、以下の3点が重要。
- Keep(良い点)
- Problem(悪い点)
- Try(次回挑戦)
Keepは定着。ProblemはTryから生み出す。
ということで今回のkanazawa.rbを振り返る。
振り返り
Keep(良い点)
- 会場に早く着いた。
Problem(悪い点)
- 申し込みを早めにしとけばよかった
- 名刺入れを持っていなかった
Try(次回挑戦)
- 申し込みは予定が決まり次第早めに
- 名刺は名刺入れに
おわりに
懇親会で楽しくお酒を飲めて気持よく酔えた。(←ここ重要)
Arduinoでシリアル通信する際の注意点
Arduinoとシリアル通信をするには、起動時間のために1.5秒ほど待たなくてはならない。
でないとうまくプログラムが動かなくて、唸ることになる。
検証
検証プログラムとして、Arduino側でシリアル通信で何かの文字列を受け取ったら13番ピンに刺さっているLEDが光るプログラムを製作。
// Arduino用プログラム const int LED = 13; void setup() { Serial.begin(9600); pinMode(LED, OUTPUT); digitalWrite(LED, LOW); } void loop() { if(Serial.available() > 0) { // シリアル通信で何か受信したら digitalWrite(LED, HIGH); } delay(10); // 10[ms]待つ }
手作業で文字列を打つのは面倒なので、pythonスクリプトで文字列を送信。5秒間光らせるだけ。
# coding: utf-8 import serial import time ser = serial.Serial() ser.port = '/dev/cu.usbserial-A7006Qrd' ser.baudrate = 9600 ser.open() ser.write('dummy string') time.sleep(5)
このスクリプを実行すると、5秒間何も起こらないまま終了する。
Mac OSXにlibnfcをインストールしてICタグを読み込む
インストール
準備物
Mac Portsとgccが入っているものとして話を進めます。
まず、libusbをインストール
$ sudo port install libusb $ sudo port install libusb-compat
次にlibnfcのソースコードをダウンロードし、それを解凍
執筆時の最新版はlibnfc-1.6.0-rc1
$ wget http://libnfc.googlecode.com/files/libnfc-1.6.0-rc1.tar.gz
$ tar xvf libnfc-1.6.0-rc1
$ cd libnfc-1.6.0-rc1
最後にビルドとインストール。
configureのパラメータは各自で合わせてください。メモと参考までにパラメータを載せておきます。
$ ./configure LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include -I/opt/local/include/libusb-1.0 -I/Developer/SDKs/MacOSX10.6.sdk/usr/include/pcap" $ make && make install
もしmakeで失敗したら
私の環境ではmake中にエラーが出て、解決中に調べたことをメモ。
参考資料 Google グループ
make中に下記のエラーがでたら
Undefined symbols: "_MIN", referenced from: _pn53x_usb_receive in libnfcdrivers.a(libnfcdrivers_la-pn53x_usb.o) ld: symbol(s) not found collect2: ld returned 1 exit status make[3]: *** [libnfc.la] Error 1 make[2]: *** [all-recursive] Error 1 make[1]: *** [all-recursive] Error 1 make: *** [all] Error 2
libnfc/nfc-internal.hの27行目くらいにこのコードを追加。
#ifndef MAX #define MAX(a,b) (((a) > (b)) ? (a) : (b)) #endif #ifndef MIN #define MIN(a,b) (((a) < (b)) ? (a) : (b)) #endif
makeでジョブ数を増やしてビルドの高速化
はじめに
makeコマンドでは
$ make -j2
ジョブ数を2個に増やすことができ、ビルド時間を短くすることができる。-jNでジョブ数Nとして設定できる。
実験
どれくらい速くなるかベンチマークをとってみた。
環境
まず、ベンチマーク用に程よい大きさのソースを用意。今回はnginx-1.1.15を使った。
以下、ベンチマークの環境。
- MacBook Air
- OS: Mac OS X 10.6.8
- CPU: 1.86 GHz Intel Core 2 Duo
- メモリ: 4GB 1067 MHz DDR3
nginxで普通に./configureするとrewriteモジュールが足りないとエラーをはくので、今回は
$ ./configure --without-http_rewrite_module
とした。
計測
計測にはtimeコマンドを使い、realの値をベンチマークの結果とした。
ジョブ数1-6個で計測した。
計測回数はそれぞれ1回。
まとめ
ジョブ数1個じゃさすがに遅いけど、2個以上だと速い。2個以上のベンチマークは各環境ごとに多く取らないといけない。今回は1回しか取っていないことに注意。
-jNオプションは積極的に使うべき。
コーヒータイムを長くしたいときは-jNオプションを外すべき。