Cassandra Hands-on Training by Riptano【日本語通訳付】に行ってきた

はや1週間前になってしまいますが、第13回Cassandra勉強会にて「Cassandra Hands-on Training by Riptano【日本語通訳付】に行ってきた!」と題して発表してきたので資料をアップします。

なんと、ジェミナイの本橋様が英語版を作ってNate氏に送ってくださいました!生の声が届いてより良いトレーニングが行われるといいですね。




ユーザ会のサイトもメンテして、ちゃんとそこに集約するようにしなきゃ。。。

ウクピク2010参加記念

はや1ヶ月前のネタになってしまいますが、ウクピク2010に参加した記念に。
僕らの手配した動画班は見事に撮影失敗(汗)してしまったのですが、たまたまグループリーダーのお友達が撮っていてくださったのでそれを拝借して貼り付けておきます。

いやー楽しかったなー。また来年も行きたい!

オレオレGUIの作り方

というわけで(?)、Cassandra勉強会 第8回で発表してきました。
資料はこちら。ハッシュタグは#casstudy8th(無線LANは無かったのであまり書き込みはありませんでしたが)。ソースはこちら。Jetty+Vaadinこれ最強なり、と言うお話です。



意外や意外、半分くらいがWebアプリ作ってますよな人々で、残りの半分くらいが画面のないサーバを作っておられました。なので、割と共感して頂けたのかもしれません。
是非さくっと簡単な管理画面を作れる助けになれば、と思っております。

今日はかなり話がマニアックな方角に進んだせいか、ドタキャンがまあ多かったねーなんて言う話も出ていました。
皆様、出席できない場合はキャンセルしましょうねー。

んで、資料の中でちょこっと話をしましたCassandra+Seasar2(と通信基盤にOverlay Weaver)を使ったMapReduceフレームワーク、早いところ公開できるといいなぁと思っております。
なにそれHadoopと何が違うの?おいしいの?と言われると困るんですが、まあ色々とメリットがあったり無かったりという感じですので、まあおいおいお見せできたらなと思っております。

参加された皆様、お疲れ様でしたー。
#本番は懇親会!#と言うことで、次回もよろしくお願いいたします。

今日踏んだCassandraのバグについてまとめます

twitterで皆様にププッと笑われた(汗)、今日踏んだCassandraのバグについてまとめます。

今日踏んだのはこれ、「Exception auto-bootstrapping two nodes nodes at the same time」
https://issues.apache.org/jira/browse/CASSANDRA-1011
0.7でFIXのつもりらしいです。

環境は0.6.3の4ノードで、データが空っぽの状態で1ノードをマスタっぽく立ち上げ、その後残りの3ノードをgxpで同時に立ち上げると「Bootstrap Token collision」が拝める、と言うわけです(涙)。
(たぶん何らかデータが入っていれば各ノードの起動が本当に同時にはならないので再現しない、様な気がします。)

で、で、で、僕が気になるのは、ノードの起動って皆様どうしてる?というところなんです。
僕が使っているのはGXPというGridShellで、要は1つのshellから指定したノードにログインして、各ノードに同じコマンドが投げられるんです。だから、ノードが1個だろうと100個だろうと同じ1発のコマンドで操作できるわけです。
なので、同時にコマンドが投げられるのなんて当たり前だと思ってたんですが、、、このIssueはMinor扱い。っていうかみんなノードの起動ってどうやってるの?手動でringに入るかどうかを待って、次のノードを起動してるの?そういうもの?と疑問に思ったわけです。

GXPみたいなshellを使わなくても、普通にscreenで次々サーバを変えてCassandraを起動するだけでもこのエラーに遭遇するんですが、、、やっぱりそもそもデータが空っぽでノードを起動するなんて1年に1回くらいじゃね?という感覚なのでしょうか。。。
実験途中には結構あると思うんですが、、、いかがなものでしょうか。

また一つ勉強会で追求してみたいネタが出来ました。なんてね。

Desireユーザになってから早2週間

おや、気づけば2ヶ月近くBlogは放置でした。まあ、いいんです、元々メモ書きなので。

