Thursday, December 29, 2005

chair for internet surfing

this is claimed to be a chair for internet surfing.

Wednesday, December 21, 2005

linux tutorials

Here is a very nice tutorial about using the autoconf/automake/autoheader tools under *nix.

Here is a linux system admin tutorial.

Tuesday, December 20, 2005

mysql_connect(): Client does not support authentication protocol requested by server; consider upgrading MySQL client

PHP can give you this error when trying to connect to an mysql database.
To solve this problem run the mySql command line client and enter the following command:
SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('password');

my user: is peter, my password: something and my host: localhost
the command will be:

SET PASSWORD FOR peter@localhost = OLD_PASSWORD('something');"

Monday, December 19, 2005

spam blog?

well.. i just got the 'word verification' for each new post and any change i make to my posts - probably because i have tested flock to create blogs -
well i very dislike this stuff. i think i will just move to an other blogger site.

user breakpoint - Breakpoint exceptions from the heap

New programmers sometimes ask why the debugger stopped at a ‘userbreakpoint’ exception in their program. The exception dialog will comeup and say something like:

Unhandled exception at 0x77f75a58 in CoruptHeap.exe: User breakpoint.

The callstack might be something like:


Or if you have symbols:

ntdll.dll!RtlpBreakPointHeap(void *)
ntdll.dll!RtlpValidateHeapEntry(_HEAP *, _HEAP_ENTRY *, char *)
ntdll.dll!RtlDebugFreeHeap(void *, unsigned long, void *)
ntdll.dll!RtlFreeHeapSlowly(void *, unsigned long, void *)
ntdll.dll!RtlFreeHeap(void *, unsigned long, void *)

The problem is that your program has corrupted the heap. Thisusually happens when writing to freed memory, or when writing past theend of a buffer. Use pageheap to try and figure out where your program went wrong.

the above text was taken from the following page:
btw ; great c++ developer blog.

you entar in the mySql command line client and enter the following command SET PASSWORD FOR 'user'@'host' = OLD_PASSWORD('password');

my user: is peter, my password: something and my host: localhost

the command will be:

Here is a document on debugging linux aps.

electric fence - debug tool for linux: here and here
Lately is known as duma

Sunday, December 18, 2005

howto setup proxy under linux

export http_proxy=""

Friday, December 16, 2005

weblog awards 2005

Here is the weblog award contest for 2005

Wednesday, December 14, 2005

C++ STL & related stuff

Here is a nice STL tutorial.

Monday, December 12, 2005

More Ajax resources

MagicAjax - ajax for
here is the homepage of a new ajax framework written for

Ajax Patterns

fooling fingerprint readers

here is an interesting article about how fingerprint readers can be fooled by easy to make fingerprint imitations

Friday, December 09, 2005

downloadable blog engines

b2 - Classy News/Weblog Tool

b2evolution 0.8.9
Multilingual Multiuser Multi-Blog Engine

bBlog 0.7.3
Blogging System Written in PHP

bMachine 2.8
Blog/Journal/Article Publishing System
CuteNews 1.3.1
Simple News Updating Script

Fusion News 3.6.1
Unique, Fast, Powerful News Management

Geeklog 1.3.9
Weblog/Web Portal Software

Greymatter 1.3
Weblog/Journal Software

Nucleus 2.5 Beta
State-of-the-Art Weblog Publishing System

pLog 0.3.1 Beta 1
Open-Source Blogging Software

pMachine 2.3
Online Publishing's Most Flexible, Creative Software

Serendipity 0.6 RC 1
PHP Weblog/Blog Software

Simplog 0.9
Powerful, Yet Simple Web Log

WordPress 1.0.2
State-of-the-Art Publishing Platform

disable internet on windows desktop

a very simple way to disable the internet connection

Open your registry and find the key below.

[HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings]

Change the value of "ProxyEnable" and set it to "1". Change the value of "ProxyServer" and set it to an IP address and port that is invalid on your network such as "" (i.e. "IP:Port").

