Posts
-
Why infographs have an edge?
I explain 3+1 aspects that make interactive infographs superior to traditional document based reporting.
-
Need for Speed, or: What Is (Probably) Coming to the Java VM in a Few Years
There are a bunch of improvements that are currently being investigated for the Java VM and language. Most of them won't make it into Java 9, but maybe a couple of years later we can enjoy them.
-
Writing Compact Java with functions and data
Rethinking stylistic issues could help us in dealing with complex problems. Computation is not all about ownership.
-
Real World Clojure
You may have heard already that Clojure is great and going to dominate the world this year. But will it? In this article I will dig deep into one of our Clojure projects so that you can see what a real world Clojure project looks like and decide for yourself.
-
Communication in library design, a user's perpective
Everyone has encountered a software library that is hard to use. From the designer's perspective, the user can always be educated a bit more, but sometimes user training misses the point.
-
Warnings are Errors
You know how to treat compiler errors – just fix them. But what about compiler warnings? Here are some thoughts and suggestions.
-
Pimp My REPL
Everyone knows Lisp programmers live in the REPL, and Clojurians are no exception. This is a tour of Clojure libraries and practices that make life in the REPL even more comfortable.
-
Developer Garage in Helsinki on 2014-03-05
We are organizing a Coding Dojo at Solita's office in Helsinki.
-
Solita Dojo in Helsinki on 2013-10-23
We are organizing a Coding Dojo at Solita's office in Helsinki.
-
Clojure world domination 2014
Form follows function in great design. Interestingly we can now eliminate annoying barriers between data, form and function. The Clojure train is accelerating!
-
What's in a Good Commit?
These tips can help you turn your VCS from a backup system into a valuable tool for communication and documentation.
-
Interdependent Build Pipelines with Jenkins
When doing continuous delivery for multiple interdependent projects, each project's build pipeline needs to be parameterized with the version numbers and binaries of upstream pipelines. It's easy to do in Go, but Jenkins doesn't support it that well. Here is how I was able to twist Jenkins to my use case.
-
Our Faces Combined
I wanted to check what an average Solita employee looks like. I had images of all Solita employees' faces, OpenCV-library, Python and some free time.
-
Refactoring Primitive Obsession
Enriching the domain model by fixing Primitive Obsession code smells requires careful refactoring in small steps. Here I'm presenting some tips for doing that almost fully with automated refactorings, making it much faster and safer to do.
-
Value of Simplicity
Seize the day and simplify your design. Finding a simple solution to a complex problem is one of the ultimate achievements. In this post I try to convince you and briefly touch the foundations on which one can build a simple solution.
-
Beyond cargo cult software design
Programmers often reuse designs without questioning their applicability to the task at hand. A program whose design poorly matches its purpose is hard to understand, hard to test, and hard to change. Test-first development guides the design process towards better solutions by keeping it focused on the program's purpose, and by highlighting design flaws that lead to poorly defined components and rigid programs.
-
Polyglot programming
The idea of polyglot programming is to render more natural and simpler solutions by combining the best solutions available from different programming languages and paradigms.
-
Solita Code Tasting 2012: Raspberry Pi
Last week we had the pleasure of hosting two open Coding Dojos for 30 enthusiastic programmers. The theme was Raspberry Pi and creating your own web server that could serve our demanding challenger.
-
Solita Code Tasting 2012: the Code Behind the Event
Explaining the platform for the programming competition in Solita Code Tasting 2012. It was implemented with Clojure and designed to encourage good software development practices among the participants. Not surprisingly, those who wrote tests won.
-
A case for formal computer science
To write great programs, one needs to know the theory of programming. Hacking is the fun part, but mastery requires more.