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

理系学生日記

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

忍者TOOLS

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 のビルトインとして存在する便利なヤツですが、忘れられが…

lsの結果をawkすることについての注意点

重箱の隅を突つくような話ですが、ls の結果を awk するのは筋が悪いと言われています。ファイルパーミッションを抜くとか、そういうときに、このような使われ方が為されますが、だいたいの場合は代替案(もうちょっと相応しいコマンド) があるので注意しまし…

Quitter便利

Quitter よかった。 Quitter, my first Mac app – Marco.org via kwout Quitter、一定時間(アプリ毎に設定可能) 使ってない特定のアプリを自動的に終了させたりしてくれるアプリで、Twitter とか切るようにして生産性を上げようっていうものなんだけど、「辞…

PRGパターンとは何か

最近はじめてフロントエンドの開発をすることになって、PRG パターンって常識だよみたいな雰囲気でウワワワワー! ってかんじになりました。義務教育ではそんなの教えてくれなかった。 そういうわけなので、涙ごしに霞むモニタと向きあいながら PRG パターン…

HTTPS双方向認証の環境を作る

以下のエントリで HTTPS 通信を試してみましたが、このような試験環境を作るのはわりとメンドい。 メンドいことを何度もやりたくないので、実施した内容をエントリに残しておきます。 クライアント認証を含めた HTTPS の双方向認証を行うためには、以下が必…

JavaのJSSEでクライアント証明書を自由に選択できるようにする

HTTPS で API を呼び出すっていうシーンは頻繁にあって、その API を使うには、通常何らかの認証が求められます。 認証にも色々あるんだけど、そのうちの一つが HTTPS のクライアント認証です。 普通に HTTPS 通信をしたいだけだと意識しないことも多いので…

Stubby4JにおけるJSONでの正規表現、あるいはリクエスト中の特定のフィールドでレスポンスを変更する

Stubby4J を使用したテストにおいて、API リクエストとして送る JSON の中の値によって、レスポンスを切り替えたい場合がある。 もうちょっと具体的にいうと、 リクエストの JSON の中の特定のフィールドの値によってのみ、レスポンスを切り替える 他のフィ…

15分でWebSphere MQの環境を構築しメッセージの読み書きを行う

WebSphere MQ の実験するんだったら Docker 使うのが一番楽だと思います。 調べてたら、IBM が公式に WebSphere MQ v8.0 の Docker Image を作ってくれてて、これあったら 15 分くらいで WebSphere MQ が使える環境が整います。便利な世の中ですね。 https:/…

MacでIMEを切り替えるキーバインド

Mac の IME として AquaSKK を使っているんですが、AquaSKK は Eclipse などとの相性が非常に悪くて、特定の文字が表示されないとか、Ctrl+J でモードを切り替えようとしたら改行コードが入力されてしまうとかで、ぼくは日に日にストレスを溜め込んでいます…

MQMDおよびMQIの整理

WebSphere MQ なんて聞いたこともなかったんだけど、なんかまぁ特定エリアではよく使われているらしい。 以下、WebSphere MQ と RabbitMQ とかと比較するのは比較軸としてふさわしくない気がしないでもないけど、Google Trends の結果としては以下のようなか…

GitbucketのDBからレビュー指摘を抽出する

GitBucket 上で Pull Req とかやりとりしているんだけど、いろいろと評価をするために、これらのレビュー情報を定量化する必要に駆られました。 こういうのを手で数えたりしていると日が暮れるし、何が生産性だ腹を切って死ねということになる。GitBucket で…

Maven Assembly Plugin でできるファイル名がクソダサかった話

Maven Assembly Plugin でできるファイル名がクソださかったのでなんとかしたかった話。 descriptorRef 要素で jar-with-dependency 指定してたら、hoge-0.0.1-SNAPSHOT-jar-with-dependencies.jar とかいうフザけた名前になってて、あまりの衝撃に手足が震…

Maven Assembly Pluginで実行可能jarをつくる

maven assembly plugin maven 力も Java 力も貧弱なのだけれど、依存性を 1 つにまとめた実行可能 jar を作る必要性に駆られたので、ちょっと調べてた。 maven の plugin で実行可能 jar を作ろうとすると、以下の 2 つがメジャー。 Maven Assembly Plugin M…

Stubby4JをJUnitから利用する

