kqueueでファイルの状態を監視する

ファイルの状態を監視するために、Linuxならinotifyが簡単に使えるのだけれど、最近メインで使っているBSD系だとkqueueを使うしかなさそうなので、頑張って使ってみた。 C: sys/event.h 指定したファイルの変更と削除について監視する。 $ echo "foo" >> foo…

整数に丸める時の注意

C

Pythonだと >>> round(1.5) 2.0 >>> round(2.5) 3.0 >>> round(3.5) 4.0 >>> round(4.5) 5.0 Rだと > round(1.5) [1] 2 > round(2.5) [1] 2 > round(3.5) [1] 4 > round(4.5) [1] 4 round(偶数.5)の結果は実装によって異なるらしい。端数処理 - Wikipediaに…

iPod touchとKindleのディスプレィサイズに適したPDFの作り方

Kindleに広告付きバージョンが登場 | スラド 米Amazon.com、スポンサー付き割引版Kindleを114ドルで発売 -INTERNET Watch Watch 更新:アマゾン、安くなった広告つきKindle を5月3日発売。広告投票アプリAdMashも - Engadget 日本版 Amazon、広告付Kindleを$…

Google Chromeを操作するAppleScriptの中にJavaScriptを書く

前にGoogle ChromeをAppleScriptで操作する - DiaryExceptionという記事を書いたが、1つ見落としていたことがあった。 AppleScriptの中にJavaScriptを書いて、表示中のWebページを加工することが出来る。 Safariを操作するAppleScriptの中にはdo JavaScript…

中国旅行に行ってきた - 書店

2011年3月16日 曇り。 日本の地震及び原発のことは、Webのニュースサイトや中国のケーブルテレビで色々情報を仕入れているが、どうすることも出来ないので頭の片隅に置いておく。 帰国の準備で中国のスーパに色々と買い物に行ったついでに、書店に寄ってみた…

中国旅行に行ってきた - 成都大熊猫繁育研究基地

2011年3月11日 曇り。 バスを2つ乗り継ぎ、大熊猫、つまりパンダの繁育研究基地に見学に行ってきた。入るには58元かかる。800円くらいか。 P1060982 and P1060981 posted by (C)Yoshiyasu 10元を払って、車に乗って移動した。別に車が無くても移動出来るのだ…

AkkaとJythonでMapReduce

前回、JythonでActor modelライブラリの1つであるAkkaを使えることを確認した。 応用として、Akkaを使ってMapReduceを実装することにした。Actor modelは並行処理のためのモデルの1つであり、最近の並行処理といえばMapReduceだからだ。 MapReduceについては…

JythonでActor modelプログラミング

ScalaのActorライブラリを使えば、Actor modelに基づく簡単に並行処理プログラムを書くことが出来る。ところで、Wikipedia日本語版のアクターモデルの項は英語版の古い版の訳のようだが、ところどころおかしい。試しに、2つのActorが数字をカウントするプロ…

RでJSONデータを処理する (rjson)

R

最近は様々なWebサービスがJSON形式のデータを提供している。これはJSONが軽量の書式で、JavaScriptを使ったWebサービスが普及しているから、JSONデータを流通させることでサービス間の連携を容易にするためだと考えられる。 そこで、ある程度のデータを集計…

統計学を自分の道具にするための本

卒論や修論の締切りが近づき、ぎりぎりになって実験のデータの集計や考察をすることになり、「どうすればいいのか分からない」状態では困る。そんな状態で集めたデータでは、そもそも集計するために適しているかさえも分からないだろう。一般的に、実験デー…

555タイマのアプリケーションを考える前に

555 contestが2011年3月1日まで開催中だそうだ。折角なので何か作ろうと(主にシャワー中に)考えを膨らませているが、こんなすごい555ベースのロボットを見てしまっては、生半可な発想では駄目だなと感じて、考えがまとまらない。とにかく、555タイマの復習か…

Arduinoでタイマ/スレッドプログラミング

Arduinoで、定期的に何か動作をさせたい場合がある。そういう場合は、タイマやスレッドを用いることが出来る。勿論、Arduino環境らしく、ライブラリで簡単に使えるようになっている。 タイマ Arduinoでタイマを使うなら、定番はhttp://arduino.cc/playground…

ArduinoをDNSサーバにする (dnsmasqライク版)

ArduinoをDNSサーバにする (プロトタイプ) - DiaryExceptionのfuture workで述べているように、dnsmasqを参考に、Ethernet Shield付属のスロットに挿入されたmicroSDカード内のhostsファイルを読みルーティングテーブルを生成するDNSサーバをArduinoで作った…

ArduinoをDNSサーバにする (プロトタイプ)

ArduinoのEthernetライブラリ(W5100)はTCP通信と共にUDP通信をサポートしている。そこで、試しにDNSサーバを作ってみた。横着をするために、まずは小さいDNSサーバ実装をググって探した。その結果、Mini Fake DNS server « Python recipes « ActiveState Cod…

欲しい!

MacBook Air 11インチ欲しい! 欲しくてたまらない!

Arduino ISPを使ってATmega8/168Pにbootloaderを書き込む

