ruby

深いコピー

new_obj = Marshal.load(Marshal.dump(old_obj))

eventmachineをつかってクローラーを作る

https://github.com/modeverv/animation-crawlereventmachineでクローラーを作ってみました。 一定のアクセス順にクロールしていきますので単純なクローラーではないですが 結構綺麗に作れたのではないかと思います eventmachineは速いですね - URIライブラ…

rubyのEnumerableつかって全て回す

あけましておめでとうございます。 今年もよろしくお願いします。 年末年始にjavaでもやるかと言っていたのに蓋を開けてみればrubyのリファレンスを 読んでいます。 rubyといえばeachですね! クラス内のアトリビュートを数え上げたい場合は include Enumera…

base64エンコードサンプル

#!/usr/bin/env ruby # jpgファイルを無事作れたあとでhtmlに埋め込むサンプル jpg = '' ## rubyでa.jpgというファイルが作成できたとする。 open("a.jpg" ,"r"){|io| jpg = io.read } # base64にエンコード jpg = [jpg].pack('m') ## html書き出し open("a.…

railscast#196,197 Nested Model Formをrails4で動かす

http://t-taira.hatenablog.com/entry/20110420/1303310783 を元にしてstrong parameterがあるとうまく動かないのでしょうがなく def category_params params.require(:category).permit! end してやり、DEPRECATION WARNINGが今後のことを考えると怖いので …

systemuのハマりどころ

会社でちょっと話題になった。上司が解決してくれたのでメモしておく。 プロセスが長く掛かりそうなときに途中で殺す処理を入れることがある。 https://github.com/ahoward/systemuによると require 'systemu' begin looper = %q( ruby -e" loop{ STDERR.put…

railsメモ railsで別DBを利用する

