CakePHP 2.0 Rant Retraction

In yesterday’s article, it appears I may have misunderstood something regarding lazy loading.  I incorrectly read it as “loading the data” on-demand oppose to loading the object on-demand.  This actually looks like a great feature, especially after reading this: http://bakery.cakephp.org/articles/Frank/2010/08/10/optimizing-model-loading-with-lazymodel

It appears associated models would automatically be loaded simply because they are related to the model you are querying, even if you are not retrieving data from it.

Thanks for the clarification on lazy loading Jose and I’m actually quite excited to see this change after further research into the situation.  Check out these benchmarks from the above mentioned article:

Before lazy loading

Total Requests made: 100
Total Time elapsed: 6.8480186462402 (seconds)
Requests/Second: 14.603 req/sec
Average request time: 0.068 seconds
Standard deviation of average request time: 0.002
Longest/shortest request: 0.078 sec/0.066 sec
Memory usage: 9.75MB

Post lazy loading

Total Requests made: 100
Total Time elapsed: 4.8957378864288 (seconds)
Requests/Second: 20.426 req/sec
Average request time: 0.049 seconds
Standard deviation of average request time: 0.001
Longest/shortest request: 0.056 sec/0.048 sec
Memory usage: 7.25MB

Almost 6 full requests more per second!  Just in the 100 requests made there is over 2 seconds being gained!  Excellent work community!

Share

CakePHP 2.0 Rant

I was recently visiting the CakePHP bakery and decided to read a little bit about CakePHP 2.0-dev.  I’ve rather enjoyed CakePHP as a framework since version 1.1 all the way through to version 1.3.  However, after reading some of the “features” for version 2, I have to say, I’m a little disappointed about their focus. Read more »

Share

Random Funny Technology Videos

I was surfing the Interweb recently and came across some cool/funny videos that I thought I would share:

Amazing iPod Trick

This video turns a black iPod into a white iPod.  I’m not sure if I would personally want to try this, but it sure looks cool afterwords.

Roombas Hack to Play Pac-Man

Excellent use of a vacuum and great way to promote it’s cleaning skills by “finding” dirt.

Image Translating iPhone App

This is one of the coolest apps ever.  Show a road sign or some picture with words and watch it translate the text in the image for you right on your iPhone!

Facebok Profile Picture Hack Tutorial

The new profile displays pictures from your last album on the top of your profile, watch this video to make it a sequence of photos splitting your features across multiple images.
Share

Using the TextHelper with CakePHP

Really, the TextHelper?  Yes, this is probably one of the most overlooked helpers in CakePHP.  Sure we all know about the HTML Helper, Form Helper, JS Helper, etc… but how many of us use the Text Helper?  I’ve seen so many custom functions for truncating text and adding an ellipsis (…) to the end of it.  How about replacing email addresses with links?  Etc…  No more I say!  Let’s begin explorining the Text Helper now. Read more »

Share

Maintaining a session in a session-less environment

Confused?  I know I was at first, but let me explain.  First, why would there be a session-less environment?  I thought this was a HUGE plus to server-side development languages over basic HTML that is session-less?  Well, you would be right in that sense; however, as I mentioned in a recent blog that I’ve switched careers and I am currently doing server-side game development for large Facebook Virtual Worlds.  The client/server relationship in these games are completely session-less.  Each time the client performs an action, the server doesn’t “know” who they are because it’s not a consistent relationship like a browser and a web server.

Don’t worry, there is a simple solution to this problem, let’s explore it now. Read more »

Share

Speeding up client/server response times

In the past 6 months I’ve switched jobs from being a web developer to being a server side game developer.  So far it’s been an excellent career shift.  I get to focus on my true passions, intelligent back-end code and no longer having to waste my time with frustrating design challenges (there is a separate team that does that).

Having said that, when developing large Facebook virtual worlds, there are a lot of client/server communication.  For example, each time someone buys something, each time you buy something, etc…  Currently, a lot of games wait for the server to respond, but why should we?  There are a lot of server calls that are done for informational purposes; just to keep the database up-to-date.  So I ask you, why should the end user wait for the server to catch up?  Let’s examine a simple approach to alleviate the need for the client to wait. Read more »

Share

Modifying the CakePHP Bakery Templates

One of the keys to a successful website is a good user flow.  What defines a good user flow?  At the very core, it requires simple navigation, being able to find what you’re looking for, and being able to do it quickly.  CakePHP’s bakery let’s you quickly create websites that list, add, edit, and delete data.  All you need to do is create a database table and run a few simple bakery commands and this will be done for you.

The basic templates provided are pretty good.  They include links to do all of the above as well as pagination and sortable headers on the table listing page.  I find them a little bland and very “techie”.  Most customers don’t like this, so let’s alter them to suit are needs. Read more »

Share

Maintaining the back button with AJAX

Last week I blogged about whether or not you can use too much AJAX on your website.  The short answer was no; with one caveat being that you must not lose the user interaction experience.  In this scenario I’m referring to the back button.  If the user has “felt” like the content changed, they are likely to click the back button to return.  If they do this, it’s important for them to “go back” to where they “think” they were and not the last page that was loaded without AJAX!  I’ve put together a quick example of how to do this. Read more »

Share

AJAX, can there be too much?

Like any problem, there is no one right solution.  There are always many different solutions that work for different reasons.  Some solutions require the best solution; some solutions require the more optimized solution; other solutions just need to “get done”.

As a developer, I like AJAX.  It’s easy to develop and it makes for a really good user flow.  No more loading new pages to add comments or view the description of a product.  It can all be done with a smooth interface and less waiting.

But, can you have too much AJAX?

Read more »

Share

Making Money With Flash Games

There are a few different ways to make money with Flash games.  In today’s article I will discuss the simplest way.  It requires no development and no Flash skills.  It does require a bit of investment (not a lot though) and some search engine optimization (SEO) skills. Read more »
Share

Buy one of my books