mac miniにXCodeをインストールして開発環境準備

手持ちのmac mini に XCodeをインストールして開発環境を整え始めた。
購入時についていたインストールDVDのオプションインストールで
インストール完了。インストールされたバージョンは以下の通り。
tanarky-mac-mini:~ tanarky$ gcc --version
i686-apple-darwin10-gcc-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

tanarky-mac-mini:~ tanarky$ g++ --version
i686-apple-darwin10-g++-4.2.1 (GCC) 4.2.1 (Apple Inc. build 5646)
Copyright (C) 2007 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

tanarky-mac-mini:~ tanarky$ make --version
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i386-apple-darwin10.0
最新にバージョンアップするときはどうしたらいいんだろう。
また今度調べてみるか。

ついでにMacPortsもインストール完了。

参考:
http://www.macports.org/install.php
http://www7a.biglobe.ne.jp/~tzwada/Mac/xcode/index.html
http://d.hatena.ne.jp/hakobe932/20061208/1165646618


cassandraのstableが0.6.1になりました

いつのまにかcassandraのstableバージョンが0.6.1になったようです。
以下changelog。
0.6.1
 * fix NPE in sstable2json when no excluded keys are given (CASSANDRA-934)
 * keep the replica set constant throughout the read repair process
   (CASSANDRA-937)
 * allow querying getAllRanges with empty token list (CASSANDRA-933)
 * fix command line arguments inversion in clustertool (CASSANDRA-942)
 * fix race condition that could trigger a false-positive assertion
   during post-flush discard of old commitlog segments (CASSANDRA-936)
 * fix neighbor calculation for anti-entropy repair (CASSANDRA-924)
 * perform repair even for small entropy differences (CASSANDRA-924)
 * Use hostnames in CFInputFormat to allow Hadoop's naive string-based
   locality comparisons to work (CASSANDRA-955)
 * cache read-only BufferedRandomAccessFile length to avoid
   3 system calls per invocation (CASSANDRA-950)
 * nodes with IPv6 (and no IPv4) addresses could not join cluster
   (CASSANDRA-969)
 * Retrieve the correct number of undeleted columns, if any, from
   a supercolumn in a row that had been deleted previously (CASSANDRA-920)
 * fix index scans that cross the 2GB mmap boundaries for both mmap
   and standard i/o modes (CASSANDRA-866)
 * expose drain via nodetool (CASSANDRA-978)
IPv6サポートとかありますね。
気になるTweetがあったので、ここにはっておきます。
http://twitter.com/kazmuzik/status/12496612708
http://twitter.com/kazmuzik/status/12498217004
http://twitter.com/kazmuzik/status/12512570091

jQuery UI 1.8で追加されたposition()を使ってみる。

jquery UI 1.8 で追加されたposition()を試してみた。
「桜」はHTMLで記述しているのを画像の上にかぶせているだけなので、
選択してコピーなどすることも可能。

画像の上に文字を載せて、雑誌のような見た目にするのに重宝しそう。

サンプル:



、と思って触っていたけど、なかなか思った位置に文字を載せられなくて
ちょっとイライラしたでござる。

iPadを触ってみた

知り合いがiPadをニューヨークで買ってきたので、
触らせてもらった。
操作感は悪くない気がする。
そんなに新しいもの好きじゃないので、
特に、欲しい!って気にはならなかったけど、
そのうち流行ってきたら買う。



デスクトップをmacminiにしてPC環境を省スペース化:Ubuntuをいれてトリプルブート

Mac OS X と Windows XP のデュアルブート環境は構築できたので、
さらにUbunturEFItをインストールして、トリプルブート環境を作る。

参考サイト:
Mac OS X + WIndows XP + Linux (Fedora 8) トリプルブートに移行

インストール時メモ:
  • Ubuntuは先取りしてバージョン10.0.4をインストールしてみました
  • HDは60G割り当て
  • boot.iniを編集する際、Partition(3)、となっている箇所は2箇所ある。1箇所しか直さなくてちょっと起動がおかしくなりました。ご注意を

