Google の client library

以下の2系統があるっぽい。
いずれもソースコードgithub の googleapis という org 下で管理されている。
Google APIs · GitHub

library document coverage github repository naming rule java package
Google API Client Libraries https://developers.google.com/api-client-library GCP、G Suite を始めとする
googleクラウドサービス全般に対応。
google-api-[言語名]-client という命名規則になっている。
一部の言語についてはgoogle-api-[言語名]-client-services というリポジトリ
もあり、各サービスに特化したハイレベルなライブラリを提供している 。
なお、ライブラリを利用したサンプルは何故かgoogle org 配下に置いてある。
com.google.api
GCPライブラリ https://cloud.google.com/java/docs/reference
https://cloud.google.com/python/docs/reference
https://cloud.google.com/ruby/docs/reference
など
GCPの各サービス google-cloud-[言語名] という命名規則になっている。
javapythonの場合は java-bigquery みたくサービス毎のリポジトリに分割されていて、
google-cloud-java のほうはサービス別のリポジトリへのリンク集となっている。
com.google.cloud

java のコード見たところ、GCPライブラリは内部で Google API Client Libraries 使ってた。

ちら見した所感

GCP使うならGCPライブラリの各サービスに特化したやつを使うのが良さそう。
java-bigqueryとかはかなり最近出てきたライブラリらしいし。
GCP以外のサービスを扱うなら google-api-[言語名]-client-services が良さそう。

ちなみに bq CLI は↑のライブラリは使っていない?
bq CLI 独自でコード書いてるのか!?

テキストファイルの文字コード確認 on mac

文字化け等で何の文字コードが入っているのか確認した場合などに使う。

xxd コマンドでascii と 16進数コードを見比べつつ、以下のようなコード変換ツールで個別の文字コードを確認する。

16進数を文字列に自動変換&その逆をするツール

xxd コマンドでUTF8文字列も右に表示してくれるともっと楽なのだが…

グラフの近似曲線の係数を下位の桁まで知る方法

単に数式を表示しただけだと、係数が指数表示されたりして数桁しか表示されず、それで計算してもすごく外れることがある。 数式をクリックして書式設定すると、より下位の桁まで出せる。

docker image のファイルへの書き出し、ファイルからの読み込み。

色んなとこでも書かれてるが

save した tarball を import してもメタデータは復元されないので注意。

BigQuery の unnest の使い方メモ

Array型のカラムを含むテーブルに対するクエリ。

inner join

  • query
WITH sample AS (
  select '1' as col1, ['a', 'b'] as col2
  UNION ALL
  select '2' as col1, [] as col2
)

select
  *
from sample,
UNNEST (col2) as col2_unnest
  • result
Row col1 col2 col2_unnest
1 1 a a
b
2 1 a b
b

配列カラムが NULL or empty の行は無視される。

left join

  • query
WITH sample AS (
  select '1' as col1, ['a', 'b'] as col2
  UNION ALL
  select '2' as col1, [] as col2
)

select
  *
from sample
LEFT JOIN UNNEST (col2) as col2_unnest
  • result
Row col1 col2 col2_unnest
1 1 a a
b
2 1 a b
b
3 2 null

配列カラムが NULL or empty の行も出力される。UNNEST したカラムはNULL。

READLINE_LINE 変数ではまる

keyamb.hatenablog.com

ココらへんを参考に、peceでhistoryをいい感じにしてみた。 しかし、 READLINE_LINE を読めるものの、上書きできずハマっていた。 どうも、sdkmanが悪さしているようだった。 .bashrc の最後で sdkman-init.sh を実行していたのだが、この後に READLINE_LINE を使うコードを書くと何故かうまくいった。

それから、READLINE_LINEは、それを使用する関数をbindしないと使えないっぽい。 上記参照元を例に取ると、

bind -x '"\C-r": peco-select-history'

と書かないと駄目。 peco-select-history 関数を直接呼び出しても動かない…