Tomcat5.5メモ

ひょんなことからTomcat5.5を触っているのだけど、日頃の行いが悪いせいか落とし穴に落ちまくっていたので、経験則的に「これでとりあえず動く」ような設定をメモっておきます。ほぼ完全に自分用のメモです。補足すると、「JSP fileにて、c:forEach with EL …

MySQLからRedisへのimport tool

この程度のことは何かしらの言語を使って、一瞬で作らなきゃだなぁ、と思って何が適当か少し考えてみた。想定される制約条件は以下。 いろいろなサーバーで実行したい Root権限が無いケースも想定 インストールされているのは Perl, Python, Java(Maven入り)…

短縮URLサービスの入力チェック色々

ちょっと調べてみたら各社いろいろバラバラなのでまとめてみました。 サービス名 URI schema無 許容されるURI schema RFC1034的にダメな文字 アンダースコア TLD無 bit.ly ○ http, https, ftp △(読み飛ばされる) △(読み飛ばされる) × goo.gl ○ http, https, …

2800万件つっこんでランダムアクセス

http://twitter.com/#!/koma_mitsu/status/42589756168749057Twitterでもメモっておいたんだけど、後で探し辛いのに気がついたのでこちらにもメモ。Redisに2800万件のレコード(300バイト程度)を突っ込んでランダムアクセスをさせてみたら、性能落ちずに140…

Hibernate触ってみたメモ

そろそろ仕事がらこの辺りもからんできそうなので家事育児の隙をついて弄ってみました。という備忘録的メモ。まぁ実際はSpring経由でやりそうなんですが、まず直接使ってみたいなぁと。方針は以下。 できるだけAnnotationで Maven! Maven! Maven! -1. 事前準…

"The Apache Modules Book" 中のサンプルコードのバグ

