日記

Pull Request を作るのに一時間以上かかったら捨ててる

一時間は大体の目安でちゃんと測ってない. PR の作成に時間がかかるときは, 何らか良くないことが起きている可能性が高い 試行錯誤を繰り返している 変更の規模が過大になっている 良くないことが起きているなら, そのまま続けて余計なコストをかけるよりも…

ふと「最寄り」のように「最」と書いて「も」と読ませる語に異常性を感じたので, すべての「最」を集めたくなりました. 昨日のことです. 集めるとはいっても, 脳内を検索しているだけでは, 最上 (もがみ) 最中 (もなか) 最早 (もはや) 最寄り (もより) くら…

内的品質を無視せざるを得ない状況に陥るな

ソフトウェアの品質 ソフトウェアの品質といえば, 大まかに外的品質と内的品質に分けられます. 外的品質: ユーザーから見た品質 例: 安全かつ確実に動作すること, 操作しやすいこと 内的品質: 開発者から見た品質 例: 変更しやすいこと, 型・linter・テスト…

カーソルの上下移動の思い出

突然ですが問題です. あなたは以下のテキストを編集していて, カーソルは一行目四列目 (_ の位置) にあります. Jan_uary February March 下矢印 ↓ キーを一回押したとき, カーソルはどの位置に移動するでしょうか? . . . はい, カーソルは一つ下の行の同じ列…

ブログのデザインを変えた

このブログでは長らく Airmail というデザインテーマを使っていたのですが, レスポンシブデザインに対応していないなど, 現代の使い方 (アクセスのされ方) に照らしてみるとやや時代遅れという感が否めませんでした. blog.hatena.ne.jp そんなわけで体験を現…

中止ボタンがしいたけに見えて困る

令和最新版. Vivaldi でアイコンがカスタマイズできるようになっている テーマ設定画面を眺めていたら, Vivaldi 6.0 からツールバーのアイコンがカスタマイズできるようになっているのに気がつきました. 流石 Vivaldi です (?) vivaldi.com しいたけ復活 こ…

Go 素振り日記

これは日記なので, 読むことでなんらか知見が深まることを期待したり議論を始めようなどと思わないこと. Splittable PRNG を Go に移植した たまには Go 力 (ぢから) が鈍らないように素振りをしておきます. 素振りが目的なので特に新規性とかはありません. …

コード書き仕草

たまには雑談っぽいことでも書くか〜 他の開発者のためにコードを書く コードを書くにあたっての話題は尽きることがないです. ざっと思いつくようなことを挙げてみるだけでも, 性質 可読性 柔軟性 堅牢性 変更容易性 原則 驚き最小 DRY SOLID 道具 コーディ…

共通化すれば良いとは限らない

ここのところ偶然なのか「共通化」という言葉を多く聞いているのですが, その言葉を聞くたびに身構えていることに気がついたので, この気持ちの出どころを共有しておきます. なぜ身構えているかというと, 共通化が必ずしもコードを良い状態にするとは限らな…

プログラムの複雑さ・表面積・グラフの構造

特に何かしらの出典はありません. プログラムの複雑さに対する大局的で直感的な指標として, 表面積とグラフの構造というのを個人的に意識しているという話. いわゆる code smell をどう嗅ぎつけているか. 表面積 プログラムは最も単純には 1 つの入力チャン…

コードや Pull Request をコミュニケーションの手段として使ってほしい

レビューなり, 過去の経緯を調べる目的なりでコードや Pull Request (以下 PR) を読むとき, 書かれていてほしいと思う内容が書かれていないことが少なくない. 例えば, 背景や目的 全体的な実装方針 (特に複数の PR で一つの目的が達成される場合) これまでや…

セルフコードレビュー

自分の書いたコードのレビューを依頼するとき, 必ず先にセルフレビューするようにしていて, まあまあ上手くいっていると思っている. 元々のモチベーションとしてはコードの品質の向上と (本物の) レビュワーとのコミュニケーションのつもりだったけど, 本来…

アプリケーションのコード規模に対する雑感

主観です 規模はコード行数 (LOC) で考えています 体感的にわかりやすいため 言語・フレームワーク・対象とするドメインなどによって何倍もずれるはず あくまでアプリケーションについての話です ライブラリについてはまた事情が変わってくる コードについて…

非対称な状態間の同期の実装メモ

状態間の同期は一般的な話題ではあるのですが, 例として React の制御コンポーネントの実装を題材にします. ここで非対称な状態とは, 各状態のとり得る値の集合の間に一対一の対応がないことを指しています. というか一対一に対応するのであればふつうは状態…

コード中の定数の greppability と TypeScript の進化

TL; DR コードの greppability のために文字列操作を禁止する目的で string literal type (の union) なら受け付けるが string は受け付けないという関数を作っていたのだけれど, どうにも TypeScript が賢くなりすぎてしまった— 塩水うに (@susisu2413) Jan…

特に工夫もない紫蘇ジュース

