浜松Ruby会議01 http://regional.rubykaigi.org/hamamatsu01/ の発表資料です。 http://mzp.hatenablog.com/entry/2015/03/29/213909 もあわせてご覧ください。
他の人が書いたRubyコードをリファクタリングしてみました。 画質を上げてから視聴してください。(720p以上 x PC全画面表示を推奨) 題材に使った問題はこちらです。 http://judge.u-aizu.ac.jp/onlinejudge/description.jsp?id=2006 リファクタリングしたコードはこちらにあります。 https://github.com/JunichiIto/Keitai-Message 見どころはこのあたりかも。 getterメソッドではなく、attr_readerを使う - 開始位置: 0:04:00 API利用者の予想を裏切るような「サプライズメソッド」をなくす - 開始位置: 0:15:45 仕様書に書かれていない「憶測に基づいた独自仕様」をなくす - 開始位置: 0:33:20 正規表現を導入してコードをシンプルにする -
ginzarb_21.md rails_adminのつらみとオススメGemについて rails_adminのつらみ カスタマイズできるようで出来ない rails_adminをカスタマイズする方法まとめ - Qiita レコード件数が一定以上になると使えない機能 ダッシュボード 何も考えずに各モデルをカウントするのでレコード件数増えるとえらいことになる。 関連を付け替えするフォーム 出したり出さなかったりを一々切り替えるのがめんどい 検索機能がほぼ役に立たない じゃあどうするか プロジェクト用のscaffoldを作る方が良いのでは? 一つのモデルに対するを管理画面を作って大まかなレイアウトを決める それをテンプレート化してlayoutとscaffoldのテンプレートを上書きする コントローラーの構成もテンプレートで上書きできる それ以上の場合はlib以下にgeneratorを書く Rails
Brewfileでパッケージ管理していたあの頃 以前、こんな記事を書いた。 Homebrewとbrewfileとhomebrew-caskでMacの環境構築 Brewfileを使えば、 $ brew bundle Brewfile これ一発で環境構築ができるという便利なコマンドだ。 今は もう うごかない その $ brew bundle 今、Homebrewで $ brew bundle Brewfile すると、冒頭画像のように Warning: brew bundle is unsupported and will be replaced with another, incompatible version at some point. Please feel free volunteer to support it in a tap. と怒られてしまう。 What? “W
言語処理100本ノック を(飽きるまで)やってみるにあたり、敢えてRubyで書いてみる。 基本的にはPythonを想定しているらしいし、そもそもNLPライブラリの充実度から言ってもPythonを使うのが極めて妥当な選択といえるだろう。そこを敢えてRubyで。 00. 文字列の逆順 puts "stressed".reverse RubyでもPythonでも大差ない。 01. 「パタトクカシーー」 str = "パタトクカシーー" puts 1.step(7, 2).map{|i| str[i]}.join やはりスライスにstepを指定できるPythonのほうが楽である。 02. 「パトカー」+「タクシー」=「パタトクカシーー」 strs = %w[パトカー タクシー] puts strs.map(&:chars).inject(&:zip).flatten.join 別解 strs =
Railsアプリケーション構築ガイド¶ 業務でRuby on Railsを利用する人のための、アプリケーション構築ガイド 最終更新日: Feb 03, 2018 Ruby on Railsは、流儀・規則に従うことで効率的なシステム開発が可能となるWebアプリケーションフレームワークです。 レールの上に乗って開発を行っているうちは、 少ないコード量で複雑なアプリケーションを 簡単に実装できる、Railsというフレームワークの強力さ、美しさを体感できるはずです。 しかし、少しでもレールから外れたアプリケーションを実装しようとすると、途端に複雑になるのも事実です。 業務アプリケーション構築の分野では、Railsの流儀とは相容れない実装を強いられる事が多々あります。 レールから外れたアプリケーションをよく考えずに実装すると、 コードが難解になり、システムのメンテナンス性が大きく下がってしまいます。
Ruby Freaks Lounge 第3回Ruby1.9の新機能ひとめぐり(中編):洗練された文法と意味論 第1回では、YARVやFiberなど有名な機能と、配列処理の強化について紹介しました。 今回は、Ruby1.9で導入された新しい文法や意味論を中心に紹介します。 ブロックパラメータ(仮引数)に関する変更 ブロックパラメータのスコープがブロックローカルに ブロック中の変数はスコープがやや曖昧でした。初出の変数の場合はブロックローカル(ブロックの終了と共に変数も消える)で、ブロックの外ですでに宣言されていた変数の場合はその変数を指す、というルールで、ブロックの外まで見ないと変数のスコープが判断できませんでした。 この問題を軽減するため、1.9ではブロックパラメータは常にブロックローカルであると改定されました。 コード1 ブロックパラメータがブロックローカルに # ローカル変数xを定
What is it? csscss will parse any CSS files you give it and let you know which rulesets have duplicated declarations. What is it for? One of the best strategies for me to maintain CSS is to reduce duplication as much as possible. It’s not a silver bullet, but it sure helps. To do that, you need to have all the rulesets in your head at all times. That’s hard, csscss is easy. Let it tell you what is
追記 カリー化を間違えてカーリー化という表記をしていたのを修正しました。 そもそもカリー化とは何か 複数の引数を取る関数は、一つの引数を取る、関数を返す関数の連続として表現できるということ、と言葉で表現しても抽象的すぎるので、ちょっと式で表してみる。 まず初めにラムダの導入 例として、ある整数に対してプラス1する関数を定義する。このような関数は、として表現できる。 ここでこの関数はplusoneという名前を与えられているが、このx + 1という関数そのものを表現するような記法があると便利だろう。そこで、をそのような記法として定義する。 この記法を用いることにより、上記のはとして表現できるようになる。つまり、関数それ自体を表す記法を導入することによって、関数の名前と、関数それ自体を区別することができるようになる。 カリー化 このような考え方が便利なのは、関数を返す関数というものを表現できるよ
こんにちは、谷口です。 ITエンジニアの皆さんの中には、最先端の技術に触れながら仕事をし続けるなら、東京にいるしかないと思っている方もいらっしゃるかもしれません。 IT業界は「首都圏一極集中」と言われていますが、現在、Ruby開発者のまつもとゆきひろ氏が暮らす島根は、「日本のシリコンバレー」を目指し、地域をあげてRubyを中心とした地域・産業の振興に取り組んでおり、全国のIT企業やエンジニア達から注目されています。 そこで今回は、3月9日(月)に新宿で開催されました『R-turn to SHIMANE -あなたがつくるRubyエンジニアライフ-』という、東京在住のエンジニア向けに島根とRubyの今を伝えるイベントに参加してきました。 島根移住やUIターン、リモート開発を考えるエンジニアにとって、実際に島根で開発をされている方のお話というのはなかなか聞く機会のない貴重なものだと思いますので、
rbenv, nvm, MySQL, redisが入ったUbuntu Vagrantfile すぐに開発に使えるVagrantfile。依存物を少なくするためにShellでプロビジョニング。 vagrant up時に各種パッケージのインストールとRubyのコンパイルが走るので、30分ぐらいかかります。初回でOSイメージが無い場合はもっとかかるかも。 Vagrant.configure("2") do |config| config.vm.box = "ubuntu/trusty64" config.vm.network :forwarded_port, guest: 3000, host: 3000 config.vm.synced_folder ".", "/vagrant" GUEST_RUBY_VERSION = '2.2.4' GUEST_NVM_VERSION = '0.30.1
Rubyによるクローラー開発技法 巡回・解析機能の実装と21の運用例 作者: 佐々木拓郎出版社/メーカー: SBクリエイティブ発売日: 2015/03/02メディア: Kindle版この商品を含むブログを見る 昨年の8月末に出版された「Rubyによるクローラー開発技法」ですが、ついに電子書籍化されました。Kindleや楽天のkobo、紀伊國屋書店のKinoppyと主要なところは押さえている模様です。達人出版会さんからも出ないものですかねぇ。 今まで、何度も電子書籍化されないのと聞かれましたが、その度に解りませんと答えていました。電子書籍化や書名などは、ほぼ出版社側の意向によって決まるので著者としては、ほぼ決定権がない事項になります。そんな中で、ようやく電子書籍化して嬉しい限りです。願わくば、紙の本の発売日と同時に電子書籍化されているのが標準になってものですね。 また、紙の方の本も依然好調
RailsがMySQLのcollationをサーバー側のデフォルトのutf8_general_ciからutf8_unicode_ciにわざわざ変えてるのどうせ大した理由じゃないだろと思って掘ってみたらやっぱり大した理由じゃなかった… https://t.co/6NeetGhTF0— Ryuta Kamizono (@kamipo) April 18, 2014 Railsでcollationとしてutf8_unicode_ci(RailsのDEFAULT_COLLATION)が採用されるのはcharsetが未指定もしくはutf8(RailsのDEFAULT_CHARSET)のときだけで、utf8mb4にすることとかは全く考慮されてない。— Ryuta Kamizono (@kamipo) April 19, 2014 @frsyuki MySQLのcharset utf8のときのデフォルト
はじめに 先月、CodeIQにビンゴカード作成問題を出題しました。 CodeIQに「ビンゴカード作成問題」を出題しました。みなさんの挑戦をお待ちしてます! - give IT a try このビンゴカード作成問題、ありがたいことに50人もの方が解答を送ってくれました。 挑戦してくださったみなさん、どうもありがとうございました。 前回のエントリでは優秀作品ベスト3を発表しました。 今回のエントリはその続編です。 一部の解答(5本)について、僕が実際にいただいた解答を採点しつつ、リファクタリングする様子を動画に撮っておいたので、その様子をお見せしちゃいます。 おさらい「ビンゴカード作成問題」とは? ビンゴカード作成問題とはその名の通り、Rubyを使ってビンゴカードを出力する問題です。 Bingo.generate_cardというメソッドを呼ぶと以下のような文字列を出力する、というのが要求仕様で
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く