SlideShare a Scribd company logo
ctype拡張モジュール
Moriyoshi Koizumi <mozo@mozo.jp>
自己紹介
● はてな:moriyoshi
● twitter:moriyoshit
●
某研究機関で生物シミュレーションの研究をし
ています。
● 日々PythonとC++を書いてます!!
● 好きなテンプレート言語はPHPです!!!!
パーフェクトPHP出ました
月刊Python出ます
BeepLoudやってます!
はい
ctypes拡張モジュールとは
● Python 2.5より追加
● Thomas Heller作
● C言語で書かれた共有ライブラリをPythonから
利用するためのライブラリ
● 中身はlibffiのラッパー
● 複数のOSに対応
● といってもピンときませんよね...
C言語で書かれた共有ライブラリを
Pythonから利用するための
ライブラリ
それCythonでできるよ
● CythonはCython拡張を施されたPythonで書か
れたコードをCに変換する仕組み
● 生成されたCのコードをPythonのC拡張にコン
パイルしない限りは利用できない
● 開発にはCをコンパイル、リンクする環境が必
要
●
配布時にも、各プラットフォーム用のバイナリ
の準備が必要
ctypesなら?
● 純粋なPythonスクリプトからCの関数を呼び出
せる
– コンパイル不要
– 配布時のバイナリ同梱も不要
● プロトタイプ作成、C関数のテストコード作成
に威力を発揮
Show me what it looks like!
import ctypes
# 標準Cライブラリを読み込む
dll = ctypes.CDLL("/usr/lib/libSystem.B.dylib")
# ライブラリの関数を呼び出す
dll.printf("Hello, %s world!n", "bucho")
基本的な使い方
● ctypes.CDLL オブジェクトを、引数として共有
ライブラリ名を渡して生成
● ctypesオブジェクトの属性にアクセスすると、
C関数を呼び出すためのラッパー関数が自動的
に生成される
● ラッパー関数は普通のPythonの関数として扱え
る
● ラッパー関数に渡す引数は自動的にCの型に変
換される
デモ
値ラッパー
import ctypes
dll = ctypes.CDLL("/usr/lib/libSystem.B.dylib")
dll.printf("%gn", 3.14)
Traceback (most recent call last):
File <stdin>, line 3, in <module>
dll.printf("%gn", 3.14)
ctypes.ArgumentError: argument 2: <type 'exceptions.TypeError'>:
Don't know how to convert parameter 2
実行結果
値ラッパー
import ctypes
dll = ctypes.CDLL("/usr/lib/libSystem.B.dylib")
dll.printf("%gn", ctypes.c_double(3.14))
3.14
実行結果
値ラッパー
● 組み込みのPythonの型とCの型は一対一で対応
していない
● Cの型に対応するPython型をctypes側で用意
● 明示的に型を指定してC関数を呼び出したい場
合は値ラッパーのオブジェクトを渡すと、最終
的に対応するCの型に変換される
値ラッパー
値ラッパークラス 対応するCの型
c_byte, c_ubyte, c_short,
c_ushort, c_int, c_uint,
c_long, c_ulong, c_longlong,
c_ulonglong
char, unsigned char, short,
unsigned short, int,
unsigned int, long, unsigned
long, long long, unsigned
long long
c_foat, c_double,
c_longdouble
foat, double, long double
c_char_p, c_wchar_p char *, wchar_t*
c_void_p void *
など
もうちょっと複雑な例
import ctypes
# 標準Cライブラリを読み込む
dll = ctypes.CDLL("/usr/lib/libSystem.B.dylib")
# ライブラリの関数を呼び出す
dll.getcwd.restype = ctypes.c_char_p
print dll.getcwd() # 現在の作業ディレクトリ
dll.sqrt.restype = ctypes.c_double
dll.sqrt.argtypes = (ctypes.c_double, )
print dll.sqrt(16) # 16の平方根
もうちょっと複雑な例
● C関数の戻り値の型は、デフォルトではint型で
あるとみなされる
● C関数のシグニチャを指定するときは、
ラッパー関数の以下の属性を指定する。
– restype
– argtypes
ポインタ渡し
import ctypes
dll =
ctypes.CDLL("/usr/lib/libSystem.B.dylib")
retval = ctypes.c_int()
dll.scanf("%d", ctypes.byref(retval))
print retval
ポインタ渡し
●
引数に指定されたポインタの示す先に戻り値を
返すようなC関数を扱う場合
● ctypes.byref()
ctypes.POINTER
●
任意の型のポインタ型を作る場合は
ctypes.POINTER(型) を呼ぶと、対応するポイ
ンタ型が作られる
● ctypes.POINTER(ctypes.c_int) → int *
ctypes.POINTER
import ctypes
c_int_p = ctypes.POINTER(ctypes.c_int)
dll =
ctypes.CDLL("/usr/lib/libSystem.B.dylib")
retval = ctypes.c_int()
dll.scanf("%d", c_int_p(retval))
print retval
※このケースだと、ctypes.byref() 使った方が早いです。
構造体
● ctypes.Structureクラスを継承したクラスを作る
ことで、Cの構造体に対応したラッパー型を作
れる
● _fields_ 属性に (フィールド名, 型) からなるタ
プルのリストを渡す
構造体
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
char *tm_zone;
long tm_gmtoff;
};
class TMStructure(ctypes.Structure):
_fields_ = [
('tm_sec', ctypes.c_int),
('tm_min', ctypes.c_int),
('tm_hour', ctypes.c_int),
('tm_mday', ctypes.c_int),
('tm_mon', ctypes.c_int),
('tm_year', ctypes.c_int),
('tm_wday', ctypes.c_int),
('tm_yday', ctypes.c_int),
('tm_isdst', ctypes.c_int),
('tm_zone', ctypes.c_char_p),
('tm_gmtoff', ctypes.c_long)]
コールバック関数
void call_callback(void(*cb)(const char
*))
{
cb("hoge");
}
import ctypes
dll = ctypes.CDLL("libcallback.dylib")
cfun = ctypes.CFUNCTYPE(None, ctypes.c_char_p)
def callback(string):
print "Hello, %s world!" % string
dll.call_callback(cfun(callback))
コールバック関数
● ctypes.CFUNCTYPE(戻り値の型, [引数の型, 引
数の型...]) を呼び出して、コールバック関数の
ラッパーオブジェクトを生成する
● ラッパーオブジェクトは、C関数の呼び出し時
に、関数ポインタに変換される
クロスプラットフォーム
● MacのPythonでも
● WindowsのPythonでも
● Free UnixのPythonでも
● それからIronPythonでも
複数プラットフォームを
サポートするときの注意点
● たとえば標準C関数のライブラリ名はプラット
フォームごとに違う
● sys.platform などでOSを判定して対処
まとめ
● dll = ctypes.CDLL()で読み込み
● dll.[関数名]() で関数を呼び出す
● 関数のシグニチャを指定したい場合はrestypeと
argtypes
● ラッパー型 c_*
● ポインタ渡しは ctypes.byref()
● 構造体は ctypes.Structure
● コールバック関数は ctypes.CFUNCTYPE()
ご清聴ありがとうございました
はい
始まって
しまいました
すべらない話
PSP®
Go
値下げしました
さて
P○P Go
○の中に
入る文字は?
1.H
2.S
3.P
はい
1. PHP
ですね
PHP Go
世の中
見渡せば
Pythonばかり
PHPに日の目を
はい
PHP in Python
プロジェクト始動
http://bitbucket.org/moriyoshi/php-in-python

