Thursday, June 30, 2011

The eagle has landed: handed my bachelor thesis in

Today I handed my bachelor thesis in. Since it's a public document, I also plan to release it into the w(i)lde world web, but not until after my final exam and I'm finally Bachelor of Science in Engineering. That'll only take two more weeks (hopefully). Until then you'll only get the (german) titles of the two parts:

  • Integration eines Cloud-Computing-Diensts in eine Android-Applikation
  • Interaktive, Web-basierte Visualisierung komplexer Personen/Firmen-Netzwerke eines bestehenden CRM-Systems


Tuesday, June 28, 2011

Yes, comments are important!

I'm currently a little bit stressed and won't have time for much development the next few weeks, because as I already told you, my final exam for my bachelor degree is in almost two weeks. There is much to do and study, so don't expect any updates for my apps until after that exam.
Nevertheless I'll try posting on a regularly basis and today's entry is about comments – more precisely comments in source code.
Comments are something very important. Every developer should know that, but not everybody uses them as often as needed – I'm no exception.

First of all!
You don't have to comment each and every line of your code, but those parts, that are hard to understand, when reading them. Don't make excuses – even if those parts were hard to write, they don't have to be hard to understand.
But not only code parts that are hard to understand should be described. I think at least every public method should be documented, because it's very likely that someone will call it. Even if you work alone on your projects and don't release them under an Open Source license. Maybe sometime you change your mind and let someone help you: that's when it's too late, because writing comments for a medium to large project is a pain in the ***.

Now how should you write comments?
The way the coding conventions for the programming language describe them. Don't be ignorant! Those conventions will help you, because there are many tools that allow you to automatically generate API-documentation.

So why don't I always comment my source code?
As you maybe noticed: the source code from the Geocaching Helper for HP TouchPad doesn't include comments. That's because I wanted to finish the project as quickly as possible and I knew that there'll be not many files. In this case, documentation can wait until after my final exam ;)
If you knew the source code I wrote during my internship, you would think I'm crazy: There is not one single method that isn't documented (not even trivial ones)! Any why? Because I want the company to know what every method does, without reading a single line of source code.

One last thing!
Some people also write comments for blocks (see the example below). Please don't. I have often seen those comments and never understood why they should be useful. Some people argue that they make it easier to see block end and know where they belong. I don't think so. They are only overhead in writing and consume more toner/ink when printed.

if (writeComments) {
} // if

I hope you liked this entry. If you disagree, write a comment below or contact me. IF you agree, also write a comment ;)

Labels: , ,

Monday, June 27, 2011

Sudden increase in downloads: Geocaching Helper for BB PlayBook

I just noticed that after my release of version 2.0.2 of the Geocaching Helper for BlackBerry PlayBook it's downloads increased rapidly. More than 45 downloads in one day compared to the average 2-5 downloads a day. The problem though, is that I don't know if those downloads are new installs or just updates.
The BlackBerry App World Vendor Portal is not really good, because generating statistics is too complicated and the only statistics you can generate are download and purchase charts – which aren't even interactive. Just look at the following image and you know what I mean. It displays the download-chart that a vendor gets from BlackBerry. Very sad, especially if you know the Android Market Developer Console.

Even though the vendor portal doesn't provide much information, what annoys me the most is the y-axis of the download-statistics: why do they show 0.5-steps? Is it really possible to download half an app and is the App World really capable to count those half downloads? And even if it can, it's certainly not useful!

Labels: , , , ,

Friday, June 24, 2011

Geocaching Helper for BB PlayBook 2.0.2 released

The BlackBerry App World reviews got fast. I just received the approval mail after uploading the new release yesterday – only one day for approval is very fast compared to the first few weeks ;)
Compared to other app stores it's unbelievably fast ;)

Get Geocaching Helper for BlackBerry PlayBook v 2.0.2 now!

Labels: , , ,

Geocaching Helper for HP TouchPad already approved/published [updated]

After my second submission, my first app for webOS 3 (or HP TouchPad) got approved very quickly. It should be only but currently the HP Web Catalog just says "The application is not currently available. Please try again later." I think that's because there are no webOS 3 devices yet – hopefully it's true and the HP TouchPad will hit US stores on July 1st and more countries shortly after that!

