2008/03/15

引っ越しました!

Bloggerのテンプレをいじろうとするとしょっちゅう怒られるのにそろそろ耐えられなくなったのではてなに行きます。
ブログ名は同じSoSaiSo

2008/03/14

mecab0.97とmecab-skkserv0.03の相性はぷち最悪です

mecabが0.97になったので入れてみたらmecab-skkserv0.03が動かなくなりました。
そして実はmecab-skkservのインストールはmecabのインストール前のコンフィグに依存してたのを知ったのでメモ。

mecab-skkservでは文字コードがeucの辞書を使うので、mecabをインストールする際に

% ./configure --enable-utf8-only

とかやったら、動かなくなりました。
ですので、utf-8にしたかったら普通にインストールした後に辞書だけutf8にしましょう!

ちなみにipa辞書の場合は以下のようにしてutf-8にしましょう。
% cd mecab-ipadic-2.7.0-xxxx
% /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
# make install
% cd mecab-skkserv-0.0.3
% /usr/local/libexec/mecab/mecab-dict-index -f euc-jp -t utf-8
# make install


【追記】
生駒日記(2008-02-22)にて、工藤さんがmecab0.97で動くとおっしゃってますが、動きませんが!?
助けてタククードー!

2008/03/10

「MOTの達人」を読んで感じたこと

UIはユーザのためにあるのに、UIにユーザが合わせるのはおかしい。

言葉を発する時、必ず相手がいる。
その相手に合わせた言語表現をすることが大切である。

2008/03/04

javaで、端末の文字コードをいじるには

Eclipseの場合

デフォルトがMS932

変更時

実行ダイアログ > 個々のアプリケーション > 共通 > コンソール・エンコード

ただし、Eclipseの場合はコンソールがUTF-8に対応していないっぽいので日本語は文字化けします。

Mac OS Xの場合

デフォルトがSJIS

変更時

(例)
$ javac -encoding UTF8 Test.java
$ java -Dfile.encoding=UTF8 Test

2008/03/01

「ロジカル・シンキング 論理的な思考と構成のスキル」で響いたこと

読書中の付箋とブログ活用術に共感したので、自分もこれからはちょこちょこっと未来の自分のためにいつでも取り出せる状態にしよっと。

  • ロジカル・コミュニケーションとは論理的なメッセージを伝えることによって相手を説得して、自分の思うような反応を相手から引き出すこと
  • 人に何かを伝える時は、まずテーマと相手に期待する反応を考える(いきなり伝える中身は考えない)
  • 提案する前に共通認識を作ることが大前提
  • 相手に期待する反応には「理解」・「フィードバック」・「行動」がある
  • 結論は課題の答えの要約(自分の考えの要約ではない)
  • 結論は曖昧性を排除
  • コインの裏返し(「Aが必要だ。なぜならAがないからだ。」)ではなく、その現象を引き起こしている数ある原因の中から、なぜそれを選んだのかを説明
  • 客観的な事実としての根拠とは、数字など反論する余地がないもの
  • 参入すべきか?→3c(市場の現状、競合他社の動き、自社の現状)を見る
  • 考えた方法が「自社だけでなく他社にも通用する」・「10年前でも10年後でも通用する」ならそれは方法でも何でもない
  • 具体性とはどうすればよいかを具体的に考えられているということ
  • 具体性を出すには「自分がその実施者だったら、何を知っていれば具体的に動けるのか?」を考える
  • 文章を読む時は「文章の目的」と「自分に期待される反応」を考えて読む
  • 説得力のない答えに見られる欠陥「話の重複・漏れ・ずれ・飛び」
  • MECEの前提「あるべき全体が分かっていること」
  • MECEの種類「全体集合を完全に要素分解できる場合」・「これだけ押さえれば大丈夫だとみなせる場合」
  • グルーピング=ボトムアップMECE
  • 日頃から「つまり何?(So What?)↑」「なぜそう言える?(Why So?)↓」を考える
  • 論理構造の同一階層内に展開する要素数は多くても4つ
  • 自分の考え方を強調できる解説型(結論を事実→判断基準→判断内容で解説)では判断基準が味噌
  • 相手に結論を正しく理解して正しくアクションを取って貰いたい時は並列型(結論を事実から導く)
  • 「答えを出すために検討すること」と「答えを相手に伝えること(コミュニケーション)」とは全く異なる

