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

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

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

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

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

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

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

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

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

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

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





 

アマゾン(http://www.amazon.co.jp/) のトップページの文字コードは Shift_JIS でした。
ama1
 
ここで検索ボックスにキーワードを入れて検索してみると、その結果ページの文字コードは UTF-8 ・・・
ama2

更に検索結果から1つ選んで詳細ページに移ると・・・ 今度はまた Shift_JIS でした。
ama3

いっそ最後は EUC-JP にでもすればいいのに・・・
 

Google の IaaS である Compute Engine が GA を迎えて、正式に公開されました。私自身もこれまで Google AppEngine を気軽に使ったりはしていましたが、データストアの特殊性などもあって本格的に使うのは色々難しかったというのが感想でした。そんな中で標準的な IaaS である Compute Engine が追加投入されたことになります。現状、パブリックな IaaS のクラウドは Amazon EC2 がかなり先行している印象ですが、後発の Google がどこまで勢力を伸ばしてくるのか、そしてどんなサービスを提供してくるのか、楽しみではあります。

とはいえ、この Compute Engine を使う上での壁もありました。無料枠のある AppEngine と異なり、まずベータの段階であっても利用する場合はあくまで有償でした。また t1.micro という最小構成であれば1年間無料で使うこともできる Amazon EC2 に対して、Compute Engine は同クラスの f1-micro インスタンスでも有料利用しかできません。気軽にテスト目的で使ってみようかな、という場合でも料金が発生するので、最初のとっかかりを越えての利用が少しハードル高めに設定されている、という印象でした。

が、そんな中で一般公開を迎えた記念なのか、テコ入れ策と考えていいのか、Compute Engine でも魅力的なキャンペーン「スターターパック」が始まりました:
https://cloud.google.com/developers/starterpack/

申し込み後の内容について審査を受けることが条件になりますが、認められた場合に最大6ヶ月間の利用期間において Compute Engine で$1000分と、 AppEngine で$1000分、計$2000分の利用枠がもらえる、というものです。AppEngine は制約付きで無料利用も可能でしたが、その制約なしの利用が6ヶ月間で $1000 分できる、というもの。Compute Engine はそもそも無料で試すことができなかったのですが、これも6ヶ月で $1000 までは利用が認められることになります。$1000 って約10万円なので、フルに使ったら超お得!!

このスターターパックに申し込むには、まず上記サイト内の "Apply Now" ボタンをクリックします。直後の入力画面で "Promo Code" と呼ばれるコードが必須入力になりますが、ここは fuy-in と入力します。
gcp

Promo Code 以外は普通の入力項目です。名前やメールアドレス、これまでの利用歴などを入力し、最後に今回の利用目的を記述します。まあここが唯一のアピールポイントだと思うので、有料枠を使ってどんなアプリを作るつもりとか、ビジネスにどう関わる使い方をするのか、といったことを記載します。最後に「送信」ボタンで申し込み完了。後はこの申込が認められるかどうか、ひたすら待ちます。。。

で、運良く認められると、次のステップに進むためのメールが届きます。 ここでは Google のクラウドを有料で使うための設定をして、プロジェクトを作り、・・・ という作業が待っているのですが、まあそれは来てのお楽しみ、ということで。

よかったらみなさんも是非試してみてください。

僕は運良く申請が認められました。それまでは「使うとしたら $0.02/H の f1-micro インスタンスで Compute Engine を使ってみようかなあ」と考えていたのですが、6ヶ月で $1000 使っていいと言われたら $0.104/H の standard-1 を使わせていただきます(笑)。計算上、これを使いっぱなしでも月に約 $75 なので1台なら全然余裕。クラスタでも組んでみようかなあ。
 

このページのトップヘ