まだプログラマーですが何か?

プログラマーネタとアスリートネタ中心。たまに作成したウェブサービス関連の話も http://twitter.com/dotnsf

タグ:programming

先日の IBM XCITE イベントの中で、IBM BlueMix のアプリケーション開発コンテストの開催が発表されています:
IBM BlueMix Challenge
2014052501



このブログでも何度か触れてきましたが、IBM BlueMix は、いわば「IBM 版 CloudFoundry」です。IBM の提供するクラウド上に CloudFoundry 環境が構築されており、現在は無料ベータ版という扱いで誰でも利用することができるようになっています。素の CloudFoundry と異なるのは IBM ソフトウェア製品も利用可能なサービスとして統合されているので、BlueMix 上で Java アプリケーションサーバーや DB2 を始めとするデータベースサーバーなども利用できるようになっている点です。BlueMix 上で稼働する IBM 製品については原則的に IBM からの製品サポートが提供され、それ以外のものについても一部はサードパーティからの製品サポートが提供される、という形態になっています。

この BlueMix 環境上でアプリケーションを開発/構築するというコンテストです。なお、コードそのものの良し悪しだけで判断されるわけではなく、用意されたサービスをどのように組み合わせて、どのようなイノベーションを実現するか、という総合的な判断に基づくコンテストのようです。

気になる商品は Mac Book Pro やルンバといった、デベロッパー(やその家族)が喜びそうなものが用意されています。実際にはこれらの中でも上位機種が準備されているとの噂も・・・


参加する場合、6月30日までにそのための登録申請を行う必要があります。アプリケーションそのものは申請の段階で開発されている必要はなく、アプリケーションの提出期限は8月12日となっているようです。


注目の PaaS 環境である Cloud Foundry のアプリケーションを開発するいい勉強の機会にもなるし、あわよくば Mac Book Pro も手に入れるチャンスです。普通にアプリを開発できれば BlueMix(Cloud Foundry)対応はさほどハードルが高いとは思わないので、多くの開発者にチャンスがあると思います。


「興味はあるけど、まだあまりよく BluxMix(Cloud Foundry) 分からないんだよなあ・・・」という方は、拙作ですが、以下の僕のブログエントリがお役に立てれば幸いです:

- BlueMix を使う
- BlueMix のダッシュボードとデータベースサービスを使う
- BlueMix 上で PHP アプリを動かす
- BlueMix を使ってみて
- BlueMix で Twilio を使う
- BlueMix 向けに(Java)アプリを開発するといいことはあるか?
- BlueMix 向け Twilio アプリのサンプル
- BlueMix 開発コンテストが開催されるらしい
- BlueMix のデータストア比較
- BlueMix の cf コマンド
- BlueMix 上の DB2 をハック
- MySQL が 3306 番以外のポートで動いている時の WordPress 設定
- モバイル向けdeveloperWorks ページを作ってみた





 

・・です。

IBM 開発コンテスト「IBM BlueMix Challenge」開催


詳細は5月21日~22日開催の「IBM Software XCITE Spring 2014」で発表されるらしいので、詳しい条件や規定、基準、そして気になる賞品(笑)については後日発表を待ちましょう。

まあ、でも、BlueMix のサーバーやサービスを使って面白いアプリを作りましょう、というものだとは思います。このブログでも紹介しているように、色んなプログラミング言語を選べるし、サーバー構築は簡単だし、敷居はそんなに高くないと思ってます。また以前に CloudFoundry 環境で作ったアプリがあれば、それを持ってきちゃえば動くかも(苦笑)しれないので、そういう手もあるのかな。

先日のこのブログエントリの続きであり、こちらのブログからのリレーブログでもあります。

ちょっとした隙間時間や空き時間をプログラミングに活用したい、そんな想いから先日の「通勤プログラミング」を書きました。 今回のテーマはその上級編、「脳内プログラミング」です。
nonai


私は暗算とか苦手ですが、あんな感じなんでしょうかね。与えられたテーマに対してプログラミング環境や(ケースバイケースですが)紙&鉛筆もなしに、頭の中だけでアルゴリズムを組み立ててコードに書き起こしていく、という作業です。

私自身、コードに書き起こすとなるとそれなりの準備というか道具が必要になりますが、「ランニングしながらアルゴリズムを考える」のは結構やってます。走る苦痛を妄想でごまかしているだけですけど。 あと会議中の「明らかに自分は関係ないなあ・・」という話題の時も、脳内ではシステムの設計してたりアルゴリズムを考えたりしてることはあります、はい。

悪く言えば職業病なんでしょうけど、よく言えば刺激的で楽しいから自然とやってる、という感覚です。その意味ではソリティアとかクロスワード、クイズに近い感覚なのかもしれません。


で、そんな脳内プログラミングですが、「そもそも何をプログラミングするの?」という方もいると思います。 もちろん脳内でできる範囲のプログラミングなので大規模な内容のは無理でしょう。上でも触れましたが、ちょっとしたクイズ感覚で空いた時間を健全な妄想で過ごす、というものです。この「ちょっとしたクイズ感覚」になるようなプログラミングのネタを探すのが簡単ではないのかもしれません。


