no_picture

FlowとTypeScriptを同時に使う話を大正GeekNight Vol.2でしました

大正GeekNight Vol.2 で「静的型なきJS界を救う英雄たちの話」というタイトルでLTをしました。 実は会場に行ってなくて、LTしてる動画を録画して送りつけるという参加方式をとりました。 なぜ、会場に行かなかったかというと、私は介護者と共に行動する必要があり、イベントの時間は子供を寝かせる時間帯で、子供も連れてくるという選択肢以外には、録画かリモートで発表する必要がありるためです。 連れて行くという選択肢はありえないし、寝かせるタイミンで配信なんてできるわけがないのでがんばって録画しました。録画するタイミングもあんまりなくて大変だった。動画は倉庫に封印しています。 中身がないので、公開する予定は今のところないですが、希望があれば検討するかもしれません。(もしくはリベンジ) サンプルプロジェクトはこの辺に投げてあります。 https://github.com/eiel-sample-code/flow-with-typescript さて、本題ですが、身近なエンジニアがTypeScriptを始めた的な発言をしていたらFlowもどうですか?と聞いてみる遊びをしていたところ、同時に使ったらどうなるんだろうと気になったので、やってみたらできたというのが発端です。 といっても、TypeScriptはちょっとしかつかったことがなかったので、どんなことができそうか判断するために、FlowのドキュメントにあるコードをひたすらTypeScriptのPlaygroundで試すという遊びをしてみました。 その結果、ファイル分割していくとimportがつらそうだなとわかったので、importをつかいつつ両方でエラーできないコードと、FlowとTypeScriptでエラーがでるのが違うところになるようなサンプルコードをかいて、簡単に解説するという話になりました。 紹介した内容は、 MaybeがないのでHoge | nullというnullをくっつけたUnion TypeをつかってMaybeの代用してみた Object Typeの挙動の違い になります。 ところで、このサンプルコード大失敗があって、noImplicitAnyぐらいしかtrueにしていないというミスがありました。 https://github.com/eiel-sample-code/flow-with-typescript/blob/master/tsconfig.json#L4 スライド上にあるFlowだけエラーになるコードはTypeScriptでもstrictNullCheckをつけるとエラーになります。 TypeScriptの評判を落とすような誤解を招く可能性が多いにあり大変申し訳ないです。 蛇足ですが、個人的にはObject Typeの挙動が結構好きなので、Flowを使うのが楽しいです。 というわけで、あまり詳しくないものを活用して、思いつきでLTする場合は、有識者のレビューをいれるとより良いものになると思いました。 その他のFlowとTypeScriptの違いに興味があれば、FlowのドキュメントにあるコードをひたすらTypeScriptのPlaygroundで試すなど参考にしてみたりしてください。

no_picture

Hiroshima.rbから見たRubyKaigi 2017という奇跡

