DesignAssembler

備忘録に近い

猫と合宿と私

土善旅館 10月15日/16日、霞ヶ浦と利根川が合流する場所の近くにある千葉県の土善旅館で行われる開発合宿に参加しました。 mokumoku-onsen.connpass.com この旅館には開発合宿コースがあり、開発環境は非常に充実しています。よく利用させてもらっています。…

PokémonGOのパケット解析

最近話題のPokémon GOのパケットをwiresharkで覗いてみました。 iPhoneの通信をwiresharkでキャプチャする方法は以下の記事を参考にしてください。 http://qiita.com/ionis_h/items/661a9a9d41cb1574e357 自分はwiresharkやパケット解析にあまり詳しくなく的…

学生枠で申し込んだ開発合宿で日本酒をしこたま飲んだ話 #mokumoku_onsen

こんにちは。 夏だ!合宿だ!温泉だ! 7/16~7/18、新潟県の南魚沼でもくもく温泉 開発合宿に参加しました mokumoku-onsen.connpass.com この合宿は開発合宿と銘打ってありますがかなりゆるふわな雰囲気で、遊びたい人は好きにダラダラしてもOK!いつでも飲酒…

インスタンス変数をDRYにする

Railsで同じビューを全ページに実装する時、全コントローラーに同じインスタンス変数を生やすのはDRYじゃないのでapplication_controller.rbにまとめて書きました。 #application_controller.rb class ApplicationController < ActionController::Base befor…

Railsアプリケーションを6倍速くしてから更に5倍速くした

hyottokoaloha.hatenablog.com 500msから更に5倍速くした やった事 ボトルネックになっていたモデルメソッドの結果をキャッシュに入れる Rails.cache Rails.cache使ってモデルメソッドの結果をキャッシュに入れました。 def hoge cache_variable = Rails.cac…

Railsアプリを6倍高速化した話

正確に言えば通常の6倍遅いRailsアプリケーションを通常の速度にした、といった感じです。 まず、こちらを見てください Completed 200 OK in 3271ms (Views: 53.9ms | ActiveRecord: 2300.6ms) あぁ・・・・・ ActiveRecord2300msって・・・・あと800msくら…

Railsでブラウザ判定

Railsでブラウザ判定する時にrequest.env['HTTP_USER_AGENT']でブラウザ判定しようとしたのですが、ChromeからうまくSafariが取れませんでした。 request.env['HTTP_USER_AGENT']を見てみると Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_2) AppleWebKit/…

Rubyの時間の扱い

時間を表すクラスにはDateとTimeとDateTimeクラスがあって、Dateクラスは日付、Timeクラスは時間、DateTimeクラスは日付と時間をそれぞれ扱います。 時間を表示する 最初1つずつフォーマットごとに切り出して連結していたのですが、strftimeという便利なメソ…

sizeとcountの違い

activerecordで取得したレコードの数を調べるときにcountとsizeを使ったら速度にかなりの差が出たのでその違いを調べました。 countとsizeの差はそのレコードがロードされているか否かで変わります。 レコードがロードされている時、countはsqlを生成し、siz…

httpレスポンスに自作ヘッダーを付与する

小ネタです。 httpレスポンスに自作ヘッダーを付与します。 phpならただ とすればレスポンスのヘッダーにName: asmsuechanを追加できます。ここで注意すべきは、より以前に何か文字を配置しないことです。 herokuでサクっと作って試してみました。https://m…

httpクライアントの実装(2)

続きです。 hyottokoaloha.hatenablog.com コードをいじりました。 レスポンスをただputsするのではなくてResponseクラスのインスタンスを返すようにしました。 #response.rb class Response attr_accessor :request, :headers, :response_except_body, :sta…

HTTPクライアントの実装

