Xcode4.5ではまったのでメモ

最近XCodeのcocoaでmacアプリなんぞ作ろうとしています。

そこで

https://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjCTutorial/01Introduction/chapter_1_section_1.html#//apple_ref/doc/uid/TP40000863-CH13-DontLinkElementID_63などというページを参考にサンプルアプリケーションを作ることにします。

かなり古い資料なので、若干今のXcode4.5 と違っていたりしますがそこは心眼でよみつつ。

その中でも一番悩んだのがここ↓

https://developer.apple.com/jp/documentation/Cocoa/Conceptual/ObjCTutorial/06Controller/chapter_6_section_6.html#//apple_ref/doc/uid/TP40000863-CH8-DontLinkElementID_47

どう見てもこのインスタンスを作成することができない。。

悩むこと1日。ようやくわかりました

XCodeの右下にあるObjectLibraryから「Object」なるものをnibに追加。

Objectを選択し、CustomClassでControllerのクラス名を入れる。そうすれば

フィールドと接続できるようになりました。

もっとマニュアルやらチュートリアルを最新版にあわせて充実させてほしいものです。

Macでzcat

最近、UnixとWindowsのあいのこであるようなMacにすっかりはまってます

LinuxからMacへといろいろなシェルなどを移植中

zcatではまったのでメモ

Apacheのログを解析しようと、ZCATで解凍しようとしたのですが、何度やっても↓

http://nomorework.fool.jp/wordpress/2012/01/28/macのzcatではgzを開けない/

いろいろ調べたところありました。こちらの記事を参考にzcatをgzcatに変更すればOK

DLLのデバッグを起動時から行うためには

Win32APIでDLLを開発していて一つ不便に思うことがありました。

そうなんです。本体側のソースコードがなくてDLLだけ開発しているようなときは、この起動時からのデバッグができません。

http://msdn.microsoft.com/ja-jp/library/a329t4ed%28VS.80%29.aspx

こちらに書いてある方法で試してみました。

レジストリを設定していざ起動。

いきなり例のダイアログが。。

あれ?失敗したか?

しばし悩む。。

ふと、プログラムをデバッグしますを押してみる。

なんてことはない、これでデバッガが起動し見事デバッグ成功

Macにffmpegをインストールしてみた

http://jungels.net/articles/ffmpeg-howto.html:このあたり]を参考にインストールしてみる。

  • 環境;MacOSX 10.8.2

lame

コーディックらしい。たぶん。。

faad2

ffmeg

mp4からmp3に変換してみる

ディレクトリにXXXX.mp4というファイルを複数入れているとする

POIでEXCELを操作してみる

javaでExcelに値を書き込むためにPOIを使用してみます。

POIをGET

このプログラムを作成したころはpoiの2.5だったのですが、現在では3.8が利用できるようです。何が変わったのかは未確認。

この中のpoi-3.8-20120326.jarが本体となります

仕様

Excelに書き込むためにはあらかじめテンプレートを用意しておきその中にプログラムから値を書き込む仕様にします。

まずテンプレート用にtemplate.xlsを作成します

新規ファイルを作成し、B4に[a1]、B6に[a2]、D6に[e0-1]を記入しxls形式(2003までの形式)で保存。

サンプルプログラム

  • ExcelCellData.java

  • ExcelData.java

  • ExcelSheetData.java

  • ExcelCreator.java

実行

poi-3.8-20120326.jarにCLASSPATHを通してExcelCreatorを実行します。template.xlsは同じディレクトリに入れておきます。

output.xlsというファイルが作成され、templateで指定したセルの部分に値が入っているのがわかります

Apache+mod_mem_cacheでキャッシュしてみる

Squidを使えば簡単にリバースプロキシを作ることができます。ただ、一つ問題がありキャッシュ時間が分単位となります。

リアルタイム性をできるだけ持たしたいのだが、数秒間のキャッシュを行いたいときにはSquidではちょっとできそうにありません。そこでApache+mod_mem_cacheで試してみます

参考にしたページ

  1. http://httpd.apache.org/docs/2.2/mod/mod_cache.html
  2. http://d.hatena.ne.jp/mhag/20070417/1176786290
  3. http://blog.as-is.net/2007/02/mt-searchcgi-modcache.html
  4. http://kamoland.com/wiki/wiki.cgi?mod_cache%A4%C7Wiki%28CGI%29%A4%CE%B9%E2%C2%AE%B2%BD
  5. http://d.hatena.ne.jp/rougeref/20090616

Apache2.2.22インストール

httpd.confをこんな感じで設定します設定します。

どうやらmod_mem_cacheはメモリ上のキャッシュが変に効いているので最初はいいがそのうちダメになるので、mod_disk_cacheをつかいます

今回はJSPとperlのCGIを対象にしますので、mod_perlも設定しておきます

Perl

これらの設定でJSPは簡単にキャッシュが効いてくれたのですがどうもcgiはうまくキャッシュされていない模様です。

どうもHTTPHeaderにExpiresとCache-Control:max-ageがうまく入っていなかったようですのでcgi側で強制的に入れてやります

結局のところ

apacheの設定

mod_disk_cacheを使うのが吉。

その場合、CacheDirをクローンで定期的に消す必要あり

cgiの設定

たぶん不要だがmod_perlを使うようにする

perlの書き方

HeaderにExpires:5 と Cache-Control: max-age=5 を入れておく

なぜか勝手にApacheがmax-age=0を返していたのでこれは必須

MacでHadoop(インストール)

http://www.ne.jp/asahi/hishidama/home/tech/apache/hadoop/pseudo.html:こちら]とhttp://d.hatena.ne.jp/daisuke-m/20110605/1307239347:こちら]を参考にインストールする

wgetのインストール

特になくてもいいのだが後々便利なので入れておく

  • これで/usr/local/bin以下にインストールされる

hadoopのダウンロード

http://www.apache.org/dyn/closer.cgi/hadoop/common/:このあたり]から好きなのを選んでwgetでダウンロード。今回は0.20.205をチョイス

面倒なのでパーミッションを自分にしておく。あとログのディレクトリも作成

hadoopの設定

  • /usr/local/hadoop/conf/hadoop-env.sh

Javaの環境変数の設定と、HADOOP_HOME is deplicated のWarningが出るのでその対策を入れておく

  • /usr/local/hadoop/conf/core-site.xml

  • /usr/local/hadoop/conf/hdsf-site.xml

  • /usr/local/hadoop/conf/mapred-site.xml

  • ~/.bashrc

これであっているのでしょうか。。

Hadoopを動かしてみる

とりあえず動いているみたいだ

Hadoopのエラー

いろいろ試行錯誤しながらやっていると時々わけのわからないエラーが出ます。

対処法はごくシンプル

macのビープ音を削除してみる

macでTerminalを使用しているとビープ音が耳障りです。

terminalのビープ音

ターミナルを起動して

ターミナルを再起動すればOK.ユーザごとに設定が必要です

VIのビープ音