Ll tiger clojure

Langage Update (Clojure),[object Object],LL Tiger 2010/07/31,[object Object],Toshiaki Maki ,[object Object],(Twitter:@making),[object Object]
Language Update初登場なので,[object Object]
Clojureの言語紹介をします(スライド50ページもありますw),[object Object]
Agenda,[object Object],Clojure?,[object Object],Immutable,[object Object],Concurrency,[object Object],Program as Data,[object Object],etc,[object Object]
Clojure?,[object Object],new Lisp dialect,[object Object],not CommonLisp, Scheme,[object Object],run on JVM,[object Object],Functional,[object Object],Immutable,[object Object],Concurrency,[object Object],STM,[object Object],agent system,[object Object],Program as  Data,[object Object],Macro,[object Object],DSL,[object Object],Java Interoperability ,[object Object]
プログラミングClojure(訳:川合史朗)の出版で,[object Object]
吹き荒れたClojure旋風,[object Object]
TLがClojureの話題で一色!!,[object Object]
空前のClojureブーム到来!!,[object Object]
そんな時代がClojureにもありましたorz,[object Object]
気を取り直して、再び興味をもってもらえるように紹介します(> <),[object Object]
Clojure History,[object Object],2007年スタート,[object Object],Author: Rich Hickey,[object Object],2009/05/04  1.0.0リリース,[object Object],2009/12/31  1.1.0リリース ←現在安定版,[object Object],2010/07/13  1.2.0 βeta1 リリース,[object Object],2010/07/30  1.2.0 RC1 リリース ←イマココ,[object Object],The Eclipse Public License,[object Object],http://en.wikipedia.org/wiki/Rich_Hickeyより,[object Object]
Position in JVM Languages,[object Object],Stuart Sierraの発表資料より引用,[object Object]
Syntax (primitive),[object Object]
Syntax (data structure),[object Object]
Hello World,[object Object],(defn hello [s],[object Object],  (println"Hello" s)),[object Object],(hello"World")	; -> "Hello World" ,[object Object],Javaの,[object Object],public static void hello (String s) {,[object Object],System.out.println(“Hello ” + s);,[object Object],},[object Object],hello(“World”);,[object Object],に相当,[object Object]
Function Call,[object Object],(println“HelloWorld”),[object Object],fn call,[object Object],arg,[object Object],semantics: ,[object Object],list,[object Object],symbol,[object Object],string,[object Object],structure:,[object Object]
Java Interoperability,[object Object],StringBuildersb = newStringBuilder();,[object Object],sb.append(“Lightweight”);,[object Object],sb.append(“Language”);,[object Object],sb.append(“Tiger”);,[object Object],sb.append(“2010”);,[object Object],(let[sb (StringBuilder.)],[object Object],  (.appendsb“Lightweight”),[object Object],  (.appendsb“Language”),[object Object],  (.appendsb“Tiger”),[object Object],  (.appendsb “2010”)),[object Object]
Agenda,[object Object],Clojure?,[object Object],Immutable,[object Object],Concurrency,[object Object],Program as Data,[object Object],etc,[object Object]
Immutable,[object Object],Clojureのデータは不変,[object Object],(defll-info {:name “LL Tiger” :year 2010}),[object Object],(assocll-info :place “Nissho-Hall”) ,[object Object],;; -> {:place "Nissho-Hall", :name "LL Tiger", :year 2010},[object Object],ll-info,[object Object],;; -> {:name "LL Tiger", :year 2010},[object Object],Mapに値を追加しても,[object Object],元のMapはそのまま,[object Object]
Immutable,[object Object],メモリ,[object Object],ll-info,[object Object],assocされたmap,[object Object],immutableなので共通部分を共有できる,[object Object],->効率的なデータ構造,[object Object]
Immutable,[object Object],関数型プログラミングに適したスタイル,[object Object],入力値に対して出力値の計算に集中できる,[object Object],並行処理にも有利,[object Object]
Agenda,[object Object],Clojure?,[object Object],Immutable,[object Object],Concurrency,[object Object],Program as Data,[object Object],etc,[object Object]
Concurrency,[object Object],並行プログラミングを容易にする4種類の強力なAPI,[object Object],今回はrefのみ紹介,[object Object]
ref,[object Object],状態を扱えるようにする,[object Object],Clojureでは値がimmutableなので、関数適用しても元の値は変更されない,[object Object],refを使用すると状態を扱える,[object Object],複数の状態をall or nothingで変更,[object Object],複数の変数をtransactionalに変更できる,[object Object]
without “ref”,[object Object],加算/減算処理を普通に考えると,[object Object],(def a 0),[object Object],(defb 1),[object Object],(inc a) ; aの値を+1する関数,[object Object],(decb) ; bの値を-1する関数,[object Object],(println a b) ; -> 1 0 ??,[object Object],a,bはimmutableなので実際は「0 1」が出力される,[object Object],a,b更新の一貫性も保証されない,[object Object]
STEP1/4,[object Object],更新する値をrefでくるむ(変更可能な参照),[object Object],(def a (ref 0)),[object Object],(defb (ref 1)),[object Object],(inc a),[object Object],(decb),[object Object],(println a b),[object Object],まだ実行してもエラー,[object Object],状態を保持する,[object Object],変数を生成,[object Object]
STEP2/4,[object Object],alterでrefの中身を更新,[object Object],(def a (ref 0)),[object Object],(defb (ref 1)),[object Object],(alter a inc) ; aにincを適用して更新,[object Object],(alterbdec) ; bにdecを適用して更新,[object Object],(println a b),[object Object],まだ実行してもエラー,[object Object],(alterreference update-fn & args…)形式,[object Object],(ref-setreference new-value)でも可,[object Object]
STEP3/4,[object Object],derefでrefの中身を参照,[object Object],(def a (ref 0)),[object Object],(defb (ref 1)),[object Object],(alter a inc),[object Object],(alterbdec) ,[object Object],(println (deref a) (derefb)),[object Object],まだ実行してもエラー,[object Object],リーダマクロ@を使って略記できる,[object Object],(println@a @b)で可,[object Object]
STEP4/4,[object Object],atomicにしたい範囲をdosyncで囲む,[object Object],(def a (ref 0)),[object Object],(defb (ref 1)),[object Object],(dosync,[object Object],  (alter a inc),[object Object],  (alterbdec)) ,[object Object],(println @a @b),[object Object],トランザクション範囲,[object Object],; -> 1 0,[object Object]
STM,[object Object],Software Transactional Memory,[object Object],ACID特性のうちACIを提供,[object Object],Atomic,[object Object],トランザクション内の処理は不可分,[object Object],Consistency,[object Object],トランザクション内の処理の一部で失敗した場合、全体が失敗,[object Object],Isolation,[object Object],トランザクション内で他のトランザクションの途中結果はわからない,[object Object],Durability,[object Object],トランザクション内での変更は永続的である(STMはメモリ上のはなしなので、Dはサポートされない),[object Object],言語レベルでインメモリDBみたいなものをもっているイメージ,[object Object]
Implementaion of STM,[object Object],MultiVersionConcurrency Control,[object Object],値の変更はコピーした値に対して行い、タイムスタンプなどで楽観排他して整合性をとる,[object Object],Snapshot Isolation,[object Object],トランザクションごとに値をコピーし、並行性を高める,[object Object],Oracle/PostgereSQLなどのRDBMSでは、SERIALIZABLE分離レベルで使われている,[object Object],より詳しくは,[object Object],http://d.hatena.ne.jp/marblejenka/20100626/1277528587,[object Object]
Mechanism of STM,[object Object],Tx A,[object Object],reference,[object Object],A,[object Object],in-transaction-value,[object Object],F,[object Object],v=42, t=0,[object Object],read,[object Object],Tx B,[object Object],snapshotをとる,[object Object],F,[object Object],v=42, t=0,[object Object],B,[object Object],calc,[object Object],in-transaction-value,[object Object],local write,[object Object],read,[object Object],F,[object Object],v=42, t=0,[object Object],snapshotをとる,[object Object],F,[object Object],v=9, t=0,[object Object],calc,[object Object],conflict?,[object Object],local write,[object Object],NO,[object Object],F,[object Object],v=27, t=0,[object Object],commit,[object Object],F,[object Object],v=9, t=1,[object Object],conflict?,[object Object],YES,[object Object],retry!,[object Object],「The Joy of Clojure」 Figure 10.1より,[object Object]
Concurrency,[object Object],簡単なセマンティクスで複数の処理をatomicにできる,[object Object],デッドロックやスレッドアンセーフなバグを心配する必要がない,[object Object],(他の言語だと複雑になるような),[object Object],並行処理が簡単に書ける!,[object Object]
Agenda,[object Object],Clojure?,[object Object],Immutable,[object Object],Concurrency,[object Object],Program as Data,[object Object],etc,[object Object]
Program as Data,[object Object],Clojure (というかLisp)ではプログラム自体がデータ構造,[object Object],式を評価する前にカッコの中を好きに操作できる,[object Object],Macro,[object Object],カッコ遊び,[object Object],好きに操作することでDSLを作るのも容易,[object Object]
Macro,[object Object],dotoマクロ,[object Object],(doto (StringBuilder.),[object Object],  (.append“Lightweight”),[object Object],  (.append“Language”),[object Object],  (.append“Tiger”),[object Object],  (.append “2010”)),[object Object],コンパイル時に,[object Object],1つ目の式の結果を一時変数に束縛し、,[object Object],2つ目以降の式の2番目の要素に挿入した形で評価する,[object Object],(let[sb (StringBuilder.)],[object Object],  (.appendsb“Lightweight”),[object Object],  (.appendsb“Language”),[object Object],  (.appendsb“Tiger”),[object Object],  (.appendsb “2010”)),[object Object]
DSL,[object Object],(deflangs '("Perl" "PHP" "Python" "Ruby" "Clojure" "HTML5" "Scala")),[object Object],;; シーケンスから条件を満たすものをソート後、変換して返却するfrom構文,[object Object],(fromlang in langs,[object Object],         where (.startsWithlang"P"),[object Object],orderby (countlang),[object Object],         select (.toLowerCaselang)),[object Object],;; -> ("php" "perl" "python"),[object Object],langsの中から,[object Object],Pから始まるものを,[object Object],文字列長昇順で,[object Object],小文字に変換して,[object Object],取り出す,[object Object],元ネタ http://www.slideshare.net/pcalcado/lisp-macros-in-20-minutes-featuring-clojure-presentation,[object Object]
DSL,[object Object],macro定義で実現,[object Object],(defmacro from [var _ coll _ condition _ ordering _ desired-map],[object Object],  `(map (fn [~var] ~desired-map),[object Object],	       (sort-by (fn [~var] ~ordering),[object Object],                         (filter (fn [~var] ~condition) ~coll)))),[object Object]
DSL,[object Object],(fromlang in langs where (.startsWith lang "P"),[object Object],         orderby (count lang) select (.toLowerCase lang)),[object Object],(defmacro from [var _ coll _ condition _ ordering _ desired-map],[object Object],  `(map (fn [~var] ~desired-map),[object Object],	       (sort-by (fn [~var] ~ordering),[object Object],                          (filter (fn [~var] ~condition) ~coll)))),[object Object],macro expand,[object Object],(map (fn [lang] (.toLowerCase lang)),[object Object],         (sort-by (fn [lang] (count lang)),[object Object],                      (filter (fn [lang] (.startsWith lang "P"))langs))),[object Object],langsの中から,[object Object],Pから始まるものを,[object Object],文字列長昇順で,[object Object],小文字に変換して取り出す,[object Object]
Program as Data,[object Object],プログラム自体がデータ構造なので、評価前に自由に操作できる,[object Object],式の途中に値を追加したり,[object Object],テンプレートを作って埋め込むとか,[object Object],定型処理を省ける,[object Object],DSLも簡単に作れる,[object Object]
Agenda,[object Object],Clojure?,[object Object],Immutable,[object Object],Concurrency,[object Object],Program as Data,[object Object],etc,[object Object]
Development,[object Object],Leiningen(http://github.com/technomancy/leiningen),[object Object],デファクトスタンダードなビルドツール,[object Object],ライブラリ(jar)の依存関係解決,[object Object],mavenベース,[object Object],Clojars(http://clojars.org/),[object Object],leiningenと相性の良いmavenレポジトリサイト,[object Object],leiningenで開発,[object Object],->Clojarsにjarをデプロイ,[object Object],->leiningenでClojarsから取得して使ってもらう,[object Object]
Clojure on GAE,[object Object],Blankプロジェクト,[object Object],http://github.com/making/clj-gae-blank,[object Object],$ git clone git://github.com/making/clj-gae-blank.git,[object Object],$ cdclj-gae-blank,[object Object],$ lein compile,[object Object],# 開発版サーバ起動,[object Object],$ dev_appserver war,[object Object]
Clojure on GAE,[object Object],逆引きClojure,[object Object],http://rd.clojure-users.org,[object Object]
Clojure on Android,[object Object],(defactivity Main,[object Object],  (:create (.setContentView context R$layout/main),[object Object],           (on-click (view-by-id R$id/about_button),[object Object],                     (start-activity About)),[object Object],           (on-click (view-by-id R$id/public_timeline_button),[object Object],                     (start-activity PublicTimeline)))),[object Object],Activityの定義,[object Object],http://github.com/remvee/clj-android,[object Object]
Othre Products,[object Object],Ring (http://github.com/mmcgrana/ring),[object Object],Webアプリケーションの抽象層,[object Object],WSGI(Python)、Rack(Ruby)に相当するもの,[object Object],Compojure (http://github.com/weavejester/compojure),[object Object],Sinatra(Ruby)に似たWebアプリケーションフレームワーク,[object Object],Ring上に構成,[object Object],逆引きClojureで採用,[object Object],Incanter (http://incanter.org/),[object Object],統計/グラフ,[object Object],R言語風プラットフォーム,[object Object]
Community,[object Object],Clojure-Users (http://clojure-users.org),[object Object],Tokyo.clj,[object Object],月1回の勉強会/ハッカソン,[object Object],次回は8/28,[object Object],登録はここからhttp://twtvite.com/tokyoclj5,[object Object],clojure-ja(http://groups.google.co.jp/group/clojure-ja),[object Object],Clojureユーザー用日本語ML,[object Object],ChatonClojure(http://practical-scheme.net/chaton/clojure/),[object Object],Shiroさんが答えてくれる!,[object Object]
Next,[object Object],http://github.com/stuarthalloway/clojure-presentations/downloads,[object Object],Stuart HallowayによるClojure入門,[object Object],Clojureの重要なエッセンスが網羅,[object Object]
ご清聴ありがとうございました,[object Object]
1 of 50

Recommended

9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O... by
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
2.2K views64 slides
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料) by
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)
オレ流のOpenJDKの開発環境(JJUG CCC 2019 Fall講演資料)NTT DATA Technology & Innovation
1.9K views41 slides
RLSを用いたマルチテナント実装 for Django by
RLSを用いたマルチテナント実装 for DjangoRLSを用いたマルチテナント実装 for Django
RLSを用いたマルチテナント実装 for DjangoTakayuki Shimizukawa
11.1K views49 slides
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So... by
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...
GraalVMの多言語実行機能が凄そうだったので試しにApache Sparkに組み込んで動かしてみたけどちょっとまだ早かったかもしれない(Open So...NTT DATA Technology & Innovation
1.2K views135 slides
Javaでトランザクショナルメモリを使う by
Javaでトランザクショナルメモリを使うJavaでトランザクショナルメモリを使う
Javaでトランザクショナルメモリを使うKenji Kazumura
6K views57 slides
Groovy Bootcamp 2015 by JGGUG by
Groovy Bootcamp 2015 by JGGUGGroovy Bootcamp 2015 by JGGUG
Groovy Bootcamp 2015 by JGGUGUehara Junji
3.3K views86 slides

More Related Content

What's hot

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる by
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
3.7K views88 slides
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料) by
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
2.2K views84 slides
Java ORマッパー選定のポイント #jsug by
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
90.2K views66 slides
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー by
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャーssuser070fa9
31.4K views189 slides
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2) by
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)Takuya Azumi
7.9K views39 slides
GroovyServ concept, how to use and outline. by
GroovyServ concept, how to use and outline.GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.Uehara Junji
1.8K views23 slides

