サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
買ってよかったもの
www.ohmyenter.com
みなさん、Googleアラート使ってますか? あらかじめ検索ワードを設定しておけば、新しくGoolge検索にひっかかるようになったページをお知らせしてくれる機能。すごく便利なんだけど、あまり活用している人を見かけない。こういった状況を良しと思わないGoogleアラーターの私は、この際正しい使い方を伝授して差し上げようと思ふ。 その前に、簡単に使い方を Googleにログインして、Googleアラートのページに飛び立とう。以下のような検索ボックスがあるページだ。 あとはここにキーワードを入力するだけ。ORとか+-“”なんかも使用できる点は、通常のGoogle検索と同じ。例えば以下のように入力しておけば、ツチノコの最新情報が(あれば)毎日お届けされるわけだ。オススメは『件数』を『すべての結果』にしておくこと。結果が多すぎて困ることはないだろう。 使い方はこれだけ。さっそくGoogleアラートの
📄customers_spec.rb fill_in 'Name', with: '山田 太郎' 第1引数に指定できるのは、ラベル文字列かDOMのidだけです。通常の単票フォームでは困ることはないのですが、複数モデルを一括入力をするようなフォームの場合はその限りではありません。なぜなら、ラベル文字列はユニークにできないし、idもcustomer_19887632_nameのようにオブジェクトのidが間に入ってしまうからです。 そんなときは、findメソッドであいまい検索をすればよいです。 📄capybara-spec #完全に等しい find("img[src='https://www.example.com/image']") #含む find("img[src*='https://www.example.com/image']") #前方一致 find("img[src^='htt
ネイティブスピーカーによる英語学習用Youtube動画を紹介します。単発モノではなく、なるべく体系的に学習できるものをチョイスしました。すべて字幕付きなのでリスニングの学習にはピッタリだと思います。チャンネル登録必至です! English Conversation – Learn English Speaking どうみても市販のDVDをリッピングしてアップロードしているようですが、そこは気にしない。英語学習に大切なのは細かい間違いを気にしないことです。市販のDVDだけあって、内容は充実しています。文法も優しく教えてくれますし、何よりゆっくりはっきりと発音してくれるので、初心者でも理解できる内容となっています。圧巻のボリューム24動画。オススメです。 Bizmates初級ビジネス英会話 バイリンガルのIto Hikaさんによるビジネス英会話レッスン動画です。ビジネスというよりは、オフィスで
ActiveRecord::Baseを継承しているモデルのコレクションに対してメソッドを追加したいことがたまにあると思います。例えば次のような画面で 今表示しているsalesの平均価格を表示したいというような場合です。viewには次ような感じで書きたいんじゃないでしょうか。 📄app/views/sales/index.html.erb ... Average of prices: <%= @sales.average_price %> ... Railsではこんなことも簡単に実現できます。モデルにメソッドを追加すれば良いだけ。 📄app/models/sale.rb class Sale < ActiveRecord::Base def self.average_price all.average(:price) end end (rails4で動作確認しています。rails3のal
bootstrapにはもう飽きた方、もっとシンプルなデザインのCSSフレームワーク無いの?という方、一度Foundationをお試し下さい。 Foundation bootstrapと同様に、レスポンシブなWebサイトの構築を助けてくれるCSSフレームワークです。デザイン的にはかなりシンプルなので、自分色に染めてあげるのも良しだと思います。そんなわけで、Foundation 5とsimple_formを使ったRailsアプリ開発のチュートリアルをやってみたいと思います。 環境 Mac OS X 10.8 ruby 2.1.0 Ruby on Rails 4.1.2 foundation-rails 5.3.0.1 simple_form 3.0.2 セットアップ まずはお約束のGemfileから。以下の4行をGemfileに追記してください。’foundation-icons-sass-r
Twitter Bootstrap 3がリリースされてから結構日が経ちますが、twitter-bootstrap-railsはブランチ版で、simple_formはRC版でそれぞれ対応できているようです。導入するにあたって、ちょっとハマる箇所もあったので、簡単にチュートリアルにまとめておきたいと思います。 環境 Mac OS X 10.8 Ruby 2.1 Ruby on Rails 4.1 twitter-bootstrap-rails 3.1.1 (2014/6/21時点ではbranch) simple_form 3.1.0.rc セットアップ Gemfileに必要なgemを記述します。ポイントはtwitter-bootstrap-railsとsimple_formです。各々最新安定版ではまだ対応していないので(2014/6/21現在)、以下のようにバージョン指定が必要です。 📄Ge
オブジェクト指向言語が普及してかなりの年月が経ちますが、いまだにオブジェクト指向って何が良いのかよく分かんない・・・という方をたまに見かけます。彼らなりにネット等の情報を漁っているようですが、どれもイマイチ腑に落ちない様子。 「やれカプセル化とかポリモフィズムとか、もう意味不明。結局何かメリット有るの?」 彼らのPCからVisual Basic 6をアンインストールするためにも、今回は「これ1つだけ覚えといて」っていうオブジェクト指向のメリットを紹介してみようと思います。 そのメリットというのは・・・ 呼び出し元を共通化できるのがオブジェクト指向 ということです、はい。これだけ覚えといて下さい。 しかし、あなたが手続き型言語の猛者ならば、きっとこう叫ぶに違いありません。 「おみゃあ、何言っとんじゃあ? 呼び出し先の間違いじゃろうがあ!」 「他所様から呼び出される関数を共通関数にまとめる。こ
普段はRailsばかり使っているんですが、ちょっとPHPも思い出してみようということで、話題(?)のフレームワーク『Laravel』に手を伸ばしてみました。また、最近PHPをベータサポートしたということなので、herokuにデプロイしてみることにします。 環境 Mac OS X 10.8 PHP 5.5 composer 1.0.0-alpha8 Laravelアプリの作成 composerがインストールされていることが前提です。まだインストールしていない方は公式ページを参考にしてみてください。コマンド1行で済みます。 https://getcomposer.org/doc/00-intro.md#installation-nix composerコマンドでプロジェクトを作成します。 📄.gitignore $ composer create-project laravel/larave
TwitterやFacebookに関するOmniAuthの記事はよくみかけるのですが、Googleについてはあまりないようなので、記事にしておきます。恒例の(?)チュートリアル形式でご紹介します。 環境 Rails 4.1.1 devise 3.2.4 omniauth 1.2.1 omniauth-google-oauth2 0.2.4 セットアップ まずは必要なgemをインストールします。 📄Gemfile gem 'devise' gem 'omniauth' gem 'omniauth-google-oauth2' 📄db/migrate/add_omniauth_to_users.rb $ bundle install $ rails g devise:install $ rails g devise user $ rails g migration add_omniauth
インターネット上には、有用な英語学習素材がわんさか転がってます。その中でも、特に優れたサイトをいくつかご紹介したいと思います。 memrise 単語暗記サービスです。フラッシュカード方式で、単語の意味や定義を回答していきます。ゲーム感覚で楽しめます。面白いのは、回答を間違えたり、長い間回答していない単語には「水やり(Water)」をしてあげないとダメということ。覚えたその日はしっかり記憶したつもりでも、翌日になるとすっかり忘れちゃってる・・ってことよくありますもんね。 ちなみに、水やりしないと「早くBUKKAKEてあげて」みたいなメールが飛んできます。 こちらが回答中の画面。もちろん、発音も聞けます。 英英になってますが、英和のコースもあります。英和コースを探す場合は、『学びたい言語』と『あなたの言語』を選択することができるので、あなたの言語を『日本語』にしてコースを検索するとよいです。
Webアプリケーションにとって、検索画面は無くてはならないものだと思います。典型的な検索画面といえば、ヘッダー部分に検索条件を入力するフィールドがあり、その下に結果一覧が表示されるもの。 さらに顧客の要望としてよく挙がるのが、「検索結果をExcelで見たい」というもの。みんなExcel好きですよねー(私も大好きですが)。 というわけで、CSV出力機能付きの検索画面を(なるべく手抜きで)実装してみよう思います。 筆者の環境 Rails 4.0.3 (別に4じゃなくても動くと思います) Scaffold まずはCustomerモデルを作成しましょう。サンプルアプリなので、scaffoldで済ましてしまいます。 📄Gemfile $ rails g scaffold Customer name:string birthday:date sex:string address:string $ r
前回は作成したExcelがダウンロードできるところまで実装しました。今回はそのExcelの内容を動的に変更して出力します。 Viewの編集 とりあえず、ダウンロードしたExcelを見てみましょう。(ダウンロード ※拡張子はxmlに変更してください) 各値はこのExcelを作ったとき入力した固定値のままです。というわけで、これらの値を動的な値にしていきましょう。 行(日付)を動的に まずは、日付を動的に出力することにしましょう。app/views/report/output.xls.erb を開きます。そして以下のような箇所を探し出しましょう。 📄output.xls.erb ... <Row ss:Index="3" ss:AutoFitHeight="0" ss:StyleID="s65"> <Cell ss:Index="2" ss:StyleID="s66"><PhoneticTe
業務アプリケーションであれば、必ずと言っていいほど、レポート出力機能を作成する必要があるでしょう。PDF出力でよいのならThinReportsがオススメですが、Excelで出力したいことも度々ありますよね。今回はその方法をチュートリアル的にご紹介します。 環境 Rails 4.0.2 Excel 2007 Mac OS X 10.8 出力するレポート 完成イメージです。日別・商品別の売上をクロス集計したレポートです。これをRailsから出力します。 サンプルアプリのER図 Product(商品)モデルとSale(売上)モデルの2つだけです。Product has_many Sales の関係になっています。 まずはExcelで完成イメージを作る Excelを起動して、普通に完成イメージを作成します。本サンプルの完成イメージは以下のように作成してみました。 その他にも・・・ ページフッターに
rails_sortableというgemを作成しました。並び順をもつマスタってよく使うと思いますが、当gemはドラッグ&ドロップによる並び替えを実現するためのプラグインです。ビデオを見ていただくと、イメージが湧くかと思います。 粗い仕様なのでイマイチいけてないですが、一般的な用途には使えるかと思い公開しました。 itmamoth/rails_sortable @ github rails_sortable @ rubygems 導入方法は、githubのREADME読んで下さい。ツッコミ、フォーク、大歓迎です。
Railsを使い始めてX年経ったこともあり、自分なりの開発パターンが形成されていることに気づきました。今日はそれを恥ずかしげもなく晒してみようかと思います。 Gemfile 自分の中で必須のgemたちです。その他はプロジェクトに合わせ適宜追加する感じです。 📄Gemfile source 'https://rubygems.org' ruby "2.0.0" gem 'rails', '~> 4.0' gem 'sqlite3' gem 'sass-rails' gem 'uglifier' gem 'coffee-rails' gem 'jquery-rails' gem 'turbolinks' gem 'jbuilder' gem 'draper' gem 'ransack' group :development do gem 'rack-mini-profiler' end gr
少し前の記事ですが、Ruby on Railsの生みの親Davidが最近のTDDについて苦言を呈しています。賛否両論あると思いますが、大変参考になるポストなので、勝手に和訳してみました。(誤訳等ありましたら、ツッコミ願います) (原文はコチラ) TSAロックのようにテストする 最初、開発者はテスト駆動開発に驚きを感じ、ストレスや不安の少ない素晴らしい世界の入り口に立ったかのような気になるんだ。確かにそれは素晴らしい経験で祝福すべきことだ。しかし、テストによる恩恵を自分のものにすることは、悟りの第一段階にすぎない。何をテストすべきでないかを知ることはさらに難しいことなんだ。 初日から何をテストすべきでないかなんて気にしなくていい。2日目から始めればいい。人間とは習性をもつ生き物で、『テストのしすぎ』という悪い習性を早くから身につけてしまうと、後から振り落とすことは難しい。だから、早めに振り落
タイ王国バンコクに住んで早1年。異国だけあって、カルチャーショックを受けることもしばしばですが、中には日本では考えられないヘンな常識もあります。今日はそんなヘンな常識をサラッとご紹介したいと思います。 寿司の屋台がある 南国の炎天下で屋台で寿司・・・明らかにヤバそうなんですが。「大丈夫大丈夫!」と言って食べていたタイ人は、翌日食中毒で苦しんでいました。 近くで工事が始まると、必ず停電する ええ。もう、必ずと言っていいでしょう。ちなみに今日は9回停電しましたが、タイでは「9」は縁起のよい数字なので良しとしましょう! 悩むぐらいレベルの高いニューハーフがゴロゴロ居る 同性婚に1票入れたくなるぐらいのニューハーフがゴロゴロしてます。上の写真ももちろんニューハーフ。 まだ容疑者の段階で、テレビでガンガン公開される まだ容疑が固まっていないのに、テレビで公開されます。証拠品・盗品を並べた机に容疑者を
ネイティブ・スピーカーの先生に英語を教わっています。授業中に「同僚」という意味の coworker という単語が出てきました。そこで先生に教わったのですが、この co という接頭辞(prefix)には、「2つ以上の対象が一緒に」という意味があるらしいです。なるほど、 worker が2人以上一緒に・・・ゆえに「同僚」 となるわけですか。。納得です。 他にも色々な接頭辞があるらしいのですが、基本的なものを覚えておけば単語を記憶したり、意味を思い出したりするのに役立つとのことなので、ちょっと自分でググってみました。そこで見つけたのが次のレッスンビデオです。 数ある接頭辞の中から、基本的なもの(ad-, syn-, sub-, ob-, in-, and com-.)を軽快に説明してくれています。比較的にゆっくり話してくれますし、英語の字幕も表示できます。 上図の通り、『CC』というボタンを押せ
Webアプリケーションには検索機能がつきものだと思いますが、場合によっては作るのがちょっと面倒なときがあります。例えば、1対多の親子関係を持つモデルで、子供のレコードを検索する場合に、親を特定した上で検索を行う場合などです。ちょっと具体例で考えてみましょう。 Customer(顧客)とSale(売上)の2つのモデルがあるとします。2つのモデルは1対多の関連があり、Customerが複数のSaleを所有しています。この状況下におけるのSaleの検索画面を考えてみます。 検索条件として、『Customer(顧客)』『Buy on(購入日)』『Product(商品名)』の3つを用意してみました。ここで注目してほしいのはCustomerです。SaleはCustomerに紐付いているので、例えば「Johnnyさんの売上一覧が見たい」という場合には、Customerセレクトボックスから”Johnny”
前回はsimple_formを使ったカスタムインプットの作成方法を紹介しました。今回はそのカスタム・インプットとbootstrapの『Typeahead』を組み合わせた便利なインプットを作成したいと思います。 Typeaheadとは Typeaheadとは、Twitter Bootstrapが提供するJavascriptのひとつで、オートコンプリート付きのテキストフィールドを簡単に作成することができるjQueryプラグインです。 個人的には、BootstrapのJavascriptの中で、一番使える機能だと思っています。bootstrap-rails.gemを導入していれば、この便利な機能があなたのRailsアプリですぐに使用できます。さっそく使ってみましょう。 どこに適用するかというと・・・Bookを登録する際に『Author』という項目を入力しますね。 同一の著者が複数の本を執筆するの
前回に引き続き、Railsアプリにて simple_formと twitter bootstrapを使用する際のtipsをご紹介したいと思います。まずは前回作成した画面を見てましょう。 前回はTitleに必須バリデーションを付加しました。今回はReview項目を編集してみたいと思います。 このReviewという項目には、本の評価を1〜5の数字で入力してもらうと仮定しましょう。さっそく、models/book.rbにバリデーションを記述します。 📄app/models/book.rb class Book < ActiveRecord::Base validates :title, presence: true validates :review, numericality: { only_integer: true, greater_than_or_equal_to: 1, less_t
エンジニアであれば、みな自分流の開発流儀をお持ちだと思います。PHPでWebアプリを開発する際はこのフレームワークを使うだとか、Railsアプリの場合はこのgemを使用するだとか・・・。私がRailsアプリを作成する際の鉄板といえば、simple_form+twiter bootstrapを使用することです。simple_formは、入力フォームを簡単に作成するお手伝いをしてくれるView用のgem、twitter bootstrapは(説明するまでもないかもしれませんが)Twitterが公開しているcssフレームワークです。デザインが苦手なエンジニアにでも、それなりに見栄えの良い画面が簡単に作れるので、非常に重宝しています。 simple_form: https://github.com/plataformatec/simple_form twitter bootstrap: http:
Ruby on Railsにてモデルの機能を拡張する方法は、モジュールをインクルードするのが一般的です。インクルードするモジュールがActiveRecordに依存しない内容であれば、単体テストを書くことは難しくありません。しかし、ActiveRecordに依存している場合はちょっと面倒です。なぜなら、インクルードする側のモデルに対応するテーブルが必要になるからです。今回は、そんな血ヘドを吐くような困難に打ち勝つ方法をご紹介します。 環境 Ruby on Rails 4.0.0 rspec-rails 2.14.0 サンプルモデル・モジュール まずは、インクルードする側のArticleモデルです。 📄db/migrate/001_create_articles.rb class CreateArticles < ActiveRecord::Migration def change crea
メカニカルキーボードのNuphy Air75 V2の俺々レビューです。いつも通り良かった点とイマイチだった点をつらつら~っと書いていこうと思います。内容的にはプログラマー目線です。 ...続きを読む
前回はView周りのパフォーマンス・チューニングを実施しました。今回はクライアント側、すなわちJavascriptのチューニングを『浅〜く』実施して本トピックを終了したいと思います。 パフォーマンス・チューニング3:Javascript チューニングを始める前に、rack-mini-profilerで現在のパフォーマンスを確認しておきましょう。 『161.6 ms』と十分なスピードを叩き出していますね。しかし、実はこれはサーバサイド側の処理時間なのです。クライアント側の処理時間は詳細ウインドウの下段に表示されています。 つまり、173msにレスポンスを受け取り → 247msからブラウザで描画を開始し → 418msにDOM構築が完了(DOMContentLoadedイベント発火)、 103ms費やしてJavascriptを処理した・・・ということになります。 チューニングの対象となるのは
前回は『N+1件』問題を解決して、パフォーマンスを改善することができました。今回はページ表示部分(View)に関する処理を変更することでパフォーマンスを改善したいと思います。 まずは、前回終了時点のパフォーマンスを確認しておきましょう。 だいたい1秒弱かかっているようですね。そういえば前回、クライアントマシンのスペックを記載するのを忘れていました・・・筆者は Mac Book Air 2012 mid (デュアルコア2.0GHz Intel Core i7)/メモリ8G を使用しています。 それでは、チューニングを初めましょう! パフォーマンス・チューニング2:Viewヘルパー さらなるパフォーマンスの改善を行うためには、どの処理に負荷がかかっているのかを知ることが不可欠です。rack-mini-profilerの表示を確認し、当たりをつけましょう。『959.0ms』という部分をクリックし
Rails製アプリは、1画面に結構な量の情報を表示しようものなら、すぐにパフォーマンスが悪くなってしまいます。基本を押さえておけばこういったことに陥らないのですが、Railsがあまりにもサクサク開発できちゃうもんですから、ついつい調子に乗って基本を忘れてしまいがち。自分を戒めるためにも、パフォーマンス・チューニングの基本をまとめておくことにします。 環境 Rails 3.2.14 Ruby 2.0 sqlite3(データベース) WEBrick(httpサーバ) Mac Book Air 2012 Mid (デュアルコア2.0GHz Intel Core i7) チューニングするデモアプリ いまいち冴えないビジュアルのこのデモアプリ『Bookshelf(本棚)』を使用します。テーブルの1セル(td)に1冊の本が納められているつもりです。 Bookshelf仕様 著者(Author)はN件の
このページを最初にブックマークしてみませんか?
『Oh My Enter!』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く