USBメモリでraid0

先日の静岡インフラ部でZFSのホットスワップを見た。

面白かったのでやってみた。ちなみにZFSではないので単にraid0の構築です。

貰ったUSBハブとUSBメモリをかき集めたので、128M, 256M, 2G, 8Gという中途半端なサイズ。

fdisk /dev/sda # typeはfd
fdisk /dev/sdb # typeはfd
fdisk /dev/sdc # typeはfd
fdisk /dev/sdd # typeはfd
mdadm -C -v /dev/md0 -l0 -n4 /dev/sda1 /dev/sdb1 /dev/sdc1 /dev/sdd1
mkfs -j /dev/md0
mkdir /tmp/raid
mount /dev/md0 /tmp/raid

これで10G位のサイズのファイルが見える

1307768420

データを書きこんでみる。yesコマンドで無限y攻撃

yes > /tmp/raid/y.txt

1307768423

それぞれのメモリが点滅しているのできちんと書きこまれていることが分かる。そして、それぞれのメモリのロゴを見ることで貰い物のガジェットであることがわかる。

参考

開運 無濾過純米

開運のフルーティーさが好きです。

1307768216

Emacsのバックアップファイルを削除する

シェルだったら

find . -name '*~' -print | xargs rm

に適当なaliasきっとけばいいんだけど、pythonで。

import os
import re

end_with_childe = re.compile('.*~$')

for root, dir, files in os.walk('.'):
    for file in files:
        if end_with_childe.match(file):
            os.remove(os.path.join(root, file))

成長力

純度の高い自己啓発本だった。高すぎ!

ころっと傾倒するくらいが成功すんのかな?

ProductName D・カーネギーの成長力

創元社 / 1260円 ( 2010-09-16 )


  • まずは、起こりうる最悪の事態は何かを自問しなさい。そして、その最悪の事態を受け入れる覚悟をする。それから、その最悪の事態が少しでもましになるような努力をする
  • 目標に集中する

小さな失敗はいい経験だと思うのでそういうチャレンジはたくさんすべきだなぁと思った。

PEP8に従うとEmacs縦二分割が快適に使える

pep8をGrowlで通知させるようにして数日経つが、Emacsを左右に分割するようになった(今までは上下に分割)

pep8の一行79文字以内におさめるという規約のおかげで左右に分割すると読みやすい。

pep8emacs

ちょっと生産性が上がった感がある。

CentOSでキックスタートしてみた

先週の静岡インフラ部で色々勉強になったので、空いてるマシンでkickstartしてみた。ちなみに次回は7/9ですが、インフラ系オススメの本を熱く紹介したりしなかったりという会になるらしいです。インフラの本なんてあんま知らないなぁ、どうしようかなぁと思案中。

それから6/25は富士でjavascript読書会も予定されているのでチェキの方向で。

まずはFC13が入ってたけど震災後さくらのVPSに取って代わられすっかり用済みになったマシンにCentOS5.6を入れた。まぁこれは普通に時間がかかったが、OSインストールするとそんなモンでしょう。ナニゲに家マシンにCentOS入れるのは初めてだった。

1307620279

続いてキックスタート用に/root/anaconda-ks.cfgをUSBメモリにコピー(kz.cfgって名前にした)。この時にマウントポイントをチェックしておく。

で、再度DVDからのブート時に

linux text ks=hd:sda1/ks.cfg

これで、あとは完了までほっとくだけでいいのかなぁと思ったが、HDDを初期化すんのか?とhdaとsdaどっちにインストールするんや?と聞かれた。これも設定ファイルに書いておけんのかな。

上のコマンドだけで最後のインストール終了リブート待ちまで持っていくにはどうすんのかなぁ。

ムカシナツカシのプログレスバー

1307620281

キックスタートは結構便利ですね。これにpuppetの設定まで書いておくといいのかなぁ。

ProductName Pro Puppet
James Turnbull
Apress / 4267円 ( 2011-03-22 )


ProductName Master of Puppets
Metallica
Elektra / Wea / 2487円 ( 1987-07-07 )


フォーカル・ポイント

これは名著かも

今、あなたが仕事や日々の暮らしで思ったとおりの結果を得ていないのなら、戦略的な人生設計にたちかえるときだ。失望や不満を感じるのは、腰を落ち着けて戦略的に取り組むべきだという合図である

本書は最も大切なポイントを見極める力の大切さを説いていてそこに焦点を当てることを説いている。

重要度と緊急度の軸があった場合に重要だが緊急でない仕事に割く時間を増やそうとか、そういこと。

