SlideShare ist ein Scribd-Unternehmen logo
1 von 14
Downloaden Sie, um offline zu lesen
Siphone Coffee Maker



 第一回 okayama-js勉強会

  西本圭佑 (NISHIMOTO Keisuke)
      keisuken@cappuccino.ne.jp
自己紹介
 ➔   緒言
      ➔
             西本 圭佑
      ➔      Twitter: keisuke_n
      ➔      mailto: keisuken@cappuccino.ne.jp
 ➔   仕事
      ➔      Webアプリ開発と支援(主なもの)
 ➔   趣味
      ➔      宇宙・航空開発・鉄道情報ウォッチ
      ➔
             電子工作

2011.10.29                        第一回okayama-js   2
CoffeeScriptとは
 ➔   http://jashkenas.github.com/coffee-script/
 ➔   JavaScriptに1対1に変換される
 ➔   便利な構文を持つ記述性のいい言語
 ➔   本来コンパイラはnode.jsで実行される
 ➔   REPL(対話環境)装備




2011.10.29              第一回okayama-js             3
CoffeeScriptサンプルコード
# Assignment:                 # Objects:
number       = 42             math =
opposite = true                 root:      Math.sqrt
                                cube:      (x) -> x * square x
# Conditions:
number = -42 if opposite      # Splats:
                              race = (winner, runners...) ->
# Functions:                    print winner, runners
square = (x) -> x * x
                              # Array comprehensions:
# Arrays:                     cubes = (math.cube num for num
list = [1, 2, 3, 4, 5]        in list)


2011.10.29                 第一回okayama-js                         4
Siphone Coffee Makerとは
 ➔   http://cappuccino.jp/keisuken/scala/SiphoneCoffee/
 ➔   Scalaで書かれたCoffeeScriptコンパイラのラッパ
 ➔   Java環境で動く
 ➔   Rhino(JavaScriptエンジン)を使っている
 ➔   REPL(対話環境)も装備




2011.10.29                第一回okayama-js                   5
デモ



2011.10.29   第一回okayama-js   6
JavaScriptへコンパイル

 ➔   jQueryでDOMを扱うコードサンプル
sum = (event) ->
  result = 0
  for i in [1..3]
    result += parseInt(
      $('#value' + i).val())
  $('#result').text(result)
$('#calcButton').click(sum)
2011.10.29         第一回okayama-js   7
JavaScriptへコンパイル
 ➔   コンパイラでコンパイル
bash-3.2$ scoffee -c sum.coffee
Compiling... sum.coffee
done.




2011.10.29         第一回okayama-js   8
REPL(対話環境)

 ➔   「モノリス」のアスペクト比は?: コードサンプル

aspect = (i * i for i in [1..3])
alert "Monolith's aspect: #{aspect}"




2011.10.29      第一回okayama-js          9
REPL(対話環境)

 ➔   REPL(対話環境)で実行
bash-3.2$ scoffee
> aspect = (i * i for i in [1..3])
1,4,9
> alert "Monolith's aspect: #{aspect}"
Alert: Monolith's aspect: 1,4,9



2011.10.29            第一回okayama-js      10
GUI作成、実行

 ➔   GUIを表示するサンプルコード
importPackage javax.swing

frame = JFrame("Hello, world!")
frame.setDefaultClosing(JFrame.EXIT_ON_CLOSE)

frame.add(JLabel("Hello, world!"))

frame.pack()
frame.setVisible true


2011.10.29         第一回okayama-js            11
GUI作成、実行

 ➔   REPLで実行
bash-3.2$ scoffee
> importPackage javax.swing
...
> frame.setVisible true




2011.10.29            第一回okayama-js   12
おわり




             ご清聴ありがとうございました



2011.10.29        第一回okayama-js   13
質疑応答




             Any Questions?




2011.10.29       第一回okayama-js   14

Weitere ähnliche Inhalte

Was ist angesagt?

Haskell超初心者勉強会20
Haskell超初心者勉強会20Haskell超初心者勉強会20
Haskell超初心者勉強会20Takashi Kawachi
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法博文 斉藤
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理博文 斉藤
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoTsuyoshi Yamamoto
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413博文 斉藤
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011TokyoRyuichi Ueda
 
The Generator of ECMAScript 6th
The Generator of ECMAScript 6thThe Generator of ECMAScript 6th
The Generator of ECMAScript 6thpaulowniaceae
 
