アクセスカウンタ

プロフィール

ブログ名
やじゅ@アプリケーション・ラボ
ブログ紹介
システムエンジニアを対象によりよいアプリケーションを作成する上で必要な知識および経験を紹介します。
プログラムの技術系のサイトや本はちまたに溢れておりますが、基本設計、詳細設計、試験仕様書を作る際
の技術系はまだまだ少ないです、このサイトが少しでもみなさまのお役に立てば幸いです。
わんくま同盟(http://www.wankuma.com/)に加入しています。
help RSS

クラウド・カンファレンス in 静岡 お疲れ様です

2011/09/30 23:56
先日の9/24(土)に行われた「クラウド・カンファレンス in 静岡」です。
http://atnd.org/events/19129

私は残念ながら仕事に余裕がなくなってしまい休めなかったため、前日に泣く泣くキャンセルしました。
みなさんのつぶやきやブログなどを参考にしたいと思います。
10月から木金休日から土日休日に戻るので、10月からはいろいろ参加していきたいですね。
静岡県のWeb/IT系勉強会 http://t.co/5vLOtGg

■セッション
1.基調講演 14:00  14:50
 早稲田大学大学院客員教授、日本Androidの会 会長  丸山不二夫 先生
2.Amazon Web Services 15:00  15:40
 AWS Users Group  Japan 会長  竹下康平 氏
  クラウドパック 後藤和貴 氏
  サーバーワークス 羽柴孝 氏
3.Google App Engine 15:50  16:30
  Google デベロッパーアボドケイト 松尾貴史 氏
4. Ruby on Railsのクラウドでサービスを立ち上げる 16:40  17:20
  シーイーシー インフラストラクチャーエンジニア 廣田哲也 氏
5.Windows Azure Platform 17:30  18:10
  日本マイクロソフト アーキテクトエバンジェリスト 鈴木章太郎 氏
6.オープンソース クラウド最新動向 18:20  19:00
  クラウド利用促進機構 代表理事  荒井康宏 氏

クラウド・カンファレンス in 静岡 Twitterまとめ
http://togetter.com/li/192174

■公開資料
AWSフルマネージドホスティングサービスcloudpack 後藤和貴 氏
http://www.slideshare.net/kaz.goto/awscloudpack-9400829
がんばれ日本。がんばれAndroid 丸山不二夫 氏(今回の資料ではありません)
http://maruyama.cloud-market.jp/download/ABC2011Summer.pdf
Googleは邪悪になったのか?
http://tmatsuo-slides.appspot.com/html/cloud-conference-shizuoka-20110924.html#1

■ブログ
クラウド・カンファレンス in 静岡、この感覚・・・・・・まさか!? kimteaさん
http://d.hatena.ne.jp/kazuki-aranami/20110925/1316940600
クラウド・カンファレンス in 静岡 モチムネさん
http://gameage.blog58.fc2.com/blog-entry-1613.html
【勉強会】クラウド・カンファレンス in 静岡  jacoyutoriusさん
http://t.co/khmY9jC8
静岡クラウドカンファレンスに参加してきた A_Koide0519Nさん
http://d.hatena.ne.jp/A_Koide0519/20110925/1316945121
クラウド・カンファレンスin静岡 ドキターKAZさん
http://memoryart.eshizuoka.jp/e782675.html

■ITホワイトボックス クラウド関連
第24回 これがネットサービスのトレンドだ!!
http://www.nhk.or.jp/itwb/3/programme/24.html#1
第21回 災害時 私たちはITで何ができるのか?
http://www.nhk.or.jp/itwb/3/programme/21.html
第20回 競争激化! クラウド新時代
http://www.nhk.or.jp/itwb/3/programme/20.html
第9回 身近なところで活躍中!クラウド最新事情
http://www.nhk.or.jp/itwb/3/programme/9.html

■その他 まったく関係ないんですが・・・
「20歳を過ぎてからプログラミングを学ぼうと決めた人たちへ」
http://togetter.com/li/189117
第3回 なぜハマる?新ゲームビジネスの秘密
http://www.nhk.or.jp/itwb/3/programme/3.html
オブジェクト指向言語が生まれた必然性を考える
http://d.hatena.ne.jp/amapetas/20110925/1316929859
記事へブログ気持玉 / トラックバック / コメント


Google App Engine (GAE)上のPHPでWebスクレイピング

2011/09/30 23:28
PHPは簡単そうだからと始めた、Google App Engine (GAE)上でのPHPですが、逆にはまりまくって苦労しっぱなし。
素直にPythonかJavaにした方が良かったかもしれないが、せっかくなので勉強がてら苦労してみる。

PHPでWebスクレイピングする上で、「Simple HTML DOM Parser」を使ってみたのですが、サイトによって応答が返ってきません。
http://simplehtmldom.sourceforge.net/

試しに同じプログラムをGAE上のQuercusを使ったPHP環境でではなく、Windows上のIISのPHP環境で動作させたところ正常に応答が返ってきました。



一体、何が違うのだろうと地道に地道に、echoなどを仕組んでデバッグしていきました。
PHPのデバッグに便利な関数 ? 基本編
http://techblog.ecstudio.jp/tech-tips/php/debug-basics.html
Windowsでcurlが使えるようにする。
http://d.hatena.ne.jp/haraguroblog/20080308/1204946449

そして、応答しない原因をついに見つけました。
下記の箇所で無限ループしていたのです。

// restore noise to html content
function restore_noise($text) {
while (($pos=strpos($text, '___noise___'))!==false) {
$key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];
if (isset($this->noise[$key]))
$text = substr($text, 0, $pos).$this->noise[$key].substr($text, $pos+14);
}
return $text;
}



上記関数の少し前に、下記のように変数をセットしているところがあるのですが、
$key = '___noise___'.sprintf('% 3d', count($this->noise)+100);

$this->noiseの値が23であった場合、Windows上のIISのPHP環境では、$key = '___noise___123’となるのですが、GAE上のQuercusを使ったPHP環境では、$key = '___noise___ 123’と数値の前に空白が付いてしまいます。
こうなることにより、restore_noise関数で$key = '___noise___'.$text[$pos+11].$text[$pos+12].$text[$pos+13];としている結果は$key = '___noise___ 12’となり、$textの値が変更されないため無限ループしてしまっていたのです。

よって、sprintf('% 3d' → sprintf('%3d' と空白を除去することで解決することができます。
Quercusのsprintfの書式にバグがあるのかも知れませんが、Simple HTML DOM Parser側に修正してもらうようにBug報告をしておきました。

ちなみに、Google App Engineではソケット通信が制限されているため、file_get_contents関数を使用しているSimple HTML DOM Parserのfile_get_html関数は下記のエラーとなり、使用できません。
java.lang.NoClassDefFoundError: java.net.Socket is a restricted class.
Please see the Google App Engine developer's guide for more details.

file_get_contents関数の代わりにcurl関数を使ってレスポンスを取得をした後に、Simple HTML DOM Parserのstr_get_html関数を使用します。
<?php
include('./inc/simple_html_dom.php');

function curl_get_contents( $url, $timeout = 60 ){
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, $url );
curl_setopt( $ch, CURLOPT_HEADER, false );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_TIMEOUT, $timeout );
$result = curl_exec( $ch );
curl_close( $ch );

return $result;
}

$word = "about";
$data = curl_get_contents("http://endic.naver.jp/srch/all/N/$word?sm=etp_enh");
$html = str_get_html($data);

