tommorris.org

Discussing software, the web, politics, sexuality and the unending supply of human stupidity.


lazyweb


Free LazyWeb idea: cross-language regex tester, converter and syntax checker. Rubular already exists for Ruby, but make it so someone can write a regex against their regex implementation of choice, then have it convert that regex and run it against test data in every language you can think of.

At the very minimum: Ruby, Python, Java, .NET (Mono), JavaScript (V8/Node runtime), Perl, PHP.

Store the regex on the web with its own URI.

When someone creates a regex, ask them to release it as open source in the interface, and encourage regex implementers to use the regexes on the site for unit testing/regression testing regex implementations.


Lazyweb request: OpenStreetMap offline mobile data editor

I have a rather obscure request.

I edit OpenStreetMap. It’s lots of fun.

There are a number of ways to edit OpenStreetMap. Firstly, there’s the traditional GPS trace method. You take a GPS device including a smartphone, and you build up traces of roads, footpaths and so on. This is very useful if you are adding new roads or footpaths that didn’t exist before. You drive or walk or cycle or hoverboard or whatever around a place and the GPS traces where you are. You then scribble down whether you are doing a road or a footpath or a cycle lane or whatever. Easy. I do this for adding footpaths.

Then there’s Walking Papers. This allows you to draw buildings quite well, but does require you to either scan or replicate what’s on the paper map back on to the computer.

There’s also photo mapping. Photo mapping is fun. You wander around, either with a GPS-enabled camera or a camera and a GPS tracer and take photos. You use photos as a way of establishing where buildings and points of interest are.

This is all good. But here’s something I want instead: a decent way of checking metadata.

The OpenStreetMap metadata format is, for the purposes of this exercise, a set of key-value pairings attached to a geographically locatable object. (It’s a bit more complex than that, but that doesn’t matter.)

A bar might be tagged with, say, name, amenity=bar, phone, postal_code, website, addr:housenumber and maybe some more exotic business specific metadata like smoking, real_ale, cuisine, minage (minimum age), gay etc. etc.

When you are out doing mapping, checking this kind of data is hard. What would be very useful would be an offline metadata display. Being able to see a list of nearby points of interest, laid out almost like a spreadsheet, with the ability to edit particular metadata. Then the ability to export all the changes you’ve made as a diff.

I’m not keen on building an application for this. Firstly because I’m just a web developer, secondly because I haven’t got time and thirdly because there isn’t really enough of a return for doing so. As in, it’s great for me and a few other dorks who like OSMing, but not really enough interest for anybody else.

Currently, my plan is to try and use Numbers on iOS, and build some infrastructure around it, so I can make it easy to quickly turn some OSM data into a spreadsheet, load it in, edit it, then get a CSV back out again somehow, do a diff on the data and turn the result into an OSM change set. The main thing is some kind of loosely structured data typing on a form that is wired into a data store. The loosely structured data typing means that, for instance, I can hint that minage is probably a number, and that real_ale is usually a yes/no boolean.

Does anyone have any bright ideas? Tweet or email.


Turning off notification sounds for muted threads in Gmail on Android?

At the weekend I bought a new phone, a Samsung Galaxy S2. It’s very nice, blah blah. I’ll write up a long post about Android sometime soon.

But I’ve got a bit of a tech support question.

I’ve got the Gmail app that comes with the phone, and I have it set to give me notifications when I get new e-mail. I know this will probably drive me completely apeshit very quickly, so I might turn it off. But it is actually mostly useful.

The only thing is it seems to not be very smart about what it notifies me over. It seems to notify me over every new message in the inbox, even muted threads. I reported a bug with Firefox a while back, and someone just got around to submitting a patch for it this evening, and there have been a few developers commenting on the patch and changing Bugzilla statuses and so on. Which is fine, but it gets annoying. This seems like the ideal case for muting at thread.

