It’s not that I hate GUIs, I just like CLIs

July 7, 2009

I’m a big fan of the command line. I find that using it is many times a lot faster and more efficient than going the “clicky-clicky”-route via a GUI. Also I often find graphical user interfaces highly restrictive. A GUI is only as good as the designers ability to predict every possible thing that a user would need to do with it and because of this there is no such thing as a perfect GUI.

This is especially true with GUIs that are in reality just a pretty face on top of a console application, which is many times the case. Take for example a graphical front-end to a webserver-application like the Apache Web Server. To cover all bases this GUI would have to make it possible to do and configure exactly every part and function of this complex piece of software with the same precision as you can when you manually edit the configuration-files in your text-editor of choice. I just don’t see how that would be possible without making the GUI a cluttered and hard to use mess, which totally defeats the purpose of using a GUI to begin with. And what if you stumble upon a situation where the GUI lacks the needed knobs and switches needed to configure the underlying application to behave in a particular way? Well, then you’d have to drop down under the hood and go command line wouldn’t you? Now wouldn’t you have been better off being there the entire time then? You might even have picked up something about the application that you didn’t know before just from mucking about closer to it’s innards, which is always a good thing.

Another thing that I really like about CLI-apps is that you can combine them with each other piping input and output all over the place to create new functionality. This simply isn’t possible with a GUI-app because it lives in it’s own little world inside a window full of buttons, sliders, whistles and bells and almost always impossible to get to play nice with other apps unless it was specifically built for this to begin with. A CLI-app that accepts and supplies communication from stdin and stdout has no such limits and at the command line they all come together with incredible power that can never be mimicked by any GUI on earth, no matter how shiny it is.

There are also computing environments where I believe that GUIs have no place at all. One such environment is on a server machine. Why suck up resources from the server by forcing it to power a graphical environment with windows, button and such? It’s a waste of precious computing power and darn right stupid if you ask me. Naturally, by saying this I am also saying that no incarnation of the Windows OS has any place on a server, which is completely deliberate 😉

However, don’t get me wrong, GUIs definitely have their place in the world of computers. Not every user is a power user that needs to control every single byte of data and naturally there are apps that would be simply unbearable or at least highly impractical as CLI-apps. Web browsers for example are no fun in a command line environment and playing media like movies or flash animations is simply not possible. For the menial day to day computing tasks such as browsing the intertubes, handling e-mail and thousands of other things a graphical environment is preferred over a command line based one. But sooner or later I always find myself back at the prompt writing commands with twelve arguments and piping here and there, simply because for me it makes sense. I feel in control and not at the mercy of whoever designed some jumble of buttons and windows believing that his vision is what I and every other user wants and needs.

For my love of the command prompt I’ve even been called a GUI-hater (as a joke though) but that’s not true. I don’t hate GUIs, I just really like CLIs.



The AppStore fiascos of late and the iPhone-conundrum

May 15, 2009

Just like millions of other people I was really excited when Apple announced the AppStore for the iPhone. I immediately thought that this could be the thing that makes the iPhone a great buy despite the hardware failings (pretty cruddy camera, no video recording, no real bluetooth support, etc.). However, it wasn’t long until I no longer felt this way.

First there was the fucking NDA that created an inhospitable environment around iPhone-development and made it impossible to build any kind of community around it. Apple finally made good on that one but it took way too long and that they had that crap in place to start with is inexcusable anyway. What were they thinking?

AppStore - crapstore

AppStore - crapstore

Secondly, and this is a big problem that still remains, there’s the whole fiasco with the approval process to get your apps to the AppStore. Since Apple has the final say-so on what gets published on the AppStore and there is no other way to get apps on a non-hacked iPhone if they deny your application to publish your app on the AppStore you’re shit out of luck.

Now that’s bad enough, but what makes it even worse is that there seems to be no clear guidelines as to what gets approved and what doesn’t. Some apps have been denied while other apps with almost the same functionality have been approved. Is there an official way to appeal a denial? I don’t know for sure, but I don’t think so.

