2012年はpythonやってみようかな

投稿日: Leave a comment

会社同期の友人と飲んでいて、pythonの話になった。具体的にどうのこうのというわけではなく、言語のバリエーションの話の流れで。

これまで仕事でプログラムを書くときに C → C++ → Rubyと手を出してきて、それぞれでやりたいこと (DLLで書かれたほかのプログラムを呼び出すのが主) はできているが、特にVISAで測定器との入出力をさせることを考えると、

  • DLLで用意されたIOドライバのRead系関数とWrite系関数の呼び出し
  • Read関数で返ってきたASCIIの数値や配列の文字列を整数型なり浮動小数型に変換する
  • 欲を言えば、パラメータ(セット)を配列で持たせて、イテレータでループさせる

ということをやらせたくなるわけで、そうした場合に C → C++ → Ruby の順で余計なコードが少なくて済む(=わりと簡単に書ける)ようになる。

そういう意味では、Rubyで十分やりたいことは達成できているが、同じオブジェクト指向でDLL呼び出しの仕組みも持っているPythonもちょっとかじってみたい様に思えてきた。

自動測定のプログラムは、2007年くらいからC (gcc) で書き始め、2009年頃からC++ (VC++) に手を出し、2011年はC++で書いたプログラムのメンテナンスをしつつ、新規のプログラムはひたすらRubyで書いてきた。なので、来年はPythonに手を出してみようかなと思い始めた。

仕事的には余計なことに手を出さずに過去の遺産は活用すべし、ってところなんだろうけど、そこはコソコソと自己研鑽。

自販機Wi-Fi

投稿日: Leave a comment

アサヒ飲料のニュースリリースから。FreeMobile WiFiというのがサービスするらしい。

FONとかホットスポットを探すのはセルラーで検索したり電波探したりと意外と面倒なので、こういうのはわかりやすくてよさそう。

どこでも使えるようになるとセルラーのパケホーダイは要らなくなったりするんじゃないかとも思えてくる。ただ2.4GHz帯はかなり混み合ってきているので、更に混雑しないかが心配。

FreeBSD 8.2R-p5

投稿日: Leave a comment

FreeBSD 8.2Rのセキュリティアップデートが12/23に出ていたので、csupして更新作業を実施。

手順は/usr/src/Makefileに書いてあるとおり。KERNCONFは/etc/make.confに書いてあるので、3と4はそれぞれ make buildkernel、make installkernelとするだけでOK。

#  1.  `cd /usr/src'       (or to the directory containing your source tree).
#  2.  `make buildworld'
#  3.  `make buildkernel KERNCONF=YOUR_KERNEL_HERE'     (default is GENERIC).
#  4.  `make installkernel KERNCONF=YOUR_KERNEL_HERE'   (default is GENERIC).
#       [steps 3. & 4. can be combined by using the "kernel" target]
#  5.  `reboot'        (in single user mode: boot -s from the loader prompt).
#  6.  `mergemaster -p'
#  7.  `make installworld'
#  8.  `make delete-old'
#  9.  `mergemaster'                         (you may wish to use -U or -ai).
# 10.  `reboot'
# 11.  `make delete-old-libs' (in case no 3rd party program uses them anymore)

これで、uname -r が 8.2-RELEASE-p5 になった。

LaFonera+をDD-WRT化

投稿日: Leave a comment

使わなくなったFONルータ LaFonera+ を改造。

改造方法は、ここに書いてあるとおり。DD-WRT化、つまりAPやらルータやら好きにいじれるモードに変更。

まずは、必要な材料から。確実に作業するため、シリアルコンソールで制御したかったので、昔買ったUSB-UART変換基板 MFT232RL を引っ張り出してきて、機器内部のUART端子と接続。

  • IO3.3VはFT232RLで生成された3.3Vを使用 (Lafonera+のVddは使わない。)
  • TxDとRxDをお互いつないでクロス接続
  • もちろんGNDも接続

説明書通りTeratermのボーレートを9600bpsに設定して、電源入れてしばらくするとゴニョゴニョメッセージが出てきた。UART接続OK。

ここで、リセットボタンを長押しするとリブートし始める。そのときのメッセージがこんな感じ。

The system is going down NOW !!
Sending SIGTERM to all processes.
Sending SIGKILL to all processes.
Requesting system reboot.
+Ethernet eth0: MAC address 00:18:84:a0:ee:34
IP: 192.168.1.1/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.254

RedBoot(tm) bootstrap and debug environment [ROMRAM]
OpenWrt certified release, version 1.1 - built 22:32:28, May  7 2007

Copyright (C) 2000, 2001, 2002, 2003, 2004 Red Hat, Inc.

