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

理系学生日記

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

忍者TOOLS

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…

iSCSI における WWN

iSCSI の WWN(World Wide Name) についてかなり混乱していたので、調べた結果をまとめる。 混乱していたのは以下の点。 iSCSI における WWN は何を示す識別子なのか まずは iSCSI iSCSI の説明の前に、まずは SCSI というのは何かという説明が必要なのだけれ…

vSphere でスナップショットをマージするときにコンフリクトを発生させたら

マージとはなんだったのか…。まずは前段。 vSphere とは VMWare 社が提供しているサーバ仮想化ソフトウェア群。特定のソフトウェアを指すのではない。この中に、 ESXi (ハイパーバイザ) vCenter Server (統合管理ソフトウェア) などの具体的なソフトウェアな…

POST をリダイレクトすると GET になる件について調べた

とある事情により、POST リクエストをリダイレクトさせる必要が生じました。単純にリダイレクトさせてみたところ、リダイレクトはされるものの、POST リクエストに付与していた HTTP_BODY が取得できません。どうも、リダイレクト時に GET に変更されている…

gnuplot での日時データの扱い

入社直後は Excel 使ってグラフ書いたら負けみたいなの思ってたけど、最近は諦めが当たり前みたいになって、アクセスログの集計結果を Excel に貼り付けてグラフ化して報告みたいなことしてた。 でも Excel は行数がなんか少なくて、Excel 2003 だと までし…

JSON を整形とか加工するのにブラウザとかエディタとか使うんだったら jq 使った方が捗る話 (基本編)

brew install jq しましょう。まずはそれからだ。 JSON の整形 良くあるけど、どっかの API から雑なかんじで適当にインデントされた JSON が返却されたりして、JSONPath を書くにしろ、まずは整形しないと JSON の構造が分からん、みたいな悲しいことになっ…

tortoiseSVN の diff で空白の差分を無視したい

ソースレビューする際、ベースの revision との差分チェックをすることになったりしますが、コマンドラインの svn とか、あるいは Eclipse を立ち上げるのとかがメンドくて、tortoiseSVN でサラっと確認しようということが多々あります。 でそういうとき、空…

Vagrant + Sahara メモ

Vagrant とは もはやおなじみかもしれませんが、vagrant はコマンドラインから仮想マシンを作成したり破棄したり、プラグインと連携させることで特定時点の仮想マシンの状態にロールバックさせたりすることができるツールです。 公式ページはこちらですが、…