Happy Birthday PHP

Today is a very personal day that is deeply connected with the programming language thatI use most – I could even say “love”.

On this day 30 years ago a certain Rasmus Lerdorf made his Personal HomePage tools publicly available. The birth of a language that should change the WorldWideWeb – conincidentally invented by a person that celebrates their birthday on exactly this day!

In these last 30 days PHP has become the programming language powering the majority of public websites – ask 3 different surveys and you’ll probably get 4 different percentage values. But all of them state that PHP is the by far most used language.

PHP has reduced the entry barrier for (web) development significantly which is probably one of the most underrated things that PHP did for programming in those last 30 years.

And due to that a lot of people started programming and were able to throw together something that worked. A lot of those people in the early days had probably not a background in programming. They did a lot of things… differently. Probably even wrong. Which also led to a lot of security issues. Which is why to this day PHP has a bad reputation of being slow and insecure and is by a lot of people not considered a “real” programming language.

And so for 30 years now people are regularly referring to PHP as a “dead language”. But well… a creaking door hangs longest…

One of the things that also developed in these 30 years is a vivid community around the language.

I first came into contact with it in form of a mailing list in 2001. And little did I know where that would lead me.

It allowed me to learn programming – first by asking questions – soon realizing that I was even able to answer some of the questions. Which allowed me to dive deeper into programming in my first real job. Which brought me into contact with more and more people from the local community. It even introduced me to my local usergroup around 2011.

And from that point on there was no turning back. I was thrown into co-organizing our local usergroup. And I realized that it would be really awesome to be able to visit other usergroups. But there wasn’t a list of other usergroups. So … I had to scratch my itch and build a list, hadn’t I?

And gosh that exploded…

It brought me into contact with so many more amazing people and opened doors that I am absolutely grateful for! It even caused me to submit a talk to a conference because a fried I made via the usergroup-organizer chat thought I should. So in 2015 I got accepted and spoke for the very first time at a PHP conference. And suddenly I stood there beneath all those big names in the PHP-community – and it turned out they were mere mortals and we had a great time!

But – and here the sad part starts – 2015 was the year that my better half got diagnosed with cancer. And due to her chemotherapy (and a change in it that required a weekly dosage) she wasn’t able to join me in this experience.

She went through it and everything was fine again.

Until on this day 5 years ago. On the 8th of June. We got the diagnose that the bastard was back again!

And when I publicly wrote about it, the PHP community did again the for me unexpected. The wave of support that hit me was overwhelming. I still sometimes have trouble understanding it! But you are all amazing!

So celebrating 30 years of PHP for me is so much more than celebrating the birth of a programming language.

It is celebrating the birth of a community that carried the Personal Homepage Tools of some quirky greenland-born guy to one of the cornerstones of the WorldWideWeb and beyond.

It is celebrating a Community that has supported me in so many ways that I can’t describe.

It is celebrating a community that connects people from all over the world in a family-kind of way (Yes that also includes the odd uncle that will always pop up somewhere).

And personally I celebrate a community that has carried and supported me through 10 years of every now and then tough times. And that has brought me a lot of friendships that I do not want to miss!

Thank you Rasmus for sparking this!

Repeating events in ICS files

I am a huge fan of ICS files!

There! I said it!

ICS files (or iCalendar files) are the exchange-format for calendaring informations.

Whenever you need to transport calendaring information (Events, Todos, Free/Busy time) they are the way to go.

ICS files are defined in RFC 5545 with some additions in RFC 7986 and. a pretty good summary at iCalendar.org

The big trouble though in ran into with ICS files is the … interesting … interpretation and implementation of the standard. And yes: XKCD 927 comes to mind!

So whenever I want to use one of the lesser used features in ICS I create a test-file and import that into several calendaring tools out there. Namely Google Calendar, Outlook, Apples iCal, Thunderbird and Teamup.com

Continue reading Repeating events in ICS files

Commit it!

I have to fix a bug and finally find the code where everything goes south. And immediately I ask myself: “Why is that written in this way? I mean: It *has* to break!”

Sounds familiar?

Luckily I am not editing files via FTP directly on a server but am in a project that uses version control. Which allows me to check who and when this line was last changed. Which will provide me with some information on whom to ask about why that line was written in that specific way.

And guess what? That line was last changed 5 years ago by a then-coworker that has since left.

But at least we have the commit-message that was left by that coworker.

And, yeah! You guessed it: It’s not helpful: “Fixed bug”…

If you are lucky, it contains a link to an issue. But: Yeah! 3 years ago the team changed their issue-tracker and they didn’t bother to move over closed tickets…

So let me talk a bit about what It takes to

Write a good Commit Message

Continue reading Commit it!

Deploy using git archive

When deploying code I by now almost always use git archive for that no matter whether that is library code or actually product code that gets deployed onto a (web)server.

Recently I had a chat with someone that so far hadn’t heard of that so I realized perhaps it’s time to write about it.

What is it

git archive is a tool that exports the content of a git repository into an archive file. But while doing so it also uses information in a .gitattributes file to decide whether to include a file into the archive or not and also whether to modify a file.

A lot of people already know about the .gitattributes file as it makes sure that certain files are removed from the archive that is created by github when creating a release.

The documentation for .gitattributes has (amongst a huge number of other information and awesome things that can be done via that file – but that’s for some other time) a special part about creating archives that talks about two attributes:

Continue reading Deploy using git archive