中野智文のブログ

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

gsutil compose で 32より多いファイルを結合したいとき

背景 gsutil compose はファイルを結合する便利コマンド。しかし32より多いファイルは結合できない。 解決策 xargs -L31 を使う。 echo -n | gsutil cp - gs://your-bucket/total.gz gsutil ls gs://your-bucket/your_file*.gz | xargs -L31 | xargs -I{} ec…

Cloud Firestore は、オブジェクトをサポートされているデータ型に変換します。

background firestore からデータを取得する良い方法を探して公式ドキュメントを眺める。 firebase.google.com すると、 一部の言語では、カスタムのオブジェクト タイプを使用する方が便利な場合が多くあります。 と書いてあるではないか? doc_ref = db.co…

BQで地域メッシュコード(2分の1)のポリゴン

背景 BQで地域メッシュコード(2分の1)からポリゴンを作ることになった。 クエリ とはいっても、ほとんど temp function ですが。 create temp function INT(S STRING) AS (CAST(S AS INT64)); create temp function STR(F FLOAT64) AS (CAST(F AS STRING))…

Azure Storage Blob に python で、stream upload

背景 Azure Storage Blobにpython で、stream upload したので、メモ。 こうした Azure 自体触ったことないので、よくわからないが、 from azure.storage.blob import BlobServiceClient というライブラリを使った方法(レガシーなライブラリも存在するらし…

リポジトリに接続できませんでした cloud source repositories

背景 Cloud Build 使おうと思ったけど、github のprivate repositories を使うのは、Cloud KMSなどのサービス使うから嫌だなあと思っていたら、 GitHub リポジトリのミラーリング | Cloud Source Repositories のドキュメント | Google Cloud という方法もあ…

BigQuery で最大最小が overlap しているものをまとめる(その最大最小を得る)

背景 最小と最大のペアの集合があるとする。 例えば、[最小, 最大]とすると、 [1, 2], [3, 4], [4, 5], [6, 7], [6, 8], [9, 10] というような集合。 [3, 4], [4, 5] は、まとめて、 [3, 5] にしたい。 他にも、 [6, 7], [6, 8] も、まとめて、 [6, 8] にし…

統計でいう treatment

treatment とは、因子の組み合わせでできる(実験の)集計グループのー要素。 参考 stattrek.com www.statisticshowto.datasciencecentral.com

Chromebook で flutter 開発

背景 flutter の解説によると、chrome os でも開発ができるらしい。 (いきなり)まとめ まず、uname -m でCPUのアーキテクチャを確認しよう。もし、aarch64 だと、ビルドしたバイナリは用意されてないので、あきらめよう。 flutterhub などのサービスを利用…

react も emacs で開発

背景 react であっても emacs で開発したい 対応 Caskを使う。 ~/.emacs.d/Cask ファイルに以下を入力 (depends-on "rjsx-mode") ~/.emacs.d/ ディレクトリにて cask コマンドを実行する(インストールされる)。 まとめ まだまだ emacs でいける…。

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

背景と導入 夏休みの宿題のようなすぐに終わらない課題を計画的に行うのは非常に難しい。受験もまた同様である。 アジャイルでは時間に対してタスクを割り当てる。この考えを導入する。予定が分かっている直近の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 -…