トップ 最新 追記

ヨタの日々

2001|08|09|10|11|12|
2002|01|02|03|04|05|06|07|08|09|10|11|12|
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|12|
2024|01|02|03|04|05|06|07|08|09|10|11|12|
2025|01|02|03|04|05|06|07|08|09|10|11|12|
2026|01|02|03|04|05|06|

2007-06-27 :-)

_ 丸いやつほどよく眠る

最近気づくと布団からはみ出していることが多々あります。

布団が体に馴染まないのかしら。

_ [仕事]仕事

0830 出勤。

眠いす。文書を読んでる途中に寝ぼけて「企業によっては 弾幕数 などの基準を設けたい場合もあるでしょう」などと勝手に読み間違えてしまった。

_ ロディアのメモ帳

尽きたので次のメモ帳を補充しました。

_ 「なぜそんなにもWikiは重要なのか」(PDF)

( via 角谷さんのところ )

あう。

パターンランゲージじゃなくてパタンランゲージなんですね。

江渡浩一郎さんと言えば「qwikweb のひと」「Software Design の 『wiki つまみぐい』に名前があったひと」という認識しかありませんでした。オブジェクト倶楽部[ 2007-06-20 ]での講演では wiki と建築業界の話題がありました。ソフトウェアを作るときの「ビルド( build )」という言葉は建築業界を連想させます。

_ 仕事場の食堂の昼飯が多いというか魚が大きい

カレイの煮付けはカレイ 1 尾そのまま使ってました。

なんて贅沢なの!

