cronで毎日とか毎時とかに指定したJavaを実行する時に注意しなきゃいけないのが、
PATHがすべてリセットされるということ。



なので、cronでは直接javaの実行コマンドを書かずに、
.shファイルに設定やjavaコマンドを記述し、その.shをcronで叩くようにする。



.shファイル
#!/bin/bash
PATH=/usr/java/latest/bin
JAVA_HOME=/usr/java/latest
CLASSPATH=.:/usr/java/latest/lib

#Linuxでjniを使う場合 LD_LIBRARY_PATH=/usr/lib
#Macでjniを使う場合 #DYLD_LIBRARY_PATH =/usr/lib java ・・・



javaコマンドの引数でパスを指定する場合は、
CLASSPATH -> -cp=ほげほげ
LD_LIBRARY_PATH -> -Djava.library.path=ふがふが

とすればおk



(追記)





前回は、JSONのデータをStringプリミティブにそのラッパー
そしてJavaBeansの命名規則にそったクラスのオブジェクトに
自動変換してくれるってとこまでやりました!!



今回は、JSONのキー名とJavaのフィールド名のマッピングや、
JSONのキー名の先頭を大文字にしたクラス名以外のJavaクラスへのマッピングの方法のメモだよ!!




・JSONのキーを、Javaの任意のフィールドにマッピングする
例えば、サンシャイン牧場では1つ1つの畑にインデックスが振られていて、
1: {
  畑の情報
}, 
2: {

みたいになってたのね。

でも、Javaのフィールド名に1とか2とか付けれないじゃん!!
なので、JSONの1の値をJavaのfarm1に代入する方法を書くよ!!


まずは、前回の復習で、String jsonにJSON形式のデータが文字列で入っていて、
それを、Hogeクラスのオブジェクトにマッピングするには、
とするよ!!


んで、本題のJSONのキー"1"をJavaのfarm1にマッピングするには、
JavaIdentifierTransformerクラスのtransformToJavaIdentifier()関数をオーバーライドして
条件式を記述する。
そしてそのインスタンスをJsonConfigクラスのsetJavaIdentifierTransformer()を使って、
JsonConfigオブジェクトにセットする。





・Javeのフィールド名を、任意のJavaクラスにマッピングする
デフォルトだと、Javaのhogeフィールドには、HogeクラスのオブジェクトやintやStringの値が
マッピングされるんだけど、

hogeもfooもBarクラスのオブジェクトに変換したいんだよー!!

という時のマッピング方法は、↑のようにJsonConfigを用いて


とすればおk



<参考>

JSONのフォーマットをした文字列をJavaのオブジェクトに変換するには、
JSON-libというライブラリを使えばおk


ただ、このJSON-libは、その他いくつかのライブラリに依存しているので、
そのライブラリもパスに通す必要がある。



なので、JSON-libを使うのに必要なのは、ココにいっぱい書かれてるけど、
とりあえず、↓を入れておけば動く

net.sf.ezmorph:ezmorph:jar




使い方は、簡単!

特に、データ型がプリミティブやStringなら超簡単!!
※JSONで値がない時に"NULL"が入る時は、intじゃなくてIntegerの用にラッパークラスにした方がいいかも


Beanクラスのフィールドがネスト(?)してても全然おk
ただしネストしてる場合は、デフォルトではフィールド名に対応したクラスのオブジェクトが入る。
例えば、フィールド名がhogeなら、プリミティブかHogeクラスのオブジェクトに変換される。




あ、読みやすさの為に載せてないけど、きちんと
toString()とかhashCode()とかequals()とかをオーバーライドした方がいいです。はい。



なんかどうでもいいネタかもだけど、
あとで忘れた時に調べ直すのめんどくさいからめもりんぐ

前にサンシャイン牧場のbotを作ろうとした時にはまったコト!!



Javaで、ウェブのクローンとかする時に、HTTPサーバーが空気を読んでトラフィックに優しいgzipでデータを送ってきた時に、そのままだとうまくデータを解析できない!!




でも、やり方は簡単♪
InputStreamとInputStreamReaderの間にGZIPInputStreamのクッションを挟むだけ!!



・Before


・After


以上でっす。


Snow LeopardでBootcampとか外付けHDDを使う時に、
デフォルトだとNTFSは読み込みしかできないけど、
ちょっとした設定で書き込みも可能になるよ!!



やり方は/etc/fstabファイルに書けばいいんだけど、書き方が2通りあって、

1つ目が、デバイス固有のuuidで設定するやり方で、
UUID=<uuid> none ntfs rw

2つ目が、マウント名で設定するやり方で、
LABEL=<name> none ntfs rw
を書き込む。




UUIDの取得の仕方は、そのドライブがマウントされた状態で、
$ diskutil info /Volumes/XXXXX | grep UUID
で取得できる。



/etc/fstabはデフォルトでは存在しないけど、自分で作っちゃえばおk

$ sudo vim /etc/fstab



んで、再起動!!



Flex/AIRでマウスポインタがいる場所のカラーを取得するのどうやるのって聞かれたからサンプル作ってみたよ!!!

(別にColorPickerじゃなくても、
 ButtonとかImageでもどんなコンポーネント上の色でも取得できるよ!!!)





MouseEvent系のハンドラ内で、


とすればおk


Flash右クリックから、ソースを表示で全体のソースが見れるよ!!!



Macで、Flex BuilderのStand aloneをインストールしてしまい、
デフォルトのワークセスペースが

/Users/username/Documents/Flex\ Builder\ 3
に固定されて設定箇所が分からない!!


Eclipseだったら、起動時に"デフォルトのワークセスペースにする"のチェックボックスがあるのに、それも出ない・・・


しかも、このFlex Builder 3というフォルダ
何回消しても復活しやがる


WindowsのMy Documentsは使ってないからいいけど、
Macの書類ディレクトリは使ってるんだよ!!!

勝手に使わないフォルダ作ってんじゃねぇよ!!!!


まじプラグイン版にしなかったことを全力で後悔。



でも、悔やんでも進まないので設定ファイルを漁る


まず、
/Applications/Adobe\ Flex \Builder\ 3/configuration/config.ini
/User/username/Documents/Flex\ Builder\ 3をデフォルトにしたいフォルダに書き換え


ここで一回Flex Builder 3を起動し、ワークスペースの変更から、
デフォルトにしたいフォルダに移動。


デフォルトにしたいフォルダ/configuration/.settings/org.eclipse.ui.ide.prefs
RECENT_WORKSPACESから/Users/username/Documents/Flex\ Builder\ 3を削除!!





再インストールする時に、もう一回ぐぐるのめんどくさいから
メモしておくよ!!


1. Wiresharkダウンロードサイトから、最新版のdmgをダウンロード
※Snow Leopardだから、全力でintel版を選ぼうね!!


2. ダウンロードできたら、WiresharkをApplicatoinフォルダにコピー


3. Utilities/Command Lineの中にあるバイナリをパスの通ったディレクトリにコピー

$HOME/bin, /usr/local/bin, /opt/wireshark/bin, /opt/local/binなど、PATHが通っているところならどこでもいい。

$ sudo cp /Volumes/Wireshark/Utilities/Command\ Line/* /opt/local/bin/


PATHが通っているディレクトリは、
$ echo $PATH
で確認できる。



4. Utilities/ChmodBPFのStartupParameters.plist, ChmodBPFをwheelグループの権限で/Library/StartupItems/ChmodBPF/にコピー

※ここで注意なのが、
$ sudo mkdir /Library/StartupItems/ChmodBPF
$ sudo cp /Volumes/Wireshark/Utilities/ChmodBPF/* /Library/StartupItems/ChmodBPF/

とやっただけだと、コピーされたファイルの所有者がroot、所有グループがstaffになってしまう。

でも、/Library/StartupItems/で起動時に実行されるファイルは、所有者がrootで、所有グループがwheelになってなければならない。

なので、所有グループを変更する
$ sudo chown -R root:wheel /Library/StartupItems/ChmodBPF/*


5. OS再起動


6. Wireshark.appを起動


7. エラーが出るので、メニューからEdit -> Preferenceを開き、Name Resolutionの項のSMI (MIB and PIB) paths右のEditボタンをクリックし、Newボタンから/usr/share/snmp/mibs/を追加


8. $Home/.wiresharkディレクトリが生成されるので権限を変更

$ cd
$ sudo chmod -R g+w .wireshark


9. Wireshark再起動



<参考サイト>



MovableTypeやOpenPNEなどで、ドメイン(URL)を変更すると、
日記とかに書いてる自リンクがリンク切れを起こしちゃう(´・ω・`)


プログラムが自動で生成するリンクは、設定を変えるだけで自動で変更できるけど、
データベースに格納された、日記の本文内にあるリンクを修正するのめんどくさーいヽ(*`Д´*)ノ


って思ったら、MySQLに置換の関数があったよ!!
update テーブル名 set 'カラム名' = replace('カラム名','置換前テキスト','置換後テキスト');
OpenPNEでドメイン(URL)を変更した時にすること 1. config.phpのOPENPNE_URLを修正 2. 日記、コメント、コミュトピックなどの内容に自リンクがあれば置換 ・日記本文
update c_diary set `body` = 
replace(`body`,'http://old_domain.com/','http://new_domain.jp/');
・日記コメント
update c_diary_comment set `body` = 
replace(`body`,'http://old_domain.com/','http://new_domain.jp/');
・コミュニティコメント
update c_commu_topic_comment set `body` = 
replace(`body`,'http://old_domain.com/','http://new_domain.jp/');
あと、コミュニティ紹介文とかプロフィールとかもあるけど、 こんな感じで置換していけばおk




8月のはじめの頃にO'REILLYから発売された


Adobe AIR クックブック ― プロフェッショナルに学ぶRIAプログラミングの実践





という本の監訳したよ!!!




「今更!?」なんていうツッコミはいらないよっ!!




監訳だと、たくさん売れても印税がっぽりなんてことにはならないので、

別に買わなくてmくぁwせdrftgyふじこ



P.S.
巻末に監訳者紹介のページがあったので、ハチロク世代の宣伝をしたよ!!笑


最近のコメント

ウェブページ

Powered by Movable Type 5.0