読者です 読者をやめる 読者になる 読者になる

理系学生日記

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

忍者TOOLS

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” トー…

OAuth2.0を利用するネイティブアプリの注意点

OAuth 2.0 をスマートフォンのネイティブアプリに提供することになりそうだったので、この一週間くらい RFC を読み続けていました。 しかしですね、Web アプリケーションが OAuth 2.0 のクライアントとなるケースは想像できるようになったんだけど、iPhone …

PoEAA: Embedded Value

今日は Embedded Value。 オブジェクト指向におけるオブジェクトを全部 RDB 上のテーブルとしていたらダルすぎるので、日時情報とか通貨とか、テーブルのフィールドとして考えたら良いよね、という至極もっともな話。日時とか通貨とかは、テーブルに保存する…

PoEAA: Dependent Mapping

(CD とかの)「トラック」のデータが「アルバム」という親の概念のエンティティのロード/保存に合わせてロード/保存され、一方でそれ以外のエンティティからは参照されないようなケースがあります。 このように、他のエンティティからは独立した親子関係が成…

iPhone6+Softbank から MNP で iPhone7+IIJmioに

iPhone 6 から iPhone 7 に機種変更するとともに、Softbank から IIJmio に MNP しました。 iPhone 6 がおかしい iPhone 6 は非常に満足いく端末であったわけですが、以下 2 点の問題が気になるようになりました。 月々の料金が高い これが 11 月の料金だっ…

「人喰いの大鷲トリコ」に感じた生きている感覚

ここまで感情移入ができたゲームはこれまでありませんでした。もう現実と変わらないです。本当に生きてる。 The Last Guardian – CG Cinematic Trailer | PS4 人喰いの大鷲トリコ 人喰いの大鷲トリコは、ICO、ワンダと巨像に続く、上田ワールド全開の作品で…

PostgreSQLの論理バックアップ時に使用するpg_dumpの基本的な使い方

pd_dump は、PostgreSQL のデータバックアップを取得するためのコマンドラインツールです。 どういう形でバックアップするのかは、まずは実例を見て頂けるとわかりやすい。 $ pg_dump -h 127.0.0.1 -U postgres dvdrental | less -- -- PostgreSQL database …

PostgreSQLのサンプルデータを簡単につくる

PostgreSQL で遊ぶときのテストデータを簡単につくりましょうという話です。 PostgreSQL にはDocker 公式のイメージがあるので、それを立ち上げればまずは PostgreSQL 環境はできあがりです。 $ docker run --name postgres -d -p 5432:5432 postgres:9.6.1 …

息をするな…「ドント・ブリーズ」を見てきた

このあいだ、王様のブランチで取り上げられていた Don't Breathe、気になって映画館に足を運ぶことになりました。 ジャンルはホラーですが、心霊現象といった類のものは一切登場しません。それでホリラー足り得るのかというところですが、公式サイトの表現で…

hex-encodedな文字列をUTF-8に変換する

とあるプロジェクトの技術支援に入っているのですが、API リクエスト/レスポンスの送受信内容(UTF-8)のログが、すべてバイト列を hex-encoded されたものになっているようなシステムになっております。 人類は長い歴史を無為に生きてきたため、hex-encoded …

手掴みシーフードレストラン、新宿の「ダンシングクラブ」に行ってきた

手掴みで食事するのってインドなイメージがあったんですが、新宿のレストランで手掴みで食べるところがあったとは! 年始のご挨拶もかねて、妻のご家族とレストランに行ったんですが、ダンシングクラブが相当エッジ効いててヤバかったです。 立地は新宿駅徒歩…

findコマンドにおける -newer オプション

みんな大好き find コマンド、-newer オプションというのをはじめて知った。find コマンド、マニュアルを読む度に発見ある。 -newer オプションはファイル名を引数に取って、そのファイルよりも modification time が新しいと true を返す述語になってる。 …

失敗の本質

2 年くらい前に良い本だと紹介されてからずっと読めていなかった「失敗の本質」、手応えのある骨太の本でもあり、なかなか進みませんでしたが、この年末年始でようやく読了することができました。 失敗の本質―日本軍の組織論的研究 (中公文庫)作者: 戸部良一…