で、そんなみなさんに私から提案。「CodeIQ やってみませんか?」

CodeIQ(コードアイキュー)はエンジニア向けのプログラミングチャレンジサイトです。与えられたお題に(多くの場合で)プログラミングで回答します。プログラミング言語の条件があるものやないものもあり、単に解ければいいものだったり、その実行速度が求められたり、なるべくコンパクトなコードに仕上げる必要があったり、、、と多くの問題から自分が解けそうなものを選んで挑戦できます。その結果フィードバックを見て、エンジニアとしての自分のスキル確認もできます:
https://codeiq.jp/

各設問の難易度にもよりますが、CodeIQ の問題を解くこと自体は(回答条件を満たしているかどうかはともかく)かなり簡単だと思っています。出題内容そのものは覚えられる程度で、そのロジックを頭の中で考えて、で時間のある時にコードに書き起こす、と。言ってみれば「脳内プログラミングにピッタリ!」だと思っています。

以上、僕が少し関わっている CodeIQ の宣伝でした(笑)。









一度、この話題でブログを書いてみたかった。

私は業務でもシステム系プログラマーですが、それとは全く別に、プライベートでも自分のためのウェブサービスを作ったり、たまにそれを公開したりしています。 ただ平日はほぼ朝から夜まで業務に携わっていて、プライベートでのプログラミング時間はかなり限られています。

そんな自分の時間をなるべく有効にプログラミングに充てるため、必然的に思いついたのが「通勤プログラミング」です。通勤時間をうまくプログラミング時間として活用しています。

ただ通勤プログラミングにはいくつか条件があります。まず「座れる」こと。座ってノートPCを取り出して膝の上でキーボードを開いて・・・というスタイルなので、立ったままではちと難しいです(まあ立ったまま「脳内プログラミング」をすることもありますが、こちらはかなり上級編だと思ってます)。いかに座席を確保できるか、というのも非常に大きな要素になります。私自身は電車の始発駅に居住していることもあって、「駅で少し待てば座れる」立場です。座ってしまえば最初の乗換駅まではプログラミングに充てられるため、それなりの時間を確保できます。

次に「通信手段の確保」も必要になることが多いです。駅にいる間は公共 WiFi を使えるケースもあるかもしれませんが、通勤での移動中はそうもいきません。タブレットで開発できるものであればタブレット自体の通信機能が使えるかもしれませんが、Eclipse を使うなどの本格的なプログラミングをするとなると現状はタブレットではなく、まだノートPCが必要になってきます。そしてノートPC単体では通信機能を持っていないケースがほとんどだと思うので、WiFi ルータなどのいわゆる「テザリング」環境を用意する必要があります。 プログラミング自体は通信なしでも可能ですが、サーバーアプリの動作を確認したり、デバッグやログを見る目的でサーバーインスタンスにリモートログインしたり、分からないことをちょっとググって調べたり、という際にネットワーク環境が必要になったり、あると便利だったりするので、この通信手段が確保できるかどうかも効率に影響します。

最近は「限られた短時間内で何をするのか?」を明確にしておくことも大事だと分かってきました。業務ではプログラミングに集中していて気が付くと1~2時間経っていた、なんてことも珍しくないのですが、通勤で座っていられるのは自分の場合はせいぜい30分程度です。この時間内に区切りが付くことをする、その1回のゴールを明確にしておくことも大事です。当たり前のことですが、この30分はプログラミングというか、コーディングのためだけに使いたいので、そのためにも前提となる設計や方針など座っていなくてもできることは可能な限り事前にまとめておき(あるいはプラットフォームで待っている間に脳内で行なっておき)、座ってノートPCを開いたらコーディングに集中する、というスタイルが理想です。

余談ですが、この超短期的なゴール意識は普段の業務にも好影響を与えているように思います。設計の時間と実装の時間を明確に分離することで、コミュニケーションを取る時間と一人で集中する時間のメリハリを付けるようになりました。集中できる時間はどうしても限られてしまうのですが、このスタイルを続けることで逆に集中しない時間をうまく活用できるよう、意識が変わってきていると感じています。

と、まあ簡単ですが、僕の通勤プログラミングはこんな感じ。 プログラミングに限らず、通勤中にノートPCを広げる人はたまに見かけるので同じようなことを考えている人はいるかもしれません。また、なるべく腕を動かさず、キーボード音もならないよう心掛けているつもりですが、それでも迷惑に感じている人がいるかもしれません。申し訳ないです。

本当は通勤プログラミングを快適に行う(笑)ためのアイテムやらコツやらにも触れたいのですが、それはまた別の機会に。こんな通勤プログラミングをしている人が他にいらっしゃるようであれば「PCは何使ってるの?」とか色々お話ししてみたいです。





 

このページのトップヘ