読書

読書

showm001.hatenablog.com

先日、漫画を読むことについてブログを書きました。

漫画以外の本は読まないのか・・というと、それなりに量は読んでいると思います。

 

仕事に関わる技術書はもちろんですが、小説などもよく読みます。最近は時間の関係で減ってきましたが、気になった本はちょこちょこ買っています(で、積んでるだけになるんですが・・・)

 

ファンタジー・SF

いずれも中学~高校時代くらいが一番読んでいたように思います。

ファンタジーはいまでいうライトノベルのはしりで富士見ファンタジア文庫ソノラマ文庫カドカワノベルといった辺りから入り、ゲーム原作や海外作品もよく読んでました。

ゲーム原作まで含めると、一番好きなのはベニー松山Wizardryのシリーズですね。「風よ、龍に届いているか」は最高傑作だと思います。

 

SFもクラークやウェルズなど古典から有名どころは読んだと思うのですが、最近ほとんど読んでなくてすっかり忘れてしまいました・・。

銀河英雄伝説は基礎素養ですね、ちゃんとおさえてます(笑)

 

歴史物

三国志吉川英治版を中学の時に読みました。その流れで水滸伝も読み始めたのですが吉川英治版は未完なのが惜しまれます。

日本だと漫画方面からの流れで隆慶一郎、大河方面から山岡荘八あたりはボチボチ読んでました。近年(というほど最近でもないですが)だと「天地明察」は面白かったです。

 

小説だけではなく、歴史を題材とした読み物系のものは最近もよく読みます。「陰謀の日本中世史」や「絶滅の人類史」、「科学の発見」は面白かったです。

 

科学

父の影響もあって、いまでも物理学に関するものはよく読みます。相対論や量子力学宇宙論などは分からないなりに楽しんで読んでいて、年に2冊くらいは今でも新しい物を買って読んでいます(いずれも読み物系の物ばかりですが)。

あとは数学に関する物もいくらか読みますが、こちらは最近は暗号やAIに関連する話が多いので少し仕事に関わるからという性質もあるように思います。

 

小説

推理小説や冒険活劇なども、最近の物はあまり読めていませんが古典的名作は小学校の頃からよく読んでいました。

 

それ以外・・という言い方が適当かは分かりませんが、ここ10年くらいで個人的に一番読んでいる作家は有川浩です。図書館戦争シリーズや阪急電車、植物図鑑などが好きです。

 

まとめ

ここに挙げていない分野でも色々と読んではいますが、最近はどんどん読書量が減って、買ったまま積んでるだけとか読み始めて止まってる本が沢山ですね・・。もう少し効率よく色々読めるといいのですが。

 

漫画と同じく、また好きな作品について今後のブログで触れられればと思います。

 

 

 

 

 

 

 

三つ星

三つ星シェフ

小林圭さんが日本人で初めて三つ星を取られたそうです。

 

www.sankei.com

今日たまたま付けたテレビで小林圭さんのエピソードが紹介されてて面白かったので、ちょっとメモがてらブログを書いてみました。

なお、エピソードや文言はうろ覚えや私の解釈が入ってる部分もありますので間違ってるところありましたらご容赦ください。

 

謙虚な努力家

彼が師事した人や関わった人が、口を揃えて「彼は素晴らしい才能の持ち主だが、とても謙虚で努力家だ」と言われていました。

休む間もなく努力をする、というのは成功された人の多くに共通することですが、私はやはりこの「謙虚」というところが凄いと思いました。

 

傲慢で我が道行ってて敵も多いけど同じくらい味方もいるといったタイプの成功者も多数いますが、個人的にはやはり謙虚な方というのは好感が持てます(偉そうな言い方ですが)。

 

戦略

若い頃から金髪にして一目で覚えてもらえるようにしたとか、フランス料理は地方料理の集大成だから地方の有名シェフに弟子入りして順番に身につけたといったこともそうですが、自分の店を出して一つ星を取られた後のエピソードが面白かったです。

 

尖った料理であっという間に一つ星を取られた後、ひとときオーソドックスな料理などを出していたときに、「最近大人しくなったね、もっとせめて自分のやりたいことやったらどう?」と言われたそうです。それに対し、彼が「それは分かってる。けど、これやらないと二つ星取れない。二つ星を取れば多くの実力を持った人が、スタッフとして雇って欲しいと世界中から門戸を叩いてくるようになる。そうすれば人を選んで自分のチームが作れ、もっとやりたいことができる」と答えたそうです。

 

