modalsoul’s blog

これは“失敗”と呼べるかもしれないが、ぼくは“学習体験”と呼びたい

Python

Pythonのcsvモジュールの挙動とRFC4180

出力されたCSVファイルでカンマズレが発生する事象の調査をしたときの小ネタな話 事象 CSVファイルでカンマ「,」を含むデータがカンマの位置で分割され、かつ、カンマが増殖していた ex.) 山田,太郎 が、 ,山田,,太郎, に変換されていた 原因 原因自体はとて…

Raspberry Pi Zero WHで、みちびき対応GPS受信機キットを使い位置情報を取得する

秋月電子でGPS受信機キットを買ったので、位置情報を取得してみた1 GPS受信機キット 配線 シリアルの有効化 raspi-config /boot/cmdline.txt 動作確認 pyserialのインストール repl NMEA0183 micropyGPS repl GPS受信機キット akizukidenshi.com 小型高感度G…

Headlessモード時、ChromeDriverでファイルダウンロードに失敗した話

ChromeDriverでファイルダウンロードするSeleniumスクリプトを書いたとき、非Headlessモードでは成功するのに、Headlessモードで失敗した件のメモ tl;dr Headlessモードの場合、 target=_blankなアンカーをclick()してもファイルダウンロードできない target…

HeadlessモードのChromeDriverでファイルダウンロードに失敗する現象のトラブルシューティング

ファイルのダウンロードをするSeleniumのスクリプトを、docker上でheadlessモードのChromeDriverで動作させた際、ファイルのダウンロード処理に失敗する現象が起きたので、その対処方法のメモ書き 前準備 基本的なところは前回と同じ modalsoul.hatenablog.c…

Raspberry Pi Zero WHでリレーモジュールを使って電源制御

Raspberry Pi Zero WHで、大きい電圧(ex. 12V)で動作する機器の電源を制御するために、リレーモジュールをつなげてみた。1 リレーモジュール Raspberry Piでの使用例が多かったこのリレーモジュールをポチった SODIAL(R) リレーモジュール出版社/メーカー: S…

Raspberry Pi Zero WHでサーボモーターSG92Rを動かす

Raspberry Pi Zeroでサーボモーターを動かしてみた1 SG92R SG90の使用例が多いですが、今回はSG92Rを使用。特に理由はなし。 マイクロサーボ SG92R (1個)出版社/メーカー: 梅本合同会社メディア: おもちゃ&ホビーこの商品を含むブログを見る CleverCare マ…

Raspberry Pi Zero WHとMPU9250で、9軸センサー(ジャイロ、加速度、磁気)を取得する

9軸センサーが安かったので、ポチってRaspberry Pi Zeroと繋いでみた1 MPU9250 HiLetgo MPU9250 / 6500 9軸 9自由度1 6ビット ジャイロスコープ 加速用 磁気センサ IIC / SPI [並行輸入品]HiLetgoAmazon はんだ付け 付属のピンをはんだ付け 小手とはんだ、は…

Raspberry Pi Zero WHにブート/シャットダウンの物理ボタンを付けた

Raspberry Pi Zeroをポチったので、ちょっとずついじってみる Raspberry Pi Zero WH ボード&ケースセット 3ple Decker 対応-Physical Computing LabPhysical Computing LabAmazon OSはRaspbian stretch lite www.raspberrypi.org 初期設定諸々はここでは割…

Seleniumスクリプトをdocker上のHeadless Chromeで動かす

Seleniumを使った時間のかかるPythonスクリプトがあり、こいつを動かすとフォーカス取られて仕事にならないので、docker化し、ヘッドレス環境で実行するようにした Dockerfile ChromeDriverとSeleniumをインストール FROM python:3.6-alpine3.7 ENV APP_ROOT…

任意の桁数のゾロ目を生成する

n = 1のとき、f(n) = 1 n = 2のとき、f(n) = 11 n = 3のとき、f(n) = 111 n = kのとき、f(n) = 11...11 (k桁の1のゾロ目) となるf(n)の実装を考える 数式で表すと ぱっと思いついた再帰を使うパターン def fn(n, acc=0): return acc if(n == 0) else fn(n-1,…

Pythonicなリストのfilter処理

Pythonicにリストをfilterするにはどうするか?といい話題がでたので、ちょっと考えてみた 話のもとになったslackの投稿(とその擬似コード パターンA names = [x for x in names if x is CONDITION] ↑だとxに何が入ってくるのかがわからない パターンB name…

Pythonのnamedtupleを使ってScalaのcase class感覚でvalue objectを作る

複数の値をまとめて扱いたい時ありますよね。value object欲しいなって時 そんなとき、Scalaだとcase classを使いますね Case Classes | Scala Documentation case class Human(height:Int, weight:Int) こんな感じで、1行だけで複数の値をまとめて扱うこと…

Pythonのタプルでdestructuring bindingっぽい何か(unpacking assignment)でハマった

SQLArchemyを使ったアプリケーションで↓なコードがあった(詳細は割愛) (age,) = db_session.query(User.age).filter(User.id == input.id).one() 右辺がUser.ageをラップしたなにかなのはわかるんだけど、左辺がよくわからない これと似たようなもので、Sc…

Pythonのand, orやallの挙動が正格に見えたけど、ちゃんと非正格だった話

会社のSlackでの1コマ Pythonのorやallで、式の評価を途中でやめてくれない >>> print('a') or pring('b') a b ↑の場合、直感的にはbは出力されないはずだけど、バッチリでてる Pythonって正格なのか、、?と思うも、 >>> 0 and print('b') 0 こっちだとor…