By changing these settings Internet access will be disabled for any applications that rely of the Microsoft proxy server information such as Internet Explorer, Microsoft Office, Opera browser.

To stop users from modifying the proxy settings add these restrictions to disable changes to the Internet configuration.

Find or create the key below:

[HKEY_CURRENT_USER\Software\Policies\Microsoft\Internet Explorer\Control Panel]

Create two DWORD values named "Connection Settings" and "Connwiz Admin Lock" and set them both to "1".

To remove the restriction, set the proxy settings back to their original values and delete the policy values.

linux stuff

for configuration of different devices

Thursday, December 08, 2005

SEO and google

this will be a collection of SEO related resources :

macedonia and the technical innovations

macedonia, the near future high-tech and innovation paradise in europe?

first : Nationwide Wi-Fi for Macedonia

second : ubuntu linux will be used in schools />


Netwibes - just an other ajax beauty :)
this one is to gather everyday information from free information resources available on the web.

flock reloaded

Well here is a somewhat similar project, but more frank one in the means of giving them the name of distribution not a new browser - as some people criticised flock (I don't agree with that :) ). I refer to Firemonger distribution of Firefox.

The other issue to be discussed would be the VCs, the boom of venture capital investments in Web 2.0 implementations. This is an interesting blog about this subject.

And here is the O'Reilly Radar blog, from the very "heads" of O'Reilly publishing.

slashdot effect

The Slashdot effect is a particular example of how incoming links from a popular website (ex. can cause a smaller site to slow down or even temporarily close due to the increased traffic.

Wednesday, December 07, 2005

cheetsheets for web developers

here is a list of cheetsheets for mainly web developer and linux related software development issues.


here is the Technorati weblog tag cloud.

Trendy people assign their blog entries to technorati tags.

there is a blog search and popular blog page too.

Tuesday, December 06, 2005

flock browser

here you can find the flock browser, under development yet.

So far, Flock works with and Flickr,and allows you to post to your blog from the browser (blogger, wordpress). Supports tagging, advanced feed reader features.

Flock works on Windows, Mac, and Linux.

They are a really open development team. The whole team is blogging and sharing the thoughts online, in their blog. Great!

viva la flock! :)

opensource license types

a collection of the open source licenses can be found here

google blogscoped
blog about google
google history / text art

WTL - windows template library

Windows Template Library (WTL) is a C++ library for developing Windows applications and UI components. It extends ATL (Active Template Library) and provides a set of classes for controls, dialogs, frame windows, GDI objects, and more.

WTL 7.5 and newer:

Microsoft webpage:
WTL 7.0 download on msdn
WTL 7.1 download on msdn
WTL 7.1 release notes
WTL 7.5 download on msdn

Microsoft WTL Licensing

Microsoft development forums: here

cvs for windows

for some features needs python:
maybe you would consider using:
to select the diff tool used for wincvs.
or CVS SCC Proxy - add plugins for VS, BC++:

Tortoise CVS - a windows explorer extension:

CvsIn - an extension for Visual Studio:

favorite Firefox plugins

duplicate tab
measure it
session saver
all-in-one sidebar
web developer
js console extras
customize google

Monday, December 05, 2005

PHP safe mode & gallery2

Some components need Safe Mode disabled for PHP:

Customizing PHP Safe Mode

We’ll guide you through using PHP safe_mode and how-to enable it and to customize it for certain sites on your server. When using PHP as an Apache module, you can also change the configuration settings using directives in Apache configuration files (e.g. httpd.conf) and .htaccess files. PHP safe_mode is very important to in terms of server security because it restricts and disables the dangerous functions in PHP from the scripts like PHP Shell that can otherwise cause damages to your server and client sites.

Using PHP Safe_Mode

First of all we’ll take care of the files that you will edit, and make sure to have copy or backup .

Activate Safe Mode Globally

It is very simple to active safe mode on the entire server. All you need to do is just edit the php.ini file. If you can’t find where php.ini is or have multiple copies on your server the best thing to do is run phpinfo() to find it. Open up Notepad or your favorite HTML editor and paste in the following from this file.

Save it as phpinfo.php and upload it to a website that you want to test on your server. Type in the URL and you’ll get a PHP configuration page telling you exactly where php.ini is located and all kinds of other useful information about the sites and servers configuration settings.

A few lines down you’ll see this:
Configuration File (php.ini) Path: /usr/local/Zend/etc/php.ini
Now that we know the location of php.ini we can proceed to edit it.

1) Open up php.ini in your shell with your favorite editing program.
pico /path to php/php.ini (replace with the path to your php.ini file)

