地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

2020-01-01から1年間の記事一覧

go プチTips集 (+ vimでコーディングする時)

構造体をフィールド名付きでデバッグ コードの速度計測 テストカバレッジ 補完が動作しない. 構造体をフィールド名付きでデバッグ fmt.Printf("%+v\n", data) コードの速度計測 benchmarkを使ってればおそらく事足りそう。 qiita.com テストカバレッジ go te…

【MySQL】入門

SQL

初級編 MySQL呼び出し (ルートなのでユーザ,パスワードなし) $ mysql -u root データベース参照 mysql> SHOW DATABASES; +--------------------+ | Database | +--------------------+ | information_schema | | mysql | | performance_schema | | sys | …

with_itemsで環境ごとにループを分けるテクニック

全ての環境でAという操作をしたいがBという操作は特定の環境のみに生成させたい時に使えるテクニック tasks: - name: Fix modperl config lineinfile: dest=/tmp/test.txt insertafter=EOF line={{ item }} with_items: - 'aaa' - 'bbb' - 'ccc' when: ansib…

【Git】git cloneで鍵を使い回す話

sshの公開鍵認証では秘密鍵と公開鍵のセットがサーバにあればよくて基本的には使い回しが可能。 例えばサーバAで作った鍵はサーバBへ公開鍵と秘密鍵をコピーすれば使用することが可能。 これを使ってサーバC/サーバDなんかでプライベートリポジトリのgit clo…

DockerHubのタグを動的生成

CircleCIでのデプロイ時に使える 見たいページが404だったり500でなんでだよってなったのでメモ

nginxのパッケージを作ってみる

概要 古めの大量のCentOSにyum一発で入らないnginxを入れるためのRPMパッケージ作成のメモ 環境 CentOS 6系 CentOS7.1 64bit rpmbuildコマンドによるRPMの作成 | kakiro-web カキローウェブ RPMの作成はこの辺を参考に行う。 追加パッケージのインストール #…

nginx TLS1.2以降のみ許可する

www.cybertrust.co.jp 最近話題のtls1.0/1.1の無効化の話。tls1.0/1.1でしか通信ができない場合は問題だが1.0/1.1が有効でも問題はないがまあ使えないプロトコルを有効化しておく必要もないので無効化するためのチップス。 Module ngx_http_ssl_module Synta…

(vim) vimの小技 - 正規表現/置換

vimで使える正規表現

tcpサーバでのLinux カーネルチューニング

メモ # NIC に対する受信パケットの最大キューイング数 net.core.netdev_max_backlog = 16000 # TCPとUDPの受信バッファのデフォルトサイズと最大サイズ net.core.rmem_max = 4194304 # TCPとUDPの送信バッファのデフォルトサイズと最大サイズ net.core.wmem…

diffをいい感じにシンタックスハイライトする delta

github.com gitおよびdiff出力用のビューア。diffにいい感じに色をつけてくれる便利ツールです。 インストール macなら以下でインストール可能。他OSも丁寧にREADMEに書かれている brew install git-delta README.md before git diffのみ実行 after git diff…

【Linux】プロセス番号の最大値 Linux カーネルパラメータ

システムプログラミングのテスト時に覚えた知識。 linuxはプロセスを一意にするためにpidという値を使用している。この値はデフォルトで32768となっているが軽量プロセスを大量生成したりプロセス数が最大値じにforkした後の動作を確認するときに使えるカー…

いい感じのvimが入ったdocker image

いい感じ = 私が使いやすいって意味でのDocker image # syntax=docker/dockerfile:experimental ARG ALPINE_OS_VERSION="3.8" #### Builder #### FROM alpine:${ALPINE_OS_VERSION} AS builder LABEL maintainer="ryucrosskey@gmail.com" WORKDIR /home/vim …

gcc mainの前に関数を呼ぶ

gccの拡張を使った小ネタ。ユースケースはあんまり分からないがcソースでmain関数の前に処理を行いたいケースで以下のgccの拡張を使うとできるよって話。 具体的なサンプルは以下 環境 [root@localhost ~]# gcc --version gcc (GCC) 4.8.5 20150623 (Red Hat…

共有メモリの生成

共有メモリとはプロセス間通信の中でも割と簡単に行える方法の一つ。SHARED MEMORY wikipediaより 複数のプログラム間の通信手段として使う場合と、単に複製を用意する冗長さを防ぐ目的の場合などがある。共有メモリはプログラム間でデータをやりとりする効…

goのlspをvim-lspにお引っ越し

vim-lspを使ってgoを便利に使っていく設定方法 vimrc call plug#begin('~/.vim/plugged') Plug 'prabirshrestha/async.vim' Plug 'prabirshrestha/asyncomplete.vim' Plug 'prabirshrestha/asyncomplete-lsp.vim' Plug 'prabirshrestha/vim-lsp' Plug 'mattn…

