the industrial

ブログと言うより自分のためのメモ以外の何モノでもないです。でも読んでくださってありがとうございます。

幸せなひとりぼっち

幸せなひとりぼっち(字幕版)

ルールを厳格に守るためならどんな相手であろうといがみ合う偏屈じじいを主人公にした、フォレスト・ガンプの様な一本。

最愛奥さんに先立たれ、友達もおらず、人生に生きる意味を失って自殺を図ろうとするが、事あるごとに不意に自殺を邪魔されてしまう。

そんなことを繰り返しているうちに、不本意ながら隣人たちと交流を深めて行くことになり、頼まれごとを引き受けたり、猫を飼ってみたり、子供を抱っこ出来ることに幸せを感じたりして、いつしか自殺などどうでもよくなり・・・。

ボロ泣きするわけではないけど、ヨーロッパ映画の陰湿な感じ(それはそれでとても好きだけど)もせず、ほっこりとして最後まで見れた。

リーン・スタートアップ エリック・リース

リーン・スタートアップ

今のへいしゃに必要なことがたくさん詰まった本で、とても面白かった。

リーン・スタートアップの極意は、とにかく

”そうするべきだと思いこんでいる無駄を省き”、スピーディーにプロダクトを開発し、その効果を計測して学習する

というように読めた。

エンジニアの観点に落とし込むと、新機能をどんどん追加することが必ずしも正しくはなく、むしろ新機能を追加すること自体が目的となってしまっているトコロはあるかなーと。

そうではなく、顧客が欲しかったものを機能として提供し、提供した結果どうなったのかを計測し、計測結果から学びを得て次に活かすことを最終的な目標とすることが大切とのこと。

そのサイクルを極力短くすることで(バッチサイズと表現していた)方向転換も容易となるし、それで成功したサービスのほうが多い。

解説にも書かれていたのだけど、言うなれば「地図を頼りにサービス開発をするのではなく、コンパスを頼りにサービス開発をする」という。

それこそが生産性であると。そういったところからも、この本を読んで耳が痛いと思う人はかなり多いように思う。

また、書籍自体まあまあの厚みであるにもかかわらず、翻訳が超優秀なのでスラスラ読めた。

マザーハウス 恐怖の使者

すべてが伏線で、その伏線すべてをラストで綺麗に改修する感動的なSF映画

映画ジャケットの見た目とアホみたいな邦題でホラー映画にしか思えないのだけど、むしろそれはわざとなのではないかなと思うほど。

ベネゼエラの映画らしいのだけど、本当に素晴らしい映画だった。

Play Framework / Scala 再入門 1日目

お題の通りです。

久しぶりに作りたいと思ったアイデアがあり個人プロジェクトを始動した中で、ScalaMatsuri の影響で今ものすごくScalaを書きたくなっていたのもあり、サーバーサイドを一番好きな言語「Scala」で作ろうと決めました。

こう見えてもともと独学2年、実務2年ほど Scala を書いていた経歴があり、さらに ScalaMatsuri のスタッフはやらさせてもらっていましたのでまあ余裕だろうと思っていたのですが、なんと Play Framework のプロジェクトの雛形を作るところから詰まってしまった次第。

ここ2年ほどは Rails と Nuxt を書いていたのもあって、Scala界隈のトレンディーな某についても分からず、Scalaの世界では完全に浦島太郎状態になっていました。 ~Activatorってなくなったんですかね...。~

なので、今一度イチからすべて勉強し直そうと思い、「Play Framework / Scala 再入門」と題してこのシリーズをはじめました。

Play/Scalaで作りたいもの

さて、まずはサーバーサイドだけでもどういったもの(要件)を作りたいのか整理してみます。

そして、これらをシリーズを通してブログにアウトプット出来たらなと思います。

  • Play/Scalaを利用する
  • REST API として JSON を返却する( Reads / Writes の使い方を思い出す)
  • CRUD処理が出来る
  • MySQLを利用する(一番使い慣れているRDBなので)
  • DBアクセスライブラリとして、ScalikeJDBCを利用する
  • 内部からHTTP通信を行う(WSで良いのかな?他にも良さげなのがあるか、あとで調べる)
  • CRON処理を実装する(昔実装した様な気がするけど、どうしてたかな・・・あとで調べる)
  • Eff触ってみたいので導入する... 参考

単語だけ覚えていますが詳細は忘れているコトだらけです(ツライ)。

