タグ

ブックマーク / tarao.hatenablog.com (8)

  • 株式会社一休に入社しました - 貳佰伍拾陸夜日記

    転職のお知らせ、あるいは個人の日記です。 6月から以下のように所属変更となっています。 From 株式会社はてな To 株式会社一休 マネージャではなく、とくに役職のないソフトウェアエンジニアとして働きます。いわゆるIC (individual contributor)というやつです。 きっかけ はてなには新卒として入社して以来11年も勤めて、インターンやアルバイトとして関わった時期から数えると16年になります。出入りの激しいこの業界でずっと1社しか知らずに過ごすのは負い目に感じていました。また、年齢的にも今年で40歳になることもあって、そろそろ転職を経験しておかないとまずいという焦りもありました。 そんなときに、大学の同期でプライベートでも仲良くさせてもらっているid:suzakから声をかけてもらい、ちょっと真剣に転職を考えたのがきっかけでした。 できることではなくやりたいこと はてな

    株式会社一休に入社しました - 貳佰伍拾陸夜日記
  • 部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記

    この記事はScala Advent Calendar 2022の19日目です. Scalaではジェネリック型の変性(variance)は+や-で指定しますが, 他の言語(たとえば, C#, Kotlin)ではoutやinだったりします. この記事では変性の意味を整理して, なぜScalaでは+/-の記号を使うのか説明します. 追記ただし, ここで説明している内容は基的にC#やKotlinでも成立する(はずな)ので「なぜこれらの言語では+/-の記号を使わないのか」を説明するものではありません. 個人的には+/-の方がわかりやすいと思うし, out/inの記法は扱っている概念が簡単であるかのような誤解を生む(悪く言えば騙す)のでどちらかと言うと嫌いです. 発端 こういう話題がありました. Scala は共変が + で、反変が - なので理論重視? なのに対して、Kotlin と TypeSc

    部分型における変性と極性 - なぜScalaの変性は+や-で指定するのか - 貳佰伍拾陸夜日記
  • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

    数日前にTwitterで, JavaScriptのオブジェクトに対する===の挙動が初心者には難しいみたいな話を見かけた. 発端や周辺の議論をちゃんと追いかけてないからとくに出典は貼らない. たぶん元々の話は「へぇ, こういう挙動なんだ, 簡単ではないね」くらいの話だったのかもしれない. 自分のタイムラインの観測範囲では「そうだそうだ, (参照の同一性ではなく)同値性にしとけばいいのに」と思っている人もそれなりにいそうに見えた. 個人的にも同値性が簡単に確認できるとよい気はするものの, 「なんでそうしないんだ, オブジェクトの中身を確認していくだけだろ!」みたいな簡単な話ではないことも知っているため, 以下のようなツイートをしたのだった. JavaScriptのオブジェクトの同値性、再帰的な構造とか作るとぜんぜん自明じゃないんだよなぁ。リンクの構造は違うけどプロパティを辿ったときのパスはど

    再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
  • なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記

    How do you imagine a building? You consciously create each aspect, puzzling over it in stages. Inception 型なし言語に馴染みはあるものの型付言語をいざ使ってみたらどういう気持ちで書いたらいいのかわからなかったと同僚から相談があり, それをきっかけにして社内の勉強会で以下の話をしました. よく型なし vs. 型付の文脈では「型を書くのは面倒だ」「安全の方が大事だ」「でも面倒だ」「それは型推論を前提にしていないからだ」などの議論になりがちな気がしますが、これはあくまで「計算ありきの型」を考えているからで, 「型ありきの計算」だと全く見え方が違います. 「型はある種の仕様」とおもえば, 型ファーストであることと, 型なし言語でテスト駆動開発(TDD)するときに最初にテストを書くこととは, 同じ

    なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
  • Evil: EmacsをVimのごとく使う - 付録 (カスタム変数一覧) - 貳佰伍拾陸夜日記

    Evilのカスタム変数の一覧です. 導入編 設定編 拡張編 付録 カスタム変数一覧 evil-auto-indent evil-shift-width evil-shift-round evil-cross-lines evil-move-cursor-back evil-repeat-move-cursor evil-kbd-macro-suppress-motion-error evil-track-eol evil-bigword evil-mouse-word evil-cjk-emacs-word-boundary evil-cjk-word-separating-categories evil-cjk-word-combining-categories evil-want-fine-undo evil-want-change-word-to-end evil-want-C-i-

    Evil: EmacsをVimのごとく使う - 付録 (カスタム変数一覧) - 貳佰伍拾陸夜日記
  • Evil: EmacsをVimのごとく使う - 拡張編 - 貳佰伍拾陸夜日記

    Roads? Where we're going we don't need roads. Back to the Future Evilの真髄はその拡張性です. 稿では主にチュートリアルを通して, Evilを拡張する方法を解説します. 導入編 設定編 拡張編 Evilの拡張 例1: コメントアウトオペレータ 単純な選択範囲のコメントアウト 矩形選択範囲のコメントアウト キーマップ 例2: 次のシンボルへ移動するモーション モーションの定義 テキストオブジェクト キーマップ 例3: 同じ文字の間を表すオブジェクト 単純な実装 選択範囲の拡大 キーマップ 例4: かなステート ステートの定義 かな変換コマンド キーマップ リファレンス ステート コマンド オペレータ モーション テキストオブジェクト 補助関数 おわりに 付録 Evilの拡張Evilはもともと拡張性を考慮して設計されています

    Evil: EmacsをVimのごとく使う - 拡張編 - 貳佰伍拾陸夜日記
  • Evil: EmacsをVimのごとく使う - 設定編 - 貳佰伍拾陸夜日記

    Then you will see, it is not the spoon that bends, it is only yourself. The Matrix EmacsあるいはVimに慣れ親しんでいれば, Evilを使うのにある程度は勝手がわかるものの, 逆にしっくりこない点も多いでしょう. EvilEmacsの機能との相互運用性を重視していることから, Vimユーザにとって不慣れな点が生じることは避けられず, EvilVimをエミュレートする以上, Emacsユーザにとって不慣れな点が生じることも避けられません. 稿では, どちらに慣れ親しんだユーザにとっても快適に使えるようにEvilをカスタマイズするためのヒントを紹介します. ただし, いくらカスタマイズしても完全なVimや完全なEmacsになることはありません. 使い勝手をよくして自分の好みに合わせながら, できるだけ

    Evil: EmacsをVimのごとく使う - 設定編 - 貳佰伍拾陸夜日記
  • Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記

    You underestimate the power of the dark side. Star Wars: Episode VI - Return of the Jedi EmacsはLispで自由自在に拡張でき, エディタの枠におさまらず, コンピュータ上でのあらゆる創造的活動のための環境として発達してきました. しかし, 少なくともファイルを閲覧し編集するという操作に関しては, vi/Vimが非常に優れたインタフェースであることもまた事実です. 両者はそれぞれが根強いファンを抱え, 長らく宗教戦争を繰り返してきました. この対立が止揚された結果として生まれたのがEvilです. Emacsのなんでもありな環境の上でVimをエミュレートすることで, EmacsでありながらVimの操作性を実現したのです. 稿では, Evilとは何かということに始まり, 具体的な導入方法について解説し

    Evil: EmacsをVimのごとく使う - 導入編 - 貳佰伍拾陸夜日記
  • 1