$e = $html->find('span[class=fnt_k05]',0);
echo $e->plaintext;
?>



RSSを読むくらいなら、Simple HTML DOM Parserを使わなくても、SimpleXmlElementを使えばいいです。
(自作のcurl_get_contentsを使ってレスポンスを取得する部分は先ほどと一緒です)
http://www.facebook.com/note.php?note_id=312002499812

記事へブログ気持玉 / トラックバック / コメント


「あいうえお」が「BDFHJ」に文字化けする理由

2011/09/30 23:25
GAE上のPHPを動作する上で、echo “あいうえお”が “BDFHJ”に文字化けして表示されました。
文字化けするのは文字コードが一致していない部分があるからなのですが、どうしてこのような英文字に変換されてしまうのか疑問に思ったわけです。
ブラウザのエンコードにあるUnicode(UTF-8)、日本語(シフトJIS)、日本語(EUC)、西ヨーロッパ言語(Windows)のいずれかでもない。

ネット上で「あいうえお BDFHJ」で検索するとそこそこヒットしたりします。

■調べてみた結果:
GAE上のPHPを動作させる「Quercus(クァーカス(クエルクス):ラテン語で「樫の木」の意味)」は、Javaで動作しています。Javaの文字列の内部コードはUnicode(UTF-16)となっております。(ちなみに.NETも文字列の内部コードもUnicode(UTF-16)ですね)

つまり、UTF-8で文字コードを設定しても、Javaの文字列内部コード上はUnicode(UTF-16)に変換されてしまうわけです。

Quercusは、既存のPHPアプリを動作させることを優先して文字セットはISO-8859-1(Latin-1)を前提としているようです。
http://www.atmarkit.co.jp/fjava/column/koyama/koyama05_2.html

コンピュータは主にアメリカで発達してきたため、未だにアルファベットや数字などの1バイトを基本単位として扱う前提で作られており、日本語のように多くの文字を必要とする言語は、1文字を表わすのに2バイト以上を使います。

今回の文字化けの現象(あいうえお→BDFHJ)を見る限りは、2バイトではなく1バイトとして扱われてしまったことにあります。

あいうえお の文字コードと BDFHJ の文字コードを比較してみると、上位バイトの30が00と違っていても下位バイトは一致しています。

あいうえお
3042, 3044,3046,3048,304A

BDFHJ
0042,0044,0046,0048,004A

それで、UTF-16からISO-8859-1の1バイト単位に変換されたならば上位バイトの30(文字:0)も変換されて、あいうえお→0B0D0F0H0J になるのでは? と思ったわけです。
そんなことを通勤途中の車の運転中に考えていたら、ふと思いついたんですよね。

「あいうえお」ではなく、echo “BDFHJ”と表示するようにしたとすると、文字列の内部コード上のUTF-16では00を上位バイトに付加したコード(例 B=0042)となります。
これを逆にUTF-16からISO-8859-1の1バイト単位に変換するとしたら、上位バイトは無視して下位バイトだけ取得すればいいわけです。
つまり、「あいうえお→BDFHJ」になるのは、UTF-16に変換後に下位バイトだけ取得して表示しているためです。
(実際は、下位バイトだけ取得後に所定の文字コード(例 UTF-8)に再変換されているはずです。今回は再変換されても表示が変わらなかった)
http://jfriends.javaopen.org/mlarchive_3/msg00135.html


ちなみに、Quercus3.1.6では上記の文字化けしなかったのですが、Quercus4.0以降では文字化けするようになってしまいます。
そんな対処法は下記サイトが参考になります。もっといい方法があるかも知れませんけどね。

QuercusでJavaからの日本語入力を取得して動作させる。
http://poepoemix.blogspot.com/2011/05/quercusjava.html
記事へブログ気持玉 / トラックバック / コメント


Google App Engine (GAE)でPHPを動かしてみる 導入編

2011/09/30 23:22
現時点では、Google App Engineでサポートされているプログラム言語は、PhythonとJavaの2つです。
Javaがサポートされたことにより、Java VM上にPHPやRubyを動かすことが出来ます。

今年の1月中旬に下記を参考にGAEでPhythonを使って「Hello World!」を表示して放置したままでした。
Google App Engineを使って無料でサイトを立ち上げる方法
http://techblog.ecstudio.jp/tech-tips/freewebsite-with-google-app-engine.html
http://www.egashira.jp/#2011/06/first-step-gae
私は認証用の携帯キャリアとしてSoftbankを選択しました。普通の携帯番号ではアカウントコードが送付されてこなかったのですが、+81で頭0を省いた携帯番号(例 +8190xxxxxxxx)にしたらアカウントコードが届きました。

さくらのレンタルサーバー上でPHPを使用していたこともあり、GAE上でPHPが動くなら試しに動かしてみようと気軽な気持ちで「GAE PHP」の検索キーワードでヒットしたサイトを参考にしたのですが、まとに動作するまでにかなりか苦労してしまいました。
苦労した原因としては、出来るだけ最新版を導入しようとしたことと、自分の知識不足です。

■導入した現時点の最新版 OS:Windows7
・Eclipse 3.7.0 Indigo Java Full All in One (JRE あり) http://mergedoc.sourceforge.jp/
・Google Plugin for Eclipse 3.7 http://d.hatena.ne.jp/mitaina/20101021/1287658939
(記事中の3.6→3.7に変更、PHP4Gはインストールしない)
更新83%あたりで、feature.jar 1.4.0 アーティファクト・ファイルが見つかりませんでした。とエラーになり進まなくなるが、Eclipseを再インストールすることで解決した。
・Google App Engine SDK for Java 1.5.3 http://code.google.com/intl/ja/appengine/downloads.html
Google Plugin for Eclipse 3.7のSDKは、1.5.2である。Pluginは必ずしも最新版が入っているわけでない。
自分は、C:\GAEフォルダに展開しました。(SDK1.5.2は、eclipse\plugins\com.google.appengine.eclipse.sdkbundle配下にある。)
・Quercus 4.0.18 http://quercus.caucho.com/  (Quercusは、クエルクスと読むらしい)
Quercus 4.0.1までは、Jetty 6.1.17 のjetty-6.1.17.jar,jetty-util-6.1.17.jar の2つがないとデプロイする時に、'org.mortbay.util.ajax.Continuation' is not a known Java class となる。
Quercus 4.0.3以降からは、Jetty 6.1.17 が無くても動作する。但し、このバージョンからresin.jarのファイルサイズが10MByteを超えるため、デプロイするのにツールのボタンではなく、コマンドライン方式となってしまう。
一番簡単に動かす場合、バージョンを気にしないなら、Quercus 3.1.6とJetty 6.1.17の組み合わせがいいよ。
http://blog-funnel.com/archives/3138
http://blog.daisukeyamashita.com/blog-files/Google%20App%20Engine%20Hackathon%202009-07-24.pdf

※拡張子 war について
Jarファイルの存在は知っていたのですが、warファイルは今回初めて知りました。そのくらいJava関連から遠ざかっています。
中身はzipファイルなので、quercus-4.0.18.warをquercus-4.0.18.zipに拡張子を変更すれば、エクスプローラで展開することが出来ます。
jarとwarの違い http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=5053&forum=12