とりあえず1日目の目標として、環境構築とPlayframeworkのHello, Worldまでやります

さて、取り急ぎ mac os の sbt を最新にしちゃいます。

$ brew upgrade sbt
Updating Homebrew...
==> Auto-updated Homebrew!
Updated 1 tap (homebrew/core).
==> Updated Formulae
argon2

==> Upgrading 1 outdated package:
sbt 1.2.6 -> 1.2.8
==> Upgrading sbt
==> Downloading https://github.com/sbt/sbt/releases/download/v1.2.8/sbt-1.2.8.tgz
==> Downloading from https://github-production-release-asset-2e65be.s3.amazonaws.com/279553/ae845a00-0be0-11e9-99d2-03a5afa9f1c7?X-Amz-
######################################################################## 100.0%
==> Caveats
You can use $SBT_OPTS to pass additional JVM options to sbt.
Project specific options should be placed in .sbtopts in the root of your project.
Global settings should be placed in /usr/local/etc/sbtopts
==> Summary
🍺  /usr/local/Cellar/sbt/1.2.8: 521 files, 50MB, built in 50 seconds
==> `brew cleanup` has not been run in 30 days, running now...
Removing: /Users/XXXXXX/Library/Caches/Homebrew/readline--8.0.0.mojave.bottle.tar.gz... (516.7KB)
Removing: /usr/local/Cellar/sbt/1.2.6... (521 files, 49.8MB)
Removing: /Users/XXXXXX/Library/Caches/Homebrew/libtiff--4.0.10_1.mojave.bottle.tar.gz... (1MB)
Removing: /Users/XXXXXX/Library/Caches/Homebrew/mysql@5.7--5.7.25.mojave.bottle.tar.gz... (72.4MB)

次に、公式サイトに行きPlayの最新版が2.7.xだということを突き止めました(そこからw)。

www.playframework.com

例に習ってPlayの雛形を作成します。

$ sbt new playframework/play-scala-seed.g8

This template generates a Play Scala project

name [play-scala-seed]: hoge-api
organization [com.example]: omiend

Template applied in /Users/hogehoge/api

次に、作成したディレクトリにcdして

$ sbt run

すると

$ cd api/
$ sbt run
[info] Loading settings for project global-plugins from metals.sbt ...
[info] Loading global plugins from /Users/hogehoge/.sbt/1.0/plugins
[info] Updating ProjectRef(uri("file:/Users/hogehoge/.sbt/1.0/plugins/"), "global-plugins")...
[info] Done updating.
[info] Loading settings for project api-build from plugins.sbt ...
[info] Loading project definition from /Users/hogehoge/my/GhostMoose/api/project
[info] Updating ProjectRef(uri("file:/Users/hogehoge/my/GhostMoose/api/project/"), "api-build")...
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.
[info] Loading settings for project root from build.sbt ...
[info] Set current project to api (in build file:/Users/hogehoge/my/GhostMoose/api/)
[info] Updating ...
[info] downloading https://repo1.maven.org/maven2/com/typesafe/ssl-config-core_2.13/0.3.8/ssl-config-core_2.13-0.3.8.jar ...
[info]  [SUCCESSFUL ] com.typesafe#ssl-config-core_2.13;0.3.8!ssl-config-core_2.13.jar(bundle) (1742ms)
[info] Done updating.
[warn] There may be incompatibilities among your library dependencies; run 'evicted' to see detailed eviction warnings.

--- (Running the application, auto-reloading is enabled) ---

[info] p.c.s.AkkaHttpServer - Listening for HTTP on /0:0:0:0:0:0:0:0:9000

(Server started, use Enter to stop and go back to the console...)

みたいになるので、

http://localhost:9000/ にアクセスすれば、Play/Scala の Hello, World 完了です!

f:id:omiend:20190703230341p:plain

流石にここまでは余裕で行けて、ちょっと安心しましたw

その他

Metals

そう言えば先日の ScalaMatsuri で行われた「お絵かきで学ぶScala教室」にて Metals を紹介されていて、すでに入れていました!

.gitignore

project/target.gitignore しましょう。

project/target

続き

omiend.hatenablog.jp

ネタバレ無しで「スパイダーマン ファー・フロム・ホーム」を語る(語れない)

f:id:omiend:20190703024410p:plain

アメコミ映画を愛してやまない会社の後輩ちゃんがまだ観ていないとのことなので、ネタバレ要素0%で感想をw