What's hot(20)

JJUG CCC 2017 Fall オレオレJVM言語を作ってみる by Koichi Sakata
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
Koichi Sakata3.7K views
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料) by NTT DATA Technology & Innovation
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Java ORマッパー選定のポイント #jsug by Masatoshi Tada
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
Masatoshi Tada90.2K views
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー by ssuser070fa9
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
【Spring fest 2019】徹底解剖Spring MVCアーキテクチャー
ssuser070fa931.4K views
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2) by Takuya Azumi
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
カーネルオブジェクト(ETロボコン向けTOPPERS活用セミナー2-2)
Takuya Azumi7.9K views
GroovyServ concept, how to use and outline. by Uehara Junji
GroovyServ concept, how to use and outline.GroovyServ concept, how to use and outline.
GroovyServ concept, how to use and outline.
Uehara Junji1.8K views
Java SE 9の紹介: モジュール・システムを中心に by Taku Miyakawa
Java SE 9の紹介: モジュール・システムを中心にJava SE 9の紹介: モジュール・システムを中心に
Java SE 9の紹介: モジュール・システムを中心に
Taku Miyakawa145.2K views
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1) by Takuya Azumi
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
TECSの基礎(ETロボコン向けTOPPERS活用セミナー2-1)
Takuya Azumi7.6K views
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4) by Takuya Azumi
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
NXTプラットフォーム(ETロボコン向けTOPPERS活用セミナー4)
Takuya Azumi6.6K views
C#でOpenCL with OpenTK + Cloo by aokomoriuta
C#でOpenCL with OpenTK + ClooC#でOpenCL with OpenTK + Cloo
C#でOpenCL with OpenTK + Cloo
aokomoriuta4.1K views
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1) by Takuya Azumi
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Mindstorms NXT用 toppersプラットフォームの概要(ETロボコン向けTOPPERS活用セミナー1)
Takuya Azumi6.7K views
groovy 2.1.0 20130118 by Uehara Junji
groovy 2.1.0 20130118groovy 2.1.0 20130118
groovy 2.1.0 20130118
Uehara Junji3.5K views
xUTP Chapter26. Dependency Injection by Takuto Wada
xUTP Chapter26. Dependency InjectionxUTP Chapter26. Dependency Injection
xUTP Chapter26. Dependency Injection
Takuto Wada4.3K views
20130329 rtm3 by openrtm
20130329 rtm320130329 rtm3
20130329 rtm3
openrtm809 views
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料) by NTT DATA Technology & Innovation
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
押さえておきたい、PostgreSQL 13 の新機能!!(Open Source Conference 2021 Online/Hokkaido 発表資料)
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck by Uehara Junji
Indy(Invokedynamic) and Bytecode DSL and Brainf*ckIndy(Invokedynamic) and Bytecode DSL and Brainf*ck
Indy(Invokedynamic) and Bytecode DSL and Brainf*ck
Uehara Junji3.2K views
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3) by Takuya Azumi
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
NXT走行体サンプルプログラム(ETロボコン向けTOPPERS活用セミナー3)
Takuya Azumi8.5K views
Adaptive optimization of JIT compiler by nothingcosmos
Adaptive optimization of JIT compilerAdaptive optimization of JIT compiler
Adaptive optimization of JIT compiler
nothingcosmos4.3K views
ET2016 組込みシステムに適した コンポーネントシステムTECSの最新状況 by Takuya Azumi
ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況ET2016 組込みシステムに適したコンポーネントシステムTECSの最新状況
ET2016 組込みシステムに適した コンポーネントシステムTECSの最新状況
Takuya Azumi7.1K views