I don’t need a notification every time it happens, but it’s still inbox material as the first message to come through for months since reporting it is interesting and I don’t want to write a rule to send it to the same label as all the crappy notifications I get about people following me on Twitter.

Only the Android Gmail app doesn’t seem to have a way to let me change this. I could have it only notify me on Priority Inbox messages, which might do the job as then muted threads are highly unlikely to make it in. But I’m not sure I want that. Any advice?


LazyWeb: a good offline browser for iPad?

Here’s an easy enough LazyWeb request.

An offline browser for the iPad. A proper good one.

Here’s what I want:

  • You open it up and there’s a browser. Pretty much like the standard Safari.
  • When you bookmark something, you save it offline.
  • Some kind of ‘Readability’ type option. Type on Wikipedia is a bit too small to read on the iPad for me.
  • It keeps the stuff persistent. Basically, once the page is downloaded, it keeps it until you delete it. It’s not like an Instapaper type thing where you archive it once you are done or whatever.
  • There’s a big button to update all. When you are connected you hit that, and it redownloads all the pages. And it only discards the existing copy if it gets 200 OK and downloads properly.
  • The list of these saved pages is manageable, exportable, importable and maybe even syncable. Plenty of iPad apps are doing Dropbox sync now. That sounds like a good idea. Basically, it’s pretty simple: you have a nice simple format like YAML or Notation3 or something like that. And you stick it in Dropbox (or you can e-mail it out or whatever, or maybe have a web service, but that’s getting a bit too much like Instapaper).
  • It’s not annoying.
  • Wanna do something really cool? Do HTTP properly. Last-Modified dates. Content-Length. Content-MD5 (as per RFC 2616 section 14.15 and RFC 1864) or Content-SHA1 (as per, you know, a sane world where MD5 has been deprecated in favour of SHA1).

I’m using a free app from the App Store that does some of that. Basically, I have stopped topping up my 3G as much, and it’s nice to be able to be able to have another place to dump web content I might want to read.

What makes this different from Instapaper? Well, the point for me about Instapaper is that it’s just like a newspaper or magazine: you download a bunch of articles you want to read into it, then you read them. It’s like an inbox for content. The use case for an offline browser is simpler. Say you are editing Wikipedia. You put articles you are interested in keeping an eye on in the offline browser. You refresh, see which pages have updated. You’ve got access to up-to-date reference material on the move. There are plenty of other uses.

Anyway, ideas?


LazyWeb idea: Read My Docs

Here’s an idea that came to me after reading about all the different teams and infrastructure on the Ubuntu Wiki:

Read My Docs

A web service to connect people willing to proof-read and provide constructive feedback on open source software documentation. Projects could post announcements of newly written or radically revised documentation including manuals, tutorials, guides, man pages, READMEs etc. Each announcement would have a comment page, and links back to issue trackers and/or version control systems so that contributors could submit back either comments, issues straight into the issue tracker or even diffs/git pull requests/hg patch queue requests etc. (this is made easier by the use of distributed version control systems).

Each announcement would be marked up to specify the intended audience of the documentation: end user, developer, expert, absolute newbie etc. In addition, if announcements were specific to particular language or technology communities, these could be noted using tags so that one could drill down and find those things.

Language communities where packages are released through a central repository such as RubyGems, PyPI, Haskell’s Hackage etc. could have newly released packages automatically announced to the site so that developers with a specific interest could keep an eye on the quality of documentation and improve it.

A community could perhaps build around such a site and they could build up good practices that could be documented, leading to a positive spiral of better and better documentation. Some kind of intelligent game mechanic could potentially be applied so that instead of people rushing around cities checking into venues on Foursquare, they would get goofy badges and points and mayorships and leaderboards and so on for doing something useful like writing better documentation.

The end result? A small army of documentation fairies who would improve open source documentation across a wide range of projects, languages, communities and Linux distributions without having to join any of those communities. And hopefully a fun way for people who aren’t programmers to ease the documentation burden from the people who’d much rather be writing code.