Mackerelでデプロイ先を管理する #mackerelio
Mackerelでデプロイ先を管理する #mackerelioMackerelでデプロイ先を管理する #mackerelio
Mackerelでデプロイ先を管理する #mackereliobuty4649
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasaitakara kasai
 
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例Koichi Shimozono
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るMasashi Shinbara
 
New Generation Build System "Fly"
New Generation Build System "Fly"New Generation Build System "Fly"
New Generation Build System "Fly"deepblue will
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1sttoshi_pp
 
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用純生 野田
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)Toru Furukawa
 
ActiveRecordでレガシーテーブルにつないだ話
ActiveRecordでレガシーテーブルにつないだ話ActiveRecordでレガシーテーブルにつないだ話
ActiveRecordでレガシーテーブルにつないだ話ryonext Shimamoto
 

Was ist angesagt? (20)

Fabric Essentials
Fabric EssentialsFabric Essentials
Fabric Essentials
 
Haskell超初心者勉強会20
Haskell超初心者勉強会20Haskell超初心者勉強会20
Haskell超初心者勉強会20
 
GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法GNU awk (gawk) を用いた Apache ログ解析方法
GNU awk (gawk) を用いた Apache ログ解析方法
 
お手軽並列処理
お手軽並列処理お手軽並列処理
お手軽並列処理
 
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in TokyoGrails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
Grails-1.1を斬る!~Grails-1.1からのチーム開発~ in Tokyo
 
USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413USP 友の会 LT 資料 20130413
USP 友の会 LT 資料 20130413
 
Rails
RailsRails
Rails
 
awk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyoawk v.s. bashどっちが強い?@OSC2011Tokyo
awk v.s. bashどっちが強い?@OSC2011Tokyo
 
Sinatra and heroku for mac
Sinatra and heroku for macSinatra and heroku for mac
Sinatra and heroku for mac
 
The Generator of ECMAScript 6th
The Generator of ECMAScript 6thThe Generator of ECMAScript 6th
The Generator of ECMAScript 6th
 
Mackerelでデプロイ先を管理する #mackerelio
Mackerelでデプロイ先を管理する #mackerelioMackerelでデプロイ先を管理する #mackerelio
Mackerelでデプロイ先を管理する #mackerelio
 
Start printf 6_takarakasai
Start printf 6_takarakasaiStart printf 6_takarakasai
Start printf 6_takarakasai
 
serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例serverspecを使用したサーバ設定テストの実例
serverspecを使用したサーバ設定テストの実例
 
Yohes kitchen
Yohes kitchenYohes kitchen
Yohes kitchen
 
PHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知るPHPコードではなく PHPコードの「書き方」を知る
PHPコードではなく PHPコードの「書き方」を知る
 
New Generation Build System "Fly"
New Generation Build System "Fly"New Generation Build System "Fly"
New Generation Build System "Fly"
 
8F Emacs seminar 1st
8F Emacs seminar 1st8F Emacs seminar 1st
8F Emacs seminar 1st
 
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
YAPC::Kansai 2017 - macOSネイティブアプリ作成におけるPerlの活用
 
おまえらこのライブラリ使ってないの? m9 (2013-07)
おまえらこのライブラリ使ってないの? m9	(2013-07)おまえらこのライブラリ使ってないの? m9	(2013-07)
おまえらこのライブラリ使ってないの? m9 (2013-07)
 
ActiveRecordでレガシーテーブルにつないだ話
ActiveRecordでレガシーテーブルにつないだ話ActiveRecordでレガシーテーブルにつないだ話
ActiveRecordでレガシーテーブルにつないだ話
 

Andere mochten auch

3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScriptNISHIMOTO Keisuke
 
60 Election
60 Election60 Election
60 Electiondschall
 
Prueba
PruebaPrueba
Pruebafacc
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るNISHIMOTO Keisuke
 
第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8NISHIMOTO Keisuke
 
Ruby Ben Kansai19 From Scala To Ruby
Ruby Ben Kansai19 From Scala To RubyRuby Ben Kansai19 From Scala To Ruby
Ruby Ben Kansai19 From Scala To RubyNISHIMOTO Keisuke
 
緑達の日常(仮): 第25回オープンラボ岡山
緑達の日常(仮): 第25回オープンラボ岡山緑達の日常(仮): 第25回オープンラボ岡山
緑達の日常(仮): 第25回オープンラボ岡山NISHIMOTO Keisuke
 
Ike FP: Soviet Union
Ike FP: Soviet UnionIke FP: Soviet Union
Ike FP: Soviet Uniondschall
 
