ネコと和解せよ

pythonの符号なしintとバイナリをいい感じに相互変換する

pythonでint128やらint256を扱ったときに、JsonやDBへそのまま書き出せない。 blobに変換して書きだすとよろしいようなので、関数を作った。 import math def toBlobUint(n): """uintをバイナリに変換 """ if n==0: return int.to_bytes(n,1,byteorder="big"…

javascriptで多次元配列を作る

鶏が困っていたので作りました。 javascriptで多次元配列を作ります。 関数 function ndarray(args){ var r=new Array(args[0]) if(args.length==1){ return r } for(var i=0;i

Pythonでテクニカル指標を計算する

オレオレ指標を作り続けて数年、何をやっても損をするので、初心に帰ってPythonでテクニカル指標のRSI、RCI、MACD、SMA(単純移動平均)、WMA(加重移動平均)、EMA(指数平滑移動平均)を計算するコードを書いた。二度と書きたくないのでここに記録する。 c…

いろいろ水に流すツールを作った

ドメインのセールでなんとなく検索したunko.shopが空いていたので、200円ちょっとで購入した。今年のウェブページの開発の演習もかねて、インタラクティブに(とはいってもクリックだけだけど)unkoをつついて流せるウェブサービスを作りました。unko.shop画…

スマホでも動くブラウザ用のサウンドイフェクト連射クラス

audioタグを使ったサウンド再生は、特にスマートフォンブラウザで短時間に連続して起動するとうまく動きません。 iOSのsafariでは顕著で、同一ソースを複数読み込んでマルチチャンネル化しても他の処理に遅延などの影響が出たりします。以下のクラスでは、音…

Chrome(PC/Android)用の簡易音声メモアプリ

先日使い方を覚えたSpeechAPIを使って簡易音声メモアプリ”ひとりごとメモ帳”を作りました。 AndroidとPCのChromeブラウザで音声メモができます。 使い方 準備 Chromeで音声入力ができるように、OSとブラウザの設定を整えておいてください。Windows Win10のPC…

漢字を忘れたときに音声検索するブラウザアプリを作った

ど忘れ漢字を書くときに、音声で検索できると便利そうなので作りました。 ブラウザから音声で漢字を検索するためのツールです。PCか新しめのAndroidスマホで使用できます。残念ながらiPhoneでは動きません。 使い方 基本的な使い方 ブラウザで以下のURL開い…

Promiseで複数のコールバックイベントを予約する

SpeechAPIの非同期イベントを並べなおすときに、複数のイベントを順に呼ぶ必要があったので作った。 コンストラクタで空のPromiseを呼んでその結果をnextに保存しておく。 作った後で気が付いたけど、これクラスにする必要ないね。 class PromiseStack { con…

javascriptで都合よくhtmlフラグメントを生成する関数

JavascriptでちょっとしたHTMLをjavascriptオブジェクトから作る関数を作った。類似品を検索したけど見つけられなかった。もし似たようなのがあったら教えてください。例えばこんなjsオブジェクトから、 var src=["div",{class:1,text:"",},[ ["div",[ "AAAA…

celeryのシグナル調査ログ

celeryのシグナルのログ from celery.signals import * import os @eventlet_pool_started.connect def eventlet_pool_started(sender=None, headers=None, body=None, **kwargs): print("accept eventlet_pool_started %d"%(os.getpid(),)) @eventlet_pool_…

Pythonでいいかんじに 小数部の桁数を制限する

pythonで小数部の桁数を制限する場合、decimalを使うのが一般的だそうだ。 decimalは有効桁数を制御できるけど、JavaのBigDecimal#setScaleのように小数点以下の桁数を制限する機能がなかった。そんなわけでいい感じに 小数部を成型してくれる関数を作った。…

メモ

ubuntuでmatplotlibでpillow関係のエラーが出た時の再インストール手順 apt-get install libjpeg-div pypy3 -m pip uninstall matplotlib pypy3 -m pip uninstall pillow pypy3 -m pip install matplotlib pypy3 -m pip install pillow

JSON形式でPickleがしたい!

Pythonオブジェクトのシリアライズにはpickleモジュールがあるが、こいつは独自形式のバイナリを出力する。どこかの超人のようにバイナリをそのまま読めないので、JSON形式でpickleできるようなモジュールを作った。pickle utility to json format . · GitHu…

WSL +VScode でpypy3するメモ

WSLとpypy3とVSCodeはあらかじめ入れておく。VSCodeの次の設定をいじる。

ThinkPad X395を買ったよ!

LenovoさんのセールでThinkpadX395を買いました。 2013年の9月にT440pを買って以来なので、なんと7年ぶり。 レノボWeb広告限定ストア 広告限定eクーポンはこちら スペック メモリは増設できないので最大。ストレージは修理に出すとき困るから最低限にして後…

いまさらJavaのTimerの挙動を調べる。

JavaのTimerをキャンセルしたときに、実行中のタスクがどうなるのか調べていなかったので調べた。 import java.util.Timer; import java.util.TimerTask; public class TimerTest { public static synchronized void print(String s){ System.out.println(s)…

sqlite3でROW_NUMBER()が使えるらしい。

SQLiteでもVersion3.25.0からROW_NUMBERが使えるようになっていた。How to use ROW_NUMBER in sqlite - Stack Overflow SQLite ROW_NUMBER() Window Function By Practical Examplesグループ分けされたスコア情報から、グループごとにN個のデータをサンプリ…

バッチファイルからWindlwsパスを渡してWSLコマンドを実行する方法

バッチファイルにファイルをドラック&ドロップして実行したいときには次のように書く。 @SETLOCAL @SET CMD=wsl wslpath "%1" @FOR /f "DELIMS=" %%A IN ('%CMD%') DO SET R=%%A echo %R% wsl ls %R%Rに変換したパスが入る。%1をダブルクォーテーションでく…

pypyで高速化したらメモリリークしたお話

Pythonクラスを関数内で定義すると、pypyでの実行時にメモリリークが発生して実行速度が遅くなる。以下のコードをPythonで実行する。 import time class Leak: def proc(self): class Inner: def something(self): i=1+1 for _ in range(10000): a=Inner() a…

Pythonで共有メモリを使った並列処理をするときのメモ

Pythonで大きめのデータ(数百M~数GB)を解析しようとしたときの技術メモ。Pythonを並列処理で高速化しようとするとGILの制約を受ける。この問題は複数の同一プロセスを起動することで回避できるが、巨大なデータを扱う場合、それが読出専用であってもメモリ…

Python3.7をWSLに入れる

apt search Python3.7*で見つからないとき。ppaをこの辺から追加する。 sudo add-apt-repository ppa:deadsnakes/ppa sudo apt-get updateそのあとにapt-get install python3.7でOK 参考 How to Install Python 3.7 on Ubuntu 18.04 | Linuxize

pypy3のセットアップメモ

WSLにPyPy3をセットアップした時のメモです。 matplotlibとnumpyとscypyとpandasをセットアップできるようにするのが目標pypyのセットアップhttps://askubuntu.com/questions/441981/how-to-install-pypy3-on-ubuntu-for-newbies sudo add-apt-repository pp…

対応端末のはずなのにARが出てこない人へ

対応端末のはずなのに検索結果に3Dモデルのリンクがでてこない人は、OSを最新のバージョンにしましょう。 iOSの場合 13.1.1に更新したらSafariで見れるようになりました。 いますぐ、設定→ソフトウェアアップデートでバージョンを確認しよう! Pixel3aの場合…

ビットコイン価格をCSVでダウンロードするサービスを作りました。

ビットコイン取引所の配信するビットコイン/仮想通貨の過去データをダウンロードするサービスを作りました。 機械学習の練習やbotのバックテストなんかに使えると思います。nyatla.jp 公開しているのは、bitflyerとZaifが配信しているデータから作った始値、…

SQLiteでMAX関数とMIN関数を一緒に使ったら死ぬほど遅かった話

300万件ほどのデータのあるinteger型のidを格納するテーブルで、MAX(id)とMIN(id)を求めようとしたらとんでもない時間がかかった。 同じSELECTでMINとMAXを求めたのが悪いようだ。別に求めてUNIONでくっつけると問題なかった。理由はよくわからない。 テーブ…

Google DriveのファイルをGoogle Colaboratoryからサクっと使う方法

お気楽機械学習プラットフォームのGoogle Colaboratoryから、Google Driveにあるファイルが簡単に使えるようになっていたという話。以前は長い呪文を撃ち込まないとドライブのファイルが使えなかったのですが、今は以下の2行で接続できる。 from google.col…

機械学習用にPCを組み替えた

ゲームと機械学習の計算機にしていた自作PCを作り変えました。 時々パーツ単位では更新することもありましたが、マザーボードを含めては十数年ぶりです。 構成 1050Tiは以前NierAutomataを眺めるプレイするために買ってあったので、それを流用します。CPUはI…

Jupyter NoteBookとPythonで上位階層のimportをする方法

Jupyter NoteBookで__file__を使って上位ディレクトリをimportしようとすると失敗する。__file__が定義されていないから。 代わりにpathを使えばよいらしい。 import sys import os try: __file__ sys.path.append(os.path.join(os.path.dirname(__file__), …

仮想通貨取引所Zaif.jpのJava用ライブラリ作りました。

久々のビットコインネタです。仮想通貨取引所Zaif.jpのAPIをJavaから使うためのライブラリを作ったので公開します。 GitHub - nyatla/JZaif: zaif.jp API for Java 情報取得API(PublicAPI)、ストリーミングAPI、取引API(Private)のすべてのAPIを使うことがで…

NyARToolkit UnityでUnityちゃんデモを作る方法

NyARToolkitでUnityちゃんを動かすデモのチュートリアルを書きました。 NyARToolkit for Unityの使い方を一通り説明してあります。NyARToolkit UnityでUnityちゃんデモを作る | NyARToolkit project