Foreword—Reactive Application Development
This is the foreword I wrote for Duncan DeVore’s and Sean Walsh’s great book on Reactive Application Development.
This is the foreword I wrote for Duncan DeVore’s and Sean Walsh’s great book on Reactive Application Development.
This is the foreword I wrote for Roland Kuhn’s excellent book on Reactive Design Patterns.
This is the foreword I wrote for Debasish Ghosh’s great book on Functional and Reactive Domain Modeling.
This is the foreword I wrote for Vaughn Vernon’s great book on Reactive Messaging Patterns with the Actor Model.
This is the foreword I wrote for Markus Eisele’s great book on Developing Reactive Microservices.
This is the foreword I wrote for Dean Wampler’s—now classic—book on Programming Scala from 2009.
This is a the transcript of my keynote at O’Reilly Software Architecture Conference in New York in April 2016.
Defining the blueprint for future applications that are event-driven, scalable, resilient and interactive.
p(meta). 4 Jan 2010
p(meta). 12 Feb 2009 h1. Introduction There has been some discussions lately about Event Sourcing. For example, Greg Young "recently discussed":http://...
p(meta). 7 Jan 2009
Introduction
In a previous post I showed you how you could use mixin composition and self type annotations to enable Dependency Injection (DI). Mixin composition is an ex...
Alex Miller has written a very important post on the importance of failure, putting, what has been one of my guiding principles in leadership and working env...
Posted: 2008-10-06 In this second post in the Real-World Scala series I am going to discuss how to implement/achieve Depenency Injection (DI) in Scala. Sc...
The last nine months I have been running my own business together with some friends (Triental AB). We are building a product suite for private banking and we...
In this post I will explain how you can build fault-tolerant systems using Scala Actors by arranging them in Supervisor hierarchies using a library for Scala...
Scala is one those great languages that is scalable. With scalable I mean that it is the language that grows with the user, that it makes simple things easy ...
Introduction A month ago I wrote an introductory post about Scala Actors: HotSwap Code using Scala and Actors. For you who don't know what it is I don't w...
Update: In this article I am showing an even more powerful way of doing hotswap in Scala. ---- In this post I will show you how you can do code hotswap i...
The last month I have been very busy writing on The Definitive Guide to Terracotta. It is a collaborative effort from the Terracotta team each one writing...
I had the pleasure of attending Joe Armstrong's fantastic presentation at JAOO some weeks ago. It was by far the best talk at the whole conference, both in t...
Yesterday, Rich Hickey announced the birth of Clojure - a lisp dialect for the JVM. After just a brief look, Clojure is perhaps the most interesting langu...
My and Geert Bevin's article about how to cluster RIFE's Web Continuations with Terracotta has just been published on Artima. Here is the abstract: In ...
I was going through some of the older parts of my darcs repository the other day when I stumbled upon a pretty neat and powerful little remoting library that...
I was in Rome, Italy some weeks ago. After strolling around in the old town for a couple hours I felt the need to grab a bite. So I stopped at a café, sat d...
July 04, 2007 I was in Rome, Italy some weeks ago. After strolling around in the old town for a couple hours I felt the need to grab a bite. So I stopped at...
I recently saw an interview with Jan Guillou, one of the most successful and creative authors in Sweden. He had some interesting thoughts about creativity th...
June 28, 2007 I recently saw an interview with the Swedish author Jan Guillou. He had some interesting thoughts about creativity that I think applies to all...
Today most applications rely on a relational database (RDBMS) as its primary Service of Record (SoR) -- the master copy of the data. But in order to minimize...
This is the story how Geert Bevin and I clustered RIFE with Terracotta. The purpose of this blog post is to give an example of how JVM-level clustering of...
My and Eugene's article on how to use Spring Web Flow together with Open Terracotta to build conversational, scalable and highly-available web applications h...
Our paper for AOSD 2007 has been published. It is titled 'Clustering the Java Virtual Machine using Aspect-Oriented Programming' and is a thorough and pragma...
Yesterday I was spending some time thinking about the possibilities to cluster applications written in "JRuby":http://jruby.codehaus.org/ with "Terracotta":h...
In this article, I will show you step by step how you can build a reusable POJO-based Data Grid with nothing but standard JDK *5 and then make it distributed...
ProFont. It is the best programming font I have seen and I use it all the time (for most stuff - not just programming), both on Windows and Mac - even thou...
The last year I have been spending time finding the “ultimate” backup solution for Mac. I also have the requirement that it had to work equally good on Windo...
Seth Godin has written yet an amazing and inspirational piece on how to be remarkable. It is a short write-up of some of the ideas he has been talking and wr...
I just got back from a small JUG roadshow in Serbia. I did two 2 1/2 hours talk in two days, the first one in Novi Sad and the second one in Belgrade. Both t...
In this article I will show you how to implement a distributed version of the CommonJ WorkManager specification using Terracotta for Spring. This article is ...
Minimalism: "...where the work is stripped down to its most fundamental features and core self expression". The world needs more minimalism. Sty...
What is a pointcut language? Let's start with some terminology and definitions. A pointcut language can be seen as a Domain Specific Language (DSL) for ...
A friend of mine showed me The Optimized Null Check Pattern (TM) yesterday (found in a piece of production code): public static boolean isNull(Object obj)...
After my rant about the lack of computer literature that: ...makes you think and challenge the way you work. I thought that I should provide a list of book...
Saturday 17:45 PST, little Noah decided that it was time to come out and meet the family, seven weeks early, but very welcomed. He will have to stay in the i...
I like books. I enjoy spending time in libraries and bookstores, I can spend hours just browsing around and when my wife is getting bored (usually after 10...
2005 has been a good year, both personally and professionally. Here is a summary of some of the highlights (in chronological order): Family trip to Vie...
If you thought AOP was dead or at least dying, then it is time to reconsider. AOP is not dead. Not even close. After a perhaps healthy backlash, that took...
AspectJ 5 final is finally shipped. This means that the merger with AspectWerkz is complete and that the most important chapter in the history of AOP has b...
I had a very interesting discussion with Chris Richardson at the Spring Experience conference last week. Chris is an old Lisp hacker and used to write Lisp c...
Jar Jar Links have been part of my Java toolkit ever since we started using it in AspectWerkz a couple of years ago. It is one of these little gems that de...
Unfortunately, I guess it is to late to kill the beast... But I am writing this post anyway, since it keeps on causing harm and since more enlightment arou...
Adam Bosworth has written an interesting article about what we can (or have to) learn from The Web. He is talking about how it has teached us how to manag...
There has been a lot of discussions about the need for more dynamicity in Java, including the need to support scripting languages. Most are around the sugg...
Introduction This article is introducing HyperBeans, a proposal for a framework for Symmetric Aspect-Oriented Software Development in plain Java (i.e....
Japan Tour
Steve has written a nice article on how you can coordinate threads in a distributed application, transparently, and with very little effort.
The second part of our article series about JRockit JVM support for AOP is now published.
Writing multi-threaded applications in Java can as you know be quite tricky, and if not done correctly, one can easily end up with deadlock situations. Fo...
As I mentioned in my previous blog entry, the synchronized block is currently not a supported join point in AspectJ 5 (or in any other AOP framework): C...
Terracotta just recently launched a product (DSO) for clustering POJOs in a completely transparent way. What I find interesting in this product is not mainl...
If you're interested in knowing more about what the future holds for AOP, then you should come to the technical session TS-7659 (titled "Runtime Aspects With...
I just got back from the Nordic Software Developer Summit (Nordev) 2005. Strange enough, this is the first good developer conference that we have had in Swe...
One of the new features in the AspectWerkz 2 architecture is that it comes with a full-blown interception framework that allows per instance programmatic d...
One of the new features in the AspectWerkz 2 architecture is the ability to deploy and undeploy aspects at runtime, e.g. to do "hot" deployment and undeplo...
The idea After implementing the AW Proxy extension to AspectWerkz I figured, why not hook into the most widely used proxy implementation out there: cglib a...
Summary Proxies are an important piece in the J2EE puzzle. Since it offers a non-intrusive an more transparent way of weaving in advice/interceptors. Howe...
The AspectWerkz 2 architecture has been designed to be an Extensible Aspect Container, which can deploy and run arbitrary aspects. You can read more about ...
The Spring Framework is a very powerful library for J2EE development. It comes with an AOP implementation (based on proxies) that is in many cases sufficient...
Yesterday evening I put together a series of two introductory tutorials on AspectWerkz (a third is on its way). Tutorial one: Hello World. Tutorial two: H...
The AspectWerkz project is since a a month ago sponsored by BEA Systems. Both Alexandre and I, the founders and primary contributors to AspectWerkz, are fu...
Today we released the 0.10 Release Candidate 1 of AspectWerkz. Which forms the foundation for the next generation of AspectWerkz. AspectWerkz has gone...
I was lucky and our submission to JavaOne was accepted. This means that Alex and I will do a presentation on "Dynamic Aspect-Oriented Programming in J2EE e...
Alex and I will do a half-day tutorial on AspectWerkz at AOSD 2004. The tutorial will be an introduction to AOP/AOSD and AspectWerkz and to how it can be us...
Since the last example of the new 'annotation-defined aspects' model in AspectWerkz seemed to have caused a lot of confusion and made people miss the point...
On Wednesday (December 3d) I will give a presentation on dynamic Aspect-Oriented Programming in J2EE environments using AspectWerkz at JavaPolis/BeJUG 2003 ...
The upcoming release of AspectWerkz (0.9) will have support for a new definition model in which the aspects are self-defined. This means that implementatio...
Using the new 0.8 version of AspectWerkz it is now a breeze to instrument your Servlets, EJBs or WebServices at runtime. In this example I will show how...
Today me and Alex released the 0.8 version of AspectWerkz.
JMangler will change its license back to LGPL (for some reason they changed to GPL for the 3.x release). The change to GPL did of course cause a lot of prob...
After two weeks of Ruthless Refactoring (TM) I can now announce that AspectWerkz version 0.6.3 has been released.
There has been a lot of talk about the JBoss AOP implementation (and its lack of performance) lately. When looking at it you can see (as Rickard and ma...
The move to codehaus.org is now completed. The new URL is aspectwerkz.codehaus.org.
The AspectWerkz 0.5 release is a huge improvement compared to previous versions. Apart from many bug fixes it is also packed with new features. You can dow...
Last night I implemented caller pointcuts for AspectWerkz. I just had to, since they have been haunting me since I read Cedric's little AOP challange. So...
Renaud Pawlak, the creator of JAC has started up a project called AOPI, which has the goal of specifying a common set of components for aspect-oriented syst...
Using the new techniques of AOP and the AspectWerkz framework there is actually pretty easy to implement transparent persistence for Plain Old Java Objects (...