基本的にポジティブ、オプティミスティックでやるべきことにフォーカスしようっていう内容ですね。たまに読みなおすと負のモードに陥らなくて済むのでいいと思う。

一方で、重要でないけど緊急な仕事を如何にやらないかという割と現実にありがちな部分には触れてなかったりするのは、そもそも想定してないからだろう。

もっとも重要な人生の選択とは、現在と未来の自分の姿に、全て自分が責任を取ると決めることである

っていう状況で、敢えて後ろ向きな対応をする必要がないからだろう。

色々勇気づけられる本であることは間違いないので読むといいですね。

ProductName フォーカル・ポイント
ブライアン・トレーシー
ディスカヴァー・トゥエンティワン / 1575円 ( 2009-10-03 )


  • ひとたび習慣にしてしまえば、より少ない労力で、大きな成果が得られるようになる
  • 生産性を高める五つの質問
  • 重要だが緊急でない仕事は長期的に大きな成果をもたらす
  • タイムマネジメントはライフマネジメント
  • 思考力は何よりも貴重な力である。何を考え、同反応するかを選ぶことが、あなたが唯一完璧にコントロールできることだからである
  • 成功者は楽観主義者という資質を持っている
  • ゴール設定7つのステップ
  • 事業の定義を広くする
  • あなたの成功を左右する人はすべてあなたの顧客
  • アルコール消費量を減らす
  • 会う人すべてが得意客のように対応する

ニンニクを吊るした

収穫したニンニクを吊るしてみたくなったので、調べた

1307528342 1307528345

ニンニクの重さで紐が締まっていくので乾燥で茎が細くなっても締まり続けるらしい。

PythonistaにPEP8の御加護を

pep8ってコマンドが便利すぎてちょくちょく叩くんだけど、それでも叩くの面倒になったりすることはある。正直、こういうチェッカーは空気を読んで走って欲しいですね。

ユニットテストに組み込んでるのを見つけて、おーいいじゃん素敵じゃんとか思ってたんだけどもうちょい身近に感じたいなぁと。

で、Growlの出番。セーブするたびにpep8チェックが走って結果が通知されるようにした。

pep8notify

でもこの通知はすぐに消える(はやすぎ)。どこがおかしいのかよく見ようとすると消えてしまってちょっと困る。逆にstickyをTrueにすると消えずに残っているのでそれはそれでうざい。

神の御加護ってのはそんなもんなのかなぁと思った。あと、アイコンをPythonの蛇ロゴにしたほうがいいかなぁと。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#!/usr/bin/env python
# -*- encoding:utf-8 -*-

import os
from time import sleep
import sys
import commands
import Growl

def get_mtime(f):
    return os.stat(f).st_mtime

def notify(dirname):
    g = Growl.GrowlNotifier(
        applicationName='PEP8 Notify', notifications=['Error'])
    g.register()

    pyfiles = [f for f in os.listdir(dirname) if ".py" in f]
    pystat = dict([[pyfile, get_mtime(pyfile)] for pyfile in pyfiles])

    while 1:
        sleep(1)
        for f in pyfiles:
            new_mtime = get_mtime(f)
            if pystat[f] != new_mtime:
                pystat[f] = new_mtime
                result = commands.getoutput("pep8 %s" % os.path.abspath(f))
                if result == '':
                    result = 'pep8 OK!!!'
                g.notify(
                    noteType='Error',
                    title='PEP8',
                    description=result,
                    sticky=False
                    )

if __name__ == '__main__':
    dirname = os.path.abspath(os.curdir)
    if len(sys.argv) > 2:
        dirname = sys.argv[1]
    notify(dirname)

で、pep8走らせると長いStringが長すぎ!ってよく怒られるんだけど、長いURLとかしょうがないじゃん、無理して分割しても読みにくくなるじゃんと思うんだけどどうしたらよいんだろうか?

ProductName エキスパートPythonプログラミング
Tarek Ziade
アスキー・メディアワークス / 3780円 ( 2010-05-28 )


今日の家庭菜園(110607) ニンニク収穫

天気予報だと午後から雨模様らしいので、朝起きてニンニクの収穫をしてきた。結構枯れてきてるので収穫期らしいが、写真の左下のほうに茎が曲がっておかしいのがあった。

1307443544 1307443546

こんな感じになってた。掘ってみたらニンニクの球が割れてたので、収穫が遅すぎのパターンってやつだった。

1307443549

全部で11個収穫できた。初めてにしては満足の大きさではないかな。

1307443551 1307443553

薄皮をむいて綺麗にしてみた。

1307443555

ニンニクは育て甲斐のある野菜だった。次はもうちょっと沢山植えようっと。