The RSpec Book を読んで、知らなかった部分のメモが主。 describe / context describe は example group をつくる。example group は 1 つのクラス (RSpec::ExampleGroup::…) として表される。ネストした describe は、外側の example group のサブクラスになる。 describe "root" do it "print ancestors" do p self.class.ancestors # => [RSpec::Core::ExampleGroup::Nested_1] end describe "nested" do it "print ancestors" do p self.class.ancestors # => [RSpec::Core::ExampleGroup:
会員登録時やパスワードリマインダーなどで発生するメール送信のテストはどうやってするのか調べたところ、email-specというgemが目的にぴったりっぽかった。 その名の通りRSpecとあとはMiniTestとCucumberに対応している。 email-specをRSpecに導入するメモ。 ※最後に重要なお知らせがあるので必ず確認してください。 準備 Gemfile group :development, :test do ~snip~ gem "email_spec", "~> 1.4.0" ~snip~ end spec_helper.rb require 'email_spec' ~snip~ RSpec.configure do |config| config.include EmailSpec::Helpers config.include EmailSpec::Matcher
ActionMailerによるEメールの送信をRSpecでテストするには、例えばActionMailer::Base.deliveries.size.should == 1のように、送信済みのメールのサイズが1になるかどうかで判定します。 テストの対象として、ここでは「ユーザー登録が完了したら、当該のユーザーにメールを送信する」という場合を例に取ります。さまざまなテスト方法がありそうですが、ここではActionMailer::Base.deliveriesの配列の要素数が1と等しくなるかどうか? ということを以てテストを実施します。コードは以下のようになります。require 'spec_helper' describe User do before(:each) do @attr = { :username => "Foo", :email => "foo@foo.com", :pass
ActionMailer module has been reconstructed in Rails 3 and mailers have their own subdirectory (app/mailers) since then. This blog post will demostrate how to test them in Rails using RSpec. Assuming that we have a mailer like the following: class Notifier < ActionMailer::Base default from: 'noreply@company.com' def instructions(user) @name = user.name @confirmation_url = confirmation_url(user) mai
(Rails3.2.11) http://railscasts.com/episodes/275-how-i-test?language=ja&view=asciicast 動作確認用プロジェクト作成 $ rails new test_email_in_rspec -T --skip-bundle $ cd test_email_in_rspec Gemfile group :test, :development do gem 'rspec-rails' end rspec:install $ rails g rspec:install 動作確認用スキャフォールド・メーラー作成 $ rails g scaffold User name email $ rails g mailer user_mailer notice config/environments/development.rb い
By: Wonderlane – CC BY 2.0[/caption] Rails4からJSONも標準でjbuilderを使ってテンプレートから出力できるようになった けど、しっくり来ないので簡単に比べてみた 以下の例はすべて次のようなJSONを返すテンプレート [{"title":"hello","price":100,"url":"http://192.168.1.19:3000/books/1.json"},{"title":"hello2","price":200,"url":"http://192.168.1.19:3000/books/2.json"}] [{"title":"hello","price":100,"url":"http://192.168.1.19:3000/books/1.json"},{"title":"hello2","price":200,"url"
今回は、AndroidのアプリだけでなくアプリのデータをRoot化せずにまるごと保存・復元できる必須アプリ「Helium」の使い方を紹介します。 Heliumの特徴 Heliumは、カスタムリカバリのClockworkModの開発者が作成したアプリです。 Heliumの特徴は、主に2点あります。 1点目は、自分のAndroid端末にインストールしているアプリだけでなく、ゲームのセーブデータやブラウザの設定といったアプリの設定自体もバックアップできる点です。 2点目は、アプリのデータをRoot化しなくてもバックアップできる点です。 アプリのデータごとバックアップできるアプリとしてはTitanium Backupが有名ですが、Titanium BackupはAndroid端末をRoot化する必要があります。 AndroidをRoot化したくない時や、そもそも使っているAndroid端末がRoo
『VisualPing』はウェブサイトをモニタリングして、ページのコンテンツが更新された場合にメールでお知らせしてくれる新しいウェブアプリです。 ウェブベースの他の更新監視ツールと違い、『Visual Ping』は簡単に設定可能で、しかも完全に無料で使えます。ウェブページのモニタリングを開始するには下の画像に書いてある3つの手順を踏むだけでオッケー。 まず最初にモニタリングしたいウェブページのアドレスを入力します。『Visual Ping』はそのページのスクリーンショットを作成するので、次にマウスを使ってそのページの一部を選択し、最後にメールアドレスを登録します。 『Visual Ping』はページ上の選択したエリアを1時間ごとにチェックし、変更があった場合、選択した部分の変更前と変更後のスクリーンショットを送信してくれます。 サイトの更新を「ビジュアル的に」監視して、見た目が変わったらお
「導入には難しさがあったものの、それを上回る大きなメリットを得られた」―。不動産情報サービスのアットホームにおいて、CI(Continuous Integration:継続的インテグレーション)導入を指揮した高野孝之氏(情報システム部 チーフアーキテクト)は、こう振り返る。 CIとは、アプリケーション開発においてソフトウエアを日常的に結合(ビルド)すること。開発支援ツールを使って、コンパイルやテスト、統合テスト環境へのデプロイ(配信)作業を自動化できる。高野氏らは米Microsoftの「Team Foundation Server(TFS)」を使って、このCI環境を構築した。 CIで得られる具体的なメリットは、大きく二つある。一つはソフトウエアのバグ問題を早期に発見できることだ。「全部のソフトウエアがそろってからまとめてビルドする従来のやり方は、内在していた大量のバグが一斉に見つかる問題が
Hot Code Reload Edit, save, and refresh. Revel compiles your code and templates for you, so you don't miss a beat. Code doesn't compile? It gives you a helpful description. Run-time code panic? Revel has you covered. Flow Control Revel is built around composable middleware called filters, which implement nearly all request-processing functionality. Developers have the freedom to replace the defaul
Ocrad - The GNU OCR [ English | Español ] Introduction GNU Ocrad is an OCR (Optical Character Recognition) program and library based on a feature extraction method. It reads images in png or pnm formats and produces text in byte (8-bit) or UTF-8 formats. The formats pbm (bitmap), pgm (greyscale), and ppm (color) are collectively known as pnm. Ocrad includes a layout analyser able to separate the c
こんにちは、tomita です。 さて、免許証の写真から住所や名前などのテキストを抽出できるスマホアプリがあるそうです。 OCRの技術を使ったものだと思うのですが、ちょっと調べたところ、tesseract-ocr というオープンソースの OCR エンジンがあったので、少し触ってみました。 環境は CentOS 6.3 です。 前準備 以下のライブラリを yum install しておきます。 yum install autoconf automake libtool yum install libpng-devel libjpeg-devel libtiff-devel zlib-devel Leptonica という画像解析ライブラリも必要なので、ソースインストールしておきます。 cd /usr/local/src/ wget http://leptonica.googlecode.co
2. 背景 お客様からたまに、携帯カメラで文字認識したいという相 談をうける。 AR的に認識した文字に合わせた動画や3次元モデルを 表示するなどをしたい。 特定物体認識では賞品のパッケージは認識できても、 個別の製品番号まで認識できない。 製品番号まで認識出来れば、より強力なマーケティングツー ルになる というわけで、何か使えるものがないか調べてた Tesseract OCR 4. Tesseract OCRとは? オープンソースのOCR(光学文字認識)エンジン 認識可能な言語 日本語含む、30ヶ国語以上 歴史 1984年-1994年 Hewlett Packard にて研究・開発 1995年 UNLV Accuracy Testでトップ3に入る 2005年 オープンソース化 現在のスポンサーはGoogle Google Booksで使う
スルガ銀行が日本IBMに対し,開発を委託した情報システムが完成しなかったとして損害賠償を求めた事件の控訴審判決。 事案の概要 前提となる事実は,ほぼ原審どおりなので,そちらを引用するとして,おおざっぱにまとめると次のとおりである。 スルガとIBMは,スルガの銀行業務全般を処理する「新経営システム(本件システム)」の構築に関する基本合意及び個別契約を締結して,本件システムの開発を目指したが,途中で中止となった。 本訴は,スルガが,IBMに対し,開発中止になったことについて,IBMに (1) Corebankを使用して平成20年1月までに総額約90億円で本件システムを開発させる義務違反があった, (2) プロジェクト・マネジメント義務違反があった, (3) 説明義務違反があった, (4) 個別契約はいずれも錯誤により無効であった, と主張し,請負契約の債務不履行又は不法行為に基づく損害賠償請求
入力フォームのパスワードフィールドのパスワードを一発で表示するブックマークレットを作りました。 1.概要 ログイン時の入力パスワードをブラウザなどに記憶させて使っている人は少なくないと思います。 が、別のPCでログインしたり、パスワード変更時に前のパスワードを入力しないといけないときなど、入力していたパスワードをうっかりすっかり忘れてしまうケースもあると思います。 このブックマークレットを使えば、入力しているパスワードの内容を一発で確認することができます。 注:ご利用にあたっては、パスワードを忘れたときのみブラウザのお気に入りに登録し、確認後はすぐに削除するようにしてください。 1.ブックマークレットの使い方 以下のリンクをブックマークして、パスワードを見たいページを保存してブックマークをクリックまたは選択すれば、パスワードが表示されます。 パスワード表示 パスワード入力ページを表示します
1ページに複数のセクションを水平に配置した際に、それらの区切りとなるさまざまなスタイルを紹介します。 縦長の1ページで構成されたプロモーションサイトやポートフォリオなどで見かけるものだけでなく、こんなこともできるのかとアイデアが素晴らしいものもたくさん! デモページ 各デモと共にそのスタイルを紹介します。 まずはHTMLから。基本となるのは、2パターンです。 1つ目は、section要素にclassをつけるだけ。 <section class="ss-style-hogehoge"> コンテンツ </section> 2つ目は、svg要素を使用します。 <section> コンテンツ </section> <svg id="hoge"> SVGの中身 </svg> sctionだけの場合はclass、svgを使用するものはidになっています。 以下、各デモとそのスタイルです。 HTML/C
GMap-JSlicerはJavaScript製のオープンソース・ソフトウェア(MIT License)です。 Googleマップはみんな、普段から使っているでしょう。技術的に見てもズーム、移動など便利なものが多いです。自分でもあのUIを実現したいと思っている人も多いのではないでしょうか。そんな方に使ってみて欲しいのがGMap-JSlicerです。 デモ。GoogleマップのUIに任意の画像を載せています。 移動、ズームは自由にできます。 全体像。 GMap-JSlicerでは画像をタイル状に並べる訳ではなく、一枚の画像をGoogleマップ上に貼付ける形になっています。とは言えゲームのマップのようなPNG画像で表現できるものであればそれほどサイズは大きくならないのではないでしょうか。 MOONGIFTはこう見る Googleマップの面白い点は情報源としてはもちろんのこと、埋め込み型のAPI
データジャーナリズムの専門家として知られるポール・ブラッドショーさんが、自身の「オンラインジャーナリズム・ブログ」で「データジャーナリズムの倫理学」という連続投稿をしていた。ブラッドショーさんはバーミンガム・シティ大学の准教授で、サイト「データドリブンジャーナリズム」の編集委員も務めている。 データジャーナリズムの手法についての執筆が多いブラッドショーさんだが、ここで述べているのは、「やってはいけないこと」だ。ビッグデータのバブルと同様、キモをしっかり捉えていないと、おかしな方にいってしまう。大事な指摘だ。 ▼データの精度に疑問があれば問い合わせ、場合によっては掲載を見送る Ethics in data journalism: accuracy (Online Journalism blog) 役所が出したデータだからといって、それが100%正しいとは限らない。 実際に、テキサス・トリビュ
NHKによる「刑事罰適用1年 売り上げ回復せず」というニュースが話題です。 その中で、「警察が摘発した例はまだありませんが」とある点が気になったので調べていたら、2012年に松田政行先生が書かれた「違法ダウンロードに対する刑事罰の導入に関する著作権法の視点」の存在を知りました。 この文書は、違法ダウンロード刑事罰化が施行される前に発表されたものですが、違法ダウンロードに対する罰則規定追加に対して、著作権法の視点での反対意見が述べられています。 その中で幇助者に対する刑事事案に関して、同文書5ページに以下のような記述があります。 ア 民事的請求から刑事罰への立法事実 民事的請求を許容する2009 年改正において、肯定された権利行使は、この3年間一切なかった。違法ダウンロードは無数に存在したのであるが、これを幇助する、そして権利行使可能性が肯定される事案は1件もなかったということが証明されたの
最終更新 2013/10/18 7:31 参加者エントリ64件 -- LINE株式会社の櫛井です。 オンライン予選にご参加いただいた皆さん、ありがとうございました。 こちらでは感想エントリや何をしたかに言及されたエントリをまとめていきます。見つけた順です。もしここに載っていないものがある場合は @941 まで教えていただけると助かります。 予選のTweetはこちらでまとめています #isucon オンライン予選 Tweet まとめ - Togetter 運営 ・オンライン予選 一日目の結果発表 : ISUCON公式Blog ・オンライン予選 二日目の結果 & 暫定版の本選出場チーム発表 : ISUCON公式Blog ・#isucon 2013年予選問題の解説など : ISUCON公式Blog ・ISUCON3 予選を開催しました - 酒日記 はてな支店 ・#isucon の予選問題の出題に
10/5 に ISUCON 3 の予選に Go 言語で参戦していました。 とりあえずレポートは会社のブログに書いたので、 Go 言語で go-sql-driver/mysql を使って MySQL を使う時に知っておくと良い点をまとめておきます。 ちなみに MySQL ドライバにはもうひとつ MyMySQL というものがあり、 まだ試していませんが、 MyMySQL の方が落とし穴が少なそうな気がします。 sql.Open() が返す DB オブジェクトはコネクションプールをしてくれる なので、自前で DB オブジェクトを使いまわしてコネクションプールを実装しても意味は無いです。 DB.SetMaxIdleConn() で、使い終わってもクローズしないコネクションの数を設定できます。 デフォルトだと使い終わったコネクションを閉じてしまうので、 DB オブジェクト自体をプールしても コネクシ
ISUCON3 で暫定で本戦進出らしいです #isucon ISUCON 3 っていう、インターネット系エンジニアが全ての技量を試されるガチンコバトルなイベントがあって、kamipoさんとgfxが「あと1人チームメンバー募集!」って言われたのでふらっとパーティに入って参加してきました。 暫定順位みると、大体11位っぽい? 前日 僕は金曜の深夜に飲みすぎ+生ものに当たって土曜日は寝込んでて日曜も朝からダメだった、gfxもなんか体調悪かった、kamipoさんもなんかあれらしかった。 当日合流前 kamipoさんだけ、素晴らしいオフィスで有名なフリークアウト入り。僕とgfxは最初から遅刻宣言。 開始直後 kamipoさんだけawsアカウントの準備してて現地ついてたらしい。僕らは遅刻って言ったからおにぎり食べてたらしい。 合流前 おなかおかしいから、フリークアウトのビルの前でやってた丸しぇに玄米リ
10/4に渋谷で開催された「モバイルUI/UXのキホン」 に参加しました。2011年からいろいろなテーマで開催されている歴史のある勉強会なのと、ディスカッションや意見交換を通じた双方向性を大切にしている、学びの多い勉強会でした! 今回は勉強会の中で特に参考になった点を書いていきます! 🍣 発表スライド発表の際に使われたスライドです。しっかりとした内容です! 発表スライドは「prezi」というサービスを使っているそうです。動きのあるカッコイイデザイン! 🎃 UI/UXは最近のバズWordデジタルガジェットでは特にいえることですが、市場が成熟してきて機能的な差別化が難しくなってくると、ユーザーの体験(UX)が重視されるようになってくるそうです。スマホアプリケーションは特にこういった要素が強く、ココ最近は『UI/UX』がバズWordになっているそうです。 🐹 UI/UX/IAの言葉の定義ま
ISUCON 3 の予選、土曜の方に参加していました。 まず、とても楽しませていただきました。運営の方おつかれさまでした! 結果の方は、悔しいことに 1 日目 5 位以内には残れなかったのだけれど、 暫定予選通過チームを除いた 2 日通しのランキングで 3 位に残る事はできたので、 一応 (暫定) なんとか本戦には出場できる様子。 で、予選で何をしたかだけれど、問題については 公式の解説記事 を見てもらうとして以下に残します。 尚、使用言語は Ruby でした。スコアは 10813.4。 チーム “白金動物園” mirakui, rosylilly, sorah パンダ、ハト、(>ヮ<)/ ? 白金台方面から参加 mirakuiと私がopsもしていた (記憶) 最終的に手を加えた事 middlewares, app Ruby 2.1.0dev, redis が入った httpd Apach
MySQLでテーブルへのカラム追加やテーブルの再編成を行うには、ALTER TABLE文を使用します。MySQLのALTER TABLE文は、変更後の定義にもとづく作業用テーブルを作成し、変更前のテーブルから作業用テーブルへデータをコピーして、最後に二つのテーブルを入れ替えるという仕組みになっています。テーブルへのインデックス追加についても、現在のところ大半のケースで内部的にALTER TABLE文が実行されています。 ALTER TABLE文の怖いところは、処理がもうすぐ終わるのかどうかが分からないところです。テーブルサイズが1GBを超えるあたりから分単位の時間がかかるようになり、100GBともなると本当に終わるのか?と見ていて不安になります。メンテナンス時間が限られている場合は、作業を中断すべきかどうか難しい判断を迫られることもあります。 実は、というほどではありませんが、ALTER
ページが見つかりません。 目的のページは、移動または削除によって無効になっている可能性があります。申し訳ありませんが、検索またはリンク先よりお探しください。
これは、ファイルシステムの実装の違いによるものですが、Linux とWindows では、「ファイルを消す」際の挙動が以下のように異なります。 Linux ファイルが使用中であっても、ファイルを削除(rm)することができる Windows ファイルが使用中の場合、ファイルを削除(rm)を削除することができない 尚、削除 に関わらず、ファイルの移動(mv)、名前の変更(rename)に関しても同じ挙動の違いがあります。 「何?それだけ?そんなん知ってるよ」と思われるかもしれませんが、この違いをきちんと理解しないと、例えば次のような問題の原因と対処法が分かりません。 Linuxサーバーで不要ファイルを削除してdfコマンドで確認したところ、使用率が減らない - Yahoo!知恵袋 Linuxサーバーでdfコマンドで使用率を確認したところ、使用可容量=0、使用率=100%となっていました。 そこで
ご縁があってAWS User Group - Japanにお誘いいただき、10月4日に第18回 AWS User Group - Japan 東京勉強会で発表をしてきました。運営のみなさま、当日お越しいただいたみなさま、どうもありがとうございます。 今回は「秋のDB祭り」ということで、MySQLに限らずさまざまなデータベースに関する話題が取り扱われていました。その中でもRedshiftのセッションが複数あり、注目度の高さが伺えました。クラスメソッドさん、EnterpriseZineさんが勉強会の様子を詳しくレポートされています。 第18回 AWS User Group - Japan 東京勉強会 に参加してきた #jawsug | Developers.IO JAWS-UG東京勉強会で濃ゆーい「秋のDB祭り」:企業のIT・経営・ビジネスをつなぐ情報サイト EnterpriseZine (E
先週初めてGo言語を触る機会があったので、テストの書き方を調べた。 要約すると、標準ライブラリのtestingが好きになれず他に調べても気に入ったものが見付からなかったので自分でつくった。 testing Go言語にはtestingという標準ライブラリが用意されていて、 「go test」コマンドを実行すると「*_test.go」という名前のテスト用ファイルがそれぞれ実行される。 具体的には、そのファイル内で定義されたTest*という名前のテスト用関数がそれぞれ実行されるようになっている。 公式サイトの例ではこういうコードが紹介されていた。 type doubleTest struct { in, out int } var doubleTests = []doubleTest{ doubleTest{1, 2}, doubleTest{2, 4}, doubleTest{-5, -10}
先日、日経コンピュータ特集記事の取材で東京都内の某所にある「Tsuru Capital」という、高頻度取引(HFT、High-Frequency Trading)を手掛ける企業のオフィスにお邪魔した。 HFTというのは、プログラムによって株式などの金融商品を数ms(ミリ秒)から数μs(マイクロ秒)で高速に自動取引すること。自己資金で取引する「プロップファーム(proprietary trading firm)」と呼ばれる企業が中心で、米GETCO(2013年7月に米Knight Capitalと合併)などが有名だ。 HFTを行うプロップファームの多くは、米国など海外に拠点を置いており、Tsuru Capitalのように日本国内に拠点を置く企業は珍しい。株式売買では、海外企業であっても国内の証券会社と契約し、自社の取引プログラムをその証券会社のサーバーに配置すれば日本市場でのHFTは行える。
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く