リア充爆発日記

You don't even know what ria-ju really is.

OSXでECDSA鍵を作ろう

Mac

http://d.hatena.ne.jp/hnw/20140705 を読んで、「ECDSA鍵にしていると一目置かれるのか!」と思ったので即座に対応することにした。鍵長は、最低の256bitでもRSA鍵の3072bit相当ということで、無意味に強度を強くしてもコストの無駄と思うし、どうせ誰に見…

CentOSのyumでSegmentation fault

さくらのVPSでCentOS6.3での話。 たまにしかメンテしないので、いつのタイミングからこうなったのかもよくわからない。困った。そういうときはstraceをかましてみる。 [root@ria10_no_server www]# strace yum update ~snip~ stat("/var/cache/yum/x86_64/6/…

Railsでページビュー(PV)をとるならimpressionist

https://github.com/charlotte-ruby/impressionist「ブログ記事ごとのPVがとりたい!」がカンタンに実現できるgem。PV記録用のテーブルを別途作ってそこにアクセスを記録してくれる。とりまGemfileに設定追加してbundle installからのmigrateで。 Gemfile ge…

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第五回)

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第四回)の続き今回はnewの動作について。ほぼ、以下のリンクの和訳。。 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/new 新しいオブジェクトを作…

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第四回)

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第三回)の続き。前回ではprototypeのメリットの1つである、複数オブジェクトの関数の共有を確認した。今回は、次のメリットのいわゆるプロトタイプチェーンについて確認してみる。プ…

Cannot use 'in' operator to search for 'model' in hogehoge

Uncaught TypeError: Cannot use 'in' operator to search for 'model' in #{element} こんなエラーがでたら・・・たぶんBackbone.Viewのコンストラクタに複数の引数を渡しているのでは。initializeは引数1つしかとらないので、ハッシュで渡そうず。 で、ま…

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第三回)

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第一回) Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第二回)第三回目は、prototypeとnewに挑戦。 まず、prototypeとはなんなのか、ということなんだけど…

更新処理のhttp responseステータスには何を返すべきか

method=PATCHな更新処理がサーバサイドにリクエストされ、正常終了したらどのコードを返すか?ということなんだけどね。別にクライアント側で200台のコード判別したいわけじゃないので、200しときゃあいいんだけど、そうするにも他のコードの用途を知った上…

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第二回)

今回はthisについて説明することに挑戦。他の多くの言語では、オブジェクトのインスタンス自身を指す予約語として、thisとかselfとかがあるが、Javascriptにもthisがある。 が、Javascriptのthisは状況によって指す内容が変わってくる。それをMDNでは、「thi…

Javascript初心者に初心者++程度の自分が言語仕様を説明したときのメモ(第一回)

なんらかのクラスベース言語の経験がある人向けのJavascript勉強会の第一回メモ。 Javascriptはプロトタイプベースのオブジェクト指向言語 クラスベースではない、ということだけ覚えておいて先に進む。 データ型 プリミティブとオブジェクト型の2種類ある…

件数のキャッシュをcounter_cacheじゃなくてcounter_cultureで

Userに対するフォロワーの数とか、何かの投稿件数とか毎度調べてるとヤバイケースとかではcounter_cacheを使うと思うのだけれど、何かの投稿がステータスを持ってて、それがpublicなときだけカウントしたいときとか、counter_cacheが使えないので自分で実装…

Backbone.jsでClassをまたいだ共通処理を扱いたいときのメモ

twitterの「フォローする」ボタン的なものがあって、それはtwitterみたいに色んな画面(View)に登場する。 ボタンの動き自体は、1つのView(MyAPP.View.UserRelationButton)にまとまっているんだけど、こんな感じで、UserRelationButtonの初期化は、DOMから…

erbでclassなどを条件付きで指定したいとき

ループで回してたりして、ループが一定数超えたらどうにかしたい、みたいなときの話。 <% images.each_with_index do |image, i| %> <%= image_tag image.image.url(:thumb), class: "#{ 'hidden' if i > 3}" %> <% end -%> このように#{ }の中でifをつかっ…

Rails4.1にUpgradeしてRspecでMigrations are pendingと言われるようになったら

