vogella.de design update

I updated the design of vogella to make the navigation simpler. I basically simplified the top menu and added a few more sub-categories, e.g.

Blog, Social and About page

I also highlighted my Eclipse RCP and Android trainings and my books on the homepage.

This is the old homepage:

This is the new homepage:

And here is my new tutorial category selector.

I’m planning to do more work for example the individual categories pages needs an update, e.g. Android Tutorials.

A big thanks goes to the great designer Günther Beyer from http://www.opoloo.de/ who gave me valuable feedback to my webpage design. Unfortunately Günther is currently busy therefore I did this re-design myself. Obviously Günther would have done it much nicer.

I also would like to thank Tom Schindl for pointing me to http://twitter.github.com/bootstrap/ for great CSS templates.

I hope you like the new design. Let me know your thoughts.

Posted in vogella | 8 Comments

Leaving SAP – Into the Wild

After 10+1 years, I decided to leave SAP.

What did I do at SAP in these 11 years?

I have been acting in the role of Implementation Consultant, Process Consultant, Trainer Developer, Project Development Team Lead, Integration Architect, Escalation Manager, Project Manager, Solution Manager and Product Owner.

I also worked frequently with sales people and business consultants.

During my time with SAP I worked in all continents and spend an extended period in Silicon Valley/ US. If I remember correctly I was named 4 times “Top Performer” during my time with SAP.

I spent the first 6 years with SAP as a consultant. I almost always was the only SAP employee in the customer project. While in my first years this was extremely challenging, I learned a lot about software, people, management practices, pressure and stress. Also I started to dislike traveling for business purposes. 5 days away from home are not fun.

During this time I worked with major customers worldwide, e.g. Procter & Gamble, Gillette, Pirelli, BASF, Bulgari, Nestlé, Bang Olufsen, Kimberly-Clark, Mars and Philips. With them I did a lot of performance and system integration related work. I also built tools for myself and others, first in ABAP and later in Java.

I spent the last 5 years in positions which I would call “highly visible”. First in solution management where I worked together with a huge development organization in discussing and defining a relatively large software solution. First for myself and later for others I development and maintained a client / server Eclipse RCP application for software requirement and bug tracking (similar to JIRA). This software is used by several business units in SAP with approx. 600 users.

Afterwards I was the content team lead (Product Owner) for a development team and had the opportunity to facilitate agile development methods. I also used this assignment to fight certain dysfunctional management practices. This created in my opinion very positive results for the team and the team performance.

I enjoyed this very much, from the social aspect of building and motivating a team as well as trying to change management practices, which were not working.

Lately I was responsible for delivering mobile solutions. We were a very small team and implemented iPhone apps as well as an Android apps. At this time we were the only team, which did some work on Android.

I think I can proudly say that our team established Android related technologies and validated the usage of Android for SAP. At some point Android development was forbidden within SAP but we worked with the responsible persons to get the permission to continue. Now Android development is popular within SAP.

I also acted as content owner as well as Android programmer.

I also would like to mention that I also led two SAP Research Projects and did part of the implementation in these projects. I also coached approx. 10 students. Working with fresh minds was alway very interesting for me and we built SAP related solutions during this time in GWT, JSF, Eclipse RCP, Eclipse e4 and Android.

Didn’t you also do Open Source Stuff?

During my consulting time I had used every opportunities to simplify the customer implementation (and my life) with tools built in ABAP and in Java. I frequently see a lot of manual work done by other people, while I usually build tools for these kind of things.

Having a “high visibility”” position at SAP typically means that you spend a lot of time in meetings, status calls or reporting something. I feared that continuing this route would lead in loosing my technical skills.

To maintain my technical skills I worked at night after my SAP work and on the weekends. At some point I needed more time and I requested a work time reduction at SAP.

Afterwards I only got 80% (later 60%) of my salary from SAP and only worked 4 (later 3 days) for them. If I visited a conference or delivered a training I had to take vacation at SAP. I had a huge pile of open vacation days collected in my early years with SAP, so I used these days to join these events.

While SAP never sponsored any of my Open Source related activities, I still value that they let me work part time for them so that I could spend time in technical topics outside SAP.

The people I meet

On the customer side I had the opportunity to work together with all levels of the organization from CIOs, support people, programmers, business people, end users and more.

I met a lot of impressive people at SAP, as well as several people which have been challenging to deal with. Both groups can be fun and I learned a lot about conflict handling and resolution in theses years.