ubuntu boot
起動きたーーー

refit
rEFItでの切り替えも全OS確認しましたー。

TODO:
Ubuntuでの無線LAN設定
Windowsへのデータ移行
MacにXCODEとか入れて開発環境準備
嫁アカウント作成

デスクトップをmacminiにしてPC環境を省スペース化:Bootcampでデュアルブート

 AirMacも届いたので、mac miniのセットアップ開始。

 最終的なゴールは、rEFItを使ったトリプルブート環境を構築すること。
 (Mac OS X + Ubuntu + Windows XP のトリプルブート)

 主な手順は、
  1. Windows分のHDを割り当てて、Mac OS X + Windowsのデュアルブート環境を構築する
  2. Mac OS X からさらに、Linux分のHDを割り当てて、トリプルブート環境の構築
 という2ステップです。
 といっても1ステップでやることが盛りだくさんなので、
 時間がたっぷりあるときにやりました。

 1の具体的手順は以下のサイトを参考にすれば、問題なくできました。
 MacにWindowsをインストールする方法

 注意点としては、以下。
  • 新しい筐体なので、ファームウェアのアップデートは必要なし
  • 自分のHDは320G。Windowsには60G割り当てることにした
  • 32G以上なので、FATではなくNTFSにした
  • NTFSにしようとしたら、インストール時に、Bootcampが割り当ててくれたパーティション名が「BOOTCAMP_FAT32」という名前になっていたので、手動でいったんその領域を削除してNTFSにフォーマットしなおしたら、インストールできなかった。(↓この画面のときの話。)
  • Windowsのドライバをいれたが、AirMacにつながらなかった。AirMacのワイヤレスセキュリティ設定が、「WPA2 パーソナル」になっていたから、らしい。「WPA/WPA2 パーソナル」に変えたら接続できた。参考:BootCamp上のXPでAirMacが接続できな~い ~何とか接続できました~
  • Bootcampって、一度Windowsで起動すると、デフォルトまでそっちのOSでブートされるようになる。Windowsの場合、コントロールパネルにあるアイコンから切り替えて再起動するみたい。
とりあえず、ここまではうまくいきました。といっても慣れないからか、
時間がかかったなぁ。。。

jQuery UI 1.8で追加されたbutton()を使ってみる。

jQuery UI 1.8で追加されたbutton()を使ってサンプルを書いてみる。


Aタグ

コード:
<script type="text/javascript">
$(function() {
  $("button, input:submit, a", ".demo").button();
  $("a", ".demo").click(function() { return false; });
});
</script>
<div class="demo">
<button>butonタグ</button>
<input type="submit" value="inputタグ" />
<a href="#">An anchor</a>

buttonタグだろうが、aタグだろうが、inputだろうが、
button()を適用するだけで、マウスオーバーで色が変わったり、
クリックしたら視覚的にへこんだように見えるような
デザインになる。これは簡単。

jQuery UI 1.8で追加されたautocomplete()を使ってみる。

サンプルは以下。



コードは以下。
<script type="text/javascript">
 $(function() {
  var availableTags = 
    ["日本", "日本語", "本屋",
     "c++", "java", "php",
     "coldfusion", "javascript", "asp",
     "ruby", "python", "c",
     "scala", "groovy", "haskell", "perl"];
  $("#tags").autocomplete({
   source: availableTags
  });
 });
</script>
<div class="demo">
  <div class="ui-widget">
    <label for="tags">Tags: </label>
    <input id="tags" />
  </div>
</div>

コード解説
  • cssも忘れずにバージョンを1.8にしましょう
  • autocomplete関数に、{ source: 配列 } の形でデータを渡すだけでOK
  • 日本語だと微妙にうまく動かない。「日本」と入力してから「本」を削ると表示されたりする。
  • sourceではなく、searchを使うことでリモートからのデータを取得できそう(未確認)
参考:
http://jqueryui.com/demos/autocomplete/

ブログやその他のアイデアをEvernote for iPhoneで即メモ

