@kyanny's blog

My life. Opinions are my own.

RubyKaigi 2017 に参加します

rubykaigi.org 人生初の広島。修学旅行は広島を飛ばして長崎だった。 去年の RubyKaigi はオフィシャルパーティー以外の催し物に全く参加しなかった。京都は学生時代に四年暮らしていたので個人的に思い出深いスポットが多く、土地勘もあったため、一人行動…

ディスク使用量に余裕があるのに No space left on device エラーが出るときは inode 枯渇を疑え

df -i で inode 使用率がみえる。 -[3940]% docker run bash df -i Filesystem Inodes Used Available Use% Mounted on none 1218224 523382 694842 43% / tmpfs 255879 16 255863 0% /dev tmpfs 255879 15 255864 0% /sys/fs/cgroup /dev/vda1 1218224 5233…

MongoDB とドットを含むキーと Embedded Document

途中で調べるのが面倒くさくなったので中途半端だけど、調べた範囲でメモしておく。 MongoDB ではドキュメントのキーにドットを含むことはできない Embedded Document 内のキーにアクセスするとき、階層の区切りとしてドットを使うので、ドキュメントのキー…

代償

奥さんに「こういうイヤミスとか好きなんでしょ」と渡されたので読んだ(イヤミスが好きなわけではなく、傑作ミステリーとの評判が高い『殺戮にいたる病』を読んだらたまたま胸糞悪い系の話だった、というだけ) これがサイコパスってやつか、と思った。 代…

アクセスログを awk するとき何列目が何のデータか添字を手っ取り早く数える

こういうログがあるとき、 -[3662]% cat access_log.txt 2012-02-07T09:43:06.123456+00:00 heroku[router]: at=info method=GET path="/stylesheets/dev-center/library.css" host=devcenter.heroku.com fwd="204.204.204.204" dyno=web.5 connect=1ms serv…

最近思ったこと

こういう本とか、 駆け出しマネジャーの成長論 - 7つの挑戦課題を「科学」する (中公新書ラクレ)作者: 中原淳出版社/メーカー: 中央公論新社発売日: 2014/05/09メディア: 単行本この商品を含むブログ (8件) を見る こういうプレゼンとか、 speakerdeck.com …

ドメイン移管

個人所有しているドメインを二つ、 Amazon Route 53 へ移管する手続きをした。さっき手続きして、いま進行中。 インターネットやりはじめて十五年以上経つけど、ドメイン移管したことなかった。ちゃんとできるだろうか。ミスってブログにアクセスできなくな…

夕焼け

新海誠っぽい空と雲の写真を撮りたい。

RFC 2616 Section 2

RFC

BNF (バッカス・ナウア記法)の部分だけ読んだ。 https://tools.ietf.org/html/rfc2616#section-2 これまでちゃんと学んだことがなくて、雰囲気でなんとなく読めた気になってごまかしてた。一読しただけで全てを覚えられそうにはないけど、曖昧だったり全く…

RFC 6266

RFC

Content-Disposition ヘッダの仕様。 https://tools.ietf.org/html/rfc6266 一番最後の Appendix D に大事なノウハウが全て書かれている。

RFC 2119

RFC

https://tools.ietf.org/html/rfc2119 SHALL と MUST が同じ意味なのを知らなかった。

RFC を読むにあたって

RFC

気まぐれに RFC を読む。言い訳がましい暇つぶし。 読むにあたって、知っておくとよさそうなこと。 無理に PDF や TXT を読もうとしない。 HTML が便利。 例 https://tools.ietf.org/html/rfc2119 ここから番号で検索 https://tools.ietf.org/html/ カテゴリ…

(11/75) Java Tutorial for Complete Beginners

配列。 どのプログラミング言語を勉強するときも、たいてい基本的なデータ構造のリテラル表記とかをちゃんと覚えないせいで、少し難しくなってくると何が書いてあるか読めなくなって途端にわからなくなってしまう。ということを何度も何度も経験してきている…

弁護側の証人

何年か前に文庫本を買った記憶があって、最後まで読んだか覚えてなかったのでたぶん途中までましか読んでないのだろうから結末を知るためにも読もうと思って読み始めた。最後まで読み終わって、そういえばどこにミステリー要素があったんだっけ、と思ってト…

600 days

