2010-09-10 15:42:35

もっと早く知りたかったプログラミングのコツ

テーマ:システム関連
ashdotにTed Dziuba 氏の「もっと早く知りたかったプログラミングのコツ」が載っていた。
http://slashdot.jp/askslashdot/article.pl?sid=10/09/08/2228201

一部しか訳されてなかったので、訳してみようと思います(結構いい加減ですが。。)。まずは、最初の半分です。



---------------
 スタートアップ(ベンチャー企業)でのプログラミングは、大企業でのプログラミングとはずいぶん違う。スタートアップでは、あなたは開発だけを行うという事はなく、大半をシステム管理者として過ごす事になる。私は3年間スタートアップで働いているが、荒削りな知識で何とかするよりも、理にかなったやり方を身につけるべきだと痛感させられた。

 これらのことは初めから知っていればよかったし、少なくとも意地を張らずに学べばよかったことです。


 物事を複雑にしすぎる事を避けるには

 大半のソフトウエアエンジニアのように、私も技術的過ぎる傾向があります。その傾向を対処するためにも、私は二つのシンプルなルールを守るようにしています。

1.もしあなたが2つ以上のパーシステントなデータストアに接続するプログラムを書いているなら、それは複雑過ぎます。

 そして、ハードディスクはパーシステントなデータストアとしてカウントします。これはある意味、シングルインプット、シングルアウトプットである小さなツールの集合体であるUNIXの再解釈です。たくさんの異なるパーシステントなストアーを介して、状態をトラッキングしたり、失敗ケースをハンドリングするのは、ひとつのプログラムが行うには重すぎます。

2.もしLinuxができることであれば、そちらに任せる

 xargsがあなたの問題を解決できないという明確な理由がないかぎりHadoopのMapReduceは使ってはいけません。Linuxのアドバイザリーファイルロッキングシステムがきちんと動いているときに、独自のロックサービスを構築してはいけません。コマンドラインのイメージマジックが動かないと証明されるまでPILでイメージプロセッシングを行ってはいけません。最近のLinuxディストリビューションはたくさんの機能があり、たくさんの難しい問題がすでに解決済みです。あなたはどこを見ればよいか知るだけでよいのです。


パラレル処理は『自分がやりたい時』にではなく、『必要に迫られた時』に行う

それは明白、しかし自分にはっきりと言い聞かせないといけないときがあります。もし物理的なマシンがボトルネックじゃなかったら、稼動をいくつかの物理的なマシンに分割しません。CPUバウンドジョブをパラレル処理しなければならないときはとても明白で、I/Oバウンドスタッフの為に、もっと深く計測をしなければなりません。