新幹線の指定席確保の争いは切符の発売日の1週間前から始まっている

ぼくの地元は山口県でして、年末年始で新幹線のチケットを押さえるのは結構大変です。しかし、東京・山口間で 5 時間ちかく座れずに立っているのはこの歳になるともはや死を意味しますから、強い使命感を持ち、意地でも新幹線の予約席を確保しなければならな…

PoEAA: Association Table Mapping

1 対多の関係については、昨日の Foreign Key Mapping で解決できるのですが、それで解決できないのが多対多の関係です。 これを解決するパターンとして昔から用いられてきたのが、関連を持つテーブルをデータベースに追加し、本日のテーマである Associtati…

PoEAA: Foreign Key Mapping

本日は、Foreign Key Mapping です。 Enterprise Integration Patterns: Designing, Building, and Deploying Messaging Solutions (Addison-Wesley Signature Series (Fowler))作者: Gregor Woolf, Bobby Hohpe出版社/メーカー: Addison-Wesley Professiona…

PoEAA: Identity Field

Chapter 12. Object-Relational Structural Pattern に突入しました。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2012/03/09メ…

ブラウザから印刷ダイアログなしで印刷したい

Web ページに「印刷」ボタンを用意してボタン押下したらそのまま自分のオフィスで印刷したいんだという要望はよくあるわけですが、印刷ダイアログを飛ばしてそのままプレビューや印刷をしたいという要望が生じるケースがあります。印刷ダイアログで OK ボタ…

Gitのdiffで差分の場所をメソッド/関数名で表示させる

git などで diff を表示するときに、「何行目のどのあたりに差分があるのか」というのを示す行があります。 これ、hunk header と呼ばれるものなんですが、git だとここに、「どのメソッドに属する差分なのか」「どのタグに属する差分なのか」といった情報を…

LINE ビジネスコネクトについて

LINE のビジネスコネクトについて勉強しなくちゃいけなくなったので調べてみました。 平成26年情報通信メディアの利用時間と情報行動に関する調査報告書 によると、LINE の利用率というのは SNS の中で相当数を占めていて、もはやライフラインと言っても良い…

PoEAA: Lazy Load

ひさしぶりの PoEAA、今日は Lazy Load がテーマです。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professional発売日: 2002/11/05メディア: ハード…

プラグインインストール済のJenkins Dockerイメージを作成する

Jenkins には Docker 公式のイメージ があったりして、セットアップが非常に容易になっています。 で、いざ docker run して立ち上げてみたら、いきなり Plugin をインストールしろやみたいな画面になるし、仕方ないなぁお勧めプラグインでもインストールし…

PoEAA: Identity Map

今日も引き続き Chapter 11. の Object-Relational Behavioral Pattern で、Identify Map です。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Profess…

PoEAA: Unit of Work

今日からは Chapter 11. Object-Reational Behavioral Patterns という新章に突入します。 その一つめのパターンは Unit of Work でした。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler…

PoEAA: Data Mapper

Data Mapper で、とりあえずは Chapter 10. の Data Source Architectural Patterns はおわり。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addison-Wesley Professi…

Emacsの最大化/全画面化が圧倒的簡単な時代に

