Hatena::ブログ(Diary)

Islands in the byte stream

2014-10-19

Template Engine Nightで「Xslate振り返り」をしました

このあたりで一度まとめておこうと思ったのでいい機会でした。@moznionさん、ありがとうございました。

なお、スライド中の「arity」は、この直前のトークで「ASTのnodeの種類を表すのにarityという単語を使っているのは意味が違うのではないか」と質問されたので急遽いれたものです。これは、『ビューティフル・コード』でDouglas Crockfordが演算子優先順位構文解析法によってJavaScriptのparserを実装しており、その中でtokenの種類を表すのにarityという単語を使っていたからなのでした。Xslateはそのparserをもとにしているのでarityという言葉を使っています。

2014-10-02

Travis CI meets Swift!

There's an absolutely great news for Swift developers: The Travis CI Blog: Status update on the Xcode 6 and iOS 8 rollout

Meaning that now Swift libraries can be tested on Travis. Here is a Swift library with working .travis.yml:

There are points you'd like to know:

  • Make the test target shared and commit it to the repo
  • Use the latest xctool, instead of xcodebuild
  • Specify -sdk iphonesimulator

That's it. CI should work just like as: https://travis-ci.org/gfx/Swift-JsonSerializer

Enjoy Swift!

P.S. there is a Japanese version on Qiita: http://qiita.com/gfx/items/e5bc4ab22d63b09f6ee8

2014-08-23

comaint(1)でCPAN moduleのcomaintainerを追加する

Perlを書かなくなるなどの理由でCPANモジュールをメンテしなくなるということはあるもので、そういう場合は App::PAUSE::Comaint を使うと簡単にcpan authorをcomaintに加えることができます。

comaint UNIVERSAL::DOES SYOHEX

私のCPANモジュールも最近は積極的にメンテしていませんが、必要に応じてどんどんcomaintにしていきますのでよろしくお願いします。

2014-08-13

fb-adb - 改良版adb shell

Facebookが adb shell の改良版を開発しているみたい。

https://github.com/facebook/fb-adb

"adb"とつけてはいるけど、実際には"adb shell" と "adb rcmd" だけを処理して他のサブコマンドはadbにフォワードしているだけ。

改良したところはREADMEによれば以下の点だ。

  • Binary clean (no LF -> CRLF mangling)
  • transmits and updates window size
  • distinguishes standard output and standard error
  • properly muxes streams with independent flow control
  • allows for ssh-like pty allocation control
  • propagates program exit status instead of always exiting with status 0
  • properly escapes program arguments
  • kills remote program
  • provides a generic facility to elevate to root without re-escaping

ざっくり言うと、いろいろまともにしたってことだけど、特に「adb shell $command」のstatus codeを返すようにした」とか「adb shellのstderrをちゃんとstderrとして出すようにした」あたりはかなりうれしくて、adbをwrapするツールを作りやすくなったと思われる。

例:

# exit status
$ adb shell false
$ echo $?
0

$ fb-adb shell false
$ echo $?
1

# stderr
$  adb shell 'echo foo >&2' >/dev/null # 何も表示されない
$  fb-adb shell 'echo foo >&2' >/dev/null
foo

当初GenyMotionで動かない という問題がありましたが、現在は解消されています。

2014-08-09

The Renaissance of TypeScript in Ruby

More and more TypeScript toolchains emerge in these days but unfortunately it was not true in the Ruby world: typescript-rails didn't work on Rails4.

Now it works on Rails4. typescript-rails, which provides us with the power of TypeScript in Ruby on Rails, is now controlled under the typescript-ruby group and new maintainers. We are also waiting for more maintainers and pull requests to employ tons of TypeScript best practices.