Main Contents
2005年10月30日
Google 電卓
先日、Google の電卓がアップグレードしたらしい。
Google は、単なる検索エンジンとしてではなく、電卓としてつかえるのをご存知ですか?
たとえば、1+1 とフォームに入力して検索すると、ちゃんと2という答えが返ってきます。
Google の電卓機能
http://www.google.com/intl/ja/help/features.html#calculator http://www.google.com/help/calculator.html物理定数を使用した、かなり複雑な数式まで計算できます。
かなり複雑な数式は、今までも出来たのだけれど、
「45 キログラム*42.195 キロメートルをキロカロリーで」
とか、
「地球の半径をキロメートルで」
とか、
「人生、宇宙、すべての答え」
という計算まで答えを出してくれます。すごい。
「10ヤードをメートルで」のような単位換算が簡単にできるのは便利。
「1000円を米ドルに」という通貨換算もできるので、使い方を覚えるとかなり使えます。
Google の特殊機能
http://www.google.co.jp/intl/ja/help/features.htmlここにいろいろ載ってますが、路線検索までできるのは便利ですねえ。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 00:23
- in Applications
2005年10月28日
ファイルアップロードの罠
お昼頃、「画像がアップ出来ないんだけど」というクライアントさんからのお問い合わせ。
ちゃんとテストしたのになと思いつつ、こちらからはアップできることを確認。
でも、「できないんですよ」とのお答え。
よく調べてみると、Windows の IE からはアップできない事を確認。Safari からは OKだったのに。。。
ソースとにらめっこしていると、 form タグの enctype が、 multipart/form-data でなくてはいけないのに、 application/form-data になっているのをはっけん(自爆)
そりゃアップできないわ。。でも、Safariってこれでもアップできちゃうのね。。
あと、画像の縦横サイズ取得のために、 InputStream#mark(0) して、ImageInputStream を取得し、 ImageReader から width と height を取得した後、 InputStream#reset() して、ファイルをアップロードしています。
でも、画像のサイズが大きいと、 InputStream#mark(0) not support って例外が発生するケースを発見。
この辺どうにかしなきゃな。。
以下、そのあたりのコードです。
public ILargeObjectImage add(InputStream inputStream,
ILargeObjectImage iLobj) throws SQLException {
Connection conn = getDataSource().getConnection();
conn.setAutoCommit(false);
int oid = 0;
if (iLobj.getContentType() != null) {
if (iLobj.getContentType().equals("image/pjpeg")) {
iLobj.setContentType("image/jpeg");
}
Iterator iter = ImageIO.getImageReadersByMIMEType(iLobj
.getContentType());
if (iter.hasNext()) {
ImageReader reader = (ImageReader) iter.next();
try {
inputStream.mark(0);
ImageInputStream iis = ImageIO
.createImageInputStream(inputStream);
reader.setInput(iis, true);
iLobj.setWidth(new Integer(reader.getWidth(0)));
iLobj.setHeight(new Integer(reader.getHeight(0)));
inputStream.reset();
} catch (IOException e) {
conn.rollback();
throw new SQLException(e.getMessage());
}
}
}
try {
long image_id = SQLOptions.getNextId(conn, getSequenceName());
iLobj.setImageId(new Long(image_id));
iLobj.setFlags(Boolean.TRUE);
oid = addLargeObject(conn, inputStream);
iLobj.setOid(new Integer(oid));
addMaster(conn, iLobj);
conn.commit();
return iLobj;
} catch (SQLException e) {
conn.rollback();
throw e;
} finally {
DbUtils.close(conn);
}
}
もうちょっとリファクタリングしたいな。。ていうか、仕事しよ(汗)
- Permalink
- Comments (1)
- Trackbacks (0)
- by みそ
- at 01:01
- in Java
2005年10月27日
今日のおかず
なんだかんだで、まめに更新できているようで・・・。
でも、仕事進んでない。やばい(汗)
今日は、ぶり大根をつくりました。得意料理。
めちゃおいしかった(笑)
また時間のあるときにでもレシピ公開しようかなとも思います。
でも、味付けはほぼすべて目分量だから、あの味はなかなか出せないだろうなぁ^^;
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 02:28
- in Cooking
JavaMail + velocity + ActionForm で「〜」が文字化け
Struts で メールフォームを作って、 velocity を使ってメールの本文を生成、 JavaMail で送信という処理をする際、 Windows から入力した 「〜」などの一部の特殊記号が文字化けしてしまうことがあります。
ちなみに、エンコーディングは、 Java や JSP、velocity のテンプレートがすべて utf-8、メールは iso-2022-jpです。
Mac からの入力は問題なし。
Windows から入力された「〜」等の一部の特殊記号は、 Windows-31J のエンコーディングで送信され、 Servlet で utf-8 に変換、 JavaMail で MimeMessage に入力する際、 iso-2022-jp に変換されます。
このとき、 Windows から入力された「〜」の character code は、 iso-2022-jp や、SJIS、EUC での「〜」である、\u301c とは違い、 \uff5e であるため、コード変換が出来ずに文字化けしてしまいます。
参考 - Javaの日本語関連コンバータにおけるマッピングの違い
http://www.ingrid.org/java/i18n/encoding/ja-conv.htmlこの問題を対処するため、 Windows-31J や MS932 といったコードで入力した際、文字化けを起こす特殊文字の character code を iso-2022-jp や EUC で使用されている character code へ変換するメソッドを作りました。
public static String winToJIS(String input) {
StringBuffer sb = new StringBuffer();
char c;
for (int i = 0; i < input.length(); i++) {
c = input.charAt(i);
switch (c) {
case 0xff3c: // 「\」 を変換
c = 0x005c;
break;
case 0xff5e: // 「〜」を変換
c = 0x301c;
break;
case 0x2225: // 「‖」を変換
c = 0x2016;
break;
case 0xff0d: // 「−」を変換
c = 0x2212;
break;
case 0xffe0: // 「¢」を変換
c = 0x00a2;
break;
case 0xffe1: // 「£」を変換
c = 0x00a3;
break;
case 0xffe2: // 「¬」 を変換
c = 0x00ac;
break;
}
sb.append(c);
}
return sb.toString();
}
これで文字化け解消です。
2008-03-23 追記
古い記事で恐縮...はてなとリンクするテスト.
http://d.hatena.ne.jp/nanasess/20080323/1206255766
- Permalink
- Comments (2)
- Trackbacks (1)
- by みそ
- at 01:31
- in Java
2005年10月25日
JavaMail の SendFailedException について
こんなことしてる場合でもないのだが、忘れないうちに書いておこう。。
JavaMail をつかって、フォーム等からメール送信する際、To: やCc:、Bcc: に無効なメールアドレス(User unknownなど)が入っていると、SendFailedException になります。
これがでても、正常なその他のアドレスには、メールが送信されるようになっているようなのだが、
To: 無効なアドレス
Bcc: 無効なアドレスと有効なアドレスの混在
となったとき、メールが送信されないらしい。
To: のアドレスを有効にすると、送信できるようになりました。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 03:16
- in Java
方言
トラックバックをちょっとやってみたかったので・・・(爆)
愛知県といえば名古屋、名古屋と言えば名古屋弁でしょう。
僕は愛知県民だが、名古屋弁が話せません(笑)
今は名古屋に住んでいますが、生まれたのは三河。
県外のひとには、よく尾張(名古屋)と三河を一緒にされるけど、文化が違うんだよねえ。
尾張は、織田信長。三河は徳川家康。
もちろん、方言もちがいます。三河弁というのがあります。
「おれがれおいでん」とか、「ぐろ」とか。
三河弁一覧
http://www.ne.jp/asahi/qpon/b/aizuma/syowa25.htm
実家の方は、田舎なので、年寄りはみんな生粋の三河弁で話してます。
そんな中で育った僕は、自然に三河弁を使っていましたが、こう改めて見ると、標準語とはかなりかけ離れてますな・・・(笑)
- Permalink
- Comments (2)
- Trackbacks (0)
- by みそ
- at 02:12
- in More...
Movable Type のカスタマイズ
お仕事で、Movable Type のカスタマイズをやることになりそうなので勉強中。
今日、提案書だしてきた。金曜日に打ち合わせ。この仕事、絶対やりたい。
提案内容のタスクをまとめてみます。
- 閲覧したユーザーが、自由にテンプレート、スタイルを変更可能にすること。
- テンプレート、スタイルをいくつも用意すること。
- サイトを盛り上げる企画、提案
1 については、各テンプレートをPHPで構築して、スタイルをDBにつっこんで、動的にテンプレートとスタイルを生成してやればいい。waveでやっているのと一緒。構築実績あり。どうやって Movable Type 上に構築するかが重要。重くなっちゃ意味ないし。
2 は頑張って作る。軌道に乗ってくれば、デザイン募集とかやっても面白いと思う。
3 は、先方がいちばん欲しがっている部分だろ。それくらい自分たちでかんがえろーって感じだけど、仕事取るには、これもやるしかない。
他の業者からも提案来ているらしい。たぶんでかい会社だろ。こっちは一馬力だ。頑張るしかないのです。
逆境はまだ続くようだ・・・。
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 01:06
- in Movable Type
2005年10月23日
りにゅ
まだ提案段階だけど、 Movable Type を設置、カスタマイズする案件がでてきそうなので、インストールしてみた。
ついでに、過去に blogger に投稿した資料になりそうな記事をいれてみた。
1年くらい前のやつ。
でも、あれからまだ同じ仕事でのたうち回ってるんだよなぁ。。(失笑)
- Permalink
- Comments (0)
- Trackbacks (0)
- by みそ
- at 18:18
- in More...
This weblog is licensed under a Creative Commons License.