GitHubActionsで手動実行機能が実装された workflow_dispatch

ついに待望のGitHubActionsにジョブの手動実行が追加されました。 github.blog ざっくり使い方。 とても簡単でした。 onコンテキストにworkflow_dispatchを追加するだけで手動実行が可能になります。 homecmd/docs.yml at master · ryuichi1208/homecmd · Gi…

Python Queueの話

pythonにはデフォルトでキューを実装するのに便利な機能が実装されている。競プロなんかでも結構頻出で、自前で実装するよりも全然早いのでよく使ってる。 簡単に使い方のメモ的に書いていく。FIFO、LIFO、プライオリティキューなんかは特に頻出。 似たよう…

perl ワンライナナー TIPS

ライブラリのインストール先のパス一覧 perl -e 'foreach $path (@INC) { print "$path\n"; }' | xargs -L 1 ls -ld インストール済みのperlモジュール一覧 find `perl -e 'print "@INC"'` -name '*.pm' -print コメント行を削除する perl -ne 'print if !/^…

CNCFでよく聞くソリューションたち

オーケストレーション Kubernetes (go) github.com コンテナランタイム contaierd (go) github.com サービスメッシュ istio (go) github.com パッケージマネージャー github.com DNS CoreDNS (go) github.com Monitoring ストレージ rook (go) github.com RP…

競プロ + Python

自分用簡易ライブラリ

topコマンドをより見やすくしたhtopコマンドを使ってみる

lsやらcdやらのモダンなコマンドがたくさんある中でtopのモダン版(?)を知ったので使ってみた。 (exaとかbatとかと違ってhtop自体は古くより存在するのでその辺の記事とはちょっと毛色は違うかもしれません) 名前 : htop アーキテクチャー : x86_64 バージョ…

Cppcheck C/C++のソースコードを静的解析

簡単なツールをCで書くことがたまにあるのでそのツールをリポジトリにまとめてる。そんな時にモダンなC環境は静的解析とかどうやってるんだろうって思って調べたらCppcheckっていうツールを見つけた。 公式を見てるとDebianやUbuntuなど、たいていのディスト…

Can't locate CPAN.pm in @INC

$ perl -MCPAN -e "\$CPAN::Defaultsite='http://ftp.kddilabs.jp/CPAN/';shell" Can't locate CPAN.pm in @INC (you may need to install the CPAN module) (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /…

キャッシュ探索順

github.com のキャッシュヒットに値するデータが複数ある場合の探索順のメモ 複数値がヒットするにはまずrestore-keys: オプション を使用する。(keyに対するキャッシュヒットがなかった場合にキャッシュを見つけるために使われる代理キーの順序付きリスト。…

特定ブランチへのpushだけ動作するジョブ

特定のブランチだけ動作させたいジョブがある時に使う - name: Upload Docker Image uses: actions/upload-artifact@v2 with: name: ${{ env.app-name }} path: images/${{ env.app-name }}.tar if: github.ref == 'refs/heads/master' github.refにはブラン…

ステータスラインで表示するファイル名を絶対パスへ変更する

概要 ここのファイル名をパス付きで表示する方法。READMEには書いてなかったがissueを見てたら見つけたので書いておく filename -> absolutepath へ変更することでステータスライン行のファイル名をパス付きで表示することが可能になる。(自分で関数を定義す…

coc.nvimのログレベルを変更する

coc.nvimを使ってるとたまに挙動がおかしくなる。おかしくなった際にログを確認する方法は以下の感じではあるが情報が足りないってことがたまにある。 :CocOpenLog 2020-06-20T20:59:58.587 INFO (pid:18658) [services] - registered service "languageserv…

Linux hostsが反映されてないような現象

hosts編集後にnslookupで名前解決を行ってみたが反映されて無かったので疑問に思って調べた。 理由は簡単でnslookupではどうやらhostsを参照せずにDNSヘ直接問い合わせするためらしい。 トレースをみてみる。確かにhostsへの参照話でdnsへアクセスしているこ…

ltrace メモ

ライブラリ関数のトレースツール ltrace の雑多メモ バージョン & usage root@choco002:~# ltrace --version ltrace 0.7.91 Copyright (C) 2010-2013 Petr Machata, Red Hat Inc. Copyright (C) 1997-2009 Juan Cespedes <cespedes@debian.org>. License GPLv2+: GNU GPL version </cespedes@debian.org>…

ケーパビリティメモ

docker触ってると気にしがちなケーパビリティ。 それぞれどんなのだっけって都度ググってるのでメモ Capability Key Capability Description SETPCAP process capabilities の変更 SYS_MODULE kernel modules のロードまたはアンロード SYS_RAWIO I/O port …