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

理系学生日記

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

忍者TOOLS

technology

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

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

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

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

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

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

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

Chrome上のテキスト編集でEmacsを使用したい

というわけで Chrome に移行したんですが、テキストフィールドに文章を入力するのに Emacs が使えないのは能率を著しく落とすので何とかならんものかと探していたら、そのものズバリの拡張として Edit with Emacs なる拡張を発見した。 どうも Chrome からは…

Firefox+VimperatorからChrome+Vimiumへ

Firefox を今まで使ってきたのは vimperator の存在に依るところが多いのですが、最近 Firefox のプロセスが消費するメモリが肥大化し、待たされることが多くなってきました。 これ、個人的にかなりストレスになっていて、このままだと胃潰瘍になって死ぬ。…

HTTPヘッダで大文字小文字は区別すべきか問題

HTTP ヘッダを使った処理を書いていて、これは case-sensitive に処理すべきか case-insensitive に処理すべきかが不明ということがあった。例えば API サーバの処理がその HTTP ヘッダの内容に依存する場合において、HTTP ヘッダの大文字小文字を区別すべき…

鍵の種類

業界に関する暗号化についてもろもろやっているんですが、この界隈、なかなか今まで知らなかった概念がでてきて混乱しがちなので、整理した。まず前提として、暗号化には鍵が必要で、その鍵の管理にはメチャクソ高いセキュリティが求められるとかで HSM (Har…

JCAとは何であるのか

Java SDK というのは、膨大な機能セットを提供してくれていますが、その中には暗号化に関するものがあり、このうち、暗号化に関する機能についてのフレームワークセットを JCA (Java Cryptography Architecture) と呼びます。 ちょっとこういう機能セットを…

ブロック暗号化モード

ぼくの中で、暗号化、復号化がわりとホットな話題になってきたのですが、DES や DESede、AES とかの文脈で出てくる ECB だの CBC だのというブロック暗号化モードなるものが理解できなかったので勉強してみた。学び大事。 ブロック暗号化モードとは そもそも…

Websphere MQ における MQMD.version について

WebSphere MQ を勉強しているのですが謎が多い。Websphere MQ 経由でシステム間連携を行う際にどうすれば良いのかについては、かなりややこしい話題がたくさんなので、気付きをまとめていきたいと思います。今日は MQMD の Version について。 MQMD とは 公…

ASCII Armoredとはどんなエンコーディングであるのか

バイナリのデータを ASCII として転送する方法には、みんな大好き Base64 以外にもいろいろな方法があります。この方法の一つとして、PGP の ASCII Armor という方法があるようなのですが、全然知らなかったので調べてみました。 PGP ASCII Armor とは 調べ…

Vagrantで作ったVMをWindowsでサービス化したい(ただしプロバイダはVirtualBox限定)

Vagrant で作成した VM を作成したは良いけど、それを Windows でサービスとして動かしたいみたいなことになったときに果たしてワシはどうしたらええんや…という話があった。Java エンジニアが多い件だったので、Daemon : Java based daemons or services で…

Linuxで気軽にアップデートできないパッケージを気軽にインストールしたい(yum-plugin-downloadonly, yum-plugin-priorities)

気軽にアップデートできない Linux のパッケージを、気軽にインストールしたいわけ。 気軽にインストールするために yum 使いたいんだけど、気軽に yum update した結果としてパッケージの互換性崩れて死にたくないわけ。そういうときにどうすれば良いかをし…

シェルスクリプトでテンプレート処理 (envsubstの使い方)

シェルスクリプトで、テンプレート処理を行いたいというケースがあります。ここでいうテンプレート処理というのは、例えば以下のようなテンプレート(ここでは template.tt と呼びます)があった場合に、 property1=${hoge} property2=${fuga}これを使って以下…

Yosemite on MacBook Proで日本語入力が死ぬほど遅い問題とその対処法

Yosemite On MacBook Pro で以下のような症状が出続けておりました。2012 Late と若干古いとはいえ、これはヒドい。マジで生産性落ちるし、Mac 使いたくなくなる。 なんかいつも CPU 負荷が高い 特にブラウザの負荷が高い。常時 CPU 使用率が 5, 60% を越え…

EmacsのNeoTreeが非常に使いやすい件

2015年のEmacs - たけぞう瀕死ブログを読んで neotree 知ったんだけど、neotree めっちゃ良かった。 neotree って何 まぁまずはこれを見てくれや。EmacsWiki: Neo Tree via kwout上のキャプチャで分かるように、neotree は Emacs 上でディレクトリツリーを表…

vimperatorでタブを閉じたときに遷移元のタブをアクティブにする

Vimperator、カレントタブを閉じた後にアクティブになるタブがカレントタブの右側になるのでストレスを溜め続けていて、これを当該タブの遷移元のタブをアクティブにするように変更したくなった。これ、 " タブを閉じたときに遷移元のページに戻る noremap d <M-w></m-w>…

Layer2 over Layer3 たる VXLAN

VXLAN というのは、その名前 Virtual eXtensible Local Area Network が指す通り、VLAN (Virtual Local Area Network) を拡張する技術です。この VXLAN について、RFC7348 をはじめとする資料を読み漁ったので、その内容をまとめてみました。 VXLAN の必要性…

vCenter Serverは仮想アプライアンスとするべきか

vCenter Server Appliance (vCSA) というのは、vCenter Server の仮想マシンイメージです。 従来(vSphere 5.0 以前)において、vCenter Server は Windows Server 上のアプリケーションとして構築する必要がありましたが、これを Linux の仮想マシンイメージ(…

vSphere環境におけるゲストOSの時刻同期 ベストプラクティス

VM における時刻同期 vSphere 環境における VM の時刻同期の方法には、大きく分けて 2 種類の方法があります。 VMware Tools の定期的な時刻同期に頼る Windows なら w32time、Linux なら NTP といった時刻同期ソフトウェアに頼る 最初に結論を言っておくと…

HashiCorp社が出したVaultとはどういうものなのか

HashiCorp 社から、新たなソフトウェアである Vault by HashiCorp がリリースされました。 Vault - HashiCorp この Vault について、Getting Started を一通り実施した後に Docs の一部を確認してみたので、簡単にその内容をまとめてみます。 Vault とは何な…

vCenter Serverの可用性確保の推奨

vCenter Server の可用性をどう上げていくかという点については、もはや vCenter Server をホストするマシンは仮想マシンにしろ その仮想マシンを vSphere HA で保護しろ がファイナルアンサーになります。かつては、vCenter Server Heartbeat なる製品が存…

vSphereのライセンスに関する整理

というわけで、都合により vSphere のライセンスの考え方の整理です。 ホントに勉強する人は、まずは VMware vSphere with Operations Management および VMware vSphere ライセンス、価格設定、およびパッケージ ホワイトペーパー を読めば良いと思うよ。 …

Remember The MilkにSiri経由でタスクを登録する

タスク管理が失敗する主なポイントは以下の 2 点です。 そもそも管理すべきタスクを、タスク管理の仕組みに入れ忘れる タスク管理の仕組みに乗せたタスクが単調増加して収拾がつかなくなる いわゆるタスク管理に関する自己啓発本、あるいは GTD の本の多くは…

Serfの基盤 SWIM プロトコル概要

Serf 今週、暇なときわりかし Serf を調べてました。 Serf はみんな大好き HashiCorp 社が出しているソフトウェアなわけですが、Introduction - Serf by HashiCorp に書いてあるとおり、大きく分けて 3 つの機能を持っています。 クラスタのメンバ管理機能 …

ストレージの原則と技術

基本的にはアプリレイヤのエンジニアだと思っていたのだけれど、最近どうもハイパーバイザとかストレージとかそういうところに首を突っ込むことになっており、なかなか分からないこと多かったので、ここはまずは体系的に学ばなあかんのやないかという危機感…

tmuxの設定をOSによって切り替える

設定ファイルには OS あるいは環境によって、設定を切り替える必要があったりします。tmux で、これをどう実現するのは 21 世紀最大の難問でしたが、これ if-shell で解決した。具体例を挙げると、たとえば OSX 系と設定ファイルを分けるときは以下のように …

便利。tmuxサーバを終了させてもセッションを復元できる tmux-resurrect

ぼくは、もっぱら tmux を家の Mac でだけ使っているんですけど、そういうときにクソダルいな〜〜と思っていたのが、tmux のセッションが OS の再起動によって失われるということでした。 tmux のウィンドウやペーンを "良い感じ" なレイアウトにしていたと…

Ansibleで環境変数の値を使う

Ansible で環境変数の値をそのまま使いたいということがありました。 というのも、プライベートでは kiririmode というハンドルネームを使っている関係上ホームディレクトリは /Users/kiririmode なのだけれど、会社だと別のユーザ名なので、このあたりの差…

睡眠の質をSleep Cycleで異常に向上させて宝くじを当てよう

2012 年から使ってるんだけど、「このアプリなんなの!」ってよく聞かれるので、ここで 1 エントリ設けることにしました。Sleep Cycle すごく良いアプリだと思うので、100 円ほどお布施してみなさんもつかってください。Sleep Cycle alarm clockNorthcube AB…

Alfred(2)の Custom Web Search で検索を便利に

Alfred 2、大したカスタマイズもしないまま、ずっと使ってきたのだけれど、Web Search 機能がずいぶん便利だった。AlfredRunning with Crayons Ltd仕事効率化無料ちゃんと設定してあげれば、Alfred から直接 iTunes のアプリ検索だったり、はてなブックマー…

zshのanything.elライクなwidgetたるzawがわりとライフチェンジングだった

zaw、前から便利だ便利だとは聞いていたけど、実際に使ってみたら普通にライフチェンジングだった。 インストールは、github から落としてきて、zaw.zsh を .zshrc から読み込ませるだけ。 $ git clone git://github.com/zsh-users/zaw.git remote: Counting…

zsh-syntax-highlighting には有効化をおすすめできるプラグインが存在している…

zsh には zsh-syntax-highlighting という拡張が存在しており、これを使用すると乾燥したコマンドラインに彩りを与えることができます。 使い方も簡単で、単純に使うだけならこのエントリの記述が非常に参考になると思います。 zsh-syntax-highlightingでコ…

Ansibleでhomebrewを管理する

Ansible で自分の Mac のソフトウェアの構成管理をする場合、その中核に据えられるであろう Ansible のモジュールが homebrew です。 このモジュールはその名の通り、Ansible から homebrew のソフトウェアをインストール/link/アンインストール/アップデー…

快適なインターネットライフを実現するVimperator

年末ですし dot files も整理しなきゃならんなーということで、クリーンインストールした MBP を対象にして Emacs をはじめとする設定ファイル群を整理しているんですが、インターネットができなければ人間は死ぬ、ということで、Vimperator の設定ファイル…

vSphere HA を組み、アドミッションコントロールを行う前提でのESXi サーバ台数を見積り

vSphere HA vSphere には vSphere HA という機能がある。 HA というのは、当然ながら High Availability を意味していて、vSphere が提供するクラスタ機能を意味している。ざっくり言うと ホスト自体にハードウェア障害が発生した場合は、当該ホスト上で稼動…

MHA (mysql-master-ha) Manager の信頼性

MHA を検証する、という話で最初に「どうしよう」と思ったのは MHA Manager をどこに置き、どう信頼性を確保するか、という点だった。 MHA Manager 自身は、MySQL のサービスには一切介在しないので、MHA Manager が例え落ちていたところでサービス影響はな…

mysql-master-ha (MHA) まとめ

諸々の事情により MHA を検証・導入しようという流れがあり、イマイチまだ全体像が見えていないのでまとめてみた。 MHA とは MySQL のマスタを failover させスレーブをマスタに昇格させるという面倒な作業を短時間(10-30 秒と言われている)で行わせることを…

grep に --only-matching オプションとかあって驚愕している

タイトルのとおりで、grep に --only-matching (-o)オプションあって驚愕した結果として心がぴょんぴょんした。 とりあえず手元にある Mac の grep だと $ grep --version grep (BSD grep) 2.5.1-FreeBSD になってるけど、--only-matching オプション存在し…

UUID (version 4) における衝突確率を計算する

UUID というのは、全世界・全時間において一意性を持った識別子とされています。RFC 4122 の言葉を借りると、 A UUID is 128 bits long, and can guarantee uniqueness across space and time http://www.ietf.org/rfc/rfc4122.txt とされています。ですが、…

シェルスクリプトでの IP アドレス計算

まぁ、ipcalc 使いましょう。initscripts に含まれてるので、基本つかえるとおもいます。 $ rpm -qf `which ipcalc` initscripts-9.03.40-2.el6.centos.1.x86_64 ブロードキャストアドレスやネットワークアドレスは次のようにして計算できます。 $ ipcalc -n…