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

はじめてのにき

ここの位置付け

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|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ToDo:


2013-06-05

_ haswell さん

買ったから遊ぼうと思ったんだけど、いろいろまだせっていちゅう。とりあえずなんか静かなのは良い。

とりあえず debian 入れて /home の移動とかして、 apt で欲しそうなもん適当に入れまくった。

苦労したのは dual display の設定。 windows で遊ぶかぎり dual display できるはずなので、頑張れば動くはず…とがんばった。

どう見ても Xorg が haswell を認識してないので、いろいろ新しくする必要ありそうだなーと。ネットで見る限り linux 3.8 以降が必要的なことが書いてあったので、 sid から 3.8 を入れるとドライバがイマイチぽかったので、 sid から 3.9-1 と r8168-dkms というのを入れる。

まだ haswell ちゃんだめぽいので、 xorg も新しくしようと思う。 sid のやつ入れてみた感じだと、まだ haswell という文字が見えないので、しゃーないと experimental 。

結局

sudo apt-get install -t experimental xserver-xorg-video-intel
sudo apt-get install -t experimental libdrm-intel1
sudo apt-get install -t experimental xorg
sudo apt-get install -t experimental gnome
sudo apt-get install -t experimental libgl1-mesa
sudo apt-get install -t experimental libgl1-mesa-glx
sudo apt-get install -t experimental libgl1-mesa-dri

と入れたところで dual display になった。デフォルト教の人に怒られそうなことやってるな…と思いつつも、途中特に起動しなくなったりしなかったあたり、最近の debian さんはよくできてるなあ…とか思う。

自分でコンパイルしないといけないものとして、 sevilwm と w3m インストールした。

~/.Xsession を動かかす方法がよくわからなかったので、

$ cat /usr/share/xsessions/sevilwm.desktop
[Desktop Entry]
Type=Application
Encoding=UTF-8
Name=sevilwm
Exec=/usr/local/bin/sevilwm
NoDisplay=false
X-GNOME-WMName=sevilwm
# sevilwm doesn't talk XSMP yet, so don't start in the WindowManager phase:
X-GNOME-Autostart-Phase=Applications
X-GNOME-Provides=windowmanager

などと適当に足す。本当は .Xsession 動かして起動時に色々画面設定とかやって欲しいんだけど、まぁとりあえず良いこととする。

そろそろ haswell ちゃん自体で遊びたいけど、眠いし根幹治療とやらをしている歯の奥が痛いので寝る…

(01:54)

_ 痛すぎ

ちょっと笑っちゃうくらいいたいな。ぐぐるのそういうもんらしいが。

もらった鎮痛薬切れたからバファリン飲みまくってるけど、先週は効いてたのに今は少しマシになるくらいのレベルだ…

(04:29)


2013-06-09

_ C pangram

ちょっと考えたけどそうとうなにもできないな。

なにもしないコードを書けるかですらあやしい。 @#`"' あたりは捨てれるんだろうか。

(10:05)

_ getauxval

auxv を取ってくる関数だけど、この覚えにくさは異常。まぁ普通のユーザコードで取ってきたいことがあるのか知らんけど…

man 見てるとなんでこんな情報渡してんだろってのが結構多いな…ざっとながめてみる

  • AT_BASE: 普通に無いとこまる
  • AT_BASE_PLATFORM: 謎。 glibc は使ってない
  • AT_CLKTCK: 謎。あんまいらない気がするんだけど…
  • AT_DCACHEBSIZE: 謎。 glibc は使ってない
  • AT_*(U|G)ID: LD_PRELOAD 使っていいかの把握で必要
  • AT_ENTRY: 普通にあっていい、というか ehdr がマップされてない可能性考えると必須なのか
  • AT_EXECFD: 謎。 glibc は使ってない
  • AT_EXECFN: 謎。 glibc は使ってない
  • AT_FLAGS: 謎。 glibc は使ってない
  • AT_FPUCW: どうも起動時に FPU モードの値調整使ってる
  • AT_HWCAP: これも CLKTCK みたいな感じでいらない気がするんだけど
  • AT_ICACHEBSIZE: 謎。 glibc は使ってない
  • AT_PAGESZ: あっていい
  • AT_PHDR: 無いと困る、よね
  • AT_PHENT: 無いと決め打ちに
  • AT_PHNUM: 無いと困る
  • AT_PLATFORM: いらなさそうだけど結構使ってるな
  • AT_RANDOM: いらんだろーと思ったら address randomization に使ってる気配
  • AT_SECURE: LD_PRELOAD など
  • AT_SYSINFO: VDSO 置き場らしい、なるほど
  • AT_SYSINFO_EHDR: EHDR て普通先頭にある気がするから別に送る意味はなんなんだろ
  • ATUCACHEBSIZE: 謎。 glibc は使ってない

