八発白中

はてなブログに引越しました。

近況

ポケットチェンジに入社して2ヵ月が経ちました。 日々Common Lispは書いているものの、なかなか内容をブログという形式にまとめられず、かと言ってこのまま更新せぬのもつまらないので近況報告という形で残しておきます。 Lisp Meetup 3/27にサイボウズスタ…

ポケットチェンジに入社しました

こんにちは。深町です。 年末に著しく体調を損なっていたこともあって方々に年賀の挨拶の機会を失ったまま過ごしています。旧暦では1月28日が元日だったようなので普段は旧暦で生活しているということにすると辻褄も合いそうです。明けましておめでとうござ…

Day 25: Utopian

メリークリスプマス! これは fukamachi products advent calendar 2016 の25日目の記事です。 今日はUtopianについて話します。 アドベントカレンダー最終日 このアドベントカレンダーも今日が最後ですが、テーマになっているプロダクトのリリース日がだい…

Day 24: Mito

これは fukamachi products advent calendar 2016 の24日目の記事です。 今日はMitoについて話します。 Integralの失敗 11日目のIntegralの「抽象化の失敗」のところで取り上げましたが、Common LispのORMとして作られたIntegralはPostgreSQLのサポートに失…

Day 23: Psychiq

これは fukamachi products advent calendar 2016 の23日目の記事です。 今日はPsychiqについて話します。 はてなでの経験 僕の経歴の中ではてなで働いていた時期はあまりOSS活動もせず、Common Lispを書いていませんでした。仕事がPerlということも理由の一…

Day 22: cl-coveralls

これは fukamachi products advent calendar 2016 の22日目の記事です。 今日はcl-coverallsについて話します。 CI Common LispはTravis CIのオフィシャルサポートはありませんが、cl-travisやRoswellを使って複数処理系をテストすることができます。 Common…

Day 21: Lack

これは fukamachi products advent calendar 2016 の21日目の記事です。 今日はLackについて話します。Rackではないです。 Clackの高速化 サムライトに入社してWooによるサーバーの高速化を主な課題と取り組んでいましたが、アプリケーション全体で見ればそ…

Day 20: Dexador

これは fukamachi products advent calendar 2016 の20日目の記事です。 今日はDexadorについて話します。 Drakma Common Lispには古くからDrakmaというHTTPクライアントがあります。Quickdocs によると74のライブラリで利用されており広く使われているよう…

Day 19: clfreaks

これは fukamachi products advent calendar 2016 の19日目の記事です。 今日はclfreaksについて話します。今回はライブラリではありません。 コミュニティの規模 Common Lispのコミュニティサイズは絶望するほど小さくはありませんが、決して大きくはありま…

Day 18: trivial-signal

これは fukamachi products advent calendar 2016 の18日目の記事です。 今日はtrivial-signalについて話します。土日に細かいライブラリ紹介が並んでいるのはただの手抜きです。 Common LIspとスクリプト 継続的なCommon Lispの課題として、スクリプトを書…

Day 17: smart-buffer

これは fukamachi products advent calendar 2016 の17日目の記事です。 今日はsmart-bufferについて話します。裏側で使っているライブラリなのでたぶん知らない人がほとんどかと思うので紹介です。 Wooの成功 15日目に話したWooは想像以上に受け入れられ、…

Day 16: QURI

これは fukamachi products advent calendar 2016 の16日目の記事です。 今日はQURIについて話します。 PURIへの不満 Common LispにはURIを扱うライブラリとしてずっとPURIが使われていました。 僕も詳しい経緯は知らないのですが、元々Allegro CLにあったUR…

Day 15: Woo

これは fukamachi products advent calendar 2016 の15日目の記事です。 今日はWooについて話します。 これがあらすじです。 WookieがNodeより遅くね?→プロファイル→http-parseが遅い→PRいくつか投げる→でも遅い→fast-http公開→Wookieまだ遅い→Clackベース…

Day 14: fast-http

