SlideShare una empresa de Scribd logo
1 de 48
Lightweight Language Go
山口能迪
id:ymotongpoo
1
13/08/24(Sat)
お前、誰よ
• 山口能迪(やまぐちよしふみ)
• @ymotongpoo
• Pythonが好きです
• Goはもっと好きです
• GoCon, Go羅温泉, 電車でGo!
• 仕事でもGoを使っています
2
13/08/24(Sat)
Agenda
• What is Lightweight Language?
• Lightweight Language “Go”
• Goのすごいところ
3
13/08/24(Sat)
注意
4
今日は巻き気味で行きます!
紹介しきれないので
僕のSlideShareも
見てください
13/08/24(Sat)
What is
“Lightweight Language”?
5
13/08/24(Sat)
Lightweight programming language
A lightweight programming language is one
that is designed to have very small memory
footprint, is easy to implement (important
when porting a language), and/or has
minimalist syntax and features.
Wikipedia,“Lightweight programming language”
6
13/08/24(Sat)
は?
7
13/08/24(Sat)
軽量プログラミング言語
日本における軽量プログラミング言語の「軽さ」は、
英語における lightweight の意味とは大きく異なり、
プログラマの負担の軽重を指し、実行速度やメモリ消
費量に優れているという意味ではない。
Wikipedia,“軽量プログラミング言語”
8
13/08/24(Sat)
どっち?
9
13/08/24(Sat)
軽量プログラミング言語
軽量プログラミング言語という単語の推進者は、
‣事前にコンパイルが不要なインタプリタ
‣動的型
‣関数オブジェクト
などの特色を備えるものを軽量プログラミング言語と分
類しているが、スクリプト言語の特色を逸脱するもので
はない。
Wikipedia,“軽量プログラミング言語”
10
13/08/24(Sat)
軽量プログラミング言語
現在、日本で一般に軽量プログラミング言語と言った
場合、おおむね以下のようなスクリプト言語を指す。
Wikipedia,“軽量プログラミング言語”
11
‣AWK
‣ECMAScript
(ActionScript、
JavaScript、JScript)
‣Lua
‣Perl
‣PHP
‣Python
‣Ruby
‣Shell Script
(bash, csh, etc...)
‣Tcl
‣VBScript
13/08/24(Sat)
軽量プログラミング言語
また、以下の言語なども挙げられる。一部、事前にコ
ンパイルが必要な言語も含まれる。
Wikipedia,“軽量プログラミング言語”
12
‣Clojure
‣Curl
‣Groovy
‣Haskell
‣JavaFX Script
‣PowerShell
‣Scala
‣Scheme
13/08/24(Sat)
13
だったら
13/08/24(Sat)
Goもありなんじゃね?
14
13/08/24(Sat)
Goについて
15
Rob Pike、Ken Thompson、Robert Griesemer
が2007年に着想、2009年リリース
「今、こういう言語が求められている」
1.単一のマシンでも巨大なコードベースをビルド
2.依存関係を簡単に解決
3.強い型付け・柔軟・型解決も素早い型システム
4.GCがありマルチコアの並列性サポートする
5.LLな書きやすさ
13/08/24(Sat)
Goについて
16
8086-8088
1978
i386
1985
Pentium
1993 2000
Xeon Pentium D
2005
Core Duo
2006
Xeon Quad Core i7
2008
1995
1991
1971
1983 1993
1987
2000
2009
マルチコアCPU時代
13/08/24(Sat)
Goについて
16
8086-8088
1978
i386
1985
Pentium
1993 2000
Xeon Pentium D
2005
Core Duo
2006
Xeon Quad Core i7
2008
1995
1991
1971
1983 1993
1987
2000
2009
マルチコアCPU時代
圧倒的現代感!!!!!!
13/08/24(Sat)
Goについて
17
• コンパイラ言語
• Linux、FreeBSD、Mac OS X、Windows
• 強い静的型付け
• GC
• 並列プログラミング
• ビルド、フォーマット、テスト、ドキュメン
トシステムを内蔵
13/08/24(Sat)
Lightweight Language Go
18
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい
• 実装が簡単
• 文法や機能が最小限
• インタプリタ
• 動的型
• 関数オブジェクト
13/08/24(Sat)
Lightweight Language Go
19
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい
• 実装が簡単
• 文法や機能が最小限
• インタプリタ
• 動的型
• 関数オブジェクト
13/08/24(Sat)
Goのメモリフットプリント
• メモリフットプリント
• Mark & Sweep GCが常に走っている
• 未使用のimportや変数はコンパイル時にエラー
20
メモリフットプリントは普通です!!
13/08/24(Sat)
Lightweight Language Go
21
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単
• 文法や機能が最小限
• インタプリタ
• 動的型
• 関数オブジェクト
13/08/24(Sat)
実装が簡単なGo
• 「実装が簡単」を次の3つの要素に分解
• 文法が簡単
• ライブラリ呼び出しが簡単
• 実行が簡単
22
13/08/24(Sat)
実装が簡単なGo
• 文法が簡単
• CとPythonの中間ぐらいの文法
• “A Tour of Go”をやれば2時間で習得可能
• 型推論による短い記述
23
13/08/24(Sat)
実装が簡単なGo
24
package	
  main
