Jazoon 2011, Day 2 – Who do You Trust? Beware of Your Brain – Linda Rising

26. June, 2011

Who do You Trust? Beware of Your Brain – Linda Rising

Are you prejudiced? No? Do you believe that some programming languages are slower than others? How do you know? Did you measure it or is it a … gut feeling?

Let’s face it, we’re all prejudiced. It’s human nature because survival is more important than getting along.

The better question is: What influences this process? Solomon Asch did a couple of very interesting experiments on that. It seems that if a trusted peer group is wrong, we tend to tag along anyway. So if everyone in the team believes that Groovy is slow or .NET is bad, we just suck it up, even if we happen to know better. The interesting part is why we do it.

Of course, we want to believe that we consider all options, carefully evaluate the impact of confronting the group, things like that. Yeah, that does happen – if you have enough time. Under pressure, your brain will just twist your view of the world until it fits. This means MRI showed that test subjects of the Asch conformity experiments actually “saw” other line lengths than were actually on paper.

But there is good news, too: If one person objects, this illusion breaks. This explains how a group of experts can be utterly wrong about something. Since groups tend to think of anyone else as them, an outsider can’t sway their belief but an insider can. So next time your team is doing something obviously stupid, speak up!

The talk also included reasons for social loafing (why a team doesn’t get stronger if you add more than three persons). Or how it was possible that soldiers in the First World War made peace with the enemy while entrenched: They inadvertently formed a team with the ultimate goal of survival.

A very interesting and frightening aspect is that our view of others doesn’t influence us alone but it also influences the way other behave. Women get the same results in mathematical tests as men if they don’t have to tick a gender box on the test. If you think a team member is an asshole, he will be, even if he hates you. Subconsciously, you’ll send the necessary signals and he’ll comply to them. Conversely, if you know that, you can turn an asshole into a normal person just by treating them better.

Very good, important talk. If you have a chance to meet/see her, go for it.

Links:


Jazoon 2011, Day 1 – Future Directions for Java SE and Java EE – Simon Ritter

26. June, 2011

Future Directions for Java SE and Java EE – Simon Ritter

Simon gave an insight on some of the problems which the Java Community Process JCP had before Oracle bought Sun and then, he showed the plans for the next two major Java SE and EE release. Java SE 7 is due Juli 28th, 2011 (if nothing bad happens), Java 8 should ship end of 2012.

There wasn’t anything really new except the nice way in which Simon presented things.

Of course, the presentation ended with the usual (at least for US companies) disclaimer that all this is subject to change at any time.

On one hand, I think it’s good that Oracle simply break ahead and let’s the past rest. The blunders with OpenOffice, Java Harmony and Hudson created a lot of bad blood with the community. Their best chance is probably to finally present something substantial instead of always only upsetting everyone with their decisions.

What I found odd is the priorities: First, they want to broaden the developer base. Java is #1 right now (or so they say). Hm. They want to increase adoption. And they want to make developers more productive. In that order.

If I was in charge there, I’d put “make developers more productive” top of the list and kill everything else. Why? If Java is more productive than anything else, that will automatically increase adoption.

Oracle’s priority lists reads more along the lines “we know we can’t make developers more productive, especially not after making everyone hate us, so we’ll just blind them with advertising.” One of the major problems with Java is that they can’t change the language. It’s not that they really can’t but it could possible break so much existing code or drive the complexity up one final, deadly notch, so really, they can’t.

Which means Java (the language) is a dead-end. But they can’t admit that, either, because everyone things Java == language. Wikipedia has a list of languages that the Java VM can run. Developers are more productive with many of them. Groovy usually needs 3-4 times less code to solve some problem than Java code and it get’s better with every release. The same is true for Scalaor Ruby.

So maybe Oracle is right: A lot of advertisement to drive people away from the Java language and into the open arms of the many new, much more productive languages is actually a better solution than breaking the Java language itself. Today, performance (or the irrational fear for performance problems) plus the “teach old dog new trick” problem prevent wider adoption. The former is being solved with Da Vinci (part of Java 7) so this leaves us just with the latter – which means advertising is the way to go.

Oh, and they will merge the best features of JRockit into HotSpot (the Sun VM).


Jazoon 2011, Day 1 – Cross-Platform Mobile Development with Eclipse – Heiko Behrens and Peter Friese

26. June, 2011

Cross-Platform Mobile Development with Eclipse – Heiko Behrens and Peter Friese

The duo showed a nice example how a DSL (created with Xtext, of course) can be used to generate code for an iPhone app, an Android app, a standard Java web app and an app for the Google App Engine from the same source.

The point here is not to emulate all features on each platform but to fall back to sensible replacements if a platform doesn’t support something.

It also showed the blazing speed of the new Xtext 2 code generator.

Links:


Jazoon 2011, Day 1 – Java Security Trends: How to Leverage Growing Security Trends in Building Trust into Your Java Applications – James Gould and Srikanth Veeramachaneni

26. June, 2011

Java Security Trends: How to Leverage Growing Security Trends in Building Trust into Your Java Applications – James Gould and Srikanth Veeramachaneni

