Posted filed under mruby, Ruby.


MobiRubyで書いた”さめがめ”

 去年の春からずっとコツコツと作っているmrubyでiOSアプリが書けるMobiRubyが久々に動く様になったので、1年近くmrubyを触ってきて気になった所を少し書いてみます。

 以下、mrubyと区別しやすくするために、普段みなさんがお使いのRubyをCRubyと書いています。

mrubyって?

 mrubyはMatzが去年発表した省メモリ版のRuby実装です。CRubyの機能を全て実装している訳ではなく、JIS/ISOの規格をベースに設計・実装されたものです。JIS/ISOの規格書は有料なのですが、最終ドラフトがIPAのサイトから確認できます。

 mrubyの経緯や概要は、日経ITProによるMatzへのインタビューが分かりやすく、内部などについては、IIJさん東芝情報システムさんがまとめている記事が参考になります。

 現在の所リリース版はなく、GitHubのmruby/mubyで開発が進められています。報告・議論などはメーリングリストやIRCではなく、IssuesTwitterが使われています。
Read more »

Posted filed under Life, Publications.

 DevLOVE 2012で、「どこでも生きていけるエンジニアを目指した後に見えるもの 」というタイトルで講演してきました。

 この10年間、自分がエンジニアとしてやった来たモノ、目指しているモノをマインドマップに展開して、そのまま話をしました。

 発表資料は、PDFです。(誰かこの解像度のPDFをアップして貼り付けられるWebサービス教えて頂けませんか?)
 
 講演はiPad mini + iThoughtsHDで行いました。いつもはiThoughtsHDでマインドマップを作ってから、Keynoteを使ってプレゼン資料を作るのですが、マインドマップのままの方が話のつながりも分かりやすいかなと思い、TechLIONからこのツールでプレゼンする方法を模索してます。

 このままだと文字が小さくて見えにくい、マイクを持ちながらiPadを操作できないなどの問題が出てきたので、なんかマインドマップでプレゼンするツールでも作ってみようかなと思っています。

[追記 12/16 11:55]
 Togetterでまとめが出来ました。

Posted filed under Idea, iPhone.

 iPad mini + Cellularを朝一番から並んで買いました!軽くてLTEでネットが使えるということで、外に持ち歩き端末としてはApple史上最高な端末です。

 しかし、私は出かけるときには常にコードを書ける環境を持って歩きたいので、結局MacbookProかAirを持って出かけることになってしまいます。
 最近、MBP15に代えたのでちょっと持ち歩きが厳しいなと思っていたので、この際iPad miniでコードを書く環境を構築することにしました。
Read more »

Posted filed under Life.

 夏は暑いのでLogitechの小さなBluetoothヘッドフォンを使って便利だったのですが、やっぱり音が悪いのが気になる。

 もう暑くないのでBOSE QC15に戻したいのですが、Bluetoothに一度慣れてしまうと、ケーブルが邪魔くさい。このケーブルは1.6mもあるし。

 BOSEがBluetooth対応版を出したらすぐにでも買い換えるんですが、そう待っても居られないので、小さなBluetoothレシーバを買って加工することにしました。

 小さいBluetoothレシーバということで、ネットで評判を見つつ、ソニーのMW600を選びました。iOS5からは曲名の表示や、選曲にも対応しています。

 実際に音質などを聞いてみたかったので、ビックカメラに行って確認して買いました。聞くまで心配だったのですが、外で聞く分には十分な音質が確保できていました。レビューなどで気になったボリュームですが、ちょっと使い慣れないうちは操作が難しそうでしたが、たぶん慣れると思うので、さほど気になりませんでした。

 このレシーバは、ヘッドフォンとヘッドセットの両プロファイルをサポートしているので、音楽の聞きつつ、電話が来たら受ける事もできます。その場合、レシーバがマイクとなります。

Read more »

Posted filed under Ruby.

 たまにRubyの話題でも。

 Ruby 1.9で文字コードの自動判別をさせようとおもったら、意外に良いライブラリが見つからなくて苦労しました。
結局ICUをbindingした、charlock_holmesがちゃんと使えたので、メモです。

 OSXで使う場合は、下記の様にしてICUライブラリをインストールします。Linuxでは適当なパッケージシステムを使ってインストールしてください。

