<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-7108735</id><updated>2011-08-21T12:16:10.220+02:00</updated><title type='text'>dpointer</title><subtitle type='html'>1% coding, 99% debugging</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>20</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-7108735.post-116699850825170797</id><published>2006-12-24T23:04:00.000+01:00</published><updated>2006-12-24T23:17:00.663+01:00</updated><title type='text'>Which color role?</title><summary type='text'>Are you sometimes confused which one of QPalette::Background or QPalette::Base you need to use? Look no more, using this small utility shown below, you can find the exact RGB of each color role of the default widget. This is how it looks like (left: Linux, right: Windows):




And here is the code. You can compile it with:

g++ -o qpal qpal.cpp -I/usr/include/QtGui -L/usr/lib -lQtGui

or create a</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/116699850825170797/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=116699850825170797' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/116699850825170797'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/116699850825170797'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2006/12/which-color-role.html' title='Which color role?'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-116056504619746099</id><published>2006-10-11T13:07:00.000+02:00</published><updated>2006-10-11T13:10:46.216+02:00</updated><title type='text'>soc 2006 t-shirt</title><summary type='text'></summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/116056504619746099/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=116056504619746099' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/116056504619746099'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/116056504619746099'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2006/10/soc-2006-t-shirt.html' title='soc 2006 t-shirt'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-115818377277535452</id><published>2006-09-13T23:34:00.000+02:00</published><updated>2006-09-14T23:04:16.760+02:00</updated><title type='text'>Underwater effect</title><summary type='text'>Basic idea: shift the pixel in horizontal and vertical direction sinusoidally.

Here it is assumed that buffer is the off-screen buffer (will be copied to the video buffer), width and height hold the dimension of the buffer. tick is the time variable, in this example it is taken using SDL_GetTicks function. Divide by 4 causes the oscillation period to be 4 seconds. Bonus for readers who figure </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/115818377277535452/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=115818377277535452' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/115818377277535452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/115818377277535452'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2006/09/underwater-effect.html' title='Underwater effect'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-113256519655399497</id><published>2005-11-21T10:25:00.000+01:00</published><updated>2005-11-21T10:34:44.820+01:00</updated><title type='text'>Simple Unzip</title><summary type='text'>How to extract files from a ZIP file? Simple. The code fragment below shows how to  do it. You need to have zlib for the decompression routine and minizip for the actual ZIP-compatible implementation. Note that minizip package already contains a full implementation of unzip, called mini-unzip, yet the function presented here is simpler to understand and to modify.

To compile, you need to link to</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/113256519655399497/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=113256519655399497' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/113256519655399497'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/113256519655399497'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/11/simple-unzip.html' title='Simple Unzip'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-112133009155314320</id><published>2005-07-14T10:23:00.000+02:00</published><updated>2005-07-14T10:34:51.586+02:00</updated><title type='text'>Logging to String</title><summary type='text'>It it easier for later troubleshooting if your classes have logging facility, or at least a special member function used to dump their state. Since we might not want to dump always to screen, a logical declaration would be:

void FooBar::dump( std::ostream&amp; out ) const

since we can call it with instance-&gt;dump( std::cout ) and it will output to screen.

Suppose there are many instances of </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/112133009155314320/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=112133009155314320' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/112133009155314320'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/112133009155314320'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/07/logging-to-string.html' title='Logging to String'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-111771207270441614</id><published>2005-06-02T13:33:00.000+02:00</published><updated>2005-06-02T13:34:32.710+02:00</updated><title type='text'>FreeVCS (Win32) for Easy Version Control</title><summary type='text'>Developers of open-source project are normally very familiar with the 
use of version control, e.g. CVS which is quite popular. If you code 
in Win32 platform, source code management software is either not free 
(sometimes very expensive) or difficult to setup. Look no more, should 
you need basic features of version control: check in, check out, history, 
and diff/merge, then you can use FreeVCS</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/111771207270441614/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=111771207270441614' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/111771207270441614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/111771207270441614'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/06/freevcs-win32-for-easy-version-control.html' title='FreeVCS (Win32) for Easy Version Control'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-110926491376770242</id><published>2005-02-24T17:44:00.000+01:00</published><updated>2005-02-27T01:13:00.656+01:00</updated><title type='text'>OpenWatcom (and STLport)</title><summary type='text'>The Watcom family of compilers always amazed me. First time I faced it years ago, when I was about to help my uncle debugging his program (this was WATFOR 77). Although Fortran was never my soul, it has ever caught my attention thanks to its wonderful features. Years after, knowing that DOOM was built using Watcom C/C++ compiler, I could imagine what kind of luxury it would offer; due to the fact</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/110926491376770242/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=110926491376770242' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110926491376770242'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110926491376770242'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/02/openwatcom-and-stlport_24.html' title='OpenWatcom (and STLport)'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-110907852804275936</id><published>2005-02-22T14:20:00.000+01:00</published><updated>2005-02-24T17:31:40.963+01:00</updated><title type='text'>I/O Port Access under Windows NT/2000/XP</title><summary type='text'>Under DOS, you are free: you can directly access whatever hardware input/output ports you want to use. But with a real 32-bit operating system like Microsoft Windows NT family (this includes Windows 2000 and Windows XP), not longer you have such a wonderful freedom. Most of the time, you need to communicate with a device driver which then translates your commands and dispatches them properly to </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/110907852804275936/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=110907852804275936' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110907852804275936'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110907852804275936'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/02/io-port-access-under-windows-nt2000xp.html' title='I/O Port Access under Windows NT/2000/XP'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-110705022065685568</id><published>2005-01-30T02:46:00.000+01:00</published><updated>2005-01-30T02:57:00.656+01:00</updated><title type='text'>Final Countdown</title><summary type='text'>Do you want to know how many days are still until certain date? This simple countdown program will do it for you. When you run it, a number will shown in the top right part of your desktop; this is number of days until August 17th, 2005. 


