読者です 読者をやめる 読者になる 読者になる

ruby

deviseでメール認証済みなユーザーを作成する

こんにちは。beaglesoftの真鍋です。 deviseでテストユーザーを作成するときなどユーザーを認証済み状態にして確認メールを送信したくないときが結構あったりします。特に大量のユーザーアカウントを作成してテストをシたい時とかですね。 そんな時にどうす…

CarrierWaveを利用した画像ファイルのアップロード(4)

こんにちは。beaglesoftの真鍋です。 前回まででCarrierWaveを利用したファイルのアップロードが簡単に行えることを確認しました。今回は、アップロード先をAmazonS3に変更して保存できることを確認したいと思います。 前提条件 今回はAmazonS3を利用します…

CarrierWaveを利用した画像ファイルのアップロード(5) ファイルのアップロードができない

こんにちは。beaglesoftの真鍋です。 CarrierWaveを利用してファイルのアップロードを行うで、ファイルのアップロードができないケースがあったのでまとめておきます。 事象について 実際のプロジェクトでCarrierWaveを利用してファイルのアップロードを行お…

CarrierWaveを利用した画像ファイルのアップロード(3)

こんにちは。beaglesoftの真鍋です。 前回はcarrierwaveuploader/carrierwave: Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworksの設定をいろいろと行いました。今回は、日本語ファイルの扱いやファイル容量の制限など…

CarrierWaveを利用した画像ファイルのアップロード(2)

こんにちは。beaglesoftの真鍋です。 前回はcarrierwaveuploader/carrierwave: Classier solution for file uploads for Rails, Sinatra and other Ruby web frameworksを利用してファイルのアップロードが行えることを確認しました。とりあえずファイルのア…

datetimepickerをtbs3に対応する

datetimepickerをtbs3に対応するために以下のgemを利用する。 TrevorS/bootstrap3-datetimepicker-rails · GitHub 利用手順 利用方法は以下の通りとなる。 1.gemをインストールする gemのインストールは以下の通り行う。 [code lang=ruby] gem 'momentjs-rai…

bootstrap3でテーブルに列幅を設定する

bootstrap3 でtdタグに幅を設定する方法は以下の通りとなる。 <tr class="something"> <td class="col-md-2">A</td> <td class="col-md-3">B</td> <td class="col-md-6">C</td> <td class="col-md-1">D</td> </tr> これで設定可能。 css - Bootstrap - how to set up fixed width for ? - Stack Overflow

Wijimoを利用してみる

現在運用しているウェブアプリケーションの入力インターフェースを改善したいと思い、Wijimoを利用してみることにしました。まだ、ほんの少し触っただけなのですが、もう少し評価を進めていきたいと思います。 そもそもなぜWijimo? 私はこれまでは DHTMLX …

rubyXLでシートをコピーしたりシートを削除したりする(訂正)

rubyXLでシートのコピーを行う方法についてまとめましたが、修正前・修正後ともに納得のいくものではありませんでした。どうしてかというと、データと書式のコピーは行われるのですが、セルの幅や高さについてはコピーされないためです。やはりシートのコピ…

Rails Console で必要な参照や設定をあらかじめ行う方法

Rails Console は開発の随所で利用する機会が多いですが、それだけに起動時に読み込むべきライブラリなどを設定しておきたいものです。 たとえば、 Rails.logger の内容を表示してほしい。 RSpecのmockを利用したい。 FactoryGirl::Syntax::Methods をinclud…

rubyXLでシートをコピーしたりシートを削除したりする

RailsでExcelを扱うときには weshatheleopard/rubyXL が一番手軽です。弊社でもExcelを扱う場合にはいつもにお世話になっています。 この rubyXL ですが、シートのコピーや削除の仕方がいまいち理解できず、これまでできないものと勘違いしていました。具体…

capistranoとwheneverではタスク設定を忘れないように!

Railsアプリケーションのデプロイ作業はcapistranoを利用しているケースが多いと思います。とても便利です。また、cronを利用した定期実行タスクは javan/whenever を利用することが多いでしょう。弊社でも両方の仕組みを利用しています。 wheneverを使用し…

