トップ «前月 最新 翌月» 追記

はじめてのにき

ここの位置付け

2004|11|
2005|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|

ToDo:


2010-01-08

_ インフルエンザ

かかったらしい。 木曜にしんどくなって 木曜朝の時点で 38 度ちょい。 まぁこのくらいなら熱は慣れててなんてことないけど そうは言ってもしんどいので休む。 バファリン飲んでたけど昼頃とかもどんどんしんどくなっていって 夕方頃には 39 度近くに。

しゃーないので病院に行ったところ、 たぶんインフルエンザだろうと言われつつ検査の結果は陰性。 ただ発熱後24時間以内とかは見つからんもんらしいので それ結局検査の意味あるんかいな…という。 まぁたぶんインフルエンザなのでそう仮定して薬飲むかいということで タミフルとかそのへんをもらう。

夜くらいはまだ熱は増えて深夜の段階で 39.3 。 解熱剤飲んでて 39 度出てるとかやばいなーとか思った。

朝5時くらいには 38.6 とかでだいぶマシに。 そこから飯喰って薬飲んで寝て飯喰って薬飲んで今に至るわけだけど、 37.5 とかでもうすっかり元気。

医者にタミフル飲んでラクになったらインフルエンザだよーと 言われたのでもうほとんど間違いなくそうなんだと思う。 一応病院で検査しなおしてもらって確定させてもいいと思うんだけど、 しかしもう9割方状況証拠あるような状態で病院行って 他の人にうつしたら申し訳ないし まぁラクになっているのでこのまま寝ててもいいかなあ… 他の妙な病気の可能性を消せるってくらいしかメリットないし。

潜伏期間平均2日らしいし新幹線でうつされたんだろうなー。

(21:09)


2010-01-09

_ アンビグラム

http://d.hatena.ne.jp/KeisukeNakano/20100109/1231593647

すごいなー

  • うかんむりがトラ
  • その下 T はタイガース?
  • 田のところがトラ
  • その下の点々はトラでもとらでも読めるかんじかな
    • 点々の左っかわの下のハネは何?
  • ふりがなは上から読んでも下から読んでもとら

(17:06)

_ 汝の馬鹿を愛せよ

http://slashdot.jp/~taro-nishino/journal/497528

これは OSS とかそいうのでは重要な話なんだろうなぁ。 OSS やってたけどつらくなったと言う人は こっち系の話をすることがあるように思って、 そういうのはこの話的には失敗と言えるのかもしれないなぁ。 しかしまぁこういうコミュニケーションを 最初に試みる役目はあんまりしたくないよなぁ…

特に英語はありえん

(17:12)

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