More Related Content

What's hot

Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
kiki utagawa
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろうKota Mizushima
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
京大 マイコンクラブ
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
Keisuke Fukuda
 
Goのシンプルさについて
GoのシンプルさについてGoのシンプルさについて
Goのシンプルさについて
pospome
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
京大 マイコンクラブ
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
Yoshiki Hayama
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
大樹 小倉
 
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
Takeo Imai
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPythonYosuke Onoue
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
Norishige Fukushima
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
Takafumi ONAKA
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
Teppei Sato
 
Minecraft による強化学習の実践 (MineRL)
Minecraft による強化学習の実践 (MineRL)Minecraft による強化学習の実践 (MineRL)
Minecraft による強化学習の実践 (MineRL)
Tusyoshi Matsuzaki
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
Masahiro Masuda
 
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
taisa831
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
Takuya Ueda
 
おすすめVimプラグインまとめ
おすすめVimプラグインまとめおすすめVimプラグインまとめ
おすすめVimプラグインまとめ
Shun Iwase
 
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
Unity Technologies Japan K.K.
 
G2o
G2oG2o

What's hot (20)

Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
Pythonの処理系はどのように実装され,どのように動いているのか? 我々はその実態を調査すべくアマゾンへと飛んだ.
 
メタプログラミングって何だろう
メタプログラミングって何だろうメタプログラミングって何だろう
メタプログラミングって何だろう
 
プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜プログラムを高速化する話Ⅱ 〜GPGPU編〜
プログラムを高速化する話Ⅱ 〜GPGPU編〜
 
Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22Effective Modern C++ 勉強会 Item 22
Effective Modern C++ 勉強会 Item 22
 
Goのシンプルさについて
GoのシンプルさについてGoのシンプルさについて
Goのシンプルさについて
 
プログラムを高速化する話
プログラムを高速化する話プログラムを高速化する話
プログラムを高速化する話
 
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
「UXデザインとは」からはじめる「本流」のUXデザインはじめの一歩 | UXデザイン基礎セミナー 第1回
 
Pythonによる黒魔術入門
Pythonによる黒魔術入門Pythonによる黒魔術入門
Pythonによる黒魔術入門
 
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
DNNコンパイラの歩みと最近の動向 〜TVMを中心に〜
 
数理最適化とPython
数理最適化とPython数理最適化とPython
数理最適化とPython
 
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと画像処理ライブラリ OpenCV で 出来ること・出来ないこと
画像処理ライブラリ OpenCV で 出来ること・出来ないこと
 
「速」を落とさないコードレビュー
「速」を落とさないコードレビュー「速」を落とさないコードレビュー
「速」を落とさないコードレビュー
 
君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?君はyarn.lockをコミットしているか?
君はyarn.lockをコミットしているか?
 
Minecraft による強化学習の実践 (MineRL)
Minecraft による強化学習の実践 (MineRL)Minecraft による強化学習の実践 (MineRL)
Minecraft による強化学習の実践 (MineRL)
 
TVM の紹介
TVM の紹介TVM の紹介
TVM の紹介
 
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
書籍 「Python FlaskによるWebアプリ開発入門 物体検知アプリ&機械学習APIの作り方」 を通して伝えたいFlaskのプラクティス.pdf
 
Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析Goでかんたんソースコードの静的解析
Goでかんたんソースコードの静的解析
 
おすすめVimプラグインまとめ
おすすめVimプラグインまとめおすすめVimプラグインまとめ
おすすめVimプラグインまとめ
 
【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現【Unity道場】VectorGraphicsで作る エモい表現
【Unity道場】VectorGraphicsで作る エモい表現
 
G2o
G2oG2o
G2o
 

Viewers also liked

C Types - Extending Python
C Types - Extending PythonC Types - Extending Python
C Types - Extending Python
Priyank Kapadia
 
Chain of Responsibility
Chain of ResponsibilityChain of Responsibility
Chain of ResponsibilityYoshiori Shoji
 
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
Junya Yamaguchi
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
magoroku Yamamoto
 
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Project Samurai
 
ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善
takahiro_yachi
 

Viewers also liked (6)

C Types - Extending Python
C Types - Extending PythonC Types - Extending Python
C Types - Extending Python
 
Chain of Responsibility
Chain of ResponsibilityChain of Responsibility
Chain of Responsibility
 
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
戦国時代を生きた「黒田官兵衛」とWeb時代を生きる「エンジニア」
 
Deep learning入門
Deep learning入門Deep learning入門
Deep learning入門
 
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
Pythonで画像処理をやってみよう! 第1回 - ヒストグラムと濃度変換 -
 
ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善ニコニコ生放送の配信基盤改善
ニコニコ生放送の配信基盤改善
 

Similar to ctypes拡張モジュール

LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
civic Sasaki
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
civicpg
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1
Masato Fujitake
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる Makefile
Shohei Okada
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
Masashi Shibata
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
Kenta IDA
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
shoma h
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
Tetsuya Morimoto
 
PythonでPodcastを聴く
PythonでPodcastを聴くPythonでPodcastを聴く
PythonでPodcastを聴く
Masato Fujitake
 
20111206 GLT vol.40
20111206 GLT vol.4020111206 GLT vol.40
20111206 GLT vol.40kashew_nuts
 
Pyladies tokyo 20150123
Pyladies tokyo 20150123Pyladies tokyo 20150123
Pyladies tokyo 20150123
Ai Makabi
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
gree_tech
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理について
Yasutomo Kawanishi
 
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
Masato Fujitake
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
Shinya Okano
 
