読者です 読者をやめる 読者になる 読者になる

正規表現の名前つきキャプチャを便利にする

scala

Java 7から正規表現で名前つきキャプチャが使えて, Scalascala.util.matching.Regex.Matchでもそれに相当する機能がある(インタフェースや実装はJava標準のものとは別)けれど, ちょっと不便なところをどうにかしているうちに, インデックスによるキャプチャグループの上に独自に名前つきキャプチャグループを実装するような形になった.

続きを読む

APIへのPUTやDELETEもブラウザから試す

golang web

APIサーバを作っているととにかくcurlで叩いてレスポンスを| jq .して見て, とやっていてリクエストボディのJSONの中括弧や引用符の対応がとれてなくてイライラしたり, 必要なヘッダをつけ忘れていてハマったり, とにかく非効率な感じがしてきたので, ブラウザ上から操作できるようにして, リクエスト内容の編集も(コマンドラインよりは)簡単にできるようにしてみた.

続きを読む

はてなブログに移行した

hatena

ようやく, このブログをはてなダイアリーからはてなブログに移行した. これまでなかなか移行できていなかった理由や, 移行を機に改めた点についてまとめておく.

続きを読む

bullet-scala: N+1クエリ問題を回避する

scala

Scala関西 Summit 2015での発表で触れていたN+1クエリ問題をなんとかするためのライブラリを公開した.

発表は以下のもので, ここでは「関係モナド」という名前で紹介していたけれど, これは口頭でも説明したように便宜上てきとーにつけた名前であって, とくにそういう名前のよく知られたモナドがあるというわけでもなければ, そもそもモナドであるかどうかはあまり本質的ではない. この発表のあとに, Rails (Active Record)でのbulletのようにN+1問題の検出をScalaでやる方法はないだろうか, と言っている人がいたので, そういうものを探していて辿りつけるとよかろうということで, bullet-scalaという名前にした. もちろんN+1問題の検出のためのライブラリというわけではないし, 動的に検出するのではなく原理的に問題が発生しないようにするものなので, 思想は全く異なる.

続きを読む

Scalaで型レベルのラムダ計算

scala

新しい言語をさわったらとりあえずラムダ計算インタプリタを実装するよね! Scalaでふつうにラムダ計算インタプリタを実装するのはあまりに簡単*1なので, 型レベルでやってみた.

まじめな話をしておくと, C++のテンプレートがチューリング完全なのは有名な話だけど, Scalaではどうなのか気になった. 以前C++のテンプレートでラムダ計算のインタプリタを実装したのと同様のことができるか思考実験してみると, だいたいできそうに思えたのでやってみた.

*1:ケースクラスの公式ドキュメントに途中まで実装が書いてあるレベル

続きを読む

Scalaで生SQL - SlickのSQL補間子にリストを渡す 他

scala

ScalaSQLを書くのにSlickで便利にやる話. Slickでは生SQLを補間子(sql"...")で書けるけれど, リストが渡せなくてWHERE column IN ($list)できなかったり, 他にもいくつか不便なところがあったのでなんとかした. 最近になってScalaを書き始めたのでScala力を上げるための練習も兼ねている.

続きを読む

Caskはもう古い、これからはEl-Get - いまどきのEmacsパッケージ管理

article emacs

秘伝のタレとなったEmacsの設定をgitで管理するなどして, 複数の環境で同じ設定を使うようにするのはかなり一般的になってきました. ただ, 使っている非標準パッケージも含めてきちんと管理しようと思うとけっこう大変です. とくに, 以下のような点はぜひとも実現したいところですが, (これまでは)なかなか難しい部分もありました.

  • 使っているパッケージのインストールを自動化したい
  • いろいろな配布元(GitHub, Emacs Wiki, 個人Webサイト, etc.)からインストールしたい
  • きちんと動くことがわかっているパッケージバージョンに固定したい
  • 新しいパッケージを簡単に試したい
  • パッケージと設定の対応をわかりやすくしたい
続きを読む

『BrandSafe はてな』のアドベリフィケーションのしくみについてアドテク系勉強会で発表しました

BrandSafe はてなで使われている技術についてアドテク系の勉強会で発表してきました.

続きを読む

【はてなスタッフ非公式ブログバトン】 Haxeの善し悪し

id:hatz48さんからバトンがまわってきました.

前々から個人的に興味があったので, 社内で言語の話題が出る度に「Haxe, Haxe」と言っていたら, 「Haxeと言えばtaraoさん」みたいになってて, なぜかHaxeについて書く羽目になってしまった. Haxeなんて1ミリも書いたことないのに! この記事は http://try.haxe.org/ でちょっと遊んだ程度のにわか知識で書かれております.

もともとはよさげなAltJSを紹介していくみたいな文脈のようだけど, 個人的には特殊用途以外では素のJavaScript書いてりゃいいんじゃね, と思うので, 文脈無視で単純に言語/処理系の善し悪しについて書くよ!

続きを読む

anythingでgitリポジトリ内のファイルの全列挙をきちんとやる

emacs

anythingでgitリポジトリ内のファイルを列挙するなんていうのはやり尽くされている気がするけれど, きちんとやっているものは意外と少なかったので, フルスクラッチで書いた.

続きを読む