2008/02/29

ATOK2008レビュー

ようやく今日ATOK2008を手に入れました。さっそく行きましょう。

2007からの変化とか気になったこと

  • 間違いを修正して確定したのに次に反映されていない
例題:なんかとってもきもちいいさ

変換すると「なんかとっても気持ちいい佐」となる。これを「なんかとっても気持ちいいさ」に再変換して確定する。
しかし、次にまた同じ文を変換しても「なんかとっても気持ちいい佐」となってしまう。*1

  • ATOKダイレクト
結果が返ってくるのが遅すぎて全く実用的ではない。
しかも頑張って待っても、表示される説明はとても省略されたモノ。
これならWeb検索した方がいいと感じる。
これからの追い上げに期待。

  • ATOKハイブリッドコア
まだ文章をいっぱい打っていないので精度は分からない。
単語の間違いはあるが、文節間違いが少なくなったような印象は確かにある。

もうちょっと使ってみて、分かったことがあったらまた加工と思う。(←この誤変換はいただけない・・・)




*1 もしここで予測変換をあなたがONにしているなら、【なんかとっても気持ちいいさ】が予測候補として出てきてくれるが。

2008/02/17

たまごち

たまごちとは、「魂のごちそう」の略である。
魂のごちそうとは、お客様からの感謝の言葉である。
楽天用語。

これなら、スタッフがおいしく頂いてもいいですよね。

2008/02/16

なんちゃら解析 + Google Chart API

なんちゃら解析 + Google Chart API。
Google Chart APIを試そうと思ってちょっと昔のプログラムと一緒にテスト。
まだ漢字に対応していないようです。

EclipseでJavaのバージョンの違いを吸収するには

私の環境
クライアント側: Java1.6
サーバ側: Java5

この時、サーバにアップロードする前にすること。

  1. プロジェクトを右クリック。
  2. プロジェクト・ファセットの[modify Project]をクリック。
  3. Javaのバージョンをサーバ側のバージョンに合わせて、[終了]をクリック。
  4. Java コンパイラーのコンパイラー準拠レベルをサーバ側のバージョンに合わせる。

結構ハマっちゃいました。

2008/02/14

ハードディスクが認識しない・・・

Debianをインストールしたい。
しかし、ハードディスクを認識しません。
DellのPowerEdge1950ⅢのSATAⅡハードディスク。
まだドライバないのかな?って思いましたが、ドライバをFDから読み込んだりしてもダメ。
Ubuntuとか他のLinuxを入れてみようとするもダメ、ダメ、ダメ。
ここまでで5時間近く経過・・・。

さすがにRedHat Enterprise Linux5なら動くだろう・・・。
そう思って注文したのが今週の火曜の事。

それが今日、先輩が最初にハードディスクを抜いた後にしっかりと差し込んでいなかったのが原因と判明しました。
そんなこともあるので、みなさんも注意してくださいね!

2008/02/13

mod_cacheと圧縮転送のロミオとジュリエット的関係

圧縮転送とmod_cacheを一緒にやると文字コードがおかしいって怒られる。
キャッシュしたgzファイルを読み込む時になぁんか不具合が起こるのかな。
とりあえずmod_cacheをやめたらうまくいきました。

ひ☆かく★すぅ復活しました!

新しいURIはここです

ひ☆かく★すぅ

是非とも一度お試しあれ~

Apache2.2.8とTomcat6の連携

前にdebianに入れた時はa2enmodってコマンドで動的に組み込めたのですが、コマンドありません。
悩んでるより./configureし直した方が早いと決断して、いろいろ入れました。

$ ./configure --enable-cache --enable-disk-cache --enable-mem-cache --enable-proxy --enable-proxy-ajp --enable-rewrite --enable-so


cache, disk-cache, mem-cacheはキャッシュするために使います。
詳しくは、@IT「強化されたドキュメントキャッシュ機能を使う」へどうぞ。

proxy, proxy-ajpはTomcatとの連携に使います。
使い方は以下の通り。

<Location /~hoge/ServletFuga>
ProxyPass ajp://localhost:8009/~hoge/ServletFuga
</Location>


