macでtccを使う

2012/10/09現在公式サイト(http://bellard.org/tcc/)で配布されてる最新版(0.9.25)をコンパイルしようとしてもエラーがでる。。ので開発版([http://repo.or.cz/w/tinycc.git)を使う。 $ git clone git://repo.or.cz/tinycc.git $ cd tinycc $ ./configure &&…

macbookのHDDをSSDに交換

今使ってるMBPは確か2009 midなんですが2週間ぐらい前に普通に使ってたところ突然終了して、電源入れて数十分待ってもログイン画面が出なくなりました、しかたがないので起動ディスクからディスクユーティリティを使ってディスクチェックしてみると「深刻な…

セキュリティキャンプ2012参加してきました

8/14-8/18までセキュリティキャンプに参加してきました.非常に内容の濃い5日間でとても楽しかったです,(そして眠い…) 僕はセキュアなOSクラスで,セキュアなOSクラスでは各参加者一人一人がOSとセキュリティに関連するテーマを選び,開発をおこないました…

セキュキャン2012 セキュアなOSを作ろうクラスに参加します

今月はいろいろと所用が重なっていてここに書くのが遅くなりましたが,セキュキャン2012 セキュアなOSを作ろうクラスに参加することになりました.精一杯頑張ろうと思います. 応募用紙のプログラムについて少しだけ.とりあえず,プログラムの処理の流れは…

LinuxにおけるTSS

めも. (2/25 一部追記) 参考: http://wiki.osdev.org/Context_SwitchingLinux はTSSを利用していない(Windowsも).その理由は ・速くない ・ディスクリプタテーブルの上限は8192 (但しコンテキストスイッチ時に GDTR を切り替えればこの制限は突破できる) …

GASのローカルシンボルネーム

asm

linuxのコンテキストスイッチは以下のようになってます. (http://lxr.linux.no/linux+v3.2.7/arch/x86/include/asm/system.h#L48) 59 asm volatile("pushfl\n\t" /* save flags */ \ 60 "pushl %%ebp\n\t" /* save EBP */ \ 61 "movl %%esp,%[prev_sp]\n\t"…

Vimでパーリンノイズ

Vim

あけましておめでとうございます.これは Vim Advent Calendar 34日目の記事です. 今日はパーリンノイズの話をしようと思います.パーリンノイズはCGのテクスチャ生成等に利用される乱数*1です.普通の乱数だと,あまりにも各々の値がばらばらで,自然界に…

ref.vimから英英を引く

vim

ref.vimから英英引きたいなーと思ったら@h1mesukeさんが作ってたのですが,longmanが引きたかったので適当に追加しました.GitHub - mmisono/ref-dicts-en: English dictionary sources for ref.vimまぁsourceの中身はほとんど同じで,urlを変えただけな感じ…

int x = 0xffffffff; x <<= 32; x = ?

int main(){ int x = 0xffffffff; x <<= 32; printf("%x\n",x); } 実行結果 ffffffffってきり0になるものだと思いこんでて少しはまりました… (この場合gccはちゃんと warning: left shift count >= width of type と警告出してくれます) なんでこうなるかと…

m4によるバブルソート

m4

参考: Super Technique 講座〜m4 チュートリアル GNU M4 1.4.18 macro processor define(`forloop', `pushdef(`$1', `$2')_forloop(`$1', `$2', `$3', `$4')popdef(`$1')') define(`_forloop', `$4`'ifelse($1, `$3', , `define(`$1', incr($1))_forloop(`$1…

lsのソースを読みました

C

lsコマンドって一番使うコマンドじゃないでしょうか.おそらく僕が始めて使ったコマンドもlsだと思います.その時,lsのコマンドの出力が綺麗に整列されて出力されるのがすごく不思議でした.今考えれば端末幅取得してごにょごにょしてるんだろうな,という…

:Unite game する

vim

最近vimでゲームが増えてきて嬉しい限りですがゲームが増えてくると「あれってどうやって起動するっけ?」ってことが多くなると思うので:Unite game したいですよね. ということで以下のように.vimrcに書いとくといいと思います.もちろん要unite.vim let s:…

Vimでゲームを作るためのtips

vim

なんかvimでゲームを作るのがブームのようなので(w,いくつかvimscriptでゲームを作ってみて分かったことをまとめようと思います. 最初に言っておくと,これはゲーム作成に限りませんが,vimscriptを書くコツはいかに他のvimscriptから似たような処理を見つ…

Vimでスネークゲーム

vim

なんかマインスイパーが予想以上に受けたので今度はスネークゲーム作ってみましたw GitHub - mmisono/snake.vim: snake ~~~~ :Snake [width height] で起動 i で開始 hjkl で移動 esc でポーズです スネークゲームの一番簡単な奴でただ餌を取っていくって奴…

Vimでマインスイーパー

vim

前回 lightsout.vim 作った訳ですが意外と作れるものだなーと思ったので今度はマインスイーパー作ってみました.相変わらずの手抜き実装^^; GitHub - mmisono/viminesweeper: vim + minesweeper :MineSweeper [easy,normal,hard] もしくは :MineSweeper cust…

lightsout.vim 作った

vim

ライツアウトっていうのはパズルゲームです.なんじゃそれって思うかもしれませんがおそらくこの説明読めば多くの人は知ってるんじゃないでしょうか. ここ最近全然vimに触ってないなーとか思ってたのですが,@thinca さんが game.vim とか発言しててたので…

Skypeで特定のチャット/人物のみGrowlする

僕は普段SkypeのGrowl通知は邪魔なのでオフにしていますが,たまには特定のチャットや人物に対してGrowl通知をして欲しい時もあります.Skypeの通知設定では細かいところまで設定できないのでSkype4Pyを使って作ってみました.Skype version 5になってからSk…

vimでschemeモードっぽく

vim

emacsだとschemeを編集している時はschemeモードとなって、カーソル直前のS式を実行させて結果を表示することができます。 まぁvimでやるんだったら普通にquickrun使えば同じようなことできるし特に困ってませんがそれでもemacs使いの人に面と向って自慢され…

macのscreencapture

mac

command+shift+3でscreencaptureな訳ですが、/usr/sbin/screencaptureなんてまんまなコマンドがあったんですね。 キーボードショットカットとか覚えてられないけどquicksilverからこのコマンド呼び出せばいいですね。 長いから適当にaliasするかシェルスクリ…

codeforces やってみた

友達に誘われたのでcodeforcesやってみました。こういうのやるのははじめてです。 A~Eまでの5問あって、Aが一番簡単。時間は2時間。 とりあえず何も考えずに酷いコードをでっちあげてsubmitすると通ったのでまぁいいや、と思ってるとsubmitしたのは他の参加…

Shift_JISについて考えてみた

『文字コード技術入門』読んで、Shift_JISの計算方法について考えてみました。 ・JIS X 0201は、ラテン文字集合+片仮名とかの1バイト(7bit or 8bit)の符号化文字集合。 ・JIS X 0208は、漢字・平仮名・片仮名等を含んだ2バイトの符号化文字集合。 ・Shift_JI…

ファイルの文字コード一括変換

% find . -name "*.txt" | xargs -t -I % -R 1 -- nkf --oc=UTF-8 --overwrite=".bak" % -t 実行するコマンドを表示 -I % % が置換される -R 1 置き換えられる引数の数 -- xargsの引数がこれで終わることを示す たぶん昔xargsすごいよ!みたいなエントリーが…

久しぶりにFizzBuzz

main = mapM_ putStrLn $ fizzBuzz 100 fizzBuzz n = map fizzBuzz' [1..n] where fizzBuzz' n | n `mod` 15 == 0 = "FizzBuzz" | n `mod` 5 == 0 = "Buzz" | n `mod` 3 == 0 = "Fizz" | otherwise = show n あれ、なんかずれる…? *1 *1:前はfizzbuzzで挫折…

unite-mpc をいろいろと修正しました

vim

ちょっと前からちまちま作ってるunite-mpcですが、いろいろと修正して一通り完成したかなーという感じになりました。 ・変わったところ :Unite mpc:listall :Unite mpc:playlist より多くの情報を表示するように変更しました。 ただし、この場合情報を自前で…

関数の配列

vim

vimscriptである引数に対して連続的に関数を適用させたいことがあって、 let func_list = [ s:foo,s:bar ]; for func in func_list call func(a,b,c) endfor みたいなことしたいなーと思いつつできないものだと思ってましたが let func_list = [ "foo","bar"…

音楽再生はmpdが便利

vim

最近mpdという音楽サーバーの存在を知りました。mpdはネットワーク経由で音楽を再生します。 使い方はこのへんが参考になると思います。 で、mattnさんが unite-mpc というmpdを操作するためのuniteのsoureを作っていたのですが、このsourceは mpc listall |…

macでqtのプログラムをcuiからビルド

あるqtプログラムのプロジェクトがあったとして(例えばhello)、これをビルドしたいとき % qmake -project % qmake hello.pro とすると、macの場合 makefile じゃなくて hello.xcodeproj というxcodeのプロジェクトが生成されます。まぁ普通に % open hello.x…

MacBook Air 11インチ欲しい!

MacBook Air 11インチ欲しい!*1 *1:久しぶりに書いたと思ったらこれか…

ターミナルからSkype その2 -- pepi

昔こんなの作ったんですが、あまりにも酷い出来だったので作りなおしました。最初はcurses使えば少しはましなの作れるんじゃないの?と思ってcurses使ってちまちま作ってましたが、その後urwidというコンソール用のユーザーインタフェースライブラリ(普通の人…

Pythonのデコレーターの使い方

数カ月前にPythonのデコレーターを勉強した時はよく分かんなかったんですが、今日勉強してみたらなんか分かった気がするのでめも。間違ってたらごめんなさい。 以下のサイトを参考にしてます。 ・Python decorator 日本語で分かりやすいです。 ・PEP 318 -- …