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

はじめてのにき

ここの位置付け

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|07|08|

ToDo:


2010-02-01

_ 並カン

何やら色々楽しかったものの宿題も増える感じだった。

  • メーヤウが店の雰囲気かわってからやはりおいしくなくなってるような…
  • 並列プログラムの作り方という本が良いらしい
  • Molatomium の詳説とかはなかった
  • id:goyoki さんの FPGA 系の。やっぱ楽しそうだよなぁ
  • recursive mutex はうんこって話は何度か聞いたことがあった気がして、いくつかあまり意識しないような理由があったよなぁと思ったけど思い出せなかった。意識するような理由としてはここの2つ目の解答とかがあったと思う。 http://stackoverflow.com/questions/187761/recursive-lock-mutex-vs-non-recursive-lock-mutex
    • パフォーマンスとかもあるけどそれは重要じゃない(と言わないと説得力が落ちる)
  • これを途中まで読んだ http://www.boostcon.com/site-media/var/sphene/sphwiki/attachment/2009/05/02/multithread.pdf
  • memcached について id:w_o さんにヨタ話をしたり。使ったこともないくせに
    • 一番大きいのは memcached とかいう話をしている時は、そもそもローカルだけで解決する話をしてない(という脳内設定(ここで現実のサービスの流量は問わない)になっている)ということかなーと思った
    • あとまぁ 1Gbps でもディスクよりネットワークの方が速いという感覚の模様。僕の体感もそうだなぁ。 http://highscalability.com/numbers-everyone-should-know
  • shared_ptr はいずれにせよ一度実装を読むべき
  • mutex 作ったスレッドではロックを全くしないとかいう話はこれなんだけど論文ダウンロードは金かかるみたいだ: http://shinh.skr.jp/m/?date=20080731#p01
  • lock free は無茶苦茶いい話だったと思う。知ってる話も多かったけどここまできちんとまとまってわかりやすく順序だてて聞いたことは間違いなく無い。動画とか上がるならみんな見るべき!
    • 終わってからスライドのコードは while でかこってるんなら weak の方でいいんじゃないですかと聞いたら、次のオブジェクト作るコストによってそれが軽いんなら weak でいいけどそれ場合によるよね、とのこと。なるほどそりゃそうだ
  • Haskell はまぁいつものことだけど使いかたうんぬんよりモチベーションとどう解決したかを明確に知りたいなぁと思った。いつも聞く前より疑問が増える。例:
    • Haskell は並列プログラムの難しいところはだいたい言語で隠蔽できる(笑)
    • $|| とかコードがよくわからんかった。 sieve の方はどこを parallel にしてたんだろうか。
    • parallel だとなんで -feager-blackholing が必要なの、というか普通に考えて「このサンク実行中っす!」フラグは並列だろうとなかろうと必要な気がしてたのでよーわからんかった。
    • 例で出されてた quick sort とかってたぶんタスク的なのを 2N 個作るんだよなーとか思ってそれ普通に正格に評価するより遅いんじゃねーとか想像して聞いたところ、そもそもバグ踏んでるからわからんとかなんとか。 real world haskell とか言うヤツはみんな詐欺師である
    • nested data parallelism ってなにかよくわからず
    • STM で CAS ってなにかよくわからず
    • last core parallel slowdown / spin lock? とかメモった上に質問したけどよくわからず。なんで CPU 一個残すと遅くならないの?
    • 並列プロファイラのモチベーションがわからず
  • id:kazuhooku さんに話を色々聞けてよかった。特にお聞きしたかったのは下記の2点なんだけど、特に銀の矢はここにも無いようだった
    • なんでも一人で上から下までやっちゃうのってすごくないすか→経験。あと IRC で聞く
    • 一人でやってると「おやまの大将」というか、全然ベストじゃない解に落ち着いちゃう不安とか無いすか(実際一人じゃなくても企業ごとに脈々と伝わるベストじゃないけど適度に動くライブラリとかそういうのあると思うんだよな)→あるかも。あと IRC で聞く

(00:27)

_ IEにあわせて

http://tinyurl.com/yc5ptjm

の fugafuga が WebKit と IE で動作そろえてて涙ぐましいとかいう話をしていたら、下の 3 つくらいが一致してないと気付いた。

ちなみに WebKit の該当コード。文字列長を3でわってどうこうとかやってるそうな

http://trac.webkit.org/browser/trunk/WebCore/dom/StyledElement.cpp#L346

(22:56)

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

_ 酒井 [当日どういう話だったか知らないけど…… > nested data parallelism ってなにかよくわからず..]

