タグ

ブックマーク / blog.8arrow.org (8)

  • ISUCON5オンライン予選にclfreaksとして参加しました - 八発白中

    9/27(日)に開催されたISUCON5のオンライン予選に参加しました。 僕はアプリケーション側の改善、他の二人はインフラ寄りの対応をするように事前に役割分担をしていました。 “ISUCON”とは ISUCONは「Iikanjini Speed Up Contest」の略で、LINE株式会社 (昔はLivedoor) が主催する、アプリケーションやインフラのパフォーマンスチューニングを行ってそのスコアを競うイベントです。2〜3人のチームを作って参加します。 優勝賞金100万円!今年もやります ISUCON5 開催と日程のお知らせ #isucon : ISUCON公式Blog この週末の2日間にオンライン予選が行われました。 チームビルディング ISUCONというイベント自体は知っていたのですが、どうも自分には縁遠いものだと思っていました。まさか参加することになろうとは。 というのも、ISU

    ISUCON5オンライン予選にclfreaksとして参加しました - 八発白中
  • 高速なCommon LispのWebサーバ「Woo」を作りました - 八発白中

    ここ一ヶ月ほど手掛けていたCommon LispのWebサーバ「Woo」が一応の完成に至りましたのでお知らせします。Clack-compatibleなAPIになっており、現状運用しているClackのWebアプリケーションでそのままお試しいただけます。 高速であることを最優先に設計しており、Hunchentootの4倍、Wookieの3.5倍高速に動きます。現状ではCommon Lispのサーバでは最速ではないでしょうか。*1 Woo by fukamachi | GitHub Benchmarks いくつかのCommon Lispのサーバと、Node.js、GoPythonのサーバを比較してみました。縦軸はreq/secで、高いほうが多くのリクエストを捌けることを意味します。 Wooは、PythonのTornadoより約9.5倍、Node.jsの約1.9倍のリクエストを捌けます。一方、G

    高速なCommon LispのWebサーバ「Woo」を作りました - 八発白中
  • Sublime Text 2でCommon Lispを書くための環境設定 - 八発白中

    仕事を成し遂げるのに必要な労力が大きいほど、その仕事をうまく成し遂げられる可能性は低い。 — Design Rule Index[第2版]― デザイン、新・25+100の法則 最近、にちまちまJavaScriptを教えるということをやっています。 はプログラミングができません。プログラムには何ができて何ができないのかや、それぞれの言語の違いもわかりません。ターミナルも使ったことがない。 こういう人にプログラミングを教えようとすると、普段プログラマが何気なくやっていることでも多様な知識が必要なのだな、と思います。 こういった状態の人に最初から多くのことを教えようとすると、学習の労力が増え、肝心の「プログラムができるようになる」という目的を成し遂げられる可能性が低くなります。なので、質的でないところはまず後回しにしたい。 たとえばプログラムを書くのに必要なものの一つに「エディタ」というも

  • SQLを生成するCommon Lispライブラリ「SxQL」を作りました - 八発白中

    何か作ったときにしか更新しないブログが、最近では何か作っても「まあこの程度はブログ書くほどでもないか」と思って、更新も無いような感じになっています。 今回もそうやってスルーしようと思ったのですがに「ブログで紹介したらいいのに」と言われてしまい、と過ごす休日を潰して作ったライブラリとしては、もうこれは書かざるを得ないわけで、軽く紹介しておこうと思います。 Common Lispのデータベース周辺 Common Lispのデータベース周りではこれといった好むライブラリも無く、拙作のCL-DBIでようやく土台ができたという状態です。 ただ、依然SQLを文字列で書く必要がある。もちろんそれで困らないケースも多いのですが、WHERE句やORDER BY句だけが異なるクエリを複数回投げたいといったときにはプログラムから生成できるほうが好ましい。 PerlにはSQL::Makerというライブラリで、

    SQLを生成するCommon Lispライブラリ「SxQL」を作りました - 八発白中
  • Lispユーティリティの新しい解決案「Quickutil」 - 八発白中

    今、新婚旅行のためシリコンバレーのSanta Claraというところに1週間ほどいるのですが、途中からを無視してステイ先のRobert Smithとハッカソンを始めてしまってまじごめんみたいな感じです。 とはいえ、まあこれも思い出ということで……新しいCommon Lispライブラリ「Quickutil」というものを作ったので紹介します。 http://quickutil.org/ ユーティリティ まとまったプログラムをしているとほぼ必ず使うことになるであろうものは「ユーティリティ」です。 Common Lispプログラマなら以下のようなことを思ったことがあるのではないですかね。 Alexandriaは大きすぎる…… なんでAlexandriaにあの関数ないんだよ…… aandのためだけにarnesi……*1 split-sequence…… そんな微妙な行き違いの結果、みんなオレオレユ

    Lispユーティリティの新しい解決案「Quickutil」 - 八発白中
  • Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中

    Quicklispに登録されているCommon Lispライブラリの情報をWebで見られるサイト「Quickdocs.org」を作りました。 http://quickdocs.org/ さくらVPS 1Gで動いてます。この2日で突貫で作ったみたいな感じなのであまりいじめないでください。 機能 とてもシンプルなので、見ていただいたほうがわかりやすいかもしれません。 たとえばClackのプロジェクトページは以下です。 http://quickdocs.org/clack 右上にはWebサイトやリポジトリへのリンクを置きました*1。 文にはREADMEを表示しています。最近はGitHubホストされているライブラリが多いので見慣れていると思いますけどね。 下のほうには.asdに記述されている情報を表示しています。Author, Maintainer と License、および依存ライブラリです

    Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中
    youz
    youz 2013/02/26
    APIリファレンス表示機能素晴らしいなー
  • 20分ではてなブログを作る方法 - 八発白中

    これはLisp Advent Calendarの10日目です。 先日、HappyElementsさんで行われたLiveCoding #11にライブコーダとして参加させていただきました。そのときの話をしようと思います。 LiveCodingとは 一人の"LiveCoder"が、20分の制限時間で何かソフトウェアを作り、デモをします。 LiveCoderがどのようにコーディングしているかの全てがプロジェクターで大画面に映し出され、 さらに解説役が常にLiveCoderの挙動を説明します。 A 「コンパイル中です・・・、お、おおお、なんと、Syntax error!」 B 「これは恥ずかしい…!」 LiveCoder 「(/// 」 LiveCoderが何を作るかについては、自分で決めた上でそれをLiveCoding前に告知します。 ただし、観客の要望で仕様が強制的に変更になることがあります。

    20分ではてなブログを作る方法 - 八発白中
  • Common Lisp用のデータベースライブラリ「CL-DBI」を作りました - 八発白中

    Common Lisp用のデータベースライブラリ「CL-DBI」を作りました。 https://github.com/fukamachi/cl-dbi このエントリではCL-DBIの紹介と、なぜ新しくライブラリを作ろうと思ったかについて書こうと思います。 Common Lispが抱えるDB周りの問題 今までCommon LispでWebアプリケーションを作る際、毎回困るのはデータベースの扱いでした。ClackやCavemanで軽量なWebアプリケーションを作っても、手頃なDBライブラリがなく、素早いWeb開発のネックとなっていました。 おそらく最も使われているライブラリはCLSQLですが、安定性には疑問があります。具体的には以下のような問題がありました。 環境によってはうまくロードできないことが多い (特にSBCL) 裏側のデータベースの差異を抽象化しきれていない (SQLite3でうまく

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