ryhmrt’s blog

フィリピンから日本に戻った意識低い系プログラマの雑記

フィリピンでの移動手段について

先月末から日本に戻りましたが、日本の交通網の発達は素晴らしいなあと改めて思ったりしています。 参考までにフィリピンの交通事情がどんなものなのか私の主観的な情報をここに記しておきます。 タクシー フィリピンの短期滞在者が一番お世話になるのがタク…

Jacksonのデフォルトタイムゾーン

今週に入ってからSpringMVCでWebAPIをごりごり書いているのですが、いざ日付型を扱うというところになってちょっとはまったのでメモ書き。 謀ったなJackson SpringMVCのJSON処理は標準でJacksonを使うようになっています。 Jacksonで日付型をフォーマットす…

ページ遷移時にAPIを叩いてデータを読み込む with react-router-redux 4.0.0

react-router-redux を 4.0.0 にしたらメソッド名とか中の処理とかけっこう変わってました。 前に書いたURLのフック処理がいろいろ駄目になっていたので、4.0.0でどんな処理になっているのか、ざっと追って、新しくコードを書き直してみました。 react-route…

gulpのビルドをエラー時にリスタートさせたら不評だった

コンパイルエラーが発生したときにgulpのwatchが終了して、リスタートするのが面倒なので、ビルドコマンドを無限ループに入れることに。 そして、コンパイルエラーが起きたら通知があったら良いだろうと、以下のようなコマンドを実行してみました。Macで動き…

ページ遷移時にAPIを叩いてデータを読み込む with react-router-redux

react-router-redux 4.0.0 向けに新しいのを書きました -- 以下は古いもの -- Redux way では描画に必要なデータは props 経由で渡すことになります。 画面遷移時にデータの読込どうしようかと少し悩みましたが、今のところ、URLの変更を検知して、そのURLに…

JavaScript疲れを脱する - React編 というブログエントリを読んでみた

最近 React + Redux でSPAをやっていて、パフォーマンスとかいろいろ問題が出てきています。 試行錯誤を繰り返す中、チームメンバーが "Getting Out of JavaScript Fatigue - React Edition" というブログ記事を紹介してくれました。 Reading Hacker News co…

フィリピンでのオフショア開発を振り返って

フィリピンでのオフショア開発に携わって、そろそろ4年になろうとしています。 年明けにフィリピンチームの年次考査をやるために考えを巡らせたり、これからフィリピンでオフショア開発を始めるという方に偉そうに相談に乗ったりといろいろあって、一度フィ…

Rakudoインストール時の "Could not find symbol '&bool'" エラー

手元のRakudoを最新にしようとしたら、 make install 時に Could not find symbol '&bool' とかいうエラーが出ました。 リポジトリが壊れているのかと思って数日放置してからビルドしてみましたが、状況が変わらないのでGoogle先生に聞いてみると、 install …

react-router の examples をざっと読んでみた

Redux と共に redux-simple-router を使おうと思っているので、react-router をおさらいするためにサンプルコードをざっと読んでみました。 以下、読んだときのメモ。 Active Links <Link> の activeStyle アトリビュートでリンクがアクティブなときのスタイルを定</link>…

Redux始めました

しばらく前からReact.jsは使っていたのですが、この度本格的なSPAアーキテクチャのアプリを作るに当たって、rebuildでちらっと耳にしたReduxを使ってみることにしました。 Fluxのコンセプトを継承しつつも各クラスの役割分担がちょっと違うので、個人的なメ…

VirtualBox の Guest Addition を入れ直す

事の始まり - 共有フォルダのマウントエラー Vagrantで構成している仮想マシンを再起動したら下記のようなエラーが出て、共有フォルダがマウントされないようになってしまった。 default: /vagrant => /Users/ryhmrt/Projects/hoge Failed to mount folders …

Makati Shangri-La - Lobby Lounge

最近全くアウトプットが無かったので、無理にでも何かアウトプットをして習慣づけをしようかと思いました。とりあえず近所のレストランやら何やらを貼り付けてみます。 Makati Shangri-La はマカティで2番目か3番目くらいに番付けされるホテルだと思います。…

livedoor to はてな