rewriteは圧縮転送に使います。
その際の.htaccessの例は以下の通り。

RewriteEngine on
RewriteCond %{HTTP:Accept-Encoding} gzip
RewriteCond %{REQUEST_FILENAME} !\.gz$
RewriteCond %{REQUEST_FILENAME}\.gz -s
RewriteRule .+ %{REQUEST_URI}.gz

ForceType application/x-javascript
AddEncoding x-gzip .gz

TomcatのJDNI設定

Tomcatってソースを解凍すれば動くから、その辺は省いて、JDNIの設定についてメモ。

利点

  • Server上にDBの設定を施すことによってプログラム内にDB情報を書かなくてすむ
  • データプーリング可能になる

web.xmlの例
<resource-ref>
<description>postgreSQL Datasource</description>
<res-ref-name>jdbc/postgres</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>

server.xmlの例
<context crosscontext="true" debug="0" docbase="tuntun" path="/tuntun" reloadable="true" source="org.eclipse.jst.jee.server:tuntun">
<resource auth="Container" driverclassname="org.postgresql.Driver" maxactive="20" maxidle="10" maxwait="-1" name="jdbc/postgres" password="" type="javax.sql.DataSource" url="jdbc:postgresql://DBサーバのIPアドレス:5432/DB名" username="postgres" />
</context>

MacOS X 10.3(Panther)にJava5をインストールする方法

MacOS X 10.3(Panther)にはJava5は入らないよ、常識的に考えて。
でも、ねちっこく探してたらやっぱりやってる人いましたよ!
Mac OSX Pantherの設定
以下の文章は引用。

通常のインストーラからは、PantherにJava5をインストールする事が出来ない。これはインストーラがTigerのバージョンを確認しているからだと推測できる。そのためコマンドラインからインストール作業を行う事でJava5をインストールする必要がある。

アップル・コンピュータ社のJava 2 SE 5.0 Release 3からdmg形式のバイナリファイルをダウンロードし以下のようなスクリプトを実行する。

※スクリプトがそのままだと動かなかったので、書き直したのを張っときます。

#!/bin/bash

# Java 5 Release 3 Installer

IMAGE="J2SE50Release3.dmg"
DEFAULT_MOUNT="/Volumes/J2SE5.0Release3Tiger"

# mount
hdiutil mount ${IMAGE}

# unpacking
sleep 5
cd /
gunzip -c /Volumes/J2SE\ 5.0\ Release\ 3\ Tiger/J2SE50Release3.pkg/Contents/Archive.pax.gz | sudo pax -vr;

# unmount
hdiutil unmount ${DEFAULT_MOUNT}

# Java5 default
cd /System/Library/Frameworks/JavaVM.framework/Versions/
sudo rm CurrentJDK
sudo ln -s 1.5.0 CurrentJDK

# check
java -version;


これでTomcat6を入れることが出来ました!

2008/02/11

Apache2.2.8をMacOS X 10.3(Panther)にソースインストール

Apache2.2.8をインストールしたので、一応メモしておく。

$ tar xvfz httpd-2.2.8.tar.gz
$ cd httpd-2.2.8
$ ./configure --enable-so # DSOによる動的機能追加を有効に
$ make
$ make install # へたこいた貴方はmake clean


この後にapacheユーザに権限渡したり自動起動設定したりする。けど今回は略。

/usr/local/apache2/conf/httpd.confにて、変更したところのみ記述。

ServerName myDomain:80
DocumentRoot /myDocumentRoot/

<Directory "/myDocumentRoot/>
Options FollowSymLinks
AllowOverride All
</Directory>

ServerTokens Prod
ServerSignature Off


Option Indexes : クライアントがディレクトリのURIを要求、かつそのディレクトリ内にindex.htmlが存在しない時に、ファイル一覧を返すのを許可。
Option FollowSymLinks : サーバがディレクトリ内のシンボリックリンクをたどるのを許可。
AllowOverride All : .htaccessで何だって上書きできる。
ServerTokens Prod : 外部の人に対してOSと組み込んだモジュールを非表示
ServerSignature Off : サーバのバージョンなどを非表示

