Danne on February 4th, 2010

As many have noticed Google Maps API does not include a setIndex() method on the marker. You can set the z-index when adding a marker to the map. But it is not possible to change this afterwards.
I didn’t find a good solution to the problem when searching and had to resort to my own, hacking [...]

Continue reading about Dynamically change z-index on Google Maps markers

Danne on November 5th, 2007

Yesterday was the first day of the International PHP Conference. I listened to Lars Jankowfsky in his session “Practising Agile Development”. Although different methodologies were mentioned it was mainly a one day session on how Extreme programming works. The session had a good mix of fun och seriousness. One of the reasons I wanted to [...]

Continue reading about International PHP conference in Frankfurt 2007

Danne on September 14th, 2007

The adjancency method
Representing a tree of nodes, for example product categories, in a relational database is not hard. The most common way of doing it is to store a parentid with each node. This is also known as the adjacency list model. It is sometimes also referred to as the recursive model. Whatever the name [...]

Continue reading about Reordering nested sets using PHP and Javascript

Danne on November 28th, 2006

PHP 5.2.0 was released a few weeks ago. Apart from the usual bigger, better badder there are two small additions that I think are worth mentioning.

A new extension for JSON decoding and encoding enabled by default.
Hooks for tracking file uploads.

These features aren’t competing for the heavy weight title in the release notes. Still, having these [...]

Continue reading about PHP 5.2 ajaxified

Danne on February 9th, 2006

I usually try to separate backend logic from the user interface logic when creating new PHP applications. I am pro fat gui and usually have a lot of client side scripting going on. I mostly use AJAX or other remote scripting techniques to call actions defined in the PHP backend. In my latest PHP project, [...]

Continue reading about Accessible forms and unobtrusive javascript

Danne on November 22nd, 2005

Sometimes people climb mountains because it’s cool. I can understand that.
Now ajax and web 2.0 is cool. So this ajax whois service wants to be web 2.0. In order to be web 2.0 it must be simple and things must be fetched asynchronously. The service is also using the captha technique - ajaxified. A service [...]

Continue reading about Silly web 2.0 application

Danne on October 26th, 2005

While looking around for cross site scripting resources I stumbled upon this “ha.ckers.org” site which is an excellent source for ideas on how to check for XSS vulnerabilities. I have seen it before but I obviously forgot to bookmark it. Now I saw the site listed in the top of  del.icio.us/tag/xss as well. Another good [...]

Continue reading about Cross site scripting

Danne on June 17th, 2005

After investigating AOP a bit more I am convinced that the concept is well worth the effort. I really like object oriented architectures as I think it is a good way of modelling applications. I don’t like to overdo it though. In PHP projects I often end up with a few classes and a lot [...]

Continue reading about Aspect Oriented Programming and javascript

Danne on May 24th, 2005

The project is no longer available. Might be so in the future.
Recently I have been working hard on my SRSS (whatever) project. The result is nearly finished and has been dubbed Toxic.
Toxic is an AJAX toolkit, or framework, for creating rich web applications. It handles the tedious and repetetive tasks involved in integrating a client [...]

Continue reading about Announcing Toxic - an Ajax toolkit

Danne on May 12th, 2005

Recently the Google Web Accelerator (GWA)has received a lot of attention from web application developers. Rightly so. When installing GWA for use in your browser it speeds up surfing by prefetching pages. This can be very useful but also extremely dangerous as it has very bad side effects on many (badly designed) web applications. Why? [...]

Continue reading about Google Web Accelerator