Pycon jp2012
Pycon jp2012Pycon jp2012
Pycon jp2012
Yuta Kitagami
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
masahitojp
 
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみたPHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
johgus johgus
 
Why python
Why pythonWhy python
Why python
TeppeiAkada1
 

Similar to ctypes拡張モジュール (20)

LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45LT: 今日帰ってすぐに始められるPython #nds45
LT: 今日帰ってすぐに始められるPython #nds45
 
私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46私の好きなPython構文 vol.2 #nds46
私の好きなPython構文 vol.2 #nds46
 
Pythonで自動化した話1
Pythonで自動化した話1Pythonで自動化した話1
Pythonで自動化した話1
 
PHP でも活用できる Makefile
PHP でも活用できる MakefilePHP でも活用できる Makefile
PHP でも活用できる Makefile
 
Pythonのすすめ
PythonのすすめPythonのすすめ
Pythonのすすめ
 
MicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみるMicroPythonのCモジュールを作ってみる
MicroPythonのCモジュールを作ってみる
 
PyPy 紹介
PyPy 紹介PyPy 紹介
PyPy 紹介
 
Python界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクトPython界隈の翻訳プロジェクト
Python界隈の翻訳プロジェクト
 
PythonでPodcastを聴く
PythonでPodcastを聴くPythonでPodcastを聴く
PythonでPodcastを聴く
 
osakapy 2014.05 LT
osakapy 2014.05 LTosakapy 2014.05 LT
osakapy 2014.05 LT
 
20111206 GLT vol.40
20111206 GLT vol.4020111206 GLT vol.40
20111206 GLT vol.40
 
Pyladies tokyo 20150123
Pyladies tokyo 20150123Pyladies tokyo 20150123
Pyladies tokyo 20150123
 
Python & PyConJP 2014 Report
Python & PyConJP 2014 ReportPython & PyConJP 2014 Report
Python & PyConJP 2014 Report
 
Pythonによる画像処理について
Pythonによる画像処理についてPythonによる画像処理について
Pythonによる画像処理について
 
Pythonでターミナルに画像表示
Pythonでターミナルに画像表示Pythonでターミナルに画像表示
Pythonでターミナルに画像表示
 
Pyconjp2016 pyftplib
Pyconjp2016 pyftplibPyconjp2016 pyftplib
Pyconjp2016 pyftplib
 
Pycon jp2012
Pycon jp2012Pycon jp2012
Pycon jp2012
 
Pyconjp2014_implementations
Pyconjp2014_implementationsPyconjp2014_implementations
Pyconjp2014_implementations
 
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみたPHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
PHPからC#のライブラリを呼べるようにしたdotnet_ffiを趣味でつくってみた
 
Why python
Why pythonWhy python
Why python
 

More from Moriyoshi Koizumi

Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
Moriyoshi Koizumi
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
Moriyoshi Koizumi
 
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and PyramidAuthentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Moriyoshi Koizumi
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2goMoriyoshi Koizumi
 
HLSについて知っていることを話します
HLSについて知っていることを話しますHLSについて知っていることを話します
HLSについて知っていることを話します
Moriyoshi Koizumi
 
Pyramidのrendererをカスタマイズする
PyramidのrendererをカスタマイズするPyramidのrendererをカスタマイズする
Pyramidのrendererをカスタマイズする
Moriyoshi Koizumi
 
Hacking Go Compiler Internals / GoCon 2014 Autumn
Hacking Go Compiler Internals / GoCon 2014 AutumnHacking Go Compiler Internals / GoCon 2014 Autumn
Hacking Go Compiler Internals / GoCon 2014 Autumn
Moriyoshi Koizumi
 
Uguisudani
UguisudaniUguisudani
Uguisudani
Moriyoshi Koizumi
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたMoriyoshi Koizumi
 
mod_himoteからはじめよう
mod_himoteからはじめようmod_himoteからはじめよう
mod_himoteからはじめよう
Moriyoshi Koizumi
 
HPHPは約束の地なのか
HPHPは約束の地なのかHPHPは約束の地なのか
HPHPは約束の地なのかMoriyoshi Koizumi
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクトMoriyoshi Koizumi
 

More from Moriyoshi Koizumi (20)

Goをカンストさせる話
Goをカンストさせる話Goをカンストさせる話
Goをカンストさせる話
 
