フリーランチ食べたい

No Free Lunch in ML and Life. Pythonや機械学習のことを書きます。

【Python】Pipfile.lockを活用したDockerとpipenvでの安全な環境構築

Dockerとpipenvを使った環境構築についての記事はいくつか読んだのですが、PIpfile.lockを更新する運用について書かれている記事が少ない(見つけられなかった)ため、書いておきます。

f:id:ikedaosushi:20190203220109p:plain

TL;DR

  • Dockerfile内では pipenv install --system --ignore-pipfile --deploy を使う。
  • Pipfile.lockは更新用にコンテナを作って、その中で更新し docker cp でホスト側に戻す。
  • pipenv install は現状時間がかかるので軽く使ってみたいときは pip install で試す。
  • あくまで自分が考えついたプラクティスなので「もっといい方法があるよ」「ウチではこうしてるよ」という意見があれば是非コメントくださいmm
続きを読む

【Selenium】 UnexpectedAlertPresentExceptionが出るケースとその対応

Seleniumで思わぬエラーが発生したのでメモとして残しておきます。

TL;DR

  • UnexpectedAlertPresentExceptionはalertに処理がブロックされているときに起きます。
  • seleniumのalertオブジェクトを操作することで解消します。

こんなケースで発生

自分の場合では、JSのコードを実行する処理でこのエラーが発生しました。

driver.get(url)
js = "console.log('hello');"
driver.execute_script(js)
# => UnexpectedAlertPresentException Error!
続きを読む

【Coursera】 実践的な機械学習の知識が得られる「How to Win a Data Science Competition」「Bayesian Methods for Machine Learning」がオススメ

f:id:mergyi:20190114152007p:plain

業務で機械学習する方にオススメなCourseraの2コース

オンライン学習サービスのCourseraで下の2つのコースを去年末から受講しており、最終課題に少し時間がかかってしまったのですが、無事どちらも修了することができました。

せっかく受けたので、どんなコースだったか、何がオススメかを簡単に書こうと思います。

続きを読む

Serverlessを使って簡単にAWS Lambda Layers上でHeadless Chromeを動かす

この記事は Serverless2 Advent Calendar 2018 - Qiita20日目です。

f:id:mergyi:20181222231323p:plain

  • 今年開催された re:Invent2018でAWS Lambda Layersが発表されました。
  • このアップデートによってC拡張のライブラリや容量の大きいライブラリの利用がより便利になりました。
  • その中でも特に自分が最初に「使ってみたい!」と思ったHeadless Chrome on Seleniumの使い方を解説します。
  • 自分が普段使っているServerless Frameworkは既にAWS Lambda Layersに対応しており、これを使ったやり方になります。
続きを読む

Chrome/Firefox/SafariでResource(JS/CSSなど)をキャッシュからロードしないようにする方法

小ネタです。Safariがわかりにくかったので調べたんですが、ついでにChrome/Firefoxも。

Resourceのキャッシュとは

  • JSやCSS、画像などをブラウザはキャッシュしていて、サイトにアクセスした際、そちらから読めるときは優先的にロードするようになっています
  • 普段はとても便利な機能なのですが、開発時には不便なのでdisableにしたくなります。
  • キャッシュからロードされているかはDeveloperToolのNetworkタブから確認することが出来ます。

f:id:mergyi:20181218111347p:plain
Resourceがキャッシュからロードされている

続きを読む