Resources Software Development

Scala self types links and resources.

The Scala documentation coverage of self types is not very good. Here are some links to further information and explanations of self types in Scala.


Self types in Scala – This is a decent article that explains self types pretty well.

Scala Self types annotation – more information about Scala self types with examples.

Inheritance vs self types – this article covers the differences between inheritance and self types. Some of the content is repetitive of the above links but said in a different way with different examples. This does a good job of explaining why you would self type instead of inherit, the main thing  I was looking for.


Undocumented parts and pieces of Scala magic

I constantly run into things that are not in the documentation of Scala or if they are they are hidden. This kind of stuff only increases the learning curve of Scala. Any increase in the learning curve decreases acceptance rates.

Self typing. The docs only show one single way, but low and behold there are more ways. Imagine that. Disambiguating ‘this’ in Scala, or what does ‘self =>’ mean?


Resources Software Development

Actual AKKA API documentation link

I may be doing something wrong.
While reading the Akka documentation about Dispatchers  I wanted a better look at the actual API. To my surprise and inconvenience, there was no  link on the page.

So I had to google and well the first link was just to the same damn page in the docs I was looking at. So  I clicked a few more until  I found what I was looking for. I have no idea why there are not links in the docs.

Low and behold the hard to find ACTUAL DOCUMENTATION LINK 


Scala concurrent programming links and resources

A journey into concurrent programming in Scala – a good article about concurrent programming in Scala

Java Executors documentation – Scala uses Javas future system with Executors etc.

Play uses Akka so you can also use Akka dispatchers for the ExecutionContext required in the Controllers.

Resources Software Development

Interesting hosting options, information and links

amazon fargate – container hosting made easy.

google cloudfront – another container hosting option

Resources Software Development

Scala performance issues and tuning

Exploring Scala performance – Great article pointing out some of the small things you can do to improve performance or DESTROY it.

Reactive Audit – a program to help detect where an application is using blocking code. This audit tool aims to provide help to the use of Reactive architecture in project implementations

Resources Software Development

Scala case class resources links and information

Scala case classes are used heavily in Scala code. Understanding them is very important in order to be efficient in Scala. Instead of repeating everything in the below articles, I’ll post links instead.

Scala Case Class and Case Object In-Depth (Part-1)

Scala Case Class and Case Object In-Depth (Part-2) 

Using Case Classes to Structure Your Data

Resources Software Development

random programming articles videos and links

Is It Time to Get Over Design Patterns?– Interesting article pointing out some of the issues with the use of OOP Design patterns.

Category Theory  – This is what functional programming is based on.

Category Theory – Wikipedia entry covering category theory.

Resources Software Development

Scala Closure Functions resources, links and info

What is a Closure function in Scala? The simple answer is, it is a dirty function that uses variables declared outside the function inside the function, which are not passed as values to the function.

I call them dirty functions because it feels dirty to have some unknown variable outside of a function have power to influence the outcome of the operation in a function. This can be a class or object where the variable is defined or to have even more fun in Scala it can also be an implicit variable from an import.

So again a closure is a dirty function that takes values as parameters but also access variable values from outside of the function that are not passed to the function directly… dirty
Scala Tutorial 15 – How to use closures in Scala

This video demonstrates Scala Closures in detail.

Resources Software Development

Scala Threads, Futures and Promises, links and resources

Concurrency vs Parallel computing – good article on the subject

Don’t use actors for concurrency – article about using actors and futures for concurrency

A journey into concurrent programming in Scala – this article explains the basics of using futures and an execution context for concurrency. This is very basic.

Throttling Instantiations of Scala Futures – a very good article pointing out some of the issues with using Scala futures and how to back pressure them.

Understanding play thread pools – this is from the documentation on how to create thread pools


Scala Programming – Introduction to Threads and Futures

Futures and Async: When to Use Which?

You will want to speed this video up to 1.25 or 1.5 This video explains more of the theory of how Futures, Async and promises work than how to actually use them.

How to Write Controllable Futures in Scala | Rock the JVM