Shibuya.lisp

2015年06月17日Lisp Meet Up presented by Shibuya.lisp #28 が開催されました。

5月27日(水)に第28回Lisp Meet Upが開催されました。 全19名の参加者のみなさま、お疲れさまでした。

会場は前回と同じ「渋谷センタープレイス4F テックラウンジ」でした。

イベントページ: https://atnd.org/events/66264

当日の活動内容

主催の挨拶の後、参加者の自己紹介をしてから、告知されていた発表に移りました。 今回は4件の発表が登録されていました。

yuugoさん : 奴に鉄槌を

発表の1件目はyuugoさんから、「奴に鉄槌を」と題したお話でした。職場で電話応対に不慣れな人のために、抽象的な単語から自分たちの扱う商品を絞り込んで検索するためのプログラムをCommon Lispで作ってみた、というお話でした。

録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAbkRZajBFNFVlckk/view?usp=sharing

一瀬昌史さん : Chestnutについて

続いて一瀬さんから、Clojure/Omのためのアプリケーションテンプレートであるchestnutの紹介がありました。chestnutの概要を軽く述べた後はデモに移り、デモが発表の中心でした。単に手軽にwebサーバが起動できるというだけではなく、ClojureScriptファイルの変更が即座にブラウザ側にも反映されたり、REPLをブラウザに接続するといった機能もデモを通して紹介されました。

スライド : http://www.slideshare.net/izy00466/start-chestnut
録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAN1JrOERnSXpvTlU/view?usp=sharing

snmstsさん: 詳解roswell

3件目はsnmstsさんから、Roswellというソフトウェアの紹介でした。Roswellは佐野さんが作っているCommon Lisp処理系の管理を行なうソフトウェアで、処理系のインストールの自動化の他、コマンドライン引数の差異を吸収したり、実行可能ファイルを生成したりといった機能があります。

Common Lispの使い方や、Roswellの解決しようとしている問題について丁寧に説明した後、Roswellを用いて実際に処理系をインストールしたり、バージョンの違う処理系で実行させたり、といった内容のデモが行われました。

Roswellのソース : https://github.com/snmsts/roswell
録画映像 : https://drive.google.com/file/d/0B_H0_8eqWuVAT0RZMGNPRzFJY1U/view?usp=sharing

tnoda_さん : Rについて

最後はtnoda_さんが実装中のClojureからRを使うRashinbanというライブラリについてのお話でした。

前半はRの簡単な説明と、Java以外の言語で書かれたプログラムとClojureを連携する場合に考えられる戦略、そしてRを利用するライブラリを作る場合に考えられるいくつかのアプローチについての説明でした。後半は、特にRとClojureの間のデータの通信に際して生じるディスパッチの問題をClojureのprotocolとmultimethod、そしてmetadataをうまく使って切り分けた方法について詳述していました。

発表スライドはtnoda_さんのブログで公開されています。RashinbanのソースコードはGithubで公開されているようです。

ブログ : http://tnoda-clojure.tumblr.com/post/120124360112/shibuya-lisp-28-r
ソース : https://github.com/tnoda/rashinban

懇親会

懇親会は、会場付近の「和来場娯」というお店で懇親会をしました。参加者は16名でした。

2015年06月17日Lisp Meet Up presented by Shibuya.lisp #27 が開催されました。

4月27日(月)に第27回Lisp Meet UpがCommon Lispをテーマに開催されました。 全19名の参加者のみなさま、お疲れさまでした。

今回の会場「渋谷センタープレイス4F テックラウンジ」は、今までと雰囲気が違い、ソファーなどが置かれていて談話室といった雰囲気でした。

イベントページ: https://atnd.org/events/64988

当日の活動内容

主催の挨拶の後、すぐに発表に移りました。

Masayuki Takagiさん : (続) 8-bit PIC マイコン用ネイティブコンパイラの作成

第25回Lisp Meet Upでのお話の続きとして発表者自身で実装中の8-bit PICマイコン用ネイティブコンパイラPICの詳細についてお話いただきました。今回はコンパイラの処理の流れに始まり、各ステージについて詳細な説明がありました。例も豊富でわかりやすかったです。
他に、おまけとしてGC用ハードウェアについての論文の紹介がありました。