■環境設定について
普通にインストールすると、Google Plugin for Eclipse 3.7のSDKは、1.5.2であるため、SDKのデフォルトを1.5.3にします。
何かしらのプロジェクト作成後に、App Engin SDKのプロパティを開いて、SDKの構成でSDK for Java 1.5.3を追加してデフォルトにします。
そのままだと、libの中身は、1.5.2のままのため、プロジェクトを再作成します。
JREシステムライブラリーは、jre1.5ではコンパイルエラーとなるため、プロパティで代替JREを jre1.6に変更します。


■設定ファイル(web.xml)について
PHPを動作出来るようになり、echo "Hello World!" は表示できたため、echo "あいうえお"って変更してみると、表示が"BDFHJ"となってしまいました。これは文字コードが怪しいと思い設定ファイルはUTF-8に統一したのですが解決しませんでした。
そもそも、"BDFHJ"になる文字コードって何だって感じで、ネットで調べても既に見たサイトばかりで、もうあきらめようとしたときに「Quercus 4.0 日本語」の検索でひっかかったサイト「TomcatやGlassfishでWordPressが動く〜Quercusを試す - inoccu blog」で既に記事は削除されているため、キャッシュから引用すると「web.xmlには、サーブレットのinit-paramとして、script-encodingがUTF-8だといういかにもそれっぽい記述があったりする。当然、今回作成するweb.xmlにも書きたくなるわけだが、これを書くと日本語は文字化けする。私は、ここで何時間もはまってしまったのだが、正しい答えはscript-encodingに関しては何も書かないことだ。何も書かなければ文字化けしない。」
<init-param>
<param-name>script-encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
設定のUTF-8の行を削除したら、日本語が文字化けしないようになりました。


■デプロイについて
ローカル上で動作するようになったので、デプロイしてみようとすると下記のエラーが発生してしまう。
Unable to update app: Found a jar file too large to upload:
\WEB-INF\lib\resin.jar". Consider using --enable_jar_splitting
これは、GAEでデプロイできるファイルの最大サイズは10Mまでとなっていて、resin.jarは10MByteを超えているためです。
最初、「--enable_jar_splitting」が何のことか分かりませんでしたが、調べるとアップロード時に自動的にjarファイルを分割してくれるオプションであることが分かりました。どうやら、コマンドライン方式によるデプロイにしないとこのオプションを使えないのです。

環境変数に「GAE-SDK」にC:\GAE\appengine-java-sdk-1.5.3\bin を設定します。
また、環境変数PATHにコマンドライン上でもJavaが動作するようにjava.exe が存在するディレクトリの絶対パスを設定します。

デプロイするコマンドは、appcfg.cmd (Windows)または appcfg.sh (Mac OS X、Linux)となります。

例 C:\Users\OWNER>%GAE-SDK%\appcfg.cmd --enable_jar_splitting update デプロイするwarフォルダ
http://code.google.com/intl/ja/appengine/docs/java/gettingstarted/uploading.html
http://d.hatena.ne.jp/imaiworks/20090817/1250507473



画像付きの説明は他サイトにまかせ、文章ばかりで分かりにくいと思いますが、自分が苦労して解決できたことを書きました。
今後、導入する方の助けになれば幸いです。次はプログラム編につづきます。
記事へブログ気持玉 0 / トラックバック 0 / コメント 2


Webサービスで本当にお金が取れるビジネスにするには

2011/09/30 23:21
2011年8月6日、静岡県コンベンションアーツセンター「グランシップ」にて、CSS Nite in SHIZUOKA, Vol.2 が開催されました。
当初は3月12日に開催予定でしたが、3月11日の東北関東大震災の影響により開催を延期されていました。
http://cssnite-shizuoka.jp/vol02/info/entry-167.html

私は3月12日なら行けたわけですが延期となった8月6日では、木金休日の土日出勤となってしまったため、行けなくなってしましました。
よって、CSS Nite に参加してくださった内容をありがたく参考にさせていただきました。
CSS Nite in SHIZUOKA, Vol.2  togetter
http://togetter.com/li/171307

今回のCSS Niteで一番楽しみにしていたのが、メールdeギフトの白形さんの講演でした。
「mixi年賀状」の会社といった方が分かりやすいでしょうか。一応、静岡が本社です。
http://www.maildegift.jp/

ありがたいことに最初のスピーカーであるループス・コミュニケーションズの岡村さんが講演メモを公開してくれました。

「メールアドレスがわかれば住所がわからなくてもプレゼントができる」ってことを発想し他に先駆けてビジネスを展開したわけですが、そこに至るまでは・・・
システムができていないけど、できてる風にばんばん説明
この世界度胸とはったりが重要。ちゃんと作ってたら遅れをとってしまう。

Webサービス立ち上げの経緯と考えるべきこと 講師紹介:白形知津江 (Chizue Shirakata)
http://looops-lab.com/naoto/2011/08/08/mail_de_gift/

Webサービスで本当にお金が取れるビジネスにしたいと思っている方は参考になるのではないでしょうか。

ってタイトルは釣りすぎっすね。

本当は教えたくないSEO!アクセス数が20倍になったブログタイトル32文字の法則
http://www.chrome-life.com/seo/1606/
記事へブログ気持玉 / トラックバック / コメント


「バトル オブ シリコンバレー」をみやがれ!

2011/09/30 23:19
「バトル オブ シリコンバレー」という作品をご存じでしょうか?
これは、マイクロソフトとアップルの壮絶な戦いを創業者たちの学生時代から描いた作品です。
この作品を数年前に見つけて観たいと思ってはいたのですが、AmazonではVHS版しかなかったため、あきらめておりました。
ところが先日TUTAYAに寄ったところ、映画「facebook」の影響により、旧良作品として「バトル オブ シリコンバレー」のDVD版が展示されておりました。
すぐにレンタルさせていただきましたよ。

ツタヤディスカス 「バトル オブ シリコンバレー」
https://www.discas.net/netdvd/dvd/goodsDetail.do?pT=0&titleID=1440486231

【追記】
ニコニコ動画では無料で見れます。
http://niconicomoviematome.seesaa.net/article/118693838.html

アップルはジョブズとウォズニアック、マイクロソフトはゲイツとアレンと学生時代からの友人で創業しました。
アメリカには他にもインテル、ヤフー、ネットスケープなど2人で始めた大会社というのがよくあります。
Apple : Steven Jobs & Stephan Wozniak
Microsoft : William Gates & Paul Allen
Intel : Robert Noyce & Gordon Moore
Yahoo : David Filo & Jerry Yang
Netscape : Marc Andreessen & Jim Clark
Adobe : John Warnock & C.E.Geschke

彼らの創業時は、IBMをペンタゴンと称するくらい、とてもかなう相手ではありませんでした。
そして現在、AppleはIT業界のトップ企業となりました。
1984年からMicrosoftとAppleの歴史を比較したインフォグラフィックがすごい!
http://www.lasical.com/2011/06/24/2385/
http://bit.ly/q2FtAP

この作品は1999年に上映されたもので、映画開始時はAppleが1984年に作成したコマーシャルのメイキングで始まります。
http://cnettv.cnet.com/1984-apple-commercial/9742-1_53-15243.html
そして最後は、1997年の8月にボストンで開催されたマックワールドエキスポでマイクロソフトと業務提携を発表し、最大のライバルとされたビル・ゲイツがエキスポのゲストとしてスクリーンに登場するところで終了します。

この作品を見る上で、ある程度の歴史を辿ってみると面白いかも知れませんね。