で、twitterでの宣言通り、5年近く使ったauを見捨ててSoftBankのX06HTことDesireに乗り換えましたー!
初めて買った携帯の東京デジタルフォン → 名前変わってJ-Phone → また勝手に名前変わってVodafone →  番号を捨ててauに乗り換え → MNPでSoftBank ←今ここ というわけです。


それにしてもDesire、持ってる人は大絶賛!でも他機種ユーザからは不具合やらSBの力の入らなさ具合などからDISられる不憫な子ですが、実際持ってみるとかなりいいですよ!
iPhoneにはない広大な自由と、きびきび動くUIが本当に触っていて気持ちがいいです。母艦がLinuxでも全然問題ありません。住所録は既存の携帯からはBTで送りましたし、後はGmailの連絡先と勝手にシンクするから頑張って連絡先を整備してある人なら手間暇かからず。
速度については、XperiaやiPhone(最新のiPadを含め)触ると妙にもっさりしてて。。。まあ、これはオーナーの贔屓目ですかね。
次のiPhone4G(?)がどう来るかですが、まあ、この自由度はアップル製品の囲い込みには存在しないので、そもそも比較の対象にならないんですよね。昔のPC98とDOS/Vを比べる、見たいな。ちょっと違うか。


今回はAndroid携帯にしよう!と思って、auの発表を待っていたのですが、出てきたのが斜め上を行き過ぎたあれだったので却下、Xperiaもほんの一瞬だけ候補に挙がりましたが、あのソニエリの「Appleになりたくてしょうがない、けどなれなかった臭」がどうにも気持ちが悪く、やっぱり物欲が働きませんでした。
今のところ、バッテリーの持ちの悪さを除けば全く不満はありません。満充電から丸1日使ったら、寝るときに充電する感じですか。たぶんiPhoneなんかと同じイメージかと思われます。そしてそれも、エネループのKBC-L2AS (eneloop mobile booster)を鞄に入れておけば、緊急時でも全く問題ないレベルです(既存のUSBケーブルで充電OK)。



SBは電波がぁーってのは確かにあるけど、まあそれもiPhoneと同じ範囲だし、と思えば許容範囲だし、むしろ離島でつながりにくい携帯なんて今どき素敵! なにせ「いやー電波が入らなくて」なんていう他キャリアでは10年前から使えなくなった言い訳が使えるんですよ! とまあ、何事もポジティブに考えてみる(笑)

USBケーブルについては、アキモバでポケットシンクあたりを購入すると幸せになれます。これで、家には付属のケーブルを置いてポケットシンクを持ち歩けば、がさばらずいい感じです。