PICのソースコード: https://github.com/takagi/pic
発表スライド: http://www.slideshare.net/masayukitakagi/2015-0422
録画映像: https://drive.google.com/file/d/0B_H0_8eqWuVAci1kVFFadnkyYUE/view?usp=sharing

chikuさん : readerの基礎

Common LispのReaderについて基礎的な事柄のお話でした。大雑把な挙動を説明した後、文字の属性ごとに詳細を解説し、ちょっとした応用や個人的に実現して欲しい性質などについて話していました。入門者に向けて、CLの面白い機能や機能の詳細を説明し、モチベーションの維持に役立ててもらえることを目的とした話でした。

スライド: http://www.slideshare.net/samugari/before-lisps-just-part-of-the-past-reader-pub
録画映像: https://drive.google.com/file/d/0B_H0_8eqWuVAdm9hSVotdzJZblE/view?usp=sharing

懇親会

懇親会は、会場付近の「和来場娯」というお店で懇親会をしました。参加者は14名でした。 発表内容についての質問や議論の他、4月なので新社会人の方が数人参加しており、会社でなにをやっているかとか研修の話などにも話題が及んでいました。

2015年06月17日Lisp Meet Up presented by Shibuya.lisp #26 が開催されました。

3月24日(火)に第26回Lisp Meet UpがClojureをテーマに開催されました。 全17名の参加者のみなさま、お疲れさまでした。

イベントページ: https://atnd.org/events/63547

当日の活動内容

通例通り、主催の挨拶と自己紹介の後、予定されていた3件の発表が開始されました。

athos0220さん : Clojureのチャットボットフレームワーク

チャットボットフレームワークはWebサービス運用のための様々な要求をチャットコマンドに集約するChatOpsで主要な位置を占めるチャットボットのためのフレームワークです。発表では、athos0220さんご自身が実装中のチャットボットフレームワークであるparabolaの解説のほか、チャットボットフレームワークのアーキテクチャについての解説、Hubotjubotといった他の実装でのアプローチについての言及もありました。 parabolaでは、core.asyncを用いて抽象化レイヤーの並行実行可能にしたり、スクリプトを関数として記述できるようにするなど、Clojureの特徴を活かした実装になっているとのことでした。

parabolaのソース: https://github.com/liquidz/jubot
発表映像: https://drive.google.com/open?id=0B_H0_8eqWuVAdGNJQmt4ZGdNVEk&authuser=0

にだーさん : Typed Clojureの紹介
Clojureに漸進的片付けを導入したTyped Clojureについて、その歴史や現状、基本的な使い方、欠点などがデモを交えて解説されました。

録画映像: https://drive.google.com/open?id=0B_H0_8eqWuVAd3JlS3oybmM4VzA&authuser=0

haijuさん : Nightcodeの紹介

NightcodeはClojureで書かれた初心者向けのClojure開発環境で、GameやWeb、あるいはデスクトップアプリなど、プロジェクトの性格ごとにテンプレートが利用できる点に大きな特徴があるとのことでした。利用者が少ないためか情報が極めて少なく、ヘルプファイルもあまり充実していないそうです。

録画映像: https://drive.google.com/open?id=0B_H0_8eqWuVAbDdPbnJtTFBMLU0&authuser=0

懇親会

会場近くの「とら」というお店で懇親会をしました。懇親会では、Lispを学んだきっかけやScheme(r)の話の他、4月からの新生活や湯治の話が話題に上っていました。

2015年05月09日Lisp Meet Up presented by Shibuya.lisp #25 が開催されました。

2月25日(水)に第25回Lisp Meet Upが開催されました。全16名の方にご参加いただけました。 参加者のみなさん、お疲れさまでした。

イベントページ: https://atnd.org/events/62568

当日の活動内容

今回は4件の発表が予約されていたので、通例となっている参加者の自己紹介は省き、主催の挨拶の後はすぐに発表が開始されました。

hyotang666さん: packageの局所的なuseのためのユーティリティ

packageを局所的にuseするための自作ユーティリティWITH-PACKAGEについてのお話でした。Common LispではREAD時に各シンボルのホームパッケージが決まってしまうので、useしていないパッケージのシンボルをある静的な範囲でパッケージ修飾せずにアクセスするには何らかの工夫を要します。WITH-PACKAGEではマクロ展開時にシンボル名を根拠にインターンし直すことでこの問題に対処しています。

