Tag: blog

It Is Exactly Twenty Years Today…

… since my first post in this blog:

I’ve just registered the domain ‘maxpagani.org’. This should be the first step in the online life of this site. A little step for a site, nearly unnoticeable for humanity :-D.

Thank you for visiting my website and reading my rants all these years!

It was 2004, and Facebook had just been founded but had still to reach critical mass and take off. RSS had to become a thing and Google Reader had to happen the next year, MySpace was still in its infancy, and “blogosphere” was the trending word. BTW the BASIC language just turned 40 that year.

Back then I worked at UbiStudios Milan and we were told the studios would be downsized, and that programmers would be better off looking for a job elsewhere. So I decided I needed some self-promotion and thought of this blog idea. A place where I could write about stuff that I like letting other people (possibly including prospective employers) know about me.

Initially, the blog was made with a bunch of static pages produced by a sort of template processor written in bash. This is how it looked. Later I implemented the blog section using PHP and plain files. I spent quite a lot of time on PHP trying to evolve the website and even prepared a second version with a better look. But eventually, I switched to WordPress.

I always wrote single, stand-alone posts, until I stumbled against PIC18. A microprocessor so unfriendly to C and so hostile to the high-level programmer, that I decided I needed to write a PIC18 survival guide that spanned over 5 posts. Since then I have written a few series, which I am quite proud of –

Since late 2023 I started collaborating with Embedded Related website and moved my publishing of … embedded related articles there. I plan to continue writing on my blog for everything else.

RSS broadcasting

