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

おもしろwebサービス開発日記

Ruby や Rails を中心に、web技術について書いています

Ginza.rb 第12回を開催した

開催しました。久しぶりにコードリーディング。地味なお題のわりに人数は過去最多だったかも。パーフェクト Ruby on Railsを買いました!と言ってくれた人が多くいて嬉しかったです!! Ginza.rb 第12回 帰ってきたコードリーディング ~ Rails 4.1 Action M…

rails new のデフォルトオプションを設定しよう

みなさんは ~/.railsrc 使ってますか? rails new したときのオプションを書いておけるファイルです。Rails 3.2 から使えます。 僕は test-unit を基本的に使わないし、rails new のタイミングで bundle install が走るのが嫌なので次のように設定しています…

HuBoard を試してみた

waffle.io vs Zenhub.ioというエントリを書いたところ、HuBoardがいいよ!とコメントくれた方が居たので試してみました。 private は有料 1ユーザ月7ドル organizationだと月24ドル waffle.io と同じ専用ビュー型 検索、フィルタリング、アサインなどの、タ…

poltergeist で js のアラートを見る方法

公式では今のところ(2014/6/15)未サポートみたい。capybara-webkitでは page.driver.alert_messages などとして alert のメッセージ内容を見れる。Issue 見た感じ、コミッタ陣はリソースないのでプルリク待ちな模様。 https://github.com/teampoltergeist/po…

waffle.io vs Zenhub.io

waffle.io ZenHub.io ひとりプロジェクトのタスクをどのように管理しようかと考えて、waffle.io と Zenhub.io を試してみました。waffle.io と Zenhub.io はどちらも Github issues をバックエンドにして、カンバン方式でタスク管理をできるようにするツール…

RSpec 3 時代の設定ファイル rails_helper.rb について

rspec-rails、3.0.1 がリリースされていますね。インストールして rails g rspec:install とすると、spec/rails_helper.rb という見慣れないファイルが作成されます。これは一体何でしょうか。 rspec-rails のREADMEを読むと、これからは spec/rails_helper.…

カウンターキャッシュの初期値を設定するときの落とし穴

後づけでカウンターキャッシュのカラムを追加する場合、初期値を設定してあげないといけませんよね。僕はマイグレーション中に次のように書きました。 class AddCommentsCountToIdeas < ActiveRecord::Migration def change add_column :ideas, :comments_co…

パーフェクト Ruby on Rails のサンプルアプリケーションを Github 上で公開しました

パーフェクトRuby on Rails 中の第6章で取り扱っている題材、イベント開催支援系のRailsアプリケーション awesome_events のソースコードを Github 上で公開しました。 ソースコードは技術評論社さんのサポートページからダウンロードすることもできますが、…

guard の結果を emacs に通知する

「ファイルの変更を検知してなにかするツール」のデファクトスタンダード、guard。みなさんもきっと使ってますよね? guard はよくテストを自動で実行させるのに使われます。修正を検知して自動でテストを実行してくれるだけでも便利ですが、テストの結果を…

よちよち.rb 21回 を見学した

初心者Rubyコミュニティとして有名なよちよち.rb。僕は参加資格はないのですが、主催者であるゆかおさんにお願いして見学させてもらいました。 僕はデザインビギナーズという、デザイン初心者の勉強会を主催しています。主催の自分はデザインできないので、…

morning hack という名の朝活をしています

常駐のお仕事をしていないフリーランスは、朝出社しなくていいので生活リズムがどんどん崩れていきます。個人的には、生活リズムが崩れると能率も落ちるしあんまりいいことないです。かと言って自分の意志だけで朝早く起きるのとか不可能。 そこでMorning Ha…

実践 Vagrant を読んだ

Vagrantを使って仮想マシンを立ち上げるだけなら、適当にググってコマンド2つ(vagrant init と vagrant up)叩くだけでできます。Vagrant ちょう簡単。なので簡易的な使い方をする分には書籍とか読む必要はないです。でも、Vagrantって何をどこまでできるのか…

rspec-rails を 3.0.0.rc1 にアップデートする際に気をつけること

