ToDo:
http://twitter.com/kinaba/status/17019694551
これは
http://www.kmonos.net/pub/Presen/fltv/FLTV.pdf
の
.maxPrio = .max{|a,b| a.priority <=> b.priority} even = evens.maxPrio odd = odds.maxPrio
ができるって話よりもう一歩いい感じな感じだなぁ。
ミスって引数足りない時はどうなるのかな。 エラってくれないと静かに全然期待と違う動きすることがあってうざいと思うんだけど、 まぁいかにもこの部分適用だけされた関数使ってませんよーとか スコープ出る時に言ってくれたりしそうだけど。
(00:27)
こういう形式のゴルフコンペはどうかな。
つまりこうみんなで競争しながら頭ひねって答えを考えると。
とかいうルールを加えてもいいのかなぁと思う。 明らかに自明な最短解がある問題が出題されるとつらいので、 出題者は開始1時間解答できないとかそんな。
得点計算式に問題があるな… A さんが 10B 出して B さんが 8B 発見した時に、 9B => 8B と投稿した方が点数が多くなる式はダメだ。 むしろ分割するともらえる得点が減るといい気がする。
(01:34)
http://ja.wikipedia.org/wiki/MD5
MD5 はあっさり衝突するらしい。ダメぽ。
http://ja.wikipedia.org/wiki/SHA
SHA1 もうどうも衝突してるらしいじゃんダメぽ。
何かっていうと自分で書いたハッシュ関数とか 欲しいなぁというのがあったのだけど。
ていうか codegolf.com で sha256 書きましたっけ… すっかり忘れていた。
(01:59)
ニコニコの latency ひどいよなーと思って、 inspector で見てみると、 どうも prototype.js とかの 静的なコンテンツのダウンロードというか 304 Not Modified がかえってくるまでが遅い。
アホかーと思ったので、 とりあえずローカルの apache に mod_disk_cache を仕込んだ。 だいぶはやくなった。
(18:43)
powertop すると Ruby が上位に来ることが多い。
たぶん timer thread でもりもり起きてるのが問題かなーと思ってたんだけど、 よく考えると ruby 1.8 でも上位に来てる。 ruby-1.8.7 でも timer とかあるっぽいし 1.9 だけってのが記憶違いかな。
地球に優しくするにはどうすればいいんだろう。
http://redmine.ruby-lang.org/issues/show/270
に書いてあるみたいに最初に Thread.new するまでは 少なくとも必要ないのかなぁ。
ていうか thread の切り替えを促すってのは 各 thread が自発的にあー 10ms 過ぎたなーとか言って 他にゆずるとかできんのかな。
signal の集約の方は別にタイマとしての機能は必要じゃない気がするけど、 ええとどうなんかな。
(22:08)
u4 で適当に動かしていたサーバ群を適当に daemontools 管理下に置く。 具体的には
があったようだ。
あとは…
あたりが勝手に動くとなお良い。
それと health check 的なのを統合的にやりたいなぁ。 チェックすべきは
あたりか。
(23:23)
twitter のリソースの読まれっぷりを見てると、 spinner.gif とか loader.gif とか外部リソースなんだなぁ。 こいうのは data: にするもんなんかなぁと思ってた。
あとこれを最初に読む必要は無いよね…とか
(23:42)
寝る前に電気を消すためにスイッチに近付くのがめんどい。 どうにかして遠くからオンオフできるようにしたい。
どうやらこういうものがあるようだ。
http://www.nissinweb.co.jp/life01.html
うーんこれは何がどうなってるんだろう。 既存のスイッチの上につけられるのかな。 だとすると物理的に動くんかいや
(01:39)
なんか焦るとよくないなぁと思う。
気が急いて眠れないし、 しかし寝ないと集中力低下して勘違いを放置するし。
しかしまぁそろそろマシな勝負ができるといいなぁと思いますよ… と思ったらサバさんが
(05:31)
うーんくやしいなぁ。 最終的にはマラソン的な問題で、 いつものマラソン的な感じのダメさだった。 もうちょっと頭良くない感じの アルゴリズムとかはともかく 実装ゴリゴーリな問題の方が得意なんだろうな。
とはいえ問題はとても良かったし、 運営も良かったと思う。 今回程度のダウンタイムってのは 神とまでは言えないけどとても良かったと思うんです。
だからこそくやしいわけなんだが
でなんかまとまった文章書こうと思ったが、 そもそも key prefix をどうやって作ったか、 という手順からして思い出せない。
どういう問題だっけ…
回路は
http://twitter.com/kikx/status/16688748696
を見るに kik さんと同じだろうと思う。
工夫した点は左右ひっくり返せる部分があるので、 そこを乱数でひっくり返して何度かやって いいのを取るとかいう。
(22:52)
30分くらいで45台くらい新規給油したりして良かった。
問題をまだ理解してないのは困ったもの。
あと40時間?結構時間ある感じだな。 寝るかなーと思うけど今寝て起きてそのままってのはちょっと長いね…
(05:00)
いい問題だなーと思う
スタートへの敷居高すぎなのだけがアレ
とりあえず適当に稼げそうなところは稼いでおいた
明日へのメモ
プライオリティとしてはどこからかなぁ。 工場は後々効くだろうけど時間の無駄に終わる可能性もあり。
しかしこういうのは kikx さんとか得意そうである
二人いるのはこういう事情なので気にしないで
21:46 >shinh< register したらしいのにパスワードこないな 21:47 >shinh< あれ来てるんですか 21:47 >shinh< メアド入れまちがったとかかな 21:47 >shinh< shinh さん詰みそう 21:48 >shinh< 残念だなあ 21:50 >shinh< お team 名変えたら email address is already in use 21:50 >shinh< メアド入れ間違ってないじゃないですか 21:53 *** Change: shinh -> shinh2 21:53 >shinh2< しょうがないから今日から shinh2 に改名
(13:59)
via http://twitter.com/kinaba/status/16310294032
これいいなー。こっちが流行ってればいいのに。
どうでもいいけど忙しい気がする。 別にたいして忙しくはないんだろうけどなあ。
マラソン結局不戦敗。 かなしい…
(03:08)
http://slashdot.jp/~taro-nishino/journal/509450
かなり説得力あるなぁと思う。
前に git の ML で読んだ時とは大違いな印象だけど、 まぁ当時は全部あんま読んでなかったのかな。
今度ゆっくり一つ一つの機能を考えてみたい気がする。 とりあえず多態と STL は 欲しいかなぁと思うけどどっちも kernel に とって重要じゃないってのはそうなんだろうと思う。
あとはこう単純に関数とメンバを同じところに書く習慣を強制されるのは、 自分が悪いコードを書く率を減らしてくれるって意味でありがたいんだけど、 そういうのはダメかなぁ。 C++ の方が C よりバカに優しいと思うんだけど。
ていうかそう、激しく同意するのはその、 僕は自分では C++ 書きたいけど、しかし 人の書いた C++ コードはあんま読みたくない ケースがすごく多いって話なんだよな。 C にしてくれという。
あーなんでか忘れてた。 RAII は欲しいだろさすがに。 さすがに kernel でも役に立つんじゃないか。
(03:41)
1位は略
2位の RAII は RAII というかスコープ出た時になんかできるってやつで、 Mutex の auto unlock みたいなのは嬉しいんじゃないかなぁ
3位のクラスってのは単にメンバ関数のことを指してるんだと思う。 やっぱ頭整理しやすいと思うんだよね。 もちろん C でもちゃんと一定のルールに従って書いてくれりゃいいんだけど、 自分で新しくコード書く時にルールを考えたりするのがやはりめどい。
4位の STL はまぁ大規模なプロジェクトなら自分で書いたらいいんだろうけど、 スクラッチからなんか書く時の速度が相当早くなるんですよという。
5位の多態はこう、結構欲しい時は本質的に欲しいんだよなぁ。 関数ポインタ3つ以上とか持ってる構造体とかは、 ちょっと厳しいもんがあるんじゃないかなぁ。 そうなっちゃうと過剰に自由度が高い状態になってしまって、 見通しが悪くなるというかなんというか。
6位のアクセス制御はまぁやはりドキュメントとして。 ただ private non-virtual 関数は cpp の方にだけ 書けばいいことにできんもんかと思う。
7位。オーバーロード…はいるんだろうか。 operator<< とか、何かしら出力系では欲しいんだよなぁ。
8位 template 。 低い位置だなぁというかまぁ STL は上の方にいるのだから 不自然な話である。 まぁマクロあれば自分で書く範囲なら それなりになんとかなるんだよな… でもそいうケースの場合は普通に template の方がいいけど。 まぁとにかく必要な頻度が低い。
9位継承。これも多態を上に置いておいてヘンな話だけど、 要は実装継承的なものを指していて、 多態は interface 的なものを指してることにしよう。 まぁ手間ははぶけること多いから継承好きなんだけどね。
10位は例外はなんかたいてい 超大域脱出(つまりどうしようもないことが起きてエラーメッセージだけ吐きたい時) にしか使わないからなぁ。そしてデバッガのこと考えると 超大域脱出とかしてるより SEGV の方が良かったりする。
(04:05)
http://code.google.com/p/gperftools-httpd/
というのもあるみたいなんだけど、 なんかずいぶん昔のもんだからかなんか知らんがビルドできなかった。 それに /pprof/symbol とか対応してる気配も無かったので良いこととした。
(03:46)
http://www.gnu.org/software/libmicrohttpd/tutorial.html
プログラムに埋め込む http サーバライブラリを 適当に探していて見つけた。 今のところ割と良さそう。
ただ POST の処理がえらいめんどい。 いやまぁこうなるのはわかるんだけど、 デカいバッファにとりあえず全部突っ込んであげるよモードが欲しい。
しかし実際書いてみたら POST の処理も まー悪くないみたいだった。 つーわけでこれが実装できそう。
http://google-perftools.googlecode.com/svn/trunk/doc/pprof_remote_servers.html
あと検討したのはこのふたつ。
http://www.hughes.com.au/products/libhttpd/
こっちはまぁ自分でループ書かにゃならんのが許せなかった。 そして select にタイムアウトを入れてやらない限り 自発的に終了することができなさげ。
つまりスレッドとか考えてるんかこいつって感じだった感じ。
http://sourceforge.net/projects/libhttp/
こっちはそもそもビルドできなかった。 bjam 使いかたわからん。 あとまぁ Boost 以外の C++ ライブラリは 信用してはらならないの法則に基づきまぁいいやと思った。
(03:45)
lambda を使ったコードのデマングルに失敗してるなーと思ったので、 適当に cvs up してビルドしなおしてみた。
% echo _ZZ4mainENKUliiE_clEii | ~/src/binutils/binutils/cxxfilt main::{lambda(int, int)#1}::operator()(int, int) const
おおー
そういえば move とかもまた増えるってことか。
(03:52)
最近シブサワコウの名前を街で見かけるのは何故だろうかとおもったら この人だったようだ。
http://ja.wikipedia.org/wiki/%E6%9F%B4%E5%92%B2%E3%82%B3%E3%82%A6
http://ja.wikipedia.org/wiki/%E3%82%B7%E3%83%96%E3%82%B5%E3%83%AF%E3%83%BB%E3%82%B3%E3%82%A6
(23:26)
man pthread_create とかしてなんも出てこない→ カンで使うみたいなことを繰り返してたんだけど、 しかしなんかおかしくないかということで調べてみると、 pthread_once とかは入っているわけで。
どうも posix のやつは manpages-posix という パッケージに分けられていたようで、 これをインストールしたら無事に見られるようになった。
(23:33)
screen の ^t 2度押しとか無駄だなーと思ってたので Meta とのバインドを適当に .mlterm/key に書く。
Mod+x="\x14\x18" Mod+bracketleft="\x14[" Mod+s="\x14\x14" Mod+t="\x14\x14" Mod+c="\x14\x03" #Mod+d="\x14\x04" Mod+0="\x140" Mod+1="\x141" Mod+2="\x142" Mod+3="\x143" Mod+4="\x144" Mod+5="\x145" Mod+6="\x146" Mod+7="\x147" Mod+8="\x148" Mod+9="\x149"
Mod+d は普通に使ってるのと、 あとまぁ使う頻度が少ないので ^t でいいやということで。
本当は super 使おうと思ってたんだけど mlterm がサポートしてないから自分で実装するのもめんどいし、 あと使ってない Mod+? が結構あるからいいか、と。
参考にしたのは新山さんの設定ファイル。
http://www.unixuser.org/~euske/doc/bashtips/bashrc.html
次は screen 。
http://d.hatena.ne.jp/emacsjjj/20050717/p1
を参考にさせてもらって Return で xclip につっこめるようにする。
bindkey -m ' ' eval 'msgwait 0' 'stuff \040' 'writebuf /tmp/scr' 'exec !!! __scr2x2' bindkey -m ^M eval 'msgwait 0' 'stuff \015' 'writebuf /tmp/scr' 'exec !!! __scr2x2'
__scr2x2 はこんな感じで。 nkf -w が無いと日本語コピペに困る
#!/bin/sh nkf -w /tmp/scr | xclip screen -X msgwait 1
ついでに bindkey -m つながりで
bindkey -m ^v eval 'stuff \004'
をよく間違えるっていうか ^d は覚えにくすぎるので。
あと screen にシステムモニタ出すコマンドは
screen -X hardstatus alwayslastline '%` [%Lw]' screen -X backtick 0 0 0 /home/i/test/screen_monitor -s
なんだけど、これは画面右上の screen でだけ起きるようにしてやりたい。 まぁ sevilwm に問いあわせればいいと思った…
が、なんかそう X の Window から pid をひく方法って無い気がするんだよなー 的な理由で precmd にひっかけた ruby script で sevilwm の focus の当たってる window を調べて… 的なアプローチで適当に処理した。適当。
あーいや別の理由で screen の PID から window を調べるのは いずれにせよ欲しかったんだよなぁ。 screen -x と -r がわけわからんというのがその理由で。
やまぁ /tmp/pid.db とかに screen の pid 使って db 書いていけばいいか… screen-ls とかいうコマンドを作って、
There are screens on: 19611.pts-10.u4 (Attached) mlterm:3 1x1+564+340 vdesk=2 [rdic@/home/i cd '/home/i'@/home/i] 3468.pts-18.u4 (Detached) 3255.pts-2.u4 (Detached) 3236.pts-0.u4 (Detached) 17167.pts-16.u4 (Attached) mlterm:4 1115x709+564+340 vdesk=2 [vi@/home/i
]
とか出るようになった。 まぁとりあえずこんなもんでいいか…
あとなんかたまに mirc が死んでたりとかするし、 そもそも動かしてるサーバの数がもう把握しきれんため、 daemontools あたりの使いかたを覚えるべき。
それと sevilwm の multi display とか、 screen_monitor の cia 化とか
(07:11)
面白いなぁ。
何が面白いって、 はてなとかから適当にコードの無い文章を持ってきて 診断してしてもらうと、 必ず、
という診断が出ること。 個性的とか表現力とかは、単に、プログラム用語のせいかなーと思ったんだけど、 引越し記録 (http://shinh.skr.jp/m/?date=20100601#p02) とかでも 同じ結果が出るんだよなぁ。
適当に他の人の日記とかをはってみると、 だいたい似たような傾向があるみたいだ。 一文が長いとかは自覚してたんだけど、 まぁ別に気にしなくてもいいのかな。
適当に入れてみた中では、 まめさんのこれとかは高評価だった。
http://d.hatena.ne.jp/ku-ma-me/20100322/p4
やりました。 この文章ではなるべく頻繁に句読点を入れるようにしてたのですが、 読みやすいと言ってもらえました。 やりました。
しかしこれ、作家とかと比較してるから、 どんな文章でも表現力豊かで個性的に なっちゃうんじゃないかなー。
(16:29)
http://ja.wikipedia.org/wiki/BNE%E5%8F%82%E4%B8%8A
そういえばよく見かけるなと思って、 少し検索してみたことがあった。 よく見かけるどころか、 海外などでも見たことがあるように思う。
しかし、検索の結果は芳しくなく、 何が何やらわからない、 ということが判明しただけなのである。
…ちょっと硬く書こうと努力したけど、 全然やわらかいのまんまだった。 なんていうかコレ英語とか未知語の数で硬さが決まってるんじゃないかな。 コードとか入ると一気に硬くなるし。
BNE は正直ちょっと面白いなーと思った。 なんというか夢がある。 まぁ迷惑は迷惑なんだろうな。
(19:19)
http://www.youtube.com/watch?v=s5U-SRDD064
via http://d.hatena.ne.jp/ABA/20100609#c1276092770
面白そう。
(19:35)
前から思ってたがこれはダメだ。
> unixcat /tmp/sevilwm_:0.0/info G vdesk=1 sevilwm x=2832 y=1050 vdesk=1 mlterm:4 1114x1+564+340 vdesk=1 mlterm:3 1x1+564+340 vdesk=1 mlterm:0 561x1+564+340 vdesk=1 FOCUSED Emacs:2 1x347+583+702 vdesk=1 Emacs:1 551x348+581+700 vdesk=1 Google-chrome:0 1681x1+1149+861 vdesk=1 Emacs:0 1097x348+581+700 vdesk=1
これの Emacs:0 => Google-chrome の遷移が右でできない。 mlterm:4 の方に行ってしまう。
つまりえーと…
なので、右方向の遷移はえーと
100000 - (dstX - srcX) - abs(dstY - srcY) * 3
で評価されるらしいので、
mlterm4: 98410 Google-chrome0: 98331
となって y の差分が大きいものの、 x の差分が小さい mlterm が勝ってしまう、と。
まぁどう考えてもこの評価関数がひどい。 こんなもので良い理由がどこにも無い。
どう考えても角度を使うべき。 要は角度差が小さくて距離も短い対象が良い。 しかしまぁその二者をどう合成するかはマジメに考えないといけない。
mlterm
irb(main):015:0> Math.atan2(698-171, 1387-1396) / 3.14159 * 180 => 90.9784675354791 irb(main):013:0> Math.sqrt((171-698)**2 + (1396-1387)**2) => 527.076844492338
chrome
irb(main):016:0> Math.atan2(432-171, 2225-1396) / 3.14159 * 180 => 17.4759534949213 irb(main):017:0> Math.sqrt((171-432)**2 + (1396-2225)**2) => 869.115642478031
直感的に角度は2乗するといい気がする。 ただ degree を単に2乗すると 30度のズレが 900 ピクセルの距離に相当してしまうので、 うーんこれはちょっと大きすぎるかもしれない。
ちょっと実験してみると、なんか意外な感じで、 15 度くらいずれてたらもう飛ばしてくれてもいいよと感じるみたいだった。 それだと角度の 2 乗でも足りないか…
実装してみた。 なんか普通に角度の自乗プラス距離で悪くないみたいだ。 しばらくこれで試してみようと思う。
(22:14)
xclip のかわりにコレを使うと gtk のクリップボードにも反映されるみたいだ。
http://highmtworks.spaces.live.com/Blog/cns!3B475A7E547A2260!277.entry
より。
(22:39)
前 | 2025年 7月 |
次 | ||||
日 | 月 | 火 | 水 | 木 | 金 | 土 |
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 |
全てリンクフリーです。 コード片は自由に使用していただいて構いません。 その他のものはGPL扱いであればあらゆる使用に関して文句は言いません。 なにかあれば下記メールアドレスへ。
_ こーのいけ [トップの人(例だとBさん@9B)は自分で更新投稿できないとか。 あと,問題作成者に「回答者を楽しませる」ことでポイン..]
_ shinh [連続投稿できないのは問題一つならいいんですが、問題が複数あった時に更新合戦が起きた問題と独走ができた問題で、独走の方..]
_ Gimite [data:って確かIEが対応してないですよね。なので微妙なような。(結局両方用意しなきゃいけないし、使える方が少数派..]
_ shinh [あー IE ですか… IE9 くらいだとあるんでしょうかね。あと twitter くらいの規模だったら両方用意しても..]