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

Visual Studioで__FILE__, __FUNCTION__をユニコードで開発してる場合対応させる方法

追記(2010-1-22) UCの定義抜けてたのを修正。 #define UC(a) L##a #define WIDE(x) UC(x) #define _WFILE_ WIDE(__FILE__) #define _WFUNCTION_ WIDE(__FUNCTION__)

twitterのポストを同時にmixiのボイスに投稿するコマンドラインクライアント

twitterからmixiボイスにマルチポストするRubyスクリプト書いた を見てたら常に同時にポストできるの作れそうと思って作ってみた。 mixi_mail, mixi_pass, twitter_mail, twitter_passを設定して使う。 @とQTとRTの時はmixiにポストしない。 #!/usr/bin/env …

Twitter Streaming APIで日本語の内容をにポストするIRCサーバー

rubyのnet/ircを使ってみた。 パスワードと名前を設定して使う。Streaming APIはここを参考にした。 #!/usr/bin/env ruby require 'net/http' require 'uri' require 'rubygems' require 'net/irc' require 'json' class TwitterStreaming < Net::IRC::Serve…

Twitter Irc Gatewayではまったこと

utf8で出力 ./TwitterIrcGateway --encoding=utf-8 irssiでutf8で表示するように設定 /SET term_charset utf-8 0.8.9より古い場合 /SET term_type utf-8 irssiの設定保存 /SAVE .irssi/configTiarraに自動接続 { address = "localhost"; chatnet = "tiarra";…

PuTTyの設定メモ

ウインドウ->変換 文字コードの設定 UTF-8(CJK) CJK用の文字幅を使用する端末->キーボード 右Altを右Altのまま使う

コマンドラインのtwitterクライアント

gemのtwitter使って書き直してみた。.twitterにユーザー名とパスワード設定して使う。 #!/usr/bin/env ruby # .twitter example # usr: username # pass: password require 'rubygems' require 'twitter' require 'yaml' def main if ARGV[0] == nil puts "A…

Open Fastladderを導入しようとしてはまったこと

データベースにMySQLを使ったとき日本語の表示が???になる mysql -u root -p create database fastladder_production character set utf8; データベースを作るときutf8で指定する。OPMLをインポートしようとすると以下のエラーが出る。 NoMethodError (undef…

windowsでffmpegを使いaacに変換する

MinGWとか,ffmpegをソースコードもってきてビルドするのは調べた限り大変そうなのでバイナリを持ってくるここにした。 ffmpegの本体はここから持ってきた。 libfaac.dllはここのavidemux_2.5_r5530_full_win32.zipを持ってきた。 その中にあるlibfaac.dllを…

colinuxの設定

使ってるcolinuxのバージョンは0.73 設定ファイルから起動 colinux-daemon @example.conf サービスに登録する colinux-daemon.exe --install-service "name" @example.conf サービスから削除する colinux-daemon.exe --remove-service "name" cofsのマウント…

Visual StudioからEmacsを呼び出せるようにする

ツール -> 外部ツールで タイトル: emacs コマンド: C:\Program Files\emacs\22.2\bin\runemacs.exe 引数: +$(CurLine) $(ItemPath) 初期ディレクトリ: $(ItemDir) コマンドはemacsをインストールしたディレクトリ

Visual Studio 2005のStandard EditionでGLUTのセットアップ

GLUT使ってるものをビルドしたくなって調べた。 ここのglut-3.7.6-bin.zipを持ってくる展開したファイルを以下の場所に置く。glut.h C:\Program Files\Microsoft Visual Studio 8\VC\PlatformSDK\Include\gl glut32.lib C:\Program Files\Microsoft Visual S…

Mersenne TwisterをC++のアプリ組み込む

ここにあるmt19937ar.sep.tgzを使った。C++にからCの関数を読み込むので ヘッダの先頭(mt19937ar.h)に #ifdef __cplusplus extern "C" { #endif 最後に #ifdef __cplusplus } #endif を付けておく。rand(), srand()みたにに呼べるようにラッパーにしてみた。…

Visual Studio でリーリースモードデバックモードでの条件付コンパイル

#if _DEBUG デバックモードのとき #else リリースモードのとき #endif リンクするライブラリが各モードで違かったので。

再開

しばらくコード書いて寝るみたいな生活してたけど。そろそろブログ書くのを再開します。 技術関係のネタ以外も書くことにする。

windowsの実行ファイルで使ってるDLLとAPIを調べる

WindowsXPServicePack2サポートツールの中に入ってるapimon.exeを使う。 インストールするときすべてインストールしないとapimon.exeがインストールされないので注意。

m4bを作成する

ipod touchで高速に再生できるので作成してみた。 debianのffmpegは通常のをインストールすると、libfaccに対応されていないのが、インストールされるのでhttp://www.debian-multimedia.orgのffmpegを使う。 /etc/apt/soruce.listに(sid)使ってる場合 deb ht…

direct threaded codeの無効と有効で切り分けられるようにしてみた。

無効にする場合は #define DIRECT_THREADED_CODE をコメントアウト #include <stdio.h> #define MAX_ISEC 200 enum Ins { INS1 = 0, INS2 = 1, RETURN = 2 }; #define DIRECT_THREADED_CODE #ifdef DIRECT_THREADED_CODE #define SWITCH(v) #define CASE(LABEL) LABEL</stdio.h>…

direct threaded code

実装してみた。gccじゃないとコンパイルできない。 #include <stdio.h> #define MAX_ISEC 200 enum Ins { INS1 = 0, INS2 = 1, RETURN = 2 }; void eval(unsigned char *src, int line) { void *tbl[] = { &&INS1, &&INS2, &&RETURN }; int i, pc = 0; void *isec_add</stdio.h>…

継続でbreakのようなことをする

#!/usr/bin/env ruby callcc {|_break| puts "a" puts "b" _break.call puts "c" } schemeで #!/usr/bin/env gosh (call/cc (lambda (break) (print "a") (print "b") (break) (print "c") ))

zshでwindowsとunix間のファイル変換

普段colinuxとwindows間をテキストファイルのやりとりをするので、使う文字コードと改行コードを一発で変換できるように定義した。.zshrc alias to_win='nkf -s -Lw --overwrite' alias to_unix='nkf -w -Lu --overwrite' exec zshで設定の適用。 to_win フ…

二分探索

#!/usr/bin/env ruby def bserach(data, search) data.sort! min = 0 max = data.size - 1 while min <= max mid = (max + min) / 2 if data[mid] < search min = mid + 1 elsif data[mid] > search max = mid - 1 else puts "find #{search}" return end en…

PuTTYで自動ログイン

2009-09-28追記 ここでPuTTYは日本語化されたもので行っている。puttygen.exeで公開鍵と秘密鍵を生成する。 鍵のパスフレーズ,パスフレーズの確認を入力後でPageantのPassphraseの入力に使う。 秘密鍵(.ppk)を名前つけてを保存。 公開鍵はOpenSSHのauthoriz…

FizzBuzz

前に流行ってたけど書いたことなかったので書いてみた。 #!/usr/bin/env ruby for i in 1..100 if i % 15 == 0 puts "FizzBuzz" elsif i % 3 == 0 puts "Fizz" elsif i % 5 == 0 puts "Buzz" else puts i end end

emacsからtwitterに投稿できるようにフロントエンド書いた

twclient.el (defun twclient (str) (interactive "stwitter: ") (call-process "twclient" nil 0 nil str) (message str)) (provide 'twclient) twclientはこれを twclientって名前で保存してパス通して,実行できるようにしておく。

ヒープソート

#!/usr/bin/env ruby def heep_down(data, size, root) while 1 left = root * 2 + 1 right = left + 1 if left > size break end if right > size max = left else max = data[left] > data[right] ? left : right end if data[max] > data[root] data[max]…

マージソート

#!/usr/bin/env ruby def marge_sort(data, min, max) if min >= max return end mid = (max + min) / 2 marge_sort(data, min, mid) marge_sort(data, mid + 1, max) i = k = min j = mid + 1 tmp = [] while i <= mid && j <= max if data[i] < data[j] tm…

クイックソート

ライブラリに頼らないで実装してみた。 #!/usr/bin/env ruby def qsort(data, min, max) if min >= max return end pivot = data[(max + min) / 2] i = min j = max while 1 while data[i] < pivot i += 1 end while data[j] > pivot j -= 1 end if i >= j b…

IRCからtwitterを使う

svn co http://svn.coderepos.org/share/lang/ruby/net-irc/trunk net-irc sudo gem install json net-irc net-irc/examples/tig.rbを使うtiarra wget http://www.clovery.jp/tiarra/archive/2009/02/tiarra-20090206.tar.gz tar zxvf tiarra-20090206.tar.g…

コマンドラインのtwitterクライアント

#!/usr/bin/env ruby # .twitter example # usr: username # pass: password require 'net/http' require 'yaml' def post_twitter(usr, pass, status) req = Net::HTTP::Post.new("/statuses/update.xml") req.basic_auth(usr, pass) http = Net::HTTP.star…

githubをwebのスペースとして使う

githubでusername.github.comでリポジトリを作る。 ファイルをアップする。 http://username.github.com/でアクセスできるようになる。 ほかにもgh-pagesっていう方法もある。