ペペロン頭脳

ソフトウェアエンジニアのメモ的なアレ。

ついカッとなって自作ラオシャン。

f:id:peperon_brain:20140611230204j:plain

君はラオシャンを知っているか

ラオシャンはタンメンの店である。しかしタンメンと言っても野菜が盛りっと乗っているタンメンとは似て非なるものである。いや似てなどいなかった。とにかく非なるものである。
ラオシャンのスープは透明である。透明なスープは酢の風味を発している。そのスープに浮かぶのは生タマネギのみじん切りと純白のストレート麺である。
他に具はない。せいぜいトッピングでワカメが選べる程度である。ラー油はお好みで。

シンプルにも程がある構成なのだが、これがなかなかの中毒性を誇っている。
なぜ取り締まりの対象にならないのかが不思議で仕方がない。

ラオシャンは神奈川県平塚市の本店を中心に数店舗しか存在しない。おそらく他の地域に同系統のものはない。知る人ぞ知る系の店である。
正直シロコロホルモンよりもソウルフード度は高いと思っている。つーかB級グルメとか騒ぎ始めるまでシロコロなんて知らなかったと厚木市民の8割は口を揃える。

禁断症状が出た

地元にいた高校時代まではちょくちょく食べていたのだが、この10年ほどはご無沙汰していた。
たいして中毒じゃないじゃん、というツッコミはなしでお願いしたい。
それが今年正月の帰省の際に急に食べたくなってしまい帰り際に一杯摂取していったのだが、
あ、やっぱりうまい。これはいかん。となってしまい持ち帰り用のセット(値段は同じ)を2つ購入した1月3日。三が日に店開けてるってのが地味にすごい。

持ち帰って楽しんだのだが、そんなものはすぐに食べつくして早半年。
地元までは電車で片道1時間。行けなくもないがそこまでして行きたくもない。しかし食べたい。
今日昼過ぎに思い出してから仕事も手につかず、イヤハヤイヤハヤ・・などと呟きながら再現レシピを検索するも手応えなし。

もっと手軽にラオシャンライフを送るためのDIY

レシピ検索ではそのものずばりな情報は得られなかったのだが、以前の持ち帰り用セットから味の見当はついていた。スープの原液はイタリアンドレッシングに似ているのである。
つまり酢と油がベース。そこに塩分とタマネギが乗ればそれっぽくなるのではないか!?
麺は素麺か冷麦でいけるのではないか!!

つーわけで材料を揃えて試してみたら、なんとできてしまった。
本物には及ばないが、かなりいい線いってると思う。

※クックパッド初投稿です。
※というかこの記事書くためにアカウント登録しました。

袋麺に毛が生えた程度の労力でラオシャンエッセンスを得ることができるので、皆様にもぜひ試していただきたいと思います。
飲んだ後などには最高でございますのよ。

Enjoy!!

IT系勉強会は怖いか?いや君、不安にかられる必要などないのだ。

業務外の活動が必要だと感じた

エンジニアとして働き始めてから、Webでの情報収集(ほとんどはてブホッテントリ)は日常的にやってたしすごく役に立ってるんだけど、リヤルなフェイストゥーフェイスな情報交換とか学習ってのをやってなかったのね。
SIerでやる業務だけでスキルアップしようとしても使用する言語やプロダクトは固定されてしまっているし、このままだと5年10年経った時に完全なる古漬けオジンになるかも、という危惧があった。感度が下がって鍛錬と吸収をやめてしまった結果、staticおじさん化してしまう未来だけは避けたい。なんとしても。
それに先輩も「エンジニアなら転職する/しないに関わらず、いつでも俺は転職できるぞ!と言えるくらい鍛錬を積んでおくべきだよ」と言っていた。
というわけで今年度に入ってから、月に2~4回は何かしらの集まりに顔を出すようにしている。

どんな勉強会があるのか調べる

僕はもっぱらIT勉強会カレンダーで探している。
ATND,Zusaar,Connpassなど主要なサイトからデータを集めていてイベントをみつけやすい。
IT 勉強会カレンダー | みんなでシェア!イベントカレンダーのポータルサイト「Coyo.Me」

