ぷるぷるした直方体

エンジニアの雑記です。My opinions are my ownというやつです

slick-codegenの利用例と中身の説明

Scala Advent Calendar 2017の17日目の記事です。

qiita.com

前日は@yoshiyoshifujiiさんによる「インフラストラクチャ層からのエラーについて考える」でした。

qiita.com

背景

slick-codegenは、DBのスキーマから対応するコードを自動生成するプログラムです。 同じようなコードをひたすら書く作業を無くしてくれる、頼れるやつです。 Slickを使っている人であれば、一度は使ったことがあるかと思います。

そんな便利なslick-codegenは公式のドキュメントでも紹介されています(Schema Code Generation) が、あまり説明が無いため、実際どのようなカスタマイズができるのかが分かりにくかったりします。 また、サンプルのリポジトリが紹介されていますが、ここに無い使用方法も多く存在します。 APIドキュメントを読み解けば良いですが、もっと雑に何が出来るか知りたいところ。

ということで、いくつか使えそうなサンプルを掲載して、その中でカスタマイズ方法を説明しようと思います。 なお、本記事の末尾に全てのサンプルを組み合わせたコードを貼り付けますので、実際に使ってみたい方はそちらをご利用ください。

続きを読む

Getting Over It 攻略? vol.2

性懲りもなく、というのはまさにこの時のためにあるような言葉ですね。

Getting Over It with Bennett Foddyを一人で進めてゆくのがあまりに辛いので、記事にして少しでも達成感を得るつもりです。

store.steampowered.com

今回は2回目ですので、前回の続きから進めてゆきます。

前回

blog.esplo.net

続きを読む

Getting Over It 攻略? vol.1

Getting Over It with Bennett Foddyを買いました。 買ってしまいました、という方が正しいでしょう。

store.steampowered.com

一人で進めてゆくのがあまりに辛いので、記事にして少しでも達成感を得るつもりです。 なお、既存のプレイは一切見ず、ネタバレなしで進めています。

今回は初回ですので、ゲームの紹介と最初の難所の攻略です。

このゲームは

クソゲーです。

もう少し詳しく説明をすると、悪意のある高難易度ゲーです。 「予算がない」「技術が追いつかない」などのある種しょうがなく生まれるクソゲー達とは異なり、そもそも人に不快感を与えるのが目的 という、ディオもビックリの悪っぷりです。

百聞は一見に如かず。30秒ほどのプレイ動画を撮りましたので、これを見るとおおよそ言わんとすることがわかるかと思います。

www.youtube.com

ちなみに、何故下半身が釜なのかなどは不明です。 もはやそんなことはどうでもいいです。 詳しい説明を見たい方は、Steamの紹介ページから見ましょう。

どのように辛いか

高難易度ゲー(死にゲー)と訊くと、真っ先にI wanna be the guyが浮かぶと思います。 しかし、あちらは自由に動き回れるアクションゲーム。

dic.nicovideo.jp

こちらは主に操作性の悪さでストレスを与えて来ます。 それだけならまだしも、このゲームの悪い所は手戻りです。

苦労して乗り越えた箇所を悠々通り過ぎ、最初の地点まで戻る。これが辛い。

攻略?

最初の難所

さて、辛いばかり書いていたらやりたくなくなってきたので、攻略記事っぽくします。 最初の難所、「木」の越え方を考えます。

ここからはネタバレありなので、自分でプレイしたい奇特な方はブラウザバックしましょう。

続きを読む

海外旅行で使う外貨をお得に両替する方法(換金レートの比較付き)

海外に行くとなると、何かしらの手段で現地国のお金を入手しなければなりません。

発展している観光都市なら多くのお店でクレジットカードが使えますが、チップとして渡したり、万一カードが使えなかった場合の保険としてなど、いくらかの現金は空港に着いた際に持っておきたいところです。

両替には意外と様々な手段があり、知っていると知らないとでは大きな損失が生まれたりする ので、ここにまとめておきます。

結論だけ言うと、「 ドルやユーロならマネパ 、少しマイナーな通貨なら インターバンク 。少額なら気にせず クレカ 支払い 」となりました。

続きを読む

Dockerでlocalhostにhttpsアクセスできるプロキシを立てる

OAuthが絡むアプリケーションを開発していると、時折 https://localhost/ でローカルのアプリケーションサーバーにアクセスをしたくなる状況があります。セキュリティ上、リダイレクト先URLの指定が必要で、かつhttpsしか設定できない場合があるためです。

ローカルにプロキシサーバーを立てて解決する手法がありますが、調べてみた限り設定が必要で、かつ手元の環境を汚してしまうものでした。(部屋はともかく)PC内環境美化に力を入れている私としては、何とか余計なインストールは避けたいところ。

そこで、Dockerを使ってSSL Terminationをするプロキシを作成しました。環境を汚さないだけでなく、初回は30秒程度、二回目以降は1秒程度と高速にセットアップすることが可能です。GitHubおよびDockerHubで公開していますので、需要がある方はご利用ください。