PRENTICE HALLから出ている本なんだけども、"3.5.4.1 Arrays" で書かれている以下のコード apr_array_header_t* arr = apr_array_make(pool, sz, sizeof(my_type)); (snip) /* Iterate over all elements */ for (i = 0; i < arr->nelts; i++) { /* A C++ re…

Redisレプリケーションメモ

最近、NoSQLと分類されるRedisで遊んでいるのですが、レプリケーションをさせてみるメモを残そうかと。まず、masterとslave用の設定ファイルを作成します。ほとんどデフォルトのままですが、ファイルが衝突しないように変更しているの、とレプリケーション用…

Parsecで四則演算パーサー

前回から始まったParsec編も今回でついに最終回となりました。今回は少し背伸びをして四則演算パーサーに思い切って挑戦してみたいと思います。 えいっ! import Text.ParserCombinators.Parsec main = do cs <- getContents case parse expr "" cs of Right…

はじめてのParsec

昨年の暮れから、空いている時間を見つけてはHaskellのお勉強をしているのですが、ここ数日はParsecを触っていてエラーメッセージが分かり辛いとか、そういうお正月を過ごしています。普通であれば、手始めに四則演算なぞをパースしてみるところな気がします…

ことしのこと

ふと気がつけば大晦日で、少し手が空いたので今年のことを簡単に振り返ってみます。 0歳の長男 日中から夜中まで面倒をみているカミさんに比べれば全然大したことはないのですが、私が家にいて火急の用事が無いとき&長男が(?:暇そう|泣いている|転びそう|危…

背景画像ありの画像付きボタン

を作りたい場合に気がつかなくて少しハマったのでメモ。 ImageButtonを使えばよろし。 <ImageButton android:id="@+id/hoge_btn" android:layout_height="wrap_content" android:layout_width="wrap_content" android:layout_weight="20" android:focusable="true" android:src="@drawable/icon_xxx" android:background="@drawable/sel_bg_button" /></imagebutton>

UbuntuからIS06にUSB接続

まぁ買いました。IS06。何だか自宅のPCより軽快なのは気のせいでしょうか...で、Androidアプリをちょこちょこ作っている手前、IS06に接続できないと話になりませんので試してみましたメモ。Android SDKやらは既にインストール済みという前提で。あとUbuntuは…

画像ダウンロード中にローディングっぽい表示を出しておきたい

という需要が良くあるのだけど、標準のSDKのライブラリにはピッタリのものがないので、それっぽいものを書いてみた。まず、画面のレイアウト。今回はListActivityを使うのでそのように。今回の本筋とは関係ない。 layout/main.xml

java.lang.ClassCastException:android.widget.LinearLayout$LayoutParams

LayoutInflaterでinflate()を使っていたら、こんなエラーが出てちょっとハマってしまったのでメモ。API referenceをみると、 http://developer.android.com/reference/android/view/LayoutInflater.html#inflate%28int,%20android.view.ViewGroup,%20boolean…

りはびり(Ordシグネチャーとファンクターを使って独自のTreeモジュールを作る)

久しぶりにOCamlでも書いてみようかと思ったら、全然書けなくなっていたのでリハビリをすることに。お題は @osiire さんの http://d.hatena.ne.jp/osiire/20101101 のレベル3。といってもこれまでの経験上、最初の「Ordシグネチャーとファンクターを使って独…

java.lang.NoClassDefFoundError: org/apache/log4j/Logger

ちゃんとpathが通っているにもかかわらず、Tomcat起動時にこのエラーが出まくるときは、ServerをCleanするとなおることがある。というメモ。

コメントとかCDATAとか

挙動を確認するため適当に書いてみた。 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> <meta title="hogehoge" /> </head> <body> <p>xxxx</p> <p>&…</p></body></html>

途方にくれたときは mvn help:describe

最近、Mavenを勉強しているのだけど、何をすれば良いのか分からなくなり途方にくれることが良くある。特に疲れているとき。そんな時は, mvn help:describe -Dcmd=install とか打つと何か光が見えるような気がしないでもない。まぁ lsを一定間隔で打つような…

/etcの下をGitで管理

git

以前、Subversionで/etcを管理していたことがあったのだけど、importしてから、別の場所でcheckoutする必要があって、/etcだけにちょっと嫌な作業であった。で、気がついたら環境を構築しなおす間に/etcのVersion管理を止めていたという。最近は、Mercurial…

DBアクセスのサンプル

Spring frameworkを使うとDBまわりのコードがすっきりするらしいので、練習兼メモがてらサンプルを書いてみた。 RDBMSは何でも良いのだけどPostgreSQLで。適当なテーブルを用意しておく。 sample=# \c psql (8.4.4) You are now connected to database "samp…

Mixin的なもの

普段使いのRubyでは、ModuleのMixinによって実装の継承ができて大変嬉しいのですが、Javaの場合はできなさそうで少し悲しいなぁ、と思っていたところSpring AOPをつかうとそれっぽいことができそうなので試してみました。まず、Mixinのことなど何も知らないU…

Springを使ってみるメモ

簡単なサンプルを動かそうとするだけで結構はまったのでメモ。 前提とか事前準備: Ubuntu 10.04 Eclipse 3.5 - aptで入れたやつ Tomcat 6 - http://tomcat.apache.orgからダウンロード(aptで入れると/usr/share/tomcat6と/var/lib/tomcat6でdirectoryが分割…

staticのメンバークラスで遅延初期化

staticのメンバークラスは遅延初期化されるらしいので試してみた。 class Hoge { private final String clientName; Hoge(String clientName) { this.clientName = clientName; System.out.println( "Hoge's constructor was called by " + clientName ); } …

Builder pattern

Effective Java second editionを読み始めたのですが、何だか良いですね。これは。で、Java素人の私は色々目から鱗なのですが、最初の方に載っていたBuilderパターンが格好良かったので、思い出しながら書き直してみました。 class Foo { private final int …

ActionMailerでSTARTTLSを無効に

まぁ無効にしないといけないSMTPサーバーはどうなのか、という話は横に置いておこう。たまに開発環境用のやつで、しがらみにより手を入れられないやつもあったりするので。ActionMailer::Base.smtp_settingsに :enable_starttls_auto というのがあって、こい…

生成された別ウインドウを追いかける方法

まぁ良くある話なのだけど、Seleniumでテストしているときに、生成された別ウインドウのテストに失敗するというアレに遭遇したのでメモ。普通に <a href="" target="_blank">click here!</a>を使うと, JavaScriptのWindowIDが取れなくて、Seleniumが新ウィンドウを見つけられない。なので, w…

ダイクストラ法の練習

久しぶりにダイクストラ法を、更に久しぶりにJavaで書いてみたら、引っかかりまくりで呆然としました。やはり週一で1アルゴリズムくらいのペースで書いておかないと、腕がなまってしまうなぁ、と痛感。 class Node { private char label; private int totalC…

ar_fixtureのbinary対策

ar_fixtureプラグインは、マルチバイトの文字列をことごとくbase64化してしまうので、とても見づらいものができてしまう。String#is_binary_data?を上書きするとかの手はあるけど、ここは簡単にコンバーターを。 require 'base64' b64 = nil ARGF.each_line …

ffmpegで動画の切り出し

カミさんと子供達が帰省していて一人ぼっちにも関わらず、ズンズンと地元の花火大会に行ってきました。花火の画以外にも音や振動が素晴らしかったので、思わず携帯で動画をとってきました。で、せっかくなので家族に見せようとYouTubeにアップロードしたので…

ソース見たいときのシェル関数

どうやら、いつもRailsのドキュメントを読まずにソースコードを眺めつつコードを書いているようで、Railsのソースコードへの移動が面倒になっている。少し移動が便利になるようシェル関数を書いたので、張り付けておこう。 rj() { gemdir=${GEM_HOME:-`ruby …