タグ

2014年9月22日のブックマーク (27件)

  • add_reference来てた | blog.nomnel.net

    Rails4.0からadd_reference使えるようになってた. rails g migration AddPiyoToHoges piyo:refernces とかすると class AddPiyoToHoges < ActiveRecord::Migration def change add_reference :hoges, :piyo, index: true end end なファイルが出来て rails db:migrate するとdb/schema.rbで create_table "hoges", force: true do |t| t.integer "piyo_id" end add_index "hoges", ["piyo_id"], name: "index_hoges_on_piyo_id", using: :btree みたいになる. 便利. 参考 ad

    add_reference来てた | blog.nomnel.net
  • switch_point について紹介した - eagletmt's blog

    もう数ヶ月くらい前になるけど Rails (ActiveRecord) で R/W splitting を行う switch_point という gem を書いた。 Rails アップグレード作業の中で、魔改造された acts_as_readonlyable をメンテすることに嫌気がさして、もっとマシな実装方法があるはずと思って勢いでコアの実装をして、それから実際のアプリケーションに組み込んで番に投入していきながら機能追加やバグ修正を重ねて今の形になった。 先日の RubyKaigi 2014 の LT で、R/W Splitting in Rails というタイトルで switch_point の紹介をした。 今まで使い方を真面目に書いてなかったけど、LT 内で軽く紹介しつつ会期中に典型的な使い方を README に書いた。メソッドやクラスのドキュメントは全然書いてない (要るのかな…

    switch_point について紹介した - eagletmt's blog
  • Big Sky :: 21 世紀のエディタである Atom を最強にする

    Atom 最高ですね!! でも、Atom は 21 世紀のエディタです。まだ 21 世紀になって 14 年しか経っていないので、20 世紀最強のエディタに比べてまだまだ足りない機能があるのはしょうがないですね!! 86 年後に勝負しよう!! って感じですね。 みんなが拡張書けば 86 年がドンドン縮んでくると思うのですが、ぶっちゃけまだまだです。 なので、最強にするための拡張書いてみました。 Atom で今開いているファイルを Vim で開く拡張です。 「あー、Vim だと xxx 出来るのに〜」 とか脳みそがまだ 20 世紀な時とか 「あー、このファイルデカすぎて Atom で編集すると重い……」 みたいなかわいそうな作業している時とか(2050 年位のマシンだとさくさくだと思いますけど!!)にお使いください。 21 世紀に戻る command! OpenAtom !start atom

    Big Sky :: 21 世紀のエディタである Atom を最強にする
  • ServerEngine at RubyKaigi 2014 - Go ahead!

    RubyKaigi 2014でServerEngineについて発表してきました. 最初はFluentdで発表しようかと思ったんですが,別の有用なプロジェクトの話もそろそろした方がいいかな,ということでServerEngineにしました. @sonotsさんがFluentdの発表をしてくれたので,被らなくて良かった… 画像は技評さんから. 以下がスライドです.書いてないことも発表では色々と話したので,動画もセットで見た方が良いです. fluent/serverengine ServerEngineはTreasure Dataで開発・運用されている分散キューや分散スケジューラ,それとFluentdなどの経験を元に,汎用的な部分を抽出してフレームワークにしたプロダクトです.発表で言及した機能の他にもBlockingFlagなどのユーティリティがあるので,Rubyでデーモンやバッチワーカーを書くと

    ServerEngine at RubyKaigi 2014 - Go ahead!
  • 関数型プログラミングとオブジェクト指向の抜き差し可能な関係について整理して考える - モナドとわたしとコモナド

    Googleで適当に検索すると とズラリと出てくる。 オブジェクト指向 v.s. 関数型プログラミング 関数型とオブジェクト指向という一見相反するプログラミングパラダイムの併用について理解した プログラマが知るべき97のこと/関数型プログラミングを学ぶことの重要性 新人プログラマに知っておいてもらいたい人類がオブジェクト指向を手に入れるまでの軌跡 関数型プログラミングとオブジェクト指向の抜き差しならない関係について整理して考える とそれなりに参考になりそうな情報はあるものの、無駄に複雑化されたオブジェクト指向をストローマンにするような記事ばかり(それだけ今までのオブジェクト指向にみんなうんざりさせられているのだろう)で、そろそろきちんと自分自身「関数型プログラミングとオブジェクト指向の切り離され方」についてはっきりさせておきたい、と考え、概念整理した結論を書きます。 まず端的な結論 結論を

    関数型プログラミングとオブジェクト指向の抜き差し可能な関係について整理して考える - モナドとわたしとコモナド
  • Pry 0.10.0でundefined method `pager&#39; - ぴよログ

    Rails4でデバッグ用にPryを入れようと思ってGemfileにこんな風に書いた。 group :development do gem 'pry' gem 'pry-rails' gem 'pry-byebug' gem 'pry-stack_explorer' end これでrails consoleを起動してゴニョゴニョしているとなんだか見慣れないエラーが… (pry) output error: #<NoMethodError: undefined method `pager' for nil:NilClass> Railsのせいかどうかを確認するためにPry単体で起動してみてもダメだった。 % pry [1] pry(main)> str = "hogehoge" (pry) output error: #<NoMethodError: undefined method `pag

    Pry 0.10.0でundefined method `pager&#39; - ぴよログ
  • MYSQLの関数 COALESCE - Qiita

    COALESCE関数は任意の個数の引数を取り,引数の最初の非NULL値を返します。非NULL値が存在しない場合のみNULLを返します。 使い道 うまく使うことで条件分岐の制御構造として利用可能。 SELECT shop.name, COALESCE( shop.building_name, shop.area_name, "地域情報なし" ) as spot FROM shop .... 複数カラムの内容を段階的に突っ込んでいく、みたいなことが可能。 上の例だとspot列として店舗のビル名を、ビル名がnullの場合エリア名を、エリア名がnullの場合"地域情報なし"の文字列を入れる、って感じになる。 英語的に 読み方は「コーアレス」。後アクセント。ラテン語由来でスペルと音を紐付けるのが厳しい。 意味は「合体」。まぁそんなとこか。 Register as a new user and use

    MYSQLの関数 COALESCE - Qiita
  • Rails 4 で turbolinks をオフにする方法 - Qiita

    turbolinks について Rails 4 から turbolinks という機能がデフォルトで bundle されるようになった。 http://kray.jp/blog/must-know-about-turbolinks/ ページ遷移をすべて ajax でやってくれるが、割りとおせっかい機能。 しかも jQuery と競合するから jquery-turbolinks を gem で入れることで回避するとかやめてほしい。 こういう機能はぜひともプラグインで提供していただきたい。 turbolinks を切る さっそく turbolinks をオフにする。 Rails project 新規作成 turbolinks が bundler で最初に install されてしまうので、一旦 --skip-bundle をつけて skip

    Rails 4 で turbolinks をオフにする方法 - Qiita
  • RailsでECサイトを構築3 日本にあわせる~spree | | Scimpr Blog

    主にアドレスを見ながらspree/core/apps以下を探す テンプレートを改造する例えば、住所入力画面を訂正したいとき、アドレスをみるとcheckout/だからapps/views/spree/checkout以下を解読していくと、住所入力のフォームは_address.html.erbで書いているとわかる テンプレートと同じディレクトリ構成にして自分のアプリのapps/views/spree/checkout/_address.html.erbにコピーすればOK 請求用住所と配達用住所の二箇所のフォームを日向けに訂正すると、こんな感じになる デフォルトの国を変更するgroups.google.com/forum/?fromgroups=#!topic/spree-user/pftrAWp-7U4 リンク先を参考に、apps/model/spree/address.rbをみていくとde

    RailsでECサイトを構築3 日本にあわせる~spree | | Scimpr Blog
  • RailsでECサイト構築2 注文してみる~spree | | Scimpr Blog

    前提 RailsでECサイト構築~spree さっきは日に発送できなかったので、最小限の設定をして注文から入金・発送までの一連の流れをみてみる 設定通貨の設定 計算はドルベースでどこかでレートを取得して換算してるみたい? ゾーンの設定配達先などのもとになるゾーンを設定する 配達先の設定配達カテゴリーは空欄にしておくこと 都道府県の設定1個1個入れるのは面倒くさいから、とりあえず東京だけ 設定完了これで発送処理ができるはず 商品詳細からカートに追加して.属性っていう日語が気になる. カートを確認してレジに進むを押す すると登録の画面が出てくる.新規アカウント作成を選択. パスワードは6文字以上で 無事登録すると、次は請求先住所と発送先住所の入力.デフォルトがアメリカなのが気になる 次は配送方法を選択.さっき作成したのが出てくる 支払方法を選択.クレジットカードか現金.日語化されてない.

    RailsでECサイト構築2 注文してみる~spree | | Scimpr Blog
  • RailsでECサイト構築~spree | | Scimpr Blog

    spree install Would you like to install the default gateways? (yes/no) [yes] Would you like to install the default authentication system? (yes/no) [yes] Would you like to run the migrations? (yes/no) [yes] Would you like to load the seed data? (yes/no) [yes] Would you like to load the sample data? (yes/no) [yes]

    RailsでECサイト構築~spree | | Scimpr Blog
  • Rails で外部キー制約 | そんなこと覚えてない

    外部キー制約は好きですか? O/RマッパーしててもなるべくDBの力は借りたいです。 ということで、Ruby Toolboxで foreign を検索して、ちらちら見て一番人気のforeignerを選びました。基的にはデータベースに丸投げなので Rails4 でもいまのとこ問題なく使えております。 インストールは Gemfile に: gem 'foreigner' と追加して bundle install あとはマイグレーションで: create_table :comments do |t| t.references :post, null: false, index: true t.foreign_key :posts, dependent: :delete end としておきました。 ついでに確認。 存在しない 外部キーを指定すると保存を失敗する確認。postgresの例: Comm

  • Rubyのcase式と===演算子について - しばそんノート

    前フリ 奥様、知ってらした?Rubyのcase式ってすっごくパワフルなんですって!単なる同値判定で振り分けるだけじゃなくて、例えばこんなこともできちゃうらしいんですのよ! case gets.chomp when /おはよう/ puts 'おはようございます、お目覚めはいかがですか?' when /こんにちは/ puts 'こんにちは、いい天気ですね。' when /こんばんは/ puts 'こんばんは、遅くまでお疲れ様です。' else puts '何か御用でしょうか?' end あたくし、今までcase式の実力を見くびっていましたわ…! カラクリ どうしてこんなことができるのかというと、リファレンスマニュアルにも書いてあることなのですが、case式は===演算子を使ったif〜elsif〜end式と等価な処理を行うように実装されているからなんですね。 要は、この===演算子がキモなわけで

    Rubyのcase式と===演算子について - しばそんノート
  • 「失敗を活かす」を実現する仕組みづくり - ワザノバ | wazanova

    http://vimeo.com/94950270 1 comment | 2 points | by WazanovaNews ■ comment by Jshiike | 約2時間前 ミスを許さない組織って嫌ですよね。月曜日の朝に会社に行くのがとにかく苦痛だった時期があります。しつけ的な規律をもたらすという一定の効果はあったかもしれませんが、ミスをしないように、しかられないようにするために仕事の進め方が最適化されていって、顧客がどう思うかよりは、上司の顔を伺うところに皆が全力を注ぎはじめます。 そんな会社は反面教師に。また最近は、blameless postmortem(個人批判をしない建設的な障害の振返りミーティング)というのも流行言葉。「そうだそうだ、もっと前向きであるべきだ。」と思いつつ、しかし難しいのは、ユーザに悪影響を与えるものを減らそうとする気持ち。その気持ちを持つことが

  • [Kubernetes] Kubernetesとgoogle/docker-registryを使ったPrivate Docker Registry開発パターン

    Docker番環境で運用しようと考えるとどこにPrivateなDocker Registryを建てるかというのが結構大事になってきます。 番サーバ上などでDockerfileをビルドするのもできなくは無いですが、 できれば別サーバでビルドして、Docker Registryに突っ込んでおくほうがパターンとしては良さそうです。 今回はGoogle Cloud Storageをdocker-registryとして扱えるgoogle/docker-registryと Kubernetesを使って開発を行っていくパターンについて考えたいと思います。 最終イメージ 最終的なイメージは以下になりました。 後半にこの環境の構築方法を書いていきます。 解説 環境周り GCP上にはKubernetesをいれており、kubernetes-master 1台(図上には無し)と 複数台のkubernetes

    [Kubernetes] Kubernetesとgoogle/docker-registryを使ったPrivate Docker Registry開発パターン
  • stackprofを使ってみる - CubicLouve

    追記 2014/09/21 FlameGraphの出し方を追記しました 追記 2017/08/13 stackprofの原理をまとめました。 spring-mt.hatenablog.com rubykaigi 2014終わりましたね。 スタッフの皆様、当にお疲れ様でした。 で、3日目のkeynoteを聞いて、stackprofは使いこなせんとあかんものやと思って、早速試してみました。 RubyKaigi 2014 | Ruby 2.1 in Production stackprof Gemfileにgem 'stackprof'って書いて、bundle installすればOKです。 サンプリング sampleスクリプトはこちら sample stackprof で、StackProf.runが入ってる場合と、入ってない場合の実行時間はこんな感じ 入っている場合 % time bund

    stackprofを使ってみる - CubicLouve
  • MySQLトラブル解析入門

    第5回中国地方DB勉強会で発表したスライドです。MySQLでよく起きる問題について、傾向と対策をまとめています。Read less

    MySQLトラブル解析入門
  • Ruby嫌いがアンダースタンディングコンピュテーションを読んで - ぐるぐる~

    アンダースタンディング コンピュテーション―単純な機械から不可能なプログラムまで 作者: Tom Stuart,笹田耕一(監訳),笹井崇司出版社/メーカー: オライリージャパン発売日: 2014/09/18メディア: 大型この商品を含むブログ (2件) を見る 一番最初にはっきりさせておきますが、Rubyは嫌いな言語です。 が、このRubyが嫌いな自分でもいいだと言える*1でした。 自分が対象読者に入っているかどうかは実際に読んでみるまで微妙かな、と思っていましたが、とても楽しめました。 以下、書評です。 Rubyという選択 説明用のコードとして書はRubyを使っていますが、 これに関してはその理由が1章にあります。 私はその明瞭さと柔軟さに魅かれてRubyを選びました また、続けて 書にはRuby独自の機能に依存しているところはありません。 そのため、もしあなたにとってわか

    Ruby嫌いがアンダースタンディングコンピュテーションを読んで - ぐるぐる~
  • 古いプログラミング言語がなくならない理由 | readwrite.jp

    今日よく知られているプログラミングの多くは、古い言語として取り上げられるに十分な歴史を持っている。PHPは20年、Pythonで23年、HTMLは21年で、RubyJavaScriptは19年だ。Cなどは42年もの歴史がある。 誰もこの様な事になるとは思いもしなかっただろう。今でも出版されている、世界で最初のCの教の共著者であるコンピューターサイエンティスト、ブライアン・カーニハンですらだ(C自体は同じの共著者であるデニス・リッチーによるものだ。彼は2011年に亡くなっている)。 「編集者とこのを5000部売れたらなという話をしたのをなんとなく覚えている。もっといいものにも出来たが、学生が2014年になってもあのを使っているなど考えもしなかったことだ」と、カーニハンは最近のインタビューで答えてくれた。 Cがあまりに長く使われていることから、グーグルが今でもCを使って解決する問題を

    古いプログラミング言語がなくならない理由 | readwrite.jp
  • GROUP BY を使用せずに HAVING を使う - Qiita

    例えば下記のように複雑な条件に基づいてレコードを抽出する場合、WHERE を使うと残念なことになります。 SELECT T.id, ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) AS stat FROM tbl T WHERE ( CASE WHEN /*難解極まりない条件1*/ false THEN 1 WHEN /*難解極まりない条件2*/ false THEN 2 WHEN /*難解極まりない条件3*/ false THEN 3 ELSE 0 END ) = 2 とても保守性が低いと思います。 WHERE を無くして stat を使用してアプリケーションレイヤーで絞り込むことも出来ますが、そうす

    GROUP BY を使用せずに HAVING を使う - Qiita
  • 作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい

    先行発売で、検索エンジン自作入門を購入しました。まだペラペラと眺めている状況ですが、これが非常に面白いです。 「検索エンジン自作入門」は、集めた文章をいかに整理するかをテーマとして扱っているです。整理するという意味は、検索エンジンを利用するというライフハック的な意味ではありません。整理する為の検索エンジン自体を自分で作ることで理解するという、極めて硬派なです。 「検索エンジン自作入門」とは? 「検索エンジン自作入門」は、未踏IT人材発掘・育成事業にスーパークリエータに認定された山田浩之氏と、Senna/groongaの開発者の末永匡氏の共著です。検索エンジンについて語らせたら、日でこれ以上の人たちはいないだろうという組み合わせです。ということで、内容は非常に濃いのですが、難しい内容を解りやすく解説されています。 一方で、扱っている内容は非常にマニアックです。下に目次付けておくので見て

    作って覚える転置インデックス、「検索エンジン自作入門」 - プログラマでありたい
  • 各OSのリリース日とサポート終了日を表にまとめてみた - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? ルール 随時更新 ある程度触っているか興味があって、かつ書きやすいものだけ 原則としてサポート中のものと可能な限りその1つ前のもののみ記載 RTM(Release To Manufacturing: 量産開始)とGA(General Availability: 一般公開)が共に設定されている場合はGAをリリース日とする リリース日は資料によってまちまちなことがあるので、その場合一番信頼性の高そうなものをソースにしている 存在する場合、メーリングリストへの通知メールの日付を正としている。これはサポート終了日(End Of Life: EO

    各OSのリリース日とサポート終了日を表にまとめてみた - Qiita
  • Rack applicationのプロファイリングにはrack-lineprofが便利 - k0kubun's blog

    RubyKaigi 2014行った。良い発表がいろいろ聞けたんだけど、最近ISUCONに向けてwebアプリのチューニングに興味があったので特にfinal keynoteが興味深かった。 その中で紹介されていたtmm1/rblineprofが行ごとの実行時間を表示してくれるのでとても便利そうだったんだけど、GitHubではpeek/peek-rblineprofというRails用のプラグインでrblineprofを活用しているので、ISUCONでおそらく使用されるであろうsinatraでどうやって使うか考えていた。 kainosnoema/rack-lineprofというgemがその用途に便利そうだったので紹介したい。 使い方 rack-lineprofはRack middlewareで、まず以下のようにuseする必要がある。 require 'rack-lineprof' class My

    Rack applicationのプロファイリングにはrack-lineprofが便利 - k0kubun's blog
  • スクリプトインジェクション入門 - Qiita

    はじめに 今回の記事は PHP を想定しています。 PHP は WEB サイトで最も使われていて、初心者がとっつきやすく、セキュリティーホールのあるシステムを最も多く生み出し続けている言語ですよね( ̄▽ ̄;) そこで WEB プログラミングの初心者の方をターゲットに、出来るかぎり分かりやすく書いてみます。 というのは建前で、今週末にある PHP セキュリティのお勉強会の予習です。 記事の内容を他人の公開サーバーで試すと犯罪になる場合もあるので注意してね。 セキュリティを確保するにはシステムのアップデートが欠かせませんが、PHP は後方互換性に乏しく、バージョンアップが高コストなため、問題のあるバージョンのまま放置されたシステムになりやすく危険な言語だと思っています。 これは Ruby も同じで、私が言語を選べるなら、どちらも使いません。 堅い言語なら Java か C#(ASP.NET)、

    スクリプトインジェクション入門 - Qiita
  • ウェブリブログ:サービスは終了しました。

    「ウェブリブログ」は 2023年1月31日 をもちましてサービス提供を終了いたしました。 2004年3月のサービス開始より19年近くもの間、沢山の皆さまにご愛用いただきましたことを心よりお礼申し上げます。今後とも、BIGLOBEをご愛顧賜りますよう、よろしくお願い申し上げます。 ※引っ越し先ブログへのリダイレクトサービスは2024年1月31日で終了いたしました。 BIGLOBEのサービス一覧

    ウェブリブログ:サービスは終了しました。
  • https://staff.aist.go.jp/tanaka-akira/pub/rubykaigi2006-06-10.pdf

  • 僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記

    昨日 @bekkou68 さんに「前島さんってどうやってRubyRails関連の情報を収集しているんですか?」って聞かれたのでまとめてみます。とりあえず海外のブログ限定で。日ブログ編は気が向いたらやります…。 RailsCasts 有名すぎて説明不要かもしれませんね。毎週2つ(うち1つは有料購読が必要)の Rails 関連動画をアップロードしてくれているサイトです。良質な情報を定期的に届けてくれるすばらしいサイトですね。1ヶ月9ドル払って有料購読する価値は間違いなくあると断言できます。動画中で紹介しているライブラリの情報もすばらしいですが、コード例もかなりRailsっぽく綺麗に書かれていて大変参考になります。 RubyFlow いろいろなRuby開発者のブログの更新情報をまとめたブログ。簡単な紹介文に各ブログのリンクがくっついているような形式です。日によってばらつきがありますが、だいた

    僕が参考にしている Ruby, Rails の情報源まとめ(海外ブログ編) - おもしろwebサービス開発日記