■アップル社の軌跡
タイムライン--アップル30年の軌跡 http://japan.cnet.com/news/commentary/20099841/
No.100 Wow ! Mac とマイクロソフトの 20 年を振り返る http://bit.ly/nhxsYj
No.108 − Mac、20 年の革新を振り返る http://bit.ly/rs6H7S
No.116 − ビル・アトキンソンが明かす Mac 誕生秘話 http://bit.ly/nfCVdN
No.161 - アップルの 30 年を、3つのスコープで振り返る。 http://bit.ly/rejRdH
29歳のスティーブ・ジョブズ、iPLAYBOYで読んでみました http://www.gizmodo.jp/2011/07/29woplayboy.html

■アップル社のロゴマークトリビア(諸説あるので正確ではない部分もある)
・リンゴが欠けているのは、bite(ひとくち)byte(バイト)の言葉をかけているため。
・現在は単色だが、以前は虹色の赤・橙・黄・緑・青・紫の6色、またロゴの色は虹の配色とは違い、上から緑、黄、橙、赤、紫、青であり、既成概念にとらわれないこと表現している。日本では虹色は7色だが、英国・米国では6色である。
・初期のロゴはリンゴではなく、リンゴの木にもたれかかって本を読んでいるアイザック・ニュートン。
・虹色のロゴは、モノクロ全盛時にAppleIIはカラー出力ができ、その優位性を誇示する狙いがあった。
・リンゴは英語名【McIntosh】で、日本語名は【旭】という品種で【McIntosh】と名付る予定が、他者製品があったため間に「a」を入れて【Macintosh】となった。
http://www.mactechlab.jp/Lab.Letters/files/f3ab0acedca9fd27d4a5efd0e21ee6b8-271.html
http://allabout.co.jp/gm/gc/296873/

■その他
スティーブ・ジョブズの娘リサ(7才の時に認知)。マックの前身のLisaの名前の由来と言う噂の人です。リサさんは、今はヴォーグなどでライターとして活躍してるとのこと。 写真:http://bit.ly/qKU7U3

マイクロソフトがMS-DOSの基になったQDOSを1981年7月にシアトル・コンピュータ・プロダクツ社 (SCP)からわずか購入した50,000 ドルで買い取るわけです。
その後、マイクロソフトがオペレーティングシステムを安く買い取るために IBM との関係を秘密にした(関係を示すことが IBM との秘密保持契約 (NDA) に反するとしても)と SCP は 主張し、最終的には 100万ドルで和解しました。
シアトルにマイクロソフト本社(正確にはシアトルの隣町のレッドモンド)があるのは、ビル・ゲイツの生まれ故郷が理由だと思うのですが、QDOSを開発した会社もシアトルにあったというのは、今思うと運命的な気がしますね。場所は関係ないのかも知れませんが、シリコンバレーでなかったわけです。


映画の「facebook」も見たけど、「バトル オブ シリコンバレー」の方がよっぽど起業家精神をふつふつを湧き起こらせる作品となっております。
記事へブログ気持玉 / トラックバック / コメント


ヤマハがルーター事業に取り組んだ理由

2011/09/30 23:17
7/16(土)に第7回 静岡ITPro勉強会が行われました。

テーマは、「ヤマハルータはどのような存在なのだろう?」
講 師は、ヤマハ株式会社 平野さんです。
http://projectphone.typepad.jp/blog/

静岡ITPro勉強会7 Togetter
http://togetter.com/li/162214
資料:第7回静岡ITPro勉強会at 2011/7/16
http://projectphone.typepad.jp/pdf/shizuoka_itpro7-20110716.pdf

私は木金休日の土日出勤となってしまったため、勉強会には行けませんでしたが、みなさんがまとめてくれているので参考にさせていただきました。
今回も評判が良かったようで、なによりです。
そういえば、ヤマハって山葉さんって方が作った会社なんですね。

さてさて、ヤマハといえばピアノもしくはバイクの会社という認識が高いと思います、そんな会社がなぜルーターを作成したのか?
電子キーボード『DX7』の開発にあたって、高度なDSP(デジタルサウンドプロセッサ・サラウンドプロセッサ。音声演算回路)を自社開発していた。
この技術を通信分野で生かせないかと考えて、18年前(2005年時)に作ったのがファクス用モデムLSIだった。国内では売れなかったものの、米国で“PCファクス”として採用され、月産20万個も売れることもあった。
その後、ISDN用LSIを開発し、1993年には通信カラオケに利用され、1995年にはTA機能を内蔵したルーターを開発して中小企業などに安く導入できる製品として好評だった。
http://ascii.jp/elem/000/000/346/346153/

【ヤマハの歴史】
・最初は輸入オルガンの修理→楽器関係作る
・楽器やってた流れで電子楽器も作る→DSPも作る
・DSPを他に利用しようとして→ルータ作る
という流れで、楽器、電子機器、ネットワーク関係の製品を作るようになった。

じゃ、なんで発動機や家具とかも作ってるかというと、

・ピアノの修理で木工のノウハウが溜まる→家具を作る→住宅設備も作る
・戦時中に軍から「家具作ってるんだから木製のプロペラ作れるだろ」といわれて戦闘機のプロペラ作る→ついでにエンジンも作る
・エンジン作ったから→バイクも作る
・エンジン作ったから→船も作る→船体作るのにFRP(ガラス繊維強化プラスチック)を作る
・FRPを利用して→ウォータスライダー→ついでにプールも作る
・プールの水濁ったんで→浄水器作る
・失敗作の浄水器で藻が大繁殖→藻の養殖始める→バイオ事業化
http://alfalfalfa.com/archives/00179.html

いやはや、失敗しても副産物で事業化しちゃうんですね。

そうそう、YAMAHAってMSXを作ってたんだった。
http://bit.ly/q8FMJB

岩井俊雄、MSXとの出会いを語る
岩井さんはもともと作曲する目的でヤマハのMSXを購入された後、AmigaとMSXを用いて映像を作り出しフジテレビ の子供向け番組「ウゴウゴルーガ」が社会現象を呼ぶに至る
http://bit.ly/oTRHNm
記事へブログ気持玉 / トラックバック / コメント


「Java(Script)」という表記

2011/09/30 23:13
JavaとJSの区別がつかないベンチャーナウが意味なく頑に修正要請に応じないという謎
http://togetter.com/li/142146

確かにJavaとJavascriptは違うものだけど、名前が似ているので混同しやすい。Java開発者かどうか見分ける質問にも使えるとかww
もともと、JavascriptはLivescriptって名前だったけど、当時はJavaが注目されていてバズワードになっていたため、その人気にあやかろうとしてJavascriptという名前に変更した経緯がある。
http://www.atmarkit.co.jp/fwcr/rensai/imasara02/imasara02_3.html


就職活動中の女子大生にJavaとJavaScriptの違いを説明してみる
http://wise9.jp/archives/2238
はてなブックマークでは「インドとインドネシア」のコメントに★が多くついていて、名前が一緒でも違うものだよと説明するには丁度よさそうだ。
他にも「オーストリアとオーストラリア」もあった。

今回で表記に従えば、「インド(ネシア)」としているようなもんなんだけど…。

インドという名称は、現在の独立国としての国名インドとは別に、ヨーロッパから見て西に向かう航路の先にある地域全体を指す名称だそうで
ネシアっていうのはギリシャ語で島々って意味で、インドネシアはインド地域にある島々の国という由来とのこと。