ブログのネタを思いついても、いざ書くときになって、
「あれ、なんかもっとネタがあったはずなのに、思い出せない。。。」
なんてことがよくあるので、対策を考えてました。

で、つい最近までは、iPhoneのメモ帳にメモを書いていたんですが、
PCでブログを書こうとしたときに、いちいちiPhoneを開くのも面倒だし、
もっとよいソリューションはないものかと模索したところ、
Evernote for iPhone
にたどり着きました。

これで、PCとiPhoneで同期がとれるし、テキストだけじゃなく、
画像や動画、音声データもいけるので、 これで、ブログのネタ集めに
困らないはず。。。と目論んでいます。

しばらく運用後にまたレポートしてみます。

参考:
http://www.evernote.com/about/download/iphone/

http://lifehacking.jp/2008/07/evernote-for-iphone/

デスクトップをmacminiにしてPC環境を省スペース化 その1

引っ越しを機に、YahooBB ADSL -> 光に乗り換えたんですが、
さらに、PC環境も整理しようとしています。

今の環境は、
desktop
古いPCのパーツを寄せ集めて作った Fedora機(左の黒いやつ) と、
嫁が使ってるWindowsマシンのデスクトップ2台、あとは
ネットブックが1台、となってます。

Fedoraは、CPU:Athron 1700+とか、メモリ512M、HDD 30G、
Windowsは、CPU: Mobile Pentium3 2.0GHz、メモリ1G、HDD 300G
っていうスペック

Windowsに関しては、そこそこ満足なスペックだけど、
いかんせん、東京暮らしは、何よりも自宅スペースによけいな物を置かない
ってのは鉄則なので、ここはお金をかけて、省スペース化に
取り組んでみようと思った次第。

ちなみに、モニタはiiyamaの24型使ってます。
monitor

このモニタの横にmacminiをおいて、足下のデスクトップを、
分解してオークションで売るなりして処分する、
ってのが省スペース化計画。

というわけで、macminiが届きました。
macmini1
macmini spec

ち、ちいさい。。。
まだ、AirMacがAmazonから到着していないので、
到着次第セットアップ開始予定。

セットアップするときは、こちらのサイトを参考に、
mac + windows + ubuntu のトリプルブート環境を構築する予定。

Canada Dry Club Soda : 炭酸税対策に糖分ゼロの炭酸水はいかが?

カナダドライ

オバマ「デブ多すぎだから炭酸飲料税導入するわ」
関連法案を作成している議員らは糖分を含む炭酸飲料を対象 とする新税導入を検討
ということらしいので、どうせ日本でも同様の税金が始まるだろうことを
見越して、今のうちから無糖の炭酸に慣れるのはいかがでしょうか?

セブンイレブンで売ってる炭酸水もうまいですが、
今回購入したこの Canada Dry Club Sodaもなかなか
炭酸が効いていて満足。

価格は家の近くのサミットで98円だったので、4,5本購入。
今度はこれでハイボールでも作ってみようかな、と。

YahooBB 光(NTT Bフレッツ VDSLマンションタイプ) 開通+速度計測

yahoobb

引越しを機会に、ADSL -> 光に乗り換えました。
今って電話加入権なしで常時接続ができるんですなー、と
古くさいことを思いつつ、
ようやく接続機器がそろったのでセットアップしました。

接続自体はすんなり完了したので、
速度を測ってみました。

ブロードバンドスピードテスト 通信速度測定結果
http://www.bspeedtest.jp/ v3.0.0
測定時刻 2010/04/17 13:24:59
回線種類/線路長/OS:光ファイバ/-/Linux/東京都
サービス/ISP:Bフレッツ マンションVDSL方式/Yahoo!BB
サーバ1[N] 20.6Mbps
サーバ2[S] 24.0Mbps
下り受信速度: 24Mbps(24.0Mbps,3.00MByte/s)
上り送信速度: 19Mbps(19.4Mbps,2.4MByte/s)
診断コメント: Bフレッツ マンションVDSL方式の下り平均速度は28Mbpsなので、あなたの速度は標準的な速度です。(下位から40%tile)
ADSLのときは下り4Mだったので、だいぶ早くなった。
早すぎて、ネットブックじゃ正確に測れてないんじゃないか
と思ったり。

