Joining lists of RxJava Observables

May 15, 2017
java, rxjava

In RxJava we have a few operators for joining Observables. The most common are: concat merge zip Take a look at the documentation in these links. It has interactive marble diagrams showing how the operators work on the streams. You can move marbles along the lines and see how the output stream changes. It really helps to understand how it works. Code snippets in this article are based on RxJava 2. ...

Emitting different observables conditionally

May 14, 2017
java, rxjava

Sometimes, we may need to emit different RxJava Observables depending on the specific condition dynamically. Moreover, it’s good to do it right without breaking a chain (stream of Observables). We want to combine different Observables together and do not want to nest one subscription inside another subscription because this will lead us to “subscription hell” similar to “callback hell”. Luckily RxJava has mechanisms to deal with such problems. In this article, I’m basing my examples on RxJava 2. ...

Basic code refactoring principles

May 5, 2017

Introduction # I’ve recently read a book about Test Driven Development by Kent Beck. It’s really good, presents the importance of the TDD and shows how to make a life of the software developer easier. In the TDD we follow red-green-refactor process in which we create a failing unit test, then we fix it and refactor it to make code-base better. There’s no golden rule when to refactor or how to refactor code and each project is different, but there are a few principles we may follow when we want to improve our projects through refactoring. ...

Monitoring usage of open-source projects

May 2, 2017

While developing open-source projects it’s important to monitor usage of them. Having that information we know on which projects we should concentrate the most and which are becoming more popular. In this short article, I’ll present you two tools, which can help you with that. GitHub # On GitHub, each project has “Traffic” tab. After clicking on it, we can see how many visitors and unique visitors we have, we can also check how many project clones and unique clones were performed (including CI servers). ...

Basic usage of YaaS as a proxy for the microservice

Apr 30, 2017

Introduction # The company, where I currently work - SAP Hybris is developing a project called YaaS, which is an abbreviation of Hybris as a Service. Unfortunately, this article is not sponsored yet :). What a pity :(. I just like to understand many things & how they work to see the bigger picture. Moreover, company strategy is to leverage YaaS and search for the new possibilities and use cases of this project. ...

Facebook is making solutions to talk from the brain – so do I

Apr 23, 2017

During F8 Facebook Developers Conference 2017, Facebook revealed its plans for the nearest years. Among different stuff, keynote from the day 2 was especially interesting for me. Speakers talked about connectivity projects increasing access to the Internet across the globe, different methods of human-computer interaction, virtual reality, and last, but not least Brain-Computer Interface. It’s super-interesting for me, because 4 years ago I wrote Master Thesis about Brain-Computer Interface for Mobile Devices at my university & published a few short articles about Brain-Computer Interface on this blog. ...

3 Alternatives to Evernote

Apr 23, 2017

Introduction # I’ve been using Evernote for some time for taking longer notes, but it started to annoy me a little bit. The main drawback is lack of the Linux desktop app. I’m using this app on Android phone, Macbook (at work) and on Linux (at home). There are community apps like NixNote2, which is nice, but in my opinion it’s not good enough. Moreover, Evernote seems to have too many features, which distract me and I don’t really use most of them. ...

Transform Vim into efficient IDE

Apr 16, 2017

Introduction # Some time ago, I decided to learn Vim. A lot of people are afraid of this editor and they usually don’t want to know anything about it or just learn how to quit it. In my opinion, it’s good to learn it because after mastering the basics, we can work very efficiently. After some time of usage, we may even replace editors like Atom or Sublime Text with Vim. ...

ReactiveNetwork - release v. 0.9.0 with RxJava2.x support

Apr 11, 2017
android, open-source, rxjava

This time, I upgraded my another reactive Android open-source project called ReactiveNetwork to RxJava2.x. Many thanks goes to @tushar-acharya who performed initial migration to the newer version of RxJava. During migration, I’ve also created new package rx2 to avoid potential import conflicts during migration inside Android apps. Besides migration, I’ve updated sample apps, documentation & JavaDocs on Github pages. You can still use RxJava1.x version and it’s available on the branch with that name. ...

Automate tile layouts creation in tmux with tmux-auto-pane

Apr 8, 2017

I just released tmux-auto-pane. It’s a tiny shell script for creating pre-defined tile layouts in Tmux on Linux with xdotool. In our workflow, we often have some pre-defined pane configurations in a terminal. The project called tmux-auto-pane helps to automate that process. It can save us some time and make us a bit more productive. We can call tmux-auto-pane with one of the following parameters: --help | -h showing help --1l1r one left, one right --1l2r one left, two right --2l1r two left, one right --1u1d one up, one down --1u2d on up, two down --2u1d two up, one down --4tiles 4 tiles, 1 in each corner for example tmux-auto-pane --4tiles will generate such layout: ...