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

Office PowerPointで画像の背景を透明にする

画像を挿入した後, 特定の色を透過色に指定したい場合. 図をダブルクリックし, 図ツールの書式をメニューから選択した後, 調整の中の"色"を選択. 下の方にある透明色に指定を選び, 図から透過にしたい部分を選んでクリックすると, 選択した部分の色が透過色…

OpenSUSE 12.3のインストール

好みの問題で, GNOME (フォールバックで無い方)を使っています. そのためか, 検索してもすぐに解決法が見つからない事が多い気がする.http://opensuse-man-ja.berlios.de/opensuse-html/art.gnomequick.html1. ネットワークがつながらなかったので設定. 右上…

Matplotlibでヒストグラムと累積グラフ

Matplotlibを使って, ヒストグラムと累積グラフを出力する簡単なプログラムをメモ. シンプルなものが欲しかったので. import matplotlib.pylab as pylab import numpy data = numpy.random.normal(0, 1, 10000) # generating an input fig = pylab.figure() …

C++のboolの配列とunsigned char

フラグの配列を使いたいときに, "bool flags[8]"などとする代わりに"unsigned char"を使ってビット演算した方が良いという話. 本当かどうかは知らないがちょっと面白かったのでメモ. unsigned char flags; (flags & 1); // return 1st bit (the 1st flag) (f…

Windows 7 64bitでPythonの設定

Ubuntuで開発してきたPythonのコードがWindowsでも使えるか確認するために, Windows上にPythonとそのライブラリのセットアップを行った. 最初はライブラリのインストールにはeasy_installを使え, との事だったので試したが, 結果64bitだったせいかeasyではな…

Windows7でLinuxサーバにログインして作業

Ubuntuを主に使っているのだがこのところWindows7をメインマシンにしている. 作業環境をどうするのか迷ったが, いくつかのソフトを入れることでXが飛んでこないこと以外はかなり快適に作業できるようになった. はじめはEclipseの設定をがんばろうかと思った…

Python Image Library (PIL)で文字を書く

PythonのモジュールであるPython Image Library (PIL)で画像にテキストを出力する方法.PILはnumpyのarrayから画像を生成してくれるので重宝していたのだが, 欲を出してテキストを付加することにした. これも非常に簡単にできる.以下に文字を画像のちょうど中…

g++の関数でreturnを省略してもコンパイラは通るが返り値は不定

タイトル通り. 従って以下のようなfunc2も普通に実行される. #include <iostream> template <typename T_> T_ func1(const T_& x) { return x * 2; } template <typename T_> T_ func2(const T_& x) { // return func1(2 * x); func1(2 * x); } int main(void) { std::cout << "func1 -> " << fun</typename></typename></iostream>…

C++でファイル読み込み

よりC++らしいファイルの読み込み方法はなんだろうか. C++の教科書などを見てもファイル入出力になると途端にfprintf, fscanfが登場することがあって困る.出力に関してはboost::formatなどを含め, fprintf無しでもfstreamでできるが, 入力となるとfscanfの代…

Gnuplotで3Dプロットの各軸の比率を固定

タイトル通り. set ticslevel 0 set view equal xyz"set view noequal"で解除する.http://d.hatena.ne.jp/DOSEI/20110206/p1

boost::arrayの初期化

boostのarrayを使う際に初期化で少し躓いたのでメモ. boost::array<double, 3> a = {{0.0, 0.0, 0.0}}; // 正しい boost::array<double, 3> a({{0.0, 0.0, 0.0}}); // エラー これだとメンバ変数の初期化で困る. これを解決するには自分で以下のような関数を用意しておく必要がある</double,></double,>…

Windows7でOpenVPN

Ubuntu用にサーバのOpenVPNを設定してもらったので, Windows7でも使えないか試した. Windows7そのものにもVPNの設定方法はあるらしいが, OpenVPNは別途ソフトウェアをインストールする必要がある. 以下から適当なインストーラをダウンロードして粛々とインス…

Windows版のgnuplotスクリプトでpauseがきかない

どの程度の人に役立つか不明だが, Windows7のコマンドプロンプトからgnuplotを起動して使っていたが, スクリプトを作成し, C:\> gnuplot < plot.pltこれだと一瞬ウィンドウが出てすぐに消えてしまう. Linuxの時と同様に"pause -1"のように加えてもダメ. 調べ…

UbuntuでScansnap S1500を利用する

A4片面を2枚だけスキャンしたがまあなんとかできた. xsaneの初期値がアレゲなので変更の必要があり. ScanSnapをUSB接続し, ふたを開けて電源を入れる. sudo apt-get install xsaneでXsane Image Scannerをインストール. xsaneで起動. "タイプ"を"PDF"等に変…

SSHFSを使ってリモートサーバのファイルシステムをマウントする

以下のサイトをそのまままとめただけです.http://ubuntu-note.blog.so-net.ne.jp/2011-02-05Ubuntuを使っていて, いちいちsshログインやsftpを使ってファイルをいぢっていたがあまりに面倒になってきた. そして, いっそのことマウントすれば良いのではという…