これは fukamachi products advent calendar 2016 の14日目の記事です。 今日はfast-httpについて話します。埋め込みツイートが多いですが手抜きではありません。 Common Lispは高速か Common Lispは高速だという話を界隈ではよく聞きます。噂によればC++やC…

Day 13: websocket-driver

これは fukamachi products advent calendar 2016 の13日目の記事です。ようやく折り返し地点ですね。 今日はwebsocket-driverについて話します。 小さなライブラリではありますが、その後の話の発端となるライブラリなので紹介します。 WebSocket Clackによ…

Day 12: Qlot

これは fukamachi products advent calendar 2016 の12日目の記事です。 今日はQlotについて話します。 背景 はてなを退職することが決まってから、今までできていなかった開発時間を取り戻すかのようにCommon Lispを書き続けました。当時は起業する気でいた…

Day 11: Integral

これは fukamachi products advent calendar 2016 の11日目の記事です。 今日はIntegralについて話します。 このライブラリは現在非推奨ですが、歴史として重要なので取り上げます。 Common Lispとデータベース Cavemanを作ってから課題に感じていたデータベ…

Day 10: SxQL

これは fukamachi products advent calendar 2016 の10日目の記事です。 今日はSxQLについて話します。 Common LispのWeb開発に足りないもの Cavemanをリリースしてから継続的な課題として考えていたのは、Common LispのRDBMSとの連携が貧弱なことでした。CL…

Day 9: Quickdocs

これは fukamachi products advent calendar 2016 の9日目の記事です。 今日はQuickdocsについて話します。珍しく今回はライブラリの話ではありません。 ドキュメント生成の歴史 2日目のClackの回でも少し触れましたが、Clackは単に完成物としてのプロダクト…

Day 8: Shelly

これは fukamachi products advent calendar 2016 の8日目の記事です。 今日はShellyについて話します。 注意 今まで取り上げたツールとShellyの異なる点は、Shellyは古いプロジェクトであり現在非推奨である点です。これを読んで技術的な興味以上の実用的な…

Day 7: CL-DBI

これは fukamachi products advent calendar 2016 の7日目の記事です。 今日はCL-DBIについて話します。 フレームワークバトルは次のステージへ Cavemanに一定数のファンがついた頃、Star数がRESTASに並びました。そのとき僕はうれしくて、@snmstsさんに言い…

Day 6: circular-streams

これは fukamachi products advent calendar 2016 の6日目の記事です。 今日はcircular-streamsについて話します。 circular-streamsとは これまでのプロダクトとは違ってcircular-streamsは裏側で使われているライブラリなので知らない人も多いと思います。…

サムライト株式会社を退職します

今年末12月31日でサムライト株式会社を退職することにしました。 2年間という短い期間ではありましたが、Common Lispでの開発を存分にやらせていただきました。おかげで高速なWebサーバーのWooの運用実績ができ、Common Lispが実用に足るだけでなく他の言語…

Day 5: ningle

これは fukamachi products advent calendar 2016 の5日目の記事です。 今日はningleについて話します。 Cavemanをもっと小さく CavemanはマイクロWebフレームワークではありましたが、一般的なものと違ってプロジェクト雛形生成機能がついていました。 Perl…

Day 4: cl-project

これは fukamachi products advent calendar 2016 の4日目の記事です。 今日はcl-projectについて話します。 コーディングスタイルの提唱 前回の記事のCavemanからは話が前後します。 Clackの思想は疎結合性と再利用性を高めることでした。それはClackを使っ…

Day 3: Caveman

これは fukamachi products advent calendar 2016 の3日目の記事です。 今日はCavemanについて話します。 Clackに対するコメント Clack のリリースエントリは僕にとってはかなりの反響がありました。 その当時の記事についたはてなブックマークコメントで面…

Day 2: Clack

これは fukamachi products advent calendar 2016 の2日目の記事です。 今日はClackについて話します。 YAPC Asia 2010 keynote 僕が最初に学んだプログラム言語はPerlでした。その後PHPでのアルバイトを経験しましたが、好きな言語はやはりPerlでした。 最…

