WebPとJPEGの圧縮はどこが違うか

WebPはGoogleが開発した静止画ファイルフォーマットです。 圧縮形式としては大きく2種類あって非可逆圧縮のLossy WebPと可逆圧縮のLossless WebPです。 用途で考えるとLossyはJPEG相当、LosslessはPNG相当と言えます。 どちらにしても拡張子は.webpが使われ…

Web Workerをローカル環境でも使う

Web Workerはブラウザ上でバックグラウンドスレッドを使う仕組みです。UIの応答性を保ったまま画像処理のように時間のかかる処理を実行できるため、画像比較ツールでは積極的に利用しています。 var worker = new Worker('worker.js'); のように簡単にワーカ…

画像の3次元色分布をグリグリ回すツール

コツコツ開発している画像比較ツールに「3次元色分布」という機能を追加しました。これは、画像のピクセルをRGB色空間の中に3次元プロットする機能で、マウスでグリグリ回せます。楽しいです。 普段見ている写真が意外と狭い範囲の色しか含んでいないことと…

画像比較をたすけるツールを作った

画像を並べて比較することに特化したビューワを作ってみました。 Compare.htmlで画像を比較している様子デモページはこちら→ https://tshino.github.io/compare/compare.html コード→ https://github.com/tshino/compare ウェブアプリなのでブラウザ上で動き…

効率的な文字列連結

3つ以上の文字列を何気なく + 演算子で連結すると、必ずしも効率的には動作しないコードになります。 std::string a = "Hello"; const char b[] = "World"; char c = '!'; std::string x = "\n" "<message>" + a + ',' + b + c + "</message>"; 実際は、std::basic_string の実…

C++で構造体の名前付き初期化

C言語のライブラリを使っていると、構造体をデフォルト初期化してから、一部のメンバー変数だけ書き換えて利用することがしばしばあります。 option o = {}; o.name = "hello"; o.size = 1234; func(o); option 構造体のメンバー変数の仕様は一部だけが決ま…

ループ変数を回すだけのFORマクロ

普段、配列と std::vector ばかり使うので、BOOST_FOREACH よりも、単純にループ変数を回すコードが簡単に書ける方が嬉しい。 for (int i = 0, n = v.size(); i < n; ++i) { ... } FOR_INDEX (int i, v) { ... } そのためのマクロを書いてみた。 #include <cstddef> #</cstddef>…

ブラウザのスクロールを半画面にしてみた。

ブラウザでSPACEキーを常用しているけど、ほぼ1画面分スクロールしてしまうので境界付近が読みにくいし、図や写真が分断されたときはカーソルで調節したりしないといけないのが不便だと思う。スクロール量を調節できるブラウザはあるのかな。 Firefoxにはそ…

GCCのエラーが見にくいので色を付けた。

コマンドラインでGCCを使っていると、エラーや警告が見つけにくくて不便だと思ったので、色を付けて強調してみた。あと、makeの "make[1]: Entering ..." っていう行がわりと目障りなので、行全体に色を付けて逆に目立たないようにしてみた。 function make_…

書けるコードと書いたコードの間

今はたくさんの「書ける」コードを書くのが忙しい。 「書ける」コードと「書いた」コードの間を埋めるには、ひたすら時間が必要だと思った。もっと「書けるかどうか分からない」コードにチャレンジする時間が欲しい。

はてなの日記が放置状態。

最近は、思いついたことをtwitterでつぶやいて満足してしまう。

さいきん読んだ本(3)

しばらく前に読んだ本で、感想はあやふやなので書かない。メモとして、タイトルだけ書いておく。「ソフトウェア開発201の鉄則」「なぜシリコンバレーではゴミを分別しないのか?」「ソニーは甦るか」

さいきん読んだ本(2)

「なぜ、仕事ができる人は「効率」を無視するのか?―逆転発想の時間術」ぼくはあれこれと「効率的に」てきぱきとこなすのは苦手なので、非効率なことをとことん肯定的に書いているこの本に、親近感を覚えた。べつに仕事ができる人ではなくて、たんに要領が悪…

さいきん読んだ本

読むのが遅いのでなかなか1つの本を読み切らないのだけど、ここ数か月はわりと読んだ気がする。読み切った本をメモ。「ネットで人生、変わりましたか?」自分が「ナナロク世代」ど真ん中なので共感してしまうのかも。この本には熱い人たちがたくさん出てくる…

svn upする前にそのdiffを全部読む

