2009-01-01から1年間の記事一覧

多人数プロジェクトで学んだこと

この書き方はまずいからあとで直そう→直さない あとで拡張する必要がありそうだ、必要になったら設計を変えよう→まずい設計のまま他人に使われる コミュニケーションしなくても正しい判断ができるようにする 正解がないことは、走りながら臨機応変に変えなけ…

レコメンデーションアルゴリズム勉強会@チームラボで発表してきた

チームラボにてレコメンデーションアルゴリズム勉強会を開催しますので、是非オフィスに遊びに来てください : ATND 推薦エンジンを作ったり運用したりするチームにいるので、推薦エンジンを作ったり運用したりしている。 というわけでなんか発表してきました…

Git, タグを別名でフェッチする

git

動機 複数のremoteを設定したリポジトリがある。 $ git remote origin library-agit fetchのデフォルトだとタグも取得する。ところでタグの名前空間はどこからfetchするかによらず同じだ $ git tag my_tag $ git fetch library-a # library-aのタグが取得さ…

Git, 空のブランチを作成する

git

動機 vimのプラグインをgitで管理したい vimfiles.git/master plugin/ plugin-a.vim plugin-b.vim doc/ plugin-a.txt プラグインごとにブランチで管理したら履歴が追いやすくていいのではないかと考えた。 vimfiles.git/plugin-a plugin/ plugin-a.vim doc/ …

Git、複数のリポジトリを一つにまとめる

git

やりたいこと ReopA,RepoBがある。ReboB/masterをRepoA/repob-branchにコピーしたい

MySQL、insert時の値チェックを厳密にする

insert時にwarningが出る=ほとんどの場合において何かおかしいデータが入ってしまったということなので非常に残念です。その警告はエラーとして扱うべきじゃないのかと。 $ mysql -uroot database -e " create temporary table X (id integer); insert into …

intを一周する

なんとなく気になったので。 #include <iostream> using namespace std; int main() { cout << "start" << endl; for(int i=1;i!=0;i++) ; cout << "done." << endl; } % cat /proc/cpuinfo processor : 0 vendor_id : GenuineIntel cpu family : 6 model : 28 model n</iostream>…

Passenger+Apache, アプリケーション起動時に例外が発生した時のエラーページが変更できないしErrorDocumentの設定は無視される

環境 Phusion Passenger 2.2.5 目的 一般ユーザにスタックトレースを見せたくない。production環境においてはアプリケーション起動時のエラーについても簡素なエラーページを表示させたい。

エンジニアのためのWord再入門講座

作者の口が悪いのは過去に色々トラウマがあるからか。エンジニアの誇りをかけて「方眼紙Excel的なもの」が跋扈する組織と(そしてWordのUIと)戦ってきた筆者の壮絶な記録なのだこれは……。 願わくば「エンジニアのためのExcel再入門」も欲しい。 内容に関する…

Passenger, ヘッダから X-Powered-By を消す

Header always unset "X-Powered-By"

Passenger, アップロードされたコンテンツの長さがLimitRequestBodyの設定に引っかかるとエラー吐く