既存のユーザーテーブルなどを利用したいときがある。その場合は以下の様にすると良い class Hoge < ActiveRecord::Base establish_connection( :adapter => "mysql2", :host => "ホスト", :database => "データベース名", :username => "ユーザー", :passwo…

rails4のサブディレクトリ運用

http://quickhack.net/nom/blog/2012-09-19-rails-with-relative-url-root.html#sec-6config.ruは map ActionController::Base.config.relative_url_root || "/" do run Rails.application end起動は RAILS_RELATIVE_URL_ROOT='/yourdict' unicorn -p 8080 -…

attr_accessorを自分で定義する。

メタプログラミングRubyを再読している。 メタプログラミングRuby作者: Paolo Perrotta,角征典出版社/メーカー: アスキー・メディアワークス発売日: 2010/08/28メディア: 大型本購入: 18人 クリック: 533回この商品を含むブログ (112件) を見る P154らへんの…

bundlerメモ

http://shokai.org/blog/archives/7262 がすごくよくまとまっていたのでメモ bundle init プログラム内で require 'bundler' Bundler.require

emacsのxmpfilterをrvm由来に

環境 macbook air 1.システムrubyをmv sudo mv /usr/bin/ruby /usr/bin/ruby 2..emacsに (setq xmpfilter-command-name "/Users/xxxx/.rvm/gems/ruby-1.9.3-p385@rails/bin/xmpfilter --dev --fork --detect-rbtest") 以上。 システムrubyを捨てることになり…

redmineのsvnレポジトリのページを開かないとsvnの更新がredmineに反映されない仕様をなんとかするスクリプト

表題の件、だよねーという話になってそれrubyなら5分で書けるよ、と。cronで毎分回してますまだ、svn使ってるの?というのもありますけどgitに移行過渡期だよ!、gitlabも稼働しているよ!でもTiDD開発すら始まったばかりだよ!というのが現実。さて、スク…

phpのサイトをselenium-webdriverでrspec+guradする

phpのサイトですが、テストを自動化したら?とCTOに言われたのでselenium試してみました。seleniumからrspecファイルを吐き出せることがわかりましたので、rspecファイルを吐き出したところ、guardできるんじゃね?となり、カッとなって環境用意しました。 …

passengerでrails サブディレクトリ運用の場合の設定

仕事でrails触れる日が来るとは。。。 本番環境はpassengerで良いとなって、サブディレクトリで運用しようとしてハマった。 gem install passengerpassenger-install-apache2-module ls -s をしてhttpdの設定には # config for passenger LoadModuleの3行ぐ…

ファイル達をtar.gzしてダウンロードさせる

とりあえず動くけどいろいろダメだと思う Postのidsにモデルのidが" "で区切られて送られてくる。idsでモデルの集合を取得している。モデルのpathに実際のファイルパスが入っているので 1.ファイルをtmpdir作ってcpする 2.tmpファイル作って(別に作らなくて…

fc2

かっとなった。。 #! /usr/bin/env ruby # -*- coding:utf-8 -*- target = ARGV[0] until target puts "usage: fc2 'fc2url'" exit end @FC2magick = '_gGddgPfeaf_gzyr' #updated FC2 2011.7 #target = "http://video.fc2.com/a/content/xxxxx/20111102bWTc…

sendfileをどうしましょう nginx vs apache2 vs sinatra+unicorn vs node

ファイルを送信するときには許すのならアプリケーションで送信するよりもnginxかapache2で送信する方が良いっぽい。当たり前だけど。 ローカルの各サーバーへリクエストを投げて試してみた。request対象ファイルは4.2Mのmp3ファイル。 環境 varnish => apach…

varnishにキャッシュさせるrubyのメモ

サーバースペックがしょぼいのでできるだけのことはやらないとダメ。 304,max-age,expire等をレスポンスヘッダに適切に作ればノンアクセスでページを描画してくれる(いままで無頓着だった。)+varnish併用の状態でキャッシュ戦略を考えている。プログラム的に…

Subsonicが遅すぎるので検索+ストリーミングを自作した。

subsonicが自分のnasですと遅すぎます。 512M/1.4GCeleronMでは10万ファイルをハンドルするのはしんどい。表示に10秒、検索に10秒とか所要する。 検索も直感的ではない。もう少しシンプルで凶暴なもので良いかな、と。 ruby+sinatra+mongoid+taglib2で行きま…

Doing Listをちょっと変更した。

2011-09-24 modeverv <xxxx@gmail.com> * doinglist.js: master iphone対応をiOSシミュレーターで。実機で確認していないので詳細不明。 TODOの終了をli要素のdblclickから終了専用の画像要素のclickに変更 内部はhtml上のonclidkなどをある程度別ファイルに移動させた。 htt</xxxx@gmail.com>…

タスク管理 Doing List作った

タスク管理はどうしていますか? http://lifehacking.jp/2008/03/doing-list/ を電子化してみたかった。紙とペンが無いときが自分には多いのだ。 org-modeはどうか。良いのだけれど可搬性がわるい。 DTM専用PCにはemacsなど入れたくない。 emacsでファイルを…

スニペット管理cgi書いた。

スニペットをどのように管理しているだろうか? スニペットは個人的なものである。 セキュリティ的な事柄も書く。 なのでweb上でみんなで共有とかには向いていない。 私はスニペットをファイルで管理している。 テキスト形式で何かを書いてフォルダに突っ込…

クローラー

同様のものを以前につくったが遅すぎて(30分とか)常用できなかった。ファイル保存の機能もなかった。今回のものは速度が50倍ぐらいにはなったのではなかろうか。 #! /usr/bin/env ruby #-*-coding:utf-8-*- require 'term/ansicolor' class String include T…

GoogleCalendarに特定形式で予定を入れておけば指定したファイルのtailっぽいものをpusherに送信する仕組みを作ってみた 2011/8/27

pusherってどうなの?とおもってつくってみた。 説明 GoogleCalendarに特定形式で予定を入れておけば指定したファイルのtailっぽいものをpusherに送信します。 特定形式 "[Gcal2PusherTail]ファイルへのフルパス"で予定を作ってください。 予定の開始時刻にp…

memo:fileQでcgiのsinatra

railsはメンドイ。rails使うぐらいなら速いしphp使ったほうがいいとおもう。 でもcakeも大概設定メンドイ。という時はsinatraかもしれませんね、 という射程範囲です。(つーか隣の人がsinatraでなんかつくっててsinatra気になった。) で、貧乏人は月額100円…

Org=>GmailSMTPでウマー

OrgをGmailに送りたい。 1.EmacsのバッチでOrgのTODOとかを出力 utf8だと文字化けした。 生の.emacs読み込ませると遅いのでorgバッチ用のorgだけ読み込む.emacsを作ると良いですね。 文字化け回避について http://d.hatena.ne.jp/tanitsu/20090311/123676287…

rsense+auto-complete

はい。話題です。少なくとも個人的に。 http://cx4a.org/software/rsense/index.ja.html ドキュメントどおりでOK。とてもよく出来ています。 速度も。 環境:osx+emacs23(fullscreenハック版) 一点のみいやんな所。 auto-completeのrefeコマンドが文字化けま…

exifとる。

未だに携帯とか写真にgps情報埋め込んでる人居るのかな、という話題でした。 ちなみに私は埋めてます。 require 'hpricot' require 'open-uri' #ユーティリティ def url2fullurl(src) #urlを整形するためのなんかすご処理 return src end DEBUG = false ####…

memo:01反転

前も書いた気がする。思い出したのでメモ #01で条件反転 TT = 10 #論理trueを表現するTTで中身が実際にどういう表現をされいてるかは関係ない flag = TT TF = TT - flag #論理falseを表現するTFを定義 100.times do flag = TT - flag #flag入れ替えのアイデ…

memo:ldrize対応

いまさら。vimperator始めたんです。そしたらやっぱりgreasemonkey入れてldrizeとautopagerizeというお決まりのパターン。stylishも入れますた。svn経由でpluginのtrunkをまとめてダウンロードしてubiquity無効化。うーん。なんだか古臭い環境になりました。…