<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-6098909500241786793</id><updated>2012-02-17T08:50:06.890+09:00</updated><category term='linux'/><category term='ffmpeg'/><category term='iphone'/><category term='osx'/><category term='plagger'/><category term='tips'/><title type='text'>den9's blog</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://den9blog.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://den9blog.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>den9</name><uri>http://www.blogger.com/profile/12404308067017135088</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ijtlsEJnBi8/SnAOHkkMgdI/AAAAAAAAAus/AWAOt__Klag/s1600-R/IMG_0933_2.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>4</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-6098909500241786793.post-6247549014576459852</id><published>2010-05-13T00:51:00.003+09:00</published><updated>2010-05-13T01:23:54.077+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='linux'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><title type='text'>Sony TypeP (VGN-P70H) / Ubuntu 10.04LTS インストール覚書</title><content type='html'>&lt;h2&gt;インストール用USBイメージの作成&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;多分、ISOとddで作れるけど、手軽に。&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://unetbootin.sourceforge.net/"&gt;Unetbootin&lt;/a&gt;をダウンロード&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Unetbootinで、Ubuntu 10.04 ISOイメージを選択して、USBメモリに展開&lt;/li&gt;&lt;br /&gt;&lt;li&gt;TypePをUSBブート&lt;/li&gt;&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;ディスプレイドライバの設定&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="https://wiki.ubuntu.com/HardwareSupportComponentsVideoCardsPoulsbo"&gt;HardwareSupportComponentsVideoCardsPoulsbo&lt;/a&gt;の指示に従う。&lt;br /&gt;&lt;br /&gt;具体的には、&lt;a href="http://code.google.com/p/gma500/wiki/InstallScript"&gt;ここ&lt;/a&gt;のスクリプトを使わせていただく。以下を端末上で実行。aptは前準備。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ sudo apt-get install dkms fakeroot build-essential&lt;br /&gt;$ wget http://dl.dropbox.com/u/1338581/Gma500/scripts/poulsbo_lucid.sh &amp;&amp; bash ./poulsbo_lucid.sh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;これで運が良ければそのまま動くけど、メモリマップの関係で使用メモリに制限をかけないと動けない場合がある。&lt;br /&gt;その場合は、PC起動時にshift を押しっぱなしにして、grub2のメニューを呼び出して、RecoveryモードでOSを起動する。&lt;br /&gt;&lt;br /&gt;その後、/etc/default/grubの　GRUB_CMDLINE_LINUX_DEFAULT　を以下のようにする。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;GRUB_CMDLINE_LINUX_DEFAULT="quiet splash mem=2000mb"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;この場合、2000mbにしているけど、正確にはメモリマップを確認してユーザーが使用可能な領域サイズを指定する。&lt;br /&gt;一番お手軽な方法は、/proc/mtrr を見てMemoryTypeRangeRegisterを見るとか。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;$ cat /proc/mtrr&lt;br /&gt;reg01: base=0x00000000 (    0MB), size= 2048MB, count=1: write-back&lt;br /&gt;reg02: base=0x07f80000 ( 2048MB), size=    8MB, count=1: uncachable&lt;br /&gt;(以下略)&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;uncachableな領域は、MMIO レジスタ領域なのでユーザー領域としては使えない。write-backな前半のreg01が使える領域になる。ただし、前半10MB程度はBIOS、ACPI BIOSが使うのでそこも使えないから、2048MBから10MBとか引く（メモリマップを見れば、どのくらい引くかわかります）。&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;内蔵マイクを使えるようにする&lt;/h2&gt;&lt;br /&gt;&lt;br /&gt;そのままでは、何故か内蔵マイクは有効にならない(alsa上にはそれっぽく見えるけど、音が拾えない）。&lt;br /&gt;こちらに参考情報あり。&lt;br /&gt;&lt;br /&gt;&lt;a href="http://ubuntuforums.org/showthread.php?t=1255139"&gt;[ubuntu] Microphone not working on VAIO VGN-SR19VN - Ubuntu Forums&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;alsaの設定ファイル /etc/modprobe.d/alsa-base.conf に以下を追記すると、何故かマイクが使えるようになります。&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;options snd-hda-intel model=toshiba-s06&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;非常に気持ち悪い対処方法ですが....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6098909500241786793-6247549014576459852?l=den9blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://den9blog.blogspot.com/feeds/6247549014576459852/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://den9blog.blogspot.com/2010/05/sony-typep-vgn-p70h-ubuntu-1004lts.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/6247549014576459852'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/6247549014576459852'/><link rel='alternate' type='text/html' href='http://den9blog.blogspot.com/2010/05/sony-typep-vgn-p70h-ubuntu-1004lts.html' title='Sony TypeP (VGN-P70H) / Ubuntu 10.04LTS インストール覚書'/><author><name>den9</name><uri>http://www.blogger.com/profile/12404308067017135088</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ijtlsEJnBi8/SnAOHkkMgdI/AAAAAAAAAus/AWAOt__Klag/s1600-R/IMG_0933_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6098909500241786793.post-4392934944204573294</id><published>2009-10-16T00:53:00.004+09:00</published><updated>2009-10-16T01:27:16.245+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ffmpeg'/><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='plagger'/><category scheme='http://www.blogger.com/atom/ns#' term='osx'/><title type='text'>Plagger / ニコ動をlibx264でエンコ(プリセット使用)</title><content type='html'>Plaggerでニコニコ動画のplaylistをひっぱってきて、iTunesまで登録する、という事をやっていたのだけれども、h.264を指定していたつもりが、mp4に変換されてしまっていた。Plagger::Plugin::Filter::FFmpegがどうも原因のような気がしてきた。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[現象]&lt;/b&gt;&lt;/div&gt;&lt;div&gt;yamlの module: Filter::FFmpeg内の config:で、video_codec: libx264 を指定しても、mp4で変換されてしまう。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;[原因]&lt;/b&gt;&lt;/div&gt;&lt;div&gt;FFmpeg.pm 内で device: を指定しない場合、無条件に device: ipod を指定した事になる為。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;device: ipod は、mp4で変換するプリセットになるので、deviceを指定しないと、自動的にmp4で変換されてしまう。deviceに ipod / psp 以外を指定すると、hashエラーになる。なので、とりあえず、plagger/lib/Plagger/Plugin/Filter/FFmpeg.pm を以下のように変更。&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;--- plagger/lib/Plagger/Plugin/Filter/FFmpeg.pm.orig 2007-10-30 15:01:02.000000000 +0900&lt;br /&gt;+++ plagger/lib/Plagger/Plugin/Filter/FFmpeg.pm 2009-10-15 05:12:25.000000000 +0900&lt;br /&gt;@@ -51,7 +51,7 @@&lt;br /&gt;        my $output_file = File::Spec-&gt;catfile($self-&gt;conf-&gt;{dir}, "$file");&lt;br /&gt;        my $output_options = {&lt;br /&gt;            file    =&gt; $self-&gt;convert($output_file),&lt;br /&gt;-            device  =&gt; $self-&gt;conf-&gt;{device} || 'ipod',&lt;br /&gt;+            device  =&gt; $self-&gt;conf-&gt;{device},&lt;br /&gt;            title   =&gt; $self-&gt;convert($entry-&gt;title),&lt;br /&gt;            author  =&gt; $self-&gt;convert($entry-&gt;author),&lt;br /&gt;            comment =&gt; $self-&gt;convert($entry-&gt;summary),&lt;br /&gt;&lt;/pre&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;本題。&lt;/div&gt;&lt;div&gt;最近のffmpeg で libx264 でエンコードする場合、プリセットが用意されているのであまり考えなくても高画質にh.264に変換してくれる(拘る人は拘りそうだ...)&lt;/div&gt;&lt;div&gt;現時点で私が使っているのは macports 最新の version 0.5&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;こちらの&lt;a href="http://shellbt.wordpress.com/2009/09/02/ipod-video-encoding-guide/"&gt; iPod Video Encoding Guide&lt;/a&gt; を参考に、-vpre を使った変換用yamlは以下みたいな感じに。&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;global:&lt;br /&gt;  plugin_path:&lt;br /&gt;    - /Plagger/Plugin/Path&lt;br /&gt;  log:&lt;br /&gt;    level: debug&lt;br /&gt;&lt;br /&gt;plugins:&lt;br /&gt;&lt;br /&gt;  - module: Subscription::Config&lt;br /&gt;    config:&lt;br /&gt;      feed:&lt;br /&gt;          - url: http://www.nicovideo.jp/mylist/_YOURID_?rss=atom&lt;br /&gt;          &lt;br /&gt;  - module: Filter::FetchNicoVideo&lt;br /&gt;    config:&lt;br /&gt;      mail: _YOURMAIL@ADDRESS_&lt;br /&gt;      password: _YOUROUTPUT_&lt;br /&gt;      dir: /output/path&lt;br /&gt;      id_as_filename: 1&lt;br /&gt;&lt;br /&gt;  - module: Filter::FLVInfo&lt;br /&gt;    rule:&lt;br /&gt;      expression: $args-&gt;{entry}-&gt;enclosure-&gt;type eq 'video/x-flv'&lt;br /&gt;      expression: "not -e File::Spec-&gt;catfile('/output/path', $args-&gt;{entry}-&gt;enclosure-&gt;filename . '.mp4')"&lt;br /&gt;&lt;br /&gt;  - module: Filter::FFmpeg&lt;br /&gt;    config:&lt;br /&gt;      command: /opt/local/bin/ffmpeg&lt;br /&gt;      ext: m4v&lt;br /&gt;      dir: /output/path&lt;br /&gt;      encoding: utf8&lt;br /&gt;      options:&lt;br /&gt;        format:              ipod&lt;br /&gt;        video_codec:         libx264&lt;br /&gt;        audio_codec:         libfaac&lt;br /&gt;        audio_sampling_rate: 44100&lt;br /&gt;        audio_bit_rate:      128k&lt;br /&gt;      extra_options: -vpre libx264-hq -vpre libx264-ipod320 -threads 0&lt;br /&gt;      &lt;br /&gt;&lt;br /&gt;  - module: Filter::RewriteEnclosureURL&lt;br /&gt;    config:&lt;br /&gt;      rewrite:&lt;br /&gt;        - local: /output/path&lt;br /&gt;          url: http://_YOURWEBSERVER_&lt;br /&gt;&lt;br /&gt;  - module: Publish::Feed&lt;br /&gt;    config:&lt;br /&gt;      format: RSS&lt;br /&gt;      dir: /output/path&lt;br /&gt;      filename: nicopla.xml&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;/output/pathや_HOGEHOGE_は便宜書き換えてくだはい。&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6098909500241786793-4392934944204573294?l=den9blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://den9blog.blogspot.com/feeds/4392934944204573294/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://den9blog.blogspot.com/2009/10/plagger-libx264.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/4392934944204573294'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/4392934944204573294'/><link rel='alternate' type='text/html' href='http://den9blog.blogspot.com/2009/10/plagger-libx264.html' title='Plagger / ニコ動をlibx264でエンコ(プリセット使用)'/><author><name>den9</name><uri>http://www.blogger.com/profile/12404308067017135088</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ijtlsEJnBi8/SnAOHkkMgdI/AAAAAAAAAus/AWAOt__Klag/s1600-R/IMG_0933_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6098909500241786793.post-3690758128454939460</id><published>2009-07-29T18:44:00.007+09:00</published><updated>2010-05-13T12:14:24.882+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Prowl / iPhone に C#でPush する</title><content type='html'>Prowlサーバーに対してのメッセージ通知は、実際のところ httpのPOST/GETで通信します。なので、Prowlサーバーに対して、適切にデータを投げれば簡単にPush通知が実現できます。&lt;div&gt;以下は C# / .Net での送信例です。エラー処理をちゃんとしてないので注意。&lt;br /&gt;&lt;div&gt;&lt;pre&gt;&lt;br /&gt;using System;&lt;br /&gt;using System.Collections.Generic;&lt;br /&gt;using System.Text;&lt;br /&gt;using System.Web;&lt;br /&gt;using System.Net;&lt;br /&gt;using System.Collections.Specialized;&lt;br /&gt;&lt;br /&gt;namespace ProwlTest&lt;br /&gt;{&lt;br /&gt;class Program&lt;br /&gt;{&lt;br /&gt;static void Main(string[] args)&lt;br /&gt;{&lt;br /&gt;Encoding enc = Encoding.UTF8;&lt;br /&gt;string url = "https://prowl.weks.net/publicapi/";&lt;br /&gt;&lt;br /&gt;try&lt;br /&gt;{&lt;br /&gt;   WebClient wc = new WebClient();&lt;br /&gt;   NameValueCollection nvc = new NameValueCollection();&lt;br /&gt;   wc.Headers.Add("User-Agent",&lt;br /&gt;     "Mozilla/4.0 (compatible; MSIE 6.0; Windows XP)");&lt;br /&gt;&lt;br /&gt;   // API Key の設定&lt;br /&gt;   nvc.Add("apikey", "ここに40文字のAPI Keyを記述");&lt;br /&gt;&lt;br /&gt;   wc.QueryString = nvc;&lt;br /&gt;&lt;br /&gt;   // API Key が有効か確認&lt;br /&gt;   byte[] resData = wc.DownloadData(url + "verify");&lt;br /&gt;&lt;br /&gt;   // 結果がXML形式で返ってきます&lt;br /&gt;   string resText = enc.GetString(resData);&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(resText);&lt;br /&gt;&lt;br /&gt;   /* !! ここで返ってきた結果を見てエラー処理すべき !! */&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;   // 実際のメッセージ投稿&lt;br /&gt;   // 各データは文字長が決まってるので注意&lt;br /&gt;&lt;br /&gt;   // priority: An integer value ranging [-2, 2]: Very Low, Moderate, Normal, High, Emergency.&lt;br /&gt;   nvc.Add("priority", "0");&lt;br /&gt;&lt;br /&gt;   // application [256]:The name of your application or the application generating the event.&lt;br /&gt;   nvc.Add("application", HttpUtility.UrlEncode("アプリケーション名", enc));&lt;br /&gt;&lt;br /&gt;   // event [1024]:The name of the event or subject of the event.&lt;br /&gt;   nvc.Add("event", "notify");&lt;br /&gt;&lt;br /&gt;   // description [10000]: A description of the event, generally terse.&lt;br /&gt;   nvc.Add("description", HttpUtility.UrlEncode("日本語メッセージはUTF8をUrlエンコードしてやれば通ります。" +&lt;br /&gt;                                               "URLも記述すると、勝手にリンクをはってくれます。" +&lt;br /&gt;                                               "http://prowl.weks.net/", enc));&lt;br /&gt;&lt;br /&gt;   wc.QueryString = nvc;&lt;br /&gt;   resData = wc.DownloadData(url + "add");&lt;br /&gt;   resText = enc.GetString(resData);&lt;br /&gt;&lt;br /&gt;   Console.WriteLine(resText);&lt;br /&gt;}&lt;br /&gt;catch (Exception err)&lt;br /&gt;{&lt;br /&gt;   Console.WriteLine(err.Message);&lt;br /&gt;}&lt;br /&gt;finally{&lt;br /&gt;   wc.Dispose();&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/pre&gt;&lt;br /&gt;Prowlサーバーからの結果は、XML形式で返ってきます。&lt;/div&gt;&lt;div&gt;詳細は、&lt;a href="http://prowl.weks.net/api.php"&gt;API Return format&lt;/a&gt; を参照の事。&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6098909500241786793-3690758128454939460?l=den9blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://den9blog.blogspot.com/feeds/3690758128454939460/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://den9blog.blogspot.com/2009/07/prowl-cpush.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/3690758128454939460'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/3690758128454939460'/><link rel='alternate' type='text/html' href='http://den9blog.blogspot.com/2009/07/prowl-cpush.html' title='Prowl / iPhone に C#でPush する'/><author><name>den9</name><uri>http://www.blogger.com/profile/12404308067017135088</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ijtlsEJnBi8/SnAOHkkMgdI/AAAAAAAAAus/AWAOt__Klag/s1600-R/IMG_0933_2.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-6098909500241786793.post-168517452519630298</id><published>2009-07-29T17:54:00.012+09:00</published><updated>2009-07-29T20:49:46.130+09:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tips'/><category scheme='http://www.blogger.com/atom/ns#' term='iphone'/><title type='text'>Prowl / iPhone に PerlでPush する</title><content type='html'>&lt;blockquote&gt;&lt;/blockquote&gt;iPhoneにProwlを導入してみた。&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewSoftware?id=320876271&amp;amp;mt=8"&gt;Prowl : Growl Client (iTunes Store)&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;a href="http://growl.info/"&gt;Growl&lt;/a&gt;という OSXでは結構お馴染みのポップアップ通知アプリケーションの仕組みがあって、Growlに対応したアプリケーションは共通の通知領域に、色々なお知らせ情報を表示する事ができます。例えばメッセンジャーでのメッセージや、iTunesの曲変更情報、などなど。&lt;/div&gt;&lt;div&gt;最近では、&lt;a href="http://growlforwindows.com/"&gt;Windows版&lt;/a&gt;もあります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Growl自体にはネットワーク越しにメッセージを通知しあったり、フォワードする機能があって、他のマシンでの情報を、もうひとつ別のマシン上にポップアップするとか、できる訳ですね。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Prowlはその仕組みにのっかって、メッセージをiPhoneにフォワードして、Push通知をやろうとするアプリケーション。動作としては、&lt;/div&gt;&lt;div&gt;Growl(送信側) → Prowlサーバー → iPhone&lt;/div&gt;&lt;div&gt;という流れになるんだけど、実際のところ&lt;a href="http://prowl.weks.net/"&gt; Prowlサーバー&lt;/a&gt;自体は Web経由でもアクセスできるし、ProwlサーバーのAPIも公開されてるので、Growlがなくても正しい手順を踏めば、iPhoneに対するPush通知が可能になる。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;つまり、汎用的な Push通信手段として利用できる訳です。&lt;/div&gt;&lt;div&gt;という訳で、PerlとC#から ProwlをつかってPush通知する方法。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;前準備&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;ProwlサーバーのAPIを使うには、Prowlにレジストした後にAPI Keyを取得する必要があります。&lt;/div&gt;&lt;div&gt;取得方法は、&lt;a href="http://prowl.weks.net/settings.php"&gt;Settings&lt;/a&gt; のページで generate key ボタンで生成するだけです。&lt;/div&gt;&lt;div&gt;40文字のランダムな文字列が取得できると思いますが、それがAPI Keyになります。&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:large;"&gt;&lt;b&gt;perl&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;perlでは、CPANに &lt;a href="http://github.com/sekimura/WebService-Prowl/tree/master"&gt;WebService::Prowl &lt;/a&gt;というモジュールがあるので、これで簡単に使えます。メンテナは日本の方ですね。&lt;/div&gt;&lt;div&gt;使い方はサンプルそのままですが、以下のような感じです。&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;#!/usr/bin/perl&lt;br /&gt;&lt;br /&gt;use WebService::Prowl;&lt;br /&gt;&lt;br /&gt;my $apikey = "ここに取得した40文字のAPI Keyを記述";&lt;br /&gt;&lt;br /&gt;my $ws = WebService::Prowl‐&gt;new(apikey =&gt; $apikey);&lt;br /&gt;$ws‐&gt;verify ⎪⎪ die $ws‐&gt;error();&lt;br /&gt;$ws‐&gt;add(application =&gt; "Sample App",&lt;br /&gt;        event       =&gt; "notify",&lt;br /&gt;        description =&gt; "This is sample notification.");&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/6098909500241786793-168517452519630298?l=den9blog.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://den9blog.blogspot.com/feeds/168517452519630298/comments/default' title='コメントの投稿'/><link rel='replies' type='text/html' href='http://den9blog.blogspot.com/2009/07/prowl-perlcpush.html#comment-form' title='0 件のコメント'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/168517452519630298'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/6098909500241786793/posts/default/168517452519630298'/><link rel='alternate' type='text/html' href='http://den9blog.blogspot.com/2009/07/prowl-perlcpush.html' title='Prowl / iPhone に PerlでPush する'/><author><name>den9</name><uri>http://www.blogger.com/profile/12404308067017135088</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://1.bp.blogspot.com/_ijtlsEJnBi8/SnAOHkkMgdI/AAAAAAAAAus/AWAOt__Klag/s1600-R/IMG_0933_2.JPG'/></author><thr:total>0</thr:total></entry></feed>
