Ruby 1.8.7, KCODEの値をKconvの文字コード定数に変換する

def kconv_encoding_id encoding_name case encoding_name when 'UTF8' Kconv::UTF8 when 'SJIS' Kconv::SJIS when 'EUC' Kconv::EUC when 'NONE' Kconv::NOCONV else raise "wtf: Unknown encoding name: #{encoding_name}" end end $KCODE='u' require 'kc…

はてなのgist貼り付け機能使うとフィードにコードが出力されないことに今気づいた

なにかよい解決法はないものか

TwitをTwitter公式のリスト機能に対応させる(素人にはお勧めできない)

「お気に入り」タブの内容を任意のリストと同期させたら楽しいのではないかと思った。 ので書いた。 ソースのコメントのとこにも書いたけど、手順としては アクセストークンを準備してPitに入れとく 同期したいお気に入りタブ名を「list:リスト名」に設定 以…

ヤバゲータウンの確率論

2010年9月22日12時50分〜9月23日21時30分の間、一部のお客様のモバゲータウンのユーザIDに紐づくページ(マイページを含む)に、他のお客様がアクセスできる状態 となっており、単体では個人が特定できない情報ではありますが性別・地域等の一部の登録情報の…

Vimを視覚的にエンハンスするスクリプト書いた

vim

Emacsのリージョンを激しく点滅させるEmacs Lisp - hitode909の日記と同じことができないか調べたんだけど、vimはそういう機能をサポートするAPIに欠けているようだ(参考:http://vim-users.jp/2010/09/hack173/)でも、よく考えたら、高速で画面が点滅しても…

型を意識すればまともなコードが書けるし、通常の文字列とHTML文字列は別の型です

Twitter風URL自動リンクの話(関連: Kazuho@Cybozu Labs: (Twitter の XSS 脆弱性に関連して) 構造化テキストの正しいエスケープ手法について)。 あの問題では、関数のシグネチャを expandString(String):String 、「文字列を受け取って文字列を返す関数」と…

FizzBuzzより実用的なプログラマ向け面接問題考えた

仕様 TwitterのURL自動リンクみたいな機能を実現する関数expandString(String):Stringを実装しなさい(言語自由)入力: 文字列 出力: HTML断片文字列以下の文字列をリンクに展開すること URL: http,httpsのURLを、そのURLへリンクする @: @(ユーザid)を、http:…

Vim, 指定したパターンにマッチしない文字列を検索/置換する

正規表現の否定は\@!を使う。:help \@! 参照。ちなみにこれはzero-widthなマッチなのに注意。ふつうの否定とかないんですかね、まあいいけど。 例: バッファ内、 PATTERN にマッチしない行を REPLACEMENT で置き換える :%s/\(PATTERN\)\@!.*/REPLACEMENT/ 追…

GNU Screen、home/endキーを押すとチルダが入力されて困る

sttyとか.inputrcとかが関係していると思うのですが詳しいことがよくわからないです。 詳細はhttp://www.ibb.net/~anne/keyboard.htmlを読んでいただくとして、今回直面したケース(cygwin+bash+screen)だと、~/.inputrcに以下の記述を加えることで解決しまし…

Cygwinにmysql gemをインストールした記録

概要 MySQLのソースを落としてきてビルド&インストールして、libmysqlを得る gem install mysql localhostを指定すると接続できない問題がある 参考サイト Installing MySQL gem on Windows & cygwin for Rails | Phase Shift - An IT & Web Consulting Com…

Cygwin1.7にMeCab0.98+MeCab-rubyをインストールしたメモ

参照したページ cygwin上にmecab&mecab-rubyをインストール - ラシウラ 基本的にはこのページ見ればいいけど、mecab-rubyのインストールに別途手順が必要だった。

Cygwin+mintty、Windowsの対話型コンソールアプリを正しく実行できない

現象 irbとかmysqlとかscalaとか、対話型の非Cygwinアプリがmintty上で正しく実行できません! 症状としては 何の反応もない 何を入力しても応答が帰ってこない などなど。 解決策 これは開発コミュニティに認識されている問題で、minttyのptyエミュレーショ…

600円でコンパクトなUSBケーブルを自作するための3ステップ

私のモバイル環境はEeePC+EMobile D12HW(延長ケーブルで接続)なんですが、持ち運びが少々不便。 PCの横から巨大USB端子が突き出してるので、うかつにカバンに入れられない(小さいカバンだとそもそも入らない)んですよね。ぶつかったら本体にもダメージ受けそ…

第二回プロジェクトマネージャ勉強会@チームラボでLTしてきた

プロマネとはあまり関係ないテスト自動化の話。本当はアジャイルなソフトウェア開発のありかたについて話したかったのだけど準備が足りなかった。 プレゼンの形式が安定しないなー。今回は角谷メソッドをパクりました 遅刻してきて会場でプレゼン作るという…

プロジェクトマネージャ勉強会@チームラボでLTしてきた

プロジェクトマネージメント未経験ですがなぜか発表してきました。 プロセスを変えるには努力が要るし、そのモチベーションって結局愛とか情熱だよなーという。結局精神論だが、しかしそれしかないのではないか……。精神論によるいきいきとした組織づくりのご…

EclipseCoder: TopCoder SRM用Eclipseプラグイン

EclipseでTopCoderに参戦するときはEclipseCoderプラグインを使用することで劇的に快適になります。

社内Git勉強会で話してきた

git

動画 チームラボ / teamLab スライド 分散バージョン管理システムGitの紹介View more presentations from todesking.読む価値があるのは22ページ目あたりからだとおもいます。 補遺 コミットオブジェクトの話はgitはどう動くのか: コミットオブジェクト周辺…

Gitのリポジトリ情報はどのように保存されているか

git

Gitは実装が直感的ですばらしい。 # ブランチは.git/refs以下 $ ls .git/refs/heads/ master experimental maint# HEADとかは.git直下。 $ ls .git COMMIT_EDITMSG ORIG_HEAD description index objects FETCH_HEAD RENAMED-REF gitk.cache info refs HEAD c…

gitはどう動くのか: コミットオブジェクト周辺の話

git

私がgitを使いだしたのはgit入門(濱野2009)を読んでからなんですが、これが非常によかった。何のために用意された機能なのか/どのような仕組みで動いているのか、その根っこのところがきちんと解説されているので各種コマンドがどのような意味を持つのかすん…

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

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

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

チームラボにてレコメンデーションアルゴリズム勉強会を開催しますので、是非オフィスに遊びに来てください : 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…