というわけで、UQWimaxを解約させていただきますかね。

TODO:
ADSLのモデムはどうする?
UQWimaxの解約
MacMiniのセットアップ
無線LAN ( AirMac ) のセットアップ
プリンタのセットアップ


Javariで靴を大人買い

嫁がJavariで靴を大量に注文して、
家が靴屋みたいになった。

買ったのは、5種類の靴を、サイズ違いで1-3個ずつで、
合計9足。金額にして8万円くらい。

家で試し履きして、結局2足購入する、らしい。
残りは返品。

なんという新しい買い物の仕方。。。

ちなみに、全部嫁用の靴で、自分の分は1つもありません。
がんばって働きます。


ActionScript3.0で画像にリンクを設定する(contentLoaderInfo)

テキストにリンクを設定できたので、
今度は画像を表示させてリンクを設定してみる。

コード(github):
http://github.com/tanarky/sample-codes/tree/master/flex/show_img/

サンプルページ:
http://www.geocities.jp/tanarky/jquery/swf_img.html

参考サイトをもとに、画像サイズがちゃんと指定されるようにした
つもりが、いまいちうまく設定されていないみたいで。
、、、と思ったら、サンプルページにあげたらうまく見れてる。
ブラウザキャッシュでおかしく見えてたのかな。

なんにせよ、うまく動いてよかった。

参考:
http://www.actionscript.org/forums/showthread.php3?t=159235
http://blog.quall.net/program/241/

ActionScript3.0でテキストにリンクを設定する(navigateToURL)

ActionScript3.0で、テキストにリンクを設定してみる。

コードはgithubにアップロードしました。

動作確認サンプルページはこちら

コードのポイントは以下の点。
  • MouseEventを使うには、import flash.events.*;が必要
  • navigateToURLでページ遷移できる。第2引数がHTMLのtarget属性と同じもの
  • イベント登録する時は、 textField.addEventListener(MouseEvent.CLICK, this.gotolink);
TODO
テキストフィールドにリンクをつけたので、マウスがカーソルになってない。
今度はボタンを作ってみる。

参考:
http://renge.heteml.jp/lotus/design/001732.html
http://www.vineyardesigns.com/tutorials/flash/website/url_link.shtml
http://ameblo.jp/hotman2zz/entry-10304499392.html

UQWimaxをお試しでネット難民回避

都内で引越したんだけど、ネット環境の引越しは1週間ほどかかるみたいなので、
UQWimaxをお試し契約してみた。契約したのは渋谷のYAMADA電機。

契約したらすぐにモデムをもらえる。
uqwimax


早速セットアップしてみたら、家の窓際じゃないと、
電波がいまいちだったので、↑の機器は窓際に設置。

PCの設定をして、速度をはかったみたら、以下の通りでした。
------ BNRスピードテスト (ダウンロード速度) ------
測定サイト: http://www.musen-lan.com/speed/ Ver3.5001
測定日時: 2010/04/11 14:11:15
回線/ISP/地域:
--------------------------------------------------
1.NTTPC(WebARENA)1: 829.865kbps(0.829Mbps) 102.97kB/sec
2.NTTPC(WebARENA)2: 896.051kbps(0.896Mbps) 111.09kB/sec
推定転送速度: 896.051kbps(0.896Mbps) 111.09kB/sec
ちょっと遅いかな。
まあ、ネット難民回避なので、すぐ契約できた+15日間無料ってので
感謝!


YUI 3.1.0 が 2010/03/31にリリースされました

