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

色んなとこでも書かれてるが export / import ファイルシステムの中身だけ書き出し、読み込み。 ENTRYPOINT 等のメタデータは失われる。 save / load メタデータも一緒に保存・取り込み。 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_…

READLINE_LINE 変数ではまる

keyamb.hatenablog.com ココらへんを参考に、peceでhistoryをいい感じにしてみた。 しかし、 READLINE_LINE を読めるものの、上書きできずハマっていた。 どうも、sdkmanが悪さしているようだった。 .bashrc の最後で sdkman-init.sh を実行していたのだが、…

Cloud Shell 使えるのか…?

GCP

Cloud Shell で datalab create し、deleteした。 後でもう一度 datalab create すると、 Permission denied (publickey). と出て何度もリトライを続けてる。 sshの公開鍵認証が通ってないっぽい… cloud shell は1時間 inactive になるとインスタンスが作り…

まだまだbash初心者だった…

macでechoの出力に色付けたいのに付かない! coreutils入れたのに! と悩んでたら、なんと、echo は bash builtin にもあり、フルパス指定するかaliasしないとbuiltinが使われるということを今更知った… コマンドを探す優先順位はこちら。 “応用力”をつける…

また sublime linter で rubocop が動かなくなった!

と思ったら、rbenvで切り替えたversionにrubocop入れてないだけだった…

hiveのloadコマンドに謎の制約

LOAD DATA LOCAL INPATH '/dir/_hoge' ... みたく、ファイル名が “_” 始まりのファイルをLOADしようとしたら、何故か「そんなファイルはねえ!」と怒られエラーになった。 回避策としては、頭にワイルドカード入れる。以下なら正常終了。 LOAD DATA LOCAL IN…

process substitution は bash とかでないと使えないぽい。

shebang に #!/bin/sh と書いてたり、 sh hoge.sh とかで実行した際、ときどきbash以外のshellが起動されるのか、process substitution のコードがエラーになることがある。 #!/bin/bash とか bash hoge.sh とかすると動いた。

Mapper/ReducerではrunというメソッドもOverrideできる

ということを今更知った。 runのデフォルトの実装の中で、setup, map/reduce, cleanup を呼び出している。 Mapper (Apache Hadoop Main 2.7.3 API) Reducer (Apache Hadoop Main 2.7.3 API) 参考:in-mapper combining(MapReduceデザインパターン) | mwSoft

自作クラスでHadoopのGeneric Optionsを使えるようにする。

最近、Hadoop忘れてきたのでメモ… 自作クラスにToolを実装させればHadoopのGeneric Optionsを解釈してくれるようになる。 Generic Options つまり、-confオプションでHadoopの設定を上書きしたりできるようになる。

attrbuteに対する||=でハマる。

class some_class attr_accessor :hoge def some_method hoge ||= "value" end この5行目で、hogeのアクセサが呼ばれるのではなく、hogeという新しい変数が定義されてしまう… @hoge ||= "value" とするしかない。

bashの関数はwhichコマンドしても出処が分からない

which や whereis でコマンドのパスが出ないんで「なんだろうな?」と思ったが、よく考えたら .bash_profile で定義しているbash関数だった。 関数の定義は以下で確認できる。 declare -f [function name]

ディレクトリのハードリンク恐い…

mac

coreutils入れて ln -F すればディレクトリのハードリンクも作れるのだが、消すには rm -fr するしかなさそう。 そうすると、ディレクトリの中身も消えてしまう… 一旦、中身の場所を移し、ハードリンク消してから戻せば良さそうだが、中身が多いとちょっと大…

githubリポジトリを別名コピーするやり方

リポジトリ hoge を hoge-cp にコピー。 まず、githubにhoge-cpリポジトリを空で作っておく。 それから、どこかの端末で以下を実行。 git clone git@xxx/hoge.git git remote set-url origin git@xxx/hoge-cp.git git push

bashのfor分で数値の範囲を指定する方法。

知らんかった… $ for i in {1..10}; do echo $i ; done 1 2 3 4 5 6 7 8 9 10 更にゼロパディングしたい場合は、 $ for i in {01..10}; do echo $i ; done 01 02 03 04 05 06 07 08 09 10

管理者権限のないマシンでtmuxを使う