Webを支える技術を読んでいます。 Webを支える技術 -HTTP、URI、HTML、そしてREST (WEB+DB PRESS plus)作者: 山本陽平出版社/メーカー: 技術評論社発売日: 2010/04/08メディア: 単行本(ソフトカバー)購入: 143人 クリック: 4,320回この商品を含むブログ (1…

rakeタスクを書く場所

この記事のjnchitoさんのコメントを見て確かに、と思いました。 rakeタスクのロジックはモデルに書くべき 何を当たり前の事をって感じですが、ビジネスロジックはモデルに書くべきです。 ですのでrake作りたいときはモデルにクラスメソッド書いてそのメソッ…

サーバーでアクセス制御

apache apacheでhttps://のみを使いたい、つまりhttp://にアクセスさせたくない時の設定です。 #.htaccess RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L] 最初の.*$は正規表現で、すべての文字列を表します。…

postfixでメールが送信されない

Apr 11 20:03:28 localhost postfix/smtp[12713]: 22E9C10C063F: to=<sc@gmail.com>, relay=gmail-smtp-in.l.google.com[2404:6800:4008:c01::1a]:25, delay=1, delays=0.12/0.01/0.37/0.54, dsn=5.7.1, status=bounced (host gmail-smtp-in.l.google.com[2404:6800:4008:c</sc@gmail.com>…

英語を勉強している

シリコンバレーから帰ってきて1ヶ月経ちました。今英語を勉強しています。 やっていること 実際にやっていることは主に3つです。 Skype英会話 TEDの音読 海外ドラマを英語字幕で見る Skype英会話 数人に意見を聞くと以下のサービスが上がりました langrich r…

grant打つとAccessDenied

rootユーザーで入ってgrant打ってもAccess Deniedされます。 mysql> GRANT ALL ON *.* TO test@’00.00.00.00' IDENTIFIED BY ‘ppaappaa'; ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 何が何だか分からずに途方に…

Rubyのキーワード引数にハッシュを指定

作ったgemのメンテナンスをしています。 github.com キーワード引数でハッシュを引数にしたかったのですが、ActionView::Template::Error (unknown keyword: url):が出て辛かったのでメモします。 最初はこうしていました: #以下で宣言 def render_geo(url: …

<gem> Yt

Ytは、Youtube APIを操作できるgemです。 gem install ytで入ります require ‘yt' Yt.configuration.api_key = "<your API key>" video = Yt::Video.new id: '3LVAmMxICoA' > video.title => "椎名林檎 - 長く短い祭" > video.view_count => 16634213 複数の動画idを1度に</your>…

今日したこと

validationEngineを使った github.com jqueryの多重読み込みでvalidetionEngineが動かなくて少しハマりました github github.com js書きました

n対nの関連

Railsでn対n関連を実装します。 現在1対nの関連を持ったTagテーブルとArticleテーブルをn対nの関連に変更します。 ここでは中間テーブルを作成しない方法で実装します。 has_and_belongs_to_many 各モデルにhas_and_belongs_to_manyを追加します。 class Art…

gem作った

ブラウザで位置情報を簡単に取得できるgemを作りました。 geo_railsって名前です。 github.com 仕組みはシンプル。HTML5で導入されたGeolocation APIをjsで叩くコードをrenderでviewに埋め込んでいるだけです。 gem install geo_rails で入ります。 困ったこ…

AvtionViewの流れ

ActionViewでhtmlタグが生成されるまでの流れを追いました。 とりあえずform_tagのコードを探します。 https://github.com/rails/rails/blob/477fae3eb3d3b3bfdbe28586fecb8578c0be4721/actionview/lib/action_view/helpers/form_tag_helper.rb ここのL67:L7…

3月読んだ本

読んだ場所 土の中の子供 自室 雪沼とその周辺 自室 蹴りたい背中 飛行機 ベッドタイムアイズ TECH LAB PAAK 嵐のピクニック 電車 生きてるだけで、愛。 電車 あの子の考えることは変 部屋

Rails5.0.0.beta3のActionController::APIを使う

そろそろRC版が来るRails5のbeta3を触ってみました。 $ bundle init でGemfileを生成します。 # A sample Gemfile source "https://rubygems.org" gem "rails", github: "rails/rails" bundle installします。 $ bundle install 少し時間かかりますがインス…

carrierwaveで画像アップロードAPIサーバー

carrierwaveを使って画像アップロードAPIサーバーを作りました。 どんなの作るか 犬の名前と画像が保存できるサービスのAPIを作ります。 必要なカラムはnameとpicです。 まずは犬データの作成です。名前と画像をPOSTで投げたら名前と画像URLがjsonで返ってき…

コマンドメモ(vimやshell)

シェル 検索、grep find ./ | grep aaaaaaa ファイル内grep find / -type f -print | xargs grep hogehoge /dev/null コマンド履歴から実行 $ (Ctrl-r) (reverse-i-search) ‘bun’:bundle exec unicorn_rails -c config/unicorn.rb -E production -D history …

abstract class

抽象クラスです。ActiveRecord::Baseなどがそうです。 > ActiveRecord::Base.new NotImplementedError: ActiveRecord::Base is an abstract class and cannot be instantiated. 「抽象クラスである」という判別がRubyによりなされているわけではなく、Active…

configとは何者か

Railsのconfig/application.rbにあるconfigが何者か分からなかったので調べました。 config.autload_paths << Rails.root.join('lib/MyLib')とかで使われますよね。 require 'rails/all' module WhatIsConfig class Application < Rails::Application config…

Rubyのincludeとexclude

簡単に言うと、includeはインスタンスメソッドとしてモジュールのメソッドが使えるようになり、extendはクラスメソッドとしてモジュールのメソッドが使えるようになります。 #include_exclude.rb module Dog def dog puts "inu" end end module Cat def cat …