_ shinh [おおありがとうございます! > 直列処理を複数のデータに対して並列に適用するのが普通の data parallel..]

_ 酒井 [> 配列を4つに切るのが普通ので、配列を2つに切ったやつをさらに2つに切って…みたいなことやったものを並列にどうこう..]


2010-02-06

_ 嫌いな言語: Python の件

そいえば雑談会で Python 嫌いとか言ってたんだけど、 結構使ってて、嫌いなものを結構使ってる今の状況って面白いなと少し思う。 とはいっても仕事の道具としての Python はそんなに嫌いじゃないんだけど。

適当な手段で適当に集計してみる。 WebKit にかかわったのは6月くらいからで112個のcommitがあるらしい。 うちわけを適当に

  • C++: 43
  • Python: 21
  • Perl: 9
  • Ruby: 3
  • JS+HTML: 28
  • その他テスト関係: 5
  • ビルドファイル: 3

思ったよりすくなかったけど、まぁ Python 多いのだった。 reviewer になってから見たものは完全に Python ばっかりで、

  • Python: 15
  • C++: 1
  • JS+HTML+ 3

らしい。 たしかに C++ はほとんどの場所が review できる域に達せてないから あんまり見てないけど、それにしても1個ってことはなかった気もするんだけど。

でまぁ嫌いだとしている Python とか Mac とかを使って それなりに幸せに仕事できてるのはこうまぁ、 なんかやはり趣味としての好き嫌いとかって 仕事とかだとわりとどうでもいいのかなぁとか思うわけだ。 なんというか仕事だと言語としての良し悪しとか環境の良し悪しなんかより、 もっと別な色々(回りの人とかコミュニケーションとか開発サポートするツールとかテストとかそういうの)のことの比重の方がはるかに大きくて、 ということなんじゃないかなぁと思う。

そのへんにこう関数型言語で仕事したいとか言う人に うさんくささを感じてしまう理由があるんじゃないかなぁと思う。

一度 PHP で仕事してみたいもんだと思う。嘘です

(18:08)


2010-02-08

_ うさんくさい話

しかしまぁ僕は超嫌いな言語とかで作業してるわけじゃないので、 常日頃から嫌いで嫌いでしょうがない言語で作業させられてる人とかは、 まぁ普通に自分の一番好きな言語で作業したいと思うだろうし、 なんかあまりフェアじゃないうさんくささの感じかただなぁとか思った

(02:15)


2010-02-11

_ for else

http://twitter.com/niha28/status/8890624685

http://twitter.com/shinh/status/8896555291

Python だと、

for x in array:
  if fuga(x):
    break
else:
  return # 見つからなかったから return

的なのができるって話なんだけど、 文法さえまともならどんな言語でも欲しいと思うんだよなぁ。

ちょっと考えてみるに continue/next 使うといいんじゃないかなぁと思うんだけど、 文法的にこう曖昧的な微妙さがある気がするんだな。

for (;;) {
  if (fuga)
    break;
} continue {
  return;
}

はまぁ continue の後にセミコロン以外ならいいのでいいか。

loop {
  break if fuga
}
next {
  return
}

とか

loop do
  break if fuga
next
  return
end

は大変厳しそうだ。

(02:20)

_ Hello ruby

kosaki さんが Ruby の hello がわからんとおっしゃっていたので あんま C と変わらんよ、と書いたコード

http://github.com/shinh/test/blob/014d475797f697d8f69017a3ce9517a46cdb9fcb/hello_ruby.rb

こんなかんじでつけ加えてやると C でもリンク通る。

http://github.com/shinh/test/blob/f24f802bfb24492b0e79167aae399385db54b5e8/hello_ruby.rb

C ぽさを維持して Perl あたりも通るようにするにはどうすればいいかなぁ。

#include <stdio.h>
#include <stdlib.h>

int loop {
  printf("Hello, world!\n");
  exit(0);
}

は手っ取り早いけど、関数に引数ないのは不自然だよな。

(02:33)

_ HTMLリアルタイム編集

http://zerobase.jp/blog/2005/10/ajaxquickedit_html.html

こういうの無いかなーと思って検索したら出てきた。 検索キーワードは「ブックマークレット その場で編集」。 僕にしてはうまい検索だなーというか僕基本的に 一語以上で検索する脳が無いからな

(04:50)

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

_ nuna [intでエラーにならないのはなんでですか? パース時にはメソッド扱いになるのでパースエラーにはならず、 実行時には結..]

_ shinh [そういうことだと思います。 exit(0) を break にしてやるとよくわかるかと。]


2010-02-13

_ TODO

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

(03:05)

_ begin end

