理系学生日記

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

忍者TOOLS

PoEAA: Application Controller

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2012/03/09メディア: Kindle版この商品を含むブログを見る Application Controller …

楽天Edyのオートチャージ額変更にはオンライン/オフラインの両方で設定変更が必要になる

今年から楽天 Edy を使うようになりました。 ぼくにとっては初の電子マネーだったわけですが、財布から小銭を取り出すことなしに買い物ができ、かつ、お釣りとして小銭が返ってこないというのは大変良いですね。毎日、会社最寄りの FamilyMart で Edy で買い…

PoEAA: Two Step View

最終的に HTML を出力する場合であっても、一度論理的な View に変換した後で、それを実際の View に変換するという 2 ステップを踏むパターンを、文字通り Two Step View と呼びます。 JVM の中間コードだったり、LLVM の IR みたいなもの。主なメリットは…

The Go Programming Language

The Go Programming Language を読みました。 The Go Programming Language (Addison-Wesley Professional Computing Series)作者: Alan A. A. Donovan,Brian W. Kernighan出版社/メーカー: Addison-Wesley Professional発売日: 2015/11/05メディア: ペーパ…

Golangでジオロケーションを行ってみる

大量の住所を Google Maps 上にマッピングする必要が生じ、住所を緯度と経度に変換することになったので、いわゆるジオコーディングをプログラムすることにしました。 ジオコーディングに関しては、Google Maps API が無料で使用できて、かつ、扱いやすいの…

任意のプログラムをWindowsサービスとして構成する

Windows で Java のデーモンをサービスとして起動させときたかったんですが、なんか良いものないかなと思ったら winsw というのを見つけました。 作者は Jenkins の川口耕介さんであり、もともと winsw も Jenkins を念頭に作成されたらしいです。 実際に Gi…

PoEAA: Transform View

今日の Transform View は、View として、ドメイン層のデータをインプットにして、HTML を出力するトランスレータを採用するパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowle…

PoEAA: Template View

Template View パターンは、静的 HTML と同じ形で HTML を記述した上で、動的に変更するようなところにのみマーカーを埋め込むパターンです。 静的なところは WYSIWYG のエディタで記述でき、動的な部分は実際にレンダリングする際に、マーカーがプログラム…

PoEAA: Front Controller

今日は Front Controller。 Front Controller は セキュリティや国際化など、リクエストに対する共通処理を一元的に行い、その後、リクエストをコマンドオブジェクトに引き渡すというパターンです。 P of EAA: Front Controller via kwout Patterns of Enter…

没入したのは恐怖でした、BIOHAZARD 7

遅ればせながら、BIO HAZARD 7 をクリアしました。グロテスク ver. の方です。 BIO HAZARD 7 については「原点回帰」と言われていたのですが、その評判は確かでした。 初代の BIOHAZARD を想起される恐怖がそこかしこに満ちていて、ゆっくり開くドアの向こう…

tabindexで消耗していた話

tabindex には苦しまされることが多いです。 ぼくは以前に tabindex でタブオーダーが明示的に指定されているシステムのテストを行うことになったんですが、タブオーダーが設計上で明示的に指定されている以上タブオーダーがテスト観点に挙がり、打鍵でタブ…

Macを切り替えたら exec-path-from-shellで環境変数が引き継がれなくなる

ずっと MacBook Air で日常を暮らしてきて、やっぱりデカいディスプレイで暮らしたいなぁということで、昔つかってた iMac に乗り変えました。 そこで困ったのが、Emacs で環境変数が引き継がれてこないということでした。 Emacs では、exec-path-from-shell…

JavaでのQRコード生成

QR コード あまり知られていませんが、QR コードは日本発の規格になります。 スマートフォンで打ち込むのが面倒なデータをカメラ読込のみで入力できることから世界的にも普及しておりまして、先日は iOS の Chrome に QR コードをスキャンする機能も追加され…

PoEAA: Page Controller

Page Controller は、特定ページ/Action に対するリクエストを処理するオブジェクトです。 P of EAA: Page Controller via kwout 本書では、これを実現する方法として、 Server Page (ASP/PHP/JSP 等) に混ぜる Script (CGI/Servlet) で記述する という方法…

PoEAA: Model View Controller

今日からは、Web Presentation Pattern の章にはいります。 最初が Model View Controller なんですが、おそらく開発者の誰もが聞いたことがあるパターンです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler)…

PoEAA: Repository