冷凍物だろうけどね (ノω`)

_ [zsh]指定したディレクトリ以下の Makefile 以外のファイルを削除する

zsh

% find /foo/bar/baz -type f | while read f; do
if [ `basename $f` != "Makefile" ]; then
  rm $f
fi
done

ものすごく遅いです。basename が影響してるのかしら。ファイル名にマッチさせる部分は正規表現を使えそうな気がするのだけどよく分かりませんでした。

ref. zsh - 13.8 Filename Generation

_ [NetBSD][httpd][アクセス拒否][Load Average]Load Average が高い

現象

こんな。

% top -d1

load averages:  2.72,  3.22,  3.60                                     19:44:11
55 processes:  54 sleeping, 1 on processor
CPU states:     % user,     % nice,     % system,     % interrupt,     % idle
Memory: 290M Act, 247M Inact, 4024K Wired, 12M Exec, 489M File, 211M Free
Swap: 128M Total, 128M Free

  PID USERNAME PRI NICE   SIZE   RES STATE      TIME   WCPU    CPU COMMAND
   17 root      18    0     0K  179M syncer    68:12  0.00%  0.00% [ioflush]
   18 root     -18    0     0K  179M aiodoned   3:31  0.00%  0.00% [aiodoned]
  199 root      18    0  1180K 3280K pause      2:16  0.00%  0.00% ntpd
 6994 www       -4    0  7924K 3120K semwait    1:00  0.00%  0.00% httpd
16192 www       -4    0    10M 3348K semwait    0:59  0.00%  0.00% httpd
19106 www       -4    0  7780K 5836K semwait    0:58  0.00%  0.00% httpd
  856 root       2    0  1124K 2060K select     0:55  0.00%  0.00% sendmail
16081 www        2    0  7120K 3004K poll       0:54  0.00%  0.00% httpd
21414 www       -4    0  7888K 7072K semwait    0:54  0.00%  0.00% httpd
24878 www       -4    0  7180K 6988K semwait    0:52  0.00%  0.00% httpd
 8777 www       -4    0  7828K 2988K semwait    0:52  0.00%  0.00% httpd
20441 www       -4    0  7220K 7064K semwait    0:51  0.00%  0.00% httpd
25835 www       -4    0  7808K 6964K semwait    0:51  0.00%  0.00% httpd
28749 www       -4    0  7228K 3008K semwait    0:50  0.00%  0.00% httpd
  860 root       2    0   300K  684K select     0:41  0.00%  0.00% sshd
18457 root       2    0  6148K 8044K select     0:12  0.00%  0.00% httpd
  407 root       2    0   188K  408K kqread     0:11  0.00%  0.00% syslogd
  317 tinydns    2    0   160K  236K netio      0:11  0.00%  0.00% tinydns
  173 root       2    0   192K  352K select     0:08  0.00%  0.00% master
  378 dnslog     2    0    60K  340K piperd     0:04  0.00%  0.00% logger
   16 root     -18    0     0K  179M pgdaemon   0:04  0.00%  0.00% [pagedaemon]
 1020 root      10    0   268K  416K nanoslee   0:03  0.00%  0.00% cron
 3512 rin        2    0  1116K 1372K select     0:02  0.00%  0.00% screen-4.0.3
22987 rin        3    0   788K  804K ttyin      0:01  0.00%  0.00% zsh
  224 postfix    2    0   228K  444K select     0:01  0.00%  0.00% qmgr
22939 rin       28    0   156K  872K CPU        0:00  0.00%  0.00% top
 5219 rin       18    0   492K 2124K pause      0:00  0.00%  0.00% zsh
26228 rin       18    0   500K 1776K pause      0:00  0.00%  0.00% zsh
19437 rin       18    0   436K 1224K pause      0:00  0.00%  0.00% screen-4.0.3
    2 root      14    0     0K  179M crypto_w   0:00  0.00%  0.00% [cryptoret]

結論

httpd の負荷が高いのかしら。先日設定したアドレス[ 2007-06-23 ]にアドレス範囲を指定してなかったので /usr/pkg/etc/httpd/deny-us.conf を用意して以下を書きました。しばらく様子を見てます。

<Limit GET POST>
  Order allow,deny
  Allow from all
  Deny from 67.159.0.0/18
  Deny from 64.124.0.0/14
  Deny from 208.36.0.0/15
</Limit>
</Directory>

作業ログ

せっかくだから sysstat してみました。

ref. Chapter17.Tuning NetBSD - 17.3.2. The sysstat utility

% sysstat all

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   |||||||

                         /0   /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
                  <idle> XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

/usr が多い?

% sysstat bufcache

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   ||||||||

    34715 metadata buffers using             118782 kBytes of memory (12%).
   125055 pages for cached file data using   500220 kBytes of memory (51%).
     3272 pages for executables using         13088 kBytes of memory ( 1%).
    52414 pages for anon (non-file) data     209656 kBytes of memory (21%).
    52962 free pages                         211848 kBytes of memory (21%).

File System          Bufs used   %   kB in use   %  Bufsize kB   %  Util %
/usr                     32181  92      101778  86      102076  86     100
/home                     2127   6       14598  12       14788  12      99
/var                       314   0        1264   1        1266   1     100
/                           92   0         634   1         636   1     100

Total:                   34714  99      118274 100      118766 100     100

んふ?

% sysstat iostat

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   |||||||

              /0   /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
    CPU  user|
         nice|
       system|
    interrupt|X
         idle|XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

              /0   /10  /20  /30  /40  /50  /60  /70  /80  /90  /100
    md0  kBps|
          tps|
    wd0  kBps|X
          tps|
    cd0  kBps|
          tps|

http のアクセスが多いっす。

% sysstat netstat

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   ||||||

Local Address          Foreign Address        Proto Recv-Q Send-Q (state)
fe80:1::217:31ff.ntp   *.*                    udp6       0      0
localhost.ntp          *.*                    udp6       0      0
fe80:2::1.ntp          *.*                    udp6       0      0
localhost.smtp         *.*                    tcp6       0      0 LISTEN
hitomi.area51.gr.domain*.*                    udp        0      0
hitomi.area51.gr.ntp   *.*                    udp        0      0
localhost.ntp          *.*                    udp        0      0
localhost.smtp         *.*                    tcp        0      0 LISTEN
hitomi.area51.gr.ssh   sumire.area51.gr.1191  tcp        0      0 ESTABLISHED
hitomi.area51.gr.http  ntsitm052211.sit.32253 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  ip-122-152-129-1.47672 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  rz502291.inktomi.38259 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  livebot-65-55-20.29902 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  ip-122-152-129-6.41018 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  livebot-65-55-20.30024 tcp        0      0 TIME_WAIT
hitomi.area51.gr.http  rz502290.inktomi.40232 tcp        0      0 TIME_WAIT
hitomi.area51.gr.58230 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58229 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58228 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58227 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58226 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58225 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58224 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58223 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58222 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58221 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58220 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58219 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58218 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58217 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58216 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58215 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58214 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58213 210.188.204.58.http    tcp        0      0 TIME_WAIT
hitomi.area51.gr.58212 210.188.216.246.http   tcp        0      0 TIME_WAIT
hitomi.area51.gr.58211 210.188.204.58.http    tcp        0      0 TIME_WAIT

www ががんばってる?

% sysstat ps

                    /0   /1   /2   /3   /4   /5   /6   /7   /8   /9   /10
     Load Average   |||||||||||||||

USER      PID %CPU %MEM    VSZ   RSS TT  STAT STARTED       TIME COMMAND
www     13950 70.7  2.6  25420 26220 ??  R    10:06PM    0:01.78 ruby /home/rin/public_html/diary/index.
root       17  0.0 17.1      0 173400 ??  DL   31May07   68:31.79 [ioflush]
root      199  0.0  0.3   1180  3280 ??  Ss   31May07    2:17.98 /usr/sbin/ntpd
root      407  0.0  0.1    188   520 ??  Is   31May07    0:11.60 /usr/sbin/syslogd -s
www     23581  0.0  0.0      0     0 ??  ZW    1Jan70    0:00.00 (ruby18)
root        0  0.0 17.1      0 173400 ??  DLs  31May07    0:00.54 [swapper]
root        1  0.0  0.0     72   220 ??  Is   31May07    0:00.88 init
root        2  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [cryptoret]
root        3  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus0]
root        4  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus1]
root        5  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus2]
root        6  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus3]
root        7  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus4]
root        8  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atabus5]
root        9  0.0 17.1      0 173400 ??  DL   31May07    0:00.20 [usb0]
root       10  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [usbtask]
root       11  0.0 17.1      0 173400 ??  DL   31May07    0:00.13 [usb1]
root       12  0.0 17.1      0 173400 ??  DL   31May07    0:00.19 [usb2]
root       13  0.0 17.1      0 173400 ??  DL   31May07    0:00.09 [usb3]
root       14  0.0 17.1      0 173400 ??  DL   31May07    0:00.23 [usb4]
root       15  0.0 17.1      0 173400 ??  DL   31May07    0:00.00 [atapibus0]
root       16  0.0 17.1      0 173400 ??  DL   31May07    0:05.59 [pagedaemon]
rin     21436  0.0  0.2    712  1536 p3  R+   10:06PM    0:00.02 sysstat ps
root       18  0.0 17.1      0 173400 ??  DL   31May07    3:33.31 [aiodoned]
postfix  6493  0.0  0.1    192   968 ??  S    10:06PM    0:00.00 pickup -l -t unix -u
tinydns   317  0.0  0.0    160   236 E0- I    31May07    0:11.99 /usr/pkg/bin/tinydns
dnslog    378  0.0  0.0     60   340 E0- I    31May07    0:04.34 logger -t nbtinydns -p daemon.info
root      703  0.0  0.0   1044   300 ??  Is   31May07    0:00.34 /usr/sbin/dhcpd -q vr0
root      860  0.0  0.1    300   972 ??  Is   31May07    0:41.79 /usr/sbin/sshd
www     25963  0.0  0.4   6576  3568 ??  S     8:27PM    0:01.09 /usr/pkg/sbin/httpd -k start
root      173  0.0  0.0    192   420 ??  Ss   31May07    0:08.57 /usr/libexec/postfix/master
root     1083  0.0  0.0     88   280 ??  Is   31May07    0:00.02 /usr/sbin/inetd -l
root     1020  0.0  0.0    268   420 ??  Is   31May07    0:03.71 /usr/sbin/cron
postfix   224  0.0  0.0    228   444 ??  I    31May07    0:01.08 qmgr -l -t unix -u
root      228  0.0  0.0     56     4 E0  IWs  31May07    0:00.00 /usr/libexec/getty Pc console
root      230  0.0  0.0     56     4 E1  IWs  31May07    0:00.00 /usr/libexec/getty Pc ttyE1

はて?

apache httpd のログを見てみます。

% grep "27/Jun/2007" /var/log/httpd/access_log | awk '{ print $1}' | sort  | uniq -c | sort -nr | head
4294 67.159.44.231
4231 64.124.85.214
2149 133.9.238.98
1259 38.99.13.124
1187 65.55.212.244
1184 122.152.129.6
1182 66.249.67.24
1136 122.152.129.11
 985 220.194.55.47
 932 222.145.161.158

IPひろば で探してみます。

OrgName:    FDC Servers.net, LLC
NetRange:   67.159.0.0 - 67.159.63.255
CIDR:       67.159.0.0/18

先日書いた /usr/pkg/etc/httpd/deny-us.conf はこんなでした。IP アドレス 1 つずつです。

<Directory />
<Limit GET POST>
  Order allow,deny
  Allow from all
  Deny from 67.159.44.233
  Deny from 208.36.144.9
</Limit>
</Directory>

ということでアドレス範囲を指定したわけでした。

_ [加賀梅酒]加賀梅酒

飲んでみました。

まろやかで飲みやすいです。むしろ飲みすぎました。

_ [4行日記]4行日記

  • 【事実】梅酒を飲んだ。
  • 【気づき】飲みやすい。ストレートで飲んだ。サクサク飲んだ。サクサクのんだ。さくっとんだ。氷を入れてんだ。
  • 【教訓】自宅で酒を飲むと、外出して酒を飲んだときよりも酔っ払う。
  • 【宣言】自宅では酒を飲まない。

でもまだ他にも島根のビールや浦霞しぼりたてなどの酒が残ってます。


2007-06-26 :-)

_ 朝ぽっぽ

二日酔い 2.0RC1 (build 000917)

_ [仕事]仕事

0830 出勤。

DRY! DRY!

Don't Repeat Yourself !

同じことを 2 度やるな! > 自分

同じことを 2 箇所以上に書くな! > 自分

だからあれほど configure する仕組みを作れと > 自分

_ そろそろ自分がコントロールできない事象に対してイライラするのはやめようじゃないか

  • 他人の心
  • 他人の行動
  • 天候
  • 天変地異
  • 電車のダイヤの乱れ
  • 行方不明になったニーソックス
  • 犬の臓物丸が言うことを聞いてくれない

これらは自分の責任の範囲外のことです。自分の行動については責任を持てます。周囲の状況に対する自分の行動/態度/反応は自分で責任を持てます。自分が責任を持てるのは自分の行動についてだけでる。「 あのひとがこうしてくれないからダメだったんだよ! 」とか「 どうしていつもあいつはあーいうことをするんだ! 」とか「 ニーソックスが無い! 良い機会だから買うかね? 」など、周囲の状況にどのように行動したかは本人の責任にゃる。その行動によって本人が幸せになるならそれでいいし、さらにイライラして精神不安定になりたかったらやっぱりそれはそれで本人が選んだ道なんだある。むしろイライラすること自体が面倒くさい

_ メールは Subject だけで会話できる

もばついったーにメールを投げているいつもの癖で ML に流すメールの Subject にコメントを書こうとしてしまった。

_ 坂本真綾「アルカロイド」を脳内再生しようとしたら途中でターンエーガンダムの奥井亜紀「炎と雨」に化けた

そういえば、ユニコーン「ヒゲとボイン」の元ネタは小島功の漫画なんだよ、と otsune さんが言っていた。

ref. ヒゲとボイン - Wikipedia

_ [NetBSD][クロスコンパイル]VMware の NetBSD のクロスコンパイル環境を模索

やりたいこと:LANDISK についてるディスクに NetBSD/landisk を流し込む。

正攻法はこう。

  • 計算機にディスクを 2 台つなぐ
  • 1 台( ホスト )に NetBSD を入れる
  • ホスト上で NetBSD/landisk 用にクロスコンパイル環境を作る
  • ホスト上で NetBSD/landisk 一式をビルドする( release を作る )
  • もう 1 台( ターゲット )にコピーして云々

ここでいうホストの役割を VMware 上の NetBSD で実現できないもんかと思ったのだけど、出来ないかしら。

たしか Interface の 2006-02 号 で Microsoft Windows に入れた VMware に入れた NetBSD 上にクロスコンパイル環境を作って云々という記事を見かけました。クロスコンパイル環境を作る方法は Crosscompiling NetBSD with build.sh を見れば分かるからいいとして、クロスコンパイルして生成したカーネルなどをどのようにしてターゲットに流し込むのかというところまでは書いてませんでした。シリアル通信などで流し込むのかしら。

他にもウェブを検索してみたらどこかの文書で RAID を使って云々というような感じの文脈を読み取ったので

  • VMWare
  • NetBSD
  • RAID

グーグル検索してみた自分の wiki がヒットしました。ふうむ。

IRC で訊いたほうが早そうです。

_ [「伝説の社員」になれ!][読書]「伝説の社員」になれ!

マインドマップで描いてみました。

JUDE Think! を使ってみました。

センターイメージは社員 → sun shine → 太陽 ということで太陽の絵にしてみました (´ω` )