少し前までlivedoorのブログを使っていたのですが、管理画面がなんかイケてないような気がしたのと、同じサービスばかり使っていて飽きたので、はてなに移行してみました。 こんな時に独自ドメインで運用していると、何の気兼ねもなく移れて気持ちが良いです…

Gitで差分ファイルをZipに固める

いろいろなオトナの事情でお客さんのリポジトリに直接アクセスできなかったりすると、差分ファイルを作ってZipに固めて渡すとかいうことがあります、というか現在進行形でやっています。 Gitの --name-only オプションで差分ファイルの一覧を取って、Zipの -…

PostgreSQL 8.2 の暗黙の型変換の罠

はじめに PostgreSQL 8.2 を使ったプロジェクトに携わることになったのですが、他のミドルウェアのバージョンの関係で手元にできあがったのが PostgreSQL 8.4 の環境になりました。 ダウングレードするのは面倒くさいし、大してバージョンも違わないから大丈…

CakePHP3のメッセージ定義でJavaScriptを多国語化

フィリピンでシステムを作って日本に納めるために、英語版を作って日本語化するというアプローチを取っているのだけれど、React.jsをシステムに取り入れたところJavaScriptでローカライズする必要が生じて、えいやっとやってみました。 これで CakePHP と同…

Git 2.4

一週間ぶりくらいにMacPortsを更新したらGitの2.4が振ってきた。 Gitは既に誕生から10年を迎えたらしい。前職から使ってたから自分が使っている期間もそこそこになる。 Atomic Pushes 複数のブランチをpushするときに、一つでもpushが失敗したら他のpushも取…

PostgreSQLのスロークエリ追跡

最近 PostgreSQL でシステム運用をしていて便利だったのが postgresql.conf にある log_min_duration_statement という設定。 実行時間がこれに設定したミリ秒を超えるクエリはログファイルに吐き出されるようになる。 以下のように設定すると100ミリ秒を超…

Git 2.3

MacPortsのパッケージをアップデートしたら Git 2.3 が降ってきた。 メジャーバージョンアップになるので新機能や変更点を確認。 個人的に気になったのは以下2点。 Push to deploy Gitで管理してるプロジェクトをサーバにデプロイするとき、サーバで git pu…

Spring Boot + DBUnit でテスト用のDBを定義する

Spring Boot のプロジェクトで DBUnit を使うときに、テスト用の DB を定義する自分なりの方法をメモ。 通常以下のようなブートストラップ用の Application クラスがあるはず。 package myapp; import org.springframework.boot.SpringApplication; import o…

MacBook Pro Retina 13" の最大解像度

MacBook Pro の Retina 13" モデルは OSX 標準の設定画面からだと最大 1680x1050 までしか解像度を上げられませんが、実はもっと大きな解像度をサポートしています。AppStore にいくつか有料のアプリがありますが、フリーのコマンドラインソフトがあるのでオ…

Atom の Add Selection Above/Below のキーボードショートカット

Atom の Add Selection Above/Below のキーボードショートカットはデフォルトで Shift +Control + Up/Down なんだけど、OSX は Yosemite になってから Control + Up/Down をデフォルトでミッションコントロールに割り当てているため、どちらかを設定変更しな…

Googleカレンダーで書込権限のあるカレンダーをその他のカレンダーに追加する

自分は会社でも個人でもメールとカレンダーはGoogleにべったりです。会社でGoogleカレンダーを使い始めてから一つずっと気になっていたのが、他人のカレンダーがマイカレンダーに追加されて、Macのカレンダーアプリで予定承認の通知が表示されてうざいという…

Spring Roo の database コマンドでスキーマが見つからないと言われる

database.propertiesに database.url = jdbc:postgresql://localhost:5432/hoge と設定されているとき roo> database reverse engineer --schema hoge --package ~.entity とか roo> database introspect --schema hoge とかコマンドを打っても Schema(s) 'h…

relation "hibernate_sequence" does not exist

PostgreSQL + Hibernate JPA で relation "hibernate_sequence" does not exist ってエラーが出た。 @GeneratedValue(strategy = GenerationType.AUTO) これを @GeneratedValue(strategy = GenerationType.IDENTITY) こっちにしたら直った。

Spring MVC で独自バリデーション

