Category Archives: Scala

Akka: Links, News And Resources (10)

Previous Post


Distributed Publish Subscribe in Cluster — Akka Documentation

Kamon | Core | Documentation – Resilient Applications with Akka Persistence by Björn Antonsson, Konrad Malawski, Patrik Nordwall

AKKA 5 Year Anniversary

How One Developer Set Out To Make The Internet Of Things Manageable – ReadWrite






My Links

Stay tuned!

Angel “Java” Lopez

Akka: Links, News And Resources (9)

Previous Post
Next Post

Building Reactive Applications with Akka

Typed Actors — Akka Documentation

Reactive DDD with Akka | Write less, do more!

Publish/Subscribe using Scala and Akka EventStream

Vaadin in Akka – Blog –

Endre Sándor Varga – Without Present or Past: How to Think Distributed – The Hard Way, With the rise of distributed databases, cluster management tools, co…

Reactive Programming with Akka and Scala | comSysto Blog

Let it crash



Jonas Bonér – Going Reactive: Event-Driven, Scalable, Resilient & Responsive Systems, The demands and expectations for applications have changed dramat…

Get started quicker with our docker image

Java is the new C: Comparision of different concurrency models: Actors, CSP, Disruptor and Threads


April 17, 2014 | Typesafe announces Akka Streams, a part of the Reactive Streams Initiative | Typesafe

akka/akka-stream/src/main/scala/akka/stream at release-2.3 · akka/akka

A very simple Ping Pong example using Akka’s local actors.

Orleans Actors Analysis – Tech stuff that interests me

Abstractivate: ForkJoinPool: the Other ExecutorService

Running an Akka Cluster with Docker Containers | Adventures in HttpContext

Getting Started with Actor Based Programming Using Scala and Akka – Reactive.TIPS – The Official Blog of Reactive.IO

My Links

Stay tuned!

Angel “Java” Lopez

ScalaSharp Simple Scala In C# (1) The Idea

I wrote something in this blog, but it’s time to introduce it to society. Last year a few months ago, I started the project:

A simple interpreter for a simplified Scala, C #. I do not intend to implement all Scala as a compiler for CLR. NET. My intention is to explore an alternative implementation of interpreter, adopting only some “light” features of Scala.

Without being a Scala programmer (or amateur or professional) my impression is that Scala as a language and library, is something like "too much", a bit overwhelming. People adopts Scala because it is more flexible, less need "boilerplate" etc.. But it seems like Scala went too far. Having programmed in Java and C#, I think the latter, adding a few things (delegates years, lambdas, extension methods, "generics" in the VM, and recently, in asynchronous input/output, async, await), has managed to stay healthy, without major complications. See how easy it has been to implement LINQ with evaluation "lazy" and others.

Instead, Scala seems to me like it’s too many things, all together. From what I saw, type inference is a feature that is not so necessary in the real projects. And yet I can not accept that the list of operators in Scala occupies more than one web page. But hey, that’s the current state of things. People Scala is working on a new implementation, called Dotty. But if you are just doing after years of language definition, I have to declare: "too little, too late."

