all repos — h3rald @ v10

The sources of https://h3rald.com

contents/articles/twenty-years.md

 1
 2
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
 100
 101
 102
 103
 104
 105
 106
 107
 108
 109
 110
 111
 112
 113
 114
 115
 116
 117
 118
 119
 120
 121
 122
 123
 124
 125
 126
 127
 128
 129
 130
 131
 132
 133
 134
 135
 136
 137
 138
 139
 140
 141
 142
 143
 144
 145
 146
 147
 148
 149
 150
 151
 152
 153
 154
 155
 156
 157
 158
 159
 160
 161
 162
 163
 164
 165
 166
 167
 168
 169
 170
 171
 172
 173
 174
 175
 176
 177
 178
 179
 180
-----
id: twenty-years
title: "This web site is 20 years old"
subtitle: "On March 28th, 2004, H3RALD.com was born"
content-type: article
timestamp: 1711609200
-----

Exactly twenty years ago today, on March 28th, 2004, I decided to purchase my first Internet domain. 

The .com bubble had already burst years earlier, and I remember wondering which domain name I should go for. After a few minutes I decided for *h3rald.com*, the Internet handle I was using on a few web sites.

The origin of the name H3RALD is nothing too glamorous really: when I moved my first steps on the Internet a few years earlier (my parents were kind of against computers and we had our first one in 1998, when I was in high school) I came across the *Hacker Manifesto*, which was signed *The Hobbit*. I remember dreaming about writing something as impactful as that someday, and signing it with an equally cool pseudonym. At the time, I used to purchase the [International Herald Tribune](https://en.m.wikipedia.org/wiki/International_Herald_Tribune) every so often from the local newsagent, mainly because it was one of the few foreign newspapers I could get here in Italy at the time, to practice my English.

Obviously, a handle like *herald* was taken on most web sites, so I decided to add a sparkle of *1337 speak* to it, hence *h3rald*.

### The early years

One thing is buying a domain, another thing is actually using it for something useful. 

For the first year or so, the purpose of *h3rald.com* remained uncertain: I started off with a very simple HTML page with some interactive content mainly in the form of Java applets (news tickers and other pointless things like that) with a sprinkle of JavaScript. I barely knew how to program back then, and even though I was studying IT Engineering at the university here in Genoa, that [doesn't mean it was actually useful](/articles/academic), for anything practical.

The first [few versions](/h3rald/) of this web site were rather poor attempts at finding my niche. At one point I got so bold that I even tried to establish a web design studio (_H3RALD Labs_) with a very, _very_ basic web site. I taught myself PHP, I started using early frameworks like [Prado](https://www.pradoframework.net/), and most importantly I kept learning new things. 

I was doing all this on a 350MHz Pentium II machine that struggled to run Windows XP. When my parents first bought the thing back in '98 it felt much, much faster... I couldn't believe that after only a few years it was becoming obsolete! But that didn't stop me from discovering Linux (distributions like Mandrake, Slackware and Debian) and configuring it in dual boot (my dad was also using the computer, and I couldn't really mess things up too much).

Now picture this, in 2004, at least in Italy:
- There was no Facebook
- MySpace was a thing, but geared at a younger audience
- There were no iPhones, no apps
- Mobile browsing meant largely accessing a bunch of crappy [WAP](https://en.m.wikipedia.org/wiki/Wireless_Application_Protocol) sites
- Dial-up was still the most common way to connect to the Internet 
- There was no StackOverflow. If you had questions about programming, you had to spend hours looking in specialized forums and communities

At the time, I was part of an online community called CyberArmy. The domain shifted a couple of times from [cyberarmy.com](https://www.cyberarmy.com) (still up, but basically dead) to cyberarmy.net (long story...) and vice-versa, and no, it was nothing related to cyber terrorism, it was... well, just a bunch of people organized in groups (_brigades_) that aimed at learning more about the Internet and technology; a community of _hackers_ in the original meaning of the word.

In the beginning, people in CyberArmy earned their rank by completing hacking challenges, and then the focus of the site shifted to contributing to brigades instead. At one time, I became the C/O of the group that was curating the community online magazine, zZine.org (domain is dead now). zZine was the first outlet for my articles, some of which I have re-published here.

Back then, I started writing about the things I was learning about, like [easy-to-install server packages](/articles/server-packages), or cutting-edge technologies like [BluRay vs HD-DVD](/articles/next-generation-dvds). Lightweight markup languages like markdown didn't exist at the time, so all I wrote all those early articles using [BBCode](https://en.m.wikipedia.org/wiki/BBCode), before [switching to textile](/articles/18).

### A look back at early 2000s technologies and services

It is funny to look back and read those early 2000s articles now. Do you remember when [social bookmarking services](/articles/social-bookmarking-services) were a thing? Del.icio.us? Maybe. What about Spurl, Furl, Blinklist... ring a bell? No? It turns out I was very fond of [ma.gnolia](/articles/magnolia) when it came out. 

I reviewed a few [Web 2.0](https://en.m.wikipedia.org/wiki/Web_2.0)-era services like [NetVibes](/articles/39) and [JournoTwit](/articles/journotwit-review), tools like [Komodo Edit](/articles/komodo-edit-review), web frameworks like [Akelos](/articles/34/) or [Lithium](/articles/getting-started-with-lithium). Even really cool things like [Wunderlist](/articles/wunderlist) got acquired and eventually killed off.

But luckily some things were built to last:

- [AJAX](/articles/what-is-ajax) may not be called that anymore (and we may have most definitely dropped the XML part), but it laid the foundation of modern JavaScript.
- [REST](/articles/to-rest-or-not-to-rest) is alive and well.
- [Git](/articles/git-for-the-locals) is now the de-facto version control system.
- [SQLite](/articles/quick-overview-of-sqlite) is very widely-used and respected.

### Browser War II

This topic deserves its own section. Nowadays, even though some would say that the wars are now over and Google Chrome won, the reality is that for good and for bad Google's creation and all its Blink brothers have the lion share of the market. Sure, Firefox is alive and (mostly) well, but things are much easier for web developers and more pleasant for users now than they were in the early 2000s.

Trust me, I was there. I lived and fought what history now calls [the second browser war](https://en.m.wikipedia.org/wiki/Browser_wars) and quite a few pages on this web site are a testament to those hard but glorious times when developing a web site meant trying it out in *at least* three or four different browsers (each with its own engine) to make sure it looked right.

Being a Windows XP user at the time, I took advantage of the beta period in which Microsoft let users test Internet Explorer 7. Yes, I did write a [pre-review of IE7](/articles/pre-review-of-ie7) in 2005. That thing introduced support for cutting edge features like tabs, transparent PNGs, and even *partial* CSS2 support!

Crazy stuff. IE was very prevalent back then also because, as a web developer, you could not afford to ignore it: if your site had to support IE (and a lot of sites sadly only supported IE), you kinda had to use it as well. Nonetheless, I remember spending a considerable amount of time looking for [the perfect browser](articles/perfect-browser).

Firefox was Heaven though. I mean really, it was, compared to the competition. But most people didn't understand, so I ended up putting myself in their shoes and wrote [an IE lover's guide to Firefox](/articles/ie-lovers-guide-to-firefox) to educate the masses (including my family) that there was a better, faster, and more pleasant way to browse the web.

I even reviewed preliminary versions like the one that was codenamed [Deer Park](/articles/from-firefox-to-deer-park), i.e. version 1.1 of the popular Mozilla browser.

Fast-forward three years later, and I found myself deeply involved in the Firefox 3 release. SitePoint published a very in-depth article of mine that was also realesed as a 30-page PDF ebook: [Firefox 3 revealed](/articles/firefox3-revealed) (you can now download [right here](/files/ff3-revealed.pdf) if you want).

To this day, although largely insignificant in the grand scheme of things, I consider that mini book a personal jewel of mine, and the closest thing I ever had to get a book published (more on that later).

After the Firefox years, my attention slowly shifted to [Opera](/articles/thoughts-on-firefox3-and-opera95) (the real thing with its own browser engine, _Presto_, not the Chromium-based bad copy we have today) and I finally published [a Firefox lover guide to Opera](/articles/firefox-lovers-guide-to-opera) to get more people to switch.

But in the end Google did it. When the big G released Google Chrome in September 2008, it really _felt_ like things were over. Like with all the greatest products of our time (when Steve Jobs released the first iPhone I had the exact same feeling), a company took an old idea (a browser with tabs) and an "old" engine (WebKit) and turned into something new and much better than the competition. A multi-process browser, something never done before.

I [reported the birth of Chrome](articles/google-chrome) from my humble web site that day, still not quite sure if that was going to be just a phase, just another meteor of a product that was doomed to be forgotten. It was not.

### CakePHP

But let's go back to 2006 a second — we may as well: most of my articles are from before 2010 anyway. 

In those years I had just taught myself PHP but Ruby on Rails was all the rage: imagine a web framework that let you create a blog in 15 minutes, with powerful command line tools, scaffolding, and a truly awesome (and elegant) programming language to go with it!

Too bad I had spent months learning PHP. But it turns out there was at least one PHP framework that wanted to be _on Rails_, and that was CakePHP. So I learnt more and more about it, played with it in a few personal projects, and even re-did my web site using it.

In the blink of an eye, I became one of the most well-known CakePHP _bakers_ of the time. I started blogging about it, I wrote an extensive [review](/articles/cakephp), I was contacted by a few PHP magazines to write articles about it, and of course I wrote one for [SitePoint](/articles/cakephp-first-bite), too.

I was then approached by not one but two different publishers to write a book! Eventually, I [signed a book deal with Peachpit/New Riders/Pearson](/articles/40) for what would have become the first, official book about CakePHP. _Official_ because it was supposed to be co-authored with Larry E. Masters and Garret J. Woodworth, the creators of the framework, who were supposed to provide all the code snippets to go in the book.

The book is still _currently not available_ right now on [Amazon Italy](https://www.amazon.it/Cakephp-Recipes-Fabio-Cevasco/dp/0321497732), [Amazon India](https://www.amazon.in/CakePHP-Recipes-Fabio-Cevasco/dp/0321497732), and [Amazon Japan](https://www.amazon.co.jp/CakePHP-Recipes-Fabio-Cevasco/dp/0321497732) but no point in waiting because (after 18 years) it will never be released. It has a cover, an ISBN number and all... but it never happened. 

To this day, people who happen to google my name eventually end up on one of those pages and then ask me about that book that I never wrote. What happened? Well, the CakePHP Foundation never hold up their part of the deal and never provided the code examples for the book. To this day, I would really like to go back in time and slap my cocky 23-year-old self real hard and scream _write those damn code examples yourself and get it done, you idiot!_

Talk about regrets. Having your name associated with a failed book is probably the worst thing that can happen to a wannabe published author. What's worse, is that when the book was [canceled](/articles/42), a lot of drama followed (I wrote not [one](/articles/43), but [two](/articles/too-many-cooks-take-2) and then even [three](/articles/too-many-cooks-take-3) posts about it).

If I try to rationalize what went down now, nearly twenty years later, I'd say that both parties had other crap going on: I had just started my first permanent job at an important company, and Larry and Garret just had a brand new web framework to nurture, and one that was getting really popular really quickly.

One of the few good things that came out from that period was a [popular article](/articles/rails-inspired-php-frameworks) on my web site that got [featured on the Digg homepage](/articles/25). What is Digg, you ask? Well, let's see... Digg was something similar to Hacker News today, but worse. Ah, the fun times...

Anyhow, that failed book really left a scar: I was truly pissed. So pissed that I decided it was time to move on and learn that cool programming language everyone was raving about...

### Ruby

Now talk about a healthier ecosystem with less drama! Kidding... but yes, I did enjoy my time with the Ruby community. I also felt I was learning a *proper* programming language, not something that was frowned upon like PHP. 

With Ruby, I moved my very first steps in the world of open source software, by releasing a few (probably very mediocre) software projects into the wild. You can still find them in the [projects](/projects) sections, by the way: I am talking about RedBook, Rawline, and Concatenative. 

The Ruby ecosystem was full of living legends at the time. Names like the godlike DHH, creator of Rails, Zed Shaw the rockstar developer, Obie Fernandez, and of course _why the lucky stiff. Ruby made me discover the true joy of programming, of feeling like you are creating something useful that behaves exactly like you want it. 

I miss those days, I think younger generations are not as lucky. There's too much pressure today, kids want to learn programming just to land a cool and hopefully high-paid job... back then it was all about the fun of creating and learning new things... or maybe I was just younger.

While I was developing little Ruby programs, I was also reading a lot of Ruby programming books. I reviewed a lot of them (most of them by Pearson Education, which at the time was the leading publisher for programming books on Ruby), such as:

- [The Humble Little Ruby Book](/articles/hlrb-review)
- [The Rails Way](/articles/the-rails-way-review)
- [The Rails 3 Way](/articles/the-rails3-way-review)

And also a few books on software development and agile practices.

### The Personal Stuff

That's all very well but... I introduced H3RALD.com as my personal web site. And it is, although I have never really posted a lot of really *personal* stuff: I blogged about my life, but I tried to stick to themes like technology and programming. However, there were a few occasions that called for really personal blog posts.

Probably one of the most emotional articles I have ever written is the one about my [grandfather](/articles/20). I wrote it on the day after he passed away, in 2006, and I remember trying to put together my thoughts and try to remember all the stories that he told me about his life. Blogging wasn't really a thing in the 1940s and 1950s, and he was never much into writing anyway, but he was an amazing storyteller. When I was a little boy, every time we started talking, he always ended up telling me about the war (he was a WWII pilot), about his plane... no matter what the topic was, it was _always_ related to some anecdote about that period in his life. 
They say that old people live in the past, and it may be true, but the important thing is that when some old relative tells you a story, no matter how boring it sounds at the time, you should always listen to them. You should record them, if you can, in fact!

I tried to capture a few of the stories he used to tell me in that article... but there were so many more! I wish I could remember them all. If I could go back in time, I would like to tell my 20-something year old self to start a blog together with my grandfather. It would have been an amazing experience.

On a lighter note, another personal article that is not related to computing that I stumbled upon was my [incomplete guide to London](/articles/incomplete-guide-to-london). Kinda funny reading it now, but I am glad I wrote it.

And of course I did write about [the most wonderful day of my life](/articles/11-07-2009), when I got married to my wife in 2009, and about our unforgettable Irish wedding.

### The end of blogging and the Nim era

Among the most popular articles I wrote, I must definitely mention my roundup of [ten emerging programming languages](/articles/10-programming-languages) from 2008, and the [follow-up article](/articles/10-more-programming-languages) I decided to write exactly ten years later, in 2018. And yes, I should probably write another one in four years time, although these days I am only learning new programming languages for fun, not to make a career out of it.

Another really interesting episode of my life I am extremely glad I recorded on my blog is about my [pizza with Randal Schwartz](/articles/randal-schwartz). At the time I was an avid [FLOSS Weekly](https://twit.tv/shows/floss-weekly) listener and Randal was hosting that podcast. Podcasts are weird... I remember listening to FLOSS Weekly and [This week in Tech](https://twit.tv/shows/this-week-in-tech) every week when driving down to my in-laws, and after a while I felt like I knew these people really well, I knew what they were up to, and meeting Randal in person when he came to Genoa because of one of his Geek Cruises felt weird but not, at the same time. He probably forgot about that evening, but for me it was like meeting a celebrity, and I was over the moon.

Then... well, there's no other way to say it, I progressively stopped blogging and writing articles. I tried to rationalize it and even [wrote about it](/articles/10-reasons-why-i-didnt-update-my-blog), but the reasons boil down to realizing that:

- probably nobody really gives a crap about my blog
- I was having a hard time finding something to write about that was not already on someone else's blog
- there are entire companies that make money out of writing blogs, you can't compete with them
- I didn't have time

You may find counter-arguments for each of the above, but the fact remains that I haven't really spent much time writing in the last ten years. 

I also remember realizing at the time that maybe I needed to create some cool pieces of software _so that I could write about it on my site_. And I did. I got progressively into command line applications and utilities (while progressively shifting to frontend development at work, that's kinda funny), and I moved away from Ruby for mainly two reasons:

- You needed Ruby to run it, so your programs were only going to be used by people who had it installed on their machine
- It was slow for certain things

I obviously spent some time looking into different programming languages, and finally settled with [Nim](https://nim-lang.org), or Nimrod, as it was called originally. 

One of the first things I did was creating a [documentation tool](/articles/hastyscribe) that I could use to write the technical docs for my software. Then I decided that I needed a sort of [document store](/articles/litestore) with full text search because I wanted to implement a search functionality for H3RALD.com (afterwards, I decided not to bother). 

What I really wanted to create though, was a new programming language, and that's how [min](/min) came to life. Then, I figured I had all the building blocks to create a new [static site generator](/articles/hastysite) that currently still powers this site...

See a pattern there? I was scratching my own itches. And that's how great software gets made. That's just a statement by the way, I am not implying that _I_ am writing great software in an absolute sense, only that I am writing great (and useful!) software _for me_, and my specific use cases.

I also wrote a [JavaScript micro framework](/articles/h3) which probably no one uses besides me, but it made it really simple to create the (closed source for now) personal wiki engine that powers [nifty.tools](https://nifty.tools) (the backend is written in min) and [2c.fyi](https://2c.fyi) (the backend is powered by LiteStore). 

Talk about _selfdogfooding_, huh?

### Going forward

To the two or three people that made it this far (or that skipped right to this section), here are some key takeaways after twenty years of running a personal web site.

**When in doubt, just write**. Don't over-think it. Don't ask yourself if others already wrote something on the subject, don't ask yourself if writing about something is worthwhile. It is always worthwhile. I wrote reviews about programs and services that have been dead for years, and it was still worthwhile. I was worthwhile because it made me laugh about it ten or twenty years later, it was worthwhile because I learnt something new while writing it, or just because it brought me joy.

**A personal web site is mainly for you**, not others. You have it because it makes _you_ happy, because it's an excuse to try out new technology and learn new things, because _you_ need to write 10,000 words on a digital page just rambling about random stuff, because _you can_.

**My web site is worth more than Facebook**. Because _I own it_. I don't own Facebook, or X, or Instagram, or TikTok, or Wikipedia. I own H3RALD.com, and that's where _my_ content goes. 
Since I moved my first steps on the Internet, I have never understood why the majority of people deliberately choose to donate their content to walled gardens, it just doesn't make sense in my mind, and that's why I have never really been into social networks. Sure, I may snoop (or ask my wife to) on friends and relatives through Facebook, put a like on LinkedIn when our head of product management posts something about our product, but if I have something to say, from _me_, it goes on my web site.

**There is still hope for the World Wide Web**. While the Internet may be lost to apps, video streaming services, and corporations that want your content for free to make them rich, the WWW as sir Tim intended is alive and well. It's called [smol web](https://benhoyt.com/writings/the-small-web-is-beautiful/%5D) now, and it's where people who care about artisan computing and apps as a [home cooked meal](https://www.robinsloan.com/notes/home-cooked-app/) live, it's a few little towns in the Fediverse like [Merveilles](https://merveilles.town/) where some [truly smart](https://wiki.xxiivv.com/site/home.html) and [really creative](https://kokorobot.ca/site/home.html) folks hang out. 

Woah, this was long. But I needed it... 

Here's to another twenty years of pointless, but liberating writing and programming. Happy birthday H3RALD.com!