Civil Rights 1964-1967
Civil Rights 1964-1967Civil Rights 1964-1967
Civil Rights 1964-1967dschall
 
Ruby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTRuby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTNISHIMOTO Keisuke
 
Data URI scheme: okayama-js-2
Data URI scheme: okayama-js-2Data URI scheme: okayama-js-2
Data URI scheme: okayama-js-2NISHIMOTO Keisuke
 
End Of The War
End Of The WarEnd Of The War
End Of The Wardschall
 
Gulf of Tonkin
Gulf of TonkinGulf of Tonkin
Gulf of Tonkindschall
 
Vietnam Board 2007
Vietnam Board 2007Vietnam Board 2007
Vietnam Board 2007dschall
 
Vietnam: Introductory Notes
Vietnam: Introductory NotesVietnam: Introductory Notes
Vietnam: Introductory Notesdschall
 

Andere mochten auch (19)

Suburbs
SuburbsSuburbs
Suburbs
 
3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript3D Photo Tool by Ruby/Sinatra + JavaScript
3D Photo Tool by Ruby/Sinatra + JavaScript
 
60 Election
60 Election60 Election
60 Election
 
Prueba
PruebaPrueba
Prueba
 
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見るjvmlang.daitokai 1: ScalaはEdisonの夢を見る
jvmlang.daitokai 1: ScalaはEdisonの夢を見る
 
第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8第8回 天領倉敷 ScalaScala In Kurashiki 8
第8回 天領倉敷 ScalaScala In Kurashiki 8
 
Ruby Ben Kansai19 From Scala To Ruby
Ruby Ben Kansai19 From Scala To RubyRuby Ben Kansai19 From Scala To Ruby
Ruby Ben Kansai19 From Scala To Ruby
 
緑達の日常(仮): 第25回オープンラボ岡山
緑達の日常(仮): 第25回オープンラボ岡山緑達の日常(仮): 第25回オープンラボ岡山
緑達の日常(仮): 第25回オープンラボ岡山
 
Scalaで実装するGC
Scalaで実装するGCScalaで実装するGC
Scalaで実装するGC
 
Ike FP: Soviet Union
Ike FP: Soviet UnionIke FP: Soviet Union
Ike FP: Soviet Union
 
Hokuriku Scala 1
Hokuriku Scala 1Hokuriku Scala 1
Hokuriku Scala 1
 
Civil Rights 1964-1967
Civil Rights 1964-1967Civil Rights 1964-1967
Civil Rights 1964-1967
 
Ruby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LTRuby/PureImage: 第2回岡山Ruby会議LT
Ruby/PureImage: 第2回岡山Ruby会議LT
 
Data URI scheme: okayama-js-2
Data URI scheme: okayama-js-2Data URI scheme: okayama-js-2
Data URI scheme: okayama-js-2
 
End Of The War
End Of The WarEnd Of The War
End Of The War
 
Gulf of Tonkin
Gulf of TonkinGulf of Tonkin
Gulf of Tonkin
 
Vietnam Board 2007
Vietnam Board 2007Vietnam Board 2007
Vietnam Board 2007
 
Air War
Air WarAir War
Air War
 
Vietnam: Introductory Notes
Vietnam: Introductory NotesVietnam: Introductory Notes
Vietnam: Introductory Notes
 

Ähnlich wie Siphone coffeemaker okayama-js-1

名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例Shigeru UCHIYAMA
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDEdcubeio
 
2017-12-04 Linuxの基本構造とBashでの扱い方
2017-12-04 Linuxの基本構造とBashでの扱い方2017-12-04 Linuxの基本構造とBashでの扱い方
2017-12-04 Linuxの基本構造とBashでの扱い方浩平 渡邉
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるKoichi Sakata
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)taskie
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』H2O Space. Co., Ltd.
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめYu Nobuoka
 
Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koakamiyam .
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門sandai
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発emasaka
 
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016kyoto university
 
Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについてdekosuke
 
これからのJavaScriptの話
これからのJavaScriptの話これからのJavaScriptの話
これからのJavaScriptの話Shogo Sensui
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Mori Shingo
 
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptxOsamu Ogasawara
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌A AOKI
 

Ähnlich wie Siphone coffeemaker okayama-js-1 (20)

名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
名古屋Ruby会議01 A3.製造業向け3Dデータ変換ソリューションにおけるRuby活用事例
 
