Android Mobile Futon

I’ve got a new job as a web / distributed systems developer where we develop applications on top of CouchDB as CouchApps.

It is an awesome technology and I’m really enjoying it. Working with CouchDB is really simple and straightforward because it is based on HTTP as a communication medium and the data layer is implemented in JSON. Both are amazing technologies. To make it even easier for developers to work with CouchDB there is an awesome built-in CouchApp called Futon which is an administration interface to the database system.

What makes CouchDB so powerful is that it supports mobile devices too. It runs perfectly smooth on Android for example. There is a native Futon implementation for Android called Mobile Futon which was developed by Dale Harvey. There was an issue with Mobile Futon not running running on the latest Android version - Ice Cream Sandwich (4.0) and because I’m an open source believer and also wanted to have Mobile Futon on Android I decided to take a look at the issue and fix it. Admittedly the fix was quite easy as I only had to update Couchbase to the latest version and voilá issue resolved.

Since Dale is working on a new project called PouchDB and has less time for Mobile Futon he asked me if I’d like to maintain the project and I agreed.

The fixed version is already available on Google Play. Check it out and report any issues or submit pull requests!

jsFiddle Bootstrap Skeleton

I’m a very frequent and happy jsFiddle user. It is a great service for rapid prototyping. You have an idea and try it out directly in the browser. No need to go through creating a lot of boilerplate code just to try something quick.

I’m also a big Bootstrap fan because it makes quite a lot of web development things a lot easier. It lets you create basic websites in no time.

Because of jsFiddle’s awesomeness you can use every library you want with it as long as it is hosted online somewhere. Since I’m too lazy to always search for the libraries and add them to the fiddle I have just saved a skeleton fiddle from which I just fork when I want to try something with Bootstrap.

Here is my Bootstrap jsFiddle skeleton which you can just fork to fiddle with.

All hail to Microsoft … not.

I would like to take a moment to thank Microsoft for making the world a tad more complicated and less enjoyable.

Thank you!

If you wonder what I’m talking about then read this.

Windows 8 tablet drawbacks mount: ARM locked-down, x86 overpriced on SlashGear.com.

TL:DR: Vendors that want to Windows 8 certify their hardware have to enable Secure Boot without letting the end user decide whether he wants that or not. That is they lock the Secure Boot option enabled.

So again, thank you Microsoft. You are doing a great job protecting your users from the dangerous green robot and the very vicious penguin. /sarcasm

Conventional keyboards suck!

Right. By now everyone should know that I’m a proud owner of a DasKeyboard.

Back in the office, I don’t have the advantages of the DasKeyboard anymore, and I would not have believed how much I’m going to miss my shiny, new keyboard, but now, being forced to work on my old Logitech G15, I certainly feel the difference and pain having to work on such a keyboard.

The difference is that big that I have to buy a second DasKeyboad for the office to not get crazy when typing, which is what I’m doing pretty much all the time being a software engineer.

So, the message I want to deliver is that everyone should buy a DasKeyboard and dump their old ones. You would not believe how different and fun typing can actually be.

The power of abstraction on StackExchange sites

Abstraction

First things first. What is abstraction? The short answer. It is when you have something concrete and describe it in a more general, less detailed way. It is the art of omitting information to generalize something.

I said art because you have to learn what to omit and when to do it. On StackExchange sites one generally wants to either get a problem solved or to help others solve their problems.

Now in certain circumstances one might just have a problem he ran into which he just wants to get solved as quickly as possible which is perfectly fine but one can also run into a problem and try to apply abstraction when asking the question.

Why would I do that?

Why would I? You may ask yourself. Valid question. It might make asking a question a bit more complicated sometimes but by doing that you actively improve the quality of the entire site. If it is a problem more people might run into but in different ways then abstraction is the way to go to answer all similar or related questions too.

Omit certain details, don’t tie yourself - that is the question and thus the answers - down to some probably relatively irrelevant details which might help you and only you.

People will find information in less time resulting in happier users and thus a healthy community.

Less is more

Don’t exaggerate with abstraction. Most of the problems are quite specific and it just won’t help to apply too much abstraction it might even be obstructive. Just ask yourself Is this question specific to my application/system only?, Is it possible that this question does not apply only to programming language X? or Is it possible that software X/functionality Y can change in the future?. If you can answer those questions with yes then apply abstraction, if not then just don’t as it won’t help you nor the person trying to help you solve the problem.