SlideShare une entreprise Scribd logo
1  sur  38
Télécharger pour lire hors ligne
Portacle :
Common Lispのオールインワン開発環境
Satoshi Imai
Twitter: @masatoi0
Github: masatoi
Blog: masatoi.github.io
このスライドの流れ
●
Portacleの説明
– 構成、インストール法
●
Portacleの使い方
– 画面の説明、基本的なコマンド
– REPL、補完、インスペクタ、デバッガの使い方
– ライブラリのインストール方法
●
まとめ
Common Lispの開発環境
●
Lisp系言語はエディタのサポートが必須
– 括弧の対応、自動インデント、REPLとの連携、補完、etc...
●
OSSでの選択肢は多くない
– Emacs + SLIME
– Vim + slimv
– Atom + atom-slime
– lem
Lisp入門者に何を薦めたらいいのか
●
大事だと思われること
– インストールが簡単
– マルチプラットフォームで動作する(Windows対応)
– 追加の設定を必要とせず、最初からすぐに使える状態になってい
る
– マウスで操作できる
– 入門用だけでなく実用的なプログラムも開発できないといけない
Portacle
●
Common Lisp開発に必要なソフト一式をまとめ
てアーカイブしたもの
– Emacs (エディタ)
– SBCL (Lisp処理系)
– Quicklisp (パッケージ管理システム)
– Git (バージョン管理システム)
Portacleの構成要素(1)
●
Emacs (エディタ)
– 古くからあるソースコードエディタ
– 拡張言語がLispの一方言であり(Emacs Lisp)、他のLisp系言語で
もよく使われる
– Common Lisp処理系との連携を取るためのSLIMEというパッケー
ジが非常に優秀
– Portacleに入っているEmacsにはCommon Lispで開発するための
便利なパッケージ群が既にインストールされている
Portacleの構成要素(2)
●
SBCL (Common Lisp処理系)
– Steel Bank Common Lispの略。CMUCLから派生した。カーネギー
メロン大の創立者が鉄鋼業と銀行業の人だったことから名前がつい
た
– Common Lispとは言語仕様のことであり、処理系は色々ある
– SBCLは最も人気があるオープンソースの処理系の一つ
– ネイティブコードまでコンパイルするので速い。適切な最適化をほ
どこせばC言語並に速くなる
Portacleの構成要素(3)
●
Quicklisp (パッケージ管理システム)
– ネットワークからライブラリをダウンロードした後、
コンパイル、ロードして利用可能な状態にする
– 依存ライブラリもインストールされる
– ライブラリの探索、一括アップデートなどもREPLか
らできる
Portacleの構成要素(4)
●
Git (バージョン管理システム)
– 独立したGitのバイナリが同梱してある
– magit: EmacsのGitフロントエンドのパッケージ
●
gitコマンドを直接操作しなくてもほとんどの操作をEmacs
からできる
Portacleのインストール
●
Windows版、Mac版、Linux版が用意されている
– https://portacle.github.io/
●
インストールはアーカイブをダウンロードして展開す
るだけ。管理者権限はいらない
– 単なるフォルダなのでレジストリなどはいじらない
– そのフォルダ内で完結しているので、USBメモリなどに入れ
れば開発環境ごと持ち運べる
アーカイブを展開した状態
ダブルクリックして起動する
起動した状態
起動した状態
*scratch*バッファ:
Common Lispの小さなコードの実験に使う
REPLバッファ:
対話的に式を評価できる
バッファとウインドウ:
バッファは仮想的な作業領域のこと、メニューバーのBuffersから選択できる
ウインドウは画面上の表示領域のこと。今は上下に2分割されている
Emacsの基本操作(1)
●
カーソル移動は矢印キーかキーバインドで
– C-n、C-p、C-f、C-b (↓↑→←)
●
表記の読み方
– CはControl、MはMetaキー(大抵Altキー)
– 複数のキーバインドを続けて打つキーストロークもある
●
C-x C-s (ファイル保存)
– Controlを押しっぱなしでxとfを続けて打つ
●
C-x s (全てのバッファのファイルを保存する)
– Controlとxを同時押しした後、Controlを離してsを打つ
Emacsの基本操作(2)
●
ファイル関係
– C-x C-f (ファイルを開く。またはファイルマネージャからマウスで
ファイルをドラッグ&ドロップする)
– C-x k (バッファを保存せず閉じる)
– C-x C-w (ファイルを別名保存)
●
編集関係
– C-w (カット)、M-w (コピー)、C-y (ペースト)
– マウスで領域選択した後に中ボタンクリックで領域を貼り付けられる
Emacsの基本操作(3)
●
画面関係
– C-x 1 (現在のウインドウを画面全体に広げる)
– C-x 2 (現在のウインドウを縦に2分割する)
– C-x 3 (現在のウインドウを横に2分割する)
– C-x o (次のウインドウに移動する。単にマウスでクリックしてもよい)
– File→New Frameでフレーム(普通の意味でのウインドウ)を作れる
●
バッファの切り替え
– C-x b の後にバッファの名前の一部を入力してエンター
– またはメニューバーのBuffersの中から選ぶ
Emacsの基本操作(4)
●
C-g (操作をキャンセルするコマンド(重要!))
– 操作の途中で分からなくなったらとにかくC-gを打つべし
●
Emacsが出してくるポップアップ画面は大体qキーで消せる
●
その他はEmacsの日本語チュートリアル参照
– メニューバーで Help→Emacs tutorial (choose language)
●
ポップアップ画面が出るのでJapaneseをクリックする
Emacsの日本語チュートリアルを開いたところ
現在いるモードでのキーバインドを調べる
●
C-h b またはメニューバーでHelp→Describe→List
Key Bindings
– リンクになっているところをクリックすると説明文が出る
– qキーで抜ける
●
メニューバーの項目の横に書いてあるキーバインド
も参考に
REPLでのキーバインドを表示したところ
Lispモード(1)
●
.lisp拡張子のファイルを開くと自動的にLispモードになる
●
自動インデント
– Enterを押すと改行と同時に自動的にインデントされる
– インデントが崩れたときはTabを押す
●
ParEdit: 括弧の対応を自動で取ったりするEmacsの拡張(多少クセ
がある)
– 参考:ParEditチュートリアル
●
キーワード補完、引数補完
Lispモード(2)
●
.lispファイルを編集中に式を評価できる
– 評価したい式の閉じ括弧をハイライトさせた状態で C-x C-e
●
評価結果が画面一番下のモードラインに表示される
– または領域を選択した状態で C-c C-r
●
領域内の式をまとめて評価できる
●
REPLでは M-p または C-↑ で過去の入力を再び出せる
Lispモード、REPLでの補完
●
キーワード補完
– キーワードの途中まで入力して一瞬待つと候補ウインドウ
が出る
– 候補が一つだと薄く表示されるので Tab で確定する
●
引数補完
– 括弧の先頭に関数を書くと、その関数が取るべき引数のリ
ストが表示される
printまで打ち込むと
補完ウインドウが出る
print関数が取るべき引数のリスト
カーソルを合わせて少し待つとここに説明文が出る
(describeの結果)
ParEdit: Lispモードでの編集補助
●
開き括弧を入力すると自動で閉じ括弧も入力される。常
に括弧の数がバランスされるようになっている
●
括弧の前で C-k : 括弧単位でのカット。 C-y でペースト
●
C-→ 、C-← : 飲み込みと吐き出し
●
M-s 、 M-↑ : 外のレベルの括弧を削除、自分を除く外の
レベルの内容も削除
デバッガからの抜け方
●
ゼロ除算を評価してみてわざとエラーを出す
●
エラーの内容、リスタート方法の選択、バックト
レースの情報が出る
●
デバッガを抜けるにはqキー
ゼロ除算を起こしてエラーを起こすと、
上の画面が出てくる
エラーメッセージ
リスタート方法の選択
バックトレース:
moreをクリックすると
より以前まで遡れる
インスペクタの使い方
●
REPLでの返り値の上で右クリック→inspectを選
ぶとインスペクタが起動する
●
マウスで要素をクリックして要素の詳細を見るこ
とができる
●
lキーで前の要素に戻り、nキーで次の要素に移動
●
qキーでインスペクタを閉じる
文字列”Hello, world!”を評価した結果を右クリックして
inspectを選ぶ
オブジェクトの情報が出る
文字列は文字の配列でしかないことが分かる
配列の要素が列挙されている
これもクリックできる
ドキュメントの探し方
●
REPLなどで パッケージ名: と入力するとそのパッケージの公開API
が補完で列挙される
– REPLで cl: と入力するとCommon Lispの標準関数が出てくる
●
REPLからdescribe関数でドキュメンテーション文字列を見る
●
Common Lisp Hyperspec を見る
– ANSI Common Lispのリファレンス (LispWorks提供)
– キーワードにカーソルを合わせて、メニューバーから
SLIME→Documentation→Hyperspec を選ぶと外部ブラウザが起動
Quicklispからライブラリをインストール
●
cl-projectというプロジェクトのひな形を作るライブラリ
をインストールするときは、
– (ql:quickload :cl-project)
●
これによりライブラリのダウンロード、コンパイル、
ロードが行なわれる
●
Portacleのディレクトリ以下にライブラリが保存される
– portacle/all/quicklisp/dists/quicklisp/software
regexという名前を含むライブラリを検索
ライブラリcl-projectをインストール
ライブラリの探し方
●
Quicklispで利用可能なライブラリを調べる
– (ql:system-apropos ”keyword”)
●
CLiki(https://www.cliki.net/)
– Common Lispに関するWiki、登録すれば誰でも編集できる
●
Quickdocs(http://quickdocs.org/)
– Quicklispに登録されているライブラリのドキュメントが自動
生成されまとめられている
プロジェクトを作る
●
実際の開発では複数のファイルから成るプロジェクトを作
ることになる
●
依存ライブラリやファイルの依存関係を書いておく必要が
ある
●
プロジェクトのひな形を作ってくれるライブラリを利用す
ると便利(先にインストールしたcl-projectなど)
●
ローカルのプロジェクトは portacle/projects に置く
cl-projectでプロジェクトを作る
●
例)my-projectという名前でプロジェクトのひな形をつくる
– (cl-project:make-project #P"~/portacle/projects/my-project")
●
my-project以下の構成
– my-project.asd (システム定義ファイル)
– src/ (ソースファイルのディレクトリ)
– t/ (テスト用のディレクトリ)
●
以降は次のようにしてプロジェクトをロードできる
– (ql:quickload :my-project)
システム定義ファイル
(defsystem my-project
:version "0.1"
:author ""
:license ""
:depends-on (:alexandria :cl-ppcre)
:components ((:module "src"
:components
((:file "utils")
(:file "my-project" :depends-on ("utils")))))
…
)
依存ライブラリをここに書く
srcディレクトリのファイル構成や依存関係を書く
まとめ
●
Portacle: Common Lispの開発に必要なツールがまとまっ
ている統合開発環境
– インストールが圧縮ファイルの展開だけで済む
●
Quicklispを通じてインストールしたライブラリもPortacle
のディレクトリ以下に置かれるなど環境が閉じている
– 管理者権限が必要なく、どこへでも持っていける
●
補完やドキュメントへのアクセスが簡単

Contenu connexe

Tendances

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話Kumazaki Hiroki
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化Kumazaki Hiroki
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しようAmazon Web Services Japan
 
コンテナ導入概要資料2018
コンテナ導入概要資料2018コンテナ導入概要資料2018
コンテナ導入概要資料2018Masahito Zembutsu
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)Takanori Sejima
 
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務Yutaka Kachi
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Masahito Zembutsu
 
今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSSSota Sugiura
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法についてYuji Otani
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patternsnekop
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門VirtualTech Japan Inc.
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Akihiro Suda
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることShingo Fukui
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)NTT DATA Technology & Innovation
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用シスコシステムズ合同会社
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったt-sin
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法Kumazaki Hiroki
 

