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

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

【vim】レジスタを使うtips

レジスタ 意味 " 通常のヤンクや削除時に無差別に入る a-z 指定して入れれる(上書き) A-Z a-zの内容に追加で入れれる + クリップボード。winなら*でもよいがmacを考えると+を使うべし 0 直近のヤンク(コピー)したものが入る ※1 1-9 直近の変更・削除した…

【Bash】変数展開のメモ

100回ぐらいググってる気がするやつ。覚える気すらない模様。 $ man bash | grep "^\s*\${.*}$" | tr -d " " ${parameter} ${parameter:-word} ${parameter:=word} ${parameter:?word} ${parameter:+word} ${parameter:offset} ${parameter:offset:length} $…

【nvim】雑にneovim入りのコンテナ作成

FROM alpine:latest ENV LANG="en_US.UTF-8" LANGUAGE="en_US:ja" LC_ALL="en_US.UTF-8" RUN apk update && \ apk upgrade && \ apk add --no-cache \ build-base \ curl \ gcc \ git \ libxml2-dev \ libxslt-dev \ linux-headers \ musl-dev\ neovim \ nod…

【Perl】usageの書き方メモ

use Getopt::Long; use Data::Validator; my $tweet_id; my $print_key; my $help; GetOptions('i=i' => \$tweet_id, 'p=s' => \$print_key, h => \$help); if ($help) { die show_help(); } validate( tweet_id => $tweet_id, print_key => $print_key ); s…

【memcached】スピンロックでatomic操作を実現するためには

概要 マルチプロセス環境配下における、同一レコードへの書き込みが大量に発生するwrite heabyな環境でmemcachedの更新をどうやってatomicに行うかを考えた時に出てきたスピンロック的なことやってみた記事。 memcachedとは書いたもののCAS操作を提供してい…

【Ansible】collection インストールでバージョン指定

docs.ansible.com バージョン指定してインストール $ ansible-galaxy collection install test:1.0 開発バージョンをインストール $ ansible-galaxy collection install test:==0.0.3-alpha ディレクトリを指定してインストール $ ansible-galaxy collection…

【Ansible】Ansibleにおける冪等性とは

概要 仕事でひたすらplaybook書いてたら「冪等生ってなんだ?」ってなったので調べたメモ。 そもそも冪等性とは 同じ操作を何度繰り返しても、同じ結果が得られるという性質です。以下あたりが詳しく書かれてます。 qiita.com よくある冪等生の説明の数式で…

【MySQL】my.cnfのメモ

[client] port=3306 socket=/tmp/mysql.sock [mysqld] port=3306 socket=/tmp/mysql.sock key_buffer_size=16M max_allowed_packet=8M pid-file = /usr/local/var/mysql/MacOSX.local.pid #エラーログの確認 log-error=/var/log/mysql/error.log #クエリログ…

【Linux】ipコマンド

概要 ip コマンドを使ったネットワークインターフェースの設定は、システムが終了したり再起動すると失われる システム再起動後も維持されるようにネットワークインターフェースを設定するには、/etc/sysconfig/network-scripts/ ディレクトリー内のインター…

【Linux】systemdのrestartとreloadの違い

restartとreloadの違い restart 起動中のUnitを停止後、起動する 再起動で失敗する場合は、起動しない reload Unitに対して設定ファイルの再起動を促す 対象のUnitがreload動作に対応している必要がある 再読み込みで失敗する場合は停止しないので、稼働状態…

【Apache】httpd 2.2と2.4で微妙に違うrewrite rule

適当なrewrite ruleを使ってproxyする設定を書いた。以下の挙動が2.2と2.4で微妙に違うことに気づいたのでメモ config <VirtualHost *:80> ServerName www.test.com SSLProxyEngine On RewriteEngine on RewriteRule ^/(.*) $1 [P,L,QSA] </VirtualHost> vhostのwww.test.comへのアクセス時に…

【Perl】xsファイル入門

概要 休み明け一発目から古のperlを使った謎モジュールのビルドエラーの確認作業になった。cもmakefileもそれなりに読めるし余裕だろって思ってたらそんなことはなかったのでメモ XSでハマったというよりはそもそもXSが何なのかをそんなに理解してなかったの…

【python】

flake8はpythonの以下の3つのエラーチェックをしてくれるモジュールのラッパーです。 pep8:コードスタイルがPEP8に準拠しているかをチェック pyflakes:コードの論理的エラーをチェック(スタイルのチェックは除く) mccabe:コードの循環的複雑度のチェッ…

カテゴリ用

【Linux】負荷試験の勘所

【Solr】Apache Solrへ入門する

概要 今更ながらApache Solrへ入門してみたのでその辺の情報の取りまとめ記事。 目次 概要 目次 Apache Solrとは 触ってみる Dockerを使って環境構築 Dockerfile docker-compose.yml コアを生成する サンプルデータを投入する 検索APIを使う サンプルクエリ …

