Ada Lovelace Day: Women in PHP

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.

Introduction to symfony podcast

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.

Flexible systems are not always good

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.

Now it's up to PHP5

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.

PHP is not the best thing in the world

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.

Namespaces in PHP

Namespaces in PHP seems to be the current hot topic. A lot of people want it, a lot of people don't. Let me through in yet another opinion.

Tip: use clearly readable variable names, and constants!

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.

PHP Abstract: The PHP Podcast

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.

Using YUI grids: A dream come true

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.

Zend Platform JobQueue

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.

Flamewars (or: why not just pick the best tool for the job?)

In the past few days I've read quite a few weblog posts on language x vs language y and most of the posts were somewhat ranting or flaming against the language not of the author's choice.

Agile PHP: How do we do it?

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.

PHP5 community effort

It seems, finally, after 3 year and a bit of having PHP5 available, the mass of community developers is starting to see the light.

Symfony 1.0.4: time to upgrade

The new version of Symfony has been released. It's a bugfix release, unfortunately still with no fixes for the bugs I've reported.

Scrum Agile Development: Uncommon sense

In the most recent article on the agile development weblog, author Kelly Waters makes an excellent point.

Dutch PHP Conference: A great event!

Yesterday I attended (and presented at) the Dutch PHP Conference. What a great day!

My plans for the Dutch PHP Conference

Tomorrow is the Dutch PHP Conference in the RAI in Amsterdam. This is my plan for which sessions to attend.

Issue tracking: Where business and technology clash

Earlier I wrote about security being a topic where business and technology clash. Here's another one: issue tracking.

Another advantage of Symfony: Debugging

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.

Question for the conscience

Who is the better developer?

Symfony all around

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!

Security: Where business and technology clash

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.

All speakers now confirmed

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!

Cool dutch PHP events with a taste of Symfony

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.

Invitation

I just want to pass on this invitation to everyone interested. We at Dutch Open Projects are organizing a "PHP Bootcamp" seminar-type of event on Saturday June 2nd.

Zend Studio & Symfony

There is a little trick that Peter told me yesterday to get a better support for the code hinting/tooltips and code completion in Zend Studio when using Symfony with Propel.

And then there were enough events

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.

Trekstor I.beat Censo

Today I received the Trekstor I.Beat Censo that I ordered a short while ago. Let's have a look at what this thing can do.

Job Openings at Dutch Open Projects!

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!

Continuous Integration in PHP

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.

It's alive!

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).

Zend Studio for the whole company

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.

A call for Agile Developers

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.

Programmer's Pride

Here's some Programmer's Pride for you. As of today, I have been one of the main developers of a system that is used by more than 1 million users worldwide. Now, that is what I call cool.

Symfony framework reaches 1.0 stable!

They did it! Symfony framework has has released their stable version 1.0. A nice milestone, congrats to Francois and Fabien!

Trouble in Paradise

The recent announcement of several new PHP frameworks has triggered a few people to post on the topic of the huge amount of frameworks. Stubbles "fights" back.

The Definitive Guide To Symfony

The user will always be the weak security link

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.

Zend Certification for all!

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.

trac-post-commit-hook on DreamHost

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.

Morning meeting: The story continues...

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.

The adoption of PHP ... 6?

PHP5 is still not well-adopted, as I've written before, and now the first tutorial on how to install PHP6.0.0-dev is already available.

Ufdi.net upgraded to Drupal 5.0

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.

Trac on Dreamhost: Perfect

Installing Trac has been described as "hell", "horrendous", and other such wonderfully positive words. Especially on DreamHost, as I've understood from some people. But then there is the community...

Another proof of little PHP5 adoption

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.

ReviewMe: Another way to earn money with your website

A while ago, I signed up for ReviewMe, just to see what would happen. I added both this website, and Electronic Music World. And yesterday, I found out it works.

PHP Production Mode

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.

PHP5 adoption

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?

The Joomla!Days are over

The Joomla!Days are over, let the Joomla!Days begin. I'm very impressed with the Joomla! 1.5 framework, so I'm gonna dive into how it works, for sure.

Dutch Joomla!Day 2

Second day of the dutch Joomla!Days. I've included summaries of the sessions I've attended here.