インドとインドネシアの違いってなんですか?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1431589919
インドネシアはインドと関係がないのになぜインドが付くの?
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1415727159

オーストリアとオーストラリアは似てるけどなぜ
http://oshiete.goo.ne.jp/qa/1010944.html
記事へブログ気持玉 / トラックバック / コメント


[Javascript] 関数型パターンによる継承

2011/09/30 23:11
5月28日に、静岡Developers勉強会「第3回JavaScript読書会」を開催しました。
http://www.haskell.shizu-dev.org/
勉強会では、「JavaScript: The Good Parts ―「良いパーツ」によるベストプラクティス 」の本を使用しております。
今回のテーマは「5章 継承」でした。 継承パターンとして、「プロトタイプ型の継承」と「関数型の継承」の2パターンについて説明があります。
「プロトタイプ型の継承」については、一般的な方法であるため、すぐに調べることが出来たのですが、
「関数型の継承」については、この本の説明や検索しても少なくてすぐには理解しにくかったです。
特に「eventuality」の使用方法とか書いてないし、どうやって使うの?って状態でした。

■関数型の継承メリット
プロトタイプ型の継承は、オブジェクトのすべてのプロパティが外から丸見えで、プライベート変数やプライベートメソッドを利用することができない。
関数型の継承は、大きな柔軟性を持っておりカプセル化と情報隠蔽を行うことができ、継承元のメソッドへアクセスすることもできる。

下記のサイトを参考になんとかサンプルを作成してみました。
http://d.hatena.ne.jp/t_gaisho/20100731/p2
http://docs.komagata.org/4472
http://tech.actindi.net/3478908901

いいサンプルが思い浮かばず、お風呂に思いついた、身長と体重からBMIを計算する案に落ち着きました。
BMIは、体重 ÷ 身長の2乗 で求めることが出来ます。
今回、このBMIの計算部分を Private に、出力部分をPublicにしてみました。
var eventuality = function(that) {
var registry = {}

that.fire = function(event) {
var array, func, handler,
type = typeof event === 'string' ? event : event.type

if (registry.hasOwnProperty(type)) {
array = registry[type]
for (var i = 0; i < array.length; i++) {
handler = array[i]
func = handler.method
if (typeof func === 'string') {
func = this[func]
}
func.apply(this, handler.parameters || [event])
}
}
return this
}

that.on = function(type, method, parameters) {
var handler = {method: method, parameters: parameters}
if (registry,hasOwnProperty(type)) {
registry[type].push(handler)
} else {
registry[type] = [handler]
}
return this
}

return that
}

//Human classfunction human(spec,my) {
var that = eventuality({})
my = my || {}
my.bmi = -1

//Private Method
my.calc_bmi = function(){
h = spec.height / 100
my.bmi = Math.round(spec.weight / (h * h))
}

//Public Method
that.out_bmi = function() {
my.calc_bmi()
alert(spec.name + " BMI = " + my.bmi)
}

//Event Method
that.on('print', function(){
alert(spec.name + ' Height = ' + spec.height + ',Weight = ' + spec.weight);
});

return that
}

//Student classvar student = function(spec) {
var that = human(spec),
super_out = that.out_bmi;

that.out_bmi = function() {
super_out() // super class method }
return that
}

//Mainvar myHuman = human({name : 'hanako',height : 158,weight : 40})
myHuman.fire('print')
myHuman.out_bmi()
//myHuman.calc_bmi() //private method can not access

//humanを継承
var taro = student({name : 'taro',height : 175,weight : 60})
taro.fire('print')
taro.out_bmi()
記事へブログ気持玉 / トラックバック / コメント


Excelシート名一覧取得ツール

2011/09/30 23:00
同僚から「Excelのシート名の一覧が欲しいんけど、取得する方法ないかな?」とのこと、シート名をクリックしてコピー&ペーストすれば出来るけど、たくさんあると結構面倒くさいものです。
さくっとネットで調べまして、下記サイトの方法により簡単に取得することが出来ました。
http://ozakih2000.blog.so-net.ne.jp/2007-07-05
1.ALT+F11を押下(VBAエディタが起動)
2.CTRL+Gを押下(イミディエイトウインドウが起動)
3.「For Each i In ThisWorkbook.Sheets: debug.print i.name : next i」をタイプしてEnterを押下
4.シート名をコピー
5.VBAエディタを閉じる


さて、今回の件でネット上で「Excel シート 一覧」で検索していると、意外とExcelのシート名の一覧が欲しいって要望があるんですね。
上記の方法では複数のExcelファイルがあった場合、1つ1つExcelファイルを開かないと取得できないので面倒です。(もっとも、複数ファイルを一度にやることがあるのかな?)

ならば、Excelファイルをドラッグ&ドロップすれば、クリップボードにシート名の一覧が転送されたら便利だろうなと思い、久しぶりにVBScriptを使って、Excelのシート名一覧を取得するツールを作成してみました。

使い方は、「Excelシート名一覧取得.vbs」をデスクトップ(または指定フォルダ)に置き、該当のExcelファイル(複数可能)または、それを格納しているフォルダをドラッグ&ドロップしてください。
すると、クリップボードにファイル名とシート名一覧が転送されます。

注意として、クリップボードの転送機能でInternet Explorerを使用しています。Internet Explorer 7以降のバージョンを利用した場合、「この Web ページがクリップボードへアクセルするのを許可しますか」の警告ダイアログが表示されることがありますので、「アクセスを許可する」を選択してください。

Excelシート名一覧取得.vbs



Excelシート名一覧取得.vbsの中身は非常に単純であるため、必要であれば改変してご自由に使用してください。

ついでに、Excelシート集約ツールを拡張子「xlsx」に対応しました。
http://blogs.wankuma.com/yaju/archive/2008/09/08/155811.aspx
記事へブログ気持玉 / トラックバック / コメント


クラスはたい焼きの型といった説明

2011/09/30 22:58
オブジェクト指向を学んだときに、クラスはたい焼きの型という説明の記事があって
私も以前、作成したオブジェクト指向の資料でもそのような説明で書きました。

それはちょっと違うんだよと言われた時に、分からなかったわけですが
今頃、ateosさんの資料を見て、理解した感じがしました。
「コードレス オブジェクト指向」 Lv3くまー by シャノン(現 aetos)さん
http://www.wankuma.com/seminar/20070721tokyo10/5.ppt
http://www.wankuma.com/seminar/20070721tokyo10/Default.aspx

資料の一部を引用すると
「クラス」は分類で、下記の2種類がある。

1.相対的な特性によって区別される性質や形態。タイプ。
「新しい―の車」「―によって分類する」 –英語ではType。

2.同種類の物を幾つも作る時、基にする枠や紙。ひながた・鋳型・型紙など。
「石膏(せっこう)を―に入れる」「―を取る」 –英語ではMold。


「たい焼きの型」みたいに「同じ形のインスタンスをたくさん作るためのもの」という説明は、わかりやすいけど、あまり正しくない。のは、
2.Moldを指してしまっているからで、本来は1.Typeである。

っていう理解でよろしいでしょうか?
記事へブログ気持玉 / トラックバック / コメント


運用というものを考えてみよう

2011/09/30 22:56
2/26に行われた第6回静岡ITPro勉強会です。
http://togetter.com/li/105924

波田野さんの話はとてもためになるお話でした。
普段、開発をしていて運用のことをあまり考慮していなかったので、運用のことを真剣に考えるいい機会を頂きました。