Rails4.0->Rails4.1にUpgradeしたのち、DBに修正いれてrake test:prepareしてrspec実行したら以下のエラーがでた。 /Users/ria10/IdeaProjects/ria10-web/vendor/bundle/ruby/2.1.0/gems/activerecord-4.1.0/lib/active_record/migration.rb:389:in `check_p…

viewで1行ごとに何かをはさみたいとき

in_groups_ofを使う。こんな感じ。 <div class="user-content"> <% @items.in_groups_of(3, false).each do |group| -%> <div class="user-content__row"> <% group.each do |item| -%> <%= render item %> <% end -%> </div> <% end -%> </div> 2番めの引数は、最後のループで1番目の引数で指定した数のアイテムがない場合、何を入…

iPadやNexus7のデバッグの神ツール「Edge Code CC」

むかしはAdobe Shadowって名前だったらしい。最近じゃあ、どのブラウザも標準で優秀なデバッガが付いているけどタブレットやスマホ向けのCSSを書いていこうってなると、それらは使えないのでどうしよう。というときの話。そんなとき、このEdge Code CCを使え…

Photoshopでガイドを引いてばかりの人生に疲れたら

デザイナをヤメるかGuideGuideを使おう。 デザイナのヤメ方 http://www.miyax.net/taisyoku-2/ ※デザイナ以外でも使えます。 GuideGuideの使い方(CCの場合) http://www.guideguide.me/ からDownload Extension Managerをインストールしておく CCならメニュ…

ラスタライズとは

この世にはラスターとベクターの2つがある。ベクター(Vector)とは、ざっくりいえば、ディスプレイなどの解像度に依存せず、拡大縮小してもキレイに保存される状態。一方で、どのデバイスでもかならず同じように表示されるとは限らない。ラスター(Raster)…

デザイン未経験者がタブレットをメインターゲットにしたWebデザインの際に考えるべきことのメモ

もう、なんでもやる。デザイン領域だって聖域ではない。 木の葉が舞えば木の葉に雪が降ったなら白狐にでも化けるまでまあ忍法みたいなものさ。このメモは、構成(ワイヤーフレーム)作業は終わっていて、画面割と各画面に何を載せるのかが決まった後の話。 …

railsのlink_to_ifにブロックを渡す

link_toにlink_to_ifはあるけど、これにブロックを渡す方法がない。ので、つくろうと思ったらもう作っている人がいた。 http://stackoverflow.com/questions/10305180/rails-how-can-i-show-a-block-with-or-without-a-link-based-on-a-condition-link丸パク…

Titaniumでlongjohn.js:184がでたら

こんなエラーがでたとき。 $ ti build --platform android --log-level info -T dist-playstore Titanium Command-Line Interface, CLI version 3.2.0, Titanium SDK version 3.2.1.GA Copyright (c) 2012-2013, Appcelerator, Inc. All Rights Reserved.Ple…

ActiveDecoratorでhas_manyな関連モデルに対応する

ActiveDecoratorは今のところ、has_manyとかbelongs_toなモデルをdecorateしてくれない。PRが上がっているようだけど、これ2年前か。 https://github.com/amatsuda/active_decorator/pull/8githubの常識とかよくわからないんだけど、こんな感じでスルーされ…

rubyのstrftimeとかで0なしの月や日を表示する方法

マイナスを入れるだけ。 @user.birth_date.strftime("%Y年%-m月%-d日") マイナス思考から すぐに抜け出す9つの習慣作者: 古川武士出版社/メーカー: ディスカヴァー・トゥエンティワン発売日: 2012/11/14メディア: 単行本(ソフトカバー) クリック: 8回この…

unread gemとpublic_activity gemを組み合わせて使う

ハラが減ってるので、差分の作業だけメモっていく。unreadは既読、未読的なやつができる。 public_activityは「○○から☓☓にいいね!がありました」みたいなやつができる。この2つを組み合わせて、「○○から☓☓にいいね!がありました」が未読から既読にできる…

poltergeistでテストごとに設定を変更する方法

poltergeistはここにいろんな設定内容の説明が書いてある。 https://github.com/jonleighton/poltergeist#customizationで、今回js_errorsを一部のテストだけfalseにしたかったので、その方法を調べた。何かそれようのメソッドがある感じじゃなかったので、…

parallel_testsでRSpecのテストを高速化

テストが多くなってくると必然的に実行時間が長くなってしまう。 テストの書き方を工夫する余地があるうちはいいけど、それもきつくなってきたらもう後はマシンパワーに頼るしかない。そこでこちらのparallel_testsです。 https://github.com/grosser/parall…

動的にActiveRecordのプロパティにアクセスする方法

参考:http://www.davidverhasselt.com/set-attributes-in-activerecord/ふつう @user.name = "foo" とかやるところを、どういうわけかname1..name3くらいまであって、同じような処理をしたいときの話。 具体的にはバリデーションのテストだったんだけど。@u…

RailsとMySQL5.6.xで全文検索をやってみた

時間がないので備忘録的に書いていく。http://dev.mysql.com/doc/refman/5.6/en/fulltext-search.html 前提 全文検索には、Natural Language Full-Text SearchesとBoolean Full-Text Searchesがある。 日本語で前者を使うには、分かち書きを別途導入する必要…

Rails4のconcernsなmoduleのテストをrspecで書く方法

Railsとcapybaraで何かをドラッグアンドドロップしてソートするテストを書くではカテゴリをソートするfeaturesなテストを書いたけど、アレには当然modelのテストもある。モデルにはCategory.reorderという並び替えを行うメソッドがあって、これのテストはcat…

Railsとcapybaraで何かをドラッグアンドドロップしてソートするテストを書く

今回はカテゴリを画面でソートできることをテストする。たとえばブログで言えばブログカテゴリの表示順を管理画面でソートしたいとき、などの話。 こんな画面で、ドラッグアンドドロップでソート後、更新ボタンを押したら、その順番に更新される、という仕様…