Dutch Joomla!Day 1

Today is the first day of the Dutch Joomla!Days. I'll be logging live from wherever I can sit down and type (thank whichever entity you like for wireless Internet ;) ).

Joomla! Days ahead

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!

Using helpers in actions (Symfony)

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.

JIRA, but then differently?

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.

Symfony: No cacaphony of code

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.

Protecting forums against spammers

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.

Responsibility

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.

Now it's for real

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! :)

New Ufdi.net member: FreeBizWare

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.

My first code commit to the Zend Framework

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.

Unicron broke

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.

Remote File Inclusion: It needs your attention NOW!

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.

ZDE on 64-bit

In response to Greg's post (as I can not seem to comment to his message), and because I think this information is useful

“Exotic” protocols

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://.

Single Sign-On

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.

Code Reboot?

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!

PHP Specification Standard

Standardization. This is one of the things where PHP still falls behind, big time. In a recent thread on the Zend Framework general mailinglist, this topic was touched in an informal proposal to get a module in the framework for Portlets.

UTF-8 and MySQL

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 :)

Deployment

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.

Drupal at DreamHost: Fun

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!

The Digg System

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.

Aptana

Through Vinu I found out about a great tool for javascript, HTML and CSS work. Aptana is an Eclipse-based editor for javascript, HTML and CSS making use of Eclipse's great set of features, specifically tweaked for usage with earlier mentioned languages. Very nice also is the fact that they also have a download of an Eclipse-plugin, so that when you already work with Eclipse, there is no need for you to install the full Aptana package which also contains Eclipse basically. Very nice. I don't really use Eclipse a lot, being a Zend Studio user for PHP work, but a good HTML/CSS editor is very nice, and maybe this will also trigger me into javascript a bit more ;)

Another good thing about this new hosting provider

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!

Ufdi is expanding... AGAIN!

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!

Another new Ufdi member: VT's Tech Blog!

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!

New Ufdi Network member: Osxy[dot]nl

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.

Picasa for Linux!

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 :)

PHP Session Expiry

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 ;)

TomTom HOME!

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 :)

Collaborating on portals

Zimbio allows users to create a new portal page including links, a forum, a collaborative weblog, and many more features, based on the idea that anyone can add and edit.

Rewriting an existing site

Rewriting an old site can be a drag, but it can also be an adventure

new Electronic Music World design and CMS

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 :)

Working with the Zend Framework

I'm building a site with the Zend Framework, and I like how it works

First commit!

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.

We're Live!

We're live! Finally the project that I have been working on can be seen by the rest of the world!

The Holy Root

Should you add new directories to the linux root or not?

Zend Framework revisited

OK, I've got a new opinion on the framework. I take back my earlier words. It rocks!

Zend Framework, lots of ideas!

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.

New Ufdi Network member: Consonants

The Ufdi Network has a new member! Consonants brings java, unix, security and more together.

First Zend Framework observation

A problem I already encountered with the Zend Framework

Zend Framework

Zend Framework? It's here! Yay!

2006: Year of the networks?

A new kid on the block: The Ufdi Network. And there are more!

Web2.0.1 announced!

OK peeps, start patching!

Hattrick Organizer on Kubuntu

I had some trouble running a tool called Hattrick Organizer. The problem was easily solved.

Kubuntu Linux, my new OS

I switched linux distribution, and it has been a good choice.

Linux distributions

I'm looking for a good linux distribution. Please share your opinions.

Internet

Today, in the Amsterdam underground. Approx. 25 year old guy to his travelpartner: "I don't like the Internet"

Don't you love Microsoft Word?


Windows 98 Quirks

Weird problems concerning Windows 98 and a faulty keyboard.

Smart security trick

A nifty little trick to prevent a lot of trouble.

Questionable decisions @ php.net

I've never been a big fan of PEAR, but this decision is questionable whether you love or hate PEAR.

Want a cookie?

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.

Security in phpBB

A response to a posting on PHP security by Filip de Waard.

Problem

Darn. I need to backup 26 gigs of data.

Pivot to Textpattern converter, all but finished