YUIのバージョンが3.1.0になりました。
http://www.yuiblog.com/blog/2010/03/31/announcing-yui-3-1-0/

  • component追加


  • 国際化

    • メッセージ部分とか、べたで記述されてたっぽい箇所を多言語化できるようにしてくれた、と予想(ちがうかも)
    •  あとで試してみる

  • Tab viewを刷新


  • loaderの改善

    • Galleryにあるモジュール類を簡単にloadできるようになったらしい

  • YUI2をYUI3から使う

    • use()を使うことでYUI2の機能をloadすることが可能になったらしい
    • やってみる

  • Sortable Utility

    • Dav Glassがやってくれたらしい
    • 2つのリストを並び替えるもの?
    • あとで試す

  • Slider skin追加

    • なぜかSliderにはこだわってるようで
    • 他のものにはskinが追加されて無いのか後で見てみる

  • DOMイベントを簡単に定義できる

    • より簡単に挙動を追加出来るようになったらしい
    • これもあとでやってみる
という内容盛りだくさんな感じです。
性能については、改善された、という話は無いようです。

英語の理解が間違ってるかもしれないので、
後で実際にコードを書いてみて、それぞれ理解してみようと思う。

Flex4 + ActionScript3 で APIにリクエストしてみる

前回、ActionScript3.0で文字を表示するだけのコードを書いてみたので、
今回はAPIリクエストした結果を文字として表示するサンプルを書いてみた。

サンプルコード
http://github.com/tanarky/sample-codes/tree/master/flex/api_request/

XML parse部分で、値を取得できなくてはまりました。
参考:
http://d.hatena.ne.jp/kkanda/20071004

問題はNamespaceの扱いだったみたいで、
なんとか値が取れるようになりました。

というわけで、サンプルページはこちら。
http://www.geocities.jp/tanarky/jquery/swf.html

まだ、テキストを表示しているだけで、
リンクになってなかったりするけど、
APIのレスポンスを取得できたので、満足!

TODO
  • テキストではなくリンクにする(マウスクリックイベント)
  • 画像も表示してみる
  • JSON形式もparseしてみる
  • 上記処理をライブラリ(swc)にして再利用できるようにする

jquery history pluginについて調査+サンプルコードを書いてみた

jQueryで、Ajaxを使ってページを表示すると、
そのページから別のページに遷移したあとで、
ブラウザのBackボタンでもどったときに、
元のページに戻れない場合があるので、
回避する方法を模索してみた。

jQueryのプラグインでいくつか選択肢はあるようで。
自分が見つけて気になったのは以下のプラグイン。
というわけで、jquery history plugin を使って
サンプルコードを書いてみました。
サンプルページはこちら。
http://www.geocities.jp/tanarky/jquery/history.html

アンカーリンクを使えば直接リンクも可能
http://www.geocities.jp/tanarky/jquery/history.html#20

結局アンカーリンクをはさむことにより、
ブラウザの戻るボタンが効くようにする、
ってのがこの手のプラグインの実装手法らしい。

jQuery Document サイト jQAPIについて

jQAPI
http://jqapi.com/

jQueryの公式ドキュメントは、
http://api.jquery.com/
にあるけど、この内容で検索機能を充実させたのが、jQAPI

Keyboard UsageSpeed it up.

The keys are working if the search field has focus or your mouse cursor is in the navigation area. ESC key is global.
UP      - Previous category / Previous item
DOWN    - Next category / Next item
ENTER   - Open category / Load selected item
ESC     - Clear search field and set focus
このショートカットで操作できるので、
非常に簡単に目的の情報までたどり着けます。

内容は、公式ドキュメントと同じ内容になっていて、
DEMO部分もちゃんと動いているので、
これからjQueryで調べたいことがあったら
このサイトを使ってみようと思います.

しかし、このサイト、faviconが「軸」っていう漢字なのは
jqueryと軸ってのをかけているのだろうか?
アメリカ人の感覚ワカリマセーン

CassandraとHadoop Hbaseなどの性能比較

Cassandra versus HBase performance study の結果が興味深かったので、メモ。 Yahoo.incの社員が、以下のcloud serviceについて ベンチマークをとったようです。
  • cassandra 0.4 and 0.5
  • MySQL
  • Hbase
  • Sherpa
