Every time we add a new if or for to code, we have to increase the indent of the condition body or loop. The more nested loops and conditions, the broader your code becomes, and the more difficult it becomes to read. In this short article, I’ll show a few techniques by which you can avoid increasing indentation. Your code will be clearer, and you’ll never see horizontal scrolling.

Rule 0. Don’t listen to me, listen to your style guide

First of all, let me remind you of the most important thing – code style. If you’re working in a team, then it’s important to write code so that you don’t…

There are four files in the characters/ folder. Some information is encrypted in them.

Let’s start with the text file yuri.chr. Get the first and the last 50 bytes.

$ head -c 50 yuri.chr
$ tail -c 50 yuri.chr

It looks like base64, so decode it:

$ cat yuri.chr | base64 -d > yuri.txt
$ head -c 50 yuri.chr
If you found this note in a small wooden box with
$ tail -c 50 yuri.txt
is you. I actually really, really hope so.


sayori.chr is ogg audio. This can be verified by doing:

$ file sayori.chr

The key feature of the upcoming release of Java 9 is to support modularity, which will bring Project Jigsaw. The purpose of the project is to make the Java SE platform more flexible, productive and protected due to splitting JDK onto the modules and introduce a modular system.


Unlike the usual jar file, which in fact is a code and resource storage for JVM, jar module contains a class module-info which provides:

  • module name;
  • list of module dependencies necessary for the correct compilation and executing;
  • information about packages exported by this module;
  • list of services that provides module in runtime.

Android have good tools for interaction between applications, from showing a third-party Activity to accessing classes and resources from other applications. By using these tools, you can extend an app’s or a game’s functionality with additional content.

For operations with the list of installed applications use PackageManager.

To obtain information about an other application we need a package name (e.g. com.example.app). If you plan to create a specific plugin, you can hardcode the package name, but to invoke various plugins, you need to get the list of installed plugins and then invoke desired.

To identify the plugin application we can…

Victor Melnik

I love programming, open source, art, learning and sharing knowledge

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