【HTTP】キャッシュあたりを整理してみる

概要 HTTPのキャッシュについて色々調べてみたのでメモ的な意味も兼ねて書いた。 動機としては以下の本を読む上で先に事前知識を入れておきたかったなというのがあります。キャッシュだけで400ページ超え。とても楽しみです。 gihyo.jp 目次 概要 目次 それ…

【Linux】IOバウンドの処理はどの程度まで並列数を上げればよいかの考察(ちょっと修正版)

概要 IOバウンドについて考える機会があったのでその辺の話についてまとめてみた。ちなみにブロッキングIOしか出てきません。以下の本が大体の参考になってます。 https://www.amazon.co.jp/exec/obidos/ASIN/4774143073/hatena-blog-22/www.amazon.co.jp 忙…

【Linux】agメモ

# ディレクトリ階層の深さ指定 --depth NUM Search up to NUM directories deep (Default: 25) # (マッチした)ファイル名のみを出力 -l --files-with-matches Only print filenames that contain matches (dont print the matching lines) # マッチしなかっ…

【Bash】sedの最短一致

$ echo "<aaa>b<ccc> <ddd>e<ccc>" という文が会った時にbというのを取り出したいケースで以下のようにsedを使おうとするとb以外の不要な部分まで取れてしまう。 $ echo "<aaa>b<ccc> <ddd>e<ccc>" | sed -r 's/<aaa>(.*)<ccc>/\1/' b<ccc> <ddd>e これはsedが最短一致ではなく最長一致がデフォルトで機能するためでそして</ddd></ccc></ccc></aaa></ccc></ddd></ccc></aaa></ccc></ddd></ccc></aaa>…

【Linux】O_LARGEFILEフラグ

linuxjm.osdn.jp O_LARGEFILEというフラグを見つけ気になったのでメモ。 O_LARGEFILE (LFS) off_t ではサイズを表せない (だだし off64_t ではサイズを表せる)ファ イルをオープン可能にする。この定義を有効にするためには、(どのヘッダーファイ ルをインク…

【Apache】http/2を試す

httpd.apache.org この辺を参考に入れていく。CentOS7なら何もせずにビルドも成功したしモジュールも問題なく動いた。 <VirtualHost *:443> SSLEngine on <IfModule http2_module> ProtocolsHonorOrder On Protocols h2 http/1.1 </IfModule> DocumentRoot "/var/https/example.com/htdocs/" …(省略)… </VirtualHost>

【Linux】ポートフォワードを使ってローカルのサービスを外部へ公開してみる

sshのリモートフォワードを使ってローカルで起動したサービスを外部からフォーワードする # 以下を修正 $ vi /etc/ssh/sshd_config GatewayPorts yes # 再起動 $ systemctl restart sshd 以下のようにsshを起動することで192.168.1.1:8433へのアクセスが全て…

【HTTP】http/2におけるConnectionヘッダーの扱い

概要 http/2を喋る環境でバックエンドがConnectionヘッダーやらの取り扱いがどんな感じなのか気になって調べた。RFCとかみてもきちんと定められていて無視するなり不正リクエストにするべきであるというのが決まりの模様。 Connection や Keep-Alive などの…

【Python】bit探索

>>> a = 777 >>> len(bin(a)) - 2 10 >>> bin(a) '0b1100001001' >>> for i in range(len(bin(a)) -2): ... print(a >> i & 1)

【Go】ビルド時に情報を埋め込む

Go

goでビルド時に動的に値を入れてバイナリを生成するやり方です。ビルドの引数に -ldflags "-X main.version=バージョン" をつけることで実現できます。 package main var version string func main() { println("version: " + version) } makeでビルド時に動…

【Solr】Apache Solrへ入門する

概要 今更ながらApache Solrへ入門してみたのでその辺の情報の取りまとめ記事。 目次 概要 目次 Apache Solrとは 触ってみる(Docker) Dockerfile docker-compose.yml コアを生成する サンプルデータを投入する 検索APIを使う スキーマの話 configの書き方 高…

【Linux】curlが使うルート証明書

この辺にある。 /etc/pki/tls/certs/ca-bundle.crt curlをverboseモードで打つと確かにそのパスを読んでるような出力がある [root@worker001 ~]# curl -sv https://www.google.com -o /dev/null * About to connect() to www.google.com port 443 (#0) * Try…

【Go】workerプールのテンプレを書く

Go

大容量ファイルのダウンロードだったりnasへの大量並列アクセスだったりをgoroutineで書くなら使えそうなワーカープール。サンプルはstring と worker id を受け取って、文字列のハッシュを計算というCPUリソースを食うやつだが色々と応用できるはず。 書い…