理系学生日記

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

2017-01-01から1年間の記事一覧

git-grep を Emacs で呼び出す helm-git-grep

git grep を Emacs から起動できたら捗るだろうなぁと思い立ってちょっと調べてみたら、そのものズバリの拡張である helm-git-grep が存在していました。 これを導入すると、Emacs から git grep を呼び出せるようになり、 helm インタフェースで使用し、イ…

終わり行く2017年にgrepを

みんな大好き grep についてですが、かなり機能が豊富な一方でなかなかそれがまとまっていないこともあるのと、自分自身、結構細かな Tips を忘れたりするので、ここで簡単にまとめてみたいと思います。 OR 検索 後述する拡張正規表現でも可能といえば可能で…

食器洗浄器のために自力で分岐水栓をつける

12 月になって引越しをしていたんですが、元々の家はシステムキッチンに食器洗浄器がついていたのが、引越し先には付いていない。 こういうときに何が困るのかというと、食器洗浄器に引き込む水を取水するための栓がないことでした。 引越し先の蛇口はタカギ…

インターネットに接続できないオフライン環境でPython製ツールをインストールしたい

ときに、インターネットに接続できない環境というのが存在します。 しかし、今回はこういう環境において Python 製のツールを使いたいという状況が発生しました。 今日びのパッケージマネージャというものはパッケージリポジトリからダウンロードするのが一…

Cookieのpath属性に対するブラウザ毎の挙動の違い

ブラウザ毎の Cookie の path に対する挙動の違いによって、検証しているアプリに色々とバグっぽい挙動が出てきたので、あらためて Cookie における挙動をまとめてみます。 検証内容 セットするCookie の path 属性に /path、あるいは /path/ を指定した Web…

known_hostsからエントリを消す

定期的に忘れるんだけど、~/.ssh/known_hosts にあるエントリをスクリプトから消すコマンドは、ssh-kengen -R。 そもそも known_hosts とは 接続したことのある各ホストの公開鍵を保存しているファイルで、普通の文脈だとユーザレベルのファイルである ~/.ss…

Google Public NTP の Leap Smear

ずっとエントリ書こうと思っていたんですが、Google Public NTP で使われている Leap Smear についてです。 Leap Smear について書き始めたは良いものの、思っていたよりコンテキストが厚くて、閏秒から話をしないといけませんでした。 そうすると、Leap Sme…

MyFacesでのステートレスビューとCSRF対策の問題(解決済)

JSF において、ポストバックに対する CSRF 対策が実装されているというエントリを書きました。 ここでは、CSRF 対策トークンの値が javax.faces.ViewState という hidden 値に埋め込まれ、それを改竄した場合は ViewExpiredException が発生するという内容を…

JSFにおけるCSRF対策

CSRF については、一般に正規利用者の意図したリクエストであることを確認することが対策になります。いわゆる徳丸本で紹介されている、具体的な方法としては以下のとおりです。 秘密情報(トークン)の埋め込み パスワード再入力 Referer のチェック 体系的に…

JSFにおけるPostback、そしてライフサイクル

JSF における Postback とは何なのか、っていうのはなかなか本を見てもわかりませんでした。 かといって、こういう概念は実装してもよくわかんなかったりするので、こういうのはやっぱり公式ドキュメントを読んで理解した方が良いだろうと、そこで学んだこと…

declare、typeset、そして local

declare とか typeset、local まわりの使い方について。 まず、declare と typeset は、シノニムなので、この 2 つの差異は考えなくて良いと思います。このため、ここでは declare でひとまとめにして扱いたいと思います。 そういうわけで、declare と local…

シェルスクリプトで部分文字列を切り出す

ときどき、シェルスクリプトで文字列の 3 文字目から 4 文字を切り出したいみたいなユースケースがあって、これまでずっと cut でやってた。 $ echo $str 1234567890 $ echo $str | cut -c3-6 3456 これ、じつは文字列操作でできる。 $ echo ${str:3:4} 4567…

はてな開発者ブログから参照されてたうれしい話

はてな開発者ブログから人知れずエントリが引用されてたのが、ちょっとうれしいことでした。 自律分散監視システムとそれを利用したネットワークグラフ可視化への挑戦 - Hatena Developer Blog ちょっと Serf いけるかなーと思ってその仕組み調べてたときの…

WAS Liberty Profileとは

WAS? 使ったことなかったんですけど、アプリケーションサーバですよね、みたいなかんじだったんですけど、さらに、 なに?WAS の Liberty Profile?なにそれ、全然知らんけどおいしいの?というくらいの状況でしたので、なんかよくわからなすぎました。 WAS …

WAS Libery ProfileにおけるJVMオプションの設定方法

WAS Liberty Profile において、WAS のランタイムに JVM オプションを指定する方法を探し回っておりました。 この手の JVM オプションは、アプリケーションサーバを立ち上げるスクリプトさえ発見できればすぐなんですけど、今回は Eclipse 上で WebSphere Ap…

