開発環境構築は重要
最近、環境周りを整備する必要がありLinuxで各種サーバを実験している。
ディレクトリの削除さえ怪しかった自分だが、ここ一ヶ月で大分コマンドにも慣れきた。
本日もApache+SSLでhttps通信を通した。
サーバ構築なるものがおぼろげながら見えて来た感じがする。
実は何度もLinuxのオペレータには挑戦してきたのだが、インストールとファイル操作から進まなかった。
なぜか、私は開発環境を壊してしまうので、Linuxを触るのが怖かったからだ。
私は周りが呆れるほどのクラッシャーである。
先々月もAndroidの環境を壊した。Eclipseを強制終了し、まともに起動できなくなった。
iPhoneでもアプリを公開する時にキーチェーンを壊してしまい、Macを再インストールした。
一番最初の現場に組み込みLinuxの現場に一人で放り込まれ、色々と酷い事がトラウマになってたのもある。
今回はVMwareで仮想マシン環境を用意したのが功を制し、臆す事なくなり順調にLinuxになれて来ている。
私は環境周りが自分で設定できるようになると、スムーズに開発が出来るようになる。
Androidはすぐに開発環境を設定できるので他の開発よりもやりやすい。
出来る人はプログラムだけで無く、環境周りも強い。
開発速度を上げるには境周りが強くないといけないのだ。
長時間の頭脳労働は危険
私は長時間あたまを使う事が苦手だ。
今日はLinuxコマンドの"mv"と"rm"を間違えて打ち込んでしまった。
"mv"でファイル名を変えようとしたのだが、"rm"でファイルを削除した。
長時間の頭脳労働で私の頭はオーバーヒートしてしまっていた。
幸い、致命的な事態には至らなかったが、もし消してはいけない大事なファイルだったら思うと、ゾッとする。
長時間の頭脳労働をしていると、ミスを犯す危険が増えていくのは事実だ。
もし、そのミスが致命的ならば、頑張って築き上げたモノが一瞬でパーになる。
結局の所、私のような人間は一日6時間ぐらいが頭脳労働をするのが一番適しているように思える。
もちろん例外はある、システムを組むのが得意な人間ならば、ぶっ通しで12時間以上システムを組んでいても問題はない。
人それぞれで、私は一日6時間を目安にシステムを組み、その他は雑用やメールを書いたりして、分散しているように心がけている。
結果、一日12時間以上働く事も良くあるが、それでもあまり働き過ぎると、あらゆる面で生産効率が悪いと実感している。
やみくもに作業するのは愚行である。
自分に合った最適なワークフローを作り出すのも必要だ。
Androidの未来
あと10分で電源が切れるので、少ない文章でAndroidの事を少々。
ソニエリが出した、レイチェルの動画を確認した。やはりAndroid特有の”もっさり感”は残っている模様だ。
もともと、かなり色々な機能を突っ込んで、Dalvikでラップしている印象があるので、中のアーキテクトの整合性が取れていない印象がある。
ただ私はJavaサイドのプログラムしか、手を出していないので、何とも言えない。
以前、Android勉強会を聴講させてもらい、アンドロイドの中身を何となく聞かせていただいた。
だいぶ、使われていないソースコードがあるらしい、色々と携帯にポーティングするために、PCでのソースをダウングレードして使っているようだ。
逆に言えば、まだ使われてないリソースがAndroidには残っている事になり、可能性はまだまだ広がると言う事だ。
1.6は少し、機能が上がったようだが、もしかしたら2.0は大化けするかもしれないっと思っている。てか、期待している。
ソニエリさんもしかして、2.0とかでアッと言わせるきですか?
技術の先行投資
以前やっていた少人数のPJではSbuversionを使いプロジェクト管理をしていた。
私は管理者でもなく、ただ普通にチェックアウト/コミットだけを使った。
データ変更が半端なくあったので、随分とSubversionにはお世話になった。
たぶんソレがなかったら、私が担当していたソースは破綻していただろう。
私はVCS(Version Control System)には、全く興味はなかったのだが、一緒にやっていたパートナーが興味半分でいれたようだ。
その当時Subversionはメインストリームではなく、CVSがディフェクトスタンダードだった。
しかし、Subversionは次のVCSとして注目されていたと記憶している。
で、数年たった今はどうやらSubversionがスタンダードになってきていると思う。
技術は来ると言われてから2、3年で一般的に認知されて定着していくようだ。
Railsに代表されるWebのフレームワークもここ数年で日の目を当たり、今や特に珍しい技術でもなくなってきている。
私は今、Androidを触り、Gitを学んでいる。
正直、先行投資的な開発だが、この先に間違いなく来ると思い勉強してる。
数年後に有利に立っていたければ少し先の技術を身に付ける必要がある。
私は趣味でソフトを触っているのではない先行投資をしているだけなのだ。
”Amebaなう”は流行るのか
個人的な感想からすれば、人気が出る可能性は高いと思う。
サービスの内容より以前に、アメーバは高い集客力を持っているから、アメーバ市民の方々は自然と”Amebaなう”を使いだろう。
ここ一年の間に、私のmixi友人の中の数人がアメーバに移動した。
3桁にいかないマイミクの中の数人もサービスを完全に移動しているので、これは中々な集客力だろう。
マイミクの友人いずれに言える事は少しヤンキーがかってミーハー*1だと言う事だ。
彼らの中ではmixiなぞ子供がするもんで、アメーバならばもっとイケテルサービスだと認識している様だ。
確かに、アメブロは芸能人などを取り込み一つのエリアを築きつつあり、最近は勢いをさらに拡大している様に見える。
もし、このツイッターlikeなサービス”Amebaなう”がサービスインされれば、よりヤンキーエリアのコミュニティが発達し、サービスは拡大を続けていくのだろう。
twitterは知り合いでもない人間と距離を短く感じるツールだから、アメブロが似たようなサービスをすれば流行る事は必須だろう。
個人的にはアメブロ周辺領域は好みじゃないのですが。
*1:死語
楽をし過ぎない
コピペプログラムは一時しのにぎ過ぎない、大分昔のエントリでも書いたが、時と場合によってコピペプログラムも必要だと思っている。
しかし、常にコピペをする事は推奨しない。
「ソースの行が多くなる」・「視認性が悪くなる」は常識だが、一番の問題は処理を理解せずにコーディングする事だ。
ソフト業界に入り数年の間はコピペが私のスタンダードだった。複数行とは言わず一行でもコピペをしていた。
しかし、これは大きな間違いだった。コピペ作業はプログラムが上から下に流れる事や、モジュールの動作を理解せずに進める事になってしまった。
さらに最悪なのがプログラムよりもコピペをする作業に集中してしまう事だ。
基本を理解していない事は、その先の成長を鈍化させてしまう。
よくよく考えてもらいたい、もしあなたがプロゴルファーならば何も考えずに素振りをするのだろうか?
恐らく無駄がない動きを目指すタメに、フォームをチェックし、体の動作を理解しようとするはずだ。
”何も考えずに素振りをしても打撃の精度は上がらない”事と同じで”コピペをしても開発能力は上がらない”と私は思うのだ。
今まで私が見て来た開発が速い人にコピペをする人間はいなかった。
丁寧に処理を頭にしみ込ましながらコーディングするの事が最も成長速度が速いスタイルだと思う。
ただし、昨今の色々なWebのフレームワークを見てると何とも言えない状況で、CMSを使ってみるとコーディングの必要性さえ無い様な感じもする。
思いついた時に書く
私のブログのネタは、恐れ多くもソフトウェアに関わる人全般に対して書く様に心がけている。
プログラム言語の機能や、環境設定などにフォーカスは絞っていない。
開発を行っている時に間違った行動のプロセスの中から、ブログのネタが出てくる事が多い。
すなわち、私は開発中にブログのネタを思いつくのだ。
しかし、会社ではすぐにはエントリは書けない。
ネタを考えついて、数時間後にエントリを書き始める事になる。
時間を置くと言うのが、非常に厄介だ。
ネタを思いついてから、理論的な抜けが無いか等と、ネタをこねくり回し、結局エントリ出来ない事が多い。
そんなネタをエントリしても、文としても、理論としてもメタメタになっている。
私は思いついた時に書きなぐる方が良いのだ。
このブログは誰も責任を問わない文章だ。公共性は全くない「私はこう思ってますよ」ってレベルだ。
そんな感じなので、文の理論や検証はする必要もない。
予想や推測でも思いついた時にエントリをしたい。
20分あたりで、一つのストーリが書ける様になれば、この"Chaosなバグ"の目的の一つは果たされる。
目標 1ストーリ/20分