BEGIN {
  print "o, "
  END {
    print "wor"
    BEGIN {
      print "ll"
      END {
        print "ld"
        BEGIN {
          print "He"
          END {
            puts "!"
          }
        }
      }
    }
  }
}

BEGIN はうちから END は外から。 BEGIN も別に下から実行してるというわけではなくて、 並列に並べると上から下に行く。 なんかぱっと考えた時の直感と真逆な感じがあるんだけど、 わざわざこうなってるということは理由があるのかなぁ。

Perl も同じだから Perl にあわせたのか

(03:31)

_ かにチャーハンの店

http://www.stride.co.jp/chahan/shibuya.php

複数人の同僚さんがうまいと言ってたので行ったら真剣においしくてびびった。 やばかった

でも味の好みとか的には唐辛子入れてザーサイ入れたいなー的な

(03:48)

_ PRA

http://pra.aps.org/abstract/PRA/v81/i2/e022108

驚かざるをえませんね

(03:54)

_ begin end

awk はたぶんだめだった。

あと結構自由なところに置けるんだなぁ

puts begin BEGIN { print "Hello, " } end || "world!"

(04:12)

_ 文字列連結

http://blog.practical-scheme.net/shiro/20100211-string-literal-concatenation

3 はそれこそ awk とかですかね。

BEGIN{ w = "world!"; print "Hello, " w }

これがあの Perl でできないのは特筆すべきことなんじゃないかなぁと思う。 まぁ bare word があるような言語で文字列連結があると 崩壊以外の末路が見えんが。

あと Perl は文字列連結は . でやってても 両方定数だとコンパイルタイムでやってるように見える。 コードとかは見てないけど、そういう挙動というか

(04:17)

_ gdb

  • Apple の GNU gdb 6.3.50-20050815 (Apple version gdb-966) は info functions でアホほど時間使った後に死亡。適度に対象が小さくなる正規表現を喰わしてやると OK 。ただ PCRE じゃない正規表現なんだよなぁ…
  • GNU gdb 6.3.50-20050815 (Apple version gdb-1346) も同様っぽい気がしてたがこれはクラッシュしなかった。単にスノレパさんなのが良かったのかもしれない。
  • gdb-7.0.1 を野良ビルドしたら怒られた。このへん参考にするとスタートはできたけど、あきらかに異常動作している。 http://sourceware.org/gdb/wiki/BuildingOnDarwin
  • fink には gdb 無いっぽい。

あ、なんかクラッシュしなかった。 なんか強烈に遅くて、クラッシュする時もある、って程度なんかな… あと gdb-1344 を野良ビルドしたらそっちの方がはやかったっぽい。

いずれにせよシンボル情報保存しておけばいいか…

(17:00)

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

_ もわ [すごい勢いでrssが壊れてましたが大丈夫ですか↓こんな TODO * tracer * AI? ..]

_ shinh [なんかUTF8な文字送った時にどっかのレイヤーでこわれたみたいだったので適当に手でなおしました。]


2010-02-16

_ TLE

結局真面目にやっていいのかよくわからんがまぁ適当にやろう。

  • PALIN1: 0 。そもそも普通に解けてませんよ :-)))
  • PALIN2: 148.4043 。おやトップ取られてるねまぁまだいけるだろたぶん。
  • PREP: 16.1755 。まだ本気出してないが本気出しても勝てる気はしない。ちなみに僕の出題。想定解とかがあったわけじゃなくて、どうなるのかなー的な。
  • CARM: 0.0004 。このなんとかってやつ全く覚えてないけどゴルフした記憶だけはあるけど別にやったことないみたいだった。
  • COMP: 94.7753 。まだなんとでもなるか。
  • SHORTEN: 0 。大変そうだなぁ。
  • KEY: 65.233 。まぁやればできる?
  • CQUINE: 191.1504 。これ負けてるのかー。

(22:03)


2010-02-18

_ TLE

なんか TLE 的なのを主催しつつ自分も参加するという 荒技はできないかなぁと時々考える。

なんか何人か呼んでその人達に1問ずつ問題とその解答のチェッカーを 当日まで秘密で作っておいてもらって、 当日になったら僕が頑張ってそのチェッカーをゴルフ場に移植しつつ 参加とかそういう感じでできるかなぁ。

出題者はハンデとして出題者以外のトップを 10000 として 出題者の点数は半分にして考える、但し最大 10000 点、 とかそんくらいでいい気がする。 どうせ出題するような人は他で強いし。

あと、チェッカーにバグがあるよとか指摘された場合に 投稿された解答をチェックする必要があると悲しいけど、 まぁそのへんはなんとかなる気もする。

