Upcoming Talk at Agila Sverige

I will be giving a lightning talk on the subject “The Architect role is needed, even in agile projects!” at the Agila Sverige conference which is arranged in Stockholm the 23rd and 24th of April this year. I will not reveal too much of the content here, but as the title implies, I will be promoting the need of an Agile Architect in every project. Agile or not…

Øredev 2010 – final thoughts

Having attended all previous Øredev conferences I think I am pretty qualified when I say that this year’s conference was by far the best. Great topics, excellent speakers and flawless organization. Even the closing panel debate, which usually is just something you have to suffer through to be able to win prices in the raffle at the end, was interesting this year.

Since it is such a diverse conference, it is difficult to point out a single item that was the main trend at the conference. But if I should pick one thing, I guess it would be that most of the talks I attended more or less circled around the Get Real! theme of the conference. Hopefully this means that the industry is getting more mature. Don’t want to be a self-fulfilling pessimist, so it is just to be optimistic 🙂

See you there next year!

Architect’s Java DAO Generator

Usually, when I come home from work, I am pretty tired of programming and rarely ever do any programmin during weekends. But this weekend was different. I have been coding pretty much at work lately, so it should not be because of abstinence from coding. Anyhow, I set down and contributed to a small open source project started by a former colleague of mine. It is called Architect’s Java DAO Generator, and you can find it on Sourceforge. In short it is a maven plugin that generates most of the boilerplate code you usually have to code by hand. It also abstracts the data access layer from your domain logic in a nice way. Version 1.5 is soon going to be available and is absolutely worth a look.

Corporate Blogging – a fresh (re)start

I have agreed to contribute with a post once in a while on the corporate blog, or newsroom as they call it. I know I have not been very active on this blog lately, but hopefully this will inspire me to be more active here as well. Having just come back from a couple of weeks of total relaxation and diving in Dahab, Egypt, I should be full of energy and an urge to get started writing.

But first I want it to be absolute crystal clear that the stuff I write her on AgileJava is my view, and my view only. It is by no means affiliated with the company blog or anything thereunder. The posts on the newsroom will be reviewed by company representatives before published whereas AgileJava is only reviewed by myself.

Dilbert on Corporate Social Media

A Special Year

The first time I attended JavaOne was 1999 and I have only missed it once since then. Sadly, this year will be the second time I am not present there. I have become kind of used to the week in San Francisco every year. It is the perfect way to start the summer with a visit to that beautiful city. Since it is in September this year, it would probably been the perfect way to end the summer (…we have short summers here in Scandinavia…).

I will for sure miss the massive input and inspiration this conference gives me and enables me to keep up-to-date on everything that is happening in the Java Community. This year’s conference is also special since it is the first time Oracle is hosting the show. It feels like a good idea to co-host it with Oracle Develop and I hope it will be a success to be continued. Next year, I will definitely be attending, one way or the other…!

NetBeans and Android Tip

Developing Android applications using NetBeans is usually as easy as stealing candy from a baby. But the last couple of days I have been struggling with an application that uses a couple of external libraries. The other developers (using Eclipse) have a couple of scripts that they run to get the .so files included in the .apk file. When I tried running the same scrips on the .apk generated from NetBeans, the application failed to start in the emulator. I nearly switched to Eclipse (god forbid), but then I saw the light again. As it turns out, NetBeans does not include the java api jar-files in the external libs in the dex-file by default which resulted in a ClassNotFoundException.

The solution is as simple as you would expect when you have used NetBeans for a while. Add the following to the build.xml file in the project root (replace the dummy values for the signjar target):

<target name="-pre-jar">
   <copy todir="${build.classes.dir}">
      <fileset dir="${external.libs.dir}">
         <include name="*.jar"/>
      </fileset>
   </copy>
</target>
<target name="-post-jar">
   <zip update="true" destfile="${dist.apk}">
      <zipfileset dir="${external.libs.dir}" includes="*.so" prefix="lib/armeabi"/>
   </zip>
   <zip destfile="tmp.apk">
      <zipfileset src="${dist.apk}">
         <exclude name="META-INF/*.*" />
      </zipfileset>
   </zip>
   <move file="tmp.apk" tofile="${dist.apk}" />
   <signjar jar="${dist.apk}" alias="alias" storepass="secret" keypass="secret2" keystore="my_keystore"/>
</target>

You also need to add external.libs.dir=<your lib folder> to you <project root>/nbproject/project.properties file.

Now you can install the resulting .apk file using adb install or by running/debugging directly from NetBeans. Remember to follow the tip for asset-files in a previous post if you have that kind of resources.

Company Internal Twitter – good or evil?

This week Yammer was introduced to the entire company. Simply put, Yammer is a company internal twitter where coworkers can connect and share information by posting messages.

At first, I was skeptical to the whole idea thinking it would generate an overload of noise for a couple of weeks until dying slowly like most initiatives to share knowledge within companies. But after having thought about it, I really hope that will not happen. It is actually a brilliant way of building a knowledge base within the company. Everyone who has tried to establish some form of knowledge exchange know how hard it is to get people to contribute.

But by “hiding” it behind some familiar technology like twitter, people actually contribute without knowing it. If you think about it, only the things people are interested in will be posted and discussed in such a forum. People will only put energy in discussions they have strong feelings for. The things most people have feelings for are probably pretty relevant things for your organization. And it is by default fully searchable with the newest items most visible.

So with my limited experience of yammer (have used it two days), I will conclude that it is actually a good thing. Now we just have to hope that it does not die a silent death when it is not that new-and-cool anymore…

Our Irrational Fear of Real-time Exposure

I made an interesting observation when I was at one of the sessions at the Øredev conference today that struck me as kind of weird…

Even though we are out there exposing ourselves on facebook, blogs and twitter, we are not comfortable sitting next to someone that are watching us typing while we are writing our blog post or tweet. As soon as we hit the submit button everything changes. Now we actually want people to read the stuff. That is why I call this

our irrational fear of real-time exposure

Exposure is fine, which the popularity of facebook and twitter are evidence of, as long as we are not caught doing it. Feel free to tweet, blog or comment on this 🙂

Øredev 2009 – Day 3

I was not present at the conference yesterday, so this is actually my second day here, and that also explains why there were no post from yesterday. Another explanation could have been that I was lazy, but that is not the case this time… 🙂

Well, over to what this post is all about: the conference. The keynote was held by Scott Hanselman. He gave an excellent talk about effectiveness and efficiency. Some really good stuff to bring back from that speech. Will try to list some of the techniques and tools he mentioned in a later blog post.

I will also summarize the rest of the sessions I attended today very soon here…

Great conference!