Submit Search
Upload
クリップボード監視と外部コマンド実行 #chibapm
•
0 likes
•
2,305 views
鉄次 尾形
Follow
2013/3/23 に開催された Chiba.pm#2 でトークしたLTのスライドです。
Read less
Read more
Technology
Report
Share
Report
Share
1 of 18
Download now
Download to read offline
Recommended
独学道場アセンブリの会
独学道場アセンブリの会
Ryota Suenaga
Bazaar
Bazaar
KLab株式会社
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
Makoto Kishimoto
FreeBSDのススメ
FreeBSDのススメ
kunst1080
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
Noriyasu Sakaue
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
NetwalkerとARM Linuxのカスタマイズ情報
NetwalkerとARM Linuxのカスタマイズ情報
Netwalker lab kapper
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
Recommended
独学道場アセンブリの会
独学道場アセンブリの会
Ryota Suenaga
Bazaar
Bazaar
KLab株式会社
Tech oyaji ksmakoto_presen
Tech oyaji ksmakoto_presen
Makoto Kishimoto
FreeBSDのススメ
FreeBSDのススメ
kunst1080
osoljp201105_ZFSjiman_nslope
osoljp201105_ZFSjiman_nslope
Noriyasu Sakaue
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
LT駆動開発08 - 無限のディスク領域を手に入れよう(妄想編)
Kazuya Matsubara
NetwalkerとARM Linuxのカスタマイズ情報
NetwalkerとARM Linuxのカスタマイズ情報
Netwalker lab kapper
FreeBSDで行こう for small server
FreeBSDで行こう for small server
Tatsumi Naganuma
TddでFizzBuzzしてみる in Swift
TddでFizzBuzzしてみる in Swift
Shoichi Matsuda
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
furandon_pig
Lfsをやってみよう
Lfsをやってみよう
Kimiyuki Yamauchi
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
sandai
super_unkoをスーパーキレイにした
super_unkoをスーパーキレイにした
jiro4989
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
shimadah
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
HarutakaMatsumoto
ターミナル上でのSwift運用
ターミナル上でのSwift運用
HarutakaMatsumoto
Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*
irof N
How to use blacklistd
How to use blacklistd
Yuichiro Naito
魁ここんとーく in おおさか
魁ここんとーく in おおさか
shimadah
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
Ren’pyの御紹介
Ren’pyの御紹介
zgock
ぼくnmonです
ぼくnmonです
洋史 東平
FreeBSDのpostfixをblacklistd(8)に対応させてみた
FreeBSDのpostfixをblacklistd(8)に対応させてみた
Koichiro Iwao
AllwinnerタブレットのOSを作ってみる (途中版)
AllwinnerタブレットのOSを作ってみる (途中版)
shimadah
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Yuto Takei
秀丸最強化計画
秀丸最強化計画
Kiichi Kajiura
最近の話題から 〜2013年秋〜 #hachiojipm
最近の話題から 〜2013年秋〜 #hachiojipm
鉄次 尾形
これからPerlを使っていくみなさんへ #Perl入学式
これからPerlを使っていくみなさんへ #Perl入学式
鉄次 尾形
More Related Content
What's hot
TddでFizzBuzzしてみる in Swift
TddでFizzBuzzしてみる in Swift
Shoichi Matsuda
ファイルシステム比較
ファイルシステム比較
NaoyaFukuda
x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
furandon_pig
Lfsをやってみよう
Lfsをやってみよう
Kimiyuki Yamauchi
エンジニアのための痔の話
エンジニアのための痔の話
Kouhei Maeda
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
sandai
super_unkoをスーパーキレイにした
super_unkoをスーパーキレイにした
jiro4989
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
shimadah
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
HarutakaMatsumoto
ターミナル上でのSwift運用
ターミナル上でのSwift運用
HarutakaMatsumoto
Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*
irof N
How to use blacklistd
How to use blacklistd
Yuichiro Naito
魁ここんとーく in おおさか
魁ここんとーく in おおさか
shimadah
S2s websrv201011-presen
S2s websrv201011-presen
Kouhei Maeda
Ren’pyの御紹介
Ren’pyの御紹介
zgock
ぼくnmonです
ぼくnmonです
洋史 東平
FreeBSDのpostfixをblacklistd(8)に対応させてみた
FreeBSDのpostfixをblacklistd(8)に対応させてみた
Koichiro Iwao
AllwinnerタブレットのOSを作ってみる (途中版)
AllwinnerタブレットのOSを作ってみる (途中版)
shimadah
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
Yuto Takei
秀丸最強化計画
秀丸最強化計画
Kiichi Kajiura
What's hot
(20)
TddでFizzBuzzしてみる in Swift
TddでFizzBuzzしてみる in Swift
ファイルシステム比較
ファイルシステム比較
x86 CPUにejectコマンドを組み込みたい!
x86 CPUにejectコマンドを組み込みたい!
Lfsをやってみよう
Lfsをやってみよう
エンジニアのための痔の話
エンジニアのための痔の話
【学習メモ#1st】12ステップで作る組込みOS自作入門
【学習メモ#1st】12ステップで作る組込みOS自作入門
super_unkoをスーパーキレイにした
super_unkoをスーパーキレイにした
謎PCとの付き合い方(LILO東海道 2015/5発表分)
謎PCとの付き合い方(LILO東海道 2015/5発表分)
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用 ver.1.1
ターミナル上でのSwift運用
ターミナル上でのSwift運用
Javaな人が今すぐ使えるG*
Javaな人が今すぐ使えるG*
How to use blacklistd
How to use blacklistd
魁ここんとーく in おおさか
魁ここんとーく in おおさか
S2s websrv201011-presen
S2s websrv201011-presen
Ren’pyの御紹介
Ren’pyの御紹介
ぼくnmonです
ぼくnmonです
FreeBSDのpostfixをblacklistd(8)に対応させてみた
FreeBSDのpostfixをblacklistd(8)に対応させてみた
AllwinnerタブレットのOSを作ってみる (途中版)
AllwinnerタブレットのOSを作ってみる (途中版)
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
[Basic 7] OS の基本 / 割り込み / システム コール / メモリ管理
秀丸最強化計画
秀丸最強化計画
Viewers also liked
最近の話題から 〜2013年秋〜 #hachiojipm
最近の話題から 〜2013年秋〜 #hachiojipm
鉄次 尾形
これからPerlを使っていくみなさんへ #Perl入学式
これからPerlを使っていくみなさんへ #Perl入学式
鉄次 尾形
大変なときこそ未来を見よう #hachiojipm
大変なときこそ未来を見よう #hachiojipm
鉄次 尾形
文字化け2011〜まだまだ化けます〜
文字化け2011〜まだまだ化けます〜
鉄次 尾形
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
鉄次 尾形
LTthon in YAPC 2012
LTthon in YAPC 2012
uzulla
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
鉄次 尾形
プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners
鉄次 尾形
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅
鉄次 尾形
Perlで生きる10年
Perlで生きる10年
鉄次 尾形
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
Syun Fuji
情報収集について
情報収集について
Mamiko Tsuda
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
maka2donzoko
イベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopm
鉄次 尾形
First step of Performance Tuning
First step of Performance Tuning
risou
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
鉄次 尾形
2017年春のPerl
2017年春のPerl
charsbar
Viewers also liked
(17)
最近の話題から 〜2013年秋〜 #hachiojipm
最近の話題から 〜2013年秋〜 #hachiojipm
これからPerlを使っていくみなさんへ #Perl入学式
これからPerlを使っていくみなさんへ #Perl入学式
大変なときこそ未来を見よう #hachiojipm
大変なときこそ未来を見よう #hachiojipm
文字化け2011〜まだまだ化けます〜
文字化け2011〜まだまだ化けます〜
Apacheの展望とmod_perlの超絶技巧 #yapcasia
Apacheの展望とmod_perlの超絶技巧 #yapcasia
LTthon in YAPC 2012
LTthon in YAPC 2012
IT業界における伝統芸能の継承 #hachiojipm
IT業界における伝統芸能の継承 #hachiojipm
プロセスの永続化でコスト削減 #perlbeginners
プロセスの永続化でコスト削減 #perlbeginners
日本全国ぶらりPerl旅
日本全国ぶらりPerl旅
Perlで生きる10年
Perlで生きる10年
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
スケジュールに意志を込める〜納期と品質、立ちはだかる優先度。 その時君は何をすべきか。〜
情報収集について
情報収集について
YAPC::KANSAI 2017 LT
YAPC::KANSAI 2017 LT
イベント駆動とノンブロッキング #hokkaidopm
イベント駆動とノンブロッキング #hokkaidopm
First step of Performance Tuning
First step of Performance Tuning
Perl ウェブ開発の中世〜CGI と Plack の間〜
Perl ウェブ開発の中世〜CGI と Plack の間〜
2017年春のPerl
2017年春のPerl
More from 鉄次 尾形
Perl入学式 2018年度の報告
Perl入学式 2018年度の報告
鉄次 尾形
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
鉄次 尾形
俺のこだわりデスクのその後
俺のこだわりデスクのその後
鉄次 尾形
Hokkaido.pmと7年
Hokkaido.pmと7年
鉄次 尾形
WordPress 運用を支える Perl
WordPress 運用を支える Perl
鉄次 尾形
障害対応とその防止策
障害対応とその防止策
鉄次 尾形
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
鉄次 尾形
コードの動的生成のお話
コードの動的生成のお話
鉄次 尾形
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
鉄次 尾形
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き
鉄次 尾形
穏やかにファイルを削除する
穏やかにファイルを削除する
鉄次 尾形
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話
鉄次 尾形
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
鉄次 尾形
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
鉄次 尾形
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
鉄次 尾形
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
鉄次 尾形
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ
鉄次 尾形
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式
鉄次 尾形
ライフログ、時系列メモ
ライフログ、時系列メモ
鉄次 尾形
今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject
鉄次 尾形
More from 鉄次 尾形
(20)
Perl入学式 2018年度の報告
Perl入学式 2018年度の報告
【公開版】AWS基礎 for 新卒エンジニア
【公開版】AWS基礎 for 新卒エンジニア
俺のこだわりデスクのその後
俺のこだわりデスクのその後
Hokkaido.pmと7年
Hokkaido.pmと7年
WordPress 運用を支える Perl
WordPress 運用を支える Perl
障害対応とその防止策
障害対応とその防止策
働きやすい社内を目指す!二酸化炭素計測ツール
働きやすい社内を目指す!二酸化炭素計測ツール
コードの動的生成のお話
コードの動的生成のお話
三角関数の加法定理はなぜ難しいのか
三角関数の加法定理はなぜ難しいのか
穏やかにファイルを削除する続き
穏やかにファイルを削除する続き
穏やかにファイルを削除する
穏やかにファイルを削除する
最近のメールまわりのお仕事のお話
最近のメールまわりのお仕事のお話
再帰、漸化式、差分方程式とアルゴリズム Gx#20
再帰、漸化式、差分方程式とアルゴリズム Gx#20
超小規模環境のMySQL #mysqlcasual
超小規模環境のMySQL #mysqlcasual
mod_perlプログラマーがYAPCで語るレガシー開発論
mod_perlプログラマーがYAPCで語るレガシー開発論
東京近郊のPerlコミュニティのご紹介 #lcs2015
東京近郊のPerlコミュニティのご紹介 #lcs2015
4月16日だからFoursquare 位置情報とライフログ
4月16日だからFoursquare 位置情報とライフログ
設定ファイルに使われそうなデータ形式
設定ファイルに使われそうなデータ形式
ライフログ、時系列メモ
ライフログ、時系列メモ
今に伝えるメールの技術 #yapcasia #yapcasiareject
今に伝えるメールの技術 #yapcasia #yapcasiareject
Recently uploaded
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
iPride Co., Ltd.
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
danielhu54
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
taisei2219
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
Toru Tamaki
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Toru Tamaki
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Yuma Ohgami
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
Toru Tamaki
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
Hiroki Ichikura
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
sugiuralab
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
Ryo Sasaki
Recently uploaded
(10)
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
クリップボード監視と外部コマンド実行 #chibapm
1.
クリップボード監視 と外部コマンド実行 尾形
鉄次 (OGATA Tetsuji) Twitter: @xtetsuji 2013/3/23 Chiba.pm#2 LT
2.
自己紹介 • 尾形 鉄次
(OGATA Tetsuji) • Twitter: @xtetsuji • Blog: http://post.tetsuji.jp/
3.
クリップボード監視 • 今回はMacの話 • Macでの正式名称は「ペーストボード」 •
クリップボードに変更があったら何か フックを仕掛けることができるか
4.
新ジャンルコピペ • 所定形式の文字列がコピーされたら、 自動的にどこかにペースト、もしくは
事前定義済みのコールバックを実行 • いわゆるクリップボード監視
5.
pbcopy / pbpaste •
Mac OS X 標準コマンド pbcopy / pbpaste • pbcopy: 標準入力をペーストボードへ • pbpaste: ペーストボードを標準出力へ • 詳しくは man 1 pbcopy、man 1 pbpaste
6.
外部コマンド呼び出しは
コストがかかる • 個人用途ではそれほど気にならないか もしれないけど外部コマンド呼び出し はコストがかかる • Perl では system()、piped open、そして ``, qx// (backtick) など
7.
外部コマンド呼び出しは
コストがかかる • ありがちな考え • 「load averageを監視して負荷が大き いときは処理を控えよう」 • my $uptime = `uptime`; ... • uptime外部コマンド自体の呼び出しの コストが無視できない
8.
`uptime`の代わり • CPANで「load average」で検索すると、
UNIX / Linux / *BSD それぞれで uptime 外部コマンドを使わずに load average を 取得できるモジュールが出てくるので それを使おう
9.
話を戻しまして…
10.
Mac::Pasteboard • use Mac::Pasteboard; •
pbpaste() と pbcopy() 関数をインポート • XS実装で外部コマンド呼び出しは無い • ただUTF-8マルチバイト文字列が化ける (要望どこに出せばいいんだろう)
11.
使い分け • とりあえずMac::Pasteboardのpbpaste()で 以前のクリップボード内容を監視し、
違いがあれば`pbpaste`で取り出す • 多数の呼び出しが発生する監視処理に だけMac::Pasteboardを使えばOKだろう
12.
ループ • while (1)
{ ... } • pboverve.pl & • 用途に応じて AnyEvent->timer(...) を使っ ても良いかも(個人的にwhileループは、 うっかりバグが多くて結構気を使う) • デーモン化が好きな人はApp::Daemon
13.
今回の事例 • STOT形式: Twitterの発言形式:
• xtetsuji: 今日はこれから飲む。久々の飲み会?かも。 [http://twitter.com/xtetsuji/status/ 314300949604749312] • こういう形式の文字列を捕捉したら、 自分のIRCチャンネルにメモする
14.
処理の流れ • Mac Twitterクライアント「夜フクロウ」 •
ツイートをSTOT形式でコピー • Perlで作った常駐プログラムがフック • IRCに書き込み(Ikachan的手法)
15.
他への応用 • STOT形式以外でも使えるかも • URL文字列をコピーしたら、SQLiteとか
で作った自分専用閲覧履歴辞書に格納 とか
16.
Mac以外では • Windowsではクリップボード内容をget/ setするコマンドはなさそう
• Win32::Clipboard • 原始的なX.org環境ではxsel/xclipとか? • きっとモジュールもあるはず
17.
コピペ繰り返す音 • 職場で響くリズミカルな音 • Windowsでコピー→ペーストを何回も •
こういう人を同じ手法で救えないかな • それ以前にVBAとか?
18.
ご清聴 ありがとうございました
Download now