ここを参考にした。 ken1row.net 但し、自分の環境の場合は、いくつか追加でインストールが必要だった。 いずれもtarballをscpでサーバにもっていき、--prefixオプションでローカルにインストールした。 nursesのビルドに必要 glibc tmuxのビルドに必要 auto…

carton exec で実行する際に実行時にモジュール・パスを追加

carton exec -- perl -I path home.pl

vimでクリップボードからコピる際に自動コメントがウザい場合

vim

Webとかからコードコピりたい時に「コメント行の次行も自動でコメントアウト」がウザい時がある。 そういうときは、おとなしく vi 使うのも手。 /bin/vi [file]

windows のバッチファイル内でのforの変数名で%%を2つ使う件

バッチファイル内で for文を使う場合、変数名には%%とパーセントを2つつける。 for %%a in (*.gz) do echo %%a しかし、これをコマンドプロンプトで直接打つと、以下のようにエラーとなる。 %%a の使い方が誤っています。 コマンドプロンプトで直接打つ場合…

google cloud SDK を windows にインストールした場合の設定ファイルの場所

GCP

C:\Users\[ユーザ名]\AppData\Roaming\gcloud

expect の使い方メモ(expect eofとか)

expect でコマンドを実行させ、そのコマンドの完了を待って続けて別なコマンドを実行させる場合は"expect eof"を入れるとよい。 # spawn したコマンドが完了してから別なコマンドをspawnする場合は expect eof を挟む。 expect -c " spawn scp hoge@fuga.com…

Microsoft Query のエラーメッセージがドイヒーな件

Excelの Microsoft Query でSQL書いてデータを取り込もうとしたら、 「パラメータが少なすぎます。 2 を指定して下さい。」 とかいうエラーが出て「???」てなった。 よくよくクエリを見てみると、WHERE句でカラム名のつづりを間違っていた… もうちょっと…

VPNつながらないと思ったらWiFiルータの設定が原因だった

VPN

Shrew Soft の VPN Client というソフトを使っているのだが、 "negotiation timout occurred" というエラーが出て接続できない。 PC側でいろいろやってもダメなので、ルータが原因かと思い、WiFiルータの設定で「セキュリティ」というメニューを見てみると「…

複利計算(CAGR)

「72の法則」「114の法則」というのがある。(「なに?」「いいよ!」で覚えると覚えやすそう。) 但し、利率が小さい場合にしか使えない。利率が大きいと誤差が大きくなる。 3分LifeHacking:複利計算を“暗算”で行う - ITmedia エンタープライズ 利率がデカ…

軍隊の編制

軍隊の編制 - Wikipedia およそ 分隊(squad)もしくは班や組がピザ2枚 大隊が千人 師団が1万人 一つ下の単位を2~6まとめたのが一つ上の単位らしい。 (2~6個分隊で1個小隊、とか)

IEが勝手に互換モードになった件

会社PCのIEでブラウズしてたら、勝手にIE5互換とかIE7互換になっているのに気づいた。 特定のサイトだけでなく、どのサイトみても互換モード。 <meta http-equiv="X-UA-Compatible" content="IE=edge"> て書いてあるページでも互換モード… で、IEの「ツール > 互換表示設定」で「イントラネット サイトを互換表示で</meta>…

ExcelデータをSQLで処理(Microsoft Query)

VBA使った例もあるが、実はコード書かなくてもBIツール的に使えるらしい。 Microsoft Queryウィザードを使ってExcelのデーターを取り込む:エクセル2010基本講座 予め範囲に名前を付けておくと、Microsoft Query でブックを選択したら「使用可能なテーブルと…

特定の拡張子"以外"のファイルの一覧

find 使うしかない。 例えば、.gzじゃないファイルをgzip圧縮する場合は以下の通り。 find . -type f ! -name "*.gz" | xargs gzip

トップレベルで定義された my と our

コメントに書いたような挙動となる。 myはパッケージが違うと参照できない。 ourはどこからでも参照できる。(但しパッケージを指定すること) ちなみに、トップレベルのパッケージ名は"main"か、あるいは空文字。 よって、パッケージからトップレベルのグロ…

vagrant のVMを外に出れなくしたかったのだが、できなかった…

VM同士やホスト・VM間は自由に通信できるが、VMからインターネットに出られないようにしたかったのだが、やり方がわからなかった… vagrant で作ったVMは必ずNATが設定されるため、外に出れる? そのNATに対し、VMにssh接続するためのポートフォワーディング…