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

Ruby初心者(つまり昨日の僕)に伝えたいRubyの7つのハマり所

書くのが楽しいプログラミング言語であるRubyですが、それでも「落とし穴」がいくつも存在します。 その中から私が最近ハマった落とし穴を7つ紹介します。 シンボルと文字列は異なる Rubyには「文字列(String)」("a" とか 'Hello world!')の他に、文字列…

rbenv環境で特定バージョンのコマンドを実行する(特にrubocop)

RBENV_VERSION環境変数を指定すればいい。 #!/bin/bash RBENV_VERSION=2.2.3 rbenv exec rubocop "$@" 背景 イマドキ、プロジェクトで使うRubyのバージョンを.ruby-versionやGemfileで指定していない人はいないと思いますが、その時困るのはgem install hoge…

RubyでHashの多重代入

params = {a: "hello", b: "world"} def foo(a:, b:) puts a + b end foo(params) # => helloworld って出来るんだから、 a:, b: = params puts a + b # => helloworld って出来ないのかしらん?Ruby 2.2ではできないみたい たしかClojureにこんな機能があっ…

Ruby初心者と忘れっぽい僕のための10の必須リンク先

部分集合が含まれているのは仕様です。 1. リファレンスマニュアル 寝るときに枕の下に敷くこと。 なお、リファレンスマニュアルは各バージョンごとにあるので、最新版(今は2.2.0)を見ましょう。 オブジェクト指向スクリプト言語 Ruby リファレンスマニュ…

Goライブラリもウルトラ簡単に作れる!

RubyGemはめっちゃ簡単に作れる! - 酒と泪とRubyとRailsとでRubyライブラリの公開方法が紹介されていました。 Goライブラリも知らないとハードル高そうに見えますが、実はかなり簡単につくれます。 これから積極的にGoライブラリを作ってOSSの世界に貢献し…

gulpにもmakeにも不満なWebデベロッパーためのRake(コンパイル・パターンマッチ・ファイル監視・通知)

イントロ 21世紀になって登場したフロントエンド向けビルドツールであるgrunt, gulpなどは、最近批判を受けているようだ。 【翻訳】Web世代のデベロッパーのためのmake - MOL 最近のビルドツールって何なの? - 檜山正幸のキマイラ飼育記 gulp問題ひきずり:…

DirenvでDotenvのファイル(.env)を読み込む

Dotenvは環境変数をファイル(.env)から読み込むためのRubyライブラリ。 Twelve-Factor Appなどでは、アプリケーションの設定は環境変数に格納することを推奨しており、Dotenvは本番と開発で環境変数を切り替えるのにうってつけ。 一方、開発環境で環境変数…

go-gitconfigで自作ツールの設定を~/.gitconfigに書く

Goプログラマ必携のGoライブラリ管理ツールghqは、 インストール先などを~/.gitconfigから取得するようになっています*1。 まぁ、非開発者はどうするかとか、そもそも他ツールの設定ファイルに相乗りするのはどうなのかとかは問題ですが、開発者用と割り切れ…

PythonのfileinputをGoで実装してみた

Pythonの○○をGoで実装してみたシリーズ fileinputは、行単位で処理を行うコマンド(特にUNIXフィルタ)を作るときなどに便利なライブラリ。 import fileinput for line in fileinput.input(): process(line) コマンドライン引数で与えられたファイルの行に順…

Python 3.3〜3.5の変更点まとめ(標準編)

この記事は3.2まではPythonを使っていたが、しばらくPythonを離れ、最近戻ってくることになった人*1向けに、 3.3〜3.5で何があったか(何が起こる予定か)をまとめる記事です。 *1:つまり私

Dockerの6つのtips

1. イメージを作る方法はDockerfileだけじゃない Packerもある。 Packer by HashiCorp Packer by HashiCorp Packerは様々な仮想環境のイメージを統一的な方法で作れるツールで、Virtualbox・AWS・DigitalOceanなどにも対応しています。 したがって、DigitalO…

メモ:ローカル環境でCookieが動かないなら、127.0.0.1を疑え。

Cookieを使った認証において、認証取得先とリダイレクト先などは同じ表記でなくてはならない。 すなわち、localhostと127.0.0.1は異なるホストとみなされる。設定ではどちらかに統一すること。

VMWare fusion上のXubuntuで?GVimが正しく描画されない問題

GVimでスクロールしたり、ggでジャンプしたりすると正しく再描画されず画面が真っ黒に。 (たちの悪いことに、マウスで少しスクロールすると再描画される。 そのため、絶妙な「不便で作業効率は落ちるけど一応使えてしまう」不具合になっている) どうやら前…