Saturday, 29 March 2014

Update for 2014/03/29

So, I'm working on creating a music player daemon web front end that I can use from my phone, tablet, whatever, I am currently building it on top of a Raspberry Pi, however I've also ordered a BeagleBone Black to see what difference that makes.

While anyone could throw together a mpd server system on a Pi, I want a real system that responds in real time, complete with WebSockets support so that when one app/device makes the server do something, all clients will be updated.

I have decided to blog my progress and see where I can get, it helps to write all this stuff down.

I spent all last weekend learning Sockets.IO in Node.JS (my original implementation was in Python and used a LOT of polling) and getting the system on par with what I'd done in my Python interface.

I've now completely moved from Python/Django (it is a nice system, but WebSockets/Push Notifications were... Difficult and might very well have involved Node.JS anyway) and I'm already ahead of where I was.

That was last week, so what has happened since?

Along with learning how Node.JS works (module.exports, npm etc) I've been learning the various commands for MPD and creating a JavaScript library for interacting with the server.

I wanted a totally clean separation between the HTML (and other files a theme author might want to use) and the library. As such I developed an event driven library where theme authors will write call back functions to run when the server generates an event, this should allow full artistic freedom when building an interface.

So that's the big design which I am holding to, I have not yet designed a mechanism to implement changing of themes yet, but that will come (hell, since my library isn't complete the default theme isn't even fully developed yet).

What have I achieved so far?

So far, I've implemented five functions based upon the mpd 'setvol' command (up, down, mute, unmute and set), I've enabled data from the server to update part of the display, I've implemented pause, play, next, previous, repeat, shuffle.

I've also just finished implementing a means to get information on artists and albums stored in the MPD database for display in a to be designed user interface.

I'm also looking into cover art, using musicbrainz/coverart. I'm not sure how that works yet, but I'll get there I'm sure.

So I'll stop my rambling and get back to work. Once I'm close to getting the library stable enough to achieve everything MPD does I'll write up some API docs and release them for comment.


Thursday, 20 March 2014


I don't know who (if anyone) reads this, I mean, I barely post, ever, the reality is that my life is just not the sort of exciting, roller coaster, whirlwind life most serious bloggers seem lead.

And that's ok.

I seek a quieter more secluded pace, I'm much happier staying indoors with a reference manual and Vim.

It was during one of those days that an idea came to me, I have, for the longest time, wanted to build cool things, if I may be so open, as a child, my dream was to be, as I called it, 'an inventor'.

This... seemed impossible, I disliked studying pure Mathematics and the physics/chemistry/biology combination they taught in Science class couldn't hold my attention. That was, until I got my teeth seriously into computer science.

I wanted to be the next Apple, even started my own computer company, I created a simple but rather function programming editor, like TextMate, but for Linux. In the end however, all I ever did was remove the odd virus from a Windows machine once a week, I shut up shop just a year after opening.

It's not enough to write software that only I use, it never becomes anything beyond my limited sight. There's something about users who complain and show you exactly what isn't working and why it needs to be fixed. Something about those who want to tinker with the device, who break it open and find ways to make it do things I couldn't have anticipated or even if I wouldn't use, is still pretty damn cool.

Over the last two weeks, an idea has been forming in my mind, one that I've actively been working on.

Frankly, I don't want to reveal too much right now, I want to have more to demonstrate first, what I will say is that it involves a Raspberry Pi, Music, the web and is called 'Etin'.

So... really that's it for now. I hope that I'll have the chance to do more, I spend my evenings and weekends working on it and I've got 5 people who are willing to test what I have, which is great, but for now, I'll have to first finish the software and scrape together enough money to build a handful of prototype devices.

Stay tuned, I guess.

Thursday, 18 July 2013

Back, kinda

So I was away from blogging, I may be back, I may just be making random hate fueled commentaries on things that annoys me, we'll see.

Today it falls to Microsoft's office suite (2013), it is horrific to say the least.

It burst onto my screen after our mandatory upgrade to the latest and greatest at work. Anything that proclaims to know what I might or might not like I often get frustrated because I am a very specific person, with me the slightest imperfection or visual glitch can cause me to loose faith in a product.