まさにチームで働く、チームビルディングをするための戦略です。この視点を持ち、しかも「狙って星を取りに行く」ということを実践されたというのは凄いですね。

 

感謝

そして、三つ星を取られたときのインタビューで、自分を支えてくれたスタッフ、そしてフランス料理に対して感謝の言葉を口にされました。

ここにも彼の謙虚さが現れているのだとは思いますが、素直に感謝を口にできる人というのは素晴らしいと思います。

 

まとめ

料理とITというのは異なる領域ではありますが、技術で人を幸せにするという点で共通点があるのかな、と思います。そして、それを超えても分野を超えて存在する働き方・生き方・在り方に非常に感銘を受けたのでした。

 

戦略的な努力、チームで働くことの大切さ、謙虚さ、そして感謝の心を忘れないというのは大変参考になりました。

プログラミング言語(2)

学部の授業

プログラミング言語 - てんめも

 

前回に続き、大学時代以降です。

大学に入って最初に授業で触れたのはPascalでした。ここでコンパイル言語というものに初めて触れました。これまでインタプリタ言語しか触ってこなかったので「コンパイルする」というのは初めて触れる概念でした。

その後、大学では授業や実習ではC、Java(ほんとに出たての頃)、アセンブラ(68000系)、schemeSQLを使いました。

 

研究室では並列処理関係の研究室だったので、C++とMPIを使っていました。

 

趣味のプログラミング

この頃FreeBSDに傾倒し、プログラムを書くのはほぼFreeBSD上でemacsを使って行うようになっていました。

 

こんな中でこの時期に一番嵌まって書いていたのがX11用のプログラムでした。Xtで書くことで、イベントドリブンという考え方を初めて理解しました。

 

emacsを使っていたこともあってlispemacs lispもチャレンジしてみましたが、関数型はどうにも理解できず今に至ってます。これはトラウマというか人生の宿題みたいな意識があるので、定期的に関数型はチャレンジしてますが毎度挫折してます(笑)

 

アルバイト

この頃、大学のとあるシステムを作るプロジェクトに学生アルバイトで参加しました。そこでperlに初めて触れました。そして、その経験を生かし、先輩の会社でやっていたアルバイトでもperlを使っていました。

 

仕事でperl使ったもう一つ理由は、担当したプロダクトがwebアプリ(当時はCGIと言ってました。正しくはCGIは規格というか機能の名前だからちょい表現としては微妙ですが)で、インターネットプロバイダーのサービスで借りられるwebサーバで動かす必要があったので他に選択肢がなかったというのもあります。

気軽にwebサーバを自分で構築して公開できる時代ではなく、動的なwebページと言えばほとんどはperlで書いたCGIでしので「なんでrails使わなかったの?」といったツッコミはご遠慮ください。だって、その頃rubyはようやく正式版がリリースされるかされないかくらいで、railsは影も形も世の中になかったのです。Javaも出たてで、Javaで動的なwebページと言えばアプレットという頃でした。

 

お仕事

その後、先輩の会社でやっていたアルバイトのお仕事が本格化して、事業として独立して先輩と新しい会社を作ることになりました。

それがまさか20年続き、その間ずっとperlと付き合うことになるとはこのときは夢にも思いませんでした(笑)

 

そういった経緯もあって業務ではメインがperl、フロントエンドでJavaScript、必要に応じてC、JavarubyPHPpython、goなどを使うという感じでした。railsは波に乗り損なって結局使わずじまいでした。DBはつかうのでSQLも使ってますね。

 

そして、転職してからC#をさわり始めたという所です。

 

まとめ

振り返ってみると結構色んな言語で書いてますね。シェルスクリプトsedawkも基本くらいは使いますし、挙げてないけど多少は使える程度の言語はもうちょっとあります。

 

なんにせよ、新しい言語を学ぶのは色々楽しいです。是非皆さんも機会があれば新しい言語にチャレンジされてはいかがでしょうか。一つ二つ覚えると、次の言語はそれほど苦労なくある程度は行けるようになると思います(たぶん)。

私は落ち着いたらまた関数型のチャレンジしたいと思います!

xAI Meetupに参加してきました

xAI Meetup