太陽の絵は wikipedia から貰いました。wikipedia のテキストを使うのならば GFDL へのリンクを書けとあったので書いておきます。

4794215851

_ [JUDE/Think!][買い物]買い物

せっかくだから JUDE/Think! のライセンスを買ってみました。

_ [買い物][EXTRA]買い物

EXTRA - HYPER GAME MUSIC EVENT 2007 の CD ですよっ

B000PWQQTW

_ [][牛丼][お手軽漬け]飯

牛丼( ref. きょうの料理 2005-03 p.131 )、お手軽漬け( 同 )、味噌汁。

_ [おやつ][いももち]おやつ?

いももち

_ [4行日記]4行日記

  • 【事実】Canon EOS-30D を使って写真を撮った。
  • 【気づき】標準レンズを使っている。自宅の部屋で撮影するときにどうやら暗すぎてシャッター速度が遅くなる。手ぶれする。
  • 【教訓】F 値を低くする。シャッター速度を速くする。むしろすべてマニュアル?
  • 【宣言】いっそのことレンズを買う

標準レンズ以外にもいくつか買っておこう。


2007-06-25 :-)

_ [仕事]仕事

0830 出勤。

_ たまには泣いても良い

FF10「召喚獣バトル」の冒頭の「祈りの歌」を聴けば「仲野順也は神か」と戦き、 FF12「自由への戦い」を聴けば崎元仁の能力に感激し、そして FF12 をまだクリアしてないことを思い出します (・ω・ )

