デザインパターンにまつわるエトセトラ

社内でデザパタが盛り上がっていたので、社内勉強会でLTしました。
その資料です!

基本的に自分はデザインパターンは「言語に依存しない設計に名前をつけたもの」だと定義しています。
なので、よくある「デザインパターンってJavaじゃないと役に立たないよね」なんていう意見には反対です。
勿論、言語によっては適応する意味の無いパターン、意味の薄いパターンもありますが、
GoFのパターンだけがすべてではないですし、
"設計に名前をつけて共有する"というスタンスこそが最高のものだと思っています。

(酒井姐さんは社内のエンジニアです)

最後でも紹介していますが、この本が超オススメです!

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

デザインパターンとともに学ぶオブジェクト指向のこころ (Software patterns series)

時間がないなら生活を自動化すべし

プログラマの明言として、こんな言葉があります。

プログラマーとしての君の仕事とは、君自身をクビにすることだ。君が今日やっていることは、明日には自動化することもできるのだ。

さて、生活で自分がやらなくても良い事を自分がやっていることないでしょうか?

見直してみると実際には色んなことがあります。
……ということで、最近はこんなものを使ってます、というお話。
生活の中で自動化できること、自動化してみませんか?

で、言わずと知れた自動掃除機。

iRobot Roomba 自動掃除機 ルンバ 770

iRobot Roomba 自動掃除機 ルンバ 770

こいつは思った以上に優秀。
放っておくだけで部屋の埃や髪の毛をどんどん取ってくれるのは最高です。
よく考えると掃除する時間って無駄ですよね?
でも、部屋が汚いのは嫌、ってことでこいつは役立ちます。


本体が侵入できないところなどは別のハンディ掃除機などで対処すればよく、
ボタン一つやスケジュールによって掃除してくれるのは凄く便利。
どんどん高性能化しているのも良いですね。


多少高額ですが、時間はお金では買えないもの。
日々の時間の積み重ねが得られると思えば安いのではないかなと。

僕と契約してPythonistaになってよ!

すっかり更新が滞ってましたが、
弊社が東京(都庁前)にてPythonアジャイル開発できる仲間を募集しています。
開発対象は、大規模アクセスをさばくソーシャルアプリおよびその環境周りです。


基本、Python、Django、Flask、Redis、memcached、MySQL、Git、Capistoranoなどを用いた軽量な開発です。
軽量開発もスクラムマスター研修などを通じて軽量化、効率化を心がけ、
かつ、お互いにとって刺激ある開発環境を目指しています。
自分でサービスを書いたり、Webゲームを書いているメンバもおりますし、
社内勉強会なども積極的に行っています。


開発環境について自分は「ゆとりの法則」「ピープルウエア」を意識してはいるのですが、
何が最適か、は組織やチームによって変わってくるので、
常に改善し続けること、楽しくあろうとすることかなあ、と思っています。
そういう意味で変に柵もないので、開発者にとって働きやすい環境です。


年齢/性別不問です。
もしご興味があればお気軽に wow[at]snow . dti2 . ne . jp
にメールをください。(不要なspace除去、および@置換でお願いします)
採用面接などは自分がやっております。


別にPythonが書ける必要は無いです。
どちらかというとC++RubyScalaHaskellLua、Groovy、Smalltalkしか書けないけど書きたいんだよぉぉ、みたいなマインドがウェルカム。
適切な言語やフレームワーク、ライブラリも柔軟に変えていきます。
あとバグるとヒールで踏まれます。

Python Hack-a-thon 2010.11でDjangoの話をしてきました

日本オラクルさんで行われたPython Hack-a-thon 2010.11でDjangoの話をしてきました。
スタッフの皆さん、参加された皆さんお疲れ様でした!
Python x D jango x AWSで作るソーシャルアプリのお話です。
当日の直前まで資料をつくっていたので、時間配分ができませんでした!orz...
次はもっと頑張ります。
Djangoを使うと何が嬉しいか、というお話がメインです。

Visual Source Safeについてチェックしておきたい5つのTips

こんなTB()を戴いていたので。

別に VSS をディスル post じゃないです。お間違いなく。


……ということでVSSを使う場合にチェックしておきたい5つのTipsです。


1.なんとしてもVSSを使わないようにしよう

VSSは有料ですし、無料でさらに高性能なSubversionGitがあるのでそちらを使いましょう。
できるだけVSSを避ける、というのが鉄則です。


2.VSSを使っているふりをしてSubversion/Gitで管理しよう

VSSをいれるように言われたらVSSで管理するふりをしてSubversion/Gitで管理して、
作業ツリーを適当にVSSにいれて誤魔化しましょう。
あたかもVSSで管理されているかのように見せかけることが大事です。


3.VSSを強要されたらAdmin権限を得よう

VSSにはAdmin権限を得ることでいくつかの設定を変えることができます。
(Visual Source Safe アドミニストレーターというソフトがあり、そこでいろいろ設定できる)
ここで、必ず「多重チェックアウト」をONにしましょう。
これでテキストファイルがロックされなくなります。
少しだけ糞みたいなロックモードが楽になります。
また、Admin権限があればロックされたファイルを強制的に解除することもできます。


4.VSSを強要されAdmin権限を得られなかった場合、ローカルではSubversion/Gitで管理しよう

面倒くさいかもしれないですが、VSSに任せておくとよくぶっ壊れるのでローカルで多重に管理しておくと便利です。
履歴を見るのにも良いです。


5.VSSを強要しAdmin権限を渡さない上にSubversion/Gitを理解してくれない会社を辞めよう

こういうケースでは、

VSS 派は Subversion 使ってないけれどね。なんか、ドキュメントのURL渡したら、読むの嫌らしい。ドキュメント書き下ろしてくれないと嫌らしい。

みたいなことが横行しています。
割と真面目にこういう事を言う人はいて、
阿呆の相手をするのは時間の無駄なので会社を辞めましょう。


結論が、バイナリの扱い(=ロック型の利点)に集約しているような気がしないでもないですが。

まあ、なんか VSS の利点は
エクセルがコンフリクトしない
これしか聞こえてこないけれど、きっと素晴らしいシステムなんだよ!!
2005年移行リリースないけれど、きっと素晴らしいシステムなんだよ!!
いつの間にか、VSSじゃなくて、Team Foundation が出来てるけれど、きっと素晴らしいシステムなんだよ!!
Team Foundation があるからもう 2005 移行は絶対でないと思うけれど、きっと素晴らしいシステムなんだよ!!

一応、Subversionはロックがあるのでちゃんと運用すればエクセルはコンフリクトしません。
Gitは普通にコンフリクトしますが、別途Excelのマージ手段を用意すればコンフリクト解決できます。
マージ手段がなくても、声がけすれば回避できます。


不便ではありますが、そもそもExcelファイルがコンフリクトすることを回避するのが重要ならば、
別途バージョン管理するという手もあります。


とにかく、VSSはテキストを履歴管理するのには向いていません。