アンドロイド2.3上で動いているウォークマンアプリ

これで3G通信が出来てiTunesと同期出来ればサンタにお願いしたのに。

Ubuntuにnginxを入れてみた

Nginx+Node.jsの環境が欲しくなったが、とりあえずちょっと遊びたいだけなので、使ってないUbuntu(Let's Note R4)に入れてサーバーにしてみた。

契約しているプロバイダが固定IPなのでこういう時に便利。

Nginxのインストールは

sudo aptitude install nginx

そしてNodeをインストールするときのエラーはここみて解決。

ProductName ハイパフォーマンスHTTPサーバ Nginx入門
Clement Nedelcu
アスキー・メディアワークス / 3150円 ( 2011-04-21 )


次から次と成功する起業相談所

f-bizというのは富士市にある産業支援センターですが、富士はわりと起業が活発だと思う。

たまにセミナーにでたりするけど、スタイルとしては、売りを明確にして、キャッチコピーを考えたり、新聞やテレビなんかを通した全国展開できるようなサポートを得意としているような気がする。つまり陽を当てる系ですね。

なので、成功する起業、企業の三要素が

  1. オンリーワン
  2. 継続する情熱
  3. 行動力

とわかりやすい。

余談だが、最近アマゾンのビジネス本の書評で★5つでレビュー数1という、かなりアレなものが多いなぁと感じる。レビュー数5以内はレートを付けられないとか、アカウント作成日くらい表示して欲しいが、まぁ無理なんだろうな。

ブクログのレーティングのほうが信頼できるかな。

言語実装パターンとタンパク質実装パターン

また面白そうな本が出たなぁと思いながら、手を出すべきか辞めるべきかと目次を見ていたら13章におもしろい節を発見した。

  • 13.1 タンパク質構造の中のパターンを見つける

構文解析器生成系ANTLRの開発者であり、サンフランシスコ大学教授のTerence Parrが贈る、言語実装パターンの解説書。構文解析、意味解析、インタプリタ構築を通じて、言語アプリケーション開発に必要な知識が身につきます。

考えてみるに、生物系ってコンパイラとソースコードがセットになったような変な処理系だよなぁと。

情報系よりの学会に行くと、RNAの立体構造を抽象的な文字列表現だけから予測しようとしして、物理化学的な性質無視してるから精度が出ないんじゃないのとか思う一方、大まかには記号化された抽象表現だけで大体合うから不思議だよなぁと。

タンパク質もそうだしねー。

一方で、(特に低分子の)創薬研究ってのは文字列の並びというよりは、フォントの書体の美しさとか、単語の並びの意味とかそういうあたりに着目するので、プログラム言語的にはLLのソースコード読みながらアセンブラの動きをイメージするような技術が求められるのかなーと。

ビジネスマンが読む子どもが勝ち組になる本

息子の鉄道の本を買うついでに買ってみたけど、得るものがなかった。もらったquoカードで買ったけどちょっと損した気分。

子どもの教育のこと書いてあるのかな?とおもったけど、テレビとかの内容に持論をのせましたというか、テレビ見ないから全然わからん。全般的に子ども関係無いような。

なんというか、見ている社会が、今っていうか将来も現状の延長線上に置いている感があるのが自分の感覚と違いすぎて共感できないというか、自分の子供のころの話だったらわかるけど。コレ読むんだったらドラッカーの後ろの方の著作読んだほうがいいと思う。

同意できる部分

  • 高校生になったらアルバイトをさせて、自分がお金を稼ぐことがどんなに大変か体験させるべき
  • 子どもを餌でつって勉強させてはいけない
  • 高学歴のメリットはネットワーク的に有利ということ

タイトルにちょっと騙されたかなと。鉄道図鑑を握りしめた息子に急かされたのでそのままレジに直行したけどパラパラめくってから決めればよかった。

PUBLICも気になったんだよねー

ProductName パブリック―開かれたネットの価値を最大化せよ
ジェフ・ジャービス
NHK出版 / 1890円 ( 2011-11-23 )


最近のラディッシュ

一ヶ月以上前に撒いたのだけど、まだまだだ。

1324628922

来年はベランダ菜園も増やしていこうかと。リーフ系の野菜を育てておくと便利なので。

UNIXネットワークプログラミング入門

Nodeを触っているのは楽しいんだけど、じゃぁなんか作りたいものがあるのかと言われたらイマイチ思い浮かばない。リアルタイムウェブ〜とか言っておいて(言ってないけど)アイデアが浮かばないってのはまずかろうとソケットプログラミングの本を読んでみることにした。

ソケットプログラミングを覚えるにはいい本だった。サンプルはCで書いてあるんだけど、システムコールとかの低レベルのモジュールはPerlもPythonもほとんど一緒なので、動きがイメージできるようになって良い感じ。本を読み終えたついでにSocketServerのソースコード読んでみたけど、理解度がさらにあがった。

ProductName UNIXネットワークプログラミング入門
雪田 修一
技術評論社 / ?円 ( 2003-06-05 )


本の内容は、

  1. 一対一通信
  2. 一対一非同期通信
  3. 一対多通信
  4. 一対多非同期通信

非同期はselect使っています。8章でデーモンの入門の章だったんだけど、なんでforkを二回するのかわかりやすい説明ではなかったので、ここを読むといいですね。

3章のチャットっぽいものをPythonとPerlで書いてみた

server

import socket

host = socket.gethostbyname('localhost')
port = 50000

soc_waiting = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc_waiting.bind((host, port))
soc_waiting.listen(1)
print "server running at %d\n" % port

(soc, client_addr) = soc_waiting.accept()
soc_waiting.close()

print "Go ahead!"

msg = ""

while True:
    msg = raw_input()
    soc.send(msg)
    msg = soc.recv(512)
    print msg
    if msg == "quit":
        break

soc.close()

Client (Python)

import socket

host = socket.gethostbyname('localhost')
port = 50000

soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
soc.connect((host,port))

print "Wait\n"

while True:
    msg = soc.recv(512)
    print msg
    msg = raw_input()
    soc.send(msg)
    if msg == "quit":
        break

soc.close()

Client (Perl)

#!/usr/bin/env perl

use IO::Socket;

$soc = new IO::Socket::INET("localhost:50000");

die "IO::Socket : $!" unless $soc;

print "Wait\n";

my $msg;

while (1) {
  $soc->recv($msg, 512);
  print $msg,"\n";
  $msg = <STDIN>;
  chomp($msg);
  $soc->send($msg,512);
  last if $msg eq "quit";
}

close($soc);

Unixネットワークプログラミング欲しいなぁ

ProductName UNIXネットワークプログラミング〈Vol.1〉ネットワークAPI:ソケットとXTI
W.リチャード スティーヴンス
ピアソンエデュケーション / 8400円 ( 1999-07 )


おまけ(なんか考えた)

今度静岡でおまちバルがあるように、静岡はバルブーム、バルバブル、バブルボブル。で、バルイベントにはハッシュタグとtwitterでつぶやいて盛り上がろう的な今時なソーシャルな仕掛けも一緒についてくるんだけど、これがまじでつまらない。

ハッシュタグが漢字混じりのひらがなとかあり得ないでしょう。そもそも酒飲むイベントで打たせるか?と。全員がiPhoneに向かってカチャカチャやってるIT系のオフじゃないんだから。あと、飲んでる時にハッシュタグでtweetおいかけるのもめんどくさい。結局送りっぱなしになっちゃうので、だれかがまとめたのを読み返すくらいで、全然リアルタイムじゃないね。

というわけで、バルのtweetシステムに不満があったのでソーシャルでスマホ持ちの我々が使って楽しいシステムを考えてみた。

バルラーにちまちまと端末を打たせないように店の入口に「店なうだらー、ハッシュタグ、ジオコード」が入ったQRコードを貼っとく。これで、カメラで撮るだけでtweetできるようになるので酒が良い感じに入っていてもOK。パンフにつけておいてもいいかも。そっちは宣伝で、人気度調査用にしてもいいかもしれん。

で、サーバー側をリアルタイムウェブで、twitterのストリーム読みながらマップ上にマッピングさせていくと。ジオコードの頻度で明るくするとかでもいいしね。そうすればリアルタイムで楽しい。ユーザーの動向を線でつないでも面白いかも(どういう順番で店をまわってんのかとか)。主催者側にもそういうデータが集まればいろいろ役に立つでしょう。

そういうシステムをNode.jsでつくったら楽しいだろうなぁと思った。

ブロックソートを理解した

データ圧縮に関して書いてある1,2章が面白かった。

個人的にはブロックソートの説明がわかりやすかったので、それだけで満足だった。

人参の葉のふりかけを作った

先日収穫した人参の葉っぱでふりかけを作ってみた。

1324380811

これはなかなか美味しかった。

Cのポインタとか

最近はずっとUNIXネットワークプログラミングの写経をやっているんだけど、PerlとかPythonからプログラミングにに入った僕としてはCって書いてて楽しくないですね。

ProductName UNIXネットワークプログラミング入門
雪田 修一
技術評論社 / ?円 ( 2003-06-05 )


それからポインタの理解がイマイチで、こういったものが何じゃこりゃ?となってしまう。

bind(soc_waiting, (struct sockaddr *)&me, sizeof(me)) == -1)

というわけで、C言語ポインタ完全制覇を読んでみたらこれは良書だった。

ProductName C言語ポインタ完全制覇 (標準プログラマーズライブラリ)
前橋 和弥
技術評論社 / 2394円 ( 2001-01 )


Cのメモリの使い方がかなりイメージできるようになって嬉しい。CとかJavaなんかは中古で良書が安い値段で手に入るのでそれはそれで嬉しいが。

そもそもなんでソケットプログラミングなんてやり始めたかというと、先日の勉強会で、「リアルタイムウェブで作りたいもののイメージがわかないんだよねー」と言ったんだが、結局それってリアルタイムな通信のサンプルをあんまやったことがないから、アイデアが浮かばないんじゃないかと思ったからなんだけど、なぜかシステムコールとかそっち方面に興味がわいたという。ノンブロッキングとか上っ面の概念ははいはい分かりますよーって感じなんだけどOSレベルではどうなんっているんじゃろか?と

ProductName 詳解 Linuxカーネル 第3版
Daniel P. Bovet
オライリー・ジャパン / 6930円 ( 2007-02-26 )


どこまで追いかけるべきかわからんけどね。