一言で言うと、最高に面白かった!!!!!!!!!!!!

映画とはこうあるべきという僕の考えをど直球に表現していた。

たぶん、原作のスパイダーマン好きな人も楽しめる内容になっていると思うのだけど、どうだろうか?

近年の映画版スパイダーマンって版権などでいろいろあるのだけど、それだけみんなに愛されている作品であるし、映像化、さらに言うと”続編”として世に送り出すことって相当のプレッシャーなのではないかなと思う。

それをこうも素晴らしい表現でやってのけるのだから、スタッフの凄さも実感。

レディー・バード

サクラメントで暮らす自称「レディー・バード」という女子高生。

なりたい自分になるべくあくせくすればするほど、理想の自分とはかけ離れて行くのだけど、それが人生の縮図のようで見ていて清々しい。

簡単に言うとすっごく面白かった。アメリカの女の子とかめっちゃ刺さると思う。

(スタッフ目線?全フリなただの日記でしかない日記です)今年も #ScalaMatsuri にスタッフとして参加してきました

今年も ScalaMatsuri 2019 にスタッフとして参加してきました!

ScalaMatsuri 2019|日本最大級の Scala のカンファレンス

ScalaMatsuri 2019 お疲れ様でした!

さきほど家に帰りヘトヘトになりながらシャワーを浴びたところですが、まだ残っている高揚感を燃料にスタッフ目線?でどんなふうに ScalaMatsuri 2019 を過ごしていたのかについてブログを書いてしまおうと思います。

※完全に個人の日記です、所属する団体などを代表するエントリーその他いろいろではありません(いつものやつ)

昨年の感想はこちら。

omiend.hatenablog.jp

準備期間

今年は申し訳ないことに、本職の忙しさにかまけてそこまでお手伝い出来なかったんですよね。その中で、一番「やったな〜」って思うのは、やはり昨年から担当させていただいているノベルティーを封入するトートバッグの制作でした。

今年は昨年の朱地に白ロゴの流れを組ませて、黄色地に黒ロゴで行こうと決めていました。

しかし、度重なる問題からいっそのこと大胆に白地の黒ロゴ、それも単なる黒ではなく、墨汁をイメージした色で一捻りを加えて決めてみました。

実物を手に取るまでは「シンプルすぎるかな」と心配していたのですが、もともと ScalaMatsuri のロゴが非常にクールなこともあり、出来上がったものが自身の期待値を大きく超え、往年の黒澤明監督の七人の侍のようなその出来栄え...つまり、白黒映画なのに奥行きのある広い世界観に圧倒されて1人ひっそりと感動してました。

白黒写真にさえ見えますね。

来年はどうなるかわかりませんが、うーん、もうネタ切れかなと思うので、誰か他の人が作ってくれると新鮮で嬉しかもです笑

準備期間中は他にも、

  • 翻訳をちょっと
  • 雑用をちょっと

くらいはやったと思いますが、あまり覚えていないくらいなので、来年はもっと貢献できるように頑張りたい所存です(フラグ)。

ワークショップデイ

さて、スタッフの朝は早く、9時に現地集合です。

今年は何かあった時のためにと車で会場まで行くことにしたのですが、朝の首都高は混んでいそうな気がしたため、夜中のうちに豊洲の漫画喫茶まで行ってそこで仮眠していました(漫画喫茶で寝ること自体は慣れている都会サバイバル術)。

朝起きてからシャワーを浴びて会場へ向かう途中、お台場はシンプルな道だと思っていたのですが、なんと道を間違えて引き返せなくなり、大井町の方まで行ってしまうという都内交通事情弱者への初見ころしな洗礼を受けてしまい、無事に遅刻してしまいました。まことに申し訳ございませんでした。

気を取り直して、まずはスタッフTシャツをゲットし、荷物を運ぶなどの力仕事をがんばりました。

その後、「お絵かきで学ぶScala」にてチューターとしてお手伝いさせていただきました。とはいっても、僕よりも Scala 神クラスのチューターさんがたくさんいらっしゃったのであまり出番はなかったのですが、みなさんモクモクとお絵かきで学ぶScalaを進めていらしゃるのを眺めているだけでも楽しかったです(なんかこの感想は変)。

スピーカーディナー

夜は海外スピーカーさんも含めたスピーカーディナーへと参加するべく新橋へ。(一応伏せておきますが)お店は魚料理が主な居酒屋で、料理がとても美味しかったです。いろんな人とはじめましてでこんにちはな会話を楽しみつつ、新しい知り合いが増えていくのがとても嬉しかったです。

