eclipseのred5plugin導入
日本語化
調べた結果3.4の日本語化は3.3と同じ方法でできる。
pleiadesの本体をDLしてくる。
cp -R ./pleiades/features/* /Applications/eclipse/features
cp -R ./pleiades/plugins/* /Applications/eclipse/plugins最下行に一行追加
vi /Applications/eclipse/Eclipse.app/Contents/MacOS/eclipse.ini
- javaagent:/Applications/eclipse/plugins/jp.sourceforge.mergedoc.pleiades/pleiades.jar=no.mnemonic
ここから引用しています。
詳細はそっち見て下さい。
BlazeDSを使ってみる
BlazeDSはOSSのRPC(Remote Procedure Call)Server と Message Serverの2つの機能をもつ。
で、こいつがapache tomcatやJBossで稼働させれる。
ちょっと興味がわいたのでいじってみる。
Turnkeyの導入
macにJDK6をインストール
まずここからmac用のJDK6をダウンロードしてくる。
んでインストール。
デフォルトにしたい場合はシンボリックリンクを変更。
JAVA_HOMEの環境変数を追加、もしくは変更すれば無事終了。
#デフォルトにする変更 sudo ln -s /System/Library/Frameworks/JavaVM.framework/Versions/1.6 /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK #JAVA_HOMEの設定 export JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK #起動 $JAVA_HOME/bin/java -version java version "1.6.0_05" Java(TM) SE Runtime Environment (build 1.6.0_05-b13-120) Java HotSpot(TM) 64-Bit Server VM (build 1.6.0_05-b13-52, mixed mode)
Turnkeyをインストール
やっとこさTurnkeyをいれる。
ここからダウンロード。
解凍したディレクトリの中に移動。
sampledb/startdb.sh tomcat/bin/startup.sh
これでおk。
TurnkeyバンドルのTomcatが8400番ポートで起動する。
http://localhost:8400にアクセスして確認できる。
ふふ〜♪これで色々と試せれる環境が手に入ったw
よねもさん助かりました!!あざっす!
perldocでソースを読む
perldoc -m [Module名]
これソース追うときに便利!
ただdefaultだとmoreで開いてしまうため不便。
PAGER=less
っていう環境変数を用意しておけばlessで開けるから便利。
PAGER=less perldoc -m [Module名]
こんな感じ。
またはPAGERをexportしとけばok.
google map APIつかってみた
rascutで起動
基本ここの通りのことをしてみた。
ここではmxmlcでのコンパイルの仕方しか書いてなかったので
rascutでの起動の仕方を書いておく。
- MapSimple.mxml(引用)
<?xml version="1.0" encoding="utf-8"?> <!-- Copyright 2007 Google Inc. --> <!-- All Rights Reserved. --> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" width="100%" height="100%"> <mx:Panel title="Google Maps API for Flash - Simple Map" width="100%" height="100%"> <mx:UIComponent id="mapContainer" initialize="startMap(event);" resize="resizeMap(event)" width="100%" height="100%"/> </mx:Panel> <mx:Script> <![CDATA[ import flash.events.Event; import com.google.maps.MapEvent; import com.google.maps.Map; import com.google.maps.MapType; import com.google.maps.LatLng; private var map:Map; public function startMap(event:Event):void { map = new Map(); map.key = "上で取得したキー"; //ここだけ追記 map.addEventListener(MapEvent.MAP_READY, onMapReady); mapContainer.addChild(map); } public function resizeMap(event:Event):void { map.setSize(new Point(mapContainer.width, mapContainer.height)); } private function onMapReady(event:Event):void { map.setCenter(new LatLng(40.736072,-73.992062), 14, MapType.NORMAL_MAP_TYPE); } ]]> </mx:Script> </mx:Application>
rascut -c [mxmlcのオプションを指定] MapSimple.mxml -s
rascut -c -library-path+=lib MapSimple.mxml -s
ファイルのlockについて
flcokについて
flockってファイルハンドルを開いた後にチェックする印みたいなもんだった。
つまりはflockの戻り値でlock中かどうかの判断をするみたい。あってんかな??
詳しくはここを見てください。
- flock(FH, 1) 読込中なので書込をロック、あとから来たら待つ。(ブロック)
- flock(FH, 2) 書込中だから書込読込ロック、あとから来たら待つ。(ブロック)
- flock(FH, 5) 読込中なので書込をロック、あとから来たら0を返す。
- flock(FH, 6) 書込中だから書込読込ロック、あとから来たら0を返す。
- flock(FH, 8) ロック解除(close(FH)すれば解除なのであまり使わない)。
上記のサイトより引用
この実装だとファイルハンドルは必ず開けないといけないので
書込時は正常にロックされるが読込中は上書きしないようにしようとしても
open my $fh, ">", filename or die $!;
こんな感じでファイルハンドルを開けないといけないので
既存のデータがなくなっちゃう自体におちいった。
まぁ当然ちゃ当然だけどw
で、色々試してできたんでメモ代わりに書いておく。
読込時のロック
- read_lock1.pl
#!/usr/bin/perl use strict; use warnings; my $op = open my $fh, '<', 'test.txt' or die $!; my $lock = flock $fh, 5; print "read_lock[$op:$lock]"; print join "", <$fh>; close $fh;
- write_lock1.pl
#!/usr/bin/perl -l use strict; use warnings; my $op = open my $fh, ">", 'test.txt' or die $!; my $lock = flock $fh, 6; #第二引数を"2"にするとcloseされるまでread_lock1.plの読み込みを待たせる。 print "write_lock[$op:$lock]"; print $fh 'orzorzorzorz'; sleep 5; #この間に read_lock1.pl-read_lock1.plを実行 close $fh;
これを試すとわかるけど
書込中はread_lock.plの$lockの値は0を返す。
書込が終わると$lockの値は1を返す。
あとは$lockの値をみてコードかけばおk。
書込時のロック
こっちは書込時に比べて少し違うやり方をした。
- read_lock2.pl
#!/usr/bin/perl use strict; use warnings; my $op = open my $fh, '<', 'test.txt' or die $!; my $lock = flock $fh, 5; #第二引数を"1"にするとcloseされるまでread_lock1.plの読み込みを待たせる。 print "read_lock[$op:$lock]"; sleep 5; print join "", <$fh> if $lock; close $fh;
- write_lock2.pl
#!/usr/bin/perl use strict; use warnings; my $op = open my $fh, ">>", 'test.txt' or die $!; my $lock = flock $fh, 6; print "write_lock[$op:$lock]"; if ($lock){ truncate $fh, 0; # ファイルサイズを0バイトにする seek $fh, 0, 0; # ファイルポインタを先頭にセット print $fh 'orzorzorzorz'; } close $fh;
ちょっとゴリ押感はあるけどこれでできた。ってかモジュールありそうなのになぁ〜
やっぱlockファイルを作るので十分だからかな??あれば便利そうなのになー
IO::LockedFile
モジュールあればいいと思ったらあった。
これどうなんだろ。実装はflock使ってしてるっぽいけど・・・