Making a Web Based VR game (Part 1)
This weekend I decided I wanted to try making a web based VR game. I wanted to test the viability of the web as a VR platform and also hone my coding skills a little bit since I’ve been mostly
Making a Web Based VR game (Part 1)
This weekend I decided I wanted to try making a web based VR game. I wanted to test the viability of the web as a VR platform and also hone my coding skills a little bit since I’ve been mostly
You are Ignorant and Here is Why
We live in days where the internet if abundant with self taught experts of any field. Fueled by information accessibility, many fall into the trap of thinking of knowing more than they actually do. This phenomenon is not limited to
You are Ignorant and Here is Why
We live in days where the internet if abundant with self taught experts of any field. Fueled by information accessibility, many fall into the trap of thinking of knowing more than they actually do. This phenomenon is not limited to
Named Parameters in Java
Java doesn’t natively support named parameters, but we can easily have something like: Named parameters are very handy when we start having methods with a lot of parameters and we want to allow invoking the method with an arbitrary subset
Named Parameters in Java
Java doesn’t natively support named parameters, but we can easily have something like: Named parameters are very handy when we start having methods with a lot of parameters and we want to allow invoking the method with an arbitrary subset
Microservices: Myths and Truths
Scalability: 99% myth While microservices allow for independent scalability, that is most often unnecessary. A replicated monolith will scale as well as a microservice 99% of the time. Unutilised code lying around in memory has a negligible footprint. A system
Microservices: Myths and Truths
Scalability: 99% myth While microservices allow for independent scalability, that is most often unnecessary. A replicated monolith will scale as well as a microservice 99% of the time. Unutilised code lying around in memory has a negligible footprint. A system
Dealing with Unreliable Components
As a software consultant sometimes I have to deal with components or systems that are not very reliable. Sometimes it is because those systems were not made using the common software development practices like testing, careful design, thread safety etc.
Dealing with Unreliable Components
As a software consultant sometimes I have to deal with components or systems that are not very reliable. Sometimes it is because those systems were not made using the common software development practices like testing, careful design, thread safety etc.
Software Architecture
What is software architecture? There are hundreds of definitions of what software architecture is, but there is none of what it isn’t. In general it is considered more abstract than software design and more focused with non-functional requirements. So, in
Software Architecture
What is software architecture? There are hundreds of definitions of what software architecture is, but there is none of what it isn’t. In general it is considered more abstract than software design and more focused with non-functional requirements. So, in
A New Kind of Mocking
There are many interpretations of what unit testing means. For the scope of this post I will define unit testing as testing a class in isolation by mocking any dependencies. On the other hand an integration test involves several classes
A New Kind of Mocking
There are many interpretations of what unit testing means. For the scope of this post I will define unit testing as testing a class in isolation by mocking any dependencies. On the other hand an integration test involves several classes
Distributed Operating Systems: Has the Time Finally Come?
Cloud computing seems to be having finally a surge in popularity. Cloud platform providers like Amazon, Microsoft and Google are adding new services to their portfolio at an increasing pace that honestly I’m starting to find difficult to follow. Their
Distributed Operating Systems: Has the Time Finally Come?
Cloud computing seems to be having finally a surge in popularity. Cloud platform providers like Amazon, Microsoft and Google are adding new services to their portfolio at an increasing pace that honestly I’m starting to find difficult to follow. Their
What’s Wrong with the Actor Model
Although it existed for many decades, the Actor Model started gaining momentum in the mid 2000s. It was first introduced by Carl Hewitt and Henry Baker in 1977 in “Laws for Communicating Parallel Processes“. The popularization of the actor model was partly due
What’s Wrong with the Actor Model
Although it existed for many decades, the Actor Model started gaining momentum in the mid 2000s. It was first introduced by Carl Hewitt and Henry Baker in 1977 in “Laws for Communicating Parallel Processes“. The popularization of the actor model was partly due
Further Disappointments with Google AppEngine
AppEngine came out a few years ago as an excellent idea from Google to abstract away the server and provide a JVM that would essentially run on the cloud. My last review was back in June 22 2009
Further Disappointments with Google AppEngine
AppEngine came out a few years ago as an excellent idea from Google to abstract away the server and provide a JVM that would essentially run on the cloud. My last review was back in June 22 2009
Writing a Parallel Sort in a Shader
Most of the shaders on glslsandbox.com are stateless. They define a function from the screen coordinates and time to a colour. This is a very neat paradigm because it forces you to write fast parallel algorithms, but sometimes it can be quite
Writing a Parallel Sort in a Shader
Most of the shaders on glslsandbox.com are stateless. They define a function from the screen coordinates and time to a colour. This is a very neat paradigm because it forces you to write fast parallel algorithms, but sometimes it can be quite
Ateji PX
I recently came across this technology called Ateji PX. Fundamentally it’s Java extended with some parallel constructs. It is really easy to learn and provides a much cleaner programming paradigm than explicit thread creation. The concept is pretty simple. You can
Ateji PX
I recently came across this technology called Ateji PX. Fundamentally it’s Java extended with some parallel constructs. It is really easy to learn and provides a much cleaner programming paradigm than explicit thread creation. The concept is pretty simple. You can
Google AppEngine Disappointment
I was eager to try out Google’s AppEngine for Java, but I was soon disappointed to find out that the AppEngine is just a partial implementation of the Java APIs.
Google AppEngine Disappointment
I was eager to try out Google’s AppEngine for Java, but I was soon disappointed to find out that the AppEngine is just a partial implementation of the Java APIs.
Parallel For Loop in C#: Part 2
In the previous part we have implemented a ThreadPoolExecutor that accepts tasks and executes them in parallel. In this part we will implement a parallel for loop.
Parallel For Loop in C#: Part 2
In the previous part we have implemented a ThreadPoolExecutor that accepts tasks and executes them in parallel. In this part we will implement a parallel for loop.
Parallel For Loop in C#: Part 1
This is the first of the two posts that shows you how to build a parallel for loop in C#.
Parallel For Loop in C#: Part 1
This is the first of the two posts that shows you how to build a parallel for loop in C#.
Time Tracking Tools
Have you ever asked yourself how much time during the day in the office do you spend looking at funny youtube videos, reading emails, taking coffee or doing some boring administrative task that keeps you from getting your work finished?
Time Tracking Tools
Have you ever asked yourself how much time during the day in the office do you spend looking at funny youtube videos, reading emails, taking coffee or doing some boring administrative task that keeps you from getting your work finished?
Active and Passive Replication in Distributed Systems
In the distributed systems research area replication is mainly used to provide fault tolerance. The entity being replicated is a process. Two replication strategies have been used in distributed systems: Active and Passive replication.
Active and Passive Replication in Distributed Systems
In the distributed systems research area replication is mainly used to provide fault tolerance. The entity being replicated is a process. Two replication strategies have been used in distributed systems: Active and Passive replication.
Webapp stacks comparison update 1
We have received measurements from one of the remaining level 3 applications. It’s Immo‘s implementation based on Ruby + Ramaze + MySQL. Here are the updated results: As soon as we confirm the measurements and get the numbers for the ASP implementation we will publish the
Webapp stacks comparison update 1
We have received measurements from one of the remaining level 3 applications. It’s Immo‘s implementation based on Ruby + Ramaze + MySQL. Here are the updated results: As soon as we confirm the measurements and get the numbers for the ASP implementation we will publish the
Webapp stacks comparison
Ever wondered what is the best technology stack for building web applications? I’m sure you have. Last week my company went on a workshop, during which we tried to answer that question. I wrote a requirements specification for a simple
Webapp stacks comparison
Ever wondered what is the best technology stack for building web applications? I’m sure you have. Last week my company went on a workshop, during which we tried to answer that question. I wrote a requirements specification for a simple
Tuning the EJB3 Implementation
During my evaluation of highly scalable technologies I incurred in some performance problems with the EJB3 implementation. It seems to me that it is a quite common problem
Tuning the EJB3 Implementation
During my evaluation of highly scalable technologies I incurred in some performance problems with the EJB3 implementation. It seems to me that it is a quite common problem
Measuring the Speed of Clouds
I have started a project for benchmarking highly scalable technologies. My plan is to use cloud computing platforms and implement the same application using different stacks of technologies. The aspect I want to evaluate is performance when the number of
Measuring the Speed of Clouds
I have started a project for benchmarking highly scalable technologies. My plan is to use cloud computing platforms and implement the same application using different stacks of technologies. The aspect I want to evaluate is performance when the number of
foreach in Java
Here’s a cool but unfortunately useless example of java generics, combined with reflection, combined with dynamic proxies.
foreach in Java
Here’s a cool but unfortunately useless example of java generics, combined with reflection, combined with dynamic proxies.
Eclipse Action with Generics
I wrote this code a couple of weeks ago. It’s a nice idea on how to use generics in order to reduce the pain of using the Eclipse API.
Eclipse Action with Generics
I wrote this code a couple of weeks ago. It’s a nice idea on how to use generics in order to reduce the pain of using the Eclipse API.
Graph Algorithms with fork/join
The equivalent of the hello world for parallel languages is the quicksort algorithm. The quicksort algorithm is based on the divide et impera principle, which makes it a good candidate for parallelization. In this article we will go past arrays
Graph Algorithms with fork/join
The equivalent of the hello world for parallel languages is the quicksort algorithm. The quicksort algorithm is based on the divide et impera principle, which makes it a good candidate for parallelization. In this article we will go past arrays
Class Invariants
Class invariants are a powerful design technique that is often underestimated. Here’s an scenario on how I’ve used them to refactor. some code
Class Invariants
Class invariants are a powerful design technique that is often underestimated. Here’s an scenario on how I’ve used them to refactor. some code
Concurrency with fork/join in JDK 7
A few days ago, Brian Goetz came to visit a colleague of mine in our offices and I had the opportunity to hear some of the new concurrency features coming in JDK 7. We talked about the fork/join framework and
Concurrency with fork/join in JDK 7
A few days ago, Brian Goetz came to visit a colleague of mine in our offices and I had the opportunity to hear some of the new concurrency features coming in JDK 7. We talked about the fork/join framework and
Centralized VS Distributed SCM
Distributed Source Control Management systems have become a trend in the last years: bazaar, git, mercurial, svk. Distributed SCM is a fascinating concept, but how well does it perform in practice? Some say that it leads to a phenomenon called
Centralized VS Distributed SCM
Distributed Source Control Management systems have become a trend in the last years: bazaar, git, mercurial, svk. Distributed SCM is a fascinating concept, but how well does it perform in practice? Some say that it leads to a phenomenon called
Playing with Jazz
Yeah, you read correctly: “Playing with Jazz”. Jazz is the new Application Lifecycle Management software developed by IBM Rational. In other words it is an all-in-one Source Control Management, Continuous Integration and Issue Tracking server.
Playing with Jazz
Yeah, you read correctly: “Playing with Jazz”. Jazz is the new Application Lifecycle Management software developed by IBM Rational. In other words it is an all-in-one Source Control Management, Continuous Integration and Issue Tracking server.
A Case Against the GOTO Statement
In recent times I was thinking a lot about Dijkstra’s article against the GOTO statement published in Communications of the Association for Computing Machinery (CACM) in 1968. I had the feeling that a lot of people should take one more
A Case Against the GOTO Statement
In recent times I was thinking a lot about Dijkstra’s article against the GOTO statement published in Communications of the Association for Computing Machinery (CACM) in 1968. I had the feeling that a lot of people should take one more