2021-02-01から1ヶ月間の記事一覧
stackoverflow.com ここの内容は大体上で言ってることとなってます。 type P1 struct { list *[]P2 } type P2 struct { node int } P1がP2のスライスへのポインタを持っている場合にP1のレシーバでP2が持つ値を書き換える方法。割とハマったのでメモ。 packa…
引数で渡ってきたファイルを読み込んでテキストからURLを抽出する関数。 www.ipentec.com URLって正規表現で取れるんだって思った。htmlなりmarkdownなりtextなりをfindでpythonに渡しつつ実行すれば中のURLだけを抽出して出力することが可能なプログラムが…
GolangCI-Lintとは GolangCI-Lint とは、 Golang の Linter を一元管理するためのツールです。Goはliter一つとってもたくさんあってそれを組み合わせることでCIの信頼度を上げるという珍しい形を推奨しています。そのためこのような一元管理ツールが便利にな…
GET /bank/_search { "size": 0, "aggs": { "group_by_state": { "terms": { "field": "state.keyword" } } } } SQLでは、上記の集約は次の考え方と類似しています。 SELECT state, COUNT(*) FROM bank GROUP BY state ORDER BY COUNT(*) DESC
contextの主な用途は2つ Goroutineの適切なキャンセル リクエスト情報の伝搬 1つめはコンテキスト使わなくても実装可能だが2つめがちょっと難しい。そもそもコンテキスト型とは以下のように定義されている。 type Context interface { // Deadlineが設定され…
チャネルからの受信を待つパターンでの実装。書き込めるチャネルをselectして実行みたいなのも可能。 package main import ( "fmt" "strconv" "time" ) type Result struct { Error error Response int } func doSomething(done <-chan interface{}, printSt…
budougumi0617.github.io goのlistサブコマンドで依存してる外部パッケージのバージョンやらタグやらを調べることができる go list -m all go-notify github.com/fsnotify/fsnotify v1.4.9 github.com/go-fsnotify/fsnotify v0.0.0-20180321022601-755488143…
github.com fsnotifyを使って特定ディレクトリ配下のファイルを監視して起きたイベントをコンソールに出力するCLIツールを作ってみた。 仕組みとしては linuxjm.osdn.jp アプリケーションで inotify ファイルディスクリプターを read(2) してそのイベントをO…
github.com 久々にpython書こうとしたらjediでエラーが発生。coc絡みだろうとissueを見に行ったら発見。coc-pythonとjediのバージョンアップで起こるらしい。 : CocInstall coc-python でことなきをえた。
整形ツールの無い環境でパーミッションマスクが見辛かったのでメモ。そのうちpythonあたりでパーサ書こう。 S_ISUID 0004000 set-user-ID bit S_ISGID 0002000 set-group-ID bit (下記参照) S_ISVTX 0001000 スティッキービット (下記参照) S_IRWXU 00700 フ…
イベント駆動エンジンまでのエントリポイントのメモ。メモしようと思ったきっかけは以下のQAをみた時。 Q: Redisはソケット I/O を処理するためにそのようなオープンソースのイベント ライブラリを使いますか? A: いいえ。様々な理由から、Redis は独自のイ…
概要 ユーザーCPU時間って何だっけってなって寝落ちしたままなのでこの辺から追ってく。https://t.co/bfJdMKR5rb— Ryuichi@k8s再入門中 (@ryuichi_1208) 2021年2月13日 謎にCPUのユーザ時間ってなんだって疑問が出てきたので調べた。 CPU使用率とは CPUは、…
コンパイル bzip2 cd bzip2-1.0.6 Makefile中の CC=gccを CC=gcc -fPIC に変更します。あとはmake(なぜかconfigureはないです) make; make install cd ../ libpng cd libpng-1.6.16 ./configure make make install cd ../ libjpeg cd jpeg-9a ./configure ma…
Redisの計算量でO(N)以上の値のやつを抜粋。データ量が多いみたいなケースでこれらの操作がある場合はレビュー観点として見ていく必要がある。 O(N) BITCOUNT BITOP BITPOS CLIENT KILL CLIENT LIST CLUSTER ADDSLOTS CLUSTER COUNT-FAILURE-REPORTS CLUSTER…
mogile.web.fc2.com BRPOPとかBLPOPとかその辺の中身がどんなことやってるのか気になったので見てみたメモ。 ちなみにクライアント側は空のリストへBRPOPなりを実行するとstraceの結果よりread(2)でブロックする。ローカルの検証だがコネクションはこんな感…
ImageMagickでリサイズの組み合わせ 縦横比を維持せず、指定されたサイズに伸縮 convert -scale WxH! inputfile outputfile 縦横比を維持して、両側をクロップ convert -resize WxH^ -gravity center -crop WxH+0+0 [+repage] inputfile outputfile 縦横比を…
qiita.com コネクションが切れたソケットに書き込み(send(2)とかwrite(2)とか、同じものだけど)を行うと、SIGPIPEシグナルが発生してプロセスが強制終了する。 shutdownを相手側が使用してて書き込みしないような呼び出しの場合はSIGPIEPは発生しないらしい…
文字列の結合 s := "ABCDEFG" s = s + "hijklmn" fmt.Println(s) // -> "ABCDEFhijklmn" 文字列の 大文字、小文字変換 s = "ABCDEFGhijklmn" fmt.Println(strings.ToUpper(s)) // -> "ABCDEFHIJKLMN" fmt.Println(strings.ToLower(s)) // -> "abcdefhijklmn"…
export PS1='\[\e[1;36m\][\D{%Y/%m/%d} \t] \[\e[1;32m\]\u@\h\[\e[00m\]:\[\e[1;34m\]\w\[\e[1;31m\]$(__git_ps1)\[\e[m\]\n\$ ' 最近やたらめったらサーバを立てまくってたら何がなんだか分からなくなってきたのでせっかくなので綺麗に統一するように書い…
docs.fluentd.org var/log配下のtest.logをtailしてtagをtest.aとする。rewrite_tag_filterでtest.**が来たらtest.bへ書き換える。test.bをstdoutへ出力するみたいな設定を行いたいケース。 そのまま書くと以下のようになるかなと思って書いて実行するも上手…
Golangで型情報を調べる package main import ( "fmt" "reflect" ) func main() { fmt.Println(reflect.TypeOf(1)) // int fmt.Println(reflect.TypeOf("")) // string fmt.Println(reflect.TypeOf([]string{})) // []string fmt.Println(reflect.TypeOf(tru…
全件表示 { "query": { "match_all": {} } } 重複排除 www.elastic.co { "collapse": { "field": "product_name" }, "query": { "match_all": {} } } IN句 INを実現するにはtermsを使う。termsはmatchと違って完全一致で検索を行う。 www.elastic.co { "quer…
docs.fluentd.org output_copyは1つのログソースを複数のサービスへ送りたいみたいなケースで使えるプラグイン。matchで@type copyを指定したら処理をそれぞれ書くことで複数の送信先を指定することが可能となる。 <source> @type tail tag qiita.a path /var/log/ho</source>…
IO量の確認 $ find /proc -name io | xargs egrep "write|read" | sort -n -k 2 プロセスのファイルディスクリプタ確認 $ strace -p プロセスID -f -e pwrite,pread 適当なところで Ctrl + C ファイルディスクリプタからファイルの確認 readlink /proc/3847/…
拝啓 カーネルソース読んでるとよく出てくる「do {} while (0);」 これが何なのか気になったので調べてみました。 torvalds/linux 以下swap関数のようなイメージ 至るところでdo {} while(0)が存在 /** * swap - swap values of @a and @b * @a: first value…
使い方 helpを見るとこんな感じになっています。 *バージョンは2.4.3 bash-3.2$ ansible-doc -h Usage: ansible-doc [-l|-s] [options] [-t
Goには、deferステートメントというものがあり、deferへ渡した関数実行を、その呼び出し元の関数の終了時(return)まで遅延させることができます。 package main import "fmt" func main() { // main関数の最後に実行される defer fmt.Println("world.") fmt.…
よくわからんけど表示されていたのでググったら解決したエラーメッセージ。 github.com git config --global core.editor /usr/bin/vim
どんなビルドオプションで入れたかを調べるためのコマンド apachectl -V github.com Server version: Apache/2.2.9 (Unix) Server built: Oct 13 2008 21:48:41 Server's Module Magic Number: 20051115:15 Server loaded: APR 1.2.7, APR-Util 1.2.7 Compil…
バージョン確認 # ansible --version インベントリに記述されているホスト群を参照 # ansible node1 --list-hosts モジュールを確認 # ansible-doc -l #すべてのモジュールを確認 # ansible-doc -l | grep #モジュールを探す # ansible-doc [モジュール名] #…