ScriptAliad /cgi-bin/ "/myDocumentRoot/cgi-bin/"

<Directory "/myDocumentRoot/cgi-bin/">
AllowOverride All
Options ExecCGI +SymLinksIfOwnerMatch
SetHandler cgi-script
</Directory>


Options ExecCGI : CGIスクリプトの実行許可。
Options SymLinksIfOwnerMatch : 所有者が同じ時だけ上述のFollowSymLinks許可。
SetHandler cgi-script : ディレクトリ内のファイルを実行する。要ExecCGI。

ここからは個人のディレクトリ以下に作るために必要。
Include conf/extra/httpd-userdir.conf の#を外す

以下は一番下に書かなかったら読み込まなかった。。。ハマりました。

<Directory "/home/*/public_html">
AllowOverride All
Options SymLinksIfOwnerMatch
<Limit GET POST OPTIONS>
Order allow,deny
Allow from All
</Limit>
<LimitExcept GET POST OPTIONS>
Order deny,allow
Deny from all
</LimitExcept>
</Directory>

<Directory "/home/*/public_html/cgi-bin">
AllowOverride All
Options ExecCGI
SetHandler cgi-script
</Directory>


(追記)

よーし、Apache2.0 + Tomcat6.0 + Java5で動いてたプログラムを移行しよう
      ↓
MacってJava5使えるようになったのって10.4からかよ
      ↓
Java5の文法使えないじゃん
      ↓
ふー、Java1.4でコンパイル通ったぞ
      ↓
Tomcatもバージョン4入れるしかないよな
      ↓
動かないっす。。。

2008/02/09

バーズアイ(bird's eye)

バーズアイ(bird's eye)とは、物事を鳥のように高いところから見る目である。

私としては俯瞰という言葉の方が好き。
だから、バーズアイを持て!よりも俯瞰して見ろ!の方がしっくりくる。

HTMLタグ、エスケープ、JavaScriptにて。

Bloggerにそのままどっかから持ってきたコードとかを貼り付けると、タグ扱いされてすごく嫌だったことってありませんか?

どこかに簡単に変換してくれるWebサイトありそうだったんだけど見つからなかったので作っときました。

HTMLタグをエスケープするJavaScript

どこか変だったらコメントをよろしくお願いします。

Bloggerのtitleの変更方法

ずっと、titleの前にブログ名が来るのが嫌だった。
titleが長すぎた時に、「SoSaiSo : ながーいタイトル...」って感じで途中でタイトルが切れてしまう恐れがあるから。
ということでブログ名を後ろにしようと考えた。
とりあえずテンプレートをじーっと眺めていたら

<title><data:blog.pageTitle/></title>


のところがあやしいのは分かった。
ということでググってみると、Changing the Blogger Title Tagを発見!

どうやら、次のように置き換えればいいらしい。

<!-- Start Widget-based: Changing the Blogger Title Tag -->
<b:if cond='data:blog.pageType == "item"'>
<b:section id='titleTag'>
<b:widget id='Blog2' locked='false' title='Blog Posts' type='Blog'>
<b:includable id='comments' var='post'/>
<b:includable id='postQuickEdit' var='post'/>
<b:includable id='main' var='top'><title><b:loop values='data:posts' var='post'><b:include data='post' name='post'/></b:loop> ~(ここですよ!) <data:blog.title/></title></b:includable>
<b:includable id='backlinkDeleteIcon' var='backlink'/>
<b:includable id='feedLinksBody' var='links'/>
<b:includable id='backlinks' var='post'/>
<b:includable id='status-message'/>
<b:includable id='feedLinks'/>
<b:includable id='nextprev'/>
<b:includable id='commentDeleteIcon' var='comment'/>
<b:includable id='post' var='post'><data:post.title/></b:includable>
</b:widget>
</b:section>
<b:else/>
<title><data:blog.pageTitle/></title>
</b:if>
<!-- End Widget-based: Changing the Blogger Title Tag -->


太字の所を適当に変えれば、titleとブログ名の間に何でも挟める。
デフォでは~だったけど、私は|にした。
☆とかにしたらいいと思うよ(笑)

2008/02/08

シビア思考

シビア思考とは、自分に対して厳しく思考することである。

他人に優しく、自分に厳しく。