rspec-rails を 3.0.0.rc1 にアップデートすると、きっとテストがこけまくるようになるはず。そんな時は spec_helper.rb に次の設定を足してあげてください。 config.infer_spec_type_from_file_location! これまでの rspec-rails は、例えば spec/controlle…

ginza.rb 第11回の募集を開始しました

Ginza.rb 第11回 君ならどう書く? 機能を作って、コードレビューをしてみよう! 今回は、あらかじめ決められたお題に対して事前にプルリクエストを投げてもらい、ミートアップ中にコードレビューするという形式です。 お題は、僕が主催しているデザインビギ…

パーフェクト Ruby on Rails という本を書きました

ここのところブログの更新頻度が下がっていたのはそういうことです。 @sugamasao、@udzura、@joker1007と共同で書きました。 パーフェクト Ruby on Railsposted with amazlet at 14.05.02すが まさお 前島 真一 近藤 宇智朗 橋立 友宏 技術評論社 売り上げラ…

Travis CI から heroku にデプロイするのってセキュリティ的に問題ないのか調べた

ci

Travis CI べんりですね。「テストが通ったらherokuにデプロイする」ということもできるようなのでやってみました。すでに Travis CI の基本の設定は済んでいる前提です。 gem i travis # travis gem を入れていなかったら cd YOUR_APP_PATH travis setup he…

Rails 4.1.0 で新しく導入された便利メソッド

Rails(ActiveSupport) は標準クラスを拡張した便利メソッド群を提供してくれています。時々これは使わないなー…という微妙なやつもありますが、僕はけっこう好きです。 Rails 4.1.0 で新しく入ったそんなメソッドをまとめます。 Numeric#in_milliseconds 数…

TokyuRuby会議07で流しについてLTをした

今日行われたTokyuRuby会議で、フリーランスなエンジニア(流し)がどのように仕事をしているのか、需要あるかなあと思ったので話してみました。しかし話した感触的にそれほど興味のある人は多くなかったような。単価とか契約とかもっと深い話をしたらよかった…

Rails4 技術者認定シルバー試験

合格してました

デザインビギナーズミートアップ第6回を開催した

あまりちゃんと告知していなかったのですが、Hack Design 読書会はデザインビギナーズと名前を変え、勉強の内容も、なるべく手を動かして勉強する形にシフトしています。 そんなデザインビギナーズも前回で第6回を迎えました。Hack Design 読書会は10回まで…

tachikoma を使って毎日自動で bundle update

sanemat さんが作っている tachikoma という gem があります。tachikoma の機能は簡単に言うと「github の指定のプロジェクトで bundle update して、差分を pull request してくれる rake タスク」です。cron や jenkins などで定期的に実行するようにする…

rake_shared_context を 0.1.0 にバージョンアップした

rake_shared_context という、rake タスクをテストする際にべんりな shared context を gem にしたものがあります。これをバージョンアップしました。 バージョンアップしたときに RubyGems.org を確認したら、地味に 2000 ダウンロードされていて驚きました…

最近の Hack Design 読書会

Hack Design 読書会をやりたい というエントリを書いてから約五ヶ月が過ぎ…、Hack Design 読書会は先日8月8日に第8回目を迎えました!小規模な勉強会ですが、粛々と継続しております。 デザインを勉強したいと思っている方の数はそれなりに多いのではないか…

devise のコントローラを継承して authenticate_user! するときの注意事項

下記のようなコード。hoge アクションには authenticate_user! が効きません。 class RegistrationsController < Devise::RegistrationsController before_filter :authenticate_user!, only: :hoge def hoge; end end なぜか。authenticate_user! に該当す…

ginza.rb 第1回を開催して strong_parameters のソースコードを読んだ

7月16日(火)に ginza.rb 第1回を開催しました。 Ginza.rb 第1回 strong parameters - Ginza.rb | Doorkeeper やったこと 今回からコードリーディング開始です。最初のお題は、Rails 4 から追加された strong_parameters。Rails 4 のコアに組み込まれています…