あーでもやっぱ事前の協議とか無いと似たような問題が並ぶとか あったりするかなーどうだろう

あと言語が自由になるとさらに良いがもっとつらそうだ。 そういうのやるとしたらむしろ時間内に なるべくたくさんの言語で解きなさい! とか面白いかな。

(03:14)

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

_ n [問題の実点数を、主催者(またその問題投稿者)の仮点数以下は本人含めて0という扱いにするのはどうでしょうか。 まぁデメ..]

_ shinh [それは主催者はどんなに頑張っても 0 てんだけど全問トップに立って全員を 0 てんにすれば同着 1 位! ってことで..]


2010-02-19

_ WebKit port for EFL...!

https://lists.webkit.org/pipermail/webkit-dev/2010-February/011626.html

つげー。 EFL って Enlightenment ですよ。 投稿されてるデカいパッチとかのクォリチーはそれなりに高そうに見えるし、 どうもマジっぽい。

サムスンの援助で ProFUSION というブラジルの会社が 組み込み向けっつーことでやっているらしい。 Enlightenment 乗ったケータイとかテレビとか出たらすげーなぁ。 Qt とかじゃなくて Enlightenment でやることになった 経緯とかが知りたいもんだ。

このへんのムービーとか見ると これが EFL 上であるというのを信じるなら WebKit 動いてるっぽい。

http://blog.gustavobarbieri.com.br/2009/11/04/evas-uv-mapping-and-webkit-efl/

(00:21)

_ make の一族

あたりまえだけど、 make alternatives はさっさと絶滅するか 一つを残して絶滅して欲しいと思っている。

そういう話をしてて wikipedia の素敵なエントリを見つけた。

http://en.wikipedia.org/wiki/List_of_build_automation_software

本当に絶滅してくれ…

make alternatives を作ってる人達は、 proof of concept として、 GCC あたりをその make alternatives で ちゃんとオプション変えつつビルドできることとかを 実証して欲しいよなぁと思う。 Makefile のパースだけで時間がかなりかかるような 巨大プロジェクトもあるわけで、 まぁそういうスケーラビリティは保証して欲しい。

そういえば Android は Makefile が find 的なことをしててとんでもないですよねーとか 言ってたら mmm とかいうのがあるらしいと教えてもらった。

(00:30)

_ PFI seminar

スライドを見た。 x86-64 には sil とか dil とかいう si とか di の下位 8bit 版があると知った。

(00:32)

_ デブサミ

というのがあるらしい。

気になるとするとこの2つくらいか。 ustream は無さそう? まぁニコニコとか上がるっぽいので見れば良さげ

http://www.seshop.com/event/dev/2010/timetable/Default.asp?mode=detail&eid=145&sid=878&tr=08%5FWeb#878

http://www.seshop.com/event/dev/2010/timetable/Default.asp?mode=detail&eid=145&sid=883&tr=08%5FWeb#883

(01:01)

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

Before...

_ shinh [うーんほっといてもそれなりに死屍累々となってきてませんかね。でもスーパーセット作るってのはまぁ面白そうですね。]

_ fd0 [> Qt とかじゃなくて Enlightenment でやることになった経緯とかが知りたいもんだ。 推測ですけど、Q..]

_ shinh [あーたしかに Qt 大きいですね。でもあれって結構 configure 的なやつでそぎ落とせたような気も]

_ morita [どっちかつーと Enlightenment のスポンサーになった Samsung が自社プラットホームの Bada ..]

_ shinh [なるほど。それでもなお GTK+ はきついきつかったんだろうか…とか思ってしまいますが GTK+ こそ大きそうかな。..]


2010-02-20

_ 味わいぶかい

http://yugui.jp/articles/853

色々 ruby ぽい

(12:58)


2010-02-23

_ mlterm とフォント

なんか半角カナがいつの日にか出なくなっていた。昔のメモには r14 と書いてあるのだけど、 kana14 にすればいいらしい。 r12 とかももうダメなんだろうけど、今はまぁ 14 固定だからとりあえずいいや。

JISX0201_KATA=14,kana14;10,mplus_j10r-jisx;12,r12;

ついでに rdic の発音記号。

http://parsley225.hp.infoseek.co.jp/rdic.html

を参照して、

k14-1  -misc-fixed-medium-r-normal--14-130-75-75-c-140-jisx0213.2004-1

を加えて

% sudo mkfontdir
% xset fp rehash

JISX0208_1983=14,k14-1;10,-mplus-gothic-medium-r-normal--10-100-75-75-c-100-jisx0208.1983-0;12,k12;
JISX0208_1990=14,k14-1;10,mplus_j10r;12,k12;
JISX0213_2000_1=14,k14-1

