GitHub Universe アフターイベント in Tokyo

GitHub Universe アフターイベント in Tokyoに、去る10/24に参加しました。最近、弊社もGitHub Enterpriseを導入し始めたから今まで以上に触ってるのですが、単なる仕事ってだけでなくマイブームです。GitHubのエコシステムは遠大で、色々な工夫の余地がある。今回の目玉新機能であるActionsも面白いですがまだ.comでも招待制ベータなのでEnterpriseに来るまで時間かかりそう。今はもっと足下のところから試行錯誤中です。APIを操作する周辺としてProbotは素敵です。TypeScriptだし、Actionsでもシームレスだと聞きますし。Hubot(CofeeScriptだった!)の後継的な位置付けっぽいです。

アフターイベントのさらなるアフターなフォローで、各種リソースへのリンクがEメールで知らされたので拡散しておきます。デジマのトラックIDは掃除しておきましたので安心してどうぞ。

サイオステクノロジーへの導入のために、グルージェントでGitHub Enterpriseの販売代理権とってもらいました。グルージェントは表だってはEnterpriseを売ってませんが、導入検討される際には私にご相談いただければ良いお値段出せるかも。ニワカなので知っていることが偏ってますがご要望あれば私がお手伝いもします。

Google Mapsが出なくなった

f:id:masataka_k:20181026153255p:plain

mk.hatenablog.com

5年以上にも渡って貼ってたGoogle Mapsですが、魚拓画像のように警告めいた表示になってました。米国に引っ越してからはSan Mateoオフィスを、現在は南麻布のサイオスビルを表示してきましたが、いよいよダメになった。APIキーも使わずさらっと使ってましたので、これまで問題なく表示できてたのが天恵でしたが、これからは何かしないといけないのね。

気分変えてd3.jsとかでなんか楽しげなディスプレイ作ろうかな。

レガシーとは?の金言

最近、社内でのキーマンに対してインタビューを行って廻る機会が一度となくありました。それぞれ10名だったり20名だったり、あるときは人事制度のこと、またある時は社内のDevOps環境について。さらに最新では中期経営計画を作るにあたっての意見交換。毎度インタビュイーは違うしテーマも違うのに、聞き手が同じだから収斂してしまうのか、繰り返し似たような真理というか金言めいたものを聞くことができました。今日はその金言のうち一つを。

言語やフレームワークといった開発技術自体が古くなってもレガシーにはならない。
ドキュメントレスとテストレスから属人化が始まり、レガシーが生まれる。

そだねー

じゃあどうすっかという点では、まず皆が触れること可能なリポジトリへきちんとメンテナンスして公開することだと思う。アウトプットがサイロ化された奥のところに保存されてるとヘドロ化する。隠していてもドキュメント書けばいいしテスト書けばいいのだけど、シマウマちゃん達には何度書けって言ったところで書けるものではないから。

denoの開発は進む

GitHub - denoland/deno: A secure TypeScript runtime on V8

f:id:masataka_k:20181003075946p:plain

今のdenoの魚拓です。動くリリースが出てから今日も元気に開発が進んでます。基本的なOS操作はdeno.writeFileSyncなど名前空間"deno"で一通り揃ってきました。 CIも貼られてモダンにリポジトリ内が整ってきてますが、しかしまだプロダクトリリース前。それにも関わらずにこのwatch-star-forkの数!

ブートストラップから一連のdeno本体はRustで、libdenoと名付けられたV8と密着したところはC++、deno名前空間に置かれたユーザーAPIはTypeScriptで初期コードが書き直されて、前より見違えて綺麗になってきてます。/jsフォルダには数個のぞいてほとんど全てが.tsに書き直されてました。

ば、バ...バイナリリリース!

Releases · denoland/deno · GitHub

久しぶりにdenolandを見に行ったら、超驚いたことにバイナリリリースが出てた。早速触ってみます。

macOS環境なので、deno_mac_x64.gzをダウンロードしunzipしたらdeno_mac_x64が一つだけ出てきました。実行可能ファイルが一つだけ。それをchmod u+xして準備完了。リポジトリのtestフォルダにテスト用のスクリプトがあるので、大体できることを把握して書いてみました。あんまりTypeScriptっぽくないが、async/awaitがあったほうがよかろう。

// ~/async.ts に保存
async function fn(arg: string) {
  await new Promise((resolve, reject) => {
    console.log("2");
    setTimeout(resolve, 3000);
  });
  console.log(arg);
}

console.log("1");
setTimeout(() => fn("3"), 3000);

これで、./deno_mac_x64 async.ts と実行する。。。おお、ちゃんと動いた!ゆっくり3秒あけなから1、2、3と出る。

まさにTypeScriptネイティブな環境で、これこそ流行らせたい。

オレオレサマータイム

なんか80年代Jポップのタイトルみたいだけど。

f:id:masataka_k:20180810044745j:plain

私はオレオレサマータイム実行中。妻子が帰省で、私と犬だけで留守番しているため、朝晩の散歩がある。猛暑の中で毛皮脱げずに着てる者の身になると不憫で、朝は早く晩は遅くに外に出ます。午前中でもすぐ30度超えの様子なので、なんとか5時前には家を出たい。よって4時すぎには起きます。いつもは7時すぎに起きてるから3時間弱早まる。これがオレオレサマータイムサマータイムって1時間しか早くならない(米国ではそうでした)から、オレオレというよりスーパーサマータイムなんじゃね?当然腹も減るので昼食も早く夕食も早く、勢い、就寝も早まる。

オリンピックのマラソンは、朝5時出発で7時すぎにはゴールってやれば十分熱中症対策にもなります。その時間帯の暑さはまだなんとかなる。毎日その時間帯に歩き回ってる経験から言ってるので間違いない。

今後システム作るときには消費税率が変わることを予期して組んできたように、サマータイム施行がくる時があるやもと想定して設計しておけばいいですな。2020対策では見送られても10年以内ぐらいにやるかもしれない。間に合わずに施行されちゃったら特需ってことで。

うがった見方をすると、例えばNTTグループが再編でカネが必要になって、ロビー活動したんじゃないかなと。社名変えるのも社屋整理するのも大変ですからね。NTTじゃなければFかHかはたまたNなのか。

denoland

github.com

denolandなるプロジェクトにgithub内移動していました。ヘビみたいな何かの絵がアバターになってる。

LinuxWindowsでCIステータスも表示されるようになっていた。そろそろ?と期待して、書いてある通りをなぞってビルドしてみたらエラー出た。エラーメッセージ読むと私のMACの中にXcode.appが無いってことだけみたい。しかしそれはサイズがデカいので入れたく無いなー。勢いrustcは入れてしまったが、まあ、またしばらく様子みよう。MacのCIステータスが表示されていないのがまだ待てってことかもしれないし。

興味持って追っかけてるけど、日々様子が変わるので、私みたいなTypeScript書きたいだけの利用者はまだ手出しすべき時じゃ無いかと。

で、さらっとRustねぇ。denoがJavaScriptのランタイムであるV8の操作を行う中で、ガベージコレクトのあるGo言語だと難しいことになった、ということからガベージコレクトの無い新言語でRustを選んだという。。。ここは普通にC++で諦めた方が面倒が少なかったかなあと思いますが、天才Ryan Dahlはそこに行かなかったか!その後にRustのドキュメントをちらっと眺めただけですが、老いたのかそこにGo言語を見たときの萌えはなかった。やっぱり老いてるんだろうなあ。