結果については、PDFの通りだけど、 個人的な感想を書いちゃうと以下の通り
  • cassandraはリアルタイム処理系としてはいけてるんじゃないか
    • バージョンが上がることで性能がかなり上がっているので将来性がありそう
  • MySQLベースのものはスケールしにくい?
    • 現状の話、今後改善されるのかも
  • Hbaseはリアルタイム系処理を想定されて作られているのか?
    • cassandraとHbaseを同じ土俵で比べない方がいい気がする
自分が言うリアルタイム系処理、とは、 多くのユーザに同時にアクセスされ、そのリクエストに対する応答を リアルタイムで返さなければいけない、という処理を指している。 Hbaseはリアルタイム系処理というよりも、 非同期処理向きなのかな、と思う。設計理念的に。 何にせよ、興味深い資料だった。

野良https(ssl) proxyを使って検閲をかわすTIPS

自分がそういう環境にいるわけじゃない、と先に断っておきます。

以下は想像の話。
ある会社に勤めていて、例えばそれはコールセンターの
電話対応業務をしている、とする。
業務の中で常に競合サイトをチェックしないといけないので、
インターネットにはつながっているが、2chなどのサイトが
見れる状態だと、情報漏洩につながるので、
会社側としては、競合サイト以外は見れない状態にしているとする。

そんな環境にいるときに、どうしても2chなどの不許可を見たいときは、
野良https proxyをつかって、proxyしてもらうのが吉。
https://agentanon.com/index.php
httpsなら検閲される心配はありません。

SSLによるセキュアな通信については、
Wikipediaのこの画像がわかりやすい。
http://ja.wikipedia.org/wiki/%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB:SSL%E3%81%AB%E3%82%88%E3%82%8B%E3%82%BB%E3%82%AD%E3%83%A5%E3%82%A2%E3%81%AA%E9%80%9A%E4%BF%A1.jpg

以上、自分用メモでした。

マツダのカーシェア24 デミオじゃなくてフィアットを借りてみた

前回はデミオを借りてみたが、今回借りたのはフィアット。
デミオよりも15分あたり100円高いけど、デミオがあいてなかったので、
ネタのために、フィアットを借りてみた。

フィアット フィアット インテリア

外観や内装はかっこよかったけど、ぶっちゃけ、
運転しにくかった。。。

というのも、ギアが普通の日本車と違っていて、
オートマなんだけど、ギアチェンジをマニュアルっぽくできるようで、
最初ずっと手動でギアチェンジしてた。。。

あとは、パーキングがなかったり、ドライブに入れているときも、
クリープ現象が無いのが逆に慣れなかった。。。

日本車最高。

って、これはカーシェアの感想というよりは
フィアットの感想ですね。

jQuery UI 1.8 で追加された新機能について調査( position, button, autocomplete )

jQuery UI 1.8がリリースされたようです。
twitterでの告知
ブログによる告知


jQuery UI 1.8から、UIとしてよく使われる以下の3つの機能が追加されました。
  • position

    • 表示位置を簡単に制御できる機能
    • Demo 

  • button

    • マウスオーバーやクリックによってUIを変更するなどの、ボタンによくあるUI設定が簡単にできる機能
    • Demo 

  • auto complete

    • 検索窓に表示させる入力候補を簡単に表示させる機能
    • Demo
だいたい、すでにYUIにある機能なような気がしますが、
jQuery pluginではなく、jQuery UIの機能として正式に提供されることに意味がありますね。
今度使ってみようと思います。

Flex 4(rascut) を学ぶ helloworld on Debian lenny

ちょっと世界を広げるために、Flex4+rascutを学び始める。

まずは、以下のサイトを見て、大体の流れを確認。ふむふむ。
http://www.revulo.com/blog/20090924.html

Javaの環境は整ってるので、この手順はすっとばす。
次にSDKのダウンロード。
本家サイトにいって最新のstableバージョンを落とす
執筆時点では、4.0.0.13875(Fri Jan 29, 2010 build)でした。
Open Source Flex SDK というやつをローカルに落とす。

次はruscatとやらの環境準備。すでにruby1.8の環境は入っていたので、
rascutだけインストールする。