Nothing spectacular here for me. There was a nice diagram of an SSL handshake, some tips to debug SSL problems, code how to create keystores with the Java tools and how to convert a PEM key into something that Java’s keytool can use.

After that James gave an overview of DNSSEC and how to use it from Java (including code examples).

What I liked about the code examples is that they covered more than the trivial cases. For example, it showed how to specify per-key passwords (in addition to the usual per-keystore password).


Jazoon 2011, Day 1 – Eclipse Mylyn: Redefining the “I” of the IDE – Benjamin Muskalla

26. June, 2011

Eclipse Mylyn: Redefining the “I” of the IDE – Benjamin Muskalla

Mylyn is one of those things that can change your world if you just give it a chance. The talk emphasized one of the major points: We write the code in an IDE (integrated, not intelligent), we track bugs in a bug tracker, we communicate with email, twitter and Facebook and we track progress on a piece of paper.

Being able to save the context (i.e. the classes and files involved) in a bug, so, say, a junior doesn’t have to wade through the whole source to even get started, is something that I’ve been missing several times already. If only I wasn’t such an old dog, already.

Links:


Jazoon 2011, Day 1 – Flexible software analysis with Moose – Tudor Girba

26. June, 2011

Flexible software analysis with Moose – Tudor Girba

Moose is one of those gems that are hidden in the huge pile of good open source software. It’s a software to extract data from some source (for example a Java project) and then display the results of queries ran on that data. Moreover, it allows to quickly build applications to wade through that data and display it, say, the complexity of the code.

Very interesting stuff. I guess I’ll have to learn Smalltalk.

I’ll also come back to this with my next installment of TNBT – The Next Best Thing.

Links:

  • Moose – data analysis software
  • Humane assessment – “a software engineering method that makes the activity of assessment explicit and manageable.”

Jazoon 2011, Day 1 – An exercise in simplicity – Dierk König

26. June, 2011

An exercise in simplicity – Dierk König

In his soft-spoken way, Dierk reminded us once again of an ancient art that is always on the brink of extinction: Simplicity.

Do you remember the Peter Principle? Here is the software developer version:

Given a new technology, a software developer will quickly drive it up just above that level of complexity that he is barely unable to handle – Dierk König

That together with Brian Kernighan‘s

Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.

should give you pause when your ego demands the more “clever” solution next time. Alas, we don’t always have time to find the more simple solution. On top of that

Simplicity is a great virtue but it requires hard work to achieve it and education to appreciate it.

And to make matters worse, complexity sells better.

– Edsger Wybe Dijkstra

Thank you.

Notes from the talk:

Simple != easy.

If it needs an explanation, it’s probably not simple.

Just because you understand it doesn’t make it simple. Convention is only simple if everyone knows it.

Example for simple code: https://github.com/Dierk/MittieWiki It’s a simple wiki software. If you feel MediaWiki isn’t powerful enough for you, look elsewhere. If you think MediaWiki overwhelms you, have a look. The code has a complexity of 0. Test coverage is 100% for both lines and branch coverage.


Jazoon 2011, Day 1 – Opening Keynote

26. June, 2011

Opening Keynote

The opening keynote was “Platforms in the Cloud: Where Will Your Next Application Run?” by David Chappell. He put a lot of the bits and piece of cloud computing into perspective: Private and public clouds, when a cloud makes sense and why people use clouds. Some use it because it’s a way to avoid their own IT which says a lot. He also put a couple of frameworks and products next to each other to make it more easy to see through all the fog.

Personally, I agree with him: Cloud computing is the next step. It solves one of the basic problems in computers today: You have too much computer power when you don’t need it and too little when you do.

Actually, I hope that CC won’t only make life easier for the business but also for developers. More on that in my next installment of TNBT – The Next Best Thing.

Some highlights from the talk:

Start-ups need to fail fast or scale fast. So clouds are perfect for them: Cheap, salable.

In the long run PaaS (Platform as a Service) will win over IaaS (Infrastructure as a Service). There are already many companies which offer PaaS by tailoring an IaaS VM to do what you need.

When it comes to NoSQL, that means “not only SQL”. Most applications need a mix of SQL and non-SQL data sources. For example an MP3 cloud player will keep the song titles and other meta data in an SQL table (so you can easily sort and search) but the songs will be in a non-SQL storage.

Another use case for cloud computing is off-site backup. That puts your data at risk to being copied but which is more hazardous for your company: That a competitor might be able to break the encryption or that the data is lost forever? If you lose your business data, you’ll probably bankrupt faster.

I talked to him after the presentation and he made an odd comment about open source (“Oh, you’re one of those open source guys. Don’t you have children to feed?”) My guess is he makes the same mistake as many people: Free software is free as in freedom, not as in beer. You can change it but there is no reason to give it away for free. Some people do but that only means they have some other means to generate revenue.


Pacman vs Zebra Crossing

26. June, 2011

Hilarious: http://wins.failblog.org/2011/06/17/epic-win-photos-hacked-irl-hurry-up-and-cross/


Jazoon 2011, Day 1

21. June, 2011

Day 1 of Jazoon 2011 is over.

Here are all related blog posts: