コマンドとシェルスクリプトで企業システムを作る ---USP研究所の取り組み #kernelvm

第七回 カーネル/VM探検隊&懇親会 http://atnd.org/event/kernelvmseven
6
Yoshikazu GOTO @goto_ipv6

上田さん: @uecinfo という会社の広報用のアカウントが。 #kernelvm

2012-04-22 15:21:07
Yoshikazu GOTO @goto_ipv6

上田さん:bashでCGIを書く人です。実物があります。USP友の会のWebサイトですが、裏bashです。 #kernelvm

2012-04-22 15:21:48
Yoshikazu GOTO @goto_ipv6

上田さん:インジェクションされまして、じゃあ、bashで作っちゃえばインジェクションされないでしょう、ということで。 #kernelvm

2012-04-22 15:22:08
Yoshikazu GOTO @goto_ipv6

上田さん:半日で作りました。 #kernelvm

2012-04-22 15:22:25
Yoshikazu GOTO @goto_ipv6

上田さん:連載をいただきまして、SD誌で、開眼シェルスクリプト、という記事を。 #kernelvm

2012-04-22 15:23:05
Yoshikazu GOTO @goto_ipv6

上田さん:USP研究所:シェルスクリプトでシステム開発をする会社です。元請け・少人数で開発・自社開発指導も(お客さんのところで指導)。 #kernelvm

2012-04-22 15:24:05
Yoshikazu GOTO @goto_ipv6

上田さん:自社開発指導: ・顧客企業の情報システム部にて →CUIでOSを使う講習(TeraTermをインストールさせる) →→企業の情報システム部っていうのは、プログラムを書く人ってのはほとんどいません。Word・Excelですね。 #kernelvm

2012-04-22 15:25:25
Yoshikazu GOTO @goto_ipv6

上田さん: →次にさせるのがvimですね。だいたい、日本語のところでみんな躓くんです。 →次に、awk/sedをつかせます。 #kernelvm

2012-04-22 15:26:09
Yoshikazu GOTO @goto_ipv6

上田さん:いわゆるSI業界の常識: ・4次受け5次受け当たり前 →大学生の人は、え?っていう世界でしょうけど →DBのレイアウト票の作者が、某大手の3次受けの会社。1次2次は何を? #kernelvm

2012-04-22 15:27:33
Yoshikazu GOTO @goto_ipv6

上田さん: ・どのRDBMSを入れるか?から始まる。 →DBありきなんですね。 #kernelvm

2012-04-22 15:28:25
Yoshikazu GOTO @goto_ipv6

上田さん:システム開発は厄介: ・見えない(特注になるし) →安いと言われても実物がどんなものになるかわからない →→完成と同時に分かる ・失敗リスク →抱える人・ものが多くなる →→失敗しない設計を請け負うSE、カウンセラー、下請け、弁護士 #kernelvm

2012-04-22 15:30:42
Yoshikazu GOTO @goto_ipv6

上田さん: →→コレを入れれば大丈夫、というミドルウェア →→俺たちは成功する!という広告を請け負う広報/代理店 #kernelvm

2012-04-22 15:32:41
Yoshikazu GOTO @goto_ipv6

上田さん: 実際に書く人よりも、周りの人のほうが増えてしまう。これはよろしくないでしょうとは。 #kernelvm

2012-04-22 15:33:05
Yoshikazu GOTO @goto_ipv6

上田さん:どう戦うか?: ・実績をとにかく重ねる。最初は大手小売店で採用してくれたので実績ができた。 ・自分たちで作ってもらう。外に出すから高いですし、弁護士とか。 ・仲間作りですね。ソフトウェアというものを理解している方に仲間になっていただきたい。 #kernelvm

2012-04-22 15:34:22
Yoshikazu GOTO @goto_ipv6

上田さん: ・失敗しない仕組みを。我々が生きている部分はこれ。失敗したら会社が終わるんでしょうけど。マニュアルを作っていたり。あとはアーキテクチャの見通しがコツかな、と。 #kernelvm

2012-04-22 15:35:12
Yoshikazu GOTO @goto_ipv6

上田さん:USP手法(ユニケージ): ・コマンド+シェルスクリプト ・データをテキストファイルで持つ →ファイルシステムをそのまま使う ・余計なソフトウェアを入れない(ブラックボックスを作らない) →コマンド, apache, NFS #kernelvm

2012-04-22 15:36:26
Yoshikazu GOTO @goto_ipv6

上田さん: ・データを整理するノウハウの塊 →自由度の高いファイルシステムに、データ基盤を作る。 →ユニケージは、実はこのあたりが。 #kernelvm

2012-04-22 15:37:02
Yoshikazu GOTO @goto_ipv6

上田さん:データの整理整頓(レベル分け): ・実社会でのデータの流れを意識 →受け取った伝票は捨てないで閉じておく(レベル1) →閉じた伝票をノートに全部書きだして台帳とする(レベル2) →台帳から何か統計データを集計する(レベル3) #kernelvm

2012-04-22 15:38:16
Yoshikazu GOTO @goto_ipv6

上田さん: ・データを利用するアプリケーション →統計データを加工、開かれたら答えるデータを準備(レベル4)Web画面で見せたい場合にポンと出したり。 →(レベル5もある) #kernelvm

2012-04-22 15:39:21
Yoshikazu GOTO @goto_ipv6

上田さん:実物: ・ログをコピーする(レベル1) ・このままでは awkで扱えないので、扱える形式に変換(レベル2) ・集計の結果がレベル3。ここまで来ると、項目別にディレクトリを分けてある。 ・レベル4だとアプリケーション。表示する直前のデータが。 #kernelvm

2012-04-22 15:44:01
Yoshikazu GOTO @goto_ipv6

上田さん:DBを使う方法との差異: ・DB vs テキストという話ではない →DBを使う、は道具の話 →レベル1~5はアーキテクチャの話しなのでもっと親切 →データを整理して失敗を避ける仕組み #kernelvm

2012-04-22 15:46:04
Yoshikazu GOTO @goto_ipv6

上田さん: ・レベル1~5を実現する道具:DBをよりも生のUNIX →DBは木構造の概念が薄い→ディレクトリのほうが便利 ・ファイルからファイルの変換は伝統的なUNIXそのもの #kernelvm

2012-04-22 15:46:56
Yoshikazu GOTO @goto_ipv6

上田さん:USP手法(ユニケージ): ・コマンド+シェルスクリプト →コマンドはC言語で爆速 ・シェルスクリプトは、それを組み合わせるだけに使っている #kernelvm

2012-04-22 15:48:13
Yoshikazu GOTO @goto_ipv6

上田さん: 関数をあまり使いません。なぜかというと、パイプなどで終わってしまうから。 #kernelvm

2012-04-22 15:50:50
Yoshikazu GOTO @goto_ipv6

上田さん: 皆さんに使っていただけるオープン版があります。githubに。FreeBSDのportsも: /usr/ports/devel/open-usp-tukubai/ #kernelvm

2012-04-22 15:59:38