Stubby4J を Junit で起動できればだいたいの HTTP 要求に関するテストはできる。 だいたいこんな感じでテストを書きたい。 public class Stubby4jTest { @ClassRule public static Stubby4jServer server = Stubby4jServer.fromResource("com/kiririmode/bl…

RestEasyとHttpComponents、そしてConnectionManager

RestEasy client を使用した HTTP 要求を行うと、TCP コネクションが長時間にわたり残存する問題が発生することがあります。 RestEasy の公式ドキュメントを読めば「HTTP コネクションは適切に release し、適切に close しなければならない」ということは分…

MacBook AirでもRetinaディスプレイ並の高解像度を実現したい

むかしは一年に一台ほど Mac 買ってたけど、2012 年以降はまったく買ってなくて、ひさしぶりに Mac 系の PC 買った。MacBook Air の 13 inch 買った。 これまでは MacBook Pro 15 inch の Retina で、Air もまぁ Retina だとタカをくくっていたのだけれど、M…

コマンドラインでの16進数変換

バイナリを hex encoded で表現するというケースが最近増えてきて、たとえば CBC の初期ベクトルを hex encoded で表現するとか、鍵を hex encoded で表現するとか。 16 進数というと hexdump があって、たとえば 0aA は 16 進数で表現すると 306141 になる…

パスワード等の秘匿情報をKeyStoreで保持する

DB 接続用のパスワードだったり、Basic/Digest 認証のときに使うパスワードだったり、世の中にはパスワードが溢れていて、もうパスワードを個別にして記憶しておくとか絶対にムリ、ムリムリムリムリかたつむりであるから、みんなどの Web サービスのアカウン…

イノベーションのジレンマ

イノベーションのジレンマ、どこに行っても評判よくて、いつか読みたい読みたいと思っていたんだけれど、いつの間にか Kindle で購入してて、いつの間にか読んだ。 イノベーションのジレンマ―技術革新が巨大企業を滅ぼすとき (Harvard business school press…

Maven管理下のリソースファイルの値を実行時にプロパティの値で置換する (Resource Filtering)

ここ半年くらいジャバジャバしていて、maven とかの実力不足を痛感している今日このごろで、勉強しているといろいろなことができるんだなぁというのを発見したりします。 一例として Maven には、動的にリソースの特定の値を置き換える機構が存在していて、…

コマンドラインで簡単にAES暗号化、または Java での AES 暗号化

Java で AES 暗号化とかやってて、コマンドラインで簡単に試せれば良いのになぁとか思ってたら、openssl 使ったら余裕で暗号化できることに気付いた。 例えば、AES/CBC の 128 bit 鍵長で暗号化したい場合は、以下のようにすれば良い。 -e は暗号化、-d は復…

curlでメールを送る

curl はどうも HTTP 用と思われている節がありますが、実は様々なプロトコルに対応しています。 たとえば SMTP にも対応しているので、がんばったら gmail にもメールが送れたりします。 $ cat <

Javaアプリから共有ライブラリが読み込めない問題(java.library.path と LD_LIBRARY_PATH)

なんか良くわからないエラー (no [ライブラリ名] in java.library.path みたいなヤツ) が出てきたのだけれど、解決方法が java.library.path の設定ではなく、LD_LIBRARY_PATH の設定だったりした。この手のエラーに苦しめられ続けており、そのあたり、ちょ…

重力とは何か

ひさしぶりの physics タグのエントリ。 ここ最近、物理クラスタだけでなく一般ニュースレベルで、重力波発見のニュースが盛り上がりました。 電磁波はちょっと頑張ればシールドできる一方で、重力波というのは防ぐことはできません。逆にいうと、重力波とい…

git branchをpecoで選択する

git で checkout する branch だとかを選択するとき、branch 名とか逐一覚えてられないから毎回 git branch を打って確認してたけど、そろそろダルくなってきたので、zsh + peco で branch を選択できるようにしたら結構快適になりました。 function peco-gi…

iPhoneの低電力モードを最短時間でONにしたい

iOS 9 から iPhone では低電力モードっていうのが利用できるようになりました。 基本的には App のバックグラウンドでの更新だとか自動ダウンロードだとかが OFF になったりしてバッテリの持ちが良くなるっていうモードで、ぼくとしては積極的に活用したいん…

モックサーバStubby4jの性能

モックサーバに Stubby4j というのがある。 一緒に働いている方に紹介してもらったんだけど、これすごく使いやすい。 使い方は README にわかりやすく書いてあるからそれを読んでもらえばよい。 この Stubby4J、性能テストにも使いたいことがあるから、どの…

maven と git-flow を使用したリリースフロー

ぼく自身、git-flow を利用するのは始めてで、Maven 力も低い。 そういう人間がリリース時にどうしようかとか考えても仕方がないので、先人に頼るかーと思っていたら、ちょうどいいエントリがあった。 Why I Never Use the Maven Release Plugin - DZone Jav…

Kindleのセール情報をスマフォ通知する、あるいはリマインダ登録する

Kindle のセールはいつの間にか始まりいつの間にか終わっていたので、ネット情報に目を凝らしていないと買い忘れるようなことも多かったのですが、以下の通り、先月末に Kindle のセール情報を検知する方法が見つかりまして、それが RSS 配信される流れとな…

helm-find-files でタブ補完を効かせる

前から helm のミニバッファ上で Tab 補完が利かないのが何とかならんもんかと思ってた。 Emacs での補完の考え方と helm の補完の考え方は別にあって、helm を使う場合はミニバッファ上で補完をさせるのは邪道みたいなかんじになってる。 Emacs' default mi…

AppStoreのアプリをAnsible Playbookからインストールする

Mac で AppStore からのインストールやアップデートをコマンドラインから実行できるようになりました。 mas-cli – Mac App Storeのシンプルなコマンドラインインターフェイス コマンドラインから実行できるのであれば、当然 Ansible の Playbook にも書ける…

Mac の zsh で PATH を zshenv に設定するとハマる

zsh だと PATH 設定を $ZDOTDIR/.zshrc で定義していたんですが、調子にのって .zshenv に定義するようにしたら PATH の挙動がおかしくなりました。 期待してたのは以下のような順番だったのですが、実際には /usr/local/bin、/usr/bin、/bin、… が先に来る…

明示的に指定した場合にのみ Ansible のタスクを実行する

Ansible でタスクを実行する場合に、「明示的に指定をしない限り、このタスクは実行したくない」というケースがあります。 タスクとしては定義しておかなければいけないけれど、playbook を実行する人に無意識に実行させたくないようなケースですね。 このた…

Java に関する最後の雑誌?Java Magazine の購読

最近はもっぱらジャバジャバしているので、Java の雑誌でも読んで動向をウォッチしとかないとなぁなどと思っていた。 が、JAVA PRESS が死に、JavaWorld が廃刊になったこのご時世、雑誌としてはどうやってウォッチすれば良いのかなぁと思ったら Oracle が J…

Maven力の低い自分に送るMaven良い感じドキュメント

Maven 力が低くて、会社の人に迷惑かけている感じある。 Maven、基本的に 公式ドキュメント 読みにくいし全体像つかみにくいし、本読んでもなかなか詳細が分からないし何とかならんものかと思ってた。 Apache Maven 3 クックブック - 理系学生日記 思って探…

ローカルプロキシサーバFiddlerでリクエストヘッダを改竄できそう

フロントエンドのシステム間通信を行うにあたり、間にプロキシサーバが介在しており、そのプロキシサーバが HTTP ヘッダを操作しているというケースがあります。 このような場合のテストをシンプルに行う場合、開発者のローカル PC に同様のプロキシサーバを…

JBossでJCA(Java Cryptography Architecture)のプロバイダが使えない問題

JBoss で JCA のプロバイダの jar が見えない!! JBoss 上で Java Cryptgraphy Architecture (JCA) を利用したアプリケーションを書いていたのだけれど、いざデプロイして稼動確認してみるかといった段で例外を吐いて死ぬ惨状となった。 状況としては、こちら…

IE/Edgeがフレンドリなエラーページ(簡易表示/Friendly HTTP Error Pages)を勝手に表示してくる問題

古くは IE、新しくは Edge で、このような画面が表示されるのをご覧になった方も多いと思います。 HTTP エラーを簡易表示する | Hebikuzure's Tech Memo via kwout これ、IE/Edge が、"親切心で" "気を利かせて" "ユーザに対して何が起こったのか分かるよう…

JBossにおけるVFSとは何であるのか

JBoss における VFS VFS というと Virtual File System の略であって、Google 検索するとおそらく Linux だとかの仮想ファイルシステムの話が上位にくるんだと思いますが、JBoss にも同様の仮想ファイルシステムたる VFS が存在しています。 最近この JBoss …

テスト前提が満たされている場合にのみJUnitのテストケースを実行したい

Java で JUnit のテストコードを書く場合、テスト実行環境がこういう前提を満たした場合にのみ、このテストを実行させるようにしたい、というようなケースが多々あります。 例えば、 テスト実行環境の OS に依存する テスト実行環境における特別なソフトウェ…