I got some requests to share my pivot -> textpattern converter, and so I have worked a bit on documenting it. That work is now finished and you can view the result here.

I've got a fresh breath now!

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.

SimpleXML, simple, but limited

A look at how to slightly adapt SimpleXML to be able to read the root element's name.

AJAX SQL Designer

A great web based database designer.

Secure Linux

meta: great article on linux security

CSS list splitting

A look at the 'CSS Swag: Multi-Column Lists' article published on 'A List Apart'

Firefox 1.5 beta, but with all your favorite extensions

The Nightly Tester Tools extension for Mozilla Firefox simply rules! Thanks Dominik!

Firefox 1.5, the first beta

Well, I've upgraded recently to the first beta of Firefox' new version 1.5. So far, I seem to notice little difference (which is a good thing and a bad thing at the same time).

Microsoft actually helps me...

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.

Php5_zce_logo

Upcoming events

I will be speaking 17-02-2012: Techademy Trainingday February
I will be speaking 23-02-2012: Zend Webinar: Git for Subversion Users

Tags

1337 2008 2010 2011 4developers access modifiers accessibility AdaLovelaceDay09 advent agavi agile alfred amsterdam apache api apple article articles atk atkMetaNode audioscrobbler automation azure backwards compatibility barcelona barcodes bash bbc bbq beatstad belgium best practices bittorrent blogging blogs boards of canada book books bughuntday bundle caching cake cal evans calendar career cat cerf certificate cfp clear cms cologne common sense communities community components conference conferences contest continuous integration contribute contribution crisis css custom d-day datetime DbFinderPlugin decorator decorators deployment devdays development directoryindex docblox doctrine documentation download dpc dpc09 dpc10 dpc11 DPC2008 dreamhost drupal dv7 eclipse ed editors efficiency enterprise errors event events expertise ezcomponents facebook finland flickr fork framework frameworks freelance freeze frontend fun game games geoip germany getting real git github gnome-do google google calendar googletalk graceful degradation hack hackers hidden gem hiphop howto hp HR html http i386 ibuildings icann ide ideasofmarch idm imovie indy ingewikkeld integration international php conference internet interview ipad IPC ipc ipc08 ipc10 ipc11se iterm2 javascript jenkins jenkins-php job job openings jobeet john peel joomla joomladays kiva kubuntu launcher launchy left on the web libraries library lighttpd lime linktuesday linux live london loudblog m2ts mac magazines malware mambo marjolein mediterra meeting meme meta methodology micro-financing microframework microsoft migration movie music mysql namespace namespaces netbeans netherlands newsfire nllgg nos odmarco open source opinion ORM osx paradiso paris partnership pavilion pear pecl performance personal pfc10 pfc11 pfcongres pfcongrez pfz photo php php5.3 phpabstract phpazure phpBB phpbb phpbelgium phpbenelux phpbnl10 phpday phpdoc phpdocumentor phpgg phpitalia phpnw phpnw08 phpnw11 phpstorm phptek phptek09 phpuk2009 phpUnderControl phpunit php|architect php|tek podcast politics portability postcrossing presentation presentations private projects protected prototype PSR-0 public python qa qr codes re2c recruiting refactoring review rewrite ruby on rails san francisco schedule scifi script security sensio seven things sfdaycgn sflive2011 shell scripting silex simplexml slides smfony software sogeti solar sound speakers spl ssh standard standards star trek static steer strings stylesheets subversion symfony symfony live Symfony2 symfonycamp symfonyday symfonylive symfonyUnderControlPlugin talk talks techademy technology techportal tek09 telecommuting terratec terrorism testfest testing textmate textpattern the right tool timeout tips tld todo tomas tools training twig uncon unet usability usergroup validation vhost video vim vinyl virus warp webinar weblogging webservices wiki windows winphp women wordpress work workshop world world of warcraft wpi writing wunderlist xml xpath xsd yara year youtube zc11 ZCE zemanta zend zend framework zend server zend studio zendcon Zend_Form zite
© 2004 - 2012 Stefan Koopmanschap + Powered by Symfony, photos powered by Flickr, links powered by Delicious, Shanghai smilies by Iconbuffet. Feeds: rss / atom. Left on the Web v4.4.0.1