AirPrintのご紹介

遊び(といっても職業柄)で AirPrint を使うことがあったので、メモがてら AirPrint の紹介をしてみます。

AirPrint とは

AirPrint http://www.apple.com/jp/iphone/features/airprint.html とは、iPhone/iPad (iOS) からワイヤレスで印刷する仕組みです。Wi-Fi通信圏内にある対応機種を自動検出し、ユーザが機種を選択するだけで印刷を開始できます。iOS側でドライバを用意する必要のない、ドライバレス印刷の仕組みです。

AirPrint

使い方

AirPrint 対応のプリンタと iPhone/iPad を同じWi-Fiネットワークにつなぎ、Safariやメール、写真などの対応アプリで矢印ボタンをタッチし、現れたメニューで「プリント」を選択します。

詳しくはこちら http://news.mynavi.jp/articles/2010/11/25/ios42_3/index.html

AirPrint 対応のプリンタがない場合でも、AirPrint Activator と呼ばれるソフトウェアを Windows/Mac にインストールし、接続されているプリンタを共有することで、Windows/Mac を踏み台にした AirPrint が可能性です。筆者の自宅ではこれを利用しています。

http://www.apple.com/jp/iphone/features/airprint.html

仕組み

特に、プリンタドライバを作っている方や、iOSアプリを作っている方がたは、ちょっと気になると思うので、かんたんに仕組みを解説。

  • 対応しているファイル形式は、TXT、HTML、画像、PDF (いわゆるウェブ) です。
  • 画像、PDFの場合は、ファイルデータをプリンタに渡すと、プリンタが印刷可能なファイル形式にレンダリングしつつ、印刷してくれるようです。
  • TXT、HTML の場合は iOS 上でレンダリングしたものを、プリンタに渡して印刷してもらっているようです。
  • ※ あまり、詳細な仕様が公開されていないので間違っているかもしれません。

参考: http://ylb.jp/iOSDev/AirPrint/AirPrintPublic.pdf

まとめ

iPhone/iPad から直接印刷できる AirPrint はなかなか便利ですね。

Sphinxの紹介

ちまたで人気の Sphinx を試してみたので紹介してみます。

Sphinxとは

Pythonベースで記述されているドキュメンテーションツール。

Wikiのような文法(reStructuredTextという文法)を用いて文章を記述し、

HTMLやLaTexで吐き出すことができる。

プラグインがいろいろ作られていて、たとえば blockdiag プラグインなんかを使うとブロック図を生成したり、コードハイライトしてくれたりするらしい。テンプレート変えたりも当然できるみたい。

Sphinxインストール

python,easy_install,sphinx@RedHat系Linux

 sudo yum -y install python
 sudo yum -y install python-setuptools
 sudo easy_install sphinx

Sphinxプロジェクトの生成

 mkdir -p borabora/docs
 cd borabora/docs
 sphinx-quickstart

とりあえず Enter を連打。プロジェクト名とバージョン番号と著者名を記入。

reStructureTextによるドキュメント記述

http://sphinx-users.jp/doc10/rest.html

ビルド

 make html

api.rst -> _build/html/api.html

他にも

 make latex
 make latexpdf
 make epub

所感

PukiWikiやTracのWikiと違って、コマンドでビルドできるのがうれしい。のかな?

http://www.slideshare.net/shimizukawa/sphinx-6084667 を参考にしました。

chef-clientをcapistranoで動かそう

困りごと

いつもの手順

  1. chef-serverで対象マシン(ノード)用のレシピ/ロールを更新
  2. 対象マシンに ssh でログイン
  3. chef-client を実行

→ めんどい!複数マシンが対象だったらさらにめんどい!

解決方法

  1. chef-client をデーモンとして実行(一定時間毎に chef-client が chef-server にポーリング)
  2. シェルスクリプトを書いて、chef-client をリモート実行
  3. capistrano で、chef-client をリモート実行。複数マシンまとめて更新もできるかも。この記事

やり方

ChefServer@IBMクラウドで実験。

capistranoのインストール

 gem install capistrano

sshの設定。鍵も置く。.ssh/config

 Host hoge
 Hostname hoge.dyndns-server.com
 User idcuser
 identityFile ~/.ssh/hoge.rsa

/opt/chef-repo/deploy.rb # sudo su - -c でイケる[2] というのを見つけるのに苦労した

 role :chef_client, "hoge"

 task :chef_client, :roles => [:chef_client] do
   run "sudo su - -c 'chef-client -c /root/.chef/knife.rb'"
 end

実行

 cd /opt/chef-repo
 cap -f deploy.b chef_client

参考サイト

A Ruby and Fluentd committer working at DeNA. 記事本文および記事中のコード片は引用および特記あるものを除いてすべて修正BSDライセンスとします。 #ruby #fluentd #growthforecast #haikanko #yohoushi #specinfra #serverspec #focuslight
はてぶ人気エントリー

Google