ゼンリンからローマ字表記地図サービス
ゼンリンが法人向けにローマ字地図のASPサービスを提供するそうです。
ゼンリン、法人向けにローマ字表記の地図ASPサービス「e-map 英字日本地図」を提供:モバイルチャンネル - CNET Japan
外国人向けに、日本の地図情報を提供するには便利なサービスですね。
ゼンリンと言えば、Google Mapsに日本の地図を提供している会社。
Google Mapsのバージョンアップでローマ字表記に対応してくれないかなぁ。
ゼンリンが法人向けにローマ字地図のASPサービスを提供するそうです。
ゼンリン、法人向けにローマ字表記の地図ASPサービス「e-map 英字日本地図」を提供:モバイルチャンネル - CNET Japan
外国人向けに、日本の地図情報を提供するには便利なサービスですね。
ゼンリンと言えば、Google Mapsに日本の地図を提供している会社。
Google Mapsのバージョンアップでローマ字表記に対応してくれないかなぁ。
Redmineのバージョン0.7.0 RC1がリリースされました。
Redmine - Redmine 0.7.0 RC1 released - Redmine
ダウンロードはこちらから。
新規でインストールされる方は、
Ruby on Railsで作られたプロジェクト管理ツールredMineを使ってみよう!:第2回 環境構築/redMineのインストール・初期設定|gihyo.jp … 技術評論社
を、既存のRedmineをバージョンアップして利用される方は、
Redmineを運用するためのイロハを身につけよう:第1回 新機能の紹介と最新版が利用できるまで|gihyo.jp … 技術評論社
を参考にしてみてください。
0.5から0.6にバージョンアップしたときには、UIががらりと変わりましたが、今回は見た目の大きな変化はありませんでした。ただ、Changelogを見ると、かなりたくさんの機能追加/Bugfixがあります。
個人的にはRSSフィードが取得できる画面が増えたのと、リンクが画面上に表示されるようになったのが良い感じかなと。
チェンジログを訳そうかと思いましたが、もしかするとgihyo.jpの連載の中で0.7の新機能について取り上げるかも、と思ったので様子見することにします。
以前作ったjQueryのプラグインを更新しました。
このプラグインを利用すると、jQueryオブジェクトで以下の3つのメソッドを利用することができます。
今回のバージョンアップでは、numericOptionsに渡せるオプションの種類と、optionsメソッドを追加しました。
追加したオプションの種類
・labels
numericOptionsメソッドは連続した数値のプルダウンを生成するメソッドですが、プルダウンの値は数値でも見た目(ラベル)は文字にしたい場合があるという要望があったので、ラベル用の文字列を渡せるようにしました。
・exclude
連続した数値の中で、プルダウンに含めたくない値を配列で渡すことができます。
・startLabel
プルダウンの最初の値に「値を選択してください」のような文字列の選択肢を渡すことができます。渡す値は、長さ2の配列で、最初に値、そしてラベルを設定してください。
optionsメソッド
引数なしで実行すると、そのjQueryオブジェクト以下のoptionタグのjQueryオブジェクトが取得できます。
引数に数値を指定すると、その数値番目のoptionタグのjQueryオブジェクトを取得できます。
引数に配列の配列を指定すると、オプションタグを生成してappendします。
デモはこちらで確認することができます。各「execute code」を押下するとコードが実行されます。
プロジェクトホームページ:jquery-selectbox-utils - Google Code
先日リリースされたGoogle AJAX Language API が仕事で使えるんじゃないかと思い、仕様を見ているときにふと思いつきました。
日本人ばっかりをFollow(だっけか)しているとあまり気になりませんが、twitterのpublic_timelineを見ると、世界規模のサービスだけあって色んな言語が飛び交っています。で、その人がどんな発言してるんだろうかと気になるわけですが(僕だけ?)、いちいち翻訳ページにコピペするのも面倒だし、そもそも何語か分からない言語もたまに見かけます。
で、今回作ったGreasemonkeyとbookmarklet。
Greasemonkey:Translate Twitter
bookmarklet:Translate Twitter
これは何?
このGreasemonkeyを登録してtwitterのページに行くと(或いはtwitterのページでbookmarkletを実行すると)、↓こんな感じで、タイムライン上に「Translate!」リンクが表示され、
↓右上には、翻訳先の言語プルダウンが表示されます。
翻訳先の言語を「English」にしている状態で「Translate!」をクリックすると、↓こんな風に下に翻訳結果が表示されます。
GoogleのAPIがサポートしていない言語間の翻訳は、一旦英語に翻訳して、それを更に翻訳するという風にしています。
なので、正確さがさらに欠けてしまいます。
ちょっとした思いつきで作った割には面白いツールになったかなと。これで他国語に恐れず色んな人をFollowしまくりましょう(って言うてる僕がまずやれって話ですが)!
Greasemonkeyおよびbookmarkletへの機能追加・改善・不具合報告は本コメント欄へお願いします。
Amazon EC2で固定IPアドレスが利用可能になりました。
これまでは、EC2上でインスタンスの起動毎にIPアドレスが変更になるため、サービスの負荷によって動作するインスタンスの数を変更しバランシングすることが困難でした。
今回、発表されたElastic IP Addressでは、その名の通り弾力のある柔軟なサービス運用が可能になります。
このサービスで、IPアドレスはAWSアカウント毎に割り振られるようになりました。
EC2、おもしろくなってきました。
gihyo.jpのAptana Jaxerについての連載第5回が公開されました。
Aptana JaxerでサーバサイドJavaScriptを始めてみよう!:第5回 Amazon EC2でJaxerを動かす!|gihyo.jp … 技術評論社
今回は予告通り、Amazon EC2上でJaxerを動かす方法を解説しています。
手順をかなり丁寧に書いた(つもり)ので、Jaxerに興味がなくても、Amazon EC2をちょっと触ってみたいという方は是非参考にしてみてください。
Amazon EC2は時間課金と転送量課金になりますが、インスタンスを起動しっぱなしにしてサービスを運用するのでなければ、結構お安く色んな環境が触れてお得です。
YYYYMMで日付を表現する文字列からDateオブジェクトを生成しようとして、
var yyyymm = '200808';
var date = new Date(yyyymm.substr(0,4),parseInt(yyyymm.substr(4,6)) -1);
とやってみたら、mmのところが08と09のときだけうまくいかなかった。
よくよく調べてみると、頭に0がついた文字列をparseIntするときは基数が8として計算されるみたい。
つまり、
parseInt('01'); // 1
parseInt('02'); // 2
parseInt('03'); // 3
parseInt('04'); // 4
parseInt('05'); // 5
parseInt('06'); // 6
parseInt('07'); // 7
parseInt('08'); // 0
parseInt('09'); // 0
parseInt('10'); // 10
parseInt('11'); // 11
parseInt('12'); // 12
こんな感じになります。
'08'を8にしたいときは、第2引数に基数の10を指定すればOK。
parseInt('08',10); // 8
parseInt('09',10); // 9
基本的なところなんだろうけど、ついはまちゃいました。
エロページでどれがオトナ動画のリンクなのかさっぱり分からないあなたダウンロードページで、どれがzipファイルへのリンクだか分からないあなたへ送るbookmarklet。
javascript:(function(){var t = prompt('filetype?','');if(t.length==0)return;var a = document.getElementsByTagName('a');for(p in a){var r = new RegExp('(\\.'+t.split(',').join(')$|(\\.')+')$','i');if(a[p].href&&r.test(a[p].href.split('?')[0])){var s=a[p].style;s.border='5px solid red';s.padding='2px';s.backgroundColor='yellow';a[p].scrollIntoView();if(confirm('next?')==false)break;}}})();void(0);
実行すると、プロンプトが起動するので、探したい拡張子を指定します。.(ピリオド)は不要、複数指定したい場合は,(カンマ)区切りで。
jQueryのDownloadページで「js」を検索すると、↓こんな感じで、最初に見つかったリンクが赤枠黄色バックでハイライトされます。
次の候補があると、↓こんな感じでconfirmウィンドウが表示されます。
OKを押すと、次の候補がハイライトされます。
注意点
リンク先は、?で分割してGETパラメータを切り捨ててチェックしているので、
http://hoge/?moge.js
こういうリンクは、jsの検索だと引っかからないです。
いつ使う?
それは言わずもがな。
JavaScriptの配列に、文字列や数値だけが入っているとき、そこにある値が入っているかを判定するには、
var hoge = [123,456,789];
var check = 123;
for(p in hoge){
if(hoge[p] ==check){
alert('入ってる!');
break;
}
}
と、書くけど、もっと簡単に、
var hoge = [123,456,789];
var check = 123;
if((' '+hoge.join(' ')+' ').indexOf(' '+check+' ') > 0) alert('入っている');
と書ける。
jQueryの中でHTMLエレメントに指定されているclass名の判定には同じようなロジックが実装されています。
昨日のGoogle Language API絡みで。
Google AJAX Language APIを試してみた - techlog
一気に入力していくと、最後のほうで入力したものが翻訳されない。
そんなときは一文字打つか、↑とか↓とか押せば再度イベントが発生して翻訳される。
非同期通信の動作は全然調べていないので・・・。
上とか下とか押しただけで、イベントが発生してしまうので、無駄なリクエストが飛びすぎる。
でも制御する方法がよくわからない・・・。Googleに怒られるかな。
こういう場合は、onkeydownのイベントに直接実行したい関数を紐付けるのではなく、以下のtimerTranslateの方を紐付けておくと良い感じになります。
var timer_id; //setTimeoutでの戻り値を受け取る変数。
function timerTranslate(){
try{clearTimeout( timer_id )}catch(e){}
timer_id = setTimeout("translate()",1000); //第2引数で時間(msec)を指定
}
function translate(){
//実行したい関数
}
つまり、テキストエリアでkyedownイベントが発生したら、それ以前に発生したタイマー処理をクリア(なかったこと)にし、一定時間後に翻訳処理が走るようにします。これで、キーボード入力で連続したイベントが発生しても、translate関数が実際に実行される回数を低減でき、サーバの負荷を下げることができます。
Google から、また素敵なAPIが提供されました。
Ajaxのインターフェースで、簡単に翻訳が行えるというもの。
自動で何語かを判別する機能もあるらしく、なかなか使い勝手が良いのではないかと思います。
翻訳エンジンはGoogle Translateと同じエンジンを使っているようで(推測です)、
「魔女の宅急便」が「Kiki's Delivery Service」と訳されたり、
「紅の豚」が「Porco Rosso」と訳されたり、
「ジョジョの奇妙な冒険」が「WRYYY」と訳されたりするのが、そのまま再現されていますね。
Safari 3.1がリリースされました。
ってことで、早速インストール。
JavaScript のパフォーマンスが向上しています。
なるほど、確かにGoogle Readerがさくさく動きます。まあ、IE7でもFirefox2でも、さくさく動いているのですが、それよりもきびきびしている印象。あくまで印象ですが。
しばらくGmailやGoole Reader等のWebアプリ用のブラウザとして使ってみることにします。
Macbookも買ったので、Apple系のアプリに慣れておこうかなという目的もちょっとあり。
(といいつつ、早速Google Notebookが動かないのを発見してしまって、ちょっと萎えではありますが)
Macbook買ったよ!
べ、別に流行にのったワケじゃないんだからね!
買ったのは、以前にも書いたモデル。

