Category Archives: 未分類

エンジニアが機械学習を仕事とする周辺環境

メイドカフェでノマド会 座談会開催しました!

を開催しました。

資料はこちらです。

僕はエンジニア視点で話しましたが、コンサルの方の参加もあって、話が広がりました。ここ数ヶ月もやっと思っていたことが議論をすることで腑に落ちた感じがします。若い学生の方の意見も聞くことができたこともよかったと思います。

議論の内容は結論はスライドに書いているとおりですので、そちらをご覧ください。

今後もこのようなプチイベントの開催を増やしていこうと思います。「参加したい!」「こんな企画をやりたい!」と思われた方はまずは、ノマド会の公式サイト にアクセスし、Slack, connpassに登録いただき、 Slack 上で声をかけていただければと思います。

「Swift」という名のバンドを見つけたから、エンジニア代表として話を聞いてきた

皆さん、Swift書いてますか?

今やObjective-Cじゃなくて、iOSアプリ開発はSwiftです!今年は「Android、もしやお前も!?」みたいな噂もあったりしました。既に多くの企業が注目していると言われる言語、もうエンジニアたるもの勉強しておかなければヤバイ雰囲気があります。

そんな中、今日はプログラム言語ではなく同じ「Swift」という名前で活動しているバンドを見つけたので紹介します。まあ、こじつけネタwwwと言わず、読んで欲しく思います。というのは、なんてGooglavility低いバンド名なんだ! さぞかし、SEOでは苦労しているだろうと、興味が湧いて、勢いでインタビューしてみたら、想像以上にイイ話が聞けてしまいました。

Swiftとは

Swift は、《会社》をコンセプトにして2015年4月から活動を開始したバンドグループで、リーダー兼ギタリストのホッタとヴォーカルの多田を中心に活動中。代表曲は「オレンジ」「手のひら」「BRAVER

リーダーのホッタくんと僕の仲

何を隠そう、僕とホッタくんは小学校の同級生で、今回のインタビューは久しぶりの再会でした。なので終始砕けた会話になっていることを、ご容赦ください。

もちろん、文章を校正して固い言葉に直すこともできたのですが、彼の人間性、思いを伝えるには、このままの方が良いと思います。

Swiftの名前は「響き」で選んだ

susumuis: 早速だけど、Swiftの名前の由来ってなに?

ホッタ: 由来?そうだなあ。「響き」かな。

susumuis: 響き?

ホッタ: 「優しい」「耳馴染みの良い」感じ。ほら、印象ってあるじゃん。強そうな人は強そうな名前だし、僕も一緒にやってるタダくん(「ハリー」って呼んでるんだけど)も、僕ら二人「優しい」イメージって言われるんだ。

susumuis: へえ

ホッタ: 第一印象で決めるのは良くないけど、人の性格って顔に出るよね。バンドにとっては、名前が一つの「顔」で「名刺」なんだよ!

susumuis: Appleの言語と名前がかぶったのはどう思うの?

ホッタ: 実はあっちの方が先で、知ってたんだよね。あと、音楽の世界では世界一稼いだ女性アーティスト「テイラー・スウィフト」もいるし、検索で勝てるわけがない!それでも「僕らに合ってるね」って選んだんだ

susumuis: 今検索してみたら、金融業界でも、SWIFTって組織があるよ!

就職しても音楽はできる!

ホッタ: Swiftのメンバーって実は全員就職しているんだ。仕事をやりながらでも、やりたいことを実現したいと思ってる。みんな仕事には責任があるから、それは守っていきたい。だから、仕事が最優先で活動してる。

susumuis: そうなんだ!

ホッタ: 「会社があるから」諦めてるやつ多いんじゃないかな?でも、「挑戦した?」「やろうとすればできるじゃん!」って証明したい。挑戦しないで口だけの人多いから。

susumuis: 僕らエンジニアの世界でもそういうのあるよ!「仕事が忙しい!」とか言って挑戦しない人。でも、やっている人はやっていて、気がついたら大きく差が開いちゃうんだよね。

ホッタ: でも、正直続けることの難しさはあるよ。「日本は音楽を続けるのは難しい」と言われるんだ。「バイトで生計立てて夢を目指す」人が多いんだけど、最終的に諦めるんだよね。「そろそろ就職しなきゃ」って言って。でも、「就職してもできるよ!って伝えたい。

「責任ある仕事をしている」というホッタの会社の名刺を見せてもらったら、とても立派な肩書がついていました!

《会社》をコンセプトにしたのは、人の大切さを伝えたいから

susumuis: コンセプトは「会社」ってことだよね。でも、正直言うと申し訳ないんだけど「会社」ってほら、ネガティブなイメージあって!「今日も残業だ。」とかへとへとになって、ライブに行ったら「また会社kayo。。。」みたいにならないの?