実家にいた頃祖母が作ってくれた紫蘇ジュースが飲みたいと思いつつ就寝, 翌日スーパーに行ったら実家付近で採れた紫蘇が大量に売られており, 運命を感じて即購入. というわけで特に工夫もない紫蘇ジュースを作った話をします. 以下, 紫蘇の鮮やかさをお伝え…

近況 2018年春

株式会社はてなに入社しました この文章の信憑性は著しく低いことが知られていますが, 信用していただけますか? というわけで京都に引越したので報告です. Adobe CC を購入した 学割が3月まで使えて1年分までなら購入できるっぽかったので購入しました. 1年…

ISUCON7 予選通過反省会

ISUCON7 の予選に @amaya382, @spring_raining とチーム名「チーム名を考えるのが苦手すぎる」で参加しました. 私自身は初参加です. 最終スコア 89,047 で学生枠 2 (3) 位通過でした. 私がやったこと ほぼ完全にアプリケーション (Node.js) だけを担当しまし…

こんな等幅フォントが欲しい

プログラミング用 0 と O の区別がつきやすいとか 多言語対応 ASCII だけとかだと厳しい ギリシャ文字と種々の記号類は欲しい 日本語があるととても良い wide:narrow が 2:1 Source Han Code JP みたいに 3:2 とかじゃないということ EAW Ambiguous な文字が…

Cookie Clicker 4周年の記録

ちょうど始めてから 4 年だったので Cookie Clicker の話をしようとしたら 今週のお題「私のおじいちゃん、おばあちゃん」 というのが出てきて笑いました. 強いて言えばおばあちゃんの話をします. Cookie Clicker とは 知らない人がいるかもしれないので一応…

最近の markdown-table-editor アップデート情報

最近はベジエ曲線の交点を求めるなどの活動をしていたのですが, それは (画像の用意とかそのあたりで) まとめるのに時間がかかるのでまたの機会にするとして. 最近 Atom パッケージの markdown-table-editor をちょいちょい更新して機能を追加したので, その…

近況

ご飯炊けるまでに最近やってることとか書きます. System Fω の実装 js-sandbox/system-f-omega at master · susisu/js-sandbox · GitHub 前回やった System F の続き. 簡単に説明すると System F に加えて型レベルの関数 (type operator とか type construct…

4月

これは日記です. エイプリルフール 入社はさておき, 今年も一発ネタを作りました. gh-plankton 経緯はこういう感じです. GitHub のデフォルトのユーザーアイコン, 微生物かなにかに見えることがたまにある— 乳等を主原料とする食品 (@susisu2413) 2017年3月3…

Wonderfl の思い出

Wonderfl のサービスが 3 月末で終了してしまうらしい. 知らない人のために説明すると Wonderfl は Flash のコードをその場で編集・コンパイルしてコードと一緒に公開できる Web サービス*1で, 私は Wonderfl にあるコードを見てプログラミングを学んだと言…

Sublime Text から Atom へ乗り換えチャレンジ

なぜ JavaScript を書いているときにやたらと React のスニペットが表示されるようになって*1, これが大変迷惑だったためです. destroy を補完するために destroy と入力する必要があるのクソでしょ— susisu (@susisu2413) 2017年2月16日 pic.twitter.com/8…

Haskell 書いてる (た)

なぜ プログラミング言語は何が使えるのと聞かれたとき, 「JavaScript, ActionScript と, あと Haskell が少しわかります」みたいな答え方をしていたのですが, 最後に Haskell でまともに何かを書いたのが 2013 年頃で *1, 最近の開発フローとかをまったく理…

2016年に作ったもの

一年は長いのか短いのか, その一年で作ったものは多いのか少ないのか, そんなことを考えながら (考えていない) 今年作ったものを振り返りドヤ顔するだけの記事. ( ゚д゚ )彡 est 統計計算用簡易スクリプト言語. github.com 実験データを集計するのに awk で計…

GitHub の緑化を二年続けて思ったこと

一年継続したといった記事を見て, そういえば二年継続していたら何か書こうかなと思っていたのを思い出したので, 書きます. github.com 2014年の10月2日からなので二年とちょっとですね. 良かったこと 当然ですがアウトプットの量が増えているはずです. 面倒…

辛辛魚パエリア風レシピ

材料 (2 食分) 辛辛魚 (辛辛MAXバージョン) の残りスープ 1 食分 米 1.5合 お好みで適当な具材 作り方 フライパンにスープ + 水 120 ml と具材を入れて火にかける ひと煮立ちしたら米を入れて蓋をする 弱火で 12 分くらい炊き上げる さらに火をとめて 12 分…

はてなインターンに参加したのでアレをアレします

題のとおり, 参加していました. hatenacorp.jp この記事はアレなので, 是非アレしてください. 自己紹介 参加までの流れ インターン中の生活 前半 後半 その他雑多なこと 通勤 食事 水分 Perl 語彙 おわりに インターン参加者の記事が集まるコーナー