Tendances (20)

本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話本当は恐ろしい分散システムの話
本当は恐ろしい分散システムの話
 
トランザクションの設計と進化
トランザクションの設計と進化トランザクションの設計と進化
トランザクションの設計と進化
 
初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう初心者向けWebinar AWSで開発環境を構築しよう
初心者向けWebinar AWSで開発環境を構築しよう
 
コンテナ導入概要資料2018
コンテナ導入概要資料2018コンテナ導入概要資料2018
コンテナ導入概要資料2018
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)InnoDBのすゝめ(仮)
InnoDBのすゝめ(仮)
 
オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務オープンソースライセンスの基礎と実務
オープンソースライセンスの基礎と実務
 
KubeVirt 101
KubeVirt 101KubeVirt 101
KubeVirt 101
 
Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解Docker道場オンライン#1 Docker基礎概念と用語の理解
Docker道場オンライン#1 Docker基礎概念と用語の理解
 
今さら聞けないXSS
今さら聞けないXSS今さら聞けないXSS
今さら聞けないXSS
 
Redisの特徴と活用方法について
Redisの特徴と活用方法についてRedisの特徴と活用方法について
Redisの特徴と活用方法について
 
TLS, HTTP/2演習
TLS, HTTP/2演習TLS, HTTP/2演習
TLS, HTTP/2演習
 
