Macアップデート時のNodeのエラー

macをsierraにアップデートしたら、↓こんな感じのエラーが出ました。 node_modulesを削除して npm install をしなおしたら解決 :) > starter@0.0.0 start /Users/user_name/Documents/app/training_front_01 > gulp [20:44:14] Requiring external module ba…

awscliでCloudFrontへ証明書をアップロード

CloudFrontの場合GUIが用意されていないのでawscliからアップロードします。書式は下記のようになっているので aws iam upload-server-certificate --server-certificate-name 任意の名前 --path /cloudfront/ --private-key file://秘密鍵のパス --certific…

capistrano3のupload!で『Encoding::CompatibilityError: incompatible character encodings: ASCII-8BIT and UTF-8』エラー

capistranoのタスクでディレクトリ内のファイルをリモートに上げる処理を↓のように書いていたところ # lib/capistrano/tasks/uploads.rake namespace :uploads do task :wpuploads do ask(:upload_path, nil) on roles(:web) do upload!('wp-content/uploads…

Aws::SQS::Errors::SignatureDoesNotMatch エラー

急にAws::SQS::Errors::SignatureDoesNotMatchが出てwebrickが起動できなくなりました。 /home/vagrant/app/vendor/bundle/ruby/2.2.0/gems/aws-sdk-core-2.2.5/lib/seahorse/client/plugins/raise_response_errors.rb:15:in `call': Signature expi$ ed: 20…

ActiveAdminでリレーション先のIDを検索する

kind -> question -> userとそれぞれ1対1で関連付けされている時、いつも通り filter :user, as: :numeric と書いてもuserモデルを検索できません。 filter :question_user_id, as: :numeric のように書けば関連先のuser_idで検索することが出来ます。 また…

Railsでマルチスレッドを使用した場合に RuntimeError: Circular dependency detected while autoloading constant エラーがでる

Railsでマルチスレッドを使用してActveRecordのクエリを並列に実行しようとしたら『RuntimeError: Circular dependency detected while autoloading constant …』というようなエラーがでました。エラーの詳細は RuntimeError (Circular dependency detected …

redirect_toでパラメータをつけてリダイレクトする

いろいろ試してみましたがredirect_toにパラメータがつかなかったので、パスの生成時にパラメータをつけることにしました。 redirect_to admin_users_path(q: params[:q]), alert: "選択したアイテムを無効に設定しました"

さくらVPSのサーバーにajentiを入れてみた

さくらVPSのサーバーにサーバー管理ツールのajentiを入れてみました。 単純に入れるだけなら超簡単。ドキュメント通りにやればできます。 Installing on CentOS/RHEL / KB forum / Ajenti curl https://raw.githubusercontent.com/ajenti/ajenti/1.x/scripts…

ActiveAdminのdatalistが結構使えそう

ActiveAdmin/formasticの入力スタイルでdatalistが使えそうだということがわかりました。 たくさん入力候補がある時は数値の一部を入力すると右側に対応する名前がリアルタイムで表示されます。 f.input :admin_user_id, as: :datalist, collection: User.al…

ActiveAdminでserializedされたカラムを扱う

ActiveAdminのフォームでserializeされたidなどを得ようとするとtextエリアに手入力をしないといけないのでセレクトボックスで選択できるようにしてみました。 まずはシリアライズされたデータを保存するカラムを作成します。 db/migrate/xxxx_create_user.r…

unicorn使用時nginxでパーミッションエラー

unicorn+nginxで動かそうとしてcapistranoでデプロイしたら『403 forbidden』のエラーがでました。ログをみてみると、 2015/09/23 03:00:12 [crit] 1140#0: *1 stat() "/home/app/appname/production/current/public/" failed (13: Permission denied), clie…

gemのSpreadsheetを使用時にNoMemoryErrorがでる

Rubyでは動いていたのにRailsに組み込むとうまく動かないコードがあったので調べたら、Railsで動かした場合だけ#<NoMemoryError: failed to allocate memory>というエラーが出ていました。 book = Spreadsheet.open(open(url)) sheet = book.worksheet(sheet_name) こちらにある様に sheet = Spreadshee</nomemoryerror:>…

現在上場中の証券コードと会社名を取得するGEM作りました

意外にも現在上場している証券コードのリストを得るgemがなかったので作りました。 kozakana/ticker_symbol_jpngithub.com 市場は 東証1部/東証2部/Mothers/JASDAQ としています。 使い方 require 'ticker_symbol_jpn' codes = TickerSymbolJpn.all_codes …

株価/為替/原油の情報を入手するサイト一覧

株価と為替と原油の情報を得られるサイトを探すのに苦労したので、見つけたサイトをまとめてみました。 株価 株価データダウンロードサイト (http://k-db.com/stocks/) CSV形式で2007年からのデータがダウンロードできる。先物やインデックスもあり。 無尽蔵…

数値の下2桁のみ取り出す

数値の下◯桁取り出したいときに一旦文字列にして…とか書こうとしていたが難しく考えすぎていたようだ year4 = 2015 year2 = year % 100 #=> 15 ちなみに2桁で0埋めした文字列にする場合はこれ year4 = 2007 year2 = sprintf("%02d", year4%100) #=> "07"

CSSでおしゃれな色付き下線を引く

css

こんな感じの少し太めで色付いて少し文字とかぶってる下線を引くには要素に↓を指定します。 background: linear-gradient(transparent 80%, #FDC734 0);

hashのKEYを数値やシンボルにする

hashのキーを文字列からシンボルへ変更するならActiveSupport使っていればsymbolize_keysを使えばいいけど、これだけのために使えない時はこれでできます。 (参考:rails/keys.rb at master · rails/rails · GitHub) json_data.keys.each do |key| json_data[…

スイッチサイエンスで購入したUSBリチウムイオン充電器で充電する方法

スイッチサイエンスで購入したマイクロBから充電するリチウムイオン充電器[IC:MCP73831T] を使用して 110mAhの電池 を充電しようとおもったのですが、容量によって抵抗値を変えないといけないらしく少しハマりました。 データシートの3ページ目に書いてある…

オブジェクトがSymbolかどうか判別する

オブジェクトがシンボルかどうか判別したかったのですが、sym?やsymbol?がなさそうなのでこのように判別しました。 if obj.class == Symbol p "I'm symbol" else p "I'm not symbol" end # obj = :symbol の時 #=> I'm symbol # obj = "string" の時 #=> I'm…

クラスの拡張時にsuperでブロックを渡す

こんな感じの短いブロックを使った処理を毎回書いてるなって時ないでしょうか。 uniq_arr = arr.uniq{ |item| item[:name] } メソッドに分離してもいいんですが、 def name_uniq arr arr.uniq{ |item| item[:name] } end name_uniq arr メソッドに分離すると…

aws-sdk(Version2)でS3のファイルを削除する方法

aws-sdkは現在Version1とVersion2があるようで、Version1とVersion2は基本的に互換性はない様なので注意が必要です。今回はVersion2について書きます。 まず、aws-sdkを使うにあたって初期設定をしないといけません。『Aws.config.update』の部分ですね。 Ra…

クレジットカードの期限切れでさくらのVPS上のサーバーが停止→復旧まで

クレジットカードの有効期限切れ&サービス停止の警告メールを読んでおらず、さくらVPSのサービスを止められてしまいました。 今回はメールを読んでいなかった僕の不注意なのですが、クレジットカードの有効期限は5年程度なので、5年前に登録したメールア…

Railsで warning: duplicated key at line 196 ignored: :openstack_region が出る

gemのfog(1.27)内でworningが出ていたので調べました。 エラーが出ていた部分は『lib/fog/openstack/volume.rb』の188行目のauthenticateメソッドの中にあるoptionsに代入しているところで『:openstack_region => @openstack_region,』が2回書かれていたか…

例外が起きそうな処理を制限回数繰り返す

ファイルへの書き込みやAPIの呼び出しなどで失敗する可能性があって繰り返したいけど、万が一永遠に失敗したとき無限ループになるといけないので指定回数繰り返したいとき。 def write_hello deep=0 begin # 例外が起きそうな処理 File.write('hoge.txt', 'h…

bdf2ttfコマンドでBDFフォントをTTFフォントに変換する

bdf2ttfというbdfファイルをttfに変換するコマンドをlinux(CentOS6)で使ってみた。 linux用にはソースコードしか配布されていないのでコンパイルします。 git clone git@github.com:koron/bdf2ttf.git cd bdf2ttf cp compile/Make_gcc.mak makefile make lin…

RailsのActiveRecordで本年度のデータを取得する

ActiveRecordで今年の元旦から今日までのデータを全て取得したかったのですが、なんかあまりスマートではない感じがするなー today = Time.now this_year = today.year new_years_day = Date.new(this_year, 1, 1) p User.where(day: (new_years_day..today))

Rubyでアメリカ式の日付を読み込む方法

Date.parseで読み込めない形式の時はDate.strptimeを使って読み込む date = "06/25/2015" p Date.strptime(date, "%m/%d/%Y") # 出力結果<Date: 2015-06-25 ((2457199j,0s,0n),+0s,2299161j)> ちなみに_strptimeという関数もあってハッシュ形式で返してくれる date = "06/25/2015" p Date._strptime(date, "%m/%</date:>…

Chromeのブックマークシステムを前のやつに戻す

chromeの新しいブックマークシステムに全然なれないので戻しました。 chrome://flags/にアクセスしてbookmarkを検索『拡張ブックマーク』のドロップダウンボックスを無効へ変更します。 あとは再起動すれば設定完了。

CentOSでタイムゾーンをUTCからJSTに変更する方法

新しくVagrantで立てたCentOSで時刻がUTCになっていたので、JSTに変更しました。 sudo cp /etc/localtime /etc/localtime.bak sudo ln -sf /usr/share/zoneinfo/Asia/Tokyo /etc/localtime あとは『vagrant reload』などで再起動すれば適用されているはずで…

Rubyのparsedateは1.9以降使えなくなっていた

日付のパースをしようと検索するとよく検索結果に出てくるparsedateですが、1.9以降は廃止となり、Date.parseを使わなければならいらしい。 require 'parsedate' ParseDate.parsedate("2015/06/02") ↓ Date.parse("2015/06/02") 参照:http://docs.ruby-lang…