curl -O http://download.icu-project.org/files/icu4c/4.8.1.1/icu4c-4_8_1_1-src.tgz
tar xvzf icu4c-4_8_1_1-src.tgz
cd icu/source
./runConfigureICU MacOSX --with-library-bits=64 --disable-samples --enable-static
make
sudo make install

 charlock_holmes自体はgemで提供されています。

gem install charlock_holmes

 文字列をUTF-8に変換する場合は、iconvと組み合わせて下記の様に書きます。

encode = CharlockHolmes::EncodingDetector.detect(str)[:encoding]
str.encode("UTF-8", encode)

【変更 2012/1/6 19:37】
コメントを頂いたので、iconvからString#encodeに切り換えました。

【変更 2012/1/6 18:52】
ICUのバージョンを4.8.1.1に上げました。

Posted filed under TitaniumMobile.

 この記事は、@astronaughtsさんの「Titanium Advent Calendar 2011」企画で書いています。

 2011年もTitnium Mobileを使って頂きありがとうございました!まだ使ってない方は、この年末のお休みにでも、ぜひ試してみてください。来年は、日本法人設立など前半から大きな動きがあると思いますので、来年も引き続きよろしくお願いします。

 さて、本題ですが、ソケット通信の話になります。Titanium Mobile(以下Ti)では1.7からTCP通信の機能が充実しました。

 いままでTiの通信と言えばHTTPでしたが、これからはTCPソケットを使って、色々なサービスと通信することができるようになりました。

 ソケットと同時に、Tiでバイナリを扱うための、T.BufferTi.Codecをサポートされ、ちょっと面倒ですがHTTP以外のプロトコルもバリバリ実装することができます。

Read more »

Posted filed under iPhone.

 iOSの開発をしている人なら、みんな面倒だと思っていることに、開発用Provisioning fileのダウンロードがあると思います。
端末を追加するごとに、変更してダウンロードして、インストールしなければいけないし。

 すこしでも軽減しようということで、コマンド一発でAppleのDevCenterからダウンロードして、手元のOSXにインストールしてくれるスクリプトを書いてみました。
実行に先だってMechanizeが必要です。「sudo gem install mechanize」でインストールしてください。

 https://gist.github.com/1198113 をダウンロードして、「ruby download_provisioning_file.rb ”プロビジョニング名” “Apple ID” “パスワード”」とすると、Provisioning fileがダウンロードされ、自動的にインストールされます。

 Jenkinsなどで自動ビルドをしている場合には、かなり幸せになると思います。
いまJenkinsで、Titanium MobileのCI(継続的インテグレーション)の環境を構築していて、それっぽいのが見当たらないので作ってみました。
 みんな、iPhoneのCIってどうやってるんだろう?この辺の話とか日本語ではあまり出てこないし、Keychain周りでちょっとはまりそうな感じがあるんだけど。

Posted filed under Life.

 予定では年内に、AppceleratorのHQのある、Mountain Viewに行く予定だったのですが、いろいろありまして、アメリカへ戻ることなく、しばらく日本で腰を据えることになりました。引き続き、日本でよろしくお願いします。

 そこで東京でマンションを契約して、半年以上アメリカに置きっぱなしだった荷物を取り寄せることにしました。アメリカでの家具や家電はほとんど処分してきたので、また全部買い直しです・・・ orz

 「IKEAと5万円で作る快適仕事場」が好評だったので、今度は日本バージョンで書いてみることにしました。前回と同じでリビングで快適に仕事をするための環境を作ることを目標にしています。予算も前回と同じぐらいな感じで。

 リビングに机を置くため、家を探すときにも、都内でリビングが広い1LDKを中心に探しました。家探しについては、Togetter – 「@masuidrive / @kanamasの家探し」にまとめてあります。

 見つけた部屋は、リビングの窓も大きく、見晴らしも良いので、引きこもりがちの生活にはぴったりです(笑)

 部屋が決まったので、早速IKEAに買い出しです。せっかく日本なので、無印ニトリも選択肢に入れましたが、Webサイトを見ている限り、なかなか気に入るものが見つからなかったため、結局、ダイニングテーブルセットとソファーを除いてIKEAでそろえました。商品の幅広さと統一感がIKEAの魅力なんだなと思いました。

Read more »

Posted filed under Blog.

ちょっとサーバのメンテミスで止まってましたが、やっとブログ復活しました!

色々書きたいことがあるので、バリバリ更新していきます!