May 2007
Su Mo Tu We Th Fr Sa
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
昨日テレビでとりあげられていました。 私はこのテレビをみるまでジュンク堂をしりませんでした。
お客様本意なので、多くのお客様に利用されているみたいですね。 業界として本の売り上げは下がっているのに、ジュンク堂は売り上げが増え続けているそうです。 お客様の希望を取り入れること、店員さんのこだわり。 とても素晴らしいと思いました。
一般の書店では扱わないよう専門書を読みたい人が多くいるようです。 その人たちの声に答えているようです。 普通なら採算とコストを考えて、効果がはっきりわからないことについては手を付けないことが多いように思います。 このジュンク堂は、お客様の声を聞いて答え続けている感じがしました。 その一つが、品揃え。 専門書を扱うことでお客様を増やしているそうですが、いつ売れるかわからないような本もちゃんと扱っているそうです。 次にお客様の声で導入された「イス」。 長時間本を探しまわるととても疲れるという声があったので導入されたそうです。 そして「机」。
数年前まで、本屋さん(ほとんど書泉)にかなりお金を使った人だったのですが、最近はあまり買っていないです。 でも、こんないい本屋さんがあるのなら、本との出会いを求めて歩いてみたいと思いました。
むかしから睡眠が不安定なんだと再認識。 まずいなぁ。 でも、私の体はいろいろ微妙なので難しそう。
ここ一週間、食欲があって困った感じ。 カレーとかずーっと食べていなかったのですが、食べはじめちゃったり。 カロリーを考えて敬遠していたのですが。 お腹が空くのはいいことだと思いますが、私の場合代謝が悪くて一般の人みたいにカロリー消費ができないのでした。 あーお腹空いたー
すごいですね。
交通遺児の勉強したい学生のみなさんのための募金。 この募金は、みかけたら募金していたり。 今回は中学生のみなさんがそろそろ限界というタイミングだったみたいで座り込んでいました。 大変だけどがんばってください。 この前新宿にいったときの話でした。
いいかたは悪いですが、なにかにこだわっている人とかその分野に強いと思うのです。 マネジメント側が平均化を希望する場合は、管理のしやすさだと思いますが、それだといい結果がだせるでしょうか?
ほしいな。 私はなんか循環器系が不調のようなのです。 それとハードディスクが調子悪いときにも使えそう。
最近、デジカメの魅力に...
私にいいかも? 薬って副作用とかいろいろあるので、できれば飲みたくないのですけどね。
coLinux (Vine Linux 4.1CR) 上にインストール。 cmail-2.62+20031231.tar.gz は、 cmail-cfolder-mprop-cache が void だとエラーで初期化(load)できませんでした。 cmail-2.62+20030802.tar.gz の場合は問題なし。
すこしずつ準備。
ruby 1.9 HEAD でのメール関係。 受け取りは net/pop.rb で APOP は成功。 net/smtp.rb も認証なしは OK でした。 でも、CRAM-MD5 でエラーを確認。
/t/lib/ruby/1.9/net/smtp.rb:749:in `method_missing': undefined method `cram_md5_challenge' for nil:NilClass (NoMethodError)
from /t/lib/ruby/1.9/net/smtp.rb:749:in `block in auth_cram_md5'
from /t/lib/ruby/1.9/net/smtp.rb:917:in `critical'
from /t/lib/ruby/1.9/net/smtp.rb:63964:in `auth_cram_md5'
from /t/lib/ruby/1.9/net/smtp.rb:722:in `authenticate'
from /t/lib/ruby/1.9/net/smtp.rb:566:in `do_start'
from /t/lib/ruby/1.9/net/smtp.rb:525:in `start'
from /t/lib/ruby/1.9/net/smtp.rb:463:in `start'
from /home/tetsu/bin/nif2_smtp.rb:51:in `<main>'
make test でもエラーになるブロック関係?
バーミヤンで二日連続「鮮々野菜炒め」。 食べるのに時間がかかるくらい野菜多め。 これで油分がもうすこしすくなかったらいいんですけど。
生ピーマンとか好きで、独り暮らしをはじめたころはパックで買ってなにも付けずにそのままバリバリ丸かじりしてました。 スーパーなどの一人用の野菜セットってもうちょっとよくならないかな。 たぶんいいお店を探せばあると思うのですが。 そういうお店を探しにいったりしてないです。
野菜とかほとんど食べてないので体調悪いのかなぁ。
現状を確認するのにはどこがいいのかな?
富裕層は上位 5% という話があったりします。 これ中国だと 12 億人いるとすれば、5% で 6 千万人になるんですよね。 市場として、すっごい魅力的な感じ。
日本にも富裕層向け特別サービス系の商売はたくさんあるそうですけど、日本の市場規模の 10 倍を見込めるとしたら、ほんとすごいですね。 日本でもいろいろ歪みがあるようなのですが、中国はこれからどうなるんでしょうね。
なんども同じこと書いているような...
曜日感覚がおかしいです。 土曜日の気持。
寝て起きて昼です。 いまの生活パターンは、夜 7 時くらいに寝て夜 11 時くらいに起きだして朝まで。 朝 7 時に寝て昼 11 時くらいに起きて...
すこし前後することはありますが、こんな感じかも。 私の場合連続運転時間が短いんですよね。 それと連続睡眠時間も短いです。 なので、一日に二度寝とかができると体的には楽なんですが、でも胃とかには悪いかも。
もっと自分の好きなキーボードが選べるといいですね。 ナチュラル系のキーボードを選べるノート PC とかでないかな。 US 配列で。
ノート PC だと、難しいところがたくさんあると思うのですが交換を簡単にできるようにして自分の好きなキーボードを選択きるといいなと思います。 無理かなぁ。
配列も気になりますが、キーボードの感触ってかなり気になります。 いま使っている VAIO type S のキーボードは、なれれば問題ないのですがタイプが違ってなれるまで「あれれ?」でした。
タッチパッドとトラックポイント、いまはみかけないトラックボール。 個人的な希望はトラックボールなのですが、選択の余地がないです。 次はできればトラックポイント。 指先が痛くなるものがむかしあって、長時間使うのが大変でした。 いまは動きがスムーズなものが多いようですね。 キーボードのホームポジションを外すことなく、マウスが使えるのでとてもいいと思います。 トラックボールも、ナチュラル系キーボード配列で、間のスペースに入れてくれないかなぁ。 親指操作できるくらいの位置で。
ノート PC の画面のサイズは 12 インチくらいで十分(解像度は高いほどいいです)なのですが、キーボードのサイズを考えると 13 インチくらいが私の場合よさそうです。 キーボードのサイズに余裕ができる大型画面のノート PC は、トラックボールを復活させてくれないかなぁ。 または、タッチパッドの上に置けるトラックボールとか(え
親指操作のトラックボールの場合、タッチパッドの位置でなんとかなりそうなんですよね。 タッチパッドだと親指操作が微妙。 いい方法ないかなぁ。
月に数度いくお寿司屋さん。 千代田寿司さんなんです。 ここの「旬」は、十二カンで 1,680 円。 十二種類のネタが楽しめるのでいい感じです。 握ってもらうと、二カン単位になって種類が食べられないので、こういうのありがたいです。
今日までみたいなので、食事をしにでかけたり。 駅近くまで歩くのって、普通の休みだとあんまりないのですけど、デジカメ買ってからかな。 一日、全天がみえるような場所で、青空とか雲とかぼーっと眺めていたいなと思うのでした。 ま、しばらくしたらあきるかもしれないですけど、でもそんな機会ってなかなかなくて。 ビルとか電信柱とかないような空間でしばらくごろごろしてみたいです。
写真がないですね。 あればいいのにな。 テレビで似たようなお店をみたことがあるのですが、車両のレンタルもしてくれて、自分で操作できるところもあるみたいです。 おもしろそうですね。
あらゆる依存に効果があるとしたら、人間社会がどうなるか...
コードギアスというアニメをみていたのですが、最終回の放送時間がずれていて最初の歌だけ...
半年前のものなんですが、ハードディスクがいっぱいになったので消すためにみてたんですが、そりゃないよー
(T-T)
本屋さんでみかけて、買ってみようかなと思っている本です。 Java のソースコードの横で UML での説明があり、UML を身につけるのに話ばかりの本より私にはあっているかなと。
作者の高橋さんは、「やさしいシリーズ」をだしていてトータルで 40 万部の売り上げとか。 すごいですね。
すこし前の予想では、今日から雨だったように思ったのですが「晴れ」。 でかけた時間帯は薄曇りだったのですが、帰るころには雲がほとんどなくなっていていい感じでした。 この連休、かなり天気に恵まれた感じ。
いい感じです。 原作 ビームコミックス エマ 8巻 (通常版) (コミック) 森薫(著) もとてもいいです。 音楽もいい感じ。
買いものはしたのに、読んでいない本。 観ていない DVD も。 それでも、すこしはできたかも。 もうちょっとできるようになるといいな。
「ゆとり」ってほしいですね。 仕事とか時間の制限があるのがあたり前ですが、いい仕事をするためのゆとりというのは必要に思うのです。 それと年齢も加味して。 週休三日とかできたらいいなと思います。 ヨーロッパでは、パートタイムもフルタイムも同じ社員として扱われて、それぞれの生活パターンにあわせてうまく調整できている国もあるそうです。 柔軟性の高い働き方ができれば、いいのにと思ったりします。
どうやったらできるんでしょうね。 部下が「これはいい」と稟議を通そうとしても却下。 でも、似たようなものを自分でみつけてくれば「やるぞ」と。 みつけてくればというよりは、「訪問した先でみてくれば」かな。 「世の中、こんな感じでうちは遅れている」ということをアピールするのが一番なんでしょうか? 理想論を伝えてもぜんぜん動かないし。 もっとコンピュータを有効利用すべきだと思うのですが。
もう一つボタンを増やして、押しながら上下でスクロールするようにしてくれないかなと思ったりするのです。 タッチパッドの右端がスクロール用のエリアだったりしていますが、どうも反応がいまいちです。 どこかで実現されているというか使われているかな。
MX テレビで 5/5 のこどもの日スペシャルのアニメ。 フルアニメで動きがすごいなと思ったけれど、モーションキャプチャーだと途中で気が付きました。 動きが人のそのままなのでした。 あんまりクネクネなので。
夜でもけっこう暑いです。 うーむ、これから大変になりそうな...
室内に熱の発生源がいろいろあるので、なんとかしたいな。
とてもよかったです。 うるうるしちゃいました。
原作買ったんですがまだ読んでいないので、たぶん読んでいたら「はしょっている」ところなどが気になったと思いますけど、二時間のわくがあるしと。 放映されてたころにあれこれあまりよくない話があったようですが、私は楽しかったです。
mixi の日記でのキーワードランキングでも一位。 「よかった」系のコメントが多いみたいです。 映画って声の大きな人の意見が影響しますよね。 そういう影響があった一本かも。 否定的な場合は「期待」に答えられたか? という意味の意見だったかもしれないですね。
駅ビルにそばを食べれるところが増えたみたい。 あまりいっていない場所だったので気が付かなかったのでした。 忘れるといけないので、メモ。 実は、すっかり忘れてたというか...
絵を観るときの視線移動をアップにして誘導している感じ(わかりにくい説明ですいません)なのですが、アップにしないでほしい気持。 もっと全体が画面に入るようにして、自分でどこを観るか決めたいです。 なんか、アップにしちゃうと筆遣いとかはみえるかもしれませんが...
わりとたくさん降っている感じ。 雨も必要ですよね。 買いものにいきたいけど、さてさて...
まとまって寝れない日々。 今日もなんですが、二三時間で目が覚めてしまいます。 二度寝するんですが、またすぐ目が覚めて。 中途半端に目が覚めるので、ぜんぜんすっきりしません。 目が覚めるきっかけが微妙なのでした。 あー
あるテレビ番組で収入を比較するものがありました。 年代も同じくらいなので、気になってみてしまいました。 みなさんお子さんもたくさんいていい感じの家族です。 住んでいるところも広いし、すごいなと。 で、結果は 2007/1 の手取額の比較だったのですが、ほぼみなさん私よりも多い感じ。 最近ようやく家族がいてもなんとかなるかなとか思ったんですが、やはり厳しい感じなのを実感しました。
いまの年齢でようやく家族がいてもなんとかなるかなと思うというのは、感覚としてあたりだったのかも。 うちの会社かなりながく昇給がなかったんですが、そういうのがあればすこしは? 定期昇給というのもないので、この 10 年近くアップありませんでした。 マネージャさんとかは、給与の仕組みを変えることで、実質アップしていたらしいですけど。 世の中厳しいですよね。 私はたぶんがんばって昇給を目指すことはないので、これからも同じような感じかな。
観ました。 連休最終日にようやく。 とってもいい作品でした。 うるうる。
この作品だから、口コミでどんどん広がったんでしょうね。
受賞作品が MX テレビで放映されていたのですが 5/3 分だけ録画... TAF2007 特別番組「Tokyo International Anime Fair 2007 〜ANIME〜」の放映が決定いたしました
気が付いたのは今日なのでした。 あーあーあー
MD5 の扱いでエラーになっていたので、スクリプトをいくつか修正しました。 きっかけは net/smtp.rb の CRAM-MD5 のコードを読んでいて。
1.9 の net/smtp.rb の CRAM-MD5 は @nifty でエラーになったので、おしらせ。 以前のコードを読みながらパッチの作成。
--- smtp.rb.org 2007-04-15 01:53:25.000000000 +0900
+++ smtp.rb 2007-05-07 22:50:16.000000000 +0900
@@ -745,7 +745,7 @@
def auth_cram_md5(user, secret)
check_auth_args user, secret
res = critical {
- check_auth_continue get_response('AUTH CRAM-MD5')
+ res = check_auth_continue get_response('AUTH CRAM-MD5')
crammed = cram_md5_response(secret, res.cram_md5_challenge)
get_response(base64_encode("#{user} #{crammed}"))
}
@@ -793,7 +793,7 @@
def cram_secret(secret, mask)
secret = Digest::MD5.digest(secret) if secret.size > CRAM_BUFSIZE
buf = secret.ljust(CRAM_BUFSIZE, "\0")
- 0.upto(buf.size) do |i|
+ 0.upto(buf.size - 1) do |i|
buf[i] = (buf[i].ord ^ mask).chr
end
buf
@@ -943,6 +943,7 @@
unless res.continue?
raise res.exception_class, res.message
end
+ res
end
class Response
うーん、アニメって高すぎだと思うのですが。 どうして映画みたいに安くできないの?
連休明け初日。 帰宅は 22 時近く。 帰宅後 MD5 系のスクリプトを見直して、net/smtp.rb のパッチを作成して ruby-dev にメール。 とかしていたら、あーっというまに時間が経過。 睡眠不足のはずなのに...
Ruby している時間は、いい時間なので問題なし!
昨日の夕食は、新しく駅ビルの中にできたそば処。 私はたいてい最初にいったお店では、天ざる系のそばをお願いしていたりします。 そばと天ぷらのどちらも、重要なポイントなので。 で、今回はそばはいい感じでした。 そばつゆは、私の好みとはちょっと違うかも。 そばをつゆに付けて食べたときの、あの香りというかいい感じがすくなかったような気がします。
でで、問題は天ぷら。 ほとんど容器の問題だと思うのですが、天ぷらがべちゃっとしちゃっています。 紙を一枚敷いてその上に天ぷらをのせていますが、容器にべったり密着していました。 容器に工夫がほしいです。 みた目重視な感じ...
あと、海老は身が大きいのですが味わいがすくないタイプでした。 なんだろう? 尻尾も食べたんですが、ずいぶんあっさりした海老でした。
ということで、「天ぷらせいろ」(天せいろ)は 1,480 円なのですが、もうすこし頑張ってほしい感じでした。 ちょっとしたところだと思うのですが。
そばを食べるところがほしかったので、よくなればと願ったりするのですが。
ということでまとめ(え
できたばかりらしいので、頑張ってほしいものです。
- そばをつゆに付けて食べたときの香りをもっと
- 天ぷらは、べちゃっとならないような工夫(味も? 天ぷら油関係かな?)
- 天せいろの天ぷらは量がある(5 品)ので「海老x2」なしのもうすこし安くて量のすくないヘルシーな? ものがあれば!
微妙に調子が悪くて、もっと寝たい感じ。 途中目が覚めずにしっかり寝ることができればどんなにいいかとか思うのでした。 すこし食べてすこし飲んで、すこし回復。
飲んですっきり眠れてすっきり目が覚めるようになったらすごいですよね。 私も 6 時間くらいすっきり眠りたいな。
おお!
IE エンジンだと CNET Japan 側から切られるような感じで接続できないです。 あれれ?
この前テレビでみたんですが、不思議な感じですね。
IronRuby が!
Gmail は、以前 port 587 で TLS が成功していたのですが、どうもうまくいかないので調査。 結果から書くと port 465 の SSL (最初から SSL) で送信できました。 それ以外は、ちょっとうまく行かないので引き続き調査予定。 とりあえず動いた系のサンプルです。
#! /usr/local/bin/ruby # ?? smtp.gmail.com 587 TLS # OK smtp.gmail.com 465 SSL SMTP_server = 'smtp.gmail.com' user = 'GMAIL のアドレス' password = 'GMAIL のパスワード' domain = '自分のドメイン名' require 'net/smtp' #see: http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-list/42659 smtp = Net::SMTP.new(SMTP_server, 465) smtp.enable_ssl smtp.start(domain, user, password, :plain) do |smtp| smtp.send_mail(header_part_str + body_part_str, from_str, to_arr) endTLS (途中から SSL 通信) 系は、うまく動かなかったです。 確認した net/smtp.rb は 1.9 系の
$Id: smtp.rb 11994 2007-03-05 00:17:38Z aamine $です。
そうそう smtp.gmail.com は、QUIT でいきなり切るので EOFError がでます。 rescue してしまいました。
SMTP のテストをしていたらノート PC の内部温度が 71 度。 あれれ? Sleipnir が CPU を使っていたのでした。 きっかけがなにかわからないのですが、どうしたのかな。 温度が下がれば 47 度。 24 度の差があるのかぁ。 3D ゲームしても 60 度越えるくらいだったような。 フルで回すとこのくらいということなのかな。
coLinux 上であれこれ試してみて、そろそろ移行する準備ができたかな。 make test でエラーがでるようですが、私が使う範囲では大丈夫そうです。 現状で使っている Ruby 1.9 は半年前のものなのでした。
ruby 1.9.0 (2006-11-22) [i686-linux]この 1.9 系、メインに使っているのですが、半年前だと問題をみつけてもいまいちですし。 coLinux で新しいものを使いはじめて、なかなかいい感じなのでメインにしてしまおうと思うのでした。 coLinux であれこれ試しているときに、気が付いたこともあっておしらせしたりもできたし。 実際の移行は、ライブラリ系の再コンパイルなどもあって、作業は土日になるかな。
使っている Vine Linux も 4.1 系にしたいな。 これはなかなか難しいのでした。 もう一台 PC がほしいー(おい
鉄ブームというけれど、以前からでは? 最近増えていたりするのでしょうか?
NTT のオープンソースの暗号エンジン。 仕事ですこし調べてみました。 帰宅後 Ruby の拡張モジュールを書いてみたり。 128bit (16byte) 固定ブロックの暗号化、複合化をサポートするだけの拡張モジュールなのですが...
暗号エンジンについて「テストベクトル(t_camellia.txt)」と一致するか? ということを確認することが必要のようなので、確認スクリプト。 入力は t_camellia.txt ファイルです。
#! /usr/local/bin/ruby
# /t/src/camellia-GPL-1.2.0/ck2.rb
# created: May 10,2007 Thursday 00:39:15
# author: tetsu(WATANABE Tetsuya)
def str2hex(str)
str.unpack('C*').collect{|x| sprintf('%02X', x) }.join(' ')
end
def hex2str(hex)
arr = []
hex.scan(/ ([\da-fA-F]{2})/) do |x|
arr.push(x[0].hex)
end
arr.pack('C*')
end
require 'Camellia'
f = File.open('t_camellia.txt')
pt = ''
ct = ''
pt_r = ''
ct_r = ''
k_count = 0
p_count = 0
c_count = 0
while l = f.gets
case l[0, 2]
when 'K '
k_count += 1
key = hex2str(l[10 .. -1])
Camellia.keyset(key)
when 'P '
p_count += 1
pt = hex2str(l[10 .. -1])
ct_r = Camellia.encrypt(pt)
when 'C '
c_count += 1
ct = hex2str(l[10 .. -1])
pt_r = Camellia.decrypt(ct)
if str2hex(pt) == str2hex(pt_r) and str2hex(ct) == str2hex(ct_r)
else
p str2hex(pt)
p str2hex(pt_r)
p str2hex(ct)
p str2hex(ct_r)
end
end
end
f.close
puts "k:#{k_count} p:#{p_count} c:#{c_count}"
拡張モジュール用の C のプログラム。
/*****
* /t/src/camellia-GPL-1.2.0/camellia_ruby.c
* Created: May 09,2007 Wednesday 23:19:32
* Author: tetsu(WATANABE Tetsuya)
*
* $Source: /t/src/camellia-GPL-1.2.0/camellia_ruby.c,v $
*/
#ifndef lint
static char *rcsid_c =
"@(#)$Id: camellia_ruby.c,v 1.1 2007/05/09 16:44:42 tetsu Exp $";
#endif
#include "ruby.h"
#include "camellia.h"
#include <stdio.h>
#include <string.h>
static VALUE mCamellia;
static VALUE eCamelliaError;
static int keyBit = 128;
static KEY_TABLE_TYPE keyTable;
static unsigned char rawKey[32];
static VALUE
camellia_keyset(VALUE class, VALUE key)
{
int len;
Check_Type(key, T_STRING);
memset(keyTable, 0, sizeof(keyTable));
memset(rawKey, 0, sizeof(rawKey));
len = RSTRING_LEN(key);
switch (len) {
case 16: keyBit = 128; break;
case 24: keyBit = 192; break;
case 32: keyBit = 256; break;
default:
rb_raise(eCamelliaError, "bad key length(16byte:128bit, 24byte:192bit, 32byte:256bit byte:%d", len);
}
memcpy(rawKey, RSTRING_PTR(key), len);
Camellia_Ekeygen(keyBit, rawKey, keyTable);
return class;
}
static VALUE
camellia_encrypt(VALUE class, VALUE str)
{
char buf[16];
int len;
Check_Type(str, T_STRING);
len = RSTRING_LEN(str);
if (len != 16) {
rb_raise(eCamelliaError, "bad length(16byte:128bit byte:%d", len);
}
Camellia_EncryptBlock(keyBit, RSTRING_PTR(str), keyTable, buf);
return rb_str_new(buf, sizeof(buf));
}
static VALUE
camellia_decrypt(VALUE class, VALUE str)
{
char buf[16];
int len;
Check_Type(str, T_STRING);
len = RSTRING_LEN(str);
if (len != 16) {
rb_raise(eCamelliaError, "bad length(16byte:128bit byte:%d", len);
}
Camellia_DecryptBlock(keyBit, RSTRING_PTR(str), keyTable, buf);
return rb_str_new(buf, sizeof(buf));
}
void
Init_Camellia()
{
mCamellia = rb_define_module("Camellia");
eCamelliaError = rb_define_class("CamelliaError", rb_eException);
rb_define_module_function(mCamellia, "keyset", camellia_keyset, 1);
rb_define_module_function(mCamellia, "encrypt", camellia_encrypt, 1);
rb_define_module_function(mCamellia, "decrypt", camellia_decrypt, 1);
}
/*
* $Log: camellia_ruby.c,v $
* Revision 1.1 2007/05/09 16:44:42 tetsu
* Initial revision
*
*/
extconf.rb です。
camellia-GPL-1.2.0.tar.gz (Version 1.2.0, 18 KB) を展開したディレクトリに camellia_ruby.c と同じディレクトリに置いてください。
#! /usr/local/bin/ruby
# /t/src/camellia-GPL-1.2.0/extconf.rb
# created: May 09,2007 Wednesday 23:08:10
# author: tetsu(WATANABE Tetsuya)
require 'mkmf'
have_header("camellia.h")
create_makefile("Camellia")
コンパイルとテストの手順です。
$ ruby extconf.rb $ make $ ruby ck2.rbなにも表示されなければ、入力と出力の結果が一致しているということになります。
Camellia は、128bit ブロックで入出力するので汎用的に扱うためにどうすればいいのかよくわかっていないので、テスト用ということで。 この手の暗号化のライブラリ関係の確認してみようかな。 自分なりの暗号キーの管理を導入して、遊んでみるとおもしろいかも。
Camellia 暗号エンジン。 Ruby のモジュールを作ってはみましたが、実際の利用を考えるともっと大きな単位で処理を行なえるように拡張しないと、メモリの確保などのオーバーヘッドが大きくて遅いと思うのでした。 問題は、128bit(16byte) ブロック単位の処理なのですが端数はどうしようかなと。 ちなみに tar コマンドは、作成したファイルが切りのいいサイズになります。 圧縮する前の話ですけど。 使えるかも?
ヒカルの碁の続きがみたい...
私もこういうのとても興味あります。 絵を描いてみたいな。
やじうま Watch 久しぶり。 もっとちゃんとみにいかないと。 おもしろそうな話題がいくつかあるー
#! /usr/local/bin/ruby
# /tmp/j.rb
# created: May 11,2007 Friday 04:55:56
# author: tetsu(WATANABE Tetsuya)
1.upto(100) do |i|
print i, ':'
if i % 3 == 0
print 'Fizz'
end
if i % 5 == 0
print 'Buzz'
end
puts
end
公倍数を特別扱いしなくてもいいよね。
メールの受信と送信に問題ないことが確認できたので、移行してしまいました。 いままでだと動いていたもので、動かなくなった機能として気が付いたのは
なんですが、ほかにもあるかな。
- Array クラスのイテレータ中に Array クラスそのものの要素を増やすような処理
`[]=': can't modify array during iteration (RuntimeError)
私は SMTP でメールの発送、POP でのメールの受信どちらも Ruby スクリプトです。 これが動けば、あとはなんとか。
仕事の流れを可視化できるといいですよね。 個人でも使えるといいなと思ったり。
普通の会社とかなら到底許されないことを、いくつも重ねてやってくれているこんなところに、まだお金を任せるのは間違いでは?
WinXP がメイン OS で coLinux が動いています。 現在 1GB のメモリなのですが、もう 512MB くらいあるといいなと思います。 coLinux をがんがん使うときは、そこそこメモリがほしいです。 ま、たまに重いと思うくらいで、いまのままでも大丈夫そうなんですけど。
BS で放送されているアニメなのですが、とてもいい感じです。 ビデオが壊れたままなので、録画できないので毎週土曜日の朝にみていたり。 マスターキートンもいっしょにみれるので、さらにいいです。 PC で録画できるものは、ほぼ地上アナログなのですが、早くいろいろ録画できるものがほしいな。 私の場合、解像度などぜんぜんいらないのでいまのアナログで十分だったり...
昨日の帰宅時、西の空に光る星。 私の視力では他に星がみえないのですが、その星だけはすごく目立っていました。 金星かなと思ったのですが、星図では金星はもっと低い位置のようです。 スピカかそれとも ブロキオン なのかな。 高さは 30 度くらいかな。
空のきれいなところで、ぼーっとながめていたい感じ。
デジカメで試しに撮ってみたかったのですが、なんか場所的に建物の窓を撮っているようにもみえるし、難しいのでした。 あーあれこれ試してみたいな。
昨日は風が強かったですが、空はあまりきれいではなかったです。 雨上がりのすっきりした空だと思ったのにな。
あんまりややこしくしてもなんですが、ちょっと応用として修正案を考えています。
考えているだけだったりするかも...
- 背景の色と文字の色の指定
- 文字の表示を
な ぜ 手軽なのか日常で使 え るRuby で PDF
ま、自分で使うことがなさそうなのでなおさら。 Haru Free PDF Library II は、なかなかいい PDF ライブラリなので、自分で PDF を作ってみたいと思う人は、あれこれ試してみるといいと思いますよ。
休日でも仕事とか。 すこし微妙な気持。 数字的にはぜんぜん問題がない系なのもあって、レポートに力が入らないです。 依頼は金曜日の夕方。 結果は月曜日午前中だそうです。 うーん、力が入らない...
さっさと終わらせるのがいいとは思いつつ...
テスト的に
な ぜ 手軽なのかをサポートしてみました。 行修飾子「L:, C:, R:」を入れてみました。 本当は「L:なぜ手軽なのか」とすると、勝手に「L」字のように折り曲げるといいかなと思ったんです。 でも、これだと折り曲げ位置を自動にするといまいちになりそうだったので「左よせ」「右よせ」をサポートしました。
L:な L:ぜ L:手軽なのか
これもテスト的なのですが、文字色と背景色のサポートです。
//c r,g,b r,g,bで最初が文字色、次が背景色です。 背景色は省略可能です。 お遊びで
//c r,r,r r,r,rと書くとランダムに色を作成します。 けっこういいかも(え
スムーズに動いているのにタイムアウトになってしまうようです。
/t/lib/ruby/1.9/net/protocol.rb:135:in `sysread': execution expired (Timeout::Error) from /t/lib/ruby/1.9/net/protocol.rb:135:in `block in rbuf_fill' from /t/lib/ruby/1.9/timeout.rb:46:in `timeout' from /t/lib/ruby/1.9/timeout.rb:62:in `timeout' from /t/lib/ruby/1.9/net/protocol.rb:134:in `rbuf_fill' from /t/lib/ruby/1.9/net/protocol.rb:116:in `readuntil' from /t/lib/ruby/1.9/net/protocol.rb:126:in `readline' from /t/lib/ruby/1.9/net/pop.rb:963:in `recv_response' from /t/lib/ruby/1.9/net/pop.rb:959:in `get_response' ... 6 levels... from /t/lib/ruby/1.9/net/pop.rb:634:in `each_mail' from /home/tetsu/bin/nif_pop.rb:95:in `block inあれれ?' from /t/lib/ruby/1.9/net/pop.rb:508:in `start' from /home/tetsu/bin/nif_pop.rb:92:in ` '
ということで、ちょっとデバック用にメッセージを表示するようにしてみたり。 Timeout::timeout の戻値って、残り時間かと思ったらちょっと違ってたり? あ、そうかブロック内の値がそのままでてくるのか。
スムーズに受け取っていて、待ち時間などがあるわけではなく、落ちてしまいます。 データの欠損とかがあるわけではないのですが、さてなにが関係しているのかな?
これ困ったことですよね。 日本海側など、本当は発生するはずがないのに...
反対です! ネクタイするだけで、首元から熱を発散できないのでかなり暑くなります。 夏場のネクタイなんかするから冷房を強くする人が多くでてきてしまいます。 絶対反対!!
2006/10/16 の情報ですが、写真がかわいいので。
なんと「電脳コイル」が「伊東美咲」を越えてます。 えー
あ、後ろのほうのランキングをみたら「23 位 伊藤美咲 (131pt)」だそうです。 なーんだ
現状把握ということなんですが、どうしてそういう質問しているか説明しながらならいいのにね。
うーん、そんなに心配しなくてもいいような。 と、安心していてはいけないのかな。
赤外線での金星観測、おもしろそう。
以前はコンピュータ関係とかサイエンスやテクノロジー系のニュースを Yahoo ニュースでみていたのですが、分野が細分化されてみにくくなってしまいました。 大きなわくのほうがいいように思うのですが、世の中は違いそうですね。
西の空に明るく光っているのは土星だそうです。 kazu さんありがとー
hotlink 最近確認していなかったー
日記だけではなくて Ruby のページも最近ちょっとがんばっているので、のせてもらえるようになるといいなぁ。 今日は テキストから高橋メソッドな PDF へ変換するスクリプト の bug fix してたりします。
もともとは 0.9.5 用に作成したパッチですが、0.9.7 でもコンパイルできたので。
パッチのオプションはこんな感じですが、スペース関係の -l オプションも入れたほうがいいかも。
$ patch -s -b -p0 < ../ruby-ldap.patch
--- conn.c.org 2006-04-21 01:39:46.000000000 +0900
+++ conn.c 2007-05-15 12:31:28.000000000 +0900
@@ -210,10 +210,10 @@
VALUE ary = rb_iv_get (self, "@args");
if (rb_obj_is_kind_of (self, rb_cLDAP_SSLConn) == Qtrue)
- return rb_ldap_sslconn_initialize (RARRAY (ary)->len, RARRAY (ary)->ptr,
+ return rb_ldap_sslconn_initialize (RARRAY_LEN(ary), RARRAY_PTR(ary),
self);
else
- return rb_ldap_conn_initialize (RARRAY (ary)->len, RARRAY (ary)->ptr,
+ return rb_ldap_conn_initialize (RARRAY_LEN(ary), RARRAY_PTR(ary),
self);
}
@@ -847,18 +847,18 @@
else
Check_Type (attrs, T_ARRAY);
- if (RARRAY (attrs)->len == 0)
+ if (RARRAY_LEN(attrs) == 0)
{
cattrs = NULL;
}
else
{
- cattrs = ALLOCA_N (char *, (RARRAY (attrs)->len + 1));
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ cattrs = ALLOCA_N (char *, (RARRAY_LEN(attrs) + 1));
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- cattrs[i] = StringValueCStr (RARRAY (attrs)->ptr[i]);
+ cattrs[i] = StringValueCStr (RARRAY_PTR(attrs)[i]);
};
- cattrs[RARRAY (attrs)->len] = NULL;
+ cattrs[RARRAY_LEN(attrs)] = NULL;
}
}
case 3:
@@ -1180,18 +1180,18 @@
else
Check_Type (attrs, T_ARRAY);
- if (RARRAY (attrs)->len == 0)
+ if (RARRAY_LEN(attrs) == 0)
{
cattrs = NULL;
}
else
{
- cattrs = ALLOCA_N (char *, (RARRAY (attrs)->len + 1));
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ cattrs = ALLOCA_N (char *, (RARRAY_LEN(attrs) + 1));
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- cattrs[i] = StringValueCStr (RARRAY (attrs)->ptr[i]);
+ cattrs[i] = StringValueCStr (RARRAY_PTR(attrs)[i]);
};
- cattrs[RARRAY (attrs)->len] = NULL;
+ cattrs[RARRAY_LEN(attrs)] = NULL;
}
}
case 3:
@@ -1382,11 +1382,11 @@
GET_LDAP_DATA (self, ldapdata);
c_dn = StringValueCStr (dn);
- c_attrs = ALLOCA_N (LDAPMod *, (RARRAY (attrs)->len + 1));
+ c_attrs = ALLOCA_N (LDAPMod *, (RARRAY_LEN(attrs) + 1));
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- VALUE mod = RARRAY (attrs)->ptr[i];
+ VALUE mod = RARRAY_PTR(attrs)[i];
RB_LDAPMOD_DATA *moddata;
Check_Kind (mod, rb_cLDAP_Mod);
GET_LDAPMOD_DATA (mod, moddata);
@@ -1435,13 +1435,13 @@
GET_LDAP_DATA (self, ldapdata);
c_dn = StringValueCStr (dn);
- c_attrs = ALLOCA_N (LDAPMod *, (RARRAY (attrs)->len + 1));
+ c_attrs = ALLOCA_N (LDAPMod *, (RARRAY_LEN(attrs) + 1));
sctrls = rb_ldap_get_controls (serverctrls);
cctrls = rb_ldap_get_controls (clientctrls);
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- VALUE mod = RARRAY (attrs)->ptr[i];
+ VALUE mod = RARRAY_PTR(attrs)[i];
RB_LDAPMOD_DATA *moddata;
Check_Kind (mod, rb_cLDAP_Mod);
GET_LDAPMOD_DATA (mod, moddata);
@@ -1489,11 +1489,11 @@
GET_LDAP_DATA (self, ldapdata);
c_dn = StringValueCStr (dn);
- c_attrs = ALLOC_N (LDAPMod *, RARRAY (attrs)->len + 1);
+ c_attrs = ALLOC_N (LDAPMod *, RARRAY_LEN(attrs) + 1);
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- VALUE mod = RARRAY (attrs)->ptr[i];
+ VALUE mod = RARRAY_PTR(attrs)[i];
RB_LDAPMOD_DATA *moddata;
Check_Kind (mod, rb_cLDAP_Mod);
GET_LDAPMOD_DATA (mod, moddata);
@@ -1543,13 +1543,13 @@
GET_LDAP_DATA (self, ldapdata);
c_dn = StringValueCStr (dn);
- c_attrs = ALLOC_N (LDAPMod *, RARRAY (attrs)->len + 1);
+ c_attrs = ALLOC_N (LDAPMod *, RARRAY_LEN(attrs) + 1);
sctrls = rb_ldap_get_controls (serverctrls);
cctrls = rb_ldap_get_controls (clientctrls);
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
- VALUE mod = RARRAY (attrs)->ptr[i];
+ VALUE mod = RARRAY_PTR(attrs)[i];
RB_LDAPMOD_DATA *moddata;
Check_Kind (mod, rb_cLDAP_Mod);
GET_LDAPMOD_DATA (mod, moddata);
@@ -1703,7 +1703,7 @@
c_val = StringValueCStr (val);
#endif
bval.bv_val = StringValueCStr (val);
- bval.bv_len = RSTRING (val)->len;
+ bval.bv_len = RSTRING_LEN(val);
sctrls = rb_ldap_get_controls (serverctrls);
cctrls = rb_ldap_get_controls (clientctrls);
--- entry.c.org 2005-03-15 19:15:32.000000000 +0900
+++ entry.c 2007-05-15 12:57:30.000000000 +0900
@@ -152,7 +152,7 @@
Check_Type (attrs, T_ARRAY);
rb_hash_aset (hash, rb_tainted_str_new2 ("dn"),
rb_ary_new3 (1, rb_ldap_entry_get_dn (self)));
- for (i = 0; i < RARRAY (attrs)->len; i++)
+ for (i = 0; i < RARRAY_LEN(attrs); i++)
{
attr = rb_ary_entry (attrs, i);
vals = rb_ldap_entry_get_values (self, attr);
@@ -173,11 +173,18 @@
{
VALUE str;
char *c;
+#if 1
+ char buf[2000];
c = rb_obj_classname (self);
+ sprintf (buf, "#<%s:0x%lx\n", c, self);
+ str = rb_str_new2(buf);
+#else
+ c = rb_obj_classname (self);
str = rb_str_new (0, strlen (c) + 10 + 16 + 1); /* 10:tags 16:addr 1:nul */
- sprintf (RSTRING (str)->ptr, "#<%s:0x%lx\n", c, self);
- RSTRING (str)->len = strlen (RSTRING (str)->ptr);
+ sprintf (RSTRING_PTR(str), "#<%s:0x%lx\n", c, self);
+ RSTRING_LEN(str) = strlen (RSTRING_PTR(str));
+#endif
rb_str_concat (str, rb_inspect (rb_ldap_entry_to_hash (self)));
rb_str_cat2 (str, ">");
--- misc.c.org 2005-03-15 19:15:31.000000000 +0900
+++ misc.c 2007-05-15 12:49:37.000000000 +0900
@@ -53,11 +53,11 @@
info->ldapai_protocol_version =
FIX2INT (rb_struct_getmember (data, rb_intern ("protocol_version")));
r_extensions = rb_struct_getmember (data, rb_intern ("extensions"));
- len = RARRAY (r_extensions)->len;
+ len = RARRAY_LEN(r_extensions);
c_extensions = ALLOCA_N (char *, len);
for (i = 0; i <= len - 1; i++)
{
- VALUE str = RARRAY (r_extensions)->ptr[i];
+ VALUE str = RARRAY_PTR(r_extensions)[i];
RB_LDAP_SET_STR (c_extensions[i], str);
}
info->ldapai_extensions = c_extensions;
@@ -160,7 +160,7 @@
else
{
RB_LDAP_SET_STR (ctl->ldctl_value.bv_val, val);
- ctl->ldctl_value.bv_len = RSTRING (val)->len;
+ ctl->ldctl_value.bv_len = RSTRING_LEN(val);
}
return val;
@@ -449,7 +449,7 @@
return NULL;
Check_Type (data, T_ARRAY);
- len = RARRAY (data)->len;
+ len = RARRAY_LEN(data);
ctls = ALLOC_N (LDAPControl *, len + 1);
for (i = 0; i < len; i++)
{
--- mod.c.org 2005-03-08 07:57:34.000000000 +0900
+++ mod.c 2007-05-15 12:56:59.000000000 +0900
@@ -153,15 +153,15 @@
if (mod_op & LDAP_MOD_BVALUES)
{
- bvals = ALLOC_N (struct berval *, RARRAY (vals)->len + 1);
- for (i = 0; i < RARRAY (vals)->len; i++)
+ bvals = ALLOC_N (struct berval *, RARRAY_LEN(vals) + 1);
+ for (i = 0; i < RARRAY_LEN(vals); i++)
{
VALUE str;
struct berval *bval;
str = RARRAY (vals)->ptr[i];
Check_Type (str, T_STRING);
bval = ALLOC_N (struct berval, 1);
- bval->bv_len = RSTRING (str)->len;
+ bval->bv_len = RSTRING_LEN(str);
RB_LDAP_SET_STR (bval->bv_val, str);
bvals[i] = bval;
}
@@ -170,8 +170,8 @@
}
else
{
- strvals = ALLOC_N (char *, RARRAY (vals)->len + 1);
- for (i = 0; i < RARRAY (vals)->len; i++)
+ strvals = ALLOC_N (char *, RARRAY_LEN(vals) + 1);
+ for (i = 0; i < RARRAY_LEN(vals); i++)
{
VALUE str;
char *sval;
@@ -275,10 +275,17 @@
VALUE hash = rb_hash_new ();
char *c;
+#if 1
+ char buf[2000];
+ c = rb_obj_classname (self);
+ sprintf (buf, "#<%s:0x%lx ", c, self);
+ str = rb_str_new2(buf);
+#else
c = rb_obj_classname (self);
str = rb_str_new (0, strlen (c) + 10 + 16 + 1); /* 10:tags 16:addr 1:nul */
sprintf (RSTRING (str)->ptr, "#<%s:0x%lx ", c, self);
RSTRING (str)->len = strlen (RSTRING (str)->ptr);
+#endif
switch (FIX2INT (rb_ldap_mod_op (self)) & ~LDAP_MOD_BVALUES)
{
--- rbldap.h.org 2006-04-21 01:47:00.000000000 +0900
+++ rbldap.h 2007-05-15 12:52:09.000000000 +0900
@@ -36,8 +36,8 @@
#define RB_LDAP_SET_STR(var,val) {\
Check_Type(val, T_STRING); \
- var = ALLOC_N(char, RSTRING(val)->len + 1); \
- memcpy(var, RSTRING(val)->ptr, RSTRING(val)->len + 1); \
+ var = ALLOC_N(char, RSTRING_LEN(val) + 1); \
+ memcpy(var, RSTRING_PTR(val), RSTRING_LEN(val) + 1); \
}
#if defined(HAVE_LDAP_SEARCH_EXT_S)
--- saslconn.c.org 2006-02-14 02:20:32.000000000 +0900
+++ saslconn.c 2007-05-15 12:58:17.000000000 +0900
@@ -95,20 +95,20 @@
dn = StringValuePtr (arg1);
mechanism = StringValuePtr (arg2);
cred->bv_val = StringValueCStr (arg3);
- cred->bv_len = RSTRING (arg3)->len;
+ cred->bv_len = RSTRING_LEN(arg3);
break;
case 4:
dn = StringValuePtr (arg1);
mechanism = StringValuePtr (arg2);
cred->bv_val = StringValueCStr (arg3);
- cred->bv_len = RSTRING (arg3)->len;
+ cred->bv_len = RSTRING_LEN(arg3);
serverctrls = rb_ldap_get_controls (arg4);
break;
case 5:
dn = StringValuePtr (arg1);
mechanism = StringValuePtr (arg2);
cred->bv_val = StringValueCStr (arg3);
- cred->bv_len = RSTRING (arg3)->len;
+ cred->bv_len = RSTRING_LEN(arg3);
serverctrls = rb_ldap_get_controls (arg4);
clientctrls = rb_ldap_get_controls (arg5);
break;
高校で生徒さんに Ruby を教えているという話。 いいですね。 私も教わりたい(おい
公式メニューってどこだっけ?
グーグル文化いいですね。
蛍光灯が直接目に入るようなオフィスなんですが、こういう考えかたを取り入れてほしい...
coLinux について、IBM の developerWorks の翻訳です。 IBM っていいですね、こういうの。
coLinux は、私にとって仕事を含めてとても強力なツールになっています。 WinXP 上に作成した coLinux の環境があれば、Linux のそのままのツールたちが動きますから。 これのおかげでずいぶん助かっています。
coLinux で使用している Linux は Vine Linux です。 4.1 と 3.2 です。 CPU というか core が二つある core 2 duo などの CPU がノート PC でも使えるようになったので、coLinux などを利用するのはとてもいいと思います。
WinXP が現在私のウィンドウマネージャのような感じになってしまっています。 ブラウザも WinXP 上だったりします。 以前は全部 Linux だったのですが、ちょっとしたことで動かないアプリや使えないファイル形式などがあって、いまの形に落ち着いています。 自宅でも会社でも、メインの作業用の Linux があったりするのですが、こちらには TeraTerm でアクセスしています。
自分ではプレゼンの機会もなくて、あまり使わないかなと思ったら「ここにものを置かないでください」という張り紙に使えたり。 えーえーえー
「高橋メソッド」「ruby」をキーワードにぶらぶら。 高橋さんのプレゼンの評判、高橋メソッドの実際の効果についての検証、みなさんがあれこれ工夫していることなどが読めて楽しい時間です。 いやーいいなぁ。 私も人前で話せるといいんですが、とっても苦手なのでした。 ま、苦手苦手といっていてはいつまでも苦手なままなんですが、私の場合からだの反応がかなりきついので微妙なのでした。 こんな私でも「高橋メソッド」なら、なんとかなるツールなのでした。
楽しくソフトウェア開発ができるところっていいなぁ。 私ではお役に立てないかなと思いますが、そういうところの近くにでもいられたらいいなぁ。
ときたま発生するのですが、Linux で strace の結果 Thread 関係とシグナルあたりかも? ときたまなので starce がとれたのはまだ一回なのでなんとも。
ruby 1.9.0 (2007-05-15 patchlevel 0) [i686-linux] 12283
$ nif_pop.rb
0.000035
.........................../t/lib/ruby/1.9/net/protocol.rb:135:in `sysread': execution expired (Timeout::Error)
from /t/lib/ruby/1.9/net/protocol.rb:135:in `block in rbuf_fill'
from /t/lib/ruby/1.9/timeout.rb:46:in `timeout'
from /t/lib/ruby/1.9/timeout.rb:62:in `timeout'
from /t/lib/ruby/1.9/net/protocol.rb:134:in `rbuf_fill'
from /t/lib/ruby/1.9/net/protocol.rb:116:in `readuntil'
from /t/lib/ruby/1.9/net/protocol.rb:126:in `readline'
from /t/lib/ruby/1.9/net/pop.rb:963:in `recv_response'
from /t/lib/ruby/1.9/net/pop.rb:959:in `get_response'
... 6 levels...
from /t/lib/ruby/1.9/net/pop.rb:634:in `each_mail'
from /home/tetsu/bin/nif_pop.rb:95:in `block in <main>'
from /t/lib/ruby/1.9/net/pop.rb:508:in `start'
from /home/tetsu/bin/nif_pop.rb:92:in `<main>'
ruby 1.9.0 (2007-05-17 patchlevel 0) [i686-linux] 12289
$ nif_pop.rb
0.000035
.............../t/lib/ruby/1.9/net/protocol.rb:135:in `sysread': execution expired (Timeout::Error)
from /t/lib/ruby/1.9/net/protocol.rb:135:in `block in rbuf_fill'
from /t/lib/ruby/1.9/timeout.rb:46:in `timeout'
from /t/lib/ruby/1.9/timeout.rb:62:in `timeout'
from /t/lib/ruby/1.9/net/protocol.rb:134:in `rbuf_fill'
from /t/lib/ruby/1.9/net/protocol.rb:116:in `readuntil'
from /t/lib/ruby/1.9/net/protocol.rb:218:in `each_message_chunk'
from /t/lib/ruby/1.9/net/pop.rb:921:in `block in retr'
from /t/lib/ruby/1.9/net/pop.rb:979:in `critical'
from /t/lib/ruby/1.9/net/pop.rb:6:in `retr'
from /t/lib/ruby/1.9/net/pop.rb:775:in `pop'
from /home/tetsu/bin/nif_pop.rb:100:in `block (2 levels) in <main>'
from /t/lib/ruby/1.9/net/pop.rb:634:in `each'
from /t/lib/ruby/1.9/net/pop.rb:634:in `each_mail'
from /home/tetsu/bin/nif_pop.rb:95:in `block in <main>'
from /t/lib/ruby/1.9/net/pop.rb:508:in `start'
from /home/tetsu/bin/nif_pop.rb:92:in `<main>'
SIGVTALRM 関係かな?
正常時には SIGVTALRM ありませんでした。
24553 15:33:01.698976 --- SIGSTOP (Stopped (signal)) @ 0 (0) ---
24553 15:33:01.698999 modify_ldt(1, {entry_number:4, base_addr:0x40d74be0, limit:1048575, seg_32bit:1, contents:0, read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}, 16) = 0
24553 15:33:01.699054 getpid() = 24553
24553 15:33:01.699097 rt_sigprocmask(SIG_SETMASK, ~[KILL SEGV STOP VTALRM RT_1], NULL, 8) = 0
24553 15:33:01.699159 sched_setscheduler(0x5fe9, 0, 0x40d74cf8) = 0
24553 15:33:01.699215 time(NULL) = 1179210781
24553 15:33:01.699260 gettimeofday( <unfinished ...>
24510 15:33:01.699308 <... nanosleep resumed> {6, 1075730400}) = 0
24510 15:33:01.699342 nanosleep({0, 10000000}, <unfinished ...>
24553 15:33:01.699372 <... gettimeofday resumed> {1179210781, 699366}, NULL) = 0
24553 15:33:01.699405 time(NULL) = 1179210781
24553 15:33:01.699447 sched_yield() = 0
24508 15:33:01.700611 <... select resumed> ) = 1 (in [5])
24508 15:33:01.700744 rt_sigprocmask(SIG_SETMASK, NULL, ~[KILL SEGV STOP VTALRM RT_1], 8) = 0
24508 15:33:01.700812 rt_sigsuspend(~[KILL SEGV STOP VTALRM RTMIN RT_1] <unfinished ...>
24553 15:33:01.701033 kill(24508, SIGVTALRM <unfinished ...>
24508 15:33:01.701067 --- SIGVTALRM (Virtual timer expired) @ 0 (0) ---
24508 15:33:01.701096 <... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
24508 15:33:01.701128 sigreturn() = ? (mask now ~[KILL SEGV STOP VTALRM])
24508 15:33:01.701203 rt_sigsuspend(~[KILL SEGV STOP VTALRM RTMIN RT_1] <unfinished ...>
24553 15:33:01.701245 <... kill resumed> ) = 0
24553 15:33:01.701283 kill(24508, SIGRTMIN <unfinished ...>
24508 15:33:01.701308 --- SIGRTMIN (Unknown signal 32) @ 0 (0) ---
24508 15:33:01.701330 <... rt_sigsuspend resumed> ) = -1 EINTR (Interrupted system call)
24508 15:33:01.701360 sigreturn() = ? (mask now ~[KILL SEGV STOP VTALRM])
24508 15:33:01.701536 rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
24508 15:33:01.701642 rt_sigprocmask(SIG_SETMASK, [RTMIN], NULL, 8) = 0
24508 15:33:01.701749 close(5) = 0
ちゃんとバックトレースできないのですが、core が。
$ rg.rb SIGVTALRM *.c zsh: 29139 segmentation fault (core dumped) rg.rb SIGVTALRM *.c (gdb) bt #0 0x0805e8af in ruby_xmalloc (size=48) at gc.c:238 238 RUBY_CRITICAL(mem = malloc(size));
$ rg.rb yyvsp *.c zsh: 29201 segmentation fault (core dumped) rg.rb yyvsp *.c #0 0x08092114 in match_at (reg=Cannot access memory at address 0xbf800940) at regexec.c:1458 1458 STACK_PUSH_ENSURED(STK_ALT, FinishCode); /* bottom stack */
デバックオプション付でコンパイルしてしばらく様子をみるかな。 あとで単純な再現コードがかけるか確認してみいと。 ファイル一つだと core しないので、ファイルを大量に扱ったようなときに起きるみたいです。
6 月下旬なんですか。 また人が増えそう。
CPU がその瞬間は回りますよね。 ノート PC とかだと数字でみえると思うけれど、違うのかな?
肩凝りする人は、肩の筋肉の緊張が普段から継続するような姿勢などになっていると思うのです。 PC などを使うときに、手は重要な入力のためのインターフェースですが、手の重さが肩にかかっていませんか?
緊張して肩が自然に上がってしまっている人とかいるようです。 電子レンジで温める肩の上にのせるタイプのものや、温熱シップなどを使ってみるといいかも。 あと、肩の力を抜けるような姿勢で作業できるといいですね。
(gdb) run /tmp/j.rb *.c *.h */*.c Starting program: /t/src/ruby/1.9/head/ruby-1.9.0 /tmp/j.rb *.c *.h */*.c Program received signal SIG32, Real-time event 32. 0x4002a1d4 in pthread_getconcurrency () from /lib/i686/libpthread.so.0 (gdb) c Continuing. Program received signal SIGSEGV, Segmentation fault. 0x080a890c in tr_setup_table (str=0, table=0xbf800170 '\001' <repeats 200 times>..., init=1) at string.c:3160 3160 buf[c & 0xff] = !cflag; (gdb) bt #0 0x080a890c in tr_setup_table (str=0, table=0xbf800170 '\001' <repeats 200 times>..., init=1) at string.c:3160 #1 0x080a8d6b in rb_str_count (argc=1, argv=0x40309024, str=1080892360) at string.c:3384 #2 0x080bd325 in call_cfunc (func=0x80a8d06 <rb_str_count>, recv=1080892360, len=0, argc=1, argv=0x406d1bbc) at call_cfunc.ci:36 #3 0x080bb4a4 in th_eval (th=0x814fef0, initial=0) at insns.def:1279 #4 0x080bcc76 in th_eval_body (th=0x814fef0) at vm.c:1620 #5 0x080bd15f in rb_thread_eval (th=0x814fef0, iseqval=1076863380) at vm.c:1826 #6 0x080be51d in yarvcore_eval_iseq (iseq=1076863380) at yarvcore.c:97 #7 0x080be5ba in yarvcore_eval_parsed (node=0x402fa1d0, file=1076863420) at yarvcore.c:129 #8 0x08059057 in ruby_exec_internal () at eval.c:210 #9 0x08059087 in ruby_exec () at eval.c:223 #10 0x080590bd in ruby_run () at eval.c:242 #11 0x08056abd in main () at main.c:47 #12 0x400d9c1f in __libc_start_main () from /lib/i686/libc.so.6 (gdb)
おしらせメール。
暇なときにちょっとしてみたり。 私の性格では「○」といい難いタイプなのか「×」が多いです。 質問そのものとの相性ともいえるんですけど。
写真あり。 こういうの写真必要ですよね。
デジタルラジオが気になります。
ズームで星を撮るのはありかも?
LED 照明がほしいのでした。 読書灯がまくら元にあればいいなぁ。 乾電池だとランニングコストがよくないので、なにかいいものないかな。
むかしの HP Way はよかったなぁ。
いいなぁ。
個人で買うプリンタは CANON だなぁ。 なぜでしょ?
よく読んでいない人と、わかっていて試した人の数がわかるといいんですが、無理ですしね。
使っているネットワーク接続のプリンタとか調べてみると紙切れとかトナー不足とか SNMP でわかるかも? うちの会社のプリンタはわかるんですが、私の真横にプリンタがあるので微妙。 ステータス確認にいいのは、表示されている LED のメッセージをそのまま持ってくるのがプリンタの状態がわかりやすくていいです。 私は Ruby から SNMP でアクセスして情報を持ってきています。
地球温暖化。 チームマイナス 6% に参加しているうちの会社は、「これでいいの?」と思うことがあったり。 いまの自分がよければ系にみえるんですが。 役員会議でどう決定したか、ちゃんとした正式見解を聞きたいものです。 自分の子供たちが困ることになるとか考えないの?
スーツにネクタイという変な商習慣ができたのは、エアコンがでてきたから? むかしは開襟シャツになんとか帽子だったように思うのですが。 扇子片手に。 こういう日本らしい姿に戻ってもなにも問題ないでしょう。 都心部の気温から考えたら「アロハ」で十分に思います。 いまなにをすべきか、どうして硬直しちゃった人たちはわからないのでしょうね(硬直しているからだけど
日本でもこういうオープンなやりかたが盛んな会社ってどの辺かな? 積極的なところって、まつもとさんの会社( ネットワーク応用研究所 )くらいしか思いつかないです。 あ SRA とかもあるかな。
日本受けすると思うので、日本の有名人も入れてほしいな。
うまくいきますように
以前にだしたおしらせメール。 メモ
これいままでの IT 投資が失敗しているとかが理由だったりすると微妙だったり。 有効にコンピュータを使えていないということですよね。 MS-PowerPoint、MS-Excel、MS-Word、Outlook だけを使っているパターンが多いのかな? もっと自分のビジネスをバックアップ、パワーアップしてくれることにコンピュータを使えばいいのですが。 自分のためのにサービスしてくれるシステムがほしいですよね。 チームで作業しているなら自分たちのためにサービスしてくれるシステムがほしいですよね。
PukiWiki のユーザ程度で、実際には書きませんけどメモ。
「あと、何回、ビル・ゲイツのスピーチを聞けるのか」だそうです。
どういう職場でもですが、働く人をちゃんとフォローする仕組みがすくないですよね。 コストカットとかきつくなる話ばかり。 看護士(師)さんは技能職なので高給でもいいのに、きつい話を聞きます。 これでは安心して病気にもなれないというか。 世の中間違っている方向にたくさん進んでいるように思うのですが、これってだれのためにそうなっているのでしょう?
効果あるといいですね。
作って作って作って!
ハッカーという称号をもらうには、ある程度の規模というか普通ならすぐにはできないようなことや、すばらしいアイディアがあったりしますよね。 私は自分が「こういうのがあればいいな」系ですが、ハッカーの人たちも最初は同じかな。 こういうのがあればいいなと思ったら、実現方法を考えてみるといいなと思います。 プログラムを作れるということは、実現できる可能性があるということですから。
開発者のお互いの信頼関係を作るのには時間がかかるから、信頼されるための資格テストを導入? うーむ、どこかの会社みたいな。 マネジメントとか考えるとこうなってしまうのかなぁ。
タイトル短くしすぎ...
確認したほうがよさそう。
まつもとさんの日記から。 たしかにそうですよね。 私なんか仕事でも嫌なことは嫌だし(おい
これもまつもとさんの日記から。 作っている人が「JRuby を作る仕事が楽しい」とコメント。 これがなによりですね。
レポートの時に書いた再現スクリプト。 これで大量のファイルを検索すると core してしまうのでした。 で、このスクリプトの各行それぞれ一行でもないと起きない...
#! /usr/local/bin/ruby
require 'nkf'
while gets("\n")
l = $_
break if l.count("\n") > 1
l = NKF.nkf('-Se', l)
if l =~ /SIGV/
end
end
落ちる場所がちょっとはっきりしないので、タイミング系? (pthread 系かな)
最新のカーネルとか最新の glibc なら落ちないかも?
手元は Vine Linux の 3.2 と 4.1 だし。
うむむ
昨日はキーボード使いすぎで、左手の指が微妙。 休まないとね。
「文字」を使ったロゴ
「
」
の大きい version を作成しようとして、kbanner.rb の bug に気が付いたので修正。
フォントサイズ 200 まで動いていて、それより大きいと CPU が 100% 状態になってしまったのでした。
文字のもとデータを kbanner.rb で作成して、その後 ppm へ変換するスクリプトがあり ppmtojpeg などで変換しています。 鏡文字で寝転がっている(90 度回転)とか自作の kbanner.rb でしていたりします。 もともとの VFlib2 でもサポートしている機能を Ruby で書いていたりするところがなんともなんですが。
kbanner.rb は、こんな感じに漢字のバナー(花文字)を出力するコマンドです。
$ kbanner.rb -32 -f uzura 'うずら'
* ** **
*** ** ** **
*** ** ** ** ***
*** ** ** ** ****
** ** * ** *****
*** ** ****
*** ******************** ***
* ******************** *
******** ** **
************ ** **
** **** ** **
*** ** ** **
*** ******* **
** ******** **
*** **** ** **
*** *** * ** ********
*** *** *** *************
** *** *** ***** ***
** **** ***** ** ***
*** ********* **
*** ** *** **
**** *** **
**** ** **
**** ** ***
** ** ***
** *
Unix には banner コマンドというものがあってターミナルやプリンタなどで大きく文字を表示するために使われていました。
印刷字に一枚目の紙にログイン名を出力したりしていたものです。
現在はあまり利用価値がないかもしれないのですが、私の場合は文字でロゴを作るときに使っていたりします。 新しい TrueType フォントをみつけたときの確認とか。
文字ロゴを作るだけなら GD ライブラリのほうがよさそうですね。 Ruby の場合 GD 拡張ライブラリがいくつかでています。
食欲あるなぁ。 というか、いま昼ですが朝早く起きてなにも食べてなければ、お腹減りますよね。 さて、どうしたものか。 テレビとかみていると美味しそうなものがでてきて刺激が強いので困った感じ。 食べにいくには時間が早いしなぁ。 まだまだ混雑していそうだし。 むぅ
てくてく歩いて昼食というか夕食。 そらがちょっときれいになったり曇ったり。 デジカメでたくさん写真を撮ったり。 本も買ってきたり。 Rubyクックブック ―エキスパートのための応用レシピ集 なんですが、原書より分量がすくないそうですね。 でもおもしろそう。
320x320 の文字サイズまで拡張。 文字の鏡文字とか回転を VFlib2 を使うのではなくて Ruby で実施していたりするんですが、ぜんぜん重くないようなのでサイズアップしてしまいました。 VFlib2 側でできることを Ruby で書いているような気がするんですが...
マニュアルを読んでみたら VFlib2 レベルでは無理そうです。 できたのは VFlib3 だったかな?
バナー目的だけでは 320x320 は不要なんですが、でっかい文字を使いたいときがあるので。
わぉ、hotline に Ruby の項目で。 感激!
あれこれ系は、ネットワークの基本的なスクリプトなども入れたいと思いつつ、Ruby on Rails も自分のために試してみたいし。 coLinux の環境整備がちゃんとできたら開始しようと思っているのですが、Emacs あたりで止まっていたり。 coLinux 上での Ruby 1.9 の確認はかなり助かっています。
自分のための道具のページも別に作っておかないと。 作業用の道具って大切ですよね。 Ruby に Emacs に Z shell に Vine Linux に coLinux に TeraTerm に FileZilla に Sleipnir に weirdx に iTunes かも。
読みたい本、最近買いはじめたのですが未消化になりそうな予感。 私ってばコンピュータを触りはじめると止まらないので、なかなか。 読むことの多くがコンピュータの上だったりするのでした。 買った本の内容について、オンラインで読めるような仕組みとかあるといいなぁ。 コピーガードとかある程度必要とは思いますが、なにかいい方法はないものかな。 Ruby 本も Ruby on Rails を含めて今年になってたくさん買っているのでした。 買うだけじゃだめだよねー
発表はちょっと前のですが PDF が閲覧できるようになるみたです。 PDF の閲覧なら PDA でもできるような?
重さもそこそこあるので、文庫本のような手軽さがあればいいのですが。 値段も文庫本 100 冊くらい買えそうだし。 バッテリーが切れるとなにもできなくなってしまいますよね。 文庫の手軽さを考えると微妙な感じ。 すごくきれいに音読してくれたりしたらいいんですけど。
携帯電話にどれだけ期待していいかわかりませんけど、携帯電話で小説を読んでいる人もそれなりにいるようです。 私は、文字だけの文庫のようなものなら、携帯の画面で十分かなと思ったりします。 ちょっと挿絵が入るくらいなら携帯電話でも対応できますね。
技術書を含めて、手軽に携帯できるような仕組みができるといいなと思います。 技術書市場はそんなに大きくないのか、あまり「携帯端末で」という話は聞かないです。 個人的な希望は、携帯電話に A5 サイズのフイルムディスプレイを装着してとかあるといいなぁ。 もうそろそろできそうな気がするんですが、なかなかでてこないですね。
どうもこれがあたりっぽい。
スタックサイズを倍にしたら回避しました。
扱うファイル量で core するようなのですが、core する場合はスタックサイズを増やすことで回避できるようです。
私がテストした範囲で Ruby のトップディレクトリの「*.c」で core したときにスタックサイズは 8192 でした。
これを倍にすると回避しました。
扱うファイルを「*.c, *.h, */*.c」とすると三倍の 24576 で OK でした。
ということでおしらせメール。 [ruby-dev:30794] Re: 1.9 coredump です。
/.jp ネタ。 かっこいいですね。 デザインがすばらしいな。
アンケートで希望しておいたのですが、「星の数」に種別を導入したいです。 静かな曲、熱い曲、ぐっとくる曲、それぞれ星の数が「五」でも分けて聴きたいことがあります。 色でもいいんですが、なにか分ける方法を導入してくれないかな。 青系が静かな曲で、赤系が熱い曲とか。
ランダム再生が多いのですが、まだ再生回数が 0 のものがそこそこあったり。 買ったばかりの CD は、それだけ再生することもあるんですが、古い CD を入れてすぐランダム再生してしまうこともあって。
ほのぼの系と熱くなれる曲を増やしたいです。 いい CD ないかなぁ。
無重力状態のときの「ひらひら感」も考慮して作られているそうです。 ほえー
すごいですね。
うーん
独自開発したツールのなかにオープンソースな 軽量プログラミング言語 - Wikipedia LL (Lightweight Language) を使っているものも含まれているのかな?
ちょっとした自動実行系やソースコードの確認等にかなり LL が使われそうな気がするんですが、気がするだけ?
Twitter 系って共同開発やプロジェクト系にも応用できますよね。 仕事系は、あんまりやりすぎるとなんですが。 うまく回るとおもしろいかも。
小さなチーム(三人から五人くらい)での作業がいいなと思うのですが、いつも気心がしれたメンバーで動けるような形で仕事をこなす感じ。 このときにもこういうツールよさそうですよね。 うまく回るチームが構築できればですけど。
mixi ネタなんですが、自分だったら「空を飛ぶ」かな。 たぶんロックなら瞬間移動なんでしょうけど、ある程度の高度で空を自由に飛んでみたいです。 下手に音速を越えちゃうと衝撃波が発生して危ないみたいですけど。
超人ロック、新刊とか復刊とかいろいろでているのですが、どれを読んでいてどれを読んでいないのか不明で買えていません。 好きなんですけど、どうしたものか。 私の場合しばらくすれば二度目に読んだとしても十分楽しめるはずなので、そのうち買おうかなと。
デジカメのズームで空や雲を撮っていたら、「白い点」が写りました。 どうも昼間の星らしいです。 これ四月の下旬のことなのです。 それ以来、空をついついズームで撮ってしまっています。 写ったのは二日だけなんですけど。 また偶然写らないかな。 肉眼ではみえないのでした。
今日は地平線近くもきれいな空。 雨の後、風もそこそこあるし、とてもいい感じです。 夏用のワイシャツは風通しがよくて気持よかったです。
こういう空をみていると、ベランダとかでぼーっと一日空を見上げることができたらいいなぁとか思ったりします。 私の部屋からは空がほとんどみえないので、引っ越すしかないのですが。 いいなぁ。 青い空。
昨日 Rubyクックブック ―エキスパートのための応用レシピ集 を買ったときに残金がすくないなと思っていたんですが、すっかり忘れて食事へ。 千円札が二枚あったので助かったのですが、これでお札がなくなりました。 鯛のお刺身定食なんて食べちゃったから。 帰り道、「明日の朝? 昼? の食事のときに気をつけないと」と考えたり。 また忘れてしまいそう...
体が重くてとってもだるい状態。 どこか変だなぁ。
ちょいびっくり体が変です。 室温的にはそんなに低くないかも? 腎臓とか肝臓とかちゃんとみてもらったほうがいいかも。 相談はしたことあるんですけどね。
クラッカーって書けばいいのに。 もうメディアはだめだめ?
高層階って窓開けられないんですよね? 開いたらすごいかも。 風が強いので夏はよさそうな気がするんですが、冬は寒そう。 あと、エレベータに乗らないといけないので大変そう。 人数が多くなるしエレベータ苦手な私には無理かなぁ。 お金ないですけどね。 ベランダとかあるのかわかりませんが、見晴らしはよさそうなので、空ながめていたいな。
やじうま watch でも紹介されていたあれですね。 すっごくいい感じなんですよ。
中心気圧が 935 だそうです。 すごい
男性の平均寿命なんですが、社会の歪みとか関係ないかな?
ドライブレコーダーのような、確立した技術は義務化してもいいと思うのです。 事故を起こしたほうよりも被害者側が圧倒的に不利な立場になってしまう現状を、なんとかしてほしいです。
技術系トレーニングで聴覚で困っている方のサポートを社内で求めていたりします。 「発言を文字にする」というのがサポートする側の対応です。 昨年からあったりするのですが、私も参加したいと思いつつ、参加できないでいます。 手書きは私には無理なんですが、キーボード入力での場合 Emacs と Egg/Wnn にとても依存しているために普通の PC などでは文字入力遅いのです。 オンラインゲームでもそうなんですが、普通の状態ではキーボード入力が遅くて困った感じ。 Emacs にキー操作をそのまま使える Win 系漢字入力とエディタ系のアプリケーションがもっとあればなぁ。 いまなら coLinux 上で Emacs を動かせば対応できるかもしれないなと思ったりするんですが。
ギターほしいな。 ショートスケールは久しぶりに弾くにはいいかも。
たかーい、けどかっこいー
ああ、セグウェイが必要な「お庭」がほしいー
PHP の総力特集だそうです。
まだまだ高いですね。
人ですよね。 その人とうまくやっていけるかどうか。
わかりやすいかな?
かずひこさんすごいですね。
がんばってくださーい
(^-^)/
なかなか流れないうちに期日がきそう。 途中で参加する私のフォローをする人が必要になるわけで、お手伝いを必要とする側が依頼するときにはそれなりの覚悟が必要なんですが、大丈夫かな? とりあえず私は状況把握をしたいのですが、なかなか難しいです。 どうしようかな。 相手側が要求想定していたタイプとは違うが現われて、放置状態かなぁ? システムの「待ち」部分を早く明示して手を打ちたいのですが。
着物素敵ですよね。 職人さんの技ってすごいです。
うちの会社も社内 Blog できました。 私はこの前自分を「五流エンジニア」なんて書いたんですが、某氏が一流エンジニアという話題を書いていたので、書いちゃったり。 ま、私の年齢と給与の額をみれば、五流くらいかもとかあとで気が付いてちょっと微妙。
私は一部にとんがっていますが、会社が求めるようななんでもできるエンジニアではありません。 とんがっている一部については、私は惜しむことなく情報を公開しながら作業しているつもりなのですが、なかなか。 いまの上司に拾われて、ようやくなんとかという感じ。 うちの部署は PukiWiki を使っているし、メールもメーリングリストを活用しているし、いいです。 もっと活用できる余地はあるとは思いますが、きつきつなのもめんどうですしね。
朝の気温のためか、寝覚めが微妙。 体が重いのは肝臓とか腎臓かなと気になったり。 近く人間ドックなので、確認してもらえるとは思うけど、昨年と変わらない気もするなぁ。 そういえば、オデコのあたりがヒヤリとする感覚が昨日からときどき起きたり。 神経系統が誤送信? 脳硬塞とかだったりして?
ThinkIT が PHP に力を入れているみたいですが、今後ほかのものもあれこれしてほしいところです。
私の会社でも入隊している人がたくさんいるみたい。 みなさん若いなぁ。
HP-UX の arg0 系パッチ。 1.9 系は文字列の長さがマクロ扱いで代入できないためのもの。
--- ruby.c.org 2007-05-18 20:26:09 +0900
+++ ruby.c 2007-05-22 16:17:32 +0900
@@ -1092,18 +1092,18 @@
s = RSTRING_PTR(val);
i = RSTRING_LEN(val);
#if defined(PSTAT_SETCMD)
- if (i >= PST_CLEN) {
- union pstun j;
- j.pst_command = s;
- i = PST_CLEN;
- RSTRING_LEN(val) = i;
- *(s + i) = '\0';
- pstat(PSTAT_SETCMD, j, PST_CLEN, 0, 0);
+ if (i > PST_CLEN) {
+ union pstun un;
+ char buf[PST_CLEN + 1]; /* PST_CLEN is 64 (HP-UX 11.23) */
+ strncpy(buf, s, PST_CLEN);
+ buf[PST_CLEN] = '\0';
+ un.pst_command = buf;
+ pstat(PSTAT_SETCMD, un, PST_CLEN, 0, 0);
}
else {
- union pstun j;
- j.pst_command = s;
- pstat(PSTAT_SETCMD, j, i, 0, 0);
+ union pstun un;
+ un.pst_command = s;
+ pstat(PSTAT_SETCMD, un, i, 0, 0);
}
rb_progname = rb_tainted_str_new(s, i);
#elif defined(HAVE_SETPROCTITLE)
「j」という名前が気になっていたのでついでに変更です。
パッチ採用ありがとうございます。
HP-UX 11.23 ia64 は miniruby でこける...
私は TeX するなら Vine Linux ですが、TeX 目的だけならこういうのもありですね。 私の場合 make コマンドも使いたいし Emacs も必要だしあれこれ考えると Vine Linux がいいなぁ。
core 関連。 gdb 中で実行するだけスタックとレースがとれるのは pthread しているから? この手前で SIG32 なんどかプロセスは止まるので continue してます。
Program received signal SIGSEGV, Segmentation fault. 0x08059dda in rb_yield_values (n=2) at eval.c:940 940 val = rb_ary_new2(n); (gdb) bt #0 0x08059dda in rb_yield_values (n=2) at eval.c:940 #1 0x080c47f3 in sort_1 (ap=0x8180704, bp=0x8180704, data=0xbf0001d0) at array.c:1496 #2 0x080b113e in ruby_qsort (base=0x81806f0, nel=11, size=4, cmp=0x80c47d8 <sort_1>, d=0xbf0001d0) at util.c:516 #3 0x080c4970 in sort_i (ary=1102095300) at array.c:1534 #4 0x0805a416 in rb_ensure (b_proc=0x80c4932 <sort_i>, data1=1102095300, e_proc=0x80c4977 <sort_unlock>, data2=1102095300) at eval.c:1191 #5 0x080c49f3 in rb_ary_sort_bang (ary=1102095300) at array.c:1569 #6 0x080c4a16 in rb_ary_sort (ary=1102095300) at array.c:1594 #7 0x080bd53b in call_cfunc (func=0x80c49fd <rb_ary_sort>, recv=1102095320, len=0, argc=0, argv=0x4) at call_cfunc.ci:36 #8 0x080bb5f6 in th_eval (th=0x81510f8, initial=0) at insns.def:1279 #9 0x080bce8c in th_eval_body (th=0x81510f8) at vm.c:1622 #10 0x080bd375 in rb_thread_eval (th=0x81510f8, iseqval=1076837900) at vm.c:1828 #11 0x080be735 in yarvcore_eval_iseq (iseq=1076837900) at yarvcore.c:99 #12 0x080be7d2 in yarvcore_eval_parsed (node=0x402f3e48, file=1076837940) at yarvcore.c:131 #13 0x0805908f in ruby_exec_internal () at eval.c:210 #14 0x080590bf in ruby_exec () at eval.c:223 #15 0x080590f5 in ruby_run () at eval.c:242 #16 0x08056af5 in main () at main.c:47 #17 0x400d9c1f in __libc_start_main () from /lib/i686/libc.so.6 (gdb)
Program received signal SIGSEGV, Segmentation fault. 0x080a8883 in tr_setup_table (str=1080892020, table=0xbf800150 "\200", init=1) at string.c:3144 3144 tr.p = RSTRING_PTR(str); tr.pend = tr.p + RSTRING_LEN(str); (gdb) bt #0 0x080a8883 in tr_setup_table (str=1080892020, table=0xbf800150 "\200", init=1) at string.c:3144 #1 0x080a8da3 in rb_str_count (argc=1, argv=0x40309024, str=1080892040) at string.c:3384 #2 0x080bd53b in call_cfunc (func=0x80a8d3e <rb_str_count>, recv=1080892040, len=1080892020, argc=1, argv=0x7) at call_cfunc.ci:36 #3 0x080bb5f6 in th_eval (th=0x81510f8, initial=0) at insns.def:1279 #4 0x080bce8c in th_eval_body (th=0x81510f8) at vm.c:1622 #5 0x080bd375 in rb_thread_eval (th=0x81510f8, iseqval=1076863380) at vm.c:1828 #6 0x080be735 in yarvcore_eval_iseq (iseq=1076863380) at yarvcore.c:99 #7 0x080be7d2 in yarvcore_eval_parsed (node=0x402fa1d0, file=1076863420) at yarvcore.c:131 #8 0x0805908f in ruby_exec_internal () at eval.c:210 #9 0x080590bf in ruby_exec () at eval.c:223 #10 0x080590f5 in ruby_run () at eval.c:242 #11 0x08056af5 in main () at main.c:47 #12 0x400d9c1f in __libc_start_main () from /lib/i686/libc.so.6 (gdb)試したスクリプト。
require 'nkf'
while gets("\n")
l = $_
break if l.count("\n") > 1
l = NKF.nkf('-Se', l)
if l =~ /SIGV/
end
end
実行ディレクトリを ruby-1.9 のトップディレクトリにして、gdb はこんな感じで
run foo.rb *.c *.hglibc と ptherad が違えば変化しそうなので、coLinux 環境用意しようかな。 さて、どこがいいかな...
18. デバッガに SIG32 が出ています。 どうやって解決したらいいのですか? あとで確認しないと。
miniruby で core
cc -O -L. -Wl,-E main.o dmydln.o libruby-static.a -lpthread -ldld -ldl -lm -o miniruby -- stack frame ------------ 0000 (401da680): 00000000 0001 (401da684): 00000004 0002 (401da688): 00000001 0003 (401da68c): 4019c508 0004 (401da690): 00000004 0005 (401da694): 00000004 0006 (401da698): 00000004 0007 (401da69c): 00000004 0008 (401da6a0): 00000004 0009 (401da6a4): 00000004 0010 (401da6a8): 00000004 0011 (401da6ac): 00000004 0012 (401da6b0): 00000004 0013 (401da6b4): 00000004 0014 (401da6b8): 00000004 0015 (401da6bc): 00000004 0016 (401da6c0): 00000004 0017 (401da6c4): 00000004 0018 (401da6c8): 00000004 0019 (401da6cc): 00000004 0020 (401da6d0): 00000004 0021 (401da6d4): 00000004 0022 (401da6d8): 00000001 <- lfp <- dfp 0023 (401da6dc): 00000004 <- bp -- control frame ---------- c:0003 p:-328340 s:0024 b:0023 l:000022 d:000022 TOP /t/src/ruby19-070521/lib/fileutils.rb:1548 c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ --------------------------- /t/src/ruby19-070521/lib/fileutils.rb:1548: -- stack frame ------------ 0000 (401da680): 00000000 0001 (401da684): 00000004 0002 (401da688): 00000001 0003 (401da68c): 4019c508 0004 (401da690): 00000004 0005 (401da694): 00000004 0006 (401da698): 00000004 0007 (401da69c): 00000004 0008 (401da6a0): 00000004 0009 (401da6a4): 00000004 0010 (401da6a8): 00000004 0011 (401da6ac): 00000004 0012 (401da6b0): 00000004 0013 (401da6b4): 00000004 0014 (401da6b8): 00000004 0015 (401da6bc): 00000004 0016 (401da6c0): 00000004 0017 (401da6c4): 00000004 0018 (401da6c8): 00000004 0019 (401da6cc): 00000004 0020 (401da6d0): 00000004 0021 (401da6d4): 00000004 0022 (401da6d8): 00000001 <- lfp <- dfp 0023 (401da6dc): 00000004 <- bp -- control frame ---------- c:0003 p:-328340 s:0024 b:0023 l:000022 d:000022 TOP /t/src/ruby19-070521/lib/fileutils.rb:1548 c:0002 p:---- s:0003 b:0003 l:000002 d:000002 FINISH :inherited c:0001 p:---- s:0001 b:-001 l:000000 d:000000 ------ --------------------------- [BUG] unknown insn: 252706560 ruby 1.9.0 (2007-05-21) [ia64-hpux11.23] gmake: *** [.rbconfig.time] IOT trap (core dumped)
あらま、新しいのがでるのか。 アンテナも便利そう(前ので自作しちゃいました)。
IBM に Sun にそれぞれ特徴がありますね。
みてみたいな。 GyaO って一気にみれないことが多くてあんまり使っていなかったり。 みにいかないから、どんなものが配信されているかしらなかったりするし。 でも、やっぱりみる時間ってあんまりないかな。 小さな小さな小窓で常に手前に表示されるように設定できればみれるのですが、ほとんど別のことをしながらという感じなので。
うちの会社で、「ディスプレイが遠すぎて悪い」みたいなことをいっている人がいて、どうしてかよくわからなかったり。 目に悪い? 姿勢が悪い? 私はできるだけ遠くのほうがいいと思うけれど、発光体のディスプレイを明るくして目の近くに置いておくなんて大変。 ま、太陽の下で活動することを考えると大丈夫という考えかたもあるんですけど、「焼き付き」に近いことが目に悪そうですよね。 同じところを注視しそうだし。
エピソードがいいですね。
瓶(ビン)ジュースの自販機の栓抜きのところに!
ここ三日かな? 二日かな? いつもより寝ている時間が長くなったのですが、寝起きが悪いです。 複雑な気持。 短時間で目が覚めるよりいいとは思うのですが。 寝ていると水分補給できないから?
準備していて、会社メールの確認とかあれこれしていたら、体調が悪くなってきてしまったのでした。 あーあ
せっかく朝風呂入って準備してたのに、休むことに...
昼近くになって、寝ることにしたんですが夜まで寝てしまうのでした。 あーあ
昨日はかなり早めに寝て、朝まで寝てたのになぁ。 体調悪いということか。
食べるものもないのでプチ断食かも。 ぜんぜん食べないわけではないのですが、総カロリー 1000kcal いかないかも。 買いものいかないと、ときたまこういう感じになってしまったり。 書いた時点は朝に食べた「日清の温そうめん」(125kcal)と 500ml のアクエリアス(95kcal)のみ。 追加で「明星 飲茶三昧 キムチ豆乳 春雨」(100kcal)。 「SOYJOY」(136kcal)も食べるかも。
本日の状態。 使っている rg.rb は「 rg コマンド ruby grep 」です。 落ちている場所ですが、昨日の小さなスクリプトとは違います。 glibc と pthread 関係かな。
$ gdb ruby-1.9.0
GNU gdb 5.2.1
(gdb) run ~/bin/rg.rb SIGV *.c
Starting program: /t/src/ruby/1.9/head/ruby-1.9.0 ~/bin/rg.rb SIGV *.c
Program received signal SIG32, Real-time event 32.
0x4002a1d4 in pthread_getconcurrency () from /lib/i686/libpthread.so.0
(gdb) c
Continuing.
signal.c:#ifdef SIGVTALRM
signal.c: {"VTALRM", SIGVTALRM},
signal.c: sigdelset(&mask, SIGVTALRM);
signal.c: if (sig == SIGVTALRM) {
signal.c: rb_raise(rb_eArgError, "SIGVTALRM reserved for Thread; can't set handler");
Program received signal SIGSEGV, Segmentation fault.
0x40134a6f in mallopt () from /lib/i686/libc.so.6
(gdb) bt
#0 0x40134a6f in mallopt () from /lib/i686/libc.so.6
#1 0x40133d23 in malloc () from /lib/i686/libc.so.6
#2 0x0805eaf9 in ruby_xmalloc (size=1075819392) at gc.c:238
#3 0x0805eb8b in ruby_xmalloc2 (n=1075819392, size=1) at gc.c:258
#4 0x080a47ae in rb_str_resize (str=1102128800, len=34) at string.c:718
#5 0x080a822b in rb_str_replace (str=1102128800, str2=1102128820) at string.c:2329
#6 0x080bdb8b in call_cfunc (func=0x80a7fff <rb_str_replace>, recv=1102128800, len=1075819392, argc=1, argv=0x401fb390) at call_cfunc.ci:36
#7 0x080b8935 in th_call0 (th=0x8166678, klass=1076533760, recv=1102128800, id=3008, oid=0, argc=1, argv=0xbf000240, body=0x402a98d4, nosuper=0) at vm.c:543
#8 0x0805aaa5 in rb_call (klass=1076533760, recv=1102128800, mid=3008, argc=1, argv=0xbf000240, scope=3) at eval.c:1414
#9 0x0805ad16 in rb_funcall (recv=1102128800, mid=3008, n=1) at ruby.h:772
#10 0x080705ca in init_copy (dest=1102128800, obj=1102128820) at object.c:149
#11 0x080706e0 in rb_obj_dup (obj=1102128820) at object.c:220
#12 0x080bdb8b in call_cfunc (func=0x8070680 <rb_obj_dup>, recv=1102128820, len=1075819392, argc=0, argv=0x401fb390) at call_cfunc.ci:36
#13 0x080bbc46 in th_eval (th=0x8166678, initial=0) at insns.def:1279
#14 0x080bd4dc in th_eval_body (th=0x8166678) at vm.c:1622
#15 0x080bd9c5 in rb_thread_eval (th=0x8166678, iseqval=1076838480) at vm.c:1828
#16 0x080bed85 in yarvcore_eval_iseq (iseq=1076838480) at yarvcore.c:99
#17 0x080bee22 in yarvcore_eval_parsed (node=0x402f408c, file=1076838520) at yarvcore.c:131
#18 0x0805929b in ruby_exec_internal () at eval.c:210
#19 0x080592cb in ruby_exec () at eval.c:223
#20 0x08059301 in ruby_run () at eval.c:242
#21 0x08056d01 in main () at main.c:47
#22 0x400d9c1f in __libc_start_main () from /lib/i686/libc.so.6
(gdb)
/.jp ネタ。 暗記系は、この手のゲーム機による補助っていいですよね。 私は暗記が大っ嫌いなので、学生時代にこういうのあったらなぁ。 ちゃんと暗記がうまくいけば、それを認めるし、うまくいかないときはフォローが入るし、こういう個別にフォローがいいタイミングで入るのってポイント高いですよね。
試験とかではなくて、いろいろな場面で覚えたほうがいいものについて、こういうソフトが提供されるといいかも。
暗記系は、ゲームと同じようにリズム、それに結果に対して正当な評価がされることがポイントだそうです。 脳もこういうのがあって、うまく動くそうなので。 私みたいに「嫌々暗記」とか効果がないわけですよね(あー
J-WAVE よく聞くのですが、東野さんの声ってとても素敵です。
そういえば、左足先も冷たい感覚が一か月くらい前にあったような。 神経系かな? 温度感覚のあたりの脳硬塞かも。
早起き。 昨日の昼にかなり寝たのに早寝。 最近眠れるのはなぜ? 体調悪いからかな。 朝からお仕事。 おまけに空腹。
リーダーが大切なのはよくわかるけど、優秀なリーダーだけでも話にならないような。
意識が高まっていない人が担当者だったりする場合はどうすればいいのかな?
いいですね。
室温もけっこう上がってきたり。 あらま
最近は、規模が大きいので作る人は大変だと思います。 ネットワークでだれもが使うレベルのサーバなどは、アクセスが集中したときのシステム側の動きをアプリケーションを作る人がすこしはしっていたほうがいいと思います。 本来はシステム側の人間がちゃんとできるのが一番なのですが。
ハッキングとか書いてあるんですが、うーむ
たしかにロボットかっこいいな。
やじうま watch ネタ。 従量課金にしたらこのくらいという数字はみえるようにしたほうがいいかも。
新海さんの作品、どれを観ていないのかはっきりしないけど、ほしいな。
9V 電池かぁ。
車重が増えちゃうけど、その分アシストされるのかな? 瞬発力はどうなんでしょ? あまり瞬発力あると危ないか。
都心は伝染病などがあると、どうしようもないでしょうね。 流通が止まってしまっては、これだけの人がやっていけないし。
いまいちな感じ。 最近右端でのスクロールが調子悪いです。 私の指先と相性が悪いのかな?
テレビでも家庭内の喫煙の話がでていました。 換気扇の側で吸っても室内は「汚染される」(こういう表現でした)そうです。
いいなぁ。 たくさん笑えるし、かっこいいし。 ジブリ作品だと「ラピュタ」が一番で次がこれかな。
ruby-trunk がアップデートする度に確認していたりしますが、ほぼ同じパターン。 このページのどれかのパターンなのでした。 実験準備が進んでいないので、新しい glibc とか試せていませんです。 pthread 関係のスタックの使い方とかかな?
対応していただきました。 ありがとうございます。
久しぶりに ChangeLog に。
うれしいなー
(^-^)/
/.jp ネタ。 死んだスキルということで C がありました。 まともに C が書けるということはそれなりにいろいろできるはずですが、さてさて
C は、文字列処理とかめんどうですよね。 ときたま必要になって書こうとすると、文字列処理部分はなんとかしたいとよく思います。 自分用の便利なライブラリなどを作ろうかと考えたこともあったのですが...
決定権を持っている人が、「できることがあるのにしない」という「先送り」や「聞いたふり」の状態が、すべてのはじまり。 そういうことって多くありませんか? 自分の持っている権限や決定権を有効に使えない人は、その決定権を持っている必要があるでしょうか? 給与額は、ほとんど決定権の大きさだといえると思います。 そういうことがわかっている人に、決定権、権限を与えてほしいものです。
人って難しいですよね。 同じようなことは前にも書いたような気がします。 小説を読んだりテレビドラマをみたりしているときは背景もみえてくるのですが、リアルでは相手の考えていることもわからないですし、発言も一部しか伝わってきません。 自分のことをどううけとっているかというのは、まったくわかりません。 予想もできないようなうけとりかたをされていたりします。
大昔の上司がそうでした。 いろいろ勝手に解釈されて困った感じでした。 考えすぎだと思うのですが、どうしてそんなになってしまうのか。 世の中難しいです。
これだと三か月働いて、残りを勉強したり休養したりという生活ができる金額ですね。 三か月くらいなら、がんばれるかな(おい
テレビでやってたのでみました。 設定年が 2035 年。 28 年後ですね。 そのころ、あんな感じの世界になるかなぁ? 技術革新のすばらしい成果が有効利用されれば、可能性あるかも? いやー、私的にはたぶん無理と思うのですが、でもいろいろできたらいいな。
昨日もデジカメで空を撮っていたら写りました。 肉眼ではみえないので、狙って撮るわけではなくて、空を撮していると偶然に。 倍率が高くできれば、太陽に近いので丸い円ではなくて他の形が確認できるのかな?
忙しいためか調子悪そうです。 個人にこんなに負担をかけなくてもいいのにと思ったり。 やっぱり分散して動けるようにして、人が育つような仕組みをつくらないと、休めなくなっちゃう...
私の場合一人で特殊なことをやっているんですが、私がいなくてもなんとかなるだろうから、休める感じかも。 いいんだか悪いんだか。 チームで動くときは、チームのみなさんがすばらしいし。
Matz 日記ネタ。 私のその? 大昔の上司は、私が進言した工数 x 3 してました。 こういう部分はよく理解していたというか、この業界ではこういう係数ありますね。 「なにかを作る」のには、集中できる状態になってはじめて可能だったりします。 そういう時間をどうやったら作れるか? という難問もあったりします。 たいていの場合、工数見積もりをすると理想的な数字になってしまうので、それを 3 倍くらいが適当だったりします。 すごく集中した時間を適時持てるということは、とても難しいですから。
昨日はほとんど雲がない空でした。 今日はほとんど雲でした。 雲っていろいろ表情があっていいですね。 合間にすごいきれいな空がみえたり。 上空は風が強そうです。
元気だなぁ
うーん、どちらにしてもリスク高いな
国内旅行いいなぁ。 のんびりどこかで過ごしてみたいです。 財布のヒモが堅いのは、このご時世仕方がないのでは?
膨大な時間とお金があれば、自分で試せるんですけどね。 どちらもないので、ある程度参考にしちゃったり。
終わりそう。 積み残しなかったかなー
ディスクトップで無線 LAN とかいいかも。
これいいかも。 私ってば薬を飲むのを忘れるんですよ。 毎日飲まないといけないらしいですけど...
いいなぁ「天才」(え
すごい!
こういう紹介記事も大切ですね。 出会いがなければ、しらなかったで終わってしまいますし。
写真がなーい
いいらしいですね。 でも入れ替えるのには勇気が必要だなぁ。 いま使っているものが、重くて嫌なんですけど、相性もあるし(えー
一昨日早寝して、早起き。 仕事のデータがとれていて、解析。 秒間のトラフィックを LAN I/F 単位で確認するスクリプトを書いたり。 とかしていると午前が終わってしまって、あっというまに 6 時間。 休憩なしでそのまま午後へ。 15 時にはヘトヘトだったり。 あーあ
Fiber 導入。 軽い thread らしいです。 まだお試しコードは書いてみていないのですが、IO などのない thread に使えそうです。 thread 数が多くてもいいそうなので、分散できるものを書いてみようかなと。 8 Queen の thread 版は 8 thread だけしか使わないのですが、試すのにいいかな。 全部のパターンで thread を作るような実装にはしていないのですが、試しに書いてみてもいいかも。
温暖化とか、代替エネルギーとか、こういう話題は気にしている人には伝わるんですが、気にしていない人には伝わらないですよね。 ま、どんな話題も似たようなものですが。
会社関係で、決定権を持っている人がこういう話に熱心かどうか? は、株主が熱心かどうかということでも起きないと、だめかなぁ? 50 年後なんて、私は生きていませんけど、でも気になります。
いい方向に進むことはできないのかな...
Kita さんの日記を読んで。 社内ツールかぁ。 私もけっこうあるんですが、これはここでは書けないし。 LDAP でメールアドレスを引っ張るのとか、LDAP 内の構造違いますしね。 仕事でスクリプトを書いて、データをいろいろな視点から確認したりとか便利に使っています。 でも、汎用的なものは書いてないような。 いい課題がないかな。
CR をアマゾンで買って、coLinux に入れたんですが Wnn8 は結局使わないままなのでした。 anthy よくわかっていませんが、coLinux の使い方からするとこれで十分そう。 Emacs Egg で Wnn8 は、実際のところどうなんでしょう? ちょっと試して「あれれ?」だったので、それから試していないのです。 もうちょっと試してみたほうがいいかなぁ。
既存の Vine Linux 3.2 を上げたいと思いつつ、なかなか手がつかないのでした。 さてさて、どうしたものか。 会社のシステムも古いのあるので更新しないとなぁ。
自殺、最近もニュースに何件もでています。 それぞれ事情があるとは思いますが、悲しいことです。 なんとかできればいいのに。
「蚊やり豚」ってわかります? 蚊とり線香を入れるブタさんの焼き物なんですね。
以前から
$_
依存の書きかたとか気になっていたので修正してしまうのでした。
私が普段から使っている grep コマンドです。
シェルで
alias grep=rg.rbして使っています。 漢字を検索するときだけ
-k
オプションを付けることを意識する必要がありますが、あとはほとんど grep です。
ちょっとだけ便利機能がついていたり。
便利な機能の一つが Ruby の正規表現がそのまま使えることです
(^-^)/
rev 12411 で現象が起きなくなったことを確認。 スタックサイズをもとに戻しても大丈夫でした。 よかったよかった。 いろいろ対応いただいているみなさまありがとうございます。
なんとか書いてみるものの、うまい使いかたが想像できないのでした。 さて、いい応用あるかな。
IT エンジニアは「人類がいままで経験したことがない職業」
zsh ユーザなんですが、たくさんの機能は使っていないかも。 ということで、見直ししようかな。
JRuby を試すのに入れてみたり。
JRuby 入れて JAVA_HOME を設定して bin/jruby で動かすと、そこそこ動いたのでした。 へー
JRuby は、普段は使わないので coLinux で試したんですが、手軽ですね。 Java であれこれする人は便利かも?
受動喫煙で死亡率が 30% もアップするそうです。 分煙は難しいです。 ニオイがするだけでも危険だそうです。 なんとかなればいいのに...
検索するといろいろ楽しいページに。 よくわかっていないので、勉強しないと。 そうそう、以前にも
で、楽しい検索ができました。
- キーワード: Ruby 高橋メソッド
鼻の下の「点」は不要かもー
心配ですね。
とりあえず、平常時というものを確認しておくといいですよ。
でも、個人が犠牲になること多くありません? せっかくの学習する機会が失われますよね。
できます?
「タッチタイピング」って書いたほうがよさそうですね。 タッチタイピング - Wikipedia
私の場合は、Emacs 上でかなりのことをするので Linux が必要なのですが、Window Manager レベルのことは WinXP です。 音楽を聞くのも iTunes だし。
ツールを使うことで、品質が向上するのはいいですね。 ツールに振り回されるのは困りますけど。
すごいなぁ。 値段が。 PC を使っているときは、スピーカーの間に入りやすいので、音場は作りやすと思うのです。 そこそこの値段でいいものできないかなぁ。
一台導入して、ネットワークも Gbit にすると幸せかなぁ。 設置場所関係が難しいかも。
すごい!
寝起きは悪いですが、連続睡眠時間は長くなりました。 食欲ありすぎで困っています。 普通に一人前食べてしまいます。 よく眠れて食欲あるというのは健康な感じですが、私の場合は普通に一人前食べると確実に体重が増えるのでした。 あーこんな悩みがなくなるといいのにな。 思うだけではだめなんですけどね。
おもしろそうだけど、重さは 1.13 Kg だそうです。
自分の持っている権限を正しく使えない人っていますよね。 困った感じ。
以前は東京電力の雷雲情報を確認したりしたのですが、いまは使いたいときにアクセスが集中しすぎて使えません。 残念。 雨量だけなら アメッシュ でいいのですが、雷が近いと気になるので使えるようにしてほしいな。