Elm でマテリアルデザインなウェブアプリを作った

アプリ概要 アプリとしてはニッチな用途で、写真用のモノクロネガフィルムを自家現像するときに便利なタイマーアプリです。下記は埋め込まれた実際に動くアプリです。 Photo Film Dev で公開しています。 時間配分をレシピと呼んでいますが、レシピはサーバ…

Windows Terminal に MSYS2/MinGW64 を追加する

Windows 10 2004 にしたので Windows Terminal をさわってみた。自分の用途だと Cmder はもう使わなくていいなと思う。 さて、Windows Terminal に MSYS2/MinGW64 を追加したのでその設定を示す。 { …, "profiles": { …, "list": [ …, { "guid": "{43257a9a-…

Windows のホームフォルダーにドットファイルを作らないでほしい

郷に従ってほしい pic.twitter.com/NzIep3qJcK— 岡本和樹 (@kakkun61) 2020年6月26日 Windows ではファイル名の先頭にドットを付けるだけでは隠しファイルにならないのでユーザーのホームフォルダーを汚染することになる。 だいたいの場合では LOCALAPPDATA …

Haskell 環境構築ツールフローチャートを作りました

前に環境構築についての記事を書いたのですが、初学者向けにパッと見て分かるようにフローチャートにしました。kakkun61.hatenablog.comGoogle ドライブ 図形描画のファイルはこちらです。コメントを付けることができます。docs.google.com

新しいディスプレー

会社が 4K ディスプレーなのもあって、家でプログラミングしてたら画面が窮屈に感じてきてうちも 4K ディスプレーを導入しました。 特に Elm の標準のフォーマットが密度低いのでフル HD だと不便だったのが最後の引き金でした。 4K かつ HDR にしました。 K…

postgresql-pure を開発しました

この記事は Haskell Advent Calendar 2019 の6日目の記事です。 hackage.haskell.org postgresql-pure は Haskell の PostgreSQL ドライバー(クライアントライブラリー)で次のような目標で開発しました。 マルチコア環境でのパフォーマンス向上 暗黙のロッ…

FFI で Haskell から Rust を利用する

Rust で作ったライブラリーを静的リンクして Haskell(GHC)から使う例と説明を書いた。 github.com

GHC 環境構築 概観 と PowerShell

Haskell の開発環境を構築する方法は何通りかあり、新しいツールが出ると「今はこれだ」とほめるブログも公開されますがそれが初学者を混乱させることがよくあります。 本記事ではビルドツールのインストールにしぼり、開発支援、例えば ghc-mod・haskell-id…

C ドライブ依存を減らす

いろいろなソフトウェアがデフォルトで何でも C ドライブを使う。 C ドライブが手狭になってきたのでいくらかのデータを別ドライブに移行する方法をメモしておく。 Stack Stack(Haskell)のリソースはユーザー環境変数 STACK_ROOT の指すディレクトリーに保…

Zenza Bronica S 系用接写リング

Zenza Bronica S 系用接写リングの説明書(をスキャンしたものをプリントしたもの)を入手したので文字データに起こした。 docs.google.com この接写リングは4個(C-A C-B C-C C-D)で1組になっています 使用できるレンズも 40 mm~200 mm までと巾広く 標準…

最近の自分の Haskell 開発環境(Windows)

id:syocy のブログを見たので Windows で自分がどうしているかをメモしておく。 syocy.hatenablog.com Stack 最近は ghcup があるがシェルスクリプト製で自分は PowerShell ユーザーなので stack を使っている。(ghcup はなんで Haskell 製じゃないんだ1?…

関数のメモ化

ブログに書いてみるとよく分からなくなってきました Haskell-jp で回答をもらいました。 @lotz84_ さんの記事や GHC のプロファイルに出てくる CAF がよく分かってなかったのをまとめる。 qiita.com fact のメモ化 lotz さんの記事の階乗 fact 関数を題材に…

技術書典 5 ふりかえり

え?6?いやいや 5 ですよ? techbookfest.org 池袋 慣れ親しんだ秋葉原の地を飛び出して池袋にやってきました。 めちゃくちゃ広くてびっくりです。秋葉原通運会館からアキバスクエアにやってきたときも思いましたが、同じ感想がもう一度。 ガラス張りじゃな…

Servant と Relational Record でウェブアプリケーション開発

Servant とは Servant は型レベルプログラミングによって、ウェブアプリとしてのインターフェースと実装との差異を防ぐことのできるウェブアプリフレームワークです。 haskell-servant.readthedocs.io 日本語記事としては lotz さんのこちらが分かりやすいの…

Haskell Windows Ctrl-C 動作確認

コード コードは前回記事と同じです(再掲)。 Git リポジトリーはこちら。 import Control.Concurrent import Control.Monad import System.Exit import System.IO import System.Win32.Console.CtrlHandler main :: IO () main = do tid <- myThreadId let…

Haskell で Ctrl-C を制御する(Windows)

Ctrl-C 等の割り込みの扱い方です。 tl;dr System.Win32.Console.CtrlHandler を使います。 Ctrl-C が押されたらクロージングの処理を伴って終了するプログラムを書いてみます。 import Control.Concurrent import Control.Monad import System.Exit import …

Windows で Haskell iconv をビルドする

GHC 8.0 以前についてはこちらを参考に。 teratail.com GHC 8.2 以降で stack を使う場合をここではとりあげる。 確信はないのだが、GHC 8.2 から GHC 自体が iconv に依存しなくなったのか、$(stack path --programs)\ghc-8.0.2\mingw\lib から libiconv.a …

Leica M3

Lomography Konstruktor F・Diana Mini から始まったフィルムカメラ熱ですが一瞬で行くところまで行ってしまった感じです。 Leica M3。 現在まで続く M 型 Leica の始祖を買ってしまいました。1962年製の56歳です。 (この写真を撮ったレンズも Asahi Super …

プラモデルカメラ Lomography Konstruktor F

本来はフジヤカメラに行くことが目的だった。 「カメラバカにつける薬 in デジカメ Watch」でも取り上げられてて、その前から気になってたのもあって中野に行った。 特に買うつもりもなかったので雰囲気だけ知れればいいやというようにそそくさと出たのだが…

『Yesod 入門』商業誌化

同人誌で発売していた『遠回りして学ぶ Yesod 入門』がこのたびインプレス R&D より『Haskell で作る Web アプリケーション 遠回りして学ぶ Yesod 入門』として商業誌化されることになりました。 www.impressrd.jp 同人誌版からの変更点は主に、 日本語が読…

初フィルム

厳密にいうと小学校の旅行などで「写ルンです」を使ったりしたことがあるので、初フィルムじゃないんだけど自分で装填するものとしては初ということで。 中野のコイデカメラで自分でプラモデルのように組み立てるカメラを見つけて「なんだこれは!?」と調べ…

Windows で haskell-ide-engine をビルドする

手順 1. ソースコード取得。 git clone git@github.com:haskell/haskell-ide-engine.git 2. Unicode を扱う ICU の古いバージョンが要るので取得。 自分の使うバージョンの text-icu の changelog を見て、必要な ICU のバージョンを探す。執筆時点では 53 …

入社

本日付けで IIJ に入社します。 職業 Haskeller になる……はず。

退職

2013年に新卒で入社した KLab を今日付けで退職しました。

技術書典 4 にサークル参加した

4月22日に開催された『技術書典 4』にサークル参加してきました。 techbookfest.org 技術書典は1と2に個人で参加して3は会社として参加して今回の4は会社と個人と2サークルにかかわっていました。 超技術書典を抜くと皆勤です。 個人サークル 既刊として『遠…

弊同人サークルのウェブサイトを作りました

がんばった。 doujin.kakkun61.com GitHub Pages だからと Jekyll にしたけど、生成したものを置けばいいんだから Hakyll でもよかったな。変えようかなというところ。 後はレスポンシブ対応したい。

なぜ Haskell が好きなのか

自分は Haskell が好きで休日は Haskell を書いています。そういうことを言うと関数型が好きなんですねと言われるのですが、Haskell のよさはそこじゃないと感じているので書き起こそうかと、筆を執りました。 というわけで、この記事は技術的文書というより…

C# でランク N 多相

C#

追記:これだと解決できていない。 C# に Sprache というパーサーコンビネーターがあるのだが、最近そいつを継続渡しスタイル(continuation passing style; CPS)にしてやろうと、Haskell のパーサーコンビネーター attoparsec を参考にいじっていた。 そこ…

“meaningless REX prefix used” “use of REX.w is meaningless”

コマンドプロンプトや PowerShell でプログラムを実行したときに次のようなエラーが出て困っていた。 [0x7FFE822C2B00] ANOMALY : meaningless REX prefix used [0x7FFE85B3DDA0] ANOMALY : use of REX.w is meaningless (default operand size is 64) REX …

関係と代数的データ型との相互変換についての妄想 その3

思い付き その2 class QueryUser ? where queryUser :: (?) => Key -> MonadDB User instance QueryUser ? where -- queryUser :: (HasFriends ?) => Key -> MonadDB User query = … instance QueryUser ? where -- queryUser :: (HasName ?) => Key -> Mona…