環境 Passenger 2.2.5 概要 LimitRequestBodyを設定した状態で、それ以上の長さのリクエストを送るとレスポンスが壊れる(レスポンス長がcontent-lengthと一致しないなど)。 /var/log/httpd/error_logには以下のようなエラーが記録される。 [Sun Oct 18 21:01…

MsysGitのvim、カレントディレクトリがどこであろうと相対パスの基準ディレクトリがホームになる

git

[~/aaa/bbb] $ vim hoge ( ~/hoge が開かれる )いやもう本当に意味不明なんですが何これ。環境変数HOMEを設定してるのが影響してるのか? (追記: vimrcでcd ~してるのが原因っぽい) このせいでgit commitがうまく動かない。絶対パスを指定すると正しく開ける…

Sinatra,Rack,cgiモードで動かすとPOST時にErrno::ESPIPE

最初はSinatraの問題かと思ったんですがRackの問題みたいですね 環境 Rack 1.0 問題 CGIで動作してるとき、POSTすると rack-1.0.0/lib/rack/request.rb:150:in `rewind': Illegal seek (Errno::ESPIPE)とかいう例外が出る 原因 http://dgames.jp/dan/?permal…

Java,JUnit,assertThrows

書いた。 説明 JUnit用のアサーションメソッド。例外表明を1行で書ける。 try { buckets.get(1000); fail(); } catch (IndexOutOfBoundsException e) { } これが assertThrows(IndexOutOfBoundsException.class, buckets, "get", 1000); こうなる。スタティ…

LLTV行ってきた

到着したら昼休みでした!!! 今回はひがさんとUPS研究所の人の発表がよかった。 ほかのレポート http://d.hatena.ne.jp/con_mame/20090829 http://d.hatena.ne.jp/tanku/20090829/1251562141 http://sodium.dnsalias.com/sodium/diary/20090829.html http://d…

Java,Senでnaist-dicを使う

用意するもの mecab用naist-dic sen naist-dicのnaist-jdic.csvをsenのdicディレクトリに入れとく(EUC-JPなので文字コード変換が必要ならしとく)。 デフォルトのdic.csvじゃなくこっちを利用するようにするためbuild.xml修正。 < !-- Comment out if you wou…

Javaでmapとかinjectとか

こういうものを用意して、 public class Functional { public static <T> Functional.Iterable<T> from(java.lang.Iterable<T> from) { return new Functional.Iterable<T>(from); } public static interface Mapper<T1, T2> { public T2 map(T1 x); } public static interface I</t1,></t></t></t></t>…

Javaでジェネレータ

つくった。javaでyield returnできるので精神が健康になる! Generator<Integer> g=new Generator<Integer>() { @Override protected void iterate() throws InterruptedException { for(int i=0;i<10;i++) yield_return(i); } }; while(g.hasNext()) System.out.println(g.next</integer></integer>…

Windows,ファイル共有,「このネットワーク リソースを使用するアクセス許可がない可能性があります」とかで接続できない

ユーザがwindowsのログインユーザと違うから認証に失敗して当然なんだがそもそもどうやってユーザ変更すんだとか。 あるいは認証まで行かずにそもそも接続できないとか。 windowsのファイル共有システムがどういう仕組みなのかぜんぜんわかんないですね。と…

CentOS、munin、cronがfontfonfigからのメッセージを5分に一回メールしてくる

No fonts found; this probably means that the fontconfig library is not correctly configured. You may need to edit the fonts.conf configuration file. More information about fontconfig can be found in the fontconfig(3) manual page and on htt…

jQuery、長いドロップダウンリストをインクリメンタルに検索するものを書いた

インクリメンタル検索が必要になるほど長いドロップダウンリスト作るなって? いやまあそうですね。ともあれ以下のようなおぞましいUIが こうなる。 デモはこちら: jQuery、長いドロップダウンリストをインクリメンタルにしぼりこむサンプル with migemoっぽ…

javascriptでmigemoっぽいことをするコード書いた

javascript/migemoの存在は知ってますが。書きたかったんだよ。 アルゴリズムとしては表を元に状態遷移してうんぬん。 デモ: js migemo

Java,NoSuchMethodError,method ()V not found

()Vとはコンストラクタ、無引数、返り値void(V)とゆう意味です http://java-house.jp/ml/archive/j-h-b/008413.htmlわたしが遭遇したのは // ライブラリ class Base { @deprecated public Base(){} } // 自作 class X extends Base { public X() { // ここで…

java、AntのXmlProperty形式のxmlファイルを読む

Properties.loadFromXMLで読もうとしたら失敗した。フォーマット違うのね。 方法としては、antを使う方法とCommons configurationを使う方法がある。 AntのXmlPropertyを使う方法 以下のコードはant 1.6.5で確認。 ファイルシステム上にプロパティのxmlがあ…

最適なタギングのためのアルゴリズムとかないんですかね

webページの列が与えられて、個々のページに対してラベルを付与するタスクを考える。 ラベルをつける目的は分類のため。あとから見直すときのインデクスとして。ラベルごとのページ数はなるべく均等であることが望ましい。ほとんどのページに同じラベルが振…

メンテナンスページで失敗しやすい3つのポイント

1. リダイレクトする 何度リロードしてもメンテナンス画面ですね 2. ステータス200 アメブロかお前は ふたつしか思いつかなかった 元ネタ メンテナンスページで失敗しやすい3つのポイント - KAYAC engineers' blog

Apache,プロキシ越しのDigest認証に失敗する件とださい解決方法

固定IPのレンタルサーバ(さくら)越しにIP可変の自宅サーバーへ透過的にHTTPアクセスしたい。 mod_rewriteを使用して、.htaccessに RewriteCond %{REQUEST_URI} ^/home-server/(.*)$ RewriteRule .* http://(自宅サーバのIP)/%1 [L,P]みたいな設定すればだい…

AutohotkeyでJIS配列をUS配列化して使ってる

eeepc買ったら当然日本語配列、US配列キーボードも売ってるようだが色々面倒、ソフト的になんとかできれば楽なんだがなーと思ってなんとかしたら実用的なレベルになりました。基本的なリマップ設定はUSB メモリに入るキー配列変更ソフトウェア | nDikiを参考…

Twitter gemがバージョンアップしたらコンストラクタの引数が変更されて互換性がなくなっている……

gem updateしたあとにタイムラインクローラを再起動してみたら wrong number of arguments (2 for 1) (ArgumentError)えーっ0.6.0でTwitter::Baseのコンストラクタの引数が変更になったらしい。 どう変わったのか調べて修正する気力がないので require 'ruby…

さくらでruby、iconv

ruby 1.8.7 p72をソースからコンパイルしてさくらで使ってたのだが、ある日突然死んでしまった…… Fatal error 'Cannot allocate red zone for initial thread' at line 384 in file /usr/src/lib/libthr/thread/thr_init.c (errno = 12)たぶんライブラリのア…