Finally Some Time for JacobSix

I finally had a little bit of time this weekend to work on JacobSix.  You can read about the changes at my latest post on the JacobSix blog.

JacobSix is a simple project management tool I created for myself and anyone else who wants to use it.  It's purposely simple and easy to use.  This weekend, I improved the performance of the Action lists a bit as well as cleaned up some of the page refresh.  Check out JacobSix at http://www.jacobsix.com.  Let me know what you think.

Now for the technical talk.  If you aren't technical or do not care about development, no need to continue…

The page refresh was not clean and would show the raw HTML an instant before it displayed the jQuery UI tab control in the project page.  Apparently, it's best to set the DIV element for the tab to "display:hidden" before you render the tabs using jQuery UI.  Once the tab is created, you can then set $('#tab').show().

Performance improvement was a bit trickier.  Google App Engine's ReferenceProperty is very useful.  However, when you use it to get the value of the referenced property value, GAE executes a query for that property.  If you query and get 25 results, then if you refer to the property in each of those 25 results you query the data store 25 times for each property.  Things slow down pretty quick the more ReferenceProperty types you have.  So, to solve it, I need to store the value I want from each of the referenced properties with the parent Model itself.  I then need to update the local copy whenever the actual data changes.  So much for data normalization, but this shows that you need to do what it takes to make things perform.

Advertisement

~ by bvelasquez on March 14, 2010.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Connecting to %s

 
Follow

Get every new post delivered to your Inbox.