ホッタ: 会社ってそういうイメージもあるよねー。。。でも僕らにとっては「会社」=「ファミリー」なんだ。同じ目標を持って、志は同じでやりたいことをやる。そういう人たちが集まっていれば「辛いことがあっても、楽しい」と思えることが多いんじゃないかな!

「家族型経営」と呼ばれた会社の姿。それこそが真の会社のあり方なのかもしれません。リストラや経営合理化による非正規雇用の増加で「人が駒のように扱われている」今が異常なのかも。今こそ、「会社」をテーマにしたバンドをやる意味があるじゃないかと、聞いていて思っていました。

現実は厳しいけど、僕達は恵まれている!

ホッタ: そういうわけで、僕らは「仕事を大事にする」って事情だから、あまり多く活動ができないんだ。ライブも年に数回しかできない。普通のバンドは活動をしなければファンが減ってしまうから普通はライブを一杯やるんだ。別のバンドと共同でライブやったりしてね。そういうのを「タイバン」って言うんだけど。そして赤字でもライブをやる。僕らはそのやり方はどうなのかな?って思っているよ。

susumuis: それでもこの間のライブではライブハウスを満員にして大盛り上がりだったよね!あの時は何人いたの?

ホッタ: 100人くらいだよ!僕たちみたいに、バックボーンがない、事務所がついているわけでもない、そういうスタイルでは、この人数は多い方だと思う。僕達は恵まれているって思うよ!

「オレンジ」を卒業ソングとして広げたい

susumuis: 最初「オレンジ」や「手のひら」を聴いた時、「なんて優しい歌なんだろう」って思ったよ。あの曲はどういう思いが込められているの?

ホッタ: 「オレンジ」は「卒業」をテーマにしているんだけど、「卒業しても会えるでしょう?また違う仕事で繋がれるじゃん!その時は、当時と同じ距離感で接することができたら素敵だよね!」って思いが込められてるんだ。

susumuis: ITエンジニア代表として共感する!僕らは比較的流動性の激しい職業で「転職」ってありふれているんだ。お陰でしょっちゅう「卒業」してる。で、前に仕事したことがる人と、また一緒に仕事してたりするよ!だから、「卒業」のたびにこの人とまた仕事ができる日が来る!って思ってる。今の時代の「卒業」ってそうなのかもね。SNSの普及で普通に会えるし。

ホッタ: できれば卒業ソングとして定着させたいな。学校とかで、卒業式に合唱してくれたらいいな。

真面目にやっているから、ファンが離れない

susumuis: 偏見で申し訳ないけど「バンドマン」ってチャラいやつが多いってイメージあるじゃん。実際はどうなの?

ホッタ: 実際そういうの多いよ。僕らは先輩にも「お前らは本当に真面目だな」って言われるよ。だからなのかもしれないけど、一度ファンになったら離れる人が少ないように思う。

中学生の女の子が自分を「尊敬する人」と言ってくれた

ホッタ: 今までで一番うれしかったことで、中学生の女の子が学校の発表で自分を「尊敬する人」として紹介してくれたんだ。

susumuis: その子は元からの知り合い?

ホッタ: いや、元は相方のファンでライブに来てくれたんだけど、僕とは初対面。ネット番組とかで僕の思いとかを知ってくれて。

susumuis: それは嬉しいね!思うんだけど、バンドとか、アイドルとか表に出る人は若い人に影響を与えるから「ちゃらい」とかじゃなくてお手本としての責任も感じてるんじゃないかな。

ホッタ: そういう意味だと、TwitterとかSNSには気を遣っているよ!若い子が見ているから、自分がどう見られてるか。常にポジティブにして、ネガティブな言葉は書かないように気をつけてる。そこはオープンな場だから。仲間内だけのクローズドな場所じゃないからね。

今後は活動を加速していきたい!

susumuis: 今後の展望とかはあるんですか?

ホッタ: 活動を長く続けていきたいと思う。来年の4月で活動3年目なのでアクセルを踏んで活動をスピードアップしたいと思ってる。ライブ会場を大きくしたりね。それは大変になるかもしれないけど、沢山の人に知ってもらえたら良いなって。でも、いろんなことに手を出したら中途半端になるから、絞って行きたいとは思ってるよ。

susumuis: 期待してます!

今の時代は「人」が中心

ホッタくんの話を聞いていると、彼は思ったことを本当に率直に話してくれる人だなと思いました。そして根が明るいから、話してるこっちもだんだん楽しくなってきました。

彼らから学べることはこういうことなんじゃないかと思いますが、これは我々エンジニアにも大切なことだと思います。

  • 挑戦すること
  • 人を大切にすること
  • まじめにコツコツやること

