中野智文のブログ

データ・マエショリストのメモ

夏休みの宿題のスプリントプランニング

背景と導入 夏休みの宿題のようなすぐに終わらない課題を計画的に行うのは非常に難しい。受験もまた同様である。 アジャイルでは時間に対してタスクを割り当てる。この考えを導入する。予定が分かっている直近の2,3日の時間に対して優先順位の高い勉強を…

BQで最長前方共通文字列を抽出する

背景 住所などで、前方一致する共通文字列を取り出したい。 方法 考え 前方部分文字列を1文字つずつ増やしながら生成して、同じ文字数で生成した文字列が何タイプあるか調べて、1以外なら共通していないので破棄する。(ここまでが前方共通文字列) そのうち…

colab を使って Jira cloud をOAuth で接続

背景 colab から、Jira に接続したい。 方法 RSAのカギを作る。 次のサイトの情報に従って、鍵を作成する。 qiita.com $ openssl genrsa -out jira.pem 1024 $ openssl rsa -in jira.pem -pubout -out jira.pub アプリケーションリンクを作る。 次の方法(St…

Jira core をワークフローツールとして使う

背景 Jira core を workflow として使うときのメモ。日々更新。 なぜ Jira を使うのか 決められたフローに従って処理をしてほしい。終わったら、ボタン一つで次の人にアサインして欲しい。 用語 プロジェクト 一つのワークフローを持つことができる。またボ…

Jira の slack 連携で使うslackアプリ

背景 気が付けば、Jiraの slack アプリが二つも入っていた。何かおかしい。 二つのアプリの違い Jira Cloud my.slack.com 新しい。チャンネルごとの設定ができる。 チャンネル設定のやり方 はじめに設定したいチャンネルに入る。 プライベートチャネルなら、…

DataPortal のコピー

背景 DataPortal は個人(社内)で使うのは素晴らしいが、これを使ってビジネスでスケールアウトさせようとすると、いろいろと問題が出る。 とりあえず、コピーをして複製を作り、その複製に対して設定を変えるという手作業でなんとかしのげそうなのだが、コ…

Jira Software Cloud と GitHub の連携

背景 Jira Software Cloud と GitHub の連携に関して、検索すると古い記事が出てくる。 Atlassian の公式のページの情報も古い記事なので注意。OAuth や、DVCS アカウントというキーワードが出ていれば全て古い。 解決策 すべては、 www.atlassian.com の201…

BigQueryで、1000円分の切手問題を解く

背景 igcn.hateblo.jp 方法 実行は慎むこと。データ参照は0バイトだが、7000秒たっても(現時点)結果は出ない。こんなおバカなクエリをBQ様に投げて心が痛い。 WITH num_list AS ( SELECT n FROM ( SELECT GENERATE_ARRAY(1,1000) a ) CROSS JOIN UNNEST(a)…

bigquery の int64 への cast は切り捨てではない

すなわち、 select cast(1/2 as int64) は切り捨てではなく、丸められ 1 となる。 (今更ながら知る。。。) 切り捨ては、floor を使おう。 参考 標準 SQL 関数と演算子 | BigQuery | Google Cloud

Mozc の日本語入力モードへの切り替えが ctrl space だと、 emacs で困ってしまう人の設定

背景 Mozc の日本語入力モードの切り替えが ctrl space だと、emacs (terminal)で使うときに mark set したいときに、 デフォルトのキーバインドとかぶって困ってしまう。 対策 Mozc の日本語入力モードへの切り替えのキーを ctrl \ にする。

bigquery で日本語の曜日のJOIN用テーブルを作成する

背景 毎度日本語で曜日を表示するためのJOIN用テーブルを作成に時間がかかるので、 コピペ用のコードが欲しい。 (JOIN用テーブルでなくifで作ったほうががテンプレートしては使いやすいかも。) そのクエリ #standardSQL WITH _weekday_list AS ( SELECT SP…

colaboratory で、pycodestyle を使う

次のように、colaboratory 上に書いて実行(python3.6で確認) !pip install flake8 pycodestyle pycodestyle_magic %load_ext pycodestyle_magic あとは、 %%pycodestyle # ... ここにコード と書いて実行。チェックの必要がなくなれば、コメントにしてしま…

PACモデルで十分な事例数とその使い方

PACモデルで十分な事例数 ここで、は学習事例数、 は仮説空間、エラー率以内の概念モデルを の確率で学習すること(Tom Mitchell 著 Machine Learning 7章より)。 使い方 次の様な質問に即答できる。 データが倍になったら何がうれしいか? エラー率が半分…

BigQuery で、ある特定の期間の日を全て列挙する

背景 BigQuery で、ある特定の期間の日を全て列挙したくなった。 方法 generate_date_array を使う。 https://cloud.google.com/bigquery/docs/reference/standard-sql/functions-and-operators#generate_date_array 例:'2018-01-01' から '2018-12-31' ま…

FirebaseのRTDBからFireStoreに乗り換えるためにGCPのプロジェクトを作成したときのメモ

背景 GCPのプロジェクトの中では、Firebaseのストレージは、排他的で、RTBDかFirestoreのどちらしか選べないらしい。 強制的にFirestore にする手もあるが、戻れなくなるのも嫌なので、新しくGCPのプロジェクトを作ることにした。 なお、Firebaseのプロジェ…

word2vec の demo word を colaboratory で

背景 word2vec を使ってみたいが、colaboratory で試してみる方法が分からない。 方法 https://colab.research.google.com/drive/1VhlWwexI2FR0eT288Mbv_D4uWbqHo2mK 解説 demo をたぐると、次のオプションで学習しているらしい。 -cbow 1 -size 200 -window…

Cloud FunctionsとPubSubを使ってGCPの予算アラートをslackに通知

背景 GCPの予算アラートをslackに通知したいが、GCPの予算のアラートに無駄金を使わないために、GCPのサーバレスの機能を使って実現したい。 手順 PubSub を作ろう Slack で通知のためのWeb Hook を作ろう Cloud Functionsで関数を作ろう GCPのお支払いで設…

pyplot で背景とグリッドに色を付ける

背景 google colaboratory は無料で jupyter notebook を使える環境で最高なのだが、一部微妙にカスタマイズされていて困ることがある。 例えば、pyplot の背景が、グレーになっている。 具体的には、素のjupyter notebookだと、 という感じだが、colaborato…

SQLクエリのみでCREATE TABLEを使わず一時的な小さなテーブルを作る

背景 SQLクエリのみでCREATE TABLEを使わず一時的な小さなテーブルを作りたい時がある。 例えば、{'ios': 1, 'android': 2, 'windows': 3} みたいな小さなテーブルが一時的に欲しいことはある。 それがないために、IF(os_id=1, 'ios', IF(os_id=2, 'android'…

luigi RangeDaily にて謎のエラー

背景 luigi RangeDaily の謎のエラーについて書く。 なお、RangeDaily については下記記事を参照。 nakano-tomofumi.hatenablog.com ValueError: invalid literal for int() with base 10: 'None' RangeDaily のパラメータ now が None であると怒っている。…

aws s3 のファイルを圧縮しながらストリーミングでgcsに置く

背景 早い話が、gsutil の -z オプションの挙動(静的ホスティングじゃないとき)がよくわからなかったから。 cp - Copy files and objects | Cloud Storage Documentation | Google Cloud コマンド aws s3 cp s3://your-s3-bucket/your-file.txt - | gzip -…

google cloud storage の権限は defacl でバケット単位で設定する

背景 google cloud storage を使って共有しようと思ったが、設定はどうやるのか? 方法 gsutil defacl コマンドで(バケット単位で)設定する。 既存のファイルについては、gsutil acl コマンドの -r オプションで追加する 例(user@example.comさんにread …

ec2 でシンプルな mail クライアント mailx

背景 ec2 の cron を実行したとき、標準出力に何か出ると、メールで送られてくる仕組みになっている。 多くの tips では、ハードディスクがいっぱいになるから、これを停止するものが多いが、 停止する前にエラーなどが出ていないか、確認したいものである。…

gcloud 系コマンド(gsutil bqなど)で、 which no python in ... というエラー

背景 gcloud 系のコマンドを実行すると、 which: no python2 in 自分のパス というエラーが出る。 ただエラーが出るからと言って実行できないわけではなく、 python2.7 とか、python2 とかはパス上にあるからか、結局それを見つけに行って実行される。 ちな…

luigi で resources を使ってリソース毎に同時実行数を制限する

背景 luigi は同時 workers オプションで同時 worker 数を制限できるが、CPU的には同時に16走っても問題ないが、DB的には一つしか接続したくない、という要望がある。 対応 resources を使う。 リソース毎の worker 数の設定と、それぞれのタスクがどれほど…

s3上のgzip圧縮されたファイルの中身をイテレータで取得する

背景 s3上のgzip圧縮されたファイルの中身をイテレータで取得する方法がなかなか見つからない。 コード import boto3 import tempfile import gzip import datetime as dt from typing import Iterator def s3_gz_cat(bucket: str, prefix='') -> Iterator[b…

BigTable は東京リージョンでも使える!

背景 bigtable が東京リージョンでは使えないみたいな話が古い記事で見つかったりする。 GCPで東京リージョンにて使えるサービス&使えないサービス一覧 | apps-gcp.com 本当は 使えるようになっている!!! https://groups.google.com/forum/#!topic/googl…

numpy array を aws s3 に格納する。

背景 jupyter notebook を使っていて、データをローカルのファイルシステムに保存するようにしていると、 環境が変わったときにそのデータまで一緒に持ってこないといけないが、これは jupyter の利便性を失う一つの要因となる。 例えば github でjupyter no…

ImportError: No module named '_tkinter' が出た場合

背景 毎回見る次のエラー ImportError: No module named '_tkinter' の対応だが、OSや python のバージョンにより対応が異なるので、メモする。 解決法 ubuntu (on Windows) の python3 の場合 sudo apt install python3-tk

Windows 用 github ツールにて、the repository does not seem to exist anymore

背景 Windows 用 github ツールで、次のようなエラーが出た。 the repository does not seem to exist anymore you may not have access or it may have been deleted or renamed もちろん、そのようなリポジトリは実際存在する。 なぜか? 原因と解決 自分…