MoteMote Compiler Plugin
MoteMote Compiler PluginMoteMote Compiler Plugin
MoteMote Compiler Plugin
 
React Native GUIDE
React Native GUIDEReact Native GUIDE
React Native GUIDE
 
2017-12-04 Linuxの基本構造とBashでの扱い方
2017-12-04 Linuxの基本構造とBashでの扱い方2017-12-04 Linuxの基本構造とBashでの扱い方
2017-12-04 Linuxの基本構造とBashでの扱い方
 
Mina 20130417
Mina 20130417Mina 20130417
Mina 20130417
 
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみるJJUG CCC 2017 Fall オレオレJVM言語を作ってみる
JJUG CCC 2017 Fall オレオレJVM言語を作ってみる
 
JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)JavaScript Tips 2015(PDF 版)
JavaScript Tips 2015(PDF 版)
 
MlnagoyaRx
MlnagoyaRxMlnagoyaRx
MlnagoyaRx
 
ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』ちゃんとWeb会議スライド『Coffee script』
ちゃんとWeb会議スライド『Coffee script』
 
TypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめTypeScript 言語処理系ことはじめ
TypeScript 言語処理系ことはじめ
 
Node.js勉強会 Framework Koa
Node.js勉強会 Framework KoaNode.js勉強会 Framework Koa
Node.js勉強会 Framework Koa
 
Haikara
HaikaraHaikara
Haikara
 
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
 
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
ゲットーの斜め上をゆくWebアプリケーションフレームワークの開発
 
第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016第2回 JavaScriptから始めるプログラミング2016
第2回 JavaScriptから始めるプログラミング2016
 
Scalamacrosについて
ScalamacrosについてScalamacrosについて
Scalamacrosについて
 
これからのJavaScriptの話
これからのJavaScriptの話これからのJavaScriptの話
これからのJavaScriptの話
 
Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋Node予備校 vol.1 名古屋
Node予備校 vol.1 名古屋
 
遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx遺伝研スパコンを使った解析の並列化.pptx
遺伝研スパコンを使った解析の並列化.pptx
 
ASP.NET vNextの全貌
ASP.NET vNextの全貌ASP.NET vNextの全貌
ASP.NET vNextの全貌
 

Mehr von NISHIMOTO Keisuke

3Dプリンタの出力は遅いのでどうにかしたい
3Dプリンタの出力は遅いのでどうにかしたい3Dプリンタの出力は遅いのでどうにかしたい
3Dプリンタの出力は遅いのでどうにかしたいNISHIMOTO Keisuke
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!NISHIMOTO Keisuke
 
第2回IoT勉強会 in 岡山 オープニング
第2回IoT勉強会 in 岡山 オープニング第2回IoT勉強会 in 岡山 オープニング
第2回IoT勉強会 in 岡山 オープニングNISHIMOTO Keisuke
 
IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向NISHIMOTO Keisuke
 
パンジャンドラム (忘年会議2018)
パンジャンドラム (忘年会議2018)パンジャンドラム (忘年会議2018)
パンジャンドラム (忘年会議2018)NISHIMOTO Keisuke
 
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピックNISHIMOTO Keisuke
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたNISHIMOTO Keisuke
 
LE-9: 第1回宇宙開発勉強会 in 岡山
LE-9: 第1回宇宙開発勉強会 in 岡山LE-9: 第1回宇宙開発勉強会 in 岡山
LE-9: 第1回宇宙開発勉強会 in 岡山NISHIMOTO Keisuke
 
3Dプリンタことはじめ
3Dプリンタことはじめ3Dプリンタことはじめ
3DプリンタことはじめNISHIMOTO Keisuke
 

Mehr von NISHIMOTO Keisuke (10)

3Dプリンタの出力は遅いのでどうにかしたい
3Dプリンタの出力は遅いのでどうにかしたい3Dプリンタの出力は遅いのでどうにかしたい
3Dプリンタの出力は遅いのでどうにかしたい
 
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
第2回IoT勉強会 in 岡山 | 2部 IoTデバイスを触ってみよう!
 
Jetson Nano Lチカ
Jetson Nano LチカJetson Nano Lチカ
Jetson Nano Lチカ
 
第2回IoT勉強会 in 岡山 オープニング
第2回IoT勉強会 in 岡山 オープニング第2回IoT勉強会 in 岡山 オープニング
第2回IoT勉強会 in 岡山 オープニング
 
IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向IoTの概要・IoT界隈の動向
IoTの概要・IoT界隈の動向
 
