八発白中

技術ブログ、改め雑記

Lisp Meet Up #13 に参加しました

1/23の夜開催されたイベント、Lisp Meet Up presented by Shibuya.lisp #13 に参加しました。 Lisp Meet Up presented by Shibuya.lisp #13 毎月やっているLisp Meet Upが1周年を迎えたのはめでたいですね。なわたさんと神田さんは表彰されていいと思う。 参…

新しいCommon Lisp方言「CL21」を作ったので意見を募集します

昨晩、神の啓示か何か知りませんが、ふと思い立って新しいLisp方言を作りました。 ほとんどの機能はCommon Lisp互換なので「Common Lisp方言」と言うべきかもしれません。 CLerだけでなく、Common Lispをあまり書いたことがない人やそれ以外の言語を使ってい…

高機能なCommon LispのO/Rマッパー「Integral」を作りました

「O/Rマッパー」や「ORM」と聞くだけで顔をしかめる人もいらっしゃいます。たぶん過去にひどい目にあったんでしょうね。その大きな理由の一つがパフォーマンスでしょう。 一昨年のYAPC::Asiaに参加したとき、ORMは使うなという話を4回くらい聞いたのが印象的…

Common LispのResqueクローン「Lesque」を作りました

明けましておめでとうございます。今年もよろしくお願いします。 昨年の暮れは、引越しという大掃除を終わらせたこともあってさほど忙しくもなく、とはいえ一年を振り返る気にも到底ならなかったので前々から欲しかったCommon Lispライブラリを作っていまし…

Sublime Text 2でCommon Lispを書くための環境設定

仕事を成し遂げるのに必要な労力が大きいほど、その仕事をうまく成し遂げられる可能性は低い。 — Design Rule Index[第2版]― デザイン、新・25+100の法則 最近、妻にちまちまJavaScriptを教えるということをやっています。 妻はプログラミングができません。…

あなたがLispを無視することができない理由