Basically it uses QDate to calculate the date difference. Also, this small code illustrates the use of unique combination of WStyle flags to show a small </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/110705022065685568/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=110705022065685568' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110705022065685568'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/110705022065685568'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2005/01/final-countdown.html' title='Final Countdown'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-109638406783915778</id><published>2004-09-28T17:03:00.000+02:00</published><updated>2004-09-28T17:07:47.840+02:00</updated><title type='text'>Paint Your Form</title><summary type='text'>Answering one question about QPainter in the mailing-list, I gave a short example like below. This is a single-file, Qt-based application, so perhaps you can compile directly and save time by avoiding qmake. The purpose of this small program is very simple, paint a picture, taken from file pic.jpg, to its main window. Of course, to try it you need to supply the JPEG file (could be anything).

#</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/109638406783915778/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=109638406783915778' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/109638406783915778'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/109638406783915778'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/09/paint-your-form.html' title='Paint Your Form'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-109525656291976346</id><published>2004-09-15T15:54:00.000+02:00</published><updated>2004-09-15T15:56:02.920+02:00</updated><title type='text'>Idle</title><summary type='text'>You want to process something while your application is in idle
state? Look no more, and even no need to understand multithreading
programming. This cheap trick is a fabulous replacement for thread
(this is also mentioned in QTimer documentation):

 idleTimer = new QTimer( this ); QObject::connect( idleTimer, SIGNAL(timeout()), SLOT(idle()) ); idleTimer-&gt;start( 0, FALSE ); 

Of course this</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/109525656291976346/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=109525656291976346' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/109525656291976346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/109525656291976346'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/09/idle.html' title='Idle'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108979925006059790</id><published>2004-07-14T12:00:00.000+02:00</published><updated>2004-07-14T12:00:50.060+02:00</updated><title type='text'>HTML Parser (Kinda)</title><summary type='text'>Let's assume I have a bunch of HTML files. Given a task to create 
an index of those files with the document title in the correspoding 
&lt;title&gt; tag, complete with proper hyperlink, how could I do it?
Iterating over each file is easy, but to get the title isn't so trivial.


If all those files are XHTML, an XML parser like the built-in 
QDom or QXml offered by Qt would be an elegant ticket.</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108979925006059790/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108979925006059790' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108979925006059790'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108979925006059790'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/07/html-parser-kinda.html' title='HTML Parser (Kinda)'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108970567315908642</id><published>2004-07-13T09:49:00.000+02:00</published><updated>2004-07-13T10:01:13.160+02:00</updated><title type='text'>hexview</title><summary type='text'>Every programmer, regardless of the language in use, should write his/her 
own hex viewer, right? Well, this is mine. Years ago whenever I taught 
someone the C language, this was my damn favourite. And still, it's useful whenever I do some reverse engineering on Microsoft Excel file format.

