Thursday, November 21, 2013

Learning Scala with Scala Koans

A few days back I blogged about learning Ruby with the Neo Ruby Koans, I found a similar page for the Scala programming language called Scala Koans.

Koans are small lessons on the path to enlightenment. The aim of the Scala Koans project is to provide an easy learning environment in Scala. Your insight will be derived by encountering failing tests and fixing them so that they pass. A testing framework is used to simplify this process and to get you off to a good start with using Scala.


Play 2 + Scala + Slick + more sample application

In my attempts to learn the Play Framework I decided to build my own sandbox project called Resource Vault. If you are curious about what I did you can download the project and run it in your local environment.

Resource Vault core design choices 


  • Play for Scala - Scala API for Play application developers
  • Slick - Modern database query and access library for Scala
  • Bootstrap - Mobile first front-end framework for faster and easier web development. Includes 200 glyphs in font format from the Glyphicon Halflings set
  • Webjars - WebJars are client-side web libraries (e.g. jQuery & Bootstrap) packaged into JAR files
  • Specs2 - Library for writing Acceptance and Unit tests


Resource Vault application overview

Resource Vault is a virtual vault for referencing resources, a central location to bookmark important links and resources. A user can add any number of resources and group them accordingly using basic CRUD actions. Below is a screen shot of what the home page looks like:


Running the application

In order to get Resource Vault running in your local environment you can try the following steps:



I won’t go into any other detail describing every file so if you want to dig deeper please have a look at the code.

I am going to continue building adding to this project so that I can grow and improve my knowledge of Play and Scala and all the rest that comes with it. I will look at adding more useful unit specifications and acceptance specifications with Specs2 as well as FluentLenium. I want to add authentication and authorisation and then deploy and run the application on Heroku. I have a number of other use cases in mind and hopefully I can get time to cover most of them.

Please feel free to comment and give suggestions on areas where you think I could have done things in a different way.


Wednesday, November 20, 2013

Mercurial - Recommended tutorial

I have been using Mercurial and Google Code to host a sandbox project I am working on to learn the Play Framework. Mercurial is an open source, distributed version control system. I found the following tutorial the easiest and most enjoyable read to learn the basics of managing a repository with Mercurial.

Atomic Scala

I recently purchased the AtomicScala eBook written by Bruce Eckel and Dianne Marsh. I am enjoying reading this book as I find it to be a much easier read than some other programming books on Scala that I have read.

We wrote Atomic Scala to appeal to beginning programmers as well as experienced programmers who have been frustrated with the sharp learning curve often described when learning Scala. In the atom “How to Use This Book”, we encourage experienced programmers to move through the material more quickly by skipping to the summaries (Summary 1 and Summary 2). Those summaries also help beginners by reinforcing the information that we previously presented in detailed atoms and with additional exercises.

I would recommend this book to anyone wanting to learn Scala, you can also download the first 100 pages for free to get a taste for it.

Monday, November 18, 2013

Learning Ruby with w(p)GtR and the Neo Ruby Koans

I have slowly been learning Ruby over the past 2 years as I have been using Buildr to build all our projects. Buildr is an open-source build system used to build Java or Scala applications. It is based on Ruby's build system called Rake and uses Ruby as a scripting language. I am no expert in Ruby but have really enjoyed learning all the useful things you can do with it. There are 2 links I have found enjoyable and useful and I would recommend:


Either one of these are a good start for a beginner like me and I would highly recommend them to anyone starting out in learning Ruby.