組込のバリデーション Spring MVC では JSR-303 のバリデーションが使える。 @NotNull @Size(min=1, max=50) @Pattern(regexp = "[a-zA-Z-_.]+@[a-zA-Z-\\.]+") とかのバリデーションをBeanのフィールドに宣言して、アクションのメソッドで public String sa…

AJDT configurator for m2e

Aspect J のプロジェクトをEclipseで扱ったら、Plugin execution not covered by lifecycle configurationとか表示されてコンパイルが止まってしまう問題に遭遇。 stackoverflowとかを徘徊して、SPRINGSOURCE BLOGにあるUPGRADING MAVEN INTEGRATION FOR SPR…

ネット断線

起床 4/24、いつもよりかなり早く起きた。週末のんびりしたおかげだろうか。 二度寝した後シャワーを浴びて、ホテルの朝食を摂った。 朝食の場所にはいつもだいたい同じスタッフがいる。 今日は少し暇だったからかこっちに話しかけてきてくれた。 歌が大好き…

終・バカンス

寝坊 4/23、寝過ごした。社長がドアを叩く音で目が覚める。 フライトの時間まで一時間半、どうやらかなり飲み過ぎたようだ。 手早く荷物を詰めて空港に向かった。 タグビララン空港 到着時にも感じたことだが、空港設備はかなり質素である。 出発口には、チ…

続々・バカンス

おなか 4/22、若干おなかの具合がよろしくない。 飲み過ぎとクーラーと慣れない食事の3重奏が効いたのだろうか。 基本的に消化器系は丈夫な方なのだが。 朝食 ホテルの朝食が少し味気なかったので、今日は別のところを探すことにした。 しばらくぶらぶらし…

続・バカンス

目覚まし電話 4/21、社長からの電話で目が覚めた。 朝の便を乗り過ごしたらしい。飲み過ぎだろうか。 ダイビングショップにその旨伝えて欲しいとのことなので、伝えに行った。 残念ながら英語で説明する羽目になった。 朝の散歩 その後、ホテルで無料サービ…

バカンス

サイン 4/20、フィリピンでの法人設立の手続き。大量にサインした。 社長から筆記体で頼むって言われたので頑張って書いたが、後でフィリピン人に漢字でもOKって言われた。先に言って欲しかった。 銀行 その後、銀行口座設立の打ち合わせに大手銀行の本店に…

SPA(週刊誌ではない)

マニラ湾 4/19、取引先の会社の財務担当が飯に連れてってくれるというので、社長と一緒についていった。 車2台持って、個人の運転手がいるようだ。良い暮らしだなぁ。 マニラ湾に程近い中華料理屋で飯を食って、帰りがけにマニラ湾が見える場所に案内しても…

ボスが来た

寝坊 4/18、寝坊してしまった。起きたら10時過ぎ。 昨晩はビール3杯しか飲んでないのだが、意外に疲れが溜まっているのかもしれない。 社長 日本から社長がやってきた。 そういえば、こっちの人は「シャッチョサン」とか呼んでくれないな、と社長と話しなが…

ジプニー初体験の日

ランチ 4/17、昼飯はだいたいいつも、取引先の会社の人と交じって摂っている。 事務所に小さな食堂が備わっていて、フィリピン料理の仕出し弁当がいつも用意されている。 フィリピン人の技術者達(面倒なのでこれからは同僚と呼んでしまおう)がいつも楽しそ…

iMac設定

ネットワーク 4/16、ネットワークが遅くてコンピュータの設定に手間取る。 夕方定時過ぎになるとそれなりのスピードが出ているので、事務所の回線速度に対して使っている人の数が多すぎるんだろう。 携帯の3G回線の方がスピードが出ている感じがするので、自…

Star City

4/15、休日はクラクションが少ない。11時頃まで寝てしまった。 夕方近くにStar Cityというところに行った。 案内してくれたフィリピン人曰く、フィリピンのディズニーランドらしい。 チケットカウンターに並んでチケットを購入。 いくつか違うチケットがあっ…

Ayala Museum

地図 4/14、フィリピンで初めての週末。 これといってやることはないので、そこら辺をぶらぶらすることにした。 とりあえずはグリーンベルトに向かってみる。 外は暑い。日陰でぐったりしている人たちがいる。この人達もやることがないんだろう。 途中、コン…

