日常

ケ・セラ・セラ

Railsあるある

ふいにやる気出る。 よし、おれはやるぞ! rails new !!! bundle install !!! . . . コーヒーいれる。他のことはじめる . . . なんだっけ? ってなるのがよくあるパターン 別に Rails に限った話じゃないなw

Rails Devise使用時のフレンドリーフォワーディング

ブラウザから直接URL入力してあるページへ行こうとした時、 まだログインしていなければログイン画面を表示させる。というのはよくある処理だと思います。 そしてログイン後には、ログインする前に行きたかったところへ送ってあげるのが親切でしょう。 そう…

Mac で bundle install nokogiri に失敗するときのやつ

bundle config build.nokogiri -- --with-xml2-dir=`brew --prefix libxml2` --with-xslt-dir=`brew --prefix libxslt` この後 bundle install したらどうかな?

git今日のコミット数、昨日のコミット数、2日前の、9日前のコミット数を数えるやつ

git

を、git の alias に追加してみた。 g cc で当日。 g cc1 で翌日、 g cc9 で9日前とか、あまりあたまのよくない感じがするけれどまあ便利 .gitconfig cc = shortlog -sn --no-merges --since='$(date +%Y/%m/%d) 00:00:00' # today's commit count cc1 = sho…

人に本を紹介するのって難しいなと思った。もやもやをただ書いた。

人に本を紹介するのって難しいなと思った。ブログとかに書くだけなら、読みたい人は買ったらいいし、そうでなければ買わなければいい。それだけで終わるのだけど。 仕事で関係する人と話をしていて、こういう家庭の問題で困ってる。って話が出た。自分も同じ…

nohupなしで実行した場合に後から対処する

sh

久々にやらかして、ぱっと出てこなかった。 この順に行う。 ./sleep.sh C-z bg disown こういった具合に動作する。 $ ./sleep.sh start sleeping 1 ... ^Z zsh: suspended ./sleep.sh $ jobs [1] + suspended ./sleep.sh $ bg %1 [1] + continued ./sleep.sh…

ただの日記 20160130

最近興味から Rhebok のコードをちびちび読んでるんだけど、得られるものが多くて超勉強になる。 ところで去年はこういうただの日記的なものはあまり書かなかったけれど、今年はこういうのも多く書いていこうと思う。 Rhebok に関してはまだ途中で、というか…

Bundler経由でのGemの読込み

こういうことなんですが、require "bundler"; Bundler.setup してから require すればよい。 [1] 2.3.0-p0(main)> require "pico_http_parser" LoadError: cannot load such file -- pico_http_parser from /home/284km/.rbenv/versions/2.3.0/lib/ruby/2.3.…

requireしたClassやModuleをunloadしたかったからremove_constで削除した

