Macで使える便利モジュール #hachiojipm

850 views

Published on

2014/5/17に行われた Hachioji.pm#40 で発表したLTのスライドです。

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
850
On SlideShare
0
From Embeds
0
Number of Embeds
21
Actions
Shares
0
Downloads
2
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Macで使える便利モジュール #hachiojipm

  1. 1. Macで使える便利モジュール OGATA Tetsuji (@xtetsuji) 2014/05/17 Hachioji.pm#40
  2. 2. 自己紹介 • 尾形 鉄次 (OGATA Tetsuji) • Twitter: @xtetsuji • Blog: http://post.tetsuji.jp/
  3. 3. ウェブエンジニアのMac率 • Windows、Mac、Linuxとあるが、ウェブエンジニアの Mac率の高さはすごい • @__papix__ 校長も今年度からMacユーザになった • その他、iPhone効果かMacへ移る人が増えている印象 • Mac限定の便利モジュールでも結構多く使えてもらえそ うな時代になった
  4. 4. Perlの Cocoa:: 名前空間 • Perlモジュールには Mac:: 名前空間のMac専用モジュー ル群があるものの、ポストCarbonである最近のMacの Cocoaフレームワークから取った Cocoa:: 名前空間以下 に面白いモジュールが最近多い印象 • それらを紹介していきます • 実際に使っているユースケースも紹介 • 詳細は後日ブログに書きます
  5. 5. Cocoa:: 名前空間の重要人物 • typesterさん • akiymさん • 他にもいるかもしれない • 自分もCocoa XSに興味あるから重要人物になりたい
  6. 6. とりあえず思いつくの列挙 • Cocoa::Growl (by typester) • Cocoa::BatteryInfo (by typester) • Cocoa::EventLoop (by typester) • Cocoa::NetworkChange (by akiym)
  7. 7. 電源ライフハック • Cocoa::BatteryInfo 便利だけど、先日はそれを知らずに pmset コマンドをbacktickで叩くやり方をしてしまった • MacBookやLinuxノートパソコンのバッテリー残量をウォッチして ImKayacでiPhoneに通知を送るPerlプログラムを作ったら地味に便利 だった: http://post.tetsuji.jp/2014/04/useful-battery-watchd-by- perl/ • Cocoa::BatteryInfo モジュールだと、時間経過や低電源 時に簡単にフックを書くことができる
  8. 8. Cocoa::Growl • 通知センター登場後も、Growl便利だし好き • Growl::Anyというモジュールがあって、Macの場合は Mac::Growlを優先するけど、Mac::Growlは往々にして 動かない事が多くて環境変数設定したりうざったかった • 最近はCocoa::Growl決め打ちで書くのが好き • WindowsやLinuxでGrowl使っている人極小数だろうし
  9. 9. Cocoa::NetworkChange • akiymさんがtypesterさんの影響を受けて(?)Cocoa XSを 習得して、色々面白いものを作ってくれている • Cocoa::NetworkChange はネットワーク変更を検知して コールバックが書ける • コールバックはネットワークインターフェースやSSIDを 取得できるので、それで好きにやる
  10. 10. Cocoa::NetworkChange活用 • mac-wland ってプログラムを書いて、バックグラウンド でいつも起動している • 自宅のSSIDに接続したら、自宅のWindowsマシンに Wake-on-LANパケットを投げる • 任意のSSIDに起動したら、autosshプロセスにHUPを投 げて再接続を促す • …とか色々便利
  11. 11. もっとCocoa::NetworkChange • 最近は認証付きフリーWi-Fiが多いので、そういうSSID に接続したら勝手にMechでフォーム認証とかできると いいと考えているけど、使用頻度少ないので未着手 • 会社のSSIDの接続監視もできるので、退勤は難しいけど 出勤記録は取れる? • IFTTTってサービスのAndroidアプリにWi-Fiレシピがで きたので、それで自動勤怠管理みたいなことできます
  12. 12. Cocoa::EventLoop • Cocoa:: 系モジュールはtypester worldだし、それを使っ てしまったらCocoa worldが当然なので、非同期処理に はAnyEventよりもCocoa::EventLoopを使うことが多い • 先ほどの mac-wland でも、autosshへHUPを送る回数 をCocoa::EventLoopで制御している • Cocoa::EventLoopのインターフェースはAnyEventとだ いたい同じなので省略
  13. 13. AnyEvent::Mac::Pasteboard • Mac::Pasteboardモジュールを利用して、ペーストボー ドの変更をポーリングで監視する拙作CPANモジュール • Mac::Pasteboardの作者とやりとりしたけど、マルチバ イト文字列の文字化けの件でうまくやりとりできず • というわけで、中は結構バッドハックになっている • というかCocoa::Pasteboardみたいなの書きたい
  14. 14. まとめ • Macに特化したプログラムを書くのにCocoa名前空間の モジュールは有効 • Cocoa XSのノウハウが出まわって欲しい • コードの詳細とかはブログ書く予定なので見てください • 声かけてくだされば可能な範囲でシェアします
  15. 15. おしまい

×