2009年1月7日水曜日

[Mac OS X]: Macでスクリーンキャプチャの動画を作成する

ニコニコ動画などでデスクトップのキャプチャ動画が色々と上がっている.WindowsならDisplay2AVIなどのソフトがあり,AVIでキャプチャしたものをAVIUtilなどでH.264にエンコードしてアップロードするのが良さそう.この辺はニコニコ動画まとめWikiが詳しい
ではMac OS Xではどうすれば良いだろうか.

Mac OS Xで使えるデスクトップキャプチャ(スクリーンキャプチャ)のフリーソフトとして僕が使っているのはJingである.
画像のスクリーンショットやデスクトップの指定した領域の動画を録画できるソフトで,H.264での保存はできず,SWFでの保存のみだがWebにアップロードする場合はこちらの方が面倒が無くて良いと思う.15分でBlogを作るRailsのScreencastのような画面キャプチャ動画を作るのならこれで十分だろう.

インストールはJing Projectのページに行って右側にあるMac OS X用のDMGイメージを落として来ればOKで,起動すると画面右上(デュアルディスプレイ時はメイン側のディスプレイ)に常駐し,マウスを持って行くと拡大してメニューが現れる.

このメニューの左上にあるのがキャプチャ用のアイコンで,これをクリックするとキャプチャするエリアを指定する画面になる.全画面をキャプチャするわけではなく,画面の一部分のみをキャプチャできるので,見せたくない部分は見せないようにすることができる.

領域を指定すると,次は画像で保存するか,動画を録画するかを設定するメニューが出るので「Video」を選択すると,3秒後に録画が開始される.
この枠の中が録画されるので,後は好きなように作業を行い,最後に停止ボタンをクリックして保存先を指定すればSWFで保存される.Screencastとの連携もあるようだが,試してはいない.

全画面ではなく画面の一部だけを保存できるというのが個人的にはポイントが高い.後で切り出す必要が無いのでそのままアップロードも可能で,非常に簡単でお手軽である.

2009年1月6日火曜日

[PHP]: Mac OS X 10.5.6におけるPHPのデフォルトconfigureオプション

ふと気になったのでMac OS X 10.5.6(現行最新)環境でのPHPのconfigureオプションを調べてみた.
'--prefix=/usr'
'--mandir=/usr/share/man'
'--infodir=/usr/share/info'
'--disable-dependency-tracking'
'--with-apxs2=/usr/sbin/apxs'
'--with-ldap=/usr'
'--with-kerberos=/usr'
'--enable-cli'
'--with-zlib-dir=/usr'
'--enable-trans-sid'
'--with-xml'
'--enable-exif'
'--enable-ftp'
'--enable-mbstring'
'--enable-mbregex'
'--enable-dbx'
'--enable-sockets'
'--with-iodbc=/usr'
'--with-curl=/usr'
'--with-config-file-path=/etc'
'--sysconfdir=/private/etc'
'--with-mysql-sock=/var/mysql'
'--with-mysqli=/usr/bin/mysql_config'
'--with-mysql=/usr'
'--with-openssl'
'--with-xmlrpc'
'--with-xsl=/usr'
'--without-pear'
--with-xmlと--with-xslが標準で付いているのはSymfony使いの自分としてはありがたい.
--enable-socketsも付いているので,Perlの代わりにPHPを使う僕のようなPHPスクリプターにとっては助かる.
でも--without-pearなのは何でだろう?Apple側で管理できないパッケージは入れたくないということだろうか.まあ必要なら自分でライブラリを丸ごと持ってきた方が互換性問題に悩まされずに済むのでこれはこれでいいか.でもやっぱり不便.

ちなみにPHPのバージョンは5.2.6だった.
$ php -v
PHP 5.2.6 (cli) (built: Jul 17 2008 23:04:49)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies

2009年1月5日月曜日

[Mac OS X]: Macをアンプ付きスピーカーとして使う

デュアルディスプレイ環境で使っているBenQのディスプレイにはHDMI端子が付いているので,手持ちのゲーム機(XBox 360)を繋いで久々にゲームをしようとおもったら,手元にまともなスピーカーが無くて困ってしまった.
とりあえず,iMacの内蔵スピーカーから音を鳴らせないかと思い,iMacのライン入力にゲーム機からの出力をそのまま繋いでみた.つまりMacをスピーカーとして使うということだ.

・・・が,鳴らない.

どうやら,Mac OS Xではデフォルトではライン入力から内蔵スピーカーへモニタスルーできないらしい.
確かに,デフォルトで入力から出力にスルーしてしまうと,マイクを繋いだときにめちゃくちゃにハウリングしてしまう気がするので,OFFになるのは正常かなと思った.
でも,機能としては標準であるだろうと思い,ぐぐってみると,以下のサイトが見つかった.
the Surfside Stomp - WebMaster's Monologue -
こちらのサイトによると「アプリケーション->ユーティリティ->Audio MIDI設定」からスルーの設定ができるらしい.
というわけで開いてみた・・・が,上記のサイトの通りにやろうとしても,Thruのチェックボックスが無効化されていてONにすることができない.
どうやら,Mac OS Xのバージョンが変わったことにより,Thruできなくなったとか,そういうことらしい.
このままではどうしようもないので,さらに調べてみると,どうやらLineInというフリーソフトを使えばライン入力から内蔵スピーカーへのスルーを実現できそうだということが分かった.
Rogue Amoeba | Freebies: Free software for Mac OS X
このソフトをインストールして起動し,Inputを「Built-in Input: Line In」,Outputを「Built-in Output: Internal Speaker」に設定して「Pass Thru」ボタンをクリックすると,無事にライン入力に入力したサウンドを内蔵スピーカーから鳴らすことができた.