(この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。…

Common LispのWebフレームワーク「Caveman2」を作りました

僕がClackを作ったのは2年9ヶ月前。Webフレームワークの「Caveman」をリリースしたのはその2ヶ月後だった。 Cavemanを作った頃、僕はアリエルネットワーク株式会社にいた。松山さんと開発していた試作プロダクトのために、並行して開発していたWebフレームワ…

SQLを生成するCommon Lispライブラリ「SxQL」を作りました

何か作ったときにしか更新しないブログが、最近では何か作っても「まあこの程度はブログ書くほどでもないか」と思って、更新も無いような感じになっています。今回もそうやってスルーしようと思ったのですが妻に「ブログで紹介したらいいのに」と言われてし…

Common LispでWebAppの開発に必要なN個のこと

PerlでWebAppの開発に必要なN個のこと - Islands in the byte streamのCommon Lisp版です。あるプログラミング言語で実際にWebAppを開発できるようになるまで、何が必要だろうか。言語仕様の習得は終えているとしよう。おそらく、最低限以下のような知識が必…

プロジェクトごとに使うQuicklispを分離する

何か作った〜、とかの記事しか書かないので、もうちょっと小粒のTipsっぽいのも書いておこうかなと思った。 問題点 複数のCommon Lispアプリケーションを同じマシンで動かしているときに困るのが、Quicklisp。Quicklispは基本的にユーザ単位でインストールす…

Shellyの新しい使い方を紹介します

今、同僚と温泉ハッカソン(温泉なし)のため琵琶湖のほとりに来ています。琵琶湖初めて見たら普通に砂浜で若者 (5歳前後) とかが水着で泳いでたりするし海っぽい。おじさんがその辺の木にハンモック吊るして寝てた。意外にも京都市内から電車で30分とかで来ら…

Lispユーティリティの新しい解決案「Quickutil」

今、新婚旅行のためシリコンバレーのSanta Claraというところに1週間ほどいるのですが、途中から妻を無視してステイ先のRobert Smithとハッカソンを始めてしまってまじごめんみたいな感じです。とはいえ、まあこれも思い出ということで……新しいCommon Lispラ…

Quickdocs.org で学ぶCommon LispのWebアプリ運用ノウハウ

先日、QuickdocsというWebサービスを作りました。 Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中 アプリ部分はほとんどCommon Lispで書かれています。今までもいくつかCommon LispでWebアプリを書いたことはありますが、…

Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました

Quicklispに登録されているCommon Lispライブラリの情報をWebで見られるサイト「Quickdocs.org」を作りました。 http://quickdocs.org/ さくらVPS 1Gで動いてます。この2日で突貫で作ったみたいな感じなのであまりいじめないでください。 機能 とてもシンプ…

EmacsでKindle風の読書環境を整える

プログラムを書くのに使うのはもちろんEmacsなのですが、最近はプログラムだけでなく長文ドキュメントや本なんか読むことが多いです。そういうとき、どうしてもEmacsから離れてChromiumで開いたり、長文になるとKindleに転送したりしてしまう。だけど、Kindl…

巳年なのでPythonでLESSの自動コンパイルしてみた

これは普通の日記です。今年は巳年なのでPythonを始めました。 全てのwebエンジニアがPythonを勉強するべき2013年到来 別にこの記事に影響されるほど繊細でもないのですが、Perlは仕事でいくらでも書けるし、Rubyはあんまり好きじゃないので、Pythonやってみ…

20分ではてなブログを作る方法

これはLisp Advent Calendarの10日目です。先日、HappyElementsさんで行われたLiveCoding #11にライブコーダとして参加させていただきました。そのときの話をしようと思います。 LiveCodingとは 一人の"LiveCoder"が、20分の制限時間で何かソフトウェアを作…

ILC2012 @ Kyotoに参加して発表しました

10月21〜24日の4日間、International Lisp Conference (国際Lisp会議) 2012 @ 京都に参加してきました。4日目にはClackについて発表してきました。せっかくなのでレポートがてら、ILCについて少し書いておこうと思います。 ILC2010 @ Reno/Sparks ILCの参加…

Common Lispでシェルを便利に!「Shelly」をリリースしました

先日のKyoto.lisp Tech Talkでご紹介しましたが、「Shelly」というプロダクトを作りました。 Shelly View more presentations from fukamachi まとめると、ShellyはCommon Lispの関数をシェルコマンドのように実行できるユーティリティです。インストールは…

なぜ僕はcl-annotを使うのか

Twitterで、なぜcl-annotを使うのかという主旨の質問を受けて、そういえば id:m2ym がModern Common Lispに書くだろうからと言ってほとんど利点をまとめてなかった気がします。140字で返信するのは不可能なのでついでにブログに書いておきます。 cl-annotと…

Common Lispの軽量フレームワーク「ningle」を作りました

Clackベースの軽量Webフレームワーク「ningle」を作りました。 ningle by fukamachi 背景 Clackベースのフレームワークとしては既に「Caveman」がありますが、CavemanはPerlのAmon2に影響を受けたこともあり、プロジェクトの拡大に伴う拡張性を損なわないた…

Kyoto.lispを作ろうとしています

京都近郊のLispコミュニティ「Kyoto.lisp」というものを作ろうとしています。こういうのは「作った」って言えば作ったことになるのか、何人以上集めたらコミュニティなのかよくわからないですが、ブログとかメーリングリストとかは用意してみました。 Kyoto.…

Common LispのWebアプリケーションを社内運用してみた

今月の初めに弊社はてなで開発合宿を行いました。2泊3日の合宿の中でチームを組み、テーマを決めて開発をし、最後に各チームがプレゼンをする、というものです。成果物は今後のサービス開発に生かされます。僕のチームはバックエンドがCommon Lisp、フロント…

Common LispのProperty Listユーティリティ「Multival-Plist」を公開しました

Clackではライブラリ内で使うユーティリティをsrc/util以下に置いているのですが、その1つであるgetf-allを独立ライブラリの「Multival-Plist」として公開しました。 https://github.com/fukamachi/multival-plist 通常、Property List(属性リスト)へのアク…

Common Lispの循環ストリームライブラリ「Circular-Streams」を公開しました

Clackではライブラリ内で使うユーティリティをsrc/util以下に置いているのですが、その1つであるreplay-input-streamを独立ライブラリの「Circular-Streams」として公開しました。 https://github.com/fukamachi/circular-streams 通常、ストリームは一度読…

シンプルさはスタイルではなく必然性

Lispの話とデザインの話が交互に出てくるブログって誰得な感じですが、最近自分もデザイン力を身につけなければならないと思い立ってひっそり勉強しています。 そもそもデザインとは何かについて人に自信を持って言えるほどの知識も何もない状態からのスター…

Common Lisp用のデータベースライブラリ「CL-DBI」を作りました

Common Lisp用のデータベースライブラリ「CL-DBI」を作りました。https://github.com/fukamachi/cl-dbiこのエントリではCL-DBIの紹介と、なぜ新しくライブラリを作ろうと思ったかについて書こうと思います。 Common Lispが抱えるDB周りの問題 今までCommon L…

Clack、裏イントロダクション

先日、ClackのTutorialの更新を始めた。ただ、公式チュートリアルということもあって、あまり熱狂的なことも書きづらい。他のプロジェクトの名前を挙げて比較するのも行儀が悪い。そんなことを意識しながら書いたので、割とよくある平凡な文章に落ち着いてし…

Design is different from Decoration

最近、Webアプリケーションを全面的に"デザイン"する機会があったので、"デザイン"ってなんだろうと思っていろいろ調べています。日本で「デザイン」とか「デザイナ」という言葉を使うと絵を描いたり建物を設計したりとかいう人を思い浮かべがちだけど、海外…

アリエルの謎 (Ariel Advent Calendar 3日目)

はてなの深町です。ようやく昨日で入社4ヶ月目に入りました。この記事は「Ariel Advent Calendar 2011」の3日目らしいです。なんで僕がアリエルさんの社員Advent Calendarに参加してるのか。それは、弊社の id:antipop が「Hatena::Staff Advent Calendar 20…