xAI Meetupは、今回が初開催となる勉強会です。「AIをもっとカジュアルに使おう、みんな自分の得意分野とAIの組み合わせをやっていこう」という思いで石橋さんが立ち上げられた会です。「(得意な何か) x AI」なわけですね。

 

xAI Meetup - connpass

 

週末夜の地方開催にもかかわらず40名の枠があっという間に埋まりキャンセル待ち多数、ドタキャンもほぼなしというのは注目度の高さが伺えます。

 

今回、記念すべき初開催に参加してきました。弊社の同僚も多数登壇したので、その模様を書いてみたいと思います。

 

「xAI Meetup でしたいこと」(石橋さん)

まずは主宰の石橋さんから、会の趣旨の説明がありました。

人によってAIを導入する目的は違うけど、もっとみんなが身近な事にAIをカジュアルに使っていき、それをワイワイと楽しく話せる会を作りたいと熱い思いを語られました。

 

xAI meetup #1

 

「Alibaba Cloud ET Brain」(知念さん)

Alibaba CloudのMVPである、同僚の知念さんの発表です。

Alibaba CloudのAI関連サービスやソリューションは、中国国外のリージョンではまだ使えるものが少ないそうですが、リアルタイムに都市のデータを使って渋滞緩和などを支援する「ET City Brain」は他のクラウドブロバイダーにはない独自の視点のサービスで面白いなと思いました。日本リージョンでももっと色々使えるようになるのが楽しみですね。

 

「RC Car x AI」(山田さん)

主婦の山田さん、IoTや電子工作の分野でもなどで活躍されてますが、今回はラジコンカーとAIのお話です。Donkey Carという、ラジコンカーにラズベリーパイを載せて制御するキットを実際に使ってみたというお話でした。AWSのDeepRacerを自前で作る感じですね。

DeepRacerと違うのは、ラジコンカーを人間が操作して動かしてその様子を学習させ、その通りに自動で動かすという点です。人間が動かした教師データがあるからと思いますが、DeepRacerに比べてかなり精度良く走っている印象です。これは機会があればぜひ実際に自分でも動かしてみたいです!

 

Donkey Car – FaBo Store

 

xAI Meetup #1「RC Car x AI 」 - Speaker Deck

 

「テキスト書き起こし&読み上げLINE ボット」(松本さん)

同僚の松本さんの、LogicAppsを使ってノンコーディングでLINEボットを作られたお話です。

画像をLINEで送るとその中の文字を文字に起こして送り返してくれ、さらにそれを読み上げてくれるURLも付いてきます。これだけのことがノンコーディングでブラウザ上でポチポチして作れるというのは凄いですね。さらにちょっといじると英語への翻訳まで挟んで、日本語の文字が英語に変換され、読み上げも英語でされました。

 

実際にデモで動作するところも見られてさすがのプレゼンでした。

 

テキスト書き起こし&読み上げLINEボットを作ってみた

 

資本論xAI」(阿久沢さん)

7分で資本論の説明をして、そこからAIのお話に続けるという怒濤の展開。

案件は提案→PoC→開発と進むけど、AI案件は全体を見渡しやすいから開発者の方もぜひ提案の段階から参加して、全てのフェーズに関わってみて欲しいとのことでした。

 

「Container x AI」(加藤さん)

最後は同僚の加藤さんの、AI(AzureのCognitive Service)をどうやってコンテナで使うかというお話。Cognitive Service、特にCustomVisionでのお話を実例を挙げながらお話しされました。

CustomVisionは、独自の画像をアップして学習させることによって自分用にカスタムした画像認識を作れるのですが、なんとその学習結果をコンテナの形でエクスポート出来るそうです。エクスポートしたファイルをローカルなPCやオンプレのサーバに置いて、docker buildするだけでなんと手元で画像認識サービスが動き出します。これは驚きました。

他にもXamarinで使うためのものなど色々な形式でエクスポート出来るようなのでこれはぜひ試してみたいと思います。

 

なお、実例については著作権的に公開NGということで、スライドは公開されるそうですが残念ながらその部分は削られてると思われます(笑)

 

(2020/02/08追記:公開されたスライドへのリンクを追加しましたが、やはり実例部分は削られてました)

 

Container x AI

 

まとめ

初開催にも関わらず多くの方の参加があり、とても熱気に溢れた勉強会でした。色々なタイプのお話が聞け、大変楽しく勉強になりました。

