加具留矢流余

かぐるやるよ

移転しました。

約3秒後に自動的にリダイレクトします。

Truffleを使ったSolidity開発環境の構築 + FaucetのExampleの作成

前回マスタリングイーサリアムを読んでイーサリアム周辺の話をざっくり勉強したので今度は実践。ソースコードは↓ github.com やること truffleとganacheを導入してローカルでsolidityをコンパイル+実行できる環境を整える。全体の流れとしては、シンプルなFa…

書評「マスタリングイーサリアム」

巷で流行りのNFTに乗るべく「マスタリングイーサリアム」を購入&読了したので感想。 マスタリング・イーサリアム ―スマートコントラクトとDAppの構築作者:Andreas M. Antonopoulos,Gavin WoodオライリージャパンAmazon 何が書かれていて何が書かれていない…

numpyのchoice関数を読む

javascriptは標準で重み付きのchoice関数が無いのでライブラリを探すか自分で作る必要がある。折角なのでpythonの勉強がてらnumpyのchoice関数を読んだ。 github.com 説明のため該当箇所のソースコードを引用しつつ説明を加えていく。 概観 ざっくり2つの引…

GAEのフレキシブル環境でpuppeteerを使う

prill のプリント作成機能のコア部分にはpuppeteerを使っている。GAEでpuppeteerを動かしたくて試行錯誤した結果、フレキシブル環境でカスタムコンテナを使うことで動作に成功したのでそのときのメモ。後から調べたところによると適切に設定すればスタンダー…

小学校低学年向け学習用プリント作成サービスprillをリリースしました

リリースして3週間くらい経っていますがせっかくリリースしたので記念に記事を書きました。全て応用情報技術者試験のせいでリリースに割くリソースが無かったせいです。(いい訳) prill.jp まだそっけないトップページですがサービスとして最低限のものが凝…

Javascriptでキーボードショートカットを実装する

anntにキーボードショートカットを実装したいと思って調べてみても、検索に引っかかるのはライブラリの使い方ばっかりであまり具体的な仕組みが見つからない。あまりブラックボックスなライブラリを使いたくないという気持ちと、この程度簡単に実装できるだ…

個人開発サービスの記事周りをWordpressに切り出した。

タイトルの日本語が怪しい気がします。コツコツ開発しているanntの話です。 anntはFirebaseで動いていて基本的には静的なページで動いていたので、チュートリアルなどの記事を書くときも直接htmlタグ付けしていくという苦行をしていました。最近さすがに当時…

Pascal VOCのフォーマットに関する調査

anntのpythonライブラリにpascalVOCの読み込み&書き込み機能を実装を検討中。 実装にあたって具体的な仕様を調べてみたもののあまり厳密に決まってなさそう。 調べてなんとなくわかったこととかメモなどを記載していく。 調べるにあたって参考にした資料 Pa…

AtCoder色変記事(緑)。あるいは趣味としての競プロの勧め。

水パフォ叩き出して入緑しました!めっちゃ嬉しいtoritoritori29さんのAtCoder Beginner Contest 182での成績:1031位パフォーマンス:1440相当レーティング:760→859 (+99) :)Highestを更新し、6 級になりました!#AtCoder #ABC182 https://t.co/bTHL1c1rZ0…

多角形の内外判定(javascriptでの実装を添えて)

アノテーションツールでセグメンテーション用に多角形での範囲選択を実装しようとしている。 四角形の場合には簡単に内外判定ができるが、多角形だとそう簡単にはいかない。 今回実装にあたって多角形の内外判定を勉強した。 完成した多角形の描画&内外判定…

anntを大きくリファクタした

前公開したanntをちまちま改修してたのでリリース https://annt.ai/ja 前: 改修前 後: 改修後 主な改修内容は Google Drive対応 内部のリファクタリング デザインの変更 の3点 Google Drive対応 Google DriveはDropboxと違って、階層構造のファイルシステ…

Google Drive APIでファイルをアップロード - Multipart/Related

前回に引き続きGoogleDriveAPIのお話です。 今回はファイルの新規アップロードについてです。 createエンドポイント ファイルを新規にアップロードするにはcreateエンドポイントを使用します。 https://developers.google.com/drive/api/v3/reference/files/…

Google Drive APIでパスを指定してファイル一覧を取得する

Google Drive APIで心が折れた 指定したパスのファイルが存在するか知りたいだけだった。Google Drive Api V3のリファレンスを読んでもあまりファイルパスに関する記述が殆ど見当たらない。クラウドストレージサービスのリファレンスでそんなことあるかと思…

Google Technical Writing Part 1を読み始めた

英語で技術よりの文書が書けるようになりたくて、Google Technical WrtingのPart 1を読み始めた。 developers.google.com 内容は英語で技術文書を書くためのエッセンスを詰め込んだものになっている。読んでいてあたりまえじゃん!って思ったが、実際に過去…