This... Well, I'll try, but I have not the hate filled bile spewing words of derision I'd like to have.

Oh really? Well I think I won't. Your move Microsoft.

Once I'd gotten over the shock of an audacious claim by some engineers who never asked me what I'd like. I launched into the main interface.

I rapidly closed my eyes and reached for my sunglasses, I thought we'd been nuked, everything went a brilliant white, like a new born sun. The interface was pretty much uncomfortable to look at. What come to mind is that some neo-nazi hate group were handed the ui design work and given free reign over every aspect of the project.

"White power! White power! White power!"

In its defense one can change the office theme, although most of them feel childish and distracting.

The ribbon interface hasn't changed much, I don't quite know where anything is and I refuse to use it because I maintain it's a design nightmare. It feels like the early 90s when everything was big and blocky for no reason. Many things were left in the 90s for very good reason.

Now I don't like ribbons, the image of fleeting, fluttering annoying things comes to mind. In fact what comes to mind is a ribbon (or multiple ribbons) that is (are) attached to a child's bicycle. Now it is entirely subjective if these are aesthetically pleasing to a person, not me. I hate them.

The analogy does not end there.

I don't know if you've ever had to stand near a child riding a bike with ribbons attached to it, if not, let me describe the experience for you.

You are minding your own business doing your own thing and you hear the gleeful screams of a small child over enthused by the fact their bike (which depending on how recently their training wheels came off could be very unstable) has whip like appendages billowing in the wind.

This is your first sign that trouble is coming.

What do you do? You get out the freaking way is what you do.

This child could fall over and cry to the nearest adult and you have to deal with something that you wanted nothing to do with but now have to deal with anyway.

If that doesn't happen and the child doesn't fall over and you haven't yet gotten out the way? You'd best prepare for a whipping by proxy as a gleeful child cycles around in circles celebrating it's new toy while you are left repeatedly slapped in the face by something you don't want near you and just wish would go away.

That is how I feel when I use this version of office; Repeatedly whipped in the face by something that shouldn't even be there while I'm trying to get my work done.

Finally my biggest gripe are animations they make office feel slow and 'retro' i guess is the aim but it really frustrates me. I can hear the faint "you can turn them off" but that isn't the point. Why the hell were they enabled in the first place? It does not add any value. 

As usual I just use Google docs to get real work done. It just gets the hell out of my way and assumes I know what I am doing.

Wednesday, 26 September 2012

Ubuntu and Amazon search

So Ubuntu is getting the ability to search Amazon direct from the home lens. From the reactions I am seeing online you'd think they'd advocating kicking puppies or stealing children's allowance!

Frankly I am really happy to see a Linux distribution innovate and develop their own way of doing things, the thing I'm seeing all over sites is that it's adware. I feel like these people have missed the point, that this is only the first step towards a web enabled desktop, I have no doubt that there will be Facebook, Twitter and maybe even Google results aggregated into your desktop.

Imagine a desktop that didn't require a browser because the search engine is built into system. The web browser itself would become little more than a web viewer, because the desktop and web blend seamlessly into one product. Wasn't that the dream way back when? You know, before Microsoft decided that they didn't want a platform to compete with Windows?

I've said it before in a previous article that I believe the future of desktops will be search focused instead of the more traditional WIMP paradigm. The fact that Canonical are moving to have web results along with local results will be the logical conclusion to a desktop that uses searching to get around.

I will admit to some scepticism about how integrated it will be at first, it's for that reason I tend to only use LTS releases, but I can see the use, I'll probably wait til the next LTS though, just to wait for it to get some extra love and attention (and the other cool features that will no doubt make their way through the pipe line).

So anyway there's some concerns about this and Mark Shuttleworth has addressed most of them. I wont bother to re-hash the issues and answers, but he does have a point, if you don't want experimental new features don't use anything other than the LTS releases. This is what the LTS releases are for!

Really though, it sounds like a cool feature and I congratulate Canonical for continuing to innovate and refresh the desktop. It's hard to remember when I last got really excited about technology.

