Blog of Adam Warski
MacWire 0.2: Scopes are simple!
Apr 25, 2013 6:14 PM, by Adam Warski
MacWire generates new instance creation code of given classes, using values in the enclosing type for constructor parameters, with the help of Scala Macros. DI container replacement. Version 0.2 has j...
MacWire 0.1: Framework-less Dependency Injection with Scala Macros
Apr 4, 2013 11:07 AM, by Adam Warski
Using Dependency Injection is almost a standard when developing software. However, in many cases it may seem that using the pattern implicates using a DI container/framework. But is a framework really...
How to replace a build module with Veripacks
Mar 26, 2013 9:05 PM, by Adam Warski
Compare the two trees below. In both cases the goal is to have an application with two independent modules (frontend and reporting), and one shared/common module (domain). The code in frontend shouldn...
Dependency injection with Scala macros: auto-wiring
Mar 14, 2013 9:33 PM, by Adam Warski
You can look at dependency injection as a fancy name for passing parameters to a function (or constructor arguments to a constructor). However usually, DI containers do much more than that. Among othe...
Veripacks 0.3: importing packages (transitively, of course)
Mar 12, 2013 7:33 PM, by Adam Warski
Previous versions of Veripacks focused on defining what classes are visible outside of a package hierarchy (exporting). This release focuses on defining what classes can be used inside a package hiera...
Veripacks 0.2: exporting subpackages
Feb 3, 2013 1:35 PM, by Adam Warski
Veripacks 0.1 allowed to specify which classes should be exported from a package hierarchy, by using a simple @Export annotation, and later verify that the specification is met. Version 0.2 extends th...
Dry parameter names
Jan 26, 2013 6:56 PM, by Adam Warski
How often do you see code like this, especially when using dependency injection, single-responsibility principle, and other “good practices”? 1 2 3 4 5 class FriendsTimelineReader(userFinder: UserFind...
Veripacks 0.1 – Verify Package Specifications
Jan 5, 2013 6:31 PM, by Adam Warski
Using some free time during my Christmas & New Year break, I worked on a new project, which implements some of the ideas from my earlier blog “Let’s turn packages into a module system”. The project is...
Starting with Scala Macros: a short tutorial
Dec 2, 2012 7:22 PM, by Adam Warski
Using some time during the weekend, I decided to finally explore one the new features in the coming Scala 2.10, macros. Macros are also written in Scala so in essence a macro is a piece of Scala code,...
Event streaming with MongoDB
Nov 27, 2012 1:41 PM, by Adam Warski
MongoDB is a really great “NoSQL” database, with a very wide range of applications. In one project that we are developing at SoftwareMill, we used it as a replicated event storage, from which we strea...