Similar to Ll tiger clojure

アドテク×Scala×パフォーマンスチューニング by
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニングYosuke Mizutani
14.4K views86 slides
メタプログラミングって何だろう by
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
28.7K views16 slides
LogicFlow 概要 by
LogicFlow 概要LogicFlow 概要
LogicFlow 概要Tomoyuki Obi
1.4K views87 slides
「宣言的プログラミング」とSDNのひとつの形態 by
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態npsg
2.4K views32 slides
プログラミング言語Clojureのニャンパスでの活用事例 by
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例sohta
13.6K views34 slides
Mk network programmability-03 by
Mk network programmability-03Mk network programmability-03
Mk network programmability-03Miya Kohno
2K views32 slides

Similar to Ll tiger clojure(20)

アドテク×Scala×パフォーマンスチューニング by Yosuke Mizutani
アドテク×Scala×パフォーマンスチューニングアドテク×Scala×パフォーマンスチューニング
アドテク×Scala×パフォーマンスチューニング
Yosuke Mizutani14.4K views
メタプログラミングって何だろう by Kota Mizushima
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
Kota Mizushima28.7K views
「宣言的プログラミング」とSDNのひとつの形態 by npsg
「宣言的プログラミング」とSDNのひとつの形態「宣言的プログラミング」とSDNのひとつの形態
「宣言的プログラミング」とSDNのひとつの形態
npsg2.4K views
プログラミング言語Clojureのニャンパスでの活用事例 by sohta
プログラミング言語Clojureのニャンパスでの活用事例プログラミング言語Clojureのニャンパスでの活用事例
プログラミング言語Clojureのニャンパスでの活用事例
sohta13.6K views
Mk network programmability-03 by Miya Kohno
Mk network programmability-03Mk network programmability-03
Mk network programmability-03
Miya Kohno2K views
Javaで1から10まで書いた話(sanitized) by Tokuhiro Matsuno
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno12.4K views
開発から見たWindowsの国際化機能 by Tadahiro Ishisaka
開発から見たWindowsの国際化機能開発から見たWindowsの国際化機能
開発から見たWindowsの国際化機能
Tadahiro Ishisaka5.8K views
Flutterを体験してみませんか by cch-robo
Flutterを体験してみませんかFlutterを体験してみませんか
Flutterを体験してみませんか
cch-robo255 views
Trema の紹介とネットワーク仮想化への応用 by kazuyas
Trema の紹介とネットワーク仮想化への応用Trema の紹介とネットワーク仮想化への応用
Trema の紹介とネットワーク仮想化への応用
kazuyas3.1K views
130522 rt講習会(説明用) by openrtm
130522 rt講習会(説明用)130522 rt講習会(説明用)
130522 rt講習会(説明用)
openrtm4.3K views
AWSマイスターシリーズReloaded(AWS Beanstalk) by Akio Katayama
AWSマイスターシリーズReloaded(AWS Beanstalk)AWSマイスターシリーズReloaded(AWS Beanstalk)
AWSマイスターシリーズReloaded(AWS Beanstalk)
Akio Katayama2.5K views
Chrome Developer Toolsを使いこなそう! by yoshikawa_t
Chrome Developer Toolsを使いこなそう!Chrome Developer Toolsを使いこなそう!
Chrome Developer Toolsを使いこなそう!
yoshikawa_t92.5K views
Exgettextの話 by k1complete
Exgettextの話Exgettextの話
Exgettextの話
k1complete2.4K views
Sourcecode Reading Workshop2010 by Hiro Yoshioka
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
Hiro Yoshioka1.1K views
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説 by Daisuke Nishino
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
『これからの.NETアプリケーション開発』セミナー .NET用アプリケーション フレームワーク Open 棟梁 概説
Daisuke Nishino4.3K views