WITH-PACKAGEのソース: https://github.com/hyotang666/with-package
発表映像: https://drive.google.com/file/d/0B_H0_8eqWuVAVFRVaHB6NXEtYlk/view?usp=sharing

深町さん: Woo: The way to the fastest web server in Common Lisp

発表者がご自身で実装中の高速なHTTPサーバ:Wooについてその設計や現状についてのお話でした。WooはNode.jsよりも高速なHTTPサーバとなることを目標に開発が開始され、これを達成するためのアーキテクチャの選定、使用した既存ライブラリ、新規に開発したライブラリなどについて詳細に説明していました。既存のHTTPサーバのアプローチやライブラリの問題点についても触れていて、とても充実した内容でした。 なお、当初の目標は既に達成され、現在はすべてのHTTPサーバよりも高速なHTTPサーバとなることに目標が変更されたそうです。

スライド: http://www.slideshare.net/fukamachi/woo-writing-a-fast-web-server
Wooのソース: https://github.com/fukamachi/woo
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVAaG82TjJWbFVvR28/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVAbW5iclRrWHRRRTg/view?usp=sharing

egiさん: Egisonについて

発表者ご自身が研究・開発中のプログラミング言語Egisonについて紹介がありました。Egisonは幅広いデータ構造に対しパターンマッチを記述できる言語で、そのパターンの記述能力は既存の言語を上回るものです。パターンマッチがプログラミング言語においてなぜ重要と考えられるか、といった言語の設計についてのご自身の考えや日本および世界でのEgisonの盛り上がりについても言及されていました。

以下の公式ページは詳細な説明やチュートリアル、Egisonを簡単に試せるインタプリタなどを備えています。

Egison公式ページ: http://www.egison.org/ja/
Egisonのソース: https://github.com/egison/egison
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVALUpDcUUtajd2cGM/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVARWwzZEN5alBYUnM/view?usp=sharing

Takagiさん: 8-bit PIC マイコン用ネイティブコンパイラの作成

発表者がご自身で実装中のCommon Lisp製の8bit PICマイコン用のネイティブコンパイラ:PICについてのお話がありました。PICマイコンの大まかな仕様や使い方に始まり、ホスト言語のベースとなったMinCamlの紹介、そしてネイティブコンパイラPICの説明とデモがありました。

時間が押していた関係で最後が端折り気味になってしまいましたが、次のCommon Lisp回であるLisp Meet Up #27にて続きをお話ししていただけました。

スライド: http://www.slideshare.net/masayukitakagi/2015-0225-45131616
PICのソース: https://github.com/takagi/pic
発表映像
1: https://drive.google.com/file/d/0B_H0_8eqWuVAbGhuT2ZTcVpvWDQ/view?usp=sharing
2: https://drive.google.com/file/d/0B_H0_8eqWuVAT2dnVkVhYThVWjQ/view?usp=sharing

懇親会

本体終了後は、会場付近の「串茶屋」というお店で懇親会をしました。もっと変な人になる方法の話、NICEとNEATの話やclfreaksの話、MinCamlやEgisonの話などが話題に挙がっていました。

今後のMeet Up

Scheme回は参加者にSchemerがほとんどいらっしゃらないので、夏まで休止することになりました。

2015年02月10日Lisp Meet Up presented by Shibuya.lisp #24 が開催されました。

1月28日(水)に、第24回LispMeetUpが開催されました。全19名の方にご参加いた だけました。参加者のみなさん、お疲れさまでした。

イベントページ: https://atnd.org/events/61320

当日の活動内容

事前に告知されていた2件の発表に加え、飛び入りで2件の発表がありました。

Shigeru Fujiwaraさん: Developing Desktop Applications with Clojure

Swingのラッパフレームワークであるseasaw[^1]に関連する発表 でした。ご自身で作られたアプリケーションの紹介から始まり、seesawの紹介、Clojure やseesawを使うことの利点など話がありました。Clojureを使うことで体感的に コード量が1/3になったそうです。

guicho271828さん: eazy-processについて

