apacheのmod_cacheのテストにて
apacheのmod_cacheのテストにてうまくがキャッシュが効かない。なんでかなぁぁ??と思ってると、、、
「ブラウザのリロードはキャッシュされない」
のが原因でした、、、。
以下のヘッダがリロード時のサーバサイドでのキャッシュの使用を抑制しています。
Cache-Control max-age=0
ってか、2年ほど前にも同じ事で悩んが記憶がおぼろげに、、、
osxでterminalの表示名(タイトル?ラベル?)を簡単に変えたい!!!
(サザエさんの声で)
さて、みなさん大好き俺俺DIYのお時間です。
osxで開発していると思わずターミナル(私はiterm2派)を沢山開けすぎて困ってしまう事って無いでしょうか?
ない??
そんな貴方は"うんま、んっんっ"(サヨウナラの意)。
私はしょっちゅうです。
witchを呼び出してみても
6.Shell firefox(実際にはページタイトル) 4.Shell 3.Shell 2.Shell 5.Shell 1.Shell chrome(実際にはページタイトル) 7.Shell
ひどい有様です。これじゃ魔法使いにはほど遠いですよね(実際は一つ前のウィンドに戻る事が多々なのでそこまでひどくはないです)。
そんな貴方に俺俺DIYの凡人、人呼んで「コピーアンドペーストの錬金術師」のtipsをご紹介。
以下の内容のファイルをパスの通った所において、実行権限をちょちょいと付与しましょう。私は"tl"って名前にしています(Terminal Labelの略w)。
#!/bin/bash if [ "$#" -eq 0 ];then echo "usage tl name " else echo -en "\033];$1\007" fi
そして以下のコマンドを実行。
bash$ tl hogehoge
なんということでしょう。
ターミナルの表示名が"hoge"に早変わり。witchを呼び出しても
6.hogehoge firefox 4.Shell 3.Shell 2.Shell 5.Shell 1.Shell chrome 7.Shell
と見やすくなっているではないですか。これで貴方も魔法使い的なものに一歩近づきましたね。
はい、最近見始めました、ビフォーアフター(去年は嫁の大河熱に負けて録画できなかった)。途中まで普通に記事を書いた所でどうしてもやりたくなりました。すみません。これに懲りず、次は「おはようございます。」から始める記事を書いてみたい、、、、。
ってか実はこれって簡単なやり方があるのかな、、???あとbashもわからず適当に書いてるからもっと良い書き方があれば教えて欲しいな〜。
railsのrake db:seedにてclosed MySQL connectionってなエラーがでる
うーん。seed内でループばりばり&生sqlで書きたいのでconnection.executeを使いたいってなシチュエーションにて"closed MySQL connection"ってなエラーが発生する。
バッドノウハウかもしれないが一応備忘ということで。
loop do query = "INSERT INTO HOGEHOGEHOGEHOGEHOGE" ActiveRecord::Base.connection.execute query #=> closed MySQL connection end
↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
loop do query = "INSERT INTO HOGEHOGEHOGEHOGEHOGE" con = ActiveRecord::Base.retrieve_connection con.execute query con.close end
rails3.2で発現しているのでrails3.2からconnectionがスレッドセーフがウンチャラカンチャラに絡んでるんだろうけど追いかける気がしないので以上。
rubyにて短縮URLの様な処理をしてみる(数値を出来るだけ短い文字列で表現したい)
基本は以下のURLのものです。デコードが無かったので作ってみました
http://blog2.terawarosu.com/2011/03/ruby-1064.html
# coding: utf-8 class NumberShorter def self.decode(st,seed=nil) seed ||= ('0'..'9').to_a + ('a'..'z').to_a + ('A'..'Z').to_a + ["-","="] st.gsub(/./) do |s| ret = seed.index(s) ret = ret.to_s(8) ret = '0' + ret if ret.size == 1 ret end.to_i(8) end def self.encode(number,seed=nil) seed ||= ('0'..'9').to_a + ('a'..'z').to_a + ('A'..'Z').to_a + ["-","="] s = number.to_s(8).to_s s = "0#{s}" unless s.length % 2 == 0 s.gsub(/\d\d/){|s| seed[s.to_i(8).to_s(10).to_i]} end end if __FILE__ == $0 seed = ('0'..'9').to_a + ('a'..'z').to_a + ('A'..'Z').to_a + ["-","="] [(0..20000),(5000000000..5000000100),(10000000000000000..10000000000001000)].each do |range| range.each do |i| #puts '=' * 80 #p i encoded = NumberShorter::encode(i,seed) #p encoded decoded = NumberShorter::decode(encoded,seed) #p decoded raise 'unmatch' unless i == decoded end end end
sinatraにてViewSelectorを使う
件名のサンプル
require 'jpmobile/sinatra' #class Application < Sinatra::Base class Application < Jpmobile::Sinatra::Base get '/' do erb :index end end
irbにてreload!を使いたい!
irbを使っていてついreload!って打っちゃいますよね〜〜〜。
このやり方だと問題あるのかもしれませんが、、、、うちでは動いていますよ。
ちなみに私はrbenv派です。
.irbrcに以下をぺたっと
unless defined?(reload!) def reload! $LOADED_FEATURES.each do |f| next if f =~ /\.rbenv/ load f if f =~ /\A.+\.rb\z/ end end end
もっと良い方法があると思うのですが、、、、教えてください。
gemでのraindropsのインストールでトラブル
snowleopardな環境でgem install raindropsが以下な感じでこける
shell$ gem install raindrops -v '0.8.0' --no-rdoc --no-ri Building native extensions. This could take a while... ERROR: Error installing raindrops: ERROR: Failed to build gem native extension. /Users/paco/.rbenv/versions/1.9.3-p0/bin/ruby extconf.rb checking for mmap() in sys/mman.h... yes checking for munmap() in sys/mman.h... yes checking for mremap() in sys/mman.h... no checking for getpagesize() in unistd.h... yes checking for rb_thread_blocking_region()... yes checking for rb_thread_io_blocking_region()... yes checking for GCC 4+ atomic builtins... no checking for atomic_ops.h... no libatomic_ops is required if GCC 4+ is not used. See http://www.hpl.hp.com/research/linux/atomic_ops/ Users of Debian-based distros may run: apt-get install libatomic-ops-dev *** extconf.rb failed *** Could not create Makefile due to some reason, probably lack of necessary libraries and/or headers. Check the mkmf.log file for more details. You may need configuration options. Provided configuration options: --with-opt-dir --without-opt-dir --with-opt-include --without-opt-include=${opt-dir}/include --with-opt-lib --without-opt-lib=${opt-dir}/lib --with-make-prog --without-make-prog --srcdir=. --curdir --ruby=/Users/paco/.rbenv/versions/1.9.3-p0/bin/ruby --with-atomic_ops-dir --without-atomic_ops-dir --with-atomic_ops-include --without-atomic_ops-include=${atomic_ops-dir}/include --with-atomic_ops-lib --without-atomic_ops-lib=${atomic_ops-dir}/lib
http://www.hpl.hp.com/research/linux/atomic_ops/download.php4よりソースを引っ張ってきて(めんどくさいので最新版を)以下の感じでコンパイル。
CC=gcc-4.2 ./configure make make install
でライブラリを入れたのちもう一度コマンドを打ってみたらgemが入った(動作確認を取ってないから動くかはまだ見検証)