More from Toshiaki Maki

From Spring Boot 2.2 to Spring Boot 2.3 #jsug by
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsugToshiaki Maki
2.2K views146 slides
Concourse x Spinnaker #concourse_tokyo by
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyoToshiaki Maki
3.6K views19 slides
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t by
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tToshiaki Maki
5.2K views71 slides
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1 by
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1Toshiaki Maki
36.5K views149 slides
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1 by
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Toshiaki Maki
12K views64 slides
Spring Boot Actuator 2.0 & Micrometer by
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & MicrometerToshiaki Maki
22.9K views47 slides

More from Toshiaki Maki(20)

From Spring Boot 2.2 to Spring Boot 2.3 #jsug by Toshiaki Maki
From Spring Boot 2.2 to Spring Boot 2.3 #jsugFrom Spring Boot 2.2 to Spring Boot 2.3 #jsug
From Spring Boot 2.2 to Spring Boot 2.3 #jsug
Toshiaki Maki2.2K views
Concourse x Spinnaker #concourse_tokyo by Toshiaki Maki
Concourse x Spinnaker #concourse_tokyoConcourse x Spinnaker #concourse_tokyo
Concourse x Spinnaker #concourse_tokyo
Toshiaki Maki3.6K views
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t by Toshiaki Maki
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1tServerless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Serverless with Spring Cloud Function, Knative and riff #SpringOneTour #s1t
Toshiaki Maki5.2K views
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1 by Toshiaki Maki
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
決済システムの内製化への旅 - SpringとPCFで作るクラウドネイティブなシステム開発 #jsug #sf_h1
Toshiaki Maki36.5K views
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1 by Toshiaki Maki
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Spring Boot Actuator 2.0 & Micrometer #jjug_ccc #ccc_a1
Toshiaki Maki12K views
Spring Boot Actuator 2.0 & Micrometer by Toshiaki Maki
Spring Boot Actuator 2.0 & MicrometerSpring Boot Actuator 2.0 & Micrometer
Spring Boot Actuator 2.0 & Micrometer
Toshiaki Maki22.9K views
Open Service Broker APIとKubernetes Service Catalog #k8sjp by Toshiaki Maki
Open Service Broker APIとKubernetes Service Catalog #k8sjpOpen Service Broker APIとKubernetes Service Catalog #k8sjp
Open Service Broker APIとKubernetes Service Catalog #k8sjp
Toshiaki Maki8.5K views
Spring Cloud Function & Project riff #jsug by Toshiaki Maki
Spring Cloud Function & Project riff #jsugSpring Cloud Function & Project riff #jsug
Spring Cloud Function & Project riff #jsug
Toshiaki Maki4.2K views
Introduction to Spring WebFlux #jsug #sf_a1 by Toshiaki Maki
Introduction to Spring WebFlux #jsug #sf_a1Introduction to Spring WebFlux #jsug #sf_a1
Introduction to Spring WebFlux #jsug #sf_a1
Toshiaki Maki18.5K views
BOSH / CF Deployment in modern ways #cf_tokyo by Toshiaki Maki
BOSH / CF Deployment in modern ways #cf_tokyoBOSH / CF Deployment in modern ways #cf_tokyo
BOSH / CF Deployment in modern ways #cf_tokyo
Toshiaki Maki4.9K views
Why PCF is the best platform for Spring Boot by Toshiaki Maki
Why PCF is the best platform for Spring BootWhy PCF is the best platform for Spring Boot
Why PCF is the best platform for Spring Boot
Toshiaki Maki7.1K views
Zipkin Components #zipkin_jp by Toshiaki Maki
Zipkin Components #zipkin_jpZipkin Components #zipkin_jp
Zipkin Components #zipkin_jp
Toshiaki Maki3.1K views
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07 by Toshiaki Maki
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
マイクロサービスに必要な技術要素はすべてSpring Cloudにある #DO07
Toshiaki Maki6.5K views
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo by Toshiaki Maki
Spring Framework 5.0による Reactive Web Application #JavaDayTokyoSpring Framework 5.0による Reactive Web Application #JavaDayTokyo
Spring Framework 5.0による Reactive Web Application #JavaDayTokyo
Toshiaki Maki31.5K views
実例で学ぶ、明日から使えるSpring Boot Tips #jsug by Toshiaki Maki
実例で学ぶ、明日から使えるSpring Boot Tips #jsug実例で学ぶ、明日から使えるSpring Boot Tips #jsug
実例で学ぶ、明日から使えるSpring Boot Tips #jsug
Toshiaki Maki17.1K views
Spring ❤️ Kotlin #jjug by Toshiaki Maki
Spring ❤️ Kotlin #jjugSpring ❤️ Kotlin #jjug
Spring ❤️ Kotlin #jjug
Toshiaki Maki3.8K views
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3 by Toshiaki Maki
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Event Driven Microservices with Spring Cloud Stream #jjug_ccc #ccc_ab3
Toshiaki Maki18.3K views
Managing your Docker image continuously with Concourse CI by Toshiaki Maki
Managing your Docker image continuously with Concourse CIManaging your Docker image continuously with Concourse CI
Managing your Docker image continuously with Concourse CI
Toshiaki Maki1.7K views
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri... by Toshiaki Maki
Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...Data Microservices with Spring Cloud Stream, Task,  and Data Flow #jsug #spri...
Data Microservices with Spring Cloud Stream, Task, and Data Flow #jsug #spri...
Toshiaki Maki22.3K views
Short Lived Tasks in Cloud Foundry #cfdtokyo by Toshiaki Maki
Short Lived Tasks in Cloud Foundry #cfdtokyoShort Lived Tasks in Cloud Foundry #cfdtokyo
Short Lived Tasks in Cloud Foundry #cfdtokyo
Toshiaki Maki1.5K views

Ll tiger clojure

  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.