ClassLoader Leak Patterns
ClassLoader Leak PatternsClassLoader Leak Patterns
ClassLoader Leak Patterns
 
OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門OpenStackで始めるクラウド環境構築入門
OpenStackで始めるクラウド環境構築入門
 
Dockerからcontainerdへの移行
Dockerからcontainerdへの移行Dockerからcontainerdへの移行
Dockerからcontainerdへの移行
 
GraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ることGraphQLのsubscriptionで出来ること
GraphQLのsubscriptionで出来ること
 
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
オススメのJavaログ管理手法 ~コンテナ編~(Open Source Conference 2022 Online/Spring 発表資料)
 
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
Cisco Modeling Labs (CML)を使ってネットワークを学ぼう!(基礎編)配布用
 
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくったCommon Lisp製のテキストエディタLemにフレーム多重化機能をつくった
Common Lisp製のテキストエディタLemにフレーム多重化機能をつくった
 
トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法トランザクションをSerializableにする4つの方法
トランザクションをSerializableにする4つの方法
 

Similaire à Portacle : Common Lispのオールインワン開発環境

Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Akira Taniguchi
 
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Akira Taniguchi
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Langur
 
libpgenでパケット操作
libpgenでパケット操作libpgenでパケット操作
libpgenでパケット操作slankdev
 