スタックトレースの出力が省略されてると思ったそのときに

よくあったんですよ、手元で例外が発生して原因を辿るためにスタックトレースを辿ってたら、おやおや、「... 3 more」とか出てて、原因が辿れねーぞっていうケース。 HighLevelException: MidLevelException: LowLevelException at Junk.a(Junk.java:13) at …

ありがとうLDR

Live Dwango Reader が、2017/8/31 に、ついにサービス終了するそうです。 いつか来るとは思っていましたが、ついにこの日が来たのだと、そういう感覚でした。すごく残念です。本当に残念です。 大学生の頃からの情報収集手段だった ぼくの情報収集手段の最…

シェルスクリプトにおける [ と [[

シェルスクリプトで条件分岐を書くとき、[ を使ったり [[ を使ったりすることになると思います。 POSIX の test にも記載がありあすが、[ は test と同じ機能を持つことになっており、同じ実装であることも多いです (ただし、[ として実行されるか、test と…

Fire TV Stick のある生活

このあいだ開催されていた Amazon の PrimeDay で Amazon Fire TV Stick を購入しました。 Fire TV StickAmazonAmazon もともとこの手の機器として、Chromecast を持っていました。 Chromecast 自体に不満はなかったのですが、部屋の TV に接続するようにな…

CDIにおけるProducerメソッド

JavaEE 良くわかっていないのですが、それでもプロジェクトが JavaEE 標準だーウオーという状況っぽいので、ちょっと勉強をしはじめております。 ぼくが Java に対して得意意識を持てないのは、こういうところの知識がないのもあるので、そのへんを払拭して…

Fallout 4

PS4 を買ってから BIO HAZARD 7、人喰いの大鷲トリコ | プレイステーション とやってきて、次が Fallout 4 だったんですが、これをようやくクリアしました。 ちなみにですが、いまは ゼルダの伝説 ブレス オブ ザ ワイルド | Nintendo Switch / Wii U | Nint…

宇宙の眼

積ん読していたフィリップ・K・ディックの「宇宙の眼」をようやく完読しました。 フィリップ・K・ディックを知らない人はいると思いますが、「アンドロイドは電気羊の夢を見るか?」とかは有名だと思うし、映画化されたものを見ても ブレードランナー トータ…

AWS ソリューションアーキテクトの勉強をはじめる

本格的に AWS の勉強を始めようかということを思っています。 同期が昔に言っていて影響を受けたのは、"体系的に学ぶときは資格試験対策をするのが一番早い"ということもあって、最初のターゲットをソリューションアーキテクトに合わせて勉強を進めています…

cocoaアプリでEmacsキーバインドを使いたい

Chrome の入力フィールドでもカジュアルに(※)Emacs のキーバインドを使いたいと思うことがあります。 Mac の場合、Emacs のキーバインドがデフォルトである程度実現されているわけですが、Ctrl-y で yank (ペースト) するとかは実現できていません。 それを…

Varyヘッダとキャッシュについて

さっき Cache-Control ヘッダの話を書いたんですが、もちろんキャッシュ制御に関しては Cache-Control ヘッダだけで収まる話ではなく、他にも多々のヘッダが影響を与えます。 その一つに、Vary ヘッダがあるので、今日はその話でも。 Vary ヘッダ Vary ヘッ…

セキュリティ対策としての Cache-Control ヘッダについて

今日はブラウザのキャッシュ制御の話。キャッシュについては主に性能面で語られて、情報漏洩に繋がる重要な制御であることは見逃されがちです。 CDN切り替え作業における、Web版メルカリの個人情報流出の原因につきまして | メルカリエンジニアリング 情報漏…

スレッドダンプを解析する地獄とFastThreadというWebサービス

スレッドダンプというと、JVM 言語に関する運用でマジで困ったときの頼みの綱みたいなイメージある。マジで困ったとき、じゃなくて、カジュアルに見れば良いんだけど、スレッドダンプのフォーマットが異常すぎてつらくなる。 そもそもなんなんだこのゴミみた…

Socket

最近ソケット通信実装のサポートに入っていたので、ちょっとまとめてみたいと思います。 Socket からのデータ読込 Java に関しては不勉強なところが多いんですが、Socket クラスは「ソケット」を抽象化したものであり、「ソケット」は TCP におけるコネクシ…

PoEAA: Coarse-Grained Lock

今日は Coarse-Grained Lock、関連した複数のオブジェクトのロックを取得する際のパターンです。 P of EAA: Coarse-Grained Lock via kwout 上の図における顧客 (Customer) と住所 (Address) の関係に代表されるように、互いに関連するオブジェクトを一緒に…

HTMLから画像をアップロードするためのinput type="file"とHTML Media Capture

HTML を使って、スマートフォンから画像をアップロードをするケースがあります。 このような場合、エンドユーザに対して カメラを使ってアップロードさせる フォトライブラリや iCloud Drive からアップロードさせる などができると便利です。 このあたりを…