(14:34)

_ 医者のケンカ

http://www2.ha-channel-88.com/soudann/soudann-00006495.html

なんか意識の高そうな歯医者が言い争ってて面白い。

しかしこのスレッドでは意識が高い医者が「文献を検索してるのですが見つからず…」とか言ってる中、そこらの主婦が「論文見つけました〜」とか現れて、しかし医者は「おお〜」と言う以外に中身の議論をせず、その主婦が「論文訳しました〜」医者「おお〜」みたいな感じで、なんか恥ずかしい記録な気がするんだけど…

あと歯医者は英語の論文なんて一回も読んだことない人がほとんどとか歯医者が言ってて、うーんそんなもんなのかーという。

プログラマもそうだと思うが、資格も無い職業と比べられてる時点でイマイチすぎる感が

(21:08)

_ kaigi

はそういえばだいぶビジネスぽい感じになったのかなぁ。比較的僕みたいな趣味人にはどうでもよさげなのが増えた気がする。まあ単純に ruby とか結構な回数起動するけど、まぁ難しい用途にはあまり使ってないから興味がないというのもある。

並列並行は過渡期というか、まじめに使いはじめてパフォーマンスとか気になり出してきて、なんか並列並行の議論を遅れてやってる感が強い気がする。

あとなんだろ、外人の人でカリスマ見習いみたいな人が結構いるのかな。まぁ開発方法論とか興味が無さすぎるから悪口にしかならないのでやめる

(21:47)

_ kiai

そういえば @nari3 さんに ICFPC とかよく頑張りますね的なこと聞かれた。その場でも答えたんだけど、ああいう時にだいたい僕は最初の1時間でやべー問題読み終わってすらいねーと思ってて、3時間くらいで問題意味わかってすらいねーと思ってて、6時間くらいでやっぱ賢いヤツには勝てんよ、と多かれ少なかれ、思ってて、まぁなんか終わってから感想ブログとかを読むと他の人も同じようなこと思ってたんだなと安心する。

まぁそれでなんである程度の成績がおさめられるかっていうと、諦めが悪いのと暇だってのしか無いと思ってて、まあなんか特別賢いコードを書いてたり、特別高速にコード書いたりはしてないと思う。実際僕が出たほとんどの ICFPC で lightning は本戦よりかなり悪い成績なはずで、まぁちゃんと3日間めげずにやるってのが重要っていう。あとその際に「ほげほげやればいいんだろうけど、できるかわかんないからふがふがでいいや」みたいなのは、間に合うと信じてほげほげをやっちゃった方がいいというのがあると思う。特に疲れてくると、プログラマは動いてる部品の改良が好きだからローカルミニマムに陥りがちで、なんか新しいのをはじめる自信も気力も無くなってくるけど、まぁそのへんごまかしてやってしまえば案外なんとかなる、気がする。

話が微妙にそれた。さてでは暇はどうやって確保しますか、って言われたら所属期間の休みを取るしか無いので、どうやって諦めの悪さを確保するかってのが本題なんだった。

諦めの悪さってのは、訓練できるし積極的に訓練するべきものな気がする。訓練のしかたは、なんか俺でもちょっと諦めずやってたらなんかできた、みたいなのがある気がする。

だいたい今でもなんかこういうプログラム書きたいなーと書き始めると、5割くらいは挫折してるんだけど、プログラム勉強しはじめた頃はもっと失敗率高かったと思う。そういう頃のどうしようもない失敗群でなんかよかったなぁと思ったのは自分が使える程度の window manager ができたくらいか。当時は X の関数ってなんでこんな引数多いんだろうなあ意味がわからないよと思いながら、他の window manager のコードをコピペしたりして動かしてたと思う。 async とか sync とか意味わかってないから、そのへんのパラメータはたいてい他のマネしてるだけだったと思う…

その window manager にしたってたしか4回目くらいでやっとやりたいことができた感じだったと思う。最初は icewm いじって、 twm いじろうとして、 scratch から書こうとして、そんで evilwm ベースにしたと思う。まぁそんなでも、一応自分がやりたかったことができると、案外やればできるんだなー的なことを思って、諦めの悪さが身につく…んじゃないかな…

