the industrial

都内で働くITエンジニアの日記

ransackで条件追加メモメモメモメモォォォオオオ

ただのメモなので真に受けないでください。

if文とかで条件を追加したい場合

@q = Employee.ransack(params[:q])
@q.build_grouping({
  :m => 'or',
  :name_eq => "omi",
  :name_eq => "end"
})

多分こんな漢字

select id, name
   from employees
 where name = "omi" or name = "end"

Scala関西Summit 2018に参加してきました #scala_ks

今このタイミングでだいぶ酔っているのだけど、熱が冷めないうちになんとか書いてしまおうと。

大阪支社移転のタイミングとちょうどよく重なり、Scala関西Summitに初めて参加することが出来た。

結構知り合いも参加するということで、それも楽しみに。

わかる。

確実に梅田駅で迷子になる。

でもだってまあ言うても大阪なんて人生で6度目くらいよ?

f:id:omiend:20181110095347j:plain

そしたら、大好きなスクエニのカフェ見つけてちょっと覗いたw

f:id:omiend:20181110100850j:plain

そして無事天満研修センターへ。

f:id:omiend:20181110102926j:plainf:id:omiend:20181110103414j:plain

トートバッグカワイイー!ロゴカワイイー!と、勝手にスタッフ目線で見てましたw

f:id:omiend:20181110125417j:plain

あと関係ないけど、ZOZOスーツいただきました。

それから写真には撮っていないけど、サムライズムさんのブースでヨーヨーをいただいたのがすごく嬉しかったw

ハイパーヨーヨー世代です。

お昼

気づいたらぼっちで(まあ当たり前なんだけど)、お昼ご飯どうしようかなと考えたのだけどあまり食べたくなかったので、とりあえずブラブラ。

天満駅前にディープダンジョンかな?と思うような商店街?があって、そこで「いかにも」なガチの大阪たこ焼き屋さんを発見。

f:id:omiend:20181110131647j:plain

f:id:omiend:20181110131114j:plain

おばあちゃん83歳だって。

もうこの場所で50年くらいたこ焼きを売っているそうで、テレビも良く来るとか。

たこ焼きも美味しかったし、異様に家庭的な食器とかも100周回って味わい深かったし、大満足。

聞いたセッション

さてさて本題?

  • オープニング
  • 長期的なメンテナンスの必要なScala製 システムにおいて気をつけるべきこと(竹添 直樹さん)
  • アニメーションで理解するAkka StreamsとAkka HTTP(リチャード 伊真岡さん)
  • ZOZOSUITはScalaで動いてるよ!(ZOZO テクノロジーズ タラソワダーシャさん)
  • Scala-erにも影響ありそうなJavaの 現状まとめ(LINE Fukuoka きしだなおきさん)
  • Akkaを分散トレーシングで見てみよう (grimroseさん)
  • DatabricksとSparkではじめる [データ分析/機械学習] 実践入門(smdmtsさん)
  • Scala でつくる証券会社と スタートアップ(株式会社FOLIO 村上 拓也さん)
  • Scalaでのドメインモデリングのやり方(かとじゅん)

特に、FOLIOさんの発表がとてもおもしろかった印象。

DDDはあまりくわしくないので全て誤解を恐れない書き方になるのを予め書いておく。

  • DDDの概念から型クラスで「暗号化されたフィールド」を表現
  • 損益を表現するフィールドと「損益ー損益=前日比」のようなものも表現
  • そのようにしっかりと設計することで、パット見てわかりやすい
  • パット見てわかりやすいということは、レビューも楽になる

といった、一石N鳥の効果を型のちからで効果的に引き出しているのではないかなと感じた。

金融事業という業界もあってかしっかりと設計されているし、金融事業にこそScalaの強力な型のちから💪はもってこいなのでは?

それからかとじゅんさんの発表の中で、「ユースケース分析」というのを知り、会社でやってみようかなと。

DDDに関連する発表を聞いて、少し興味でたな。

懇親会

f:id:omiend:20181110182425j:plain

懇親会は梅田グランフロントのさくらインターネットさんにて開催。

f:id:omiend:20181110193208j:plain

食事がとても美味しかった!

f:id:omiend:20181111232939j:plain

実はこの日、昼間に急遽「あ、懇親会でLTさせてもらお」と思い立って当日にスライドを作り参戦させていただきました。

まあ本当に大した内容ではないのですが、最後のScalaMatsuri 2019の案内もさせていただいて、LTも楽しめました。

一応スライド貼っておきます。

speakerdeck.com

nulabさんじゃんけん大会にて、軌跡が!

f:id:omiend:20181110200716j:plain

なんと、nulabさんのじゃんけん大会にて見事1位を獲得し、パーカーをゲット!

多分今年最後の運を使い切ったんじゃないかなとw

f:id:omiend:20181110211818j:plain

そんなこんなで2次会に行くみんなを、指を加えて見送りながら宿に。

梅田から宿までは20分くらい歩くっぽかったのだけど、ここでも梅田で迷子にw

まあ普段ウォーキングしている人間なので歩くのはそこまで苦ではなく、結局30分くらいでなんとかお宿に。

f:id:omiend:20181110214321j:plain

ファーストキャビンという宿。

