SEの行き着くところ… このページをアンテナに追加 RSSフィード

2010-12-08

java-ja.js #2でLT発表してきた(Envjsを使った単体テスト)

1年半ぶりのブログ投稿です。。

もう、はてな記法とかすっかり???です。。。

生きてます。


java-ja.js #2 : ATND

これに参加して、LT発表してきました。


※ブログ埋め込みにはiframe → Google Gadget コンバータを使わせて頂きました


Javascriptのテストをもっとサクサクやりたい、作ったJavascriptコードの「結合テスト*1」じゃなくて「単体テスト」がやりたい。

そんな思いからEnvjsに辿り着き、ちょっと試してみた経緯をまとめたものです。

いくつか小さな補足ネタはあるんですが、それは追々…。


会場を提供して頂いたGREEさんに感謝です。

こんな「ライブラリ使ってみた」程度のネタでも発表しやすい機会を作ってくれた主催者の@さんはじめ、受付や進行など関係者の皆様に感謝です。

ありがとうございました。


#ちなみに今、JSCoverage - code coverage for JavaScriptを組み込んでHudson上にカバレッジも出せないか試しています。成果は追々…。

*1:サーバやブラウザとの結合。結合というより連携?

2009-05-01

楽天BooksからStackStockBooksを表示するブックマークレット

作ってみた。

こういうページで実行するとよい。

http://item.rakuten.co.jp/book/5961956/

document.body.innerHTMLから正規表現でマッチングというマッチョ処理w

ISBN13桁→9桁変換はWikipediaを参考にして作った。

http://ja.wikipedia.org/wiki/ISBN

javascript:(function(){var%20r=/ISBN:978([0-9]{9})[0-9]/;var%20h=document.body.innerHTML;if(r.test(h)){var%20isbn=h.match(r)[1];var%20d=0;var%20a1=isbn.split('');var%20a2=[10,9,8,7,6,5,4,3,2];for(var%20i=0;i<a1.length;i++){d+=a1[i]*a2[i];};d=11-d%2511;document.location='http://stack.nayutaya.jp/book/'+isbn+(d==11?'0':d==10?'X':d);}else{alert('ISBN%20NotFound');}})()

整形版はこちら。

(function(){
    var r=/ISBN:978([0-9]{9})[0-9]/;
    var h=document.body.innerHTML;
    if(r.test(h)){
        var isbn=h.match(r)[1];
        var d=0;
        var a1=isbn.split('');
        var a2=[10,9,8,7,6,5,4,3,2];
        for(var i=0;i<a1.length;i++){
            d+=a1[i]*a2[i];
        };
        d=11-d%11;
        document.location='http://stack.nayutaya.jp/book/'+isbn+(d==11?'0':d==10?'X':d);
    }else{
        alert('ISBN NotFound');
    }
})()

String#splitに空文字がOKってのは初めて知った。

あと、ブックマークレットで%を使う時はエスケープが必要ってとこにハマってたのは内緒

2009-04-18

気になるジャンルの本/雑誌の新刊をRSSで

Amazonって売れ筋本しかRSS対応してないのよねぇ。

ベストセラー、Amazonランキング、一番ギフトとして贈られている商品や一番ほしい物リストに追加されている商品では、人気のある商品の最新情報を更新するためにRSSフィードを提供しています。RSSフィードはサイトが更新されるごとに更新されます。登録のするにはRSSフィードマークの横にあるリンクをクリックしてご希望のアプリケーションを選んでください。

http://www.amazon.co.jp/gp/help/customer/display.html?ie=UTF8&nodeId=200208610:title

なので、今までは楽天スーバーエージェントを使ってたけど、それやと設定したキーワードでHitした本しか見れない。

、、、と思ってたら、楽天ブックスはジャンル毎にRSS配信してるやないか。

楽天ブックス: 本 - パソコン・システム開発 - 新刊 [1/3] [1位〜25位]

http://books.rakuten.co.jp/RBOOKS/xml/rss/005/00I/005/rss.xml

楽天ブックス: 雑誌 - コンピュータ誌 - 新刊 [1/4] [1位〜25位]