ぃゃ、オメガ mk.XII[ 2007-06-03 ] が強いんです。倒す必要ないんだけどね。

B00005LPEQ

B000EWBCQ0

_ ゴミ箱はくずかごへ

愚痴は /dev/null へ

_ [愚痴]愚痴を食べて大きくなろう

愚痴 | 問題解決ツリー | 問題解決 | ヲレ 4.0_BETA2

_ [塊魂]塊魂「月と王子」ってすごく良い歌なんじゃあるまいか

塊魂というゲームのノリがあるからどうも「 ふざけた歌だぜ 」という印象があったのだけどあらためて歌詞を読むとすごく良い。熱いぜ。むしろ塊魂の歌は全般に良い歌っすね。

ref. 塊魂シリーズ歌詞 - 月と王子

B0001Z2X7C

_ [住民税]住民税納付書が来ない

高津区役所に電話して訊いてみました。

「いままで( 貴様が )要求が無かったから送付しなかった。これから送付する。7 月ころになる」

とのことでした。

ということは 8 月に納税するのね。

ref. 2006市税のしおり - 市税のあらまし(市民税)個人の市民税

_ 牛タンゲーム

( youichi さんとこ )

#!/usr/bin/perl
for(1..10){print "牛タン牛タン牛"; print "タン" for(1..$_+1);print "\n";}
% ./f00.pl
牛タン牛タン牛タンタン
牛タン牛タン牛タンタンタン
牛タン牛タン牛タンタンタンタン
牛タン牛タン牛タンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタンタンタンタンタン
牛タン牛タン牛タンタンタンタンタンタンタンタンタンタンタン

