tec memo

メモです。

インストール済みパッケージに変更が無いかチェック

インストール済みのパッケージファイルとRPMファイルの情報を比較し、変更がないかをrpmコマンドでチェックすることができる。 私の環境で、td-agentをチェックしてみる。 # rpm -V td-agent .M....G.. /opt /opt で以下が変わっていた。 M は、ファイルの権…

pmilterの導入

概要 pmilter PmilterはProgrammable Mail Filterの略で、SMTPサーバ(送信や受信)とmilterプロトコルで通信し、SMTPサーバの送受信の振る舞いをRubyでコントロールできるサーバソフトウェアです。 ref: Pmilter: Programmable Mail Filter Serverを作った …

macでパスワードを生成する

macでパスワードを作りたい場合、pwgenを使う。 導入方法 インストールは Homebrewを導入していればbrew installするだけ。 brew install pwgen # brew install pwgen ==> Downloading https://downloads.sourceforge.net/project/pwgen/pwgen/2.07/pwgen-2.…

散らかった写真を整理したい方へ

数年前に家族が撮影した未整理の写真データが出てきた。 変更した日は出ているが、写真名からはいつのものか判断できない。さらにはよく見ると同じ写真がファイル名が違うものであったりと、かなり状態としては悲惨だった。 それをサクッと整理したお話です…

smtpの負荷試験

postfixサーバでの負荷試験をするために、smtp-source(postfixに内包されている) を用いた。 メールを配送したくないのであれば、smtp-sinkを使うと良い(ここでは割愛) 例: smtp-source -s100 -m10000 -l 4194304 -f info@example.com -t info@hogehoge.co…

変数宣言されているが使われていない。

変数宣言しているが使われていないってエラーが出る。 golang厳しい。 # go run main.go # command-line-arguments ./main.go:14: a declared and not used

Go Lunch はじめました。

社内でGoの機運が高まってきたので、GoLangをもくもくとやる、GoLunchを毎週金曜日のランチタイムに集まってやることにしました。 第1回目は、9名の参加。 以下の書籍をみんなで買って、それぞれが好きなスピードで進めていくようにしてます。かなりゆるい…

アトミックとは

ある操作に対して、他者が割り込めないこと。 アトミックにするには、ロック操作が必要であるが、OSの機能によってはアトミックが保障されておりロック操作不要なものもある。

C言語: NULLポイント

ポインタ変数は宣言直後はでたらめな値が格納されているので、このまま利用するのはバグとなり危険。 これを防ぐために、アドレスを代入したかどうかを区別する必要がある。 NULL をポインタ変数に代入しておくことで、区別をつけることができる。 書き方 in…

C言語: ポインタ、事はじめ

ポインタ型 アドレスを記憶する変数の型。 他の型と合体して型を生成する。 ポインタ値 変数のアドレスの値のこと。 ポインタ変数の宣言 int *p; int* p; どちらも同じ。 int* p1, p2; と書いた場合、p2はint型になる。そのため、変数の前に*をつけて明示し…

C言語: メモリーのアドレスを知る。

変数が格納されている、メモリ上のアドレスを知るには printf に %p で表示できる。 変数には、&をつける。配列のアドレスを知りたい場合は、&は不要。 #include <stdio.h> int main(void) { int i1, i2, i3; printf("i1(%p)\n", &i1); printf("i2(%p)\n", &i2); prin</stdio.h>…

C言語のキーボードからの文字列の入力

C言語で、キーボードからの文字列の入力を処理するには、 scanf を使う。 #include <stdio.h> int main(void) { char str[32]; scanf("%s", str); printf("%s\n", str); return 0; } 上記ファイルを作成して、gcc or cc でコンパイルしたのちに実行する。 入力待ち受</stdio.h>…

C言語のプロトタイプ宣言

自作関数を作成する。 sum関数を作成する。 #include<stdio.h> int main(void) { sum(); /* sum関数を呼び出す */ return 0; } int sum(void) { printf("%d\n", (1 + 100) * 100 /2); return 0; } これをコンパイルしてみると以下のようなエラー。 sample2.c:6:5: war</stdio.h>…

C言語サンプル

「苦しんで覚えるC言語」というとんでもない題名の本で勉強を始める。 C言語の初歩。「Hello World」を表示する。 ファイル名は sample.c とした。 #include<stdio.h> int main(void) { printf("Hello, World"); return 0; } コンパイルする。 gcc sample.c # ls -l t</stdio.h>…