Day 1: Prove

これは fukamachi products advent calendar 2016 の1日目の記事です。 最初なのでこのアドベントカレンダーの説明をしておくと、僕が今まで作ったプロダクトをネタとして年代を追って話をするというとても気楽なものです。酒でも飲みながら昔話を聴いている…

落語Botを作った & LINE Botの設計考察

僕はよく落語を聴きに行きます。 寄席のときもあるし、お気に入りの落語家が出演する落語会のチケットを買って行くこともあります。寄席と落語会を合わせてだいたい月に3回くらい。 「寄席」というのは都内の各所で1年365日やってる落語イベントです。都内に…

プログラマを志す中高生向けの文章をマグロ部に寄稿しました

朝日新聞の中高生向けウェブメディア「マグロ部」にプログラマの記事を寄稿しました。 「人生のOB・OG訪問」の「夢を叶える方法」というシリーズで、将来の夢を考える若者向けのインタビュー記事を連載するものです。 たとえば先月の「キャビンアテンダンド…

Common Lisp用のメッセージキュー「Psychiq」を作りました

2年前にLesqueという、Common Lisp向けにRubyのResqueクローンを作りました。 メッセージキューやジョブキューという種類のプロダクトで、非同期処理を別のプロセスに移譲してバックグラウンドで行うものです。Redisをバックエンドとしています。 ある程度の…

割と本気で家庭用Slack Botを作ってみた

僕は妻と二人暮らしをしています。かつてはLINEを使って普段のやり取りをしていたのですが、一年ほど前からSlackを使い始めました。 Slackの良いところはハッカビリティが高いところです。Google Calendarなど他のサービスと連携することができるし、IFTTTを…

HubotスクリプトをCommon Lispで書く

いい加減ChatOpsにも手を付けたいなぁ、と思って、試しに家庭内SlackにHubotを導入してみました。 HubotはGitHub社製のチャットボットフレームワークです。CoffeeScriptで書かれていてNode.jsで動きます。挙動を追加するにはCoffeeScriptでスクリプトを書き…

語らるるべき日本のCommon Lisper達

Lispのエッセイのようなものを継続的にブログに載せていこうとしたのはいいのだが、立て続けに2つ載せたきりなかなか続かない。これはその3つ目のものである。 今回は「人」に焦点をあてて、Common Lispコミュニティで現状活発に活動している人を紹介する。…

ISUCON5オンライン予選にclfreaksとして参加しました