(´ω` )

_ [Fizz-Buzz][Ruby][末尾再帰]せっかくだから私も Fizz-Buzz 問題をやってみる

1から100までの数をプリントするプログラムを書け。ただし3の倍数のときは数の代わりに「Fizz」と、5の倍数のときは「Buzz」とプリントし、3と5両方の倍数の場合には「FizzBuzz」とプリントすること。

とりあえず Ruby で書きます。Ruby での Fizz-Buzz 問題の挑戦者を探せばワンライナーのツワモノとか継続を使ってるひととか居るけどそこまで Rubyist じゃないので地道にやってみます。

ちゃんとしたプログラマであれば、これを実行するプログラムを2分とかからずに紙に書き出せるはずだ。怖い事実を聞きたい? コンピュータサイエンス学科卒業生の過半数にはそれができないのだ。自称上級プログラマが答えを書くのに10-15分もかかっているのを見たこともある。

最初のコードを書くために Rubyリファレンスマニュアル - Rubyリファレンスマニュアル を読みながら書いたら 10 分くらいかかりました (´ω`;)

#!/usr/bin/ruby

(1..100).each { |v|
  if v % 3 == 0 && v % 5 == 0
    puts "FizzBuzz"
  elsif v % 3 == 0
    puts "Fizz"
  elsif v % 5 == 0
    puts "Buzz"
  else
    puts "#{v}"
  end
}

