<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
   <channel>
      <title>blog@browncat.org</title>
      <link>http://blog.browncat.org/</link>
      <description>Web, Linux, Ubuntu, Mac, PDA, 携帯電話, プログラミング, ソフトウェア＆落書き
</description>
      <language>ja</language>
      <copyright>Copyright 2012</copyright>
      <lastBuildDate>Sat, 29 Sep 2012 16:39:02 +0900</lastBuildDate>
      <generator>http://www.sixapart.com/movabletype/</generator>
      <docs>http://blogs.law.harvard.edu/tech/rss</docs> 

            <item>
         <title>Google Nexus7を買ったのだが...</title>
         <description><![CDATA[<p>
先日発売されたGoogle Nexus7をオンラインで購入したのだが、平日昼間に配送してきて受け取れず＆宅配ボックス対応してくれない。速攻で再配達を頼んでついさっき配送に来たのだが、たまたま間が悪くインターホンに出れずに受け取れず。再々配達になってしまった。
</p>
<p>
今日はこちらも出れなかったので多少悪いところはあるものの、一人暮らしや共働きなどで宅配待っていられる人間なんて今時少ないのに、この対応はどういうこった。なんのための宅配ボックスなんだよ。なんのために再配達時に電話番号伝えたんだよ。<strong>通販やるならAmazon見習えGoogle！</strong>
</p>
<p>
ムカムカモヤモヤするので書かずにはおれません。二度とGoogleでは通販で買うまいと心に決めた一件でした。
</p>
<p>
# 再々配達はFedexが伝えてきた時間より非常に早くっていうか速攻で行われ一応無事入手できました。さすが西武運輸。これから開封します。
</p>
]]></description>
         <link>http://blog.browncat.org/2012/09/google_nexus7_delivary.html</link>
         <guid>http://blog.browncat.org/2012/09/google_nexus7_delivary.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Android</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">google</category>
        
         <pubDate>Sat, 29 Sep 2012 16:39:02 +0900</pubDate>
      </item>
            <item>
         <title>Softbank SelectionのAAC対応BTオーディオアダプタMusicPiece買ってみた</title>
         <description><![CDATA[<p>
先日Softbank Selectionから発売になったBluetoothオーディオアダプタ(ヘッドセット)のMusic Piece (SB-BT08-SHLD)というのを買ってみました。ソフトバンクというので一抹の不安は感じつつAAC対応というので衝動買いです笑&nbsp;
</p>
<p>
これまではiPod Nano直をメインで使っていてたまにJabra Clipperを使うという感じでした。ヘッドフォンはEtymotic Reserch HF5もしくはKlipch X5を愛用です。Clipperとの比較なります。
</p>
<ul>
	<li>amazon&nbsp;&nbsp;&nbsp;&nbsp;<a href="http://www.amazon.co.jp/gp/product/B008MU2MB0/ref=as_li_qf_sp_asin_tl?ie=UTF8&amp;camp=247&amp;creative=1211&amp;creativeASIN=B008MU2MB0&amp;linkCode=as2&amp;tag=browncatorg-22">SoftBank SELECTION ｍｕｓｉｃ ｐｉｅｃｅ ブラック</a>
	<img style="border: medium none ! important; margin: 0px ! important" src="http://www.assoc-amazon.jp/e/ir?t=browncatorg-22&amp;l=as2&amp;o=9&amp;a=B008MU2MB0" alt="" width="1" height="1" />
	</li>
</ul>
<p>
スペックは本家ををご覧いただくとして主観的な感想を。
</p>
<ul>
	<li>大きさ：マッチ箱程度で厚みが少しある。充分小さい</li>
	<li>重さ：スカスカで軽い</li>
	<li>画面：フォントがイマイチなのとスクロールがギクシャク。当然日本語</li>
	<li>使い勝手：まあ普通。物理ボタンなので触れたら音量が変わる等はない</li>
	<li>ペアリング：電源OFFから長押し。iPhone4,Android(HTCJ)と問題なく完</li>
	<li>電波：Cilpperよりだいぶよい</li>
	<li>ノイズ：接続途中？等に少し。再生中の無音でのノイズはあまりない</li>
	<li>その他：音切れはほんの時々</li>
	<li>電源ON直後の音量がやたら小さい時があり、数秒後に正常に戻ったりする。</li>
	<li>バッテリー：<strike>まだ使い始めなのでなんともですが、スペック程度か<br />
	</strike>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AACで接続しているせいかバッテリー持続時間とても短いです。<br />
	&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; せいぜい2-3時間程度。まめな充電必須です。</li>
</ul>
<p>
AAC接続でちょっと期待の音質ですが、まだ使い始めなのでなんともです。Clipperは音楽再生向けに低音強調気味でメリハリつけた感じの音ですが比べるとこちらは高音が強めでフラットに感じました。とりあえずしばらく使って見ることにします。
</p>
<p>
追記：数日使った感じ、良いかと言われると微妙ですがそう悪くはありません。個人的には使えるレベル。<br />
さらに追記：音質は少しドンシャリ気味だが高音部がSBCのとは全然良い。iPod nanoが残念な感じだったので当分使う予定。ただしバッテリーの持ちが最低レベル。毎日充電が必要です。
</p>
<p>
ところで、ほんとにAACで転送しているのか知りたいのですが、方法ないのでしょうかね。&nbsp;
</p>
]]></description>
         <link>http://blog.browncat.org/2012/08/softbank_selection_musicpiece.html</link>
         <guid>http://blog.browncat.org/2012/08/softbank_selection_musicpiece.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
                  <category domain="http://www.sixapart.com/ns/types#category">iPhone/iPad</category>
                  <category domain="http://www.sixapart.com/ns/types#category">その他</category>
        
        
         <pubDate>Thu, 23 Aug 2012 01:02:42 +0900</pubDate>
      </item>
            <item>
         <title>Android USB Stickのmk802にLinuxを入れてプラズマTVにつないでみる</title>
         <description><![CDATA[<p>
衝動的に少し大きめのUSB Stickサイズでとても小さい中華Android端末mk802を買ってしまいました。
</p>
<ul>
	<li>CPUはCPUはAllwinner A10というCortex A8(ややこしい)の1Ghz</li>
	<li>memoryは1MB、内蔵Flashが4GB</li>
	<li>I/FはUSB HostとOTG, HDMIとWifiとMicroSDスロット。</li>
	<li>TVにHDMIケーブルで接続しUSBマウスを挿せばAndroid 4.0.3。</li>
</ul>
<p>
Google Playにもつながりますし最初からrootは取れてるしとなかなか遊べそうですが、一番惹かれたのはMicroSDにUbuntuやPuppy LinuxをインストールすればLinuxが起動するという話。
</p>
<ul>
	<li><a href="http://blog.livedoor.jp/dupondroid/archives/7233865.html">よくわかってないBlog その2 : 「Android 4.0 Mini PC」MK802でubuntuを起動してみた。</a></li>
	<li><a href="https://www.miniand.com/forums/forums/2/topics/1">Miniand Tech - your one stop shop for mini PCs and hobby tech</a></li>
</ul>
<p>
ところがddでイメージを書き込んで起動してもTVの画面は真っ黒のままです。何度かイメージを変えて試してみましたが改善しません。で色々探してみると...
</p>
<ul>
	<li>&nbsp;<a href="https://www.miniand.com/forums/forums/1/topics/109">Miniand Tech - your one stop shop for mini PCs and hobby tech</a></li>
</ul>
<p>
どうやらPlazma TVだと周波数が合わないらしくウチのpanasonicのTVに合うかと思った720@50Hzはダメらしいとのこと。
</p>
<p>
これを何とかするには起動時にI/Oを設定するためのファイルevb.binとやらを弄ればなんとかなりそう。
</p>
<p>
解決は以下のとおり。全て作業はLinuxマシン上で、
</p>
<ol>
	<li><a href="https://github.com/amery/sunxi-tools">amery/sunxi-tools</a>をインストール。git cloneで落としてmakeでOK</li>
	<li>上記リストのUbuntu等のディスクイメージを入れたSDの最初のパーティションをマウント</li>
	<li>ルートにあるevb.binをローカルにコピー</li>
	<li>bin2fex evb.bin &gt; evb.fex などとしてテキストに変換</li>
	<li>[disp_init]セクションのscreen0_output_mode =4を5に。<br />
	これで720@60Hzになります。</li>
	<li>fexc evb.fex &gt; evb.bin</li>
	<li>念のため元のSDカードのevb.binをリネームしてから6のevb.binをコピー</li>
	<li>syncしてumount</li>
</ol>
<p>
以上で720@60Hz対応の完了。ちなみにmodeの5は中国語のドキュメントから引っ張った値。
</p>
<p>
これで無事Lubuntuの画面が出ました。使っているとエラーが色々出たりしますし特にストレージがかなり遅いので実用的かどうか微妙ですがCortex A8 1Ghzなので動いてしまえば結構使える感じです。GPUがフルパワーでないらしくAndroidで使うより低発熱なのでサーバーイメージを作ってヘッドレスで運用したいですね。
</p>
]]></description>
         <link>http://blog.browncat.org/2012/08/android_usb_stickmk802linuxtv.html</link>
         <guid>http://blog.browncat.org/2012/08/android_usb_stickmk802linuxtv.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Android</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Linux</category>
        
         <pubDate>Tue, 07 Aug 2012 23:09:28 +0900</pubDate>
      </item>
            <item>
         <title>MacのEclispse4.2+AndroidSDKの妙なエラー</title>
         <description><![CDATA[<p>
MacOSXのLionにEclipse 4.2をインストールしてAndroid開発環境を整えてみたのですが、何やら妙なエラーが出るようになりました。ググるといつも頼りになるStackOverflowに解決策が出ていたのでメモ。
</p>
<ul>
	<li><a href="http://stackoverflow.com/questions/11257732/failed-to-instantiate-com-android-menubar-internal-menubarenhancercocoa">eclipse plugin - Failed to instantiate com.android.menubar.internal.MenuBarEnhancerCocoa - Stack Overflow</a><br />
	</li>
</ul>
エラー内容：<br />
Failed to instantiate com.android.menubar.internal.MenuBarEnhancerCocoa...
<p>
対処：
</p>
<ul>
	<li>AndroidSDKは最新なこと。</li>
	<li>eclipseを閉じて~/.android/debug.keystoreを削除。再度eclipse起動。</li>
</ul>
以上。<br />
&nbsp;
]]></description>
         <link>http://blog.browncat.org/2012/07/mac_eclispse42_androidsdk_fix_error.html</link>
         <guid>http://blog.browncat.org/2012/07/mac_eclispse42_androidsdk_fix_error.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Android</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Android</category>
        
         <pubDate>Mon, 16 Jul 2012 01:36:38 +0900</pubDate>
      </item>
            <item>
         <title>サーバ復旧。。。</title>
         <description><![CDATA[<p>
長らく調子の悪かったサーバをほぼ完全にリプレースしまして、ようやく復帰いたしました。実際の所、去年くらいからだましだまし使っていたのですが、最後のダウン時にHDDのデータが破壊されてしまい、昨年のバックアップで再開となりました。（とはいってもほとんど書いていませんでしたが...)
</p>
<p>
まだセットアップが完全ではありませんが、これで運用していくことにいたします。
</p>
停止中にご覧頂いた方々からメールを頂きました。本当にありがとうございました。
<p>
今後ともよろしくお願いいたします。
</p>
<p>
&nbsp;
</p>
<p>
今まで働いてくれていたのはそこそこ古いAthlon64マシン。今回はPentium630Tで組み直し。かかったお金はおそらく半分近いのにメモリも速度も倍増以上で消費電力は下がっているという感じ。ASUSの全部固体コンデンサのマザーなので夏場も大丈夫だろうと期待です。新しいものはホントに良いですね。
</p>
]]></description>
         <link>http://blog.browncat.org/2012/05/iamback.html</link>
         <guid>http://blog.browncat.org/2012/05/iamback.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">自宅サーバ</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">自宅サーバ</category>
        
         <pubDate>Wed, 16 May 2012 03:46:48 +0900</pubDate>
      </item>
            <item>
         <title>AirPrint Activator2でMacOSX LionでiPhone/iPadから印刷出来るように</title>
         <description><![CDATA[<p>
MacOSXにつないだ普通のプリンタにiOSデバイス(iPhone/iPad)から印刷するには、以前はAirPrint Hacktivatorというソフトで設定していたのですが、Appleからツッコミが入ったらしく、新たにAirPrint Activatorとなっています。Lion対応したAirPrint Activatorのv2を使ってみました。
</p>
<ul>
	<li><a href="http://netputing.com/airprintactivator/airprint-activator-v2-0/">AirPrint Activator v2.0 &laquo; Netputing</a><br />
	</li>
</ul>
<p>
上のリンクからv2.1b2をもらってきてEpsonのプリンタを繋いだMac miniにインストール。
</p>
<p>
ほとんど書くことがないのですが、起動すると接続されているプリンタを認識するのでこれをONにするとあっさりiOSから認識出来プリント可能に。<br />
一旦ONにするとソフトを落としても大丈夫のようです。
</p>
Donationを求められるのですが、MacのAppStoreで買えたら嬉しいのだけど...&nbsp;
]]></description>
         <link>http://blog.browncat.org/2011/10/airprint_activator2_print_ios_to_lion.html</link>
         <guid>http://blog.browncat.org/2011/10/airprint_activator2_print_ios_to_lion.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iPad</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iPhone</category>
        
         <pubDate>Tue, 18 Oct 2011 02:26:35 +0900</pubDate>
      </item>
            <item>
         <title>祝Ubuntu 11.10リリース</title>
         <description><![CDATA[<p>
Ubuntu 11.10が今回も無事にリリースされましたね。すっかりデスクトップLinuxとしてトップの座を安定的にキープしていて喜ばしい限りです。
</p>
<ul>
	<li><a href="http://www.ubuntu.com/">Homepage | Ubuntu</a></li>
</ul>
<p>
個人的に今回のリリースで一番といっていい位に嬉しい変更はデフォルトのメーラがEvolutionからThunderbirdになったこと。Evolutionはいつまでたっても日本語では使えませんでしたからね。またUIや検索機能(Spotlightライク)などますますMac化が進んでいます。New Featureの紹介でも内容がUI重視になっておりkernel 3.0やらbtrfs等にはあまり触れられていないのが印象的です。
</p>
<p>
今回のリリースで面白いのはトップページから辿ることが出来る&quot;<a href="http://www.ubuntu.com/tour">Take the tour</a>&quot;。これは単なるスクリーンショットではなく、なんとUbuntuのライブデモになっています。&quot;Show yourself around&quot;をクリックして是非ツアーに出てみてください。左のランチャーからいろいろ楽しめます。
</p>
<p>
またCloudやServerへの注力がますますはっきりしてきましたね。私的にはサーバへの採用は正直少し控えていたのですが、定期リリースが安定していること、LTSのサポートもちゃんとされていることなどから、遅まきながら次のLTS位からそろそろサーバに採用しようかな？
</p>
<p>
ところでこのライブデモは自分で構築出来るのか。iPadからもなんとか使えたのでvnc代わりに使えそうな感じ。ちょっとインストールしてつついてみようと思いつつ。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/ubuntu_1110_release.html</link>
         <guid>http://blog.browncat.org/2011/10/ubuntu_1110_release.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Ubuntu</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Ubuntu</category>
        
         <pubDate>Fri, 14 Oct 2011 13:15:39 +0900</pubDate>
      </item>
            <item>
         <title>Dennis Ritchie氏ご逝去</title>
         <description><![CDATA[<p>
なんていうのか、思うところが多すぎる衝撃的なニュースが
</p>
<ul>
	<li><a href="http://developers.slashdot.jp/story/11/10/13/0224245/%E8%A8%83%E5%A0%B1%3A-C-%E8%A8%80%E8%AA%9E%E3%81%AE%E9%96%8B%E7%99%BA%E8%80%85%E3%80%81%E3%83%87%E3%83%8B%E3%82%B9%E3%83%BB%E3%83%AA%E3%83%83%E3%83%81%E3%83%BC%E6%B0%8F%E3%81%8C%E6%AD%BB%E5%8E%BB">訃報: C 言語の開発者、デニス・リッチー氏が死去 | スラッシュドット・ジャパン デベロッパー</a></li>
</ul>
<p>
C言語の開発者、K&amp;R本の&#39;R&#39;として知られており、初期のUnix開発にも参加しておられたdmrさんがお亡くなりになったとのこと。C言語、Unixの思想を著したK&amp;Rは単なるCの解説書というだけではなく、彼らの重要なソフトウェア技術、プログラミング哲学を表した名著。もちろん直接の面識があったわけではありませんが、若い頃に彼らの著書やコードを熟読、勉強させて頂き、今の自分の礎となったと思っています。
</p>
<p>
私などが書くまでもなく、C言語とUnixの功績は今のコンピュータ分野を形作ったといっても過言ではないほどの重要なものの一つ。リッチーさんたちがいなければC/C++/Javaもなく当然JavaScriptもなく、MacOSXもiPhoneもLinuxもWindowsすら存在していなかったでしょう。デスクトップ分野では素のC言語のシェアは減っていますが、今でも組み込み分野では中心的存在。現在の世界中のテレビや車などを含めたコンピュータを使う機器のほとんど全てが彼(ら)の恩恵を受けていると言っても過言ではない状況でしょう。dmr氏はコンピュータの世界の&#39;車輪&#39;ともいうべき重要なものを作った方の一人として永遠に記憶されると信じます。
</p>
<p>
&nbsp;
</p>
<p>
少し調べていたら米Motorola社を大きく育て上げた元CEOのRobert Galvin氏も10/11にお亡くなりになっているようです。Jobs氏といい先駆的な方々が次々とお亡くなりになりそうな時期になって来ました。彼らがUnixやCを開発してから約40年、AppleIIからでも30年とちょっと。その間にコンピュータは当時最先端のPDPやその後のMac等とは比べものにならないほど強大な性能を持つようになり、Unixの末裔とも言えるOSで制御されて、ポケットの中にすら収まるようになりました。常時インターネットに接続されて相互につながり、一部マニアや専門家のものから生活やビジネスの道具へと変化。人や社会のあり方を大きく変えてしまいました。これも彼らの功績、だとすればこれからの40年はどういったものになるのでしょうね。今彼らに相当する人達はいるのだろうか？
</p>
<p>
ともあれ、ご冥福をお祈りいたします。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/dennis_ritchie.html</link>
         <guid>http://blog.browncat.org/2011/10/dennis_ritchie.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Linux</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">その他</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Programming</category>
        
         <pubDate>Thu, 13 Oct 2011 16:53:07 +0900</pubDate>
      </item>
            <item>
         <title>Google Dart言語をMacOSX Lionにインストールしてみたメモ</title>
         <description><![CDATA[<p>
先日(2011/10/10)公開されたGoogleの新言語DartをMacOSX 10.7.1 Lionにインストールしてみたので備忘録。
</p>
<ul>
	<li><a href="http://www.dartlang.org/">Dart : Structured web programming</a></li>
	<li><a href="http://code.google.com/p/dart/">dart - Dart - Structured Web Programming - Google Project Hosting</a></li>
</ul>
<p>
ざっくりというとGoogle Dart言語はJavaScriptとJava/C++の中間的な言語。動的な型の変数だけでなく静的な型も使え、クラス/インターフェースなどを持ち文法的にはC/C++系です。JavaScriptの代替とサーバサイドでのスクリプティングの両方を目指しているようです。詳しくは上の本家ページを見てみればわかりますが、Hello Worldなんかは一見して普通にC系言語ですね。
</p>
<p>
dartの開発環境はdartソースをコンパイルし結果をJavaScriptで出力するコンパイラdartcとインタープリタ(VM)のdartとd8です。dartcでは出来たjsをブラウザ等のJavaScript実行環境で走らせることができます。いずれChrome等にvmが内蔵されるとコンパイルの必要なくブラウザ内でJavaScriptと同様に走らせることが出来るようになると思われます。
</p>
<h4>当方のコンパイルした環境</h4>
<ul>
	<li>MacOSX 10.7.1 Lion</li>
	<li>Xcode 4.1</li>
	<li>MacPorts</li>
</ul>
<h4>手順(gsutilのあたりはかなり適当...)</h4>
<p>
ビルドのための手順が上記Google Codeのwikiに書いてありますが、少しだけ手間がかかったので以下にメモ。
</p>
<ol>
	<li>必要なツールのインストール<br />
	<a href="http://code.google.com/p/chromium/wiki/MacBuildInstructions">MacBuildInstructions - chromium - Build instructions for Chromium on Mac OS X - An open-source browser project to help move the web forward. - Google Project Hosting<br />
	</a>ここにはXcode 3.2.3+を推奨で4はおすすめでないとありますが、今更面倒なので無視<br />
	<div class="yourclass01">
	sudo port -uvc install git-core +svn<br />
	sudo port -uvc install depot_tools<br />
	sudo port -uvc install gsutil
	</div>
	<br />
	</li>
	<li>ソースの入手<br />
	<div class="yourclass01">
	gclient config http://dart.googlecode.com/svn/trunk/deps/all.deps<br />
	gclient sync
	</div>
	<br />
	</li>
	<li>最後にDumpRenderTreeがダウンロード出来ないとかgsutilがどうたらとWARNINGが出たら<br />
	<div class="yourclass01">
	./dart/third_party/gsutil/20110627/gsutil config
	</div>
	<br />
	とするとなにやら長いURLが出てくるのでブラウザで開く。<br />
	googleのアカウントでログインしてgsutilを認証し、出てきたコードをgclientのauthorization codeにコピペ<br />
	project-idは空でリターン</li>
	<li>再度gclient sync</li>
	<li>cd dart</li>
	<li>Lionの場合SDKが10.6なので<br />
	<div class="yourclass01">
	GYP_DEFINES=&#39;mac_sdk=10.6&#39; gclient runhooks
	</div>
	</li>
	<li>後はビルド<br />
	<div class="yourclass01">
	./tools/build.py --arch=ia32
	</div>
	</li>
	<li>テスト<br />
	<div class="yourclass01">
	./tools/test.py --arch=ia32,dartc,chromium
	</div>
	</li>
	<li><span class="pln">詳細はつついていませんが</span>一箇所テストに失敗しました。気持ち悪いですがなんとか使えているようです。エラーメッセージは以下のとおり<br />
	=== Debug_ia32 vm/Mutex ===&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
	Path: vm/Mutex<br />
	Running test: Mutex<br />
	&lt;DART&gt;/dart/runtime/vm/thread_macos.cc:132: error: expected: result == 0<br />
	Command: &lt;DART&gt;/dart/xcodebuild/Debug_ia32/run_vm_tests Mutex --ignore-unrecognized-flags<br />
	--- CRASHED ---<br />
	</li>
	<li>buildで--arch=x64とするとdartcは動作するがdartが動かないという結果</li>
	<li>コンパイル結果は./dart/xcodebuild/Debug_ia32以下に。</li>
	<br />
</ol>
<h4>使ってみる</h4>
<ol>
	<li>パスを通す<br />
	<div class="yourclass01">
	export PATH=&lt;DART&gt;/dart/xcodebuild/Debug_ia32:$PATH
	</div>
	</li>
	<li>d8と叩くとjsのreplらしきものが起動しますのでちょこっと遊ぶ</li>
	<li>コンパイルしてみる。dartcはoptimizeをつけると劇的に小さなjsファイルを生成してくれますが最適化にメモリを大量に食うようなので適当にjava vmのメモリを増やす<br />
	<div class="yourclass01">
	export DART_JVMARGS=&quot;-Xms256m -Xmx512m&quot;<br />
	dartc hoge.dart --out hoge.js --optimize
	</div>
	</li>
	<li>dartコマンドではスクリプトが直接実行できます</li>
</ol>
お約束のHello World<br />
<ol>
</ol>
<ol>
	<li><a href="http://www.dartlang.org/docs/getting-started/index.html">Tutorial: Hello, World : Dart : Structured web programming</a><br />
	このサンプルをhelloworld.dartなどというファイルに保存して
	<div class="yourclass01">
	dart helloworld.dart
	</div>
	</li>
	<li>dartc --optimize helloworld.dart --out helloworld.js</li>
	<li>ちなみにhelloworld.jsは28kb強となります。コンパイルしたjsファイルはnodeでも実行出来ました。</li>
</ol>
もう少し面白そうなの(DOM操作でHelloworldみたいなサンプル&quot;Hi&quot;)
<ol>
</ol>
<ol>
	<li><a href="https://code.google.com/p/dart/source/browse/#svn%2Fbranches%2Fbleeding_edge%2Fdart%2Fclient%2Fsamples%2Fhi">/ - dart - Dart - Structured Web Programming - Google Project Hosting</a><br />
	上のリンクからhi.dartとhi.htmlをもらってきてhi.htmlをindex.htmlにしておく</li>
	<li>変換する
	<div class="yourclass01">
	python &lt;DART&gt;/client/tools/htmlconverter.py index.html --optimize -o foo/
	</div>
	</li>
	<li>結果が1つのhtmlファイルに出力されるのでブラウザで開く
	<div class="yourclass01">
	open foo/index-js.html
	</div>
	</li>
</ol>
<p>
dom操作を含むhi.dart+hi.htmlの結果(index-js.html)は221kbとなりました。
</p>
<h4>最後に感想など</h4>
<p>
まだ公開されたての言語なのでこれからという感じですね。vmでの性能は特に調べていませんが速く出来る可能性は非常に高いと思います。が、特にJavaScriptでの出力は元と比べ相当大きくなります。ブラウザ内に取り込まれるまで実用的ではないかもしれません。
</p>
<p>
また言語仕様はスクリプト系の言語というよりjavaやC++のような言語に近いので、大きなプロジェクトにはいいかもしれませんが、 お手軽に使う感じではないかもという印象です。
</p>
<p>
#と思ったのですが、基本は動的型で型アノテーションのチェックはあまり厳しくはありません。ラフにも使える反面静的型付言語ほどの安全性はなさそうです。ある意味&quot;Java&quot;Scriptの再定義ともいえるかもしれません。
</p>
<h4>追記:単純ループでのベンチマーク</h4>
<p>
単に1000000000回forでループするだけの超簡単なプログラム(参考にもならないかもですが)で速度を測ってみると面白い結果に。<br />
結果はtimeコマンドのUser時間。マシンはMac miniのi7 2Ghz。
</p>
<ol>
	<li>dart foo.dart&nbsp;&nbsp; --&gt; 8.68s</li>
	<li>dartc + node &nbsp; --&gt; 28.6s</li>
	<li>dartc -optimize + node -&gt; 4.43s</li>
	<li>dartc + d8 &nbsp; &nbsp;&nbsp; --&gt; 6.55s</li>
	<li>dart -optomize + d8 --&gt; 1.21s</li>
</ol>
<p>
ループを10回増やしてoptimize+d8で再テストすると
</p>
<ol>
	<li>&nbsp;dart -optomize + d8 x10倍 --&gt; 17.48s<br />
	</li>
</ol>
<p>
ということでjsにコンパイルしてd8が最速という結果。ちなみにコンパイル後のjsファイルのサイズはopt=28507 bytes, no-opt=549613 bytesでした。<br />
ほぼ同じコードをJavaScriptで書いてnodeとd8で走らせると
</p>
<ol>
	<li>node + js --&gt; 4.36s</li>
	<li>d8 + js --&gt; 1.21s</li>
</ol>
<p>
dartcとほぼ同じ結果となりました。
</p>
<h4>追記2:リリース直後から数日で</h4>
<p>
dartc -optimizeの出力結果が約10%小さくなっていました(笑)。しばらくは更新ラッシュで安定するには少し時間がかかるでしょうね。安定すれば外部jsやブラウザプラグイン等でランタイムを供給すればコンパイル結果は劇的に小さく出来るのではないかと思いつつ。&nbsp;
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/google_dart_install_mac.html</link>
         <guid>http://blog.browncat.org/2011/10/google_dart_install_mac.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Web</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">google</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">mac</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">web</category>
        
         <pubDate>Tue, 11 Oct 2011 02:03:47 +0900</pubDate>
      </item>
            <item>
         <title>MacOSXのサービスからJavaScriptが評価出来るとか</title>
         <description><![CDATA[<p>
小ネタですがさっき気づいたのでメモ。JSTalk(<a href="http://jstalk.org/">JSTalk: Index</a>)をインストールするとサービスに&quot;Get Result of JSTalk Script&quot;なる項目が追加され、選択したテキストをJSTalkのスクリプト(ほぼJavaScript)として評価して結果を返してくれます。
</p>
<p>
環境設定のキーボードショートカットでも選択出来、デフォルトでは⌘+5になっています。
</p>
<p>
単純な例ですが
</p>
<div class="yourclass01">
x=10; y=20; x+y と入れて選択、⌘5 =&gt; 200
</div>
<p>
という感じ。ただし変数はその場限りなのであまり複雑なことは出来ません。terminalやxcode、ブラウザの入力枠等テキストフィールドの入力部分で使えるので、ちょこっとした計算結果を使いたい場合に便利そうです。
</p>
<p>
Rubyなんかも同じように出来るらしい(<a href="http://aussiebloke.blogspot.com/2011/04/eval-expression-service-for-os-x.html">aussie bloke: Eval Expression service for OS X</a>)のですが未確認。今まであまり使ってなかったのですが、Service機能なかなか面白いですね。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/macosx_javascript_service.html</link>
         <guid>http://blog.browncat.org/2011/10/macosx_javascript_service.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">Mac</category>
        
         <pubDate>Fri, 07 Oct 2011 02:32:13 +0900</pubDate>
      </item>
            <item>
         <title>PhoneGap 1.1.0とSafariでJavaScriptの速度比較してみたメモ</title>
         <description><![CDATA[<p>
iOSの4.3で導入されたNitroエンジンが5ではUIWebViewでも使えるようになるのではとの記事を見つけたので<a href="http://www.phonegap.com/">PhoneGap</a>とSafariでJavaScriptの性能にどれくらいの差があるのかと思い軽く調べてみました。PhoneGapはUIWebViewがベースで、SafariはNitro(JIT)装備の比較になります。
</p>
<ul>
	<li>iPad (初代)</li>
	<li>iOS最新版(iOS 5.0)<br />
	</li>
	<li>PhoneGap1.1.0</li>
	<li>Xcode 4.1<br />
	</li>
</ul>
<p>
アプリはindex.htmlに<a href="http://www.webkit.org/perf/sunspider/sunspider.html">SunSpider JavaScript Benchmark</a>へのリンクを張っただけの単純なもの。
</p>
結果...Totalだけを記載すると
<ul>
	<li>Safari&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2886.3ms</li>
	<li>PhoneGap&nbsp;&nbsp;&nbsp; 9498.4ms</li>
</ul>
<p>
その差は約3.3倍。同じテストをiPhone 3GSで走らせるとやはり3.5倍ほどPhoneGapの方が遅い。残念ながらJITは使われていませんね。
</p>
少し調べてみるとどうやら4.3以降ではメモリにmprotectでPROT_EXECをセット出来るらしいのだが、普通には無理なようです。
<ul>
	<li><a href="https://gist.github.com/855607">Demonstrates we can now support limited JIT compilation on recent versions of iOS (assuming Apple approves entitlements at some future point) &mdash; Gist</a></li>
</ul>
<p>
ここまでわかっていながら出来ないのはなんとも。LuaJITもiOSのアプリに組み込めますが名前に反してJIT機能は無理。iOS4から5になっても状況はあまり変わらない。
</p>
<p>
セキュリティのためとはいえキビシイですねえ。
</p>
<p>
<br />
と、これだけでは何なのでPhoneGap 1.1.0で外部サイトへのリンクを使う場合にご注意。
</p>
<p>
ドキュメントにも書いてあるのですが、1.0と違いPhonegapアプリ内のリンクで外部サイトへ飛びたい場合white-listに追加しておかないと動作しません。
</p>
<ul>
	<li>Xcodeで&lt;Project&gt;/Supporting Files/PhoneGap.plist内のExternalHostsキーに&quot;Add Row&quot;して&quot;*.webkit.org&quot;等とホスト名を追加</li>
</ul>
<p>
です。少しはまったので。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/phonegap_110safarijavascript.html</link>
         <guid>http://blog.browncat.org/2011/10/phonegap_110safarijavascript.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Mobile</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Web</category>
                  <category domain="http://www.sixapart.com/ns/types#category">iPhone/iPad</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Apple</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iPad</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iPhone</category>
        
         <pubDate>Thu, 06 Oct 2011 23:55:16 +0900</pubDate>
      </item>
            <item>
         <title>Steve Jobs氏ご逝去</title>
         <description><![CDATA[<p>
とうとうApple社創業者Steve Jobs氏がガンでお亡くなりになったようです。武勇伝の多いIT業界でもダントツのカリスマ性を持ち、ついには世界1にまで上り詰めた稀有な方でした。Apple社のキーノート等で英語の得意でない私でも理解できる素晴らしいプレゼンがもう見れないかと思うと残念です。
</p>
<p>
学生時代にAppleII (とその互換機)を見たのが始まりで、初代Macを最初に触った時には白黒ビットマップディスプレイながらの表現力の素晴らしさと洗練されたUIに驚いたものです。
</p>
<p>
Jobs氏、Apple社の作る製品を楽しみに、またその紆余曲折を興味をもって見てきた一人として感慨深く。Apple社の一番いい時期にお亡くなりになったということもまた彼らしいとも言えるかもしれませんが、個人的には一つの時代の区切りを感じざるを得ません。
</p>
<p>
心からご冥福をお祈りいたします。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/10/steve_jobs.html</link>
         <guid>http://blog.browncat.org/2011/10/steve_jobs.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">PC</category>
                  <category domain="http://www.sixapart.com/ns/types#category">iPhone/iPad</category>
                  <category domain="http://www.sixapart.com/ns/types#category">独り言</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Apple</category>
        
         <pubDate>Thu, 06 Oct 2011 14:23:33 +0900</pubDate>
      </item>
            <item>
         <title>JavaScript+Smalltalk(ObjectiveC)=JSTalkをいじってみる</title>
         <description><![CDATA[<p>
JavaScriptにObjective C/Smalltalk的な拡張を追加してMacOSXのスクリプティングに使用できるOSSのJSTalk。面白そうなのですが日本語の情報が殆ど無いので少しメモ。
</p>
<p>
似たようなコンセプトのモノにJSCocoaやCapputinoのObjective Jがありますが、JSTalkが最もスクリプト言語的(といっていいのか)でお手軽です。マイナーで完成度はこれからという感じで軽微な問題はありますが、今のところ大きな不具合はなく使えています。私のようにAppleScriptになかなか馴染めない人には面白い選択肢ではないかと思います。
</p>
<h4>インストール等</h4>
<ul>
	<li>MacのApp Storeから&quot;<a href="http://itunes.apple.com/jp/app/jstalk-editor/id416348607?mt=12">JSTalk Editor</a>&quot;を入手可能 (フリー)<br />
	</li>
	<li><a href="http://jstalk.org/">JSTalk: Index</a>-- 本家サイト</li>
	<li><a href="https://github.com/ccgus/jstalk">ccgus/jstalk - GitHub</a>-- githubのソースリポジトリ</li>
</ul>
<p>
まずは本家のパッケージにも含まれますがApp Storeから落とせるJSTalk Editorを入れてみます。AppleScript Editorライクに試せるエディタで動作確認をすぐに行なえます。
</p>
<p>
コマンドラインからスクリプトとして使うためには本家パッケージ内のjstalkコマンドを手動で/usr/local/binあたりにコピー。
</p>
<h4>簡単な説明と例</h4>
<p>
基本的な文法はJavaScriptですが、Objective C的に&#39;[]&#39;で括ってメッセージ式が記述できます。以下は最初にeditorを開いたときに出てくるHello Worldです。[]の中はほとんどObjective Cと同じような感じということがわかると思います。
</p>
<div class="yourclass01">
var message = &quot;Hello World!&quot;;<br />
[[JSTalk application:&quot;JSTalk Editor&quot;] displayDialog:message];
</div>
<h4>iTunesのプレイリストをダンプしてみる</h4>
<p>
Hello WorldだけではなんなのでiTunesをスクリプティングしてみます。
</p>
<div class="yourclass01">
var iTunes = [SBApplication application:&quot;iTunes&quot;];<br />
var sources = [iTunes sources];　// iTunes.sources();とも書ける<br />
var numSources = [sources count];<br />
<br />
var src = sources[0];<br />
var playlists = [src playlists];<br />
var numPlayList = [playlists count];<br />
<br />
for (var i = 0; i &lt; numPlayList; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; var playlist = playlists[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp; print(&quot;&nbsp;&nbsp; &quot; + i + &quot;:&quot; + [playlist name]+&quot; &quot;+[playlist specialKind]);<br />
}
</div>
<h4>コマンドラインから使ってみる(iTunesの曲リストを表示)</h4>
<p>
コマンドラインから引数をとったりする方法です。#!記法が使えますが、JSTalk Editorではエラーになるのでテスト時は先頭行は//してください。またEditor内のスクリプトで[NSApp terminate ]等とするとEditor自身が終了してしまうのでご注意。
</p>
<div class="yourclass01">
#!/usr/local/bin/jstalk<br />
// 引数を文字列に変換しておく(例)<br />
var av&nbsp;&nbsp; = NSProcessInfo.processInfo().arguments();<br />
var argc = av.count(); // 0:jstalk, 1:scriptの情報, 2〜:引数<br />
var argv = new Array();<br />
for (var i = 0; i &lt; argc; i++) {<br />
&nbsp;&nbsp;&nbsp; argv[i] = av[i].UTF8String();<br />
&nbsp;&nbsp;&nbsp; print(&quot;arg[&quot;+i+&quot;] = &quot; + argv[i]);<br />
}<br />
// ... 引数の処理をしたりする<br />
// がここでは使わないので無視して
</div>
<div class="yourclass01">
// iTunesのMusicをリストしてみる<br />
</div>
<div class="yourclass01">
var iTunes = [SBApplication application:&quot;iTunes&quot;];<br />
var sources = iTunes.sources();<br />
var numSources = [sources count];<br />
<br />
var src = sources[0];<br />
var playlists = [src playlists];<br />
var numPlayList = [playlists count];<br />
<br />
for (var i = 0; i &lt; numPlayList; i++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp; var playlist = playlists[i];<br />
&nbsp;&nbsp;&nbsp;&nbsp; var kind = [playlist specialKind];<br />
&nbsp;&nbsp;&nbsp;&nbsp; if (kind == 1800630362) { // 直値で適当過ぎだが...<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print(i + &quot;:&quot; + [playlist name]);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var tracks = [playlist tracks];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var n = [tracks count];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; for (j = 0; j &lt; n; j++) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; t = tracks[j];<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; print( ([t enabled] ? &quot; v &quot; : &quot;&nbsp;&nbsp; &quot;) + j + &quot; [&quot; + [t name] + &quot;]&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // [t setEnabled: false]などとするとチェックを外すことが出来る<br />
&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; break;<br />
&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}
</div>
<p>
保存したスクリプトは&quot;jstalk hoge.jstalk&quot;などとして実行可能です。ちゃんと弄ればmp4のタグを設定したりも出来ると思います(多分)
</p>
<h4>最後に</h4>
<p>
JavaScriptにもAppleScriptにも不慣れなのでコードが稚拙なのはご勘弁下さい。<br />
AppleScript EditorでライブラリのsdefとAppleのScripting Bridgeのドキュメントを見つつ書けばさほど難しくはないと思います。メッセージはAppleScriptと少し異なるので注意。値をセットするにはsetHoge。また文字列等の扱いが微妙なのでJavaScriptの型への変換は適宜考慮した方が良さそうです。
</p>
<p>
&nbsp;JS実行環境といえばやはりnode.js(v8)。あちらはリソースも大量にあるので、JSTalk言語 to Pure JavaScriptのトランスレータを作るか、node.jsベースになればもっと面白い事も簡単に出来そうですし、普及するかもしれないと思いつつ。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/09/javascriptsmalltalkobjectivecj.html</link>
         <guid>http://blog.browncat.org/2011/09/javascriptsmalltalkobjectivecj.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Mobile</category>
                  <category domain="http://www.sixapart.com/ns/types#category">iPhone/iPad</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">Apple</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">mac</category>
        
         <pubDate>Fri, 30 Sep 2011 12:43:30 +0900</pubDate>
      </item>
            <item>
         <title>greasemonkey+websocket+node.js+prowlでブラウザからiPhoneに通知してみる</title>
         <description><![CDATA[<p>
Firefoxのgreasemonkey(scriptish)からwebsocketでnode.jsのサーバと通信して、ブラウザでチェックしたWebサイトの変更やアクションなどをgrowlでローカル通知したりProwl経由でiPhoneに通知を送りつけてみたのでメモ。
</p>
<p>
承前。webサイト毎に独自のjavascriptを走らせて色々なことが出来る便利なgreasemonkey(scriptish)ですが、なにかと制限がキツく外部との連携は結構大変でした。でWebSocketは使えるかどうか試してみると無事node.jsのwebsocketと通信出来ました。
</p>
&nbsp;環境:
<ul>
	<li>MacOSX 10.7.1 Lion</li>
	<li>Firefox 6/7</li>
	<li>Scriptish (greasemonkey互換のスクリプト環境)</li>
	<li>node.js (0.4.12 = macportsで入るもの)</li>
	<li>websocket (firefox6はdraft07 branch, 7は最新版)</li>
</ul>
<p>
Greasemonkey側:スクリプト内に適当に通信部分を追加
</p>
<div class="yourclass01">
&nbsp; var socket = MozWebSocket(&quot;http://localhost:8080&quot;);<br />
&nbsp; socket.onopen = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket.send(&quot;HogeHoge&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket.onclose = function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // alert(&quot;Socket has been closed!&quot;);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; socket = null;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp; }
</div>
<p>
サーバ側:(Firefox6は少し古いdraft対応なので以下のようにdraft07対応のwebsocketをインストール)
</p>
<div class="yourclass01">
&nbsp; git clone https://github.com/Worlize/WebSocket-Node.git -b draft-07 &nbsp;
</div>
<p>
落としてきたWebSocket-NodeをNODE_PATHの通った所にコピー
</p>
<div class="yourclass01">
&nbsp; cp -p&nbsp; WebSocket-Node /opt/local/lib/node_modules/websocket-draft07
</div>
<p>
Firefox7以降では対応するdraftが新しくなっているのでnpmで入れたものやgitの先頭で使えます。
</p>
<div class="yourclass01">
&nbsp;sudo npm install websocket -g
</div>
<p>
サーバスクリプト: websocketのサンプルを適当に弄ったモノ<br />
&nbsp; ProwlのAPI KeyはProwlサイトにアカウントを作れば取得できます。
</p>
<div class="yourclass01">
var WebSocketServer = require(&#39;websocket-draft07&#39;).server;　// firefox7以降なら-draft07は不要<br />
</div>
<div class="yourclass01">
var http = require(&#39;http&#39;);<br />
var growl = require(&#39;growl&#39;); // 要growlnotifyコマンド<br />
var Prowl = require(&#39;prowl&#39;).Prowl;<br />
var prowl = new Prowl(&#39;&lt;YOUR PROWL API KEY&gt;&#39;);<br />
<br />
var server = http.createServer(function(request, response) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log((new Date()) + &quot; Received request for &quot; + request.url);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.writeHead(404);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; response.end();<br />
&nbsp;&nbsp;&nbsp; });<br />
server.listen(8080, function() {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; console.log((new Date()) + &quot; Server is listening on port 8080&quot;);<br />
&nbsp;&nbsp;&nbsp; });<br />
<br />
webSocket_server = new WebSocketServer({<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; httpServer: server,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; autoAcceptConnections: true<br />
&nbsp;&nbsp;&nbsp; });<br />
<br />
webSocket_server.on(&#39;connect&#39;, function(connection) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; connection.on(&#39;message&#39;, function(message) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (message.type === &#39;utf8&#39;) {<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp; &nbsp; msg = message.utf8Data;<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; growl.notify(&quot;XXX&quot;+msg);<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; var data = { priorify: Prowl.NORMAL, application: &#39;prowl-test&#39;,<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; event: &#39;Hoge&#39;, description: msg };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; prowl.add(data, function(status) { console.log(&quot;msg: &quot;+msg); };<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<br />
}
</div>
<p>
&nbsp;
</p>
<p>
結構簡単に通信できるのでマッシュアップ的な使い方やページの更新や機能追加等に便利そうです。本家GreasemonkeyとChromeでも試してみようと思いつつ。ただ思い切りクロスサイトで通信出来てしまうようなので、かなり注意が必要だと思います。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/09/greasemonkeywebsocketnodejspro.html</link>
         <guid>http://blog.browncat.org/2011/09/greasemonkeywebsocketnodejspro.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Mobile</category>
                  <category domain="http://www.sixapart.com/ns/types#category">Web</category>
                  <category domain="http://www.sixapart.com/ns/types#category">iPhone/iPad</category>
        
                  <category domain="http://www.sixapart.com/ns/types#tag">JavaScript</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">chrome</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">firefox</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">iPhone</category>
                  <category domain="http://www.sixapart.com/ns/types#tag">web</category>
        
         <pubDate>Tue, 27 Sep 2011 16:05:49 +0900</pubDate>
      </item>
            <item>
         <title>MacPortsのmacfuse関連がfuse4xに置き換わった模様</title>
         <description><![CDATA[<p>
Linux発祥のユーザ空間で走るファイルシステムのベースfuseのMacOSX版ですが、開発が止まっているmacfuseのfolkでLion, 64bitに対応したfuse4xがやっとMacPortsでまともに使えるようになったようなのでメモ。fuse4x自体はしばらく前から入っていましたが、関連するfsがmacfuseベースのままでした。今日？のアップデートでやっとfuse4xを使うようになっているようです。
</p>
<p>
全部はチェックしていませんがざっとみる限りほとんどがfuse4xに置き換わっているようなので、個人的に欲しかったencfsとmhddfsやsshfs, ext2fuse, ntfs-3g等をインストールしてみました。
</p>
<div class="yourclass01">
sudo port selfupdate<br />
sudo port -uc upgrade outdated<br />
sudo port install fuse4x encfs sshfs ...<br />
</div>
<p>
古いMacFuseやEncFS等を使っていた場合コンパイルで問題が出たりしますので、Google Codeから落としたものはまずシステム環境設定のMacFuseでuninstallを行いパネルも削除、/usr/local以下のencfsとfuse関係のファイルをきれいにしておいてください。
</p>
<p>
インストールするfsによってはboostやら色々インストールされるので時間が少々かかりますが無事インストール完了。
</p>
<p>
encfsはDropbox等のオンラインストレージと併用すると仮にサービス側のセキュリティが破られても一定のセキュリティが確保出来るので少し安心です。Linuxのものとも互換性があるので相互に比較的セキュアにデータのやり取りが出来ます。
</p>
<p>
またmhddfsはunionfsと似た機能で2つ以上のファイルシステムを重ねることが出来るので、ディスク増設時やSSDとHDDを重ねる等の使い方ができて面白いかもしれません。
</p>
]]></description>
         <link>http://blog.browncat.org/2011/09/macports_fuse4x_encfs_ext2fuse_etc.html</link>
         <guid>http://blog.browncat.org/2011/09/macports_fuse4x_encfs_ext2fuse_etc.html</guid>
                  <category domain="http://www.sixapart.com/ns/types#category">Mac</category>
        
        
         <pubDate>Sun, 04 Sep 2011 17:57:32 +0900</pubDate>
      </item>
      
   </channel>
</rss>