vue.js+vue-routerで自作サービスの多言語対応 Part.1

vue

以前作ったWebサービスの多言語対応を行った。 anntはvue-routerで動くSPAだったが、URLに応じて適切な言語で表示するように改修した。 日本語:https://annt.ai/ja 英語:https://annt.ai/en 多言語対応の方法 初期段階で多言語対応ってそもそもどうやるん…

pythonで色を連続的に変化させる方法

色をシームレスに変化させたい。虹色みたいに。ただそれだけ。 色を連続的に変化させるイメージ と思っても、実は色についてほとんど知識が無いことに気がつく。RGBは分かるが、それを使ってどう変化させればいいかわからない。RGBのRの値だけを変えても色の…

BoundingBoxごと画像を回転・反転・リサイズ

物体検出の前処理だったりデータ水増しを使用とすると、どうしても回転、反転、リサイズなどの処理を行う必要が出てくる。 画像だけであればOpenCV使ったりNumpy使えば、サクっとできるがバウンディングボックスだと若干めんどくさい。(特に回転) ライブラ…

Dropbox上の画像を直接アノテーションできるサービスを作った。Part 2

前回に引き続きanntというサービスを作った話です。 part.2 では主に技術面の話について書いていきます。 目次 目次 フロントエンドの話 canvas周りについて DropboxのAPI バックエンドの話 pythonライブラリの話 まとめ フロントエンドの話 今回始めてvue.j…

Dropbox上の画像を直接アノテーションできるサービスを作った。Part 1

個人開発でサービス作りました。宣伝かねて苦労話・モチベーションとか個人開発に興味がある方に向けて公開します。 まずはPart 1ということで、コンセプトだったり動機だったりとメンタル面の話です。(技術の話も少し触れます) 何を作ったの anntというブ…

パッケージを作成してpypiにアップロード(2020/06)

作成したライブラリをpypiに公開しようとしたが情報過多で迷子になった。 やるべきことをトップダウンに書き出せば後世の人々が救われる気がしたのでメモを残す。 困ったことがあれば公式のチュートリアルを見るのが一番。 docs.python.org ライブラリの準備…

過去に計算したDataFrameと内容が同じか高速に判定したい

同じ前処理を実行するたびに数十分取られるのが非常に辛く感じる。 特に同じ入力を入れているのに実行するたびに計算をしなおすのが馬鹿らしく感じる。 かといってDataFrameを丸々キャッシュして、関数呼び出すたびに前回のDataFrameと同じか検証するものア…

深層学習+Hough変換で紙の領域検出

kaggleやるよ何て名前をつけておいて1年半くらいkaggleやってませんでした。 その間何やってたかって言うとAI使ったWebサービスを作ろうとして挫折してを繰り返してました。 今のところ何の生産物も無いっていう悲惨な状況なんですけど、しょうもないノウハ…

Docker使って手軽にGCEで機械学習できる環境を整えた

最近、強化学習的なとこに手を出してみたけど手元のMacbook AirじゃメモリやCPU的に厳しいのでクラウドで実行することを検討した。 最初はAmazon EC2借りようかなーと考えていたけれど、Google Compute Engine(GCE) だとプリエンプティブという格安実行モー…

機械学習の前処理を効率的にするPreprepっていうライブラリを作った

最近kaggleは放置して機械学習を使った競馬の予想をやってるんですけど、少しパラメータを変えただけのコードを実行するだけなのに、毎回一から前処理をしていると時間がかかりすぎて死ぬという問題が発生していました。 そんな悩みを解決するために、実行す…

TargetEncodingのスムーシング

はじめてのFeature Engineering で紹介したTargetEncoding, LikelihoodEncodingはカテゴリ変数の前処理としては非常に強力な手法だが、あるカテゴリに所属するデータの数が少ないと過学習の原因になってしまう可能性がある。データ数が少ないカテゴリを持つ…

はじめてのFeature Engineering

先日KaggleのAdTracking Competition に参加したが惨敗したため、特訓することにした。 Ad Tracking Competition で4位の人がFeature Engineeringについて非常にまとまった資料を公開していたので、その要約をまとめた。 勉強がてらPythonでサンプルコードを…

feather - pandasの読み書きを高速化

kaggleに参加して巨大なCSVファイルを読み書きしていると、それだけで数分近くかかってしまうことがある。 そこで紹介されていたfeatherというDataFrame保存用ライブラリを使ってみた。 featherはpandasのDataFrameを高速に保存、ロードするために開発された…

Talking Data AdTracking Fraud Detection Challenge

先日開催されたTalking Data AdTracking Fraud Detection Challengeに参加した。 Talking Data AdTracking Fraud Detection Challengeは中国の広告企業TalkingData主催のコンペで、広告クリックのログから不正なクリックを検出するというコンペティションだ…