最近のこだわりは、他の人がコミットした部分の差分をすべて読むこと。モジュール単位でまとめてコードレビューとかじゃなくて、毎日最新の差分を追っかけている方が落ち着く。もちろん前提としてそれなりの規模の小ささがあると思うけど。ほとんどのメンバ…

メンバ変数の強調表示をしよう。

半年くらい前に、ふとテキストエディタの強調機能を使って、C++のメンバ変数に色を付けてみたら、これがとても良かったのでおすすめする。数10行あるメンバ関数のコードを表示したときでも、その中で扱っているメンバ変数が、ぱっと一瞬で把握できる。それが…

先を見据えないものづくり

どうも最近、自分の中で、趣味のものづくりが盛り上がらない。「何か、こういうものを作りたい」「こういうものを作らないといけない」という風に考えてしまう。具体的なところでは機能とか性能とか。抽象的なところでは作品の意義とか役割とか。あるいは人…

フックって大変

Win32のフック機能(SetWindowsHookEx()とか)を試してたのだけど、ちょっと失敗すると簡単に、PCの再起動が必要になって大変。WM_WINDOWPOSCHANGED とかをすべてのウィンドウについてフックする実験をしていたときに、うっかりメインプログラムが例外を起こ…

「口数が少なくて」

と、書いてあるのを「こうすうがすくなくて」と読み間違えた。

仕様

仕様が曖昧なままだったら、必要な機能だけ作れ、っていわれても無理だよなぁ。まわりのひとが書くコードを見ていると、そんな機能要らないとか、そんな構造要らないとか思うことばかり。どうしてだろう?っていつも思っていたけど、やっと答えにたどり着い…

YAGNI(今必要な機能だけを作れ)

You aren't going to need it.(それは必要にならない)XPの言葉だそうで、さっき知った。プログラミングであまり先のことを、例えば再利用性とか考えすぎると、当てが外れたときに余計な複雑性が残ってしまって良くないという教訓らしい。ぼくも学生のころ…

継続とかFiberとか

「継続」という用語を知った。なんとなく知ったつもりになっていたC#のイテレータの話とか、Fiberのこととかだいぶよく分かった。継続を使った非同期処理の簡単な記述とか、Rubyのあやしいcallcc、Ruby 1.9でサポートされたFiberのこととか。Fiberは勝手にコ…

帰り道にふっと、風が春っぽくなった。そう感じたのは、冷たくないからか、花の匂いがしたからか。それと同時に突然、ちょっと元気がわいてきた。そうだ、コードを書こう。みたいな。春は春休みの季節。春休みを思い出す季節。数年前は毎日、朝から夜まで好…

ゆで卵の「ゆで時間」って実は。

きょうはゆで卵再挑戦!料理の本には「水の状態から約6〜7分茹でる」と書いてあったので、ゆうべはその通りにやったのだけど、殻ははがれないし白身は半分どろどろで黄身は完全に液状だった。ようは、ゆで時間が足りなかったようなのだけど、ちゃんと時間は…

停滞気味

今年は何をしただろうかと振り返る季節。やろうと思って最初の一歩を踏み出せたこととか、思うように先に進まないこととか。

ガスコンロの取扱説明書

ガスコンロの取扱説明書を読んでいる。パソコンとか携帯電話の取説の最初にたくさん書いてある注意書きって、いつも、ほとんど当たり前だなぁ、と思って見てたのだけど、これは違う。知らないことがいっぱい。勉強になる。料理のことをほとんど知らないので…

作らなきゃ。

何はともあれ何か作らなきゃと思った。またフリーソフトを作って公開しよう。バージョンアップとかしよう。

C++はどこ行くの。

C++

A Brief Look at C++0xを読んで、今頃ながらC++0xのことを知った。C++0xはいまのC++の改良版ということなので、言語のコンセプトは変わらないようで、ほっとした。いままでもこれからも "general-purpose programming language with a bias towards systems …

机が届いた。

先日買った机が届いた。さっそくフローリングの部屋を片付けて make してインストール。この机は構造がシンプルで、天板1枚と、側面の脚になるパネルが左右で2枚、幕板という奥のパネルが1枚の計4枚のパネルを互いに垂直に固定するだけ。どのパネルも余計な…

ゴールデンウィークドライブツアー

サークルの仲間と恒例のGWDT(ゴールデンウィークドライブツアー)に行ってきた。南紀の方へ。山の上の景色のいい道とか、走っていて気持ちいい道がいっぱいあった。いつもながら、ここに書くのはドライブの日記というより、運転のメモ。いろいろあった。参…