東京の開催が多いが、福岡・大阪・愛知・北海道といった都市でもそこそこの頻度で開催されていることがわかる。
地域を問わなければ平日はだいたい10本程度、休日はその2から3倍がいたるところで開催されている。勉強会やらセミナーってこんなにあるのか!
趣旨も様々で、流行りのフレームワークに関してだったり、各種言語の入門講座だったり、Linuxカーネルとかコアでディープなのもある。
技術の勉強だけでなく、SIer→Web転職関連のセミナーや情報交換の集いなんかも少なくない。

面白そうなのを見つけたらカレンダーからリンク先のイベント開催系サイトに飛んでエントリー。人気が高いのはすぐ埋まるから気をつけろ!

勉強会は怖いか?いやそんなことはない

正直いうと、以前は怖かった。勝手に怖がっていた。
ITエンジニアを自称していながら、経験があるのはWindowsExcel、VisualStudio。Web系の知識ないしLinuxもまともに扱えない。Vimも使えましぇん!!!ホッテントリに上がってくるVagrantやらDockerやらの華やかなエントリについていけないのぉぉ!

こういう卑屈思考なので巷の勉強会もイケてる内容にイケてるエンジニアが集ってると考えていて、そんなところに行ったら鼻で笑われるのがオチではないだろうか!いやそもそも話題についていけないのではないだろうか!などと逡巡しまくりのためらいボーイを演じていた。

だが、今一度上記のIT勉強会カレンダーを眺めてみよう。
たしかにハッカソンやら濃厚そうなイベントも多いが、よく見てみると意外と初心者向けの内容もあることに気づくはずだ。はじめての○○とか、さわってみよう!○○など。啓蒙心あふれる有志の方々がいろんなイベントを開催して下さっている。
行ってみるとみんな優しいし、案外似たような悩みを持ってることなんかも多かったりして話が弾むこと請け合い。
知らないことを恥じらう必要なんてない。知らないからこその勉強会なのだ。

これに乗らない手はないだろう。だいたい小規模開催のものは参加費も無料orドリンク1杯程度がほとんどで、懇親会費含めても上限\2,000程度であることが多い。
技術ばっかりじゃなくて、単純に社外の人と色んな話ができるしお得。
巨人の肩に乗れ!!
(ちょっと使い方違う?)

最近参加した勉強会

みんなでGitHub勉強するにゃんっ!

3月末に開催されたイベント。これは感想記事を書いています。
みんなでGitHub勉強するにゃんっ!に参加した。 - ペペロン頭脳
文字通り初心者向けながらもプレゼンターが豪華だったりGitHubの人がLTしてくれたりと盛りだくさんなイベントでした。自分で手を動かして体験できたのが大変良かった。
こういうイベントに出て参加者と話すと、一口にITといっても色んな業種・色んな職場環境があるのが本当によくわかります。

SIerでSEだった講演者がWebエンジニアに転向し、どのようなキャリアを歩んできたか余すことなくお伝えします。

【増員決定!<45名→60名>】【ヒカ☆ラボ】【Web系希望エンジニア必見!】SIerでSEだった講演者がWebエンジニアに転向し、どのようなキャリアを歩んできたか余すことなくお伝えします。 on Zusaar
文字通りの内容です。日立系SIerに務めていた方が決心してWeb系企業に転職するまでの軌跡についてお話してくれました。
ギョーム系のかっちりシステム作っててコードはあんまり書けない、俺はもっと手を動かして楽しいプロダクトを作りたいのに!なんてフラストレーションがたまってる人のハートキャッチしちゃう系のイベント。
主催・会場提供がレバレジーズさん。プレゼン後の懇親会で社員の方とキャリアについてのお話もできます。
渋谷ヒカリエでやってるっつーんで【 ヒカ☆ラボ 】と銘打って毎週のように色んなイベントを開催しています。来週もYeoman紹介のイベント参加しますでよ。

HTML5でLeapMotionを体験