しかしそんだけあれこれ失敗できたのは暇があったという理由がでかい気がするしあんま意味ない議論だなぁと書いてから思う。だいたいこういう偉そうに俺の場合こうやったらこうなった的な話はなんの役にも立たないと相場が決まっていてですね…

(22:19)


2013-06-10

_ コード読むと良い

そういえばそんな偉そうなことも言った気がする。けど別にコード読むのが特別良いとは思ってない。まぁ他の人が僕に比べてコード読まないと感じることは多い。そうそう shi3z さんの最適化の話とかすごいたくさんはてぶとかついてて、 twitter でもたくさんコメントされてたのに、誰もかけ算の回数数え間違ってると指摘してなくて、あの時もいやーホントみんなコード見ないもんだなと感心した。いや、僕も途中とかめんどくさいから最適化された後とされるコードしか見てないけど。

けど僕もそんな四六時中読んでるわけでもなくてもっともりもり読んでる人もいるし、あと読む派の人も色々ある気がする。

読む派の色々は、最初から最後まで全部読んでく人と、おおまかな設計とかを調べるのが好きな人、気になるとこの実装だけ細かく読む人、みたいなのがある気がする。僕は最後の派閥で、おおまかな設計の把握とかはあまり得意じゃなくて、森を見ず木だけ見た的な理解でカンでコード書いてて文句言われることが多い。

だいたいパターンとしては、なんか面白げな話を聞いて、「えっ、そんなことできるの」って思って、「できるとするとこんな感じでやるのかなー」とか妄想してから、その妄想があってるかの答えあわせにコード読むとか、そういうのが多い気がする。んで僕の場合コード>ドキュメント>論文みたいな優先順位で調べるみたいで、コードの優先順位が高い。

コード読んだりするのが新しいことを学ぶ効率がいい方法とはあんまり思えなくて、実際効率悪いと思う。ただ、コード読む速度速いと共同作業に強くなるので、まぁ労働者としての能率は上がるように思う。でまぁ労働者としての能率が高いと面白いことできる可能性が増えていってそれはそれで勉強になるので良いという側面はあると思う。

でも、まぁ普通にネット見たり論文読んだり仕様書読んだり話聞いたり本読んだりの方が学習効率自体は良いケースが多いと思うんで、あまりコード読むのがすごく万人に勧められるかっていうとそうでもない。

そして当たり前だけどやりたいことによるわけで。僕とかは割と広く浅く知ってると嬉しい派なのでざっくりとした理屈がわかるように勉強するけど、まぁなにかコレ一筋みたいなジャンルがある人は論文とか読んだ方がいいんだろうし、とか。

ところで僕はコード読むのが好きなので、もっとコード読む人が増えるに越したことはないので、コード読む楽しさとかを宣伝するといいんだろうけど、なかなか。

(01:54)


2013-06-16

_ C++Now! 資料

http://partake.in/events/c09cd407-4e60-4a9c-9338-b3f968d30568

なんか正直期待してたより面白い資料が無いなって感じだった。

https://github.com/boostcon/cppnow_presentations_2013/blob/master/tue/Cpp11_SweatingTheSmallStuff/Cpp11_SweatingTheSmallStuff_CppNow_13.pdf?raw=true

小さい変更色々。 {} での初期化、 union 、 enum 。 union は誰得感が強いけど他二つはまぁいい感じ。

https://github.com/boostcon/cppnow_presentations_2013/blob/master/tue/binary_compat_for_cpp_devs.pdf?raw=true

https://github.com/boostcon/cppnow_presentations_2013/blob/master/mon/qt_event_loop.pdf?raw=true

Qt 話を二つほど。 ABI とかはめんどくさい話だなあっていう。

thread って入ってるやつは全部ながめたけど、見れるやつは全部どうでも良いかなーという感じだった。

http://homepage1.nifty.com/herumi/diary/1306.html#15

bag のやつは、よく見ると一応理想的な状態ならこれ、っていう線をひいておいてくれてたので、一応完全に線型に scale する場合との比較はできるようになってた気がします。がまぁテーマが単なる thread pool にしか見えなかったんですが。

https://github.com/boostcon/cppnow_presentations_2013/blob/master/thu/tmpdebug_cppnow13.pdf?raw=true

warning 埋めて template meta programming debugger とか作ってた人たちが clang いじる方針に変えてまだやってるぽい。