まあ簡単に言うとカプセルホテルの上位互換で、内装含めて何もかもがとても綺麗で、土曜日の梅田で一泊6000円というリーズナブルさ。

カプセルホテルといっても、ブースは普通に立ちあがっても頭が天井につかないくらい広いし、大浴場もあって大満足。

次回もここ利用したいと思うほど。

さいごに

Scala関西Summitに参加されたみなさん、スポンサー企業さま、スピーカーの方々、お疲れ様でした。

そして何より、こんなに素敵なカンファレンスを準備してくださったスタッフのみなさん、本当にお疲れ様でした。

次回も楽しみにまっています!

その前に、僕はScalaMatsuriのスタッフがんばります!!!

新しくなった大阪支社に行ってきました

なんかブログらしいブログ?は久しぶり。

先月末、会社の大阪支社が移転して、とても綺麗なオフィスになった。

実はこう見えても取締役なんぞというものをやらさせていただいているので、せっかくだからと視察として大阪出張に行ってきた。

まあまあオフィスはこんな感じ。

f:id:omiend:20181109125046j:plain

f:id:omiend:20181109125322j:plain

まあまあオフィスはこんな感じ。

移転前はお世辞にも良い環境とは言えなかったのだけど、今回は良い環境になったのではないかなと。

まあ、移転にさいして僕は何もしていないのだけど笑

f:id:omiend:20181109193426j:plain

そしてそして、大阪出張の夜の飲み会といえば、鶏匠 暁と呼ばれるこのお店。

f:id:omiend:20181109194356j:plain

ここのレバ刺しがとにかく美味しくて大好き。

これを食べるためにわざわざ大阪に行くようなもの?笑

f:id:omiend:20181109215004j:plain

そして〆にいただく親子丼。

大阪支社の男の子(食いしん坊)は、これを秒レベルで完食するという。

まあ、確かにすごく美味しいんだ。

これはもはやエナジードリンク

f:id:omiend:20181109194356j:plain

関係ないけど、トイレの張り紙もアツイ。

f:id:omiend:20181109154328j:plain

お宿は中津(会社の近く)にある出来たばかりのホテルへ。

金曜日ということもあるのか、素泊まり一泊6000円でリーズナブルなのに、とても綺麗で快適だった。

ヴェノム(ネタバレ有り)

ヴェノムといえば俺の中ではMARVEL VS CAPCOMに出てきたのが初見。

そして、サム・ライミ版の映画スパイダーマン3で宿敵として出てきたのが印象的で、あの映画はとても好きだった。

VEMONに対しては、「スパイダーマンの宿敵・絶対的な悪、だけどカッコイイ」という感じでイメージしていたのだけど、この映画でかなり印象が変わった。

確かに見た目も考え方も凶暴残虐なのだけど、シンビオート(ヴェノム”たち”を総称するもの)はしっかりと自分の考えを持っているし、戦略もあるし、とにかく思ったより知性が高いということ。

そして、何より意外だったのが、’情”のような感情があるという事。

今作では、ヴェノムが凶暴な生物というよりは、エディとのバディ映画のように描かれているのがとても楽しかった。

「あいつは?食べていい?」「だめだ。あの人はいい人、うっかり食べていいのは悪い人だからな!これだけは守れよ!」「わかった。」といったような会話がとてもコミカルで、凶暴は凶暴なのだけど、以前のイメージとは180℃変わって、愛すべきダークヒーローだなと感じる。

そんなダークヒーローの次回作では、ヴェノムの宿敵?カーネイジが登場するのではないかという事が何となく示唆されるラストシーンもアツイ。

カーネイジのキャサディーを演じるのは、、、まあお楽しみってことでw

Venom (Original Motion Picture Soundtrack)

Rubyで0始まりの数字は、デフォルトで8進数(基数8)になるよというお話

RSpecでテストケースを書いていたときの話。

expect(hoge_date).to eq Date.new(2018,01,01)
・・・
expect(hoge_date).to eq Date.new(2018,09,01)

としたとき、

Date.new(2018,09,01)
SyntaxError: (eval):2: Invalid octal digit
Date.new(2018,09,01)

のような事を言われてしまう。

09 の部分が問題で、Rubyでは0始まりの数字はデフォルトで8進数になるから。

知らなかったのだが、Shellでも同じなため割と一般的なのか?

ちなみに

expect(hoge_date).to eq Date.new(2018,01,01)
・・・
expect(hoge_date).to eq Date.new(2018,09,01)

expect(hoge_date).to eq Date.new(2018,01,01)
・・・
expect(hoge_date).to eq Date.new(2018, 9,01)

こう書きました😇

RSpecで特定のテストケースだけを実行する方法

指定したパスのexampleを実行する。

rspec spec/
rspec spec/controller

ファイルを指定すれば、そのファイル内のexampleを実行してくれる。

rspec spec/services/hoge_spec.rb

さらに特定のexampleのみ実行したい場合、configに書きを追記。

RSpec.configure do |config|
  ・・・
  config.filter_run_when_matching :focus
  ・・・
end
spec/spec_helper.rb

そして、exampleに :focus => true を指定する。( :focus => true を指定したexampleのみ実行してくれる)

it "[CASE-1]hogehoge", :forcus => true do
end

Class: RSpec::Core::Configuration — Documentation by YARD 0.9.16