Macが買えた日

iMac 4/13、今日も外から聞こえるクラクションが心地良い。 ホテルで朝食を摂り(ちょっと慣れた)、事務所へ赴く。 午前中、資料と睨めっこして、昼過ぎにグリーンベルトへ再度赴いた。 今度はオリジナルのパスポートを握りしめて。 しかし、まだまだ甘かっ…

Macが買えなかった日

朝食 4/12、フィリピン2日目の朝。8時に起きた。外のクラクションが良い目覚まし時計になってくれる。 朝食はホテルで簡単なものが無料で出るのだが、今日はマックに行ってみた。 楽しそうに談話しているフィリピン人おばちゃん軍団の後ろに並ぶ。 しばらく…

マニラの交通事情

マニラは昼間、いつも道が車でいっぱい。 みんな気が短いのか四六時中クラクションが鳴り響いている。 交通マナーはあまりよろしくないように見受けられる。 歩行者用の信号や横断歩道がない場所も多くて、道を渡るのに難儀することが多々ある。 マニラ在住…

フィリピン初の打ち合わせ

起床 4/11、フィリピン初の朝、少し暑い。昨晩クーラーを切って寝たからだ。 シャワーを浴びて(電気式の給湯器が付いてる)、ホテルの朝食を摂る。 朝食はランチョンミートと卵焼きとパン、それにコーヒーだ。野菜が無い。 朝食頼むのも会話で一苦労したの…

フィリピンへの道のり

4月10日、成田からフィリピンのホテルに着くまでの道のりを書き留めておきます。 成田空港 今回選んだのはJetstarという格安航空会社。 1時間前にチェックインを済ませろと書いてあったので、1時間30分前にチェックインカウンターに行きました。そうしたら恐…

現代フィリピンを知るための61章【第2版】

最近読んだ本:現代フィリピンを知るための61章【第2版】 (エリア・スタディーズ) 現代フィリピンに関連した話題をショートショートの61章立てでまとめられていて、読みやすく感じた。 様々な話題を扱っている分、一つ一つの内容は薄いのだけれど、話題を知…

Smartの料金

Smart Communications, Inc. の料金について少しまとめてみた(2012/3時点)。 通常料金 サービス 料金 国内通話(SMART) P6.50 / 分 国内通話(SMART以外) P7.50 / 分 国際通話 $0.40 / 分 国内SMS P1.00 国際SMS P1.00 SMSローミング P20.00 従量データ通信 P1…

予防接種

A型肝炎とB型肝炎の予防接種を一発キメてきた。 今月中にA型肝炎、B型肝炎、破傷風、日本脳炎をこなす予定。 狂犬病は未開の山奥に行くのでもなければ事後の対策が可能らしい。 接種後に「酒は飲んでも良いけど、飲み過ぎると腫れるからほどほどに」と言われ…

Accessはまりどころ

昔、Accessで仕事してたときのバッドノウハウのメモを発掘。 今度久々にAccessの仕事をすることになりそうなのだ。 読み返してたら、最近治まっていたマイクロソフト嫌いが再燃しそうになった。 単票フォームで既存レコードを表示している際、マウスホイール…

JCIFSで複数NICが刺さっているサーバに繋がらないことがある

Javaで作ったシステムからWindowsの共有ファイルを読み書きするために、JCIFSってライブラリを使っているのだけれど、昔こいつでハマッたときのメモを発掘した。 実はつい先日も同じ現象に遭遇したのである。 頑張って調べてたなぁ、昔の自分。 JCIFSは、コ…

ActivePerlライセンス条約

昔、ActiveStateのサイトに載っていたライセンス条約を日本語訳したものを発掘しました。 ActivePerlはPARとかでバイナリを配布するが許されてるとかどっかに書いてあったのを見て、気になって翻訳したのでした。 箇条書きになっているライセンス条項の4番…

ドメインが異なるページ間においてJavaScriptでデータをやりとりする

セキュリティ制限により、ドメインが異なるページ間ではJavaScriptでデータのやりとりをすることは(素直なやりかたでは)できない。 なんとか回避策はないものかと、昔試行錯誤してみたメモが掘り起こされたので掲載。 一言で言えば、URLパラメータでごにょ…