Looks like the Web Catalog just needs some time until it can display published apps. The Geocaching Helper for HP TouchPad is now online!

Labels: , , , ,

Second try: Geocaching Helper for HP TouchPad submitted

Two day ago I proudly announced that I submitted Geocaching Helper for HP TouchPad into the HP App Catalog. Unfortunately I used the wrong icon for the whole project (and didn't realize it until yesterday) so I had to request rejection of the submission. Now comes the catch: when requesting rejection, a member of the review team has to approve that rejection – I (and apparently nobody else) knows why. Today the rejection was finally approved so I just submitted Geocaching Helper for HP TouchPad a second time. This time with the right icon. Now I hope that the approval of the app won't take that long and the review team won't find reason to reject the app.

By the way: when my rejection request finally got approved, I didn't even get an email...

Labels: , , ,

Thursday, June 23, 2011

New version of Geocaching Helper for BlackBerry PlayBook is on it's way

I jut submitted a new version of the Geocaching Helper for BlackBerry PlayBook to the BlackBerry App World. The new version (2.0.2) fixes some bugs in the text calculation module: the reduced sum was not always correct and the phone-mode also had a bug in it.

I didn't include new features, even though I already implemented pats of a new module – I just wanted to fix things first. The new version now requires the users to have version 1.0.6 of the BlackBerry Tablet OS installed, so just go ahead and install it ;)

The Geocaching Helper for BlackBerry PlayBook is not yet released under an open source license because there is some cleaning up to do. Hopefully I'll have time for this over the next couple of weeks.

Labels: , , ,

Geocaching Helper for HP TouchPad is Open Source

As I announced yesterday, the Geocaching Helper for HP TouchPad is now Open Source. I created a a repository on GitHub and uploaded the source code. Now the review team of HP just has to approve my first release and as soon as the HP TouchPad is launched, you can use it and even change the source if you like to.
If you do so, I would appreciate it if you contacted me (or just forked it on GitHub) so I can merge the changes if I like what you did.

By the way: here's the repo. I also created the organization GeocachingHelper and if someone forks one of the Geocaching Helper that will be released there and creates new awesome features, I maybe consider adding them to the team.

Even though it's possible (thanks to OS), I ask you not to fork it and just create a new release for the HP App Catalog – I think one app should be enough and as mentioned earlier, awesome features can and will be integrated in the existing solution.

Labels: , , ,

Wednesday, June 22, 2011

Geocaching Helper for HP TouchPad (webOS 3) just submitted into App Catalog

After some development I just submitted my first app for the HP TouchPad (webOS 3) to the HP App Catalog: the Geocaching Helper for HP TouchPad (yes, I also renamed it). I hope it'll get approved because even though developing with the new webOS 3 frameworks is really easy and powerful, it was hard work.

By the way: the app will be free (as the Geocaching Helper for BlackBerry PlayBook) and I'll release it under an open source license: the GPL. I never really liked the GPL but for this project it's the right one. I'm also going to release the Geocaching Helper for BlackBerry PlayBook under this license but there is yet some work to be done. I'll use GPL v2 because HP apparently does not support v3 yet...

Labels: , , , , ,

Me: Favorite IDE [updated]

Let's continue the series about me and talk about IDEs I use and those I also like.
There are many powerful IDEs out there that I didn't have tried yet. Be it because I'm not willing to pay only for testing or because I already have another IDE for that programming language that I like. Because I use many different programming languages, platforms and operating systems (targeted and used) there is not only one favorite IDE but more.
In the next view paragraphs I'm going to talk about some IDEs and what I think of them.

Let's start with: Eclipse!
It's the first IDE that comes to my mind when thinking of IDEs because it's the one I use the most. Eclipse is really great, even though it sometimes can be a little bit slow. The thing I love about Eclipse is the possibility to add new programming languages and other features through plugins – they (and Eclipse) are not always perfect, but as Software Engineer I already know that there is no such thing as perfect.
I use Eclipse not only for Java (and of course Android) but also for JavaScript (common web projects or webOS), LaTex and of course ActionScript/Flex (via Adobe Flash Builder which is built upon Eclipse).

Second: Visual Studio!
There is no other IDE that is as good as Visual Studio when it comes to .NET. It's sad that I can't use it on different operating systems but I don't see the point of .NET being used on other platforms that Windows (let's be honest – Mono isn't a bad idea but what's the point porting .NET without the awesome WPF-UI-capabilities).
As expected I'm using Visual Studio for my .NET-projects (C#, Silverlight, ...).