Even if I don't use it full time I'll at least give 12.10 a good go and I'm sure I'll like it.

Friday, 17 August 2012

My impression of Windows 8

I was always told that If you have nothing good to say, don't say anything at all.
The end.

Tuesday, 14 August 2012

Why Ubuntu 12.04 is the best desktop experience the free software community has to offer.

Unity, love it or hate it, it's here to stay. I recently gave it a try and had to just stick with it and in this following blog post, I'm going to argue why Ubuntu 12.04 is the best desktop experience that the floss community has to offer!

So what's so significant about it? Well it's not just about flashy graphics, this release is a long term support release, this means that 12.04 is supported longer than the usual 18 months and not just any LTS release, this LTS release is supported for 5 years.

Let's let that sink in a little bit, 5 years, that's a lot of faith in a product. One that comes with an interface that, let's face it has had a lot of bad press over this last year and that's something to bear in mind, it's only been a year!

What really makes Ubuntu 12.04 stand out is how very different it feels to the usual Gnome/KDE/XFCE interfaces. Now each interface appeals to a certain user, this is why such choice exists in our community, but Ubuntu is positioning itself as a direct competitor to Windows and Mac in the desktop space, both of which have been revolutionizing their interpretation of the next generation of graphical interfaces.

This is the important thing to take note of, Unity is a next generation interfaces. With the recent exception of Windows 8, the Microsoft operating system has largely had the same basic interface since 1995, seventeen years of the same graphical interface metaphor.

Which is all a graphical interface is, a metaphor for a desktop.

Desks with their files, folders and staplers etc.

Since starting a career in computing most of that "desk work" is done on my digital desktop and while one could agree the metaphor of files and folders is still useful and helps visualise an electronic based task by using familiar real world concepts, the whole thing starts to break down when you need to stitch two PDF files together.

The point is that in the early days a graphical interface imitated the real world. That way new users would have common conceptual reference points, however with computers so ubiquitous in our day to day lives the metaphor doesn't seem quite as useful as it once was.

This is were Canonical have it right, we should start fresh, study how users use their computers these days and develop an interface based around how we interact with the digital. To that end they have done some user testing (here, here and here) and used that as a means to develop and improve their home grown Unity interface.

Here's where I really commend them, they developed a vision and were uncompromising in their realization of that vision. Sometimes you just gotta knuckle down and take a few beatings for sticking with your visions. Apple have been deciding what they think is the right interface for years now and it's worked for them to the point of being viewed as a leader in the Interface world. So if following an unorthodox (at least in the open source world) methodology will ultimately result in a great open source user interface then I certainly have no problem with them adopting a more rigid development method. I also take care to remember that I have not paid a since penny on this OS and that I am not entitled to anything except what I am given.

Anyway lets look at Unity.

If you have not used Unity before it's a bit different, one can see where the various inspirations came from, it has a menubar at the top of the screen (a la mac), a dock/launcher to the left of the screen, which is the go to location for application management and a rather good looking overlay which allows you to search, run and manage your installed applications and documents.

Here's how my desktop currently looks:

Immediately visible along the left of the screen is a dock type application, there's arrows which indicate which applications are open, an arrow on the left of the icon indicates the application is open, an icon on the right indicates that the application is focused.

These are tiny little additions that contribute to a fantastic user interface.

The overlay thing.
You can see several things here, in the top left you have the window controls, in all full screen applications the window controls are always located there. At the bottom there are five icons, these are known as lenses they one to filter results, additionally there's a means to further refine your search results.

Now, you might be forgiven for thinking that it's not vastly different from say, the LaunchPad feature of OSX, but more functional.

Not a lot of difference is there?

Another big feature is the HUD, a means to perform actions that are in the menu but instead of having to click through the menus, it enables one to search the menu by just typing, like so.

As I'm sure you can see this is something of a break in the desktop metaphor, it seems to be driven towards the concept of text input. For years I have been seeing various users using various bits of software for quick launching things based on entering a search string.

Even care has gone into the preference settings, it's a fantastically complete solution, which again allows you to search inside the preferences.

