by shigemk2

当面は技術的なことしか書かない

awk if

サイトがもはやちょっとしたクロニクルだけど、サイトの名前は スクリプティング言語資料室(仮) というらしい。

それはそうと、基本形

awk '/foo/ { print $2 }' BBS-list

発展形 awk '{ if ($1 ~ /J/) print }' inventory-shipped

更に発展 awk '{ if ($1 ~ /J/) { print $1 } else if ($1 ~ /Q/) { print $2 } }' inventory-shipped

The GNU Awk User's Guide - 正規表現

RedashDynamicQuery.query やっていること

  1. クエリ情報を取る L20
  2. 1の情報とユーザー側で指定したパラメータを基にクエリを実行する L28
  3. max_wait秒だけ2のクエリ実行を待つ L34
  4. csv/jsonでデータを取得する L38-41

ここで取得できるのは配列データなので、CSVなどのファイルに出力したい場合は別で処理が必要。

[https://github.com/toritori0318/redash-dynamic-query/blob/master/redash_dynamic_query/init.py:title]

joblibことはじめ

まだPython2.7で消耗している

from time import sleep
import timeit
import joblib
from joblib import Parallel, delayed

def heavy_square_task(x, y, z):
    sleep(3)
    return x**2p

# print ([heavy_square_task(x, y, z) for x, y, z in [(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3)]]) # almost 12s
print (joblib.Parallel(n_jobs=4)([delayed(heavy_square_task)(x, y, z) for x, y, z in [(1, 2, 3), (2, 2, 3), (3, 2, 3), (4, 2, 3)]])) # almost 3s

https://joblib.readthedocs.io/en/latest/parallel.html

この記事のプログラムを再構築したけど、delayedは明示的によびださないといけないぽ Python: Joblibで並列処理プログラミング - け日記

brew bump-formula-prの実行場所

brew bump-formula-pr の挙動がよくわからない

よくわからないというのは、任意のディレクトリに落としたhomebrew-coreの直下で brew bump-formula-pr を実行しようとすると、ブランチを切り替えられなかったりしてエラーが発生するので、どこのディレクトリで作業しようとしているのかが分からないということ。

探したら、あった。。ここのディレクトリで brew bump-formula-pr をやろうとしてるらしい。 実装は見つけられなかった…

cd /usr/local/Homebrew/Library/Taps/homebrew/homebrew-core

sphinx release/version

sphinxでGitのtagをrelease/versionにするほうほう

なのだけど、git describe の挙動がいまいちよくわからない 注釈付きのタグのなかで最新のタグの情報を引っ張ってきているようだけど、 注釈付きタグがないと No annotated tags can describe って出るし、かといってlightweightなタグを検索しようとすると直近のものは出てこない。。。

Inferring Release Number from Git Tags — Sphinx and Read the Docs Tips