Last but not least: a common text editor (maybe with highlighting capabilities):
There are many text editors out there – at least for Mac OS X. All those other programming languages is use only get the love of a common text editor. I don't have a favorite there because those on Mac OS X are not even near perfect (I tried Coda, SubEthaEdit and many other editors...) and on Windows there's only Notebook++ (and I don't use Windows that often).

Not mine: NetBeans!
Now there's also NetBeans... I tried it but never really liked it. Maybe the user interface is a little bit more beautiful but I miss the possibility to configure almost everything like in Eclipse. Also the project system is strange, because you have to choose a main project – what the heck? Why can't it just run the project I'm currently working on like Eclipse does?
So I currently don't use NetBeans but maybe sometime I'm going to try it again.

But wait, there is more: XCode!
I almost forgot about it because since Version 4 I don't use it any more (and I didn't yet use Objective-C that often). It's nice and maybe powerful (iOS-developer will tell you that it's magical) but I can't really talk about it because I didn't use it that often yet.

Now that concludes my short list of IDEs I use and (don't) like. There are certainly many other IDEs that I have yet to try but at the time I'm satisfied with what I have (the only IDE I'm curious about is IntelliJ IDEA because many developers recommend it).

Labels: , , , , , , , , ,

Tuesday, June 21, 2011

Coming: Geocaching Helper for HP TouchPad [updated]

Another post about a project, but this time it's a project that I just started (kind of a new series ;): a port of the Geocaching Helper for BlackBerry PlayBook to webOS 3. It's the first time I'm developing for webOS and it feels very good.
I got access to the webOS 3.0 SDK beta program and am really impressed. Not only is the OS very nice (tested via the emulator) but also the new Framework Enyo is absolutely amazing and easy to use.
I hope that I can finish my app this week and when the first webOS 3 device launches later this summer some people will actually use and like the Goecaching Helper for webOS 3.

By the way: as mentioned before, there is a webOS emulator but in order to test your app you don't have to use it - webOS-apps work just fine in Google Chrome. Even some os-service-emulation can be easily done!

Labels: , , , ,

Monday, June 20, 2011

Meet: Geocaching Helper for BlackBerry PlayBook

My second project I'd like to promote is my first public app for the BlackBerry PlayBook: Geocaching Helper. This time I won't bother describing what the BlackBerry PlayBook and Geocaching is, if you don't know, just follow the links ;)

Geocaching Helper for BlackBerry PlayBook is a small app for the BlackBerry PlayBook that helps geocachers solve several and common problems that sometimes need to be solved during a geocaching trip – like text calculation, simple cryptography or conversion between different coordinate formats.

I started development in march, because I read about an offer RIM had started: those who developed an app for the upcoming PlayBook will receive a free PlayBook as reward. I didn't think one minute and started downloading the SDK and IDE to develop for the PlayBook. As I already knew how to develop using Adobe AIR, it was easy for me to participate.
Not many development hours (but many days later) I finally submitted the first version of my Geocaching Helper and it was accepted. Since testing was at first only possible with the simulator, I was satisfied, but as soon as I received my free PlayBook I had to update the app because the first design was very ugly.
On June 7th I released version 2.0 of the Geocaching Helper for BlackBerry PlayBook with a better design and more features.
This is currently the last version and it includes the following features:
  • Text calculation (character sum, character count, ...),
  • Text cryptography (ROT13, Vigenère cipher),
  • Roman number conversion and
  • Convert between different coordinate formats (DMS, MinDec, DecimalDegree).

I already started development of a next version that includes new features but don't expect it to be released soon, because currently there are more important things to be done.

It's not easy to know how many people installed and use this app, because the BlackBerry App World doesn't offer extensive statistics. I can only tell you that Geocaching Helper got rated and reviewed one time and each day about 2 to 5 people download it.

I hope I could interest you in this second project and that you're going to check out my Geocaching Helper for BlackBerry PlayBook*. Don't be shy and review it if you like it ;)
Also, if you have ideas or find a bug: write a comment or contact me! I'm always open for suggestions!

* If your not on a Windows PC, the first time you open the App World Webstore it won't redirect you to the app, confirm the warning of the first try and open the link again.

Labels: , ,

Me: A little introduction

Let's start a second series: "Me". In this series I will tell you more about me as a developer. I'd like to start with some questions that I answer:

Who am I?
My name is Dustin. You might also (get to) know me as alopix, the nickname of my choice. I'm male, 21 years old and a Software Engineering student at the Upper Austria University of Applied Science, Campus Hagenberg. But in roughly a month I'm going to be a BSc, so beware of more projects coming up when I finally don't have to study for the final exam any more ;)

When did I start programming?
I can't really pinpoint when I first started programming but I think i was around 14 (so about 7 years ago). I only know that I started making static web sites using frames, html and pictures. Soon I found out about PHP and "don't use frames", so I started using CSS (with tables ;).

What (programming) skills do I have?
Let's start with programming, query and markup languages (and some frameworks) I can develop with:
HTML, CSS, JavaScript, jQuery, PHP, XML, XPath, XQuery, Borland Pascal, C, C++, Java, JSP, JSF, Spring, C#, XAML, ActionScript, Flex, MXML, SQL, LaTeX.

Now some languages I know but never use (I would require a book to remember the details):
Objective-C, Python, BASIC, Bourne Shell, Go, Mathematica, Microcode, PL/SQL, COM.

Of course I know more than programming languages:
Those things that you learn when studying Software Engineering (Software Project Engineering, Databases, Software Architecture, Open Source Development, Soft Skills...) and other things people need to know, but they are not relevant in a developer blog ;)

