かもめの玉子おいしいです！	

おいしいですーーー！！！	

じゃなくて、	• 今日のこのブース、ナゾでしたよね	  • ナゾすぎて聞くに聞けずと言う方もいたのではないでしょうか	  • そんな方のための	  LTです	  Ejectコマンドユーザー会とは	  なんだったのか	

Ejectコマンドユーザー会	  あっきぃ	  h*p://eject.kokuda.org/	自己紹介	
• 「あっきぃ」ともうします	  • 来週24さいになります	  • 日本仮想化技術株式会社とか株式会社びぎ
ねっととかの中の人	  • 鉄道とサーバー大好き	  • 北海道生まれ、いまは横浜に在住	  – 親戚は母方も父方も気仙沼近辺在住	  • 一ノ関は法事の前泊で来て以来2年ぶり	  2年前	• 夜の一ノ関駅前を、買ったばかりのGPSロガー片手に徘徊	  • 登録したてのOSMに地図情報を投稿	  現在	• 結構埋まってて（その他修正されてて）感動	Ejectコマンドユーザー会とは	• リモートからejectコマンドを実行して、	  CD-­‐ROMドライブに何かをさせるユーザーの集まり	  • オワコンとなってしまったCD-­‐ROMドライブを再活用することが最初の目的	  • 1人のユーザーと、わりと多数のファンで構成	  CD-­‐ROMドライブに何をさせるのか	ハムスターのリモート給餌	• 旅行中、留守番してもらうハムスターにご飯を挙げる仕掛けをCD-­‐ROMドライブとejectコマン
ドと若干の小細工で実現	

エアコンリモート操作	• エアコンの電源ボタンを外出先から押すための仕組みをCD-­‐ROMドライブとejectコマンドで実現。Web側はphpで実装。	

AC電源リモート操作	
• スイッチを自作して、トレイにON/OFFさせることで、照明などを操作可能にする	  • (cronで)プログラムタイマーもできるので、	  防犯対策にも	  • クリスマスシーズン	  に最適（？）	  ユーザー会参加方法	
• h*p://eject.kokuda.org/	  – 「Ejectコマンド」でググっても出ます	  – 作例の紹介や過去のLT資料を公開しています	  • 参加資格	  – Ejectコマンドで何かやってるのを見るのが好きな人	  – Ejectコマンドで何かをやりたい人／やった人	  今日の展示はご覧になりました？	
• どうです、貴方もやってみたくなったでしょう？	  
• 1500円くらいあれば簡単に作れます！	

市販品でやるとどうなるか	• iRemoconを使用するとほとんど実現可能	  h*p://i-­‐remocon.com/	  • ただし24,800円	  ちょっとお高いですね…	  • でもEjectなら1500円です	  • オープンソース万歳	必要なもの	
• 自宅サーバー	  • CD-­‐ROMドライブ(¥100〜)	  – どんな古い物でもかまいません	  • IDE	  -­‐	  USB	  変換ケーブル(¥980〜)	  – ご家庭に眠っているものでもかまいません	  • (ACリモート操作をやる場合)スイッチ(¥200)	  – ホームセンターで買えます。電源ケーブルは100円ショップで調達すると良いです。	  

• phpスクリプト（このあと紹介）	

step1.	  設置	• CD-­‐ROMドライブを養生テープでしっかり固定して、電源とUSBを接続する。	  step2.	  権限設定	
• CD-­‐ROMドライブをApacheユーザーで操作できるようにする	  • セキュリティが緩くなるので注意する	  • /etc/groupを編集 (一部抜粋)	  cdrom:x:11:cdrom,apache	
apache:x:48:cdrom,apache	step3.スクリプト設置	
• わりとシンプルなPHPスクリプト	  – Ejectコマンドが実行できればどの言語でもOK	  • ページの装飾は各自にお任せ	  • ソースは次のスライドに	  – このスライドはユーザー会Webにも掲載します	  <?php	  session_start();	  if	  (isset($_POST['open']))	  {	  	  $ret	  =	  exec('/usr/sbin/eject	  -­‐T	  /dev/sr0');	  	  $ret	  =	  ($ret	  ==	  "")	  ?	  "Success."	  :	  "Failure.";	  	  $_SESSION['result']	  =	  ’<div	  id="result”>Open	  '	  .	  $result	  .	  '</div>';	  	  header('LocaNon:./');	  	  exit();	  }	  ?>	  <html><head><meta	  charset="uR-­‐8”><Ntle>Web	  Eject</Ntle></head><body>	  	  	  <h1>Web	  Eject	  Bu[on</h1>	  <?php	  if	  (isset($_SESSION['result']))	  {	  	  print	  $_SESSION['result'];	  	  $_SESSION['result']	  =	  '';	  }	  ?>	  	  <form	  acNon="./"	  method="post"	  id="aircon">	  	  	  <input	  type="submit"	  name="open"	  value="Ejectする"	  />	  	  </form>	  </body></html>	

肝	exec('/usr/sbin/eject	  -­‐T	  /dev/sr0');	
• すべてはココ！	  
• ejectコマンドの	  –T	  オプションを必ず付ける	  • sr0の部分は必要に応じて変更	  • トレイの「出す」「入れる」を交互にやってくれるオプション	へー（棒）	

step4.	  実行	
• 先ほどのURLにアクセスして、ボタンをおす	  • Ejectされたら大成功	  • 動かない場合はSELinuxが悪いことが多い	  – SELinuxをどうにかする（できるひとだけ）	  – SELinuxを無効にする（私の場合）	  • もしかしたらパスが違うかもしれない	  – /dev/sr0〜nを試すなどする	  自宅サーバーなんてない	• そんな方のために、Raspberry	  Pi(ラズベリーパイ)	  – h*p://raspberrypi.org/	  • 安価(¥3kくらいらしい)なARMボードで、PCぽく使える、らしい。きっと省電力に違いない	  • ぼちぼち出荷されてくる模様	  • Ejectコマンドユーザー会でも入手でき次第検証予定！	  
– ソリューションパッケージ化できたらステキやん	  ここから先は貴方次第	• 貴方のアイデアでいろんなことをEjectで出来るようにしてください	  • 「エアコンリモート操作」は特にオススメです。私も愛用しています（ﾄﾞｬｧ・・・	  • 何か作品ができたらぜひ後悔公開してください！！	  
• Ejectコマンドの可能性は無限大	  URLをもういっかい	• Ejectコマンドユーザー会URL	  –h*p://eject.kokuda.org/	  • 作例豊富です！	  おわり