例えば、もしwebクロールをしたく、インターネットへのパイプがあまりない場合、たくさんのサーバを使用するのは悪くないことです。この人は私にそういう考え方を教えてくれました。彼はクルージャーで大規模HTTPフェッチングを行っている人です。彼はキューイングシリネスによるパラレル処理について話します。しかし、一つのマシン上のパイプにどのくらいのデータを移しているかは話しません。もしインターネットに対して100Mbitコネクションがあれば、あなたのフェッチャーは700kbitくらい使用しているとしたら、なぜあなたのフェッチャーが駄目なのかわかるのです。
(私はミロのポリフィックシステム管理者とそのポストについて話していました。著者はとてもエラボレイト トロールかただのrun-of-the-mill idiotのどちらかでした。

珍味は(tidbit)は、データストレージに行くことです。Cassandraはすばらしいものですが、あなたには必要がないと保障できます。マルチテラバイトドライブは安く、歩優れは品質がしっかりしていると知られています。それはリスクの問題だけではありません。


2010-09-10 15:41:09

Request Trackerのインストール

テーマ:システム関連
久々に、システムを構築してみましたよ。


CentOS5にRequest Trackerをインストールしてみた。


Perl モジュール、開発環境、ライブラリなどをインストール。

# yum install perl-*

# yum install ccp gcc* autoconf* automake* libtool m4

# yum install gd gd-devel libpng libpng-devel libjpeg libjpeg-devel freetype freetype-devel

RT のインストール

$ su -
# wget http://download.bestpractical.com/pub/rt/release/rt-3.8.8.tar.gz
# tar xzf rt-3.8.8.tar.gz
# cd rt-3.8.8
# ./configure

make testdeps コマンドを実行し、Perl モジュールがインストール済みかどうかチェックする。

# make testdeps
/usr/local/bin/perl ./sbin/rt-test-dependencies --verbose --with-mysql --with-fastcgi
perl:
>=5.8.3(5.10.0) ...found
users:
rt group (apache) ...found
bin owner (root) ...found
libs owner (root) ...found
libs group (bin) ...found
web owner (apache) ...found
web group (apache) ...found
CLI dependencies:
Term::ReadKey ...found
Getopt::Long >= 2.24 ...found
HTTP::Request::Common ...found
Term::ReadLine ...found
Text::ParseWords ...found
LWP ...found
CORE dependencies:
Class::ReturnValue ...MISSING
以下省略

...MISSING になっているモジュールをインストールしていく。

CPAN を使い Perl モジュールの不足分をインストール

# perl -MCPAN -e 'install モジュール名'

RT のソースコードのあるディレクトリに戻って、再度 make testdeps する。

# make testdeps
...
Everything was found.

と表示されれば、必要なモジュールが全てそろっているので、make install する。

# make install
...
Congratulations. RT has been installed.


You must now configure RT by editing /opt/rt3/etc/RT_SiteConfig.pm.

(You will definitely need to set RT's database password in
/opt/rt3/etc/RT_SiteConfig.pm before continuing. Not doing so could be
very dangerous. Note that you do not have to manually add a
database user or set up a database for RT. These actions will be
taken care of in the next step.)

After that, you need to initialize RT's database by running
'make initialize-database'

/opt/rt3/ 以下に RT がインストールされるので、
データベースを作成する前に、RT の設定内容を RT_SiteConfig.pm に記述する

# Base Configuration
Set($rtname, 'rt.example.com');
Set($Organization , "example.com");
Set($MinimumPasswordLength , "5");
Set($Timezone , 'US/Eastern');

# Database Configuration
Set($DatabaseType , 'mysql');
Set($DatabaseHost , 'MySQLサーバアドレス');
Set($DatabasePort , '');
Set($DatabaseUser , 'データベースユーザ名');
Set($DatabasePassword , 'データベースユーザのパスワード');
Set($DatabaseName , 'データベース名');
Set($DatabaseRequireSSL , undef);

# Web interface configuration
Set($WebBaseURL , "http://rt.example.com:$WebPort");

1;

データベースの初期化

RT_SiteConfig.pm の記述に従って、データベースを初期化する

# make initialize-database


Apacheの設定

/etc/httpd/conf.d/perl.confに下記の設定を追加。

Listen ip_of_the_rt.example.com:80
<VirtualHost ip_of_the_rt.example.com:80>
ServerName rt.example.com
ServerAdmin Email.Address@example.com


DocumentRoot /opt/rt3/share/html

AddDefaultCharset UTF-8
PerlRequire /opt/rt3/bin/webmux.pl


<Directory /opt/rt3/share/html>
Order allow,deny
Allow from all

SetHandler perl-script
PerlResponseHandler RT::Mason
</Directory>
</VirtualHost>


Apacheを起動する。

初期ユーザーネームとパスワードでブラウザでログインする。
ユーザネーム: root
パスワード: password
2009-07-01 19:18:38

ITコスト削減

テーマ:システム関連

昨年のリーマンショックから、モノが売れなくなったという話を良く聞きます。



売上が落ちた時に、企業は何をするかというと、


コストを削減して、低い売上でも利益を出そうとするわけです。



IT関連のコストを下げたいというニーズは増える一方で、


弊社のようなサービス内容は手厚いけれども、価格はリーズナブルというのは


お客様にとてもマッチしているようです。




そんなこともあり、ニューテクノロジー株式会社様が音頭を取り、


ITコスト削減できる各分野のエキスパートな会社が集まり


ITコスト削減の為のポータルサイトが作成されました!

http://www.it-cost.jp/

内容は手厚いままで、なんとかコスト削減できないかとお考えの皆様。

是非、覗いていってください。

2005-12-11 03:32:45

エンジニアの共通言語

テーマ:システム関連

就職してしばらくしてから、1年ほどアメリカに派遣されていた事があり、


その時は、二つのミッションがありました。


1.関連会社の部署に机を置かせてもらっている都合上、そこの仕事を手伝う事


2.シリコンバレーにある会社にオーダーしている開発案件の日本ーUSのブリッジ役をする事


ミッションの1で、このブログでもたまに出てくる西川社長と知り合う事になるのですが、


今回はそちらではなく、ミッションの2のお話。。



アプリケーションの開発をオーダーしていた、ある会社(A社としましょう)には、

モルドバ出身でアメリカでドクターをとったTさんが、

開発のリーダーシップを取っていました。



そのアプリケーションは、ある分野の技術の専門家が使用するもので、

Tさんはその分野に精通した人でもありました。



普段、日本からのオーダーは、メールで私に届き、

Tさんと話しながら進捗状況の確認や問題点の確認を行い、

日本へレポートするという毎日を送っていたのですが、


数ヶ月に一度、日本からベテランのエンジニアのSさんがやってきて、

私では解決できない問題点について、話あっていました。



Sさんを初めてアメリカに迎えた時に、


「三角くん、僕は英語まったく駄目だから、

 先に今回話す事に関する事を君に全部説明しておくから、

 あとはよろしくね」



と、最初に技術的なレクチャーを受け、

Tさんとのミーティングに挑んだわけなのですが、


その分野の技術的なスキルが高くなかった私は、

話が高度になってくると全然ついていけず、

Tさんから質問を受けるたびに、


「Tさんがこういってるんですが、どう返事しましょう?」


と、Sさんに質問し、

Sさんからの回答を得るたびに、


「えっと、それって、こういうことですか?」


と自分が納得行くまで質問して、Tさんに回答するという事を続けてました。


そのうち、議論もヒートアップしてくると、


Tさん、Sさんとも、理解度の低い私を介して話をするのがじれったくなってきたんでしょう。。



二人とも前に出て行って、


「だから、これこれがこうなって、こうでしょ?」

「だから、こうじゃない?」


とSさんが日本語をしゃべりながら、図解と数式をだーっと書いていくと、


Tさんが


「ハラショー、ハラショー」


といいながら、つづきの数式を書いていく。。


英語、ロシア語、日本語が入り混じりながらの、数式トーク。。



最後には、がっちり握手する二人の姿がありました。。


その間、何も出来ずにポカーンと、その様子を見守るしかなかったのですが、


ベテランのエンジニア同士には、数式も共通の言語なんだなぁと


やけに感動しました。



エンジニアに言われて「ムカついた」ひと言を読んで、

http://rikunabi-next.yahoo.co.jp/tech/docs/ct_s03500.jsp?p=lwj012&__m=113385



こんな事を思い出しました。



2005-11-27 21:07:29

企業の理論

テーマ:システム関連

JRに乗るときには、毎回切符を購入するのですが、


先日、近所の駅で降りようと、改札機に切符を入れようとしたら、


「あれっ! 切符の入り口が無い!!」



そうなんです。


皆さん、既にご存知だと思うのですが、

スイカ専用の改札機だったのです。

#今頃気がつくなんてオセーヨとの声をいただいちゃいそうですが。。_o_


後ろに人がたくさん続いていたので、

あせりながら、切符を入れられる改札機を探したのですが、


その時、昔のある事を思い出しました。


いまから、はるか昔、小学生の後半ぐらいから音楽に興味がでてきて、

ラジオなんかをチェックしながら、テープに録音していたのですが、


ディスクジョッキー(懐かしい響きだ)の人が、前奏で色々しゃべり、

ボーカルが入る前に、「でわどーぞ」的な感じで、

ボーカルが始まり、

曲の途中でフェードアウトしながら、

また、トークが入るという流れでした。



その当時、


「おい!お前のトークは良いから、黙って最初から最後まで聞かせろ!」


という感想を抱いていたのですが、


そんな番組はなく、

あー、レコードプレーヤー欲しいなあと痛切に思っていました。


そんな我が家にも、ようやくレコードプレーヤーが来たのが、

中学2年の時。。

いやぁ、うれしかったなぁ。


そんなうれしさもつかの間、

数年後には、レコード屋からレコードが消えるという事態がっ!!


そうなんです。

全部、CDに入れ替わっちゃったんです。


レコード屋に行くと、おいてあるレコードの枚数が徐々に少なくなり、CDが占領する様になりました。


あの時ほど、企業の論理を感じた瞬間は無かったなぁ。

#それから10年以上たって、アメリカに行ったときは、

#テープと、レコードと、CDが共存していてびっくりした。


そのうち、JRもスイカ専用機しかおかなくなるのでしょうか。。


2005-11-24 13:22:50

職人の技

テーマ:システム関連

弊社のサービスは、


システムをいかに安定的に管理運用していくか、


お客様にコンサルティングできるところに強みがあるのですが、


先日、川出の手により、そのコンサルティングを行っている職人さんのインタビューが実施されました。


初めは照れながらだったのですが、


ビジョンに迫っていけばいくほど、


熱くヒートアップし、


なんと2時間のロングランインタビューになりましたっ!


取締役である名原の熱い思いが、皆様にも伝わればよいなと思っています。


インタビューはこちら↓

http://www.forschooner.net/modules/tinyd0/index.php?id=8




2005-11-21 22:53:24

あどみんくん

テーマ:システム関連

うーむ、運用管理の苦悩がここに。。


がんばれ!アドミンくん

 

2005-11-10 23:59:32

バイナルジャンキーの方々へ

テーマ:システム関連

サウンドファインダー 、とうとうオープンしました。

品揃え、やばいらしいです。




弊社で運用してます。


宣伝がてら。。


2005-11-07 21:33:23

プログラマの哀愁

テーマ:システム関連

あるプログラマーからのメール



「携帯サイト構築も、一般のシステム開発も6年前からやっていましたが、

昨今の単価下落に呆れまして最近は新規のお客様は請けておりません。
悪しからずご了承ください。」


ネットワークがつながるようになって、場所や距離が関係なくなり、

東京の仕事を、地方で行うというスタイルも一時期話題になりました。。



でも、同じ仕事をしてくれるなら、安い方が良いわけで、、

日本のシステム開発の仕事も、中国やその他の外国の会社にオーダーしたり、

開発の拠点を海外に移したりと、どんどん日本から出て行くようになりました。



今後、そのような流れはますます加速していくと思われます。



自分と同じクオリティーの仕事を行うけど、人件費は自分の1/10という人たちと、

どのように勝負していくのか?


日本のプログラマーは、ようやく自分のポジションを考える時期に来ていると思います。




2005-06-19 20:24:02

IT業界は力仕事?

テーマ:システム関連

こんばんわ~

週末はいかがお過ごしでしたか?


IT業界に働く皆様、お疲れ様です。


先日、知り合いが働く会社に、新しく事務の女性が入ったそうです。

IT業界は初経験だったみたいなのですが、



「ITの会社って言うから、洗練されたイメージだったんですけど、


仕事はずいぶん泥臭いんですね!!」


とおっしゃったそうです。



そうなんです。

何でだか、イメージ良いんですが、ずいぶんと力仕事なんです。

人力勝負なところが結構ありますよね。



昔、歴史で習った産業革命以前の家内制手工業みたいなところもあると思います。



あるビジネスを企画している会社さんがありまして、

既存パッケージを用いて安くシステムを構築しようと考え、

何社かのパッケージ屋さんに見積もりを取ったのですが、

どこからも、



ゼロから開発するより高い値段が提示されたのです!



いやぁ、これには、びっくりしました。


パッケージ屋さんいわく、


「そのままでは使えず、カスタマイズしないといけないので」


ということでしたが、



家内制手工業ゆえでしょうか???



知識と経験に基づいた熟練の技も重要ですが、

産業革命も必要だよね~

と改めて思った出来事でした。




産業革命のアイディアは色々あるので、

一つ一つ実現していきたいなと思っています。



Amebaおすすめキーワード