あたりでなんとかなったみたいだ。フォントのインストールは特に必要じゃなかった。たぶん xfonts-jisx0213 パッケージでよい。

(00:07)


2010-02-24

_ exec-shield (と僕が思っていたもの)をどう破るか

NX bit というのを立ててうんぬんというやつは exec-shield とは微妙に違うらしい…というのはだいぶ前どこかで読んだような気がするけどなんかまぁ知らん。とにかく Windows では DEP というらしい。

でまぁ、結局、スタック書き変えてレジスタも適当にセットして準備がそろった段階で mprotect に ret で飛んでく、っていうのが基本的な話らしい。 return to libc という単語は聞いたことはあったんだけど、 libc に飛んでくっつてもどの関数に飛んでくんだろうどうせたいした引数準備できないだろうし…とか思っていた。 mprotect に飛んでくなら納得だなーと思った。

address randomization なんてのはなんか筋が悪そうだとなんとなく思っていて、いや適当な fix としてはいいと思うんだけど、まぁとりあえず mprotect しなくていいプログラムは、このプログラムは絶対 mprotect 呼びませんよーと宣言すれば mprotect 絶対に呼べないようにするといいんじゃないかなぁとか、あとそこまで行かなくても writable かつ executable な mprotect は禁止ーとかすればそれなりになんとかなるのかなぁとか思ったりした。

(01:27)

_ あとは

VMX って具体的にどういう命令増えたかとか調べるべき。 特に vmcall ってどう受けるのかなーとか。

あと lua の tailcall が jmp じゃない理由。 コード見るとなんか一見だいぶ違うなー

あと lua の closure うんぬんは別になんか そのまんまな気がしたけどたしかに レジスタベースだとスタック保持しとくってわけでもないわけで どんな感じになってるのかなと少し考えるというか読むか

(01:32)

_ あとは

id:firewood さんに Windows での生活についてとかをお聞きする。

なんか Windows についてはとりあえず 疑問をまとめておく必要があるような気がした。

あと Linux 使ってる時も、 不便に感じるところをどう対処したか、 とかメモっていくと Windows で同じことする時どうするか、 みたいな疑問を後で一つ一つサバいていけたりするかなぁ。

あと CUI だとなんかちょっとしたミスで致命的なことが起きたりとか、 細かいオプションとか調べるのがだるいとか、そういう指摘はもっともだと思う。 とりあえず今度 man とか --help の履歴を見てみると面白いかな。

(01:36)

_ man

2008年は813回、2009年は374回。大幅に減ってるな…

2008年によく調べた man

     8 diff
     8 dosemu
     8 getpid
     8 gettimeofday
     8 mprotect
     9 backtrace
     9 ld
     9 signal
    10 memset
    10 objdump
    10 printf
    10 select
    10 write
    19 clock

なんで clock そんなに多いんだ… write とか memset はどうせ引数順、 select とか printf はたしかに調べてそう。

2009年

     5 fgets
     5 memcpy
     5 write
     6 fread
     6 getpriority
     6 mount
     6 setpgid
     7 atoi
     7 printf
     8 memset
    10 connect

うーんなんだろうな。 明らかにゴルフ場でしょうね、というものも多いけど、 うーん connect?

あと info はどっちも当然 gcc が2年で57回で圧勝、2位が sed の 10 回。 あたりまえといえます

(01:47)

_ clock

たぶん man clock で hwclock とかいうのが 出てくるから man 3 clock とやりなおす点と、 あと CLOCKS_PER_SEC を忘れるからだという予想が成立した

(01:50)


2010-02-28

_ TLEその後

昨日は生きてたのに今は反応なくなってるー。 全部コード落としておくべきだった。

PREP は __COUNTER__ か __INCLUDE_LEVEL__ が便利だったみたいだ。 kinaba さんのが一番気がふれてる感じで良かったけど まだ理解できてない。 kinaba さんコードください :)

COMP は適度に読んでなんとなくわかったのは たぶん長さを可変長でエンコードしてるんだなーということ。 とりあえずポーカーやりながら何度目かわからん ハフマン符号とか実装してみてまぁ縮みそうだなーという感じはあったので とりあえずちょっと自分でやってみてどのくらい短くなるか調べるか。 しかし謎な定数が多くてまだ何もわかってないおそれも強い。

(05:23)

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

_ naoya_t [TLE復活してるっぽい]


2010年
2月
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
1.shinh(2014-05-24 02:45) 2.n(2014-05-24 02:45) 3.naoya_t(2014-05-24 02:45)
search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h