カテゴリー別アーカイブ: 雑談

本年もよろしくお願いいたします。

遅くなりましたが、明けましておめでとうございます。本年もどうぞよろしくお願いいたします。

今年は、できる限り早めにコンテンツの移行を完了させ、従来のサイトとの統合をめざしたいと考えております。それにともない、一部のコンテンツは失われることになりますが、必要に応じて別の形態での公開も視野に入れております。

 

BeagleBone Blackが入手難

元々の生産数または輸入数が少なかったのか、人気が高まったからなのか分かりませんが、最近はBeagleBone Blackが売り切れ続きで入手が難しくなっています。

ちょっと前までは、アマゾンはじめ、秋月電子通商、スイッチサイエンス、テックシェアなどの通販サイトで、値段のばらつきはありますが容易に入手できたのですが、これらのサイトは現在ことごとく売り切れになっています。かろうじてRSオンラインからなら入手ができるようです。

近々大量に入荷されることを期待していますが、そのときにはもしかするとバージョンが上がっているかもしれませんね。

本音をいえば、この類いのマイコンボードは、国産でよいものができてくれるのが一番うれしいのですが、何とかならないものですかねえ。ストロベリーリナックスさんなんか、その名前からしても…

Windows 8.1にアップグレードしました。

日ごろ主に使っているPCをWindows 8からWindows 8.1にアップグレードしました。アップグレード事態はWindowsストアから簡単に行うことができます(時間はかかりますが…)。

パッと見は何が変わったのか全然分かりません。起動直後の背景が変わったぐらいでしょうか。ただ、よく見ると、チャームの項目が変わっていたりして、微妙な違いがあるようです。

よく話題に上っているスタートメニューについてはよくわかりません。というのも、私はClassic Start Menuを使っているのですが、アップグレード後もそのままClassic Start Menuが変わりなく使えていますので、何も変わっていないという印象しかないわけです。

使っているうちに違いは見えてくると思いますので、何かあればその都度レポートしていけたらと考えています。

 

らしくない。

リニューアル後のブログの記事を見たところ、Java や Android の記事はあっても C や C++ の記事がありません。以前のブログであれば、Java や Android の記事はまったくなかったので大違いです。

我ながら「らしくない」というのが率直な感想です。今後も Java や Android の記事は書いていくつもりですが、C や C++ の記事がないのは一過性のものですので、そちらを期待して来られた方はもうしばらくお待ちください。

結局徹夜作業に

出張の初日は、最初に出鼻をくじかれたこともあり、深夜まで現地作業を行うことになりました。よそ様の会社で作業をさせていただいている関係上、あまり遅くまで継続するわけにもいかず、23:00すぎにいったん中断してホテルに引き上げました。

0:00ごろにホテルにチェックインしたあと、近くのすしやで夕食&打ち合わせを行いました。それから部屋に戻って作業の続きを行いました。

結局 4:00 前まで作業した上で作業を切り上げることにしました。実質的な徹夜です。3:00 すぎまで仕事をすることは普段から少なくありませんが、さすがに出張先だと疲れも出るというものです。

結果は、必ずしも上手くいったとはいえませんが、やるだけのことはやったのでしかたありません。週明けから挽回するしかありませんね。

いきなり出鼻をくじかれました。

当初の予定では、10:30ごろに現地入りして作業を開始する予定でした。ところが、新横浜~小田原間が豪雨のために新幹線が一時的に止まったようで、30分近く東京に着くのが遅れてしまいました。

さらに、東京に着いてからも、地下鉄に乗り間違えた結果、本来地下鉄に乗るべき時間の4倍ぐらいを費やしてしまいました。

結局1時間ぐらい遅刻して現地入りしたわけですが、そうなると午前中に終わらせようと思っていたことがずるずる遅れてしまいます。

こんな調子でいきなり出鼻をくじかれた出張初日でした。この調子だと、終わるのは深夜になりそうです。

明日から東京に出張です。

明日から2日間、東京に出張に行きます。横浜や川崎といった神奈川県には頻繁に足を運んでいますが、東京は久しぶりです。ゆっくり東京見物できるような時間はまったくないでしょうけど。

具体的な内容は書けませんが、現在開発中の物件に関して、ひとつめの大きな山場を迎えることになります。ここを何とか成功させたいものですが、現時点で積み残しの部分もいくつかあり、必ずしも楽勝とはいえない状況です。