登壇資料は恐らく公開されると思いますので、公開されたものは順次リンクを追加できたらと思います。

 

今後も月に1回程度開催したいとのことでしたので、ぜひまた参加し、いずれ自分も喋れたらなと思いました。

 

xAI Meetup #1 まとめ - Togetter

 

プログラミング言語

新しい言語

現在の職場ではC#を使っています。私はこれまでC#はハンズオンなどでのコピペ程度しか触ってなかったので、他の言語での経験を元にしつつ既存コードを読んで見よう見まねで書いたり、ググったり本を読んだり、細かいところは同僚に聞いたりして勉強しながらボチボチ頑張っています。

 

これだけガッツリやるのは久しぶりですが、やはり新しい言語を学ぶのは脳の使ってなかった領域が目覚める感じでとても楽しいです。

 

そんなわけで、今日は私のプログラミング言語利用履歴をちょっと書いてみようかと思います。

例によって(?)長くなったので今日も前半だけです。

 

BASIC

私が初めてプログラミングしたのはBASICでした。すがやみつる先生の「こんにちはマイコン」を読んで「なんか分からんけどめっちゃ面白そう!ゲーム作れるんだ!」と衝撃を受けたのですが、当時身近に触れるコンピュータもなく、ひたすら紙と鉛筆で机上&脳内プログラミングで遊んでました。

 

こんにちはマイコン - Wikipedia

 

父が勤めていた大学の研究室にコンピュータがあったので(たしかPC88)、夏休みや冬休みに遊びに行ってちょっとだけで触らせてもらい、今まで紙でやってたのを実際に打ち込んでみて動かしてましたが、行けても年に数日、そこで触れるのも数時間程度でした。

 

これが一変したのが中学の時でした。部活の先輩にsharpポケコンを譲ってもらい、初めて自分が好きにできるコンピュータが手に入りました。

1行13桁程度のモノクロの液晶に英数字しかでず、記憶容量も1kb(だったかな?)でちょっとしたものを打つとすぐに容量オーバーという環境でしたが、その中で工夫して色んなゲームを作ってました。

 

アセンブラ

中学3年の頃(確か)、親が自宅に仕事用でEPSONのPC98互換機を買ったので、親のいない間は好きに触らせてもらいました。ついに大きな画面とモニターとマシンパワーを手に入れました(80286にメモリ1MBですが)!

 

嬉々としてこれまでポケコンでは出来なかったサイズのゲームを作り、画像も出そうとしました。画像を書くためのペイントツールも自作しました。

 

が、BASICだとこれがとにかく遅い。特に画像扱い出すと遅い。画像データが大きくなってフロッピーディスクに収まらないので圧縮プログラムを書こうとしたけどこれもとにかく遅い。

 

そうなると次はアセンブラに手を出しました。当時使っていたN88DISK BASICにはモニタアセンブラ(行単位でニーモニックを入力していける簡易アセンブラ)がついていて、アセンブラで打ち込んだソフトをBASICからも呼び出せたからちょうど良かったんですね。あと、毎月買っていたパソコン雑誌「POPCOM」でアセンブラでプログラムを書く連載があってたのも大きいです。

 

で、なんとか画像圧縮・展開プログラムなどを書いてツールが十分な速度で動き出すと、その流れでゲームの前に周辺ツールを作るのにハマってしまいました。ペイントツール、ドットエディッタ、音楽ツール…どれもそれなりに動いていました。これがだいたい高校受験~入学くらいまでのことでした。

 

さあ次こそはそれを使ってゲームを作ろう!…となったかというと、ならなかった。次はその頃大流行りだったDTMにハマっちゃったんですね(笑)

毎日のようにシーケンサーソフト(私はBallade派でした)であれこれ打ち込んで、アレンジして…とやってました。

結局高校の間はプログラムは自作ツールを細々とアップデートしつつ、DTMばかりやってたように思います。

 

まとめ

小学校時代のはじめてのプログラミングから高校時代は、BASICとアセンブラだけでした。他の言語や環境のことは知らなかったということもあり、全く触ってませんでした。

 

次回は大学に入り、色々な言語に触れていくとこを書けたらと思います。

感謝

今日は前職でずっとお世話になった方と食事に行ってきました。

ずっと一緒に仕事をして、色んな事を相談し、教えを乞い、いつも私のことを気にかけ心配してくれていた方です。私のことを弟のように可愛がってくれ、私も彼を兄のように慕っています。

 

