八発白中

技術ブログ、改め雑記

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…

プロジェクトのCommon Lispライブラリ管理ツール「qlot」を作りました

想像してください。 Common Lispで開発しているアプリケーションが手元にありますよね。 それを他の環境、たとえば他の開発者のPC、CI環境やWebサーバなどで動かしたいというときに起こる問題はなんですか。 大きな問題は処理系やライブラリのバージョンが違…

軽量なCommon LispのDBライブラリ「datafly」を作りました

Common Lispのデータベースライブラリというか、O/Rマッパーとしては3ヶ月前に僕が作ったIntegralがあります。 IntegralはCLOSやMOPなどのCommon Lispの魔術を余すこと無く使い、拡張性や高度なマイグレーション機能もあるライブラリとして他の追随を許しま…

株式会社はてなを退職しました

二月末日で株式会社はてなを退職しました。二年半の間、大変お世話になりました。 理由。はてなで働き続けて得られる以上のことをしようと思ったから。 この一年くらい、僕は今の自分に何の価値も感じられず、今の自分に何の満足もできていない。それなのに…

誰向けかわからないCommon Lispでの関数型プログラミング入門とその未来

Lispと言えば関数型言語という印象を持つ人が多いようです。 まあ正直に言うと、Common Lispに関して言えば違うんですけどね。Common Lispは効率のためと言えばループも代入も使いまくるし、構造体もクラスもある。実際書かれたコードも関数型プログラミング…