パターン名からは DI 用のパターンかな??と思っておりましたが、Repository はドメイン層とデータマッピング層の中間に存在する抽象化レイヤです。 P of EAA: Repository via kwout Repository は、言ってみればクエリ生成を一手に引き受け、そのクエリに…

PoEAA: Query Object

Query Object は、それ自体を SQL に変換できるオブジェクトです。 このオブジェクトによって、SQL も、DB のスキーマ定義も抽象化され、それらの変更が実装とは分離されます。また、そもそもとして SQL に詳しくない開発者が、よりフランクに DB からのデー…

PoEAA: Metadata Mapping

Metadata Mapping は、オブジェクトとテーブルデータをマッピングさせるデザインパターンです。 データベース上のテーブルをメモリ上のオブジェクトに変換するコード、また、その逆変換のコードは、テーブル毎に似ていて非なるものなので、同じようなコード…

複雑に関係しあうJWTまわりの仕様を見る: JWS (JSON Web Signature)

最近、JWT JWT 言っているような気がしますが、ぼくはこの単語を OAuth 2.0 の文脈ではじめて知りまして、それから JWT まわりの RFC に目を通し、Auth0 が無料で出している JWT Handbook を読みました。 このエントリは、JWT に関連する仕様について、ぼく…

OAuth 2.0の認可権限無効化の仕様

OAuth 2.0 のプロバイダを作るんだったら、もしかして認可権限の取消画面も作らないといけないのかしら〜〜〜〜(ほげ〜〜〜〜)と思って調べてたら、その revoke の仕様も RFC で仕様化されていることを知りました。 これにより、必ずしも取消画面を作らなく…

PoEAA: Inheritance Mapping

オブジェクトの継承ツリーとテーブルとのマッピングに関する章も終盤、今日はそのマッピング自体の設計パターンである、Inheritance Mapping がテーマです。 P of EAA: Inheritance Mappers via kwout しかしながら、この図がすべて。あんまり追記することな…

Chromeのautofillによりテキストフィールドが謎の黄色になってしまう

css

Chrome で input フィールドに履歴から入力した後、テキストボックスの色が悲しい黄色になる。 この挙動に困った人もいると思います。 1334 - Auto-filled input text box yellow background highlight cannot be turned off! - chromium - Monorail via kwo…

PoEAA: Class Table Inheritance

Class Table Inheritance は、Rool-Leaf Mapping とも呼ばれるもので、階層構造を持つオブジェクトモデルと DB 上のエンティティとの関係について、オブジェクトモデルのクラス毎にテーブルを持たせるというデザインパターンです。 P of EAA: Class Table In…

特定ユーザのGithub上のリポジトリをごそっとローカルにcloneする

Github 上にある特定 user のリポジトリをぜんぶローカルに持ってきたいなぁというときのワンライナー。 nablarch のところは適当なユーザに書き換えれば OK。ghq ではなく単に git を使いたければ、ghq get を git clone に変えれば良いです。 $ curl 'http…

PoEAA: Single Table Inheritance

Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2012/03/09メディア: Kindle版この商品を含むブログを見る Single Table Inheritanc…

OAuth 2.0 authorization code grant 実装ポイント

OAuth 2.0 で Authorization code grant を実装しようとする場合の設計/実装ポイントをまとめてみました。 RFC 6749 を読みながら書いていますが、「普通に作ったらこんなことしねーだろ」というポイントとかはガンガン除外しています。 なので、本気で OAut…

Touch IDには複数の指紋を登録できる

Apple Pay を使うようになってから、市井で頻繁に iPhone のロックを解除することが多くなりました。 ぼくは iPhone のセットアップ時に右手の指の指紋を登録していたのですが、iPhone は左ポケットに入れているので、Apple Pay で決済するときは右手に持ち…

PoEAA: Serialized LOB

今日は Serialized LOB。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2012/03/09メディア: Kindle版この商品を含むブログを見る…

OAuth2.0で認可コードの漏洩を防ぐPKCE

OAuth 2.0 における通信は基本的に TLS で守られるのが基本なのだけれど、ひとつ TLS で守られない通信があります。それは Client・User-Agent 間の通信です。 Authorization Code Grant においては、認可サーバから認可コードを受けた User-Agent がその情…

OAuth 2.0 におけるアクセストークン実装方法の検討

OAuth 2.0 のプロバイダにおいて、アクセストークンをどのようにシステムで保持するのかっていうところを考えたり調べたりしていました。 前提として、OAuth のトークンには以下の 2 種類の表現方法があります (RFC 6819 3.1. Tokens) Handle “opaque” トー…