Lessons learned from using xmonad for a year

24 August 2016, Dávid Csákvári
Last year I switched to xmonad in the strive for a configurable yet minimalist environment. So far I am pretty satisfied with it. I’ve never experienced any crashes or slowdowns related to it, works easily for most of the tasks, and supports multi monitor setup. It is highly configurable and well documented, so it’s easy and fun to customize the whole environment to suit your unique workflows.

Parallel Processing in JS

09 August 2016, Tamás Sallai
For a long time, Javascript was missing any kind of processing threads. While the single-threaded model added to developer comfort, it also made the platform unable to do serious and time consuming calculations, and the only way to circumvent it was to do it on a remote server.

JVM JIT optimization techniques - part 2

28 June 2016, Dávid Csákvári
In a previous post I wrote a short intro about the high level overview of the JVM optimizations, followed by the results of some measurements, where I crafted small programs to trigger certain optimizations.

Simulating movement with ES6 generators

14 June 2016, Tamás Sallai
One particularly good example to infinite collections and ES6 generators is movement simulation. This requires a possibly complex calculation of the points along the path, and you need to take care of a few additional cases like collision detection and eventual termination. In a traditional way, you might use a while-loop that takes care of all the necessary parts. This results in an intermingled function that does many things. Using ES6 generators, you can nicely separate the different concerns, making the code easier to understand and maintain.

Editors' Favourites

There’s a lot of buzz about JVM optimizations and how it makes production code perform better thanks to the Just-In-Time (JIT) compilation and various optimization techniques. A lots of excellent research materials are available, but I wanted to see for myself how these apply in practice, so I decided to dig deeper and play around with some measurements.
The single biggest obstacle of understanding a piece of code is a lot of variables. Variables introduce state, which in turn increase complexity exponentially. Every single bit of variable information makes reasoning and understanding the code harder.
You should give React a try - in case you didn’t already. Despite my initial skepticism, it is developer friendly and straightforward. Coming from Angular, it’s like programming in a lower abstraction level; but the libraries for common problems, along with less unpleasant surprises make up for this. Componentization and the virtual DOM are React’s central concepts. Componentization is the general direction in most contemporary technologies too, like Web Components and Angular Directives. The latter makes the render and the event cycles two distinct flow, making reasoning about the code easier.
Spending a lot of time in front of the computer doing a specific job for a long time makes room for some workflow optimization. This includes selecting the tools you can be most productive, and configuring them for the job at hand. In the long run, not always the easy to learn tools are the winners, but the ones that can be personalized enough to seamlessly fit into the unique workflow.

Interesting article?

Get hand-crafted emails on new content!