Common Lispっぽいものをつくっています
Common LispっぽいものをつくっていますCommon Lispっぽいものをつくっています
Common Lispっぽいものをつくっていますt-sin
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回Ryuichi Ueda
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワークTakuya Sato
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm晃 遠山
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~infinite_loop
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?Developers Summit
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたいMasato Noguchi
 
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回ロボットシステム学2015年第12回
ロボットシステム学2015年第12回Ryuichi Ueda
 
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Naoki Matsumoto
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiNaruto TAKAHASHI
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編Yusuke Ito
 
Linux学習ロードマップ
Linux学習ロードマップLinux学習ロードマップ
Linux学習ロードマップakihito_s
 

Similaire à Portacle : Common Lispのオールインワン開発環境 (20)

Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!Linuxデスクトップを便利にする秘訣、お教えします!
Linuxデスクトップを便利にする秘訣、お教えします!
 
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
Linuxデスクトップを便利にする秘訣、お教えします! - 2018年京都版
 
Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611Making Editor written in Ruby version 20160611
Making Editor written in Ruby version 20160611
 
clominal
clominalclominal
clominal
 
libpgenでパケット操作
libpgenでパケット操作libpgenでパケット操作
libpgenでパケット操作
 
Common Lispっぽいものをつくっています
Common LispっぽいものをつくっていますCommon Lispっぽいものをつくっています
Common Lispっぽいものをつくっています
 