One app in particular stirred up a lot of attention from the blogosphere and the internet in general, the NIN-app, published by the band Nine Inch Nails. The whole debacle has been well publicized elsewhere so I’ll not get into it in detail but basically the app was first approved but then just a short while later the developers released an update which was denied into the AppStore, which in turn, if I’m not mistaken, made the app unavailable on the AppStore. The reason for this was that you could apparently access some son (via streaming I believe) that had “offensive lyrics” or something like that through the app. OMG! There’s swear words on the internet? Meanwhile you can buy a million gangsta-rap songs on iTunes that contain a multitude of fucks, motherfuckers, “kill whitey”, bitch and other “offensive” things as part of their lyrics. But I guess that’s OK since those songs supply Apple with steady revenue.

Anyway, after a couple of days of uproar on the web by thousands of Nine Inch Nails-fans the app was re-evaluated and finally approved. Now what if this app hadn’t been published by a successfull rockgroup with a very solid and borderline rabid fanbase? Apple themselves have bragged about how awesome the AppStore is because it has turned one man software development companies into successfull businessess and enabled developers to live the dream of being their own boss and still make a solid living. What if an app developed by one of those companies was rejected for some obscure and/or stupid reason thus strangulating their cash flow completely? That could mean disaster and bankruptcy in a worst case scenario and how do we know this hasn’t happened already to some poor unfortunate developer?

Now another app has been rejected for the most moronic reason. As reported by a remote control app for the popular cross-platform BitTorrent-client Transmission has been rejected because according to Apple “this category of applications is often used for the purpose of infringing third party rights”. That is such total and utter bullshit! You’d think that a company that actually makes software would know better than to damnify an entire class of technology because it “could be used to do wrong”. Hey, let’s ban Safari then because using any web browser you can easily find illegal stuff on the internet and download it and you could also use it to access the web-GUI for Transmission! Let’s ban cars because they can be used as getaway-vehicles in bank robberies. BitTorrent in itself is just a protocol and it’s used for lots of legitimate things. Banning applications based on them using a specific kind of technology is stupid beyond belief.

Just a couple of weeks ago, days before the whole Nine Inch Nails-thing got started, I was seriously contemplating getting an iPhone since the prices have now dropped to a reasonable level and the amount of good apps appeared to make it a good choice for a new cellphone, which I am very much in need of. I was also looking at the Android-phone, the G1, and thinking it may also be a good alternative. I do however own an iPod touch which I love. It really is an awesome device which I use everyday. But if I could have that plus a great cellphone in the same device that would be very nice. For this reason I may never completely be able to write off the iPhone as a candidate for a future cellphone.

However, with all of the crap that’s been going on around the AppStore lately I’m really not considering an iPhone anymore. So now I’m basically holding out for the next generation of Android-phones. The Android-software is just as good as the iPhone-software, maybe not as sexy and Apple-ish but I can live with that, and most of all it is based on open source and a platform not encumbered by the problems discussed in this post. So you could say that you lost me again Apple, and for such stupid reasons.

What Apple should do is let people install whatever the hell they want on their phones. If I bought the phone and paid for it I should be allowed to do whatever I want with it. If I want to install an application that floods my screen with random swear words who are they to decide that isn’t appropriate? If I want to use an iPhone to monitor my torrent-downloads that’s none of their business. If I’m doing something illegal that’s what we have law enforcement for. Basically, butt out of your customers’ business Cupertinoites.

Naturally, they should keep the AppStore because it is great to have a source for apps that Apple vouches for so to speak. But if I wanna take a risk and install something that Apple doesn’t deem worthy of publishing in the AppStore I should still be able to do that. This would benefit everybody involved, developers, iPhone-owners and Apple themselves, since it would make the iPhone an even more appealing platform.

But until radical changes are made I’m most likely to go Android for my next cellphone. The future will tell.

Crowdsourcing your iTunes music with PHP, AppleScript and Twitter

February 20, 2009