What's next?
Next is the masters degree course Mobile Computing (again in Hagenberg).

I think this is a good start, to get a first impression of me.


Meet: Simple Battery Widget for Android

With this post I'd like to start my first series called "Meet". This series will be about projects that I already started or am about to start and, of course, want to promote.
The first of those projects is my first public released Android App or better Android App Widget: the Simple Battery Widget.

For those who don't know what an Android is: shame on you! There are certain things everybody has to know and one of those things is Android. Simply put, Android is a mobile operating system developed by Google.
Those who know Android and maybe also own an Android device but don't know what an App Widget is, another simple explanation: App Widgets are mini-apps that can be embedded in other applications (mostly the Home screen).
I think that are enough side notes, let's come to the main part of this article: the Simple Battery Widget.

Simple Battery Widget is – as the name suggests – a simple battery (app) widget for Android 2.2 and later.
It simply displays the current battery level in text and with a colored circle.

I started development of this widget in early April 2011 after not being satisfied with all the battery widgets out there. I wanted something easy to use and something with a plain user interface. After some quick days of development and testing i finally released the first version to the Android Market on April 11th.
This first release was very simple. It just listened to battery changes and displayed the percentage and a colored circle (which changed colors for certain battery states). I was satisfied but wanted more customization, so I added a new feature: custom colors for the circle. Version 1.1 was released just 3 days after the initial 1.0 release.
But I was not yet satisfied. The next day, April 15th I already released v1.2 which included some bug fixes for devices with small screens and new features:
  • clicking on the app widget now opens a dialog that displays battery-details and
  • modify the widget's colors without having to add a new widget.
That was when I finally was satisfied.

Now of course I was and am not perfectly satisfied with v1.2 (and got a user request to add a new feature), so I already started development. But there are and were more important things to do, so the next version of my Simple Battery Widget will not be released until end of July.

Currently my Simple Battery Widget got downloaded 848 times since the first release but apparently only 42% liked and kept it. I hope more people will use it in the future and more importantly more people will rate and write reviews because there are currently only 8 ratings and no review.

I hope I could awaken your interest and you're going to check out my Simple Battery Widget for Android and maybe also review it. In the Android Market you can also find more information about the widget.
Also, if you have ideas or find a bug: write a comment or contact me! I'm always open for suggestions!

Labels: , , ,

My developer blog

Today I decided that it was time to start a developer blog. Not because there are not enough blogs out there (because we know, there already are), but because I wanted a central point where I can post news about my projects.

This blog will give you insights about the different projects I'm currently working on and planing. I hope it won't fail and I'm finally able to promote my apps a little bit ;)

I chose Google's Blogger platform because it's easy to use and I don't have to worry about updates and so forth.