It's not just the graphics though, Ubuntu 12.04 comes with it's own cloud based file sync application (Ubuntu One) that's also available on your phone so you can use Canonical's offering over all your devices.

Finally the variety of free and paid for applications available in the Ubuntu Software Store is fantastic, I was expecting almost no paid for applications, but almost every search produced some premium results, which was encouraging.

This is stuff both Windows and Mac are pushing hard towards and why should we do something different simply because it's what someone else is doing, arguing that one shouldn't do something similar that's popular sounds very much like not invented here to me.
 A gret 'feature' is that the interface in all it's advanced graphical glory, can be operated entirely without the mouse, something that a short cut junkie can really appreciate, but by the same token one can still do everything using the mouse, should they choose to.

What it boils down to is the fact that Ubuntu isn't just about the interface (which is frankly stunning) it's a complete end to end solution, with an apps store, cloud integration and excellent preferences management all wrapped in a simple yet powerful next generation graphical interface.

And it's only going to get better.

EDIT: I also forgot to mention that there's also a back up and restore method that allows you to perform incremental backups, this is in the style of Apple TimeMachine and again it's integrated into a central preferences application.

There's also the Ubuntu font face, now, I don't think creating one's own type face was strictly necessary, but it looks very good and does create a unique brand, much like Mac had Monaco for years as the default font. There's merit to it, and the mono space variant is great for programming in Vim!

All these little things add up to create a very polished, functional unique branded desktop experience.

Thursday, 9 August 2012

Confessions of a Vim geek

Ok, so I tried to stay out of the editor wars, I went so far as to write my own text editor! I was sure I'd never have to touch vi beyond that damn annoying visudo command and in University I had a really bad experience experience with Emacs, and I haven't touched it again since. I saw no need to look into either text editor.

However I started a new job back in March and had to use a 'real' text editor so it was either Emacs or vi.

When the flashbacks were over and I'd stopped twitching, I looked at Vim as my editor of choice, I wont use Emacs if I can avoid it. Period!

It was rather overwhelming at first, I resented the fact I had to use an editor that were so old, ugly looking and confusing.

As I begun to use it in my daily work, I thought I was experiencing Stockholm syndrome or something because I quickly began to notice a change, it was small things at first, I instantly went to "esc:w" to save documents in Word and in Firefox I hit "/" to google anything, it was like a perverted digital infection that was getting inside my head.I found myself doing things the Vim way, almost naturally.

It came to a turning point when I needed to remove the Windows end of line character on a Linux machine (when the hell will we have this fixed?), I can't remember the specifics, it was in the days before I believed, as many of you do, before my eyes were opened.

It was insane, but it was a varient on the ":%s/\^M//gc" or something like that, it was like magic, dark, secret, arcane magic and it was mine.

The power of Vim comes from it's complext command system, oh that and scripts...

Scripts are the beginning of the downward spiral for me, give me infinate ways to customize something and I will be unable to make it perfect, close to, but not absolutely perfect, but this is where I reveal my perfectionist nature. There is a script for basically anything one might want to do, you can download them all from here. Some work well, others don't, your millage will vary.

It's definately not a friendly text editor, I'm still learning the basics, the hjkl navigation thing is the hard thing to keep my hands in the right place. Twenty odd years of muscle memory of using the arrow keys or wasd will make a transition hard, but ultimately worth it. There is a certain amount of determination and work that has to go into learning Vi(m), like any skill you get back what you put in. I don't know that I would have taken to it so quickly, had I not had someone in the office on hand to help me learn Vim.

There was certinly a lot of customizing work I had to do to the editor to get myself comfortable with it. It was like getting a new chair and having to work that you sized groove into it, I'm still working the groove in because there's some scripts I installed and need to remove and likewise I've found some nice themes, but I will need to adjust them a bit, but it'll get there.

If you haven't used Vim before it's worth giving it a shot if you have need of a text editor, however the text editor is an unusual piece of software largely relegated to hardcore programmers, however I would argue that this recent trend for distraction free writing environments could do worse than use Vim as a base.

All in all my journey so far has been fun and I am still learning and truthfully I wish I'd learned it earlier.