The person which had the most influence on me was my former boss Bernd Mosbrucker. Bernd demanded a flexibility, which really pushed me to my limits. I’m sure a lot of my current personal abilities have been improved during my time with Bernd. I also found Bernd dedication to his content topics very impressive.

In the last two years the most influential people on me were Marcus Zahn and Sergej Shafarenka. I really value their insights and controversial discussions.

I tend to value people with knowledge and skills over people high up in the ranks. This is not necessary conflicting. For example I admire the CO-CEO of SAP, Jim Hagemann Snabe. It appears to me that he still maintains his social and technical skills and he seems to make great decisions.

I have the theory that skills and knowledge give people confidence and that this enables them to receive good feedback from other people, so that they can make good decisions.

My funniest moments at SAP

Once a customer CIO tried to blackmail me into working full time for this company. He did confuse some facts, therefore his blackmail attempt was quite amusing.

Once I did complete an automated testing setup. This automated testing was running automatically and critical issues where also reported automatically. I was forced to stop this testing. In a personal discussion with the responsible person he repeatedly said that “the project does not have the resources to perform this kind of testing”. My attempt to explain everything was done automatically failed.

A group of tech people in a meeting declared “Find and Replace” in Excel as to risky and did the required changes manually.

A customer repeatedly called me between 2 and 3 in the morning on weekends to check if I would be available in case of potential production problems.

My first customer escalated to the SAP board every time I wanted to take vacation in the first two years of my assignment with the customer.

I once offered a service to implement a certain component of SAP in two weeks. A customer to which that was offered was extremely offended and requested to get a “real implementation” which should at least take a year.

There have been other hilarious moments, but either I don’t remember them at the moment or if I do I feel that I should not share them in a blog entry.

For the insider: No, 86 is not the right number. 😉

So if everything was so great, why do I leave?

I guess partially because I had to move anyhow. My mobile project was declared as finished and my team members reassigned to other projects. My new suggested position would have been a more “strategic role” in the mobile area. Unfortunately the description of this role sounded boring to me.

I also feel that I have seem most of SAP, there processes and technologies.

Also I’m very much excited about Android and Eclipse technologies and working in the Open Source space. I want to spend more time on these topics.

In summary this wasn’t easy for me, 11 years are a long time.

If I could change things in SAP, what would that be?

I think SAP started lots of new initiatives. Most of them I like.

I personally hope that SAP continues their attempts to implement agile development practices. The agile practices currently have a few flaws but nothing which couldn’t be fixed. I think agile methods have great potential for SAP.

I hope for improvements in the runtime characteristics of the ABAP virtual machine. I needs to get faster. As a Java person I believe SAP should just compile ABAP to the JVM to leverage this platform. 😉

The same applies to the user interface technology performance. It needs to get faster.

Last but not least, I’m a tool person, so I would like to see the development tools enhanced so that SAP development can create, faster, great solutions. ABAP on Eclipse is a great effort, I hope that it will be made available widely in and outside SAP.

Best wishes for SAP

I like to wish SAP and my former colleagues all the best. I like that Germany has a huge software titan and I would like to see it continue to be successful. I’m very impressed with SAP dedication to Open Source in general and Eclipse technology in specific.

I should also mention that I have the option to return to SAP within the next 3-4 years. I think if I return to SAP I would try to join one of there Open Source initiatives.

The future

Goodbye SAP. I now walk into the wild…. 🙂

Posted in Eclipse, Other | 31 Comments

Eclipse IDE 3.7 Book available for the Kindle

Today I released my new Eclipse IDE 3.7 book for the Kindle device.

Eclipse IDE 3.7
Fundamentals of Java Programming, Debugging, JUnit Testing and Mylyn Tasks with Eclipse

This book demonstrates how you can develop Java applications, how you can debug them and how to write JUnit tests for your applications. It also explains how you can work with local Mylyn tasks to organize your work efficiently.

It also includes important Eclipse configuration tips which make programming with Eclipse more effective.

After finishing this book you should feel comfortable with using the Eclipse IDE for standard Java development tasks and you should be equipped to explore Eclipse further.

You find the book in all Amazon stores:

Eclipse IDE 3.7 in Amazon USA
Eclipse IDE 3.7in Amazon Germany
Eclipse IDE 3.7 in Amazon UK
Eclipse IDE 3.7 in Amazon France
Eclipse IDE 3.7 in Amazon IT
Eclipse IDE 3.7 in Amazon ES

