リーン・スタートアップ エリック・リース
今のへいしゃに必要なことがたくさん詰まった本で、とても面白かった。
リーン・スタートアップの極意は、とにかく
”そうするべきだと思いこんでいる無駄を省き”、スピーディーにプロダクトを開発し、その効果を計測して学習する
というように読めた。
エンジニアの観点に落とし込むと、新機能をどんどん追加することが必ずしも正しくはなく、むしろ新機能を追加すること自体が目的となってしまっているトコロはあるかなーと。
そうではなく、顧客が欲しかったものを機能として提供し、提供した結果どうなったのかを計測し、計測結果から学びを得て次に活かすことを最終的な目標とすることが大切とのこと。
そのサイクルを極力短くすることで(バッチサイズと表現していた)方向転換も容易となるし、それで成功したサービスのほうが多い。
解説にも書かれていたのだけど、言うなれば「地図を頼りにサービス開発をするのではなく、コンパスを頼りにサービス開発をする」という。
それこそが生産性であると。そういったところからも、この本を読んで耳が痛いと思う人はかなり多いように思う。
また、書籍自体まあまあの厚みであるにもかかわらず、翻訳が超優秀なのでスラスラ読めた。
マザーハウス 恐怖の使者
- メディア: Prime Video
- この商品を含むブログを見る
すべてが伏線で、その伏線すべてをラストで綺麗に改修する感動的な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)。
例に習って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 完了です!
流石にここまでは余裕で行けて、ちょっと安心しましたw
その他
Metals
MetalsっていうプラグインいれたらIntellijと遜色ないですよ!
— スカラスキー (@ReactScala) 2019年7月3日
そう言えば先日の ScalaMatsuri で行われた「お絵かきで学ぶScala教室」にて Metals を紹介されていて、すでに入れていました!
.gitignore
project/target
は .gitignore
しましょう。
project/target
続き
レディー・バード
映画ポスター レディバード Lady Bird US版 hi1 [並行輸入品]
- 出版社/メーカー: tomohochikaze
- メディア: ホーム&キッチン
- この商品を含むブログを見る
サクラメントで暮らす自称「レディー・バード」という女子高生。
なりたい自分になるべくあくせくすればするほど、理想の自分とはかけ離れて行くのだけど、それが人生の縮図のようで見ていて清々しい。
簡単に言うとすっごく面白かった。アメリカの女の子とかめっちゃ刺さると思う。
(スタッフ目線?全フリなただの日記でしかない日記です)今年も #ScalaMatsuri にスタッフとして参加してきました
今年も ScalaMatsuri 2019 にスタッフとして参加してきました!
ScalaMatsuri 2019|日本最大級の Scala のカンファレンス
ScalaMatsuri 2019 お疲れ様でした!
さきほど家に帰りヘトヘトになりながらシャワーを浴びたところですが、まだ残っている高揚感を燃料にスタッフ目線?でどんなふうに ScalaMatsuri 2019 を過ごしていたのかについてブログを書いてしまおうと思います。
※完全に個人の日記です、所属する団体などを代表するエントリーその他いろいろではありません(いつものやつ)
昨年の感想はこちら。
準備期間
今年は申し訳ないことに、本職の忙しさにかまけてそこまでお手伝い出来なかったんですよね。その中で、一番「やったな〜」って思うのは、やはり昨年から担当させていただいているノベルティーを封入するトートバッグの制作でした。
今年は昨年の朱地に白ロゴの流れを組ませて、黄色地に黒ロゴで行こうと決めていました。
今年のトートバッグは、赤くてデカイ!
— Yoshitaka Fujii (@yoshiyoshifujii) March 17, 2018
から、上着も入れれて便利だ!#ScalaMatsuri pic.twitter.com/rCoU3fyNYz
しかし、度重なる問題からいっそのこと大胆に白地の黒ロゴ、それも単なる黒ではなく、墨汁をイメージした色で一捻りを加えて決めてみました。
実物を手に取るまでは「シンプルすぎるかな」と心配していたのですが、もともと ScalaMatsuri のロゴが非常にクールなこともあり、出来上がったものが自身の期待値を大きく超え、往年の黒澤明監督の七人の侍のようなその出来栄え...つまり、白黒映画なのに奥行きのある広い世界観に圧倒されて1人ひっそりと感動してました。
ScalaMatsuri 2019 トートバッグ
— -\/(オミ・エンドリクス) (@omiend) 2019年6月27日
今年のトートバッグは、ロゴにある筆で書かれた「丸」の「動と静」をより活かしたく、昔の時代劇映画をイメージしてオフホワイトの下地に墨色のロゴで作ってみました!
みんなに気に入ってもらえると嬉しいです!
よろしくです! pic.twitter.com/cAMvgwUqF1
白黒写真にさえ見えますね。
来年はどうなるかわかりませんが、うーん、もうネタ切れかなと思うので、誰か他の人が作ってくれると新鮮で嬉しかもです笑
準備期間中は他にも、
- 翻訳をちょっと
- 雑用をちょっと
くらいはやったと思いますが、あまり覚えていないくらいなので、来年はもっと貢献できるように頑張りたい所存です(フラグ)。
ワークショップデイ
さて、スタッフの朝は早く、9時に現地集合です。
今年は何かあった時のためにと車で会場まで行くことにしたのですが、朝の首都高は混んでいそうな気がしたため、夜中のうちに豊洲の漫画喫茶まで行ってそこで仮眠していました(漫画喫茶で寝ること自体は慣れている都会サバイバル術)。
今からお台場に行こうか迷ってる(と言うか豊洲の漫喫?)
— -\/(オミ・エンドリクス) (@omiend) 2019年6月26日
朝起きてからシャワーを浴びて会場へ向かう途中、お台場はシンプルな道だと思っていたのですが、なんと道を間違えて引き返せなくなり、大井町の方まで行ってしまうという都内交通事情弱者への初見ころしな洗礼を受けてしまい、無事に遅刻してしまいました。まことに申し訳ございませんでした。
気を取り直して、まずはスタッフTシャツをゲットし、荷物を運ぶなどの力仕事をがんばりました。
その後、「お絵かきで学ぶScala」にてチューターとしてお手伝いさせていただきました。とはいっても、僕よりも Scala 神クラスのチューターさんがたくさんいらっしゃったのであまり出番はなかったのですが、みなさんモクモクとお絵かきで学ぶScalaを進めていらしゃるのを眺めているだけでも楽しかったです(なんかこの感想は変)。
久しぶりに Scala と触れ合っている☺️
— -\/(オミ・エンドリクス) (@omiend) 2019年6月27日
やはり書いてて一番楽しい言語
スピーカーディナー
夜は海外スピーカーさんも含めたスピーカーディナーへと参加するべく新橋へ。(一応伏せておきますが)お店は魚料理が主な居酒屋で、料理がとても美味しかったです。いろんな人とはじめましてでこんにちはな会話を楽しみつつ、新しい知り合いが増えていくのがとても嬉しかったです。
@hiraiva さんと同い年で仲良くなった?のが嬉しいー!ありがとうございます!
— -\/(オミ・エンドリクス) (@omiend) 2019年6月27日
そして気づいたら最終的に、恐れ多くもこんなメンツとビールを呑んでいました。
Thank you so much!!!
— -\/(オミ・エンドリクス) (@omiend) 2019年6月27日
I drank w/ @ktosopl @miciek @OE_uia @takezoux2 . Was fun😊 pic.twitter.com/eiFeUuJ0O4
英語はほとんど(9割)わからなかったのですが、翔んで埼玉とか、埼玉と千葉との関係とか、なんかそういうローカルネタがどこの国でもあるということを知れて面白かったです。
カンファレンスデイ
眠たい目をこすりながら望んたカンファレンスデイは、基本的にA会場での司会を担当させていただきました。
オミエンドさん、昨晩の強制英会話飲みで変な自信をつけたようで、
出来る人にとっては何でも無いことなのだけど、個人的に大勢の前で英語で案内をするという実績を解除した(THE 日本人)
— -\/(オミ・エンドリクス) (@omiend) 2019年6月28日
みたいなことも出来て個人的には英語レベルが格段に上昇したような気がします。
しかし、毎回「あー、本番までにもっと英語が出来るようになってたらなあ」と思うところはまったく成長してないんでしょうかね。来年度に期待です!!!
それから、お昼ご飯で頂いたお弁当がめちゃくちゃ美味しかったです。
おぴるごはん pic.twitter.com/zVH93odaA0
— -\/(オミ・エンドリクス) (@omiend) 2019年6月28日
寝不足もあって夕方くらいになるとヘトヘトですが、↓のツイートをしたときはとてもエモい気分でした。
(まだ片付けがあるけど)2日目がおわった。やっとビールにありつけたw
— -\/(オミ・エンドリクス) (@omiend) 2019年6月28日
お台場の夕方ってなんか良き雰囲気ですね。#ScalaMatsuri pic.twitter.com/AEhIMizoK7
それから、今年で三回目の参加にもかかわらず、会場脇にScala階段があることをはじめて知りました。来年以降はまだ何も決まっていない?と思いますが、一つの名物になったら面白いなあとか思いました。
実はScala階段が会場受付脇にあったり。
— -\/(オミ・エンドリクス) (@omiend) 2019年6月28日
Like a EPFL Scala stairs?#ScalaMatsuri pic.twitter.com/5KPVNHNEsl
そしてこの日の飲み会でも強制英会話飲み!
w/ @r0_lang @jorgesg1986 thanks for very awesometime😭😭😭 pic.twitter.com/KqDxNar1Av
— -\/(オミ・エンドリクス) (@omiend) 2019年6月28日
と思ったのですが、 @jorgesg1986 さんは少し日本語が話せるので、僕にピッタリあった英会話飲みが出来て、この日もとても楽しかったです。
アンカンファレンスデイ
3日目ともなると、朝から疲労困憊感は否定出来ません。が、アンカンファレンスデイは ScalaMatsuri に参加されるみなさんとより一体感を持って開催される日ですので、きっちりと最後までやり遂げようと思い、ちゃんと朝7時に起きられました!
この日は、@OE_uia さんと朝会の司会を担当させていただきました。
人前に出るコト自体は特に抵抗はないのですが、朝イチからちゃんと盛り上げようと努力しようと思えば思うほど特に気の利いたことも言えず、思い起こせば「ほ、本当はもっと面白いハズなんやー!」と悔しい気持ちでいっぱいになりました。いえ、頑張るところ違いますかもしれませんね。
同じく昼会が終わったあとは(この時点で疲労がピークで全然テンション上げられなかったmm)、夜の帰りの運転のために少し仮眠を取らさせていただきました。
1階カフェスペース奥に、2台だけですが簡易ベッドがございます。
— scala_jp (@scala_jp) June 29, 2019
よろしければご利用ください!#ScalaMatsuri pic.twitter.com/Uq1XSyw2Io
あ、そうそう、3日目はかき氷でした。
冗談抜きで今まで食べたかき氷のなかで一番美味しかったです。
今まで食べたカキ氷で一番美味しい!マジで!氷がフワフワ!#ScalaMatsuri pic.twitter.com/vffyX6uJWe
— -\/(オミ・エンドリクス) (@omiend) 2019年6月29日
氷というよりも、もはや...うーん、形容できないですね。ふわふわでクリームみたいな食感でした。
ノベルティー
ところ変わって、サボっている休憩しているときは各スポンサー様のブースなどをのぞかせていただきました。
Bizreach さんのセンスのあるセンスや。
わーい! pic.twitter.com/kIjlcGbRm3
— -\/(オミ・エンドリクス) (@omiend) June 28, 2019
Chatwork さんの High Functionality な 折りたたみウチワをいただきました。
チャットワークさんの折り畳めるウチワを頂いたー!わーい!!#ScalaMatsuri pic.twitter.com/0QrzPW70eK
— -\/(オミ・エンドリクス) (@omiend) 2019年6月29日
実は僕のかいしゃでも秋頃の某カンファレンスでスポンサーをさせて頂く予定でして、どんなノベルティーが良いかなあと考えながら、各社様のノベルティーを見るのがとても楽しかったです。
おわりに
もしかしたら現地付近?ではまだ打ち上げが続いているかもしれませんが、僕は車なので
僕は車なので一足先に地元に帰ってきました〜。
— -\/(オミ・エンドリクス) (@omiend) 2019年6月29日
今日くらいはラーメン食べてもバチは当たらんやろー!
って事で、消費したカロリーを摂取w
明日は家でユックリさせて頂こう😪 pic.twitter.com/1xQ6npjM2B
みたいな感じで、僕の ScalaMatsuri 2019 は無事に終わりました。
来年もぜひスタッフやらさせていただきたいです。
最後に、スポンサーのみなさま、スピーカーのみなさま、そしてご来場ののみなさま、本当にありがとうございました。
今後とも、ぜひよろしくお願いいたします。
そしてスタッフのみなさま、お疲れ様でした!
家に帰るまでが ScalaMatsuri ですよね。
お気をつけておかえりください。
個人的にめっちゃアツかったところ
- トートバッグの出来栄えが最高にかっこよかったこと
- 司会が楽しかったこと
- Spotify でも Scala が使われていたこと( @skaalf さんのセッションが特にめっちゃ面白かった)
- 国内外問わず、Scala界のすごい人達と一緒にビールを飲めたこと
- @kmizu さんのセッションネタが付きないところがめっちゃかっこよかったところ
- ScalaZを勉強しているときによく読んでいたブログを書かれている @eed3si9n_ja さんと少しお近づきになれたこと
- お絵かきでScala みたいなイベントがもっとたくさんあると良いなと思ったこと(それだけ楽しいワークショップだった)
上げだしたらキリがなくなってしまったので、このへんで・・・