そして気づいたら最終的に、恐れ多くもこんなメンツとビールを呑んでいました。

英語はほとんど(9割)わからなかったのですが、翔んで埼玉とか、埼玉と千葉との関係とか、なんかそういうローカルネタがどこの国でもあるということを知れて面白かったです。

カンファレンスデイ

眠たい目をこすりながら望んたカンファレンスデイは、基本的にA会場での司会を担当させていただきました。

オミエンドさん、昨晩の強制英会話飲みで変な自信をつけたようで、

みたいなことも出来て個人的には英語レベルが格段に上昇したような気がします。

しかし、毎回「あー、本番までにもっと英語が出来るようになってたらなあ」と思うところはまったく成長してないんでしょうかね。来年度に期待です!!!

それから、お昼ご飯で頂いたお弁当がめちゃくちゃ美味しかったです。

寝不足もあって夕方くらいになるとヘトヘトですが、↓のツイートをしたときはとてもエモい気分でした。

それから、今年で三回目の参加にもかかわらず、会場脇にScala階段があることをはじめて知りました。来年以降はまだ何も決まっていない?と思いますが、一つの名物になったら面白いなあとか思いました。

そしてこの日の飲み会でも強制英会話飲み!

と思ったのですが、 @jorgesg1986 さんは少し日本語が話せるので、僕にピッタリあった英会話飲みが出来て、この日もとても楽しかったです。

アンカンファレンスデイ

3日目ともなると、朝から疲労困憊感は否定出来ません。が、アンカンファレンスデイは ScalaMatsuri に参加されるみなさんとより一体感を持って開催される日ですので、きっちりと最後までやり遂げようと思い、ちゃんと朝7時に起きられました!

この日は、@OE_uia さんと朝会の司会を担当させていただきました。

人前に出るコト自体は特に抵抗はないのですが、朝イチからちゃんと盛り上げようと努力しようと思えば思うほど特に気の利いたことも言えず、思い起こせば「ほ、本当はもっと面白いハズなんやー!」と悔しい気持ちでいっぱいになりました。いえ、頑張るところ違いますかもしれませんね。

同じく昼会が終わったあとは(この時点で疲労がピークで全然テンション上げられなかったmm)、夜の帰りの運転のために少し仮眠を取らさせていただきました。

あ、そうそう、3日目はかき氷でした。

冗談抜きで今まで食べたかき氷のなかで一番美味しかったです。

氷というよりも、もはや...うーん、形容できないですね。ふわふわでクリームみたいな食感でした。

ノベルティー

ところ変わって、サボっている休憩しているときは各スポンサー様のブースなどをのぞかせていただきました。

Bizreach さんのセンスのあるセンスや。

Chatwork さんの High Functionality な 折りたたみウチワをいただきました。

実は僕のかいしゃでも秋頃の某カンファレンスでスポンサーをさせて頂く予定でして、どんなノベルティーが良いかなあと考えながら、各社様のノベルティーを見るのがとても楽しかったです。

おわりに

もしかしたら現地付近?ではまだ打ち上げが続いているかもしれませんが、僕は車なので

みたいな感じで、僕の ScalaMatsuri 2019 は無事に終わりました。

来年もぜひスタッフやらさせていただきたいです。

最後に、スポンサーのみなさま、スピーカーのみなさま、そしてご来場ののみなさま、本当にありがとうございました。

今後とも、ぜひよろしくお願いいたします。

そしてスタッフのみなさま、お疲れ様でした!

家に帰るまでが ScalaMatsuri ですよね。

お気をつけておかえりください。

個人的にめっちゃアツかったところ

  • トートバッグの出来栄えが最高にかっこよかったこと
  • 司会が楽しかったこと
  • Spotify でも Scala が使われていたこと( @skaalf さんのセッションが特にめっちゃ面白かった)
  • 国内外問わず、Scala界のすごい人達と一緒にビールを飲めたこと
  • @kmizu さんのセッションネタが付きないところがめっちゃかっこよかったところ
  • ScalaZを勉強しているときによく読んでいたブログを書かれている @eed3si9n_ja さんと少しお近づきになれたこと
  • お絵かきでScala みたいなイベントがもっとたくさんあると良いなと思ったこと(それだけ楽しいワークショップだった)

上げだしたらキリがなくなってしまったので、このへんで・・・