import	
  "fmt"
type	
  Person	
  struct	
  {
	
  	
  	
  	
  Name	
  string
	
  	
  	
  	
  Age	
  	
  int
}
func	
  (p	
  *Person)	
  Greet()	
  {
	
  	
  	
  	
  fmt.Printf("オラ%v、%v歳だゾ",	
  p.Name,	
  p.Age)
}
func	
  main()	
  {
	
  	
  	
  	
  p	
  :=	
  Person{"しんのすけ",	
  5}
	
  	
  	
  	
  p.Greet()
}
メソッド
struct宣言
型推論
13/08/24(Sat)
実装が簡単なGo
• ライブラリ呼び出しが簡単
• ディレクトリ構造に応じたパッケージシステム
• 外部ライブラリも直接レポジトリを指定
• 豊富な標準パッケージ
• 147におよぶ標準パッケージ
25
13/08/24(Sat)
実装が簡単なGo
26
archive
     tar
     zip
bufio
builtin
bytes
compress
     bzip2
     flate
     gzip
     lzw
     zlib
container
     heap
     list
     ring
crypto
     aes
     cipher
     des
     dsa
     ecdsa
     elliptic
     hmac
     md5
     rand
     rc4
     rsa
     sha1
     sha256
     sha512
     subtle
     tls
     x509
          pkix
database
     sql
          driver
debug
     dwarf
     elf
     gosym
     macho
     pe
encoding
     ascii85
     asn1
     base32
     base64
     binary
     csv
     gob
     hex
     json
     pem
     xml
errors
expvar
flag
fmt
go
     ast
     build
     doc
     parser
     printer
     scanner
     token
hash
     adler32
     crc32
     crc64
     fnv
html
     template
image
     color
     draw
     gif
     jpeg
     png
index
     suffixarray
io
     ioutil
log
     syslog
math
     big
     cmplx
     rand
mime
     multipart
net
     http
          cgi
          fcgi
          httptest
          httputil
          pprof
     mail
     rpc
          jsonrpc
     smtp
     textproto
     url
os
     exec
     signal
     user
path
     filepath
reflect
regexp
     syntax
runtime
     cgo
     debug
     pprof
sort
strconv
strings
sync
     atomic
syscall
testing
     iotest
     quick
text
     scanner
     tabwriter
     template
          parse
time
unicode
     utf16
     utf8
unsafe
http://golang.org/pkg/
13/08/24(Sat)
実装が簡単なGo
27
package	
  main
import	
  (
	
  	
  	
  	
  "encoding/json"
	
  	
  	
  	
  "flag"
	
  	
  	
  	
  "fmt"
	
  	
  	
  	
  "html/template"
	
  	
  	
  	
  "regexp"
	
  	
  	
  	
  "github.com/mattn/go-­‐sqlite3"
	
  	
  	
  	
  "github.com/ymotongpoo/go-­‐twitter/twitter"
)
...
13/08/24(Sat)
実装が簡単なGo
• 実行が簡単
• ライブラリ依存関係を自動で解決
• 必要なライブラリを自動で取得
• Git、Mercurial、Bazaar、Subversion
• 高速なビルド
• 静的実行バイナリ
28
13/08/24(Sat)
実装が簡単なGo
29
$	
  go	
  get
$	
  go	
  build
$	
  ls
main
$	
  ./main
オラしんのすけ、5歳だゾ
プロジェクトの場合 単一ファイルの場合
$	
  go	
  run	
  main.go
