<?xml version='1.0' encoding='windows-1252'?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/'><id>tag:blogger.com,1999:blog-4036595</id><updated>2008-06-18T11:48:59.889+10:00</updated><title type='text'>freaksauce</title><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default?start-index=26&amp;max-results=25'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>445</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4036595.post-9142286021567249366</id><published>2008-06-18T11:41:00.004+10:00</published><updated>2008-06-18T11:48:59.918+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='jquery'/><title type='text'>Reset Select Element with jQuery</title><content type='html'>I was just using &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; in an application I'm building to clone a table row which includes a couple of select elements which are preselected when the page loads. Now when I clone the row I want a clean sheet so both selects need to be reset and the input needs to be cleared too. The input is easy, you simple reference the input and set val(""). In my example I store the cloned row in a variable called newTR and then find the input that I want to clear like so:&lt;br /&gt;&lt;br /&gt;$(newTR).find('.hours').val("");&lt;br /&gt;&lt;br /&gt;However I was trying to reset the select elements like this:&lt;br /&gt;&lt;br /&gt;$(newTR).find('.sel_projects').selectedIndex = -1;&lt;br /&gt;&lt;br /&gt;This wasn't showing an errors in &lt;a href="http://getfirebug.com/"&gt;Firebug&lt;/a&gt;, it simply wasn't working. After a bit of research I found the answer. Due to jQuery's chaining mechanism you need to use either the get() method or reference the jQuery object by it's array shortcut to get to the actual DOM element. Like this:&lt;br /&gt;&lt;br /&gt;$(newTR).find('.sel_projects').get(0).selectedIndex = -1;&lt;br /&gt;&lt;br /&gt;OR&lt;br /&gt;&lt;br /&gt;$(newTR).find('.sel_projects')[0].selectedIndex = -1;&lt;br /&gt;&lt;br /&gt;Easy when you know how!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/06/reset-select-with-jquery.html' title='Reset Select Element with jQuery'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=9142286021567249366' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/9142286021567249366'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/9142286021567249366'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-2848683157355514832</id><published>2008-05-23T08:06:00.002+10:00</published><updated>2008-05-23T08:10:12.643+10:00</updated><title type='text'>Multiplayer API for Flash developers</title><content type='html'>&lt;a href="http://nonoba.com"&gt;Nonoba.com&lt;/a&gt; have just released details for their Multiplayer Flash games API for Flash developers. This should allow pretty much anybody with rudimentary flash skills to create multiplayer games, without any hosting costs.&lt;br /&gt;&lt;br /&gt;The API supports the full range of multiplayer games, from simple turn based games to more complicated real-time games. To show these capabilities, they have released a new game called Nonoba Racer.  They have also ported some of our old creations to act as examples in the SDK, such as Fridge Magnets, Multiplayer Asteroids and DrawPad.&lt;br /&gt;&lt;br /&gt;Since they're so confident that they're on the right path with their Multiplayer API, they're also announcing their first big game competition with $20.000 USD in prices and a first price of $15.000 USD, for the best game to be built on the Multiplayer API.&lt;br /&gt;&lt;br /&gt;Sign up for beta access at: &lt;a href="http://nonoba.com/developers/multiplayerapi/signup"&gt;Signup&lt;/a&gt;, and get more info at:&lt;br /&gt;&lt;a href="http://nonoba.com/developers/multiplayerapi/overview"&gt;Overview&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/05/multiplayer-api-for-flash-developers.html' title='Multiplayer API for Flash developers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=2848683157355514832' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2848683157355514832'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2848683157355514832'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-6870525301031972189</id><published>2008-02-28T10:22:00.002+11:00</published><updated>2008-02-28T10:32:04.785+11:00</updated><title type='text'>PHP variable variables</title><content type='html'>I always get stuck on one problem with PHP and that is referencing dynamically created array variables. Imagine I have an array of values, say country codes: 'uk,us,de,es' and I want to output data into array variables that have the name $array_countrycode.&lt;br /&gt;&lt;br /&gt;It took me a while to get to the bottom of this, I knew it had something to do with Variable Variables but the documentation doesn't really cover this kind of example. Eventually I found the solution I was looking for:&lt;br /&gt;&lt;br /&gt;${"array_{$code}"}&lt;br /&gt;&lt;br /&gt;I have the country codes stored in an array which I loop through:&lt;br /&gt;&lt;br /&gt;$country_codes = array("au","de","es","fr","it","nl","uk","us");&lt;br /&gt;foreach($country_codes as $code) { &lt;br /&gt;    // then I can reference the array to do whatever I like&lt;br /&gt;    ${"array_{$code}"}&lt;br /&gt;    // would reference $array_au, $array_de etc.&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;This might be old news to some people but it had me scratching my head for quite a while!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/02/php-variable-variables.html' title='PHP variable variables'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=6870525301031972189' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6870525301031972189'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6870525301031972189'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-2597888477700507417</id><published>2008-02-01T11:16:00.000+11:00</published><updated>2008-02-01T11:22:15.833+11:00</updated><title type='text'>Codeigniter 1.6.0 is here!</title><content type='html'>It's been quite a long time since the last update but it sounds like &lt;a href="http://codeigniter.com/news/codeigniter_1_6_hits_the_streets/"&gt;Codeigniter&lt;/a&gt; is going to become more of a development focus now that &lt;a href="http://www.expressionengine.com"&gt;Expression Engine 2.0&lt;/a&gt; is nearly ready. With the release of &lt;a href="http://codeigniter.com/news/codeigniter_1_6_hits_the_streets/"&gt;Codeigniter 1.6.0&lt;/a&gt; comes a host of new features including &lt;a href="http://codeigniter.com/user_guide/database/forge.html"&gt;DBForge class&lt;/a&gt; which is a complete database utility package. &lt;br /&gt;&lt;br /&gt;To see what has changed check out the &lt;a href="http://codeigniter.com/user_guide/changelog.html"&gt;changelog&lt;/a&gt;, this has all the new features as well as bug fixes listed. Upgrading from a previous version of Codeigniter is simple just follow &lt;a href="http://codeigniter.com/user_guide/installation/upgrading.html"&gt;these instructions&lt;/a&gt; and make sure you back up any modules, plugins or libraries that you have added in case you overwrite anything! To download the new versionI head to the main &lt;a href="http://codeigniter.com/"&gt;codeigniter&lt;/a&gt; site.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/02/codeigniter-160-is-here.html' title='Codeigniter 1.6.0 is here!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=2597888477700507417' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2597888477700507417'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2597888477700507417'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-9182211353767604768</id><published>2008-01-26T14:56:00.000+11:00</published><updated>2008-01-26T15:03:16.209+11:00</updated><title type='text'>Speed up your CI development</title><content type='html'>I just had &lt;a href="http://lifewithryan.com/"&gt;Ryan&lt;/a&gt; post a comment on an old &lt;a href="http://www.codeigniter.com"&gt;Code Igniter&lt;/a&gt; post and I thought it was worthy of a mention in its own right. &lt;br /&gt;&lt;br /&gt;Ryan has created something called &lt;a href="http://ignition.lifewithryan.com/"&gt;Ignition&lt;/a&gt; which is a CRUD creator for Codeigniter. "&lt;i&gt; What you don't like is writing the same mundane things over and over again for each object in your project. For instance, you have to write all the create, update, delete code in your model...for every model..., then all the create, view, list, update, views for those models, and finally a controller to wire them all together&lt;/i&gt;". &lt;br /&gt;&lt;br /&gt;Ryan has made sure Ignition makes no assumptions, it only handles the really mundane parts of the code and leaves the developers to decide for themselves how to implement authentication, or include AJAX functionality. So if you are fed up with always creating the same bits of code and what to add the "rapid" back into RAD, check it out at &lt;a href="http://ignition.lifewithryan.com"&gt;ignition.lifewithryan.com&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/01/speed-up-your-ci-development.html' title='Speed up your CI development'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=9182211353767604768' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/9182211353767604768'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/9182211353767604768'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-5931792932451929471</id><published>2008-01-16T21:27:00.000+11:00</published><updated>2008-01-16T21:40:45.945+11:00</updated><title type='text'>Winesocial.com.au is live</title><content type='html'>I'm a little late announcing this on freaksauce but I just launched &lt;a href="http://www.winesocial.com.au"&gt;winesocial.com.au&lt;/a&gt; which is a joint venture with my wife and something we feel will grow into a fantastic site for Australian and New Zealand wine lovers. The site is a community based wine review site where members can write a quick review and rate a bottle they've recently tried. The idea is that people in Australia and New Zealand can use the site as a resource for new wines to try. The site also features sections such offers, latest releases and gourmet food products which showcase the latest food &amp; wine products on offer as well as accommodation and event information. &lt;br /&gt;&lt;br /&gt;The site was built using &lt;a href="http://www.codeigniter.com"&gt;CodeIgniter 1.5.4&lt;/a&gt; and &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt;, I'm actually using version 1.1.4 as the latest version seemed to break the rating plugin that I am using, I hope to rectify this problem at some stage.&lt;br /&gt;&lt;br /&gt;Aside from the main &lt;a href="http://www.winesocial.com.au"&gt;winesocial.com.au&lt;/a&gt; site there is also &lt;a href="http://blog.winesocial.com.au"&gt;a blog&lt;/a&gt; which uses &lt;a href=""&gt;Expression Engine 1.6.1&lt;/a&gt; as I figured there was no point reinventing the wheel, I use EE on my other site &lt;a href="http://www.guitarnoize.com"&gt;Guitar Noize&lt;/a&gt; and love the flexibility that it provides, especially as I am a php developer.&lt;br /&gt;&lt;br /&gt;So if you are an Aussie or Kiwi who loves some home grown wine or if you're simply just curious, check out &lt;a href="http://www.winesocial.com.au"&gt;winesocial.com.au&lt;/a&gt;. By the way if you are an Aussie or New Zealand resident you are eligible to enter &lt;a href="http://www.winesocial.com.au/competitions"&gt;our competition&lt;/a&gt;, it's very easy you just need to sign up as a member to be entered into the draw!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2008/01/winesocialcomau-is-live.html' title='Winesocial.com.au is live'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=5931792932451929471' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5931792932451929471'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5931792932451929471'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-6235313823485105213</id><published>2007-10-03T12:29:00.000+10:00</published><updated>2007-10-03T12:44:34.153+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Expression Engine'/><title type='text'>Creating a Blogroll in Expression Engine</title><content type='html'>Having successfully migrating my &lt;a href="http://www.guitarnoize.com"&gt;Guitar Noize&lt;/a&gt; weblog over to &lt;a href="http://www.expressionengine.com"&gt;Expression Engine&lt;/a&gt; I wanted to create a list of links to my favourite guitar related blogs. At first I looked into creating a Blogroll weblog in EE and creating a new template which output the entries which would then be embedded into another template but then I came across this perfect and comprehensive module called &lt;a href="http://haroblogger.com/index.php/docs/linklist#parameter_top"&gt;Link List&lt;/a&gt;. It is very easy to install just download the zip and copy 3 files across to your EE installation, then in your EE control panel Modules tab click on Install next to the Link List module and you're ready to go.&lt;br /&gt;&lt;br /&gt;From there on its just a case of clicking on the LinkList module, add a load of links and then put some code into your template. The code you will need is:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;ul&amp;gt;&lt;br /&gt;{exp:linklist:entries linklist="blogroll" orderby="random" dynamic="off"}&lt;br /&gt;    &amp;lt;li&amp;gt;&amp;lt;a href="{linklist:url}"&amp;gt;{linklist:url_title}&amp;lt;/a&amp;gt;&amp;lt;/li&amp;gt;&lt;br /&gt;{/exp:linklist:entries}&lt;br /&gt;&amp;lt;/ul&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;When I created a new Linklist I called it blogroll hence the &lt;em&gt;linklist&lt;/em&gt; attribute above. Also I want the links to display randomly but you can order by &lt;em&gt;url_title&lt;/em&gt; or &lt;em&gt;desc&lt;/em&gt; etc, you can &lt;em&gt;sort&lt;/em&gt; ASC or DESC and you can use &lt;em&gt;limit&lt;/em&gt; and &lt;em&gt;paginate&lt;/em&gt; if you only want to display a few. One thing to be aware of is the &lt;em&gt;dynamic&lt;/em&gt; attribute, if this is a static blogroll like mine set it to "off" otherwise it will try and find links based on keywords assigned to them in relation to the url of the page.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/10/creating-blogroll-in-expression-engine.html' title='Creating a Blogroll in Expression Engine'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=6235313823485105213' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6235313823485105213'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6235313823485105213'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-5139786974929905423</id><published>2007-08-25T22:00:00.000+10:00</published><updated>2007-08-25T22:01:11.802+10:00</updated><title type='text'>Apple Mail - Fixing a corrupt mailbox</title><content type='html'>Yesterday my wife's powerbook suddenly decided to not let her launch &lt;a href="http://www.apple.com/macosx/features/mail/"&gt;Mail&lt;/a&gt;. She was confronted with the error message, "mail cannot update your mailboxes because your home directory is full". I'd never come across this message before in the 5 or 6 years that I have been using OS X so I turned to &lt;a href="http://www.google.com"&gt;Google's&lt;/a&gt; wisdom to help me fix the problem. It didn't take me long to come across the fix for this error on &lt;a href="http://www.hawkwings.net"&gt;Hawkwings.net&lt;/a&gt; which by the way is a very useful site for tips and tricks on &lt;a href="http://www.apple.com/macosx/features/mail/"&gt;Apple mail&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;Now the basic fix is mentioned &lt;a href="http://www.hawkwings.net/2006/02/01/the-dreaded-your-home-directory-is-full-message/"&gt;here&lt;/a&gt; which involves removing the 'Envelope index' file from your ~/Library/Mail folder however this didn't fix the problem. I then read the comments and found a message from 'Anne', she explained that simply removing the 'Envelope index' file wasn't enough and she needed to also remove the 'Envelope index journal' file in the same directory. I tried this, opened Mail, let the import run and hey presto! Back up and running.&lt;br /&gt;&lt;br /&gt;I thought this was worth sharing in case others didn't take the time to scan the comments on &lt;a href="http://www.hawkwings.net/2006/02/01/the-dreaded-your-home-directory-is-full-message/"&gt;Hawkwings' site&lt;/a&gt;.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/08/apple-mail-fixing-corrupt-mailbox.html' title='Apple Mail - Fixing a corrupt mailbox'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=5139786974929905423' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5139786974929905423'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5139786974929905423'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-4104146298981373386</id><published>2007-08-12T09:38:00.001+10:00</published><updated>2007-08-12T10:01:22.074+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Code Igniter'/><title type='text'>Code Igniter - Remapping function calls</title><content type='html'>One of the great things about &lt;a href="http://www.codeigniter.com"&gt;Code Igniter&lt;/a&gt; is the fleixibility of the framework. I have recently used CI for a major project for &lt;a href="http://www.westernaustralia.com"&gt;Tourism Western Australia&lt;/a&gt; called &lt;a href="http://westernaustralia.tv"&gt;WATV&lt;/a&gt; which showcases tourism and events in WA through the use of video. The site was built using Code Igniter and &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; for the ajax calls and visual effects. This is the biggest project that I have worked on using Code Igniter so I learned a lot, but one thing I didn't learn until after we had actually finished the development of the first phase was using the _remap() function in the controllers and instead wrote my own code to deal with my custom routing when all the hard work has already been done and exists in the framework so I will need to revise the controllers for the next phase. &lt;br /&gt;&lt;br /&gt;When you are using custom routing you often come across a problem, you have specified that any url parameters after a certain controller name will be used by a certain method, now when you try to introduce another method it gets overidden by your routing. For example say you have a users controller and you want any username after /users/ in your url to look up a user. You could set up a custom route such as:&lt;br /&gt;&lt;br /&gt;$route['users/:any'] = "users/index";&lt;br /&gt;&lt;br /&gt;So now your index method in the users controller will check the url parameter against the user table. Now saw you want to add a method called edit, what will happen?&lt;br /&gt;&lt;br /&gt;/users/edit/username&lt;br /&gt;&lt;br /&gt;Well your route will send edit as a username to your index controller and break your method, so you have to check that the url parameter isn't "edit" and maybe run a different method in your controller:&lt;br /&gt;&lt;br /&gt;if ($username == "edit") {&lt;br /&gt;    $user = $this-&gt;uri-&gt;segment(2);&lt;br /&gt;    $this-&gt;edit($user);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;See how messy this would become one you start adding methods? Well luckily the clever coders who devised CI came up with a simple solution, _remap(). Now instead of using the custom routing you can remove that and set up the _remap() function in your controller:&lt;br /&gt;&lt;br /&gt;function _remap($method)&lt;br /&gt; {&lt;br /&gt;  if ($method == 'edit' || $method == 'update')&lt;br /&gt;  {&lt;br /&gt;   $this-&gt;$method();&lt;br /&gt;  }&lt;br /&gt;  else&lt;br /&gt;  {&lt;br /&gt;   $this-&gt;default_method();&lt;br /&gt;  }&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Now what happens is you override the default controller action by catching the first url parameter and checking if it is a method name or something else like a username and if so calls another method of your choosing! Easy, and a lot cleaner than manually catching each parameter yourself. Hope this helps anyone faced with a similar problem!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/08/code-igniter-remapping-function-calls.html' title='Code Igniter - Remapping function calls'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=4104146298981373386' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4104146298981373386'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4104146298981373386'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-7015727668230161092</id><published>2007-07-19T17:17:00.000+10:00</published><updated>2007-07-19T17:23:07.618+10:00</updated><title type='text'>jQuery - getScript() tip</title><content type='html'>I just came across a problem that drove me crazy for ages. I have an ajax call that updates some content then has to reinitialise the javascript to attach events to the new elements on the page. I use $.getScript() and call the js file, so far so good. The problem I encountered was that everytime I clicked on a tab which called this function and then on a button that I was setting up it was firing multiple times, and incrementing everytime I clicked on a tab which called the $.getScript(). So I figured that somehow the click event was being assigned to my button everytime the script reinitialised. The solution? unbind the problematic event, then when $.getScript() is called the button is reinitialised with the single click event!&lt;br /&gt;&lt;br /&gt;$("#mybutton").unbind()&lt;br /&gt;&lt;br /&gt;Simple when you know how!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/07/jquery-getscript-tip.html' title='jQuery - getScript() tip'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=7015727668230161092' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/7015727668230161092'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/7015727668230161092'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-6640320173290641494</id><published>2007-07-14T17:04:00.000+10:00</published><updated>2007-07-14T17:28:10.594+10:00</updated><title type='text'>GuitarLead.net incremental updates</title><content type='html'>I have just uploaded version 1.1 of &lt;a href="http://www.guitarlead.net"&gt;GuitarLead.net&lt;/a&gt; which now uses my own RSS aggregation method instead of my &lt;a href="http://pipes.yahoo.com"&gt;Yahoo! Pipes&lt;/a&gt; version which was always going to be a temporary measure as it just didn't give me the control over individual feeds that I wanted. The latest version now uses php and mysql to gather feeds instead of having to create an xml file from multiple feeds twice a day. This means that I can handle the different types of feeds that I want aggregrate properly as some use Atom, some use RSS 2.0 and others use older versions of the RSS specification a couple of feeds had to be dropped due to no date node! &lt;br /&gt;&lt;br /&gt;The next step for me is to rebuild &lt;a href="http://www.guitarlead.net"&gt;GuitarLead.net&lt;/a&gt; using &lt;a href="http://www.codeigniter.com"&gt;Code Igniter&lt;/a&gt; so that I can easily extend on site features whenever I want and keep the code nice and tidy. I am currently building 2 major sites with &lt;a href="http://www.codeigniter.com"&gt;Code Igniter&lt;/a&gt; (details soon!) and I'm really enjoying the experience, it not only saves time and repetition of code but it keeps me really organised, something I admit I'm not usually very good at!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/07/guitarleadnet-incremental-updates.html' title='GuitarLead.net incremental updates'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=6640320173290641494' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6640320173290641494'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/6640320173290641494'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-5189988956827614537</id><published>2007-06-23T14:39:00.000+10:00</published><updated>2007-06-23T14:49:50.388+10:00</updated><title type='text'>Unfuddling SVN!</title><content type='html'>When I think Web 2.0 I don't think about fancy Javascript effects and whether the site was developed with Ruby on Rails I expect a site that delivers a complete solution to a problem. Having recently been referred to &lt;a href="http://www.unfuddle.com"&gt;Unfuddle&lt;/a&gt; by my &lt;a href="http://www.soap.com.au"&gt;Soap&lt;/a&gt; colleague &lt;a href="http://www.lostinactionscript.com"&gt;Shane&lt;/a&gt; I was pleasantly suprised how easy hosted SVN could be. For a start the designers have taken the &lt;a href="http://basecamphq.com/"&gt;Basecamp&lt;/a&gt; approach to the user interface, simple tabs take you from milestones to source code to tickets etc. It is really easy to set up and you just need to install an SVN client (I'm using &lt;a href="http://www.lachoseinteractive.net/en/community/subversion/svnx/"&gt;svnX&lt;/a&gt;). Once installed and logged in you're away, you can go to the dashboard to post or read tickets, milestones and messages, you can invite people to contribute to the project, set up new projects and of course most importantly view all code revisions in case you need to roll back or branch your code. Oh and it's pretty cheap too, only $9/month for 10 users working on up to 3 projects so for a small web team this is ideal. You can go unlimited for $99/month but I presume companies with this kind of need will have it's own IT dept. to set up a subversion system for them.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/unfuddling-svn.html' title='Unfuddling SVN!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=5189988956827614537' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5189988956827614537'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/5189988956827614537'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-1374707817686895536</id><published>2007-06-19T08:20:00.000+10:00</published><updated>2007-06-19T08:26:35.426+10:00</updated><title type='text'>Guitar Noize gets a new skin!</title><content type='html'>Thanks to my &lt;a href="http://www.soap.com.au"&gt;Soaperhero&lt;/a&gt; colleague &lt;a href="http://www.ronchydesign.com"&gt;Ron&lt;/a&gt; &lt;a href="http://www.guitarnoize.com"&gt;Guitar Noize&lt;/a&gt; has a brand new '&lt;a href="http://www.cameronmoll.com/archives/000024.html"&gt;wicked worn&lt;/a&gt;' look. I think it looks amazing and it just shows what you can do with &lt;a href="http://www.blogger.com"&gt;Blogger&lt;/a&gt;! I also used &lt;a href="http://www.mikeindustries.com/sifr/"&gt;sIFR&lt;/a&gt; to style the headings the same as here on Freaksauce. It's not 100% perfect yet and I haven't even started up &lt;a href="http://www.parallels.com/"&gt;Parallels 3&lt;/a&gt; yet to test the site in IE6, IE7 or FF on PC so I apologise if things are looking a little weird at the moment!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/guitar-noize-gets-new-skin.html' title='Guitar Noize gets a new skin!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=1374707817686895536' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1374707817686895536'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1374707817686895536'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-1887708703933334358</id><published>2007-06-16T19:22:00.000+10:00</published><updated>2007-06-16T19:26:06.559+10:00</updated><title type='text'>GuitarLead.net launches!</title><content type='html'>I have just put my latest personal project live, &lt;a href="http://www.guitarlead.net"&gt;Guitar Lead&lt;/a&gt; which is inspired by Adobe's MXNA and is a Guitar News Aggregator gathering feeds from across the web and organising them in one easy to read site. Guitar Lead will be constantly evolving over the next few months but I wanted to put it live rather than procrastinating over design features. Anyway I hope the guitarists out there find it useful!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/guitarleadnet-launches.html' title='GuitarLead.net launches!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=1887708703933334358' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1887708703933334358'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1887708703933334358'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-4120076251080706819</id><published>2007-06-12T14:58:00.000+10:00</published><updated>2007-06-12T15:07:52.189+10:00</updated><title type='text'>PHP strtotime()</title><content type='html'>I often forget how powerful the date object is in PHP and usually refer to the documentation to remind myself of how to format dates but one of the things I always forget to use is the &lt;a href="http://au2.php.net/strtotime"&gt;strtotime()&lt;/a&gt; function. This function makes life a lot easier if say for example you need to know what the date was last saturday. This is how you do it:&lt;br /&gt;&lt;br /&gt;$lastSaturday = date('Y-m-d', strtotime('last Saturday'));&lt;br /&gt;&lt;br /&gt;How easy is that?! Ok so what other keywords can I use you might ask?&lt;br /&gt;&lt;br /&gt;this Saturday&lt;br /&gt;first Saturday&lt;br /&gt;second Saturday&lt;br /&gt;third Saturday &lt;br /&gt;fourth Saturday &lt;br /&gt;last Saturday&lt;br /&gt;next Saturday&lt;br /&gt;&lt;br /&gt;But it doesn't stop there, you can also do:&lt;br /&gt;&lt;br /&gt;-3 days last Saturday&lt;br /&gt;+2 days Saturday&lt;br /&gt;-2 weeks Saturday&lt;br /&gt;+2 weels Saturday&lt;br /&gt;&lt;br /&gt;Or maybe you just need to know:&lt;br /&gt;&lt;br /&gt;yesterday&lt;br /&gt;3 days ago&lt;br /&gt;-3 days&lt;br /&gt;tomorrow&lt;br /&gt;+2 days&lt;br /&gt;&lt;br /&gt;You get the picture... &lt;br /&gt;Incredibly useful as you can imagine, for instance if you need to query a table based on how many entries from last monday to next sunday you just use the following variables:&lt;br /&gt;&lt;br /&gt;$lastMonday = date('Y-m-d', strtotime('last Monday'));&lt;br /&gt;$nextSunday = date('Y-m-d', strtotime('next Sunday'));</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/php-strtotime.html' title='PHP strtotime()'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=4120076251080706819' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4120076251080706819'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4120076251080706819'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-1165280938165836050</id><published>2007-06-10T09:09:00.001+10:00</published><updated>2007-06-10T09:14:13.971+10:00</updated><title type='text'>Guitar Noize</title><content type='html'>I have recently started a new blog called &lt;a href="http://guitarnoize.blogspot.com"&gt;Guitar Noize&lt;/a&gt;, it's looking a bit bland at the moment but the design is on the way, a friend is helping out with design duties and I'll unveil the result (and the designer) as soon as it's finished. I'm hoping it will be a candidate for &lt;a href="http://www.cssremix.com/"&gt;CSS Remix&lt;/a&gt; or &lt;a href="http://www.cssbeauty.com"&gt;CSS Beauty&lt;/a&gt;. Also I hope it willl provide a new port of call for guitarists looking for industry news rather than tabs &amp; lessons.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/guitar-noize.html' title='Guitar Noize'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=1165280938165836050' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1165280938165836050'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1165280938165836050'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-3770687593485259328</id><published>2007-06-09T14:08:00.000+10:00</published><updated>2007-06-09T14:19:10.993+10:00</updated><title type='text'>Useful simpleXML article</title><content type='html'>I just came across a &lt;a href="http://www.devshed.com/c/a/PHP/Introducing-SimpleXML-in-PHP-5/"&gt;this useful article&lt;/a&gt; over at &lt;a href="http://www.devshed.com"&gt;DevShed&lt;/a&gt; on PHP 5's simpleXML functions. PHP in my opinion is really lacking in XML support which is weird, but having used coldfusion with xml and seeing how easy it is and I presume it is just as easy in .NET I was suprised at just how difficult it is in PHP. Until recently I have been using PHP4 for almost every project, even though PHP4 is now 7 years old mainly because a lot of hosting providers haven't upgraded but with PHP5 turning 3 I can't see any real reason for this, especially when it is open source?! &lt;br /&gt;&lt;br /&gt;Anyway, ranting aside the SimpleXML functions certainly take some of the pain out of parsing an XML document and &lt;a href="http://www.devshed.com/c/a/PHP/Introducing-SimpleXML-in-PHP-5/"&gt;this article&lt;/a&gt; has a nice XMLParser class for you to use. One thing to note, if you are using their example:&lt;br /&gt;&lt;br /&gt;foreach($nodes as $node){&lt;br /&gt;    echo 'Postal address: '.$node-&gt;address.'&lt;br /&gt;';&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;and want to know how to save the addresses to an array to use later on I found that you have to cast the $node-&gt;address as a string like this:&lt;br /&gt;&lt;br /&gt;$addresses = array();&lt;br /&gt;foreach($nodes as $node){ &lt;br /&gt;    echo 'Postal address: '.(string) $node-&gt;address.'&lt;br /&gt;';&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;hope this helps.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/useful-simplexml-article.html' title='Useful simpleXML article'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=3770687593485259328' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/3770687593485259328'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/3770687593485259328'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-1087167155766336925</id><published>2007-06-07T16:32:00.000+10:00</published><updated>2007-06-07T16:37:20.262+10:00</updated><title type='text'>Slight Pipes upgrade</title><content type='html'>I was playing around with &lt;a href="http://pipes.yahoo.com/pipes/"&gt;Yahoo Pipes&lt;/a&gt; when all of a sudden it went down, now I realise why. The site has received a slight UI upgrade the landing page is a bit nicer to look at although I'm not sure about the "Hot Pipes" heading!? The Browse and My Pipes share a much clearer view now too, with nice rollover submenu on each Pipe.&lt;br /&gt;As for the editor, well so far I haven't noticed any visual upgrades.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/slight-pipes-upgrade.html' title='Slight Pipes upgrade'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=1087167155766336925' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1087167155766336925'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1087167155766336925'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-2071837404437370075</id><published>2007-06-03T21:44:00.000+10:00</published><updated>2007-06-03T21:51:45.787+10:00</updated><title type='text'>Online - offline...make your mind up!</title><content type='html'>An interesting view of the recent announcements from &lt;a href="http://labs.adobe.com/wiki/index.php/Apollo"&gt;Adobe&lt;/a&gt;, &lt;a href="http://silverlight.net/"&gt;Microsoft&lt;/a&gt; and &lt;a href="http://gears.google.com/"&gt;Google&lt;/a&gt; for web application offline storage capabilities.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.winextra.com/2007/06/02/oh-the-irony-of-it-all/"&gt;Oh the irony of it all&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/06/online-offlinemake-your-mind-up.html' title='Online - offline...make your mind up!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=2071837404437370075' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2071837404437370075'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/2071837404437370075'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-4076969568179000427</id><published>2007-05-30T08:50:00.000+10:00</published><updated>2007-05-30T09:05:12.082+10:00</updated><title type='text'>Coda</title><content type='html'>I have been using &lt;a href="http://www.panic.com/coda"&gt;Coda&lt;/a&gt; for a few days now and it's really growing on me. First of all I have to add that my usual setup is &lt;a href="http://macromates.com/"&gt;Textmate&lt;/a&gt;/&lt;a href="http://www.skti.org/skEdit.php"&gt;skEdit&lt;/a&gt; for html/php and &lt;a href="http://macrabbit.com/cssedit/"&gt;CSSEdit&lt;/a&gt; for you guessed itl... CSS! Now I'm not going to say I'm immediately dropping everything and switching to Coda but so far it's looking very promising. The site management is better than any other editor due to their expertise in the field with &lt;a href="http://www.panic.com/transmit"&gt;Transmit&lt;/a&gt;, this is a big incentive, secondly it works really well as an html editor an area where Textmate really falls down, the autocompletion is excellent (that goes for when you are in php syntax mode too!) and by highlighting a tag, function or whatever and hitting a quick keyboard shortcut you are taken to the relevant entry in the corresponding reference book which opens in a new tab. Very nice. &lt;br /&gt;&lt;br /&gt;The only thing I haven't played with yet is the CSS editor and I have to admit I love &lt;a href="http://macrabbit.com/cssedit/"&gt;CSSEdit&lt;/a&gt; so I'm not sure I'll make the switch just yet but I have to admit it looks pretty good and having everything in one application like my old Dreamweaver days does seem quite enticing!&lt;br /&gt;&lt;br /&gt;The development is obviously ongoing and I think in time this will become the standard Mac editor for web development I recently emailed the team with a feature request and have already had a response saying they are already working on it, I think this is defintely an application that I will be buying once the trial is up!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/05/coda.html' title='Coda'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=4076969568179000427' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4076969568179000427'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4076969568179000427'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-3768982366002522056</id><published>2007-03-28T09:35:00.000+10:00</published><updated>2007-03-28T09:41:32.658+10:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='3 Mobile'/><title type='text'>X-Series is live</title><content type='html'>I have been involved with &lt;a href="http://www.three.com.au"&gt;3 Mobile&lt;/a&gt; for about 6 months now at &lt;a href="http://www.soap.com.au"&gt;Soap&lt;/a&gt; and yesterday marked the launch of their new service &lt;a href="http://xseries.three.com.au/xseries/"&gt;X-Series&lt;/a&gt;, I'll leave it to the site description itself to explain X-Series:&lt;br /&gt;&lt;br /&gt;"In a nutshell X-Series from 3 combines the very best that a mobile and the internet has to offer, packaging it together to deliver your online world - mobile."&lt;br /&gt;&lt;br /&gt;Everyone involved at &lt;a href="http://www.soap.com.au"&gt;Soap&lt;/a&gt; have worked very hard to make this site look and feel great without compromising web standards integrity. The site also degrades gracefully for non-flash and non-javascript users.&lt;br /&gt;&lt;br /&gt;My Soap colleague &lt;a href="http://lostinactionscript.com/blog/index.php/2007/03/27/3x-x-series-threes-answer-for-premium-3g-mobile-services/"&gt;Shane&lt;/a&gt; has some more details &lt;a href="http://lostinactionscript.com/blog/index.php/2007/03/27/3x-x-series-threes-answer-for-premium-3g-mobile-services/"&gt;here&lt;/a&gt;</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/03/x-series-is-live.html' title='X-Series is live'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=3768982366002522056' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/3768982366002522056'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/3768982366002522056'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-1924288996736283071</id><published>2007-03-20T10:04:00.000+11:00</published><updated>2007-03-20T10:10:58.274+11:00</updated><title type='text'>Validating credit card numbers using the Luhn Algorithm</title><content type='html'>I hadn't ever needed to validate a credit card with Javascript until the other day and the client requested that I used Luhn's algorithm so I quickly googled it to find out what exactly this algorithm was! &lt;br /&gt;&lt;br /&gt;&lt;a href="http://en.wikipedia.org/wiki/Luhn_algorithm"&gt;Here is Wikipedia's article&lt;/a&gt; to give you some background and an explanation and then &lt;a href="http://www.the-art-of-web.com/javascript/validate/3/"&gt;here is a javascript version&lt;/a&gt; of the Luhn or Mod 10 algorithm. There are are a few versions out there, &lt;a href="http://www.matthom.com/archive/2005/12/22/validating-credit-card-numbers-the-luhn-algorithm"&gt;here is one&lt;/a&gt;, and they all do a very basic test. Obviously they don't actually check that this is a valid card number!</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/03/validating-credit-card-numbers-using.html' title='Validating credit card numbers using the Luhn Algorithm'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=1924288996736283071' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1924288996736283071'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/1924288996736283071'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-4362811397134384300</id><published>2007-03-18T10:49:00.000+11:00</published><updated>2007-03-18T11:09:21.805+11:00</updated><title type='text'>DTV - TV on t'internet!</title><content type='html'>Not long ago I downloaded and installed &lt;a href="http://www.getdemocracy.com/"&gt;Democracy&lt;/a&gt; (which will soon be renamed to Miro) as it touted 1000's of free channels. I have to say, and I don't mean to sound like a snob, the content was pretty crappy. I think I was hoping for commercial quality programming and I was jumping the gun a bit... maybe. Anyway today I received an invite to try the Beta of &lt;a href="https://www.joost.com/"&gt;Joost&lt;/a&gt;, (formerly the Venice Project) which is the new venture, in case you haven't heard, from the guys who brought you Skype. Because of my somewhat unsuccessful conversion to Democracy I wasn't really expecting much but I think Joost is actually more of what I was looking for in the first place. The app (at least the Mac version) runs full screen with all the usual fancy OS X interface features and is very simple to use, the selection menus are similar to Front Row/iPod and the winning factor... the first show I selected to try was &lt;a href="http://fifthgear.five.tv/"&gt;Fifth Gear&lt;/a&gt; which had a whole load of clips to watch, there is also a Warner Bros. channel, National Geographic, Saturday Morning TV (loads of old cartoons like Rocky &amp; Bullwinkle) etc.&lt;br /&gt;&lt;br /&gt;This is exactly the kind of thing I was hoping for with Democracy and if this is all legit content I think that it will be a very popular application.</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/03/dtv-tv-on-tinternet.html' title='DTV - TV on t&apos;internet!'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=4362811397134384300' title='1 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4362811397134384300'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/4362811397134384300'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-7244350224729968242</id><published>2007-03-12T11:55:00.000+11:00</published><updated>2007-09-01T08:55:20.125+10:00</updated><title type='text'>Simple Jquery rollovers</title><content type='html'>I've been using &lt;a href="http://www.jquery.com"&gt;jQuery&lt;/a&gt; for a while now on a few projects and thought I would share a simple rollover snippet that I created. Simply add the class 'rollover' to an anchor tag surrounding an image you wish to add the hover event to and make sure you have saved an image with the same name + '_o' (eg. home.gif &amp; home_o.gif) in the same directory (obviously this is pretty easy to modify) and voila! A nice unobtrusive rollover script. I also created a preloader based on the same concept. If anyone has a better way of doing this please leave a comment, I'd be interested to see if it can be improved.&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$(".rollover").hover(&lt;br /&gt;  &amp;nbsp;function() {&lt;br /&gt;    &amp;nbsp;&amp;nbsp;curr = $(this).find("img").attr("src");&lt;br /&gt;    &amp;nbsp;&amp;nbsp;overlen = curr.length;&lt;br /&gt;    &amp;nbsp;&amp;nbsp;over = curr.substr(0, overlen-4);&lt;br /&gt;    &amp;nbsp;&amp;nbsp;over = over+'_o.gif';&lt;br /&gt;    &amp;nbsp;&amp;nbsp;$(this).find("img").attr({ src: over});&lt;br /&gt; &amp;nbsp;},&lt;br /&gt; &amp;nbsp;function() {&lt;br /&gt;    &amp;nbsp;&amp;nbsp;$(this).find("img").attr({ src: curr});&lt;br /&gt; &amp;nbsp;}&lt;br /&gt;)&lt;br /&gt;&lt;br /&gt;$(".rollover").find("img").each(function(i) {&lt;br /&gt;   &amp;nbsp;&amp;nbsp;temp = this.src;&lt;br /&gt;  &amp;nbsp;&amp;nbsp;prelen = temp.length;&lt;br /&gt;   &amp;nbsp;&amp;nbsp;pre = temp.substr(0, prelen-4);&lt;br /&gt;   &amp;nbsp;&amp;nbsp;pre = pre+'_o.gif';&lt;br /&gt;   &amp;nbsp;&amp;nbsp;preload_image_object = new Image();&lt;br /&gt;   &amp;nbsp;&amp;nbsp;preload_image_object.src = pre;&lt;br /&gt;});&lt;br /&gt;&lt;/code&gt;</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/03/simple-jquery-rollovers.html' title='Simple Jquery rollovers'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=7244350224729968242' title='7 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/7244350224729968242'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/7244350224729968242'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry><entry><id>tag:blogger.com,1999:blog-4036595.post-837244964509002678</id><published>2007-03-10T09:39:00.000+11:00</published><updated>2007-03-12T11:40:47.450+11:00</updated><title type='text'>Personalised content</title><content type='html'>It's funny I was just reading &lt;a href="http://www.downloadsquad.com/2007/03/09/yahoo-knows-whats-best-for-you-no-really/"&gt;this article&lt;/a&gt; about Yahoo's new My Yahoo! personalised content and how "Personalized start pages are all the rage these days" and yet one of the things we did when I was working for Teletext (UK) back in 2000 was to create personalised content based on your interests and that was 7 years ago! I was a mere html programmer back then so I had no actual hand in the development process but I could see the advantage of having the homepage only showing content that was of interest. It's a shame Teletext turned into a glorified travel agent...</content><link rel='alternate' type='text/html' href='http://www.freaksauce.com/blog/2007/03/its-funny-i-was-just-reading-this.html' title='Personalised content'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4036595&amp;postID=837244964509002678' title='0 Comments'/><link rel='replies' type='application/atom+xml' href='http://www.freaksauce.com/blogger_rss.xml' title='Post Comments'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/837244964509002678'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4036595/posts/default/837244964509002678'/><author><name>Jon</name><uri>http://www.blogger.com/profile/06118990371008347730</uri><email>noreply@blogger.com</email></author></entry></feed>