[初心者向け][第5回] HTML5でLeapMotionを体験 on Zusaar
ちょうど1年ほど前に発売され話題となったLeapMotion、持ってない方も実際に触れてみて体験してみよう!というイベント。ゴールデンウィークの締めに相応しい会でした。
用意していただいたサンプルコードを使って、node.js経由でブラウザにLeapMotionから送られるデータを表示したりゲームで遊んでみたり。他にもKinectの体験も出来たり、ウェアラブルデバイスの未来について議論が白熱して「人類は早く電脳化すべき」という意見も出たり濃いイベントでした。
LeapMotion欲しいなー。でもRaspberry Pi + Arduinoも欲しいんだよなー。
ちなみにこの会は隔月開催。次は7月だそうです。

プログラミング勉強会(C++,Java)

プログラミング勉強会(C++、Java) 5月15日(木) - connpass
去年から始まり、ほぼ毎週のように開催されているそうです。僕は先日木曜が2回目の参加。
主に渋谷のIT系カフェやイベントスペースにて、2時間ほど集中して各自プログラミングの問題を解く。比較的ストイックな集まり。
問題は主催者の方が運営しているサイトから出題。ブラウザ(Chrome)上でC++,Javaのコーディング・コンパイル・実行まで出来るようになっています。
CodeResume - コードを書いて脳に汗をかく、JavaとC++の本格プログラマになるための勉強サイト
ドリル感覚で問題を解き進めていき、疑問点はすぐ質問できる。問題のレベルは初心者から上級者まで幅広く用意されていて、門戸が広い勉強会です。
継続して参加したいし、何かしら貢献もしたいと思っている今日このごろ。

素敵なdevライフのために、行くべし行くべし勉強会

これだけ草の根な感じのイベントが充実してるのはITならではかなーと思うのね。
タッチしないのは実にもったいないので、以前の僕のように躊躇している方がいればぜひ一歩を踏み出してほしいと思っています。
いずれどこかでお会いしましょう!

プログラミング知識皆無だったころの自分が持っていた疑問に答える

プログラミング(ほぼ)未経験の状態からITエンジニアとして就職して、4年が経った。
節目というほど節目でもないが、首記の件について思い起こしつつ書いてみようと思う。
あくまでもざっくりした説明にとどめるので細かいツッコミはなしで。

センター試験の問題にあったプログラムをメモ帳に書いて、拡張子をexeにしたけど動かない。

これは高校生のときだな。
すごく恥ずかしい行為なのだが、世界中探せばこういう勘違いをした人はきっといるはずだ!いてくれ!

君は3年ほど前からノートPCをいじっていたとは思うが、プログラミングの知識は0だった。
巷にはフリーソフトがたくさんあって、いくつか気に入って使ってるものもあるが、自分でそういうものを作れるとは思えないし調べる気もないというアンニュイ感あふれる受験勉強生活を送っていたはずだ。
で、目についたのがセンター数学ⅡBのプログラミング問題。
あれはBASICという言語で書かれている。

10  LET N=1
20  PRINT "n=";N;
30  N=N*2
40  IF N<20 THEN GOTO 20
50  END

なんとなく単語から意味が分かりそうな気もするが、君には暗号にしか見えていない。
そのままテキストとして打ち込めば動くような気がしていたのだろうが、残念ながら世界は甘くなかった。
これは人間が読み書きしやすいように定められた言語で、機械は直接読むことはできないのだ。
これが?と思うかもしれないが、実際にプログラムを走らせるにはこれを「機械語」に翻訳してやる必要がある。
機械語はコンピュータという機械が直接理解することができる数値の羅列。コンピュータは0と1で動く、というのはよく知られているが、まさにそれだ。人間様も鍛錬を積むことで読み書きできるらしいが、普通はやらない。
そしてこの機械語への翻訳処理を行うプログラムのことを「コンパイラ」と呼ぶ。名前くらいは聞いたことがあるんじゃないか?
Windows向けのBASICコンパイラをどこからか手に入れて、上のプログラムを翻訳・実行してやるとこう表示されるはずだ。

n= 1 n= 2 n= 4 n= 8 n= 16

ちなみに、世の中には一度翻訳する手間をかけずとも、書いたまま実行でき(ているように見え)る言語(と実行環境)も存在する。
それを知るのはもっと後の話。

