Backgrounding high load tasks in Symfony2 using Beanstalk

You all have had this problem at one time or maybe you are having this problem now. You have a big ass cpu intensive task to do and you’re all doing it in a webserver request.

Of course this is insanity. Why would you want your webserver to spend 20 seconds on resizing all the 20 sizes of pictures you need, Or generating and emailing that pdf invoice after a customer has paid.

What if you could background this task and have it be processed on a place more suitable for boring and intensive tasks like the console. This saves on timeouts. There may be a solution!

Continue reading Backgrounding high load tasks in Symfony2 using Beanstalk

Looking for a new challenge!

[UPDATE: I am right now REALLY busy setting up a “new” part of the company in Gouda. So “Jobhunt 2014” has been put on hold for a bit ;) But interesting challenges are always welcome]

Due to the unfortunate event of the office I work at closing down and the company’s other office being 105km up north I’ve started looking for a new challenge. Warning this post is going to contain a lot of “I”‘s

I have 12+ years of experience in web development.  My compatriots are the PHP and other parts of the LAMP stack. I love to tinker, doodle and the other things. (See my twitter/google+/blog)

Besides that I also love working on mobile applications in iOS and Android. I’ve built a few apps along the way teaching myself Java and Objective C. (Time to learn swift!)

I’ve worked in the hosting business for over eight and half years.  And I would like to stay in there.

I flourish in close knit development teams where I can teach people new things and learn new things.

I’m looking for something in the south western of the Netherlands (Zuid Holland) preferably near Gouda.

But leaving the Netherlands completely wouldn’t make me sad ;) Working from home would also be an option.

For job offers and things contact me on Google+ , Twitter or via email. I can send you my CV or code samples upon request.

@webdevvie

https://plus.google.com/+JohnBakker_webdevvie

email me via me (add the curly a thing) johnbakker.name

Cacti rrdtool upgrade woes

I wanted to move from my aging home server to a Raspberry Pi for Cacti monitoring. It takes a whole lot less power..

So I do what I always do: move stuff from one server to the other. (I was moving from RRDTool 1.4.3 to 1.4.7 and Cacti 0.8.7g to 0.8.8a)

But while trying to figure out why my graphs were no longer working. I got the following error:

“ERROR: the RRD does not contain an RRA matching the chosen CF”

Turns out something was incompatible between the RRDTool versions.

I wrote a little script for to export and to import the RRDTool files without having to do it manually. (code after the break!)

Continue reading Cacti rrdtool upgrade woes

Save time rendering XSL(in php), Use an XSL builder

I love XSL. Its a wonderful tool for rendering HTML,XHTML,XML. Imports improve readability and helps you organize your XSL’s in an orderly fashion. But lets face it: Imports are a bit slow especially on networked storage like NFS.

I tried searching for a decent solution. But could not find one.

So I built an XSL builder for my platform(artist community platform) to reduce the time taken rendering from XML to HTML using XSL. It succeeded in lowering the time it takes to render by as much as 25 to 35% on the production site.

It also includes a nifty way of building  different xsl files that contains only the templates you need to increase speed even more. (check out the README)

Now I have both flexibility (XSL is awesome!) and a lot more speed.

Its open source!(GPLv3) (copyleft , so if you have any changes you made, please send them to me )

You can download it here

It contains both a CLI version and the class that does the building (For platform integration!)

CLI version

An example of how to use the CLI version:

./xslbuildercli.php input=/full/path/to/your/xslfiles/index.xsl

This will return the built XSL to stdout. (more examples on how to build to files and how to use the modes to create seperate files for seperate uses, check out the README)

Just the class

If you plan to do some other cool stuff like online XSL editing this might be interesting.

require_once(‘xslbuilder.php’);

$newXSL = xslbuilder::buildXSLFile(‘/full/path/to/your/xsl/index.xsl’);

//or

xslbuilder::buildXSLFile(‘/full/path/to/your/xsl/index.xsl’,
                             ‘/full/path/to/your/xsl/built/index.xsl’);

 

Have fun!