Skip to main content

Posts

Showing posts from 2013

Course completed

As I wrote in previous posts I've been attending a course Functional Programming Principles in Scala on coursera. I've completed the course and will write my final thoughts of the course this time.

First weeks
The first three weeks was like a  boot camp to drop out everyone who's not fully commited to the course. I've written about the first weeks in a previous post so I'm not going to repeat myself.

Weeks four and five
Weeks four and five were a positive surprise in two different ways. First of all the subjects were much more interesting and practical than in previous weeks. The second nice surprise was that the homework for the two weeks was combined.

Week four was about pattern matching which is a essential part of Scala and I found it to be a very interesting concept, easy to understand and it can simplify the code.

Week five was about lists. Nothing shocking during the week as lists are similar to lists in Java but in Scala lists do have some operations that c…

Learning Scala online

As I mentioned on my last post I've been attending Functional Programming Principles in Scala course at Coursera. It's been three weeks now and I thought I should express my current feelings about the course.

Course arrangements
Arrangements on the course are just about what I expected. Series of video lectures per week, some quizzes in the videos and homework that's evaluated automatically in a matter of minutes. Homework assignments and videos are given on mondays and homework deadline is in about ten days from that.
On the first three weeks the lectures and homework has been about abstract presentations of entities and mathematical definitions.
Lectures
Lectures i.e. videos can be viewed online or downloaded and one can also download english subtitles for the videos and the slides shown on videos are also downloadable as pdf's. The subtitles could be helpful sometimes but the quality isn't that good, missing and wrong words, so I don't use them.
The lectures…

Summer is over and it's time to get back in business

Now that summer is over and summer vacation is just a faint memory in the past it's time to get back in business. This time I'm writing about boring work days and how I'm going to try to overcome that troubling feeling I'm getting.

Background For the past four weeks in work the days have been repeating themselves. Every day has been like a repeat from the day before but a bit slower. When this happens it means that work tasks are also repeating the same pattern again and again.

For me this is a bad situation!

I know from the past that this is a situation where I'm getting bored and losing my motivation more and more every day. When I'm losing my motivation at work I know I'm also losing my motivation to do anything useful at my free time.

I knew I had to do something so I wouldn't lose interest to everything and one day I would wake up realizing that I've spent six months browsing netflix.

First step Probably not the first thing I did but one of the …

Key-value stores from Redis point of view

This post was supposed to be about graph databases and key-value stores but it's going to be only about key-value stores because I got more interested in trying out Redis than Neo4J.

Redis Redis is a key-value store that keeps it's database in memory but it also stores it's database on disk after a predefined time and number of changes in database. By default the values are like this:

900 seconds and at least 1 change300 seconds and at least 10 changes60 seconds and at least 10 000 changes More on Redis can be found at their website http://redis.io/ and if your interest to give it a quick try I suggest their online tutorial at http://try.redis.io/.
Important about querying This is a important detail with key-value stores. In a key-value store the data can be searched only by the key. There are solutions that enable searching by the data, like lucene or solr, but that's a whole different search engine and not the actual key-value store.
It might appear strange or constra…

MongoDB quick thoughts

This time I'm writing of my experiences and random thoughts about MongoDB. Just a quick overview and nothing too profound.

My MongoDB experiences
I've been a part of a development team in two projects that used MongoDB as a database and in addition earlier this year I attended and completed MongoDB for Java developers online course by 10gen, the company behind MongoDB. 
Moving from relational databases to document databases isn't easy. I don't have any real experience with functional programming but I'd imagine moving from object oriented programming to functional programming is some what similar experience as moving from relational databases to document databases. Some of the rules are still the same but there are a lot of differences.
Flexible schemas
MongoDB has flexible schemas meaning that the data model in the collection can be changed per document a any time. I really like this as it gives the opportunity to store only and all the data that is needed per doc…

Studying and developing as software development professional

As everybody in software development knows, or should know, that studying and experimenting is something one must do to stay on top of the game. That said this time I'm writing about my experiences and ideas of studying. In this post I'll be covering different methods of studying and how I feel about them and what other types of resources are available.

Reading a book Reading a book is probably the most traditional way of studying and I do read a few books every year. To me this is a way to learn theory and principles of something but usually little to nothing to do with the actual implementation. This type book I usually read in a week or two and I like these books when their length is reasonable somewhere between 50 and 250 pages.
Reading a book with exercises These are very common type of books in software development. These usually cover some theory and the exercises bring a pragramatic approach with what one can learn a basic implementation. Some of these books are good i…

JFokus 2013: Second confrence day

On the second day I didn't make as much notes as I did on the first. That doesn't mean that the session weren't interesting I just focused more on listening. I attended eight session on the second day where the last one was the most memorable one by Dan North but I'll go through them chronologically. Some of the text is word to word notes from the presentations and some are my view of how I understud and processed the topic in my mind.

Building scalable, highly concurrent and fault-tolerant systems: Lessons learned
Jonas Bonér told what makes systems slow and what kind of solutions can be used to speed them up or at least speed up the response to the user. 
First lesson to learn is There are no free lunches. If you use some approach it affects to something else. Some might use the phrase There are no silver bullets which means the same thing or at least that's how I undestud it.
Second topic was about concurrency. Mutables and threads isn't a good a combination…

JFokus 2013: First confrence day

This was my first time at JFokus but hopefully not last. I wasn't quite sure what to except. I had heard good things about the confrence and knew that it was quite big. It was more and better than I expected. There were over 1500 attendees and great session from beginning to end. If i get the opportunity to go again I'm most definitely going again.

On the first day I attended six sessions. I'm not going to write all my notes here but I'll try to give good summary of each session and the rest can be read from JFokus website where you can find presentation materials for both days.

Taking development to the edge This was the keynote of JFokus embedded, M2M & internet of things miniconfrence.

In the future everything is connected to each other and to the internet by everything meaning absolutly everything. Cars can share information of traffic, houses can tell if all the doors are closed and locked or the are the lights on.

Smart homes didn't succeed 10-15 years ag…

Vaadin meetup

I attended Vaadin meetup with a few colleagues on a way to JFokus 2013 and thought I should share my notes of the two. First post is about vaadin meetup that took place on a cruise from Turku to Stockholm.

I made notes of three presentations and one of them I had high expectations. There were also two other presentations that I didn't make any notes of.

Vaadin 7
Vaadin released Vaadin 7 framework the same day that the meetup was on so they had a presentation where they told about new features and future plans. I'm more of a backend programmer than UI programmer so my notes of this were pretty brief but here it goes. Whats new Servlets and HTTP-sessions are controllable by the programmerMultiple UI classese.g. One for web browsers and one for mobile web browsersGWT is now build-inSupport for external JavaScript modules What to expect in the future Faster relase cyclesmaintenance release every two weeksDynamic CSS injectionVaadin CDI, their own depency injection systemVaadin chart…

Blogging from snowy Finland

First post on my first blog... Lots to say but can't deside what to say so I decided to start by a introduction of myself before we get into business.

I do software development for a living and that also happens to be a hobby of mine, what a nice coincidence. I work as a IT-consultant and I'm loving it most of the time. I get to see a lot of different environments and solutions but... there's always a but, I also see a lot that could be improved. With improvement I mean cleaner, simpler and easier to understand solutions.

I do most of my programming with Java, but I've had some experience with HTML, CSS, PHP etc. solutions in my past and in the last two years I've done some development with Groovy and modern JavaScript libraries.
Various relational databases have been part of my toolbox since I started web development with MS ASP and PHP over a decade ago. Recently I've also done development with NoSQL databases as a backend instead of RDBMS.
I haven't give…