PHP7を魔改造した話
PHP7を魔改造した話PHP7を魔改造した話
PHP7を魔改造した話
 
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and PyramidAuthentication, Authorization, OAuth, OpenID Connect and Pyramid
Authentication, Authorization, OAuth, OpenID Connect and Pyramid
 
All I know about rsc.io/c2go
All I know about rsc.io/c2goAll I know about rsc.io/c2go
All I know about rsc.io/c2go
 
HLSについて知っていることを話します
HLSについて知っていることを話しますHLSについて知っていることを話します
HLSについて知っていることを話します
 
Pyramidのrendererをカスタマイズする
PyramidのrendererをカスタマイズするPyramidのrendererをカスタマイズする
Pyramidのrendererをカスタマイズする
 
Hacking Go Compiler Internals / GoCon 2014 Autumn
Hacking Go Compiler Internals / GoCon 2014 AutumnHacking Go Compiler Internals / GoCon 2014 Autumn
Hacking Go Compiler Internals / GoCon 2014 Autumn
 
Uguisudani
UguisudaniUguisudani
Uguisudani
 
よいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれたよいことも悪いこともぜんぶPHPが教えてくれた
よいことも悪いこともぜんぶPHPが教えてくれた
 
Ik in action
Ik in actionIk in action
Ik in action
 
Nginx lua
Nginx luaNginx lua
Nginx lua
 
Haxeについて
HaxeについてHaxeについて
Haxeについて
 
Gocon2013
Gocon2013Gocon2013
Gocon2013
 
PHP language update 201211
PHP language update 201211PHP language update 201211
PHP language update 201211
 
mod_himoteからはじめよう
mod_himoteからはじめようmod_himoteからはじめよう
mod_himoteからはじめよう
 
HPHPは約束の地なのか
HPHPは約束の地なのかHPHPは約束の地なのか
HPHPは約束の地なのか
 
Pyfes201110
Pyfes201110Pyfes201110
Pyfes201110
 
Phjosh(仮)プロジェクト
Phjosh(仮)プロジェクトPhjosh(仮)プロジェクト
Phjosh(仮)プロジェクト
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 
Aaなゲームをjsで
AaなゲームをjsでAaなゲームをjsで
Aaなゲームをjsで
 

Recently uploaded

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
CRI Japan, Inc.
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
NTT DATA Technology & Innovation
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
Sony - Neural Network Libraries
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
iPride Co., Ltd.
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
yassun7010
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
Matsushita Laboratory
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
Fukuoka Institute of Technology
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
atsushi061452
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
harmonylab
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
atsushi061452
 

Recently uploaded (15)

LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアルLoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
LoRaWAN 4チャンネル電流センサー・コンバーター CS01-LB 日本語マニュアル
 
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdfFIDO Alliance Osaka Seminar: Welcome Slides.pdf
FIDO Alliance Osaka Seminar: Welcome Slides.pdf
 
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
YugabyteDB適用に向けた取り組みと隠れた魅力 (DSS Asia 2024 発表資料)
 
【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow【AI論文解説】Consistency ModelとRectified Flow
【AI論文解説】Consistency ModelとRectified Flow
 
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdfFIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
FIDO Alliance Osaka Seminar: PlayStation Passkey Deployment Case Study.pdf
 
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdfFIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
FIDO Alliance Osaka Seminar: LY-DOCOMO-KDDI-Mercari Panel.pdf
 
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdfFIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
FIDO Alliance Osaka Seminar: NEC & Yubico Panel.pdf
 
FIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdfFIDO Alliance Osaka Seminar: CloudGate.pdf
FIDO Alliance Osaka Seminar: CloudGate.pdf
 
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
MPAなWebフレームワーク、Astroの紹介 (その2) 2024/05/24の勉強会で発表されたものです。
 
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
2024年度_サイバーエージェント_新卒研修「データベースの歴史」.pptx
 
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
TaketoFujikawa_物語のコンセプトに基づく情報アクセス手法の基礎検討_JSAI2024
 
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
単腕マニピュレータによる 複数物体の同時組み立ての 基礎的考察 / Basic Approach to Robotic Assembly of Multi...
 
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
論文紹介: Exploiting semantic segmentation to boost reinforcement learning in vid...
 
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
【DLゼミ】XFeat: Accelerated Features for Lightweight Image Matching
 
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
論文紹介: Offline Q-Learning on diverse Multi-Task data both scales and generalizes
 

ctypes拡張モジュール