RubyにEffectiveシリーズ

Rubyに関連する書籍を探していたところ、Amazonで発見したのがEffectiveRubyでした。あのEffectiveシリーズの書籍ということで早速購入しました。(Kindle版とリアルな書籍の両方) まだ読み始めたばかりなのですが、普通のEffectiveシリーズと同様に手堅い…

Ransackでコンボボックスの検索時に選択無し状態を設定する

何かの画面で検索を行うときには activerecord-hackery/ransack を使用することが多いと思います。柔軟なクエリ検索が行えて、それを画面から使用するためのhelperまで用意されているからです。 Ransackとは? Ransackの詳細については下記のスライドやサイ…

RSpecのコンソールにRailsのログを出力する

私はRubyMineを利用して開発を行っていますが、RSpecを実行時にコンソールログにRails.logger のログ内容を出力したいことがままあります。そのための設定についてのメモです。 設定は簡単で、spec_helper に以下の内容を記述すればOKです。 Rails.logger = …

Rails4でscope内で first などを使用するとデータの有無により挙動が変わるので注意が必要

Rails4でscopeを定義するときに、scope内で first や maximum などの集計関数を使用するとデータの存在有無により発行されるSQLが異なるようです。(本家のドキュメントなどは確認できていないので挙動としてそのようになっている程度ですが…) 環境 利用し…

RSpecで値を比較するときには'eq'を利用して'=='は利用しない方が良い

とあるプログラムを書いているときに思った通りの動作をしないケースがあり、RSpecで以下のような記述をしました。 [ruby] it 'sample' do expect(1) == 0 # => success end [/ruby] 一瞬目を疑いました。failとなるテストがsuccessとなっているのです。やは…

Capistranoを利用するファーストステップ

Capistrano(capistrano/capistrano)はRubyで作成されたシステムデプロイを自動化するためのライブラリで、Ruby on Railsに限らず広いシステム環境で利用されています。ただ、便利なCapistranoですが、以外と導入のイントロダクション的な資料が見つからず手…

Hello world!

WordPress へようこそ。これは最初の投稿です。編集もしくは削除してブログを始めてください !

capybaraでテスト対象のURLを指定する場合に named route が見つからない場合の設定

以下の通りcapybaraでテスト対象のURLを指定する場合に named route が見つからないでエラーとなることがあります。 [ruby] describe ‘….’ do … # new_user_registration_path へアクセスする before { visit new_user_registration_path } … end -> NameErr…

Railsでcheck_box_tagの動作にはまる

Railsで開発中にcheck_box_tagの動作に少しはまってしまったのでまとめました。環境は以下の通りです。 [bash] $ ruby -v ruby 2.1.1p76 (2014-02-24 revision 45161) [x86_64-darwin13.0] $ rails -v Rails 4.1.1 [/bash] 事象 現在開発中のプロジェクトで…

openssl の heartbleed 経対応したファームウェアをQNAP TS-469 Pro/469L TurboNAS へ適用する

[caption id="" align="alignleft" width="205"] The Heartbleed Bug http://heartbleed.com/ より引用[/caption] opensslの脆弱性が日常で利用しているNASにまで影響しています。opensslの脆弱性についてはこちらの説明がわかりやすいかと思いますが、ひと…

capistranoで自動デプロイを実行する

プロジェクトは参画するメンバーの人数が多くなるにつれて自動化がボディーブローのように効果を現します。それも工数削減という効果で現れてくるため非常に重要です。 しかし、プロジェクトのキックオフの時には「自動化はそのうち…」となるのも世の常です…

ハイアールに関する日経ビジネスの記事

日経ビジネスを定期購読しだして半年程度になります。以前、お試しで2ヶ月ほど試読したことがあり、大変有用な情報が多いなぁという感じがあったので定期購読を開始しました。今では毎週のお風呂の友となっています。 昔に比べて広告が多くなったという印象…

Rails3でdeviseを使用してコントローラーでログイン情報を取得する