いい資料なので読んでみることをお勧めします。

運用現場の現状と課題
http://www.jus.or.jp/~hatano/tmp/20110226-shizuoka-itpro-operation.pdf

運用を見据えた障害監視 〜障害監視フレームワーク〜
http://www.jus.or.jp/~hatano/tmp/20110226-shizuoka-itpro-monitor.pdf


Think ITにて、波田野さんの連載記事
第1回 見えない「運用」 - 疲弊する運用現場 .
第2回 自分たちの「運用」を知る - 運用設計の本質
第3回 明日の運用現場のために - 運用フレームワークという視点 .
http://thinkit.co.jp/taxonomy/term/3076


波多野さんが汎用の整理術としてのオブジェクト指向を使っていた。
それで、思い出したのがaetosさんの資料です。
「コードレス オブジェクト指向」 Lv3くまー by シャノン(現 aetos)さん
http://www.wankuma.com/seminar/20070721tokyo10/5.ppt
http://www.wankuma.com/seminar/20070721tokyo10/Default.aspx
記事へブログ気持玉 / トラックバック / コメント


ある妻がプログラマの夫に買い物を頼んだら・・・

2011/09/30 22:48
元ネタ先 : http://dailynewsagency.com/2011/02/16/programmer_jok
Twitterでつぶやいたら結構反応がありましたw わんくまを見る人はすぐに分かりますよね。
http://ja.favstar.fm/t/40014252261515264


ある妻がプログラマの夫に「買い物にいって牛乳を1つ買ってきてちょうだい。卵があったら6つお願い」と言った。夫はしばらくして、牛乳を6パック買ってきた。妻は聞いた「なんで牛乳を6パックも買ってきたのよ!」夫いわく「だって、卵があったから……」
記事へブログ気持玉 / トラックバック / コメント


日本語のOCR

2011/09/30 22:46
pdfの資料が送られてきて、一部の内容をテキスト選択してメモ帳にコピーしたかったのですが、すべて画像形式になっているらしく、テキストとして選択することが出来ませんでした。

それで、日本語のOCRでフリーなものを探したんですが、SmartOCR Lite Edition の配布は2006年に終了。クセロReader ZEROのOCR機能のフリー版、これも2009年7月に配布が終了していた。

さらに検索すると、「Microsoft Office Document Imaging」というOCRがあることが分かりました。
これはoffice2003、2007には存在しているようで、標準のインストールをしている場合には入っていないため、インストールする必要があります。
幸い会社のOfficeが2007であることから、下記のリンクを参考にインストールしました。

2007版:【 2007 Office プログラムに同梱されている Microsoft Office Document Imaging プログラムで .mdi ファイルが開かない 】
http://support.microsoft.com/default.aspx/kb/926198/ja
2003版:【 Microsoft Office Document Image Writer インストール方法 】
http://blog.vichou.net/?eid=272437

目的のpdfを画像コピーしてPaintにてtiffファイルで保存、Microsoft Office Document Imagingを起動してtiffファイルを読み込む。
これによってテキストに変換することが出来ました。日本語OCRとしては、十分に使えます。
http://www.itmedia.co.jp/enterprise/0310/21/epn13.html


あと、「Microsoft Office Document Imaging *.* Type Library」として参照することで、プログラムを組むことも出来るようです。
静止画の文字認識
http://hpcgi1.nifty.com/MADIA/VBBBS/wwwlng.cgi?print+200805/08050013.txt
画像の文字読み取りコンポーネントを探しています
http://bbs.wankuma.com/index.cgi?mode=al2&namber=51622&KLOG=87

そういえば、Evernoteに日本語OCR機能があるってことで試してみたのですが、確かに検索すると画像の文字がハイライトされるようになっているのですが、その画像をテキストとしてコピーすることは出来ませんでした、残念。もしかしたら方法があるのかも知れませんけどね。
記事へブログ気持玉 / トラックバック / コメント


TitaniumMobile(タイタニウムモバイル)勉強会@浜松に参加

