2008-10-01から1ヶ月間の記事一覧

標準モジュールの調べ方

CPANからModule::CoreListをインストールする。 あとはPerlスクリプトからModule::CoreListをuseしてデータもらったり、コンソールからcorelistコマンドを打ち込んで調べればいい。$ corelist モジュール名 $ corelist -v バージョン番号ただし5.8.8などのバ…

MySQLのバックアップの取ってみる

簡単な方法で。 全部バックアップ $ mysqldump -u ユーザー名 -pパスワード --default-character-set=文字コード名 -x --all-databases > 出力ファイル名 指定したDBだけ $ mysqldump -u ユーザー名 -pパスワード --default-character-set=文字コード名 --lo…

7zipの使い方 - 超簡易版 -

$ sudo apt-get install p7zip-full で7zipをインストール。 以下使い方。作成の場合は指定した名前のアーカイブが無ければ新規作成。 アーカイブへの追加作業 $ 7z a アーカイブ名 追加するファイル名 圧縮内容を標準入力から受け取り $ 7z a -si アーカイ…

関数ポインタ

すぐやり方を忘れるので覚えているうちにメモ。 void hoge(){} namespace foo{ void piyo(){} } class bar { public: void boon(){} static void ban(){} }; // typedef 戻り値 ポインタの型名(引数リスト); 引数部分の書き方はC/C++の文法に準じる。 typede…

segmentation fault

セグメントはメモリ上に特定のデータ量でコード及びデータが展開された領域のこと。 んでここから外れた所をポインタで参照したら出るエラーが「segmentation fault」。

音が突然出なくなったときの対処

kubuntuを使っていて、起動中に急に音が鳴らなくなることがあるのでその対処方法。 前提 echo 1 > /dev/dsp とコマンドを入力して bash: /dev/dsp: Device or resource busy と表示される 対処方法 sudo fuser /dev/dsp または sudo lsof /dev/dsp と入力し…

メールと電話

メールには特定電子メールなんちゃら法とかいう名前の法律があり、そう遠くない未来には営業・宣伝目的のメールは事前の許可が無いと送信できないように改正され施行されます この改正法の施行後に事前の許可なしに届いたメールは違法ですのでバンバン届けち…

変数に放り込める最大値を知る。

unsignedな変数ならsignedにキャストして-1を放り込んでunsignedに戻せば達成できます。*1 ですが、コンパイラに付属のヘッダファイルから直値で知れればそっちの方が処理速度は上がります。 ってことで、各変数に放り込める最大値がマクロで定義されている…

途中return

今まで普通にやってきたけど、関数の途中でreturnを平気で書いちゃうのはあんまり良くないらしい。 たしかに関数が肥大化して書いた本人も処理の流れを把握できてないような可読性が著しく下がりまくったコードで、breakだとかcontinueだとかreturnだとかが…

コーディングスタイルメモ

変数・定数・関数の命名規則 - 2008年10月19日版。 変数 グローバル変数は g_ を接頭辞にする。 自動変数は a_ を接頭辞にする。 関数引数は i_ を接頭辞にする。 static変数は s_ を接頭辞にする。 クラスのメンバ変数は m_ を接頭辞にする。 一時変数*1は …

いまさらMYUTA事件について考えてみる

