We’re running a Scope Development Competition with prizes including a laptop, tablets, and a bunch of cool Ubuntu swag. Check the above link for details.
I’m one of the judges, so I’m not allowed to enter which is both good and bad news. Good because then you won’t see my terrible coding quality, but bad because I would really love one of these sweet Dell XPS laptops!
I do have things I’d like to see made as scopes, and some ideas for making ones that I might do in the future when time permits, and I thought I’d share them. As a judge I’m not saying “make this scope and I’ll vote for your entry” of course, I simply figured I can give people some ideas, if they’re stuck. We do have a set of criteria (see link above) for rating the scopes that are submitted, and those will be used for judging. None of those criteria are “whether it was on the list on popey’s blog”. These are just ideas to get people thinking about what might be possible / useful with a scope.Surfacing my data
One of the goals of scopes is to enable users to easily and quickly get access to their data. That could be local data on the device or remote data in a silo somewhere online. Typically on other platforms you’d need a dedicated app to get at that data. To access your Spotify playlist you need the Spotify app, to access your LinkedIn data you need the LinkedIn app and so on. Many of the sites and services where my data is held is accessible via an API of some kind. I’d love to see scopes created to surface that data directly to my face when I want it.Manage Spotify Playlist
I use and love Spotify. One problem I have is that I don’t often add new music to my playlists. I don’t use or value the search function in the app, or the social connected features (I don’t have my Spotify hooked up to Facebook, and don’t have any friends on Facebook anyway). I tend to add new music when I’m having a real life verbal conversation with people, or when listening to the radio.
So what I would like is some quick and easy way to add tracks to my playlist, which I can subsequently play later when I’m not in the pub / driving / listening to the radio during breakfast. This could possibly sign in to Spotify using my credentials, allow me to search for tracks and then use the API to add tracks to playlistAmazon Wishlist
My family tell me I’m really hard to buy presents for, especially at this time of year. I disagree as I have an Amazon wishlist containing over a hundred items at all price points When I visit family they may ask what’s on my wishlist to find out what I’m most interested in.
I’d like to be able to pull out my phone, and with a couple of swipes show them my wishlist. It would also be useful if it had the ability to ‘share’ the wishlist URL over some method (email is one, SMS might be another) so they get their own copy to peruse later.
I’d also like to be able to add things to the wishlist easily. Often when I’m out I think “That’s cool, would love one of those” and that could be achieved with a simple search function, then add to my wishlist.Location Specific Satellites Overhead
I (and my kids) like to watch the International Space Station go over. Perhaps I enjoy it more than the kids who are made to stand outside in the cold, but whatever. When I travel it would be nice to have a scope which I can turn to during twilight hours to see when the ISS (or indeed other satellites) are passing overhead. This information appears to be publicly available via well documented APIs.Upcoming TV Programmes
I frequently forget that my favourite TV programmes are on, or available to stream. It would be awesome to pull together data from somewhere like Trakt and show me which of my most loved programmes are going to be broadcast soon, on what local TV channel.Events Nearby
When I travel I like to know if there’s any music, social or tech events on locally that I might be interested in going to. There’s quite a few sites where people post their events including Songkick, Meetup and Eventbrite (among many others I’m sure) which have a local event look-up API. One of the cool things about scopes is you can aggregate content from multiple scopes together. So there could be a scope for each of the above mentioned sites, plus a general “Local Events” scope which pulls data from all of those together. Going to one scope and refreshing when I arrive in a new location would be a great quick way to find out what’s on locally.
Some of the above may be impractical or not possible due to API limitations or other technical issues, they’re just some ideas I had when thinking about what I would like to see on my phone. I’m sure others can come up with great ideas too! Let your imagination run wild!
Good luck to all those entering the contest!Tweet
I enjoy the tilde.club site/community, and since I've just setup an IPv6-only host I was looking to do something similar.
Unfortunately my (working) code to clone github repositories into per-user directories fails - because github isn't accessible over IPv6.
That's a shame.
Oddly enough chromium, the browser packaged for wheezy, doesn't want to display IPv6-only websites either. For example this site fail to load http://ipv6.steve.org.uk/.
In the meantime I've got a server setup which is only accessible over IPv6 and I'm a little smug. (http://ipv6.website/).
(Yes it is true that I've used all the IPv4 addreses allocated to my VLAN. That's just a coincidence. Ssh!)
I've spent the past thirty minutes installing FreeBSD as a KVM guest. This mostly involved fetching the ISO (I chose the latest stable release 10.0), and accepting all the defaults. A pleasant experience.
As I'm running KVM inside screen I wanted to see the boot prompt, etc, via the serial console, which took two distinct steps:
To configure boot messages to display via the serial console, issue the following command as the superuser:# echo 'console="comconsole"' >> /boot/loader.conf
To get a login: prompt you'll want to edit /etc/ttys and change "off" to "on" and "dialup" to "vt100" for the ttyu0 entry. Once you've done that reload init via:# kill -HUP 1
Enable remote root logins, if you're brave, or disable PAM and password authentication if you're sensible:vi /etc/ssh/sshd_config /etc/rc.d/sshd restart
Configure the system to allow binary package-installation - to be honest I was hazy on why this was required, but I ran the two command and it all worked out:pkg pkg2ng
Now you may install a package via a simple command such as:pkg add screen
Removing packages you no longer want is as simple as using the delete option:pkg delete curl
You can see installed packages via "pkg info", and there are more options to be found via "pkg help". In the future you can apply updates via:pkg update && pkg upgrade
Finally I've installed 10.0-RELEASE which can be upgraded in the future via "freebsd-update" - This seems to boil down to "freebsd-update fetch" and "freebsd-update install" but I'm hazy on that just yet. For the moment you can see your installed version via:uname -a ; freebsd-version
Expect my future CPAN releases, etc, to be tested on FreeBSD too now :)
For the last week I’ve been working with 230 other Ubuntu people in Washington, DC. We have sprints like this pretty frequently now and are a great way to collaborate and Get Things Done™ at high velocity.
This is the second sprint where we’ve invited some of the developers who are blazing a trail with our Core Apps project. Not everyone could make it to the sprint, and those who didn’t were certainly missed. These are people who give their own time to work on some of the featured and default apps on the Ubuntu Phone, and perhaps in the future on the converged desktop.
It’s been a busy week with discussion & planning punctuating intense hacking sessions. Once again I’m proud of the patience, professionalism and and hard work done by these guys working on bringing up our core apps project on a phone that hasn’t event shipped a single device yet!
We’ve spent much of the week discussing and resolving design issues, fixing performance bugs, crashers and platform integration issues, as well as the odd game of ‘Cards Against Humanity’ & ‘We Didn’t Playtest This At All’ in the bar afterwards.
Having 10 community developers in the same place as 200+ Canonical people accelerates things tremendously. Being able to go and sit with the SDK team allowed Robert Schroll to express his issues with the tools when developing Beru, the ebook reader. When Filippo Scognamiglio needed help with mouse and touch input, we could grab Florian Boucault and Daniel d’Andrada to provide tips. Having Renato Filho nearby to fix problems in Evolution Data Server allowed Kunal Parmar and Mihir Soni to resolve calendar issues. The list goes on.
All week we’ve been collaborating towards a common goal of high quality, beautiful, performant and stable applications for the phone today, and desktop of the future. It’s been an incredibly fun and productive week, and I’m a little sad to be heading home today. But I’m happy that we’ve had this time together to improve the free software we all care deeply about.
The relationships built up during these sprints will of course endure. We all exchange email addresses and IRC nicknames, so we can continue the conversation once the sprint is over. Development and meetings will continue beyond the sprint, in the virtual world of IRC, hangouts and mailing lists.Tweet
Last night I mostly patched my local copy of less to build and link against the PCRE regular expression library.
I've wanted to do that for a while, and reading Raymond Chen's blog post last night made me try it out.
The patch was small and pretty neat, and I'm familiar with GNU less having patched it in the past. But it doesn't contain tests.
Test cases are hard. Many programs, such as less, are used interactively which makes writing a scaffold hard. Other programs suffer from a similar fate - I'm not sure how you'd even test a web browser such as Firefox these days - mangleme would catch some things, eventually, but the interactive stuff? No clue.
In the past MySQL had a free set of test cases, but my memory is that Oracle locked them up. SQLite is famous for its decent test coverage. But off the top of my head I can't think of other things.
As a topical example there don't seem to be decent test-cases for either bash or openssl. If it compiles it works, more or less.
I did start writing some HTTP-server test cases a while back, but that was just to automate security attacks. e.g. Firing requests like:GET /../../../etc/passwd HTTP/1.0 GET //....//....//....//etc/passwd HTTP/1.0 etc
(It's amazing how many toy HTTP server components included in projects and products don't have decent HTTP-servers.)
I could imagine that being vaguely useful, especially because it is testing the protocol-handling rather than a project-specific codebase.
Anyway, I'm thinking writing test cases for things is good, but struggling to think of a decent place to start. The project has to be:
Comments welcome; but better yet why not think about the test-coverage of any of your own packages and projects...?