C++で淡々とregex.hを使ってみた その3

グループを使いつつ, 繰り返しパターンをあててみる.パターンは最長のものを選んできてしまうので, 短いものが欲しい場合はパターンを工夫する必要がある. 今回はグループ内の文字にセパレータ(ここでは"aeiou"のいずれか)を含まないようにしている.http://i…

C++で淡々とregex.hを使ってみた その2

続いてregexecで実際に正規表現をあててみよう. #include <regex.h> #include <iostream> int main(void) { char target[] = "abcdefghijklhmopqrstuvwxyz"; regex_t reg; int errcode = regcomp(&reg, "ijl", REG_EXTENDED); if (errcode != 0) { char errbuf[100]; regerror(e</iostream></regex.h>…

C++で淡々とregex.hを使ってみた その1

boostの正規表現ライブラリを使っていたのだが, Cライブラリであるregex.hで代替できないか試してみる. ひとまずは以下のページを参考にした.http://sometime.minidns.net/programming/c/posix_regex.html http://linuxjm.sourceforge.jp/html/LDP_man-pages…

Windows 8.1 Proで英語キーボードをBluetooth接続

Thinkpad 8に英語キーボードをBluetooth接続すると日本語キーボードとして認識されてしまい困った. あまり好ましくないがまともな方法がなかったのでレジストリをいぢる方法を用いて解決した.http://d.hatena.ne.jp/ruby-U/20101110/1289371908

Thinkpad 8でPUSH2TVを試した

下記の記事に啓蒙されてThinkpad 8からPUSH2TVへワイヤレスディスプレイを試してみた.http://pcmanabu.com/thinkpad-8-hdmi/最初デバイスは登録出来たもののディスプレイが見つからず, 困ったがどうやらVirtualboxのネットワークデバイスが悪さしていたらし…

HDF5はBoolean型をサポートしていない

みたいです. HDF5はC言語で書かれているため, boolean型はサポートしておらず, 整数型を使うように提案されています.http://www.hdfgroup.org/hdf5-quest.html#bool

C++におけるthisポインタの型

くだらないっちゃあ, くだらないのだが, C++でthisポインタの型ではまったのでメモ. クラス型 X のメンバー関数に対する this ポインターの型は、X* const です。 メンバー関数が const 修飾子を用いて宣言されている場合、 クラス X のそのメンバー関数に対…

PythonのVTKでオフスクリーンレンダリングをリモートで利用する

Windows 7からUbuntuのサーバにSSHログインしてpython-vtkのプログラムを走らせようとするとDISPLAYがらみで動かない. vtkRenderWindowにはSetOffScreenRenderingというオプションがあるのだが, これを指定しても結局ハードウェアを動かそうとするらしい. 前…

Pythonで参照の扱いに注意1

これは散々言われてきた事と思うが, Pythonではリストや辞書などが基本参照扱いになるため, 一見不思議な挙動になることがある. 注意していたつもりだが, 軽く陥ったのでメモしておく. >>> burger1 = [[]] * 10 >>> print burger1 [[], [], [], [], [], [], …

Windows7でRadikaが動かなくなったら

先日, Windows7上でRadikaを起動したところ, 再生と録音ができなくなっていた. いろいろ調べてみるとどうやらInternet Explorerが10から11へとバージョンアップされていたのが原因らしい.とりあえず, Firefoxを使っているのでIE10に戻せば済む話であった.ま…

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) まあ, 役…