前職を辞したあとも変わらずわたしのことを気にかけてくれ、連絡をくれていました。そんな彼と今日は遅ればせながら新年の挨拶と近況報告で一緒に食事に行ってきました。 

 

感謝

長年一緒に仕事をしていればぶつかることもあり、主に私の未熟さから何度も喧嘩したり迷惑をかけたりもしましたが、こうして仕事を辞したあとも気にかけて頂けているのは本当に感謝しかないです。

今日も私が今の仕事が楽しくてしょうがないと話すのを目を細めて聞き、自分のことのように喜んでくれました。「君の表情が和らいでいるのを見て本当に良かった」と言われたときには涙が出そうになりました。

 

私は今後、彼の恩に少しでも報いることができるのでしょうか。私が幸せになることが一番の恩返しなのかも知れませんが、何か他にないでしょうか。恩は返すものではなく次代に送るものともいいますが、私がまた後輩や周りの人に対して彼にして頂いたように接すればいいのでしょうか。この感謝の念をどう表現すればいいのでしょうか。

 

今は言葉を尽くして感謝を伝えることしかできませんが、いつか何かできないかとずっと考え続けています。

チーム(前編)

チームで働く

先日、AWSの西谷さんが書かれた記事を拝見しました。

 

note.com

チームで何かを成し遂げるのは本当に難しいですね。私も何度も体制づくりに挫折し、いつまでも「自分がやった方が早い」という病から抜け出せずに一人で抱え込んでしまっていました。

 

コミュニケーション

人と協調して何かを行うにはコミュニケーションが絶対に欠かせません。端的な意味での対話だけでなく、仕事を分担したり、進捗を確認したり、自分のやったことを共有したり・・。

 

コミュニケーションというのは相互理解です。相手を理解しよう、理解してもらおうという双方の努力が必要です。そのため、一定以上のオーバーヘッドは必ず発生しますし、ストレスも発生します。

 

 

ならば、オーバヘッドがあるからコミュニケーションを除外する、コミュニケーションがなくても成し遂げられるように1人で仕事をすれば効率的に行えるのでしょうか?それは場合によってはYESであり、トータルで見ればNOです。

一人でやった方が早い病であった自分が何を今更偉そうに・・というものですが、実際にチームで働いてみてそれはより強く感じるようになりました。

 

並列処理

並列処理の理論で、アムダールの法則という有名な法則ものがあります。反論も多数ある法則ではありますが、ひとまずここではその辺は置いておいてこの理論に基づいて考えてみます。

 

ja.wikipedia.org

並列処理というのは理想的には処理する要素(例えばコンピュータならサーバだったりCPUだったり、チームであれば人であったり)がn倍になるとその性能がn倍になります。この状態を「リニアにスケールする」と言います。

 

この理論は、ざっくりいうと「どれだけスケールするかは、対象の仕事のうち本質的に並列化できない部分に縛られる」「それがどれだけ小さかったとしても、高速化には限界があり、リニアにはスケールしない」と主張しています。

人のグループに置き換えてみると、2人で仕事をすれば相互のコミュニケーションが必要となり、そのオーバヘッド分で1人でやるときの半分の時間で終わる(処理能力が倍になる)わけではない、これが人数が増えればオーバヘッドは指数関数的に増えてどんどん効率はリニアからは遠ざかる・・というのはなんとなく感覚的にはあってるように思えます。

 

それでも、リニアに性能が上がって無くても1人でやるよりは時間が短くなってるんだからマシだよね?だからチームでやろう?・・・という話かというと、ちょっと違います。

チームでやると、これがリニア以上になる(スーパーリニア)場合があります。これは「チームワークで1+1が3にも5にもなる」なんていう理想論ではなく、自分なりにこういう条件なら・・という思いもあります。

もちろん、逆にオーバヘッドによる性能低下が顕著で、「チームでやらない方がマシだった」というケースもありますが、それはチームのありようや問題設定、チームの規模などどこかに問題があった場合がほとんどではないかと思います。

 

まとめ

というところまで書いたところで力尽きたので、明日以降の後編に続きます。

ポエミィな所に無理矢理理論っぽいことを持ち込んではみたものの、はてここからどうまとめようか悩んでいるのを明日以降の自分に期待してます(酷い)。