The other day I was catching up on the last few episodes of Hak5, one of my favorite internet-TV shows, and in one episode Darren Kitchen was doing some neat tricks with PHP, Twitter and VLC. This got me thinking about what other kinds of fun projects Twitter could be used for.

Twitter is a great service, not very reliable however (fail whale anyone?), and there are already plenty of mash-ups that uses it for various things. My idea was to use Twitter to select what plays in iTunes. People could send me replies with songs in them and if the song was in my iTunes-library it would be played, as simple as that. Not very useful, but a fun experiment if nothing else. So I started coding.

In order to control iTunes I had to delve into AppleScript for the first time. I find it to be an odd language, but whatever, for this project it’s definitely the most appropriate choice for getting quick results. One of my favorite languages is PHP so that’s what I chose for the control structure of the whole thing.

A couple of hours later I had my first prototype and now an additional few hours of tweaks I give you… TwitTunes!

This is how it works:
Person #1 starts TwitTunes on his Mac. TwitTunes sends a tweet – “#TwitTunes starting” – using Person #1s Twitter-account to let the world know that it is running.
Person #2 sends a reply on Twitter containing search words. These search words are then used to search through Person #1s iTunes-library and the first matching song found is played.

Not very fancy and far from perfect, but admit it, crowdsourcing your jukebox via Twitter is a pretty nifty idea and this is my very first proof of concept 😉

If you wanna try out TwitTunes yourself you can download it here (sloppy source code included of course), and if you have any feedback I’ll be happy to hear it.

Hey Sony, how about some media server software?

January 29, 2009

I’ve been playing around with streaming media (primarily video) from my iMac to my PS3. I’ve tried a couple of different streaming solutions, amongst them MediaLink and MediaTomb, and have finally landed on the (most of the time) excellent PS3 Media Server. It’s free (as in beer), open source (GPL v2), available on Mac, Linux and Windows and it works (most of the time).

PS3 Media Server works better than everything else I’ve tried and does transcoding so that I can play .mkv and other formats that the PS3 otherwise doesn’t support. No real setup, it worked right out of the box so to speak. Install and run, that’s it. Naturally it is very tweakable and you can probably spend hours and hours fidgetting about with all the different settings.

However, just like everything else I’ve tried there are bugs, some more annoying than others, and this got me thinking. Why hasn’t Sony themselves released a media streaming solution for the PS3? I mean, Microsoft have Windows Media Player working together with the Xbox 360 and iTunes has a similar relationship with AppleTV. So I’m thinking, wouldn’t the company that actually designed the PS3 be best suited to author media streaming software for the console? Makes sense right?

I don’t know why Sony hasn’t released a media server application of their own and I don’t know if they ever will. But if they don’t they should at least make an effort to help out the developers working on these applications, publish detailed specifications, and so on. Maybe then we can have transcoding media streaming for the PS3 that works close to 100% of the time.

Until then though, PS3 Media Server will keep doing a really good job pushing my media to my home entertainment system, 1080p, 5.1 surround sound and all. And I’ll keep swearing at weird network errors, freezing video and crackling sound on the fairly few occasions those things happen.

Windows Vista provides the greatest user experience ever

September 27, 2007

Yeah, you got me. That sure was sarcasm.

A couple of weeks ago I assisted my dad in buying a new laptop. Their old laptop was state of the art when they bought it about five years ago, but today it’s not really cutting it. So, time to buy a new one.

We went to the Sony Center and there my dad fell in love a pretty sweet Vaio-machine. It’s really a damn sexy piece of hardware and after inspecting the specs I gave it the thumbs-up. Only one problem really, it ran Windows Vista.

Now why is this a problem besides the fact that I loathe Windows? Well, it’s no secret that plenty of people that have gone from Windows XP to Vista have had and still are having a shitload of problems with Microsoft’s new and sparkly OS. My dad is not a complete computer imbecile at all, he’s a pretty ordinary user. He does some e-mail, surfs the web, plays some simple online games, does his banking online, organizes photos from his digital camera and things like that. Nothing fancy, nothing very advanced or odd at all.