ケースは、iPhoneの時のBELKINをそのまま使ってます(つまり、まだ専用でいいのが出ていない&見つかっていないということです(汗)。
これ、iPhone用なんですがサイズはほとんど一緒なので、ケースとしては使えます。もちろん、ケースに入れたまま写真は撮れませんし、光学スティックも使えません。また液晶の上部もちょっとケースにかかってしまって見にくい箇所があります。でもまあ、4つのボタンはケースの上からそれっぽいところを押せば使えるし、何より手になじんでいるので使ってます。



専用のシリコンケースと比べたメリットデメリットは

  • フリップで液晶も保護されるからジーンズのおしりポケットに入れても大丈夫
  • その分若干分厚い
  • でもその厚さの分、熱はほとんど感じない
  • ボタンも専用じゃないから押しづらいと思う人もいるかも
  • 着信LEDなんかも隠れちゃうよ
  • イヤフォン指したらフリップが閉まらないよ(汗)
なんだかこう見るとデメリットの方が多そうですね。。。(汗)
まあ、物好きな方で、Amazonでも品切れみたいなので入手は難しいのかもしれませんが、もしオーナーの方でケースを探している人がいたら選択肢の一つに加えてみては如何でしょうか。早く専用のいいケース(スーツ)が出てくれることを祈ってます。

さて、せっかくのAndroid携帯、どんなアプリ創ろうか??? 探すと結構何でもあるんだよなー。

inudge.netが面白い!

なにこれブラウザ版DS-10見たい!



適当にいじったらこんな曲(?)が出来たよ。すげー。

Scala Hack-a-thon #2 に行ってきました&LTで話してきました

昨日になりますが、@yuroyoroさん主催の2月20日に行われたScala Hack-a-thon #2 に行ってきました!
会場を提供していただいた日本オラクル様に感謝です!部屋までの誘導はちと考える必要がありましたが、椅子は座りやすいし、ドリンクサーバもあるし、最強のファシリティです!!!ありがとうございました!
今後も勉強会などに積極的に場所を提供していきたいとのことですので、場所に困ったことがあったら相談に乗ってくれると思います。

さて、発火村の内容はといいますと、午前中は yuroyoroさんがScala hack-a-thon #1の資料を使っての解説、午後もみんなで沈黙大会。。。じゃなくて各自黙々とscalaの(?)コーディングと相成りました。

んで、僕は何をしていたかというと、初めてのScalaの題材何にしよう?と思ったんですが、yuroyoroさんの資料とコップ本を片手にTermtterみたいなのをScalaでやってました。
具体的にはtwitterのタイムラインを取ってきて、XMLをパースして、libnotifyに投げる、っていうのを作ってました。LTの寸前にやっと動きましたのでもうちょっと整理したらまた公開します。
コレクションの操作が全く良くわからんので、沈黙を破りyuroyoroさんに色々と質問してしまいました。Scala難しい。。。習うより慣れろでいっぱい書くしかないですね。

ところで、libnotifyってのは、Macで言うところのgrawlみたいなものです。Windowsにも同じようなのはあると思うんですが良くわかりません。。。

$ sudo apt-get install libnotify-bin
でインストールしておくと、
$ notify-send "hello"
で notifyのダイアログが出せるんですが、これをScalaでやりたかったわけです。ついでに言うと、間に合えばこれを出しっぱなしにしてLTやりたかったんですが。。。残念。この試みはまた今度と言うことで。
夕方、途中から突然上がったブラインド越しに美しい夜景を見ながら、LTでちょっと喋ってきました。以下に資料を張っておきます。



本当は、この後GAEの本番にデプロイしてっていうデモをするつもりだったんですが、なんと自分のUbuntuがプロジェクターにつながらず(汗)。結局上の資料をPDFにしてyuroyoroさんのMacを借りてプレゼンしました。いやーホント焦りました。お陰で(?)プレゼンも緊張してしまいなに喋ってるか良くわからなかったかもしれません、ゴメンナサイ。。。

この後、19時からの懇親会では色々とディープな話を伺えて楽しかったです。yuroyoroさんをはじめ、参加者の皆様、ありがとうございましたー!

GoogleAppEngineで動くミニブログシステム書きました

tightbellというAppEngine for Javaで動くミニブログシステムを書きました。コードラボのサンプルとPlayFrameworkのチュートリアルを足してちょっとだけスパイスかけたようなシステムです。ソースを眺めたりローカルで動かしてみて、煮るなり焼くなりして楽しんでみてください。
以上、えーと、詳しくはwikiを参照のこと :)

。。。ではここに書く意味もないので、作った動機など。

その1:コードラボ御礼
楽しかったコードラボの成果物を形にしておかないといかんと思ったのがそもそもの動機です。が、割と1月の週末はまとまった時間がとれず、気づけば約1ヶ月経ってますのであまりインパクトが。。。まあ、いいんです。公開したことに意味があるのです。

その2:AppEngineお勉強 -> play & sienaお勉強
はじめは、AppEngineに特化したStruts的コントローラの薄いやつを書いてblogger.comのテンプレと同じものが使えればいいなーなどと思っていたんですが、DAOとか考えるとやっぱり何か既存のもので楽をしようと色々見ていたら play frameworkがなかなかおもしろそうなんで試してみたんです。もちろんこれから主流になるであろう slim3 でも良かったんですけどね。

さておき、playの一番の(?)売りはCRUDが自動で作れるんで楽してうまーというつもりだったんですが、GAEだとJPAじゃなくてSienaという別のAPIを使わなきゃいかんと判明し。。。
一瞬SienaCRUD書いてやろうかとも思ったんですが、それは手段と目的が入れ替わるバッドノウハウだろおいこらと思いとどまり、がりがり管理画面を自前で作る羽目になりました。
僕は何が嫌いって管理画面を手動で作るのがすごく嫌いなので(面倒なことは嫌いなのです)、この辺でモチベーションが下がります。。。。