It should compile in any platform. And just for the sake of completeness, building it using gcc 3.3 (</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108970567315908642/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108970567315908642' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108970567315908642'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108970567315908642'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/07/hexview.html' title='hexview'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108958761057467871</id><published>2004-07-12T01:10:00.000+02:00</published><updated>2004-07-12T15:02:34.053+02:00</updated><title type='text'>ziplist</title><summary type='text'>This small program ziplist I have mentioned before in my other blog entry (April 20, 2004). After reading the specification, I was interested in making short utility to show the content of a zip file, thus ziplist was born. It was pure C, portable, self-contained (no need for zlib), and already tested in Linux, Windows, and AIX. Ziplist is neither perfect (probably it can't handle few variants of</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108958761057467871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108958761057467871' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108958761057467871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108958761057467871'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/07/ziplist.html' title='ziplist'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108953811356390551</id><published>2004-07-11T11:23:00.000+02:00</published><updated>2004-07-12T15:03:09.186+02:00</updated><title type='text'>Column Label of Spreadsheet</title><summary type='text'>If you once work with spreadsheet application, like Microsoft Excel, you'll notice that unlike rows, columns are labelled not by numbers, but by text. Column 1 is A, column 2 is B, and so on. Since we have only A to Z, column 26 is still Z but the next one would be a two-character label, i.e starts from AA, AB, and so on. When this reaches ZZ, the label starts over with AAA, AAB, until ZZZ, and </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108953811356390551/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108953811356390551' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108953811356390551'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108953811356390551'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/07/column-label-of-spreadsheet.html' title='Column Label of Spreadsheet'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108879544726437090</id><published>2004-07-02T20:58:00.000+02:00</published><updated>2004-07-02T21:10:47.263+02:00</updated><title type='text'>Simple Logging Facility</title><summary type='text'>If you're familiar with programming, you'll know why it's "1% coding, 99% debugging". In order to ease debugging sessions, it's useful to be able to track what's going on in the debugged application. In C, you can have very simple, yet effective poor-man's logging using the following code snippet:

#include &lt;stdarg.h&gt;
#include &lt;stdio.h&gt;

static void log( char* string, ... )
{
  va_list </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108879544726437090/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108879544726437090' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108879544726437090'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108879544726437090'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/07/simple-logging-facility.html' title='Simple Logging Facility'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108785491065538125</id><published>2004-06-21T23:43:00.000+02:00</published><updated>2004-06-22T16:45:14.686+02:00</updated><title type='text'>Doomsday</title><summary type='text'>Given a date, how to know whether it's on Sunday, Monday, Tuesday,  and so on? Enter Doomsday algorithm, from John Horton Conway. For a good explanation of this simple yet powerful algorithm,  see http://rudy.ca/doomsday.html.  Translating into quick-and-dirty C code, which is adopted from Richard Bowen's Date::DayOfWeek, it would be like the code fragment presented below. Note that isleapyear is</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108785491065538125/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108785491065538125' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108785491065538125'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108785491065538125'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/06/doomsday.html' title='Doomsday'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108574125206237905</id><published>2004-05-28T12:31:00.000+02:00</published><updated>2004-05-28T12:47:32.063+02:00</updated><title type='text'>Qwt vs BCC32</title><summary type='text'>Qwt is a wonderful set of widgets, useful for scientific applications. Since I've got a copy of new C++ GUI Programming with Qt book, I tried to give Qwt a try, using Non-Commercial edition. I've used Borland C++ compiler and faced with some errors, something about exception related with STL. Apparently this was discussed before. The solution was easy, I changed qwt.pro; the line win32:CONFIG += </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108574125206237905/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108574125206237905' title='5 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108574125206237905'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108574125206237905'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/05/qwt-vs-bcc32.html' title='Qwt vs BCC32'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108555566324697991</id><published>2004-05-26T09:09:00.000+02:00</published><updated>2004-07-12T15:04:41.146+02:00</updated><title type='text'>Another Birth</title><summary type='text'>In the last days I was trying to move KYIM - a simple Yahoo! messenger client - from its home in Sourceforge to the new place in berlios.de. My past experience have shown that CVS service in Sourceforge was quite unstable, and even dog slow.

So I pulled all the files from Souceforge CVS and the did the casual 'cvs import' (I know I'd lost the revision history and friends, but I don't really </summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108555566324697991/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108555566324697991' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108555566324697991'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108555566324697991'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/05/another-birth.html' title='Another Birth'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-7108735.post-108550678799268378</id><published>2004-05-25T19:37:00.000+02:00</published><updated>2004-05-25T19:39:47.993+02:00</updated><title type='text'>main()</title><summary type='text'>This dpointer world will be filled by few exotic coding tricks, which I face day to day, and which start to inject my vein every now and then.</summary><link rel='replies' type='application/atom+xml' href='http://dpointer.blogspot.com/feeds/108550678799268378/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=7108735&amp;postID=108550678799268378' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108550678799268378'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/7108735/posts/default/108550678799268378'/><link rel='alternate' type='text/html' href='http://dpointer.blogspot.com/2004/05/main.html' title='main()'/><author><name>Ariya Hidayat</name><uri>http://www.blogger.com/profile/03121582140059106015</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='32' src='http://3.bp.blogspot.com/_Oijhf1ZPv-4/SX4qsCgOeqI/AAAAAAAAAzA/s8SeVcvoLEA/S220/head.jpg'/></author><thr:total>0</thr:total></entry></feed>