MYUTA事件についてはMYUTA事件 - Google 検索とかから拾える情報を参考に。 もう一年くらい前の事になるんですかね。 当時はこれについて「何で?」としか思えなかったものです。 一年経って多少は頭のキレがよくなって理解できるようになった(ちゃんと理解…

PerlでのHTTPレスポンスヘッダ制御のあれこれ

Perlスクリプトにアクセスされた時に404とか返して嘘つくにはどうしたらいいんだろうと思ったのでメモ。 レスポンス行: Status: (ステータスコード) (補足テキスト) \n って感じでprintとかで出力。ヘッダ行: とりあえずそのまんまprintとかで出力してみる…

EPICの設定

EPICを使っててツールチップが出ると何故かエディタからフォーカスが外れてそのまんまになる。 結構ストレスが溜まる症状なのでツールチップを出さないようにする設定を行います。 Windows > Preferences と進んで出てきた設定ダイアログで以下の操作を行う…

DBI使うときの鉄板

RaiseErrorを有効にしてDBIにdieさせてevalでキャッチ。 AutoCommitは切る。SELECT文だけしか使わない時はどっちでもいい。 問題なく全てが終了したときだけcommitする。他は全部rollbackして元に戻す。 外部から入力された値をSQL文に組み込むときは必ずプ…

なんだかなぁ

こんにゃくゼリーの論理破綻 - (旧姓)タケルンバ卿日記避難所 野田消費者相マンナンライフを脅す - 璧を完うす(へきをまっとうす) http://www.jiji.com/jc/zc?k=200810/2008100200742 で、問題の内閣府に呼び出しをした人はどこの会社と繋がりがあるんで…

C++での多次元配列の作り方

今日久しぶりにC++やってnew char[x][y]って書いたらコンパイラに怒られたのでメモ。 1:コンパイル前に大きさが決まってる場合。 char str[5][5]; 2:コンパイル後に動的に大きさをコントロールする場合。 int x = 5; int y = 5; char **str; str = new cha…

ディレクトリ内のファイルを全て削除

my $DirectoryPath = '/hogehoge/hogehoge'; opendir(DIR, $DirectoryPath); unlink map { $DirectoryPath.'/'.$_ } grep { -f $DirectoryPath.'/'.$_ } readdir DIR; closedir(DIR); ディレクトリは削除されません。

Perlの俺ルール

Perlでプログラミングする際の俺ルール。文字コード編。 内部的に扱う文字コードはutf8で統一。 プラグマはuse utf8のみ。 入力されたデータは必要に応じてutf8::decodeしてutf8で扱う。 出力するデータはutf8::encodeしてから出力。 ---- 2009/09/19 追記 -…

Perlでファイルアップロード

Perlでアップロードファイルを受け取る時の最小よりちょっと色々おまけが付いてるコード。 post.cgi UTF-8で記述。 #!/usr/bin/perl -w use strict; use warnings; use utf8; use CGI; use File::Copy; use File::Basename; &main(); sub main{ # CGIオブジ…

ファイル比較

バイナリ比較 $ cmp file1 file2 テキスト比較 $ diff file1 file2 違う箇所がある場合、どこが違うのか表示される。 全く同じ場合は何も表示されない。

mapとgrepの違い

Perlではmapとgrepというぱっと見よく似た関数があります。 mapが対象リストの各要素に対して行う処理は式。その結果のリストを返す。 grepが対象リストの各要素に対して行う処理は条件式。合致した要素だけからなるリストを返す。

ディレクトリ中のファイル一覧取得

opendir(DIR, $DirectoryPath); @DirectoryIndex = grep { !m/^(\.|\.\.)$/g } readdir DIR; closedir(DIR); . と .. 以外のファイル一覧が取得出来ます。

ワイルドカード

コンソールでパスを指定するときにはワイルドカードが使える。 $ sudo rm -R /* これで全部消えちゃいます。良い子は実行しないでね。 $ ln -s /hogehoge/* /hogehoge2 これで/hogehoge直下のファイル及びディレクトリへのシンボリックリンクが/hogehoge2に…

ubuntuでのApache2へのmod_perl2導入

インストール $ sudo apt-get install libapache2-mod-perl2 で、mod_perl2はインストール完了。 設定 apache2.confとかがincludeしてくれる位置に、適当な設定ファイルを作っておくといい。 mods-enabledの中にperl.confとして作っておくと他のmodと似たよ…

OpenGLプログラミングの準備

ubuntuの場合、コマンド一行で完了。GLUTっていうOpenGLをラップして使いやすくしたライブラリをインストール。 $ sudo apt-get install freeglut3 freeglut3-dbg freeglut3-dev コンパイルするときは「glut」「GL」「GLU」をライブラリパスとして指定してリ…

google - sparsehash

google codeにて公開されているsparsehashがなかなか速くていいそうです。 http://code.google.com/p/google-sparsehash/ 要素アクセスの際のオーバーヘッドが2bits/entry。よく分からんのでこの辺要勉強。メモリ効率を重視した sparse_hash_map/set 実行速…

State/Strategyパターン

State/Strategyパターンは状態とか戦略とかのクラス化をするパターンです。 要するにインターフェースは同じままでアルゴリズムを取り替え可能にしましょって話。 複数のソートアルゴリズムを扱う場合の簡単過ぎる一例を書いておきます。 まぁこんな感じって…

主に自分のメモ帳として利用予定。

プログラミングとかubuntuとか使っていく上での備忘録。 同じような所で詰まった人の助けとかになれば幸いです。

Qt 及び Qt Eclipse Integrationのインストール

Kubuntu上でGUIプログラミングを行うのにQt4を利用しようと思ったので、必要な物のインストール及び設定メモ。 まずAdeptとかを使って公式のリポジトリからQt4関係の物を一式インストールしようと思ったけども、uicとかが何故か古いので本家のtrolltechから…