ryhmrt’s blog

意識低い系プログラマの雑記

DB定義ドキュメント生成のワンライナー

稼働中のDBスキーマをリバースエンジニアリングしてドキュメント生成するようなツールはいくつかあるけれど、フリーで使えて便利なものの一つが SchemaSpy オフィシャルのDockerイメージがあるので、これで実行するとお手軽 $ docker run --network host -v …

ソフトウェア/プロダクト開発、あるいは企業の文化

このゴールデンウィークで「Hit Refresh」と「ユニコーン企業のひみつ」という2冊の本を読んだ。 ソフトウェア開発には組織や文化が重要ということは数十年前から言われているけれど、ソフトウェアの重要性が高まる中で、開発の部署やプロジェクトといった…

AWS事始め

仕事でAWSを使っていくことになったので、自宅で勉強するための個人アカウントを作りました。 http://aws.amazon.com からAWSアカウント作成のボタンを踏んで必要な情報を入力。 登録を進めていると、途中で電話番号を入れて確認の電話がかかってくる手順が…

フィリピン滞在に有益そうな情報

最近なぜかフィリピンに行くという知り合いが多いので、フィリピン滞在に有益そうな情報を少し考えてみました。 私がフィリピンにいたのは2016年6月までで、基本的にはマカティから外には出ずに活動しておりました。その範囲で見聞きしたり実体験した情報で…

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

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

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…