コストパフォーマンスが更に向上ヨドバシアキバで買ってきました。
で、雨の中家に持ち帰り、長男(2才)と共に箱を開けたわけです。
「リンゴ!リンゴよ!」
と、アップルマークにテンションが上がる長男。
で、リビングのテーブルに本体を出して、パネルを開けたら、息子がすかさずキーボードのボタンを押し始めました。
「ちょっとちょっと、やめてよ」
とか言っていたら、なんとまあ綺麗に電源ボタンを押しちゃうじゃないですか。
さくっと起動するMac。
最初に電源を入れるのを楽しみにしていたのに・・・。無念。
これで勉強会をustしたり、イベントに持っていってリアルタイムレポートしたりできそうです。
機能が実装されたのは結構前なので、今更感が若干漂いますが。
Google Reader (英語)にFriends' share 機能とは、Google TalksにChatする相手として登録されていて、かつGoogle Readerを利用している人がリストに表示され、アイテム(RSSフィードの記事単位)を"Share"にすると、そこに登録されている友人達にアイテムが共有される、というもの。
↓リストにはこんな感じで表示され、
↓アイテムが共有されるとこんな感じになります。
超細かいところに気づいてしまったので、衝動的にエントリー。
↓普通に検索すると、検索結果一覧でのテキスト入力はこんな感じ(検索ワードがB'zの新曲なのは僕がB'z厨だから)
で、検索ワードの文字数を多くして検索すると、↓こんな感じでテキスト入力の大きさが変わってます。
会社の後輩が、gihyo.jpにてRedmineの運用に関する連載を開始しました。
Redmineを運用するためのイロハを身につけよう:第1回 新機能の紹介と最新版が利用できるまで|gihyo.jp … 技術評論社
彼らは、実際に社内でRedmineを使ってプロジェクト管理を実施していて、その方面ではかなりのノウハウを蓄えています(そのはず)。この連載で、その辺のノウハウを惜しむことなく出してくれるのでは、と勝手に期待している次第です。
gihyo.jpで以前に書かせてもらった記事が、未だにアクセスの数が多いらしいのですが、書いたときのバージョンが0.5系となっていて、情報が若干古いのではと気になっていたところでした。
今後は、JRuby上での運用や軽量Webサーバでの運用など、おもしろそうな内容を予定しているらしいので、楽しみ楽しみ。
忘れた頃に出てくるね、人月話。
今回は、SIer側と顧客側との思惑の違いが悲劇を生んでいる、みたいな話ですか。
にしても、
ユーザー:「でも,払いたくないな。まけられない?」
ベンダー:「うーん。勉強させていただいて10人月ですかね」
ユーザー:「じゃあ5割引きで10人月の追加ということで会議に通すよ。社内や経営陣に説明するのには,やはり人月。しょうがないんだよね」
ユーザー,ベンダー:「でしょ」
この会話は酷いなぁ。
だいたい請負業務だとしたら、顧客に人月単価で話していることがおかしいんだよなぁ。
話すなら「追加で20人月」じゃなくて「追加で2000万(単価100万として)ください」ですよね。ま、追加の価格交渉だからそうなっちゃうのも仕方ないのだけれど。
なんか歪んでるね。
ここ数週間、Macbook欲しい病にとりつかれてしまっております。
欲しいなぁと思っているのは↓このモデル。
価格.comで調べたら、今のところ最安値は14万弱くらいなんだよねぇ。買えるんだけど、買って良いものかと毎日悶々としているわけです。
土曜日はヨドバシアキバにぶらりとでかけて、Macコーナーでずっと触ってたんだよね。
Macbook AIRを触っていたら、隣にいたインド人(たぶん)が英語で話しかけてきて、「そいつはクールだろ?(英語で)」「でもな、ドライブがついてないのさ(英語で)」「ワイヤレスなんだけど、そこがいけてないぜ(英語で)」と、そういうコメントに「オー」とか「クール!」とかインチキ英語で返事してしまったよ。
ま、それはどうでも良くて。
店頭で触った感じだと、若干動作がもっさりめだったんだけど、実際どうなのかなぁ。
まあ、セカンドノートなので、Webにつないで、GmailとかGoogle Docsが触れりゃそれで良いんだけどね。
なんか来週くらいには勢いで買っていそうな気がするなぁ。
お墓にされたQRコードを携帯電話で読み取ると、故人のプロフィールや生前の写真などが表示され、さらには携帯電話から記帳して墓参りのログを親類で共有することも可能になる。こんな新感覚のケータイお墓参りスタイルが生まれた。
QRコードでケータイ墓参り、もう墓地に行く必要なし?:モバイルチャンネル - CNET Japan
ほんまかいな、と突っ込みたくなるけれど、まあ、これも時代の流れなんですよねぇ。
墓参りというところに、こういうITを持ち込むとすると、まだまだアイデアは出てくると思うのです。
例えば、
とかね。
あと遺影とかも電子化しちゃって、色んな写真を次々とスライドショー的に流してみるとか。
坊さんがUstream.tvでお経を上げてくれるとか、Ustで葬式や法事に参加できるとか。
なんか、この分野、色々やれそうな気がしてきた。
POLAR BEAR BLOG: Google は社内でどんなツールを使ってるの?
社内ツールって、その使い勝手とか、見た目とかかなり重要だと思います。
うちの社内でも、いくつかの社内ツールがありますが、顧客に出さないからか見た目や使いやすさにこだわったものが、結構少ないです(社内SNSのことじゃないですよ>関係者)。
僕なんかは単純なので、普段自分たちが使う者こそ、見た目や使いやすさにこだわりたい、と思ってしまいます。
例えばね、Webページで、何かの一覧を表示するページで、tableタグにcssが適用されていなかったり、空白のセルがあって、IEで表示がおかしくなっていたりしたら、それだけでちょっと萎えちゃうわけです。
特にうちの会社なんて、SI業をやっているわけですから、自社内に最適なシステムを提供できずして、なんでお客様に提供できるのかと思うわけですよ。
よく「自社製品を自分の社員が使ってくれない!」などという嘆きをよく耳にしますが、Google の場合はそんな心配もないようで。
自分たちが自分たちの会社のブランドを愛するという意味で、自社製品を使うのはとても重要ですよね。
アイデアを投稿したり評価するシステムなんて、それこそWeb上のどっかに転がっていそうなものですが、そういうところにもちゃんとロゴを作って、Googleブランドを意識させているところは流石です。