うーんしかし半端にPCをかじったくらいの時にありがちな、拡張子についての勘違いとか拡張子信仰のようなものが垣間見える。

データベースって何に使うの?エクセルでできるじゃん。

プログラミングの話ではないが、密接に関係する事柄なので。
これはいつだったか。教科書か何かにデータベースの説明がちょろっと載っていたが、データを管理するソフトということ以外よくわからなかったのだった。
オーケー。たしかに君はExcelで住所を管理して年賀状を作っていたな。あれも一種のデータベースだ。データを項目ごとに表として整理・保存できる仕組みだ。
だが、教科書に出ていたのはそういうこまごました台帳ではなくて、もっと大きなスケールで利用されるものなんだ。
君は「パソコン」しか知らず、社会のあちこちで動いている情報システムのことはよく知らなかったのだから無理もない。

たとえば君はYahoo!Japanのアカウントを持っているな?
検索エンジンYahoo!メールもYahoo!そしてテキストサイトFlashサイトの群雄割拠、そういう時代だったな。

話を戻すが、自分のIDや送受信したメール、ヤフオクの利用履歴なんかはどうやって保存されているのだろう?Excelみたいにファイルに書き込んでいるのか?
できなくはないかもしれないが、何百万何千万のアカウントがある巨大なデータからひっきりなしにレコードを探して読み込んで更新や追加もして、というのは無理がある。
特に更新や追加が発生する場合、色んな表の整合性を保ちつつ高速に処理するというのがExcelのような仕組みでは困難なのだ。
そこで必要になるのが、こういった処理を専門にやるデータベースソフトウェアだ。多くの場合、データベース専用のサーバーを用意して動かす。
これを使うと、「この表とあの表から、このIDに紐付くデータを取ってくる/更新する」といった処理がやりやすくなる。プログラムと連携させるのにも向いている。
そしてなにより大量のデータを安定的に・高速にさばけるよう工夫が凝らしてあるのだ(真価を引き出すには知識が必要だが)。

この話をSuicaのシステムとか銀行のお金の管理なんかに置き換えてみると、より重要性がわかってくるはずだ。

数値計算の結果を黒い画面に出せることはわかった。でもどうやったらフォトショみたいなソフトができるの?繋がりが見えない。

これは大学の時。1年次の必修科目に情報処理入門というのがあって、文理関係なくC言語とHTMLの勉強をさせられるのであった。
このとき初めて「コンパイラ」を使ってコードから実行バイナリを生み出す体験をしたわけだ。
しかしたかだか10時間そこら、しかもC言語。教えられる内容は簡単な数値計算がせいぜい。習った通り素数を羅列したりは出来るようになったが、この延長でGUIのアプリケーションが作れるとは到底思えない。

それは君が「OS」の役割について一部しか理解できていないからだ。

たとえばWindowsのペイントソフト。
まずウィンドウがある。メニューがある。絵を書くためのキャンバス、ペンやブラシとその太さを変えるボタン、色を選ぶパレットなど色々な部品が集まって出来ている。
こういった部品を画面に出すために、「WindowsAPI」というものが用意されているのだ。
これはWindowsというOSが提供しているインターフェイス(窓口、関数群と思ってもらえればOK)で、必要なヘッダファイルを集めてきてインクルードすると自分の書いたプログラムの中から呼び出せるようになる。
これを使って部品を用意したり、ファイルの読み書きなどOSの機能を呼び出したり、ボタンを押した時(イベント)の動作などは自分でプログラミングしたり、というのを積み上げていくとやがてGUIアプリケーションが出来上がる。はずだ。
ここまでの話でWindows向けアプリが他のOSで動かない理由もわかって頂けたと思う(Javaで書いたアプリなどを除く)。

また、生のままのWindowsAPIを扱うのは割と煩雑なので、外側から包んで扱いやすくまとめたもの(フレームワーク)もある。VisualStudioなど開発用のソフトを買うと利用できるようになる。
そして10年後の君は平日ほぼ毎日VisualStudioと向き合っている。



長くなったのでこのへんにしといてやろう。
もう一度言いますが、あくまでもざっくりなのでよろしくオネシャス。