In this article I explain what it takes to implementing high-quality smooth / high-precision scrolling on modern computers and why some systems have it while others don t. Most of the insights came from my work on implementing true smooth scrolling in IntelliJ IDEA. The article complements my previous article Typing with pleasure , just like scrolling [ ]
In this article I examine human- and machine aspects of typing latency ( typing lag ) and present experimental data on latency of popular text / code editors. The article is inspired by my work on implementing zero-latency typing in IntelliJ IDEA. Latency recently became a hot topic in computer world now we have low-latency keyboards, [ ]
Typometer is a tool to measure and analyze visual latency of text / code editors. Editor latency is delay between an input event and a corresponding screen update, in particular case – delay between keystroke and character appearance. While there are many kinds of delays (caret movement, line editing, etc.), typing latency is a major [ ]
In this article I enumerate reasons why typical approach to painting in AWT / Swing can result in substantial visual lags, provide examples that demonstrate the problem and propose methods to significantly reduce the drawing latency. Despite the focus on Java platform, the key ideas can be extended to most modern operation systems and GUI [ ]
This article shows how to install IntelliJ IDEA on Raspberry Pi. The instructions are also applicable for other IDEA-based IDEs like PyCharm, RubyMine, PhpStorm, WebStorm, CLion, etc. At first, the idea of installing a full-fledged, contemporary IDE on Raspberry Pi may seem unrealizable. Raspberry Pi boards are incredibly small, so it s hard to believe that those devices [ ]
This article shows how to install and use Scala programming language on Raspberry Pi. Traditionally, the programming language of choice for Raspberry Pi was Python, while JVM-based languages were set aside. That was reasonable, because JVM platform is rather resource-intensive, especially in interpreted mode, and the first version of Raspberry Pi was hardly apt for [ ]
This articles shows how to transition from Raspberry Pi to Raspberry Pi 2 without reinstalling Arch Linux. Arch Linux ARM images are tied to specific hardware architecture. While this may be seen as an inconvenience, there is an advantage in that Arch Linux binaries for Raspberry Pi 2 are compiled for ARM7 CPU and thus [ ]
Raspberry Pi is an ideal platform for setting up personal services, like Git daemon, remote backup server, proxy server you name it. However, while the device is small and handy it is still not so portable as a server, because conventional server installation usually includes domain name registration, setting up static IP addresses and configuring [ ]
About a year ago I happen to devise a solution (spoiler!) to a puzzle latter known as Twitter s waterflow problem . Despite the number of alternative solutions, my original approach still stand out in its own way, and can be used to demonstrate a few peculiar things about recursion and list folding. The puzzle probably existed [ ]
This article presents a list of simplifications and optimizations of typical Scala Collections API usages. Some of the tips rest upon subtle implementation details, though most of the recipes are just common sense transformations that, in practice, are often overlooked. The list is inspired by my efforts to devise practical Scala Collections inspections for the [ ]