Magento-based asynchronous execution

Working with an off-the-shelf shopping cart usually requires a little bit of patience. Scaling an e-commerce site does have its share of problems. There is a LOT of interactivity that needs to be implemented. This can be things along the lines of generating targeted ads, sending email or charging a credit card.

Pre-caching PHP content with Zend_Cache_Manager and the Zend Server Job Queue

With the web being what it is today there can be a lot of times when you want to aggregate data from many different sources and bring them together in a single page. I have not done much of that on my site simply because that means that I then need to learn a bunch of different API’s. However, since Youtube is the #2 search engine I figured that it might not be a bad idea to aggregate some of my YouTube content on my page automatically. I don’t necessarily want to do a blog post about each individual video I post, but I wanted there to be some place where I could just list them out.

Creating a separate mobile layout for a Zend Framework application

I’ve got a Pre… and Sprint. Together they make for a pretty poor browsing experience. More due to the Sprint part I presume since browsing the web is a painfully slow experience. The Pre has other problems. That poor browsing experience has extended to the e_eschrade website for me even though there aren’t a lot of elements that need to be loaded. So to get around that I decided that it was time to make my site (mostly) mobile friendly.

Setting up a maintenance page with Zend Framework

One of the things that smaller sites who don’t have a fully redundant setup or a relatively minimal deployment mechanism need to do when doing some kind of maintenance is put up an “Under Maintenance” page. That or there was some massive problem and you need to just shut down access to the site while you fix the problem. With that in mind I have written a very simple example that allows you to create a maintenance page that is configurable and requires no changes to your existing site. This example uses Zend_Application, but all of the code can be used in a pure Zend_Controller application by adding the plugin however you normally add plugins.

Programming skillz for life… and programming

Never schedule a meeting 30-60 minutes after you’ve started drinking coffee.

Ask for a raise based on your quality of work, not based on how much you think you deserve it.

If you don’t clock out at the top of the hour you are more committed than 50% of your co-workers (see point #2).

If you clock out 45 minutes after the end of the day you are more committed than 90% of your co-workers (see point #2).

Don’t consider gaming time as part of your work day and then complain about how many hours you need to work. Gaming at work can be good, but it should not be counted as work.

If you work on Linux, learn strace.

If you ever do anything over a network, learn Wireshark.

If someone asks you for a feature, ask why they want it.

If you are not a good designer, don’t do design. Pay someone to do it. (I should take this advice myself).

Take your own advice.

Usually the best answer actually is “it depends”. As long as you can answer why.

Get a desktop background that is not a woman. Sorry, but she’s way out of your league and having her on your desktop makes you look like a loser.

Take a break (I should take this advice myself).

Sit under a tree without a computer.

Sit under a tree while programming. Call it Green Programming and claim discrimination if someone complains.

Expect failure. You’re not as good as you think you are.

If I don’t click on a link in your marketing email within 3 sends, I probably don’t want your email. Unless you’re selling gear. Then it’s gadget pron.

Don’t be an ass. This is why I’ve limited my exposure to Ruby. Seriously. I’d like RoR more if I had met nicer developers.

Download the source.

Use the source. Seriously.

Don’t delete your email. It is evidence of other’s wrongdoing.

Managers: learn at least a few Star Wars quotes. If you change the deliverables say “I am altering the deal. Pray I don’t alter it any further.” Star Trek quotes are OK too, but Star Trek doesn’t have a lovestruck wannabe Samurai who was previously thought to be a dark lord before people knew the back-story.

Google is a development tool.

If you are in Netops, don’t block access to Facebook or Twitter. We will not be more productive if you do that. Anyway, it’s the administrative assistants who waste time on there. Plus we’ll just find an open proxy and use it to get there.

HTTP is the worst protocol for transmitting information, except for all the others that have been tried. Paraphrasing Winston Churchill (I think).

Don’t expect much from the Oracle/Sun merger. Ecclesiastes 1:9. 😉

When you come to an XOR in the road, AND it.

A model layer for the i5 Toolkit on PHP

PHP has kind of taken the i5 world by storm. Many RPG developers want to move their applications to the web, but while there are options for doing so, RPG is not all that well suited for writing web applications unless you invest heavily in a CGI framework like DEV2. The other option has been Java, which represents a completely different way of coding that many RPG developers are not overly comfortable with. Alongside that, there is the standard issue of Java taking some time to learn properly. So along comes PHP and it gives the RPG developers a chance to ease into programming for the web. They can still use procedural programming when they start, but they can also move to more structured applications as they become more familiar with the language.

Added Gravatar

Gravatar is a service that allows you to have a world-wide available avatar based off of your email address that can be used any place where you post comments or do anything really. It is based at and it is free and easy to use. Github uses it for their avatars. And now, so does e_schrade.

The way it basically works is that you create an MD5 hash of the email address, so the spambots can’t get it, and point that to the Gravatar website inside of an img src. The code for building it is really quite easy.