昨日は食中りのような、げんなりするような鈍痛でやる気があまり出なかったので本でも読んだ。
フローの幸福からストックの幸福へ。
幸福のペンタゴンモデル
- 時間密度
- 手応え実感
- 自尊心
- 承認
- 裁量の自由
半農半Xという生き方は読んだ。あと、ブータンのGNHの話は伊藤洋一のビジネストレンドの第206回「GNHという考え方」が面白かった。
昨日は食中りのような、げんなりするような鈍痛でやる気があまり出なかったので本でも読んだ。
フローの幸福からストックの幸福へ。
幸福のペンタゴンモデル
半農半Xという生き方は読んだ。あと、ブータンのGNHの話は伊藤洋一のビジネストレンドの第206回「GNHという考え方」が面白かった。
04102009 家庭菜園
メモ
04102009 Linux
pwdコマンドはinodeを親ディレクトリに辿っていく。ルートディレクトリは. と..が同じinodeを指す。
macbookでls -ia。
$ ls -ia /
2 ./ 31452 Users/
2 ../ 22730 Volumes/
ので.と..のinodeをチェックしながら再帰的に辿るという実装。
void printpathto( ino_t this_inode )
{
ino_t my_inode;
char its_name[BUFSIZ];
if ( get_inode( ".." ) != this_inode )
{
chdir( ".." );
inum_to_name(this_inode, its_name, BUFSIZ);
my_inode = get_inode( "." );
printpathto( my_inode );
printf("/%s",its_name );
}
}
03102009 Linux
lsを書く。
ファイルタイプとパーミッションを調べるのにマスキングを使う。
sys/stat.hのファイルタイプのとこ
/* File type */
#define S_IFMT 0170000 /* [XSI] type of file mask */
#define S_IFIFO 0010000 /* [XSI] named pipe (fifo) */
#define S_IFCHR 0020000 /* [XSI] character special */
#define S_IFDIR 0040000 /* [XSI] directory */
#define S_IFBLK 0060000 /* [XSI] block special */
#define S_IFREG 0100000 /* [XSI] regular */
#define S_IFLNK 0120000 /* [XSI] symbolic link */
#define S_IFSOCK 0140000 /* [XSI] socket */
#if !defined(_POSIX_C_SOURCE) || defined(_DARWIN_C_SOURCE)
#define S_IFWHT 0160000 /* whiteout */
#define S_IFXATTR 0200000 /* extended attribute */
#endif
man ls
b Block special file.
c Character special file.
d Directory.
l Symbolic link.
s Socket link.
p FIFO.
- Regular file.
03102009 Linux
システムコールを使ってcpコマンドを書く。
そのあと、バッファするバージョンのwhoコマンドを書く。
02102009 life
Pygmentsをperlで使いたかったので、 Inline::Pythonでやってみた。
use Inline Python => <<'END_OF_PYTHON_CODE';
from pygments import highlight
from pygments.lexers import PythonLexer
from pygments.formatters import HtmlFormatter
def py_highlight(code):
return highlight(code, PythonLexer(), HtmlFormatter())
def get_stylesheet():
return HtmlFormatter().get_style_defs('.highlight')
END_OF_PYTHON_CODE
$code = <<'PYTHON_CODE';
from reportlab.pdfgen import canvas
c = canvas.Canvas('hello.pdf')
t = c.beginText()
t.setFont(t._fontname, 64)
t.setTextOrigin(0, 0)
t.textOut('Hello, World')
h = 64 / t.getX() * c._pagesize[1]
t.setFont(t._fontname, h)
c.setFontSize(h)
c.rotate(-90)
c.drawString(-c._pagesize[1], t._leading - h, 'Hello, World')
c.save()
PYTHON_CODE
printf qq|<html><head><style type="text/css">%s</style>
</head>\n<body>%s</body>\n</html>|, get_stylesheet(), py_highlight($code);

30092009 music
ナードヒップホップは落ち着くので好き。
理由はよくわからないがEMINEMも好きだったりする。
hiphopはよくわからんが故に、純粋に好き嫌いだけで聴く聴かないを決めてる。
ice cubeは4,5曲目が好き
whoを書く(macbook)
macだと
あと以下の関数のcp+4は先頭の文字列4つを落としている。
void show_time(long timeval){
char *cp;
cp = ctime(&timeval);
printf("%12.12s", cp+4);
}
作ったwho2は月の表記がオリジナルとちょっと違うけどまぁいいか。
$ ./who2
kzfm console Sep 27 17:31
kzfm ttys000 Sep 27 17:32
kzfm ttys001 Sep 27 18:50
kzfm ttys002 Sep 27 18:50
$ who
kzfm console 9 27 17:31
kzfm ttys000 9 27 17:32
kzfm ttys001 9 27 18:50
kzfm ttys002 9 27 18:50
pythonからutmpx(utmp)ファイルにアクセスするにはpyutmpってのがあってCythonで書かれている。
他にもunagi.pyをみるとstructモジュールを使ってアクセスできるようだ。