ご自身で開発中のeazy- processについての発表がありました。Common Lispで使われる外部プロセスを呼ぶ仕組みが複雑すぎることを問題点として上げ、簡単に使えるものとして開発されているそうです。会場ではリソースの開放タイミングをGCに任せるか ユーザーが管理すべきかの議論が起こりました。

tfukushimaさん:ネットワーク・トポロジーの可視化

Clojureで開発中のmidonetのネットワークト ポロジーを可視化するシステムについての発表でした。Dockerイメージのダウ ンロードが間に合わず、デモは出来ませんでしたがグラフの見せ方や Om(react.js)、クエリ言 語のDatalogとClojureでクエリを投げる時に使うednというフォーマットについて熱く議論が交わされました。

ktsujister: ednについて

ednは他のスクリプト言語ではJSONやその互換フォーマットが使われるところで使われるClojureのシンタックスを元にしたフォーマットで、セットやタグ付きデータなどに特徴があるそうです。

発表の動画を公開しましたので、ご興味のある方は是非ご覧ください。

Shigeru Fujiwaraさん: https://drive.google.com/file/d/0B_H0_8eqWuVAUzNRRjdCRVdXcVk/view?usp=sharing

guicho271828さん: https://drive.google.com/file/d/0B_H0_8eqWuVAWXhRQU9qelFqdzg/view?usp=sharing

ktsujisterさん: https://drive.google.com/file/d/0B_H0_8eqWuVARzQ1cDZzdzdUems/view?usp=sharing

tfukushimaさんの発表は録画機器の操作ミスにより録画出来ておりませんでした。申し訳ありません。

次回の開催予定

次回はCommon Lispを話題の中心に、2月25日(木)の開催を予定しています。 詳細および参加登録は以下のイベントページからお願いいたします。

https://atnd.org/events/62568

みなさまのご参加をお待ちしております。

2015年01月10日Lisp Meet Up presented by Shibuya.lisp #23 が開催されました。

12月22日(月)に23回目となるLisp Meet Upが開催されました。 ご参加頂いた13名の皆さま、お疲れさまでした。

イベントページ: https://atnd.org/events/59767

当日の活動内容

前半には、予定された2件の発表がありました。後半はShibuya.lisp でLisp 入門講座を行うとしたらどういうカリキュラムにするか、ということについてのディスカッションを行いました。

kazh98さん: (Typed-)Racket Injection

大学の講義課題のプログラムテンプレートをTyped Racket で記述して提供したらLisper は増えるかどうかという話でした。結果としては誰もLisp で書いてこなかったとのことでした。

スライド:http://www.slideshare.net/kazh98/typedracket-injection

ymizushiさん: 括弧を使わないLispプログラミング

Lispの本質はツリー(リスト)構造にある、ということに着目して、グラフィカルプログラミング言語としてのLisp処理系を提案するという発表でした。 プログラミング初学者、とくに小学生以下をターゲットに、Drag&Drop でプログラミングができ、また、動きや色を付けて小学生が興味を引くような工夫をされていました。 グラフィカルLispプログラミングの特徴として、多人数プログラミングにおいてファイル単位ではなくリスト単位でロックをかければよいという点を活かして、その用途での開発も考えているとのことでした。

スライド: http://www.slideshare.net/ymizush/emotional-hub

ソース:https://github.com/ymizushi/EmotionalHub

発表の動画を公開しましたので、ご興味のある方は是非ご覧ください。

kazh98さん: https://drive.google.com/file/d/0B_H0_8eqWuVAdzNIaWFyRndvQ0k/

ymizushiさん: https://drive.google.com/file/d/0B_H0_8eqWuVAYW1lZ3JXcUJVR3c/

次回の開催予定

次回はClojureを中心とした内容で、1/28(月)に開催を予定しています。

みなさまのご参加をお待ちしております。

2015年01月10日Lisp Meet Up presented by Shibuya.lisp #22 が開催されました。

11月27日(木)に22回目となるLisp Meet Upが開催されました。 ご参加頂いた20名の皆さま、お疲れさまでした。

イベントページ: https://atnd.org/events/58924

当日の活動内容