まあ、数日いじっていてなんとかplayのvalidateとSienaのAPIにも慣れてきたので、それっぽく関連をつけたりしてBlogシステムになりました。


その他、フレームワークの感想などをつらつらと。

playのほうは、なんだか「JavaでRails」的に煽られていますが、そういう書き方はどうなんだろう。

staticメソッドでがりがり書いていくあたり正直「なんじゃこりゃ」な世界ですが、まあ書いたものがすぐブラウザで確認できるのは快適なことこの上ない。これとGAEのスキーマレスなDataStore + Sienaの素直なAPIが提供してくれる楽さ加減は、Webアプリ初期のDBも無くファイルにストアしながらCGIやらPHPやらを書いていた頃を懐かしく思い出しました。
ただ、本番サーバにアップしてみて初めてわかりましたが、これspinup時間が結構かかるかも。実行時にかなり動的にクラス生成するっぽいですからね。。。

さて、眠くなってきたのでひとまずこの辺で。


あ!最後にもうひとつ、tightbellという名前の思いつきを忘れる前にメモ。
思いつき1:ぐぐっても出てこない名前にしたかった
思いつき2:僕はアウトドア用品のモンベル(mont-bell)が大好き。だからベルを使いたい。
思いつき3:ダイビングベル(例えばこんなの)にはかわいい名前が必要だと思った。あんなに質実剛健なスタイル(たぶんこの辺からtightを連想)だけど水中ではとってもいい音がする。
思いつき4:アムロもブライト艦長もロンドベル隊を率いてたし。全然関係ないけど。


#この間モンベルのサイト不正アクセスされちゃって大変みたいだけど。。。僕のクレジットカード情報も流出したかな。



何かありましたらtwitter/ブログ/tightbellへのコメントなどなど、お待ちしております。

ああしまったー、コメント投稿されてもメールが飛んでこないよ。。。
というわけでまだまだ足りない機能はいっぱいありますが、誰かの参考になれば幸いです。

勉強会ってやっぱ面白いね

今日は朝からとてつもなく久々に勉強会に行ってきました。AppEngineコードラボです。
ハンズオンみたいなのは実質はじめてかな。目的はぐぐる社への潜入・・・じゃなくてAppEngineをJavaでつついてみよう、のコードラボです。列の最後尾で入ったのになんだか山下さんの前の最前列が空いてたのでちゃっかり座ってしまいました(笑)。

誰も何も言わない内から勝手にネットワークつないでつぶやいたり、#gaelabを追いながらちとマニアックな質問を松尾さんにしたり、最後の方はGWTで遊んでみたりしたけどうまく動かず。とりあえずいじったソースはgithubにその場で上げました。 あんま画面とかこる気が無かったので汚いですが、まあ一応動くので良しとしましょう。

以下感想などを:
  • なんか楽しいね!
    • ざっくり言っちゃうと、集まってお題に対してコーディングしてるだけなわけだけど、これがなんか楽しいのね。こんな楽しさ味わえるプログラマって幸せだわホント。
    • 隣にいるのにtwitterでつぶやきながら勧めるのが最近の流行り。。ってこれも楽しいっすね。端から見たら変な人だなこりゃ。
  • 資料が素晴らしス!
    • @dddaisukeさん作の資料が素晴らしすぎて感無量です。お疲れ様でした&ありがとうございました!
  • 勉強会って開催するの難しそう!
    • いろんなレベルの人を集めちゃうと難しいっすね。予め「Javaコーディング出来る人」->「servletAPI直で叩ける人」->「バイトコード読める人(!)」などなどランクで宣言しちゃった方が開催者様側は楽かと思われます。この例だと最後が神過ぎて来られる人数人になっちゃいますが。
  • 椅子が固かった(笑)
    • まあ、コーディングする用の椅子じゃないからねー。
とまあいろいろありますが、勉強会は楽しかったということで。趣味でappengineいじって遊ぼかな、という気になった土曜の午後でした。

Ubuntu9.10 on aspire as1410 でハイバネート

ついにサスペンド問題も解決か!?!?(前とは探し方が何か違ったのか??それともカーネルが上がったお陰??)
via 「How to: Karmic Koala on Acer 1410 / 1810T/ 1810TZ」
http://ubuntuforums.org/showthread.php?p=8409272
Issues: Hibernate/resume:
Issue: after hibernating or suspending, the computer won't wake up properly.
Solution: gksudo gedit /etc/modprobe.d/blacklist.conf to edit the file and add the following (without quotes): "blacklist acer-wmi"