こんにちは。 「俺がHiroshima.rbだ」といっても過言ではない@eielhです。 そういえば、@jmettrauxが引き継いでしまったので、「俺が元Hiroshima.rbだ」が正しいかもしれません。 最初に書いておきますが、この記事はただのポエムである。 RubyKaigiが広島で行われたということは、PHPカンファレンス(本体)やPyCon JP(本体)、ScalaMatsuri(本体)などなどその他諸々が広島で行われる可能性だってある。もしかしたら広島以外でも開催されるかもしれない。 そういうことに繋がることを信じて、私の心境とか、心境に至る経緯を書き記しておく。 先日、我が師でもあり、弟子でもあり、ライバルでもある@NeXTSTEP2OSXがRubyKaigi (本体) が広島に来ることがいかに貴重なことかを語った。 それを踏まえて、Hiroshima.rbを始めた私にとってRubyKaigi 2017がどんなものであるのかを書きたいと思う。 私は何者なのか 2009年12月にHiroshima.rbを立ち上げ、2010年より広島でRubyに関するイベントを開催してきた人です。 2017年4月に病気の治療として補助人工心臓というものが植え込まれてしまい、大阪の病院の近くに住まないといけない状態になっています。詳細は最後に記載の別記事を参照ください。 「RubyKaigi 2017の開催を広島で」という話が出てきた頃はまだ広島に住んでいて、広島の最初のオーガナイザーとして参加しています。 しかし、3月より4ヶ月入院していたため、ほとんど名前だけのオーガナイザーです。 参考1 RubyKaigi 2017 Team 参考2 4ヶ月ほど入院してプログラマとして感じたこととか せっかくなので集客につながる活動ができればいいなと思いつつこんな記事をかいています。 Hiroshima.rbのはじまり ところで、さきほどの補助人工心臓を植え込むに至る病気が診断された頃の話をする。 それは2009年の7月でHiroshima.rbが立ち上がる数ヶ月前である。 私は25歳でした。 地方のIT事情に物足りなさを感じており、東京へ行ってみたいと思っていたりした頃です。 東京には技術的に楽しそうな勉強会がたくさん行われており、地方で生活する人間としてはとても羨ましく思うものです。 実際、多くの地方の優秀なエンジニアはどんどん東京へ行ってしまいました。 そんな頃に健康診断で心臓の機能が弱っているということを知ることになりました。 そこまで大げさ状況ではなかったのですが、なんとなくやる気は消失もして、仕事にも行かなくなっていました。 体力的にも独りで東京へ行くのも難しいです。 がんばる意味なんてあるだろうか。 その瞬間にはは特になかったのは間違いないです。 (最終的には一人で東京に遊びにいくぐらいには病気にはなれてしまうのですが) そうは言っても生きていかなければいけない。 どうせ生きていくならもっと楽しく生きていきたいと考えました。 私は少しづつ、少しづつさまざまな活動をはじめていきました。 その活動目的は「自分にとって楽しい場所」を作ることでした。 東京まで行かずとしても、自分にとって楽しい勉強会がもっとあれば良いと思ったわけです。 そこで、自分の興味があることで、最も人が集まりやすいだろうと思う「Ruby」をメインとした勉強会をするためにはじめたのがHiroshima.rbだったのです。 RubyKaigi 2017が広島で開催されるという奇跡 そんなわけでHiroshima.rbはちょっと変わっていて有名なRubyistと繋がりがあるわけでなくスタートしました。 Rubyコミュニティとしては完全に孤立していたのです。 あれから9年。そんなRuby的に孤立した広島で、今回RubyKaigiが行われるわけです。 私からすると奇跡にしか思えない出来事です。 それもそうで、広島開催に至る理由は 広島国際会議場に、たまたま僕らの希望の日程で空きがあったから 日本中探しても、そこ以外に僕らが探している条件にマッチした会場が見つからなかったから と記されています。 Hiroshima.rbの活動による影響は微塵もありません。 しかし、Hiroshima.rbが目的としたことが大きく達成できてしまいます。 オーガナイザー広島チームにすらRubyKaigi体験者はいません。 たくさんのrubyistとオフラインの繋がりもできるでしょう。 会ってみたい人もたくさんいます。 新たな出会いもあるでしょう。 そんな私の中から出てくる言葉は「うん、わけがわからない」でした。 こんな奇跡はなかなかない。 しかし、私は当日参加することはできそうにありません。なんてこった。 この奇跡をもっと活かそうぜ RubyKaigiを広島で成功させることは、今後RubyKaigiのようなテクニカルなイベントが広島で行われる可能性が高くなります。 これは広島がたいへん楽しい場所になります。 私にとってはたいへんお得です。 もし、同じようにたいへんお得だと思うのであれば、さりげなく宣伝してみたり、参加してみて国際会議の空気感を掴んでみたり、運営のノウハウを盗んだりしてみると良いと思います。 東京に行くことに比べるとたいへん低いコストで参加することができます。 素晴らしい経験になると思います。

no_picture

広島人によるRubyKaigi 2017のためのグルメ情報