9/27(日)に開催されたISUCON5のオンライン予選に参加しました。 僕はアプリケーション側の改善、他の二人はインフラ寄りの対応をするように事前に役割分担をしていました。 “ISUCON”とは ISUCONは「Iikanjini Speed Up Contest」の略で、LINE株式会社 (昔はL…

Lisp Meetup #31 で「Dexador Rises」という発表をしました

今月の Lisp Meetup #31 で、拙作のHTTPクライアントライブラリの「Dexador」の話をしてきました。 Dexador Rises from fukamachi 事実上Drakmaの一人勝ち市場なんだけど、Drakmaって割とハマりがちだよね、っていう話に賛同を得られました。 Dexadorは現在v…

Roswell時代のCommon LispのWebアプリケーション運用

最近Quickdocs.orgをフルスクラッチしました (2回目)。 今回のメインは裏側の月次バッチ処理でしたが、Webアプリ部分も多少変更をしました。特に運用方法が、Roswellを全面的に使うことで大きく変わりました。 Common LispのWebアプリ開発では、未だにこのブ…

訳本「ヘルシープログラマ」を読む

以前、「The Healthy Programmer」を読んだ話を書きました。この夏にその邦訳の「ヘルシープログラマ」が出版され、僕のブログ記事を見ていただいた訳者の玉川竜司さんに献本いただいたので、今もう一度日本語で読み返しています。 内容としては、普段座りっ…

Common Lispのコミュニティ事情

初対面の人と二人きりで話すという機会はあまりない。 「普段どんなお仕事をされてるのですか」 ──もし訊いても良ければ。そう遠慮がちに言い添えた彼は、コタツを挟んで斜め向かいから好奇心旺盛な目でこちらを見ていた。 「プログラマですよ」 そう答えて…

コマンドラインからHyperSpecを開くRoswellスクリプト

コマンドラインからHyperSpecを簡単に開けるRoswellスクリプトを作ったので紹介します。 https://gist.github.com/fukamachi/3510ea1609c1b52830c2 Roswellが何か知らない人はまずこちらの記事をお読みください。 Common Lispとリアル・ワールドを繋ぐ「Rosw…

Lisperはプログラムに何を見るか

男子校に通う中学生の僕らにとって「家庭科」の授業は休憩時間のようなものだった。 僕の中学校には家庭科室というものがない。だから、いつもの教室で野菜の種類やそれに含まれる栄養素なんかを教わるというだけの、正直退屈な授業だった。話される内容はど…

Common Lispとリアル・ワールドを繋ぐ「Roswell」の紹介

「Roswell」というプロダクトがある。 clfreaksのPodcastで聴いたことがあるかもしれないし、数週間前にLisp Meet Upで佐野さん (@snmsts) の発表を聞いたかもしれない。 https://github.com/snmsts/roswell Lisp Meet Up 発表録画 知名度の割には意外と長く…

「The Healthy Programmer」を読んで自宅を快適なプログラミング環境にする

柄にもなく健康の話をします。 去年の今頃は京都から東京に引っ越してきたところでした。まだはてなで働いていましたが、勤務形態は自宅からのリモートが主になっていました。週に6日は家から出ずに家でコードを書いていました。昼から早朝まで書いて昼から…

Clack Meetup #1 を開催します

3月5日 (木) に「Clack Meetup #1」というイベントをサムライト株式会社のオフィスにて開催します。 Clackは拙作のCommon LispにおけるWeb application environmentであり、4年前にリリースされてから先日ようやくv1.0がリリースされました。 Clack Meetupで…

高速なCommon LispのWebサーバ「Woo」を作りました

ここ一ヶ月ほど手掛けていたCommon LispのWebサーバ「Woo」が一応の完成に至りましたのでお知らせします。Clack-compatibleなAPIになっており、現状運用しているClackのWebアプリケーションでそのままお試しいただけます。 高速であることを最優先に設計して…

サムライト株式会社に入社しました

本日11月17日、サムライト株式会社にプログラマとして入社しました。 サムライトはCommon Lispという最先端の技術を使う数少ないWeb企業です。 今月の頭までどこかの会社に雇用されるなど想像もしていなかったことです。 それがつい2週間前、兼ねてからTwitt…

Cより高速なCommon Lispコードを書く

Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。 “If you can't outperform C in CL, you're too good at C.” — Eric Naggum 最近、Common Lispの非同期Webサーバ「Wookie」を高速化する過程で、ボ…

自分のTwitpicの画像・動画をダウンロードできるスクリプトを書きました

Twitpicの公式ブログで、Twitpicが今月終了することが告知されているようです。 Twitpic is shutting down | Twitpic Blog 追記 (2014/09/19): Twitpicが買収されたので終了しない、ということを公式Twitterアカウントでツイートしています。 We're happy to…

どこでCommon Lispの質問をしたらいいのか

1週間ほど前、Quicklispの作者のZach Beaneがこんなブログ記事をポストしていて少し話題になりました。 Zach Beane's Blog - Where to get help with Common Lisp Common Lispの質問をする場所はいくつかある。 一般的な質問の場合、 Stack Overflowに「Comm…

Shibuya.lisp TT #8 で「Redesigning Common Lisp」という発表をしました

先日8/30(土)、Shibuya.lisp Tech Talk #8 が開催されました。 イベント概要 イベントではTechnical Talkが5つ、Lightning Talkが9つありました。 参加者は全部で57名。よく使うLisp方言のアンケートを取ったら、だいたいCommon Lisp、Scheme、Clojureが1/3…