Image for post
Image for post
Photo by James Wainscoat on Unsplash

Transform a video to gif quickly using command line.

This article was cross-posted at

I will show you how you can easily convert a video into gif with free command line tools.

All in 3 steps:

1 ) Install require tools

2 ) Record a video (in MOV format) which you’d like to convert later to a gif file.

3 ) Transform video into gif like that:

ffmpeg -i -s 1400x800 -pix_fmt rgb24 \
-r 20 -f gif — | gifsicle --optimize=3 --delay=3 > my.gif

The above command takes file as input for program…

Image for post
Image for post
Photo by Omer Rana on Unsplash

Originally published at

When working on real production system recently I asked myself a question:

Should REST API be constrained by the current architecture choices?

To illustrate the problem I invented an example.
Let’s imagine a system which is used for renting cars. The business is sort of Airbnb for “car rental”. Small companies which rent cars can register their spot in the system to access wider range of potential customers. The system allows them to manage their cars but not any other rental spot cars.

Let’s imagine we’re a startup and build the system. We start small and…

Tips on dumping RDS database, in particular MySQL to localhost

Image for post
Image for post
Accessing RDS instance from outside VPC

I bet you had a situation when you had to dump production database for some investigation, testing or even development.

Off topic:
I won’t mention here about the sensitive data and data obfuscation as this is out of scope of this post, but just wanted to remind you that you’re dealing with real people data and should keep in mind some regulations like GDPR or be careful not to send emails to real users if you are testing your apps using production DB.
In any case, it’s good to replace real users’ sensitive data with some dummy values.

Usually the…

Image for post
Image for post
Photo by Tinh Khuong on Unsplash

Whenever I browse on my mobile I often open an interesting pages in Chrome and leave it for later. Usually the later never comes so I ended up with over 2500 open tabs in my mobile Chrome. Yes, it’s not a typo !!!

Recently I wanted to do some cleanup. I was on my desktop and wanted to quickly order useful urls into some categories and bookmark for later or throw away at all if not needed anymore. I realised that there is no handy way of exporting all the open tabs from Chrome. …

Image for post
Image for post
Photo by Mervyn Chan on Unsplash

Project Lombok is a Java library which can generate some commonly used code and facilitate keeping source code clean, e.g. by using some annotations you can generate constructors, getters, setters and other helpful code for your classes.

In this post I will show you a few common use cases of Lombok, problems you may face and propose solutions for them.


Sometimes you need to have a builder method for your class with different arguments. E.g.:

class Pojo {

String username;
String surname;

Pojo(User user, String surname) {
this.username = user.getEmail();
this.surname = surname;

As a side…

Image for post
Image for post
Photo by Veri Ivanova on Unsplash

In my previous post I described how AWS Lambda deployments written in Java could be slimmed down by adding a layer with dependencies.

The current post started with a hypothesis that there is a difference in invocation time of Lambda running with and without layers. I assumed on the beginning that Lambda would need some additional initialisation of Layer when it starts up.

Here is how I measured it:

  1. I took my existing project and added 4 configurations to measure Lambda execution time:
  • cold lambda with layer
  • cold lambda without layer
  • hot lambda with layer
  • hot lambda without layer


Image for post
Image for post
Photo by Hieu Vu Minh on Unsplash

Java ecosystem is packed with frameworks and libraries.
For sure not as many as in JavaScript world and they don't get old as quickly too but still this fact causes that I dare to think that we've already forgotten how to create a completely framework-less applications.

You may say: is a standard, why to re-invent a wheel. is a nice small REST framework. is yet another.

I tell you, sure, you're right.

You get a lot of bells and whistles with a framework, but you also get a lot of magic, learning overhead, additional features which you'll most…

Image for post
Image for post
Photo by @gebhartyler on Unsplash

AWS Lambda Layers is a new feature announced by Amazon on Nov 29th.

It allows creating an environment which can be reused between Lambda functions.

In this post I will show you how you can improve deployment time of your Lambda function written in Java by reusing a layer. It will also improve an overall development cycle experience and decrease internet bandwidth usage.

Before layers, if you wanted to deploy a Lambda function you had to provide a “fat” zip file with all the dependencies included.

In my example application I am using the following dependencies:

dependencies { compile( 'com.amazonaws:aws-lambda-java-core:1.2.0'…

Image for post
Image for post

Serverless time travel is possible now :)

I have just published my sample project demonstrating how to easily perform automatic code review using Github API.

It is based on the other post I have written some time ago.

In this particular example I am analysing project history looking for “hot spots”.

You can find an introduction in README but to summarise shorty:

Hot-spots are the files which are the most frequently edited in the project history.

Modifying such files may introduce a potential bug. …

Image for post
Image for post

When I enter a new project, apart from learning how to build and run it, I also like to check what to pay attention to.
Things like:

  • is the code clean and well structured?
  • are the developers, who wrote the code still around?
  • which parts are the source of the most headaches?

You can find some of this information from static code analysis tools (e.g. for Java: FindBugs, PMD, CheckStyle, or IntelliJ Idea plugin called SonarLint.

These all analyse current state of the source code, but it appears like you can get a lot of valuable information from the history…

marcin piczkowski

modern tech. enthusiast, father, born explorer ;)

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store