これからも一層活躍されることをお祈りします。

ライブ情報

2月11日にワンマンライブがあります!

http://www.swift-inc.net/news

Javaが僕にくれたもの

この記事はJava Advent Calendar 2016の3日目です。2日目はmegascusさんのどこからも使用されてないクラスを列挙する、4日目はcero_tさんです。

退職しました

個人的な話で恐縮ですが、去る11月末をもって学生バイト時代も含めて12年間勤めた会社を退職しました。そこではずっとJavaを書いていましたが、次の勤務先ではPythonを書くので、今後Javaを書くことは少なくなるでしょう。

退職エントリは書きませんが、代わりに言語の卒業エントリを書こうと思います。一人よがりなネタですがお許し下さい。

初めての出会いはJDK 1.1をダイアルアップでダウンロードしたこと

正確な時期は忘れましたが、1997-8年頃ではなかったかと思います。「Javaという言語がすごいらしい」という噂をきいて、ダイヤルアップ回線で頑張って一晩くらいかけてダウンロードしてみました。その時落としたのはJDK 1.1ではないかと思います。

しかし、当時使っていたPentium 90MHzのマシンではサンプルアプレットのローディングに数分かかり、クリックの応答に数十秒かかるという状況でした。(「Java遅い!」をリアルで体験した世代です)

初めてまともに使ったのは、i-appliの開発

時は流れて、2001年1月「NTTドコモの新機種F-503i, P-503iが、Javaに対応して誰でもアプリが作れるようになった!」というニュースが入ってきました。この時高校生だったのですが

「これはやばい!ケータイがPCになってしまう!」

とか言って、親に土下座して買ってもらいました。