http://books.rakuten.co.jp/RBOOKS/xml/rss/005/006/605/rss.xml


早速GoogleReaderに登録した。

そしてStackStockBooksの欲しい本リストが増えた。

Stack Stock Books - AWAWAのいつか欲しい本

2009-04-17

今のところ、、、(計測期間:半年)

関東の人には関西弁と気付かれない

関西出身の人には関西弁と気付かれる


どうやら関東の人は関西弁に疎いらしい(当たり前

2009-04-14

[]window.openでポップアップブロックされた時の挙動はブラウザによって違う

すんごい久々の開発ネタ・・・というかブログ自体そうか・・・。

社内SNSではそこそこ発言してるんやけど・・・。


StackStockBooksの書籍ページ表示ブックマークレットがGoogleChromeだと動かなかった。

ソース覗いてみると、window.openの返り値がnullだった場合は自ウィンドウを遷移、となっていたが

どうやらChromeでは返り値がnullにならないにも関わらずポップアップブロックは効いているという状態らしい。

というわけで、各主要ブラウザでwindow.openがポップアップブロックされたときの返り値を調べてみた。


検証HTHLはこちら。

<html>
<head>
<script type="text/javascript">
setTimeout(function() {
	var w = window.open('/');
	if(w == null) {
		alert(w);
	} else {
		var s = ''+w;
		for(var i in w) {
			try {
				if(typeof(w[i]) == 'function') { continue; }
				s += '\n\t'+i+' : '+w[i];
			}catch(e){}
		}
		document.getElementById('result').innerHTML = s;
	}
}, 2000);
</script>
</head>
<body>
<pre id="result"></pre>
</body>
</html>

結果は以下のとおり。

IE7.0 -> 
	null
Firefox3.0.8 -> 
	null
Safari4 -> 
	undefined
Opera9.6 -> 
	[object Window]
		closed : false
		document : [object HTMLDocument]
		location : http://localhost:8080/
GoogleChrome1.0
	[object global]
		window : [object global]
		location : about:blank
		external : [object Object]
		externalHost : [object Object]
		name : 
		status : 
		opener : [object global]
		screen : [object Screen]
		length : 0
		parent : [object global]
		closed : false
		scrollX : 0
		screenY : 0
		screenX : 0
		scrollY : 0
		menubar : [object BarInfo]
		history : [object History]
		toolbar : [object BarInfo]
		console : [object Console]
		document : [object HTMLDocument]
		screenTop : 0
		navigator : [object Navigator]
		statusbar : [object BarInfo]
		outerWidth : 0
		scrollbars : [object BarInfo]
		screenLeft : 0
		innerWidth : 0
		pageYOffset : 0
		personalbar : [object BarInfo]
		locationbar : [object BarInfo]
		pageXOffset : 0
		outerHeight : 0
		frameElement : undefined
		defaultStatus : 
		defaultstatus : 
		devicePixelRatio : 1
		clientInformation : [object Navigator]
		offscreenBuffering : true
		innerHeight : 0
		frames : [object global]
		self : [object global]
		top : [object global]
		onclick : null
		onmousedown : null
		onabort : null
		onload : null
		onfocus : null
		ondblclick : null
		onmouseover : null
		onmousewheel : null
		onmousemove : null
		onresize : null
		onbeforeunload : null
		onblur : null
		onchange : null
		onreset : null
		onunload : null
		onkeypress : null
		onkeyup : null
		onsubmit : null
		onmove : null
		onkeydown : null
		onerror : null
		ondragdrop : null
		onscroll : null
		onsearch : null
		onmouseup : null
		onmouseout : null
		onselect : null

OperaとChromeがポップアップブロックに引っかかってもwindowオブジェクトが返った。

Chrome用だけ処理を組むなら、開いたWindowのlocationがabout:blankになってるかどうかで調べられそうやけど、、それじゃイマイチやな。


そもそも仕様はどうなってるんやろう・・?

無いのか?

2009-03-16 東京行きのぞみ700系、車内無線LANより

[]義父が入院

義父@京都が心臓バイパス手術をする事になった。

今日入院で明日手術。


というわけで週末〜今日まで急遽帰省してた。(嫁子供は既に帰省済み)

今日は俺が入院前の準備を手伝って、明日は義弟(いや義兄か)が

有休とって一緒に居てくれる。


義父はまだ50代で、年甲斐も無くハーレーデビューするような人なので、

体力的には全然問題ないと思うけど、手術後精神的に老けてしまわないかが

ちと心配・・・。


ウチは肉親が少ない上に、今は小さな子供が多く、他にも事情があったりして、

こういう事は家族総動員しないと乗り切れない。

新幹線の便がいいトコにしといてホンマによかった。

(こんなことで良さ感じたくないけどね><)


しばらくは週末通う事になりそ。

2009-01-04

[]2008年を振り返る

最後にエントリ書いたのが11月。

振り返りすら2008年内に書けていないこの状態。

まぁ年末年始は書く時間が無かったというよりは、嫁の実家に帰省してて

落ち着いて書きづらい状況やったというだけやけど。


ブログエントリを元に2008年を振り返る。


1月 東京の勉強会に立て続けに参加

週末は東京 - SEの行き着くところ…

取り急ぎJSUGのお礼 - SEの行き着くところ…

取り急ぎBPMオフのお礼 - SEの行き着くところ…

それまで東京といえばデブサミとかぐらいやったけど、初めて有志の勉強会に参加した。

勉強の中身も、人との出会いも充実したすばらしい2日間やった。

東京へ行きたいという思いがさらに深まった。


3月 会社を退職

退職届を出してきました - SEの行き着くところ…

退職しました - SEの行き着くところ…

退職前後でやったことまとめ - SEの行き着くところ…

人生初の退職、人生初のハローワーク。色々と経験になった。

22歳から働き出して8年間、ずっと外に出て客先常駐の日々やったので、

自社より常駐先の方が積もる話が多かったというのが少し微妙・・。


4月〜5月 図書館でお勉強の日々

Java5.0新機能のお勉強(1) - SEの行き着くところ…

Java5.0新機能のお勉強(2) - SEの行き着くところ…

Java5.0新機能のお勉強(3) - SEの行き着くところ…

Java5.0新機能のお勉強(4) - SEの行き着くところ…

Java5.0新機能のお勉強(5) - SEの行き着くところ…

Java5.0新機能のお勉強(6) - SEの行き着くところ…

Java5.0新機能のお勉強(7) - SEの行き着くところ…

Java5.0新機能のお勉強(8) - SEの行き着くところ…

Java5.0新機能のお勉強(8の捕捉) - SEの行き着くところ…

Java5.0新機能のお勉強(9) - SEの行き着くところ…

Java5.0新機能のお勉強(10) - SEの行き着くところ…

Java6新機能のお勉強(1) - SEの行き着くところ…

Java6新機能のお勉強(2) - SEの行き着くところ…

Java6新機能のお勉強(3) - SEの行き着くところ…

Java6新機能のお勉強(4) - SEの行き着くところ…

Java6新機能のお勉強(5) - SEの行き着くところ…

Java6新機能のお勉強(6) - SEの行き着くところ…

Java6新機能のお勉強(7) - SEの行き着くところ…

Java6新機能のお勉強(8) - SEの行き着くところ…

Java6新機能のお勉強(9) - SEの行き着くところ…

Java6新機能のお勉強(10) - SEの行き着くところ…

Seasar2のHotDeployの流れを追ってみた - SEの行き着くところ…

Javaの言語勉強だけやってたわけじゃないんやけど、ブログに書きながらやってたり、

読みたい本読みながらやってたり、今まで会社でできなかった念願の「日中Twitter」を楽しんだり

していたら案外時間を喰っちゃった。。

まぁでも正直毎日楽しかった。収入さえ無いことを除けば。

好きなことを熱中して勉強する楽しさを30才にしてようやく知った。

大学時代に知っとけば、もう少し違う人生過ごしてたかもなぁ。


6月〜8月 転職活動

仕事辞めて2ヶ月が経った - SEの行き着くところ…

転職サイトに登録した - SEの行き着くところ…

明日はDODA転職フェア(関西)に参加 - SEの行き着くところ…

説明会めぐりに行ってきます - SEの行き着くところ…

6月の転職活動記録 - SEの行き着くところ…

内定ゲット!!! - SEの行き着くところ…

会社決めた - SEの行き着くところ…

本当はもう1ヶ月ほど勉強期間に費やしたかったけど、お財布の事情により6月から転職活動を開始。

(仕事やめた後なので、正しくは転職活動じゃなく就職活動か?)

お金が無い状態で離れた東京という場所で職を探すのは中々辛かった。

でも正直言うと、その辺りが面接で話のネタとして役立ったという場面もあった。

たださすがに最終面接ではそんな事情、全くといっていいほど関係ナシやったけど。

ともあれ約2ヶ月で結果が出てよかった。マジで貯金残高の底が見えてきてたから。


9月〜 新しい職場で頑張る

入社1週間を乗り切った - SEの行き着くところ…

反省した・・・ - SEの行き着くところ…

入社して2ヶ月がたった - SEの行き着くところ…

最初の頃は、元々その会社に抱いてたイメージとのギャップが原因で、職場内で

先輩社員と衝突を繰り返したりしてた。(今ではもうすっかり仲良しになった)

あと、プロジェクトのフェーズ上、しばらくプログラミングからは遠ざかると思ってたけど、

2ヶ月たってもJDKすら入れない状況になるとは思ってなかった。

やってることは業務知識の把握とか調査プラス机上検討とか人間関係の調整とかw


社内の他部署へ常駐(社内派遣みたいなイメージ)で、なかなか自分で責任持って時間を

制御できず、勉強会やイベントとかへ気楽に参加できない状況が続いてる。

別に「参加します」と言おうと思えば言えるけど、それで状況や印象が少しでも悪くなるようなら

今は会社を優先する。(実際、ドタキャンしたものも何回かあった・・・)


ただ、転職して今の会社を選んだことは全く後悔していない。

すごく出来る人が多いし刺激も受けるし、楽しいし一杯笑ったし。

社内SNSにも書いたけど、一歩踏み出さずに後悔するよりはるかに良かった。


総括

今までの人生でもっとも充実した1年間やった。

書いたこと以外で、「え?これ今年の出来事やったん?」と思うようなことが多い、長い1年やった。

来年はもっと気軽に自分の時間をコントロールできるようになればいいな。

(コントロールできるような時間的余裕があることを切に願う ><)


関わってくださった全ての人に感謝します。

どうぞ2009年もよろしくおねがいします。

2008-11-24

XMind使ってみた

XMind - Mind Mapping and Storming

日本語入力も可能なオープンソースのマインドマップ「XMind」 | コリス

チェック必須!ブレーンストーミングやマインドマッピングで役立つ「XMind」 - MOONGIFT|オープンソース・ソフトウェア紹介を軸としたITエンジニア、Webデザイナー向けブログ


イイネ。

今までMindNode使ってたけど、こっちに乗り換えようかな。


MindNodeに比べていいところ

・ノードのレイアウトが指定可能

 通常のMap形式だけでなく、ツリーやロジックチャートなども。

・サマリやバウンダリ、リレーションシップが使える

 ちょっとMindNodeはシンプルすぎたかな。

・画像出力可能

 MindNodeも出力はできるが、Tiff形式だったのではてダに貼り付けるには変換する必要があった。


主な使い方(Mac版)

隣接ノード作成:Enter

子ノード作成:Tab

テキスト編集:Space(別に他のキーでもいいが、Spaceを編集開始と決めると使いやすかった)

ノード移動:上下左右キー

2008-11-23

[]放置するやり方の良さは俺には分からない

あんまり小言ってカテゴリじゃないけど・・・。


先日ふと「下の子にどうやって仕事を教えるか」という話題になった。

そこで結構意見の違いがあったので、俺の考えを書いておく。


俺の嫌いなパターン

やり方をさらっと見せておいて、「じゃ、あとは自分でやってみて。何かあったら聞きに来て」ってやり方。

やり方含めて自分でしっかりと考えるとか、やり方を人から盗むことを覚える、といった意図が

あるんやろうけど、俺はこの手は嫌い。

結局教える側が手を抜いてるだけとちゃうん?と思ってしまう。


きちんと例を見せる

完全に自分のやり方でいいので、まずはそれを相手に見せる。

そしてそれをしっかり覚えてもらう。

ちなみに、ここで言うやり方というものには、自分用のメモとか外から(傍から)は

見えないものも含む。


自分が知っていることは全て教える

ここが特に意見が違っていたところ。

俺は、自分が知ってることは全部教える。

頭を使うなと言ってるんじゃなく、人ができてる所はさっさと覚えて、

そのもっと先で頭を使おうよ、という考え。

もちろん単に知識にならないよう、"なぜ"がきちんと伝わるよう気をつける。


その人のやり方でもいい

自分のやり方を伝えても、別にそれを実践してくれなくてもいい。

その人の思うやり方がいいと思ったら、そっちをやればいいと思う。

ただし、もしそれで成果が出なかったときは、一度自分の伝えたやり方でやってもらう。


モチベーションを大切に

俺はまず相手に対して、どういう想いでこの業界に入ってきたのか、ってとこから聞く。

何らかの事情で割り切って働いている人も居る。でもそんな人にもモチベーションはきっとあるはず。

一通り聞いた上で、これから何を楽しみ(課題)に、チャレンジしていくのかを話し合って決める。


人に対して何かを教えるなんておこがましい、なんておかしい

上の立場は下の立場の人に対してきちんと伝える義務というか責任があると思ってる。

教えるという表現から逃げる=責任から逃げる、なのか?

教える側は、不安を持ちながらも挑まないと。


、、うーん。

本当はもっと書きたいことあったはずなんやけど、2日経つと何か勢い消えちゃった。

なお、もちろん誰の考えが正しいなんて結論は出ていない。

それこそおこがましい。


あと、相変わらず文章力低すぎ。改善しないと。

とりあえずもっと文章書かないとなぁ。。

[]ぶり祭り2008に行ってきました

明日書く。

こうでもしないと書かない俺に喝!



11/19(水)に行われた「ぶり祭り2008」に参加してきました。

no title

株式会社マジカジャパンの羽生章洋が書いてるブログ:ぶり祭り - livedoor Blog(ブログ)

少し日が経ってしまったけど、参加レポをば。

続きを読む

2008-11-07

[]入社して2ヶ月がたった

一応、生きてます。

近況を簡単に言うと、「自分で勝手にストレス感じて自分で自分を追い込んでる」かな。

そんな激務ってわけじゃないんやけど、なんか余裕が無い。

疲れやすく、疲れがとれにくい。


  • 仕事スタイルは転職前とあまり変わっていない(常駐)
  • いまだに自端末にEclipseどころかJDKすら入っていない
  • でも技術的なことメインでは活動している
  • 机上検討机上検討机上検討机上検討机上検討・・・・
  • 報告書報告書報告書報告書報告書報告書報告書・・・・
  • 「仮説」と「前提」っていう言葉を100回はいかないが50回は聞いた
  • 周りの人の基礎スペックが高い。自分のバカさを隠すのに必死w
  • チーム内のコミュニケーション量をもっともっと増やさないと。。
  • 色々と動きづらい状況が多い(と自分で思ってしまっている)
  • ちょっと空回りしてる感がある

  • 職場にまったく仕事には関係ないであろうHaskell本があったのが微笑ましかった
  • 社内SNSを活用した。ふつーに生きてたら持てないであろうつながりを持てた
  • 今まで良く分かっていなかったSSLとか証明書まわりに触れられている
  • 新しいことにチャレンジできているので、刺激は受けている
  • 転職したことは後悔していない。もしも踏み出していなかったらと考えるとなおさら
  • 社内を広く見ればすごく魅力を感じることが多い

(いい意味での)暴れるまでは至っていない。

自分のペースで仕事できていない。

でも、今は辛抱のターンや。とは思わずに積極的に攻めたい。


とりあえず今は仕事優先で行こう。

まずは自分の足場をしっかりと固めないと。