今回は2件の事前に告知された発表の他、1件飛び入りで発表がありました。今回は運営全員がLTしたためUstream配信用のPCを確保出来ず、Ustream配信は行われませんでした。

深町さん: Common Lispで高速なHTTPパーサーを書く

ライブラリfast-httpを高速化するまでの経緯から高速化の手法や勘所の説明、解説がありました。一般的な高速化に留まらず、HTTPパーサが不完全なリクエストを処理するときの問題とその対処戦略など多岐に亘る内容でした。

発表資料:http://www.slideshare.net/fukamachi/writing-a-fast-http-parser

ソース:https://github.com/fukamachi/fast-http

chikuさん: symbol tree diff

Lispソースのdiffを行単位ではなく構文木レベルで出すライブラリについての発表でした。前半は以前から取り組まれている内容、後半はその後の進展の報告と見やすいdiffの表示方法について会場に問い掛ける内容でした。

発表資料:http://www.slideshare.net/samugari/symbol-treediff

ソース:https://github.com/chiku-samugari/stdiff-cl

κeenさん: Semantic S式

意味が解釈しやすく、パースや編集が楽に行えるようS式の作り方に関する考察でした。

発表の動画を公開しましたので、ご興味のある方は是非ご覧ください。

深町さん:https://docs.google.com/file/d/0B_H0_8eqWuVARnhncWZpRFdUOWM/preview

chikuさん:https://docs.google.com/file/d/0B_H0_8eqWuVARUoxVGtiMlFrRVU/preview

κeenさん:https://docs.google.com/file/d/0B_H0_8eqWuVAQms2QkZDcnZfVlU/preview

2014年11月18日Lisp Meet Up presented by Shibuya.lisp #21 が開催されました。

10月29日(水)に21回目となるLisp Meet Upが開催されました。
ご参加頂いた19名の皆さま、お疲れさまでした。

イベントページ: https://atnd.org/events/57943

当日の活動内容

今回は3件の事前に告知された発表の他、1件飛び入りで発表がありました。

κeen さん:Claspを少し触ってみた

9月にリリースされたCommon Lisp処理系Claspについて、その目指す方向性やビルド方法などについての説明と、ASDFやCL-PPCREなどのライブラリ、C++との連携を試した結果のレポートがありました。

TOYOZUMIさん: docstringとコメントからgithub向けドキュメントを生成する
Common Lispにおける定義フォームのdocstringとソースコード中トップレベルの文字列リテラルを元にドキュメントを生成する話でした。関数やプログラムの説明をどこにどのような形で書き残すべきかについての考えと、その具体的な実装にGaucheを用いた理由についての解説がありました。

halcat0x15aさん

Clojureのcore.asyncの基本的な使い方についての説明でした。core.asyncの基本的な関数やマクロをどのように使うかに始まり、後半では背後の仕組みや、goとfutureの挙動の違いといったことについて説明していました。適時質問を促し、他の参加者が議論や説明に参加しするなど、どちらかというと講義か輪講に近い雰囲気でした。

ktsujisterさん: Core.async&transducers

halcat0x15aさんの発表を受け、Clojureのcore.asyncとtransducerの利用方法について発表がありました。Clojure 1.7からcoreに追加されるtransducerについて、その使い方やハマりやすいポイント、設計上の議論などについてのお話でした。

発表資料: http://www.slideshare.net/ktsujister/coreasynctransducers-shibuyalisp-21

halcat0x15aさん

halcat0x15aさんが再び登壇し、限定継続ライブラリのClojureでの実装と、それを用いた論理プログラミングライブラリの実装についての発表がありました。いずれもご自身で実装されたもので、後者については3引数のappendを用いてのデモや、実装の基本的な考えた方についても説明がありました

発表の動画を公開しましたので、ご興味のある方は是非ご覧ください。 κeenさん :https://drive.google.com/file/d/0B_H0_8eqWuVAZzZvYkI1b3psVXc/preview TOYOZUMIさん :https://drive.google.com/file/d/0B_H0_8eqWuVAbldKNHl5eXM0YVU/preview halcat0x15aさん : https://drive.google.com/file/d/0B_H0_8eqWuVAUG9ab3RKVFhhdHc/preview ktsujisterさん :https://drive.google.com/file/d/0B_H0_8eqWuVASllVY2FJZ1lEV2s/preview halcat0x15aさん(2回目) :https://drive.google.com/file/d/0B_H0_8eqWuVAZXFhZDJ0d3RZR0E/preview