Board: FON 2201
RAM: 0x80000000-0x81000000, [0x80040290-0x80fe1000] available
FLASH: 0xa8000000 - 0xa87f0000, 128 blocks of 0x00010000 bytes each.
== Executing boot script in 2.000 seconds - enter ^C to abort
^C
RedBoot> ^C
RedBoot> ^C

とりあえずRedBootのプロンプトで止めないと話が始まらないので、すかさずCtrl-Cを連打。

続けて、機器のIPアドレスを192.168.1.250(LANと同じサブネットでDHCPで配っていないアドレスで適当に)、TFTPサーバに 192.168.1.8 (いつも使っているVista機) を指定して手順通りにコマンド入力。

RedBoot> ip_address -l 192.168.1.250/24 -h 192.168.1.8
IP: 192.168.1.250/255.255.255.0, Gateway: 0.0.0.0
Default server: 192.168.1.8
RedBoot> fis init
About to initialize [format] FLASH image system - continue (y/n)? y
*** Initialize FLASH Image System
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> load -r -v -b 0x80041000 linux.bin
Using default protocol (TFTP)
|
Raw file loaded 0x80041000-0x8066efff, assumed entry at 0x80041000
RedBoot> fis create linux
... Erase from 0xa8030000-0xa865e000: ...................................................................................................
... Program from 0x80041000-0x8066f000 at 0xa8030000: ...................................................................................................
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .
RedBoot> fconfig
Run script at boot: true
Boot script:
.. fis load -b 0x80100000 loader
..  go 0x80100000
Enter script, terminate with empty line
>> fis load -l linux
>> exec
>>
Boot script timeout (1000ms resolution): 2
Use BOOTP for network configuration: false
Gateway IP address: 192.168.1.1
Local IP address: 192.168.1.253
Local IP address mask: 255.255.255.0
Default server IP address: 192.168.1.2
Console baud rate: 9600
GDB connection port: 9000
Force console for special debug messages: false
Network debug at boot time: false
Update RedBoot non-volatile configuration - continue (y/n)? y
... Erase from 0xa87e0000-0xa87f0000: .
... Program from 0x80ff0000-0x81000000 at 0xa87e0000: .

ここでリセット掛けると、デフォルトのIPアドレス 192.168.1.1 で立ち上がるので、コンソールからログインして、ifconfigコマンドでIPアドレスを192.168.1.253 (気が変わって後ろから2つめのアドレスに変更) に設定。それからLAN端子にケーブルをつなぐと、ブラウザからWeb Interface経由でいじれるようになった。

結構電力を吹いているみたいで、AndroidのWiFi Analyzerで見ると最近買ったAPと同じくらいのレベルで見えていた。あと、動作は確認していないけど、40MHzのTurboモードという設定ができるみたいで、Draft N相当のモードになるっぽい。こちらは追々試してみる予定。

基礎工事(2)

投稿日: Leave a comment

工事2週目。基礎の底辺部分ができていて、これから基礎の立ち上がり部分を作るところだった。

基礎工事(2)

逆T時の底辺部分はこんな感じに一応できていた。周りが埋め戻されていてほんの少し顔を出しているだけでよく見えない。

基礎工事2 (ズーム)

工事の看板をみると、今週のはじめに配筋時の検査が終わったよシールが貼ってあった。そういえば、先週見に来たときに監督さんがそんなことを言っていた。

ERI (1)

年内には基礎工事を終わらせて、年始にかけてセメントを寝かせて固めるとのこと。年内もう一回くらい見に行こうかな。

無線LAN AP

投稿日: Leave a comment

ビックカメラの株主優待券があったので、無線LANのAPを買ってみた。

NECのWR8700N。IEEE802.11a/g/nに対応した2.4GHz/5GHzデュアルバンド、300Mbps対応のブロードバンドルータ。

もちろん、ひかり電話のルータがあるので、ルータモードではなくアクセスポイントモードに設定。とりあえずSSIDをいつものに変更して、Xperiaからつないでみた。

今まで使っていたひかり電話ルータのAP機能だと、重いWebやYou tubeの動画を見ると無線LANが切れてしまってあんまり使えなかったけど、新しくして通信中に切れることはなくなった。

ただ、相変わらず無線LAN機能をスリープすると復帰後につながらない(つながりにく?)ので、スリープしない設定にして快適になった。

一応、Android側でリンク速度を見てみたら 65Mbps になっていたので、802.11nでちゃんとつながっているみたい。

このAP、ハイパーロングレンジ モデルということもあって家の中では何処でもつながるようになったのはいいのだけど、向かいのパン屋さんの前でもつながっちゃったので、少し出力制限しなきゃダメかな。

そういえば、RV-230SEに挿してAP化していた無線LANカード SC-32SE が要らなくなった。欲しい人は連絡を。