2) Find the following line: safe_mode
Ctrl + W and type in: safe_mode

3) Turning safe mode on or off.
safe_mode = Off

You may active it by or turn it off by changing it to either On OR Off.
safe_mode = On

Good! Now save the file by ctrl + x then y

4) Restart the Apache web server by
/etc/init.d/httpd restart

Now safe_mode is active on all your server accounts.

Activate Safe Mode Using Per Site Basis

Now if you have scripts that require safe mode off like Modernbill or any script doesn't work well with safe_mode on what you will do? Disable safe_mode on the entire server just for these scripts? This isn’t very practical when you can disable php safe mode per user account/site basis.

Let’s do it!
1) SSH to your server and login as root.

2) Then find the httpd.conf, normally it’s in /etc/httpd/conf/ or /usr/local/apache/conf/
If it’s not in either of those places try search for it: locate httpd.conf

3) Then find the site you wish to edit.
Ctrl+W and type in the domain name

You should see something like this

DocumentRoot /home/domain/public_html
BytesLog domlogs/
User domain
Group domain
CustomLog domlogs/ combined
ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/

4) Now add this line:

php_admin_flag safe_mode Off

We have also found that the following works as well if the above does not but DO NOT USE BOTH, pick one!

php_admin_value safe_mode 0

to be like this :

DocumentRoot /home/domain/public_html
php_admin_flag safe_mode Off
BytesLog domlogs/
User domain
Group domain
CustomLog domlogs/ combined
ScriptAlias /cgi-bin/ /home/domain/public_html/cgi-bin/

5) Good :) Now save the changes.
Ctrl + X then Y

6) Restart the Apache web server by
/etc/init.d/httpd restart

Final Words

PHP Safe mode should be on by default on all your servers for added security. However there are some scripts that are not compatible with it on so you have to make an exception to some client sites. Make sure you know why they’re requesting to have it turned off because it is much more secure for everyone to have it on.

If you run into trouble after editing httpd.conf you can run the apachectl configtest
in shell. This will test the Apache configuration for errors and report them back to you if you can’t start it, very handy indeed!
More PHP customizing commands here:

Contributed by ReRoot, edited by Ramprage

Global filesystems and implementations

wiki on this subject:



Repository for Coda:

Inter-mezzo, integrated in linux distributions:

libtorrent reloaded

here is the original homepage

here is the documentation page

for compiling one needs:
Boost Build System V2

the following description is taken from here:

LibTorrent description Download
LibTorrent is a BitTorrent library written in C++ for Unix. It is designed to avoid the redundant buffers and data copying that most (all?) other BitTorrent implementations suffer from.

The library is single-threaded and the client handles the select loop. An interactive ncurses client is included as an example.

Here are some key features of "LibTorrent":

· The client has full control over the polling of sockets.
· Sigc++ signals makes i easy for the client to react to events.
· Fast resume which checks the file modification time.

Direct reading and writing from network to mmap'ed files:

· Avoids duplication of data where both the application and the kernel has a copy of the file chunk.
· Unused chunks get thrown out or written to disk instead of the swap.
· Kernel handles caching of the file.

File hash check:

· Uses the same thread.
· Client can control the rate. (Will be improved)
· Non-blocking and preload to memory with the mincore and madvise system calls.