This feature is still beta, but I am so proud, I’m going to tell you without waiting for a complete bug-free version.If you point your favourite feed reader to [http://www.maxpagani.org/blog.php?rss] you will receive my blog post without having to visit daily (or so) my website.
If your favourite feed reader is Firefox Live Bookmarks, then maybe you HAVE to wait for a more bug-free version 🙂

Time awareness

I find extremely difficult being aware of the time required for various activities. I usually underestimate the time it takes to do stuff. Maybe the trouble is the delta between the speed of though and the speed of life. Usually life is slower and much more troublesome.An interesting technique for dealing with the troubled nature of real world is to add a margin to you planning. In “Game Development and Production” Erik Bethke suggest to consider a day a week as non-working in the planning so to get estimations that can survive to occasional disasters the universe is so generously filled. I usually do this and I find it is good, nevertheless my estimations tend to be optimistic.
One of the point of being aware of time is to recognize when using something pre-made is faster than rolling your own solution. So at last I have to admit that rewriting a new version of my website software from scratch is not something I can do now.
It is true that since I changed my job I have more time at home, but it is equally true that my main source of development time was in train commuting (notebook PCs rule). And I can’t do software development while driving car (apart from the travel to be much shorter).
So at last I resorted to look around what ready made software could do. I found two package that look promising: Drupal and phpWebSite. Unfortunately both require an SQL database which is not available in my current provider subscription. So I spent a bit of time and found pDB a complete SQL database implementation in PHP.
So now it is only a matter of making one of those package to use pDB and I should be done, fast and easy… wishful thinking 🙂

Misc fixes

Here you are some fixes to the blog. First the mail address available in the left panel is always correct. Previously some parts of the site yielded the “%MAILURL%” mail address rather than a valid one.Next comments can now be added to the book reviews even when you access the review from the review index (now renamed in “book reviews” more clear than the previous “readings”).
Aside, I’m changing job, I’ll write soon about the new experience.


The news of the day is that I implemented the comment preview. So before leaving a comment, you have a chance to reread it and make corrections if needed. I trust that this won’t reduce the number of comments just because you have more chances to change your mind in the process 🙂 Also, let me know if anything’s wrong with the new version.

The link of the day is The Development of the C Language. This is a document written by Dennis M. Ritchie about the birth and evolution of the C language. Dating back to the days of the PDP-7 and Multics. The document explains the genesis of the C language and many of its quirks. If you (like me before reading this) believe that the “++” operator was introduced because it mapped on a specific assembly instruction you should read it.

Ok, you have no time, so the answer is – the PDP-7 had no pre/post increment/decrement assembly instruction. Instead, it had just 8k of 18 bits word of memory. So keeping things small was an urgent need. And x++ saves a bunch of bits with respect to x=x+1.

What makes a blog interesting…

…is both the content and how often it is updated. I must keep this in mind.The good news is that those spamming bastards seem to have been defeated by a minor change to the verification code handling.
Basically now the code is re-generated every time it is checked unrelated to the check success. I consider the verification code daunting enough for my readers and I don’t want impose more restrictions. Anyway time will tell.
Exercising a bit my divination skill (crystal ball handy) I could tell that the next good news will be the editing and preview for blog comments.
The link of the day is about ZX80 and ZX81. I think that a proof of how much my daddy loved me when I was younger is that I’m still alive after all the begging for a ZX81 back in the 80s dawn.

Welcome back, my dear comments

Eventually comments have been re-enabled.I first devised a simple solution similar to the one I used to encode email addresses in my site. The text I want to display is not stored in the HTML itself, but obscured and given to a JavaScript function that takes care of decoding and displaying it.
Provided that the “evil one” has a simple HTML parser/scanner he won’t be able to find the sensitive information.
This assumption proved to be wrong by far. As soon as I put on-line the JavaScript version the spam started to flow back into my comments db. Too Bad.
I could require a registration and some form of authentication, but this would hamper the number of people willing to leave their comments. So something simpler and as effective should be employed.
Time to study.
Basically I want to distinguish between a human leaving a comment and a spamming robot… sounds familiar. This is, after all, a Turing test. Not a simple matter. Anyway most of the other sites I saw employs a simple pattern recognition schema. A pattern (usually a random string) stored in an image is processed to add noise and distortion, the result is supposed to be readable by a human, but hardly recognized by an OCR. Searching on the wikipedia I came across this: CAPTCHA. CAPTCHA is shorthand for “completely automated public Turing test to tell computers and humans apart“. Exactly what I need.
The wikipedia page is well written and list a number of ready made packages for most programming languages, PHP included.
I spent some time after veriword. This seems a very complete package, but it proved to be a nightmare to have it working. The example doesn’t work, moreover digging into the code I wasn’t able to get anything usable as a readable image.
So I went on, decided to not investigate anything without a properly working example. At last I found GOTCHA that worked instantly out of the box. Some minor modifications were needed to integrate it with my blog… and ta-da. I’m done.
As a side consideration I have to admit that the idea of hiding information and displaying them through JavaScript is not strong enough. I’ve got yet no spam on my email address that is encoded throughout my site, but this could be just because the visibility of these pages is quite low. I’ll remove the email field from the add comment form in order to avoid email leaking into the wrong hands 🙁


I didn’t think my blog was so worth of spamming effort. Nonetheless my dear spammers got across the barrier I have placed on their way. I thought it was enough to remove the “add comment” form from the website. Unfortunately this proved inadequate, in fact the spammer went directly to the “add comment” URL. I had to disable this feature more thoroughly.Also I reckon I understand what’s the goal of spamming a blog. Actually their spam stays in the comment, but suppose I had an email notification to be sent when a new comment is added to a blog entry…


Someone spammed my blog comments. Ah-ah very funny. I had to clean up everything and to disable the option of leaving comments to my blog entries. Sorry for that, I hope to come out soon with a viable solution to let comments in while leaving the spam out.

Just in case you missed…

Hello to everyone of my two readers 🙂 about one week ago, the new version of the blog software went on-line. If you click now on the (silly named) ‘readings’ link here to the left, you’ll bounce to the shining new Book section. Each book review has a summary box with book details and you can leave your comment there, too. You’ll find there my review of Baudolino complete with errors 🙂 (yes I know the right form is ‘one of the most’ instead than ‘one of the more’).
Now next steps for the site are: renew the domain, fix review errors, add ‘peopleware’ review, package the blog software and add it for download.
Enjoy and let me know what you think about.