validates :email, format: { with: URI::MailTo::EMAIL_REGEXP, message: "Emailに使える文字のみ入力してください" }

行ってきました。

Image from Gyazo

ウィーンのオシャレさにアウェイ感を感じていましたが、おなじみのHerokuやCookpadのブースが並び、オマエラが大挙してきてすぐにホーム感満載となりました。

Image from Gyazo

Matzのお話はRubyKaigi2018と概ね同じでしたが、AIに関して少し踏み込んだ感じでした。

Image from Gyazo

RubyKaigiとの違いを感じた点はいくつかありました。

1 発表のスケジュールがゆったり

1セッション30分で、2セッションやったら休憩。このペースは自分としては集中力に余裕ができてよかったです。

2 発表中にPC見てる人が少ない

大体RubyKaigiでは95%ぐらいPCみてるけどEurukoでは5%ぐらいしかPC見てる人いない感じがしました。発表をしっかり聞いてる感じがしてこれはいいなと思った。そもそも聞きたくない人は出ていってるのかも。

3 発表の内容がマイルド

これはRubyKaigiだけが異常だと思うんですが、Rubyの使い方の話かエモい話という感じでした。RubyKaigiはrubyやmrubyの処理系の実装の話がメインですよね。Webでの色の使い方の話などもあってRubyに限らないのかしら?と思いました。

4 アフターパーティーがクラブ

Image from Gyazo

アジア人が皆無でスーパーぼっちタイムを味わいましたが、こういうのも面白いですね。

次回

次回のEuruko2019は投票の結果、オランダのロッテルダムに決まりました。次回はどうしようかな、どうせならRuby Confにも行ってみたいですね。

Image from Gyazo

8月24, 25日にウィーンで行われるEuRuKo2018に行ってきます。

EuRuKo 2018 | EuRuKo is the annual European Ruby Conference. Join us in Vienna, Austria on August 24-25, 2018.

夏休みのバカンス半分、海外のRubyイベント見てみたい半分といった感じで、会場にもなってるARCOTEL Wimbergerというホテルに宿泊予定です。

「大したコードも書いてない分際でのこのこきてんじゃねーよ」

と思われそうですが、会社の経費としてヨーロッパに行けるチャンスなんです、すいません・・・。

RubyKaigiとの違いなどしっかり見てきたいと思います。

フィヨルドブートキャンプをはじめるのにMacが必要なのですが(習熟しているならLinuxもOK)、どれを買ったらいいのかおすすめが知りたいと聞かれるのでおすすめを。

Touch Bar無しのMacBook Pro 13インチモデル、ストレージは256GB、USキーボード

AppleのWebから買うこと。

理由

  • Touch Bar無し
    • 使ってみて意味なかったから。これなければかなり安くなる。
  • ストレージ256GB
    • dockerなどの仮想環境を使いだすと128GBでは足りなくなる。
  • USキーボード
    • セミコロンやダブルクォートなど、プログラミング言語で多用される記号はUS配列を前提に作られてるっぽいから。
  • AppleのWebから買う
    • Macは値引きほとんどしないのでどこで買っても値段は一緒。
    • 基本、カスタマイズできるのはAppleのWebかApple Storeだけ。

それはそれとして、女性はMacBookローズゴールドが多いっすね。

昨日、フィヨルドブートキャンプのミートアップ(と言う名の飲み会)をやったのですが、帰りに @lime1024さんが、

「今時分が勉強している技術がRailsアプリの何に役に立つのかわからない。体系的な地図が欲しい(意訳)」

的なことを言っていたので作ってみました。

Image from Gyazo

それぞれのカリキュラムの最初にこういう画像があって(この場合はnginxのカリキュラム)、全体のどの部分に当たるのかを示しています。

経験者にとっては当然できている脳内マップですが、はじめての人にはこういった全体像がわかるマップがあったほうが良いのかなと思いました。

Railsでやっている不動産系のWebサービスの開発に入っていただける方募集しております。

最近リリースした3ヶ月ぐらいのプロジェクトでRailsのバージョンも最新なのでまだそんなにごちゃごちゃしておりません。