ロボットシステム学2015年第9回
ロボットシステム学2015年第9回ロボットシステム学2015年第9回
ロボットシステム学2015年第9回
 
Emacs softLayer
Emacs softLayerEmacs softLayer
Emacs softLayer
 
2009年のPHPフレームワーク
2009年のPHPフレームワーク2009年のPHPフレームワーク
2009年のPHPフレームワーク
 
最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm最強のPHP統合開発環境 PHPStorm
最強のPHP統合開発環境 PHPStorm
 
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
大規模ソーシャルゲームを支える技術~PHP+MySQLを使った高負荷対策~
 
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
デブサミ2013【15-E-2】Ruby開発者のみなさん、mrubyで楽しく快適な組み込みアプリ開発を始めませんか?
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
Sprocketsを捨てたい
Sprocketsを捨てたいSprocketsを捨てたい
Sprocketsを捨てたい
 
ロボットシステム学2015年第12回
ロボットシステム学2015年第12回ロボットシステム学2015年第12回
ロボットシステム学2015年第12回
 
Rdkitの紹介
Rdkitの紹介Rdkitの紹介
Rdkitの紹介
 
Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会Raspberry Pi勉強会(前編)-京大機械研究会
Raspberry Pi勉強会(前編)-京大機械研究会
 
Tizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native apiTizen 2.0 alpha でサポートされなかった native api
Tizen 2.0 alpha でサポートされなかった native api
 
CodingTips+ 基礎編
CodingTips+ 基礎編CodingTips+ 基礎編
CodingTips+ 基礎編
 
Linux学習ロードマップ
Linux学習ロードマップLinux学習ロードマップ
Linux学習ロードマップ
 

Plus de Satoshi imai

lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装Satoshi imai
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learninglispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep LearningSatoshi imai
 
Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法Satoshi imai
 
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 HyのすすめLispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 HyのすすめSatoshi imai
 
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装Satoshi imai
 
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Satoshi imai
 
Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成Satoshi imai
 
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common LispによるディープラーニングLispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common LispによるディープラーニングSatoshi imai
 
Lisp meetup #29 cl-online-learningの紹介
Lisp meetup #29 cl-online-learningの紹介Lisp meetup #29 cl-online-learningの紹介
Lisp meetup #29 cl-online-learningの紹介Satoshi imai
 

Plus de Satoshi imai (9)

lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
lispmeetup #73 Common Lispで関係データ学習-スパース非負値テンソル分解の実装
 
lispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learninglispmeetup#63 Common Lispでゼロから作るDeep Learning
lispmeetup#63 Common Lispでゼロから作るDeep Learning
 
Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法Lispmeetup #56 Common lispによるwebスクレイピング技法
Lispmeetup #56 Common lispによるwebスクレイピング技法
 
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 HyのすすめLispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
Lispmeetup #53 PythonベースのLisp方言、 Hyのすすめ
 
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
Lispmeetup #50 cl-random-forest: Common Lispによるランダムフォレストの実装
 
Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類Lispmeetup48 cl-online-learningによる文書分類
Lispmeetup48 cl-online-learningによる文書分類
 
Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成Lispmeetup #45 Common Lispで音声合成
Lispmeetup #45 Common Lispで音声合成
 
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common LispによるディープラーニングLispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
Lispmeetup #39 MGLの紹介: Common Lispによるディープラーニング
 
Lisp meetup #29 cl-online-learningの紹介
Lisp meetup #29 cl-online-learningの紹介Lisp meetup #29 cl-online-learningの紹介
Lisp meetup #29 cl-online-learningの紹介
 

Portacle : Common Lispのオールインワン開発環境