DEVGRU

プログラミングと競馬予想について書きます

Python

neologdn が使えない (Python 3.8では)ので unicodedata.normalize() を使ったが、やっぱり使えた話

データの名寄せに必要な正規化で同僚から neologdn を進められて使おうとしたが、 Python 3.8 に対応していなくて、 unicodedata.normalize() で事足りたけど、3日前に対応していたお話です。 広告 (adsbygoogle = window.adsbygoogle || []).push({}); ユ…

pytest と unittest.mock を使って標準出力のテストを書けなかった話

今回は、標準出力に文字列を出力する実装に対して pytest でテストを書く必要があり、 unittest.mock と Python のライブラリリファレンスにかかれていた方法を組み合わせたら見事にハマったお話です。 広告 (adsbygoogle = window.adsbygoogle || []).push(…

ウェブサービスエラーハンドリング指針

これはなにか 現職の社内でこのテーマで書いたが、そちらは社内プロダクトの情報も混じっているので、同じテーマでブログ向けにいちから書き直してみる。 ちょっと長いが、ウェブサービスを運用するならきちんと抑えておきたい。 課題 SPA + HTTP API(概ねR…

私的開発環境改善計画 Ver. 2021-2

前の記事で開発環境を確認したので、次は改善を考えていく。 team-6.hatenablog.jp 広告 (adsbygoogle = window.adsbygoogle || []).push({}); エディタ Visual Studio Code から変える気はしばらくないので、これをどう便利にしていくか考える。 設定の同期…

Ubuntu 20.04 (on Google Cloud Platform Compute Engine) で GPU サポートが有効な LightGBM をビルドする

サーバを作り直すときに調べたのでメモがてら。 公式に書き方は載っているが、記述が古いので掲題に特化した方法を載せる。 lightgbm.readthedocs.io 前提として、Compute Engine で GPU が有効なインスタンスがあり、そこに pyenv でPython 3.8.6がインスト…

競馬予想に使っているサービス・ライブラリ 2020/11

ここ1年はほとんど変わっていないですが、今現在の機械学習による競馬予想で使っているサービスやライブラリについて情報を残しておきたいと思います。 どちらかというと、なぜそれを使っているのかを考え直したり、あわよくばコメントを貰って改善に役立て…

明日の日付をPython3で出力するワンライナー

競馬予想のためにJRDBからファイルをダウンロードする際、今日明日の日付のデータを削除しないと古いデータが混ざる問題があったのでメモ。 最初は date コマンドでやっていたがGNU拡張だったようで、macOSのBSD dateではうまくいかないためPython3で再実装…

Pandas で 日付の入っているカラムを年でフィルタする

競馬情報で特定の年以降のレースを絞り込むときの便利な書き方がわかったので紹介する。 (adsbygoogle = window.adsbygoogle || []).push({}); dateカラム(datetime型)が2019年以降のデータを選ぶには、ストレートにするとこのような感じになる。 impo…

Python と pypetteer で某所から株価を無料で取得する

結局、仮想通貨は逃げるタイミングが遅れてとんでもない負債を私に残していったので、 ボラリティは低いが安定している株取引を粛々とすることにした。 (adsbygoogle = window.adsbygoogle || []).push({ google_ad_client: "ca-pub-7132367542454356", enab…

note で Botのコードを記事にして売ってみた

BTC・FXのトレード関係の情報をnoteで売るのが流行っている(というかドテンくん)ので、 ちょっとやってみました。 note.mu (adsbygoogle = window.adsbygoogle || []).push({}); 前2記事の画面表示機能+Bot機能で900円です。 Botは1コインあたり5000円買っ…

Binance の手持ちの草コインの価格上昇・下落・これまでのトレード成績が分かるようにした

こんな記事を書いた。 コードを改良したので続き。 team-6.hatenablog.jp team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); 前回のコードをちょいちょい見直したら結構違うコードになった。 追加になったのは、これまでのトレード…

Binance の手持ちの草コインの価格上昇・下落がぱっと分かるようにした

昨日の続き。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); 昨晩は全般的にかなり下落していたようで、反発したコインを売りたくなった。 いちいち購入履歴と付きあわせてどのくらい上がったかを計算するのはアレなので、 昨日…

BTCから草コインへ

先日、この記事を書いた。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); しかしながら、上昇の見込めない相場での現物取引は儲けが少なく損ばかり、ということで草コインに投資することにした。 Binance のアカウントを作って0…

PostgreSQL に投入した約定履歴からMatplotlibでローソク図を描画する

前の記事で約定履歴が手に入ったので、OHLCを求めてローソク図を描画してみる。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); from datetime import datetime, timedelta import pandas as pd import matplotlib.pyplot as plt…

bitbank から 約定履歴を取得する

bitbank の APIを眺めていたら、任意の日付から約定履歴を取得することができることに気づいた。 無限に見られるわけではないみたいだが、cyrptowatch よりも長い期間のOHLCが取得できそうなので頑張ってみた。 (adsbygoogle = window.adsbygoogle || []).pu…

Zaif のREST APIエラー時にリトライする