This book summerizes several tutorials I publish on my website. It includes the Eclipse IDE introduction tutorial, the JUnit tutorial, Debugging with Eclipse, my Mylyn Tutorial and my favorite Eclipse shortcuts. The full content of the book is still available online on my website.

I would especially thank Elias Volanakis for his thorough spell checking and feedback on the content.

I also am very grateful to Wayne Beaton for writing the foreword and providing feedback on the content.

In addition I would like to thank the Eclipse Foundation and Ian Skerrett for the permission to use the Eclipse logo and Matthew Nuzum for the permission to use his svg version of the Eclipse logo.

I got many suggestions or corrections from countless readers of my website and I would like to express my deepest gratitude for their contributions.

I have plans to add an EGit chapter over the next months. If you buy this book now you will get the update with EGit for free. I have confirmed twice with the Amazon customer support that if I publish an update to this book that buyers of the book will get notified and that they can download the updated book with EGit for free.

I’m again surprised how much work it is to convert my website content into a book format. I hope you like this book and if you new to Eclipse I hope you enjoy your learning experience.

Posted in Eclipse, vogella | Tagged , , , , | 10 Comments

Automatically starting Services in Android after booting

To start Services automatically after the Android system starts you can register a BroadcastReceiver to the Android android.intent.action.BOOT_COMPLETED system event.

In the onReceive() method the corresponding BroadcastReceiver would then start the service.

import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;

public class MyReceiver extends BroadcastReceiver {

