タグ Islands in the byte stream
人気順 10 users 50 users 100 users 500 users 1000 users『JavaScriptプログラマーのためのTypeScript厳選ガイド』を執筆しました - Islands in the byte stream
JavaScriptプログラマーのためのTypeScript厳選ガイド という本を書きました。JavaScript中級者でTypeScript初心者のプログラマーに向けたTypeScriptの入門書です。 これまで何度かTypeScriptの記事を書いてきました。 TypeScript再入門 ― 「がんばらないTypeScript」で、JavaScriptを“柔らかい”静的型付き言語に|ハイ... 続きを読む
Starleyに転職しました - Islands in the byte stream
FastlyからStarleyに転職しました。Starleyは音声会話型おしゃべりAIアプリ「Cotomo」(コトモ)を開発している会社です。 cotomo.ai StarleyはFastlyとは打って変わってB2Cのスタートアップです。今回の転職ではせっかくなので生成AIに多少なりとも関わりたいと思っていて、Starleyはその点でがっつり生成AIを使ったサー... 続きを読む
『Rustで作るプログラミング言語』を読んで、かねてから構想していた自作言語を形にした - Islands in the byte stream
Rustで作るプログラミング言語という書籍が先日発売されました。簡単なプログラミング言語を作ってバイトコードに変換して実行したりネイティブコードに変換して実行してみよう、という本で、大変面白く読みました。最終的にかなり本格的な言語になるので、これを元にするとわりとちゃんとした言語を作れそうです。 この... 続きを読む
デイリーポータルZの新着記事をBlueskyに投稿するbotを作った - Islands in the byte stream
デイリーポータルZの新着記事をBlueskyに投稿するbotを作りました。 github.com デイリーポータルZは2024年1月1日から独立した会社になるようですが、状況から察するに実態としては消滅まで秒読みと思われます。インターネットからデイリーポータルZが無くなるのは寂しいので、どこかの企業がスポンサーになってくれるこ... 続きを読む
40代の男性プログラマーが5ヶ月の育休を取った件 - Islands in the byte stream
次子のために5ヶ月の育休をとった記録です*1。 家族構成は、外資勤務フルタイムワーカーの私、同じく外資勤務フルタイムワーカーの妻、長子のmfx氏(2017年9月生まれ)、そして次子のrfx氏(2022年6月生まれ)という四人家族です。 私が育児休業をとったのはrfx氏の育児のためです。妻がはrfxの誕生の1ヶ月前から産休に... 続きを読む
4ヶ月の育休をとる - Islands in the byte stream
2022年の6月に第二子であるrfxを受け入れました。それに伴い、この12月から4月第1週いっぱいまで、約4ヶ月の育休をとることにしました。 第一子であるmfxのときは育休はとらなかったので、はじめての育休です。なんならプログラマーとして働き始めてから十余年、1ヶ月以上休みをとるのは初めてです。 rfxが産まれてから... 続きを読む
set -eのもとで特定のコマンドの終了ステータスを変数に入れるシェルスクリプトのスニペット - Islands in the byte stream
課題編 シェルスクリプトで「あるグローバルな状態を変える操作を行い、その結果をチェックし、状態をもとに戻す」みたいなタスクをするときに「その結果をチェックし」のところでコマンドの終了ステータスを変数に入れて置きたいみたいなことがあります。例えば、次のようなコマンド操作です。 set -e # グローバルな状... 続きを読む
GitHub ActionsからGitHub wikiを更新する - Islands in the byte stream
GitHub ActionsからGitHub wikiを更新したいことがたまにあります。たとえば、何かのメトリクスを見やすく整形したものなど、repositoryのデータを何らかの形で加工したドキュメントを作りたいときです。コード生成したmarkdownドキュメントをコミットしてもいいですが、それよりはシンプルで運用が楽です。 今回は、Git... 続きを読む
Fastly に入社しました - Islands in the byte stream
2019年9月9日からFastlyに入社しています。勤務地は東京です。今後ともよろしくお願いいたします。 前職の Bit Journey, Inc. では3年ほどKibelaのサーバーサイドやフロントエンドアプリの開発に関わりました。Bit Journey在職中に子供がうまれ、現在も夫婦で分担しながら子育てをしていますが、この子育て初期という大... 続きを読む
JavaScript libraryのREADMEにブラウザ互換性表バッジを表示することについての諸々 - Islands in the byte stream
ブラウザ互換性表 (a.k.a. browser matrix) とは、こういうやつです。 ブラウザ互換性表 TypeScriptで MessagePack encoder/decoder を実装した - Islands in the byte stream で作った msgpack/msgpack-javascript にこのバッジをつけようとして苦労しました。今回は単に一度やってみたかったというのもあって頑張りま... 続きを読む
TypeScriptで MessagePack encoder/decoder を実装した - Islands in the byte stream
npm install @msgpack/msgpack でインスコできます。 github.com もともとこのリポジトリには uupaaさんによる実装("classic") があったんですが、メンテされなくなって久しく npmjs.com にもリリースされていないという状況でした。 https://github.com/msgpack/msgpack-javascript/tree/classic その後kawanetさんが ... 続きを読む
TypeScriptの型情報を利用したCustom Transformerの現状確認 - Islands in the byte stream
TypeScriptのコンパイラ・プラグインとして振る舞いASTの操作を行えるcustom transformer (AST preprocessor) が実装されたのは TypeScript 2.4 (2017年) でした。 そのときの様子は次のエントリに非常によくまとまっています。 [TypeScript 2.4] custom transformer を利用して実行時に型情報を参照可能にする - Qiita ... 続きを読む
なぜTypeScriptに失望してしまうのか - Islands in the byte stream
TypeScriptに対する失望は2パターンあって、その理由は理解できるのですが、いずれにせよそこでTypeScriptを使わないとか捨てるという判断をするのはもったいないと思っています。この2つの失望を乗り越えてもなお、TypeScriptには導入する価値があります。 パターン1: JavaScriptに対する失望 そこらのブログやTwitter... 続きを読む
apollo-boost はサンプルコード専用と思ったほうがよい - Islands in the byte stream
TypeScript用のGraphQL clientであるところの Apollo ですが、これのGet Startedなどのドキュメントでは apollo-boost というパッケージを使っています。 www.apollographql.com しかし、 apollo-boost はサンプルコードをシンプルにするためのパッケージと考えたほうがよく、プロダクションコードでは apollo-boost で... 続きを読む
Reactをv16にアップグレードしたらuglifyjsの秘孔をついてハマった件 - Islands in the byte stream
Reactが悪いわけではないんですが、たまたま秘孔をつくコードがReactないし関連するReact v16に依存するライブラリにあったんでしょうね。 Reactをv16にアップグレードしたら webpack で production build ができなくなった pluginを着脱しながら調べた結果、 uglifyjs がクラッシュしていることがわかった uglifyjs は... 続きを読む
プロジェクト固有のルールを指定できるLinterであるところのQuerlyがめちゃ便利 - Islands in the byte stream
https://github.com/soutaro/querly Rubyを構文解析したASTに対して独自DSLでパターンマッチ&メッセージを出すツール プロジェクト固有の事情に配慮したLinterとして使える false positive 上等で注意喚起として使う たとえばKibelaの querly.yaml から一部抜粋するとこんな感じです。 rules: # ... - id: kibela.order... 続きを読む
DX: Developer Experience (開発体験)は重要だ - Islands in the byte stream
DX: 開発体験とは、あるシステムを「気持ちよく開発・保守できるかどうか」を示すもの 開発者は開発・保守という体験を通じたそのシステムのユーザーであり、DXはUXの一種である DXがよいと日々の開発を楽しめるようになり、気持ちに余裕ができる 気持ちの余裕がでるとコードの品質があがり保守時のデグレも減らせる ま... 続きを読む
TypeScriptの `ReadonlyArray<T>` を使いやすくするためにtslintを活用する - Islands in the byte stream
最近、Kibelaのtslint configの Rule: array-type を "generics" にしました: + "array-type": [ + true, + "generic" + ], 以前は特に指定しておらず、 T[] と Array<T> が混在してていて、それでよしとしていました。今でも、混在することによるデメリットは特にないと思っていいます。ただ、 Array<T> には一つだけメ... 続きを読む
graphql-rubyの知見をscrapboxにまとめはじめた - Islands in the byte stream
2018 - 06 - 10 graphql-rubyの知見をscrapboxにまとめはじめた scrapbox.io graphql-ruby の知見をまとめはじめた。 / “GraphQL for Ruby” https://t.co/PqotLzAdtV — FUJI Goro (@__gfx__) 2018年6月10日 なんで graphql-ruby 限定かというと、graphql-ru... 続きを読む
とても今更なCommonMarkのあれこれ - Qiita
GFMにCommonMarkの仕様が反映された 詳しい話はこちらの記事をご参照頂ければ CommonMarkの現状 2017年4月版 - Islands in the byte stream 昔書いた記事 CommonMarkの仕様とか - Qiita から約半年後の出来事であった 一年前の事を今更記事にした理由は後述 CommonMarkの仕様が更新された CommonMark Spec 201... 続きを読む
発表資料: Elasticsearchによる 全文検索の実装 in Rails - Islands in the byte stream
2018 - 03 - 24 発表資料: Elasticsearchによる 全文検索の実装 in Rails Rails Developers Meetup 2018 (#railsdm) で話した資料です。 最初は elasticsearch-rails の使い方の話を中心にしようと思ったのですが、まず全文検索そのものの話を整理しないとそこにたどり着かないなということでその話を中心にしました。 ... 続きを読む
elasticsearch-rails から返るモデルが同値比較できなくてテストで困る問題 - Islands in the byte stream
2018 - 03 - 07 elasticsearch-rails から返るモデルが同値比較できなくてテストで困る問題 elasticsearch-rails はElasticsearchとRails / ActiveRecordのインテグレーションをしてくれるgemです。 こいつを使っているとき、 特定条件下でモデル同士を比較するテストがコケるようになる という現象に悩まされてきました。pry... 続きを読む
DroidKaigi 2018で『すばらしきGraphQLのSEKAIへようこそ』という発表をしました - Islands in the byte stream
DroidKaigi 2018 に参加して発表してきました。 今回はDroidKaigiということでクライアントサイドの視点から解説しています。よって、サーバーサイドの実装についてはまったく触れていません。サーバーサイドの実装については以前発表をしたことがあるのでそちらもどうぞ。 RejectKaigi 2017で「GraphQL on Rails」という発表をしました - Bit Journey... 続きを読む
JavaScript Quiz: (new Array(2)).map($ => 'hello') === ? - Islands in the byte stream
2018 - 01 - 23 JavaScript Quiz: (new Array(2).map($ => 'hello') を評価した値は? まあ、分かってしまえばなんということはないんですが、結構面食らいますね。 This sure isn't what I would have expected. pic.twitter.com/wNQ0CkycUn — Andy Hall (@fenom... 続きを読む
Ruby 2.5未満でRuby 2.5のStructのkeyword_initを使う - Islands in the byte stream
2018 - 01 - 22 Ruby 2.5未満でRuby 2.5のStructのkeyword_initを使う NEWS-2.5.0 - Documentation for Ruby trunk Struct.new takes keyword_init: true option to initialize members with keyword arguments. [Feature #1... 続きを読む