LATEST ARTICLES

Last updated on
October 27, 2018
...
Type Level Permission Checking
Few days ago I was working on some API handlers in our server written in Haskell with the framework Yesod. There was a mistake, some secret data was accessible to normal users because we forgot to check the user's type, luckily it's not on production yet.
...
TypeFamilyDependencies の実用的な例を考える
FunctionalDependencies という GHC 言語拡張がある.Haskell Wiki によると,Functional dependencies are used to constrain the parameters of type classes. と書かれているが,これはどういうことか.
...
DailyUIを通じて得た知見ログ #001〜010
DailyUIというものをはじめました。 このサイトにメールアドレスを登録すると毎日(平日のみ)UIデザインのお題が届いて、それを自分なりに解釈してデザインするというチャレンジです。
...
TemplateHaskellでコード中にJSONを埋め込んだりコンパイル時にファイルから型安全に読み込んだりする
前回よりはもう少し実用的な例を.Template Haskell を使って,Haskell のコード中に JSON をそのまま埋め込むことができるようにする.また,あらかじめ用意しておいた JSON ファイルをコンパイル時に読み込み,指定したデータ型の値にする.
...
Template Haskell でコンパイル時 FizzBuzz
数ヶ月前に Twitter で,コンパイル時に FizzBuzz を計算して,実行時には計算された文字列を出力をするだけ,というコンパイル時 FizzBuzz を何かの言語でやっているのを見かけた.元ネタは江添さんがC++で書いたものらしい.インスピレーションを受けて,Haskell で書いてはみたが,簡単すぎて全然おもしろくなくなってしまった.
...
Type-level TypeScript
この記事は CAMPHOR- Advent Calendar 2017 の21日目の記事です.@ryota-ka です.普段は HERP という会社でリードエンジニアとして働いています.一昨日19日にサービスのティザーサイトを公開したばかりなので見てください.
...
がんばれやってけ TypeORM
TypeScript アヨヨンヨアヨンヨー のやつ です。 アヨンヨーつくったひとに 「書いて〜😣」ていわれたので、がんばった。 概要 TypeORM は EventListner とかと一緒に使わないと結構厳しい TypeScript の機能上仕方ない感もある
...
Mapping things
This is an article explaining the concept of functor to programmers who are interested in Haskell but not sure how to get started on those abstract ideas. Many articles introduce functional programming with examples of maping, filtering and reduceing arrays, but it feels like it is not very useful except from array manipulation. This post focus on the map concept and try to explain how is it useful in other ways. (This is the 10th post for Haskell Advent Calendar 2017)
...
結果に対する気づき
Result export type Success<T> = { ok: true, result: T, } export type Failure<E> = { ok: false, error: E, } export type Result<T, E> = | Success<T> | Failure<E>
...
今年一書いてよかった関数と型
modifyC modify関数を以下のように定義する function modify<T extends object, K extends keyof T>(key: K, f: (old: T[K]) => T[K], struct: T): T オブジェクトのキーとmapする関数を受け取って、キーに入っている値をMapする関数
...
`git rebase -i` と `git commit --fixup`
はじめに git rebase-i と git commit --fixup がハチャメチャ便利なので紹介する。 git ってなんやねんという人はすごいエリートの人が書いた記事があるので読んでみて欲しい。 この記事を書いた人はめちゃくちゃエリートで、特に何もめでたいことがなくても僕にスシを奢ってくれる人格者だ。 明日も僕にスシを奢ってくれるらしい。
...
TypeScript で少し快適に JavaScript を書こう
概要 TypeScript はね、よいよ。 はじめに JavaScript を書きたくない人間は多い。 なぜかといえばしんどいからである。 だけれども大人はお仕事をしているので、JavaScript で動く何らかを開発しないといけないことがある。
...
開発効率向上 tips vol.1 -ターミナル・シェル編-
最近弊社でも大学生のエンジニアインターンが増えてきて,彼らの成長のために,開発にあたっての知見を効率的に共有する手段を色々と模索している.こういった知見は再利用性も高く,社内に閉じている必要もまったくないので,こうしてブログに書き溜めていくことにしてみようかと思う.第一弾として,端末エミュレータ上でのオペレーションの効率化について記す.
...
Clickableなボタンであるためのあれこれ
最近、UIデザインをしていく中でClickableな(クリックできる)ボタンのアフォーダンスについて悶々と思考を巡らせてしまいます。 「果たしてこのボタンはクリックできるものだと認識してくれるだろうか?」「う〜んギリギリ認識してくれるか…?」という自問自答にはじまり、 「そもそもこれボタンに見えるのか?」「ボタンっぽいコンポーネントだけどこの機能の中ではクリックできる(すべき)ところではないんだよな...」などなど思考の沼にはまりながらUIデザインをしています。
...
ブラウザ拡張の開発をTypeScriptで爆速で始めるやつ作ったので紹介
先日、動画に突然「熱盛」を表示するとかいうクソChrome拡張を作って公開しました。めっちゃバズって結構インストールしていただけました。うれしい。 やっぱりこういうのは鮮度が大事で、思いついてから公開までを数日にとどめたいところですね。
...
Terraform の module で2重ループしたい ― GitHub の issue labels を例に
実現したいこと Terraform の GitHub provider を用いて,issues および pull requests のラベルを管理したい.その際に,いくつかのラベルをひとまとめにしておき,複数のリポジトリが同じラベル群を持つようにしたい.また,module はネストすることもできるが,複雑になるので避けたい.
...
BtoBサービスのUIデザインをする上でのリファレンスまとめ
つい最近、ご縁がありましてBtoB向けのサービスの開発にUIデザイナーでジョインすることになったのですが、BtoB向けのサービスにおけるUIデザインというものがはじめての経験です(しかもスタートアップ、スタートアップでの開発もはじめて)。