【本当にあった採用面接(121)】 面接官「最初に貴方の実力を確認します」 応募者「はい」 面接官「まず、得意なプログラミング言語は何ですか?」 応募者「ピートホンとライルスです」 面接官「Python と Rails ですね」… https://t.co/FjyzjxFvJp
![がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) on Twitter: "【本当にあった採用面接(121)】 面接官「最初に貴方の実力を確認します」 応募者「はい」 面接官「まず、得意なプログラミング言語は何ですか?」 応募者「ピートホンとライルスです」 面接官「Python と Rails ですね」… https://t.co/FjyzjxFvJp"](https://cdn-ak-scissors.b.st-hatena.com/image/square/50f11a814b01a842e0148a1f71482d7fe9bc8e41/height=288;version=1;width=512/https%3A%2F%2Fpbs.twimg.com%2Fprofile_images%2F875608588458131456%2FbTSQG-Qy.jpg)
Ubuntu 14.04 は 2014 年 4 月にリリースされた比較的新しい Linux OS ですが、普通に sudo apt-get install ruby を実行すると、古い Ruby 1.9.1 がインストールされます。sudo apt-get install ruby2.0 とすれば Ruby 2.0 がインストールされますが、デフォルトの状態では最新の Ruby 2.1 をインストールする方法がありません。 しかし、brightbox/ruby-ng という名前の PPA (Personal Package Archive) を APT リポジトリとして登録すれば、apt-get コマンドで Ruby 2.1 をインストールできるようになります。 手順は以下の通りです: $ sudo add-apt-repository -y ppa:brightbox/ruby-ng $
PHPerがRailsデビューしてWebAPIを作りRSpecでテスト書いてCap3/CircleCIでデプロイして分かった事を1ヶ月前の自分に教えたいので、まとめてみたRubyPHPRailsRSpec タイトル長い。すまぬ。PHPerとして約10年近く。Ruby自体は案件によってちょこっとだけ触ったことがある程度。Rails自体を本格的にさわるのは今回が初めて。PHPだとCakePHPを中心にZend/Symfonyなどいくつか。そんな僕が今回、Rails4デビューをして、WebAPIを作り、RSpecでテスト駆動開発風味で、GitHubプルリクベースの、CircleCI経由デプロイをするまでの開発の流れをひと通りやってみて、分かったことがいくつかあったので、それをまとめてみた。過去の自分のために。 注意点としては、今回作ったのはWebサービスではなく、スマホゲーム(ネイティブ)のサー
r7kamura.hatenablog.com や r7kamura.tumblr.com のように任意のサブドメインを利用するアプリをRailsで開発しているときに、Herokuにデプロイして独自ドメインを設定することなく何としてでも *.herokuapp.com ドメイン下で動作させるという、極めてニッチな情報について説明します。 背景 *.*.herokuapp.com は使えない まず前提として、Herokuで利用する *.herokuapp.com のドメイン下では、r7kamura.myapp.herokuapp.com のようにサブドメインを2つ重ねるような利用方法は許可されていません。そのため、独自ドメインを設定するなど、何らかの対策を講じる必要があります。 雑な検証環境としてHerokuを利用したい 本番環境では流石に独自ドメインを設定して運用すると思いますが、検証用の
インストール Chocolatey Windowsのパッケージ管理ツール。 @powershell -NoProfile -ExecutionPolicy unrestricted -Command "iex ((new-object net.webclient).DownloadString('https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%\chocolatey\bin Ruby choco install ruby Ruby Development Kit choco install ruby.devkit Ruby on Rails gem install rails --no-ri --no-rdoc 確認 C:\>rails --version DL is deprecated
まともな文章にしたいのだけど、そうする余力がないので、記録のために箇条書きでメモ書きを残します。独学でRuby (on Rails)を学ぶために、まず初学者向けのまともな情報が少ないし、僕以上の事例はそういないと調べて思ったのと(自分で言ってすみません)、これから学ぶ人が増えるだろうから、その参考になればとも。 2015年5月20日 追記 → ※採用できたため募集終了。ありがとうございました。 開発メンバーを募集しています。意欲と能力を兼ね備えた若者を歓迎します。スキルは、この記事を書いた当時の僕くらいあればokです。 30ruby.hatenablog.com 2017年11月23日 追記 フロントエンジニアを募集します!やる気があって、実務経験あって、EdTechの本命として教育を根本から変えていくというミッションに共感していっしょに走ってくれる方を探してます! www.wantedl
DBのスキーマ、皆様どのように管理されているでしょうか。 Railsを利用されている方の多くは、ActiveRecordのマイグレーションを利用して管理をされているかと思います。 私もいままでいくつかのRailsプロジェクトに関わってきましたが、 ほぼ全てのプロジェクトでActiveRecordのDBマイグレーションを利用してきました。 (一部のプロジェクトはActiveRecordを使っていないため、マイグレーションも独自のものを利用しています) ActiveRecordのマイグレーションでは、DBスキーマ変更の差分情報をマイグレーションスクリプトとして保存しておきます。例えば、新しいテーブル「users」を作成する場合は、下記のようなマイグレーションスクリプトを作成します。 class AddUsers < ActiveRecord::Migration def up # ここにマイグ
革命的に速いとされるRuby用の新しいアプリケーション・サーバー「Raptor」のサイトが公開され期待を煽っています(Hacker News)。 公式サイトによると、RaptorはRailsやSinatraなどを動かすための新しいアプリケーション・サーバー。最適化されたHTTPエンジンにより従来のアプリケーションサーバーと比較して高速に動作し、Unicornの最大4倍、PumaとTorqueboxの最大2倍の速度で動作するとのこと。 現在まだ何もダウンロードできるものは公開されたおらず、パブリックベータ版のリリース日は2014年11月25日に設定されています。メールアドレスを登録しておくと、状態が更新されるか、あるいは第三者のレビューが公開されたときなどにメールで連絡してくれるようなので気になった方は登録してみてはいかがでしょうか。 ちなみに誰が開発されているかということに関しても「We
Active Jobとは? Ruby on Rails(以下Rails) 4.2からバックグラウンドでジョブを実行するActive Jobが利用できるようになりました。 Active Jobを利用することによって、メールの送信や、バッチ処理などをバックグラウンドで実行することが可能になります。 Railsで利用できるバックグラウンドでのジョブ実行の仕組みとしては、Delayed Job, Resque, Sidekiqなどがありますが、Active Jobはこれらのアダプタとなって動作します。 Active Jobは、ジョブスケジューリングを抽象化するAPIを備えており、異なるジョブ実行の仕組みに移行(たとえばDelayed JobからResqueへ移行)しても、コードをほとんど変えることなく実行することができます。 Active Jobを使うための準備 Resqueのセットアップ 今回は
Rails Style Guideに載っていることが分かれば大体Rails書ける気がしました。もちろん実際に書けるというのと、知識として知るのは全く別のことだと思うのですが、知識としては要点がかなりおさえられている気がしました。 Rails Style Guideで言っていることが分かれば大体分かってる もちろんRails Style Guideは個々の単語(ActiveRecordとかMigrationとか)が分かっている前提で書いてあるので、その分のハードルは高いのですが、逆にここで書いてあることが理解できれば大体Railsのコードが書けるし読めるという到達点が示されている、と捉えることもできます。 昔流行った遅延学習法の話に遡るわけでもないのですが、1から積み上げで勉強していくのも退屈だし、0の段階からいきなりコードを書くのも若干ハードです。何より、知識としてどこまで学べば良いのか分
技術部の鈴木 (@eagletmt) です。 クックパッドでは8月に本体アプリケーションや API サーバ等で使われている Rails のバージョンを 3.2 から 4.1 へ順次アップグレードを行いました。 アップグレードは主に松田さん (@amatsuda) と私で進めました。 この記事ではアップレードの際に遭遇した問題の一部を紹介します。 MySQL strict mode の有効化 MySQL を使っている場合、Rails 4.0 からデフォルトで @@SESSION.sql_mode = 'STRICT_ALL_TABLES' が最初に実行されるようになりました (Ruby on Rails 4.0 Release Notes) 。 これを無効化するために database.yml で strict: false という設定が用意されています。 しかし、同じく Rails 4.0
前職と現職で2アウト案件。 Railsに限らないけど、ログインユーザの情報を変更するときは current_user みたいな変数を変更するんじゃなくて、DBを引き直して更新しましょうって話。 ダメな例 class ProfileController def update if current_user.update(profile_params) redirect_to :root else render :edit end end end 良い例 class ProfileController def update @user = User.find(current_user) if @user.update(profile_params) redirect_to :root else render :edit end end end なんでだめなの? バリデーションエラーが起きた時に
ActiveRecordでN+1クエリを潰すためにeager loadingを行う場合、preloadやincludesやeager_loadが役に立つ。 Preload, Eagerload, Includes and Joinsという記事にそれらの違いがよくまとめられているんだけど、includesが挙動を変える条件があまり正確に書かれていなくて自信が持てなかったし、そもそも記事が古いのでRails4.1.5のソースを読んで調べた。 せっかく調べたので、全体を通して日本語でまとめてみようと思う。 User.joins(:posts).where(posts: { id: 1 }) # SELECT `users`.* FROM `users` INNER JOIN `posts` ON `posts`.`user_id` = `users`.`id` WHERE `posts`.`id
本当は、RubyWorld Conf辺りでこういう内容も交えてなんか話せればいいなあと思ってたんだけど、CFPに落ちたのでQiitaにポエムを書いてみました。 Railsはそれなりに学習コストはかかりますが、慣れてくるとデフォルトで便利なものが揃ってるしサードパーティライブラリも豊富で、未だに最も便利なWebアプリケーションフレームワークの一つだと思います。 なので、最近のスタートアップ界隈ではRailsで開発をスタートする、という話をよく耳にします。(個人の感想です) しかし、Railsは本体に新しい要素をガンガン取り入れてくるので、バージョンアップのサイクルはかなり早く、それに追従していくのはそれなりに大変です。 Railsで開発をする場合には、一旦レールに乗ったらプロダクトが死ぬまで走り続ける覚悟が必要です。(時速60km以下になったら爆発する) それを最初に理解しておかないと、あっ
JavaScriptは設計が難しい。経験上、すぐグシャグシャになってしまう。よくわからなくなる。もちろん、私のスキル不足というのはあるだろうけれども、スキルが不足してるのはしかたないので、学習は続けることは前提であるにしても、技術的に解決できるなら技術に頼りたい。そうした意味で、いわゆるAltJSの中ではTypeScriptが有望だろうと思う。 RailsとTypeScript TypeScriptを使うにしても、それ単体で使うというシーンは、Webアプリケーション開発という文脈ではあまりない。たとえば、Railsで開発しているWebアプリケーションのフロントエンドを構成する言語として使うことになるだろう。その際、まず考えるべきことは、Asset Pipelineとどう折り合いをつけるかということだろう。 Asset Pipelineは、以下の機能を担っている: 拡張子(例:applica
こんにちは、hachi8833です。これまでチマチマ翻訳してきたRails Guideへのリンクをご紹介します。ガイド全体から見ればまだ半分ぐらいですが、サイズの大きいファイルから先に翻訳を進めてきたので、残っているのは比較的小さなファイルです。 注意: これらのファイルは今のところ翻訳が完了しただけであり、レビューなどはまだ行われていません。各人の責任でご利用ください。 補足: Githubに置いたことでmarkdownは簡易整形されていますが、画像は表示されません。Railsガイド ガイドラインに記載されている方法で Railsガイドをビルドすれば画像+CSSのあるガイドが得られます。 ファイル間のリンクはビルドが前提なので、そのままでは無効です。 訳していて怪しいと思った箇所には●を付けてとっとと先に進んでいます。 原文に忠実な訳とは限りません。原文より情報を増やしたり言い方を変えて
こんにちは、hachi8833です。 今回は棚卸しとして、弊社CTOのbabaさんによるRails勉強会スライドから引用して記事にします。 勉強会自体はRails 3.x時代のものなので既出が多くなっていますが、棚卸しも兼ねて今のうちに記事にいたしました。 非同期処理 言うまでもなく、リクエストからレスポンスまでの時間が長くなるほどユーザー・エクスペリエンスの質が低下します。これを改善するためにさまざまな工夫が必要になるわけですが、その中の一つとして、時間のかかる処理をバックグラウンドで実施しておくというのがあります。 cron 最も素朴な方法はやはりunix標準のcronを使って定時に出力データを準備することでしょう。この場合、起動用スクリプト(rakeなど)やジョブ管理は自分で作成する必要があります。 delayed_job delayed_job gemを使用すると、ジョブをActi
モータースポーツとWebプログラミングの両方を知る人にとっては大きなニュースです。 タイトルの通り、Railsの作者として知られるDHHがルマン24時間耐久レース、アマチュアクラスで1位になったとのことです。(全体では17位)まさかこのサイトからスポーツニュースのサイトを参照するとは予想外ですが、結果を伝えるニュースにも「DHハンソン」の文字が。 WikipediaのDHHのプロフィールによると、ルマン24時間耐久レースへの参戦は今年で3年目で、写真と並んで彼の「趣味」であるとのこと。またSimple Talkのインタビューの記事によるとシルバーストーンやスパなどルマン以外のレースに参戦しているようです。 https://www.simple-talk.com/opinion/geek-of-the-week/david-heinemeier-hansson-geek-of-the-wee
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く