タグ

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

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

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

    株式会社一休に入社しました - 貳佰伍拾陸夜日記
    advblog
    advblog 2024/06/07
  • 再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記

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

    再帰的な構造のデータの同値性判定はどうしたらいいか - 貳佰伍拾陸夜日記
    advblog
    advblog 2021/08/24
  • 個人/組織のOSS貢献を可視化する - 貳佰伍拾陸夜日記

    社内でOSSへの貢献をもっと奨励していきたいねと話していて, そもそも普段どれくらい貢献できているか知りたくなった. 以前, 自分のポートフォリオに貢献しているOSSのリストを出すのをやっていて, ちょっと改造したら組織内のメンバー全員のものもすぐに出せそうだったのでやってみた. (というのをずっと前にやっていたけど宣伝するのを忘れていた.) モチベーション OSSに(趣味にせよ仕事の一部にせよ)貢献している同僚はけっこういるけど, 「こういうのやったよ!」と宣伝してくれない限りあんまりどういう活動をしているのか知らない. 「今月はこれだけの人たちがOSS貢献してました」というのを社内の全エンジニアで眺めてわいわい盛り上がれると, 自分も何かやってみようという気になるだろうし, 「これに手をつけてみたいけど, どこから手をつけたらいいかわからないから詳しそうなあの人に聞いてみよう」となって

    個人/組織のOSS貢献を可視化する - 貳佰伍拾陸夜日記
    advblog
    advblog 2021/06/15
  • なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記

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

    なぜ型ファーストで考えるのか - 貳佰伍拾陸夜日記
    advblog
    advblog 2020/02/19
  • Scalaで生SQL - SlickのSQL補間子にリストを渡す 他 - 貳佰伍拾陸夜日記

    ScalaSQLを書くのにSlickで便利にやる話. Slickでは生SQLを補間子(sql"...")で書けるけれど, リストが渡せなくてWHERE column IN ($list)できなかったり, 他にもいくつか不便なところがあったのでなんとかした. 最近になってScalaを書き始めたのでScala力を上げるための練習も兼ねている. なぜ生SQLか 社内では既にMackerelでSlickを使っていて, liftedな書き方をしているけれど, これはぱっと思いつくだけでも以下のような実運用上の課題があった. そもそもどの部分がクエリを表しているのかぱっと見わかりづらい 意図せず複雑なクエリになることがある 非Scalaエンジニアが読めない とくに最後のは, たとえばインフラ系のエンジニアが(クエリログを精査した結果などから)やばいクエリの出所を探そうと思ったときに全く手がつけられな

    Scalaで生SQL - SlickのSQL補間子にリストを渡す 他 - 貳佰伍拾陸夜日記
    advblog
    advblog 2015/05/03
  • 【はてなスタッフ非公式ブログバトン】 Haxeの善し悪し - 貳佰伍拾陸夜日記

    id:hatz48さんからバトンがまわってきました. 前々から個人的に興味があったので, 社内で言語の話題が出る度に「Haxe, Haxe」と言っていたら, 「Haxeと言えばtaraoさん」みたいになってて, なぜかHaxeについて書く羽目になってしまった. Haxeなんて1ミリも書いたことないのに! この記事は http://try.haxe.org/ でちょっと遊んだ程度のにわか知識で書かれております. もともとはよさげなAltJSを紹介していくみたいな文脈のようだけど, 個人的には特殊用途以外では素のJavaScript書いてりゃいいんじゃね, と思うので, 文脈無視で単純に言語/処理系の善し悪しについて書くよ! Haxeってなに http://haxe.org/ によれば「マルチプラットフォーム オープンソース プログラミング言語」らしい. AltJSなんてケチくさいこと言ってな

    【はてなスタッフ非公式ブログバトン】 Haxeの善し悪し - 貳佰伍拾陸夜日記
    advblog
    advblog 2013/12/13
  • anythingでgitリポジトリ内のファイルの全列挙をきちんとやる - 貳佰伍拾陸夜日記

    anythingでgitリポジトリ内のファイルを列挙するなんていうのはやり尽くされている気がするけれど, きちんとやっているものは意外と少なかったので, フルスクラッチで書いた. 特徴 現在開いているファイルと同一のgitリポジトリ内のファイルを列挙する サブモジュール内のファイルも列挙できる 列挙し直さなくていい場合は前に列挙した結果を使い回す ファイルの列挙のためのgitコマンドの呼出しは非同期にやる gitコマンドのエラー処理をきちんとしている 配布場所とインストール インストールするには(helmではなく)anythingを入れた上で, anything-git-files.elをロードパスの通ったところに置く. el-getを使っている場合は以下のレシピを書いてel-get-install RET anything-git-files RETするのが簡単. (:name anyt

    anythingでgitリポジトリ内のファイルの全列挙をきちんとやる - 貳佰伍拾陸夜日記
    advblog
    advblog 2013/04/22
  • はてなダイアリーにEmacsから投稿 - 貳佰伍拾陸夜日記

    Emacsからはてなダイアリーに投稿できるようにする試みはやり尽くされている感じがするけれど, 古すぎたりどうもしっくりこなかったりしたので, 自分で一から実装した. やりたいこと 必須 はてなダイアリーにEmacsから投稿したい 下書きの読み書きもしたい Emacsのバッファを保存したら反映されてほしい ローカルディスクにはダウンロードしなくていい (やりたかったらバッファの保存をフックしてごにょごにょすれば済む) はてな記法をシンタックスハイライトしてほしい Emacs以外のものをできる限り必要としない 基的にまずは下書きとしてプレビューしながら書いていって, 書き上がったら公開というワークフローなので, 下書き機能への対応は必須. 公開済みの文章の誤植を修正した場合などは, 保存したら即時反映でかまわない. あったら嬉しい はてなブログに対応 今はAPIもないので仕方ないけれど,

    はてなダイアリーにEmacsから投稿 - 貳佰伍拾陸夜日記
    advblog
    advblog 2013/01/11
  • ノートPCでLinuxの仮想化 - 貳佰伍拾陸夜日記

    いままではノートPCではWindowsを使ってきた. なんだかんだで使い慣れて*1いたり, あるいはハードウェア機能をフルに活かすためには他に選択肢が無かったりした. でも最近はペンタブ搭載機でもLinuxがふつうに動いたりするし, Windowsを使っていてもどうせ仮想OSとしてLinuxを動かしていて, Windows上のLinuxをべんりに使うためのバッドノウハウが溜まってしまいつつあったので, 思い切ってWindowsを使うのをやめることにした*2. ノートPCでカジュアルにLinuxを使うなら, できるだけ新しいソフトウェアが動いてほしい. Debianならunstableを入れたい. でもなんかアップデートして急に動かなくなったりしたら困る. そこで仮想化ですよ! ただ, ノートPCの仮想化にはいろいろ問題点もあるので, 整理して解決策をまとめておく. 仮想OSの運用方法 ノー

    ノートPCでLinuxの仮想化 - 貳佰伍拾陸夜日記
    advblog
    advblog 2013/01/02
  • C++のテンプレートでラムダ計算と型推論 - 貳佰伍拾陸夜日記

    C++のテンプレートを, コンパイル時に走るプログラムを記述するための言語だと思うと, この言語はチューリング完全なので, 当然ラムダ計算のインタプリタを実装できるし, そのラムダ計算の項の型を推論することもできる. できるからと言って馬鹿みたいにやってしまったという話. ソースコードは末尾. テンプレートメタプログラミング テンプレートをプログラミング言語だと思うと, 構文はともかく, 副作用がなく関数(っぽいもの)を淡々と定義してパターンマッチして再帰呼出しして, という感じでとても関数型っぽい. 関数と返り値 テンプレートメタプログラミングではテンプレートクラスを関数だと思って使う. そして返り値はtypedefして返す. たとえば任意の型S, Tを受け取って前者を返す関数firstは template<typename S, typename T> struct first { t

    C++のテンプレートでラムダ計算と型推論 - 貳佰伍拾陸夜日記
    advblog
    advblog 2011/11/01
  • Kansai.pm #11 HTMLからの本文抽出 - taraoの日記

    CPANのHTML::ExtractContentについて発表。 発表資料: HTMLからの文抽出 from Lintaro Ina 記事の表示モードを変更したせいで表示されなくなってしまったブクマ:

    Kansai.pm #11 HTMLからの本文抽出 - taraoの日記
    advblog
    advblog 2009/03/25
  • 1