タグ

ブックマーク / shinh.hatenablog.com (10)

  • 開発イテレーション偏重 - 兼雑記

    開発イテレーションを早くすれば、かなりの問題が勝手に解決される、と信じています。なんか最近、他の要素を軽視しすぎていたり、特にイテレーション速度に影響しなさそうなことすらしている気がしていて、信仰とかのレベルかもしれない、という気がしてきたので、ちょっと書いてみようかなと。主に C++ の話です。 仕事とかしてると良い判断力が求められたりしますが、判断というのは結構難しいですよね。アプローチ A と B で悩んだ時に、手が速ければ両方できたりします。開発イテレーションを無限に速くすると、必要とされる判断力はゼロに漸近していきます。やったね。 2手で変更の正当性を高速に確認できるようにする make (かその他のビルドコマンド)てやったらビルドができて、 make check (かその他のテストスクリプト)てやったら遅くないテストが全部走る、という体勢が好きです。試すためにはあっちのディレク

    開発イテレーション偏重 - 兼雑記
    odz
    odz 2019/09/13
  • お天気プロコンと圧縮アルゴリズムについて - 兼雑記

    https://beta.atcoder.jp/contests/wn2017_1/standings むっちゃ僅差で2位。残念。この212点差がどのくらい僅差かというと、最後にいじってたところにもう2行変更を入れることを思いつけていれば、軽く2000点は差がついて勝ててたと思いますし、そうでなくても後30分もあれば実装できた細かいヘッダの圧縮で逆転できた量です。自分に悔しがる気持ちというのがこれほど残ってたのか、と驚くほど悔しいです。でも勉強になったし楽しかったです。 やったことを書きつつ、そもそも圧縮アルゴリズムについて、私としては感動的だった知見を得られたので、書いてみようかと思います。 今回のコンテストは、チャンネル1つの(RGBじゃなくてグレースケールだと思えば良い)画像を64枚を可逆圧縮するというものでした。その64枚の画像は同じ座標について光の波長と時間を変えて気象衛星が観測

    お天気プロコンと圧縮アルゴリズムについて - 兼雑記
    odz
    odz 2018/01/16
  • 就職して9年が過ぎる - 兼雑記

    転職して7年が過ぎたというのを読んで気づいたんだけど、そろそろ入社後9年が経過したらしい。僕は結構長い期間をここで過ごしたことになるんだなと思った。ちょっと以前のことを振り返ってみようと思う。言うまでもないけどこれは僕の書ける範囲での個人的な感想と体験談であって会社の見解等を表しているものではない。 きっかけ わりと重要でない Borgチーム (の周辺) いつのまにやらBorgという名前を普通に言って良くなっている。嬉しい。まあ当時もぶっちゃけ、秘密だから出してないっていうよりは、単に誰もアカデミア的なキャリアに興味が無いから出してなかったんだと思う(私見)。 さて、当時Borgというかクラスタマネージメントのあたりでは、コンピュータのリソースて適当にたくさん使ってるけど、これ節約したらすっげー支出減ったりしない?みたいなのがホットで、なんかとりあえず色々な人々が色んなことをやっていた。い

    就職して9年が過ぎる - 兼雑記
    odz
    odz 2016/03/11
    とりあえずやってみる、ということの大切さみたいな話か
  • 2008-05-25 - 兼雑記 - Yajit

    ふと思い立って YARV からの JIT コンパイラを Xbyak で書き始めてみました。 x86 と x86_64 を両方サポートするつもりだったけど、とりあえず適当にやりすぎて x86_64 に依存しまくってしまったのでとりあえず現状そっちだけ。今度 x86 対応はちゃんとやる。あと WindowsMacOSX もたぶんまだだめ(調べられる環境すらない)。 http://shinh.skr.jp/tmp/yajit.tgz YA なのはなんか他にやってた人いるみたいだし、私の記憶が確かなら YARV にも昔そういう最適化フラグあったような。実装されてたかは知らんけど。 とりあえず動くコードもあれば動かんコードも…って感じです。速いかというと…遅い気がする。とりあえずブロック呼び出しごとに mprotect してるとかがあまりに問題外すぎる気がする。とりあえずこんなとても恣意的なベ

    2008-05-25 - 兼雑記 - Yajit
    odz
    odz 2008/05/25
    Ruby の JIT コンパイラ
  • hash - 兼雑記

    http://www.jmuk.org/diary/2008/04/09/0 http://www.kt.rim.or.jp/~kbk/zakkicho/08/zakkicho0804a.html#D20080408-2 http://www.kmonos.net/wlog/84.html#_1049080409 まぁなんかしんどいのでハッシュでも考えるかと思ってたら kinaba さんが素晴らしいことを書いてたというのが現状なのですが、とりあえずどうでもいいとされた速度を測ったのではっておこうかと。 その前に VC の hash_map って少なくとも昔は衝突が起きた時に set みたいに突っ込む仕組みだったので、比較演算が必要だったように思うのでそういう意味でも VC のはひどいのかもしれない。 で、なんかきむらさんとこあたりで引用されてたベンチマークのコードは、数値をインクリメンタル

    hash - 兼雑記
    odz
    odz 2008/04/09
    map と hash_map の速度について
  • 256 color mlterm - 兼雑記

    追記: upstream にもっと良いバージョンのものを入れてくださったので、 CVS のバージョンを使ってください。 http://sourceforge.net/scm/?type=cvs&group_id=40891 ちょっと前に作業してた mlterm の 256 色化を上げときます。 http://shinh.skr.jp/dat_dir/mlterm-2.9.4_256.patch 作っといてなんですが、よく考えると w3m-256 とか欲しいんだろうか…とかいうことと、 ml_char_t が 64bit に綺麗におさまってたのがあふれてしまって悲しいとかいう理由で私自身は使わない気がするのでした。少なくとも 64bit におさめないとだめだ。今だに LANG=EUC-JP な私のような人で、 64bit におさまってないのがどうしても気になる偏執狂の方は、 mlterm/m

    256 color mlterm - 兼雑記
    odz
    odz 2008/03/13
  • 2008-01-03

    ずっとある程度まとめて勉強したことが無かった、 SSL について軽く調べてみた。あんま深く調べてないので真に受けんで下さい。 まずはとりあえずクライアントとサーバーを作る。 OpenSSL というとオレオレ認証局を作るのがめんどいという感じだけど、 Debian だと # apt-get install ssl-cert # make-ssl-cert generate-default-snakeoilこんだけで /etc/ssl/certs/ssl-cert-snakeoil.pem と /etc/ssl/private/ssl-cert-snakeoil.key ができる。ちゃんと作るなら /usr/share/ssl-cert/ssleay.cnf を編集して使えばいいんだけど、これもまぁすごい簡単で、いずれにせよずいぶん楽にできるんだなぁと思った(なんか昔 expect とかで作っ

    2008-01-03
    odz
    odz 2008/01/05
  • wgrep, wlocate, wfind - 兼雑記

    そういうコマンドのコンビネーションでなんかちょっと気の効いた機能を自分用に作って使う…っていうような、 Unix の考え方みたいなそんなものを僕がなんとなく理解していく過程で印象に残ったサイトに以下があります。 http://www.mnet.ne.jp/~tnomura/ この中の wgrep や wlocate は自分で再生産しつつ未だに使っているツールだったりします。どういうものかっていうと、 grep やら locate やら を実行して、その出力をアンカータグに置換して w3m に渡す、ってだけのもの。 これがなんかシンプルなのに非常に便利で、 hoge って関数の使い方を知りたければ wgrep hoge *.c とかして出てきたファイルを w3m で普通にリンク辿って順に閲覧していき、いじりたくなったらエディタ読んで編集…とかが流れるようにできる感じ。 でまぁ最近車輪を再生産

    wgrep, wlocate, wfind - 兼雑記
    odz
    odz 2007/04/30
  • プロファイラ

    あんま日語情報無いものも多いので適当に要点だけまとめて書いてみます。

    プロファイラ
  • ラクに vector を作る - 兼雑記

    そろそろ Google Code Jam です。 Google Code Jam は入力とかが vector とか多い気がするので、 vector の初期化を楽にできるようにしておくとテストとかしやすいかもしれません。昔 Boost sandbox とかでも見た気がしますが、このくらいなら自分でサックリと雑に。 #include <vector> #include <iostream> #include <algorithm> #include <iterator> #include <assert.h> using namespace std; template <class T> struct vector_ : public vector<T> { vector_() {} template <class U> vector_(vector<U> v) { copy(v.begin(

    ラクに vector を作る - 兼雑記
    odz
    odz 2006/09/07
    vectorを簡単に作る
  • 1