2012年5月21日月曜日

Poke bits

Facebookで延々 “あいさつ” を送ってくる方がいて、あいさつを受けたら無視するわけにはいかないので、気付く限りあいさつを返していたのですが、そうするとまたすぐ新しいあいさつが届いて、エンドレスです。終わりがありません。あぁ戦争に巻き込まれちゃったなぁ…って感じ。画面の片隅にブラウザを開いておけば割とすぐあいさつ返しはできるのですが、席を外しづらいとか、ちょっと打合せをしていて目を離してるスキにあいさつされたりとか、気になっちゃうんです。なんとなく。

自動的にあいさつを返すChrome Extensionもいくつかあるようですが(これとかこれとか)、そんなツールに頼るのでは愛がないし失礼ですよね。
やっぱり自分の手で、ていねいに、コードを書かないと

2012年5月7日月曜日

プログラマ35歳定年説

まだ35歳ではないけれど(ここ大事。テストに出ます)、35歳になるまでに考えたい問題。最近機会があってこの言葉の意味を再考するに至りました。

よく聞く「35歳定年」の理由は
  • 新しい技術を覚えられなくなる。柔軟な発想ができなくなる。
  • 徹夜や長時間勤務が体力的にできなくなる。
  • PG単価では給料が上がらないのでPM、SEへの転向を迫られる。
  • 会社がー
  • 家族がー
などがあります。
どれも本人次第、場合によっては移籍(転職)することで解決できる気もしますが、一理あるとは思います。

でもそれとは別に、35歳って、ひとつの絶望の淵に直面しているのかなと。
入社してプログラムを覚えて/あるいは学生時代に身につけたプログラミングスキルを活かして「プログラムを作る」ということを生業にして十数年。お客さんと話をしたり、理不尽な仕様変更やデスマを何度も経験して。少しでも改善しようと、よい仕様・よい仕事にしようと、お客さんに喜んでもらえるシステムにしようともがいて、がんばって。でも変わらない現実。全てのお客さんが同じ意識を共有してくれるわけじゃないし、だんだんワガママになっていくエンドユーザー(コンシューマーでもエンタープライズでも)。
そうして溜った鬱憤を晴らすことができず、結局自分ががんばったところで環境を変えられない・この仕事を続けていって幸せになれるの?と絶望に負けそうになる35歳。
同業他社に転職しても境遇は変わらないことも見えてくる、そんな歳なんじゃないかと思うのです。(昨日まどマギ第11話・第12話を観ました←)

あたしは同年代の人より早くからこの業界にいて、立場柄プログラマ以上にいろんなコトを見てきてしまったので、35歳までまだまだ時間があるけれど(重要。テストにry)、それでも限界というか、気持ちが耐えられないと、そう感じる昨今です。

プログラマは35歳で終わりなんてことはない。プログラムは作り続けられるし技術的にもまだまだ伸びる。現にCodeJamの成績は上がっているしあんなに楽しいんだもの。
でも仕事としては。
職業としてのプログラマは、35歳よりだいぶ前だけれど、そろそろ厳しい…かもね?

2012年1月31日火曜日

AndroidManifest.xml file missing!

これまでAndroidアプリの開発でも Emacs + ant を使っていたのですが、今年はいろいろ新しいことも始めるゾ!という意気込みでどうもみんなが使ってるらしい Eclipse + ADT を使いはじめました。宣言

旧来Emacs + ant でビルドしていたプロジェクトディレクトリを丸ごとそのまま Eclipse にインポートしようとしたら AndroidManifest.xml file missing! と言われてしまって完了できなかったので対策メモ。

2012年1月29日日曜日

TextViewのワードラップ

AndroidのTextViewは、英単語が途中で改行されてしまわないようにワードラップ処理をしてくれます。
日本語の禁則処理もしてくれているようなのですが、どうにも不自然で納得できません。(句読点の直後に改行が入らず次の1文字も巻き込んで計算されるなど)

ソースを追うと、TextViewのプライベートメンバ mLayout で保持される StaticLayout がワードラップ処理をしているようです。(setText()に Spannable を渡すと mLayout自体は DynamicLayout になりますが、DynamicLayout が内部で StaticLayout を作ります)
うまいことワードラップする Layoutクラスを作ってリフレクションで mLayout に設定する方法もあると思うのですが、StaticLayoutはそこそこボリュームがあって手を出すのは心が折れるので、InputFilter を使う方法でワードラップ処理を改造してみました。

2012年1月23日月曜日

リバースプロキシとSubversion

Apacheのリバースプロキシ越しにSubversionサーバを立てていたら svn mv や svn cp (それをバックグラウンドで行う svn merge も)ができなくてハマったので解決策のメモ。

2012年1月18日水曜日

ChromeでWebGL

WebGLの仕様上のセキュリティ問題の対策のためと思われるのですが、現在の Chrome(Chrome 16)では WebGL がデフォルトで無効になっているようです。(ソースは見つけられませんでした…手元にある2台の(世代の違う)iMacでどちらもデフォルト無効だったのでそう判断しています)

せっかくChromeウェブストアにおもしろそうなゲームがあっても、WebGLデモサイトにステキなサンプルがあっても、そのままでは表示することができません。

2012年1月10日火曜日

復活の呪文2

Android Marketの人気アプリ 復活の呪文2 の呪文生成アルゴリズムを解析しました!