The Pandora…

…the most powerful gaming handheld there is….
- ARM® Cortex™-A8 600Mhz+ CPU running Linux
- 430-MHz TMS320C64x+â„¢ DSP Core
- PowerVR SGX OpenGL 2.0 ES compliant 3D hardware
- 800×480 4.3" 16.7 million colours touchscreen LCD
- Wifi 802.11b/g, Bluetooth & High Speed USB 2.0 Host
- Dual SDHC card slots & SVideo TV output
- Dual Analogue and Digital gaming controls
- 43 button QWERTY and numeric keypad
- Around 10+ Hours battery life
Now, I’ll need some more freelance work to get my hands on one of these.
Found this ERB for jQuery script this morning from Dan Webb
http://gist.github.com/211964
// ERB style templates for jQuery in hardly any code.
//
// Based on http://ejohn.org/blog/javascript-micro-templating/
//
// A tiny and simple plugin to allow erb style template rendering within jQuery.
//
// Make a template:
//
// <script type="text/html" id="template1">
// <% $.each(items, function(i, image) { %>
// <p><img src="<%= image.media.m %>" alt="<%= image.title %>"></p>
// <% }); %>
// </script>
//
// Render the template into the dom with some data:
//
// <script type="text/javascript">
// jQuery(function($) {
// $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?tags=jordan%20III&format=json&jsoncallback=?", function(data) {
// $('#test').render('template1', data);
// });
// });
// </script>
//
// Alternatively, you can load templates from files:
//
// $('#test').render('template.ejs', data);
jQuery(function($) {
var cache = {};
function compile(source) {
return new Function("obj",
"var p=[],print=function(){p.push.apply(p,arguments);};" +
"with(obj){p.push('" +
source
.replace(/[\r\t\n]/g, " ")
.split("<%").join("\t")
.replace(/((^|%>)[^\t]*)'/g, "$1\r")
.replace(/\t=(.*?)%>/g, "',$1,'")
.split("\t").join("');")
.split("%>").join("p.push('")
.split("\r").join("\\'")
+ "');}return p.join('');");
}
function load(template) {
if (!(/\W/).test(template)) {
return compile($("#" + template).html());
} else {
var source;
$.ajax({
async: false,
url: template,
dataType: 'text',
success: function(data) {
source = data;
}
});
return compile(source);
}
}
$.template = function(template, data) {
var fn = cache[template] = cache[template] || load(template);
if (data) return fn(data);
}
$.fn.render = function(str, data) {
return this.each(function() {
$(this).html($.template(str, data));
});
};
});
I found this little gem in a bog standard boring, run of the mill newsagents in Berlin, Zoologischer Garten. Perhaps Germany is more tech friendly but having monthly Ruby on Rails, PHP, .Net and Java monthlies is is quite crazy for what would be a small readership.

Available at http://it-republik.de/railsway/magazin-ausgaben/Ruby-on-Rails-000281.html
Nice little and verbose script to aid with the creation of remote git repos.
http://blog.carlmercier.com/2008/01/25/no-nonsense-git-part-1-git-remote-branch/
git-remote-branch create sv1.8
or to track an already existing remote branch
git branch --track sv1.8 origin/sv1.8
Why does IE8 ignore this, grrrrrrrrr.
<!--[if lt IE 8]>
<script src="http://oursite.com/ie8.min.js" type="text/javascript"></script>
<![endif]-->
It seems that the ie8.js script doesn’t like being used inside a frame.
http://dean.edwards.name/weblog/2008/01/ie7-2/
Hi dean,
First of all great work. I have a problem when I use your script inside a frame (ugly, I know). I get a permission denied on ‘if(/ie7_off/.test(top.location.search)||k<5)’.
Any thoughts on a quick fix?
Thanks, Ronald Moolenaar
I really do love the way you can add defaults in YAML
development: &defaults
consumer_key: randomzombieaction
consumer_secret: morerandomzombieaction
test:
<<: *defaults
staging:
<<: *defaults
production:
<<: *defaults
Knocked this one up earlier today to get my Songkick gig listings on this here blog. Maybe its just the novelty of having some gigs to go to and a bit of showing off that we’re running off to Germany for 11 days of mayhem and we’ve not learned how to speak the language yet.
$(document).ready(function () {
var template = "<li><a href='{uri}'>{displayName}</a></li>";
var apikey = '<your apikey>';
var container = $("ul#concerts");
$.getJSON('http://api.songkick.com/api/3.0/users/<your songkick username>/events.json?apikey=' + apikey + '&jsoncallback=?', function(data) {
container.html("");
events = data["resultsPage"]["results"]['event'];
$.each(events.reverse(), function() {
container.append($.nano(template, this));
});
});
});