scramble cadenza

技術ネタのガラクタ置き場

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

binding.pry 使ってる時に、一気にループを抜ける方法

イントロ みんな大好き pry の話 何回も binding.pry が呼ばれる環境下で、毎回 exit を入力するのめんどいよね、という話。 サンプル class Test def aaa binding.pry 'aaa' end end describe '#aaa' do it '1' do expect(test.new.aaa).to eq('1') end it …

rails でカスタム generator 作る話

これは何か 好きな generator を作る話。ここで述べる generator とは rails generator hoge のような rails generate コマンドのこと。 知識整理のために書いてみる 雛形作成 rails には generator を生成する generator があって、以下の様なコマンドを叩…

CircleCI から deploy させる話

イントロ CircleCI からテストが通ったら capistrano 使って deploy させたい。 けど、対象サーバーは IP 制限がかかっている。CircleCI の IP なんてコロコロ変わるし、どうしたらいいんや... って話。 これができると、PR を github ボタンでマージしたら…

dangerous_open_uri という gem を作った

イントロ gem にした。名前は結構気に入ってる。 仕事でこういうことをしたかった、というのが背景としてある。 さらに会社の先輩に冗談で「作っちゃえよ、需要あるっしょ」と言われて、それもそうかと一晩で作った。 mgi166/dangerous_open_uri mgi166/dang…

tmux のコピーモードでのコピーがうまくいかない件

イントロ 告白すると tmux + reattach-to-user-namespace でコピーできます! って記事を見てその通りにやってみるものの、うまくいかない人でした。 ようやくこの病気を克服したので残す。 tmux 1.8 のお話。 現象 どううまくいかないかというと、長い文字…

No bundle exec

イントロ bundle exec したくない、という話。随分前に調べたやつ。 bundle exec メンドイ しかも使用頻度高い コマンド自体が長くなって、初めて見るコマンドを覚えづらい bundle exec 以降を覚えればいいけど、ついつい全部覚えてしまう。 コマンドが長い…

hipchat_searcher という gem を作った

イントロ 随分前に作りました。動機はまだ無い。 強いていうならば「お手軽で作りやすかったから」という自分勝手な理由です。 使いやすそうであれば使ってみてください。 mgi166/hipchat_searcher mgi166/hipchat_searcher · GitHub 何ができるか コマンド…

-1×-1 = 1

イントロ -1×-1 = 1を証明してください。 を見た。 厳密な証明じゃない(と思う) ちゃんとやろうとすると群論とか出てくるのかもしれない そもそも間違ってるかもしれない と色々言い訳しつつ、自分は以下のように理解している。 証明(?) 1 ここがスタート。 …

「UNIX という考え方」を読んだ

読んだ。 UNIXという考え方―その設計思想と哲学作者: Mike Gancarz,芳尾桂出版社/メーカー: オーム社発売日: 2001/02メディア: 単行本購入: 40人 クリック: 498回この商品を含むブログ (137件) を見る 近視眼的な点で述べるなら、ライブラリを自作する際の設…

Music as code

イントロ Extempore というソフトウェアを触ってみた、という話。 コードを書くことで作曲できる、というシンプルでインパクトの強い特性を持ってます。 とても面白くて魅力的だったので共有。 Extempore is 何? 作者曰く cyberphysical programming らしい…

責任を明らかにすると安心する人

小さいころの経験談だが、学校の先生が「誰が誰々を泣かせた」と言って、学級委員会を開いた。 それで帰りが遅くなり、毎度イライラしたものだ。 その委員会で、先生は犯人を見つけて叱る。それで終わり。何の意味があるのだろう? 泣かせたのが問題だとした…

wdired.el を使おうとすると、Symbol's value as variable is void: directory-sep-char が出る件

