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

vim、OpenGL用シンタックスハイライト、および補完用辞書

シンタックスハイライトに関してはこれで。opengl.vim - OpenGL C syntax highlighting : vim online syntax keyword glConstant GL_BYTE syntax keyword glConstant GL_UNSIGNED_BYTE syntax keyword glConstant GL_SHORT syntax keyword glConstant GL_UNS…

理想の仮想デスクトップソフトを求めて

Windows用、Vista対応 10面程度のデスクトップを使用可能 「デスクトップnに切り替え」のショートカットを設定可能 「アクティブウィンドウをデスクトップnに移動」のショートカットを設定可能 そんなに無茶な要求じゃないと思うでしょ。でもなかなかないん…

暗黙のエラーチェックを実現する

c++

動機 APIなんかで、よく bool GetSomeValue(type param1,type param2,type* result); 式の関数を見かける。引数で結果を格納する場所を渡し、「成功したかどうか」を返値とするやつ。 エラー処理をまじめにやると bool result; type value; result=GetSomeVa…

コピーコンストラクタと暗黙の型変換、関数オーバロードの解決、優先順位

c++

src #include <iostream> using namespace std; struct test { test(bool) {cout << "test(bool)" << endl;} test(const test&) {cout << "test(const test&)" << endl;} operator bool() {return true;} }; int main() { cout<<"bool b=test(true)"<</iostream>

AmazonのひどいURLをどうにかするuser js