Object.send(:remove_const, :Target) でよさそう。 Unload a ruby class - Stack Overflow [1] 2.3.0-p0(main)> Test.class NameError: uninitialized constant Test from (pry):1:in `__pry__' [2] 2.3.0-p0(main)> require "./test" => true [3] 2.3.0-p0…

Edgeも考慮した時のブラウザ判定

以前、IE11, Edge の対応をした際にこんな記事を書き残していたけれど、 IE11 の User agent - 日常 Microsoft Edge の場合は UA に Chrome, Safari, AppleWebkit という文字列も含まれる。 次のように先に IE の判定が出来ればよいが、 if /MSIE|Trident|Ed…

ブラウザ間の差異。srcElementがfirefoxでnull。targetを使う

e.srcElement は firefox では null が返っていた。 これでよさそう。 function foo(e){ var e = e || window.event; var target = e.target || e.srcElement; }

ブラウザ間の差異。chromeで日本語入力中はkeyupでkeyCodeが拾えない

日本語入力では、 chrome だけ keyup イベントが起きないようだ。 こちらに表がまとまっていて見易い。 日本語入力(ime)確定時のjavascriptイベント(取得keycode)を整理 - end0tknrのkipple - web写経開発

setInterval でボタン連打に対応する

こんな感じだろうか。 index.html <html> <head> <title>renda sample</title> </head> <body> renda! renda! <button id="renda">renda button</button> <input id="display" type="text"></input> <script src="renda.js"></script> </body> </html> renda.js var count = 0; var display = document.querySelector("#display"); di…

rails view に layout を適用したくない時

layout: false すればよい。 class HogeController < ApplicationController def index render layout: false end end

xx-rails gem を避けたい理由

xx-rails gem が中で利用している JS ライブラリのバージョンがいくつなのか誰も知らない。みたいなやつ。 いつでも最新バージョンにすれば良いかというとそうでもないし。 個人的にはこの辺りが理由です。

2016年ですね

12月31日に体調を崩していた。意識があったり無かったりで、2015年最終日はうろ覚えな感じになってしまった。一日ゆっくり休んで、よく寝たら1月1日はある程度回復して迎えられたのでまあよかった。今年も体調に気をつけたい。事故や怪我病気無く過ごしたい…

rails tutorial を久しぶりに見たら結構変わっていておもしろそう

最後に rails tutorial をやったのは、多分2年ほど前になると思う。 久しぶりに覗いてみたら(今では日本語版が充実している!)最初の方で第3版でどう変わったかの説明があって、1章の最初の部分では minitest を使うこと、rails をデフォルトスタックのま…

ブログをもう一つ作ろうと思ったんだけど

ブログをもう一つ、頭の中にあることかきだしておけるような用途でもう一つ作ろうかと思ったんだけど、思いとどまった。 別にここに書けばいいんじゃないかなと。

nice, renice コマンドの一例

sh

man によると -20 が優先度MAX, 19 が低い。default 10。 Niceness values range from -20 (most favorable to the process) to 19 (least favorable to the process). こんな風に使う。 $ sleep 10 & [1] 27388 $ renice -n 10 $! 27388 (process ID) old p…

Excelで24時を超える時間をどうやって入力するのか

こういう書式にするといいらしい [h]:mm

久しぶりにコピペ禁止のサイトに出会った

そこは、onmousedown を封じていただけだった。 こうして解除。 document.onmousedown = true; 今どきなんで禁止にするんだろう。 追記 2015/12/09 09:38:04 右クリックも禁止されてた。はてぶしようと思ったのに。 document.oncontextmenu = true

vps 解約することにした

さくらのVPS 1G を解約することにした。 2012/4/25 から使っていたようだ。 特に不満があった訳ではない。満足していたし、とてもお世話になった。 解約の理由は、最近あまり使わなくなっていたということ。ほとんど使わずに眠らせておくのなら、一旦解約し…

javascript で素朴にタイマー機能として使う

時間にリミットを設けて何かしたい時などに、たまに使う術。 1回だけのときは setTimeout で、何度も回したい場合には setInterval で。 setInterval は、 clearInterval で解除できる。 var sec = 3 * 1000 setTimeout(function(){alert("It's time: " + se…

IE11 の User agent

IE11 からは user_agent に MSIE を含まなくなった。Trident で見るのがよいらしい。 IE 用にはダウンロードファイルを sjis で用意する。というような判定はよくあると思う。MSIE で判定していたら IE11 で文字化けていた。 というわけでこんな風にした。 (…

google map で座標、言語指定してピンを立てる

google map で座標、言語指定してピンを立てるメモ。 ll 地図の中心点 q ピンを立てる場所 z 縮尺 hl 表示言語 e.g. https://www.google.co.jp/maps?ll=35.692585,139.766435&q=35.686860,139.757455&z=17&hl=ja https://www.google.co.jp/maps?ll=35.692585…

コミット前の新規ファイルを git add したけど取り消したいとき

git

いまだに忘れるんだよなあ。メモっとくか。 git rm --cached filename 一度でもコミット済みのファイルなら git reset HEAD filename でよいのですが。

Rails の javascript で環境毎に定数管理したいとき

この間 rails でのちょっとした定数の管理 - 日常 というのを書いた。 サーバサイドではなく、javascript で development, production などの環境毎に定数を設定したい場合はどうするか。 たとえば連携する API の URL など、環境ごとに持ちたいことがあるだ…

rails でのちょっとした定数の管理

railsconfig/config や binarylogic/settingslogic を使うほどでもない。という場合によくやる方法です。 たとえば環境ごとに分けたい設定値があったとすると、 config/settings.yml などに設定値を環境ごとに書いて、 development: awesome_value: "dev" st…

nira に関する記録

ここ最近ブログを書く習慣が薄れていてよくないと気づいて書き始める。 最近は空いた時間で nira という言語処理系を書き始めた。 といっても、特に知識があるわけでもないので色々調べつつ。 284km/nira 今の所、 tokuhirom/tora のコミットをほぼたどって…

Google Cloud Sdk をインストールする

絶賛 isucon 中である。 python は 2系じゃないとだめ。3系でやったら途中でエラー出てた。 curl https://sdk.cloud.google.com | bash これでインストールがはじまる bash じゃなくて zsh で使おうとしたらなんかエラーが出ている。 うーん、とりあえずこう…

swap ファイル作成方法

めもです。 # dd if=/dev/zero of=file name bs=block size(byte) count=block count dd if=/dev/zero of=/swapfile bs=1M count=50 mkswap /swapfile swapon /swapfile その他、 cat /proc/swaps swapoff /swapfile

rails force_ssl 関連

このように書くと https に強制される。 config/environments/production.rb config.force_ssl = true コントローラ個別に設定したい場合には、上記のように環境ごとのファイルには記載せず、よくこんな風にする。 class SampleController < ApplicationCont…

HSTS 設定をクリアする方法 in firefox

localhost を https であれこれしていたら戻らなくなった。 こういうことのようだ。 Web サイトにまず HTTPS でアクセスする Strict-Transport-Security ヘッダ を応答する のヘッダで指定された有効期限内では、HTTPS でアクセスを試みるようになる。 戻し…

Heroku に Phoenix アプリをデプロイする際の config/prod.secret.exs

Phoenix の config/prod.secret.exs というのは、 Rails においての secrets.yml のようなもので、デフォルトで作られ secret_key_base が記載されている。 Heroku にデプロイした際、prod_secret.exs が無いとエラー。phoenix.new した際なのか、.gitignore…

Mac,Phoenix0.16.1 で mix.phoenix.server できず Unchecked dependencies for environment dev

昨日久々に Phoenix だ!と思い立って Mac に環境を作りなおしていたところ、 mix phoenix.server できなくて困っていた。 Phoenix の Installation ページのとおりにやっていたのだけれど何が問題なのかわからなかった。 Installation · Phoenix こんな状況…

Mac で postgresql の起動がうまくいかないとき

適当に brew update して久々に postgresql を使おうとしたら起動しなくて暫く時間をくった。 どうやら自分は 9.3 から 9.4 に上げたらしい。 $ postgres --version postgres (PostgreSQL) 9.4.4 まず、こんな調子だった。 $ psql psql: could not connect t…

MySQL 条件に一致する一部のデータのみダンプしたいとき

このようにする。 mysqldump -uroot database_name table_name -t -w "id = '1111' and name = 'foo' and created_at < '2015-08-01'" > dump_file --where='where_condition', -w 'where_condition' のように条件を指定できる。 create table statement が…

rails なるべく簡単に bootstrap を使う方法を考えてみた

ちょっと何かつくろう。そうだ bootstrap 使おう。となった時に、さくっと環境が作れないとどんどん腰が重たくなってしまいに動かなくなるという、何度もこういうことがあるのでよくない。どうするのが楽なのか考えてみた。 一応、辿り着いたところを書いて…

ruby ヒアドキュメントのインデント unindent gem, <<~ syntax

k0kubun/md2key という gem を見て、 うおーっと思ってコードを除いた中で unindent という gem を見つけた。 spec.add_dependency "unindent", "~> 1.0" なんだろうと見てみるとヒアドキュメントのインデントを揃えるあれだ。 この qiita の記事が詳しいの…

ruby で時分秒の変換

ruby で分から時に変換したかった。 何か便利なメソッドはあるのかなと思ったけれど特に無さそうだったのでこうした。 a = [0, 10, 60, 99, 1200, 2400, 9000] a.map{ |m| "%02d:%02d"%[m / 60, m % 60] } [ [0] "00:00", [1] "00:10", [2] "01:00", [3] "01…

Rails log lotate したい

各環境のファイルで設定する。development ならこう。 config.logger = Logger.new("log/development.log", 'daily') weekly, monthly も指定できる。

upstream に新しくブランチが出来たのでそれを clone 済みの手元の環境に持ってきたいとき

git

身の回りでは最近から git を導入したプロジェクトがあったりする。 こういう、upstream master に追従する方法。みたいな記事はすぐに見つかるんだけど、 git fetch upstream git merge upstream/master upstream に新しくブランチが出来たのでそれを clone…

virtual box のホストキーを HHKB のために変えた

以前こういう記事を書いていて、右superキーを virtual box のホストキーとして割り当てていた。 virtualbox のホストキーの変更方法 - 日常 最近また HHKB (light2? だけど) をよく使っていて、また使い始めた理由というのが、 PC についてきた標準の JIS …

Vim 検索で最短一致箇所がほしい時

たとえばこういうときです。 [foo][bar][baz] とあって、 /[.*] とすると [foo][bar][baz] がまるっとヒットしてしまう。 こういう時は {-} を使うそうだ。 /[.{-}] これで [foo], [bar], [baz] が別々に得られる。

cattr_accessor, mattr_accessor

また Devise のコードを読んでいたら mattr_reader というのを見つけた。 activesupport の機能で、 reader だけでなく writer, accessor もあり、他にも cattr_accessor があった。 cattr_accessor は attr_accessor のクラス変数版で、 class Foo cattr_ac…

MySQL の system コマンド

たとえば system pwd とか、 mysql> からシェルコマンドが実行できた。なんと今まで知らなかった。

64bit Vagrant up でよくしくじること

いつもと違うマシンで Vagrant を使おうとすると、もう忘れていて何度もハマる問題がある。 今日なんかは、box に ubuntu/vivid64 を使おうとして vagrant up したけれど Connection timeout. Retrying を繰り返すというあれだ。 default: Warning: Connecti…

Rails バリデーションエラーの特定に悩む時のこと

バリデーションエラーが起きてるけど、どこでだか分からない。 ログもエラーメッセージの表示も大味すぎてよくわからない。 こういうこと、特に他人が書いたコードをやむなく引き継いだりしたケースではよくある気がしている。 そういう時よく、こうやって A…

mysql root のパスワード無しでログインできるようにする

手元での開発時なんかは、 mysql -uroot これだけでログインできた方が楽なことが多々あります。 既に何らかのパスワードが設定されているけど消したい場合には、こんな感じにすればよろしい。 update mysql.user set password=password('') where user='roo…

CI tool の世代みたいなはなし

ci

こういう話を聞いた。なるほどなー。 第一世代 とにかく自動で実行するやつ 第二世代 Jenkins 第三世代 設定が yaml とかで簡潔に書ける ビルド環境を都度作成(クリーンな環境を毎回使う)