TUIプログラミング

去年から自分が開発しているmemcached protocolをしゃべるプロキシサーバがあって、それには特定のポートに繋ぐと現在の状態(接続数や使用しているポート番号等)を出力する機能が付いてる。 ↓みたいにtelnetで指定のポートに接続すると即座に結果を返し、終…

スマートフォンでコードリーディング

外に出ていて手持ち無沙汰な時、かといってゆっくり本を読めるというわけでもない微妙な空き時間にTwitterとかはてブばっかり見てるのもアレなので、ソースコードでも読もうと思っていつくかそのためのアプリを入れてみた。 Gh4a Android用Githubクライアン…

sconsコマンドのzsh補完関数を書いてみた

https://raw.github.com/cubicdaiya/zsh_completions/master/_scons 探したけどなかったので書いてみた。便利な分何かと複雑なzshだけど補完関数あたりは割と単純なのとサンプルが豊富なのでササッと書ける。 やり方がわかれば後はひたすらコマンドのヘルプ…

はてなダイアリーとはてなブログの使い分け

はてなダイアリーからはてなブログに完全に移行しようと思ったけど、以下の点がネックになったので両者を用途別に使い分けることにした。 はてな記法がごく一部しか使えない スーパーpre記法でシンタックスハイライトが使えない はまぞうが使えない 上記の機…

.emacs整理

今回の三連休でしばらく手を加えていなかった.emacsを大幅に改造してみた。新たに加えたelispは以下の通り。 auto-install.el auto-async-byte-compile.el anything.el popwin.el direx.el とまぁ、数だけ見るとそんなに入れてないんだけど、主にanything関…

WEB+DB PRESS Vol.66

