Skip to main content

Creating something concrete with Scala

Since I attended a course on functional programming with Scala at Coursera (see previous posts) I've been having a idea to make something concrete with Scala. Having only minimal experience with Scala I decided to try something simple with well known Scala libraries.

The project


First I'll try to create a simple todo application that saves all the data to a some database (maria, redis, mongo) and the tasks are managed via REST-service.

Once I've done that I have two ideas what to do after that. I'll either try to create some sort of UI that uses the REST-service or I'll extend the simple todo application to a Kanban board type of application and try to create the UI after that.

I haven't decided with what I'll be creating the UI since I'm not that familiar with current frontend technologies so that'll be decided later.

First try


At first I tried to create a REST-service with spray but that didn't work. Maybe it's just me but to me the spray documentation was incomplete, I also tried out sprays examples from github and had them running via sbt but not with Scala IDE. The examples ran with sbt but when I tried to create my own REST implementation based on the examples the service never responded. Trying to make this simple service to respond to me with no luck for several hours I decided that I'm not going to use spray.

Second try


This is still on my todo list but next I'll try create the REST-service with Play 2 hopefully with better results.

Impressions now


Trying to create something with a new language and new libraries can be difficult and in case of Scala and spray it seems to be true. Though this isn't true to all languages, I remember a project where we created a REST-service with Grails with absolutely no experience with Groovy or Grails and that was a walk in the park compared to my experiences so far with Scala and spray.

Comments

Popular posts from this blog

DIY home automation, new generation

I've had my DIY home automation system for controlling outlets and reading sensor data running for about two years now. The system has been working fine and I haven't had any need to touch the code since I added the sensor reading to it, until a few months back.

Need for new functionality
Few months ago I got a new IoT toy for a lend from a friend until I'd get my own toys, a ruuvitag sensor beacon. Ever since I found the ruuvitag for the first time from kickstarter I had the idea of getting a bunch of ruuvitags and adding their weather station sensor readings as part of my home automation system.

The original home automation backend included only tellstick compatible devices and was written in Python, and in my mind it was kind of a hack. The ruuvitag beacons communicate via BLE i.e. Bluetooth Low Energy and that meant that I needed to add functionality to read the beacon data via bluetooth.

I found a ruuvitag Python library and initially thought that I'd just use that a…

Dedicated time for learning Python at work

In the spring of 2019 I had the opportunity to use some paid work time for learning something new.
I decided to spend the given time to brush up on my Python knowledge. I had some experience in programming with Python but not much and I didn't have a understanding of Python conventions or ecosystem.
Limited time frame I had a limited time frame that was split to four sessions. In addition to the time given for each session I spent at least the same amount of time on preparing each session.
First session, the basics It was quite hard to find a resource that summarised Python basics on a sufficient level but I managed to find Alex Martinelli's slides Python for Programmers from 2007 that contained exactly what I was looking for.
Even though the slides are from over a decade ago and the Python version was 2.x at that time all the information is still applicable to current Python 3.x version as is or with minor changes.
Second session, testing in Python Python has a good support fo…

DIY home automation v1

For years I've been interested in home automation. I've had remote controllable outlets from a few different manufacturers but I've never been quite satisfied with just the remote. What if I could control my outlets within my local network from any device, now that's something I wanted to have.

Controlling outlets from computer A few years back I bought a three pack of remote controllable nexa outlets. A while ago I discovered that another company manufactured a control unit that's plugged in to a USB port and best of all they provided linux software for it.

To make full use of these I'd need a computer that's always on and that's where I could make use of Raspberry Pi.

Setting up outlets
I had already set up my outlets with the remote that came in the retail pack just follow the manufacturer instructions.
It might be possible to configure the outlets completely via the software at least for some brands but I haven't tried it so I can't be sure.…