Blogger に移行

はてなダイアリーが終了してしまうので,とりあえず Blogger に移行することにしました. https://s-yata.blogspot.com/

風邪でダウン

土曜日の夜から妙に体がダルいと思っていたのですが,朝起きた段階で頭痛,午後には鼻水とくしゃみが追加されて,実に風邪らしい風邪を引いてダウンしていました.やったことと言えば,宅配便を受け取ったことくらいです. いろいろと予定が狂ってしまいまし…

grn_ts: シーケンシャルアクセス向けの改善

grn_ts: use a cache when sequentially accessing grn_ja · Issue #441 · groonga/groonga · GitHub 以下のようなクエリを試すと,実行時間が想定より長くなることがわかりました. select Table --filter 'TextCol == "A"'少し調査すると,フィルタリング…

grn_io_win_map() 内部の除算

grn_ts で Text カラムにアクセスするときは grn_ja_ref() を使っています.そして,その内部で呼び出される関数の一つが grn_io_win_map() です.より具体的には, 8 bytes 以上の値にアクセスするときに呼び出されます.気になったのは, grn_io_win_map()…

Darts-clone Q&A

Q: Darts-clone uses 8 bits to store a label and 1 bit to store a flag (has_leaf). The array size limit is really 2^29? Darts-clone uses 21 bits to represent a relative offset. The remaining 1 bit is used to extend the limit. If the bit is …

grn_ts: フィルタの式を省略できるようになりました

Groonga ブログに書くほどでもない細かい内容はこちらに書いていくことにしました.grn_ts は --filter の先頭に '?' を付けることで有効になるわけですが, '?' に続けてフィルタの式を指定する必要がありました.今回の修正では, --filter '?' だけで grn…

Marisa-trie Q&A

Q: How can I know IDs when I create a keyset? Or should I reread the whole dictionary after build()? As you mentioned, "reread all the keys"-approach is the answer. IDs are allocated in construction and depend on the constructed tree struc…

Darts-clone Q&A

Q: What is the limit number of string in darts clone? A double-array uses an array and its size must be less than 2^29 (=536M). The array size is greater than the number of keys. So, the maximum number of keys is less than 2^29.The actual …

MacBook Pro のセットアップ

届いたので徐々にセットアップを進めています. ソフトウェアアップデート 左上の Apple マークからソフトウェア・アップデートを選んで,アップデート可能なものはすべてアップデートしました. トラックパッドの設定 システム環境設定のトラックパッドを選…

MacBook Pro を注文しました

ヨドバシカメラで実機を触ってみて,キーボードが浅いとか,少し重い気がするとか,タッチパッドのクリックが少し重く感じるとか,いくつか気になるところはあるのですが,ほかに良い案がなかったので, MacBook Pro を注文しました.MacBook Air も候補だっ…

整数除算はやはり落とし穴か

整数除算のオーバーフローに関する先日の記事( 整数除算のオーバーフローについて - やた@はてな日記 )に対して思ったより多くの反応があり,自分だけじゃなかったかと安心する一方で,それってやばいような…と少しばかり不安になりました.それから,い…

日本標準時と 1888 年問題

FreeBSD で mktime() に tm_year が 0 以下の struct tm を渡すと返り値が -1 になるという問題を聞いて,それくらいなら tm_year > 0 が成立するように補正した上で mktime() に渡し,後から補正した分を元に戻してやればいいんじゃないかと思ったのですが…

整数除算のオーバーフローについて

整数除算のエラーとしては 0 による除算が有名ですが,オーバーフローも致命的なエラーになるなりえるという話です.(追記 2014-02-27) そもそも整数の演算におけるオーバーフロー時の動作は未定義なのですが,加算,減算,乗算のオーバーフローについては…

新しくない ThinkPad X1 Carbon を買い逃した件

先月末に販売が開始された新しい ThinkPad X1 Carbon があまり魅力的な製品に思えず,新しくない ThinkPad X1 Carbon の方を購入しようと考えていたのですが,どうやら手遅れだったらしく,入手することができなくなってしまいました.一応, 2/12 に注文を…

Ubuntu 13.10 で Skype のフォントサイズを変更する方法(メモ)

Ubuntu 13.10 の Skype はフォントが小さすぎて読みにくいときは, qtconfig-qt4 というコマンドを使って設定を変更できます.qtconfig-qt4 は以下のようにしてインストールできます.コマンドの名前とパッケージの名前が逆なあたりが紛らわしいです. sudo …

