$shibayu36->blog;

株式会社はてなでエンジニアをしています。プログラミングや読書のことなどについて書いています。

ScalaでHikariCPを使ってDBのコネクションプールを利用する

ScalaでのJDBCによるDB操作の勉強をした - $shibayu36->blog; の続き。今回はHikariCP を利用して、DBのコネクションプールをScalaで利用してみたのでメモ。DBにはPostgreSQLを利用した。 依存の追加 build.sbtに以下を追加。 libraryDependencies += "org.p…

ScalaでのJDBCによるDB操作の勉強をした

ScalaでPlay+Slickの勉強をし始めたのだけど、DIを使ってDBオブジェクトを取得したり、コネクションプールを使っていたり、クエリ発行はDSLだったりと、色々なことをやっていて全く理解できなかった。そのため、とりあえず地道に下の方から学習して、分から…

手元からpsqlでログインする時にパスワード入力せずにログインできてしまう理由

sudo brew install postgresqlでMacにpostgresqlを入れて、 $ psql postgres postgres=# create role dbuser createdb login inherit password 'dbuser';のようにroleを作ってみたのだけど psql --username=dbuser postgresでパスワード指定せずにログインで…

gitのworkspaceがcleanかどうかチェックする

gitのworkspace内がcleanかどうか確認してからコマンドを使いたいことがあった。そこで変更があるかをgitでチェックする方法について調べたのでメモ。結論としては以下のようにすると良い。 if [ -z "$(git status --porcelain)" ]; then # Working director…

jsoupを使ってScalaのHTMLテンプレートのテストをする

ScalaのPlay Frameworkでの開発をしていると、HTMLテンプレートの中でちょっとした条件分岐を書くことがある。そういう時に毎回手動で確認するのも大変なので、簡単なテストくらいは書いておきたいと思った。そこで今回はjsoupを使ってテストを書くのを試し…

Play FrameworkのテストのGuiceOneAppPerSuiteとGuiceOneAppPerTestの違いを調べた

PlayFrameworkでのcontrollerのテストのやり方メモ - $shibayu36->blog; でPlay FrameworkにおけるControllerの基本的なテスト方法について学んだ。ただ、テスト用のApplicationを作るためのtraitにGuiceOneAppPerSuiteとGuiceOneAppPerTestというのがあって…

PlayFrameworkでのcontrollerのテストのやり方メモ

PlayFrameworkでcontrollerのテストどうやるんだろうといろいろ試してみたのでメモ。Play 2.6.3を使っている。 基本的なやり方 play-scala-seed.g8というのに、基本的なControllerとそのテスト方法について書かれているので、それを真似れば良い。 controlle…

ScalaTestのshouldBeとmustBeの違いは何か

ScalaTestのMatchers系にshouldBeとmustBeがあって、どういう違いがあるのだろうと気になったので調べてみたのでメモ。http://www.scalatest.org/user_guide/using_matchers を読むと、 Trait MustMatchers is an alternative to Matchers that provides the…

【Scala】Emacsで現在編集している部分のテストを実行する

Scalaのテストを実行する時、sbtを使うと、特定のテストクラスだけの実行や、特定のテストケースだけの実行ができる。やり方はScalatest: 特定のテストケースだけ実行したい - Qiita で紹介されているとおり。ただ、コードはテキストエディタで書いているの…

Scalaスケーラブルプログラミングを再読した

最近ScalaやPlay Frameworkを触っていて、implicitを多用したコードや関数リテラルを使ったDSL的なコードなどが読めずに困ってきたので、もう一度Scalaスケーラブルプログラミングを読んだ。Scalaスケーラブルプログラミング第3版作者: Martin Odersky,Lex S…

ターミナルのsbtで起動したプログラムをIntelliJのデバッガでデバッグする

最終的に結構簡単な設定で出来たのだけど、いろんな情報に右往左往させられてしまったので、自分用にメモをとっておく。 やりたいこと Scalaで開発する時、基本的にターミナルでsbtを起動して、runとかtestとかを実行している。その時、挙動を動かしながら確…

Scalaの開発環境をセットアップした

Scalaを書くことになったので、Scalaの開発環境をセットアップした。Emacsで編集できるように scala-modeを使って編集 ensimeを導入し、できる限り動作が重くならないように tagsファイルを使って定義ジャンプをできるように IntelliJとEmacsを行き来できる…

Scalaの関数リテラルの学習メモ

Scalaスケーラブルプログラミングを読んでいて、関数リテラルについて気になったことがあったので、いろいろ試したことをメモしておく。Scalaスケーラブルプログラミング第3版作者: Martin Odersky,Lex Spoon,Bill Venners,羽生田栄一,水島宏太,長尾高弘出版…

最近読んだおすすめ漫画

最近読んだ漫画で、一巻を読んだだけですごく面白いと思ったおすすめ漫画です。 キングダム 面白い面白いと言われていたけど、40巻以上あったので買うのを少し躊躇していた。けど1巻買ったと思ったら全巻買ってしまっていた。戦いの表現がうまくて毎回胸躍る…

Emacsで開いているファイルの現在行をIntelliJで開く

http://www.shigemk2.com/entry/from_emacs_to_inteliJ を参考に、EmacsからIntelliJへ、IntelliJからEmacsへのジャンプが出来るようにしたのだが、EmacsからIntelliJに飛ぶ時に現在の行位置に飛んでくれなかったので改良した。以下のようなコマンドをelisp…

