2014/02/22(土)shell芸?

all-ffのバイナリデータを作る

/dev/zeroがあるのに、/dev/ffみたいなのがないぽい。
ちょっとしたダミーデータとして、all-ffのデータが急に欲しくなったときにどうぞ(ねぇよ*1)
$ echo -ne \\xff > foo
$ cp foo bar; cat bar >> foo
$ cp foo bar; cat bar >> foo
$ cp foo bar; cat bar >> foo
$ cp foo bar; cat bar >> foo
$ cp foo bar; cat bar >> foo
・・・

*1 : あったから書くのです(;´Д`

2014/02/16(日)URL勝手に紹介

筑波大 新城先生の授業関係のWEBがとても良くまとまってます。
この科目、週に一度のペースだとすると、ついていけている人が居るようなら紹介して欲しいですね(ぉ

細かい部分、x86アーキ以外となると、自力で読まないとダメですが、大枠を見るには良いですネ。
自分で呼んだ時にも引用させていただこうと思います。いやポイントするだけで・・・

2014/02/10(月)mallocはどのメモリを消費するのか

メモリ使用状況は、それぞれどのように見えているのか。
x86-64bit, v3.5では、AnonPagesに使用され、buddyinfoでは切り崩されていく様子が見える。
psコマンドでRSSが肥大化していることもわかるので、トレースできている。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>

#define BLKSIZE 4096
#define BLKCOUNT (1024 * 1024 * 1024 / BLKSIZE)

int main()
{
int i;
int* p;

	fprintf(stderr, "We will allocate 1GB...\n");
	sleep(30);
	for (i=0; i<BLKCOUNT; ++i) {
		p = (int*)malloc(BLKSIZE);
		*p = 0;
	}

	fprintf(stderr, "allocated BLKSIZE=%d, count=%d\n", BLKSIZE, i);

	sleep(30);

	fprintf(stderr, "exit...\n");
return 0;
}


/*


sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches \
 && free > free.before \
 && cat /proc/meminfo > meminfo.before \
 && cat /proc/slabinfo  > slabinfo.before \
 && cat /proc/buddyinfo > buddyinfo.before \
 && cat /proc/$(pgrep a.out)/smaps > smaps.before \
 && cat /proc/$(pgrep a.out)/maps > maps.before'
ps -eFwl


sudo sh -c 'echo 3 > /proc/sys/vm/drop_caches \
 && free > free.after \
 && cat /proc/meminfo   > meminfo.after \
 && cat /proc/slabinfo  > slabinfo.after \
 && cat /proc/buddyinfo > buddyinfo.after \
 && cat /proc/$(pgrep a.out)/smaps > smaps.after \
 && cat /proc/$(pgrep a.out)/maps > maps.after'

ps -eFwl
*/

2014/01/20(月)eclipseを使う(準備中)

Eclipse(公式)を使いたい。使おう…。
その昔、重すぎてやってらんねぇよksgって思っていた頃からしばらくしまして。
PCが早くなっていたのと、GUIないと開発できねぇYO!という輩が増えてきた(当社比)ので、
ちょっとはかじっておこうかな、と思い立った次第です。

あと、どこぞの公式デバッガもeclipseベースですわね..

URL

本体は前述。Ubuntuやメジャーなディストリでは、パッケージ管理ソフトから入りますが、
Ubuntu12.04LTSでは古めのversionしか入ってません。
とりあえず公式tarballを拾ってhome directoryにでも放り込んでおくと良いです。
bootloader野郎とkernel野郎は、CDTベースを入れておくのが良いでしょう。
あと、標準で入っていたかもしれないけれど、EGit/User Guideあたり。

Python

いきなり脱線。
Pydevという、python debug環境があります。
eclipse pluginのよう(理解が浅くてスミマセン)

最近は少し離れちゃってますが、gdbをpython scriptでゴリゴリ触れてしまうので、
覚えておいて損は無いです。初心者にもおすすめの言語のようですし、ね。

インストール

公式サイトにもインストール方法が上がっています。
pluginの(javaの)署名がエラーで蹴られるので、証明書を追加してくれと書かれています。
ただまぁこれが上手くイカなかったので、手順をメモしておきます。
Version: Kepler Service Release 1
Build id: 20130919-0819
"help"メニュー => "About Eclipse"ボタン => "Installation Details"ボタン
"Configuration"タブを見ると、javaのパスが見えます。
(抜粋)
*** System properties:
eclipse.application=org.eclipse.ui.ide.workbench

java.home=/usr/lib/jvm/java-6-openjdk-amd64/jre
$ cd /usr/lib/jvm/java-6-openjdk-amd64/jre
$ sudo ./bin/keytool -import -file /tmp/pydev_certificate.cer -keystore lib/security/cacerts 
$ sudo ./bin/keytool -keystore lib/security/cacerts -list
所有者: CN=Brainwy Software, OU=PyDev, O=Brainwy, L=Florianopolis, ST=SC, C=Brazil
発行者: CN=Brainwy Software, OU=PyDev, O=Brainwy, L=Florianopolis, ST=SC, C=Brazil
シリアル番号: 51eebe81
有効期間の開始日: Wed Jul 24 02:33:53 JST 2013 終了日: Sat Jul 22 02:33:53 JST 2023
証明書のフィンガープリント:
	 MD5:  C8:52:15:2C:DE:98:6E:DE:2A:FD:78:CC:EE:82:72:F5
	 SHA1: 29:E6:DE:62:8F:A8:2A:61:28:E8:C3:EE:C4:33:5A:3F:9E:16:6A:74
	 署名アルゴリズム名: SHA1withDSA
	 バージョン: 1
で、署名を削除したい場合はコチラで消せます。
$ sudo ./bin/keytool -delete -alias mykey     -keystore lib/security/cacerts
初期パスワードは"changeit"となっているようです。
これも英語力の弱さが光って少し悩みました(ぉ

"mykey"とか使われてますが、自らeclipse pluginを作ったり、javaアプリを作るような人は
かぶってしまいそうでアレですね... このへんの仕組みとかもっと知らないとコメントもしづらい(´・ω・`)

git

EGitを入れても、これなに?ってなると困るわけです。
で、
こちらでもgitの運用パターンが紹介されてます

実際にやってみて、そのグループであうかどうかを試してみないとわかんないすねぇ・・・。
一人で触っているだけなら何とかなるんですが、マトモに回したことがないという...

githubで慣れてみるのが無難だろうねぇ(トオイメ

少し触った感じですが、やっぱりCUIがイイ...(早く慣れろ)

application

2014/01/13appimport
使い勝手が良さそうな、もしくは作業効率を良くしてくれそうなものをメモとして残すのが目的。

python script類

package manager - pip

A tool for installing and managing Python packages
https://pypi.python.org/pypi/pip
https://github.com/pypa/pip

perlの ppmみたいなものかな。python libraryを依存関係解決しながらinstallしてくれる模様。

inkscape (native?)

SVG formatの画像データ、(vector data)を編集できるツール。
Linux, windowsm MacOSXとマルチプラットホーム対応。
[inkscape:http://www.inkscape.org/ja/]

nwdiag (python script)

network diagramを簡単に作図できるツール。
diagramを作る、dotのnetwork図特化版?
簡単なシステム設計・認識合わせでチマチマ作図するよりも効率良く作成できるだろう。
説明や補足の絵を加えるのに、前述inkscapeを使うと良いと思います。