chevron_left

メインカテゴリーを選択しなおす

cancel
DEVGRU https://team-6.hatenablog.jp/

プログラミングとbitcoinのシステムトレードについて書きます。

プログラミングとbitcoinのシステムトレードについて書きます。 最近は機械学習にも興味があります。 Python使いです。

katoken
フォロー
住所
市川市
出身
阿賀野市
ブログ村参加

2017/08/22

arrow_drop_down
  • Amplify CLI を使わずに AWS CLI だけで Amplify Hosting にデプロイする

    あらまし GitHub Actions で Gatsby.js で生成したサイトを AWS Amplify にデプロイしたいが、 Amplify CLI のインストールをしなくともデプロイする方法が見つかったので紹介する。 広告 (adsbygoogle = window.adsbygoogle []).push({}); AWS Amplify (以下 Amplify)は、AWSのホスティングフレームワークで1つのアプリに対してフロントエンド・バックエンドそれぞれをデプロイできる。 フロントエンドはブランチごとのデプロイが可能で、本番・開発・作業ブランチなど複数のデプロイをすることが可…

  • エンジニア&エンジニアになりたい人におすすめの会社テックブログ

    エンジニア&エンジニアになりたい人におすすめする会社テックブログ一覧

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

    データの名寄せに必要な正規化で同僚から neologdn を進められて使おうとしたが、 Python 3.8 に対応していなくて、 unicodedata.normalize() で事足りたけど、3日前に対応していたお話です。 広告 (adsbygoogle = window.adsbygoogle []).push({}); ユーザの入力値とデータベースを照合して最もマッチする値を取得する実装が必要になり、同僚が neologdn ( PyPI) を教えてくれたので、さっそうと pip install neologdn したところ、見事に使えなかった。 $ pip install ne…

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

    今回は、標準出力に文字列を出力する実装に対して pytest でテストを書く必要があり、 unittest.mock と Python のライブラリリファレンスにかかれていた方法を組み合わせたら見事にハマったお話です。 広告 (adsbygoogle = window.adsbygoogle []).push({}); シンプルにするとこんな感じに、標準出力への文字列が唯一の副作用となる関数があります。 def hello(name=None): if name: print(f"Hello, {name}") else: print("Hello") if __name__ == "_…

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

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

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

    note.com 上記の記事について、現職では主に Angular を使っている立場(※ 社内ではReactのプロダクトも複数あります)でこの記事についての感想を述べます。 広告 (adsbygoogle = window.adsbygoogle []).push({}); 理由はAngularを書ける(or書きたい)エンジニアを採用することが難しいからです。それにつきます。 はい、特に異論はありません。 実際、現職でもAngular のプロダクトのフロントエンドエンジニアの採用には苦戦しており、採用が難しい点について概ね事実かと思います。 その差が出たのは、元記事で指摘されている通り、…

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

    これはなにか 現職の社内でこのテーマで書いたが、そちらは社内プロダクトの情報も混じっているので、同じテーマでブログ向けにいちから書き直してみる。 ちょっと長いが、ウェブサービスを運用するならきちんと抑えておきたい。 課題 SPA + HTTP API(概ねREST APIと言っていい)の構成において、エラーハンドリングを正しく行うのは意外と面倒だ。 しかし、特に運用中のプロダクトにおいては、障害・バグの早期検出、ユーザエクスペリエンス向上の観点から、これをきちんとするのが望ましい。 広告 (adsbygoogle = window.adsbygoogle []).push({}); 前提…

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

    前の記事で開発環境を確認したので、次は改善を考えていく。 team-6.hatenablog.jp 広告 (adsbygoogle = window.adsbygoogle []).push({}); エディタ Visual Studio Code から変える気はしばらくないので、これをどう便利にしていくか考える。 設定の同期 仕事と個人の環境で設定を同期しておらず、さらにこの前MacBookを新調したときに移行に苦労したので、設定の同期を有効化する。 AzureかGitHub アカウントで同期できるので、GitHubアカウントを選択した。 キーマップ ずっと Awesome Emacs…

  • 私的開発環境 Ver. 2021-2

    個人・仕事の開発環境をそろそろ見つめ直そうと思ったので、現状を整理する。 広告 (adsbygoogle = window.adsbygoogle []).push({}); ハードウェア・OS 個人も仕事もMacBook なので、 OSはmacOS縛り。 仕事の方はまだ Big Sur にアップグレードできていない。 もちろん Homebrew を使っている。 エディタ Emacs は卒業して、 Visual Studio Code を使っている。 Vim は開発環境を揃えるのが面倒すぎて断念してしまった。 アドオン もと Emacs ユーザなので、 Awesome Emacs Key…

  • エンジニア採用のお知らせ

    現職ではプロダクト拡充のため、ソフトウェアエンジニアの採用を行っております。 転職をお考えの方、または興味のある方は、@blog_devgru までDMください。 現職のWantedlyのページとかんたんな紹介をお送りします1。 業務分野 国内医療系スタートアップ 雇用形態 正社員 業務委託 会社規模 正社員100人超 資本金 ポジション バックエンドエンジニア フロントエンドエンジニア SRE テクノロジースタック バックエンド Python/Django Python/Serverless Framework/AWS Lambda フロントエンド Angular React 共通: AWS…

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

    (訂正) 書いたはいいが、 よくよく確認したら repository の last commit が2年前と全くメンテナンスされてない状態だったので、 こちらのほうがむしろ推奨されない方法となっていました。 なにかの参考になるかもしれないので、記事は残しておきます。 不便な記事2連発で申し訳ありません。 広告 (adsbygoogle = window.adsbygoogle []).push({}); tl; dr 一部の場合を除いて、このコマンドでプロジェクトを作るのは避けて serverless-plugin-typescript を使おう sls create -t aws-no…

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

    2021/02/06 21時35分 追記 参照したGoogleの資料が古く、現在はAppleと同じ仕様になっております。 先日報じられた不具合の原因はこちらのIssueと思われます。 訂正が遅くなり申し訳ありません。 調べたらそれっぽいのがわかったのでメモ。 広告 (adsbygoogle = window.adsbygoogle []).push({}); 報道発表の時期から、原因はこのコミットだと思われる。 怪しいのはこの変更。 - MinimumRiskScore = 1, + MinimumRiskScore = 21, (Minimum)RiskScore の定義を調べると、G…

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

    サーバを作り直すときに調べたのでメモがてら。 公式に書き方は載っているが、記述が古いので掲題に特化した方法を載せる。 lightgbm.readthedocs.io 前提として、Compute Engine で GPU が有効なインスタンスがあり、そこに pyenv でPython 3.8.6がインストールされているものとする。 (adsbygoogle = window.adsbygoogle []).push({}); CUDA のインストール wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu20…

  • Google Cloud Platform Compute Engine の VM インスタンスにSSHでつなぐ

    BigQuery を使っている縁(?)から、計算用のインスタンスもGoogle Cloud Platform (GCP) を使っている。 具体的には、 AI Platform の Notebook インスタンスを立てているのだが、これは結局 Compute Engine の VM インスタンスに Jupyter Lab をプリインストールしただけのものだったりするので、 SSHログインは可能(ただし、Jupyter Labのユーザではログインできず、別ユーザとなる) IPアドレスはエフェメラル(起動ごとに変わる)がデフォルトで、staticにすることで固定もできるが、まあまあお金がかかる。 し…

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

    ここ1年はほとんど変わっていないですが、今現在の機械学習による競馬予想で使っているサービスやライブラリについて情報を残しておきたいと思います。 どちらかというと、なぜそれを使っているのかを考え直したり、あわよくばコメントを貰って改善に役立てるために公開します。 (adsbygoogle = window.adsbygoogle []).push({}); Web Service JRDB www.jrdb.com 予想をする上ではデータソースがないと話にならないのですが、Mac, Linux上でデータを取得できるサービスは今の所 JRDB だけです。 (netkeiba をスクレイピング…

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

    2019/1頃に機械学習による競馬予想をしていて、副業との兼ね合いでちょっと中断したりしていたけど、 色々余裕が出てきたので再開しています。 回収率が100%を超えたので、先週から実際に投票するフェーズに入っていたのですが、 勝ち負けはこんな感じです。 日付 投票 払戻 2020/11/14 ¥7,000 ¥0 2020/11/15 ¥10,000 ¥0 2020/11/21 ¥14,000 ¥12,800 2020/11/22 ¥13,000 ¥17,400 先週は全く当たらなかったですが、今週は黒字です。 この調子でどうにか年内は黒字にしたいところです。 再開した理由はもう1つあって、この…

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

    競馬予想のためにJRDBからファイルをダウンロードする際、今日明日の日付のデータを削除しないと古いデータが混ざる問題があったのでメモ。 最初は date コマンドでやっていたがGNU拡張だったようで、macOSのBSD dateではうまくいかないためPython3で再実装して回避した。 (adsbygoogle = window.adsbygoogle []).push({}); ともに西暦下2桁、月2桁、日2桁の6桁表示。 date コマンドバージョン date +"%y%m%d" --date "tomorrow" date +"%y%m%d" --date "1 day" Pyth…

  • Angular と RxJS のための情報サイトを作り始めた

    「Angular のための RxJS」 というサイトを作っています(まだコンテンツしょぼい)。 ここ数年、業務でAngularを書いていて知見がだいぶ溜まってきたのと、業務委託のサービスもAngular移行して更に知見が増える速度が加速したので、 どこかにアウトプットしておこうと思った次第です。 まだAngular成分は皆無ですが、よくある使い方や落とし穴などを紹介できたらと思います。 learn-rxjs-for-angular.info

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

    社内では品質管理の名目で技術的負債の解消をミッションの1つとしているが、着手して一番最初に躓いたのは技術的負債とリファクタリングの認識が全く合わないことだった。 リファクタリングについては「リファクタリング」と「レガシーコード改善ガイド」にその定義が掲載されているのでソースをぶつけることで早々に解決した。 新装版 リファクタリング―既存のコードを安全に改善する― (OBJECT TECHNOLOGY SERIES)作者: Martin Fowler,児玉公信,友野晶夫,平澤章,梅澤真史出版社/メーカー: オーム社発売日: 2014/07/26メディア: 単行本(ソフトカバー)この商品を含むブロ…

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

    最近の仕事のパフォーマンス下げている要因の1つがエディタ使用時のフラストレーションで、 その解決のために10代から使っていたEmacsからついに離れた。 ただ、Visual Studio Codeを使い始め、強力なコーディング支援機能には感動すら覚えたものの、 細々としたところでどうしても許容できない箇所があったので結局2週間で挫折してしまった。 www.gnu.org code.visualstudio.com (adsbygoogle = window.adsbygoogle []).push({}); Emacs を離れた理由をまとめると、以下のようになる。 初期状態でできることが…

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

    プロジェクトで Ctrl + Alt + Shift + X を押す機能のE2Eテストを書くときに困ったのでメモ。 (adsbygoogle = window.adsbygoogle []).push({}); キーイベントを送るには keys() を使う。そこまでは変わらない。 webdriver.io しかし、素直に browser.keys(['Control', 'Alt', 'Shift', 'KeyX']); とするとモディファイアキーが押しっぱなしになってしまい、意図した動作とならなかった。 これを解決するには、以下のように末尾にNULLを追加する。 browser.key…

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

    Angular + Sentry 環境でやたらと Update (ツリーの更新)が走る現象を指摘されたところ、 微妙な問題があったので解決した。 (adsbygoogle = window.adsbygoogle []).push({}); どうやら zone.js と Sentry の Breadcrumb の両方で console.log() を置き換えようとしているのがいろいろまずいらしい(斜め読み)。 github.com これについてエレガントな解決方法はどうやら観測範囲には見当たらないそうなので、シンプルにSentryのBreadcrumbを停止させた。 Sentry.ini…

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

    あんまりないと思うのだが、Angular と Sentry (Ravenではなく) を同時に使っているとき、ErrorHandler で Sentry にエラーを送ると同時に console.log() にエラー内容を出したいことがあるかもしれない(うちのプロジェクトではなぜかある)。 しかし、そのまま console.log() するとまずいことが起きたので、回避方法をここに書いておく。 (adsbygoogle = window.adsbygoogle []).push({}); 発生したまずいこと、というのは再帰呼出しで、ブラウザの制限を食いつぶすまで再帰呼び出しが続いていたようだ…

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

    機械学習用のEC2インスタンスにファイル転送する際、大きなJSONファイルをSCPすると非常に時間がかかっていた。 しかし、オプション1つつけるだけでかなり早くなった。 (adsbygoogle = window.adsbygoogle []).push({}); つけたオプションは -C。以下のように使う。 scp -C from host:/to 実際手元で試してみたら、以下のように違いが出た。 -C なし 43MB 1.1MB/s 00:40 -C あり 43MB 9.8MB/s 00:04 おおよそ10倍の差がついた。 EC2インスタンスは時間課金なので、この差は大きいだろう。 …

  • AWS EC2の深層学習用インスタンスのJupyter Notebookでtqdmを使えるようにする

    機械学習で非常に時間のかかる処理をするとき、AWS の EC2 インスタンスを立ててその上で実行している。 AMIは深層学習用のインスタンスを用いている。 aws.amazon.com Jupyter Notebookもプリインされている。 また、時間のかかる処理を可視化するのに便利なパッケージ tqdm があり、これも重宝している。 github.com tqdm は Jupyter Notebookもサポートしているが、上記AMIで動かすのには一苦労あった。 (adsbygoogle = window.adsbygoogle []).push({}); 結論から言えば、以下が必要だっ…

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

    競馬情報で特定の年以降のレースを絞り込むときの便利な書き方がわかったので紹介する。 (adsbygoogle = window.adsbygoogle []).push({}); dateカラム(datetime型)が2019年以降のデータを選ぶには、ストレートにするとこのような感じになる。 import datetime data[data.date <= datetime.datetime(2019, 1, 1)] しかし、これはコード量的にも視覚的にもイマイチわかりにくい。 以下のように書くと、分かりやすくなる。 data.query('date >= 2019`) もし、2019…

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

    最近 Emacs の環境を更新して、helm から counsel/ivy に移行、またsmart-hungry-deleteも導入した。 ただ、なぜか C-x C-f でファイル一覧が出たときに上のパスに行けない(Backspaceが効かない)現象に遭遇した。 (adsbygoogle = window.adsbygoogle []).push({}); 結論としては、以下が問題だった。 (global-set-key (kbd "<backspace>") 'smart-hungry-delete-backward-char) どうやら、<backspace>が上書きされると上記の問…

  • 競馬予想を始めた

    まだ仮想通貨の取引の痛手が残っていて株取引はできていない(SBIに口座を開設しただけ…)。 それはさておき、最近興味があったが応用先のない機械学習の知識がついに役に立つ分野が見つかった。競馬だ。 無料で手に入る多数のパラメータがあり、結果がはっきりしていて、しかもリターンが金銭的に入ってくる。 (adsbygoogle = window.adsbygoogle []).push({}); 以下の記事を参考に、 netkeiba.com のデータを用いてLigthGBMで学習をしている。 cocon-corporation.com cocon-corporation.com また、以下の書…

  • raven-js はもう使わないほうがいい

    仕事で Sentry を使っているが、 そのライブラリ raven-js はもう死んでいるという話。 (adsbygoogle = window.adsbygoogle []).push({ google_ad_client: "ca-pub-7132367542454356", enable_page_level_ads: true }); github.com ここを見ると、以下のように書いてある。 raven-js: Our old stable Javascript SDK, we still support and release bug fixes for the SDK b…

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

    結局、仮想通貨は逃げるタイミングが遅れてとんでもない負債を私に残していったので、 ボラリティは低いが安定している株取引を粛々とすることにした。 (adsbygoogle = window.adsbygoogle []).push({ google_ad_client: "ca-pub-7132367542454356", enable_page_level_ads: true }); さて、株取引の自動化は厳しいが、せめて売買のタイミングぐらいは自動的に分かるようにしておきたい。 幸い、無料で株価履歴を公開しているサイトがあるので、そこから自動取得するようにしてテクニカル指標を求めるよう…

  • HTTPS化しました。

    本BlogをHTTPS化しました。 (すっかり忘れていた) もし見られなくなっている記事などありましたらご連絡ください。

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

    BTC・FXのトレード関係の情報をnoteで売るのが流行っている(というかドテンくん)ので、 ちょっとやってみました。 note.mu (adsbygoogle = window.adsbygoogle []).push({}); 前2記事の画面表示機能+Bot機能で900円です。 Botは1コインあたり5000円買って12%で利喰い、-8%で損切りするのを繰り返すだけです。 もちろんいくら買うか、利喰い損切りのしきい値も変更可能です。 買い時の判定コードはTradingView でVixFix使ったものを移植しましたが、お好きなものに入れ替えられます。 利益は保証できませんが、0.5B…

arrow_drop_down

ブログリーダー」を活用して、katokenさんをフォローしませんか?

ハンドル名
katokenさん
ブログタイトル
DEVGRU
フォロー
DEVGRU

にほんブログ村 カテゴリー一覧

商用