初めて梅干しを作ってみた話 今年の夏、初めて梅干しを作りました。 私梅干し大好きなんですが、自分で作るという発想がなくて…同僚が梅シロップを作っているのに影響されて去年から梅仕事を始めてみたんですが、そのときの説明書に「梅干しの作り方」というのも入っていて、えーー梅干しって自分…
DIの実用例を考えていたのですが,よいものが思いつかないので少し違う視点で書きなぐりますw ダイちゃんの以下のエントリにコンポーネントの自動登録がでてきましたね.ComponentAutoRegisterは実はS2.3で登場した機能です. 私の方では,Seasar2.4からの新機能であるSMART deployについて書いてみます. これは「jp.xet.tutorial.s2.converterパッケージにある、.*という名前(正規表現だから、全ての名前)のクラスは、勝手にコンテナに登録しとけやゴルァ」という指示。MySQLConverterとPostgreSQLConverterは、そういえばこのパッケージに置いてある。ということで、勝手に登録されたんですね。 では、そのコンポーネントの名前は? ここも空気を読むSeasar2、のターン。「クラス名の最初を小文字にした名前で、登録しとく
プログラムを組むというと、わけのわからない何やら魔法のようなプログラムのソースコードをぐだぐだと大量に書くらしい、何しているのかさっぱりわからん、というのが一般人の感触だと思う。 「普通の人」に仕事を説明するときに僕は料理にたとえることが多い。一般人のオネーサンと飲んでいるときならこんな感じで話す。 ギーク「プログラムってさぁ、作るところイメージできないかもしれないけど、例えるなら料理を作るようなもんなんだよ。」 女の子「料理?」 ギ「そう、料理。例えば、今日の食べたい物があるとするじゃん。例えば面倒だけどグラタンとか食べたいとするじゃん。」 女「グラタンw えー。大変じゃん。」 ギ「うん。大変なんだよ。グラタン。で、そのグラタン作るわけなんだけど、作り方知ってる?」 女「マカロニとか茹でて、ホワイトソースかけて、チーズかけてオーブンで焼くー」 ギ「そうそう。料理得意そうじゃん。材料とかも
まあ前々から考えてた事なんだけどできるのかなあと。 インスコ時はXみてーなのとか立ち上がってないといかんっぽいけどインスコが 終わればterminalだけで動くはずです。 まあちょっとやってみたいひとは参考にしてみてください。 使用するもの JDK1.5 Eclipse3.3 Vim7 eclim1.3.1 1. JDKをインスコ まあ普通にインスコします。 1.5以上じゃないとあかんらしい。 2. Eclipse3.3をインスコ Enabling Open Innovation & Collaboration | The Eclipse Foundationから3.3をダウンロードします。 解凍して適当な場所に置きます。 一度起動してworkspaceの場所、あと自動ビルドの指定をしておきます。 WTPとかインスコしておくといいらしいのでupdateから入れておきます。 emfとかもいる
もっとSeasar2を味わってみる。 - 都元ダイスケ IT-PRESSの続き。 さっきのapp.diconって、ちょっとネスト深くて見通し悪いよね〜。 その前にまず、いい加減パッケージ分けしましたw こんな感じで。 そしてapp.diconの見通しを良くしてみた。 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE components PUBLIC "-//SEASAR//DTD S2Container 2.4//EN" "http://www.seasar.org/dtd/components24.dtd"> <components> <component class="org.seasar.framework.container.autoregister.FileSystemComponentAutoRegister"> <initMe
DIのお話を書いてみる。 - 都元ダイスケ IT-PRESSの続きです。 まずは、Tableクラスをちょっと変えちゃいましょう*1。 import java.util.List; public class Table { public String name; public List<Column> columns; public Table(String name) { this.name = name; } } columnsフィールドの初期化がなくなっただけ。ここでピンと来たあなたは凄い。 まずはMain import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.SingletonS2ContainerFactory; public class Ma
まず。この物語はフィクションであり このエントリ上のコードはあくまでもチュートリアル用のコードであり、実用性に関しては(ry という訳で、id:happy_ryoのリクエストにお応えして、DIのお話。Seasar2を使ってみます。 ポリモーフィズムの例をもうちっと実用的に書いてみた。 - 都元ダイスケ IT-PRESSの続きです。 まずはいきなりMain見てみますか。 import org.seasar.framework.container.S2Container; import org.seasar.framework.container.factory.SingletonS2ContainerFactory; public class Main { public static void main(String[] args) { Table table = new Table("T_
恥ずかしながら本格的にAOPプログラムをするのは、今回が初めて。ということで、S2AOPを試そうにも、「ポイントカットってどういう意味?」とか、「インタータイプとは何ぞや?」というところでつまづいて、なかなかスムーズに体得できていない。まあ、触りながら理解していくしかない。 とりあえず、SAStrutsのチュートリアルに独自のInterceptorを織り込んでみる。 package tutorial.interceptor; import org.aopalliance.intercept.MethodInvocation; import org.seasar.framework.aop.interceptors.AbstractInterceptor; public class HogeInterceptor extends AbstractInterceptor { private s
前にもチラと書いたけど、RubyでJSONをいじっている。 JSONの処理系はいくつかあるようだけど、私はsimple-json.rbを使っている。 これが良いライブラリなのかどうなのかはわからないけど、とりあえずちゃんと動いているので満足している。 それはいいんだけど、こいつはJSONをハッシュに変換する。データがアクセス出来れば結局は何でもいいのだけど、深い階層を持ったデータだとアクセスがなかなか面倒臭い。Rubyで構造付きのものを扱うのはハッシュにするのが定石らしいのだけど、階層が深くなると面倒になる。 hash['a']['b']['c'] みたいになるのは、キー入力が厄介。プログラム中でアクセスするのは別にどうってことないのだけど、即値があると面倒。みんなはどうしてるか知らないけど、面倒臭いなーと思っていた。 そこで、これを、 hash.a.b.c のようにアクセスする方法を考え
wcつながりで、wcの補完関数を書いてみた。 #compdef wc _arguments -s : \ {-c,--chars}"[the number of bytes]" \ {-w,--words}"[the number of words]" \ {-l,--lines}"[the number of lines]" \ "--help[show help]" \ "--version[show version]" \ "*::file:_files" 適当なディレクトリをFPATH/fpathに追加する。 # .zshrc fpath = (~/fun $fpath) # あるいは export FPATH=~/fun:$PATH とする。 次に、この上記の関数をそのディレクトリに保存する。名前は_wc。 そして、それを自動でロードできるようにする。 # 他のもまとめてやる場合
svnは、第一引数にサブコマンドを取る。 $ svn add hoge.c $ svn commitなので、まずはこのサブコマンドの補完関数を用意する。 完成するとこうなる。 $ svn ^D Subversion command ? cleanup diff log pe propedit rename switch add co export ls pedit propget resolved unlock ann commit h merge pg proplist revert up annotate copy help mkdir pget propset rm update blame cp import move pl ps st cat del info mv plist pset stat checkout delete list pd praise remove sta
svnの補完関数を書いてみよう。まずは、ディレクトリ等の準備から。 補完関数はfpathに記述されたディレクトリから自動でロードされる。なので、まずfpathに好きなディレクトリを設定する。 # .zshrc fpath=(~/config/fun $fpath) そして、そのディレクトリに_svnという名前のファイルを置く。 #compdef svn colorsvn local expl _description files expl "compressed file" _files "$expl[@]" -g "*.gz" 内容は、gnuzipの補完関数をそのまま写しただけの適当なやつです。 あと、一行目でどのコマンドに対する補完を行うかを指定している。なので、これを消すとうまく動かない。 このあと、zshを再起動させるとsvnのあとに拡張子がgzのファイルが補完されるようになる。
あなたは今までにインストールしたMySQLの数を覚えているだろうか。 何度となくインストールしてきたMySQLですが、 Macの場合は、いくつもインストールする方法があるので、 どれが良いか迷いました。 @shachiさんにアドバイスをいただいて パッケージ版をインストールしてみたのですが、 Macports版のmysql5-develも捨てがたく、 結局mysql5-devel+GUI Toolsという構成に落ち着きました。 Macportsからインストールした場合、/opt/local 以下にインストールされるので、以下のようにシンボリックリンクを 作成しました。 /var/run/mysqld -> /opt/local/var/run/mysql5 /etc/my.cnf -> /opt/local/etc/mysql5/my.cnf だいたいこんな感じです。 非常に快適になりまし
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く