たまにはこうした緊張感があるのも、刺激になってよいかと思います。来週からは新しいフェーズに入ることになると思うので、後腐れがないようにきっちり決めたいところです。

Javaについて調査中

Android アプリの開発に携わることになった関係上、Java についていろいろ調べています。大まかなことは以前から知ってはいたのですが、本格的に調べていくといろいろなことがわかってくるものです。

今後は、Java について調査したり実験した結果を自分自身の備忘録をかねて投稿していくことにします。ですので、ベテランの Java プログラマーの方々にとっては目新しい情報はないかもしれません。

現在は、Java でいかに高速なコードを書くかについて調査を行っています。というのも、現在関わっているプロジェクトが、パフォーマンスに関してかなりシビアだからです。Android ですが、実行速度がかなり要求されます。

おおざっぱに調べた感じでは…

  • Java コンパイラの静的な最適化はほとんど期待できない。
  • メソッドをインライン置換するには、private, final, static のいずれかにする。
  • 配列の範囲チェックなど、ランタイムチェックが大きなコストを払っている。

といったところでしょうか。もちろん、インスタンス生成のコストなど、Java に限らずどんな言語でも問題になる部分は上記には含んでいません。

JIT を初めとした VM の高速化についてはいろいろ語られているようですが、静的な最適化については意外に軽視されているのではないかという感が否めません。それならしそれで、腕の見せ所がいろいろあるわけで、私としてはある意味歓迎ではあるのですが。

近況

私は長い間、客先に常駐して仕事をすることを避けてきました。なぜなら、そんなことをすると他の仕事に支障が出るからです。

ところが最近になって、常駐の仕事もするようになってきました。決して仕事がなくて困ったからではなく、強い要請を受けたことが理由です。現在も客先に実質的に常駐して作業を行っています。といっても、時間的な拘束があるわけではないのである程度融通はきくのですが…

そんなわけで、メールなどでご連絡をいただいた場合にレスポンスが遅くなることが多々あるかと思います。お電話の場合はほとんどまともに応対できないこともあります。いろいろご迷惑をおかけするかもしれませんがご了承ください。

いずれは元のスタイルに戻るときもあると思いますので、常駐先の仕事にべったり依存するつもりは毛頭ありません。うまくバランスを見ながら、仕事の配分をしていきたいと考えています。

ライブラリはアプリケーションの延長では開発できない。

アプリケーションの開発者というのはよく見かけますが、分野を問わず、ライブラリの開発者というのを見かけることはあまりありません。ライブラリを専門的に開発しているのではなくても、アプリケーションだけではなく本格的なライブラリを開発できるというプログラマーが少ないのです。

アプリケーションばかり開発しているプログラマーはこのようにいいます。「アプリ開発の過程で生まれたクラスやモジュールなどを再利用できるようにとっておきます」と。けれども、アプリケーション開発の副産物として生まれたコード群と、はじめからライブラリにすることを目的に作られたコード群では明らかな違いがあります。

はじめからライブラリにすることを目的に作られたコードは、汎用性や移植性、サイズ効率や速度効率などに相応の配慮が行われているものです。特定のアプリケーションで使うことに特化すれば、その目的に合致する限りは、もっと使いやすく、もっと効率的なものができるかもしれませんが、通常ライブラリはそのような選択はせず、もっと応用範囲を広げる努力をするものです。

きれいごとをいうのはやめて、もっと現実に目を向けるならば、アプリケーションの副産物として生まれたコードは細かいところまで作り込まれていないケースがほとんどです。

具体的にいうと、Java のクラスであれば、hashCode や toString といったメソッドを、それが生まれたアプリケーションで実際に必要となる場合以外にきちんと実装されているケースが果たしてどれだけあるでしょうか?

C++ であれば、アプリケーション独自のコンテナを作ったとして、それが本当に標準規格で定められたコンテナの要件を完全に満たしていることがどれだけあるでしょうか?

一点一点を指摘されれば、アプリケーション・プログラマーであってもそれらに対応できる可能性は十分あります。けれども、指摘される前から網羅的に必要なことに配慮することはまずできないのではないかと思います。

日本のプログラマーは、もっとライブラリを書く力を身につけてもよいのではないかと感じています。細かいところまで配慮したライブラリを書くのは、特定の目的だけを達成できればよいアプリケーション視点からは無駄のように見えることもあるかもしれません。しかし、一見遠回りのようであっても、実は近道だということはあるのです。