November 2009
1 post
Christmas eBook Reader Recommendations
This list of ebook reader recommendations on Teleread is interesting food for thought:
“There are no bad readers out there, at least as far
as I have seen, so I don’t think you’ll go wrong no matter which one you choose”
I wrote a big introduction to the world of ebooks back in May, and I still generally read on my iPhone. I’m looking forward to testing a Kindle now...
September 2009
1 post
Kev's PSP Money Saving Idea
The PSP is about to go serious on digital distribution with the release of the UMD-less PSP Go. This is great for convenience because you can buy games right from your PSP using the PlayStation Store. However, what’s not great is the price of memory sticks.
Here are the current prices on Amazon.co.uk:
Memory Stick Pro Duo 2 8GB: ~£20
16GB: ~£50
Here are the prices for micro SD...
August 2009
1 post
Review: Pinboard.in
Pinboard.in is a social bookmarking site by Maciej Cegłowski. Here’s a few things you might like about it:
The interface is incredibly simple and clean
Your huge Delicious library will import quickly without hassle
It has handy bulk processing features
It has bookmarklets that work like Delicious
Gmail-like starred status, and a read later flag
Amazon S3 backups (with...
July 2009
2 posts
How to Twitter
When Twitter was new a lot of people couldn’t figure out what to use it for. The question What are you Doing? appeared to have no relation to the way popular people used it. It’s an innocuous question that inspired and yet confused people. However, because Twitter is so fundamentally simple — especially compared to other social networks — just about anyone could get...
Inspirational Books
There’s a war on my shelves between design and programming books. It’s interesting that the programming books look like programming books, whereas the design books are all totally different shapes and sizes. Here’s a few of the design books that I keep close at hand.
A Smile in the Mind
I borrowed this book off a friend and wanted to keep quiet about the fact I still have it,...
June 2009
6 posts
iPhone Survival Guide
I’m a first generation iPhone veteran and iPhone developer, and these are my hard-earned tips for you new 3GS users.
Keyboard Tips
Moving the cursor: hold your finger then drag the cursor to move it. You’ll get a magnifying glass effect so you can see it more clearly
Copy and paste: hold the cursor similar to the above, then release it. A pop up menu will display copy and...
Introduction to Git Part 2: Branches
This is the second part of Ric’s Introduction to Git series. Last time, he covered the basics; this time he’ll explain how to use branches and tags. This article was originally published on Ric’s Blog.
Branches
How Branches Work
In git everything is treated like a branch, so they’re quick and easy to create and manage. Branching doesn’t involve copying the files into a new...
Introduction to Git
This article is by Quite Useful contributor Ric Roberts.
I’ve been using the version control system, git (along with GitHub) for a couple of months now, for my open source projects: grrid.js and Taskit. At Swirrl, we recently decided to take the plunge to start using git for our main code repository.
With this series of blog posts, I hope to ease the transition from subversion (or sourcesafe,...
Review: MinuteBase
MinuteBase is a web application designed for planning meetings and writing up minutes. It helps focus meetings with an agenda, and provides lots of ways of collecting notes and other related information.
Each meeting can have several attendees, and they can be added as users to your MinuteBase account. This makes MinuteBase a good tool for communicating agendas before meetings to help keep...
Review: Ringer
Ringer is a small Mac app made by Pixel Research Labs that helps you create ring tones for iPhones. It’ll read any unprotected audio or video file.
It automatically adds a quick fade in and out, so tracks will sound right without much effort. You can change the length of the snippet you want, and add a gap between rings. Ringer automatically detects the volume too, so quiet or loud...
Review: Figure Out When
Figureoutwhen.com is a tiny service for organising dates. It works like this:
Enter a title for an event
Click the dates you’re not available
Send the link to friends you want to invite
They click the dates when they aren’t available
Everyone can see when they’re not free, thus allowing you to figure out when to schedule an event.
It’s an incredibly simple tool,...
May 2009
11 posts
JsChat
JsChat is a simple open source realtime chat protocol based on JSON. There’s a server and console and web clients. It’s developed by the Quite Useful authors. Download it from my GitHub repository: github.com/alexyoung/jschat, and read more at the JsChat Blog.
Web Client
Most people who have tried JsChat think it’s all about the web client, but this is only a proof of...
Beautiful Algorithms 3: Gravity
This series of articles explores using basic physics and mathematics to simulate balls bouncing. The examples are written with Ruby and Shoes.
I’ve been working on the 2D version of the previous example for 3 days now, and I haven’t got it to a point where it’s clear enough yet. However, I realised I was trying to cram too much into one article. Instead, this part focuses on...
Quite Useful Weekly Roundup
This week we posted the first of a new series of Beautiful Algorithms articles: Collisions. We also posted about eBooks and a web app called Orchestrate.
Twitter Summary
TeleRead is a great blog about eBooks. They post regularly, and write about hardware readers, formats, sites that sell/host eBooks.
6 Tips To Get Your App Noticed has some ideas for marketing your iPhone apps.
Wiimote...
Beautiful Algorithms 3: 1D Collisions
“1D Collisions” might sound a little bit strange, but the goal of Beautiful Algorithms 3 is to explore algorithms for collision physics. Collisions in 2 or 3 dimensions are naturally more complex than a single dimension, so let’s look at this first. I’ll explain what mathematics and physical laws are required (don’t worry, you understood all of this when you...
Beautiful Algorithms 3: Balls
Beautiful Algorithms 3 is going to be about simple physics. These examples will be written with Ruby Shoes, and will demonstrate how to simulate bouncing balls and collisions.
The easiest way to model bouncing is to go back to basics with high school physics. Start off with 1D collisions, then add the second dimensions, then apply gravity.
The first post in this series will be posted...
eBooks
You’ve probably seen the Kindle, Amazon’s reading device. I live in the UK, and I have massive Kindle envy because Amazon don’t sell it outside of the US. That doesn’t mean we all need to wait for Amazon to launch localised Kindles, however. eBooks have been with us for a long time: Project Gutenberg’s founder Michael Hart has been exploring eBooks since 1971. I...
Web App Review: Orchestrate
Orchestrate is a web application made by Elevensoft, who are based in the UK. It’s designed to manage tasks for projects. What makes it unique is the focus on scheduling conflicts and qualification management.
Orchestrate has a clean interface, similar to Lighthouse or Basecamp: the main page body is used to display information and forms, whilst the sidebar is used to issue commands or...
Quite Useful Weekly Roundup
This week we posted a selection of command line time savers, the source code for a Ruby Twitter scheduler, and a review of online collaboration service Woobius.
Twitter
I was having a bit of fun with mashups this week, so I posted a link to DJ Lobsterdust who makes some incredibly witty and skilled tracks. If you like that, it’s worth checking out Girl Talk too.
A lot of Twitter/Digg...
Mind Blowing Command Line Time Savers
Whether you’re an old skool unix hacker or a Mac user who uses Terminal regularly, there’s lots of ways to save time on the command line. I’ve mentioned a few of the following tips on twitter.com/quiteuseful, but I thought it’d be handy to collect them all here.
Bash
!! - repeats the last command
history n - shows the last n things you’ve typed
My favourite...
Review: Woobius
Woobius is a web app aimed at architects and engineers, designed to enable them to collaborate online. The main features are:
Drop box - Quickly share files with colleagues
Vault - Manage formal documents, track changes to them, and issue documents to colleagues with an expiration date
Companies - Give your clients access
Dashboard - Get an overview of activity
Workflow
The workflow...
Twitter Scheduler
In Delicious Twitter Sync I talked about one of the open source tools we use to run Quite Useful. Another script I’ve written to help out is twitter-scheduler. This one allows you to schedule tweets on the command line.
I use this to schedule up interesting tweets so they’re evenly distributed throughout the day. We try to post on the hour between around GMT 10am and 7pm.
Usage
To...
April 2009
20 posts
Delicious Twitter Sync
Quite Useful has a Delicious account which we use to share links we post to twitter.com/quiteuseful. I wanted to sync up our Twitter link posts with Delicious, so I wrote a script to do the job.
The script will download a Twitter account’s recent posts, find links, and tag links based on hashtags — which is why our Twitter posts almost always have a generous helping of hashtags.
...
Quite Useful Weekly Roundup
This week we featured a Beautiful Algorithms series: Tunnels Part 1, Part 2. The rubyisation of the demoscene continues! I also wrote about how to build a Growl app in Objective-C for Mac OS.
Useful Tweets
RemotePad for iPhone is an open source computer controller. Interesting for iPhone developers, but useful too.
Canary is an open source Mac Twitter client.
TwitterSnooze lets you quieten...
How to Make a Growl App
I made a little Objective-C growl app the other day (Deadline for Mac). It started as an idea I had on Saturday afternoon, and ended up being a finished product by Sunday night. Working with Growl is surprisingly simple!
This is a short tutorial on how to build your own Mac app that uses Growl. You’ll need Apple’s developer tools installed and some familiarity with Xcode. ...
Beautiful Algorithms 2: Tunnels (Part 2)
This is Part 2 of the Tunnels tutorial, Part 1 can be found here: Beautiful Algorithms 2: Tunnels.
Note: The code examples in this article might not appear in your feed reader.
Lookup Tables
Lookup tables are basically arrays of values. Referring to elements in an array is faster than calculating them. Doing this in Ruby is almost as simple as:
100.times.collect { |i| Math.sin i * (Math::PI /...
Beautiful Algorithms 2: Tunnels
I spent weeks trying to reproduce dot tunnel effects on my Amiga back in the 90s. Demo groups used to get thousands of points animated as complex 3D shapes and tunnels, but their techniques were way beyond me. This tutorial introduces one such effect, and a few common techniques programmers use to improve performance.
For a video of the effect, check out my tunnel screencast.
This tutorial...
Quite Useful Weekly Roundup
I started the Beautiful Algorithms tutorial series this week. The first algorithm is fire, a cool graphical effect that’s actually easy to understand and create: Part 1, Part 2. I also wrote about Git GUIs because I’ll be referring to Git more often in my programming tutorials. Ric contributed a post about knowledge management and Swirrl.
Twitter Stuff
Avoiding iPhone App Rejection...
Git GUIs
In my Let’s Make a Game tutorial, I mentioned that my code could be downloaded with Git from GitHub. I’m going to use Git for all of my tutorials on Quite Useful, so it’s worth getting familiar with it.
This post briefly reviews a few GUIs for Git, for those of you who don’t like the command line.
GitX
GitX is for Mac OS and is both free and open source. It’s a...
Swirrl: Quite Useful Knowledge Management
This post is by Ric Roberts, a developer at Swirrl who also contributes to Quite Useful.
Knowledge Management for Productivity
If a question about general knowledge comes up in conversation, it’s easy to immediately look it up on the web on your laptop or iPhone. If you’re watching a film and you can’t place where else you’ve seen one of the actors, you can instantly look...
Beautiful Algorithms 1: Fire Part 2
Yesterday I introduced Processing and Ruby Processing in Part 1. This part is the meat and potatoes of the tutorial: the fire algorithm and the Ruby that generates it.
The Algorithm
You can watch a screencast of the fire algorithm in action here: fire-processing-rb. It looks like a sophisticated animation: waves of fire rise up from the bottom of the window at different angles and gradually get...
Beautiful Algorithms 1: Fire
In this two-part article we’re going to use Ruby to make a fire animation. It’ll look like this:
In my previous Ruby tutorial, Let’s Make a Game, I explained how to use Ruby and Shoes to make a game. Another way to get graphics on the screen in Ruby is to use Processing.
Note: Code examples require JavaScript to run, so please view this article in your browser rather than a...
Quite Useful Weekly Roundup
This week I concluded the Let’s Make a Game Series. I also announced the start of a new series, Beautiful Algorithms, in which I’ll discuss beginner-friendly graphical algorithms alongside examples from the history of computer graphics.
I’m going to take Monday off, so you’ll see Beautiful Algorithms start on Tuesday.
Twitter Summary
Developer
cdargs has made a big...
Beautiful Algorithms
I enjoyed writing the Let’s Make a Game Series, so I’m thinking about a followup with a guide for writing Pacman or Space Invaders. In the meantime, I’d like to start a new recurring series called Beautiful Algorithms.
This new series will explain how to write graphical effects. I’m going to stick to Ruby or possibly JavaScript — languages with simple syntax that...
Let's Make a Game: Wrap Up
In this tutorial series I explained how to build a version of the game Snake.
Part 1: Covers installation of Shoes and explains how the snake moves and how to control it with the keyboard
Part 2: Basic collision detection, eating food to make the snake longer
Part 3: Collision detection for bricks and the snake, stopping the main animation when the snake crashes
Part 4: Handling...
Let's Make a Game 5: Sounds
Shoes doesn’t have great audio support right now, but it ships with multimedia capabilities provided by the VideoLAN and ffmpeg libraries.
To use audio, use the video keyword with a wav or mp3. You can hide the resulting video object so it won’t take up layout space. One limitation of audio playback is you only have a single stereo channel, which means you can’t multiplex...
Let's Make a Game 4: Scores and Death
Note: Remember to view this article on Quite Useful’s site in case you can’t read the code examples.
The snake game we’ve been building over the last 3 articles is still pretty basic. The player can’t restart a game, there’s no score, food doesn’t reappear, and the snake can slither off the screen.
If this is the first part you’ve read, check out Part 1...
Let's Make a Game 3: Rules
This is Part 3 of the Let’s Make a Game series. In Part 1 I explained how to get started with Ruby and Shoes and built a basic snake, and in Part 2 I added food.
Remember to view this on Quite Useful rather than in your feed reader (in case code examples don’t appear!)
This part shows how to add more complex rules to the game using collision detection. Collision detection is used...
Quite Useful Weekly Roundup
This week I started a new series called Let’s Make a Game. I’ll be continuing this series next week, with posts about how to add rules and maps to the game.
We also published a series on open mapping technology: Introduction, OpenStreetMap and OpenLayers.
Here’s the Twitter roundup.
Social
TweetChat makes Twitter feel more like a chat room, grouping posts based on hashtag.
...
Let's Make a Game 2: Food
This article is part 2 of our Let’s Make a Game series. Remember you’ll need to view this on the site rather than your feed reader in case the code examples don’t appear.
Today I’m going to show you how to add a game board and food:
This tutorial is a little bit shorter than the previous one because I’m attending GitLondon! Message me on Twitter (@alex_young or...
Let's Make a Game
This tutorial series will show you how to make a game. The game will be:
A version of Snake
Cross platform (Windows, Mac, Linux)
Written in Ruby
Please remember to visit this article on our site rather than in your feed reader to get the code examples.
Cross Platform Games
There aren’t many ways to easily write cross platform GUI applications, let alone games. Rather than use Adobe...
Introduction to OpenLayers
This is the third part of my open source mapping series. See Part 1 for an overview of open mapping technologies, and Part 2 for details on running OpenStreetMap.
In this part I’m going to explore the basics of OpenLayers. OpenLayers allows you to put a dynamic map on any web page, and displays map tiles loaded from various sources. It can also draw vector shapes on maps, and plot...
March 2009
26 posts
Introduction to Building Apps with OpenStreetMap
OpenStreetMap is an open source initiative that offers similar technology to Google Maps. To really get the most out of OSM you should start by running the server locally and checking out their code.
Running OpenStreetMap
The frontend for OpenStreetMap is a Ruby on Rails application. OSM refers to this as The Rails Port, and they have detailed documentation for installation.
It depends on...
Open Map Technology
Google Maps is an incredible piece of technology. The API are easy to learn and naturally enhance many kinds of projects. However, there are several reasons to use other technologies: special agreements are required for corporates, high traffic sites and private sites.
Google’s terms and conditions might not always pass your company’s legal department. In cases where you want full...
Quite Useful Weekly Roundup
This week we published a summary of all our features over the past few months. There’s everything from media centre tips to hacking websites with screen scraping. We also tracked the memory performance of several popular Twitter clients — useful information if you leave Twitter in the background all day!
We also reviewed Streamy, a new social networking site that brings together...
Review: Streamy
Streamy aims to bring your social networks together in one place, and give recommendations based on your “personal interest profile.”
There’s a video that summarises Streamy’s main features: About Streamy. The track in the video is Iz-Us by Aphex Twin — they’ve clearly got good taste, but I hope they’ve got permission to use that music!
Setup
...
Quite Useful Features
We’ve published several features since the start of Quite Useful, so I’ve added a sidebar on the blog to make it easier to find them. Here’s a guide in case you’ve missed any.
Backups
The backup series started off with tips on how to backup your social network content. We also featured guides on iPhone backups, online backups (with a mini Automator tutorial), time...
Screen Scraping: Cookies, Headers
This is a follow-up to yesterday’s article, An Introduction to Screen Scraping. I’m going to show you the basics behind reverse engineering headers and cookies.
Note: These posts might not display the examples in your feed reader, so try visiting Quite Useful in a browser to see them.
HTTP POST
Some sites only accept a POST for a particular form. The example I used yesterday used...
An Introduction to Screen Scraping
Screen scraping is a technique for using software to grab data from websites. Many websites we use everyday are poorly designed and difficult to use, just look at most Internet Banking sites. Fortunately, programatically accessing information on these sites can be relatively easy.
Toolkit
The essential elements of a screen scraper’s toolkit are:
Firebug, the Firefox plugin...
Twitter Client Memory Usage
I run a Twitter client in the background permanently, and I started to wonder how much memory it used. I heard TweetDeck uses a lot of memory, so I decided to compare the top Mac clients.
I set the clients up with the same account which has these stats: 140 following, 158 followers, 744 updates.
Each of the clients was running for 12 hours.
EventBox
EventBox currently costs $15 and is made...