タグ

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

  • Rubyで日付の計算するならactive_support使っとけ - (゚∀゚)o彡 sasata299's blog

    2009年09月07日01:47 Ruby Rubyで日付の計算するならactive_support使っとけ Ruby で日付を扱うときに、active_support (rails をインストールすると一緒に入ってくるライブラリ) が凄い便利なんです!!ぐだぐだ説明するよりもコードを見たほうが早いと思うのでどうぞ。 #!/usr/bin/ruby require 'rubygems' require 'active_support' t = Time.now # Mon Sep 07 00:24:07 +0900 2009 t - 5.days # 5日前 (Wed Sep 02 00:24:07 +0900 2009) t - 1.week # 1週間前 (Mon Aug 31 00:24:07 +0900 2009) t - 2.years # 2年前 (Fri Sep 07 00:

    invent
    invent 2016/06/24
  • Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog

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

    Ansibleを使って誰でも簡単安全にサーバ構築できる仕組みを作る - (゚∀゚)o彡 sasata299's blog
    invent
    invent 2014/08/09
  • 株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog

    2014年06月14日11:05 その他 株式会社Lang-8を退職しました 報告が遅くなってしまいましたが、5月末でLang-8を退職しました。細かい話は省略しますが、気になる方は飲みの席ででも聞いてください :) ドベンチャーな環境もそうだし、添削率を改善することが出来たり、iOSアプリを開発することが出来たりといろいろな経験ができたのでほんとに良かったです!! iOSアプリに関してはいろいろとハマったこととか書きたいけどいつになることやら。。 次はまだ未定ですが、今後ともどうぞよろしくお願いします! ツイート 「その他」カテゴリの最新記事

    株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog
    invent
    invent 2014/06/14
    えっ。。株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog via @sasata299
  • 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
    invent
    invent 2014/03/28
    plist吐くのバッドノウハウでは。RailsからObjective-Cのplist形式でデータを出力する : (゚∀゚)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ロックする。このロックは特殊なロック

    invent
    invent 2013/12/12
  • 今、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文字目を表

    invent
    invent 2013/11/16
  • 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

    invent
    invent 2013/10/28
  • ActiveRecordの :include と :joins で発行されるSQLが全く違うようです - (゚∀゚)o彡 sasata299's blog

    2010年04月26日00:03 Ruby ActiveRecordの :include と :joins で発行されるSQLが全く違うようです わからないことが一杯!!今回は ActiveRecord で JOIN するために使う :include オプションと :joins オプションの違いを調べてみました。ActiveRecord 2.3.5 です。 利用するデータとしては blog has many articles な関係で、1つの blog あたり10個の記事を持っているとします。具体的にはこのような状態です。 # blogs テーブル +----+--------+---------------------+---------------------+ | id | name | created_at | updated_at | +----+--------+-------

    invent
    invent 2013/09/20
  • 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 これでとりあえず削除は出来るようになりました。ただ、そのときにこの要素自体も消

    invent
    invent 2013/08/28
    Ajaxの処理が完了したのになぜかajax:completeが発火しないときの話 - (゚∀゚)o彡 sasata299's blog
  • factory_girl で最低限知っておきたい4つの使い方 - (゚∀゚)o彡 sasata299's blog

    2013年08月22日13:26 Ruby factory_girl で最低限知っておきたい4つの使い方 みなさん、テストを書くときには Fixture Replacement として何を使ってますか?一番メジャーなところだと factory_girl でしょうか。machinist も有名ですね。シンタックスの違いのようなので基的にはどちらでも良さそうです。 参考(stackoverflowMachinist vs FactoryGirl - pros and cons In other words, both are extremely similar, just with a different default syntax. 今回は(僕が factory_girl4.2.0 を使ってるので)factory_girl4.2.0 についての話です。 インストール まずインストールし

    invent
    invent 2013/08/22
    factory_girl で最低限知っておきたい4つの使い方 - (゚∀゚)o彡 sasata299's blog
  • 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

    invent
    invent 2013/08/12
    RailsのStrong Parametersで弾かれたときにすぐに気付けるようにしてみる - (゚∀゚)o彡 sasata299's blog
  • Spring無しでRailsを使おうだなんて正気ですかッ!? - (゚∀゚)o彡 sasata299's blog

    2013年08月06日18:47 Ruby Spring無しでRailsを使おうだなんて正気ですかッ!? Railsはフレームワーク自体や関連ライブラリの読み込みがあるため、ちょっとしたコマンドを実行するだけでかなり待たされてしまったりします(サーバ起動などなど)。そこで、あらかじめRailsプロセスをロードしておき、そのプロセスから各種コマンドを実行することで高速に実行しよう!という素敵なアプローチがあります。その一つが Spring です。 インストールはこれだけ!これだけでコマンドの実行が高速になるんだから入れない理由があるでしょうか。いや、無い。 gem install spring ただ、対象はRails3.2以上なので古いRailsを使っていると恩恵が受けられないです。。そういう場合はさっさとバージョンを上げましょう。そのくらい快適です。 実際に実行時間を計ってみても(かなり適

    invent
    invent 2013/08/06
    Spring無しでRailsを使おうだなんて正気ですかッ!? - (゚∀゚)o彡 sasata299's blog
  • Rubyist なら当然知ってる!? Proc.new と lambda の違い - (゚∀゚)o彡 sasata299's blog

    2010年09月22日10:17 Ruby Rubyist なら当然知ってる!? Proc.new と lambda の違い Proc.new とか lambda ってわかりにくいですよね。ブロックと何か似てるけどどう違うの…!! っていう感じで困ります。さて、最近「メタプログラミングRuby」を読んだらその辺の話がわかりやすく書かれていたので勉強がてらブログりますよー (`・ω・´) メタプログラミングRuby 著者:Paolo Perrotta アスキー・メディアワークス(2010-08-28) 販売元:Amazon.co.jp クチコミを見る まずは前提から。この辺の話もあんまり頭に入ってなかったです。聞いた事はあるけど久しぶりに聞きましたー、みたいな。 ・Ruby ではほぼすべてがオブジェクト(うんうん。らしいねらしいね) ・だたしブロックはオブジェクトではない(ほほぉ〜) ・ブロ

    invent
    invent 2013/06/27
    Rubyist なら当然知ってる!? Proc.new と lambda の違い - (゚∀゚)o彡 sasata299's blog
  • hubコマンドを使って楽にPull Requestを送る - (゚∀゚)o彡 sasata299's blog

    2013年06月20日13:10 Ruby hubコマンドを使って楽にPull Requestを送る お仕事上、普段からいろんな修正とか改善とかを github の Pull Request ベースで進めてるんですが、プルリクエスト送るのってブラウザからだとめんどくさいですよね。何回もやる作業なのにそもそもブラウザを開いてっていうのが、、 というのもあってだいぶ前からhubコマンドを使ってます。hub pull-request でプルリクエスト送れたり、hub browse で github の各ページを開けたりとすごく便利です。ただ、そのときにちょこちょこコピペしたりしてたのがアレだったので簡単なコマンドを作りました。 # pull_request.rb # 現在のブランチ名を取得 def branch_name `git branch | grep '^\*' | cut -b 3-`

    invent
    invent 2013/06/20
    hubコマンドを使って楽にPull Requestを送る - (゚∀゚)o彡 sasata299's blog
  • fogを使ってスポットインスタンスを簡単に起動/終了する - (゚∀゚)o彡 sasata299's blog

    2013年05月28日17:52 fogを使ってスポットインスタンスを簡単に起動/終了する 最近ちょくちょくスポットインスタンスを利用するんですが、いちいちブラウザ立ち上げてぽちぽちやったりするのはめんどくさいです。また、AMIを指定してスポットリクエスト投げてるんですが、このAMIをちょくちょく変更してたので、それを都度確認するのが手間だったり。 というわけで、スポットインスタンスを楽に起動したり終了したりできるようなちょっとしたスクリプトを fog を使って書いてみました。これ、いろんなクラウドサービスに対応していて、AWSはその内の1つという感じみたいですね。こんなこと書かれてた。 fog is the Ruby cloud services library, top to bottom インスタンスの起動/終了はよく載ってるんですけどスポットインスタンスに関しての情報はあんまり無い

    invent
    invent 2013/05/28
    fogを使ってスポットインスタンスを簡単に起動/終了する - (゚∀゚)o彡 sasata299's blog
  • Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog

    2013年04月24日13:26 NoSQL Ruby Redisでランキング機能を実装してみる Redis を触ってると楽しくてニヤニヤしてしまう今日この頃です、こんにちは。 読み書きのパフォーマンス的には memcached とよく似てる感じかなーと思いますが、データが消えない(永続化)、さまざまなデータ型を持っていて用途によって使い分けられる、データ操作がアトミック、など、Redis には魅力的な特徴があります。 今回は Redis を使ってちょっとしたランキング機能を実装してみる話でも書いてみます。 Redisの環境準備 まずは Redis をインストールします。Mac だったら homebrew を使うと良いでしょう。 $ brew update $ brew install redis Redis の起動自体は非常に簡単で、このコマンドを実行するだけです。 redis-serv

    invent
    invent 2013/04/24
    Redisでランキング機能を実装してみる - (゚∀゚)o彡 sasata299's blog
  • respond_withメソッドを使うと処理をDRYに記述できる - (゚∀゚)o彡 sasata299's blog

    2012年05月07日11:49 Ruby respond_withメソッドを使うと処理をDRYに記述できる Rails には respond_to というメソッドがあり、これを使うと同じリソースに対して複数のフォーマットでレスポンスを返す処理を簡単に書けます。例えば users_controller.rb で以下のように定義すれば、/users でも /users.xml でもひとつのアクションで処理することが可能です。 def index respond_to do |format| format.html # index.html.haml format.xml { render :xml => @users } end end さらに、Rails3.0 からは respond_with というメソッドが追加されました。これを使うと処理をさらにすっきりと書くことが可能になります。 c

    invent
    invent 2013/03/04
    respond_withメソッドを使うと処理をDRYに記述できる - (゚∀゚)o彡 sasata299's blog
  • 相互添削型SNSのLang-8にJoinします - (゚∀゚)o彡 sasata299's blog

    2013年02月19日11:11 その他 相互添削型SNSのLang-8にJoinします こんにちわ。さて、以前の記事でクックパッド退職することは発表しましたが、次に何をするのかは言っていませんでした。そろそろ発表したいと思います。次は、 相互添削型SNSのLang-8 にJoinします!! Lang-8ってどんなサイトなの? 相互添削型SNSで、、といってもよくわからないと思うので具体的に説明します。 例えば僕たちが英語を書くと、英語がネイティブな人(例えばアメリカの人)がそれを添削してくれます。その代わりに、アメリカ中国の人が書いた日語を日語がネイティブな僕たち日人が添削してあげるという相互添削型のSNSです。添削を通じてまったく見ず知らずの海外の人と友達になることも日常的にあったりして感動します。 語学の学習に関してはもちろん座学は重要ですが、アウトプットしてフィードバック

    invent
    invent 2013/02/19
    な、なんだってー!! 相互添削型SNSのLang-8にJoinします - (゚∀゚)o彡 sasata299's blog
  • クックパッド株式会社を卒業します - (゚∀゚)o彡 sasata299's blog

    2013年01月31日18:37 その他 クックパッド株式会社を卒業します 私事ですが、このたびクックパッド株式会社を退職することになりました。 有給消化の関係でまだしばらく所属はしていますが、日1/31が最終出社日です。2009年の8月に入社したので、約3年半お世話になったことになります。ついこの間JOINした気がするのに早いものですね。 短い間でしたが、クックパッドの素晴らしい環境と素晴らしい仲間に恵まれて当に幸運でした。美味しいご飯もべられるし。僕の人生の中で、クックパッドJOINすることに決めたのはかなり上位にい込む素晴らしい決断だったと思います! やってきたこと せっかくなので振り返ってみます。クックパッドでは以下のようなことをやってきました。 ・HadoopやEMRを利用した大規模データ分析クックパッドという巨大なサイトへの機能追加、改善 ・新規事業へのチャレンジ

    invent
    invent 2013/02/01
    クックパッド株式会社を卒業します - (゚∀゚)o彡 sasata299's blog
  • Rails3.1から導入されたAsset Pipelineがよくわかってなかったから調べた - (゚∀゚)o彡 sasata299's blog

    2012年10月29日19:27 Ruby Rails3.1から導入されたAsset Pipelineがよくわかってなかったから調べた Asset PipelineというのはRails3.1から追加された機能で、以下のような特徴を備えています。なかなか便利そうなやつです〜。 ・cssやjsは各々一つのファイルにまとめられる(ブラウザのリクエスト回数を減らせる) ・それらのファイルは自動で圧縮/難読化される(ファイルサイズを減らして負荷軽減) ・ついでに、SassやCoffeeScriptを使ってcssやjsを記述することが可能になっている ではどういった仕組みなのか見てみましょう。 例えばRails3.2.3で新しいアプリを作成したとします。このとき、Gemfileにはデフォルトでjquery-railsが指定されています。そしてapp/assets/javascripts/applica

    invent
    invent 2012/11/29
    Rails3.1から導入されたAsset Pipelineがよくわかってなかったから調べた - (゚∀゚)o彡 sasata299's blog