Posted in C++, Qt, プログラム on 07/25/2009 12:15 pm by bae
Qtアプリケーションを作成していて、undefined reference to vtable for <Class Name>エラーが出るなら、mocが実行されていないか、再実行が必要なケースだ。Qtドキュメント「シグナルとスロット」の実例を参照
Qt Createrで、自分で作成したクラスに”Q_OBJECT”を記述したあとに出た。[ビルド]-[qmakeの実行]を実行したあとビルドすると問題解消。ビルド時に自動で検出してmocを実行してくれればよいのに。
Posted in C++, COOL!!SITE!, python, プログラム, 雑記 on 05/15/2009 09:13 pm by bae
おもしろーい。みんないろいろ触ってるのだなぁ。偶然というか、トラックバックの最初の方、faith_and_braveさんのBLOGはほぼ毎日の様に読んでいる。いろいろ勉強させてもらってます。
で、私の場合。なるべく古い方から思い出しながら。
- N-BASIC (PC-6001/6601/8001/8801/9801時代。) MS-DOSなんて無かった(^^;;
- COBOL(*追加)
- MS-DOSのバッチファイル。言語とは言い難いが….制御構造もあるし..ごりごり書いてたし…
- ExcelVBA
- AccessBasic??
- VisualBasic
- SQL(たしか、AS400上の)
- C
- bash
- Oracle PL/SQL
- Oracle Pro C
- HTML
- CSS
- JavaScript
- VBScript
- Java
- D
- XML
- XSTL
- Perl
- PHP
- emacs lisp
- VBA
- C++(runtime)
- C++(compiletime)
- makefile(*2追加)
- Visual C++のMFC。ま、特有のあれがありますから。
- SQL Server Transact-SQL
- PL/pgSQL
- sed
- wscript?jscript?
- Ruby
- Builder C++のVCL。ま、特有のあれがありますから。
- Python
最初にプログラミング的だと思ってコンピュータに触ったのはLANPLANの表計算式かなぁ。楽しかった。VBは言語というより画面のみで、ロジックはDLLに押し込める使い方が多かったように思う。
あと、言語じゃないけど使ってるもの
他にもありそうだけど…思い出せない。こうやってみるとCLI系は避けてる気がする。今後は関数言語とかOMeta, DSL方面に流れる可能性大。
ついでに、使ったことある開発環境、ミドル、開発ツール関連は..
- Excel4~
- Access2.0~
- VB4, VB6
- VC6
- Borland C++Builder 4, 6
- GNU compiler collection , cとc++
- D compiler
- java SDK
- MinGW, MSYS
- Oracle WAS
- IIS
- Apache
- SQL Server
- PostgreSQL
- MySQL
- Access
- Eclipse
- cygwin
- gnu make, nmake
- global tag system
- meadow, emacs, xemacs
- Emediter
- vi, vim
- mercurial
- cvs
- subversion
- VSS
- openssh
- putty
- AS400用のターミナルソフト。AS400からデータもらえるのがうれしかった。
- snmpデーモン
ふー、いろいろやってきたなぁ。メモリリークのツール使っていたけど、名前忘れた..(^^;;;
今は、meadowとglobal, mercurial, cygwin, perlで事足りてる。
*)学生のときにCOBOLバリバリやってたんだった。追加。
*2)そうかぁ、makeもゴリゴリ書くしね。他の人真似て追加。
Posted in python, パソコン身の回り, プログラム on 03/08/2009 10:07 pm by bae
pythonの正規表現モジュールを使って、メールヘッダ内にあるReceivedから情報を取ってみる。
from …. byの間に、HELO、逆引き名、IPアドレスを取得できる。
$ python
Python 2.5.2 (r252:60911, Oct 5 2008, 19:24:49)
[GCC 4.3.2] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> f = open('./MAIL/trash/1189','rb')
>>> data = f.read()
>>> import email
>>> import feedparser
>>> import re
>>> p = email.Parser.FeedParser(email.message.Message)
>>> p.feed(data)
>>> pc = p.close()
>>> for item in pc.items():
... a = re.match(r'^from (.*)\((.*)\[(.*)\].*', re.sub('\n','',item[1]))
... if a != None:
... a.groups()
... a = re.match(r'^from (.*)\(HELO (.*)\).*\((.*)\).*', re.sub('\n','',item[1]))
... if a != None:
... a.groups()
...
('10.236.62.152 (EHLO opEXCC02.tp.gk.corp.tepenet) ', '', '10.236.62.152')
('OPEXCV08.tp.gk.corp.tepenet ', '', '10.236.62.25')
それらしき値が取れているけど、もちっと考えないと使えない。今日はここまで。ふぅ。
参考サイト
Posted in C++, Tips, プログラム on 02/14/2009 02:28 pm by bae
thisをshared_ptrで他のクラスに渡したい場合にどうするか。メモ。
#include <boost/shared_ptr.hpp>
#include <boost/enable_shared_from_this.hpp>
using namespace boost;
#include "Y.h"
class X : public enable_shared_from_this<X>
{
private:
Y y_;
public:
void make_reference();
};
void X::make_reference()
{
/* Yに自身を渡す*/
y_ = new Y(shared_from_this());
}
注意点、Y側はshared_ptrからweak_ptrに変換して保持しないと循環参照となりX, Yもdeleteされないことに。また、shared_ptrをコンストラクタで構築すると、コンストラクタを抜けた時に自身が解放されちゃう。
class X
{
public;
X() { shared_ptr<X> x = shared_from_this(); } ///NG
}
参考文献 :
Posted in プログラム, 情報 on 01/22/2009 11:06 pm by bae
NokiaがQtをLGPLで提供するとのこと。SRAもそれに対応するビジネスモデルに移行する模様。
Nokia to increase adoption of Qt with additional licensing option
株式会社SRA、C++アプリケーションフレームワーク「Qt」のLGPLへのサポートとビジネス体制強化を発表
今までは高いライセンス料を払わなければならなかったのだが、LGPLを選択することでQtライブラリを利用しながらもプロプラエタリなアプリケーションを作成することができる。
再配布しない商用利用も可能になるだろう。つまり、社内システムにも利用する。
早くリリースされないかな。楽しみだ。さっそくPyQtあたりの情報収集したり(^^
Posted in プログラム, 反省, 思うこと, 開発プロセス on 01/17/2009 07:09 pm by bae
テスト仕様ある場合「なぜそれを確認できなかったか?」には明確に回答できる。つまり、テストできなかった理由を言うことができる。そして、それを改善できる。
なぜなら、テスト仕様の作成方法、もしくはテスト仕様のインプット文書に誤りがあるはずだからである。
これがテスト仕様が無い場合にはどうか?闇雲の工程から改善すべき部分を探す…..運良く何が悪のかに気がつく場合もあるかも。大抵はもっともな理由を探す事になるだろう。
Posted in Uncategorized, プログラム, 反省, 思うこと, 開発プロセス on 11/25/2008 12:25 am by bae
「テストできている」ということは、そのテスト仕様において正常に動作することが確認できているということである。ということは、「リリース後に発見された不具合」は正常を確認できていないケースということである。
そして「プログラムが正常に動作しないケースがありました。」と言うことになる。すると、なぜそれを確認できなかったのか?という所に辿り着く。
Posted in プログラム on 07/29/2008 11:50 pm by bae
GNU GLOBAL source code tag systemを久々にVerUp!
gtagsが以前より軽くなった気がする。うれしいのは、xemacsでのファイル読み込みがものすごく早くなって快適になったことか。
Posted in Moblog, このBLOGについて, プログラム, 開発プロセス, 雑記 on 06/27/2008 03:16 am by bae
wp-mixipublisherのテスト投稿です。