How to test a code that uses time? - Improve quality of your project, part I

Java has amazing java.time package. There are few useful classes like LocalDateTime, ZonedDateTime, Instant or Clock. But do you know how to use them? If you are using untestable Instant.now() syntax - you probably should read this post.
Read more →

Build your own HTTP server in Java in less than one hour (only GET method)

Build your own HTTP server in Java in less than one hour (only GET method)
Every time you visit a website your web browser uses the HTTP protocol to communicate with web server and fetch the page’s content. Also, when you are implementing backend app and you have to communicate with other backend app - 80% (or more) of cases you will use the HTTP.
Read more →

MAKERbuino - solder your own game console and start making games

MAKERbuino - solder your own game console and start making games
I’ve been the software developer for several years now. But in this profession there was still an area in which I had exactly 0 experience - gamedev. I know I can watch tutorials about the Unity and build 3d games in two weeks. But to tell you the truth - it’s not what I like. I like to know how it exactly works, not only how to use the framework.
Read more →

Linux’s commands and tricks I’m using in my daily job as a developer

This is not a post from the series of those describing the cd command. It’s just a list of commands and tricks I’m using (almost) every day.
Read more →

Create decoder for JSON-like format in Erlang. PEG and Neotoma tutorial

Create decoder for JSON-like format in Erlang. PEG and Neotoma tutorial
First we need to learn something about PEG. In short PEG is standard to describing a language. But it is still only a formal grammar. We need a parser. Huh, very complicated, isn’t it? So what do we need? A parser generator of course! You can use for example Neotoma, very good, well documented parser generator for PEG grammar. Installation instruction you can find on project GitHub, but you can also use plugin for Rebar3.
Read more →