オラしんのすけ、5歳だゾ
ビルドファイルが必要ない
13/08/24(Sat)
Lightweight Language Go
30
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単 → OK
• 文法や機能が最小限
• インタプリタ
• 動的型
• 関数オブジェクト
13/08/24(Sat)
文法/機能が最小限なGo
• CとPythonの中間の最小限の文法
• A Tour of Goをひと通り見れば習得可能
• クラスシステムはない
• interfaceによるダックタイピング
• コンポジション
31
13/08/24(Sat)
文法/機能が最小限なGo
32
type	
  Person	
  interface	
  {
	
  	
  	
  	
  Greet()	
  string
}
type	
  Japanese	
  struct	
  {
	
  	
  	
  	
  Namae	
  string
}
func	
  (j	
  *Japanese)	
  Greet()	
  string	
  {
	
  	
  	
  	
  return	
  "こんにちは"	
  +	
  Namae	
  +	
  "です"
}
type	
  American	
  struct	
  {
	
  	
  	
  	
  Name	
  string
}
func	
  (a	
  *American)	
  Greet()	
  string	
  {
	
  	
  	
  	
  return	
  "Hi,	
  I’m	
  "	
  +	
  Name	
  
}
13/08/24(Sat)
Lightweight Language Go
33
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単 → OK
• 文法や機能が最小限 → OK
• インタプリタ
• 動的型
• 関数オブジェクト
13/08/24(Sat)
Goのインタプリタ
34
そんなものはない!!
13/08/24(Sat)
Lightweight Language Go
35
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単 → OK
• 文法や機能が最小限 → OK
• インタプリタ → NG
• 動的型
• 関数オブジェクト
13/08/24(Sat)
Goの動的型?
• Go自体はそもそも強い静的型付け
• 型推論とダックタイピングで柔軟な記述がで
きる
36
13/08/24(Sat)
Goの動的型?
37
type	
  Reader	
  interface	
  {
	
   Read(p	
  []byte)	
  (n	
  int,	
  err	
  error)
}
type	
  File	
  struct	
  {
	
   //	
  filtered	
  and	
  private	
  fields
}
func	
  (f	
  *File)	
  Read(b	
  []byte)	
  (n	
  int,	
  
err	
  error)
io.Readerの定義
os.Fileの定義
func	
  Fscanln(r	
  io.Reader,	
  
a	
  ...interface{})	
  (n	
  int,	
  err	
  
error)
type	
  Buffer	
  struct	
  {
	
   //	
  filtered	
  and	
  private	
  fields
}
func	
  (b	
  *Buffer)	
  Read(b	
  []byte)	
  (n	
  
int,	
  err	
  error)
bytes.Bufferの定義
fmt.Fscanlnの定義
io.Readerを実装
os.Fileもbytes.BufferもOK
13/08/24(Sat)
Lightweight Language Go
38
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単 → OK
• 文法や機能が最小限 → OK
• インタプリタ → NG
• 動的型 → OK
• 関数オブジェクト
13/08/24(Sat)
Goの関数オブジェクト
• Goでは関数は第1級オブジェクト
• クロージャも沢山使います
39
13/08/24(Sat)
Goの関数オブジェクト
40
package	
  main