File handler:

· Fine-grained use of file read/write permissions, allows seeding of read-only files.
· Allows torrents with unlimited number of files.
· Opens closed files when mapping chunks to memory, with graceful error handling.
· Support for files larger than 2 GB.
· Different download priorities for files in the torrent.

· Multi-tracker support.
· No dependency on any specific HTTP library, the client implements a wrapper class.
· Dynamic request pipe size.
· Upload and download throttle.
· And much more i haven't bothered mentioning. (nor implementing)


· libsigc++ 2.0

What's New in This Release:

· Replaced most of the sigc++ slots used internally in libtorrent with my own lightweight functor. This saves some 600kb in debugging symbols.
· Various bug fixes.

dependency hell

A small introduction to linux dependency hell:

Saturday, December 03, 2005

Windows XP Tablet PC programming - first steps

Two of the most innovative features of the Tablet PC are the pen and microphone.

Much of the Tablet PC API is remarkably easy. With just a few lines of code you can attach an InkOverlay object to any Windows Forms control and implement functionality related to handwriting or voice recognition.
More details: here

For more accurate control over the features of Tablet PC there is an other, far more versatile API, the Real-Time Stylus.
More details: here

how to write a popular blog ? :)

I have created this blog to keep the track of some of the problems I had to solve and the solutions I found. So you don't have to learn the same things over and over, just look back in your notes.

Unfortunately google's blogger does not have categories for entries (yet) like other bloggers. It would make my task a lot easier.

I just wondered how other software developers do write their blogs. What makes a blog popular or accessible, readable.
For what reason?:) Because as I finally decided yesterday to publish the blog, in a few hours lots of people were interested in the blog, but.. they just checked the first page and got bored of the content. :) Maybe the name of the blog was interesting, but the content very boring. :)

So I will try to create a good combination of issues of possibble public interest and technical details.

A similarly challenging issue would be how the content will get to the potencial readers? Well.. time will tell.

The most popular blogs worldwide:

Friday, December 02, 2005

blog API's

There are several API-s to retrieve, add, delete, ... data from / to / on blog servers.

An overview:

LiveJournal API:

Blogger API:


Atom API:


"tbd" means "to be determined"; that is, we are still discussing the best values for this entry

"n/d" means no data reported for this field name

POC - Proof of Concept - a small project sometimes done at no charge to validate a technology.

aka - also known as - author pseudonyms, aliases, nicknames.


Universal Plug and Play

The goals of UPnP are to allow devices to connect seamlessly and to simplify the implementation of networks in the home and corporate environments.

the very idea:


bittorrent ...

Creator of bittorrent: Bram Cohen

and his..

Getting Over Bad Habits

well he is pretty stressed guy.:)

here is a great article on bittorrent and its impact on the online world:

capturing video

directx 9.0 sdk:
download directx 9.0 sdk

firewire - IEEE 1394:
IEEE 1394 driver and API for Windows 98 SE -> Win XP
the 1394 driver driver source code -> windows
firewire for linux
video for linux resources

Capture video on windows:
Capture Live Video from webcam, s-video, composite video, tv-tuner
Capture and save in the same time

Capture video on windows

Capture Live Video from webcam, s-video, composite video, tv-tuner
Capture and save in the same time

winmerge & total commander

integrate winmerge with total commander:
"X:\Program Files\WinMerge\WinMergeU.exe"
/ub "%P\%N" "%T\%M"

plugin architecture

video plugins architecture: gstreamer:

unhandled SIGNAL -s stop the application

#for sockets SIGPIPE is fired
# MSG_NOSIGNAL can be passed for sockets send cmd as param
# you can use setsig with SIG_IGN too:

so library

to compile and so lib put -fPIC -shared in CFLAGS

Here is a nice tutorial

use gdb, makefiles, g++

use gdb for debugging applications:

1. #first put debug info in Makefile files:
LDFLAGS = -g -W1

