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

理系学生日記

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

忍者TOOLS

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

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

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 …

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

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

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

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

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

PRGパターンとは何か

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

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

以下のエントリで 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:/…

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…

RestEasyとHttpComponents、そしてConnectionManager

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

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

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

コマンドラインで簡単に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 の設定だったりした。この手のエラーに苦しめられ続けており、そのあたり、ちょ…

git branchをpecoで選択する

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

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

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

モックサーバStubby4jの性能

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

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 を実行する人に無意識に実行させたくないようなケースですね。 このた…