あとは poco ってのが boost と違って親しみが持てるコードで良いと教えてもらった。言われてみれば前にもどこかで聞いたことがある名前だったかもしれない。ざっとコード眺めてみた感じではぱっと見良い。ネットワークライブラリ出身らしいけど、イベントループが見当たらないのがへんな感じ。 Runnable とか作るための部品は結構あるぽいからなんとかなるかもだけど、 signal とかもやってなさげなのであまりやりやすくは無いかな…

ていうかそういうのしたかったら Qt ていうのが一番適切な気もする…

(20:51)

_ TM for C++

そんなのよりやっぱ普通に C++ は work group かなんかの論文だかなんだか読んでるのが面白い気がする、よくわからん子が書いたスライドより質が一定してるわけで…

でざっと TM について目を通す

https://sites.google.com/site/tmforcplusplus/

http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2012/n3341.pdf

C++ への提案はこれがみやすそう。 GCC だと __transaction_atomic, __transaction_relaxed, __transaction_cancel あたりは実装されてる。 libitm ってのが Haswell なら HTM 使うかがまだよくわかってなくて、たぶん使ってくれる command line option がある気がするんで試してみたいと思っている。

http://transact2013.cse.lehigh.edu/gottschlich.pdf

C++ みたいな generic programming と lock の相性が悪いって話。分離されてたコード片の組み合わせ方によって、 lock の順番が変わる、ってのは理解ができる。でもまぁ lock が必要なようなところで template meta programming するのはそもそも筋が悪い気がするんだけどな…

http://static.usenix.org/event/hotpar09/tech/full_papers/boehm/boehm.pdf

TM はそのままプログラマに見せるんじゃなくて、 TM を使って global lock 的な semantics 見せとくのが良いよ、的な話、かな。例を見るとわかりやすい気がする。

(21:01)

_ chrome build

Fedora release 16 (Verne) Linux 3.4.11-1.fc16.x86_64 Intel(R) Core(TM) i7-2630QM CPU @ 2.00GHz x8 7.7GB

で 55m50s

Debian GNU/Linux jessie/sid Linux 3.9-1-amd64 Intel(R) Core(TM) i7-4770 CPU @ 3.40GHz x8 7.7GB

で 25m50s

だいぶ速いとは言える。

(21:46)

_ 費用対効果とか

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

一連の教育は他のとこも含めてまぁ…よくわからんとして、最後の「「早すぎる最適化は諸悪の根源」という考え方を教育してほしい」ってのは、まぁプログラムから学べる一般的な事象が結構あるっていうひとつのインスタンスかなぁ、と。

そのインスタンス自体は、たぶん費用対効果を考えろ、って話で、このへんの概念は割と義務教育が教えてるような、真っ向から反してるような…ってイメージのあるところだと思う。例えば試験のためだけに英単語覚える必要があるなら、人間の記憶力の構造的に試験の直前にだけ覚えるのが最も効率が良いと思うんだけど、日頃からコツコツ勉強してる人が美談として語られたりするあたり、 mame さんに書く通りまさに学校が反してる感もあるな…

他にあるのは分割統治とかかな。一回で2個所変更すると大変なことになるから、1個所ずついじって試しましょう、みたいなのも。これもまた別にプログラムじゃなくても学べることではある。

プログラム教育に力を入れるべきか、ってのに興味が持てないのは…

まぁだいたい義務教育で教えてることって、実学なようであり別に役に立たないようであり、よくわからんもんが多い、気がする。個人的には実学的な意味合いよりは、もうちょっとメタなレベルの経験値稼ぎの方が重要な気がしてるので、まぁ特定の教科が実学として有用かとかは比較的どうでもいい。ちなみにここで実学ってのは即戦力というかそういう意味で漠然と使ってますたぶん本来の意味からは少しずれてる。

メタなレベルの経験値稼ぎってのは具体的には、数学の問題について考えた時間より、数学の点数を効率よく上げるにはどうすればいいだろうか、と考えた時間の方が役に立つ気がする、っていうような話。

でまーそういうメタなとこってのはイマイチどこから学んでんだかよくわからんし、たぶん人によってきっかけが色々違うんで、何教えてもいいってのはある。

とはいえどうせ教えるなら実際に使うかもしれない知識を教える方が良い感はあるんだけど、それにプログラムが含まれるのかはサッパリわからないので、興味が持てない

(22:22)


2013-06-18

