Go buy a boat is a website of my good friend Robert Janiszewski. He is an amazing, energetic 'do-it-now' kind of guy and this is a website, that i built, for his startup company.

When he is not working as a banking manager or on his new business he is also sailing on sport yachts in Micro division. He and his crew won 2010 world championship in France on a Flayer 550 yacht!

Website is actually quite cool. It has full translation to 2 languages already and two more are on the way. It uses jQuery a lot for banners and gallery. I have build the gallery as a custom made drupal module using jQuery. I aslo use colorbox, jQuery UI, mysql and Drupal is core of the system.

Upgrade Debian Etch to Lenny

Debian is my favorite linux system since 2001 or 2002. It is awesome.

The only thing that could be better is that packages are usually very old comparing to current versions. Well but at least everything works. I have used apt-get to upgrade distributions since potato release. So far it worked every time. I think i had some small issues with upgrading samba or cups once but simply going back to previous version worked of the package worked. But after all it always worked.

Review - Even Faster Web Sites

Finally i got a book that is truly worth recommending! It is a very good book and i think every web developer should read it.

Book is a sort of a continuation of another good book High performance websites but to be honest i think i like this one more.

Book is very condensed, there is no wasted page in it. Information is well structured and you can see that authors prepared well for the publishing. Information is backed by a decent research and some of the tricks are really cool.

Fixing java.lang.OutOfMemoryError: PermGen Out of Memory in grails STS and tomcat

Grails, Tomac and Glassfish keep on crashing during deployment or reloading of your web application with out of memory permgen space errors? Seems like you are one of the millions other developers that have this problem : -)

Its all about loading too many classes. In Java classes are loaded in special memory area which can not grow above the max perm gen setting.

It may be frustrating especially if you are at the beginning of your journey with grails. Grails spring, hibernate and all the plugins depend on so many jars and classes that default memory settings are often not enough.

Overriding plugin templates in Grails application

Grails plugins are handy but there is one feature i did not expect. When you create a plugin you can add taglibs there. Then in a tag you call render and provide plugin attribute so that render would know to search for the template in the plugin context. It looks very similarly for views in controllers. The difference is that if you place view file in the application it will override the view file of the plugin but if you place template file it will not override the plugin template.

How Apache AddHandler PHP setting exposes a security risk

An interesting little tip i read lately and thought its worth sharing. Apparently setting Apache to serve PHP files using AddHandler makes Apache to parse all files with ".php" substring in the file name (not only ending with php). The consequences can be very dangerous if you allow to upload files to the server and don't validate file names properly.

Ultimate web developer's encoder / decoder

I am happy to present the first release of Ultimate web encoder.

I am a developer and i work a lot with ajax, javascript, PHP, json etc. It is quite often that i need to decode, replace encode something and i always go through the same process of searching for base64 encoder or decoder or other tools via google.

So lately i thought 'how about i do it once and for all', and this is how Ultimate web encoder came to live : )

It is a free online tool that will let you build a chain of transformations with a few simple frag and drops. It will also allow to apply the transformation multiple times as you do not even reload the page. Its all AJAX under the hood.

Compiling and building PHP 5.3 on Ubuntu linux

Building PHP requires quite a bit of effort. There is a lot of dependencies before PHP 5.3.3 can be compiled plus every Linux distribution packages libraries in some different way. The result is that you have to install several Ubuntu packages before you can even compile PHP 5.3. Then you will need some more to make it run : )

This post shows how to make a development php, it is not supposed to be used for production as i am overriding default paths and you probably don't want to be doing that.

To make your and mine lives easier i put together a script how to get PHP 5.3 running on a fresh Ubuntu linux installation.

Security considerations of single signon in context of XSS

when you think of it at first it sounds like a great idea. All you have to do is set a global cookie for the main domain and based on that perform authentication. User will be able to go from subdomain to dubdomain and still remain authenticated.

Unfortunately there is second side to this story : )

Using google analytics to track outgoing clicks

I just came across a very nice example of how to track external clicks on your website.

Syndicate content

About the author

Artur Ejsmont

Hi, my name is Artur Ejsmont,
welcome to my blog. I am a passionate software engineer living in Sydney and working for Yahoo!

Web Scalability for Startup Engineers

If you are into technology, you can order my book Web Scalability for Startup Engineers on Amazon. I would love to hear what are your thoughts so please feel free to drop me a line or leave a comment.

Follow my RSS