Javaといっても、CLDC(Connected Limited Device Configuration) 1.0という仕様の上に作られたJavaであって、「浮動小数が使えない」などの制限があり、しかもアプリ(すなわちjarファイル一個)のサイズは10KB以下に収めなければなりません。そこではclassファイルを増やすと容量がかさむから「クラスは一個にしましょう」と言われていました。Eclipseはまだなくて、JBuilderは僕のPCでは重いから、[CPad for Java] (http://hp.vector.co.jp/authors/VA017148/pages/cpad.html) というテキストエディタにコンパイラショートカットがくっついたようなエディタで頑張ってコーディングしていました。これと、コードの変数名を1文字にして容量を削る今で言うminifyツールみたいなのも使っていました。

その時作った作品はgistに貼ってあります高校の先輩がVBで作ったゲームを移植したものです。当時は雑誌の端に載ったりしました。

大学に入ってJavaらしくないJavaを学ぶ

2003年に大学生になったのですが、当時入った学科では、プログラミング教育にJavaを使っているということで、楽しみにしていました。ところが、そこで習ったJavaと言うのは

「配列をReturnする『関数』を作ってはいけない」
「まず配列を作ってメモリを確保しろ、その配列を関数のパラメータに突っ込め!」

みたいなやつでした。。。\(^o^)/

本当のJavaを求めてある本に出会う

そんな時に出会った本がこれでした。

今思うと現場思考で、非常にバランスの良い本だったと思います。

これで、少しはクラスとかデザインパターンというものを知った僕が、少しはプロセッサーパワーがましになった当時の携帯向けに作り直したのが[これ] (https://github.com/susumuishigami/bunshi2) です。

最近このコードをほぼそのままコピペして環境に依存する部分だけ書き換えてみたら、あっさりAndroidで動いてしまいました!

仕事でサーバーサイドJavaの世界へ

大学2年生の時から、プログラミングのバイトを初めます。従業員10人くらいのこじんまりとした会社でした。

始めて突っ込まれた案件は、Atg Dynamoというフレームワークを使っていました。すごい重量級フレームワークでした。二度と使いたくありません。

自社開発の仕事にアサインされる

その案件が終わってからは、ほぼ一貫して自社開発の製品の新規開発・カスタマイズをやっていました。そこで使っていた自社フレームワークはシンプルで使いやすかったですが、データは全部文字列で扱う流儀で、HashMapみたいなデータ構造に

set(“LAST_NAME”, “hogehoge”);
set(“FIRST_NAME”, “hugahuga”);

みたいなコーディングスタイルでした。。。まさか、このフレームワークをその後10年使い続けるとは思わなかった\(^o^)/

システムのリニューアルを任され、自由に学べる期間があった

ベンチャー企業というのは、何が正しいかよりも目の前の問題を最短で解決するのが良いとされることがあるので、その場限りの仕事を数年続けました。

転機は2008年の暮れ、主力システムをリニューアルする任務を与えられ、自由にやっていいと言われました。そこで、当時のトレンドだったWicket、Seasar、Spring、Google Guiceなどを全力で追いかけてみました。

本当はこの時社内標準フレームワークを刷新したかったのですが、工数を考えると既存資産を活かすことがどうしても必要だったので、従来の自社フレームワークに僕がOSSから学んだエッセンスを加えるという方針にしました。そのため、「フレームワークの使い方」より、フレームワーク自体のソースコードを読むようになり、特に、Seasar2のソースコードは読みやすくて勉強になりました。(Apacheライセンスなので流用もしやすく助かりました!)

結局、テンプレートエンジンとしてMayaaだけ採用しましたが、たまたまその後作ったサービスが成長したため、最もMayaaを使い倒している人みたいになってしまいました。

エンジニアとしての目標: 30までに勉強会で登壇する

僕は家庭の事情もあって、2009年ごろまで、IT系勉強会というものに参加したことがありませんでしたが、このまま無名のエンジニアではいたくないと思い、「30歳までに勉強会で登壇する」ことを目標としていました。

結果的には、
2012年と、2013年のJJUG CCC当時、28, 29の時に実現できたので、目標は達成したことになります。

Season Conferenceは2010を最後にしばらく開催されませんでしたが、もし、2011年に開催されていたら、この、2013年のネタはその時できたと思います。

最後のSeasar Committerになる

そして、久しぶりに開催された2015年のSeasar Conferenceが開催されこんなLTをし、

その後、初めてMayaa初代メインコミッターの栗原さん、現メインコミッターの須賀さんに出会うことができ、そのまま流れで僕もコミッターにしていただきました。そしてどうなったかはこのスライドのとおりです。

コミッターになってからした仕事はMayaa Advent Calendar 2015を書いたことくらいです。コミットしてないです。(今後必要があったら、コミットすることもあるかもしれません。コミッターになる前はバグ報告をしてパッチを送ったり、GitHubになってからは、PullRequestを送ったことがあります)

振り返って、Javaと僕の付き合いは何だったのか

僕はJavaで12年仕事のコードを書いてきましたが、今の今まで、J2EE、Java EEのような世界は、Servlet/JSPくらいしか経験がありません。EJBも書いたことがありませんし、JPAも使わず生のJDBCに独自ラッパーをかぶせてなんとかしました。SpringやSeasarContainerも業務で使ったことはありません。

勉強して、こういうの良いなと思ったら、ポイントポイントでどんどん取り入れていきました。アプリケーション・サーバーは、Tomcatくらいしか使っていません。そのため、本来であればアプリケーションサーバーが提供してくれるような機能も自作しました。

こういうところは、このあたり、一般的なJavaプログラマーとは違うかもしれません。

それならいっそ、PHPを使えば良いんじゃないかと言えますが、静的型付け言語であるJavaのIDEの実力・Eclipseにはお世話になりました。サービス開発初期は何が正解なのか分からず、動かしながら抜本的に作り直すなんてこともあります。その時、呼び出し階層・型階層の機能がなければつらいかった。

ただ、中盤以降はIDEに頼り切るスタイルが仇となって、どんどん重たくなって苦しくなりました。

持論ですが、ある程度大規模になると、場当たり的な設計をやめ、モノリシックをやめ、きちんと設計して、適度にマイクロサービスみたいにモジュール分割するのが正解だと思います。そして、各マイクロサービスは、JavaよりもLLの方が書きやすいと思っています。

Javaプログラマーから見たPython

新天地ではPythonistaになります。まだ一ヶ月くらいしか触っていませんが、Pythonは非常にとっつきやすい言語だと思いました。同じことができるフレームワークやライブラリが乱立せず、体系的に整っているように見えます。

お陰で非常に入門しやすく、何かをするにあたって迷ったりはまったりすることが極端に少ない言語だと思いました。

Javaは僕の育ての親

しかしJavaはSeasar Project等、日本発のJavaのOSSという教材に恵まれているために、質の良いコードを読ませてもらって学習させてもらえたことはかけがえのない経験だったと思います。

初めて触ったプログラミング言語はObject Pascal(Delphi2.0)ですが、業務で実用的に使い、多くの先人の知恵を学ばせてもらった、僕の育ての親はJavaであることは間違いありません。

これからはEclipseを起動することも少なくなると思います。そのうちショートカットも忘れてしまうかもしれません。それでも、僕のプログラミング哲学に影響を与えたのは、Javaであり、とりわけ、Seasar Project関係のOSSのそれぞれの開発者の方々の知恵を借りてこれからも頑張っていきたいと思います。

番外編 java-ja について

僕にとって java-ja は発足当時から憧れのコミュニティでしたが、家庭の事情でイベントに参加することは今まで一回もできませんでした。この記事が公開される12/3には java-ja 忘年会があって、実は java-ja のイベント初参加です。