_ 費用対効果

https://mobile.twitter.com/mametter/status/346472841606205440?p=p

あ、これはその通りですねー。なんかプログラム用語使わない短い言い換え無いものかな。

(00:40)


2013-06-19

_ not quine

http://golf.shinh.org/p.rb?Not+Quine

leonid さん案に少し提案を入れて足した特殊問題。

Quine より短くなるんだなあと興味深い。

(01:23)

_ typedef class : public B {} A;

を class A : public B {} の代わりに使えって話。

https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-dev/PfJMC5bCiOU

そのあとの前置セミコロンと if のケースも含めておもしろい…

(21:59)


2013-06-22

_ ホーリブラウニー

エクセルサーガがそういえば終わってるらしいということで、どう終わってんだろ…と買ってみたらまあまあそれっぽい終わり方してて感心した。エクセルサーガはそれほど好きでもないけど。

こっちは割と好きな、ホーリーブラウニーもなんか終わってるぽいってことで買ってみたら、こっちもそれっぽい終わり方してて感心した。

なんか無茶苦茶な話な割にはなんかまとまってる感じのする終わりかたしてるんだよな…

(22:42)


2013-06-23

_ ループでたしざん

http://d.hatena.ne.jp/embedded/20130622/p1

前者はへーて感じ。

後者は素人目にはやらない方がいいんじゃないかな…と前から思ってた gcc でもやってくれる最適化だけど、 4.8 だとやらなくなってたみたいだった。

(19:15)

_ さよなら海腹川背

33/50

なんか結構むずかしいな。新ロケットは慣れた。やりやすくなってていいんじゃないかなと思う。モーションストップは邪魔だったのでボタンから消したけど、タイムアタックとかでは有利に使えたりするのかな…

強い方のカニが強かった。というか最初に会ったボスだったからキツいゲームだなーと思ったけどそんなこともなかった。

やってると氷うざいなと例のごとく思うわけだけど、ルアーがくっつかないって特徴とすべるって特徴のうち、ルアーくっつかないだけの壁って別にあってもいい気がするんだけど、無いのはその方がルールとしてシンプルだからってことかな。

あとついさっきキャラ差があってチェックポイントとか持てる子がいると気付いた。とりあえず使わないとキツくなるまでは、無しでいいかな…

(20:29)

_ haskell 入門

http://d.hatena.ne.jp/notogawa/20121201/1354389374

なんか今まで、僕が見たことのある haskell の解説だとか、いいところ紹介で面白いなと思ったのは全て非 haskell 使いが書いたものだったと思うんだけど、これはなんかはじめて haskell 使いの人が書いたものに感心した気がする。

トップダウンから書いてくとか、仕様から実装を起こしてく、みたいなのはこういう感覚なんだなぁと。

それでも長いから途中読み飛ばしたりもしたけど…

(21:06)


2013-06-28

_ 海腹川背

全ドア全リュック。次は最初からやるモードで赤い線を全コースにひくとかするといいんですかね…

(02:03)


2013-06-29

_ sanvein tas

http://www.youtube.com/watch?v=VpNrpcb8iQM

まあもともとこういうゲームだよねって感じではあるけど、まあはやいな…

しかしかっこいい…

(11:23)


2013-06-30

_ 海腹川背

全ドアは今までより簡単だってのはそうかと思うんだけど、ボスのうっとうしさ的に通しでクリアを全部やるのはかなり大変な気がするな。とはいえなんか中間地点があるからなんとかなるのかな…

弱い方のおたまとカニはやった。強い方のカニはできる気しなくて、強い方のおたまはまあたどりつければって感じか。コース的にはフグ楽そうではあるけど、イマイチフグを安定して倒せるもんなのかよくわかってない。

(03:06)

_ MVP tefel

http://www.twitch.tv/wcs_europe/c/2476028

SC2 の最近あったこの逆転がおかしい。見返すとまあ基本謎なんだけど、いくらなんでも Z がだめだめすぎる感がある感じかな…

(03:23)

_ ICFPC

しかしこれは絶望的な日程だな… ICFPC ってやつは国内にいない時点でかなり厳しいと予想されるんで、今回はスルー気味な感じになっちゃうかなあ…無念

(20:48)

_ あー

こういう時こそ初チームというのを試すという手があるか

sed 担当はまかせろ

(20:50)


2013年
6月
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

search / home / index

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

shinichiro.hamaji _at_ gmail.com / shinichiro.h