100 日分書くのに一年かかった。はてなダイアリー時代から通算で 1500 日を突破。同じペースを維持すると四年後にはてなブログ 1000 日突破、五年後に通算 2000 日を突破する。 blog.kyanny.me

(10/75) Java Tutorial for Complete Beginners

switch。 さすがにこのへんはわかるので動画みるまでもない感じだけど、そうやって飛ばしてるといつまでも身体が覚えないし、基礎が見についてないとちょっと難しくなったときとたんについていけなくなるし、いっこうに日常的に使えるようにならないので、ば…

3537 UP

Tumblr

Instagram Tumblr ついに一度もちゃんと使わなかった(リブログとか)のは、ちょっともったいなかったなと今でも思う。 この Instagram の投稿は複数の写真があるが、ブログに貼り付けたときは一枚目しか表示されないようだ。

irb/pry から MongoMapper を使うと NameError: uninitialized constant ActiveModel::Serializers::Xml が出るときの対処法

require 'mongo_mapper' するとあわせて require 'active_model' もされるが、 Rails 5 がインストール済みだと activemodel 5.x を読み込んでしまう Rails 5 から https://github.com/rails/activemodel-serializers-xml が core から外れた という組み合わ…

Ruby で pp の出力の横幅を広げる

PP.pp の第三引数で横幅を指定できる。 http://rurema.clear-code.com/2.4.0/method/PP/s/pp.html PP.pp(obj, $>, 200) Kernel.#pp は引数をすべて pp してしまうので、この用途には使えない。

Rails アプリケーション(っぽい)ディレクトリ内で rails コマンドを実行すると rails new --help の結果が表示されてしまうときの対処法

bin/rails または script/rails が無いのが原因。 このファイルを作る rake タスクを実行すればよい。 # Rails 4 $ bundle exec rake rails:update:bin # Rails 5 $ bundle exec rake app:update:bin 肝心の処理をしているのはここ https://github.com/rails…

はしごだか・たつさき等の機種依存文字を含む Microsoft Excel ファイルを CSV として保存するとき気をつけること

TL;DR LibreOffice を使え 「髙(はしごだか)」や「﨑(たつさき)」のような、いわゆる機種依存文字*1を含む Microsoft Excel ファイルのデータを UTF-8 に変換して扱おうとして、 Excel の「Save As…」から CSV 形式で保存したところ、それらの文字が全て…

(9/75) Java Tutorial for Complete Beginners

do while ループ。 Java では変数のスコープは { } の中。

MacBook Pro (Retina, 13-inch, Early 2015) トラックパッドケーブル故障

MacBook Pro 修理終わった。やはりトラックパッド裏のケーブルの問題だった。部品在庫があったので即日修理できた(三、四十分くらい)。AppleCare Protection に入っていて保証期間内だったので修理費は無料(保証期間は一年後まである)。— Kensuke Nagae …

drakma:http-request の返り値を変数に束縛する

(quicklisp:quickload :drakma) (let* ((drakma:*text-content-types* '(("application" . "json"))) (token "helloworld") (authorization (concatenate 'string "token" " " token))) (multiple-value-bind (body status headers) (drakma:http-request "h…

Drakma で Authorization ヘッダを送信する(トークンをハードコーディングしない)

(quicklisp:quickload :drakma) (let* ((drakma:*text-content-types* '(("application" . "json"))) (token "helloworld") (authorization (concatenate 'string "token" " " token))) (drakma:http-request "https://httpbin.org/get" :user-agent "my use…

Drakma で HTTP リクエストヘッダを送信する

(quicklisp:quickload :drakma) (let ((drakma:*text-content-types* '(("application" . "json")))) (drakma:http-request "https://httpbin.org/get" :user-agent "my user agent" :additional-headers '(("X-Hello-World" . "Hello World")))) いくつかの…

Drakma で JSON API にアクセスする

(quicklisp:quickload :drakma) (let ((drakma:*text-content-types* '(("application" . "json")))) ;; おまじない (drakma:http-request "https://httpbin.org/get")) 返り値は順に body status-code headers uri など(使いそうなのはこのへんまで)。 リ…

(8/75) Java Tutorial for Complete Beginners

標準入力から読み込む。 Scanner が期待する型と違うデータを入力するとエラーになるのを堅牢にせよ、というお題にたいする解。 import java.util.Scanner; public class Application { public static void main(String[] args) { Scanner input = new Scann…