タグ

2014年3月12日のブックマーク (11件)

  • アプリエンジニアがアプリのデザインで困った時に頼るべきサイト一覧 - Qiita

    この内容は前回の記事同様に始めたばかりの個人ブログに掲載していますが、少しでもたくさんの方に見ていただきたいので、Qiitaにも掲載することにしました。 概要 アプリを開発する環境やチームは人それぞれだと思います。数人のプログラマーとデザイナーのチームで開発することもあればほとんど全てを一人でやる場合など。 特に日曜プログラマーの人でアプリを公開してみたいとなるとデザイナーの知り合いにお願いするか、お金を払ってデザインの発注するをするのはちょっと厳しい場合もあると思います。 そんな時に全てではなくともある程度のデザインを自力でする力があると非常に助かります。 私も個人でアプリ出してますが、デザインがうまくできないせいでホントによく苦労しました。そんな中で参考にさせていただいたサイトや実際につかっているアイコン集などもあるので、数は少ないですが紹介してみます。 おすすめサイト ・pttrns

    アプリエンジニアがアプリのデザインで困った時に頼るべきサイト一覧 - Qiita
  • SSSSLIDE

    SSSSLIDE
    takaesu
    takaesu 2014/03/12
    boketeの分析などに参考になる
  • Vagrant CloudのVagrant Shareを試してみたら凄すぎて鼻血出た - 憂鬱な世界にネコパンチ!

    Vagrant 1.5がリリースされたと思ったら、Vagrant Cloudなんてのが登場してますね! で、Vagrant Cloudの中にVagrant Shareってのがあるんだけど、試してみたらとんでもなかったので、早速やり方をシェアするよ! Vagrant Cloudにユーザ登録 Vagrant Cloudのページにアクセスして、まずはユーザ登録しよう。 迷うことはないと思うけど、「JOIN VAGRANT CLOUD」ってボタンをクリックすれば登録ページに飛べる。 次に、ユーザ名、メールアドレス、パスワードを入力したらユーザ登録は完了だ。 Vagrant1.5のインストール Macの場合は普通にダウンロードページからdmgファイルを落として、ダブルクリックでインストール。 念のため、確認。 $ vagrant -v Vagrant 1.5.0 Vagrantfile作成&仮想マシ

    Vagrant CloudのVagrant Shareを試してみたら凄すぎて鼻血出た - 憂鬱な世界にネコパンチ!
    takaesu
    takaesu 2014/03/12
    vagrant cloud, vagrant shareの機能について
  • libディレクトリの使い方とオートロード機能 - LukeSilvia’s diary

    この関連ではまったので、自分用にメモしておきます、 libディレクトリの使い方 railsRAILS_ROOT/libディレクトリには、プロジェクトで使用するライブラリを置いておきます。 例えば、既存クラスに機能を追加したい場合、まず追加機能を書いたファイルを用意します。 hash_ext.rb class Hash def only(*args) args = args.first if args.first.is_a?(Array) args.inject({}){|h, k| h.merge(k => self[k]) if self[k]} end end 次に、このファイルをlib下に設置します。そして、config/enviroment.rbで、このファイルを読み込むようにします。 environment.rb # Include your application confi

    libディレクトリの使い方とオートロード機能 - LukeSilvia’s diary
  • 配列内の重複する値を抽出する方法を測ってみた - たぐってつづる

    Rubyで配列内の重複する値を抽出する方法 というエントリを見て触発されてベンチマークを取ってみました. 紹介されている方法は下記のようなコード a = [1, 2, 3, 4, 5, 6, 5, 4] a.uniq.map{|v| v if a.inject(Hash.new(0)) {|h, key| h[key] += 1; h}[v] >= 2}.compact mapのブロック内でのイテレートはコストが高く, 下記のエントリのようにArray#indexとArray#rindex を使う方法が簡潔で早いと思います. Rubyで配列から重複したモノ(要素)を抜き出す(Uniqの逆) a.uniq.select{|i| a.index(i) != a.rindex(i)} ついでに,上記エントリにある方法に追加して「Hashに集計して重複しないものを削除」 a.inject(Hash

    配列内の重複する値を抽出する方法を測ってみた - たぐってつづる
  • Rubyで配列内の重複する値を抽出する方法 - 久保清隆のブログ

    Rubyで重複する値を排除したい場合は、uniqメソッドを使えばOK。 a = [1, 2, 3, 4, 5, 6, 5, 4] a.uniq #=> [1, 2, 3, 4, 5, 6] 重複している値があるかどうかを調べるなら、uniqを利用すれば簡単にわかる。 a = [1, 2, 3, 4, 5, 6, 5, 4] a.size == a.uniq.size #=> false でも、配列から重複している値を抽出するメソッドは見当たらない(たぶん)。 そこで、配列から重複している値を抽出するスクリプトを書いてみた。 配列から重複している値を抽出する a = [1, 2, 3, 4, 5, 6, 5, 4] a.uniq.map{|v| v if a.inject(Hash.new(0)) {|h, key| h[key] += 1; h}[v] >= 2}.compact #=>

    Rubyで配列内の重複する値を抽出する方法 - 久保清隆のブログ
  • Rubyで配列から重複したモノ(要素)を抜き出す(Uniqの逆) - それマグで!

    Rubyで配列の重複しているモノを調べるには。 Rubyって配列から重複しているモノだけを知りたい時どうするか?Yahoo!知恵袋の回答はアテにならないし、OKWaveもイマイチだった。そこでマニュアルとにらめっこして考えた。 配列から重複を取り出す例。 => a=[1, 2, 3, 4, 5, 6, 7, 8, 9, 2, 4, 6, 8] #偶数がダブりの配列 >> a.select{|e| a.index(e)!=a.rindex(e)} => [2, 4, 6, 8, 2, 4, 6, 8] >> a.select{|e| a.index(e)!=a.rindex(e)}.uniq => [2, 4, 6, 8] rindex/indexの活用。 index(val) 最初の形式では、val と == で等しい最初の要素の位置を返 します。 rindex(val) val と ==

    Rubyで配列から重複したモノ(要素)を抜き出す(Uniqの逆) - それマグで!
  • APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight

    ちょっと前にTwitterAPIのバージョニングをどうやるかみたいな話をしていたのですが、そのへんもやもやしているので少し整理しておきたいなと。 APIのURLを/api/v1/*とかってやるの、やめたほうがいいとおもうんだけどなぁ。いざv2を作るとなったときに、大量のコピペが発生して後悔するよ、って伝えたい。— Kenn Ejima (@kenn) February 28, 2014 さて、これについて色々と異論・反論も含めた意見が出たのですが、まずは、大昔にURL方式(=コントローラ分割)でやってきて後悔したぼくが、(5年ぐらい前から)現在はどうやってAPIのバージョンを管理しているか?について紹介します。 基原理としては、コピペが多発する根っこで分岐(=コントローラ分割)じゃなくて、必要最小限のところで限局的に分岐するのがいい、という考え方に基づきます。 一言でいうと、「パラメー

    APIのバージョニングは限局分岐でやるのが良い - Hidden in Plain Sight
    takaesu
    takaesu 2014/03/12
    method_missingやスレッドローカルな処理の書き方参考。API Versionだけでなくcurrent_userなども設定する方法として使える
  • プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight

    おそらく多くのソーシャル系アプリにあてはまるRailsのプチ・デザインパターン的な話。 ぼくが今やっているEast Meet Eastには、ユーザごとに数多くのプロフィール属性があります。名前、性別、生年月日、郵便番号、職業などなど、カラム数にしてざっと25個。これを、全部ひとつのusersテーブルに詰め込むのは、コードの見通しという観点からも性能の観点からも、あまりよろしくありません。 なぜならば、ユーザ関連の情報を扱う局面としては主に メールアドレスとパスワードなどを使ってログインする(アカウント情報) プロフィール情報で条件を指定してユーザを検索・推薦する(プロフィール情報) という2つの独立性の高いユースケースにわかれるため、ログイン処理をやってるときにはプロフィール情報はいらないし、プロフィールを検索してるときにはメールアドレスやパスワードをロードするのは無駄です。また、開発やデ

    プライマリキーを使った1:1関連でカラム数の多いテーブルを分割する - Hidden in Plain Sight
    takaesu
    takaesu 2014/03/12
    オートインクリメントを止める、1対1を完全に保証する
  • ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight

    思いのほか前回のRailsプチ・デザインパターンの紹介に反応があったので、こういう小ネタも出していったほうがいいのかな、ということで第二弾。 ソーシャル系アプリだと、ユーザとユーザを関連付ける多対多のモデルがたくさんでてきます。たとえば、一般的なところではフォローとかブロックとか足あととか。さらにデーティングサイトになると、ウィンクだったり、Secret admirer(こっそりlikeするけど両思いだったらおめでとうって通知がくるってやつ)だったり、いろいろなモデルがこのパターンにあてはまります。 この場合、「AがBをフォローしている」「BがAをフォローしている」「AとBがお互いにフォローしている」という3つの状態があるわけですが、相互フォローの状態は「AがBをフォローし、かつBがAをフォローしている」と読み替えてSQLでも記述可能なので、以下ではシンプルに単方向のグラフで全てを扱うもの

    ユーザとユーザを多対多で関連付けるモデルを共通化する - Hidden in Plain Sight
    takaesu
    takaesu 2014/03/12
    ユーザの相互フォロー機能などのサンプル
  • 欢迎光临-HB

    欢迎光临-HB 欢迎光临-HB。 <<<返回首页