gimei を 0.1.0 にバージョンアップした

gimei をバージョンアップして、0.1.0 にしました。2celebさんから pull request を投げてもらい、それに合わせて API を整備。主な変更点は下記のようになります。 サンプルデータを拡充(約14000行のYAMLに!) 男女を指定して名前を返すAPIを追加 コード例 …

ランダムで日本人の名前を返す gem を作った

gimei という、ランダムで日本人の名前を返す gem を作りました。 似たようなライブラリに faker があります。faker は人の名前だけではなく、住所やメールアドレスやユーザ名や電話番号など、たくさんのジャンルのダミーデータを返してくれるすごい gem で…

ginza.rb 第0回を開催して Rails 4.0 のリリースノートを読んだ

先月にginza.rb 第0回を開催しました。ちょっと遅れましたがやった内容などを書きます。 やったこと Ruby on Rails 4.0 Release Notesを頭から一通りざっくり読んで、Rails 4.0 の新機能と変更点を勉強しました。 まず、4.0 での大きな追加項目なはずの Stro…

Tokyo Rubyist Meetup に参加した

Tokyo Rubyist Meetup (trbmeetup) seeks to help bridge the Japan and international ruby and ruby on rails community. ということで、海外の技術者とミートアップできるコミュニティ Tokyo Rubyist Meetup に初参加しました! 今回のミートアップでは、…

capybara 2.1 を学ぶ

Introducing Capybara 2.1 — Elabs を読んでのメモです。 capybara 2.1 を 2.0 と同じ挙動にする capybara 2.1 を 2.0 と同じ挙動にするには下記のように設定する Capybara.configure do |config| config.match = :one config.exact_options = true config.i…

devise でログインログアウトのパスを変更したいときの注意点

例えば User モデルで devise を設定したとき、ログイン用のパスは /users/sign_in、ログアウトは /users/sign_out になります。個人的には /login /logout の方が好みなのでroutes.rb を下記のようにしました。 devise_for :users, skip: [:sessions] devis…

TokyuRuby会議06 で english.rb について LT した

今日行われた TokyuRuby会議06 に参加して、english.rb について LT させていただきました! スライドは以下。 今回は english.rb の宣伝ということで、英語でLTをしてみました。とくに英語のLTを求められていない中でそれをするのは少し抵抗がありましたが…

復習用メモサービス revenger をリリースしました

revengerという、復習を効果的にするためのwebサービスを作りました。 僕はよく自分のための学習メモをブログや evernote に書くのですが、書いてから見返すことがほとんどありません。結果、後になって「あれ?こんなの書いてたっけ?」となることが多いで…

Capybara の README 訳を更新した

ちょうど 2 年ほど前にCapybara の README を訳しました。しかし 2 年の間に Capybara も 1.x 系から 2.1 になり、訳の内容が古くなっています。現在の仕様とは矛盾する部分も出ており、今読んだ人は混乱してしまうかもしれません。 ということで最新の内容…

english.rb を作った

というわけで、english.rb という facebook グループを作りました。RubyKaigi に参加して「英語の勉強やらなきゃなー」と思った方は是非ご参加下さい。

nginx で solr のアクセスを制限する

