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

インクルードガード用の neocomplcache スニペット

neocomplcache のスニペットには Vim script の式を使って展開する機能があります. c.snip snippet include_guard alias inc_guard prev_word '^' abbr #if !defined HOGE #define HOGE #endif #if !defined `toupper( substitute( expand("%"), "\\.", "_"…

Vimmer 達の vimrc

Vim

有名な Vim 使いが github で公開している vimrc を簡単にまとめてみました. 一段落ついたら参考にして自分の vimrc を見直そうと思います. Shougo さん https://github.com/Shougo/shougo-s-github/blob/master/vim/.vimrc kana さん https://github.com/…

生配列を std::array に変換する

C++

constexpr で扱えて,実行時の効率もよいデータ構造+アルゴリズム - 危ないRiSKのブログ コンパイル時に配列を結合する - iorateの日記index_tuple を使って constexpr な生配列から std::array への変換の処理をする配列を書いてみました. int main() { /…

メタプログラミング入門(2) ネストしたスコープ

Ruby では,一般的な手続き型言語と違いスコープがネストしません. var1 = 0 class Hoge # var1 は見えない var2 = 1 def huga # var1 も var2 も見えない end end class 内で共有できる変数としてインスタンス変数がありますが,特定のメソッドだけ共有し…

Ruby メタプログラミング入門(1) 動的なメソッドディスパッチ

メソッドが存在しない場合に必ず呼ばれるメソッド,method_missing をオーバーライドすることにより実現します. #!/usr/bin/env ruby # -*- coding: utf-8 -*- # 1度の試行につき4回実行されるルーレット.ただし,前回の値より小さい値しか出ない. class …

Homebrewで最新のGCC 4.6.3 をインストールするためのパッチを書いてみた

こちらに置いています. https://github.com/rhysd/others/blob/master/gcc-4.6.0-to-4.6.3.patchインストール方法は Homebrewで最新のGCC ( gcc-4.6.2 ) をインストールするためのパッチを書いてみた と同じなので割愛. 以前この方法でgcc-4.6.2をインスト…

D言語のテンプレートで FizzBuzz

D言語を少し触ってみたので. import std.conv; template fizzbuzz(int n) { static if (n == 0) { immutable string fizzbuzz = ""; } else { immutable string fizzbuzz = fizzbuzz!(n-1) ~ ( n%15 == 0 ? "FizzBuzz" : n%3 == 0 ? "Fizz" : n%5 == 0 ? "B…

rbenv で gem を使った時に rbenv rehash しなくて良くする

rvm が多機能&壊れやすすぎて Homebrew の ruby を直にインストールして使っていたのですが,Homebrew の ruby はバージョンを上げるときにgemで入れたコマンドを引き継いでくれなかったり,gemでインストールしたコマンドを反映してくれないので,rbenv と…

TwitterアプリケーションのコールバックURLにlocalhostを指定する

Twitter Developers でTwitterアプリケーションを登録する際に Callback URL というものを設定することができます. これは,そのTwitterアプリケーションで認証した後にどのURLに戻るかを指定するためのものです. 開発中はローカルにサーバを立ててテスト…

Boost.勉強会 #8 に参加しました

2/11に大阪で行われた Boost.勉強会 #8 に参加してきました. Boost.勉強会 #8 大阪 - boostjp前々からBoost.勉強会には興味があってぜひ参加したいと思っていたので,今回の勉強会は即参加を決めました. メンバ変数のメンバ関数内でのリソース管理 ( @cpp_…

unite-session が便利

Vim

unite-sessionはVimプラグインUniteに標準で付いてくるUniteのソースです.Uniteのインストールなど詳しくはこちら. Shougo/unite.vim · GitHubunite-sessionは現在のVimの状態(セッション)を保存しておくことのできるUniteソースです. 試しにVimを立ち…

Boost.Test でモックテストしてみた

先日のBoost.勉強会 #8 にて,id:heisseswasser さんの発表へのアキラさん( id:faith_and_brave )のツッコミで,Boost.Testでもモックテスト用のライブラリがあるという指摘がありました. どうやらドキュメントに載っていないらしいので,自分なりに調べて…

SONY Go For It: 1) の解答

問題 http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/q01.html 解答 life_clock.rb #!/usr/bin/env ruby # -*- coding: utf-8 -*- # FILE: life_clock.rb # AUTHOR: rhysd (http://d.hatena.ne.jp/rhysd/) # License: MIT license {{{ # Permission is h…

SONY Go For It: 2) の解答

C++

問題 http://www.sony.co.jp/SonyInfo/Jobs/newgrads/sus/q02.html i) の解答 factorial_int.cpp // FILE: factorial_int.cpp // AUTHOR: rhysd (http://d.hatena.ne.jp/rhysd/) // License: MIT license {{{ // Permission is hereby granted, free of char…

Vimのinsertモードで便利なC++コーディング用キーマップ

autocmd FileType cpp call MyCppMapping() function! MyCppMapping() inoremap <buffer><expr><CR> \ strpart( getline('.'), col('.')-2, 2 ) == "{}" ? \ "\<CR>\<C-o>k\<C-o>$\<CR>" : "\<CR>" inoremap <buffer>{ {}<Left> inoremap <buffer>( ()<Left> inoremap <buffer>() () inoremap <buffer><> <><Left> inoremap…</left></buffer></buffer></left></buffer></left></buffer></cr></cr></c-o></c-o></cr></cr></expr></buffer>

CUI上でVimを実行した場合にC-qが効かなくて困った

Vim

挿入モードでも直接Vimを閉じられるようにマッピングしようと思い, inoremap <C-q><C-q> <Esc>:wqa<CR> という設定をしたのですが,実際に使ってみると機能しない… 色々試してみてもしやと思い,GUI版のMacVimで試してみるとうまくいったので,Vim外の問題だと判断し設定やman</cr></esc></c-q></c-q>…

constexprな関数でコンパイル時にn乗根を求める

C++

とあるプログラムで,定数の3乗根を求めたいことがありました. どうせ求めるならこれからも使えそうなn乗根で,どうせならconstexprでということで,書いてみました.求め方としてはニュートン法を使っています.初期値さえ間違えなければニュートン法はか…