広島が誇るスーパーエンジニアそーだい(@soudai1025)がRubyKaigiのための昼飯情報を提供している。 Rubyistが今すぐ知るべき大切なこと それに対抗するわけではないが、私が県外のイベントに参加したときに困った経験を参考に記事をかいてみることにする。 中立的に書きつつも、個人の主観を大量にいれているのでご注意ください。 また、個人で出てくるネタにも限界があるので、後に続く人がでてくると嬉しい。 RubyKaigiは1000人規模のイベントであり、1000人が一斉に昼ごはんに向かう事を考えるとおすすめの店を紹介するだけでは、役に立たない。 だから、会場の国際会議場周辺の事情中心に最初は書いていく。 どの方向にいけばどんなものがあり、キャパがどのくらいあると想像できるかも記していく。 つまり、近辺は広島グルメかどうか問わずかいていく。 また、遠くになるとさまざまな飲食店があるのでおすすめのみに留める。 広島グルメの復習 お好み焼き - 定番。派生もので府中地方の府中焼きもちらほら。地元の人は肉玉そば・肉玉うどんをたべるが観光客向けに牡蠣をトッピングしたものなどがある。量を食べたい場合は、麺ダブルというトッピングが定番。麺が増加すると焼き加減がいまいちな店がまれにあるので注意。 広島つけ麺 - 唐辛子のたくさんのったつけ汁でいただくつけ麺。野菜がたくさんのってることがおおい。お店にもよるが辛めを挑戦することをおすすめします。 広島ラーメン - 豚骨醤油の中華そば。 汁なし担々麺 - 現在広島B級グルメの王者。辛いものが苦手ならやめておくほうが良い。つけ麺よりリーズナブルですが、野菜などはあまりついていません。 あなごめし - A級グルメになってしまうのでお高い。広島市内ではそんなにお店はない。宮島口のうえのが有名。市内では弁当が購入できる。弁当もとてもおいしい。 牡蠣 - 定番。当たっても自己責任の世界。生ガキを食べたいなら、最終日や帰る前にどうぞ。 タコ - 居酒屋にいくと三原のタコがおいてあることがある。 ウニホーレン - 居酒屋にいくとあるけど、グルメとして名物なだけでウニがとれるわけではない。 小イワシ - 居酒屋で食せることがおおい。 ホルモン天ぷら - あまり知らない。誰かフォローたのむ。 番外 呉冷麺 - 食べれるところは少ないが広島市でもたべれる。ゴマダレの冷やし中華に近い。(あんまり詳しくない) 尾道ラーメン - 食べれるところはあるが、とりたてておすすめを知らない。 周辺状況 RubyKaigiは広島国際会議場で行われる。国際会議場は平和公園の南側に位置する。 周辺は公園なので、そこそこ移動しなければ、飲食店はない。 適当にぶらつきたいなら、大手町(南側)や紙屋町がおすすめ。 北方面はしばらく平和公園でやがて川にぶつかってしまうので、平和公園を散策したい、原爆ドームが見たい場合はかまわない。その場合、結局紙屋町方面にすすむのと同じになる。広島市民球場跡地でイベントをやってることがある。今回にかぎるとオクトーバフェストをやってる。 西方面は僕はあまり詳しくないが、いくつか飲食店がある。なんとなくいってみるのは有りです。 国際会議場は西方面が近いので、試しにいってみるのもよいでしょう。 南方面はお好み焼き屋、つけ麺屋、セブンイレブン、寿司屋などがあるがほとんど店舗はない。目的がない限りはおすすめしません。 間違いなく100席分も飲食店はありません。 (グーグルマップから引用したが、コピーライトがきれてしまっています) 東方向の南側 大手町(南) 東方向にすすんで、橋をわたって右手に位置する。 汁なし担々麺のお店が多く存在するので、辛いものが苦手なければ、第1候補となる区域。 更に東にすすむと小町区域。南に進むと鷹野橋というところへ行ける。 汁なし担々麺のお店が本当に多く、はずれはない。 キング軒 マップ 万人におすすめ。 花山椒 マップ 本物を追求したい人へ。

no_picture

4ヶ月ほど入院してプログラマとして感じたこととか