solr(tomcat) のアクセス制限のメモです。 前提 nginx, solr(tomcat), rails アプリが全部同一のサーバに混在してる やりたいこと solr の admin ページにベーシック認証をかけたい solr の検索関連のクエリは rails アプリからのみに制限したい(IP 制限をか…

ginza.rb を始めます

新しい地域Rubyコミュニティ、ginza.rb を始めます。 第0回目のミートアップを 6/18(火) にやりますので、気になった方はぜひ申し込みください! Ginza.rb 第0回 - Ginza.rb 第0回では Rails 4 での新機能をチェックします、次回からは Rails 4 のソースコー…

rubykaigi & rubyhiroba に参加した

RubyKaigi 2013 と RubyHiroba 2013 に参加しました。以下感想をつれづれに。 RubyKaigi RubyKaigi に参加するたびに、もっと勉強しないといけない!という気持ちになります。 英語 まず英語。僕と同じように、英語勉強しなければ…と思ったRubyistも多いので…

rubyhiroba で minitest について LT した

今日行われた RubyHiroba 2013 に参加して、minitest vs rspec というタイトルで LT させていただきました! 半年ほど minitest & rails 3.2 で web アプリ開発をして感じたことを簡単にまとめたものになります。素人の方が Rails & minitest に手を出すのは…

Cells で params や cookies を扱うテストを書く

それなりに大きめなRailsアプリを書くとき、Cells を使うと部分テンプレート単位で controller のようなものを作ることができて、controller の肥大化を防ぐことができます。たいへん便利です。 Cells に対してのテストも普通に書けますが、params や cookie…

p4d 温泉ハッカソンを開催した

@satococoa さんが「p4d で温泉ハッカソンやりたいけどだれか主催しませんか」と言っていたので手を上げて主催してきました。ちょうど、そろそろまた合宿やりたいと思っていた時期だったので渡りに船。 合宿場所は去年の別の合宿でも使ったはじめのいっぽ。…

さくらVPSのサーバで https のリポジトリを git clone する

これまで、さくらVPSのサーバ(CentOS 6.3) で、なぜか https のリポジトリから git clone ができませんでした。他のプロトコルを使えば問題なく clone できるのですが、なんとなく気持ち悪い。今日ようやく解決法が分かったのでエントリとして残しておきます…

rack-ssl で http と https を混在させようとして諦めた

表題の通りのメモ。rails で一部のパスだけ http 、他は https にしたいなーと思ってざっくり調べたのでした。 調べたこと Rails 3 では config.force_ssl = true としたら rack-ssl が使われる Rails 4 では ActionDispatch::SSL が使われる ソース見た感じ…

coffee script 1.4 では動くけど 1.5 では動かないコードについて

coffee script のバージョンを上げたらテストがこけるようになりました。問題となったのは下記のようなコード。これは 1.4 では動きますが 1.5 だとコンパイルエラーになります。 func 'arg' hoge: 'fuga' 関数に渡す引数が複数で、かつ改行後にオブジェクト…

Devise でメールアドレス変更時にも確認メールを出す

有名なRails用認証プラグインである devise は、機能毎にモジュール化されており必要な物だけを選んで使うことができます。例えば Confirmable というモジュールを使うと会員登録時に確認メールを飛ばすことができます。ただ、デフォルトではメールアドレス…

ransack という検索用の gem について

ransack はちょう便利な検索用 gem です。パラメータの name 属性で検索条件を定義できるので、多数の検索項目があってスクラッチで検索ロジックをつくるのがしんどいギョームwebアプリなどで絶大な威力を発揮します。 ただ一つの問題はドキュメントがとても…

第0回 Hack Design 読書会 を開催した

水曜日に 第0回 Hack Design 読書会 を開催しました。 第0回 Hack Design 読書会 - connpass なんで第0回なの? connpass の方にも書いてますが、Hack Design は 分量が多い! 内容が本格的(なので難しい)! 英語! なので、進め方をきちんと考えた上でやら…

rake_shared_context を 0.0.2 にバージョンアップ

以前作った Rspec で rake タスクをテストする用の gem に初の pull request が来たので取り込んで 0.0.2 にバージョンアップしました。 これまで(0.0.1)は、テスト対象の rake ファイルのみを読み込む仕様にしていたため、テスト対象外のファイルに定義され…

Rails 4.0 と bundler install --binstubs について

Rails 4.0.beta1 でアプリ作ってみようとして、途中で bundle install --binstubs としたら、なぜか rails generate などのコマンドが効かなくなってしまいました。、これは、Rails 4.0 が生成する bin/rails を bundler がオーバライドしてしまったことが原…

rinari を起動させないメジャーモードを設定する

最近の rinari では rinari の起動条件が変わったらしく、magit のコミットログを書いているときにも rinari-mode が効いていて、キーバインドをそちらに取られてコミットできず、いちいち手動で rinari をオフにしないといけなくて大変辛い思いをしていまし…