ATMEGA168/328用マイコンボード(I/Oボード): マイコン関連 秋月電子通商-電子部品・ネット通販を3枚ほど買ったので、Arduino互換機を作ることにした。 秋月でチップ:ATmega8とATmega168Pを購入したが、このままではArduinoとして使えない…

Arduino + iPod touchで遠隔スケッチの反響

WebブラウザとArduinoに接続したグラフィックLCDで遠隔スケッチを書いて、まず、Makeにプロモートして記事が掲載された。http://blog.makezine.com/archive/2010/12/remote_drawing_with_graphic_lcd_and.htmlここまでは想定内だったが、意外に反響があった…

WebブラウザとArduinoに接続したグラフィックLCDで遠隔スケッチ

秋月でグラフィックLCD(GLCD、バックライト付グラフィック液晶表示器 128x64ドット SG12864ASLB−GB: ディスプレイ・表示器 秋月電子通商-電子部品・ネット通販)を買ったので、GLCDをArduinoに繋いで、iPod touchで描いた絵を表示させるシ…

コミケでiOSアプリを販売する方法を考える

出来るだけコミケに限らず、手渡しによるiOSアプリの販売手法を考える。Androidアプリであれば、Market未登録の野良アプリでもapkファイルをCD-ROMに収録して販売/配布すれば、購入者各自のAndroid端末でSDカード経由などでインストール可能なので問題ない。…

Arduino+Ethernet Shieldでim.kayac.comにメッセージをポストしてiPod touchで見る

前回(もう1年前だが)、Arduinoの状態をim.kayac.comに送信してiPod touchで確認する - DiaryExceptionでは、PCのPythonスクリプトを仲介にして、Arduinoの状態をメッセージとしてim.kayac.comにポストした。最近ようやくEthernet Shieldを購入し、色々と遊ん…

Google Chromeのデフォルト検索をgoogle.comにする

google.co.jp検索は日本語Webページが優先されてしまう。一部の分野では英語によって記述されたものが一次資料となる場合が多々あり、日本語による記述を優先していると発見が遅れてしまう。また、Google検索の新機能はgoogle.comでまず提供され、google.co.…

ファイルシステム監視システム: inotify

Dropboxを使っていると、指定ディレクトリ以下に含まれるファイルが更新(作成、削除、編集)される度にDropboxを通して複数のファイルシステムで同期される。各PCにインストールされたDropboxのデスクトップソフトがファイルシステムを監視しているらしい。 L…

DeviceMotion Event/WebSocketを使ってiPod touchでArduinoを操作する

WebSocketとDeviceMotion Eventで遊ぶ - DiaryExceptionで、iOS 4.2.1にしたiPod touchでWebSocketとDeviceMotion Eventが使えることが分かったので、HTML/JSを用いたアプリケーション(Webアプリケーション)から離れて、iPod touchからArduinoを操作するアプ…

WebSocketとDeviceMotion Eventで遊ぶ

iPod touch(第2世代と第4世代)のiOSを4.2.1にアップデートした。Safari on iPhone & iPad 4.2: Accelerometer, WebSockets & better HTML5 support | Breaking the Mobile Webによれば、SafariのHTML5対応が強化されたらしい。 試しに遊んでみる。 WebSocket…

GrowlメッセージをNotifoに転送するGrowlプラグイン

Apple Push Notification ServiceをiPod touchで使っていると、何でもこれに集約したくなる。 最近、Twitterの公式アプリがPush Notificationに対応したし、Push Notificationに特化した(自分でメッセージを構築出来る)アプリには、im.kayac.comやNotifo、Bo…

Mac環境とUbuntu環境におけるデスクトップ通知

デスクトップ通知とは、デスクトップで全てのアプリケーションより上のレイヤにバルーンあるいはポップアップの形式でメッセージを表示するものを指す。 結果の出力に時間のかかるプログラムを端末で動かしている場合など、プログラムを動かしている端末から…

RockMeltを使ってみた

先輩からhttp://www.rockmelt.com/のダウンロード権を貰い、早速インストールした。 解説: Netscapeの父、ソーシャルな新ブラウザ「RockMelt」をβリリース - ITmedia NEWS スクリーンショットたくさん: http://journal.mycom.co.jp/news/2010/11/09/006/ ベ…

Paver/SphinxとOMakeでドキュメント生成/公開を自動化する

前提と目標 ドキュメントはreStructuredText(reST)で書き、htmlドキュメントに変換される(ドキュメント生成)。生成されたhtmlドキュメントはリモートサーバにscpで転送され、公開される(ドキュメント公開)。ドキュメントを書くことのみに集中し、ドキュメン…

OpenGLで五芒星を描く

Haskell PlatformにはOpenGLとGLUTのライブラリが入っているので、余計な手間不要ですぐ使える。 OpenGL - HaskellWikiにあるチュートリアルを読めば、使い方はすぐ分かる。 とりあえず、関数型言語らしさがどうとか気にせず、素直に書いた。 import Graphic…

Google ChromeをAppleScriptで操作する

Google Chromeはver.7以降でAppleScriptに対応している。正確に書くと、Google ChromeのプロセスにAppleEventを送ることが出来るようになった。 AppleScriptはAppleScriptエディタを使って書いて実行するか、エディタで書いてosascriptコマンドで実行するこ…