- 料理のレパートリーを増やす、特にスープ系
- 弁当をなるべく作る
- アイロンを使いこなす
- Wii Fit Uに慣れる、特に腕立て系
- ゲームをちゃんとやる
- 今年こそは健康診断を受ける
- 快便
- 出版社/メーカー: 興和
- 発売日: 2011/04/20
- メディア: ヘルスケア&ケア用品
- この商品を含むブログを見る
たぶん、今年最後のエントリーです。
本当は去年買った音楽のまとめとか書いてたんですが、いろいろあって書けなくなりました。
代わりに、今年最後に買った音楽を紹介します。
BANGFACE - Neo-Rave Armageddon
BANGFACEっていうのはUKあたりでやってるレイブイベント。
僕は今年イギリスに行った時にちょうどやってたんだけど、居た場所が開催地から離れてて参加できなかったという悔しい思いをしたイベントです。
で、今回はそのイベントのコンピレーションがリリースされました。
参加アーティストがまた豪華です。
Bong-Ra vs The DJ Producer, Luke Vibert, Ceephax Acid Crew, Venetian Snares, Hellfish, Shitmatと、いつのPlanet-Muだよこれみたいなラインナップw
特に久々のVenetian Snaresの新作が入っているというのがポイントです。
いやー、ずいぶん待たされた感ありますね。
旧譜とリミックス以外のリリースでは今年初のリリースじゃないですかね?
って、年末に今年初とかどういうことだよ!
内容はレイブイベントのコンピらしいハードコアとAcidのクソ煮込みです。
とてもとてもカッコいいです。
Luke VibertやCeephax Acid Crewは相変わらず素晴らしいAcidだし、
Hellfishは相変わらずとんでもないスピード感だし、
Luna-Cってアーティストが今年ももクロで散々聞く羽目になった某クラシック曲をむちゃくちゃにしまくってるし、
Bong-Ra vs The DJ ProducerやShitmatのレイブミュージック感は本当にたまらないし、
そんでもってVenetian Snaresがただの神だし。
あと、アルバム買うとおまけについてくるDJ Mixがまたカッコいいんですよね。
こういう頭空っぽにして聞けるDJ Mixが手に入って本当にうれしいです。
今年の最後にこんなにおかしなアルバムが手に入って大満足です。
これで辛いことが乗り越えられそうです。
皆さん、また来年〜
エンジニアが血の涙を流すライトノベル、なれる!SEの最新作を読みました。
今度は管理職...えーと、工兵まだ新卒一年目ですよねwwwタイトルが発表された段階で笑ってしまいました。
内容もすごかったですね。最初に工兵が一緒に客先に行くところで頭抱えるような内容が盛り沢山。たまらないですねー。
少々ネタバレになりますが、ベンダー保守を頼んでないとか、代替機がほとんどないとかとても懐かしいというか、これ何年前の話だよって思いました。
今回の話のメインとなるのは赤字を抱えた現場をどうするかっていうもの。
ただ、赤字の成り立ち方がかなり異常というか、いままでの話のなかで結構特殊な部類。
ライトノベルらしいといえばそうなんだけど、このシリーズの中では異色とも言える回だったと思います。
その分、普通に話として楽しめる感じで、今までよりは遥かに心に傷を負わなかったとも言えます。
まぁ、こんな現場絶対嫌だけど(汗
オチは相変わらずというか、ぶっ飛んでましたね。
今までよくある相手の会社で解決するパターンだったんだけど、
今までの中で一番ありえない訪問の仕方。無茶がすぎるwww
読んだあとのすっきり感は今まででは一番強く、途中で心が折れて読めなくなった人にもオススメの回です。
これは Doc-ja Advent Calendar 2013 6日目の記事です。
先日、FOSS4G 2013 Tokyoのハンズオンのため、同僚と一緒にpgRoutingのworkshopの日本語への翻訳を行いました。
pgRoutingは弊社が中心となって開発しているOSSです。
pgRouting自体の説明はpgRouting workshopの日本語版などを参考にして下さい。
pgRouting workshopのドキュメントはSphinxを使って作成をしています。
国際化の部分をsphinx-intlを使って行い、transifexを使って共同作業で翻訳を行っています。
今回は実際の翻訳作業を通して得た知識を元に説明をします。なお、pgRoutingの例で見るとありますが、そこまでガッツリpgRouting絡んでないので安心してください(何
今回の作業では主に以下の4つの作業を元に説明します。
今回必要となるツールは以下のものです。
いずれもPythonで作成されており、virtualenvを使えば簡単に構築環境を作ることができます。
まず、virtualenv環境の構築です。ここは主題ではないので適当に進めます。
$ virtualenv sphinx $ echo "sphinx/*" >> .gitignore
.gitignoreに追加したのはプロジェクト管理から外すためです。
プロジェクト管理をしていない、もしくは別の仕組みを使っている場合は無視しても構いません。
次に、各ツールのインストールを行います。なお、(sphinx)はvirtualenv上にいることを指します。
$ source sphinx/bin/activate (sphinx) $ pip install sphinx==1.2b3 (sphinx) $ pip install sphinx-intl (sphinx) $ pip install transifex-client
これでインストールは完了です。
次のコマンドが打てるか確認しましょう。
(sphinx) $ sphinx-build (sphinx) $ tx
sphinx-buildがsphinxのコマンドで、txがtransifex-clientのコマンドとなります。
shellによっては実行できない場合があります。その場合は一旦virtualenvを抜けて再度activateにすれば良いと思います。
(sphinx) $ deactivate $ source sphinx/bin/activate
なお、次からの記述から(sphinx)を省略します。基本、virtualenv環境で行うことに注意をしてください。
次にsphinxのプロジェクトを作ります。
$ sphinx-quickstart docs
今回はdocsというディレクトリにファイルがあるという前提で進めます。
これはpgRoutingで使われている構成と一致します。
続いて、transifex-clientのセットアップを行います。
まず、先にtransifexでアカウントを作成しておきます。
次にtx initコマンドを使って作業用のディレクトリに設定ファイル(.tx/config)と、個人用の設定ファイル(~/.transifexrc)を作成します。
$ cd docs $ tx init --user=<username> --pass=<password>
Transifex instanceを聞かれますが、それはこのままEnterを押して下さい。
続いて、Transifex側でプロジェクトの作成を行います。
この作業は僕のケースではすでに作成済だったため、作成方法は割愛をします。
続いてプロジェクトのIDを確認します。
こちらはTransifexのURLを確認すればOKです。
pgRouting workshopの場合では、 https://www.transifex.com/projects/p/pgrouting-workshop/ となるので、プロジェクトIDは pgrouting-workshop となります。
今回は仮にyasumetarouとしておきます。
では、実際にプロジェクトの翻訳を始めていきます。
基本的な流れは以下のようになります。
なお、今回の解説ではsphinxが提供するmakeコマンドは使わないようにしてる点に注意して下さい。
まず、翻訳の元となるpotファイルを作成します。
作成に使うコマンドはsphinx-buildです。 -b gettext オプションでpotファイルの作成となります。
$ cd docs $ sphinx-build -b gettext -a -E -c . . ./i18n/pot
-c オプションはconf.pyがあるディレクトリを指定します。
ハイフン無しのオプションは source ディレクトリ、 output ディレクトリの順になります。
続いて、potファイルをtransifexにアップロードできるようにします。
$ sphinx-intl update-txconfig-resources -c "./conf.py" -p "./i18n/pot" -d "./i18n" --transifex-project-name=yasumetarou
-c でsphinxのconf.pyを指定します。
-p でpotファイルのパスを指定します。
-d でpoファイルのlocaleの位置を指定します。
--transifex-project-name で先ほど確認しておいたプロジェクトIDを指定します。
ここで行われれる作業は .tx/config の更新となります。
この作業後は以下の様な状態になります。
[main] host = https://www.transifex.com type = PO [yasumetarou.index] file_filter = i18n/<lang>/LC_MESSAGES/index.po source_file = i18n/pot/index.pot source_lang = en
今回ではi18n以下にpotと各localeが入るような構成にしています。
実際pgRoutingでは以下のような構成になっています。
% tree -L 1 i18n i18n ├── de ├── es ├── fr ├── ja └── pot
.tx/configにおけるfile_filterの
最後にtransifexにpotをアップロードします。
$ tx push -s
-s はsourceファイル、つまりpotファイルのみをアップロードすることを意味します。
これでpotファイルがアップロードされます。
あとは、transifexから言語を追加して翻訳を行います。
ここからが継続的な作業となります。
翻訳を取り込んでhtmlなどを作成します。
まず、poファイルをダウンロードします。
$ tx pull -l "ja" -f --minimum-perc=1
-l で言語を指定します。
-f はダウンロードを強制します。
--minimum-percはその言語がどのぐらい翻訳されたらダウンロードするかという基準を与えています。この場合では 1 なので 1% 以上更新されていたらダウンロードするようにしています。
次にpoファイルをmoファイルに変換します。
$ sphinx-intl build -l "ja" -c "./conf.py" -p "./i18n/pot" -d "./i18n"
-l で言語を指定しています。
最後に、sphinx-buildでhtmlを作成します。
$ sphinx-build -b html -a -E -D language="ja" -c . ./_build/doc/html/ja
これで、翻訳されたドキュメントを得ることができます。
最後に原文に更新が入った時の対処です。
基本的には以下の手順になります。
ここで使われているコマンドは全ていままで紹介したものなので、具体的なコマンド例は割愛しますが、いくつか重要なポイントがあります。
一つ目はtx pullで最終更新分を取得しておく事と、新しくできたpotファイルを元に手元のpoファイルを更新することです。
というのも、原文にちょっとした修正が入ってしまうとtransifix側ではまるごと文章が変更されたという扱いになります。
そのため、一旦手元に更新されたものを置いておいて、git diffなどで差分をとっておくと変更点がわかりやすくなります。
また、今回はtx pushで-sオプションのみ使うようにしています。
実は手元のpoファイルも-tオプションで更新できるようなのですが、transifexではファイルの扱いが非常に破壊的なため、このオプションでtransifex側で不具合があると危険なので、僕自身は使わないようにしています。
基本手元のpoファイルはread onlyという扱いにして、更新は全てtransifexで行うというふうにしています。
正直これが良いかどうかはわかってないのですが、危機回避という点では徹底するようにしています。
完璧ではないのですが、pgRoutingでは以下の場所にあるスクリプトで基本的に作業をしています。
https://github.com/pgRouting/workshop/tree/master/tools/transifex
potの更新部分については
の順番で動かすようにしています。
プロジェクトごとにこのようなスクリプトを用意しておくと円滑に進めることができると思います。
ぜひ活用してください。
本筋とは関係ないのですが、sphinx-buildでlatex経由でpdfを作成できるよう同僚が調整しています。
https://github.com/pgRouting/workshop/blob/master/tools/transifex/build_translations.sh
うまく出力できない!っていう人はこれを試してみるとよいかもしれません。
pgRoutingでは本家サイトもpgRouting workshopも公開のためにgithub pagesを使っています。
https://github.com/pgRouting/pgrouting/tree/gh-pages
https://github.com/pgRouting/workshop/tree/gh-pages
これらのおかげでサイトの構築のためのリソースも含めて一括してgithub内で扱うことができます。
新しいプロジェクトを作りたいという人はドキュメントをsphinxで、公開はgithub pagesというのも結構使える手段だと思います。
三行でまとめると
ってな感じです。皆さんの翻訳に参考になれば幸いです。
次回は@Arachansanさんです。あれ、さんが二回?
laravel結構簡単なんだけど、ドキュメントのタイトルが全部Documentで、タブでドキュメント大量に開くと迷子になってきつい
— Taro Matsuzawa (@smellman) 2013, 11月 8
Markdownあるから自分でドキュメントサイト作るかなって悩んでるレベル
— Taro Matsuzawa (@smellman) 2013, 11月 8
@hail2u_ あー、それいいですね。
— Taro Matsuzawa (@smellman) 2013, 11月 8
というわけで作った。
これで速上がりますね。
@hail2u_さんありがとうございました。
Laravelのドキュメントの翻訳をやっている @HiroKws さんから連絡がありました。
@smellman オリジナルの英語版はどうしようもありませんが、私の訳した日本語版は対応しました。よろしければ。 http://t.co/PmfzGSzsq8
— Hirohisa Kawase (@HiroKws) 2013, 11月 8
日本語のドキュメント の方で対応をしたとのことです。
非常に便利です!!!!!!!
どうも、酔っぱらいです。
最近何やってるか書いてなかったので、ちょいとまとめやすいものができていたのでまとめたいと思います。
9月にイギリスに行ってきたんですが、そこで2つ発表をしてきました。
最初の発表はState Of The Map 2013 で Find a Hidden River という内容を話してきました。
これは渋谷川の暗渠のデータがOSMで間違っていたので自力で探したという話です。
ちなみに、実はGoogleの方では正しいデータを出していたんですが、調べた当初そこらへんのリンクを見ながら「この先を参考にしてしまったら調査にならない!」とガチで自力で調べたものでもあります。ってか、それ見ちゃったらライセンスの件調べないとだめじゃんっていうのが一番キツイので絶対Googleの地図は見ないぞっていうのの戦いでもありました。
ちなみに、修正後にだいたいGoogleと同じだった(自分が調べたところは、それ以外はまだ見てない)ので、ある意味自信を持ちました。
って、俺は何と戦ってるんだ!!!!
あ、ちなみに映像もあります。僕のクソ英語が堪能できます。
続いてのイギリスの発表は SVGMap - Tile Map Without Javascript です。
これはFOSS4Gで発表してきたんですが、持ち時間30分というまじで地獄でした。
映像もあります。
SVG Map - Tile Map Without Javascript - YouTube
なにがきついって、これメイン俺じゃねーよっていうのと、
洒落にならない緊張で時間が破滅して最後に自分が見せたかったやつをちょっと飛ばしてたりするんですよ。
緊張感は音声で伝わると思うんですが、マジで死ぬかと思った。
でも、社長の関さんからいちおうできたって評価を貰ったのでまぁ助かったという感じです。
ちなみに、この後英語が若干怖くなってます(ダメじゃねぇか
あと、英語については弊社のDanielに査読してもらって、おかしいところをpull requestしてもらうていう感じで直しました。
若干何かをdisってるところをまるごと削除して大人を感じましたね。
続いて10月と11月ですが、発表を二回と、ワークショップなるものを一回やりました。
発表2つはバージョン違いで、1つ目はOSC 2013 Tokyo/Fall の Maptember 参加してきたって話 で、もう一つは FOSS4G 東京で Maptember に行って来た という話をしました。
元々後者の方は真面目な話をしようとしていて、あくまで飯田さんのネタだけ笑いにしようとしていたんですけど、
まじめにしようとして頭かかえていたら弊社社長から「真面目な内容にしないほうがいいのでは」と言ったのでその方向性にしたところ、
たいして笑いも取れず、かつ、同僚が使い回しづらいプレゼンとなり、結果として素晴らしい全損となりました。
まさに破滅界隈と言えます。
あとはワークショップなんですが、これはpgRoutingというソフトのワークショップです。
僕と同僚の長瀬さんと、Vickyさん(pgRoutingのコミッターだと思われる人)の三人でほとんどの翻訳をしました。
僕が一番翻訳した量は多かったんですが、雑な翻訳を長瀬さんがしっかりと翻訳してちゃんとした翻訳になりました。たぶん。
僕自身ワークショップの翻訳を通してpgRoutingの内容を覚えるという感じでした。
ちなみに、イギリスでもこれをやっていて、イギリスで手伝いながら覚えつつ翻訳で補完するっていうやり方で弊社のメインプロダクトを知るというなかなかエキサイティングっていうかお前転職して1年半なにやってたんだっていう感じのノリですが、まぁ詳しくなれてよかったですよー(何
で、日本でやったワークショップについて結構まずいところがあって、イギリスで4時間かけてやったのが日本で3時間っていうのと、
そもそも、UNIXのコマンド操作がわからない人が結構いたりして、
タブで補完してくださいがわからないとか、今postgresの画面なのか、ターミナルなのかをわかっていないで操作するっていう人がいて、
僕が想定してる初心者を遥かに超えていたっていうのが結構大変でした。
イギリスで同じワークショップをやったけど、僕の母親よりも年上にしか見えない老婆みたいな人が資料でnanoで操作しろって書いてあるやつをvimで操作した上、「ふふ、楽しいわね」みたいな余裕ぶっこいてたから。
ってか、あの老婆まじですごかった。一回バスで居一緒になって話したけど、面白い人だった。
今回のワークショップは最後まで行けなかったけど、いくつか失敗があったんだけど、自分の無知が相当あったと思う。
さっき想定してる初心者っていうのがあるけど、タブ補完とかパソコン使い始めて1週間後にはdoskey入れて使っていて、bashの補完とかも普通に始めてUNIXにログインしたときには使ってて、GUIだけの操作とか何言ってるのみたいな感じでやってた人間が同じ感覚でやったらだめなんだろうって思った。
僕が思ってる初心者っていう感覚がダメだ。前の会社の若い子に教えてる時は結構やってくれたけど、誰かに調教されてるんだろう。だからvimをすぐに覚えたのかも。
物事を教えるって難しい。ちゃんと物事を教えるには敷居も上げたりするってのも必要なんじゃないかなぁ。
でも、pgRouting workshopは本当に初心者向けだと思うよorz
というわけでわりと凹んだりっていう感じでした。
イギリスの話を書くにすでに面倒です。
というわけで、今日ヨドバシでいろいろ買い物してきました。
iPod classicはこれで三台目ですね。壊れたんで交換です。うう、帰国早々痛い出費。
ノイズキャンセリングヘッドホンは、自分の家が線路沿いなのでさすがに必要かと。
ただ、窓開けてる横に中央線が走るとさすがにキャンセルできねー。
あとはいろいろ食事向け。
トースター買ったのは完全にイギリスで朝食でパン食うのもいいなーと思ったからです。
あとであの豆のレシピ調べないと...
パスタで茹でるやつは買った後に横幅がどうこうって書いてあるのに気づきました。
調べたら若干足りないけどまぁ大丈夫だろう、昔も使ってたけどその頃もいろいろひっかかってたし!
Apple iPod classic 160GB ブラック MC297J/A
SONY ノイズキャンセリングヘッドホン NC200D MDR-NC200D
T-fal ポップアップトースター アプレシア スカイブルー TT356870
THERMOS 真空断熱フードコンテナー 0.3L バニラ JBJ-300 VAN