Monday, November 06, 2006

stl fstream and macros on vs7

while working with visual studio 2003 / 7, c++, fstream, log files and macros, like the following:

#define LOGMACRO (format_string, ...) log (__FILE__, __LINE__, format_string, __VA_ARGS__)


got some errors:
error C2059: syntax error : '...'
error C2061: syntax error: identifier '_DebugHeapTag'
xdebug(29): _CRTIMP2 void * __cdecl operator new(size_t, const std::_DebugHeapTag_t&, char *, int)
_THROW1(std::bad_alloc); // allocate from the debug CRT heap


the solution was in 4 steps:

1. replacing all stl include files matching the pattern:
#include <string.h>
#include <fstream.h>

with header files without '.h' in their names, ex:
#include <string>
#include <fstream>


2. putting some parantheses around the parameters in the macro def. value, like:
#define LOGMACRO (format_string, ...) log (__FILE__, __LINE__, (format_string), __VA_ARGS__)


3. replacing '...' and '__VA_ARGS__' with a simple parameter. vs7 does not support varargs in macros.
#define LOGMACRO (format_string, args) log (__FILE__, __LINE__, (format_string), (args))


4. putting the fstream include in the last line of stdafx.h, removing from any other location in the source code like below.
#include <fstream>
using namespace std;


In addition to the things described above, here is a nice macro tutorial: http://en.wikipedia.org/wiki/C_preprocessor

Thursday, November 02, 2006

linux command line tips

This is a list of linux commands for common operations.
Here is a list of tar, cpio and rpm command samples.

Monday, September 04, 2006

merge .net assemblies

this is a microsoft tool to merge multiple .net assemblies:
ILMerge

usually there are lots of assemblies in one project and the release looks kind of messy, merging them in to a single file can be very usefull

Thursday, May 25, 2006

cross platform UML design tools

here is a 2005 aug study on existing cross platform UML tools:
http://www.linuxjournal.com/article/8334

discussed tools:
- dia
- poseidon
- magicdraw

Wednesday, April 26, 2006

google summer of code 2006

google summer of code is starting again>
http://code.google.com/summerofcode.html

Friday, March 31, 2006

documenting the code

A few useful links to source code documentation tools:

doxygen quick tutorial
Kings Tools - a set of useful tools for writing and documenting code (incorporates doxygen). Visual Studio .NET only.
DoxyS - an advanced documentation tool - branched from doxygen

more of them:
here

Tuesday, March 14, 2006

english words

tenet - "Anyone insterested in learning UML must be familiar with the underlying tenet of object/oriented problem solving"

Tuesday, February 14, 2006

testing related resources:

theory

"testing reflections" blog
http://www.testingreflections.com/

Bug Tracking Guidelines
http://bug-tracking-guidelines.com/

Bug triage policy
Here

Microsoft's Bouncing Zero Bugs

"Bug Links" blog
http://buglinks.org/



bugtracker software:

BugTracker.NET
http://btnet.sourceforge.net/

Mantis Bug Tracker
http://www.mantisbt.org/

Flyspray
http://flyspray.rocks.cc/

Bugzilla
http://www.bugzilla.org/

trac
http://www.edgewall.com/trac/

AceProject
http://www.aceproject.com/

Open Directory - Bug Tracking Software

Open Source Testing
http://opensourcetesting.org/

Wednesday, February 08, 2006

livavformat and libavcodec

here is a tutorial on using libavcodec (and libavformat)
libavformat does the demux stuff, libavcodec the video and audio codec work.

libavcodec on wiki (implemented codecs and other stuff)

video processing tools

virtual dub:
http://www.virtualdub.org/

nundub (a 'hacked' version of virtual dub):
http://ndub.sourceforge.net/
http://nickyguides.digital-digest.com/nandub.htm

PiTiVi (linux):
http://pitivi.sourceforge.net/

Creative Commons

Creative Commons is a nonprofit organization that offers flexible copyright licenses for creative works.
can be found here

Tuesday, February 07, 2006

gstreamer issues

here is a tutorial how to compile gstreamer on windows

here is the homepage of gstreamer

here is the cvs repository for gstreamer

download glib

