Gaunt Face | Matthew Gaunt

Monthly Archives: April 2010

Change is just around the corner . . .

The new page design for Gaunt Face

Why is Open Source Software Documentation Bad?

I’ve just gotten off the IRC of the #ubuntu-tweakers room on irc.freenode.net and we were having a full-blown discussion on why there is this huge barrier to entry with open source software.

The main area’s that we all agreed on were the following:

  1. The programmer doesn’t know the tools which are used
  2. The programmer is lost the minute they get into the code

and one thing I’d tag onto that is:

  1. Where the hell is everything? (Bug tracker, info on commiting patches, stuff I should know but you haven’t told me about so I can’t even know I should know it, let alone then finding information on it)

Let’s look at an example of an open source program, Gnome-Do for instance (http://do.davebsd.com/development.shtml).

We can see, development has a link at the top – so far so good - http://do.davebsd.com/development.shtml

There is a wealth of information there, Mono, links to the mono site, it’s in C# with a link to the wikipedia page on it, I have links to irc and even the developers blogs and twitter feeds. Then we have a link to launchpad.

Now I’ve never used launchpad in my life, it’s a daunting tool, to say the least.

Don’t get me wrong, I know it has everything you could want in a development platform. But all I wanted to do was download the source, install the relevant packages and tools to get developing and then start building a plugin or change to gnome-do.

What’s actually happened:

  1. I’ve been sent on a wild goose chase to learn about Mono, what is relevant to Gnome-Do specifically? I don’t know, so your guess is as good as mine.
  2. I’ve been sent to a wikipedia page for C# which I imagine is the last place I’d want to look for on programming info.
  3. Been told they use launchpad and then that is it in terms of repo etc.
  4. Remember the things I should know but don’t know I should know them? Well what happens if I add something, what do I do? Should launchpad have this info? should their project site have it?

Jono Bacon mentions alot of the time about – opportunistic programming and how Quickly enables that, and he’s totally right, it’s easy to knock up a program in many cases, that just scratches a little itch. But what happens if you don’t want opportunistic programming starting from scratch, but in some other projects code? Is this even possible?

This is in no way a dig at gnome-do (honestly I love your guys work and I can bet if I went in the irc these questions would be answered). It’s just I’ve looked at your development site before when I started programming and I got lost very quickly.

The main point I’m trying to get at, is does open source, think enough about the people who want to get involved but can’t, because of this seemingly high barrier?

I think the following would of changed things for the Gnome-Do example:

  1. Instead of a link to the Mono Documentation, perhaps just a small documentation, explaining how to install, set-up, create new projects and import projects, rather than the mono page itself (Which at the end of the day may have this information, but it’s mixed in with the advertising stuff and how do I know what’s relevant to just getting a move on).
  2. instead of a C# link to a page just about C# why not another documentation on just getting started with C# including (again) how to install, set-up and use C# (including the relevant links to documentation and useful/key links)
  3. A video on how to use Launchpad, what everything is, and where to find everything
  4. Documentation directly relevant to the project (This is the bit I will never expect to happen, I’ll explain why in a bit)

Basically, relevant documentation, that just tells me, how to get moving. I don’t care about the in’s and out’s I just want to go, same as Quickly, you don’t care what Quickly does to build your app, you just care that it starts to work. Everything else you can work out, as and when you need to.

The video of Launchpad, because I simple don’t want to read a whole set of docs on it, it’s far too much info to take in, from just text, it would be easier and far more pleasant through a video format.

Now the final comment, why do I think a project wouldn’t produce documentation for new-comers, because it’s a lot of effort. I’ve developed in small teams, and the last thing you want to do is comment stuff – it’s boring. But there must be some way of getting across the structure of an app right? I mean, I downloaded the VLC Media Player source, and I couldn’t find where a play function was, the code was so foreign to me, yet if I had their file structure drawn in a graph format, I would probably be able to follow exactly where I should of been looking. But again this requires someone to do it, but would it take long for an experienced developer to scan in a drawn picture of a program structure?

As for the main documentation for tools etc, I might take some of the doc’s written for the Ubuntu Tweakers community and turn it into something suited for projects to simply link to.

This is obviously my own point of view and I have no doubt someone will disagree with me every step of the way, and if that is the case then please comment because I do find this a really interesting topic.

Ubuntu Power Users – We Want You!

Jono Bacon came up with this concept of creating a community for power users, those that want to do more with Ubuntu, other than just install and run programs. A couple of peeps are now starting to build up the idea of what / how we are going to approach setting up this community.

Me (gauntface) Brandon Tomlinson (thebwt) and Toni Korpela (TMKCodes) have started discussing couple of things and thebwt has started setting up a mailing list, so hopefully we will have some kool things going soon.

So you’ve read this far in, good stuff, now have a little look into this if you are planning on helping with articles:

http://www.ubuntu.com/community/conduct

Then jump on over to the IRC channel on freenode – #ubuntu-tweakers (There might be an article on IRC etc later, but for now you’ll have to google it :-D )

If you’d like to see what we chatted about, the first chunk of the irc is here – http://thebwt.com/tweakersLog.txt

More News on the MS Courier

It’s not getting released till next year :-(

The new york times have posted a story saying sources inside Microsoft have expressed concerns over battery life, but also a change in where to market the device.

I appreciate there are some technical concerns with the hardware and I would prefer Microsoft fixed this rather than release a half baked product leaving everyone frustrated they spent good money on such a product.

But to claim they don’t know where to market it?

What?

more…

Toshiba You Beauty

The fantastic Toshiba have mentioned they are throwing their hat into the tablet ring with 2 devices, one android device and one dual screen Windows device. Alot of people are “claiming” it’s the courier or mentioning it sounds like it, but you can also see a dual screen MSI tablet, where one screen is touch screen the other is not (I don’t think, judging from the video’s I saw). So this is more likely to be just Windows on a dual screen device.

Although on a side note, it would be interesting if Microsoft teams up with Toshiba to make the courier hardware while Microsoft created the software. The reason I mention this would be interesting is because it would be very similar to Google’s approach with Android and HTC. Google: “We don’t do hardware, we do software, so we teamed up with someone to do the hardware with us”.

Anyway, back on track, I don’t feel confident that it is going to be the courier, BUT when it does get released I am going to try my hardest to slap Android on top of that bad boy and get developing the courier interface.

Let it begin.

What I’ll Have in a Years Time

This is a real short post, but I can’t help but write put this down.

Also extra note with the phone – *Work as a good replacement for an ipod (i.e. big hard drive, easy sync tools)

Using Android Headset Buttons (Earphone Buttons)

Hey’all

I needed to get access to the button presses on the earphone buttons that are built into the earphones that come with the Nexus One (Also with the G1 I think?) and I found it a tad harder than I expected, largely because I expected someone else of done it already for me.

So anyway, here we go in terms of how to get you up an running.

In your main activity you need to register a Broadcast Receiver:

1
2
3
4
HardButtonReceiver buttonReceiver = new HardButtonReceiver();
IntentFilter iF = new IntentFilter(Intent.ACTION_MEDIA_BUTTON);
iF.setPriority(IntentFilter.SYSTEM_HIGH_PRIORITY);
registerReceiver(buttonReceiver, iF);

We set the priority to high for the intent filter so we gain first dibs on the button press, otherwise the media player application might be the first application to detect the press and then drop the receiver, this will hence cause your broadcast receiver to appear as though it’s not working.

Now that we’ve set that up, we need something to catch the broadcasted intents.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
public class HardButtonReceiver extends BroadcastReceiver {
    @Override
    public void onReceive(Context context, Intent intent) {
        Log.v("TestApp", "Button press received");
        abortBroadcast();
       
        KeyEvent key = (KeyEvent) intent.getParcelableExtra(Intent.EXTRA_KEY_EVENT);
        if(key.getAction() == KeyEvent.ACTION_UP) {
            int keycode = key.getKeyCode();
            if(keycode == KeyEvent.KEYCODE_MEDIA_NEXT) {
                Log.d("TestApp", "Next Pressed");
            } else if(keycode == KeyEvent.KEYCODE_MEDIA_PREVIOUS) {
                Log.d("TestApp", "Previous pressed");
            } else if(keycode == KeyEvent.KEYCODE_HEADSETHOOK) {
                Log.d("TestApp", "Head Set Hook pressed");
            }
        }
    }
}

And that is all there is to it, for more information it might be worth looking at this thread:

http://groups.google.com/group/android-developers/browse_thread/thread/81e7fadd7f0b64fb/54d82fcdb0c01540

UPDATE: I’ve uploaded a full example on my github page, for details see: http://www.gauntface.co.uk/blog/2011/02/13/android-headset-full-example/

Another Look At The Courier

Ever since I’ve seen those video’s I’ve been getting very impatient in terms of news.

I don’t know enough about Microsoft’s advertising strategy to comment on it, because I very rarely give Microsoft any notice (Especially when you consider that I work in an office of Apple Lovers and spend my time following Open Source fanatics on Twitter), so whether these videos are just advertising techniques or not, I can’t say.

But the Courier is grabbing my attention, so rather than trawl the web everyday for new information I set off a Google Alerts Feed to let me know of new Courier info, and to be honest, I wish I hadn’t, because it get’s filled with utter rubbish.

So here’s my take on everything Microsoft is currently doing, what I think the Courier is (vaporware or not?) and finally what happens next.

more…