発売してから既に結構間が空いてしまっていますが、「きっちりわかるアルゴリズム」というお題でWEB+DB PRESS Vol.66に寄稿しました。 今回は普段からお世話になっている@nishmonと@m0h1canさんにお手伝いいただき、無事書き上げることができました。(重ね重…

はてなブログ始めました

スタート

node-dtlをnpmに登録しました

npmはハマりどころが多すぎて困る。 $ npm search dtl dtl A diff template library binding for node.js =cubicdaiya diff diff3 editdistance unified format plate A javascript templating language =chrisdickinson template dtl $ npm install -g $

dtlのnode.jsバインディング

https://github.com/cubicdaiya/node-dtl最近、久々にJavaScriptを勉強し直してる関係でnode.jsで遊んでみたんだけど、結局C++で書いてしまった。 そんなにほかの言語のバインディング書いた経験はないけど、node.jsのバインディング書くのは結構簡単。 node…

SConsで並列ビルド

今更ながらSConsでもMakeと同じく「-j 」オプションで並列ビルドができること知った。なので、さっそく自分のプロダクト(dtl)で試してみた。CPUのスペックやビルド対象は以下の通り。 CPU Intel Core i5 CPU 660 @ 3.33GHz Dual Core(HTT対応なのでOSからはQ…

Boost.勉強会#4

dtl - diff template library View more presentations from cubicdaiya Boost.勉強会 #4にて発表してきました。アルゴリズムの解説については参考資料へのリンクを紹介するに留めてdtlのライブラリとしての機能の紹介に内容を絞り、若干ネタにも走りました…

ソフトウェアライセンスを選択する自由

Togetter - 「RT hyoshioka: @ yukihiro_matz 実はなんでBSDライセンスにしなければいけないか理解できない。利益より害の方が大きいと思う。 Togetter - 「オープンソースのライセンスとビジネス」 自由なソフトウェアと自由なWeb 近頃、ソフトウェアのライ…

dtl-1.09

http://code.google.com/p/dtl-cpp/ dtl-1.09をリリースしました。今回の主な変更点は以下になります。 specifyConflictionが正常に動作しないケースへの対応およびテストの追加 Diff3クラスのtemplateパラメータにカスタムコンパレータを指定できるように変…

dtl-1.08

http://code.google.com/p/dtl-cpp/ dtl-1.08をリリースしました。今回の主な変更点は以下になります。 Diffクラスのコンストラクタに渡した関数オブジェクト(要素の比較用)が無視されてデフォルトの関数オブジェクトが使用されてしまうバグの修正 GCCの-Wオ…

make -> scons

dtlはヘッダファイルのみから構成されるライブラリなので、単にdtlを使用するユーザはdtl自体を特にビルドする必要はないんだけど、サンプルプログラムとテストプログラムはmakeかsconsを使ってビルドする必要がある。元々はMakefileだけ用意していたんだけ…

モダンなC, C++の開発環境の構築方法

まだC, C++がないようなので書いてみた。主にLinux(DebianとかUbuntu)での環境構築について。 コンパイラ まずはapt-getでコンパイラをインストールする。UbuntuやDebianなら以下のコマンドでgccやg++および標準ライブラリ等がインストールされる。 $ sudo a…

dtl-1.07

http://code.google.com/p/dtl-cpp/ dtl-1.07をリリースしました。今回の変更点は以下になります。 インデントサイズを2文字から4文字に変更 onlyEditDistanceフラグがONの場合にメモリリークが発生するバグの修正 特定のパターンのdiff3の際に衝突箇所の検…

Makefileを書くのに疲れた人のためのSCons

dtlのサンプルプログラムやテストプログラムのビルドをSConsでやってみた。dtlの複数あるサンプルプログラムのMakefileはこんな風になっている。 Makefile CPP = g++ CPPFLAGS = -c -O2 -Wall OBJS_FLAGS = -O2 -o STRDIFF_OBJS = strdiff.o common.o STRDIF…

dtl-1.06

http://code.google.com/p/dtl-cpp/ 昨日のことですが、dtl-1.06をリリースしました。今回は3つの要素列をマージした時に衝突が発生した場合、衝突箇所を(ある程度)明確化するための機能を追加しています。例えば、元の文字列がabcでこれをadcに変更したもの…

dtl-1.05

http://code.google.com/p/dtl-cpp/ dtl-1.05をリリースしました。主な変更ですが、ユーザさんからの指摘で Segmentation Faultになる可能性がある箇所を修正しています。

Cで動的配列

http://github.com/cubicdaiya/stk Cで簡単な動的配列を実装してみました。

最近買った本

去年の11月頃に転職してWeb屋さんから組込屋さんになったので、購入する本のジャンルが若干変化したわけだが、データシート読んでる時間の方が長いかも知れない。ただCQ出版の本には特にこれからお世話になりそうな予感。Interface ( インターフェース ) 増…

Cでハッシュテーブル

http://github.com/cubicdaiya/fnv なんとなくCでハッシュテーブルを実装してみた。使い方はこんな感じ。 /* main.c */ #include <stdio.h> #include "fnv.h" int main (int argc, char *argv[]) { fnv_t tbl[FNV_TBL_CNT]; const char *key = "KEY"; const char *val</stdio.h>…

車輪の再発明をしなければならなくなる時

http://d.hatena.ne.jp/tt_clown/20091228/1261996214 http://d.hatena.ne.jp/Isoparametric/20091230/1262134418なんか昨年末の話で、反応するには少々遅い気がするけど、個人的に車輪の再発明をするに至る場合や理由について考えてみる。 勉強のために既に…

Cリファレンスマニュアル

S・P・ハービソン3世とG・L・スティール・ジュニアのCリファレンスマニュアル作者: 3世,サムエル・P.ハービソン,ガイ・L.,ジュニアスティール,3,Samuel P. Harbison,Guy L.,Jr. Steele,玉井浩出版社/メーカー: エスアイビーアクセス発売日: 2008/10メデ…

情報科学苦手の会

DiffView more presentations from cubicdaiya. 情報科学苦手の会でDiffのアルゴリズムについて話してきました。↑はその時の資料です。苦手かどうかはともかく非常に内容の濃い勉強会でとても楽しめました。

dtl-1.04

http://code.google.com/p/dtl-cpp/ dtl-1.04をリリースしました。前回と同じく、ライブラリ自体の変更はほとんどありませんが、 googletestを使ったテストコードを追加しています。テスト結果はこんな感じ。 $ cd dtl-1.04/test $ make && make test g++ -c…

Goで編集距離

とりあえず遊んでみたかったので、"An O(NP) Sequence Comparison Algorithm"をGoでササッと実装してみた。 まだまともにマニュアルを読んでないので、かなりテキトー。 /** * The algorithm implemented here is based on "An O(NP) Sequence Comparison Al…

MercurialのリポジトリをGithubにpushする

dtlは去年からずっとMercurialでバージョン管理してるんだけど、Githubに一応ミラーリングしておこうと思って変換ツールであるHgGitを使ってみた。 http://hg-git.github.com/ まず、HgGitを動作させるのに必要なdulwichをインストールする。 $ sudo apt-get…

メモリプール

http://github.com/cubicdaiya/mpool Cで至極簡単なメモリプールを実装してみた。 使い方はこんな感じ。(↑のgithubのexamplesにあるのと同じ物) #include <stdio.h> #include <string.h> #include <mpool.h> int main (int argc, char *argv[]) { mpool_t *pool; int *n = NULL; int *m =</mpool.h></string.h></stdio.h>…