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

ControlをCapsLock上書き

GUIで設定したあと、.Xmodmapに remove Lock = Caps_Lock を記述。 (GUIで設定するだけだと、何故かうまくいかなかった。)

Synaptics リポジトリに Emacs がないとき

日本語 Ubuntu リポジトリには Emacs が入っていないっぽい。 Emacs をインストールするには、「Synaptics パッケージ・マネージャ」で、 設定 → リポジトリ → 「Ubuntuのソフトウェア」タブ → 「ダウンロード元:」を「日本のサーバ」から「メインサーバ」に…

nextGaussian() の可視化

import java.util.Random; import java.applet.Applet; import java.awt.Graphics; public class Test extends Applet { private static Random rand = new Random(); public void paint(Graphics g) { // Appletのウィンドウサイズを800x600に設定 this.set…

Ubuntu 8.04でログイン時の音を消す

「ポロロン♪」を消す 「システム」→「システム管理」→「ログイン画面」→「アクセシビリティ」タブ→「ログイン画面を表示した時」のチェックを外す 「タッタタッタ、タッタッタタッ、タッタッタ、ターン♪」を消す 「システム」→「設定」→「サウンド」→「サウ…

ブレンディング式の変形

以下は、ブレンディングなどでよく使われる式。 source * rate + destination * (1 - rate) これを展開し、以下のように変形する。 (source - destination) * rate + destination すると、掛け算の回数が一回減る。 処理系によってはこっちの方が速いかも。

Emacsのキーボードマクロについて

キーボードマクロとは、 「キーボードの操作を記録しておいて、後でそれをワンタッチで再生する」 ことができる機能。 同じことを何回も打たなきゃいけないような作業をするときには非常に重宝する。 Emacsでは、キーボードマクロを簡単に扱うことができる。…

Wine+UbuntuでMSペイント

Windows XP の C:\WINDOWS\system32 から mspaint.exe と mfc42u.dll を Ubuntu へコピーしたら Wine でMSペイントが動いた。 めっちゃ err が出るけど。

保存したマクロを読み込んで使おうとしたら、こんな感じで怒られた。 Symbol's function definition is void: kmacro-exec-ring-item 以下の記述を.emacsに書いたらなおった (load-library "kmacro")

Ubuntuでlzhファイルを解凍する

sudo apt-get install lha で、LHAをインストールし、 lha e ファイル名.lzh で、その場に解凍する。

配列の長さを調べる

C

数字 int x[] = {3, 2, 6, 5}; int length = sizeof(x) / sizeof(x[0]); output: 4 文字列 char *str = "hoge hoge"; int length = strlen(str); // stdlib(string?) が必要 output: 9

Subversionでコミットしようとしたらこんなエラーがでた。 svn: Can't convert string from native encoding to 'UTF-8' svn: ?\141?\197?\143?\137?\130?\201?\130.txt ファイル名がShift_JISだったのがダメだったらしい。 面倒くさかったのでファイル名を…

日本語man

sudo apt-get install manpages-ja でインストール

JavaVMのメモリの最大値を設定する

Javaをやる度に忘れるのでメモ。 最大値を例えば512MBに設定する設定する場合は、 -Xmx512m のように書く。 デフォルトでは64MBが割り当てられているらしい。

文字列並び替え

辞書順に並び替える。codepadで実行可。 #!/usr/bin/perl @categories = qw( # ここに文字列をかく hoge piyo ); # 並び替え @categories = sort {"\L$a" cmp "\L$b"} @categories; # 出力 foreach $each(@categories) { print $each . "\n"; }

shellでファイル操作+while文+変数操作

採点作業用に作ったやつ #!/bin/sh FILE=list.txt while read LINE do echo $LINE id=$(echo $LINE | sed "s/DirRegExp\///g") dir=$(echo $LINE | sed "s/\/FileRegExp//g") echo mkdir $id echo "cp $dir/* $id" done < $FILE list.txt Directory_01/Stude…

MIE環境の設定作業ログ

HPがカスタマイズしたUbuntu「MIE」を、 自分が使いやすいようにいじったときのログ 言語を日本語にする デフォルト言語が英語だったので、 「System Settings」-->「Language Support」で言語を日本語に設定した。 キーボード配列を日本語配列にする そのま…

32ビット固定小数3次元ベクトルクラス

C++

#ifndef VECTOR3FIX_H #define VECTOR3FIX_H #include <iostream> #include <math.h> class Vector3fix { public: int x; int y; int z; Vector3fix() : x(0), y(0), z(0) {} Vector3fix(int x, int y, int z) : x(x << 16), y(y << 16), z(z << 16) {} Vector3fix(float x, fl</math.h></iostream>…

32ビット固定小数の精度

上位16ビットを整数部、下位16ビットを小数部とすると、 扱える値の範囲は整数部で -32768 ~ +32767 小数部で 0.0000152587891 ~ 0.999984741 【考察】 整数演算ユニットが使えるので、処理速度は浮動小数より速くなると思われる。 浮動小数に比べると精度…

32ビット単精度浮動小数3次元ベクトルクラス

C++

#ifndef VECTOR3F_H #define VECTOR3F_H #include <iostream> #include <math.h> class Vector3f { public: float x; float y; float z; Vector3f() : x(0.0f), y(0.0f), z(0.0f) {} Vector3f(float x, float y, float z) : x(x), y(y), z(z) {} Vector3f(const Vector3f& star</math.h></iostream>…

Cでのstatic変数

C

C++とはずいぶん挙動が変わってくるので注意。 ◆ 関数内部の static 変数 その変数がプログラムの開始から終了まで生き続ける。 (通常の関数内変数が、その関数の終了とともに内容が破棄されるところを、破棄せずに保持する。) ◆ 関数外部(大域)のstatic…

new演算子の例外処理

C++

new演算子が投げるbad_alloc例外を捕獲する。 int main(void) { double *p; do { try { p = new double[10000]; } catch (bad_alloc ba) { cout << "Memory allocation failed." << endl; return 1; } } while(p); }

VMWareで初期ブート時にディスクが自動再生されないとき

メニューのVM → 設定 → 「ハードウェア」タブ → 「CD-ROM(IDE 1:0)」を「自動検出」から自分でドライブを選択する。 Daemon Toolsとか使ってるとこの現象が発生しやすいかも。

C++でSingletonパターンの実装

C++

・・・をしてみた。 #include <iostream> using namespace std; class Singleton { private: Singleton() {} Singleton(const Singleton& s) {} Singleton& operator = (const Singleton& s) {} public: static Singleton* getInstance() { static Singleton instance;</iostream>…

「とりあえずオブジェクトを宣言しといて、インスタンス化するのは後回し」みたいなことをやる

C++

#include <iostream> class Hoge { public: int x, y; Hoge(int i) { x = i; y = i * i; } }; int main(void) { Hoge *hoge; hoge = new Hoge(3); cout << hoge->x << hoge->y; } C++で、Javaのような「とりあえずオブジェクトを宣言しといて、インスタンス化するのは</iostream>…

C++でJavaのMathクラスみたいなやつを

C++

とりあえずここまで作った #ifndef UTILMATH_H #define UTILMATH_H #include <time.h> class UtilMath { public: UtilMath() { srand(time(NULL)); // 乱数の種を生成 } const static float pi = 3.1415926535f; float toDegrees(float radians) { return radians * </time.h>…

CygwinでSVNの.subversionの出現法

setup.exe でインストール後、ホームディレクトリに生成されるはずの .subversion が見つからなかったが、 svn --help とか打って、ヘルプを出したら .subversion がちゃんと出現した。

Ubuntuのデスクトップにアイコンを出す

以下GUI操作 システム→設定→メインメニュー の アプリケーション→システムツール から設定エディタを起動できるようにする。 アプリケーション→システムツール→設定エディタ の apps → nautilus → desktop をいじる。

開発に使ってるパソコンが3つもあると、さすがにSubversionでも使わないと管理しきれない・・・。

インスタンス化のときの注意

C++

/* Vector3.h */ class Vector3 { public: float x, y, z; Vector3(); }; /* Vector3.cpp */ #include "vector3.h" Vector3::Vector3() { this->x = 0.0f; this->y = 0.0f; this->z = 0.0f; } /* main.cpp */ { Vector3 vec; // ←できる Vector3 vec(); // ←…

その他

Cygwin同梱のgccとMinGW同梱のgccでは挙動が違うっぽい? Qtコンパイルをする時は、コーディングの勢いでCygwinでやりがちだが、注意する。 QPainter::transleteは座標軸の移動