2010.08.31
江渡 浩一郎
技術評論社
売り上げランキング: 24981
パターン、Wiki、XP ~時を超えた創造の原則を読みました。
自分は2002年にサラリーマンになりました。
一応大手って言われるSIerにしてはめずらしく、内製でやろうって部署に配属されて。
30〜40人くらいのアプリ屋のボスがXP信者で、ケントベックとかマーチンファウラーとか、
よく分からないなりにも本読んだりしてました。
で、かれこれ8年とかエンジニアやってるわけですが、
そのバックグランドにどんなことがあるのかとか考えもしなかったわけですが、
建築家のアレグザンダーの話、うぉって思っちゃいますねぇ。
アレグザンダーの設計で、日本の高校の校舎たてるときに、インクリメンタルに作ってくと
時間とコストがかかっちゃうから、ゼネコンに丸投げしたら、イタいのが出来ちゃったとか、
SIerにいた自分的には笑えないっていうか。。
Wikiとかも起源を知らずに使ってたから、そこら辺のLinuxマシンに立ててみて、
”ウィーキー”とかって読んでたしねぇ。。記法とか覚えるのかったるくて、結局みんな書かねぇみたいな。。
もし、当時この本読んでたら、いろんな事がまた違った印象なんだろなって。
クライスラー社のCOBOLな給与計算システムをSmallTalkで〜、
ってシステムは稼働しなかったとか、上記の高校のエピソードとか、
なんでもかんでもうまくいったわけじゃないってのがちゃんと紹介されてるとことか、
自分的には共感出来るというか。
この本は是非若手のエンジニアにも読んでもらいたいですねん。
2010.08.23
大石始
(株)ブラッド
売り上げランキング: 84779
おすすめ度の平均:

待ってました!!
日本のダンスホールシーンを知るには最適!
関東ラガマフィンを読みました。
たまたまブラっと寄ったタワレコで、ヤバい本に出会ってしまいまして。
今でこそ日本のレゲエはとても盛り上がっていますが、
79年生まれで日本のHIPHOPフリークだった自分には
くぉ、そんなんだったんすね的な情報がクソ満載で。
それこそ2500円もする、内容も分厚さも、ヘビーな感じの本ですが、
4時間くらいかけてじっくり拝読させていただきました。
なんか読ませてもらってありがとうございました、みたいな気になってしまう。
自分がはじめて現場でレゲエに触れたのは、
高校3年か大学1年の時に当時のヘブンに行ったとき。
ライムスターとかオジロとかHIPHOPなメンツに加えて
サミーTもマイク握ってたし、Hマンは衝撃的でした。
#まぁ何よりぶっ飛んだのはラブミルクでしたけどw
#その時の衝撃を引きずって自分が00年頃に六本木Coreでやってたイベントにも
#レゲエダンサーに出てもらったほど(Matadollのお二人お元気ですかね・・・?)。
当然のようにBayMonster(横浜のレゲエとHIPHOPがリンクしたコンピ)とか
もチェックしてたし、風林火山とかと一緒のクルーでやってた友達とかもいたので、
神奈川出身な自分にとっては割と横浜のレゲエは親近感があるっていうか。
日本語ラップにハマってたのもあって、ジャップジャムとかも聴いてたり、
曲自体も結構知ってたけど、そういうルーツだったんだなってのが随所に。
日本のレゲエが一気に花開いてったなって思ったのは、
この本にも書いてあるけど、マイティクラウンが世界でタイトルとったくらいから。
渋谷のCISCOレゲエ(昔は吉野家ありましたねアソコ)に行って
LifeStyleとかカセットテープ買ったりしました。
そんな彼らが90年代にどんな風にやってきたか。
マイティクラウンはやっぱ昔っからスケール違ったのねとか。
読んでて、くぅーって思えることが多くて。
また違った視点からも、新宿のキングストンクラブとか
行ったことあったけど、今思えば、アレってレゲエだったんだとかw
もういろんな発見盛りだくさんでございます。
#バブルの頃に夜遊びしてたら楽しかったんだろうなぁとか。。
著者の方が相当気を遣って書いてるんだろうなって感じさせるところも多くて、
イヤイヤそれはマジで書いちゃヤバいでしょ、とか
素でグロかったりえげつなかったり、とかってのはないので、
安心して(?)居間とかに置きっ放しにしつつグワっと読めちゃう本です。
インターネットとかで何でも情報が手に入っちゃう今だけど、
丹念な取材と、周りからの信頼と、そして何より情熱が無ければ
こんな内容は絶対手に入らないと思うし。
三十路になった今だからこそ、結構グッとくるところもいっぱいあったりして。
個人的にはその辺の自己啓発本読むよりよっぽど、
俺も頑張ろうって思えるような、そんな一冊でした。
2010.08.22
以前Solrをイジった備忘録その1(データ投入編)でEmbeddedSolrServerなんちゅうのを使ってますよ
なんてエントリを書きましたが、その時もRequestHandlerを追加したわけなんですが、
ローカルのUbuntuマシンにSolrの環境作ってて、どうやって追加したのか忘れちゃってたので備忘録的な。
RequestHandlerを追加するのはとても簡単で、
例えば↓こんなURL外から叩いたら、System.gc()して欲しいな、なんて局面があったとする。
#そんな局面ねぇよ、なんてのはさておきw
======
http://localhost:8080/solr/hoge?gc=do
======
そんな場合は、solrconfig.xmlに↓こんな入れてやります。
#検証用なのでデフォルトパッケージです。。WEB-INF/classesに突っ込んでやります。
======
<requestHandler name=”/hoge” class=”HogeHandler” />
======
作るクラスは org.apache.solr.handler.RequestHandlerBase ってクラスがいるので、
そいつを extends してやります。
======
public class HogeHandler extends RequestHandlerBase {
======
Eclipseがオーバーライドをするヤツをビヨって作ってくれるので、
後は中身を埋めていくだけなのですが、メインな処理を書くところが↓
======
public void handleRequestBody(SolrQueryRequest req, SolrQueryResponse rsp)
======
上記の例だとgcってリクエストパラメータがdoだったらSystem.gc()ってことなので、
↓こんなロジック入れてやります。
======
if (req.getParams().get(”gc”).equals(”do”)) {
System.out.println(”hogehoge”);
System.gc();
}
======
一個ハマったところが↓こいつ。
SolrQueryResponseのsetHttpCaching
ソース読んだら protected boolean httpCaching=true; で宣言されてました。ってことで、
======
rsp.setHttpCaching(false);
======
で、 http://localhost:8080/solr/hoge?gc=do を叩くと、(Tomcatなので)catalina.outに、
↓こんなん出てきてメデタシメデタシっていう。
======
hogehoge
23.964: [GC 24347K->3996K(125632K), 0.0118300 secs]
23.976: [Full GC 3996K->3934K(125632K), 0.0982040 secs]
2010/08/20 15:18:19 org.apache.solr.core.SolrCore execute
情報: [] webapp=/solr path=/hoge params={gc=do} status=0 QTime=144
======
さて、ぼちぼち環境出来てきたので、検証始めるか・・・。
Dave H. Hoover Adewale Oshineye
オライリージャパン
売り上げランキング: 25539
アプレンティスシップ・パターンを読みました。
いろいろと考えさせられる一冊でした。
自分はSIerで働いていましたが、以下のような理由で、
・自社サービスを自社内で開発してるところ〜ってのと、
・どうせやるならデカイ事やりたい〜ってので、
3年前くらいに今の会社に転職しました。
今の会社がいいなって思ったのは、当時Ruby使ってますよってのを全面に押し出してた事。
自分でRuby on Railsを試してて、あまりのお手軽さにビックリしました。
Award on Railsってコンテストに、iKnowのちょーショボい版みたいの作って応募したり。
おまけにデータベースのマイグレーション機能までついてて。
こんなんでガンガン作って世の中に出していきたいって。
でも、Rubyの言語仕様や、Ruby on Railsのアーキテクチャに魅せられたわけじゃなかった。
短く書けるし、Javaよりメンド臭くないからいいな、くらい。
開発プロセスにしても、別にアジャイルじゃなくても、なんだってよかった。
とにかく気合入ったヤツらとバンバン作って出して〜って、やっていきたかった。
で、転職してどうだったか?っていうと、自分がやりたい事は出来なかった。
SIerにいた頃よりも、無駄だな〜って思える事はかなり減ったのはとても良かったけど、
いろんな価値観や、いろんなレベルのエンジニアがいて。
開発そのもののレベル感やスピード感はたいした事ないなって。
社歴が長くなるほど、自分の立ち位置も、だんだんSIerにいた頃と近くなってきてるような気もするし。
なんででしょね。
AクラスのヤツらはAクラスのヤツと仕事をしたがる。
BクラスのヤツらはCクラスの〜、とかって話があるけれども、
自分はいっつもB〜Cクラス集団にいるように思う。少なくともAではない。
部屋の掃除してて出てきた、まるごとRuby!(vol.1)を読んでて思った。
Rubyの事わかってねーなー俺、と。実はJavaの事だってあんまよくわかってない。
じゃあRubyに長けてるヤツらが、そんな自分と働きたいって思ってもらえるだろうか?と。
外から見てて、自分がやりたいような、すげぇスピードで新機能をバンバン出してきてるところもある。
(もちろん、スピード感はあるけど、、、な、ところもあるけれども。。)
Facebookとかそんな感じなんすかね。中の事は知らないから分からないけども。
じゃあ、どうやったらそんな風に仕事できるのかな?って。
この本にはどうやってエンジニアとしてサバイブしてくか?ってことが、
すごい分かりやすく、ですよねー的に書いてある。腹落ち。
11月で31歳になるわけだけど、改めて勉強しようって思えた。
50歳になった時にイカしたエンジニアでいたいし。
大変で長い道のりだけど、毎日本読みながら仲間みつけて頑張ろう。
そんな気持ちになれました。この本読んでとてもよかった。
2010.08.19
会社ではUbuntuをローカルの開発機にして仕事をしています。
ローカルの場合はTomcatに直接アクセスして~ってやってましたが、
極力本番に近づけた方がいいかなと思ってApache経由でajpでやりくりしてみることにしました。
【UbuntuのApache】
Ubuntuのパッケージ管理でApacheを入れると、
・設定ファイルとかは ⇒ /etc/apache2/
・再起動とかは ⇒ /etc/init.d/apache2 xxx
・ログは⇒ /var/log/apache2
#てな具合になっています。普段仕事では/usr/local~とかなのでちょっと違和感ありますね。。
【Apacheの設定】
・使えるモジュールは⇒ /etc/apache2/mods-available
proxy.load
proxy_ajp.load
proxy_balancer.load
うぉ、全部入ってるじゃーんって事で、
↓こんなのズゴンって叩くだけでOK
====
a2enmod proxy proxy_ajp proxy_balancer
====
・設定ファイル
/etc/apache2/sites-available/default ってのに
DocumentRootの定義とかが書いてあるんですが、
そこに Proxyの情報を記載してあげます。
- バランサーマネージャーの画面用に
<Location /balancer-manager>
SetHandler balancer-manager
Allow from all ← お試しなので・・・
</Location>
- バランシング用に
ProxyPass /balancer-manager !
ProxyPass /hoge balancer://hoge/ stickysession=JSESSIONID timeout=10
あとは /etc/apache2/mods-available で、、
・proxy.conf を Allow from allにしたり(お試しなので…)
・proxy_ajp.confを作って AddOutputFilterByType DEFLATE とかやってやったりしつつ
↓8009ポートに向けて~的な。
BalancerMember ajp://localhost:8009/ loadfactor=10 route=hoge keepalive=On min=100 timeout=10 retry=20
【Tomcatの設定】
server.xmlはデフォルトだと8009ポートでajpをリスンするようになっているので特に対応不要です。
普通に startup.sh 叩いて上げるだけ。
ってことで↓Apache再起動してあげたら
/etc/init.d/apache2 restart
http://localhost/hoge でTomcatまでアクセスが行って、
http://localhost/balancer-manager でバランシングの設定が出来ます
意外とお手軽なもんですねぇ。
2010.08.18
昨日のHadoopソースリーディング4回目(Hadoopソースコードリーディングまとめ第4回 #hadoopreading)で、
@okachimachiorz1 さんが、MRUnit便利だし使うよね的な事をおっしゃっていて、
どんなもんかなと思ってチョロっと自動テストしてみました。
【環境】
1. EclipseのMapReduceプラグイン
hadoop-0.20.2-eclipse-plugin.jar(Hadoopをインストールしたところのcontribに入ってる)を
eclipseのプラグインディレクトリに突っ込んで再起動すると
ウィザードでMap/Reduce Projectが作れるようになります。
⇒ Hadoopのインストールディレクトリを指定するとそこにパス通してくれる感じ。
2. JUnit4のjarを落としてパスを通す
HadoopのlibにはJUnit3.8しか入ってなかったので。
MRUnitのページみたら @Before とかJUnit4のアノテーションが前提みたいになってました。
3. MRUnitのjarを落としてパスを通す
ググったら↓に置いてありました。
https://repository.cloudera.com/index.html#nexus-search;classname~MRUnit
コレ、maven使ってれば依存関係の定義をpom.xmlに入れてやるだけでイケそうですね~
【実装】
使い方は↓こんな感じのようなので、、、
http://www.slideshare.net/emwendelin/testing-hadoop-jobs-with-mrunit
http://www.cloudera.com/blog/2009/07/debugging-mapreduce-programs-with-mrunit/
↓こんな感じのMapperに、、
========
public class HogeMapper extends MapReduceBase implements Mapper {
private Text word = new Text();
@Override
public void map(Object key, Object value, OutputCollector output,
Reporter reporter) throws IOException {
// TODO Auto-generated method stub
String line = value.toString();
StringTokenizer st = new StringTokenizer(line, ",");
while (st.hasMoreTokens()) {
word.set(st.nextToken());
output.collect(word, new IntWritable(1));
}
}
}
========
↓こんな感じのテストしてみました。
========
public class HogeTest extends TestCase {
private Mapper mapper;
private MapDriver driver; ←こいつがMRUnitのオブジェクト
@Before
public void setUp() {
mapper = new HogeMapper();
driver = new MapDriver(mapper);
}
@Test
public void testHogeMapper() {
driver.withInput(new Text("foo"), new Text("aar,kar,sar,tar,aar"));
driver.withOutput(new Text("aar"), new IntWritable(1));
driver.withOutput(new Text("kar"), new IntWritable(1));
driver.withOutput(new Text("sar"), new IntWritable(1));
driver.withOutput(new Text("tar"), new IntWritable(1));
driver.withOutput(new Text("aar"), new IntWritable(1));
driver.runTest();
}
}
========
インプットのファイルを用意しなくていいから楽チンって感じですかねぇ~
2010.07.31
2010年07月27日。
インターネット業界で働いている自分のTwitterのタイムラインは
YahooJapanがGoogleのサーチエンジンとリスティング広告の
配信システムを採用するっていうニュースで騒然となりました。
自分は日頃↓こんなお仕事してたりします。
・コンテンツ解析をして、そのページに合った広告出したり
・ユーザーの行動を分析して、その人に合った広告出したり
・検索窓に入れられたキーワードに連動する広告出したり
まさに、、な分野なわけです。(まぁ、他にもいろんな事やってますが…)
日々大量データに押しつぶされそうになりながら、
memcached使ったり、Solr使ったり、Hadoop使ったり、
アレやコレや頑張ってるわけです。
で、一連の報道とかの中でも、ビジネスの話はアレですが、
自分にとって一番分かりやすいなと思ったのが↓有名な、たつをさんのブログ。
[を] Yahoo! JAPAN のウェブ検索と検索連動広告配信システムが Google に変更になります
・米ヤフー(Yahoo! Inc)との日本ヤフー(Yahoo! JAPAN)は別会社である
・現在の米ヤフーのウェブ検索エンジンは YST、検索連動型広告は YSM(旧オーバーチュア)
・YSTとYSMは米ヤフーの技術。だけど近々廃止になる
・米ヤフーはYSTをBingに、YSMをMS adCenterに置き換える
・Yahoo! JAPANは米ヤフーのYSTとYSMを使っていたが廃止になるため他を探していた
・で、YST の代わりに Google 検索を、YSM の代わりに AdWords を使うことになった
なんとも腹落ち。くぅ。
でもね、同じ業界にいると、廃止になるとか言ってるYSMも、
「xxだからオーバーチュアはすげーよなぁ、
どうやってやってんだろうね〜?」
なんて話したりしてるようなものだったりするわけです。
HadoopだってYSTで使ってるNutchのために開発されたのが最初だって
象本(Hadoop)に買いてあったし。
が、そういうの放り出してもー的な事が起こるんだから、
エンジニアとしてはデッカイ会社に所属してるから
安泰だーなんて思っちゃいけないんだな、とか思うわけです。
で、この先どうなるのよ?っていう話で。
Webの広告屋をやってると、最近よく聞くのがAdExchange。
AdExchangeって、オンライン広告にまつわる
いろんな関係者が集まるオンライン市場みたいなもんなんだけど、
やれリアルタイムビッダーだの、ややこしくてよく分からなかったりするアレです。
# いや、よくわかってないのは俺だけかも知れぬがw
まぁ、なんつーか、この先にWeb広告業界で流行りそうな感じのヤツなんだけど、
・Googleは、DoubleClick Ad Exchange
・Yahooは、Right Media Exchange
それぞれプロダクト持ってるわけです。でもって、YahooJapanは先日、
AdExchangeは米ヤフーのRight Media Exchangeを使うぜ的な発表とかしてましたけど、
YahooJapanはGoogleさんにデータを沢山提供しちゃったりするわけですからねぇ的な。
どうなっていっちゃうんでしょうねぇ。
いやー、この業界、目が離せないっていうかなんていうか。
っていうか、業界独占だーとか言われちゃってねぇで、
自分らのとこも、この分野にグイグイ食い込んで、
パイを取りにいかなきゃいけないんすけどね。。
あと、ネット広告って何やら専門的でややこしいような印象
あるかもしれませんが↓こんな本一冊読んでおけば実は結構問題なかったり
するんじゃないかと思う今日この頃です。
デジタル・アドバタイジング・コンソーシアム
日本能率協会マネジメントセンター
売り上げランキング: 124894
2010.07.28
iPad買ったけど大して使ってね〜って人多いんじゃないですかね?
自分も先月NYに出張に行ったときはホボ使わなかったですし、
仙台に旅行に行ったときは持っていきもしませんでした。
【使わない理由①】
会社から何かあった時ようにノートパソコンを持たされていて、
それが普通に2キロくらいあって重たい…
↓のケースに入れて持ち歩いてるんですが更に重い…
FocalPointComputer (2010-05-31)
売り上げランキング: 682
【使わない理由②】
iPhoneで結構事足りてしまうことが多い。
音楽聴くのも、
動画観るのも、
ツイッターするのも、
メール見るのも、
諸々出来てしまいます。
【が、、】
せっかく買ったので、そんなんじゃイカンと思って。
当初の目的の一つでもあった電子書籍。以下3冊読みました。
・その1。
岩瀬 大輔
文藝春秋
売り上げランキング: 1868
何かのキャンペーンみたいのでタダでPDFをダウンロードしたヤツ。
俄然ナイスな本でした。
自分はアフラックの掛け捨ての入院保険しか入ってないですが、
だから何よ?くらいの気持ちでいるのですが、それでいいんだと確信。
それよりもタバコとか運動とか食事とか気を付ける方が…
・その2
クリス・アンダーソン
日本放送出版協会
売り上げランキング: 236
コレも何かのキャンペーンで。タダでPDF落とせて的な。
自分は法学部出身だったりするのですが、
研究のテーマ的に”共有地の悲劇”とか。そんな話が出てきつつ、
普段身近なオープンソースの話や、仕事で携わっているオンライン広告の話とか、
とにかくグイグイ引き込まれる感じで一気に読んでしまった感じでした。
・その3
井上 篤夫
実業之日本社
売り上げランキング: 879
コレもなんかタダだったような気がするな。。w
酔っ払ってる時にグワーっと読んじゃうと
相当楽しめるような気がする。孫さんスゲーって。
【ということで、、】
だいぶiPadで読むのも慣れてきました。
なにより暗いところでも読めるってのはアツイですよねぇ。
夜に人待ってる時とか、寝る前とかはもちろん。
が、今の使い方だと、Kindleでいいじゃんかよって事になりそうなので
ぼちぼち動画コンテンツにでも手出すかなぁ。
塾の有名講師の英会話授業動画とかあったりしないですかね?
ちなみにPDFをiPadに持っていくのは、
http://d.matu.biz/archives/258 を参考にさせていただきました。
GoodReader入れて、i文庫HDで〜とか。
モバイルのWifi機器を購入すればまた変わってくるんでしょうが…
なかなか重い腰を上げられず…
うーむ。。
ま、会社の開発企画に応募してみたので、
iPhoneアプリの時みたいに使えたらアツイかな、、と。
また取り留めのないエントリになってしまった…