パンジャンドラム (忘年会議2018)
パンジャンドラム (忘年会議2018)パンジャンドラム (忘年会議2018)
パンジャンドラム (忘年会議2018)
 
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック
第4回宇宙開発勉強会 in 岡山: 宇宙開発トピック
 
Movidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみたMovidius Neral Compute Stickを使ってみた
Movidius Neral Compute Stickを使ってみた
 
LE-9: 第1回宇宙開発勉強会 in 岡山
LE-9: 第1回宇宙開発勉強会 in 岡山LE-9: 第1回宇宙開発勉強会 in 岡山
LE-9: 第1回宇宙開発勉強会 in 岡山
 
3Dプリンタことはじめ
3Dプリンタことはじめ3Dプリンタことはじめ
3Dプリンタことはじめ
 

Siphone coffeemaker okayama-js-1

  • 1. Siphone Coffee Maker 第一回 okayama-js勉強会 西本圭佑 (NISHIMOTO Keisuke) keisuken@cappuccino.ne.jp
  • 2. 自己紹介 ➔ 緒言 ➔ 西本 圭佑 ➔ Twitter: keisuke_n ➔ mailto: keisuken@cappuccino.ne.jp ➔ 仕事 ➔ Webアプリ開発と支援(主なもの) ➔ 趣味 ➔ 宇宙・航空開発・鉄道情報ウォッチ ➔ 電子工作 2011.10.29 第一回okayama-js 2
  • 3. CoffeeScriptとは ➔ http://jashkenas.github.com/coffee-script/ ➔ JavaScriptに1対1に変換される ➔ 便利な構文を持つ記述性のいい言語 ➔ 本来コンパイラはnode.jsで実行される ➔ REPL(対話環境)装備 2011.10.29 第一回okayama-js 3
  • 4. CoffeeScriptサンプルコード # Assignment: # Objects: number = 42 math = opposite = true root: Math.sqrt cube: (x) -> x * square x # Conditions: number = -42 if opposite # Splats: race = (winner, runners...) -> # Functions: print winner, runners square = (x) -> x * x # Array comprehensions: # Arrays: cubes = (math.cube num for num list = [1, 2, 3, 4, 5] in list) 2011.10.29 第一回okayama-js 4
  • 5. Siphone Coffee Makerとは ➔ http://cappuccino.jp/keisuken/scala/SiphoneCoffee/ ➔ Scalaで書かれたCoffeeScriptコンパイラのラッパ ➔ Java環境で動く ➔ Rhino(JavaScriptエンジン)を使っている ➔ REPL(対話環境)も装備 2011.10.29 第一回okayama-js 5
  • 6. デモ 2011.10.29 第一回okayama-js 6
  • 7. JavaScriptへコンパイル ➔ jQueryでDOMを扱うコードサンプル sum = (event) -> result = 0 for i in [1..3] result += parseInt( $('#value' + i).val()) $('#result').text(result) $('#calcButton').click(sum) 2011.10.29 第一回okayama-js 7
  • 8. JavaScriptへコンパイル ➔ コンパイラでコンパイル bash-3.2$ scoffee -c sum.coffee Compiling... sum.coffee done. 2011.10.29 第一回okayama-js 8
  • 9. REPL(対話環境) ➔ 「モノリス」のアスペクト比は?: コードサンプル aspect = (i * i for i in [1..3]) alert "Monolith's aspect: #{aspect}" 2011.10.29 第一回okayama-js 9
  • 10. REPL(対話環境) ➔ REPL(対話環境)で実行 bash-3.2$ scoffee > aspect = (i * i for i in [1..3]) 1,4,9 > alert "Monolith's aspect: #{aspect}" Alert: Monolith's aspect: 1,4,9 2011.10.29 第一回okayama-js 10
  • 11. GUI作成、実行 ➔ GUIを表示するサンプルコード importPackage javax.swing frame = JFrame("Hello, world!") frame.setDefaultClosing(JFrame.EXIT_ON_CLOSE) frame.add(JLabel("Hello, world!")) frame.pack() frame.setVisible true 2011.10.29 第一回okayama-js 11
  • 12. GUI作成、実行 ➔ REPLで実行 bash-3.2$ scoffee > importPackage javax.swing ... > frame.setVisible true 2011.10.29 第一回okayama-js 12
  • 13. おわり ご清聴ありがとうございました 2011.10.29 第一回okayama-js 13
  • 14. 質疑応答 Any Questions? 2011.10.29 第一回okayama-js 14