この通りにして1回念のため再起動した後は、今のところサスペンド後、この書き込みが出来るまでは進んでる!
サスペンドからの復旧後にちゃんと無線LANも復旧するし。
これからハイバネートしてお風呂入って、出てきて復旧してたらこれを公開するぞと。

-> 出来たみたい。ハイバネートは相当時間かかるけどね。ふた閉めてのサスペンドも問題ない模様。おぉー、うれしいなー。as1410友の会(んなのがあればだが)のメンバー全員に広めたい気分!

Ubuntu9.10 on aspire as1410 その後

さて、昨年末買っちゃったaspire as1410ですが、現在のワーク環境はこんな感じで落ち着きました。
@ubuntumag vol.02のCDROMからインストールしたUbuntu 9.10 32bit版です(ちなみにオフィスのデスクトップ環境も同じく9.10で、あっちは64bit版)。

Compizも好調なり

で、悩みに悩んでいたハードディスクの不調(起動に異常に時間がかかったり、リブートすると不意にファイルが壊れたり)の原因がようやくはっきりしました。



とつぶやいたところ、@WdWeaverさんが



と教えてくださったのでおおおそうなのか!とNCQについて調べたところ、うちのas1410ではBIOSの設定でSATAのモードをAHCIからIDEに変えたところ、すこぶる機嫌が良くなってくれました。今のところ起動は30秒弱で、ファイルが壊れることも当然ありません(予備的にext3にしておいたのはたぶん関係ないと思います)。NCQの状態はこんな感じ。

west@bang-doll:~$ dmesg | grep depth
[ 1.715228] ata1.00: 488397168 sectors, multi 16: LBA48 NCQ (depth 0/32)
※ググるとよく出てくる「sudo echo 1 > /sys/block/sda/device/queue_depth」という手はうちでは使えませんでした。。。


以前持っていたaspire oneのXPから完全移行を試みているんですが、流石にダイビングコンピュータと繋ぐUSBインターフェイスキットはwineでは動かず(USBのドライバが入らない。。。)、これだけのためにvirtualbox入れないといかんかな、と思っているところです。
あとはPicasaも動くし、SDカードも問題ないし、順調に移行してます。


あ、あとはサスペンド/ハイバネートだねー(涙)

2010年の抱負

2010年元旦の東京は晴れわたり、青い空が広がっています。

ふと、2000年のことを思い出しました。当時僕はまだ静岡市に住んでおり、結婚したてで、Y2Kで揺れた年末から年明け、その後数年続く大きな手術、などなど個人的にもいろいろあった年だったなぁと記憶しています。
それから10年、漫画で夢見た21世紀の未来は未だ来ていませんが、僕はまだぴんぴん生きてるし、念願のダイバーになり、ウクレレもちょっとだけ上達し、会社も少しだけ成長し、自分も少しだけ夢に近づけたのではないかなと自己分析してみたり。

で、2010年。この青い空を見てなにか考えないわけにはいきませんね。新年の抱負、ひねり出してみます。

エンジニアとして:
  • githubでも活用し、頑張って公開すべし。OSS界隈に何か恩返しを。
  • もっともっと周囲の状況に敏感に。感度をさらに高く保つべし。
しごと方面:
  • 予定のロードマップ順守。頑張れ。
  • Scala使いになれるように。そのためにはやはり実戦投入するしかなかろう。
  • GUIのあるコンシューマ向けのコードを何か書いてみる。Webでもいいよ。

あそび方面:
  • ダイビング伊豆100本ノック完遂!
  • 今年は西表島、ハワイ、そしてもちろん久米島にも数回のロングツアーを計画中なので、より安全に潜れるダイバーになること。2011年にDM目指すかな。そのつもりで準備を。
  • ウクレレソロをとりたい曲が何曲か。指が固まらないように頑張ろう。

なんか、当たり前の話ばっかりで面白みがないですね。ま、受けを狙うものじゃないからいいか。

そして最後に、twitterとこのブログを飽きずに続けること!