DEVGRU

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

Programming

社内の認識合わせのために技術的負債を一文で定義してみた

社内では品質管理の名目で技術的負債の解消をミッションの1つとしているが、着手して一番最初に躓いたのは技術的負債とリファクタリングの認識が全く合わないことだった。 リファクタリングについては「リファクタリング」と「レガシーコード改善ガイド」に…

18年使ったEmacsを離れたあとVisual Studio Codeを2週間で辞めてNeovimを使う話

最近の仕事のパフォーマンス下げている要因の1つがエディタ使用時のフラストレーションで、 その解決のために10代から使っていたEmacsからついに離れた。 ただ、Visual Studio Codeを使い始め、強力なコーディング支援機能には感動すら覚えたものの、 細々と…

WebDriverIO で 複数のモディファイアキーを押して離すコード

プロジェクトで Ctrl + Alt + Shift + X を押す機能のE2Eテストを書くときに困ったのでメモ。 (adsbygoogle = window.adsbygoogle || []).push({}); キーイベントを送るには keys() を使う。そこまでは変わらない。 webdriver.io しかし、素直に browser.key…

Angular + Sentry でやたらとUpdateが走る現象を解決する

Angular + Sentry 環境でやたらと Update (ツリーの更新)が走る現象を指摘されたところ、 微妙な問題があったので解決した。 (adsbygoogle = window.adsbygoogle || []).push({}); どうやら zone.js と Sentry の Breadcrumb の両方で console.log() を置…

Angular + Sentry で、 ErrorHandler から console.log() を呼び出すときの落とし穴

あんまりないと思うのだが、Angular と Sentry (Ravenではなく) を同時に使っているとき、ErrorHandler で Sentry にエラーを送ると同時に console.log() にエラー内容を出したいことがあるかもしれない(うちのプロジェクトではなぜかある)。 しかし、その…

大きなテキストファイルをSCPするときは-Cをつけると速い

機械学習用のEC2インスタンスにファイル転送する際、大きなJSONファイルをSCPすると非常に時間がかかっていた。 しかし、オプション1つつけるだけでかなり早くなった。 (adsbygoogle = window.adsbygoogle || []).push({}); つけたオプションは -C。以下の…

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

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

Emacs + counsel/ivy + smart-hungry-delete でハマった

最近 Emacs の環境を更新して、helm から counsel/ivy に移行、またsmart-hungry-deleteも導入した。 ただ、なぜか C-x C-f でファイル一覧が出たときに上のパスに行けない(Backspaceが効かない)現象に遭遇した。 (adsbygoogle = window.adsbygoogle || []…

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…

bitcoin のシステムトレードをしている 〜2017/05/01の時点の話〜

以前、こんな記事を書いた。 team-6.hatenablog.jp (adsbygoogle = window.adsbygoogle || []).push({}); この記事で書いたVer.8は結局お蔵入りになり、 約定履歴とOHLCを記録するモジュールtrade-histroyが外部化され、 そこに毎分問い合わせて売り買いのシ…

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…

Coursera の Machine Learning course を修了した

昨年の12月から受講していた Cousera の Machine Learning course を修了した。 www.coursera.org (adsbygoogle = window.adsbygoogle || []).push({}); 以下、簡単に感想 この界隈では受講必須 パラメータチューニングやサンプル追加の効果の判断など、アル…

Coursera の Machine Learning course を始めた

Coursera という、無償のe-Learningがあり、そこのMachine Learning courseがかなり評判が良いので始めてみた。 www.coursera.org (adsbygoogle = window.adsbygoogle || []).push({}); 現在2週目だが、ここまでの感想は以下の通り。 コンピュータ・サイエン…

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

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

Zaif の streaming API がまた止まっている の続き

team-6.hatenablog.jp の続き。 Streaming API についてサポートに問い合わせても梨の礫で、ほとほと困っている。 (adsbygoogle = window.adsbygoogle || []).push({}); REST API へのポーリングで実装したは良いが、ある程度ディレイを入れなければいけない…

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,相川愛三出版社/メーカー: …

機械学習環境を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({}); まず、先に数件…

BITPointの価格取得APIに接続できたけど

このシリーズもこれで終わりにします。 team-6.hatenablog.jp team-6.hatenablog.jp (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にこだわる理由はなく、む…