妻が「私、痔主になりました」という本を出版しました

妻が「ぢ 私、痔主になりました」という本を出版しました。ぢ 私、痔主になりました作者: てらいまき出版社/メーカー: 河出書房新社発売日: 2017/07/14メディア: Kindle版この商品を含むブログを見るこの本は著者が自分の痔の体験について、コメディっぽい作…

Coursera Machine Learning Week3の学習

Coursera Machine Learning Week1を受けた & メモ - $shibayu36->blog; Coursera Machine Learning Week2の学習 - $shibayu36->blog; に引き続き、Coursera Machine Learning Week3を受講した。 Week3の講義を受けると次のことを学ぶことができた。 分類問題…

最近は憂鬱だったけど、いつもこの時期は憂鬱っぽかった

最近また仕事もプライベートもなかなかやる気が出ないと思っていたら、いつもの時期という感じだった。面白い。blog.shibayu36.org

雑に書いたブログ記事が問題を起こさないようにする工夫

ちょっとしたことでも雑にブログに書いておくと良いことが起こる - $shibayu36->blog; で、ちょっとしたことでも雑にブログに書いておくと良いことが起こるよということを書いた。さらに余談として最低限の雑さについても書いた。 これをきっかけに、公開の…

ちょっとしたことでも雑にブログに書いておくと良いことが起こる

僕は自分がやったこと・勉強したこと・気づいたことなどはどんなにちょっとしたことでも、公開の場のブログに書くようにしている。その内容はある程度雑でも良いので、とにかく公開の場に書くようにしている。それによって、結構良いことが起こっているとい…

Coursera Machine Learning Week2の学習

前回 に引き続き、Coursera Machine Learning Week 2を受講した。 前回は線形回帰モデルとは何か、最小化すべきCost Functionは何か、最急降下法とは何かについて学ぶことができた。Week 2の講義を受けるとさらに次のことを理解することができる。 多変量(x1…

MySQLのfilesortは何ソートで行われているのか

最近、CourseraのArgorithms, Part1という講義を受けている。そこでソートの講義を受けて、そういえばMySQLのORDER BYでfilesortになったときってどのソートが使われているのだろうと気になってきたので調べてみた。 調べてみると非常に難解で、結局いまいち…

Emacsでvirtualenvに入れたライブラリも考慮したPythonの補完環境を作る

新言語を使うときは、その言語の補完ができるかどうかで学習効率が変わってくるので、ひとまずPythonの補完環境を作った。基本Pythonではvirtualenvを使うのが一般的なようなので、環境ごとに入れたライブラリも考慮して補完できるようにした。 色々調べたと…

zsh-autoenvを使って、virtualenvの自動activate/deactivateを実現する

pyenv + venvでPython3環境を構築する - $shibayu36->blog; の記事で、特定のPythonプロジェクト用のvirtualenv環境を導入することが出来ました。しかし、このプロジェクトに入るたびにsource venv/bin/activateし、逆に抜ける時にdeactivateするのは 面倒 …

Pythonのvenvのプロンプト表示をカスタマイズする

pyenv + venvでPython3環境を構築する - $shibayu36->blog;の記事で、Python3でvenvを使った環境を構築することができた。しかしvenvでsource bin/activateすると、自分の設定したプロンプトの左側に(venvの環境名)という文字列が勝手に挟み込まれてしまって…

pyenv + venvでPython3環境を構築する

機械学習のモチベーションを上げるためにTensorFlowを触ろうとしている。まずは環境設定でしょうということで、ひとまずPython3環境を作る。今はpyenv + venvで作るのが良いみたいなので、それでやってみたメモ。 pyenvでpythonをインストールする pyenvが必…

mysqlenvの管理配下にデバッグオプション付きのMySQLをインストールする

最近アルゴリズムの勉強をしていて、MySQLの挙動を追う機会があった。そこでMySQLのデバッグを出来るようにと、MySQL :: MySQL 5.6 リファレンスマニュアル :: 24.4.1.1 デバッグのための MySQL のコンパイル に書いてあるように、MySQLをデバッグオプション…

Coursera Machine Learning Week1を受けた & メモ

自分の中で裏側よりの難しいタスクをアサインされる機会を増やしたいと思い、機械学習の勉強を始めることにした。そこでとりあえず良いとよく言われているCoursera Machine Learningの講義を受けることにした。https://www.coursera.org/learn/machine-learn…

行動分析学の観点から課題を解決する - 「パフォーマンス・マネジメント」読んだ

最近効率的な課題解決について興味があり、パフォーマンス・マネジメントという本を見かけたので読んでみた。パフォーマンス・マネジメント―問題解決のための行動分析学作者: 島宗理出版社/メーカー: 米田出版発売日: 2000/03メディア: 単行本購入: 39人 ク…

「WEB小説ヒットの方程式」読んだ

小説家が何を考えて小説を書いているか気になったので読んだ。読者の心をつかむ WEB小説ヒットの方程式作者: 田島隆雄,ヒナプロジェクト,博報堂DYデジタル出版社/メーカー: 幻冬舎発売日: 2016/07/27メディア: 単行本(ソフトカバー)この商品を含むブログを…