PATHを通さないとコンパイルに失敗するので、通しておく
PATH=~/flex/4.0.0/bin:$PATH
PATH=/var/lib/gems/1.8/bin:$PATH
こちらのサイトを参考に、HelloWorld.asを書いてコンパイル。

ブラウザから確認できるディレクトリにswfをコピーして確認。

できたーー。
今回実行したコマンドは以下のとおり。

$ mkdir -p ~/flex/4.0.0
$ cd ~/flex/4.0.0
$ wget http://fpdownload.adobe.com/pub/flex/sdk/builds/flex4/flex_sdk_4.0.0.13875_mpl.zip
$ unzip flex_sdk_4.0.0.13875_mpl.zip
$ ruby --version
ruby 1.8.7 (2008-08-11 patchlevel 72) [i486-linux]
$ gem --version
1.2.0
$ sudo gem install rascut
$ cd git/sample-codes/flex/helloworld/
$ emacs HelloWorld.as
$ /var/lib/gems/1.8/bin/rascut HelloWorld.as
[03/28 01:22:49] Compile Start
[03/28 01:22:50] Found update file(s)["./HelloWorld.as"]
[03/28 01:23:02]  fcsh: Assigned 1 as the compile target id
Loading configuration file /home/satoshi/flex/4.0.0/frameworks/flex-config.xml
/home/satoshi/git/sample-codes/flex/helloworld/HelloWorld.as: Warning: This compilation unit did not have a factoryClass specified in Frame metadata to load\
 the configured runtime shared libraries. To compile without runtime shared libraries either set the -static-link-runtime-shared-libraries option to true or\
 remove the -runtime-shared-libraries option.

/home/satoshi/git/sample-codes/flex/helloworld/HelloWorld.swf (633 bytes)
$ cp /home/satoshi/git/sample-codes/flex/helloworld/HelloWorld.swf /var/www/nginx-default/

HelloWorld.asはこちらにあります。

参考:
http://d.hatena.ne.jp/nitoyon/20070914/how_to_install_rascut
http://www.revulo.com/blog/20090924.html
http://kawa.at.webry.info/200803/article_2.html

Firefox を3.6.2にアップデート on Debian lenny

前回書いたようにFirefoxのUpdate scriptを書いてからUpdateを実行。

コードはこちら

$ ./update.pl

を実行してからFirefoxを再起動すればOK

$ /usr/bin/firefox --version
Mozilla Firefox 3.6.2, Copyright (c) 1998 - 2010 mozilla.org

これで次からはアップデートも楽になる。
こういうコードをめんどくさがらずにちゃっちゃと書いちゃうおれ最高

Javaのお勉強 その4 jarファイルを使ってビルドしてみる

前回作ったjarファイルをつかって別の実行ファイルをビルドしてみる。
コードはgithubにあげてます。

使い方は、
http://github.com/tanarky/sample-codes/tree/master/java
の、jars以下でantしてjarファイルを作ってから
use_jars以下に移動して、ant。以下実行結果。

satoshi@debian:~/git/sample-codes/java/use_jars$ tree
.
|-- build.xml
`-- src
    `-- bar
        `-- mymain.java

2 directories, 2 files
satoshi@debian:~/git/sample-codes/java/use_jars$ ant
Buildfile: build.xml

mkdir:
    [mkdir] Created dir: /home/satoshi/git/sample-codes/java/use_jars/classes

compile:
    [javac] Compiling 1 source file to /home/satoshi/git/sample-codes/java/use_jars/classes

BUILD SUCCESSFUL
Total time: 3 seconds
satoshi@debian:~/git/sample-codes/java/use_jars$ tree
.
|-- build.xml
|-- classes
|   `-- bar
|       `-- mymain.class
`-- src
    `-- bar
        `-- mymain.java

4 directories, 3 files
satoshi@debian:~/git/sample-codes/java/use_jars$ ant exec
Buildfile: build.xml

mkdir:

compile:

exec:
     [java] Hello, Java.

BUILD SUCCESSFUL
Total time: 1 second

無事にjarファイルに含まれているクラスを使用できた。
ポイントは、use_jars/build.xmlの以下の部分