	public void onReceive(Context context, Intent intent) {
		Intent service = new Intent(context, WordService.class);

If you application is installed on the SD card, then it is not available after the android.intent.action.BOOT_COMPLETED event. Register yourself in this case for the android.intent.action.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE event.

Also note that as of Android 3.0 the user needs to have started the application at least once before your application can receive android.intent.action.BOOT_COMPLETED events.

You find more on Services in my Android Service and BroadcastReceiver Tutorial.

I hope this helps. You find me also on Twitter. My Google+ profile can be found Lars Vogels Profile.

Posted in Android | Tagged , , | 3 Comments

How to remove the //TODO comments from auto-generated code

Eclipse Code Templates are great. Unfortunately they add lots of comments for stuff I don’t like:

public class MainTest {

     * @param args
    public static void main(String[] args) {
        // TODO Auto-generated method stub



If you also don’t like the TODO comments you can change the templates via: Window -> Preferences -> Java -> Code Style -> Code Templates.

In the code tree you have the templates. Select for example Code → Method Body and press “Edit” to edit this template and to remove the todo comment.

I hope this helps. I also added this to my Eclipse IDE tutorial in the Eclipse templates section.

You find me also on Twitter. My Google+ profile can be found Lars Vogels Profile.

Posted in Eclipse | 2 Comments

vogella.de goes Creative Commons CC BY-NC-SA 3.0 licence

Recently I received lots of requests for translating my tutorials into other languages or if my tutorials can be used in Universitity classes. In general I’m fine with that as long as the usage is non-commercial and attribution is given.

I decided to select a official licence for usage of my content so that others have better information on how they can use it. As far as I can tell the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany (CC BY-NC-SA 3.0) looks like the right licence to me.

Therefore, unless otherwise stated in the tutorials, I put the tutorials on http://www.vogella.de under the Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Germany (CC BY-NC-SA 3.0) licence.

Attribution for a translation or reproduction which is available on the web would be a link to the original article as well as mentioning me as the original author. This attribution should be clearly visible at the beginning of the article.

If you use the material in a non-web form an attribution should be given in the same spirit. For example if you print the material for your university class you would include a page which states the original author as well as the link to the content on the web.

Neil Barlett suggested to clarify the non-commercial part. My understanding is that this means that you cannot earn money by replicating or translating the content, e.g. via advertisements, selling books, etc.

Also a big thanks to Jovan Kostovski and Kai Toedter at Google+ for lots of consulting and tips on the licence.

I hope this help other to translate my tutorials and to spread the word about Eclipse, Android and other Java related programming around the non perfectly english speaking world.

Posted in Android, Eclipse, vogella | 2 Comments

December Challenge of the month and retroperspective – The eye of the storm

Last month challenge was a big success. I published my first ebook: Distributed Version Control with Git. I also have several other articles which I’m in the process of converting them also to ebooks.

I really enjoyed the process and learned a lot about epub, mobipocket, DocBook, XSLT and Apache Ant. Is also helped me a lot with October Challenge of the month as I invested significantly time and effort into improving the content and the spelling. Also I finally learned how to use InkScape with was July Challenge of the month.

This month challenge will be to wrap up things. Things are a bit crazy at the moment and I’m incredible busy. This has unfortunately lead to several loose ends which I need to tie up. So nothing new this month but I have to finish lots and lots of little things.

Posted in Challenge of the month | Comments Off on December Challenge of the month and retroperspective – The eye of the storm

Plurals in Android

Android supports Plurals. Plurals are XML based resources which allow to handle different quantities. This way you can select the right text based on the quantity. In your XML file you specify values for the quantities “zero”, “one”, “two”, “many”, “few”, “many”, “other” and in your code you use the method getQuantityString() to get the correct value. You can also format strings. If now Strings are formated then you pass in the plural resources and the number. If Objects should be used for formating you pass them as additional parameters.

For example the following will define a plural. This file needs to be in the “res/values” directory and in this example it is called “plurals”.

<?xml version="1.0" encoding="utf-8"?>
        <item quantity="zero">no Tutorial </item>
        <item quantity="one">one Tutorial </item>
        <item quantity="other">%d  Tutorials</item>

The correct value can then be select via the following coding:

// number is defined somewhere before this
// number =....
// Get the Resources
Resources res = getResources();
// Get the 
String quantityString = res.getQuantityString(R.plurals.tutorials,
	number, number);
// Do something with it...

From the Android development guide: Note that the selection is made based on grammatical necessity. A string for zero in English will be ignored even if the quantity is 0, because 0 isn’t grammatically different from 2, or any other number except 1 (“no tutorial”, “one tutorial”, “two tutorials”, and so on).

Thanks to mohammad dabbour and Kirill Grouchnikov for clarifying a question on this in Google+.

I hope this blog entry helps. You find me also on Twitter. My Google+ profile can be found Lars Vogels Profile.

Posted in Android | 4 Comments

Eclipse //TODO in generated coding – Is this useful?

I just returned from Devoxx, a really nice conference. I had a lot of fun and learned a lot.

I also had the oppertunity to talk one influential developer, who shall remain unnamed.

He told me why he prefers IntelliJ over Eclipse. Very interesting and I will open Bugreports for most of his points in the future.

One thing he mentioned was that the //TODOS in the generated code are annoying. I personally agree. I have configured my Eclipse code templates to have no comments included.

Which makes me wonder, does anyone likes these //TODO comments in the generated code? If the majority thinks they are not useful I think we should open a bug report to JDT and ask them to change the templates.

Please let me know via comments what you think.

Posted in Eclipse | 25 Comments

Distributed Version Control with Git available for the Kindle

Today I released my first book for the Kindle platform: Distributed Version Control with Git.

Git is popular, especially in my main focus areas, Eclipse and Android.

Since a while I’m working in converting my tutorials into offline versions. The Git tutorial is the first one because it has no images. To my surprise it was still a huge amount of work. I hope the second book will be easier, as I learned a lot about epub, mobipocket, design, DocBook, XSLT transformations, Apache Ant, Inkscape and other tools.

You find the Git Book in all Amazon Stores:

Git Book in Amazon Germany
Git Book in Amazon UK
Git Book in Amazon France
Git Book in Amazon USA

Just to set the right expectations, the Distributed Version Control with Git has the same content related material as the online version. I hope that having this material also available for the Kindle is helpful. Is also allows you to read the online version before deciding if you want to get the book offline.

A big thanks goes to Alex Blewitt for writing the foreword and for providing feedback. I would especially thank Jennifer Nerlich de Vogel for their intensive spell checking exercises. Wolfgang Schell who is a power Kindle user gave important feedback for improving the structure of the book to optimize it for the Kindle.

I also got many suggestions or corrections from my readers and other people involved with Git and would I would like to express my deepest gratitude to their contribution including Robert Konigsberg, Elke Schaper, Appaholics, Michael Wiedmann, Joshy Cyriac, Peter Kahle, Jon Svede, Henning Hoefer, Matthias Sohn, Chris Aniszczyk, Stefan Lay, Edwin Kempin, Sasa Zivkov, David Carver.

Also a big thank you to Ralf Ebert who seeded the idea to publish on the Kindle platform.

Now I’m hoping for positve reviews at Amazon. 🙂

Posted in Android, Eclipse, vogella | Comments Off on Distributed Version Control with Git available for the Kindle