
ajax analysis api apple atom automator backpack browsers camping cheatsheets code console editors ergonomics gems google helipad hpricot internationalisation javascript lies mac optimisation patterns performance personal php plugins productivity programming prototype rails rapidrails rsi rss ruby server snippets standards sysadmin terminal testing textile textmate theory tips tools vim workshops writing xslt
Sometimes you need to display collated data on a page. For example, Basecamp has a useful dashboard which displays all the latest activity across all your projects. I’ve been working on an application that provides Basecamp access to mobile devices, and I realised that reproducing this dashboard would be far too API-intensive to be usable.
It can take anything from 20-1000ms to complete a request using the API, depending on the number of hops the request goes through over the network and how fast the application at the other end responds. So if you want to gather the data Basecam…
If you wanted to develop a Google Home module that accesses a service using a password, you might notice a few flaws:
There isn’t a password type available, so any user preferences that require a password will display the password in plain text.
If you still want to store passwords in user preferences, be aware that every single time Google Home loads, it will fetch the module with the password in plain text in the GET request.
It would be nice if Google introduced a ‘password’ type, to compliment the existing types for preferences. This would at least allow you to have a starre…
It didn’t take me long, and I knew I wouldn’t be able to go for a few hours without writing a basic plugin for Google Home.
I always wanted to have a del.icio.us search box in a panel with my latest bookmarks, so I wrote this:
Once you’ve added it to your homepage, you can enter your delicious username, and it displays your latest links using raw JSON:
_IG_FetchContent('http://del.icio.us/feeds/json/' + prefs.getString('username') + '?raw', function (responseText)
{
posts = eval('(' + responseText + ')')
for (var i=0, post; post = posts[i]; i++...