「3と5両方の倍数」は 15 の倍数のことですね。

#!/usr/bin/ruby

(1..100).each { |v|
  if v % 15 == 0
    puts "FizzBuzz"
  elsif v % 3 == 0
    puts "Fizz"
  elsif v % 5 == 0
    puts "Buzz"
  else
    puts "#{v}"
  end
}

再帰。

#!/usr/bin/ruby

def FizzBuzzR( v, e )
  return if v > e
  if v % 15 == 0
    puts "FizzBuzz"
  elsif v % 3 == 0
    puts "Fizz"
  elsif v % 5 == 0
    puts "Buzz"
  else
    puts "#{v}"
  end
  FizzBuzzR( v + 1, e )
end

FizzBuzzR( 1, 100 )

ループを末尾再帰にしようとしたけどそもそも末尾再帰が理解できませんでした (・ω・ )

ref. なんでも再帰

_ [Ruby]2 つの時間差を求める

たとえば QuickML のログの形式を解析して 2 つの処理の時間差を求める場合はこう。

#!/usr/bin/ruby

require 'time'

s1 = "2005-08-23T01:29:57: Command: QUIT"
s2 = "2005-08-23T01:40:57: Closed: localhost"
qt = Time.parse( s1.split( ' ' ).first( 2 ).join( ' ' ) )
pt = Time.parse( s2.split( ' ' ).first( 2 ).join( ' ' ) )
d = pt - qt
puts "#{d.div(60)}min #{d.modulo(60)}sec"
% ./t00.rb
11min 0.0sec

div とか modulo とか使ってるあたりが泥臭いのだけど、もうちょっとエレガントな方法は無いもんでしょうか。60 分以上の差があったらどうするんだとかいう話はいまは問題ではないので置いておく。

_ [kennak][youichi][studio5][KANEDA][ベルギービール][ポパイ]kennak さんを取り囲む会 vol.2

ポパイ

rin、kennakyouichi、studio5( mixi )、KANEDA。

先日 Belgo で飲んだとき[ 2007-05-25 ]に「ポパイでビール飲もうぜ」という誓いをしたので行ってみました。KANEDA さんに名刺を渡し忘れてたのと今日 studio5 さんに名刺を渡したので手元の名刺が尽きました。

今日飲んだビール。

  • 志賀高原ビール( 長野 )
  • よなよなビール( 長野 )
  • ベルヒュー クリーク( どこ? )

どれだけ長野にこだわるのかと。

img_4247.jpg

img_4248.jpg

img_4249.jpg

img_4250.jpg

img_4251.jpg

img_4252.jpg

img_4253.jpg

img_4254.jpg

img_4255.jpg

img_4256.jpg

img_4258.jpg

img_4259.jpg

img_4260.jpg

img_4262.jpg

img_4263.jpg

img_4264.jpg

img_4265.jpg

img_4266.jpg

img_4267.jpg

熱い愛スクリームとかなんとか。点火して食べるらしいです。

img_4268.jpg

青い炎が出てます。味は「マシュマロマンを焼いたような味 」だそうです。ぃゃ私も食べたけどね。

ref.

img_4271.jpg

img_4274.jpg

今日の格言:KANEDA「 ひとりだけ若いフリしてっ 」

_ [4行日記]4行日記

  • 【事実】ビール飲んだ。3 時間くらいで 3 杯。
  • 【気づき】これが限界。
  • 【教訓】ベルギービールは 1 時間に 1 杯
  • 【宣言】ふらふらになる前に水を飲む

そういえば水を飲んでなかった。

本日のツッコミ(全6件) [ツッコミを入れる]

Before...

_ みわ [あらかーさん ありがとうございます。店のメニューに書いてあったかもしれない。ベルギービールな店に行ったのにベルギービ..]

_ あらかー。 [ポパイさんはビール好きな人には有名な店なのですよー。 ベルギーだけじゃなくていろいろ置いてあるので、全制覇を目指して..]

_ kennak [おつかれさまでしたー 次回はもちっと近場で呑みたいですw]

_ さいき [ん?長野にこだわり、長野に移り住み 長野から新幹線通勤?なんてブルジョワw]

_ みわ [あらかーさん ビールたくさんありました。でも通うにはちょいと遠いです.... kennakつぁん お疲れ様でした!..]