イントロ emacs 23.4 → emacs 24.3 に update して wdired.el を使うと、タイトルの通りエラーが出た。 詳細は以下 ls does not support --dired; see `dired-use-ls-dired' for more details. wdired-change-to-wdired-mode: Symbol's value as variable is…

ruby の Thread に関する不思議な現象

イントロ 第19章 スレッド を見てやってみました。 が、うまくいかない。 わかる % cat thread.rb Thread.fork { while true puts 'forked thread' end } while true puts 'main thread' end % ruby thread.rb #=> forked thread forked thread forked threa…

初めてEMR(Amazon Elastic MapReduce)を使う人が読むページ

イントロ 仕事で EMR を触っていて知見が溜まってきた気がするので、output していきます。 今後記事を連載する予定。 この記事では EMR にまつわる巨大な背景を説明します。 個別に検索すればもっと詳しいページはゴマンとあります。 ただそれらが EMR とど…

kinesis 買って二週間経ちました

イントロ 仕事しだしてから、手首が痛くなってきたので買っちゃいました。 二週間使ってみての感想とか。 やったこと キーバインディング変更は以下のとおり。 backspace → ⌘ delete → alt end → enter home → space 左パイプ(insert) → backspace です。 左…

大江戸 ruby 会議 04 参加した話

イントロ タイトルの通り。行ってきました。 他の人もまとめてらっしゃるので、そちらのほうがわかりやすいです。 ここでは自分のメモを見ながら、もう一度頭のなかで再現する意味を込めて、書いてみました。 あ、全部書いてるので、めちゃくちゃ長いです。 …

「学生のうちにやっておくことって何?」って質問

イントロ 新社会人向けの記事が多い中で、敢えて就活生に焦点を当ててみる 技術ネタはなし 立場上学生とよく話をするのだけれど、そこで 「学生のうちにやっておくことって何?」って質問されて、モヤっとした話。 中身 知るかハゲ。ってのが正直なところ。 …

mac に外部から ssh 接続する

イントロ 訳あってリモートで自宅の mac に ssh 接続したいなーと思ったことがあり、調べてみたことがある。 どうやらMacに外部からアクセス出来るようにする方法 - rcmdnk's blog の設定を行えば、可能になるそうだ。 試したら本当にできてしまった。 じゃ…

ruby-build で、好きな version の ruby を入れるお話

イントロ 毎度おなじみ ruby-build ですが、入れることができる ruby の version と rubygems の version は制限があります。 とはいえ普通に ruby を使う分には、提供されているもので何の問題も無いのですが。 rbenv を使って、ちょっとマニアックな ruby …

Cannot find terminfo entry for 'xterm-256color' と言われる件

こんな時に発現 iterm2 使って 256 color にしている tmux を使って環境変数を色々渡している などの条件が重なって リモートサーバーに xterm-256color が無い場合再現するっぽい。 症状 vi, emacs, nano などのエディタが開かない → ファイルを編集できな…

ruby で動的にクラスを作る

結論 定数に class クラスのオブジェクトを代入すると、(ruby で一般的な) class として扱われる module or class の配下にネストして class を作る場合、その class が持つ定数として定義する class.new する際に引数として、class クラスのオブジェクトを…

ruby 経験者が90%以上間違える問題

イントロ 弊社の凄腕エンジニアが、タイトルに書いてあることを言いながらメンバーに出してくれた問題です。 もちろん私は 90 % 側ですた。 問題 以下の出力結果はどうなるでしょう? p { :a => 1, :b => 2 } Hash が出力されて Hash が返る、と思ったあなた…

emacs で linum-mode + Ricty フォントを使おうとすると、余計な空白が含まれてしまう件

イントロ linum-modeの余計な余白をなくす方法 - handlename's blogと同じ現象。 ただこの方のコードをコピペしても、私の環境では治らず。おまけにググっても情報が少ない。 しかし font が怪しいという考察は非常に参考になりました。 環境は Emacs 23.4 O…

クラスメソッドでインスタンス作る話

結論 クラスインスタンス変数として扱われるっぽいです。 class Klass attr_accessor :hoge def self.hoge(hoge) @hoge ||= hoge end end # @hoge に値が入る Klass.hoge('hoge') #=> "hoge" # もう既に @hoge には値が入っているので、'fuga' は入らない Kl…

berkshelf で path を変更した場合は、knife[:berkshelf_path] を変える。

イントロ これに気づかなくて結構ハマった。 症状 berkshelf を使って、cookbook を install するとき、bundler 風に以下のように path を変えた。 berks install --path vendor/cookbooks すると cookbook が見つからないと怒られ始めた。 ================…

berkshelf を使って rbenv 経由で ruby を install する方法

イントロ chef で環境構築したはいいものの、ruby の install は意外と手間だったりします。 できれば rbenv のようなものを使って、色々な ruby のバージョンを試せる方がいいですよね。 ところが肝心の rbenv を install するレシピの自作は結構シンドい。…

elisp で正規表現にマッチした部分の抽出

ruby で言うと url = "https://www.google.co.jp/" $1 if url =~ /https:\/\/(.*)\// #=> "www.google.co.jp" みたいなことをしたい。 elisp だと以下のように書く。 (setq url "https://www.google.co.jp/") (string-match "https:\\/\\/\\(.*\\)\\/" url) …

vagrant-berkshelf を使わずに Berkshelf + knife-solo で環境作ってみた話

イントロ タイトルの通り。今までは面倒臭がって全部レシピを書いていたけれど、Berkshelf 使えば、その手間すら省けると聞いたので使ってみました。 ところで Berkshelf は何も考えないと vagrant-berkshelf という Vagrant のプラグインを経由して berkshe…

ruby でクラスメソッドを委譲する方法

方法 SingleForwardable を使う require 'forwardable' class MyFile extend SingleForwardable def_delegator File, :join end MyFile.join('hoge', 'fuga') #=> "hoge/fuga" MyFile のクラスメソッドとして File#join っぽい挙動をするメソッドを委譲 別の…