挿入ソートについてまとめてみました

先日アップロードした発表資料の挿入ソートに関する補足になっています.大抵は言語付属の整列機能で片付くため,ほぼ使いどころはないと思いますけど…. 挿入ソート from s5yata 最近はアウトプットが極端に減っていたので,今後は意識的に細かいことでもア…

DSIRNLP #5 で発表しました

partake.in での発表に使った資料をアップロードしました. カラムストアと整列(基礎) from s5yata もっといろいろ試してから発表できれば良かったのですが,まぁ,こんなものです.この資料では出ていませんけど,挿入ソートを使った部分ソートより,ヒー…

DSIRNLP #04 で使った発表資料

取り急ぎアップロードいたしました. ダブル配列の豆知識 from s5yata

Nexus 7 を購入しました

発売の少し前までマルチタッチに関する問題が未解決で残っていて不安だったのですが,無事に解決されたようなので購入に踏み切りました.今のところ特に問題はなく使えています.電子書籍を読むのに使おうと考えているのですが,軽く調べてみただけでも電子…

DSIRNLP という勉強会でダブル配列の発表をする予定

partake.in でダブル配列に関する発表をすることが決まったので,どのような内容にするか検討中です.ダブル配列の概要についてはブログや書籍などで説明されているので,もう少し踏み込んだ内容にしようと思っています.候補としては以下のようなものがあり…

HDD の整理中

実験用 PC の HDD(2.5 inch)が故障してしまい,起動すらできなくなってしまいました.I/O がボトルネックになるような実験を繰り返すこともあったので,それが原因かもしれません.そういうわけで,空いている SSD か HDD を探して使おうと思ったものの,…

電子書籍端末ってどれがいいのかな

書籍は結構かさばるので,そろそろ電子書籍に移行しようと思っているのですが,どの電子書籍端末を使うかやどこから電子書籍を購入するかといったことを考え始めると面倒になり,まぁいっかという結論に至るというのを繰り返しています.あまり長いこと迷っ…

掃除をしなくては…(思うだけ)

ここのところ,忙しかったり体調を崩したりで掃除をさぼっていたため,部屋がちらかったりほこりがたまったり,冷蔵庫の中に危険物があったりと,実によろしくない住環境になりつつあります.そろそろ気合を入れて片付けなくてはなりません.でも今日はちょ…

昨日から調子が悪い

昨日(土曜日)は,起床した時点で体が怠くて二度寝して,午後は頭痛でぐったりしていました.荒れた天気になるという予報だったので家で過ごす予定でしたが,片付けようと思っていたことにほとんど手を付けられませんでした.ちなみに,天気は夕方くらいま…

NaN だと…

これまであまり気にすることもなく使っていた double(倍精度浮動小数点数)ですが,最近になって Inf や NaN の扱いを考える機会があり,存外にややこしくて困りました.Inf は無限大を意味する値で +Inf と -Inf があります.+Inf == +Inf と -Inf == -Inf…

同じように扱おうとすると苦労する

整数,浮動小数点数,二次元座標に文字列を同じように扱えるものをつくろうと試行錯誤しているのですが,扱う型によって特有のインタフェースが出てくるので難儀しています.たとえば,浮動小数点数には NaN という特殊な値があるし,二次元座標には大小関係…

Tricks for Bitwise Interleaving and Deinterleaving

概要 ビット単位の Interleave を効率化する手法を見つけたので,単純な実装と比べてみました. Interleave bits by Binary Magic Numbers - Bit Twiddling Hacks http://graphics.stanford.edu/~seander/bithacks.html#InterleaveBMN Deinterleave について…

久しぶりにマクロを使って落とし穴にはまる

最近は C++ ばかり使っていたためか,久しぶりに C 言語を書いていてマクロの落とし穴にはまってしまいました.落とし穴というのは,do while トリックを使ったマクロの内部で変数を用意したところ,マクロの引数として渡される変数の名前と被って期待通りの…

十日前に撮影した桜の写真

ふと思い出したので貼り付けておきます.

x86/x64 最適化勉強会の発表資料

x86/x64 最適化勉強会 #5 で使ったスライドを SlideShare にアップロードしました.一応,軽くはチェックしましたが,間違いがあるかもしれません.怪しいところを見つけた方は,このブログか Twitter ででもご連絡ください. Remove Branches in BitVector …