次回の開催予定

次回は、Common Lisp を中心とした内容で、11/27(木)に開催を予定しています。
参加登録はイベントページよりお願いします。

みなさまのご参加をお待ちしております。

2014年10月18日Lisp Meet Up presented by Shibuya.lisp #20 が開催されました。

9月29日(月)に、記念すべき20回目となる Lisp Meet Up が開催されました。
当日は16名の方にご参加いただきました。ありがとうございます。
また、会場提供をしていただいたpotix2 さん、ありがとうございます。

イベントページ: https://atnd.org/events/56406

当日の活動内容

予定された発表1件、飛び込み発表2件、計3件の発表がありました。

κeen さん: Picrin のチューニングの話、もといGC の話

cheme 処理系Picrin を開発しているκeen さんより、Picrin 処理系におけるガベージコレクションアルゴリズムと、その最適化について発表がありました。

将来的には組み込みシステム上での動作を目指すPicrin 処理系では、そのために必要なGC 要件がいくつかあり、アルゴリズムもそれに合わせて選択や調整をする必要があるという問題提起をされていました。
発表後には、近年のGCアルゴリズムの研究成果など、活発な議論が交わされました。

発表資料: http://keens.github.io/slide/picrin-gc.html

contellas さん
もともと教育用プログラミング言語なはずのScheme ですが、最近は教育用途のプログラミング言語としての座をPython などに奪われている気がします……
その理由が開発環境にあると見て、ブラウザ上で完結したScheme プログラミング環境を作ってみた、という発表でした。
BiwaScheme のJavaScript による実装であるrepl.it の改良として実装しているようです。

発表資料: http://contellas.com/scheme/

snmsts さん

Common Lisp のSwank に接続して、ブラウザ上からCommon Lisp プログラムを評価するアプリケーションの発表をされていました。Swank をHack して、JavaScript でWebSocket をラップする、という、かなり開発が大変そうな作品でした。
Swank に接続しているので、補完情報などを取ることも理論上は可能、ということだそうです。(理論上は、というところがミソですね☆)

発表以外では、音楽とScheme のつながりについての話や、Picrin 性能調整の話に関連して、離散フーリエ変換ライブラリのFFTW がOcaml で性能調整されたC 言語のコードを生成しているといった話、また、普段使っているエディタの話などがありました。
ちなみに、会場内の過半数がEmacs 派、Vimmer は5 人という結果でした笑

次回の開催予定

次回は、Clojure を中心とした内容で、10/29(水)に開催を予定しています。
参加登録はイベントページよりお願いします。

みなさまのご参加をお待ちしております。

2014年09月25日Shibuya.lisp Technical Talk #8 が開催されました。

8月30日(土)にShibuya.lisp Technical Talk #8が開催されました。 約3年ぶりとなる今回は、株式会社ミクシィ様に渋谷・住友不動産ファーストタワー7階のコラボルームをお借りし、57名の参加者を迎えての開催となりました。

各講演の記録動画をご紹介します。

招待講演: Schemeの教育学習分野への応用

講演者: 好きい夢代表 笹川 賢一さん




genuine-highlighter:
マクロを認識するClojure向けのシンタックスハイライター

講演者: athos2002さん




Redesigning Common Lisp

講演者: 深町英太郎さん




KOMADORIによる対話的画像処理

講演者: FILM ASSEMBLER 豊住耕一さん




型宣言を付けていったら遅くなった話

講演者: 横田侑樹さん




Lightning Talks

  • Shenについて @nobkzさん
  • 授業で半年間moclを使ってみた κeenさん
  • 床下 Lisp と Lisp Meet Up 菱沼和弘さん
  • picrinについて stibear1996さん


  • Clojureの型推論器 halcat0x15aさん
  • cl-cuda: a library to use NVIDIA CUDA in Common Lisp 高木さん
  • Clojure/Incanterでよき分析ライフを あんちべさん
  • Om (CONT.2) @TAKUFUKUSHIMAさん
  • 四二(仮) @zick\_minohさん