SEO爆発しろ。 ところで/dp/(asin)と/gp/products/(asin)ってどう違うんだ。 new function() { var m=document.location.href.match(/http:\/\/(www\.)?amazon\.co\.jp\/(.+\/)?dp\/([A-Z0-9]+)(\/.+)?/); if(!m || (m[1] && !m[2] && !m[4])) return; docum…

ドライバがステレオ表示をサポートしてるかどうか調べる

GL_STEREOをサポートしている場合、クアッドバッファを使用して容易にフィールドシーケンシャルなステレオレンダリングが可能になります。 まあ、標準的でないハード使うか標準的でないドライバ入れるかしないとサポートされないんだけど(vistaでGeforce 840…

twitter、favorite消す、ブックマークレット

なんか星が光らないと消せなくて困りますね。 消したいpostの個別ページで実行。 javascript:document.location='http://twitter.com/favourings/destroy/'+/\d+$/.exec(document.location)[0];

最近のキーバインド。with AutoHotkey

まずはカーソルキーの遠さは異常だということを強く主張しておきたい。 そしてホームポジションから頻繁に指を離す必要があるなら、そのキーバインドは改善の余地があるということだ。ESCもEnterも、まったく何もかもが遠すぎる!というわけで、だいたいhttp…

デュアルディスプレイにフルスクリーン出力する最も簡単な方法

既存アプリに表題のような機能を追加することになりまして。 自分でスクラッチから書くアプリならウィンドウふたつ作るところだけど、シングルウィンドウを前提とした既存アプリをそのように改造するのはけっこう大変。 どうしたもんかと思って教授に相談し…

高精度な実行速度計測

目的:プロセス間通信に要する時間を計測する。 プロセスをまたいだ計測が必要になる。rdtsc。 http://www.02.246.ne.jp/~torutk/cxx/clock/cpucounter.htmlマルチプロセッサ、CPUごとにカウンタが同期してないことがあるらしい。複数プロセス間での標準時が…

VC++,glut,コンソール非表示

ソース冒頭に #pragma comment(linker, "/subsystem:\"windows\" /entry:\"mainCRTStartup\"")もしくはプロジェクトの設定→リンカ→システム→サブシステムをWindowsに、リンカ→詳細→エントリポイントをmainCRTStartupに。

visual_studio.vimにrunとかdebugとか追加する

vim

visual_studio.pyにあるdte_build_solutionという関数をコピー&リネームしてrun_solutionとdebug_solutionをつくる dte.Solution.SolutionBuild.Build (1) となってる部分をそれぞれ Run () および Debug () に変更 visual_studio.vimにあるDTEBuildSolution…

VC++,glut,__declspec(noreturn)が異なります

071212追記: 間違った方法を広めてしまったので少々反省している。修正した。 error C2381: exit' : 再定義 ; __declspec(noreturn) が異なります。 glut.hをincludeする前にdefine GLUT_BUILDING_LIB、してはいけません。 プロセスが終了しなくなるという現…

visual_studio.vim,python,unicodeencodeerror

vim

visual_studio.vimを導入してみたものの同梱pythonスクリプトのstr(name)のあたりでunicodeencodeerrorが出て困りましたね。 これはデフォルトの文字列エンコーディングの問題で、[Python] UnicodeEncodeErrorが発生した場合は、sitecustomize.pyでデフォル…

きょうのvim

なんとはなしに:e hogeなどと入力したところ、実際カレントディレクトリにファイル名hogeは存在し、しかも3ギガバイトあったため悲惨なことに

Amazonの買い物かごを編集するためのuser js

geocities.comが爆死したためソース紛失しました……。買い物籠に入ってる大量のアイテムをどうにかしたいという需要がなくなったので書き直す気もおきないのですごめんなさい。(2010-09-14) amazonリニューアルに伴い、どうやら動かなくなった模様。スクレイ…

rubygemsが猛烈に重い on colinux

Bulk updating Gem source index for: http://gems.rubyforge.orgのあと5分以上待っても固まったまま。検索してみたらこんなのがみつかり、もしやと思ってfreeしてみたらスワップしまくり。coilinuxの最大メモリ設定を64M→256Mにしてみたらめでたく30秒くら…

言語開発合宿での成果物:jsでScheme

09/21-23の間、言語開発合宿に参加してきました。 最初は恐ろしくて参加をためらっていたのですが、ujihisaという人の執拗な誘いもあって思い切って参加してみたところ大変楽しかったです。素敵な会にお誘いいただきありがとうございました。情報科学系のす…

言語開発合宿に行ってきましたよ

ファイル置き場がないので資料公開しません!近日中にします! ぼくはjavascriptでSchemeをつくったよ。

一部の謎な挙動についての原因が(たぶん)判明しました

MTASC

javascriptからFlashにデータを渡す(for flash7)

ExternalInterfaceは使えないので、js側ではSetVariableで変数をセット。flash側ではObject.watchによってそれを監視。

それでも機械語を学ぶ意味

http://blog.livedoor.jp/dankogai/archives/50910559.html http://twitter.com/masui/statuses/261361432 わたしたちがなんというカオティックな世界に生きているのか。そして「抽象化」という偉大なる力がいかにして世界に秩序をもたらすのかを知ることは…

ASのスコープ仕様は変態すぎる

var f=function() { //... f(); //error: unknown var f } var f; f=function() { //... f(); //OK. } なにこれ><

インスタンス変数の宣言と初期化

class Hoge { public var member:Array=[] public Hoge(){} public function add(item) { this.member.push(item) } } var hoge1=new Hoge(); var hoge2=new Hoge(); hoge1.add('1'); hoge2.add('2'); hoge1.member.length //==> 2 ヴェーーー ひょっとして…

IPTABLES in 10seconds

iptables -Lでルール確認。 iptables -I <chain> [number] <rule> # insert iptables -A <chain> [number] <rule> # add iptables -R <chain> number <rule> # replaceでルール変更。ルールについて: --dport ポート -p protocol tcp|udp|icmp|all -j ルールに引っかかったらどうするか。ACCEPTとか</rule></chain></rule></chain></rule></chain>…

ボタンをクリックした瞬間ビデオの再生が停止

static main() { var v=_root.attachMovie('VideoDisplay','v',_root.getNextHighestDepth()); var url="http://cache.googlevideo.com/get_video?video_id=zfwFN5bSBp8"; var nc=new NetConnection(); nc.connect(null); var ns=new NetStream(nc); v.video…

驚き最大の原則

function foo() { return bar() } function bar() { return 10 } ---- foo() => 10 ひどい!あと、 var nc=new NetConnection() nc.connect() var ns=new NetStream(nc) ns.play(...) //なぜか再生できない でハマったり。connect()とconnect(null)で挙動が…

いやそのりくつは

class Main { function f(x) { var g=function() { var x=1 } } } type error Local variable redefinition : xえーーーーー

Livedoor Reader,Opera,ログインできない

症状 Operaで突然LDRにログインできなくなる。 ログインページ(http://member.livedoor.com/login/index)にてusr,pwdを入力する。間違ったpwdの場合「必要な情報が入力されていません」「認証に失敗しました」というエラーが表示されるが、正しいpwdを入れる…

タグというのは静的な型付けのようなもの

対して全文検索はダックタイピングに例えられようか。 タグは硬い。ユーザの意思を明示的な形で表現するかわりに、コストが大きい。 型推論やコードジェネレータ、リファクタリングブラウザ。可能な限りすべてをCPUに肩代わりさせ、ユーザの負担を最小限にと…