This morning, as the first Ada Lovelace Day posts started rolling into my Google Reader, I found out about the whole concept of Ada Lovelace Day. I immediately pledged to write a post, because I think it is a good idea to give "women in technology" some attention. I would wish it wasn't necessary, but we're living in a world where this is still necessary. I'm going to pick two "heroines" though, instead of one.
Due to yesterday's happy news I only picked up on another joyful thing happening yesterday somewhere very late in the evening. So let me announce it today: The episode I recorded for the PHP Abstract Podcast on symfony was published yesterday.
As a developer, you usually try to give as much flexibility as possible to your user. Where the specs don't give exact guidelines, you interpret the specs and offer flexibility, usually. Today came the proof that developers should think a bit better before offering flexibility, especially with mission-critical applications.
Finally the day has come. The final PHP4 release is available , so from now on, aside from possible security issues, no new PHP4 releases will be done. PHP5 is without a doubt the main line for PHP now.
As the title says: PHP is not the best thing in the world. Neither is symfony the best framework in the world. Neither is any other language or framework by the way. But all have their ups and their downs. So we better learn from eachother.
posted on December 23, 2007 - 0 comment(s) - tags: technology
Yes, you know what code you write and you also know how it works. You can find your way around it. But what if you haven't touched a piece of code for months or even years. Or what if someone else needs to work with your code. Prevent a hell: use clearly readable variable names and constants.
posted on December 4, 2007 - 3 comment(s) - tags: technology
I have never been a big fan of podcasts; the "radio" type podcasts have no use since I don't listen to radio because I get annoyed by people talking through music. The spoken podcasts usually didn't really get my interest. Meet PHP Abstract , the podcast that I actually do like.
posted on December 2, 2007 - 0 comment(s) - tags: technology
I've never been a hero when it comes to putting designs into a good HTML/CSS website. It's just not my strength, and also not something I overly enjoy. Especially the fact that anything I put together would break under Internet Explorer was a hell. But when Dave Dash pointed me towards the YUI grids feature, a new world opened for me.
posted on November 25, 2007 - 8 comment(s) - tags: technology
Being a pretty open source-minded person, I tend to stay away from commercial solutions for stuff that can be done differently. But every once in a while you come by a possibility or need to use the commercial variant. Interesting, as you see another solution. For me, this recently happened with Zend Platform's JobQueue feature.
posted on November 17, 2007 - 4 comment(s) - tags: technology
Since a few weeks we've really truely implemented some agile methods in our biggest project (Jongeren in Beeld). Since others may benefit from knowing how we have approached this, I want to share our implementation of the agile approach of software development in a PHP project with the world.
I'm not even talking about the unit testing and functional testing setup that Symfony has built in, as I haven't even had the time to use it (I know, bad bad bad, but sometimes you just can't do it when the needs for speedy delivery are high). I'm simply talking about the clarity of structure.
posted on June 11, 2007 - 2 comment(s) - tags: technology
Last weekend was our PHP Bootcamp. It was a huge success! With about 30 people present, the whole room was filled with PHP enthousiasts. The three presentations by Thomas Weidner, Johan Janssens and Francois Zaninotto were awesome!
posted on June 7, 2007 - 0 comment(s) - tags: technology
One thing where business and technology clash is the topic of security. Aside from building the site, we also offer a SLA for managing the software and security updates. Some clients choose to do this, others don't. And so you're left with insecure software on your servers.
posted on May 30, 2007 - 0 comment(s) - tags: technology
It seems it is all I write about these days, but it's one of the things that keeps me busy for a good time of my current days, aside of course from my regular work, but I just wanted to share this. We've now confirmed all three speakers for our PHP Bootcamp event!
posted on May 22, 2007 - 0 comment(s) - tags: technology
As I mentioned earlier this year is a good year for PHP events in The Netherlands. The pfCongrez has come and gone, and was a great experience, and now two new events are coming, both of which in one way or the other I am involved in and proud of.
posted on May 19, 2007 - 0 comment(s) - tags: technology
Ever since the International PHP Conference moved away from The Netherlands, it's been quiet here for PHP-minded people. This year though, we're having a full schedule here in The Netherlands. I love it! Finally we're having lots of events on PHP. A short list.
posted on April 25, 2007 - 0 comment(s) - tags: technology
I guess Dutch Open Projects is not the only one, but we're looking for developers! So check here to see the two current developer openings. Feel free to contact me (stefan at dop dot nu) if you're interested!
posted on April 16, 2007 - 0 comment(s) - tags: technology
PHP seems to be maturing lately from a scripting language to (nearly) a real programming language. Part of this process is the slow but certain adaption of development methodologies such as Agile, more and more unit testing, more and more usage of frameworks as opposed to writing everything from scratch every time, and now also Continuous Integration.
posted on April 10, 2007 - 0 comment(s) - tags: technology
After months of development, yesterday we launched version 4.0 of Jongeren in Beeld, a webbased application for tracking data for youth workers, police, city officials etc. regarding "problem youth" (though really, it's simply a data filing system that can be used for other things as well).
posted on April 8, 2007 - 0 comment(s) - tags: technology
You can say what you want about its competitors, but to me Zend Studio is still THE application for PHP development. Its code highlighting, code completion, wonderful PHPDoc integration, and the great debugging and profiling features when combined with Zend Platform, are simply the best.
posted on March 30, 2007 - 0 comment(s) - tags: technology
Ever since first being introduced to the Agile methodologies while working at TomTom, I've been intrigued. We worked in an agile way at TomTom, and now that I'm Lead Developer at Dutch Open Projects, I'm starting the introduction of Agile development there.
posted on March 22, 2007 - 0 comment(s) - tags: technology
I'm an occasional user of the coComment system. That is, I have an account, I mark most of the comments I leave to be tracked by coComment, yet I rarely actually check. While checking today, I found out users will always be the weak link in security.
posted on February 11, 2007 - 0 comment(s) - tags: technology
One of the things I've been trying to accomplish while working for Dutch Open Projects is to get all our developers Zend Certified. Today, we put the first real step on the road to this goal for the first three developers by getting the Zend certification bundle for three of our developers.
posted on February 2, 2007 - 0 comment(s) - tags: technology
Trac is now working on DreamHost, but I wanted to use the integration with Subversion by having the commits that reference a Trac issue automatically be shown in Trac. On DreamHost, this is slightly different because of the different Python environment.
posted on January 22, 2007 - 3 comment(s) - tags: technology
While working for TomTom, I got introduced into the world of Agile Development. One of the most useful things I got to learn, aside from firmly planned iterations, was the morning stand-up meeting: A short meeting to go through what every has done, what everyone will be doing, and where people are stuck.
posted on January 22, 2007 - 0 comment(s) - tags: technology
I have just upgraded Ufdi.net to the brand spanking new Drupal 5.0! A yay for Drupal, who did a great job writing a flawless update script. It worked like a charm and everything seems to be working great.
posted on January 15, 2007 - 0 comment(s) - tags: technology
Yet another proof today of the poor adoption of PHP5 in the developer community: Results from a PHPMagazine poll give a whopping 78.5% votes for CakePHP as best PHP Framework, with the runner up being Symfony with 10.9% of the votes. A scary result, when you think that CakePHP is still a PHP4 framework, and Symfony being the PHP5 counterpart.
posted on January 9, 2007 - 0 comment(s) - tags: technology
PHP 10.0 posted about an idea for a php.ini configuration option that would toggle if PHP is running in "production mode". This would then automatically set some settings, such as disabling display_errors, disallowing phpinfo(), and ensure not-bad values of memory_limit and max_execution_time. I don't think it will work.
posted on December 18, 2006 - 1 comment(s) - tags: technology
Ilia wonders why people are not using PHP5. A good question, which I even asked of the Joomla! developers a while ago. The answer from Joomla! was predictable and logical: Hosting providers have not adopted PHP5 enough to warrant the switch as of now. Joomla! 2.0 will probably be PHP5. Why should we switch?
posted on December 12, 2006 - 0 comment(s) - tags: technology
Friday and Saturday the dutch Joomla!Days are happening in Den Bosch. As a company that does a lot with and owes a lot to Joomla! my employer is one of the main sponsors of this event, and most of the employees will be attending the conference. We will even have a stand there!
posted on December 6, 2006 - 0 comment(s) - tags: technology
We recently had a weird situation here at work where we needed to use the Url helper of Symfony inside the actions.class.php of a module. This helper is available in the view, but not in the actions class by default. The solution is simple, but you need to know it first.
posted on November 30, 2006 - 1 comment(s) - tags: technology
Ever since working with JIRA at TomTom, I've been looking for a similar tool for my various projects. I've found a lot of tools done in PHP, but nothing so far has been equally impressing and useful as JIRA itself.
posted on November 15, 2006 - 4 comment(s) - tags: technology
After giving it multiple quick glances, today a co-worker of mine and me sat down a full day to work through the first part of the Symfony tutorial in an attempt to learn to work with Symfony. What an impressive system.
posted on November 8, 2006 - 0 comment(s) - tags: technology
Spam is a big problem, and everyone knows it. Not just the spam you get in your e-mail, these days spammers also write bots to find discussion forums and post their spam there. There will soon be a solution for the latter problem.
posted on November 5, 2006 - 0 comment(s) - tags: technology
Earlier this week, the biggest dutch consumer organization declared that it felt not consumers but computer producers and software developers are responsible for the safety of computers worldwide. They felt virusscan programs, software writers and computer manufacturers should do more to prevent viruses.
posted on October 28, 2006 - 0 comment(s) - tags: technology
My initial implementation of Zend_Http_Client_Adapter_Curl has just been committed! Where before I only committed some small fixes to Zend_Http_Client_Adapter_Socket, now I've actually committed a real contribution in the form of real, new, self-written code. Yay!
posted on October 25, 2006 - 0 comment(s) - tags: technology
Ken has a lot of ideas. He has 59 ideas, and seemingly just as many weblogs. Well, not really, but he has quite a list of weblogs on various topics. I am subscribed to quite a few of his weblogs by RSS, and enjoy reading just about everything. One weblog especially always has my interest, and that is FreeBizWare, Ken's weblog about open source software. Ken is able to find a lot of unknown (to me at least) open source software that is very useful, in work, but sometimes also for private use. This excellent location to discover new technology is now part of the Ufdi.net network!
Welcome Ken. Good to have you aboard.
posted on October 25, 2006 - 0 comment(s) - tags: technology
Today, I have done my first code commit to the Zend Framework. I recently joined Shahar in the development of the Zend_Http_Client component. The first commit is nothing spectacular, just a bugfix in the existing code. My first "real" commit, with code I've actually written myself, will follow shortly, when I finish Zend_Http_Client_Adapter_Curl, the Curl adapter for the Zend_Http_Client.
posted on October 24, 2006 - 0 comment(s) - tags: technology
This morning, I got the shock of my life when I opened my laptop. I was surprised enough that for some reason, the laptop was turned off, I had used it 30 minutes before that moment, and had only closed the laptop. My wife had heard a weird sound but thought it came from her PC. Unfortunately, she was wrong.
posted on October 22, 2006 - 0 comment(s) - tags: technology
I just read on PHPDeveloper that there is a new security problem that needs urgent attention of any php developer. It's RFI, a way for evil crackers to run their code of choice on your server, exposing such information as passwords, or even enabling them to get shell access to your system and maybe become root.
posted on October 13, 2006 - 0 comment(s) - tags: technology
Recently I have been working on a small forwarder that forwards a simple link to a server towards a non-http URL. This non-http URL launches an installed desktop application. The forwarder is necessary so that users can link to specific functionality within this application from forums. Usually, for safety reasons, forum software does not allow posting of URLs other than those that start with http://.
posted on October 3, 2006 - 0 comment(s) - tags: technology
Through Aaron I found out about Yahoo! opening up their user authentication to third parties. The ease of having just a single log in for various sites worldwide is very userfriendly. I applaud the idea. However, not the implementation.
posted on October 1, 2006 - 0 comment(s) - tags: technology
There already is a CSS Reboot: Two days a year where new designs are launched for an enormous amount of websites. So what's keeping us code geeks from starting a Code Reboot day? The day to launch new functionality!
posted on September 26, 2006 - 0 comment(s) - tags: technology
I am still in the process of moving the sites from my old host to DreamHost. One of the sites is one I host for a fellow artist. After doing the regular MySQL dump, and loading this dump into the new database, all unicode characters were, to say it in proper english, fucked up.
Luckily, MySQL has some options to set the character encoding for the queries. It didn't completely solve the problem, but at least helped. I ended up using the following command to import the database:
mysql -usomethingorother -p --default-character-set=UTF8 --host=databasehostIwantedtoimportto databasename < backup.sql
This solved 99% of the problems. There were still some small problems with specific characters, but overall, everything worked fine. Long live MySQL
posted on September 15, 2006 - 0 comment(s) - tags: technology
One of the things where Java is way ahead of PHP at the moment is the deployment of projects. There are projects, such as Phing, that are already a good effort, and will make deploying your project easier. Yet, it's no Maven for instance.
In a recent weblog post, Sebastian Bergmann, author of PHPUnit, asks for someone to step up to write a paper on Deployment in PHP, especially of large scale PHP applications. I would also be very interested in this. In my previous work, we've been struggling often with the deployment of our applications, missing the correct tools for easy deployment. It would be very good if such a paper were written.
posted on September 6, 2006 - 0 comment(s) - tags: technology
Drupal at DreamHost is something fun, or so I've experienced tonight. I had prepared a full site configuration including modules, tweaked configuration and even content. I did this all on my local machine. Usually, when I do these things, it's a matter of copying over the files and the database, change the database credentials in the settings file, and it's working.
Not this time. After doing the above, I got all kinds of weird URL's that were starting with system-cgi/ in the path. Not useful. After reading about many successful Drupal installations on Dreamhost, though, I thought I'd try a fresh install: TADA! That solved the whole problem! It's a hassle, because I had to go through all the configurations again, compare them with my local version, etc etc etc, but at least it works. I'm happy
So, now Online Music World is running Drupal, adding some features to the previously available discussion forum!
posted on August 30, 2006 - 0 comment(s) - tags: technology
Everybody knows Digg. And that is why I don't really check the site out anymore. Even though Digg still seems to be able to keep some kind of quality to it's content, a lot of useless junk is submitted. When the mass discovered Digg, it went downhill and wasn't as much fun anymore.
So I was glad to find the dutch incarnation of Digg a while ago: eKudos. A small but active group of people was submitting stuff to the site, writing nice comments with each link. But lately, it's gone downhill. Not really because "the mass" has discovered it, but because some developers have discovered a way to (automatically?) post to eKudos from Wordpress and the dutch low-quality weblogging tool punt.nl. And so lately a lot of crap is being submitted to the site, making it less fun to check out the latest submissions. This may become their downfall.
I hope that the developers behind eKudos will find a way to prevent this, and to maintain the high quality of the content that it previously had. I'd hate to see eKudos go downhill.
posted on August 8, 2006 - 0 comment(s) - tags: technology
posted on August 5, 2006 - 0 comment(s) - tags: technology
Nothing negative about my previous host, as they do a good job without a question, but my opinion on my new hosting provider definitely is better already. Instead of playing a closed card about any downtime, which is common among a lot of hosting providers (again, not my previous hosting provider), DreamHost decided to give a full explanation of the recent server problems and downtime. Very good! I mean, they're cheap, but usually they don't have these serious problems. And now they encounter serious problems, which are partially to be blamed on themselves, and they openly admit it! Very good!
I think I said it before, but if you're not hosted there, maybe you should consider switching. And if you let me know, I can even arrange some discount for you!
posted on August 3, 2006 - 0 comment(s) - tags: technology
The Ufdi Network has recently been expanding with various new members, a very good sign. Still, after the recent expansion, we were still having pure linux and mac in our ranks. Now, even though this is not a bad thing of course, it was time for some counterweight.
Gideon Marken is, how he calls it, a Web Technologist. I like this term a lot. What I like even more is that he single-handedly set up an amazing site called ArtistServer, he makes very good music as Sonic Wallpaper, and is an allround good guy. He has accepted my invitation into the network and so you can tap into his vast base of knowledge as well as that of the other network members by checking the Ufdi Network on a regular basis.
Welcome to the network Gideon!
posted on August 2, 2006 - 0 comment(s) - tags: technology
For a while already I've been following VT's Tech Blog. Vinu Thomas writes in an excellent way about technology there, talking about all kinds of topics, ranging from PHP, security to setting up a linux wireless access point.
Welcome Vinu to the network!
posted on July 29, 2006 - 0 comment(s) - tags: technology
I've been following this weblog for quite a while after another member of the network recommended the weblog to me. Yes, I know, it's yet another mac user but I feel Andre knows what he's talking about and I think his weblog will add something to the network.
So please join me in welcoming Osxy[dot]nl to the Ufdi Network.
posted on July 22, 2006 - 0 comment(s) - tags: technology
There is one single tool that rules the world for photo management. This tool is called Picasa. Up until now, it was only available for Windows, which sucked bigtime and I definitely liked the app. Big Google rules (again!). They created a linux version!
OK, not really. They made an installer that includes a specially configured Wine to run Picasa on Linux. But it functions just like a native Linux app!
So go and download your Picasa for linux
posted on May 27, 2006 - 0 comment(s) - tags: technology
It's funny. Earlier this week I encountered this problem, and then just now, someone else writes about it. Though their problem is exactly opposite to the problem I encountered, the cause and the solution is the same.
So what is the problem? In the php.ini, you can configure the session.gc_maxlifetime setting. This setting controls how long a session may live before the garbage collector kills it because it has expired. Then, in your own script, if you feel the php.ini setting is too short or too long, you can specify your own gc_maxlifetime by using ini_set(). So far, no problem.
The problem we encountered was that our php.ini setting was set to something like 24 minutes, and we wanted 24 hours. So we used ini_set() to set the maxlifetime to that value, and still we got reports where a session would time out much earlier than expected. Not good.
Last week, after a bit of digging, we found the cause of the problem. We have multiple applications running on this server that use sessions. Most use the default php.ini setting, and not this adapted setting. All sessions are saved in files in a directory (/tmp in our case). But when the garbage collector is triggered, it does not discriminate between sessions created using the default php.ini setting and the one we set manually. No problem when the garbage collector is triggered from our script. But a big problem when it's being triggered by the other applications. The garbage collector will go through the /tmp directory and see a lot of session files that have expired. It will delete them. Gone is your session that should've lived for 24 hours.
This is, in my very humble opinion, a big shortcoming in PHP's session handling. There is an easy work-around though: those of your applications that use a custom gc_maxlifetime should also be saving the session files to a different session.save_path. Here also, ini_set() will support you in setting this value. This should of course point to an existing directory which is writable by your php/webserver user.
Now, the next step of course, would be that php would change their session handling. I can not imagine this being too hard. Each session file would, aside from the already present (serialized) session data, contain a tag that is in some way seperated from the actual session data. This tag contains the timestamp of the session's expiration. When a session is being written, the session handler can easily calculate the moment of expiry for the session based on the current timestamp + active session.gc_maxlifetime. Now, when the garbage collector is triggered, it need only read the first line of each session file and purge the files that have a timestamp lower than the current time. I understand that this is probably slightly more resource-intensive than just reading the timestamp of file, but it would enhance php's error handling in such way that I personally feel this is not a problem. It could even be an optional php.ini setting (session.enhanced_session_lifetime = 1). Of course, I'm not in the PHP group, so I guess for now I'll just have to implement a custom session handler with this functionality. Quite a pain though, since I'll have to do this with all my sites then. Or just implement the above fix of course
posted on May 26, 2006 - 6 comment(s) - tags: technology
I've been a bit busy lately, so I nearly forgot to announce that finally, TomTom HOME is now available! The software that, together with my colleagues, I've been working on for the past months (I've done the server component with some of my colleagues from the PLUS department) is now available as a free download. Check it out. Enjoy
posted on May 24, 2006 - 0 comment(s) - tags: technology
I've just introduced the new design and CMS (textpattern) over at my electronic music website Electronic Music World. Hopefully, this will make it a bit easier for me to update the site. Until today, it was running a 5 year old custom written CMS which was very much outdated. Because I'm working on some other private projects, I didn't feel like completely re-writing the Electronic Music World code. So instead, I wrote a converter for my content to start working with Textpattern.
I'm happy with it and hope this will make it easier for me to add new content to the site. I've been slacking on the content side of Electronic Music World lately because of some technical difficulties with the site. This should solve that problem
Now, another big thing to happen to Electronic Music World: Move the site to DreamHost. But that's for another day. This is enough for today
posted on April 23, 2006 - 0 comment(s) - tags: technology
Well! This evening I made my first commit to the Zend Framework subversion repository. I had already checked out the dutch translation of the documentation before the weekend, so my first commit immediately added quite a bit of changes into the repository. I hope people will appreciate my work.
posted on April 18, 2006 - 0 comment(s) - tags: technology
There's lots of work and even more thinking about the Zend Framework being done. Proof of that can be found in the first Framework roundup. Interesting reading! Especially the part about Authentication and ACL caught my eye. I'll definitely be keeping a good eye on the development in that area. The Framework is very promising.
posted on April 3, 2006 - 0 comment(s) - tags: technology
Cookies. They're a regular cause for trouble. Some builds of Internet Explorer 6 seem to have trouble setting cookies for a fixed period of 300 seconds, while having no trouble with a period of 1500 seconds.
posted on November 30, 2005 - 0 comment(s) - tags: technology
A month (or maybe two) or so ago a new hype was born on the Internet. A lot of weblogs started posting about Mint, a new statistics package by Shaun Inman that presented the gathered data in a nice and easy interface, using the buzzword technique AJAX. Aside from the clear interface, the good API for extending the system made it quite interesting for a lot of people. I decided to give it a shot.
posted on November 5, 2005 - 0 comment(s) - tags: technology
Marjolein made a new design for her website. And of course, I turned it into HTML. This design uses two stylesheets, one for Internet Explorer, and one for real browsers . Anyway, A simple browser check is easy in PHP, but we're also using Nucleus for her weblog, and in the skinning system Nucleus uses, it's not possible to use PHP.
Rakaz, however, had the solution. It seems Microsoft has built a system called Conditional Comments into their Internet Explorer browser. Using that, you can let IE do something that other browsers won't do (since other browsers will just see it as regular comments). A very interesting concept that is quite useful, because it makes it easier to make work-around for IE non-standards issues.
So now everything works again, the IE stylesheet is loaded when people browsing with IE come by. The code I used is quite simple:
This ensures the tearsong.css is loaded for all browsers, but only IE will load the IE-specific CSS.
posted on May 26, 2005 - 0 comment(s) - tags: technology