タグ

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

  • Railsのlink_toメソッドでhttpsにリンクするときにonly_pathの指定を忘れたらそこで試合終了ですよ - (゚∀゚)o彡 sasata299's blog

    2009年12月07日00:13 Ruby Railsのlink_toメソッドでhttpsにリンクするときにonly_pathの指定を忘れたらそこで試合終了ですよ Railsを使ってWebサイトを開発するときに、http から https に、https から http へと遷移させたい、ということってあるかと思います。これってどうやるのかな〜と思って調べてみたのですが、どうも protocol オプションで指定してあげれば良いようです。こんな風にしてみました。 <%= link_to 'クリック', :controller => 'hoge', :action => 'fuga', :protocol => 'https://' %> ですがこれだとうまくいきません。。 ー-ニ _  _ヾV, --、丶、 し-、 ニ-‐'' // ヾソ 、 !ヽ  `ヽ ヽ _/,.イ / /ミ;j〃゙

  • ヒトメディアに入社しています - (゚∀゚)o彡 sasata299's blog

    2014年10月03日21:41 その他 ヒトメディアに入社しています だいぶ今更感はあるのですが、、 7月から「教育で世界をよくする」をビジョンに掲げているヒトメディアという会社に入社して、とある新規事業に関わっています。頑張っています。 ささたつの欲しいもの ツイート 「その他」カテゴリの最新記事

    ヒトメディアに入社しています - (゚∀゚)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
  • ActiveDecoratorでviewのコンテキストを使う - (゚∀゚)o彡 sasata299's blog

    2013年10月01日17:37 Ruby ActiveDecoratorでviewのコンテキストを使う ActiveDecorator を使っていて、定義したメソッドの中から適当なメソッドを呼びたいとき、helper_method で定義したメソッドを呼ぼうとしたらなんだかうまくいかないことがあって困りました。そもそもそんな風になるのがおかしいのかもしれないですが、、 module UserDecorator def sasata299? love_karaage? #=> NameError: undefined local variable or method end end こんな風に定義したときに、 love_karaage? メソッドが呼べないのです。view だと普通に呼べるのに!>< メソッド内の self がそのモデルのインスタンスを指してるのが原因なのかなーと思って調べ

  • 株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog

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

    株式会社Lang-8を退職しました - (゚∀゚)o彡 sasata299's blog
    suginoy
    suginoy 2014/06/15
    おつかれさまでした。 :dancers:
  • 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
    suginoy
    suginoy 2014/03/28
    iOS用のplistってDOCTYPEあるんだ。
  • 4社の合同技術勉強会で発表してきました - (゚∀゚)o彡 sasata299's blog

    2014年02月20日15:51 勉強会 4社の合同技術勉強会で発表してきました 昨日、【 ヒカ☆ラボ 】 ITベンチャーを支えるテクノロジー  今、話題の4社が合同技術勉強会を開催!! 〜ChatWork、ブラケット、Lang-8、ランサーズ〜 で発表する機会をいただいたので、Lang-8について発表してきました。 他の会社の開発環境など、いろんな話が聞けてとても参考になりました〜。利用している外部サービスはどこもだいたい同じですねぇ。 資料はこちら。 最近、直接話すことが大事だな〜と感じていたり、Team Geakを読んでいたりするので(いまさらですがすごく面白い!)その辺の影響を強く受けている感じですw Team Geek ―Googleのギークたちはいかにしてチームを作るのか [単行(ソフトカバー)]Brian W. Fitzpatrickオライリージャパン2013-07-20

    suginoy
    suginoy 2014/02/22
    "テストの文化" ごめんなさいごめんなさい。
  • rubyでsortするときに注意すること - (゚∀゚)o彡 sasata299's blog

    2008年12月12日00:09 Ruby rubyでsortするときに注意すること 今日ちょっとはまったことのご紹介(*・ω・)ノ 複数の条件でsortしたいときってありますよね。例えばperlだとこんな感じです。 #!/usr/bin/perl use strict; use warnings; my @data = qw/hoge fuga foo hoge3 foo2/; my @sort = sort { length $a <=> length $b or $a cmp $b } @data; print "@sort\n"; 長さでsortして、同じ長さだったらascii順に並べる、みたいな。結果は foo foo2 fuga hoge hoge3 こういうことをrubyでやりたかったんです。まぁ、こういう感じで出来そうじゃないですか? #!/usr/bin/ruby dat

    suginoy
    suginoy 2014/02/10
    true/falseじゃないので要注意 "nonzero? は 0 の時 nil を返し、それ以外の時は self を返す"
  • 今、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文字目を表

  • Paperclipでデフォルト画像を指定するdefault_urlの指定方法 - (゚∀゚)o彡 sasata299's blog

    2013年09月30日15:18 Ruby Paperclipでデフォルト画像を指定するdefault_urlの指定方法 Paperclip は便利ですね〜。ちょろっと設定を書くだけで、簡単に、しかも複数のサイズでファイルアップロードが出来ます。例えば User に画像を持たせてみましょう。 config/initializers/paperclip.rb なんかにこんな設定を書いて Paperclip::Attachment.default_options[:storage] = :s3 Paperclip::Attachment.default_options[:s3_credentials] = "#{Rails.root}/config/s3.yml" Paperclip::Attachment.default_options[:path] = ':attachment/:id/:

  • Spring無しでRailsを使おうだなんて正気ですかッ!? - (゚∀゚)o彡 sasata299's blog

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

  • MySQLでカラムやインデックスの追加、削除をするときのロックの話など - (゚∀゚)o彡 sasata299's blog

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

    suginoy
    suginoy 2013/12/12
    “参考までに先日250万件ほどのテーブルでカラムを追加したら50分ほど掛かりました”
  • Railsのfields_forを使ったnested attributesなデータの追加や削除をAngularJSでやっちゃおうという話 - (゚∀゚)o彡 sasata299's blog

    2013年10月18日14:06 JavaScript Ruby Railsのfields_forを使ったnested attributesなデータの追加や削除をAngularJSでやっちゃおうという話 ユーザ登録時に併せて言語の習得レベルを設定する、みたいな場合を考えます。 = form_for :user do |f| ..(snip).. # ここから .form = f.fields_for :user_languages do |form| %p = form.label :language_id, '言語' = link_to 'Remove', 'javascript:void(0)' = form.collection_select :language_id, Language.all, :id, :name %p レベル - Level.all.each do |leve

  • 迷ったら難しい方を選ぶということ - (゚∀゚)o彡 sasata299's blog

    2013年10月02日11:39 意識高い 迷ったら難しい方を選ぶということ 最近考えていることなのですがちょっと書いてみます。意識高い系です。 例えば、「どう使うんだろ??」とユーザが迷うようなページがあったときにどう解決するか。説明を追加したり、チュートリアルを入れたりといった方法もあれば、UIUXといった見せ方を工夫することで解決するような方法もあると思います。 こういうときに最近考えているのが、複数の方法があって迷う場合、まず難しい方法にチャレンジする ということ。もちろん面倒なので楽な方がいいんですが、より難しい方法で問題が解決できると余計な情報を追加する必要も無いし、サイト全体が驚くほどすっきりして「どうして今までこうじゃなかったんだ」と腹落ちすることが多いです。また、難しい方法は質的な解決策であることも多いように感じます。実装などの困難さを考えずにどちらがユーザにとって良

  • そろそろRailsのselectメソッドについて一言いっとくか - (゚∀゚)o彡 sasata299's blog

    2011年06月22日11:11 Ruby そろそろRailsのselectメソッドについて一言いっとくか いや〜 前回の記事 もそうなんですけど、最近は Rails であれやこれや作ることが多くて、フォームとかも作ったりするわけです。そうなるとたま〜にプルダウンなんかも扱うことになったりします。 テキストフォームとかラジオボタン、まぁチェックボックスぐらいまでは(慣れたので) Rails のヘルパーを使ってさらさらっとかけて良いんですが、たまに使うプルダウンはハマることが多い。ちょいちょい使い方よくわからなくてググるんですが、なかなか良い情報に遭遇できなくて結局ソースを見て解決する、というパターンが多いわけです。・・というのが時間の無駄なので、簡単にですがまとめときます>< select メソッドの定義はこんな感じになっています。 # actionpack-3.0.7/lib/actio

    suginoy
    suginoy 2013/09/18
    ささたつさんエロい “options に include_blank を設定すれば簡単です。true を指定すると空行が先頭に追加されますが、文字列を指定すればそれが表示されます”
  • Railsのcontent_tagメソッドが便利で使い方も簡単 - (゚∀゚)o彡 sasata299's blog

    2009年08月29日22:28 Ruby Railsのcontent_tagメソッドが便利で使い方も簡単 Rails には content_tag という便利なメソッドがあります。これを使うと、view がとてもすっきりと書けるんです。まずは具体例をどうぞ。 例えば view にこのような記述をすると、コメントのような HTML が出力されます。<%= ... %> のようにインライン形式で使うときには第一引数がタグ、第二引数が内容、第三引数がオプション( class とか style とか)ですが、<% ... do -%> <% ... -%> のようにブロック形式を取るときには第一引数がタグ、第二引数がオプション、第三引数がブロックになるので注意してください〜。 # view <%= content_tag(:h1, 'ふー', :style => 'color:red') %>

    suginoy
    suginoy 2013/09/10
    ブロック取るヘルパーにだいたい共通 “ブロック形式を取るときには第一引数がタグ、第二引数がオプション、第三引数がブロックになるので注意”
  • 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 これでとりあえず削除は出来るようになりました。ただ、そのときにこの要素自体も消

  • 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

  • 相互添削型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です。添削を通じてまったく見ず知らずの海外の人と友達になることも日常的にあったりして感動します。 語学の学習に関してはもちろん座学は重要ですが、アウトプットしてフィードバック

    suginoy
    suginoy 2013/02/19
    Lang-8貧乏やなかったんか…
  • クックパッド株式会社を卒業します - (゚∀゚)o彡 sasata299's blog

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

    suginoy
    suginoy 2013/01/31
    ささたつさんの背中の向こうに見える女性が気になりますね。お疲れ様でした!