baronyan's blog

linux,macでruby、railsでの開発をしていく中で知ったこと、備忘的なことなどを書いていきます。

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

railsのログのカラー表示(ANSIカラーコード)を止める

ログのカラー表示は見やすくてとても便利です。 ただ、stdoutではカラー表示されるのですが、logファイルをview等で見た場合、カラーコードが文字列として表示されてしまい、見づらいものとなります。カラー表示を止めたい場合には、config/application.rbに…

redirect先のURLを取得するスニペット

Net::HTTP.get_response(URI.parse(#{url}))["Location"]

railsでDateクラスを検索条件に使う方法

railsのActiveRecordでdatetime型を検索する場合、検索条件には TimeインスタンスかActiveSupport::TimeWithZoneインスタンスが指定できます。日付の区切りを指定したい時などにDateインスタンスを条件に使えると便利なのですが、 こちらはActiveRecordの検…

cronでbundlerとrvmを使う

cronのコマンドの最初にこれを実行しておくと、cronで対話型シェル同様にbundlerとrvmを使ったプログラム実行ができます。 source $HOME/.rvm/scripts/rvm; rvm #{ruby version};

utcで保存しているDATETIMEカラムの中身をJST(Tokyo)で表示する方法

.in_time_zone('Tokyo') を使って都度JSTに変換します。例 Book.updated_at.in_time_zone('Tokyo').to_s

rails上でカラムの型を取得する

Bookを、booksテーブルを表すActiveRecordモデルだとすると、 Book.columns_hash['isbn'].typeで、isbnカラムの型を取得できる。戻り値はシンボルで、 :string :integer :float :datetimeなどがある。

【正規表現】否定先読みと否定戻り読みを使って、重複なく、同一文字が続く箇所を指定する

「t」が3文字以上続く箇所のみをピックアップする例 (?

irbで式評価値の出力を一時的に抑制する

conf.echo = false戻すにはconf.echo = true

postgresqlでnbspを含む行を検出

where hoge like '%\xc2\xa0%' ついでにrubyでnbsp削除は .gsub(/[\u00A0]/, ' ')

ActiveRecordeのwhereメソッドでlikeを使う

Book.where('tag = ?', tag_b)これを↓こうするとlikeが使えます。Book.where('tag like ?', "%#{tag_b}%") Book.where("tag like '%?%'", tag_b) とか Book.where('tag like ?', tag_b) とかだと動きません。 直感的じゃないのでwhere以外で実現した方が良い…

Net::HTTPのリクエスト/レスポンスの中身を表示

http.set_debug_output $stderrget/postでハマった時はこれをon!

Net::HTTPでSSLアクセス

uri_string = 'https://hogehoge' uri = URI.parse(uri_string) http = Net::HTTP.new(uri.host, uri.port) if uri.port.to_s == '443' http.use_ssl = true end http.start do 以下略 証明書関連でこける場合には↓のページが参考になりそうです。 http://bl…

macにvnc接続

mac

Mac OS X 10.5にはデフォルトでVNCサーバの機能が組み込まれているらしい。 以下ページを参照 http://l-w-i.net/t/macosx/vnc_001.txt

macからリモートデスクトップ接続

mac

http://www.microsoft.com/ja-jp/download/details.aspx?id=18140 からRemote Desktop Client for MacをDLしてインストールします。(Dockにアイコンが追加されます。)

macでAppStore以外のところからダウンロードしたアプリを起動する方法

mac

参照 http://mac.kumadoumei.net/2012/08/mac-appstore.html

macのウィンドウ整列ツール

mac

Shiftitubuntuのように左上に割付、等ができます。DLは↓ http://code.google.com/p/shiftit/通知バーに「Shift」と表示がでるのでそこをクリック

USキーボードでチルダ(~)を入力

mac

よく忘れるので。。「tabキーの上!」

macのiterm2で、新規ウィンドウorタブにディレクトリを引き継ぐ方法

mac

オプションで次のように設定します。Profiles -> General working directory を Reuse previous session’s directory に設定

psでdelayed jobsのプロセスを見つける

ps -ef |grep jobs:wor[k] []で一文字囲むことで、このコマンド自体が検索結果に表示されるのを防止できます。

fizzbuzz単純解

(1..100).map{|a| a}.each_with_index.map{|org, i| if(org % 3 == 0 && org % 5 == 0) then 'fizzbuzz' elsif((i+1) % 3 == 0); 'fizz' elsif((i+1) % 5 == 0); 'buzz' else org.to_s end}

unicodeの方向制御文字(LRMまたはRLM)を除去する(ruby1.9)

#方向制御文字の除去 def self.removeLRM(str) return str.gsub(/[[\u200E][\u200F][\u202A][\u202B][\u202C][\u202D][\u202E]]/, '') end

gemのバージョン指定インストール

gem install hogegem -v 1.2たまにしか使わないと忘れてしまいますね。

coffee script で関数や変数をグローバルに使いまわしたい時には

宣言時に@を付ければ良いです。coffeeファイル内スコープでの定義 hoge = -> kansu_naiyou グローバルスコープでの定義 @hoge = -> kansu_naiyou

ubuntu12.04の共有ディレクトリにwindowsでファイルを置くと所有者とグループがnobodyになる問題の解決策

GUIでの共有設定を切る /etc/samba/smb.conf に共有設定を入れる [share] path = ~/share available = yes browsable = yes public = yes writable = yes force user = username #←ここが重要 force group = groupname #←ここが重要

ubuntu12.04でsamba共有をwindowsから見えるようにする

私が今作業しているネットワーク内には、ubuntuが載っている仮想マシンが複数あります。 インストール時に横着して全てhostname「ubuntu」でインストールしてしまっていたので名前が競合してしまい、windowsマシンから見えない仮想マシンが存在する状態でし…

文字列を含まない行を選択する正規表現

^(?!.*hogehoge).*$ 否定先読みを利用

ubuntu12.04にvsftpdを入れる

sudo apt-get install vsftpd sudo vi /etc/vsftpd.conf →下記のように編集 anonymous_enable=NO local_enable=YES write_enable=YES ascii_upload_enable=YES ascii_download_enable=YES userlist_enable=YES (追加行) userlist_deny=NO (追加行) userl…

ubuntu12.04(64bit)でpoltergeistを使う方法

前提条件:capybaraが使える状態(参考) まずphantomjsをインストールします。(参考ページ) cd /usr/local/share sudo wget https://phantomjs.googlecode.com/files/phantomjs-1.9.0-linux-x86_64.tar.bz2 sudo tar xjf phantomjs-1.9.0-linux-x86_64.ta…

webrickを使っていて遅いと感じた時の対処方法

~/.rvm/rubies/ruby-1.9.3-p448/lib/ruby/1.9.1/webrick/config.rb を編集し、名前解決できるようにします。 修正後 :DoNotReverseLookup => true 参考:http://blog.setunai.net/20121120/webrickrails%E3%81%8C%E9%81%85%E3%81%84/

postgresqlで文字列を置換してupdateする方法

update machines set ip = replace(ip, '192.168.0', '192.168.3') これでmachinesテーブルのipカラムの「192.168.0」が「192.168.3」に置き換わります。