the gstreamer's story

here is pitivi, a video playback and editing tool based on gstreamer

Thursday, February 02, 2006

design patterns - collection of resources


link - Design Patterns - The Sacred Elements of the Faith Diagramm

Wednesday, February 01, 2006

STL allocators

Here is a tutorial about writing STL based allocators

SMMP - shared memory processors and code optimization

Here is a CodeProject article about writing code that can use the power of SMMP.

ms windows - memory allocation

Here is the link to microsoft memory allocation related functions.

here are some undocumented functions described in a CodeProject article.
--

here is a memory pool implementation - CodeProject article

Monday, January 30, 2006

wiki software

here is a list of wiki software on wikipedia

c++ typecasting

Here you can find a c++ typecasting tutorial.

It is part of a great c++ programming tutorial - here


for dynamic_casting you need to enable the Run-Time Type Information (RTTI)
in visual studio: project properties - c/c++ - language - Enable Run-Time Type Info

sqlite vs mysql vs postgresql

here is a performance comparision test for sqlite, mysql and postgresql.

can also be found here

Monday, January 16, 2006

memcached

Here is the homepage of memcached - a high-performance, distributed memory object caching system, generic in nature, but intended for use in speeding up dynamic web applications by alleviating database load.
websites using memcached : slashdot, sourceforge, wikipedia.

Friday, January 13, 2006

kde apps

Here is a long list of kde api based development tools

kdevelop related apps here

Thursday, January 12, 2006

some more software developer or IT blogs

andy jarret blog - mainly web development related

the { buckblogs :here } assorted_ramblings.by JamisBuck

an other "adventurous blog" :) - "Fabulous Adventures In Coding" blog
http://blogs.msdn.com/ericlippert/default.aspx

Eric.Weblog()
http://software.ericsink.com/index.html

bob congdon
http://www.bobcongdon.net/blog/

sönke rohde - flash, eclipse and others
http://soenkerohde.com/

Tuesday, January 10, 2006

SIG33 and the other POSIX RT (runtime) signals

Here is a tutorial about POSIX signals.

from an other source:
if you get "Program received signal SIG35, Real-time event 35.", this is due to a directory changing rather than a bug. You can disable these events and then c(ontinue) (the signal number may vary):

(gdb) handle SIG33 noprint nostop
(gdb) c


there is also mentioned strace :
$ strace -p PID

or
$ strace -p PID -t


other 'tools' for debug and tracing:
- valgrind
- debug for linux

Monday, January 09, 2006

gcc, dlopen and cdecl

Here is a small tutorial about loading .dll-s (.so-s) under linux and the solution to the mangling problem.

shortly : to make available your function written in c++ for dlopen use extern "C" before the function header :

extern "C" void hello() {
std::cout << "hello" << '\n';
}

Develop Desktop GUI Apps with PHP-GTK, the Standalone PHP

Here is an article about writing desktop applications using PHP language and the PHP-GTK package.

Friday, January 06, 2006

gcc issues

Here is a gcc howto

linux boot and startup & other stuff

Here and here are some tutorials on the linux boot sequence.

- to run custom scripts/applications at startup, place them in the /etc/rc.d/rc.local (at least for Fedora Linux Core 4).
- to run customs scripts/apps at login, place the commands in ~/.profile

other linux:
controlling "jobs"
tips and tricks

Thursday, January 05, 2006

gcc personality problems

gcc - the c compiler - has a pretty funny error, when you try to compile a non c file with it:

undefined reference to `__gxx_personality_v0'


one has to rely on the "personality" of g++ to keep the intergrity of the gcc self-esteem.

rar archiver for linux

Here is the rar archiver distribution for different platforms (linux also)

linux environment, startup settings

Here is a tutorial on linux environment, shell selection and startup settings

Wednesday, January 04, 2006

simple, server-less database

Here is the SQLite home page, a library for working with very simple database files, using sql queries. It is a self-contained, embeddable, zero-configuration SQL database engine.

Tuesday, January 03, 2006

linux - Bourne / awk shell scripting

Here is a tutorial on Bourne shell scripting

here is a grep tutorial

here is a detailed list of Csh scripting language problems