例のZaif だが、拙宅のStreaming APIを403にした件ですでにうんざりだが、 それに加えて混雑のせいでBot のリクエストが通りづらくなっている。 しばらく待ってリクエストする、を繰り返せばいいのだが リトライするべきエラーとそうではないエラー(資産不…

Zaif の XEM の最小取引量

Zaif でオルトコインとビットコインを用いた裁定取引を試しているんですが、 XEM/BTC と XEM/JPYで最小取引量が異なるようです。 (adsbygoogle = window.adsbygoogle || []).push({}); curl https://api.zaif.jp/api/1/currency_pairs/all | jq . | less と…

cookiecutter を使ってPyramidのプロジェクトをテンプレートから作成する

Pyramid 使いたいんですが、最近cookiecutterの記事(参考)がはてブに上がったりしていたので、 Pyramidのものがないか探したらありました。 https://github.com/Pylons/pyramid-cookiecutter-starter (adsbygoogle = window.adsbygoogle || []).push({}); …

ノンプログラマこそ読んで欲しい! 書評: 退屈なことはPythonにやらせよう 〜 ノンプログラマーにもできる自動化処理プログラミング

以下の本を読んだんですが、掲題の通りノンプログラマ必読ですね。 職場の業務効率向上をしたい人はすぐに買うべきです。 退屈なことはPythonにやらせよう ―ノンプログラマーにもできる自動化処理プログラミング作者: Al Sweigart,相川愛三出版社/メーカー: …

AtCoder Grand Contest 019 に参加してみた感想

先程まで、AtCoder Grand Contest 019 に参加していました。 agc019.contest.atcoder.jp 結局、A, B まで解けたものの、Cの途中で時間切れ、D以降は問題文すら読んでない状況です。 (adsbygoogle = window.adsbygoogle || []).push({}); 開始直後に宅内のネ…

機械学習環境をAnaconda使わずに作ってみる(Ubuntu 16.04)

前記事で書いたとおり、Anaconda でバシッと色んな物が入って嬉しいんですが、一方でAnacondaを使わずにそれをするにはどの程度の労力がかかるのか、試してみたいと思います。 team-6.hatenablog.jp team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle…

Anacondaの利用は是か非か?(またはそれでも私がAnacondaを“今“使う理由)

先日の投稿で、少しフィードバックをいただけた(ありがとうございます!)ので、それに対する反応です。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); フィードバックその1 コメント欄より。 引用されていたので反応しておき…

今Pythonで機械学習・ディープラーニングする環境を作るならpyenv系一択だよね(※個人の感想です)

ちょっと煽ったタイトルですが、これから言いたいことを一言で言うとそういうことです。 またPython環境構築界隈の混沌が深まりそうで申し訳ないですが、自身の中ではそういう結論です。 (adsbygoogle = window.adsbygoogle || []).push({}); まず、先に数件…

書評: 詳解ディープラーニング TensorFlow・Kerasによる時系列データ処理

お仕事的な理由と、bitcoin のトレードに活かせないか、という2つの理由でディープラーニングに手を出そうとして以下を購入した。 詳解 ディープラーニング ~TensorFlow・Kerasによる時系列データ処理~作者: 巣籠悠輔出版社/メーカー: マイナビ出版発売日: …

AtCoder に参加してみた感想

AtCoder ABC071 に参加しました。 AtCoder Beginner Contest 071 - AtCoder (adsbygoogle = window.adsbygoogle || []).push({}); 感想: 以下記事のワンライナーは役に立った。 以下の記事で書いたワンライナーは使いドコロがあったので良かった。 (今回は…

pyenv-virtualenv を使ってみる

前記事でpyenvのインストールについて書いたんですが、 環境を分ける需要があるので、pyenv-virtualenvについても書いておきます。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); virtualenv はPythonのインストールされたパッ…

Pythonをasdf-vmでインストールするのをやめ、pyenvを使うようにした

以前書いたとおり、Anaconda を asdf-vm でインストールしたところ、Anacondaではない環境ではcurlがフルパス指定でないと使えなくなった。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); 別段asdf-vmにこだわる理由はなく、む…

プロコンで役に立つかもしれないPythonのワンライン関数

Paiza や AtCoder では、入力がテキストで示されますが、 その型は文字列だったり数値だったりするわけで、 うまい感じにキャストしたいものですね。 scanf的なものが標準であればいいのですが、ないので作るしかありません。 (adsbygoogle = window.adsbygo…

AtCoder触ってみた

AtCoder をやってみました。 と言ってもTutorialだけですが。 (adsbygoogle = window.adsbygoogle || []).push({}); Python2と3間違えて速攻でRuntimeErrorの表示を頂いてしまいましたが、 そもそもテストしろよな、というのが正しいツッコまれ方かと思いま…

RxPYとbottle.pyは組み合わせがあまりよくなさそう

掲題のとおりなんですが、 非同期に処理結果をコールバックに渡してくるRxPYと、 関数呼び出しの戻り値としてレスポンスを同期的に値を求めるbottle.py は相性が良くないんですよね。 (adsbygoogle = window.adsbygoogle || []).push({}); RxPYのexampleには…