First of all a small notice on the Ignite sessions at Devoxx. The 5 minute talks with 20 slides were very entertaining and I am glad that Roland kind of talked us into this. The sessions take place during lunch break but it is definitely worth taking the time and listening to the talks.
Now let’s go through the talks of day 4 in Antwerp.
Being an active Spring developer myself, I visited Jürgen Höller’s talk to get up to date with the latest Spring release 4.1. In our project we are currently still using version 3.2 but plan to upgrade to 4.1 shortly.
The talk itself was a no-frills, informative presentation of some of the new features which were made possible due to Java 8 features. I’ll summarize the most important ones.
Dependency injection now takes into consideration generic types of bean declaration:
@Configuration
public class AppConfig {
// definition of two beans with the same raw type CustomProxy
@Bean
CustomProxy<String> stringWrapper...
@Bean
CustomProxy<Integer> integerWrapper... }
…
public class someClass{
...
/**
* This would throw an exception in Spring 3.x since
* there are two beans of type CustomProxy. In Spring 4.x
* the Generics Type is taken into account for autowiring,
* hence there is only one autowiring candidate.
**/
@Autowired
public void doSomething(CustomProxy<Integer> wrapper) { ... } }
Multiple annotations of the same type can be applied to the same method (actually this is a Java feature and is not Spring specific, but still very handy).
@Scheduled(cron_job_def_1)
@Scheduled(cron_job_def_2)
public void someMethod(){...}
Next cool thing is the support for Websockets (with @SubscribeMapping
) as well as the support for JCache annotations in addition to Spring’s own annotations (@Cacheable
). The two are not exactly equal in functionality but can also be used in parallel.
To sum things up, Spring has solid work going on to improve its framework foundation and to incorporate the latest Java features and APIs. This makes me confident in upgrading our project to the latest Spring release.
Ted Neward talks about Swift. Unfortunately I personally never had the chance to try out objectiveC - Apple’s previous language for writing iOS/OSX applications. But I have heard so much people complaining about the syntax pain that you are facing while writing objectiveC code. Ted Neward and most of the audience in the room definitely aggree with this opinion.
So now with Swift Apple created a new language that might solve things here. What’s needed to write Swift and run code? Mac OSX, of course and Apple’s IDE XCode. In case you intend to write native Mac OSX applications using Swift you need Yosemite Mac OSX installed on your machine. For iOS applications this is not the case.
So Ted walks through the Swift syntax and language features. By going over the basic language look and feel he shows the development experience within XCode and adds a very cool sense of humor to that. Maybe one thing to stress is that Swift emphasises the usage of immutable values. The rest is pretty much exactly what you as a developer can expect from a programming language nowadays.
The presentation on Swift makes me (again) curios and excited on writing a iOS/OSX application on my own. Maybe I am lucky some time to come accross this experience.
On Day 4 Romain Linsolas presented 15 JavaScript Tools in 15 Minutes. For me as a JS-Developer it was interesting to see if there are any tools out there I havent’t tried out yet and can improve my work. And I was not disappointed that’s for sure.
This is not the full list of all 15 Tools because some were obvious like IntelliJ and Sonar. But I will try to highlight the tools:
gulp.task(‘minify’, function() {
return gulp.src(‘<PATH_TO_SRC>’).pipe(plugins.concat(‘myApp.js’)
.pipe(pluings.uglyfy())
.pipe(plugins.gulp.dest(‘dist/myApp.js’));
}
David defined home automation as devices in a home that should be controlled in an easy way.
He has said that the market is already crowded and that is why there are a lot of technologies for home automation. And this is just the beginning!
He has spoken only about the Z-Wavee and KNX technologies. Z-Wavee is cheap, simple, not intrusive and not standard. KNX is used more for industrial purposes, not user friendly, expensive, ISO Standar and more reliable. For a normal home automation, the first one would be enough.
He has the experience of “playing” with KNX at home (so I assume that Oracle has to pay good enough, because this is the expensive one!). With a HTML&JS app he was able to turn the lights on and off.
About Java EE he has said briefly something about: Java API for Web Socket, JSON-P, Java API for RESTful Web Services 2.0, CDI events, Message Drive Bean, etc.
I found this talk a good introduction to know where to start if you want to learn more about “Home Automation”.
Jan Vorstermans is the managing director of the investment company Qunova that is focused on early stage technology start-ups. His talk was about a lot of aspects that are important for an entrepreneur that is looking for money to get his/her business running and becoming successful.
62% tech startups fail in the first 4 years. The top failure reasons are:
* 40% No market need
* 29% Running out of cash
* 23% Team
* ?% outcompeted
* …
Depends on: business, market, ambition, (your own) means
* Investors do not grow on trees
* growth & comfort don’t co-exist
* people matter
* get the right type of funding
cool … stamina is not to have energy to keep going, it is to keep going when you have no energy left.
sense of humor - past, present and future walk into a bar. it was tense.
I found it very refreshing to listen to a non technical talk and to hear from an expert about the “have startup. need money” thing. This years new “startup” series is a really good addition to the Devoxx and I really appreciate that Devoxx is still developing.
Building and running a JavaScript Client which consumes REST-Services and is always online like the most websites and customer portals out there can be difficulty enough. But when you have to build such applications with the requirement to run off- and online, then you have to conquer some new challenges.
Birgitta Bckeler and Lukasz Plotnicki talked about their experience they got while facing such requirements and how they solved them.
But there is a problem when the user wants to work with different browser tabs, the data can get asynchronous.
There is an api called “File-API” which provides a way to upload, download and save files locally.
Chrome provides 50% of the available storage for its offline applications and gives each application 20% of it.