So, while I was sceptical I thought that since good ‘ole dad’s computer habits were nothing out of the ordinary I said “what the hell” and hoped for the best.

Silly me. Stupid damn fuckin’ silly me.

I assisted with starting up the new laptop, installing all of the bundled software (Norton Security-stuff, a bunch of Google-apps, etc.) and configured it as best I could (remember that this was my first hands-on experience with Vista and that I haven’t been a regular Windows-user for over six years) and when I left my parents’ house it seemed to be working fine.

It took about two days until I received the first desperate call from my dad about his new computer “not working”. I googled some stuff and helped him out as well as I could over the phone. That was just the first of a seemingly never-ending series of calls, and all of them had to do with the new and fancy features in Vista fucking up my dad’s computing experience. In most cases I managed to hook him up with some sort of temporary work-around to the problem that he could live with until I had the time to get over there and get under the hood of the thing.

This week however things got so bad that my dad called me to say that he needs the old laptop back (I’d borrowed it to do some experimenting on) because the new one was completely unusable to him.

He couldn’t send e-mail properly, no applications except Internet Explorer 7 were allowed access to the internet, every time he tried to do just about anything useful he was driven mad by a bombardment of security pop-ups, the list goes on and on. What finally did it though was that IE and Vista wouldn’t allow him to install the certificate for his bank, thus making it impossible to pay their bills online. Awesome. Now tell me what’s so great about Vista again? Fuck.

So here’s someone that uses computers at work and has been using Windows XP both at home and at work for the past five years. Not a dimwit at all, actually pretty computer-savvy for a man in his late fifties. He goes out and buys a brand new awesome computer for $1800 with the “latest and greatest OS” and after three weeks he switches back to his old piece of cyberjunk because he’s being terrorized by Vista. Good one Microsoft.

Seriously, Vista must be the biggest piece of shit ever released by Microsoft. When experienced XP-users can’t get the damn thing to work properly you gotta call it a freakin’ failure, because that’s what it is. I don’t give a rat’s ass if it’s “more secure” (I doubt it) or looks snazzier than XP. It’s completely unusable to ordinary computer users as proven by my dad and many others I’ve read about online.

If it wasn’t for my dad having to run a few work-specific applications (which requires Windows) on his computer I’d have him buying a Mac or switching to Linux in a heartbeat.

And you know I’m gonna have to go over there next week and spend a hundred hours “fixing” that brand new Sony Vaio. Just because it’s been soiled by Vista. Damn.

Windows Vista is a sad piece of shit and once again Microsoft should be ashamed of themselves for releasing such a pathetic excuse for an operating system.

MySpace – BAD! Facebook – better? We’ll see.

August 31, 2007

I make no efforts to hide the fact that I think MySpace is a skidmark in the underpants of web 2.0 and more or less represents everything that is wrong with the internet today. I loathe MySpace basically.

Most of my ill thoughts towards MySpace is because of the way they let people bombard their pages with all manner of crap making most of the pages on the site completely unviewable unless you wanna risk an epileptic episode of grand proportions. I agree that people having bad taste and no judgment is not the fault of MySpace, I already knew that people are idiots way before MySpace got into the game, but the core of the matter is that MySpace is the enabler here. There are tons of other communities that look really neat and that don’t make my brain’s synapses lapse into a screaming rage when I visit them.

The only thing that I actually enjoy with MySpace, and that I repeatedly curse for being a feature of said website and not some other site less worthy of my hatred, is what it’s done for underground music. It’s awesome to be able to go on there and listen to and occasionally download songs with less known bands worthy of greater fame. This is, as I see it, MySpace’s only feature worth any praise and the only reason that I don’t want it completely wiped off the internet.

Sure, it’s probably nice that MySpace helps people keep in touch and stuff like that, but that’s hardly anything new as far as online-communities go. I’ve been active on various communities on and off during the past ten years but none of them have even come close to being the cesspool of bad taste and animated GIFs gone wild that is MySpace. This is why I would rather choose almost any other community out there over MySpace.

