理系学生日記

おまえはいつまで学生気分なのか

スレッドダンプを解析する地獄とFastThreadというWebサービス

スレッドダンプというと、JVM 言語に関する運用でマジで困ったときの頼みの綱みたいなイメージある。マジで困ったとき、じゃなくて、カジュアルに見れば良いんだけど、スレッドダンプのフォーマットが異常すぎてつらくなる。 そもそもなんなんだこのゴミみた…

Socket

最近ソケット通信実装のサポートに入っていたので、ちょっとまとめてみたいと思います。 Socket からのデータ読込 Java に関しては不勉強なところが多いんですが、Socket クラスは「ソケット」を抽象化したものであり、「ソケット」は TCP におけるコネクシ…

PoEAA: Coarse-Grained Lock

今日は Coarse-Grained Lock、関連した複数のオブジェクトのロックを取得する際のパターンです。 P of EAA: Coarse-Grained Lock via kwout 上の図における顧客 (Customer) と住所 (Address) の関係に代表されるように、互いに関連するオブジェクトを一緒に…

HTMLから画像をアップロードするためのinput type="file"とHTML Media Capture

HTML を使って、スマートフォンから画像をアップロードをするケースがあります。 このような場合、エンドユーザに対して カメラを使ってアップロードさせる フォトライブラリや iCloud Drive からアップロードさせる などができると便利です。 このあたりを…

PoEAA: Pessimistic Offline Lock

今日の Pessimistic Offline Lock は、任意のタイミングにおいて、データにアクセスするビジネストランザクションを 1 つに限定することで、データの不整合を防止するパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signa…

PoEAA: Optimistic Offline Lock

今日からは Offline Concurrency Patterns ということで、排他制御の話に入ってきます。今日は、Optimistic Offline Lock ということで、楽観的排他制御です。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))…

PoEAA: Data Transfer Object

今日は Data Transfer Object、いわゆる DTO と呼ばれるパターンです。 DTO の目的は、リモート呼出の効率化です。リモート呼出の際に必要な情報を DTO というオブジェクトの中にこれでもか、これでもかと詰めてやることで、リモート呼出の回数を削減するこ…

Docker ComposeでPostgresバックエンドのgitbucket/redmineを構築する

Redmine をマジメに使ったことがなかったのですが、使う機会が多くなってきているので、ちょっと慣れとかないと厳しいなぁと思っておりました。 とりあえず本を買ったは良いのですが、手元で確認したいというのと、同じく良く使われるようになってきている G…

特定ディレクトリ配下の拡張子の一覧を取得するワンライナー

特定ディレクトリ配下で特定の拡張子を持つファイルを探すのは find コマンドで一発ですが、一方で、特定ディレクトリ配下の拡張子をすべて抽出する、というユースケースがあります。 ぼくは、.gitattributes に書く拡張子って何にしよう、ってときに、その…

Excelの結合セルの高さを調整する伝家の宝刀

Excel 方眼紙を使いこなすぼくたちにとって、セルの結合というのはエクスカリバーに近しい最終兵器です。 そんなエクスカリバーたる結合セルに入れる文章というのもまた、明治の文豪がその人生を賭して綴り捻り出す人生そのものであって、セル内改行に伴って…