毎月スライドが公開されてたブログが突然と更新されなくなって驚かれたかもしれませんが、3月20日から4ヶ月ほど病院に入院していました。 せっかくなので、入院している中で感じたことを書き下しておきたいと思います。 (しかし、この記事は書き始めて1ヶ月後に公開されたため、ある程度日常生活をした上で書かれている) 本記事を結論を述べておくと「プログラマはこんな体でも世の中に貢献できる可能性がある」と感じた。 座っていて作業できて、リモートワークできる。努力しだいでは、世界で活躍するのも可能だ。 (世界で活躍はできていないけど) ざっくり目次 一体なにがあったのか 入院中に感じたこと 入院生活で改善したいこと 今後のこと まとめ 一体何があったか 心臓の血液を全身に流すチカラが弱くなってしまった。 もともと弱くなっていることはわかっていたが、これが悪化してしまい日常生活ができなくなりました。 そこで、補助人工心臓装置を体に植え込み、装置とうまく付き合うことで日常生活が送れるようになりました。 「安静にしとけ」って言われた同じような病気がある人は本当に無理をしないことをおすすめしたい。 無理をすることは自らに大きな制約を課すのと同等だ。 (そうは言われてもどこからが無理のある範囲なのかわからへんのや) より詳しいこと 広島の病院に入院していましたが、状況が改善しないため、より高度な治療が可能な大阪の病院に転院した。 治療法としては心臓移植をしかないが、現在の移植待機中の人達が大勢いるため、移植ができるのは3年以上先の見込みである。 移植する心臓は全く足りていないようだ。 代わりに、植え込み式の補助人工心臓装置を装着することで、退院可能な状態になる。 私は4月末に人工心臓装着し、7月末にさまざまな訓練を終えて退院した。 補助人工心臓を扱える病院は広島にはないため、現在は大阪の病院の近くに住んでいます。 大阪に移動するときヘリだったんだけど、ずっと寝たままで怖かった。 ヘリで移動後は、3週間ぐらい電波禁止の病室にいて、インターネットがつかえなくてさまざまな人と連絡とれなくてつらかった。 そういえば、脳梗塞とかもおきて、片目が動かなくなった。 さすがに仕事ができなるかとおもったけど、なおった。よかった。 人工心臓装置装着後のリハビリはたいへんって脅されたけど、中学生がやっているような炎天下の部活に比べたら大したことはなかった。パソコンが使えないため、退院するためにも、リハビリに対するモチベーションはかなり高かった。 結果、リハビリでは、補助人工心臓装置装着者の中では、最速の歩行速度という称号を得ることができた。 現在の状況 いくつか制限があったり、面倒なこともありますが、ほぼ普通に生活しています。 プログラミングもしたり、でかけることもできます。 最近は4時間ぐらい継続して作業することもできるようになってきました。 より詳しいこと イベントの準備を手伝ったり、Flowで遊んだり、Rustで遊んだり、Swiftで遊んだり、Scalaで遊んだりしています。 ETAとElixir、Kotlinあたりも遊びたいですが、作るものが浮かびません。 話がそれましたが、二人暮らしで妻が妊婦なため、買い物は重いものを持つ必要があったりするのが、他の装着者には無さそうな苦労です。(車ももってないし、この辺は坂が多い) 補助人工心臓は胃の上あたりに植え込まれていて、電力供給するためのケーブルがお腹から出ています。 また、お腹から出ているケーブルには、コントローラとバッテリーが接続されていて、このコントローラとバッテリーを入れた2.5kgの鞄を常に持ち歩いています。 コントローラとバッテリーの予備も常に持つ必要があり、出かける場合は5kgほど追加で持つ必要があります。 他の装着者は介護者が持つと思いますが、なるべく自分で持つようにしたいと思っていますし、そこそこ持っています。 ケーブルが出ている部分にチカラがかからないように活動する必要があるため、しゃがんだりすることが禁止されていたり、行動が制限されています。 また、週2回ほど消毒作業をしていて1時間弱かかっています。 お風呂は入ることができず、シャワーになります。 お腹まわりをラップのようなもので保護をして、コントローラとバッテリーは保護用のカバンに入れ替えて、カバンを持ち込んでシャワーを浴びることになります。 あとは補助人工装置を扱える介護者がアラームの聞こえる範囲に必要があります。 どちらかが外に用事がある場合は、二人で必ず出かける必要があります。 お腹から鞄までのケーブルがむき出しなので、出かける際は引っ掛けないように気を付けないといけません。 人の多い場所はたいへん危険です。 残りはほとんど普通の日常かと思います。 入院中に感じたこと 看護師プロ意識 患者の命を預かってるという意識をもって仕事しているのを日々感じた。 僕らはシステム利用者のビジネスを背負って仕事できていただろうか。 気がつくと目の前のものを完成させるのに精一杯になってしまってないだろうか。 その前に大半の人が補修が少なすぎるという話はあるかもしれないけれども、そもそも独学で始めたような人達も多いし、作ることしか考えれていない場面はよくみかける。 プロ意識みたいなのは欠けていないかときどき自問自答したい。 医学すごい 医者は数値としては曖昧な反応をみて対処をしていく。 プログラムは書いたとおりにうごくので、ずっと扱いやすく発展しやすいけど、こんな曖昧な数値しかとれないものが発展しているのは本当にすごい。 曖昧ではなく、成否のはっきりするコンピュータを扱っているので、もっとうまく扱っていきたいと感じました。 入院生活で改善したいこと、改善して欲しいこと テレビカードいらないからインターネットカードが欲しい テレビとかいらないんで、インターネットさせてください。 暇なのでセミナーの動画とか見たかったです。 パソコン使わせてください パソコン使えれば、開発できるのに。