<javac classpath="${jars}" destdir="${dest}" srcdir="${source}">

<java classname="bar.mymain" classpath="${dest}:${jars}">

classpathにjarファイルへのパスを追加すればOKです。

Javaのお勉強 その3 jarファイルの作成

jarファイルとは、圧縮アーカイブファイルの一種。
自分が作ったものを公開したりするときはこの形式になるのかな。

というわけで、シンプルなjarファイルを作るためのコードを書いてみた。
こちらにあります。

satoshi@debian:~/git/sample-codes/java/jars$ tree
.
|-- build.xml
`-- src
    `-- sample
        `-- myjar.java

2 directories, 2 files
satoshi@debian:~/git/sample-codes/java/jars$ ant
Buildfile: build.xml

mkdir:
    [mkdir] Created dir: /home/satoshi/git/sample-codes/java/jars/classes
    [mkdir] Created dir: /home/satoshi/git/sample-codes/java/jars/jars

compile:
    [javac] Compiling 1 source file to /home/satoshi/git/sample-codes/java/jars/classes

pkg:
      [jar] Building jar: /home/satoshi/git/sample-codes/java/jars/jars/mine.jar

BUILD SUCCESSFUL
Total time: 3 seconds
satoshi@debian:~/git/sample-codes/java/jars$ tree
.
|-- build.xml
|-- classes
|   `-- sample
|       `-- myjar.class
|-- jars
|   `-- mine.jar
`-- src
    `-- sample
        `-- myjar.java

5 directories, 4 files

jarsディレクトリ以下にmine.jarが出来ました。
ファイル形式は、

satoshi@debian:~/git/sample-codes/java/jars$ file jars/mine.jar 
jars/mine.jar: Zip archive data, at least v1.0 to extract

となっています。

Javaのお勉強 その2 antとの連携

Javaとantは切っても切れない関係、といっても過言じゃないです。
というわけで、今回はantを使ったJavaのビルド+実行をしてみようと思います。

コードはこちら

satoshi@debian:~/git/sample-codes/java/helloant$ tree
.
|-- build.xml
`-- src
    |-- bar
    |   `-- mymain.java
    `-- foo
        `-- mypkg.java

3 directories, 3 files
satoshi@debian:~/git/sample-codes/java/helloant$ ant
Buildfile: build.xml

mkdir:
    [mkdir] Created dir: /home/satoshi/git/sample-codes/java/helloant/classes

compile:
    [javac] Compiling 2 source files to /home/satoshi/git/sample-codes/java/helloant/classes

BUILD SUCCESSFUL
Total time: 2 seconds
satoshi@debian:~/git/sample-codes/java/helloant$ tree
.
|-- build.xml
|-- classes
|   |-- bar
|   |   `-- mymain.class
|   `-- foo
|       `-- mypkg.class
`-- src
    |-- bar
    |   `-- mymain.java
    `-- foo
        `-- mypkg.java

6 directories, 5 files
satoshi@debian:~/git/sample-codes/java/helloant$ ant exec
Buildfile: build.xml

mkdir:

compile:

exec:
     [java] Hello, Java.

BUILD SUCCESSFUL
Total time: 1 second
satoshi@debian:~/git/sample-codes/java/helloant$ ant clean
Buildfile: build.xml

clean:
   [delete] Deleting directory /home/satoshi/git/sample-codes/java/helloant/classes

BUILD SUCCESSFUL
Total time: 0 seconds
satoshi@debian:~/git/sample-codes/java/helloant$ tree
.
|-- build.xml
`-- src
    |-- bar
    |   `-- mymain.java
    `-- foo
        `-- mypkg.java

3 directories, 3 files

ポイントは、build.xmlの以下の部分
  • propertyで変数を設定
  • javacでdestdirを指定して、classファイルを書き出すディレクトリを指定
  • javaでclassファイルを書き出したディレクトリをclasspathに指定
  • clean targetでclassファイルを書き出したディレクトリを消す
Javaで何か書くときの雛形になりそう。よかったよかった。