2011/09/30 22:45
2011/01/15(土)に浜松に行われたTitaniumMobile勉強会@浜松(http://atnd.org/events/11338)に参加してきました。
Togetter - 「TitaniumMobile勉強会@浜松 まとめ」http://togetter.com/li/89776

■TitaniumMobileについて
•発音 カタカナ表記は「タイタニウムモバイル」
•基本的にJavaScriptのみで記述し、Objective-CやJavaで書くことなくiOS と Android 向けのネイティブアプリケーションを開発する事ができます。

実は勉強会に応募するまで、TitaniumMobileについて何も知りませんでした。
IT勉強会カレンダーで1月の勉強会を検索してたまたま見つけてiPhoneの開発が出来るみたいってことで、そこから調べはじめました。

Titaniumで始めるモバイルアプリ作成の基礎知識
http://www.atmarkit.co.jp/fsmart/articles/titanium02/01.html
Titanium Mobileで作る! iPhone/Androidアプリ
http://gihyo.jp/dev/serial/01/titanium
titanium-mobile-doc-ja
http://code.google.com/p/titanium-mobile-doc-ja/
Titanium Mobile についての勉強会資料
http://d.hatena.ne.jp/naoya/20101020/1287542202
Titanium Mobileで Android SDK の環境設定につまずく(Couldn't find adb or android in your SDK's "tools" directory.)
http://jmblog.jp/archives/744

■•講師:増井雄一郎さん
現在、TitaniumMobileの開発している米Appcelerator社のテクニカルエバンジェリストをしております。
Webエンジニア武勇伝—
■第5回 http://web-engineer.buyuden.net/buyuden/2009/10/5.html
■第41回 http://web-engineer.buyuden.net/buyuden/2010/12/41masuidrive-appcelerator-inc.html
お風呂でもプログラムしている人として認知されてしまっているようですw


今回、TitaniumMobileの説明、アメリカの渡った話、ライブコーディングと3時間程しゃべり続けていただきました。
大変おもしろかったです、お疲れ様でした。

資料が公開されていてiMacでは見れましたが、Windowsでは「リンク先には書類が存在しません。」になってしまいます。
http://bit.ly/ti-hamamatsu  追記:ブラウザをsafariにすればWindowsでも閲覧可能となります。

静岡でも勉強会が増えてきました、この勉強会も2回目、3回目と続くといいですね。
記事へブログ気持玉 / トラックバック / コメント


さくらのレンタルサーバー上のMySQLにODBC接続する

2011/09/30 22:43
さくらインターネット上にレンタルサーバ (スタンダード)を借りました。
これで、PHPとMySQLを使用したサイトを作成しようとしています。

とりあえず、試しにMySQLで簡易的なテーブルを作成し、PHPにてテーブル内容を一覧を表示するだけのものを作成しました。
これから本格的なものを作成する上で、データベースの操作するGUIツールを使って簡易的に登録出来ればいいなーと思って調査しました。
今回は「さくらインタネットにodbc接続」のサイトを参考にしました。http://bit.ly/eDQahz

さくらインターネットのスタンダードプランは、セキュリティを考慮して外部接続ができないとのことで、telnetにてssh forward を指定する事で、local の odbc 接続として使用します。
telnetとしては、Windows用のターミナルエミュレーター「TeraTerm」を使用します。
TeraTerm Home Page http://ttssh2.sourceforge.jp/

MySQLコネクタ ODBC Driver for MySQL (Connector/ODBC)
http://www-jp.mysql.com/products/connector/

データベースの操作するGUIツールは、今回「A5:SQL Mk-2」を使用しましたが、ODBCが接続できるツールなら何でもいいです。
http://www.wind.sannet.ne.jp/m_matsu/developer/a5m2/

■TeraTerm上の設定
・新しい接続
TCP/IP ホスト:さくら登録時のドメイン名 例 hoge.sakura.ne.jp
TCPポート:22(デフォルト設定)
サービス:SSH(デフォルト設定)

・SSHポート転送
メニューバー→設定(S)→SSH転送(O)→追加
ローカルのポート:3306
リモート側ホスト: さくら側のデータベースサーバ 例 mysql999.db.sakura.ne.jp
(さくらインターネットコントロールパネルのデータベースの設定を見る)
ポート:3306
※メニューバー→設定(S)→設定の保存(S)をしておくといい。

■ODBCの設定 MySQL Connector/ODBC
コントロールパネル→管理ツール→データソース(ODBC)のセットアップ
ユーザーDSN(システムDSNでも可)で追加→MySQL ODBC 5.1 Driver
Data Source Name:MySQL(何でもいいです。)
TCP/IP Server:localhost
Port:3306
User:データベースのユーザー名
Password:データベースのパスワード
Databasae:データベース名
(さくらインターネットコントロールパネルのデータベースの設定を見る)


設定が終われば、TeraTermを起動して、データベースツールで設定したODBCを選択することで、MySQLのテーブルが参照できるようになります。
記事へブログ気持玉 / トラックバック / コメント


日本最大の料理教室 ABCクッキングスタジオ成功の理由

2011/09/30 22:41
静岡発!日本最大の料理教室 ABCクッキングスタジオ成功の理由
http://www.b-nest.jp/news/seminar/e76c141160d5ced96cf823a6a6706b34.html

静岡駅の中には、ガラス張りの料理教室があって女性達が楽しそうに料理をしています。
それを運営している会社が「ABC Cooking Studio」です。

12/17(金)に最初は静岡県藤枝市の小さなビルから始まった料理教室が、日本最大の料理教室になるまでを創業者の志村なるみさんと小川先生を交えたセミナーに行ってきました。そのメモ内容で、自分の意見は無いですね。

年間200億の売上、生徒数約24万人、講師数約3,500人、112のスタジオ。年間入会者数約7万人のうち多くが既存生徒のご紹介で入会と口コミ効果が大きい。料理教室という箱物ビジネスで、仕事終わりのOLが集まる17:00〜20:00は利用率が高いが、それ以外の時間、特に午前中など空いてしまいもったいなかった、空いている時間はミセスの集客をすることで利用率を高めることが出来た。

・分野が違っても手の届く範囲に一流の人がいること
藤枝というサッカーが盛んなところで、藤枝東高校が全国一になってパレードをみたり友達が新聞記事の一面を飾ったりなど日本一が身近にあり、設立当初から日本一を目指すという目標を立てることが出来た。

解説:自分のレベルをあげるなら、一流の人と身近になること。一流の人というのは差別をしないので、知り合った方がよい。
メモ:少し違うけど、自分がモテたいと思うならモテル人と仲間になること、モテないグループにいたところで傷のなめあいになるだけだよね。

・企業理念「世界中の笑顔のあふれる食卓を!!」
設立の理念を25年経っても守っている。あくまでビギナーの人のみを対象としていて、上級を目指す方は専門学校にまかせるように割り切っている。

講師も生徒が選べるようにしている、講師といってもサービス業なので人気のない先生は淘汰される。そういうことを伝えて了承してもらって講師をお願いする。生徒の50%が先生で検索して予約する、残り50%が曜日や日時で検索して予約する。
従来の料理教室は講師が1人で大勢の生徒が囲むスタイルだが、ABCでは講師1人に対し生徒5人と少人数制で行っている。

解説:サービス業に徹した、サービスする人と受ける側の差が無い。
教える側と教わる側/企業と消費者 シキイをなくす、カベを取る。

・ガラス張りの教室にしたことによる効果
大宮のロフト店で初オープン、ロフト側も当初はキッチングッズを2倍にしたいという目的があった、ガラス張りにしたのは楽しさ・華やかさが伝わりやすいため。カフェと間違って来るお客様がよくいた、またガラス張りにしたことで、男性の人がよく覗いていた、何日も覗いている人がいると思ったら、実は不動産系の営業マンの方で物件も模索していたとのこと。

スクールの集客に繋がるメリットがあった一方、ガラス張りで嫌になる生徒さんもいて、どうしても嫌なら退会してもらった。
大宮のロフト店が好評となり、これを機に生徒さんが急増、今までスタジオの場所を頭を下げて依頼していたが、逆にお願いされるようになった。

・女性だけでうまくやっていくには?
女性のみだから日本一という目標を一致団結できた、男性がいると男性は浮気性なので他の事業に行きがちになったと思う。
女性だけでうまくやるには、「えこひいきをしないこと」。
採用には特にこだわっていて、同姓に好かれる女性、前向きで元気がよくて、過去にインターハイや生徒会長や受験をがんばった人など実績がある人を採用している。つまり、入口できびしく優秀な人だけをふるいにかけている。


小川 孔輔氏、志村なるみさん(ABC Cooking Studio) インタビュー
http://www.kosuke-ogawa.com/?eid=887#sequel

女性の起業家はチャーミングな人が成功すると言われていますが、その通りの人でした。また、志村さんはすごく運がいい人です。運がいいの一言で済ませてしまうのはどうかと思うけど、やはり成功する人は何かもっているんです。
記事へナイス ブログ気持玉 1 / トラックバック 0 / コメント 0


アジャイルプラクティスのWeb上の資料

2011/09/30 22:40
積読本になっていた「アジャイルプラクティス 達人プログラマに学ぶ現場開発者の習慣」を通勤電車内で読み終わりました。
付録の参考資料に「Web上の資料」があったけど、Web検索しても一覧サイトが見つからなかったので地道に入力しました。
中身が英語なので全然読めてませんし、あと古いためにリンク先があやしいですが提示しておきます。
(リンク先が怪しいのはタイトルに「*」マークを付けておきました、完全に駄目なのは一覧から除外しました。)

☆天使の助言☆ 日本語版
http://www.ohmsha.co.jp/data/link/978-4-274-06694-8/

Agile Developer
http://www.agiledeveloper.com/downloads.html
ヴェンカット・サブラマ二アムによる記事および発表資料を閲覧できる、Agile Develoer社のダウンロードページ

Andy's Blog
http://toolshed.com/blog
アンディのブログはさまざまな話題を幅広くカバーしている。ソフトウェア開発についてもいくらかは扱っている。

Anthill
http://www.anthillpro.com/html/default.html
ビルドプロセスの制御(継続的インテグレーション)と組織内での知識共有を促進するためのツール。

Continuous Integration
http://www.martinfowler.com/articles/continuousIntegration.html
継続的インテグレーションの利点を紹介している。

CruiseControl
http://cruisecontrol.sourceforge.net
Javaアプリケーション向けの継続的インテグレーションツール。
C#に移植した.NET版(CruiseControl.NET http://sourceforge.net/projects/ccnet)や
Ruby版もある(CruiseControl.rb http://cruisecontrolrb.thoughtworks.com)

Draco.NET
http://draconet.sourceforge.net
Windowsサービスとして実装された、.NET向けの継続的インテグレーションツール。

Devendency Inversion Principle
http://c2.com/cgi/wiki?DependencyInversionPrinciple
「依存関係逆転の原則」を紹介する短い解説。

FrameWork for Integration Testing
http://fit.c2.com
顧客が想定する期待値とプログラムの出力を自動的に比較するコラボレーションツール。

*Infomation Radiator
http://c2.com/cgi-bin/wiki?InfomationRadiator
アリスター・コーバーンの「情報発信器」に関する議論。

Is Design Dead?
http://www.martinfowler.com/articles/designDead.html
マーティン・ファウラーによる、アジャイル開発における設計の意義と役割を論じた素晴らしい記事。

JUnit
http://www.junit.org
Junitやそのほかの xUnitテスティングフレームワークを使っている開発者のためのサイト。

JUnitPerf
http://www.clarkware.com/software/JUnitPerf.html
JUnitテストでパフォーマンスやスケーラビリティの測定を行えるようにするJUnitの拡張ライブラリ

NUnit
http://sourceforge.net/projects/nunit
NUnitを使うソフトウェア開発者のためのサイト。

Object-Oriented Design Principles
http://c2.com/cgi/wiki?PrinciplesOfObjectOrientedDesign
さまざまなオブジェクト指向設計原則が集められている。

Object-Relational Mapping
http://blogs.tedneward.com/2006/06/26/The+Vietnam+Of+Computer+Science.aspx
有名な「O/Rマッピングはコンピュータサイエンスのベトナムだ」という言葉を含む、
デッド・ニューワードによるフレームワークに関する文章。

Open-Closed Principle
http://www.objectmentor.com/resources/articles/ocp.pdf
「オープン・クローズドの原則」の例と制限を含む解説。

Open-Closed Principle:Short Intoduction
http://c2.com/cgi/wiki?OpenClosedPrinciple
「オープン・クローズドの原則」をめぐる賛否両論。

Pragmatic Programmer
http://www.pragmaticprogrammer.com
Pragmatic Programmerのホームページ。Pragmatic Boolshelfの書籍のページと、開発者やマネージャ向けの情報がある。

Single Responsibility Principle
http://c2.com/cgi/wiki?SingleResponsibilityPrinciple
「単一責任の原則」について述べ、関連記事および議論へのリンクを提供している。

*Software Project Management Practices:Failure versus Success
http://www.stsc.hill.af.mil/crosstalk/2004/10/0410Jones.html
ケイパー・ジョーンズは、250ものソフトウェアプロジェクトの成功事例と失敗事例を分析している。

Test Driven Development
http://c2.com/cgi/wiki?TestDrivenDevelopment
テスト駆動開発の紹介。

*The End Of SOftware Engineering and the Start of Economic-Cooperative Gaming
http://alistair.cockburn.us/crystal/articles/eoseatsoecg/theendofsoftwareengineering.htm
アリスター・コーパーンは、ソフトウェア開発をソフトウェアエンジニアリングとしてかんがえるべきかどうか疑問を投げかけ、新しいモデルを紹介している。

*Tragedy on the Somme: A Second Balaclava
http://www.worldwarl.com/sfsomme.htm
http://ja.wikipedia.org/wiki/%E3%82%BD%E3%83%B3%E3%83%A0%E3%81%AE%E6%88%A6%E3%81%84
第一次世界大戦の「ソンムの戦い」について書かれている。

Why Your Code Sucks
http://www.artima.com/weblogs/viewpost.jsp?thread=71730
コードの品質について述べたデイヴ・アステルによるブログエントリ。

XPProgramming.com
http://www.xpprogramming.com/
テストツールも含めた、XPに関する情報サイト。

You Aren't Gonna Need It
http://c2.com/cgi/wiki?YouArentGonnaNeedIt
「YANGI原則」についての賛否の議論。
記事へブログ気持玉 / トラックバック / コメント


日本の検索エンジンの現状

2011/09/30 22:14
日本では、3大検索エンジン「Yahoo(YST)」、「Google」、「Bing」が主流となっています。
米国や欧州ではGoogleが利用率が高いですが、日本はGoogleよりYahoo!が利用率が高いです。
http://www.atmarkit.co.jp/news/200606/14/yahoo.html

以前、日本では「Yahoo!」「goo」「Exicite」「infoseek」「Fresh eye」など各社が独自の検索エンジンを持っていましたが、日本に「Google」が上陸すると、ほとんどの検索エンジンが「Google」を採用しました。
その後、Yahoo!がYSTを開発するとGoole脅威論からか各社もGoogleからYSTを移行していきました。

2009年6月にマイクロソフトが「Bing」を投入すると、米Yahoo!とマイクロソフトの提携により、米Yahoo!もYSTからBingに移行となりました。
ところが、Yahoo! Japanでは、2010年7月にGoogleの導入を発表し、日米による「ネジレ現象」が起こっている。というのが現状です。

では、YSTを採用していた各社の検索エンジンは、その後どうなったのか?
11月18日に下記の記事が出ていました。
「大手ポータルサイトの検索エンジン、自然検索結果が Google に」
http://www.sem-r.com/news-2010/20101118135649.html
Infoseek楽天、Excite、ODNなど、軒並み自然検索結果の内容がGoogleのものに切り替わっていることを確認した。@niftyはYSTのままだった。11/24 FresheyeもGoogleに切り替わった。


Goole脅威論が再び!

2010年6月版 検索エンジン相関図
http://www.alphaseo.jp/seo-report/100629_111020.html
記事へブログ気持玉 / トラックバック / コメント


設定ファイルの文字コードによる導入失敗

2011/09/30 22:09
休日出勤して、会社で開発したアプリケーションのバージョンアップを某工場へ
リモートで導入作業をしてきました。

導入手順書に従って、動作確認手前までスムーズに進行していたんですが
動作確認でエラーが発生して、ぜんぜん動作しなかったのです(T^T)

導入手順書を見直しても、設定内容やアクセス権限を見ても問題ありませんでした。
今回は確認者として、開発者が同席していたので、デバッグして調べてもらいました。

その結果、原因は設定ファイル(XML形式)の文字コードがUTF-8になっていなかった
ため、設定情報が取得出来ていなかったのです。
確かにブラウザ上で、その設定ファイルを開くと正常に表示されませんでした。


バージョンアップ前の設定ファイルとバージョンアップ後の設定ファイルには項目が2つ
追加されていることと日本語のコメントが項目ごとについている違いがありました。

私が導入準備の際に、バージョンアップ前の設定ファイルをファイルコピーした上で
メモ帖で項目が2つと日本語のコメントを追加して上書き保存したことが問題でした。

原因が分かり、予定より2時間程オーバーしてしまいましたが、動作確認も無事終えて
導入作業が完了しました。今回は開発者が傍にいてデバッグで原因を追跡できたけど
電話でやりとりしていたら、きっと解決できずに終わっていたでしょう。

導入手順書には「設定ファイルをブラウザ上で正常に表示できるか確認する」を追加
するようにしました。


でもでもー、いいわけしちゃうならば・・・
そもそもバージョンアップ前の設定ファイルの文字コードがUTF-8になっていなかったのが
悪いんです、それで問題なく動作していたのは、日本語のコメントが付いていなかったから。


文字コードには気を付けましょう。
記事へブログ気持玉 / トラックバック / コメント


続きを見る

トップへ

月別リンク

やじゅ@アプリケーション・ラボ/BIGLOBEウェブリブログ