RSpecで実行するコントローラーのテストでDeviseを使用時にログイン情報をどのようにセットすればいいのかなと思い調査したのでまとめます。(メモです) Devise使用時のRSpecの設定については様々なサイトが説明されているので割愛しますが、今回はログイン…

Rails4でPostgresに生成される主キーや関連キーをbigintegerとする(rails-bigint-pk)

Railsではmigrationを実行したときに特に何も設定を行わない場合、主キーとなるid列はint4となります。ただ、int4は -2,147,483,648から+2,147,483,647 と桁数が小さくデータ量が多い場合やidに欠番が発生する事を前提とする場合などには心許ないことがあり…

JavaScriptをコンパクトに学びたい

パーフェクトJavaScript (PERFECT SERIES 4)はJavaScript 第6版よりもコンパクトでかつわかりやすい内容でした。 ただ、それでもやはり550ページほどのボリュームはなかなか最初から最後まで読了する前に勇気のいるボリュームです。むしろ、参照するリファレ…

たのしいRubyからパーフェクトRubyへ

Rubyでプログラムを(ときどき)書くようになってもう4年くらいになりますが、その頃の私はC#やらVB.NETなどMS系の技術しかほとんど経験のない技術者でした。ちょうどRailsがWebフレームワークのスタンダードを確立した頃だったように思います。 近所の古本…

play 1.2.5.3はわかりづらい

play frameworkを使用してもうじき1.5年ほどになりますが、最近のplay1系については非常にわかりにくくなっています。リリースノートもほとんど見当たらないし、バージョン番号の振り方も変則的になっていてとても困ってしまいます。 今回もいつの間にかplay…

macのファイルディスクリプタは初期値で256しかない

macのファイルディスクリプタは初期値で256しかないため、プロセスで扱うファイルが多くなるとエラーが発生します。 [bash] Close archive failed: Failure to create temporary file: Too many open files [/bash] 最初はファイルのリソース管理を忘れたの…

macのcronでRuby2.0を使用したアプリケーションでincompatible character encodingsが発生した

Ruby2.0がリリースされて久しいですが、仕事が忙しく全くコードを書く時間が取れませんでした。今回台風というありがたくはないことですが、そのおかげでお休みになった今日を利用して簡単なバックアップアプリケーションを作成しました。 内容はとても単純…

もいちどデザパタ