Emacs を最大化/全画面化するのって、かつては結構な elisp を書かなくてはいけなかったような覚えがあります (単純に知らなかっただけかも) が、 今はなんと、以下のような 1 行だけ書いてれば良くなりました。 ; 最大化 <=> 元に戻す (toggle-frame-maximi…

PoEAA: Active Record

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

gitリポジトリの中のファイルをhelmインタフェースで検索する

Emacs バッファの中で、他のファイルに検索をかけて、検索結果一覧のバッファから直接ファイルの内容を更新するというタイプの拡張というのがいくつかあって、moccur-edit.el だったり、wrep.el だったりです。 しかし、こういうときの検索あるいは編集する…

PoEAA: Row Data Gateway

Row Data Gateway は、DB 上の 1 レコードに対する Gateway として働くオブジェクトです。 1 レコードに対する DB アクセスをカプセル化して、他のレイヤに対して DB アクセスを隠蔽します。 先日の Table Data Gateway がテーブルに対する Gateway だったの…

Bliskとは何であり、何ではないのか

Blisk ね、Blisk。 最近ずっとレスポンシブウェブデザインのサイトを作っていたもので、そのテストをどうやったら手早く効率的にできるものかなぁと思っていたときに、まさにこの Blisk というヤツが登場しました。 コレいいなー、すごくいいなーと思って使…

PoEAA: Table Data Gateway

PoEAA は 10 章の Data Source Architectual Patterns に突入しました。 その一つ目は、Table Data Gateway です。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メーカー: Addis…

PoEAA: Service Layer

最近、読みかけで止まっていた、Patterns of Enterprise Application Architecture (いわゆる PoEAA) を再度読みはじめました。 Patterns of Enterprise Application Architecture (Addison-Wesley Signature Series (Fowler))作者: Martin Fowler出版社/メ…

ファイルを直接開くのを禁止してセキュリティ向上 (X-Download-Options)

MIME-sniffing IE には、セキュリティを劣化させるとして悪名高い MIME-sniffing という機能があって、サーバがどんなにこのファイルはテキストファイルだよ!! (content-type: text/plain) とブラウザに教えても、そのテキストファイルに HTML の要素がある…

zshでPATHがおかしくなる問題の解決編

Mac の zsh で PATH がおかしくなる問題がありましたが、解決に至ったのでご報告させて頂きます。 問題 問題としては、 zsh が起動した際に /etc/zprofile が読み込まれる /etc/zprofile が path_helper を実行する path_helper が /etc/paths、/etc/paths.d…

自動折り返しにまつわるCSS word-break と overflow-wrap

とにもかくにもレスポンシブウェブデザイン(RWD)とやらで HTML やら CSS やらと格闘を続けております。 なんかさー! ブラウザ依存でさー!! 変なレイアウトになったりするしさー!!!! ブラウザだけじゃなくさー!!!!! OS でもレイアウトが変になっちゃったりす…

Android標準ブラウザでダウンロードに失敗するときはBasic認証とともに証明書エラーを疑え

Android には標準ブラウザという謎のブラウザが搭載されているケースがあります。 このブラウザの位置付けというのがホントに謎で、おい一体誰がどうやって作っているんだ教えてくれたのむ。 そんでこの標準ブラウザで検証してたら、PDF ファイルがダウンロ…

RWDにおける基本知識(pixel、viewport)

最近はレスポンシブデザインというものと日々戦いを繰り返し、ジャングルの密林で銃撃され続け、疲弊し、厭戦気分が高まりつづけた結果としてヒッピー化している今日このごろなのですが、フロントエンド開発というかレスポンシブデザインというか、そういう…

BashのGlobに関わるオプション

前に Bash の Glob に関するエントリを書きました。 他にも Glob には様々な応用があります。 あまり知られていないような使い方も多いので、それらをご紹介していくコーナーです。 extglob Glob で正規表現と not 条件を表現できるようになる。 詳細につい…

ブラウザのバージョンについての公式情報はどこを見れば良いのか

最近のブラウザ、自動的にアップデートされていくから基本的にブラウザのバージョンをユーザが意識しなくなってるし、開発者もいちいちバージョンナンバーの変更に追随しなくなってる感があります。 そういうわけでちょっと調べようと思ったら、わりかし苦戦…

BashのGlobは積極的に利用しましょう

bash には glob というものがあります。glob ってなによっていう人も ls *.sh とかを展開する bash の機能ですよっていうと分かるかと思います。 この glob の機能って多用されますがあまりマニュアルとか読んだ人もいないと思うので、簡単にまとめてみます…

シェルスクリプトでのtrapの使い方

シェルスクリプトでシグナルをトラップするには、みたいなことを考えることがあって、そういえば trap という日頃なかなか思い出されない不憫なビルトインがあることを思い出しました。trap は bash のビルトインとして存在する便利なヤツですが、忘れられが…