- treasure-data/digdag#701 このバグを自分で報告したので自分で直せるかなと思ってdigdagのretry機構を調べようした
- そしたら、そもそもdigdagの全体像が全く分からないことに気付いた
- テストコードを適当に見ていったらWorkflowExecutorTest.retryOnGroupingTask()のテストケースが、実際にdigファイルを渡してworkflowを実行するテストケースだったので、コレを使ってどのようにdigdagがworkflowを実行しているのかをまず調べることにした <- イマココ
linters-settings: # 設定のデフォルト値は、https://github.com/golangci/golangci-lint/blob/master/.golangci.example.yml で確認できる | |
depguard: # packagesに宣言されているモジュールの取り扱いに関するルール。ブラックリスト形式で使っているので、列挙したものを使うとエラーになる。 | |
list-type: blacklist | |
packages: | |
- golang.org/x/xerrors # go 1.13で必要な機能はすべてerrorsに取り込まれたので使わない | |
- github.com/rs/zerolog # ログ出力用のライブラリはプロジェクト内部に作ったファクトリ関数経由で使うため | |
packages-with-error-message: | |
- golang.org/x/xerrors: "エラー処理は標準のerrorsを使って下さい。スタックトレースが必要な場合のみpkg/errorsを使って下さい" | |
- github.com/rs/zerolog: "ログ出力は example.com/myproject/logger#Newから利用して下さい" | |
dupl: # コードのコピペを検出するルール。 閾値のトークン数を越えるものをエラーにする |
#!/usr/bin/env bash | |
function check_error() { | |
ret=$? | |
msg=$1 | |
code=$2 | |
if [[ $RET -ne 0 ]] | |
then | |
echo "error: $1" >&2 | |
exit $code |
# | |
# Elastic Stack 6.3 Release Webinar | |
# | |
### SQL ### | |
# Create EMP table | |
PUT emp | |
{ |
a4b.amazonaws.com | |
access-analyzer.amazonaws.com | |
account.amazonaws.com | |
acm-pca.amazonaws.com | |
acm.amazonaws.com | |
airflow-env.amazonaws.com | |
airflow.amazonaws.com | |
alexa-appkit.amazon.com | |
alexa-connectedhome.amazon.com | |
amazonmq.amazonaws.com |
最近、社内で私が「何者で何をしているのか見えないので可視化して欲しい」という案件が出ているらしいので、ヘコヘコと徒然なるままに書いていきたいと思うのであります。
社内向けというだけでなく社外の人にも発信出来る内容に、との仕様も要求され、社外向けには出来るだけ旬なネタで、かつ、社内向けにはそれを理解する上で必要な関連する技術を個々に触れながら基礎知識が無くても理解出来るように、との追加仕様も提示されております。
で、何をネタにしてどのように書けばいいのか迷った訳ですが、自分が実際にやって来た内容である CoreOS であればそこそこ旬であるし、それをおさらいしつつ、関連技術も Docker、Omaha、systemd、BtrFS、Golang、etcd、Kubernetes 等々多岐にわたるので、それらに関して私見も含めてわかりやすく書ければいいかなぁと、とりあえず書き始めようとしている次第であります。
/* | |
* http://d.hatena.ne.jp/nowokay/20130501#1367357873 | |
* 上記の記事をGroovyでやってみました。 | |
*/ | |
def enclose = { s -> "[" + s + "]" } | |
assert "[foo]" == enclose.call("foo") | |
assert "[foo]" == enclose("foo") |
class StopWatch { | |
private timeRecoreds = [:].withDefault { 0.0 } | |
def withTimeRecording(keyword, clos) { | |
def beginTime = System.currentTimeMillis() | |
try { | |
return clos.call() | |
} finally { | |
timeRecoreds[keyword] += System.currentTimeMillis() - beginTime | |
} |
A lot of times you are developing a web application on your own laptop or home computer and would like to demo it to the public. Most of those times you are behind a router/firewall and you don't have a public IP address. Instead of configuring routers (often not possible), this solution gives you a public URL that's reverse tunnelled via ssh to your laptop.
Because of the relaxation of the sshd setup, it's best used on a dedicated virtual machine just for this (an Amazon micro instance for example).