現状エンジニアさんがなかなか見つからず、僕含めて知り合いの工数をかき集めてやっている状態です。

  • 僕:1日/週
  • Tさん:2日/週
  • Oさん:2日/週

3人分集めてやっと一人分といった形なので、週5日できる人がいるといいなーとお客さんから言われております。(現状だと連絡があっても常に受けられる状態とは限らないので)

使っているいる技術

  • Rails
  • Heroku(Review App)
  • CiercleCI

プロジェクトの進め方

1スプリント一週間で、毎週火曜日に振り返り・計画ミーティングをリモート(appear.in)でやっています。Issueの管理はGithub Projectでやっています。

募集要件

  • できれば週5日できる方(場合によって3日以上でも大丈夫です)
  • リモート化(常駐も可能です)
  • Railsでの開発経験がある方。

ぶっちゃけどうなの?という話には直接お答えしますので、Twitterの@komagataやFacebookでお気軽に連絡いただければ〜

UnityとRiderで作業しているときに、両方見ながら書けると楽だし、1画面のときにアプリをCmd+Tabで切り替えたときの待ち時間が気になってました。

ディスプレイが一枚余ったのを期に上下二段ディスプレイにしてみました。

Image from Gyazo

上:MITSUBISHI RDT27IWLM

下:LG UltraFine 5K Display

アーム:サンワダイレクト 100-LA031

これは・・・捗る!

フィヨルドブートキャンプで、「Rails入門と実戦の間にギャップがある問題」の解決策の1つとしてフィヨルドブートキャンプのEラーニングシステム自身の開発を(簡略化した)スクラムでやってみることをはじめました。

Image from Gyazo

ソースコードもカンバンもアジェンダ/議事録もpublicな中で、計画ミーティングと振り返りミーティングを毎週水曜日14:00-15:00で行うことにしました。

カリキュラムの中に、「Pull Requestを5回送って採用される」というのがあるので、それの解消のために参加する形です。

アジャイルな開発手法には独特の用語が多く、カリキュラムとして学んでも実際にやってみないとピンとこないと思うので、「スクールとしてのフィヨルドブートキャンプに通っている方」、「僕ら」、「企業の研修で来られている方」が混ざってやっています。

常にメンバーの出入りがあるので、チームとしてのベロシティは出していないですが、2012年から続いているこのリポジトリを入れ代わり立ち代わり開発を続けていければ面白いかなと思っています。

これが拾えないのってみんなどうしてるんだろう?

class PostsTest < ApplicationSystemTestCase
  test "GET /posts/xxxx" do
    assert_raises(ActiveRecord::RecordNotFound) do
      visit "/posts/xxxx"
    end
  end
end

例えば、「非公開のpostは見れないことをテストしたい」とかの時。begin...endでも拾えないようで困った。

unityのc#でLinqExtraShuffleで大ハマリしました。

同じListをforeachしてるのに毎回並びが違うというものです。

@monryさんが書いてくれた検証コードがコレ。

コード:

IEnumerable<int> list = new List<int> {1, 2, 3};
Debug.Log("--A--");
list.ToList().ForEach(x => Debug.Log(x));
list = list.Shuffle();
Debug.Log("--B--");
list.ToList().ForEach(x => Debug.Log(x));
Debug.Log("--C--");
list.ToList().ForEach(x => Debug.Log(x));
Debug.Log("--D--");
list.ToList().ForEach(x => Debug.Log(x));

結果:

--A--
1
2
3
--B--
3
2
1
--C--
2
3
1
--D--
2
1
3

なんでB, C, Dが違うわけ?

@monryさんに聞いてソースを見たところ原因は結果、

Shuffleという拡張メソッドはShuffleIteratorという別のIteratorを返すから」

というものでした。

list = list.Shuffle();

のところでIteratorが変わっちゃってるんですね。

データとイテレータは分かれているのだと仕組みとしては知っていても、あまり活用したり意識したりすることがなかったので盲点でした。

list = list.Shuffle().ToList();

こうやって上品な抽象的なところから汚くて臭い具象に落としてやればOK。