import	
  (
	
  	
  	
  	
  "fmt"
	
  	
  	
  	
  "net/http"
)
func	
  hello(w	
  http.ResponseWriter,	
  r	
  *http.Request)	
  {
	
  	
  	
  	
  fmt.Fprintln(w,	
  "Hello,	
  Gopher")
}
func	
  main()	
  {
	
  	
  	
  	
  http.HandleFunc("/",	
  hello)
	
  	
  	
  	
  http.ListenAndServe(":8080",	
  nil)
}
関数オブジェクト
13/08/24(Sat)
Lightweight Language Go
41
• Lightweight Languageの要素を検証
• メモリフットプリントが小さい → OK
• 実装が簡単 → OK
• 文法や機能が最小限 → OK
• インタプリタ → NG
• 動的型 → OK
• 関数オブジェクト → OK
13/08/24(Sat)
結論: GoはLL
42
13/08/24(Sat)
Goのすごいところ
43
• goroutine & channel
• goツール
13/08/24(Sat)
goroutine & channelがすごい
44
Foo()
Bar()
Buz()
同期
go	
  Foo()
go	
  Bar()
Buz()
非同期
“go” と書くだけで新しいgoroutineが立ち上がる
言語仕様で非同期処理をサポート
簡単な記述で非同期(並列)処理が可能に
13/08/24(Sat)
goroutine & channelがすごい
45
Process B Process A
Channel C
複数のgoroutine間でのやり取り
func	
  ProcessA(c	
  chan	
  int)	
  {
	
   …
	
   c	
  <-­‐	
  SomeProcessA()
	
   …
}
func	
  ProcessB(c	
  chan	
  int)	
  {
	
   …
	
   SomeProcessB(<-­‐c)
	
   …
}
イメージ コード例
13/08/24(Sat)
Goツールがすごい
46
‣go build	

	

 パッケージをビルド
‣go get	

 	

 必要なパッケージを取得
‣go install	

 必要なパッケージを取得&ビルド
‣go run	

 	

 一時的にビルドし実行
‣go test	

 	

 テストとベンチマークを実行
‣gofmt	

 	

 フォーマットを直してくれる
‣godoc	

 	

 ドキュメントを生成
標準ツールが大変便利
13/08/24(Sat)
結論: GoはすごいLL
47
13/08/24(Sat)

Más contenido relacionado

La actualidad más candente

第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライドkoturn 0;
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発Takuya Ueda
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Hiro Yoshioka
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライドkoturn 0;
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門Yoshitaka Seo
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Tetsuya Morimoto
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAryos36
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone teradaManabu Terada
 
20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slidecosmo0920
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようShinya Takamaeda-Y
 
Exgettextの話
Exgettextの話Exgettextの話
Exgettextの話k1complete
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会虎の穴 開発室
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう2bo 2bo
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージTakuya Ueda
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカーTetsuya Morimoto
 
pkgsrc で gimp がアレだった件 - デマと放置と私
pkgsrc で gimp がアレだった件 - デマと放置と私pkgsrc で gimp がアレだった件 - デマと放置と私
pkgsrc で gimp がアレだった件 - デマと放置と私Akio OBATA
 
圧縮・伸張・アーカイブサポートの現状と課題
圧縮・伸張・アーカイブサポートの現状と課題圧縮・伸張・アーカイブサポートの現状と課題
圧縮・伸張・アーカイブサポートの現状と課題Hiroshi Miura
 

La actualidad más candente (19)

第2回勉強会スライド
第2回勉強会スライド第2回勉強会スライド
第2回勉強会スライド
 
静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発静的解析を使った開発ツールの開発
静的解析を使った開発ツールの開発
 
Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011 Code Reading at Security and Programming camp 2011
Code Reading at Security and Programming camp 2011
 
第1回勉強会スライド
第1回勉強会スライド第1回勉強会スライド
第1回勉強会スライド
 
Rpn and forth 超入門
Rpn and forth 超入門Rpn and forth 超入門
Rpn and forth 超入門
 
Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)Python と型ヒント (Type Hints)
Python と型ヒント (Type Hints)
 
Polyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGAPolyphony: Python ではじめる FPGA
Polyphony: Python ではじめる FPGA
 
PyCon JP 2014 plone terada
PyCon JP 2014 plone teradaPyCon JP 2014 plone terada
PyCon JP 2014 plone terada
 
20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide20160730 fluentd meetup in matsue slide
20160730 fluentd meetup in matsue slide
 
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみようPythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
PythonとPyCoRAMでお手軽にFPGAシステムを開発してみよう
 
ECMAScript没proposal追悼式
ECMAScript没proposal追悼式ECMAScript没proposal追悼式
ECMAScript没proposal追悼式
 
Exgettextの話
Exgettextの話Exgettextの話
Exgettextの話
 
2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会2017/12/21 虎の穴 Python勉強会
2017/12/21 虎の穴 Python勉強会
 
PEP8を読んでみよう
PEP8を読んでみようPEP8を読んでみよう
PEP8を読んでみよう
 
マスター・オブ・goパッケージ
マスター・オブ・goパッケージマスター・オブ・goパッケージ
マスター・オブ・goパッケージ
 
Pythonと型チェッカー
Pythonと型チェッカーPythonと型チェッカー
Pythonと型チェッカー
 
pkgsrc で gimp がアレだった件 - デマと放置と私
pkgsrc で gimp がアレだった件 - デマと放置と私pkgsrc で gimp がアレだった件 - デマと放置と私
pkgsrc で gimp がアレだった件 - デマと放置と私
 
圧縮・伸張・アーカイブサポートの現状と課題
圧縮・伸張・アーカイブサポートの現状と課題圧縮・伸張・アーカイブサポートの現状と課題
圧縮・伸張・アーカイブサポートの現状と課題
 
Go入門
Go入門Go入門
Go入門
 

Similar a 20130824 Lightweight Language "Go" @LL matsuri

Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Takuya Ueda
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうEsehara Shigeo
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察貴仁 大和屋
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜Hideki Takase
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, CodereadingHiro Yoshioka
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011Toru Furukawa
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Hiro Yoshioka
 
Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用Kenta Kase
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyDaisuke Ando
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmMinero Aoki
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識Katsuhiro Morishita
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp CodereadingHiro Yoshioka
 
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用PHPでのSWF編集とその応用
PHPでのSWF編集とその応用Yo Ya
 
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTインフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTDaisuke Ikeda
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code readingHiro Yoshioka
 
ニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirkojingharang
 

Similar a 20130824 Lightweight Language "Go" @LL matsuri (20)

Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
Lombok ハンズオン
Lombok ハンズオンLombok ハンズオン
Lombok ハンズオン
 
Goで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろうGoで言語処理系(の途中まで)を作ろう
Goで言語処理系(の途中まで)を作ろう
 
Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察Gocon2017:Goのロギング周りの考察
Gocon2017:Goのロギング周りの考察
 
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
ロボットシステムのつくりかた 〜Robot Operating Systemというアプローチ〜
 
rust primer
rust primerrust primer
rust primer
 
Programming camp 2008, Codereading
Programming camp 2008, CodereadingProgramming camp 2008, Codereading
Programming camp 2008, Codereading
 
osc_tokyo20100226
osc_tokyo20100226osc_tokyo20100226
osc_tokyo20100226
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011
 
Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010Sourcecode Reading Workshop2010
Sourcecode Reading Workshop2010
 
Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用Vimとctagsでコードリーディング 公開用
Vimとctagsでコードリーディング 公開用
 
Fluentd+MongoDB+Groovy
Fluentd+MongoDB+GroovyFluentd+MongoDB+Groovy
Fluentd+MongoDB+Groovy
 
Runtime c++editing
Runtime c++editingRuntime c++editing
Runtime c++editing
 
Cookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming ParadigmCookpad Summer Intern 2015 - Programming Paradigm
Cookpad Summer Intern 2015 - Programming Paradigm
 
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
PythonとRによるデータ分析環境の構築と機械学習によるデータ認識
 
Programming camp Codereading
Programming camp CodereadingProgramming camp Codereading
Programming camp Codereading
 
PHPでのSWF編集とその応用
PHPでのSWF編集とその応用PHPでのSWF編集とその応用
PHPでのSWF編集とその応用
 
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LTインフラ運用管理ツールとGolang OSS運用管理勉強会LT
インフラ運用管理ツールとGolang OSS運用管理勉強会LT
 
Programming camp code reading
Programming camp code readingProgramming camp code reading
Programming camp code reading
 
ニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixirニコニコを支える Erlang / Elixir
ニコニコを支える Erlang / Elixir
 

Más de Yoshifumi Yamaguchi

Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpYoshifumi Yamaguchi
 
Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Yoshifumi Yamaguchi
 
Learn You Some Erlang for great good! 日本語化プロジェクト
Learn You Some Erlang for great good! 日本語化プロジェクトLearn You Some Erlang for great good! 日本語化プロジェクト
Learn You Some Erlang for great good! 日本語化プロジェクトYoshifumi Yamaguchi
 
[20120410] @marqsの転職を祝うLT
[20120410] @marqsの転職を祝うLT[20120410] @marqsの転職を祝うLT
[20120410] @marqsの転職を祝うLTYoshifumi Yamaguchi
 
[20110129] sphinx theme collection 2011春
[20110129] sphinx theme collection 2011春[20110129] sphinx theme collection 2011春
[20110129] sphinx theme collection 2011春Yoshifumi Yamaguchi
 
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)Yoshifumi Yamaguchi
 

Más de Yoshifumi Yamaguchi (8)

Pythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjpPythonを取り巻く開発環境 #pyconjp
Pythonを取り巻く開発環境 #pyconjp
 
Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話Sphinxで翻訳してたら本が出てた話
Sphinxで翻訳してたら本が出てた話
 
Learn You Some Erlang for great good! 日本語化プロジェクト
Learn You Some Erlang for great good! 日本語化プロジェクトLearn You Some Erlang for great good! 日本語化プロジェクト
Learn You Some Erlang for great good! 日本語化プロジェクト
 
[20120410] @marqsの転職を祝うLT
[20120410] @marqsの転職を祝うLT[20120410] @marqsの転職を祝うLT
[20120410] @marqsの転職を祝うLT
 
YouTube APIの紹介
YouTube APIの紹介YouTube APIの紹介
YouTube APIの紹介
 
[20110219] pfffについて
[20110219] pfffについて[20110219] pfffについて
[20110219] pfffについて
 
[20110129] sphinx theme collection 2011春
[20110129] sphinx theme collection 2011春[20110129] sphinx theme collection 2011春
[20110129] sphinx theme collection 2011春
 
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)
[20101203] ドキュメントを作りたくなってしまう魔法のツールsphinx(山口発表用)
 

20130824 Lightweight Language "Go" @LL matsuri