I actually had a MySpace-account once, but I closed it down after a few months because I just couldn’t live with being a part of it. That’s how bad I think it is.

It was brought to my attention today through an article on TechCrunch that MySpace are apparently not only enablers of crap but also testy bastards that enjoy shutting down companies that supply services linked to the MySpace-site, i.e. companies that add value to their business without it costing them anything except some bandwidth and CPU-time.

In this web 2.0 day and age I think this is pretty appalling and it’s just another reason to steer clear of MySpace. Sure, they’re looking into opening up their platform to developers, something that Facebook, Flickr, Twitter and a myriad of other web 2.0 sites have already done aeons ago, but even if they do they’re pretty late to the dance and with them having behaved badly towards third party developers already I’m guessing that such a venture could be actually be a failure.

I have very little experience with up and comer Facebook, practically none actually. But although I’ve told several of my friends that have wanted me to get on there that I’m not interested in another generic online community, I’m actually now thinking about setting up an account. This is partly to check out what all the fuss is about but mainly to play around with the site and its API. Yeah, I know that’s a really dorky reason but hey, that’s what I am – a dork.

Plus, Facebook doesn’t give the members the right to soil their pages with a multi-colored vomit of Flash, animated GIFs and movie-clips. At least, that’s what I hear, and if I do set up an account that’s what will determine if I stay more than a few minutes or log off immediately and delete my account while screaming profanities at the top of lungs.

Not quite dead

May 25, 2007

In a recent article Computer World lists the “top 10 dead (or dying) computer skills”, some of the spots on the list I agree with but some I don’t.

One that I totally don’t agree with is number six, “C programming”. Anyone who claims that the C language is dead or dying simply doesn’t see the software industry for everything it is and doesn’t understand how many different kinds of software there is out there.

Fine, you might not see the latest snazzy web applications from Google being written in C or even a huge amount of desktop-applications for that matter (even if I believe that quite a lot of the Linux/Unix-apps are written in C, the Linux-kernel for one). But that doesn’t mean there isn’t a shitload of software everywhere around us written in C.

To my knowledge most embedded software is written in C. Things like controller software for household appliances, cellphones and such things, devices like that all have a fair chunk of C spinning through their circuits.

Another great example is GNU/Linux-software. The Linux-kernel is written entirely in C I believe and so is most of the apps that make up the GNU-toolset.

So basically, C is not dead or dying. Claiming that almost makes you an idiot.

The claim that the languages Cobol and ColdFusion are dying however, I can basically agree with that. They’re not dead though. I don’t think it’s fair to pronounce a language like Cobol as dead since there is still so damn much software out there that’s written in this archaic language.

The reason there’s still many mission critical pieces of Cobol code, or any dying language for that matter, running out there is simply that there are a heck of a lot of legacy systems that haven’t been upgraded, rewritten and so on. The reason for that is, in my experience, that most companies are cheapskates.

Rather than invest the time and money in upgrading an ancient system they have their developers spend time on patching the system with horrible work-arounds and crappy add-ons just to keep it going. If anybody were to suggest a complete redesign and rebuild of an existing system somebody close to the company’s finances probably would say “Why? It still works, doesn’t it?” and shut it down with a suggestion of patching it some more if there are any problems with it.

Pretty much the only thing that’ll convince the people at the top of the company food chain that a new system needs to be developed is if the old one crashes and burns completely. When that happens though, the software people are most likely to be blamed for it and having a shiny new software bundle in place and up and running will be something that will be expected of them in a snap more or less.

I really wish that the people handling the money in companies that rely on IT for their business had a little more knowledge as to what IT and software is about and how it works. That way we’d see less and less of things like medieval systems running Windows 3.11 software patched into oblivion, and I can guarantee you that most developers would me happier with putting in some extra hours building something new and exciting than spending their days fixing and working around the short-comings of ancient code bases.