タグ

ブックマーク / blog.livedoor.jp/sasata299 (19)

  • Rails開発をする上で知っておいた方が良さそうなこと - (゚∀゚)o彡 sasata299's blog

    2015年07月01日13:34 Ruby 勉強会 Rails開発をする上で知っておいた方が良さそうなこと 先週の木曜日、Speeeさんで開催された第2回SpeeeTeckPartyにお邪魔して発表してきました。 これは x 技術をテーマにした勉強会で、第1回は「寿司 x Ad」だったそうなんですが、なんでも今回は「からあげ x Ruby」だそうで、であればささたつさんしかいない!という人選だったそうですw (お寿司べたかったな・・w というわけで、Rails開発するなら知っておくと良さそうなことを10個(質疑応答で一つ増えて11個になったりもしましたが!)紹介してきました。以下がスライドです。 他にもいろいろとあると思いますが、少しでも役に立てば幸いです :D ツイート 「Ruby」カテゴリの最新記事 「勉強会」カテゴリの最新記事

    Rails開発をする上で知っておいた方が良さそうなこと - (゚∀゚)o彡 sasata299's blog
  • BASE技術勉強会で話してきました - (゚∀゚)o彡 sasata299's blog

    2014年09月30日13:34 勉強会 BASE技術勉強会で話してきました こんにちは。ささたつです。 先日、BASEさんの第1回?社内勉強会にお呼びいただいてお話してきました。そのときの資料です。前半はVagrantやDockerなどの仮想化周りの話を、後半は最近思っていることについてつらつらと話してきました〜。 このときのことについてはBASEのCTOであるえふしんさんがブログにまとめてくださったんですが、おにぎりやからあげ(!)も大量に用意してあり、ビールもプレモルで素晴らしい環境でした :D BASE技術勉強会〜ささたつさん勉強会を開催しました | F's Garage@fshin2000 最近は社内勉強会のようなクローズドな集まりに呼んでいただけることもちょくちょく出てきました。えふしんさんも書かれていますが、なんで僕だったのか聞いてみたら「直感」だったということで大変嬉しく思

    BASE技術勉強会で話してきました - (゚∀゚)o彡 sasata299's blog
  • Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog

    2014年08月04日11:11 インフラ Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る Ansible って何なの? サーバに対してミドルウェアのインストールや設定等の環境構築を行うことをプロビジョニングと言いますが、その作業を自動化させるためのツールです。プロビジョニングを手動で行うと、手間も掛かるし、どうしてもミスが起こりえます。 その点、Ansible のようなツールを使えば、コマンド一発でプロビジョニングが走り、さらに冪等性(何度実行しても同じ結果になる)も確保されるため、誰でも簡単安全にサーバ構築が出来るのです。 同様のことを行うツールとして、Chef や Puppet がありますが、Ansible はそれらの中でもシンプルなことが特徴です。Chef は以前使ってみようと思い触ってみたのですが、覚えることが多かったりして挫折してしまった。。Ansible

    Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog
  • Vagrantの使い方 〜仮想マシンを簡単に作成しよう。 - (゚∀゚)o彡 sasata299's blog

    2014年07月28日11:46 インフラ Vagrantの使い方 〜仮想マシンを簡単に作成しよう。 Vagrant とは? Vagrant は、VirtualBoxなどの仮想環境上に仮想マシンを簡単に作成したり破棄したりできるツールです。操作出来る仮想環境は VirtualBox が基ですが、VMware や Amazon EC2 なども(ちょっと設定すれば)操作可能です。 プロビジョニング(ミドルウェアの設定やインストール等の環境構築)には、Chef や Puppet や Ansible などが利用されます。 Vagrant と VirtualBox のインストール 今回は VirtualBox 上に仮想マシンを作成して使ってみましょう。まずインストールですが、以前紹介した homebrew-caskさえあればご飯大盛り三杯はイケる を利用していればこの設定を追加するだけです。 ca

    Vagrantの使い方 〜仮想マシンを簡単に作成しよう。 - (゚∀゚)o彡 sasata299's blog
  • RailsからObjective-Cのplist形式でデータを出力する - (゚∀゚)o彡 sasata299's blog

    2014年03月28日14:15 Ruby Objective-C RailsからObjective-Cのplist形式でデータを出力する iOSアプリ用のマスターデータとして plist にデータを持たせたかったのでやってみました。 実際にやってみると builder っていう gem を使えば簡単でした。jbuilder のXML版です。出力したいデータ(例えば今回の場合だと @languages)だけ用意して、 xml.instruct! :xml, version: '1.0' xml.declare! :DOCTYPE, :plist, :PUBLIC, '-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd' xml.plist(version: '1.0') do xml.ar

    RailsからObjective-Cのplist形式でデータを出力する - (゚∀゚)o彡 sasata299's blog
  • ActiveRecordのソースコードを読む - (゚∀゚)o彡 sasata299's blog

    2010年06月25日00:18 Ruby ActiveRecordのソースコードを読む ハマったのがきっかけで ActiveRecord 2.3.5 のソースコードを少し読んだので簡単にまとめてみます。なお、ActiveRecord では 2.2 からコネクションプーリングが導入されています。 コネクションプーリングとは? データベースにアクセスする時、アクセスのたびに接続(コネクション)を確立するのではなく、あらかじめ一定数のコネクションを確立しておき、それを使い回す手法。データベースアクセスの負荷を減らすために用いられる。 それを踏まえつつ、検索をする場合の処理を追っていきます。例えば Hoge.find(:all, ...) とかしたらどうなるんでしょうか。 あ、その前に ActiveRecord 使うときって establish_connection が必ず呼ばれます。Rails

  • RDSのデータをmysqldumpしてS3に保存する - (゚∀゚)o彡 sasata299's blog

    2014年01月07日13:52 AWS Ruby RDSのデータをmysqldumpしてS3に保存する 弊社ではデータを AWS の RDS を使って管理しています。バックアップは自動で取ってくれるんですが、RDS では残せるバックアップのスナップショット数が決まっているのでもう少し過去のバックアップも取りたい。気軽にバックアップを S3 に保存することは出来ないものか。 追記:14:12 RDS のスナップショットを手動で取ったりすれば良いんですけど、アカウントが悪用されたりして全部消えちゃったら怖いなぁと。そういう背景もあって念のため S3 上にも置いておきたいなぁと思った次第です(*゚∀゚) 追記:14:17 バックアップのスナップショット数増やすことも可能みたいですね。 @sasata299 あとAmazonに申請すればRDSのスナップショットの上限値を増やせるらしいので参考にど

    RDSのデータをmysqldumpしてS3に保存する - (゚∀゚)o彡 sasata299's blog
  • MySQLでカラムやインデックスの追加、削除をするときのロックの話など - (゚∀゚)o彡 sasata299's blog

    2013年12月12日14:03 MySQL MySQLでカラムやインデックスの追加、削除をするときのロックの話など すっかり2013年も終わりに近づいてきましたね。さて、今回はMySQLでカラムやインデックスの追加、削除をするときに知っておいた方がいいかなーと思った注意点の話です。 カラムやインデックスの追加、削除を行う際にはテーブルが共有ロックされる まず、カラムやインデックスの追加、削除といったいわゆる ALTER TABLE に相当する処理を行うとテーブルが共有ロック(読み込みのみ受け付け、更新処理は受け付けないというロック)されるという話です。 この辺の話は @nippondanji さんが詳しく書かれています。 漢(オトコ)のコンピュータ道: ALTER TABLEを上手に使いこなそう。 1. テーブルをTL_WRITE_ALLOW_READロックする。このロックは特殊なロック

  • 今、AngularJSというフレームワークがヤバい - (゚∀゚)o彡 sasata299's blog

    2013年11月05日10:36 JavaScript 勉強会 今、AngularJSというフレームワークがヤバい 先週の土曜日、ランサーズさんで行われた 第3弾 週末ランサーズ に参加して個人的に今アツい AngularJS について話してきました。 AngularJS は ng-repeat が便利だったり、コードの見通しが良くなるなどいろいろなメリットがあると思うのでうまく使えば大変メリットがあると思います。特に、データの状態(要素の追加・削除や、状態のon/off など)を制御すればそれに合わせて view の表示はすべて AngularJS がやってくれるというのは素晴らしいですね。 ちなみに、以下の資料の中で ng-app とか ng-repeat とか出てきますが(これは directive と呼ばれます)、この ng というのは AngularJS の2文字目と3文字目を表

  • turbolinksを使うときに気をつけるべきたった一つのこと - (゚∀゚)o彡 sasata299's blog

    2013年10月10日14:48 JavaScript Ruby turbolinksを使うときに気をつけるべきたった一つのこと さて、今更ですが、turbolinks とは pjax(Ajaxで要素を動的に変えつつ、pushStateでURLも変更しちゃう)をRailsで簡単に利用出来るようにしたものです。 pjaxを使えば、Ajaxと違ってURLもちゃんと変わるし、ブラウザの戻るだって普通に使えるからとても便利です。毎回ページ全部を評価してまるっと書き換えるんじゃなくて、必要と部分だけを入れ替えるので、レスポンスだって高速になります。 このturbolinksに関してはいろんな人が記事を書いてくれているので詳細はそちらを見ていただくとして、 Rails 4のturbolinksについて最低でも知っておきたい事 | KRAY Inc Rails4でturbolinksを謳歌するためのまと

  • Railsならbetter_errorsを入れるとデバッグがはかどるなぁ - (゚∀゚)o彡 sasata299's blog

    2013年09月02日18:22 Ruby Railsならbetter_errorsを入れるとデバッグがはかどるなぁ 今までなんで入れてなかったんだろ、、って思いました。 better_errors はRailsのエラー画面を素敵にしてくれるgemです。これだけでRailsのエラー画面がすごく便利になるんです。こんな感じ。 注目すべきは右上のエリア!なんとその場でデバッグすることが可能です…!有難いっ! ででーん(クリックして拡大できます)。 インストールも簡単でGemfileに追加してbundle installするだけっ!!と簡単ですが セキュリティ のところは一度ちゃんと読んでくださいね。 group :development do gem 'better_errors' gem 'binding_of_caller' # その場でデバッグするには必要 end ツイート 「Ruby

  • Ajaxの処理が完了したのになぜかajax:completeが発火しないときの話 - (゚∀゚)o彡 sasata299's blog

    2013年08月28日17:53 JavaScript Ruby Ajaxの処理が完了したのになぜかajax:completeが発火しないときの話 例えば削除リンクを用意して、それクリックしたら要素がAjaxで削除されるみたいな処理の場合にハマったのでそういう悲しいことが他の人には起こらないように書いておきます。 削除リンクはこんな感じ。 = link_to 'Destroy', comment_path(@comment), method: :delete, remote: true, data: { confirm: 'Are you sure?' } リンクをクリックするとAjaxでDELETEリクエストがこのアクションに送られるとします。 def destroy @comment.destroy end これでとりあえず削除は出来るようになりました。ただ、そのときにこの要素自体も消

  • RailsのStrong Parametersで弾かれたときにすぐに気付けるようにしてみる - (゚∀゚)o彡 sasata299's blog

    2013年08月12日11:25 Ruby RailsのStrong Parametersで弾かれたときにすぐに気付けるようにしてみる Rails4 を使ってると Strong Parameters で特定のパラメーターが弾かれていてハマることがあります。セキュリティ的に安全になったので素晴らしいんですが、いかんせん慣れていないせいか特定のパラメーターが弾かれていても気付かないことが多くて。。そこで、すぐに気付けるように色付けしてくれる colorize_unpermitted_parameters っていう gem を作ってみました。 使い方はこんな感じ。以下を Gemfile に追加して bundle install するだけ。 gem 'colorize_unpermitted_parameters' Strong Parameters で弾かれると Unpermitted para

  • Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 - (゚∀゚)o彡 sasata299's blog

    2013年08月05日14:53 Ruby JavaScript Rails4 + Capybara + PhantomJS (poltergeist) なテスト環境 Rails4 でのエンドツーエンドなテスト環境を作ってみたのでメモです。 統合テストといえば Capybara さんなわけですが、デフォルトだと JavaScript を実行する際にドライバとして Selenium が使われてしまいます。 Selenium さん良い人なんですが、、、ブラウザが起動するので重いし、そもそも毎回ブラウザが起動する必要は無いのでヘッドレス(ブラウザの起動無しに JavaScript が実行できる)ドライバにしちゃいましょう。サヨナラ。 ヘッドレスドライバはいろいろあるんですが、最近は PhantomJS というライブラリが良いみたいなのでこれを使ってみます。Capybara から PhantomJ

  • Railsで大量のデータをまとめて更新するならfind_each使うよね - (゚∀゚)o彡 sasata299's blog

    2013年03月22日16:17 Ruby Railsで大量のデータをまとめて更新するならfind_each使うよね ということでメモ程度ですが書いときます。 Railsには find_each というメソッドが用意されています。通常の each メソッドを使用すると、全データをまとめてメモリに展開してから処理を開始します。そのため、十分にメモリに載るデータ量であれば何も問題ないですが、数百万、数千万というデータ量になってくるとメモリに載りきらずに溢れてしまって大変なことになります。 find: 全データをメモリに展開してから処理 find_each: 少しずつデータをメモリに展開しつつ処理 そういうときには find_each メソッドを使いましょう。これは少しずつデータをメモリに展開して処理を行います(デフォルトでは1,000件ずつ)。全部まとめてではなくちょっとずつメモリに展開してく

  • 東京Ruby会議10で行われたコードゴルフの解答例を紹介します - (゚∀゚)o彡 sasata299's blog

    2013年02月04日16:00 勉強会 Ruby 東京Ruby会議10で行われたコードゴルフの解答例を紹介します だいぶ遅くなってしまいましたが、先日東京Ruby会議10で行われたコードゴルフの結果発表を行いたいと思います!(パチパチ 問題は、「引数を二つ受け取って(最小値と最大値)、その間の数字に対してFizzBuzz問題を解いてください」というものでした。 例えばこういうことですね。 $ ruby fizzbuzz.rb 1 5 1 2 Fizz 4 Buzz 東京Ruby会議10「コードゴルフに挑戦!」〜最終順位発表 - blog.code.iq│CodeIQにて、景品プレゼントのために上位の方にはメールを送っていただき、その結果、1位がttakuru88さん、2位がtmtmsさんと決まりました(3位は該当者なし)。おめでとうございます!! そこでせっかくなのでこのお二人とあとは特

    clavier
    clavier 2013/02/05
  • 正規表現で最短マッチを知っとくとちょっと便利かも - (゚∀゚)o彡 sasata299's blog

    2012年05月01日21:34 Ruby 正規表現で最短マッチを知っとくとちょっと便利かも 正規表現ってあるじゃないですか。そうです。アレです。 とっても便利で、いろんな場面で役立つと思うんですが、ときどき最短マッチを使いたくなって「最短マッチってどう書くんだっけなぁ?」ってなってググることがあります(よね!) 通常は最長マッチになる 通常、正規表現内で * とか + とか付けると、直前の表現の0回/1回以上の繰り返しを表しますが、この書き方だとできるだけ長い要素にマッチしようとします。大事なことなのでもう一度言います。できるだけ長い要素にマッチしようとするんです。 大抵はそれで構わないんですが、ときどきそれでは困るケースがあります。例えばこんなケースを考えてみましょう(あんまり良い例が思いつかない)。 ・"名前(ニックネーム)"という形式 ・名前と(ニックネーム)の間には半角or全角ス

  • jquery_notification を使ってかっこよく通知メッセージを表示しよう - (゚∀゚)o彡 sasata299's blog

    2012年04月24日11:20 JavaScript jquery_notification を使ってかっこよく通知メッセージを表示しよう 通知メッセージを表示する jQuery Notification Plugin はいろいろあるんですけど、その中でも jquery_notification というプラグインがとてもシンプルかつ、かっこよい感じで気に入りました。 使い方も簡単なので、通知メッセージを出したいなぁというときには役に立ちそうです。閉じるリンクも付いてます。 使い方はたったこれだけ! showNotification({ message: 'これはエラーメッセージです', type: 'error' }); typeを指定することで(successとかwarningとか)通知部分の背景色を変えて見せることも出来ます。他にも自動的に通知メッセージを消したりとかいろいろ出来るの

  • 画像のアップロードをかっこよく実装する - (゚∀゚)o彡 sasata299's blog

    2012年02月16日11:36 Webアプリ 画像のアップロードをかっこよく実装する 久しぶりのブログですこんにちわ!最近は主になめこを栽培しております。 なめこ図鑑46%まできたお (*´ω`*)— ささたつ(Tatsuya Sasaki) (@sasata299) February 13, 2012 ということで、今回は画像のアップロードをかっこよくやる方法について紹介します。 画像のアップロードというか、アップロードしたいファイルの選択ですかね。Twitterだとこんな感じのカメラ画像があって、それをクリックするとファイル選択画面になるんです。 アップロードしたいファイルの選択って、ふつーに実装するとこんな感じのデザインです。かっこよくない!! まぁこんな感じですよね。 そうじゃなくて、Twitterみたいな感じで画像をクリックするとシャキーン!とファイル選択画面が出てくる、そうい

  • 1