DEVGRU

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

Programming

JavaScript の正規表現リテラルの評価タイミングとパフォーマンス

正規表現リテラルと正規表現オブジェクトの評価について、誤解していたのでメモ。 広告 (adsbygoogle = window.adsbygoogle || []).push({}); 以下の2つのJavaScriptコードを実行した際のパフォーマンスを考える。 regexp-literal.js for (let i = 0; i < 10…

Re: 愛すべきAngularとのお別れ。2,3年後を見据えReactにリプレイスする話

note.com 上記の記事について、現職では主に Angular を使っている立場(※ 社内ではReactのプロダクトも複数あります)でこの記事についての感想を述べます。 広告 (adsbygoogle = window.adsbygoogle || []).push({}); 理由はAngularを書ける(or書きたい)…

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

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

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

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

私的開発環境 Ver. 2021-2

個人・仕事の開発環境をそろそろ見つめ直そうと思ったので、現状を整理する。 広告 (adsbygoogle = window.adsbygoogle || []).push({}); ハードウェア・OS 個人も仕事もMacBook なので、 OSはmacOS縛り。 仕事の方はまだ Big Sur にアップグレードできてい…

(訂正あり) Serverless Framework で TypeScript を使うときは、aws-nodejs-typescript を使わずに serverless-plugin-typescript を使おう

(訂正) 書いたはいいが、 よくよく確認したら repository の last commit が2年前と全くメンテナンスされてない状態だったので、 こちらのほうがむしろ推奨されない方法となっていました。 なにかの参考になるかもしれないので、記事は残しておきます。 不…

(お詫びと訂正)Android版COCOAがバグった理由

2021/02/06 21時35分 追記 参照したGoogleの資料が古く、現在はAppleと同じ仕様になっております。 先日報じられた不具合の原因はこちらのIssueと思われます。 訂正が遅くなり申し訳ありません。 調べたらそれっぽいのがわかったのでメモ。 広告 (adsbygoogl…

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

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

機械学習による競馬予想を再開している

2019/1頃に機械学習による競馬予想をしていて、副業との兼ね合いでちょっと中断したりしていたけど、 色々余裕が出てきたので再開しています。 回収率が100%を超えたので、先週から実際に投票するフェーズに入っていたのですが、 勝ち負けはこんな感じです。…

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

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

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

社内では品質管理の名目で技術的負債の解消をミッションの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 と…