github.com

https://hub.docker.com/r/esplo/docker-local-ssl-termination-proxy/hub.docker.com

使い方は簡単ですが、IPの取得箇所はOSに依存しています。ご利用の環境に併せて叩き分けてください。下記のコマンドは、ポート3000番で動いているローカルアプリケーションへのプロキシを作成する場合です。

Mac OSX

docker run -it \
  -e "HOST_IP=`ipconfig getifaddr en0`" \
  -e "PORT=3000" \
  -p 443:443 \
  --rm \
  esplo/docker-local-ssl-termination-proxy

Linux

docker run -it \
  -e "HOST_IP=`hostname -I | awk '{print $1}'`" \
  -e "PORT=3000" \
  -p 443:443 \
  --rm \
  esplo/docker-local-ssl-termination-proxy

Windowsは?

Pull Request、お待ちしております。

以下はこのDockerイメージを作った原因や、どのようにできているかの説明です。

続きを読む

Macの標準機能で音声コントロール

音声で操作するのって近未来感があっていいですよね。 スマホであればSiriなりGoogle Assistantなりが搭載されており、簡単に試すことができます。

が、日頃PCでやる作業を効率化するためには、PCが音声を認識しコマンドを実行しないといけません。 標準で搭載されるようになったSiriではコマンドを叩いてくれないので、別の手段を使う必要があります。

幸いMacには音声コントロール機能が存在するので、それを使って実現してみます。

続きを読む

フォントを購入しました

日頃あまりフォントを気にかけることは無いのですが、たまたまTwitterでセール情報を見かけ、衝動買いしてしまいました。

www.designcuts.com

様々な商用フォントの詰め合わせ品です。 もともとの値段は$3,465ですが、なんと99%OFFの$29です。 これは要らなくても買ってしまう、良くないパターンですね。

続きを読む

「How Google Works」 感想

こちらも話題になっていたので読みました。

How Google Works(ハウ・グーグル・ワークス) 私たちの働き方とマネジメント (日経ビジネス人文庫)

How Google Works(ハウ・グーグル・ワークス) 私たちの働き方とマネジメント (日経ビジネス人文庫)

  • 作者: エリック・シュミット,ジョナサン・ローゼンバーグ,アラン・イーグル,ラリー・ペイジ,土方奈美
  • 出版社/メーカー: 日本経済新聞出版社
  • 発売日: 2017/09/02
  • メディア: 文庫
  • この商品を含むブログを見る

総評: +1 (オススメ)

「Team Geek」をチームビルディングの本とするなら、こちらは経営者のための組織(会社)ビルディングの本と言えるかもしれません。 「イノベーション」と付けられている章は最後の1つだけですが、本全体で「いかにイノベーションを起こすか」ということについて触れられているかと思います。

こう書くと対象読者がかなり限定されそうですが、単純に読み物として面白いのでオススメです。 特にエンジニアだと面白いと感じるのではないでしょうか。

続きを読む

「Team Geek」 感想

こちらも話題になっていたので読みました。

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

Team Geek ―Googleのギークたちはいかにしてチームを作るのか

総評: 0 (人によってはオススメ)

この本もいわゆるSoft Skillについて述べた本で、HRT(謙虚・尊敬・信頼)の考えをベースに様々な「チームが上手く行く」方法について述べています。 特にチームを率いるマネージャー(リーダー)に向けた本になっていると感じました。 もちろんそうでない人が読んで価値がないかというとそんなことはないのですが、チームを率いる人が読むべき事が多いように思います。

続きを読む

Scala関数型デザイン&プログラミング 〜6章 (6)

"Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド"を買いました。 ちょっとずつ読んで、各章の内容をまとめてゆきます。

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

今回は6章。関数型で、如何に状態を扱うか?という話です。 今回で遂にPart1がおしまいです。

続きを読む

「Soft Skills」 感想

ひとしきり話題になっていたので読みました。

SOFT SKILLS ソフトウェア開発者の人生マニュアル

SOFT SKILLS ソフトウェア開発者の人生マニュアル

総評: +1 (結構オススメ)

道筋を考えるための本

プログラマーを対象とした技術書にカテゴライズされますが、一般的な技術書とは異なりキャリア、ひいては人生についての技術書となっています。

日々の仕事、キャリア形成から資産形成に至るまで、人生(特に社会人になってから)の多くについて触れています。 ここに書かれていることが全て実践できるようなことは無いかと思いますが、心にとめておき悩んだ時に読みかえすと進むべき方向が見えてくるかと思います。

続きを読む

Scala関数型デザイン&プログラミング 〜5章 (5)

"Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド"を買いました。 ちょっとずつ読んで、各章の内容をまとめてゆきます。

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

Scala関数型デザイン&プログラミング ―Scalazコントリビューターによる関数型徹底ガイド (impress top gear)

今回は5章。遅延評価のところです。

続きを読む