GnuplotでCSV形式のファイルを使う

結果を出力する場合, Gnuplotでみるためにタブ区切りをするのは癪なので, Gnuplot側で対処できないか調べたところ, あっさり解決した. gnuplot> set datafile separator "," gnuplot> plot "test.csv" using 1:2 w l要するに1行目でセパレータを指定している.…

vim備忘録

vimブームふたたび. 今度はどれだけ保つことか. とりあえず, 良く使うコマンドをメモしておくことにする. 随時更新. コマンド 機能 Ctr+w v Ctr+w v 画面を横に3分割 Ctr+w w もしくは Ctr+w Ctr+w 分割されたウィンドウ間を移動 :%s/old/new/gc ファイル中…

C++のstd::vectorのコンストラクタの引数はreserveじゃなくてresize

タイトルの通り. あらかじめ挿入する要素数がわかっている場合に, メモリをまとめて確保したい. そういう場合こんな風にできる. std::vector<double> retval; retval.reserve(10); ; // 以下でpush_back これを勘違いして, std::vector<double> retval(10); ; // 以下でpush_</double></double>…

Boost 1.46.1のpoisson_distributionを使った乱数生成は動かない

古い話かもしれないが, 今使っているUbuntu 12.04のboost/tr1/random.hpp (tr1/random)で, poisson_distributionを用いた乱数生成をしようとすると動かない. 動いてもとても遅く, おかしな値が返ってくる.実際, Boostのサイトから現状の最新版である1.53.0を…

Bashシェルで連想配列を使う Python編

シェルでの連想配列の実現の仕方をPythonでも試してみた. #!/usr/bin/env python MAP_key1 = "value1" MAP_key2 = "value2" MAP_key3 = "value3" for key in ("key1", "key2", "key3"): val = eval("MAP_%s" % key) print "%s => %s" % (key, val) まあ, 役…

Bashシェルで連想配列を使う

シェルを使ってみている今日この頃. 連想配列はシェルでは無理だろうと思っていたが, シェルならではの方法で実現できることがわかった. #!/usr/bin/env bash MAP_key1="value1" MAP_key2="value2" MAP_key3="value3" for key in key1 key2 key3; do val=$(e…

PS3とPS Vitaでリモート起動とリモートプレイ

PS4が発表されてすぐになんだが, PS3とPS Vitaでインターネット経由でリモート起動とリモートプレイを可能にする設定についてメモしておく.ネットワーク環境はPS3から無線LANでルータWZR-600DHPへ, そこからはVDSLです. PS3の設定, リモートプレイ設定から機…

std::coutを一時的に無効にする

状況に応じてstd::coutで出力していたものを一時的に無効にして, コンソールに何も出力されないようにしたい. ちょっと検索してみると以下のようなスレッドがひっかかった. 読んでみると面白い.http://stackoverflow.com/questions/8246317/redirecting-func…

libはじまりでない共有ライブラリをリンクする

wafでビルドシステムを構築している際に, libはじまりでない名前の共有ライブラリをビルド時にリンクする必要が出てきた. wscriptではlibオプションにライブラリ名を指定できるが, libで名前のはじまるパスの通ったものしかリンクできないように見えたので, …

Pythonで3次元単位球面上に一様な乱数を生成する

お題の通り. 単純に v = numpy.random.uniform(-1, 1, size=3) v /= numpy.linalg.norm(v) 等とすると一様でなく偏った分布になってしまう. この場合, 例えば, 一行目で生成したvの長さが1以下の場合に限って正規化して返し, それ以上の場合は生成しなおすよ…

boost::arrayの初期化

boost::arrayを初期化する際に以下のように書く. どちらも普通にコンパイルした場合は通るが, strictなチェックでは"warning: missing braces around initializer for 'int [4]'"などと言われて, Line2が落ちる. ようするにLine 1が正しい記述である. boost:…

C++のswitch文

ググってC++のswitch文の説明を見ているとおよそフォールスルーが話題になりがちに見える. #include <iostream> int main(int argc, char** argv) { switch (argc) { case 1: std::cout << "1." << std::endl; { // この波括弧は必須 const int var(10); std::cout << </iostream>…

Emacsでコメント行の色を変更

設定ファイルをいぢったせいか, python-modeでコメント行の色が赤でなくなり読みづらい. 結論から言うと, .emacsファイルに以下の行を足すと直った. (set-face-foreground 'font-lock-comment-face "red") M-x list-faces-displayでフォントのface(種類)の一…

STLのsetについて

こんな話もあるようです.http://lafstern.org/matt/col1.pdf http://codezine.jp/article/detail/6186

std::setのinsertが返すiteratorについて

std::setに要素を追加するコードとして以下のようなものを書いてみた. #include <iostream> #include <set> struct Element { Element(int const& arg1, int const& arg2) : first(arg1), second(arg2) {} int first; int second; }; inline bool operator<(Element const& </set></iostream>…