プログラミング 美徳の不幸

Ruby, Rails, JavaScriptなどのプログラミングまとめ、解説、備忘録。

2013-01-01から1年間の記事一覧

サービスをローンチした

仕事でやっていたサービスをローンチできました。ここで紹介しても差し支えないのだけど、サービスのURLが知りたかったら言ってください。実はいままでfirst commitから見守っていた(まともな)サービスがローンチを迎えたことは一度もなかったので、とりあえ…

知らないことってまだまだ多い

Railsの標準機能で知らないことってもうほとんどないだろうと思ってたんだけど、最近 = f.select :hoge_id, options_for_collection_for_select(Hoge.fuga, :id, :name), {}, data: { remote: true, url: hoge_url } みたく、f.selectの第4引数に渡してやる…

立ち上げ黎明期のウェブサービス

まぁものにもよるんだけど、立ち上げ時のウェブサービスは画面遷移を3ページくらいにするのがちょうどよいのかもしれない。3ページで何ができるのかという話だけど、食べログだとトップページ・検索ページ・店舗詳細ページですね。クックパッドもトップペ…

railsのassetsについて言っておきたい

Railsのassetsの運用をちゃんとできてる人があまりに少なくてブチ切れそう。 まず基本的なことだけど、blogs.css.scssとかcomments.css.scssみたいに、controller単位でcssが勝手に作られるけどこれは全部読み込んでください。 つまりapplication.css.scssで…

仕様書について

ちょっと前まで仕様書を書く=アジャイル開発の失敗、と思っていた。 アジャイル開発において、理想的にはspecが仕様書となり、あるいはソースコード自体が可読性が高く保たれていればドキュメントや仕様書は不要なものだと思っていた。しかしこれは間違いだ…

railsの

今日元食べログの大エンジニアとお話していて、scopeっていけてないねっていう話になった。scopeとは以下のようなもので class User < AR::Base has_many :blogs has_many :fav_stars, through: :blogs scope :recent, -> { order('created_at DESC') } scop…

erosy

gunosyに対抗して毎日おすすめ動画をレコメンドするerosyっての考えたけど、みんな考えてるぽい 某サービスをパクって、ErosyもしくはNukisyっていう嗜好や性癖に合わせたエロ情報をキュレーションしてメールで毎晩お届けするサービスを考えてみた。最初から…

【Rails】一つのフォームで2つのモデルを更新

◯要件 1つのフォームで2つ以上のモデルを更新したいパターン1 関連づいている場合fields_forを使うのがベスト。 form_for @blog do |f| = f.text_field :title = f.fields_for :author do |af| = af.text_field :name こうすればcontrollerでは@blogをsave…

スタートアップのインターン論

こういうサイトを見ると自分も昔、ベンチャーのインターンをやっていたことを思い出す。ちょっと自分語りになっちゃうけど、だいたいこの業界に入ったきっかけは大学1年の春に、東大生x受験生の受験ポータルサイト(http://www.todainote.jp/)の立ち上げに、…

controller specその2

問題 つぎのうち意図しない動きをするspecはどれでしょう? context 'question1' do subject { get :new } it { expect(assigns(:hoge)).to be_new_record } #A it { should render_template('new') } #B end context 'question2' do subject { response } b…

controller specあれこれ

Railsのcontrollerをテストする際にrspecを使ってるんだけど、rspec業界的に最近shouldよりもexpectを使おうという風潮らしい。 @product.price.should eq 2000 #=>いけてない expect(@product.price).to eq 2000 #=> いけてる ただ、expectはitブロックの中…

inject厨

RubyのEnumerableで使えるメソッドでany?とかselectのようにわかりやすいメソッドたちにまぎれて、injectという奇妙なメソッドがある。 僕もRuby始めたてのころは「injectは配列の合計値を求めるときに使う」と覚えていた。 [1,3,5].inject(:+) #=> 9 でもっ…

play2を触る

play2触ってみた。◯インストール brew install scala brew install play play new play2Sample; cd play2Sample play run #=> localhost:9000で初期状態のものが起動するはず ◯ルーティング conf/routes GET /threads controllers.Threads.index GET /thread…

gem作ってみた

https://github.com/t-kot/bataille最近仕事でSEOをやっているので、キーワードとキーワードの掛けあわせの検索結果を分析したいなと思ってこんなgemを作ってみた。batailleというのはフランス語で、"バタイユ"と読みます。敬愛する思想家の名前です。 で、…

いわゆるソーシャルマッチングサイトの比較

先日クックパッドのオフィスで「肉会」というアプリの話になりました。 「肉会」というのは同性のペアが肉を食べたいという名目で集まって、4人で焼肉屋に行くアプリ。まぁ男男女女で合コンするようなアプリなんだけど、クックパッドの女性社員がこれをよく…

コードゴルフっぽいもの

◯問題 標準入力に与えられた英単語のうち、重複のない文字で一番最初に来るものを標準出力として表示するRubyのコードを書け。 例 google => l apple => a これは実は某社で最近受けたRubyの問題なのだけど、テンパッて書いた答えはこんな感じでした。◯いけ…

objective-c始めました

Webアプリ一筋のプログラマ人生でしたが、サーバサイドの案件かと思ったらネイティブもだったというのがあってiOSプログラミングを始めることになりました。にしてもiOSとWebがひと通りできたら怖いものないですね、当分失業せずに済みそうです。なんか最近…

プログラミング支配力学

プログラミングは書き手たるプログラマーが力点となって、コードを書いているかのような錯覚を受けるが実際は異なる。 そもそもプログラマーがプログラマーになった理由にしても、いろんな経緯を経てそうなっている(わかりやすく言えば文系で新卒SEとか)かも…

雑記・BGMのこと

自分も一応プログラマーの端くれなので、長時間PC作業という日々です。となると、作業用BGMが必要なのですが、不思議なことに作業用BGMをみんながどうしてるのかについて詳しく知りません。例えばニコニコ動画で作業用BGMを検索してみるとたくさん出てきます…

SinatraでCapybara使う

今取り組んでいるSinatraによるプロジェクトも佳境を迎え、納品に向けて受け入れに近いレベルのテストを書いています。 まぁ本格的な受け入れテストではないんですが、返却されたviewが正しい値を含んでいるかのテストを中心とするわけですが、そのうえでCap…

CSSを勉強するぽよ

なんとクックパッド株式会社に入社しました。といっても、アルバイトですが。 話の経緯は、以前からお知り合いだったクックパッドの社員さんの部署で急遽欠員が出たため、プロジェクトの担当者がいなくなったところに身軽そうな人に声をかけたという感じみた…

javascriptをRubyでテストする

独自の方式で数値を文字列にするコードをJavaScriptで書きました。さらに、同様の独自の方式で文字列を数値に戻すコードをRubyで書きました。つまり暗号のようなものです。その約束ごとはシンプルなので、JavaScriptで暗号化してからRubyで復号化してもとと…

Sinatra入門

最近自分つくづくRailsの話しかできない人だなと思ったので、Sinatraを触ってみました。いや、ホントは実務で必要になっただけなのですが。てかそれでもやっぱWebアプリケーションフレームワークでRubyかよ、という。。。やっぱC++でゲーム作りとかやってみ…

ヘッダーメニューのハイライト

あけましておめでとうございます。 で、さっそく技術の話題ですが、グローバルに表示しておきたいメニューで、なおかつページごとにハイライトさせたいものってありますよね。 それをきれいにやる方法。 #ul.nav = content_tag :li, class: is_active?("admi…