というわけで,部屋に多入力のアンプやミキサーが無い人は試してみるといいかも.

2009年1月4日日曜日

Subversionで22番ポート以外にsvnsshする方法

SSHサーバを22番ポートで運用していると,海外を中心にあちこちからブルートフォースアタックが飛んでくるため,/var/log/secureがひどいことになる
Jan 4 05:42:51 www sshd[26460]: Invalid user postgres from ::ffff:121.96.42.157
Jan 4 05:42:51 www sshd[26461]: input_userauth_request: invalid user postgres
Jan 4 05:42:51 www sshd[26460]: reverse mapping checking getaddrinfo for 121.96.42.157.bti.net.ph failed -
POSSIBLE BREAKIN ATTEMPT!
Jan 4 05:42:53 www sshd[26460]: Failed password for invalid user postgres from ::ffff:121.96.42.157 port 5
7258 ssh2
Jan 4 05:42:53 www sshd[26461]: Received disconnect from ::ffff:121.96.42.157: 11: Bye Bye
Jan 4 05:42:55 www sshd[26462]: Invalid user pilarova from ::ffff:121.96.42.157
Jan 4 05:42:55 www sshd[26463]: input_userauth_request: invalid user pilarova
Jan 4 05:42:55 www sshd[26462]: reverse mapping checking getaddrinfo for 121.96.42.157.bti.net.ph failed -
POSSIBLE BREAKIN ATTEMPT!
....
そのため,sshd自体を22番以外のポートで運用するという対策がある.CentOS,FedoraといったRedhat系Linuxでは/etc/sshd/sshd_configに
Port 222
としてやればいい(222番ポートの場合).

ただ,こうするとsubversionのサーバとして使っているサーバの場合,svnコマンドで「svn+ssh://〜〜」といった指定をしてもアクセスできなくなってしまう.これはsvnがsshは22番ポートで動作している事を前提としているからである.

これを回避するには,~/.subversion/configを開いて,[tunnel]というセクションがあるので,その後ろの行に
[tunnels]
p222=ssh -p222
という行を追加してやり「svn+ssh://〜〜」としていた部分を「svn+p222://〜〜」といった形に直してリポジトリにアクセスすれば良い.
後ろのsshオプション部分をいじってやれば,指定した公開鍵でログインといったこともできる(はず).

コンフィグファイルを編集せずに,コマンドラインオプションで設定する方法を探したのだが,見つからなかったので今はこんな形で対応している.

[Firefox Add-ons]: FirefoxでIriaっぽくページのリンク先をまとめてダウンロード

その昔,まだインターネット回線がISDNが主流だった頃,ダウンローダというソフトが流行った時期がある.古くはReGetからFlashGet,DCさくらなどなど,いろいろなダウンローダがあったのだが,その中で一部のユーザに支持されていたのがIriaというダウンローダだ(いまはIrvineという名前に変わっている).
こういったダウンローダの持つ機能としては,最低限以下のものが含まれる.
  • 所定のファイルのダウンロードを再開する(Resume)機能
  • 複数のファイルを登録しておき,順番にダウンロードしていく機能
  • ダウンロードのHTTPリクエストを投げる際のHTTPヘッダを細かく制御する機能
ここで,最後の機能についてよく分からない人向けに解説をすると,HTTPヘッダの中にはリンクを辿った元のページのURL(Referrer)や,接続元のブラウザやOS(User-Agent),Proxy使用の有無などのデータが含まれており,サイトによっては特定のリンクから辿ったときでないとファイルへのアクセスを許可していない時があるのだ.
たまにダウンロードURLをそのままブラウザに打ち込んでも弾かれる時などが上記の場合に相当する.
他にも,ダウンローダによっては,CSVで書いたURLリストを読み込ませたり,一つのファイルを多セッションで同時にダウンロードする分割ダウンロード機能や同時にダウンロードするファイル数を制限したりといった機能が搭載されている.

その中でも僕が特に愛用していたのは,Iriaに搭載されていた「ページの全てのURLをIriaに送る」機能である.この機能はどういう事かというと,そのページにある全てのリンク(aタグ)を解析し,そのリンク先URLを全てダウンロードリストとして登録するというものである.
これがどのような時に役に立つかというと,画像掲示板や多数の画像をまとめて公開しているサイトなどで,全部の画像をまとめてダウンロードする時に重宝する.
当然全てのリンクをそのままダウンロードしてしまうと,ページに存在するバナーや他のページへのリンクなど,無駄なものまで対象になってしまうので,実際にはファイル形式などでフィルタをかけて使う.

この機能に相当するソフトがMac OS X環境に移行してから見つかっていなかったのだが,半年ほど前くらいからDownThemAll!というAddonがあることを知って使っている.
このAddonをインストールすると,ページのどこかで右クリックした際に「DownThemAll!」という項目が追加される.

この項目を実行すると,ページを解析したURLリストと,どのURLをダウンロードするかを選択できる.

この中の「Filters」を設定することで,指定した拡張のみをダウンロードリストに含めることができる.これで指定したページの画像ファイルを一括ダウンロードするといったことが実現できる.

他にもAddonの設定などを見れば,色々と設定項目があるので,昔Iria/Irvineを使っていて今ダウンローダを使っていない人は試してみるといいかもしれない.