いつ頃だったでしょうか。手続き型のプログラミングからオブジェクト指向へプログラミングへ移行した頃だったように思いますが、デザインパターンがはやりました。オブジェクト指向プログラミングもよくわからない(今でも十分理解できているとは言いがたい…

macとATOKとintelliJ

intelliJの find in pathを使用しようとするとatokのショートカットとぶつかってしまってとても使いづらいと思って調べたところATOK側のショートカットを変更できることを知りました。 具体的にはメニューのATOKアイコンをクリックして表示される キー・ロー…

play framework2.1で認証情報を保持する

ステートレスなフレームワーク play frameworkはこれまでのServletコンテナなどと違いステートレスを特徴の一つとしたフレームワークです。ステートレスということは、基本的にセッションという概念が存在しない、いわゆるHTTP通信の本来あるべき姿に近い仕…

Play Frameworkのバージョンアップ(2.0.4→2.1.1)

Play Frameworkですが、速いものでもう2.1.1が最新となっています。2.0.4から2.1.1への変更点はいろいろありますが、主にscala 2.10への対応でしょう。 ということで、個人的にもそろそろscala 2.10 & play 2.1 への移行を行いたいと思っていたので少し試し…

Play Framework2とscalikejdbcでテスト実行時にログを出力する

ちょっと自分向けのメモです。(scalikejdbcは便利に使わせていただいています!) scalikejdbcでspecs2実行時にログを出力するためには以下の事を行えばよい。 1.testディレクトリ直下に logback.xml を作成する。 2.logback.xmlには以下の内容を記載する。…

FactoryGirlで関連するデータを生成するときに論理削除状態のデータを避ける方法

act_as_paranoiaを使用して論理削除を行っている場合に、FactoryGirlを使用してデータを生成するとどうしても一定のルールで論理削除状態のデータを生成することになると思います。たとえば、偶数は論理削除だとか、、、ところが、関連する側では一般に論理…

Railsのテストについてのメモ

RailsでRspecを使用してテストを書いているときに、viewsに関連するテストも生成されます。そのviewsでassosiationを使用しているときにはテストデータをあらかじめbeforeで宣言する必要があるのですが、少しわかりにくかったのでまとめておきます。 具体的…

Ruby2.0とRails4

つい先日Ruby2.0がリリースされたわけですが、Ruby4.0に対応したRails4も先日Beta版がリリースされました。 Ruby 2.0.0-p0 リリース Riding Rails: Rails 4.0: Beta 1 released! Ruby2.0+Rails4については、WEB+DB PRESS Vol.73に特集が組まれているのでこち…

東海道新幹線のグリーン車が値段相応に快適

今回久々に新幹線のグリーン車に乗りました。東京〜京都間という2時間半程度だったのですが、このところの忙しさもあり睡眠不足からもできるだけ快適さを考えた結果グリーン車を使用してみることにしました。 意外に混んでいる グリーン車ですが、結構混んで…

RailsのActionMailerにさくらのメールボックスで作成したメールを設定する

Railsは本当にいろいろな機能があらかじめそろっています。メールを送信するのも簡単なのですが、設定がうまくいかずいろいろと調べたのでそのメモだけ残します。 Beaglesoftではメールサーバーは管理するのも大変と言うことでさくらのメールボックス(メー…

play framework 2.1リリースされましたね

先日のscala 2.10リリースに続き、play framework 2.1 もリリースされました。 Play Framework - Build Modern & Scalable Web Apps with Java and Scala リリースノートはこちら。 Highlights play framework や scala/Java を使用した開発をこのところ行っ…

自分に何ができるのかを考える

Evernoteの整理をしていて出てきたクリップの記事を読み直し、これからの自分に何ができるのかを考えています。 結局、若者が社会を変えるような変革を起こすには、ブログでちまちまと自分の考えを書くよりも、自分の世代だけの業種を作った方が効果的だよね…

仕事の何かを達成するためにがむしゃらに働くことはださいことなのか?

最近の風潮として、ワークライフバランスと言うことがよく言われます。この「ワークライフバランス」という言葉に引きずられるように「長時間働くことは悪い」と言う意見をよく聞きます。また、実際に私の周りにも自分の時間を大事にしたいと言うことをよく…

play framework を学ぶために参考になる書籍

Beaglesoftではシステムの開発にScala + play frameworkを使用しています。これまでは.NETを主に使用してきたのですが、コストの問題からplay frameworkへ変更しました。 play frameworkはプラガブルなので、O/Rマッパーを使うもよし、SQLをごりごりかくもよ…

SimpleTweetの連携テスト

SimpleTweetの連携テスト〜♪ (ちょっとテスト)

play framework2 でサブディレクトリ(仮想ディレクトリ)は使用できない

play framework2 を使用して経費精算のシステムを構築しているのですが、SSLサーバー証明書の個数を減らすためにも仮想ディレクトリを使用した仕組みを用いようとしたのですが、駄目でした。 playframework 2.0 - Setting a custom root URL in Play 2.0 - S…

急激な円安

このところ急激に円安が進んでいますね。つい昨年の今頃は78円とかだったものが今や87円ほど。それも政権交代後から加速度的に上がってきました。 日本の輸出産業だけを見た場合には、円安というのは喜ばしいところではありますが、私のように輸入の方が多い…

CentOS6.3へmemcachedをインストールする

play framework で開発をするために認証情報をデフォルトのキャッシュサーバーに持たせていたのですが、コンパイルが発生するたびにキャッシュがクリアされるため外部のキャッシュサーバーに認証情報を持ちたいと思い、memcashedをインストールしました。(…

技術書を電子書籍にしてみて感じたこと

今年はとにかくモビリティにこだわった1年でした。場所にとらわれないで情報にアクセスすることができるにはどうすればよいか?ということにこだわりました。その一環として技術書の電子書籍化を進めたのですが、その結果として感じたことをまとめたいと思い…