I just remembered, it was my Mac mini and Apple’s software, and WoW that got me into software development. 😳

A bit of background

I was a child and all our school machines were Macs… So, for compatibility’s sake I wished for a Mac mini for Christmas of 2007, which my parents then gladly gifted me as “it was for school”. ;)

I remember it was quite a bummer at Christmas, when I unwrapped the tiny box, I saw a Mac and was super excited and happy! Then what was the bummer? You see, the Mac mini was just the Mac, a tiny computer, with 4 USB ports, a DVI and Firewall port, Gigabit Ethernet and some audio I/O… And my then current PC was an old Windows XP machine with PS/2 keyboard and mouse and a VGA Monitor! Luckily, Apple included a DVI to VGA adapter in the box but I had no keyboard or mouse to go with it! :x

I then looked through our apartment and cellar for some USB wireless keyboard which we had, which I think then found, but had no mouse to go with. So, I couldn’t use my Mac just yet! Bummer! And Macs definitely need a mouse, they’re the ones that made the mouse mainstream, after all! ;)

The Mac mini came with Mac OS X Tiger preinstalled, but had both a Tiger and Leopard DVD included. This was sweet because back then Mac OS X was paid software, just like Windows was and still is. This meant a free upgrade! Although Mac OS X never asked for product keys or activation, so in theory you could share your install DVD. :^)

School’s IT guy

I had a good relationship to my school’s IT admin as I was always known to “be good with computers” and often asked questions “outside the scope of things” and he was always happy to teach me things. He then gave me creative and office software for Mac OS X for free that I used to dip my toes into things! It was software that was usually paid, and as a child you can’t really afford things and since my parents already spent a lot on a Mac, I couldn’t ask for software on top!

iLife and first contact with HTML

One of the software packages I got from the school’s IT guy was iLife. Remember iLife? It’s basically all the creative software that comes with Macs for free nowadays, except back then it was better (more advanced, but also paid). The free “Apps” nowadays are “dumbed down”. The only things that still exist from iLife are iMovie and GarageBand, and iPhoto is just known as the Photos app.

One of the applications (which are discontinued now) was iWeb. I remember using iWeb for drag and drop website creation, which would also allow you to use “HTML” snippets.

The HTML snippets would allow any valid HTML, including CSS and JS. This means, whenever the drag and drop suite of “widgets” and things came to a limit, you could create a snippet of anything you liked. I started by embedding things, like Google Maps, SWF (flash) games and more. I actively looked for “JS embeds” which existed for free back then, and it was a different time so you didn’t need to fear (at least not like these days) to accidentally put malware or a bitcoin miner on your site. :^)

One of those embeds I found, was a “What’s your IP” “widget” by some IP checker site. I thought it was “pretty cool” and the other kids would freak out when they visited my site. “How do you know my IP? Are you in my computer?” :D

But that’s a good question! How did I know the IP? Wait, did I know the IP? Who knew the IP? What’s an IP anyway? It’s this sort of playing around that opens up questions that make you investigate and learn about things!

Hosting

To publish a site, you could use Apple’s servers with a me.com domain, but this was paid. I did use the 30-day or so trial to host a site but then I couldn’t afford to continue.

This posed the question, can I do whatever Apple is doing, myself? For free? How does this hosting thing work?

Mac OS X again had me covered! You see, Mac OS X used to include the Apache Web Server which you could enable in the “Settings” with one click! I could then “export” my site from iWeb to a local directory and access the website from my local IP! But how could others access it?

I needed help from my school’s IT guy who explained everything about ports and port forwards and offered to help me set things up. So one Friday afternoon, I took our home router to school to have the IT guy help me out. Of course that meant my parents had to sit there without internet… :^)

I think to remember some issues at first but eventually, we set it up, and I could access my site using my IP! But wait… an IP is hard to remember… and it changes! How can I get a fancy-shmancy domain? And it had to be free! I was just a child without money!

Back then, dyn.com was known as dyndns.com and it was actually free! The IT guy showed me how it’s set up and I then set it up at home, installed the dyndns.com client that keeps publishing the IP and as long as my Mac was on and connected to the internet, people could access my website! I was quite happy and proud of hosting things myself.

But what else could I host? Another feature Mac OS X had (and still has) is a built-in VNC server which you can also easily enable and configure in the “Settings”. I then had to set up port forwards which I remembered how to do, and could then access my Mac from school through VNC and I was “the coolest kid in town”. ;)

Compiling software and dynamic sites

While drag and drop was nice, and I could create my site hosting flash games, it did not have a search function or anything dynamic.

I asked in forums on “how to add search” and things like that and heard of things like JavaScript and PHP but I let it be, as I had other things to do. Eventually iWeb support was dropped, and at some point I quit my site as I moved to a Windows laptop (I regret that laptop, it was slow, loud, hot… should have gone for a MacBook but no money 😛).

Eventually, I got interested in “playing WoW for free”. In case you somehow missed it, there’s this big online game called WoW (you know what that acronym stands for!). It’s a paid game with paid subscription. Again, being a kid with no money, I had to look into playing it for free! I found a “server emulator” that you could compile yourself, set up a MySQL database for it, and then run it, create an account and log in!

This was the first contact I had with compiling software!

Of course, I wanted to play with friends, and I still had the experience to host things myself… But I did not want to create accounts for my friends, and instead found a PHP script for this server emulator to create accounts. All I had to do was set the MySQL parameters, and I was good to go! But me being me, I was not happy to leave some default things and thus started modifying the site and had to eventually learn about PHP!

And because I was a child, I had to edit the names of the characters in the game “for fun” which required me to edit the database, which made dip my toes into MySQL!

So, I had my little WoW server project, where I wanted to do things and then learned how to do them. Eventually, I had built a little CMS in PHP that let users see and manage their characters and do self-service. It was all just for fun and just a few friends, I never made any money with it. We were all just kids.

Where it went from there

I did then try to pursue formal education in software development. The education would have taken four years, but I had to quit due to health issues.

I still had a passion for IT, and bought and read books, read articles and guides online, had my personal projects, and I did build a few websites freelancing to make a little something on the side. I have been building a browser game for years which is kind of finished but not really, which I never launched (people say I’m a perfectionist… so maybe that’s why…) it’s in perpetual Alpha, development is ongoing and paused simultaneously.

I did acquire broad knowledge throughout the years, and have already been tutor to IT people that already have had formal education but needed to know things beyond that.

I do have creative experience with Unity(3D), Blender, Photoshop, I know declarative with HTML5, CSS3 and Markup, scripting with PHP, JavaScript and JQuery, I know databases with MySQL/MariaDB (and interfacing them with PDO securely), I know software development with C# and Java, I can do a bit of embedded with C (Arduino, ESP8266). I ported OpenWrt to a device I have after the OEM dropped support. I can work with any of the major operating systems and have experience managing and maintaining RHEL and Debian based Linux servers.

I do have a passion for IT security and privacy. Most of my friends are either in IT or some other technical field, usually with higher education and I’m the self-taught “dropout”. But many of them tell me I do have the skills to do many jobs. But to this day, I just “hack around” on my own in my room. I haven’t made it back into life, sadly. :^)