no_picture

広島フロントエンド勉強会で、カスタムエレメントの話をして、divタグの代わりにはつかえるんじゃないか?というLTをした

広島フロントエンド勉強会 Vol.7でライトニングトークをした。案の定早すぎると言われた。いつものことである。(結構削ったんだけどな) 「すごい広島」でA-FRAME触ってる人がいて、A-FRAMEをみていたらカスタムエレメントをつかってるみたいだったので、調べたついでに思ったことを述べた。 「カスタムエレメントは独自のタグが使える」ぐらいの理解で充分かなっとおもってます。 Angular2にしても、Reactにしても、Riotにしても、Vueにしても独自タグのようなものがでてくるので、独自タグを定義できるという感覚は慣れておいて損はないと思い話を考えました。 本題ですが、カスタムエレメントは要素が定義するまでは未解決の要素となり、正当なエレメントになるらしい。 要素は定義の通りにアップグレードされるまでの間、 未解決の要素 と呼ばれます。これらの HTML 要素は正当な Custom Element 名を持ちますが、まだ登録されていないものです。 https://www.html5rocks.com/ja/tutorials/webcomponents/customelements/ ということは、エレメントを登録しなくてもつかえそうだし、特に中身を実装しなくても、使うことで可読性の高いマークアップができるような気がしました。 というわけで、特に何も実装してないカスタムエレメントでマークアップをすることは、カスタムエレメントの入門としてありなのではないかと思ったわけです。 div だらけでモダンと言えるでしょうか?そして現状では、これが我々のウェブアプリの作り方なのです。悲しいですね。 我々はウェブプラットフォームからの恩恵をもっと受けるべきだとは思いませんか? https://www.html5rocks.com/ja/tutorials/webcomponents/customelements/ カスタムエレメントの誕生の意義からも全く外れていません。 独自タグの要素にCSSも問題なく使えます。定義しておかなくてもバッチリスタイルもあたります。 カスタムエレメントのAPIはv0とv1があるようです。 v1のほうが対応ブラウザが多いですが、v0はPolyFillもありますし、class構文が必要ないので、v0 APIのほうが実質対応ブラウザが多い気がします。class構文無しでもv1 APIは使えるみたいですが、結局未対応ブラウザはAPIが足りなくてつかえなさそうでした。(調べたメモがどっかいったのでソースは省略) あとカスタムエレメントに対して知っておきたいことは、 独自タグの名前にはハイフンを含む必要がある カスタムエレメントを定義する前に利用しても良い まだAPIが変わる可能性がある かなとおもいました。 「独自タグの名前にはハイフンを含む必要がある」というルールをみてA-FRAMEはいい名前をとってるなと感じました。a-で始まるタグはA-FRAMEのタグになるので、完全に一等地ですね。 Z-FRAMEはどんなライブラリがとるのかとても見ものです。 カスタムエレメントをマスターしたら次のステップはShadow DOMなんですかなー。 ためしにかいたコード <my-app> <my-contact> <my-header>連絡帳</my-header> <my-user>hoge@example.com</my-user> </my-contact> <my-inbox> <my-header>受信箱</my-header> <my-mail>2016-01-02 hogehoge</my-mail> <my-mail>2016-01-03 hogehoge</my-mail> </my-inbox> </my-app> body { display: flex; justify-content: center; align-items: center; } my-app { display: block; background-color: #eee; width: 300px; } my-contact {