_ reputation management online [そのような意味&#..]


2010-01-10

_ WebKit

だらだら書いてみたわけだけど、 同じようなことを GCC とか Emacs とか Xen とか Qemu とか valgrind とか なんでもいいけどまぁ他のプロジェクトであるといいなぁ。

(05:10)

_ stat

stat が遅いということがあって、 長い間こんな ls を使っていた。 要は 2回 ls をして、最初の ls で 500 エントリ以上あると判明したら 色つけたりをやめる。 stat が 500 回とか当時のマシンでは相当キツかったから。 LS は vanilla ls ね。

ls () {
 if [ `LS -B $@ >/dev/stdout >&/dev/null | wc -l ` -le 500 ] ; then
  LS -F --color -B $@
 else
  LS -B $@
 fi
}

今時こんなもん意味あるんだろうか… そもそも dirent の d_type 見てくれたりしてくれんの? ということで strace してみる。 すると見事に stat 呼んでない。 coreutils の ls.c も適当に読んだところ、 たぶん DT_UNKNOWN とかじゃなければ基本 stat 呼ばない気がする。 よってこんなハックもういらない。

どうでもいいけど ls.c のこの if 文は力作すぎる

 if (command_line_arg
     || format_needs_stat
     /* When coloring a directory (we may know the type from
        direct.d_type), we have to stat it in order to indicate
        sticky and/or other-writable attributes.  */
     || (type == directory && print_with_color)
     /* When dereferencing symlinks, the inode and type must come from
        stat, but readdir provides the inode and type of lstat.  */
     || ((print_inode || format_needs_type)
         && (type == symbolic_link || type == unknown)
         && (dereference == DEREF_ALWAYS
             || (command_line_arg && dereference != DEREF_NEVER)
             || color_symlink_as_referent || check_symlink_color))
     /* Command line dereferences are already taken care of by the above
        assertion that the inode number is not yet known.  */
     || (print_inode && inode == NOT_AN_INODE_NUMBER)
     || (format_needs_type
         && (type == unknown || command_line_arg
             /* --indicator-style=classify (aka -F)
                requires that we stat each regular file
                to see if it's executable.  */
             || (type == normal && (indicator_style == classify
                                    /* This is so that --color ends up
                                       highlighting files with these mode
                                       bits set even when options like -F are
                                       not specified.  Note we do a redundant
                                       stat in the very unlikely case where
                                       C_CAP is set but not the others. */
                                    || (print_with_color
                                        && (is_colored (C_EXEC)
                                            || is_colored (C_SETUID)
                                            || is_colored (C_SETGID)
                                            || is_colored (C_CAP)))
                                    )))))
   {

でまぁ NFS なんだけど、 NFS だと結構 DT_UNKNOWN がかえってくるみたいだ。 一見して一回 stat したら cache されて その情報で d_type 埋めてる、って感じかなぁ。 となると worst case で stat 呼びまくるのはさけがたい感じなのかなぁ…

一番うざいのは zsh & nfs でたまに補完がすごい遅いという話で、 zsh はどうも d_type とか気にせず stat 呼びまくってるっぽいんだよなぁ。 コードちょっと読んだけどイマイチよくわからず。 NFS で最悪状況でのパフォーマンスが良くならんとわかったのもあってやる気失せてきた

(22:38)

_

LS -B $@ >/dev/stdout >&/dev/null

ってなんだろう。なんで

LS -B $@ 2>/dev/null

じゃないんだろうか。 まぁ書いたの10年くらい前だろうし shell のシの字くらいもわかってなかったのかもしれず

(22:40)

_ 文字化け

charset セットしてくれてないサイトで WebKit は化けるんだけど、 まぁいいかげん detection ぽいの作ろうと。 どうやればいいのかよくわからんかったのだけど、 とりあえず以下のを Chrome key に読ませたら動いた。 とりあえず牧野先生のところとその他もろもろでそれなりに動くから良しとする。

var CHARSETS = ["Shift_JIS", "EUC-JP", "UTF-8", "ISO-2022-JP"];
var currentCharset = document.charset;
var bestText = '';
var bestScore = 20000;
var bestCharset = currentCharset;

for (var i = 0; CHARSETS[i]; i++) {
  var charset = CHARSETS[i];
  if (charset == currentCharset)
    continue;

  var http = new XMLHttpRequest();
  http.overrideMimeType("text/html; charset=" + charset);
  http.open("GET", location.href, false);
  http.send();

  var text = http.responseText;
  var last = text.length;
  if (last > 10000) last = 10000;
  var bakeCount = 0;
  for (var j = 0; j < last; j++) {
    if (text.charCodeAt(j) == 65533)
      bakeCount++;
  }
  console.log(charset + ": " + bakeCount);

  if (bakeCount == 0) {
    document.body.innerHTML = text;
    document.charset = charset;
    return;
  } else if (bestScore > bakeCount) {
    bestScore = bakeCount;
    bestText = text;
    bestCharset = charset;
  }
}
document.body.innerHTML = bestText;
document.charset = bestCharset;

(23:31)


2010-01-11

_ x86-34

最近 64bit とかになって hoge_t* が 8 バイトあるのが 耐えられないとか言ってよくわからないうわごとをよく言っている。 そういううわごとの一つとして最近よく言ってるのが x86-34 で。

まず ELF 。たぶん class は ELF32 でいい。 Machine は EM_X86_34 で。

kernel 。 CPU は 64bit モードで動かすけど kernel が mmap にかえすアドレスは 34bit 空間に。 vdso とかそのへんも 34bit 空間で。

コンパイラ… int* とか string* とかは 32bit で表現。 デリファレンスは全部 4*(%rax) とかで頑張る。 char* とかとにかく 4byte 以下のデータへのポインタと void* はしょうがないので 64bit で表現。 だから sizeof(char*) > sizeof(int*)

char* => int* の cast とかは基本無理で困る。 まぁデータの 3byte 目を int として読むみたいな、 つまり *(int*)(chptr+3) みたいなのは許すとして、 後は基本許さん方向で。

void* => int* の cast は 4byte アラインされてないと不定な動作!

jmp と call は x86-64 と同じでいいや。 ただ関数は 4byte 境界に。

リンカとローダはグローバルにある int* の解決とかはちょっといじらにゃいかん気がする。

デバッガはそれなりに。

要は 4GB のアドレス空間は足りないかもしれないけど 16GB あれば10年くらいは戦えそうじゃないかという。

うわごともいいところだなあ。

(03:41)

_ FPE

#include <stdio.h>
int main() {
    // ここでとある方法で e を定義すると FPE が出る
    printf("%d\n", e - e);
}

というような e があるんだなぁとふと見つけた

(03:46)


2010-01-13

_ ReRe: 人材獲得作戦

http://d.hatena.ne.jp/ku-ma-me/20100112/p1

s=*$<
x=y=0
y+=1until x=/S/=~s[y]
q=[[a=s,x,y]]
(a,x,y=q.shift
a=a.map &:dup
a[y][x]=?$
4.times{|k|s[j=-(k^1)/2+1+y][i=-k/2+1+x]!=?*&&(s[j][i]=?*;q<<[a,i,j])}
)while/G/=~a*''
puts a

あんまマジメにやってないんだけど 適当に解いてて一応勝ってる (181B) ぽいので。

はじっこに壁があるのを仮定してるのはちょっとずるかったりするんかな。 あと S の位置が 1,1 というのを仮定してよかったらだいぶラクなんだけどなあ。 なんかそれを仮定してそうなコードをどっかで見た気がしたんだ

(00:43)

_ SysV IPC でチート

http://john.freml.in/codegolf-cheating

できそうと教えてもらったけど、 まぁ誰もやらんだろうと思ってたんだけど、やってくれた。

というわけで共有メモリとメッセージキューは殺したんだけど、 semaphore は mono が使うらしい。 アホかーと思ったんだけど、 まぁ数をギリギリの数にしておいた。

でもまぁ気持ち悪いし、 一個でも semaphore 作られたら C# のプログラムが動かなくなるので、 後で semaphore はクリアするようにしておこうと思う。 で、 Ruby は syscall 呼ばんと getsem とか無いかなぁ…とかいう。

(00:48)

_ 167B

s=*$<
x=y=0
y+=1until x=/S/=~s[y]
q=[a=s,x,y]
(a,i,j,*q=q
a=a.map &:dup
a[j][i]=9*4.times{|k|q+=[a,x,y]if s[y=-~k%3-1+j][x=-k/2+1+i]!=s[y][x]=?*})while/G/=~a*''
puts a

まだまだ縮みそうではある

(01:04)

_ 161B

s=*$<
x=y=0
y+=1until x=/S/=~s[y]
q=[a=s,x,y]
(a,i,j,*q=q
a=*a*''
a[j][i]=9*4.times{|k|q+=[a,x,y]if s[y=-~k%3-1+j][x=-k/2+1+i]!=s[y][x]=?*})while/G/=~a*''
puts a

よく考えるとどうせ 1.9 じゃ動かんしなぁ

(01:08)

_ 120B

q=a=gets(p),~/S/
(a,i,*q=q
a*=1
a[i]=9*4.times{|x|q+=[a,x]if$_[x=-~x%3*-~~/$/-~/$/+-x/2+i]!=$_[x]=?*})while/G/=~a
puts a

golf data structure is always linear は金言だなぁ…

しかしなんかむしろコードが間違ってたらはずかしいな

(01:32)

_ 124B

q=gets(p)*1,~/S/
(a,i,*q=q
a[i]<?S&&a[i]=?$
4.times{|x|q+=[a*1,x]if$_[x=-~x%3*-~~/$/-~/$/+-x/2+i]!=$_[x]=?*})while/G/
puts a

どうしても S を塗らない処理が大変だなぁ。 G を塗らないのはむしろ短くなった気がするんだけど…

(02:31)

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

_ mame [おうおう。正規表現に取り付かれて普通の BFS を試そうともしませんでした。 細かいですが、S とか G とかは書き..]

_ shinh [うわ本当ですね。むしろ潰さんと駄目だと思ってました。どうしたもんかなー]

_ ksk [4.times{...} は [1,u=1+~/$/,-1,-u].map{|x|q+=[a*1,x]if$_[x+..]

_ shinh [おおいいですね。数秘術を無駄に使いたがってしまうのは悪いクセです。 [1,u= ~/$/,2*~u,u].map{..]


2010-01-14

_ reviewer

http://webkit.org/blog/1012/shinichiro-hamaji-is-now-a-webkit-reviewer/

ぶじなれたみたいだ。

(04:11)

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

_ naruse [おめでとうございます]


2010-01-17

_ G1

使おうと思ったら色々問題があった。 ありすぎてわけがわからん。 最初の問題は su できないとか adb shell できないとか。

しょうがないから色んなイメージを入れてみたりとかそんなこんな しているうちに突然再起動したりする問題と、 android.prcess.media has stopped unexpectedly とやたら言われる問題が起きた。 あとおうちの SSID を見つけてくれない。

adb の方は別につなげられるよーと言われたので、 色々やってみたところ

http://groups.google.co.jp/group/android-group-japan/msg/8bf1b8894ca31148

を見つけて udev のエントリーを2つにしたら動くようになった。 なんでやねん。

android.process.media の方はネットの情報によると SD card をフォーマットすればなおるらしいということだったのだけど、 format するために unmount したら即再起動するという悲惨な状態だった。

こっちは isshiki さんに SD card をフォーマットしてもらって解決。

しかし今度は USB cable を刺すと再起動するという…

なにがなんだかわからない

(19:29)


2010-01-20

_ G1

version down (1.1) => BIOS の update => version up (1.6) とかしたら 再起動しかしない状態になった。 しょうがないので user data も含めて factory reset かましたらなんとよくなった。

おうちの SSID 拾ってくれないのはホントなんでかなーと思いつつ SSID 一文字とかが駄目なのかなーと思ったけど違って、 いろいろぐぐってたらどうも、

http://groups.google.co.jp/group/android-sdk-japan/browse_thread/thread/3e5a7ec170e9e67/efbcf96c5d3f39dc

にある通りで、 channel が 12 になってたのが良くなかったようなので 11 にした。

あとはいつも入れてるアプリを入れてみたり。

AndroidSKK も入れてみた。 よく動いてて良い。 ただ Enter 入れると日本語入力になるので、 Google に英単語入れて Enter で submit したりすると 日本語モードになるのがちょっとびっくりするけど、 まぁ実用上は問題ないかも。 いや submit せずに日本語モードにできないのはちょっと困るかも。 まぁしばらく試してみようとおもう

http://d.hatena.ne.jp/minghai/20090502/p1

コード読んだ。 なんか soft keyboard なら / 長押しでいいみたいだな。 あとなんていうか上下左右入れるヤツで 上入れたら例外飛んだぽいので、それも含めて適当にいじってみるかな。

(01:19)

_ 電話番号

080-4366-8161

らしいんで適当にどうぞお願いします。 メアドは未だによくわからんのだけど、 まぁ gmail でいいんじゃないかな。

いずれにせよ phs ___at___ shinh.skr.jp を gmail に転送しとくようにしておいたし、 まぁ i.softbank.ne.jp とかゲットしたら適当にそっちにも転送すると思われるので、 それでいい気がする

(01:39)

_ i.softbank.jp

ついにこれのパスワードの調べかたがわかった。 契約したときにもらった紙に書いてあったのだった。 というわけで設定したので phs ___at___ の forward 先に追加したので まぁなんとでもなると思われた

(02:02)

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

_ yanbe [ i.softbank.jpということはiPhoneをご購入されたんですね。 iPhoneのメールアドレスとしては@..]

_ shinh [ああええ MMS の方は取得/変更できたんですが、これなんか他のデバイスでメール見るとかキツそうというか、えーと、具..]

_ tekezo [なんと、iPhone 3GS をもし売るのであれば買いたいです。]

_ shinh [必要なことがあれば返していただけるなら喜んでさしあげますです。]

_ tekezo [ありがとうございます。 無料というのも気がひけるので支払いはしたいと思います。 手放しても大丈夫そうになったら言って..]


2010-01-21

_ dl.rb

http://mkosaki.blog46.fc2.com/blog-entry-1069.html

これはそのなんというかひどいなとしか言えないなぁ… なんでそこでインターフェース切ったのって感じだろうか。

まぁいつも言ってるんだけど x86-64 持ってる人は以下を実行してみるべき。

int main() {
    printf("%d %f\n", 1.2, 42);
}

(22:47)


2010-01-22

_ We use Lua internally at Google

http://google-opensource.blogspot.com/2010/01/love-for-luajit.html

知らんかった

(05:59)

_ QEMUメモ

http://blog.kmckk.com/archives/cat_107264.html

面白い。 TCG は興味あったのに調べてなかったんだけど、 なんか結構 QEMU 以外で使うのにはイマイチな感じなのかな。

(06:02)

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

_ calgary search engine optimization [&#12381;&#12398;&#12424;&#12358;&#12394;&#24847;&#21619;&#..]


2010-01-27

_ 婚活サイト

ちょっと前に婚活サイトにまじめに登録した人の話を聞いて面白かった。

  • なんかその友人は2ヶ月くらいだったか登録してた
  • その間最低1週間に1人は紹介してもらうことが保証されているシステム
  • その人の場合は16人紹介されて7人と会った
  • サイトに払った金額は16万(たしか)
  • 女性も金はらってる
  • 男は年収とか書いて女は体重とか書く
  • 写真はカメラとか無い状態で事務所に行って見る
  • (今のところ)貢がせられたりとかは特にない

とかだそうだ。

なんか思ってたよりまともというか サバサバしてるというか合理的というかなんだなぁと思った。

(01:56)

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

_ もわ [会社の漫画棚に『あらゆる婚活してみました』という本をぶちこんどいたのでよろしければどうぞ。かなり非合理ですw]

_ shinh [ありがとうございます読んでおきます!]


2010-01-28

_ PRA

今頃になって PRA に second author 的な感じで載るらしい。 一般的にはいいことなんだろうけど、 しょうみのところ何を思えばいいかわからん程度に何も思えないなぁ面白い

(23:17)

_ メモリとの戦い

パソコンが遅い == メモリが遅いについて、 どんなのがあったっけなあと適当に思いだしてみる。

  • IRC クライアントのメモリ使用量がだんだん増えていく => golf 場死亡

頻繁に起きていた。今は IRC クライアントとは違うマシン使ってるというか Ruby で書かれた rail から Perl で書かれた tiarra に移行したら大丈夫になった。 Ruby ってより rail が悪い可能性が強い気がしてるけど調べてないのでよくわからない。

  • Linux の Firefox が異様に遅い

これはたぶん二つ問題があって、片方の disk 全力で書いてる最中に完全に動作が止まる、って方は fsync がどうこうなので本質的にあまり関係ないと思う。まぁしかしそれでなくてもメモリ喰いまくって遅かった。クライアント側でメモリ

対策としては色々やったけど Linux Chrome 出てなかった時期は Windows Chrome 立ち上げて rdesktop でアクセスとかやってたくらい辛かった。

  • Windows 遅い

これは Windows が悪いってより僕の使ってるマシンで一番非力なマシンが Windows な上に coLinux まで動いてるというハンデがあるので Windows を責めるのはかわいそう。いずれにせよキャッシュに行ってる気配しかしないのでまぁメモリさんが足りないのが悪い。

  • でっかいデータの中のでっかいレコード

適当にでっかいデータを処理してる時に、たまたま一個だけ入ってるでっかいレコードを全部メモリに読もうとして死亡→一からやりなおし、ってパターンは悲しい。

  • 自分の書いたコードがおバカ

例えば ICFP の時の僕の UM とか適度にリークしてたのでひどかった。

あとまぁなんかしら適当にでかいデータ処理するとデータ2倍にしたら終わるまでの速度が20倍とかよくあるよねー的な。

(23:18)

_ ircnet

http://slashdot.jp/it/article.pl?sid=10/01/28/0536223

なんか実際に客がいるサービスをやっていないので、 大学でクラスタ〜とかの研究するの大変という話を聞いた後だったので、 こういうの引き受けたりしたらいいのになぁとかちょっと思った。

単に ircd 動かすだけならどうでもいいと思うけど、 認証つきの全文ログの提供&ログ検索などなどやれば結構大変そうな気がする

(23:21)

_ あああと

もう何茶だったか忘れたアレ。

http://d.hatena.ne.jp/shinichiro_h/20060831#1156993501

侘び茶だった。 あれ的な感じで web からも Ajax でアクセスできますよ〜とか XMPP も喋りますよ〜とかそういうのやって欲しい。 まぁ結局俺がやって欲しいだけにすぎないが

というか stateless なプロトコルはともかく、 コネクションはりっぱなしになるようなプロトコルと データセンターのやりとりとかよくわかってないんだよなぁ。 たぶん難しそうだと思うんだけど。 研究とか的にはどうなんかな。

(23:25)

_ TODO

ひさびさに…

  • tracer
  • ゴルフ場と ipcrm
  • ゴルフ場のバージョン情報とタイムアウトと exec count と…
  • ゴルフ場の同一タイムスタンプ問題 http://longlong.way-nifty.com/blog/2010/01/post-c512.html
  • メガデモ
  • GCC とたわむれる
  • syard とたわむれる
  • syard の script.js をちょっと書き直す
  • テトリス
  • TCC は -run をあと少しリファクタリングして push
  • TCC x86-64 asm
  • D
  • w3m & webkit であそぶ
  • kevil がなんかおかしい件
  • bfx は忘れてた
  • ada は忘れてた
  • grub コード整理

(23:52)

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

_ naruse [せっかくWebSocketsやってる鵜飼さんが近くにいるのに、と思いました。 いや、物理的に近くなのか?でも先日お会..]


2010年
1月
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
1.tekezo(2014-05-24 03:52) 2.shinh(2014-05-24 03:52) 3.tekezo(2014-05-24 03:52)
search / home / index

全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。

shinichiro.hamaji _at_ gmail.com / shinichiro.h