<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Blog site of Jens Jansson, about pretty much everything. Especially about software engineering, finance and gaming.
var gaJsHost = (("https:" == document.location.protocol) ? "https://ssl." : "http://www.");
document.write(unescape("%3Cscript src='" + gaJsHost + "google-analytics.com/ga.js' type='text/javascript'%3E%3C/script%3E"));

try {
var pageTracker = _gat._getTracker("UA-10926037-1");
pageTracker._trackPageview();
} catch(err) {}</description><title>Lair of Peppe</title><generator>Tumblr (3.0; @jensjansson)</generator><link>http://www.jensjansson.com/</link><item><title>Creating an application from zero to done: Day 4</title><description>&lt;p&gt;Today I had to do a lot other stuff than on this project. I actually did some of my normal work for a change, went to school to attend to a lecture and went to see some stand-up in the evening. I could only squeeze in work on this project between 12:00-15:00 and 22:00-02:00. It wasn’t really enough. I finished some basic views for all three main objects (players, tracks, rounds) but then I noticed a showstopper bug in my software regarding db4o. To add a new round, I create a round object, fetch the players and a track and set these to the round, fill in all the scores and tell db4o to store the round. Every time I stored a round, db4o also stored a new copy out of the players and round into the database. I ended up pretty fast with hundreds of copies of the same objects, which pretty much made the whole software useless. I have now spent a couple of hours trying to figure it out, but in vain. The view pages are somewhat limited, and I still have my home screen completely undone and it can’t really be done before the db4o problem is solved. I guess I can squeeze an extra hour to this before the deadline 12:00 tomorrow, but it’s 2am now and I want some sleep!&lt;/p&gt;</description><link>http://www.jensjansson.com/post/524269516</link><guid>http://www.jensjansson.com/post/524269516</guid><pubDate>Fri, 16 Apr 2010 01:55:32 +0300</pubDate></item><item><title>Creating an application from zero to done: Day 3</title><description>&lt;p&gt;I worked about two hours extra yesterday on the project when I got home. The goal, as I said, was to draw the mock-ups for the two other ‘add’ screen, Player and Result. I did that, and actually implemented the Player mock up along with half of the Result mock up. It went quite fast as the foundation was done. I finished the ‘Add Result’ -view on Wednesday morning in the next three hours. That is probably the most complicated view my software will have. At this point I had all add views done and only need views to view data anymore. As I had no real persistence I decided to close the GUI project and start working on the domain project.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;First look on db4o&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;db4o is a data storage framework that works in an object oriented way. The instruction text looked very promising. You don’t need any annotations or XML configurations and it will accept any object for persisting. Basically you just do this to store something:&lt;/p&gt;
&lt;pre&gt;ObjectContainer db = Db4oEmbedded.openFile("path/to/my/file/");
try{ db.store(myObject) } 
finally { db.close(); }
&lt;/pre&gt;
&lt;p&gt;That looks very easy. Almost too simple to be true. But it was that simple. I had persisted my first objects with only three lines of coding. I downloaded db4o (with maven), read up on how to use it and implemented the store and ‘list all’ functions for all my entities in three hours. Very nifty! The only downside with db4o I see right now is it’s licence, which is GPL, which means that I have to decide to either publish all my code as open source or find an alternative to db4o before I publish my project in any way (i.e. make it freely usable on the web, give it to friends for personal use etc.). Got to think about what to do.&lt;/p&gt;
&lt;p&gt;I also worked along with the GUI project by making a page to view information about the players in the system. It’s basically just a table with all players in the system and when you choose one, you’ll see an info grid on that player. Now it still only shows the name of that player. I’ll make similar views on tracks and rounds tomorrow and a nifty home page showing info of the logged in user. Then there is just some polish and adding a graph or two left. Probably will make it in time. Maybe.&lt;/p&gt;
&lt;p&gt;I’ve clocked somewhere around 28 hours on this project with an additional four of five hours on the course doing something else than the project (introduction and such). I’m starting to notice that the 11-12 hour days are starting to wear me out but my inspiration in this project, and the inspiration to succeed will still push me forward through the last day of coding.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/521455061</link><guid>http://www.jensjansson.com/post/521455061</guid><pubDate>Wed, 14 Apr 2010 23:03:00 +0300</pubDate></item><item><title>Creating an application from zero to done: Day 2</title><description>&lt;p&gt;Day 2 started of fighting with Maven. Setting up the web project was not as straightforward as I would have hoped. First step was to find how out how to use the Vaadin archetype to generate the project. The archetype doesn’t seem to be in the main maven repository and I had a hard time figuring out where I can add new repositories to m2eclipse, and which repository exactly to add. I got it finally right with a lot of trial and error and it generated me the dynamic web project with an start-up application and Vaadin jar etc. That was just the beginning of my problems. Next up I had the problem that eclipse’s WTP didn’t accept my project and I couldn’t deploy it directly. I got WTP to recognize the project as a web project by adding natures to .project file and finally adding the Java and Dynamic Web Module project facets. After getting it deployed on tomcat I noticed that my web.xml generated by the archetype was empty, and I had to copy it in from another project. The final issue I had was that WTP didn’t deploy the Maven Dependencies, which contained the Vaadin jar, so I had to manually modify the .classpath file. It was a bumpy road but finally I got a grey page on the screen with a button saying “Click Me”. I probably should make a tutorial for myself how to set up a business logic project and a Vaadin project at some point, because that is basically what I need when I start something new. But now it’s time to get into the coding!&lt;/p&gt;
&lt;p&gt;As I got the architecture right I started cranking out the code quite fast. First thing I did was to create a static page that looked exactly like the mockup I drew yesterday. With that finished I had the basic layout with header and content, and placeholders for my main parts of the application - Home, Add and View.&lt;/p&gt;
&lt;p&gt;I also had the time to finish of the view for adding new tracks in the system. That’s one of the three view’s of the ‘Add’ part. The two others are basically the same and I already got the mechanism done to send messages back and forth so it should implementing the rest of that part should go quite fast. The view sends the data to a front controller now, which sends it forward to a service on the backend. The service does nothing at all for the moment. I’ll probably make those when all the ‘Add’-views are done.&lt;/p&gt;
&lt;p&gt;So two days behind, two still in front of me. I worked on this project for about eight hours today. I got the data model, tests, the GUI template and one view done. I still got left about six views, persistence, doing graphs, theming and some final touch-up here and there. It’s a lot to be done but I guess it is doable. I think I’ll draw the views for adding players and results still today, and start implementing those tomorrow. I hope I also get the persistence somewhat done tomorrow.&lt;/p&gt;
&lt;p&gt;&lt;img height="482" width="700" alt="Home screen" src="http://www.novacode.fi/gt/homeScreen.png" align="middle"/&gt;&lt;/p&gt;
&lt;p&gt;&lt;img height="482" width="700" alt="Add track screenshot" src="http://www.novacode.fi/gt/addTrack.png" align="middle"/&gt;&lt;/p&gt;</description><link>http://www.jensjansson.com/post/518421297</link><guid>http://www.jensjansson.com/post/518421297</guid><pubDate>Tue, 13 Apr 2010 17:58:00 +0300</pubDate><category>vaadin</category><category>coding</category><category>m2eclipse</category><category>maven</category><category>application</category></item><item><title>Creating an application from zero to done: Day 1</title><description>&lt;p&gt;As I might have mentioned earlier on, I’m still a student at Åbo Akademi, working to get my master’s degree in computer science. The studies have not really moved forward in the pace I would have hoped, since i have worked almost full time for the last two years. I’m trying to get my last courses done this semester so that I can then start, and focus on my final thesis.&lt;/p&gt;
&lt;p&gt;I got a chance to take a intruging course this period. My school and my workplace was organizing a one week intesive course in Vaadin! The course itself is a walk in the park for me as I been working with Vaadin full time now for over two years. It is an introduction course where you are supposed to make a basic application with the framework. The example application coded live on the presentation of day 1 was a RSS reader, and the course participant’s projects should be of the same magnitude. As I probably got about five of that size projects already done, and when it isn’t really a challange for me, I decided to make something bigger.&lt;/p&gt;
&lt;p&gt;I got interested in golf last summer and got me a bag of clubs of my own this spring. For that reason, and that I’ve been wanting to test out new &lt;a&gt;Java frameworks&lt;/a&gt;, I decided to start doing a golf result tracker software. This is a total overkill for the course but I get to do something I think is fun.&lt;/p&gt;
&lt;p&gt;For the backend I decided to go with &lt;a&gt;Maven&lt;/a&gt; for package and dependency control and &lt;a&gt;db4o&lt;/a&gt; for the database, along with JUnit for testing. As a seprate project I’ll do a Vaadin frontend with at least two addon components found on the newly released &lt;a&gt;Vaadin Directory&lt;/a&gt;, &lt;a&gt;ChameleonTheme&lt;/a&gt; for making a custom look &amp; feel, and &lt;a&gt;VisualizationsForVaadin&lt;/a&gt; to plot some graphs. I think this set of complexity is about what I will be capable of doing in the four days (Mon-Thu) we have time to code on it. Vaadin is in a different project so that I can add alternative GUI’s to it sometime in the future, if I end up with a decent application. An Android and iPhone app would be handy when being on the golf course!&lt;/p&gt;
&lt;p&gt;Today I started looking at what features I want to support in the project. I decided to limit it to adding and viewing of players, tracks and scores. With this small featureset I have still room for some feature creeps. I went on defining a data model and basically coded the first version of all entities all the way. It resulted into seven different entities. I also did some user-handling and password encryption for safe data storage at one point when I accidentally got a little carried away. After defining the fields for the entities I started doing unit tests, and added the getters and setters to the objects along the test writing as I noticed which ones is actually neccessary for the applicaiton (for example a lot of setters are not allowed to be called after initialization and I prefer to have less code and no unused public methods). My project has only entities and tests and no entry point to the application itself. Only dependency injected so far with Maven is JUnit. The code base is still only 355 total lines of code, with 54% of it being tests. 93.7% of the code is being tested with only some catch clauses and such still being outside the coverage. This information is gathered with the plugins ECLEmma (for code coverage) and Metrics (for metrics, duh!) for Eclipse. Moving on from actually coding, I started with doing some mockups of the user interface. I used Balsamiq to do them, as it is really fast and it is free to use online. I did five mockups which is about a third of what I need. These focused on the main screen of the application and adding a new track to the system.&lt;/p&gt;
&lt;p&gt;I’m starting to somewhat get a picture of what the application will include at this point. Tomorrow I will probably start with setting up a project with Vaadin and fiddling around with the main layout of the application. I’ll probably draw a couple of mockups and alter the business logic too as I will probably find some points that could have been done better.&lt;/p&gt;
&lt;p&gt;&lt;img width="700" height="460" alt="Mockup of the main screen" src="http://www.novacode.fi/gt/3-5-informationSaved.png"/&gt;&lt;/p&gt;</description><link>http://www.jensjansson.com/post/515981331</link><guid>http://www.jensjansson.com/post/515981331</guid><pubDate>Mon, 12 Apr 2010 19:18:00 +0300</pubDate><category>vaadin</category><category>maven</category><category>school</category><category>db4o</category><category>balsamiq</category><category>eclemma</category><category>metrics</category><category>eclipse</category><category>frameworks</category></item><item><title>Becoming an investor</title><description>&lt;p&gt;Now is a good time to write about my interest in investing and finance in general. Why now, you ask? Well, this week is the first time my stock portfolio total shows a positive number, calculated roughly from the day this recession we have started. I made my first bigger investments just before the downhill started, so I have been looking at a red summary row the whole time I have been investing, until now. Having had this declining market is not all bad. I lost a lot at the beginning, but I have got the total up to +-0 by heavily investing over the second half of 2009. If I hadn’t believed in the markets I wouldn’t have invested more, and I would still have losses of about 20% today. This means that the market as a whole hasn’t yet fully recovered from the recession, which means that the rest of the recoverement is in other words pure profit to me. Yay.&lt;/p&gt;
&lt;p&gt;I think I invest a little bit too heavy for the moment, but I just see great potential in it. I took a course in investing in fall, and one detail that was said on the course really stuck into my mind. That was that you should not invest money that you may need in the near future, 5 years or so, except when you get some very secure/short term investments (state bonds etc.), and only a fraction of all your investments should be in the high risk/volatility sector at all times. This is funny when the most expensive object I have, after my investments, is my TV, and roughly 90% of all my investments are in stocks. I may also need the money in a few years if Katja and I decide to buy our own flat. They say it is good to not worry about the risk so much when investing, but I have a feeling that I sometime neglect it alltogether, which isn’t either good. &lt;/p&gt;
&lt;p&gt;Here’s what my portfolio looks right now. Company names along with their percental weight:&lt;/p&gt;
&lt;pre&gt;Finnish stocks:

Affecto		10,0%
Elisa            1,0%
Fiskars		 2,6%
Fortum		 6,0%
Huhtamäki        9,4%
Kemira		 0,4%
Neste Oil	 2,1%
Nokia		 7,4%
Nordea Bank	20,4%
Orion		 2,8%
Outokumpu	 7,7%
Panostaja	 1,8%
Pöyry		 9,2%
Rautaruukki	 1,9%

Funds:

India Fund	 3,3%
East-Europe Fund 2,7%
China Fund	 2,9%
Russia Fund	 3,0%
Low yield interest/stock fund 5,3%
&lt;/pre&gt;
&lt;p&gt;Next step in shaping the portfolio is probably to take a deeper look if the stocks are evenly spread out in different industry segments to minimize risk.&lt;/p&gt;
&lt;p&gt;I want to stress the benefits of investing to everybody. Only way to get a little extra, and not being so dependant on your payday is to take care of yourself. That, by making sure you have a few other sources of income. “Become financially independent” and “don’t work for money, make your money work for you” as Kiyosaki said in his book ‘Rich dad, poor dad’. A great book - read it if you haven’t yet. Yes, you! However, I really can’t recommend actively investing in stocks to anyone, except if you are ready to get really commited into the whole thing. Funds are so much easier to invest in when there is someone in the banking firm taking care of your money the whole time, for a living. The profits may be a little less because of extra fees but the risk for the portfolio to crash is that way so much smaller. I am bound to sometimes lose money on the stocks because of my dumb decisions. That’s because I simply don’t know enough right now about the dynamics of the markets and the companies I invest in. But I am ready to lose some in order to learn, as you learn from your mistakes. I think the fastest way to learn (but maybe not the most profitable) is to just jump into the game. It is, aditionally, a hobby to me, with it’s own thrills and chills.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/448308098</link><guid>http://www.jensjansson.com/post/448308098</guid><pubDate>Sun, 14 Mar 2010 22:28:00 +0200</pubDate><category>finance investing</category></item><item><title>The Curious World of Java Frameworks: An Introduction</title><description>&lt;p&gt;I have felt all my time being a programmer that I don’t know enough of my field of profession. I guess you could call it a healthy curiosity and the need to become a better software engineer. At first, when I started working, I wanted to get a better grasps of the very basics. Learning to use Java efficiently, which is the language I work with, learning nifty programming tricks, coding in an object oriented way, testing, building, refactoring, writing maintainable code etc. I feel that I have gotten a hang of these things now and my curiosity has moved on to other things. My latest interest lies in third party frameworks which have caused a big buzz in the Java community lately. I tout people to use our company’s GUI framework, but at the same time I haven’t bothered to look at other readily available frameworks out there.  I guess that many in the branch too easily just starts to code their projects head first, instead of taking the time to look around for a moment too see what’s available out there. Many of the common project requirements have already been coded a bunch of times, and many end up building their own little framework when there is already many proven and free solutions available for download. I don’t think it is so much of a case of the Not Invented Here -syndrome (&lt;a title="NIH" href="http://en.wikipedia.org/wiki/Not_Invented_Here"&gt;NIH&lt;/a&gt;), although it could be a factor, but more of not just knowing enough of all the powerful tools that you could add to your toolbox.&lt;/p&gt;
&lt;p&gt;I have therefore gathered a list of frameworks that interests me, but of which I don’t really know anything about. The biggest one of these is the &lt;a title="Spring framework" href="http://en.wikipedia.org/wiki/Spring_Framework"&gt;Spring framework&lt;/a&gt;. Next of the bat comes &lt;a title="Maven" href="http://en.wikipedia.org/wiki/Maven"&gt;Maven&lt;/a&gt; and the third is &lt;a title="db4o" href="http://en.wikipedia.org/wiki/Db4o"&gt;db4o&lt;/a&gt;. There is a few others too but I won’t go into details right now.&lt;/p&gt;
&lt;p&gt;The parts of Spring that I’m most interested in is building more modular applications with its Dependency Injection (&lt;a title="Dependency Injection" href="http://en.wikipedia.org/wiki/Dependency_injection"&gt;DI&lt;/a&gt;) and Aspect-Oriented Programming (&lt;a title="Aspect-oriented programming" href="http://en.wikipedia.org/wiki/Aspect-oriented_programming"&gt;AOP&lt;/a&gt;) capabilities and it’s Object-Relational Mapping (&lt;a title="Object-Relational Mapping" href="http://en.wikipedia.org/wiki/Object-relational_mapping"&gt;ORM&lt;/a&gt;) integration tools to automatically handle connections, transactions, exceptions etc. to the database. I use Hibernate a lot and Spring has Hibernate integration, so I’m interested to see what parts of my own code is already implemented in a more generic solution into Spring. I just got the book ‘&lt;a title="Spring in Action in Amazon" href="http://www.amazon.com/Spring-Action-Craig-Walls/dp/1933988134/ref=dp_ob_title_bk"&gt;Spring in Action&lt;/a&gt;‘ by Craig Walls that I’ll start exploring at some point. The downside is that the book is 700 pages and I’m a terrible slow reader. On the plus-side, Spring in very modular in itself and the most important modules are presented in the very beginning of the book. That means that I can take some new features to use after every chapter.&lt;/p&gt;
&lt;p&gt;The one that I’m going to look at first, however, is Maven. Maven is first and foremost a build system to easily produce jar:s, war:s and ear:s of your projects. Additionally, it can download other framework jar:s for you and easily plug them into your project. I’m looking into it to simplify project structures and have it help me to handle dependencies between my own projects when there can be up to six different projects depending on each others.&lt;/p&gt;
&lt;p&gt;db4o interest me because I want to see what alternatives there are to SQL. Object databases is one of them. I’ve heard that db4o is really simple to use and that would be a great asset to small pet projects.&lt;/p&gt;
&lt;p&gt;So those are the frameworks I’m gonna start off with to enlarge my Swiss army knife. I’ll start with Maven as I already have tested out it a little, it is fairly compact and it defines the project’s structure. It’ll be a lot easier to add on the other frameworks to the project when I’ve laid the foundation with Maven.&lt;/p&gt;
&lt;p&gt;Let’s see how this starts off..&lt;/p&gt;</description><link>http://www.jensjansson.com/post/403311061</link><guid>http://www.jensjansson.com/post/403311061</guid><pubDate>Sun, 21 Feb 2010 23:04:14 +0200</pubDate></item><item><title>[Blog] Blogging on-the-go</title><description>&lt;p&gt;I’m sitting in a car for the moment, on my way to a business trip. I’m listening to music to kill time and I suddenly got an urge to write a blog post about my ambition towards music. But what to do? I have no computer in front of me, and probably at the point when I do, I’ve lost “the right mood” to write the post. I decided to download Tumblr’s own app (Tumblr is where this blog is hosted) for my iPhone and test if it is any good for writing these post. The app seems quite nice, and writing this post hasn’t been an hassle at all. It has the ability to store drafts, so I had the possibility to take a break from the writing too. Only down-side, and this is a big one too, is that it doesn’t support the landscape keyboard. I did a lot of mistakes all the time, but the typing speed was still decent. A spell checker would have been nice too. The next phone I’ll get will probably be a ‘yet to be announced’ android phone with a physical qwerty keyboard. That’ll fix at least the former problem.&lt;/p&gt;

&lt;p&gt;On a related note: I dropped my iPhone today for about the 20th or 30th time and this time it shattered in one corner. It however still works perfectly and I’m suprised it lasted flawlessly this long.&lt;/p&gt;

&lt;p&gt;By the way, I already forgot all my great ideas for my music-related post, but I’ll at least be prepared the next time I get them.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/254362816</link><guid>http://www.jensjansson.com/post/254362816</guid><pubDate>Mon, 23 Nov 2009 16:19:58 +0200</pubDate></item><item><title>[Software] Allowing native Javascript in Vaadin</title><description>&lt;p&gt;Two days ago, we had this long discussion on the public Vaadin skype -channel about if how you should run Javascript in an Vaadin application, which continued a little on the forum and over lunch. It turned out fast to be an discussion about if Javascript should be allowed at all to be run from an Vaadin app. It was a discussion between ideology and convention.&lt;/p&gt;
&lt;p&gt;The side defending the idelogy had the point that allowing Javascript would break the level of abstraction. The strong point of Vaadin is that it is very easy to use as you can do great things without knowing anything about Javascript, HTML and CSS. You only need Java. By opening the abstraction you soon get some implementations that depends on the low level API, and everybody has to learn those too to use Vaadin. Usability goes down. Another reason not to, is that I guess it would be really easy to break the whole software by running custom Javascript. Just like it is easy to break the software with custom css if you don’t know what you are doing. The whole API gets bloated at the same, when you add feature after feature, so you have to be critical about what you add.&lt;/p&gt;
&lt;p&gt;The convetional side had the arguments that every abstraction is leaky. As a reference works Joel Spolsky’s blog post ‘&lt;a href="http://www.joelonsoftware.com/articles/LeakyAbstractions.html"&gt;The Law of Leaky Abstractions&lt;/a&gt;’. Sometimes you just have to drop down to a lower level to get things done. This becomes apparent when your Vaadin application has to work in symbiosis with some old system, and you have to embed jsp pages somewhere. How do you communicate between the Vaadin app and the jsp pages? Some of the main issues here has been to close a window (js: window.close()) or print some jsp/hmtl page from the application (js: window.print()).&lt;/p&gt;
&lt;p&gt;At first I was strongly on the side to not let the user use Javascript. Think of all the possibilities you open up for hackers! Think of all the possiblities you open up for the programmer to really really mess up the application. One option that came up  was that it should be a separate extension to Vaadin, not embedded into the core Vaadin library itself. It should fit well as a component into the upcoming Vaadin side product ‘Directory’, which will be a web page where you could download custom made components for Vaadin. The users can jump the extra hoop and download a component from there, if they really, really want the ability to run Javascript, at their own risk. This way with wont pop up to users that doesn’t care about Javascript. I decided to do just this, build a Vaadin widget that runs any custom JS the programmer specifies. I did it because it was trivial to do and becuase I did not really want the feature into core Vaadin. You can find the code from &lt;a href="http://dev.vaadin.com/browser/incubator/NativeJS"&gt;here&lt;/a&gt;, a demo of it from &lt;a href="http://jens.virtuallypreinstalled.com/NativeJS/"&gt;here&lt;/a&gt;, and a  forum discussion about it from &lt;a href="http://vaadin.com/forum/-/message_boards/message/77379"&gt;here&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;After thinking about this for a while I have started to lean to the opinion that js built in would not be that bad. Hackers can’t use this very much as Vaadin has a strict barrier between the server and the browser. I also haven’t found out that there is some really really bad that you can do with js. You can’t really crash the server because all javascript runs in the browser. So the risks of having it seems to diminish all the time. I also heard someone saying: When Vaadin fails, GWT saves. When GWT fails, Javscript saves. And this is the solution for all the cases where it would be just easier to to a one-liner in the low level language.&lt;/p&gt;
&lt;p&gt;I’m for the moment on the fence if it should be included or not. I’ve heard so many arguments for both sides so I guess I have to let it sink in for a while before forming my final opinioin. Then again, it’s not at all my decision to make. :)&lt;/p&gt;</description><link>http://www.jensjansson.com/post/220875087</link><guid>http://www.jensjansson.com/post/220875087</guid><pubDate>Fri, 23 Oct 2009 15:24:00 +0300</pubDate></item><item><title>Life as a biker</title><description>&lt;p&gt;All right, the topic may be a little bit exaggerated. I just got my driver’s licence for motorcycles on Thursday, and have to get used to the idea.&lt;/p&gt;
&lt;p&gt;I had been thinking for a while about getting the license, by the influence of my girlfriend, Katja. She has had the license as long as we’ve known each others, and has been talking every summer about getting some kind of bike. This summer I decided to get the license so that we can get a bike together for the next summer. The bike is mostly for fun, but also using it for transportation, as we do not own a car.&lt;/p&gt;
&lt;p&gt;&lt;img height="270" width="360" alt="Kawasaki ER-6F" align="right" src="http://media.tumblr.com/tumblr_krnyznIzZa1qa0lrx.jpg"/&gt;We’re looking for a street/sport bike of roughly 600cc. The first model I was looking at was the Suzuki GSX, but that idea got scrapped as it wasn’t really of Katja’s liking. Now I’ve been eyeing at Kawasaki er6-f, and it seems to be a good choice for us. Nothing is decided yet however, and we’re still looking at other possibilities. Requirements is about that it should be somewhat a sport model, used - 2-4 years old model, around 5000€. I am open to suggestions!&lt;/p&gt;
&lt;p&gt;The original plan was to buy the bike this fall, but that probably won’t happen. Getting the driver’s license did not go as smooth as planned, and I lost a little interest into looking into the gear for that reason. It was really at the last possible moments that I got the license as it was already sub-zero temperature on my last exam, on Thursday. By failing it I would have probably had to wait for the next spring to continue. Now that I got through it, my interest is back up a little. I guess we’ll get the bike in the spring. I should get the other gear as soon as possible, as they should be much cheaper now on the fall. Only the clothes and gear I’ll need will cost around 1000€. Therefore it would be nice to get some warehouse emptying rebate this fall.&lt;/p&gt;
&lt;p&gt;I should head to the stores in the coming days and see what they have to offer. Too bad that I don’t know many places in Turku to get the equipment,  but I guess I’ll come up with something.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/215520849</link><guid>http://www.jensjansson.com/post/215520849</guid><pubDate>Sat, 17 Oct 2009 18:00:25 +0300</pubDate></item><item><title>Introducing Vaadin</title><description>&lt;p&gt;So I’ve been working at &lt;a href="http://itmill.com"&gt;IT Mill&lt;/a&gt; now since April of 2008 as a software developer. I thought I could give a little sales pitch of the company and the product, describing what the company does, and what I do there. IT Mill is altogether a software house, and their main product is Vaadin, which I already mentioned.&lt;/p&gt;
&lt;p&gt;Vaadin is an open source Java framework for developing Rich Internet Applications (RIA), in a manner much like Swing. RIA is just a fancy name for saying that I have an application that runs in the browser. Everything needs to have a Three-Letter Acronym (TLA) nowadays. The idea is that you can develop your whole application  in Java, without having to care about low level languages like HTML, CSS and foremost Javascript. Vaadin uses Google Web Toolkit (GWT) to accomplish compatibility with browsers. GWT has a compiler that can translate Java to HTML and Javascript. When you develop with GWT you usually do a huge chunk of the application’s user interface and logic that is translated into Javascirpt. That means that the whole application can be sent over to the browser. If you need more data from the server the Javascript can call on the server directly with the request. Vaadin has taken a little different approach to the whole. First of, it has a clear split between what is on the server and what goes to the browser. Vaadin has a bunch of minimal precompiled components in it, such as layouts, text fields, selects and tables. The programmer then mixes and matches these to a user interface and only the view is sent to the browser. The browser doesn’t get any business logic at all – the components just sends the user input back to the server as key-value pairs. For example, if you have a text field and the user writes ”abc” into it, the text field sends a variable named ”text” with the value ”abc” to the server without valuating it. It is then the servers responsibility to decide what to do with that variable. This way you can have a normal Java application on the server side with no dependencies to the user interface other than than receiving the input. This approach has several benefits&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The API that the Javascript can use to call the server is minimal. The components only have one function which only can sends variables – no commands – to the server. This makes the attack surface for hackers as small as possible, and turns the application from a white box to a black box.&lt;/li&gt;
&lt;li&gt;As the components are precompiled, and the business logic stays as Java on the server, you don’t have to compile you application at any point, except when you change the basic behavior of the components. The component set that comes along Vaadin is wide enough, and you can really do a lot without starting to develop your own components. With GWT you have to compile every time you change something, or add an extra button, or whatever.&lt;/li&gt;
&lt;li&gt;Initial data which is sent to the browser is just a fraction compared with sending the whole application. This has the trade-off that every action the user takes will fire of an round-trip to the server, so the request amount is much higher.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;As Vaadin is open source and completely free, you might wonder where is the catch – how the company finance this project. The business plan of IT Mill is split into to major parts. First off, we sell extra services around Vaadin, like holding training days with topics revolving around developing with Vaadin, selling applications like user interface testing software and  offering support packages to development teams. The other part of the business plan is that around two thirds of the whole company works with developing in-house applications that uses Vaadin on request of customers. This gives the funds that is needed to develop Vaadin to an ever greater framework. The company is still growing fast, having had a 50% annual growth measured in the total amount of employees, and that is about the growth expectations for the coming years too.&lt;/p&gt;
&lt;p&gt;I, myself, work with doing applications to customers. I work in a team of four developing the next version of an application that is now a native Windows application. By turning it into an Java/Vaadin application they get the benefits of reducing upkeep costs – updates doesn’t have to be rolled out to every computer that uses the application, only to the server. At the same time it is platform independent, so it can be used on Linux and Mac too. We’ve been working on this project now for a little over a year, and it is shaping up nicely. We hope to roll out the first version out  pretty soon. Gonna be exciting. Other than the project I’ve been going to companies holding training seminars to them. The topics have been about developing with Vaadin and doing UI regression testing.&lt;/p&gt;
&lt;p&gt;This whole post turned out to sound like I’m trying to sell the product to everyone. No worries, as I said it is free. :) What can I say, I’m proud of the company, the whole team is great, and I’m confident that Vaadin will be successful.&lt;/p&gt;
&lt;p&gt;If you want to check out more, go to &lt;a href="http://vaadin.com"&gt;vaadin.com&lt;/a&gt; or jump straight into the &lt;a href="http://vaadin.com/demo"&gt;demos&lt;/a&gt;. If you want to try it out, I recommend the &lt;a href="http://vaadin.com/tutorial"&gt;tutorial&lt;/a&gt;.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/197323303</link><guid>http://www.jensjansson.com/post/197323303</guid><pubDate>Sat, 26 Sep 2009 12:05:00 +0300</pubDate></item><item><title>What is this thing called 'blog' that I've been hearing about?</title><description>&lt;p&gt;Hi there!&lt;/p&gt;
&lt;p&gt;Starting my first blog - this should be interesting. I have multiple times thought of starting my own blog - but the idea has always failed when I remember finally how lazy I am. But now it’s time to get my stuff together, and put some effort in it. I have some work-related stuff that I’m thought of writing articles about, so I guess a blog format would fit it quite well. Second motivation is that I’m quite bad in writing articles, posts, specs, whatever, and the best way to get better is by writing.&lt;/p&gt;
&lt;p&gt;Best to start of with some background information. I live in the northern cold regions of Turku, Finland. I’m (sadly still) a student at the university Åbo Akademistudying on a master degree in computer science. I’m about 3/4 done. I’m also working full time as a software developer at the company &lt;a href="http://itmill.com"&gt;Oy IT Mill Ltd&lt;/a&gt; , developing projects with the company’s framework, &lt;a title="Vaadin" href="http://vaadin.com"&gt;Vaadin&lt;/a&gt;. Vaadin is a Java framework for developing web applications. At work we have something called Community Friday, where we can use 10% of our whole working time into doing some personal projects. Right now I’m exploring what happens when Vaadin goes Spring. I was going to write some articles about it, and that’s the main reason why I put up this site, and writing this right now. So you might expect to see a series of articles written about Vaadin and Spring in the near future.&lt;/p&gt;
&lt;p&gt;Besides being interested in software engineering, I’m also quite fond of finance and will probably write something about that too. I have recently got heavily involved into investing (while I might say heavily, keep in mind that I’m still a student so there is no millions flying around :)). I see stock markets and money more like a big system, or as a game. And as with most games, you can beat it if you’re justskillful enough. For me it is not so much about the money itself - but more about the challenge in the system that intrigues me.&lt;/p&gt;
&lt;p&gt;And following up on the topic of games - I really like games. More exactly all kinds of computer games, but also board games. I guess I never outgrew my inspirationin gaming when I was little, and I have no intentions to stop playing either. I may express some opinions in that topic as well.&lt;/p&gt;
&lt;p&gt;Other than that, I don’t know, maybe I want to express myself regarding music, gadgets, random thoughts of life, something like that. Let’s see. My first topics will probably be work related. A introduction of Vaadin, followed up on a series of posts regarding Vaadin and Spring integration. It’s all quite open still.&lt;/p&gt;</description><link>http://www.jensjansson.com/post/196543626</link><guid>http://www.jensjansson.com/post/196543626</guid><pubDate>Fri, 25 Sep 2009 14:11:00 +0300</pubDate></item></channel></rss>