That does not preclude recognizing that Scala has great triumphs, non-trivial applications like Play Framework and Akka. Akka is a very interesting project. I think we don’t need so many new language features (just the ones I mentioned for C #). We need more libraries that solve some issues (such as the implementation of an asynchronous HTTP message distribution server or distributed processing among actors).

To experiment with a simplified Scala, and to deliberately practice TDD (Test-Driven Development) in C #, I started the project ScalaSharp.

It is a challenge for me, because it is not a simple interpreter. I want to implement an AST (Abstract Syntax Tree) that detects inconsistencies between types. In my previous experiences, as RubySharp, PythonSharp, and Mass language, it was only necessary to assemble a tree expressions / commands and evaluate it. Now I’ll have to check that the types are correct. For example, one variable that is typed, and that their assignments, the expression to be evaluated and assigned for the type of the variable. You can see some of the work in progress:

where there is a node tree with types, versus commands and expressions to be executed and evalauted:

Upcoming topics: implementation details, control types in the AST transformation commands / expressions. The good thing to do with TDD is that it allows me to go implemented the solution as I define use cases.

Stay tuned!

Angel “Java” Lopez

Play Framework: Links and Resources (1)

Play is an open source web application framework, written in Scala and Java, which follows the model–view–controller (MVC)architectural pattern. It aims to optimize developer productivity by using convention over configuration, hot code reloading and display of errors in the browser.[1]

Support for the Scala programming language has been available since version 1.1 of the framework.[2] In version 2.0, the framework core was rewritten in Scala. Build and deployment was migrated to SBT, and templates use Scala instead of Groovy.

Advanced routing in Play Framework – all that jazz

Christopher Hunt on Software Development: Play-ing with WebJars

JsZipper : Play2 Json advanced (& monadic) manipulations – Mandubian Blog

huntc/play-spring · GitHub
A sample Play application with the minimum configuration required to support Spring JSR-299 and JSR-330

guillaumebort/play20-spring-demo · GitHub
Using Spring from within a Play 2.0 application

Stupid Java Tricks » Play Framework 2.1: The Bloom is Off The Rose

Observations on the Play! framework | James Gregory’s Blog

#98 Support for optional trailing slash – Play framework 2.0 – play

Abnorm: A better non-ORM // Speaker Deck

Play CMS
A simple CMS to be able to edit pages, page fragments and images using a WYSIWYG editor

parroit76-play-cms – port of play-cms to version 2.0 of play framework – Google Project Hosting

julienrf/play-scala.g8 · GitHub
g8 template for Play applications

What startups or tech companies are using Play Framework? – Quora

yobriefca screencast

Introduction to Play Framework

yanns/play2-scala-DI · GitHub
Technical prototyp to test different dependency injection solutions.

Sadek Drobi, the Play 2.0 Story and what’s new in 2.1
CTO of Zenexity, a Web Oriented Architecture Company, Sadek is a software engineer specialized in bridging the gap between the problem domain and the solution domain. As core Play developer and co-creator, he works on the design and implementation of the framework. Twitter: @sadache Photos: Blog:

Iteratees in Big Data at Klout « Klout Engineering
In this blog post we describe the usage of Play! Iteratees in our redesigned data collection pipeline.

My Links

Stay tuned!

Angel “Java” Lopez

Akka: Links, News And Resources (8)

Previous Post
Next Post

Streaming Twitter API in Akka and Spray | Cake Solutions Team Blog

Akka persistence webinar

Intro to Akka persistence with Patrik Nordwall – YouTube

Community Page Reinvisioned | Akka

Prabhath’s Bolg: Integrating an actor system with Play framework (A distributed message classifier with and Play framework)

Martin’s Programming Blog: Distributed Actors in Clojure

Fun doesn’t mean compromising scalability – all that jazz

Using Scala Implicits to Implement a Messaging Protocol

Camel — Akka Documentation

Post: Akka Extras Email

BitTorrent client written in Scala using Akka

scala – How to create minimal Akka actor? – Stack Overflow

scala/src/library/scala/concurrent/impl/ExecutionContextImpl.scala at master · scala/scala

My Links

Keep tuned!

Angel “Java” Lopez

End Of Iteration 2014w15

Previous Post
Next Post

Code Generation

I wrote new tasks, templates using my AjGenesis code generation tool. I create a simple:

to generate a Django web site, with admin page. The code generation creates the model, and admin feature allows you to edit the data, using Sqlite. It’s simple, but it is working. Next steps: create custom views, and a new project to generate Flask web site.

I added text area input fields to the project that generates Express/Node.js web site from a model. Next steps: client-side validation, better server code organization, some initial tests.

I want to integrate these tools in a online app, so I started to have a web site that generate codes from a model, defined at client side. You will select technology (Express, PHP, Sinatra, Django, Flask, …), the models (mainly, entities like: customer, supplier, department, employee, invoice… ), the database, the features (multiple pages, single page, angular? backbone? other?, REST API?, phonegap wrapper?), and voila. A zip will be generated with the generated solution. That is, code generation as a service. Maybe I could add an API to be externally consumed.


I added a Flask web site example, work in progress, to my Python Samples:

I will use as a basis for my AjGenesis code generation version for Flask web sites.

Actor Model in C#

I refactored my project

an Akka-like actor model implemented in C#. Now, I have a mailbox per actor, but the actor message process is executed consuming task from a queue, with n thread launched by the initial actor system. It was good to see such refactor working: all is in place, now. It is a proof that you don’t need to design everything before coding. If you follow TDD (Test-Driven Development) new ideas (or old ideas that have not implemented yet) can be added without much effort.

Erlang in C#

I started to add serialization of message to my project

As usual, I started simple, using TDD: write input and out channel, using tests, red to green, refactoring. Instead of consuming an external library for serialization, I wrote a simple code, towards my first use case of distributed application. When the use case will be in place, I could start to think about other implementation path.

Google Code Jam

Past Saturday, I participated in Google Code Jam, Qualification Round. My code, usually written following TDD:

The Minesweeper problem is the tricky one. I should add the description of the problems, copying it from the original site.


I added some code kata tests to my JavaScript samples I added metadata macro readind go my Clojure in C# I started to add type checking in my node tree for Scala in C# I added qualified name evaluation to my Rust interpreter in JavaScript I worked on two non-public projects, too.

More fun is coming.

Keep tuned!

Angel “Java” Lopez

New Month’s Resolutions: April 2014

Review of my March’s resolutions:

– Work on DictSharp [complete] see repo
– Give talk about Node.js Distributed Applications [complete] see repo see online slides
– Improve SimpleGammon [complete] see repo
– Improve Annalisa [complete] see repo
– Add @for to Templie [pending]
– Work on PreciosaAnnalisa online web services [complete] see repo
– Improve my Node.js Distributes Applications samples [complete] see repo see repo see repo
– Work on ScalaSharp [complete] see repo
– Improve ClojSharp [complete] see repo
– Improve SimpleAsync, do operation (functions in parallel) [pending]
– Improve Aktores [pending]
– Distributed messages in AjErl [pending]
– Add variable scope to Mass language [pending]
– Start code generation as a service [partial]

Additionally, I worked on:

– Complexo, simple complex numbers operations in JavaScript [complete] see repo
– Started RustScript, a Rust programming language interpreter in JavaScript [complete] see repo
– Continue RuScript, a Ruby interpreter in JavaScript [complete] see repo
– Continue RubySharp, a Ruby interpreter in C# [complete] see repo
– Started AjLispScala, a Lisp interpreter in Scala, using TDD and SBT [complete] see repo
– Recorded a second video Node.js Spanish tutorial [complete] see post

For this new month, my resolutions are:

– Continue AjLispScala
– Continue AjGenesisNode-Express
– Continue AjGenesisNode-PHP
– Continue RuScript
– Continue RustScript
– Distributed Messages in AjErl
– Give a talk Intro to Node.js
– Publish a new Node.js video tutorial

More fun is coming.

Keep tuned!

Angel “Java” Lopez