2. #run make

gdb appname
#put breakpoints with:
break [FUNC_NAME]
# [FUNC_NAME] is the function name

4. r [ARGS]
#where ARGS are the args needed for the app

#s for steps
#n for next line of code
#c for run to next breakpoint
#detach to leave program running
#kill to stop app

6. to kill an app being debugged:
ps -C appname
kill -9 apppid
#after that close parent app - or type 'exit' in the parent terminal window.


Here is the KDbg home page.
KDbg = debugger for KDE, based on gdb.


gdb tutorials:
Debugging Under Unix: gdb Tutorial
Debugging with gdb

gnu make tutorial:
GNU make

g++ tutorial

working with svn

to get a previous committed version :
svn list -v
#to list the files and see versions
update -r [VERSION_NUM]
#where istead of [VERSION_NUM] comes the desired version number

svn commit
svn add
svn delete

use tortoisesvn under windows
use subversion under fedora linux

Microsoft Visual C++ Toolkit 2003


SPL - cross platform simple plugin layer (framework)

a simple plugin layer sdk

running functions before and after main (vc 6.0 - windows)

befora / after main

injecting code into an other process

source codes:
remote lib

winamp plugin architecture

winamp plugins

directshow filters architecture

generic issues:


"Transport" models between filters:

bittorent protocol specification

official version:


Monday, November 28, 2005

Thursday, November 24, 2005

Monday, November 21, 2005

directx compilation problems

directx compilation problem with MFC:
error LNK2019: unresolved external symbol "int __stdcall lstrlenWInternal(wchar_t const *)" (?lstrlenWInternal@@YGHPB_W@Z) referenced in function "public: ....

The definition of lstrlenW is in , included by , i.e. DirectShow (DirectX 9.0 SDK).
Putting #undef lstrlenW after the include solves the problem.

Monday, November 14, 2005

single app instance

allow only running of a single intance of an application:
- win: CreateMutex with name
- linux: sysv, futex

Tuesday, November 08, 2005

scp vs sftp

Monday, November 07, 2005

webdav plugin - total commander

webdav plugin - total commander:

sftp, bittorent, perl and others

ActivePerl - perl for windows:

libtorrent - portable bittorent library:

libssh2 - portable ssh and sftp lib:
doc!! ->

winsshd - windows ssh server:

Tuesday, November 01, 2005

data compression links - source code

w3mfc - mfc web server:

libjpeg / windows

a wrapper over libjpg

Tuesday, October 25, 2005

free installers and tools

NSIS 2.0

NSIS 2.0: Nullsoft Scriptable Install System


Inno Setup

Inno Setup

ISTool - GUI tool for edition is scripts

Thursday, October 20, 2005

webcam... linux

Video for linux (v4l)
Most USB webcams have drivers for linux that provide a video for linux interface.
Probably using video4linux would be the simplest solution for capturing video on linux systems.
Example of driver implementation:

There is also a Video for linux 2 implementation:
and they have an API for capturing video:

usb stack implementation for linux

Video4Linux based Plugin for Apache:

Linux webcam howto

webcam ...

IPL98 - Portable Image Library
the IPL98 portable image library has a camera add-on library

Microsoft Vision SDK
After some developers forum recomendation "Microsoft Vision SDK" would be the best to develop webcam capturing applications. Microsoft unfortunately sold the vision sdk to a german company, it is no longer available for download on their reseach lab homepage.

privacy concerns

i have cancelled the editing of the blog because i have found it web-search engines searching for programming resources.
but i consider that i have a lot to lose if i don't keep an evidence of the "research" and my work.
i will probably move to a self-hosted, non-public version of blog server.

video for windows - simple AVI

code samples:

Tuesday, October 18, 2005

cpp coding standard, platform independent c/c++

simple cpp coding rules:

Mozilla's guide for Platform Independent c/c++ development:

portable c/c++ code writing - mozilla's guide

Monday, October 10, 2005