自動的に移動しない場合はをクリックしてください。
これは fukamachi products advent calendar 2016 の2日目の記事です。 今日はClackについて話します。 YAPC Asia 2010 keynote 僕が最初に学んだプログラム言語はPerlでした。その後PHPでのアルバイトを経験しましたが、好きな言語はやはりPerlでした。 最初に参加したカンファレンスはYAPC::Asia 2009だったと思います。まだPerlを始めて数年の若者で、技術力なんて吹けば飛ぶほどのものです。 当時はPerlにもまだ勢いがあり、YAPCは日本最大規模のカンファレンスでした。いろんな人が入れ替わりでPerlの話をし、ある人は自分のプロダクトのこと、ある人は会社での運用について、またある人はPerlの言語自体のことなど、内容はさまざまでした。そのとき受けた刺激は僕のプログラミング活動に大きく勢いをつけ、いつか自分も壇上に
僕は妻と二人暮らしをしています。かつてはLINEを使って普段のやり取りをしていたのですが、一年ほど前からSlackを使い始めました。 Slackの良いところはハッカビリティが高いところです。Google Calendarなど他のサービスと連携することができるし、IFTTTを使って多少凝ったこともできます。 IFTTT時代 IFTTTを使えば天気予報をSlackチャンネルに流せます。 英語というのは不本意ですが、一応今日の天気はわかります。英語が読めなくてもアイコンを見れば、雨が降りそうな気がするってくらいはわかります。 しかし、しばらく運用しているうちに疑念が。 天気予報が当たらない。 IFTTTが連携している天気予報は「The Weather Channel」の情報なのですが、これが日本の気象庁の予想と違っていて全然当たらない。 ちなみにiOS8から標準の天気アプリが提供している予報もこ
tamuraです。 Clack Meetup #1に行ってきました。 CommonLispは趣味でたまに使います。Clackは以前会社のツールを作るときに使いました。Caveman1がCavemanと名乗っていたころです。 一部の資料はconnpassにアップされてあります。 Clack Meetup #1 はじめに 設備の説明 全員で自己紹介 自己紹介で出た「今現在やっている言語」等をちろっとまとめるとこんな感じでした。 Javaは私です。 CommonLisp Python Ruby Clojure PHP DB Java 1. Clack: glue for web apps by サムライト株式会社 深町英太郎さん Clackとは web application environment webサーバを抽象化しよう web appをコンポーネント化しよう こんな感じで値を3つ返
ここ一ヶ月ほど手掛けていた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、Go、Pythonのサーバを比較してみました。縦軸はreq/secで、高いほうが多くのリクエストを捌けることを意味します。 Wooは、PythonのTornadoより約9.5倍、Node.jsの約1.9倍のリクエストを捌けます。一方、G
Cで書くコードの方がCommon Lispで書くより速いって人がいたら、それは彼のCの技量が高すぎるってことだね。 “If you can't outperform C in CL, you're too good at C.” — Eric Naggum 最近、Common Lispの非同期Webサーバ「Wookie」を高速化する過程で、ボトルネックになっていたHTTPリクエストのパース部分を高速に処理するライブラリを書きました。 fast-http - A fast HTTP request/response parser for Common Lisp 既存のライブラリ「http-parse」よりも約10倍速く、Cのライブラリ「http-parser」より5%ほど高速です。 追記 (2014/10/26): 最適化をやり直し、現在は「http-parse」よりも約27倍速く、Cの「h
Hello, everyone! Click here for up to date build instructions Today I am happy to make the first release of the Common Lisp implementation “Clasp”. Clasp uses LLVM as its back-end and generates native code. Clasp is a super-set of Common Lisp that interoperates smoothly with C++. The goal is to integrate these two very different languages together as seamlessly as possible to provide the best of b
1/23の夜開催されたイベント、Lisp Meet Up presented by Shibuya.lisp #13 に参加しました。 Lisp Meet Up presented by Shibuya.lisp #13 毎月やっているLisp Meet Upが1周年を迎えたのはめでたいですね。なわたさんと神田さんは表彰されていいと思う。 参加者 最初に自己紹介タイムがありました。使っているLispはClojureが一番多かったです。Common Lisp回なのにCommon Lisperは一番少なかったんじゃないかな。 Integralの紹介をしました 先日作ったCommon LispのO/RマッパーのIntegral について発表しました。30分くらい話したと思います。 Integral - New O/R Mapper for Common Lisp from fukamachi 既
仕事を成し遂げるのに必要な労力が大きいほど、その仕事をうまく成し遂げられる可能性は低い。 — Design Rule Index[第2版]― デザイン、新・25+100の法則 最近、妻にちまちまJavaScriptを教えるということをやっています。 妻はプログラミングができません。プログラムには何ができて何ができないのかや、それぞれの言語の違いもわかりません。ターミナルも使ったことがない。 こういう人にプログラミングを教えようとすると、普段プログラマが何気なくやっていることでも多様な知識が必要なのだな、と思います。 こういった状態の人に最初から多くのことを教えようとすると、学習の労力が増え、肝心の「プログラムができるようになる」という目的を成し遂げられる可能性が低くなります。なので、本質的でないところはまず後回しにしたい。 たとえばプログラムを書くのに必要なものの一つに「エディタ」というも
(この記事はLisp Advent Calendar 1日目のためのエントリです。) 禅が好んで用いる比喩がある。月を指すには指が必要である。だが、その指を月と思う者はわざわいなるかな。 — 鈴木大拙「禅」 これをLispに例えるなら、こう言うことができるかもしれない。 Lispを書くには括弧が必要である。だが、その括弧をLispと思う者はわざわいなるかな。 Lispを普段書いている身としてはLispについて括弧がどう、というのは些細なものに思えるが、Lispを知らない人からすると自然な考えだろう。人間は知らないものを理解しようとするとき、自分が今まで見たもの、知っているものと比較して手がかりを得ようとする。Lispが他のプログラム言語と比較してユニークなものは、やはりその括弧で表現されたS式だ。 しかし、Lispが括弧を使った奇妙な構文を用いるのは理由がある。そしてそれがLispの強力さ
moclについて moclとは、iOSとAndroid(現在)を開発するためのCommon Lispの実装です。moclを利用することで、iOS, Androidのアプリの一部をCommon Lispで開発できるようになります。つい最近のECLM 2013で発表が行われました。Common LispはGUIが一昔前な印象を持っていたのでどんな感じなのかと思ったら、画面の表示周りはXcodeやAndroidだとeclipse (今だとAndroid Studio?) に任せてしまうようです。で、どうやらllvm/clangでコンパイルして、それをアプリで使ってビルドするらしい。ちなみに、Androidだとndkに渡します。REPLに関しては、#-mocl (declaim (declaration call-in 関数名)) というようにmocl専用のコードはそれ以外の環境で読み込まれないよ
Lisp for iOS, Android, and OS X.Creating mobile applications shouldn't require you to do everything in Java and Objective-C. With mocl, you can put your application logic into a shared Lisp library that runs on iOS, Android, and even OS X. Furthermore, since mocl runs an expansive subset of Common Lisp, an ANSI standard like C, you can also run your CL code on other implementations, and target the
今、新婚旅行のためシリコンバレーのSanta Claraというところに1週間ほどいるのですが、途中から妻を無視してステイ先のRobert Smithとハッカソンを始めてしまってまじごめんみたいな感じです。 とはいえ、まあこれも思い出ということで……新しいCommon Lispライブラリ「Quickutil」というものを作ったので紹介します。 http://quickutil.org/ ユーティリティ まとまったプログラムをしているとほぼ必ず使うことになるであろうものは「ユーティリティ」です。 Common Lispプログラマなら以下のようなことを思ったことがあるのではないですかね。 Alexandriaは大きすぎる…… なんでAlexandriaにあの関数ないんだよ…… aandのためだけにarnesi……*1 split-sequence…… そんな微妙な行き違いの結果、みんなオレオレユ
先日、QuickdocsというWebサービスを作りました。 Lispライブラリのドキュメント集約サイト「Quickdocs.org」を作りました - 八発白中 アプリ部分はほとんどCommon Lispで書かれています。今までもいくつかCommon LispでWebアプリを書いたことはありますが、公開されたWebサービスはこれが初めてです。 公開当初は半日に1回落ちたり、表示が変になったりしていました。そこで2週間ほどかけて、不具合の原因を突き止めたり、それを修正して堅牢にしたり、レスポンス速度を改善したりしてきました。 Common LispのWebアプリの運用ノウハウが少し溜まってきたから車にはねられるなどする前に共有したい 2013-03-06 02:06:20 via web 試行錯誤を繰り返してきており、伝えたいことも多いです。書いてみるとかなり雑然としてしまったのですべての人向
Excel に書かれたテーブル仕様書から clsql:def-view-class でテーブルクラスを作り、clsql-sys:create-view-from-class で Postgresql 上にテーブルを作成しました。 Excel から clsql:def-view-class 定義を作るのにはもちろん cl-win32ole を使いました。 最初は Excel のセルを1つずつ見ていかないとだめかな、めんどうだなぁ、と思っていたのですが。 値の入っているセルの範囲を取得できる UsedRange という便利なメソッドを見つけました。 これで、Excel シート上のデータを一括で Lisp のリストとして取得できます。 あとは、Lisp でのリスト操作なので楽々でした♪ UsedRange とっても便利です。 (eval-when (:compile-toplevel :load
地球上でもっともパワフルなプログラミング言語であると言われながら、その謎めいたシンタックスやアカデミックな評判の高さなどから敬遠されることもあったLisp。そんなLispの不遇な時代に終わりを告げるのが本書『Land of Lisp』(Lispの国)です。不思議なマンガやout-of-this-worldなゲームの数々とともに、ベテランLisperの著者が、謎多きCommon Lispを伝授。リストの操作、入出力、再帰などの基礎から始めて、さらにマクロや高階プログラミング、ドメイン特化言語などへと話題をすすめながら、Lispのより高度なテクニックについて解説しています。 翻訳者によるサポートページ(http://practical-scheme.net/wiliki/wiliki.cgi/Shiro:LandOfLisp) 謝辞 はじめに Lispがクールで、そして奇妙なわけ Lispがそ
CMU Artificial Intelligence Repository Common Lisp the Language, 2nd Edition This document contains the complete text of the book Common Lisp the Language, 2nd edition by Guy L. Steele, Thinking Machines, Inc. Digital Press 1990 paperbound 1029 pages ISBN 1-55558-041-6 $39.95 in html format. To use it, start with the Title Page or Table of Contents. A searchable index interface to the book is unde
これはLisp Advent Calendarの10日目です。 先日、HappyElementsさんで行われたLiveCoding #11にライブコーダとして参加させていただきました。そのときの話をしようと思います。 LiveCodingとは 一人の"LiveCoder"が、20分の制限時間で何かソフトウェアを作り、デモをします。 LiveCoderがどのようにコーディングしているかの全てがプロジェクターで大画面に映し出され、 さらに解説役が常にLiveCoderの挙動を説明します。 A 「コンパイル中です・・・、お、おおお、なんと、Syntax error!」 B 「これは恥ずかしい…!」 LiveCoder 「(/// 」 LiveCoderが何を作るかについては、自分で決めた上でそれをLiveCoding前に告知します。 ただし、観客の要望で仕様が強制的に変更になることがあります。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く