Turning Synology NAS into a geeky media server: PulseAudio

Aug 16, 2016

The previous post on the topic has been revised recently. You might want to look through it again.

Required files can be downloaded from https://github.com/edio/synology-mediaserver

Previously we’ve covered ALSA setup and Debian chroot.

In this post I’ll describe how to set up PulseAudio in Debian chroot, so that it’s possible to stream any sound from linux-powered pc to a sound card connected to Synology NAS.

Overloading that is not permitted or Java bridge methods

May 9, 2016

Most of my technical interviews for Java developer position include a puzzle, where candidate should implement 2 very similar interfaces in a single class:

// Implement both interfaces in a single class if possible. Explain why possible/not possible.

interface WithPrimitiveInt {
  void m(int i);
}

interface WithInteger {
  void m(Integer i);
}

Sometimes candidates, not being sure about the right answer, are willing to solve the following puzzle instead (I give it to candidates later anyway):

interface S {
  String m(int i);
}

interface V {
  void m(int i);
}

Turning Synology NAS into a geeky media server

Jan 6, 2016

This post was revised and updated on Aug 16, 2016

Required files can be downloaded from https://github.com/edio/synology-mediaserver

I’m not a huge fan of Synology. I bought my DS214 by friend’s recommendation and became frustrated with it right after the purchase. Bundled software was limited and buggy. Many people find Synology products great. But for me it just didn’t work well because it forced its use cases on me instead of being a helpful tool for my own very specific use cases.

Anyway, I wasn’t willing to lose money on reselling my NAS, so I decided to get as much as possible from it and currently with my DS214Play I can:

  1. Play virtually any sound via connected USB sound card.
  2. Particularly, I can play my huge collection of high-resolution music in various formats (with replaygain tags respected). All that thanks to mpd, which I can control from any decent phone, web-browser or even smart-watch and scrobble all statistics to Last.fm.
  3. Stream sound from my laptop via PulseAudio, while watching videos on YouTube or movies.

In this and few next posts I’m going to tell, what I have done to get all this.

randrctl — profile-based screen manager for X

Sep 17, 2014

While having some free time, decided to automate one of my daily routines — setting up external display.

Idea appeared long before I was told about famous (or not?) autorandr project. So if you are familiar with autorandr, you are already familiar with randrctl idea.

How Java logging frameworks determine caller class and method name

Apr 8, 2014

This post describes how java logging frameworks (Log4j, for example) know a point (concrete class and method name), where logging statement has been invoked.

I decided to write this post, because quite often I communicate with developers, who do not understant what is the cost of writing caller information to logs, and why such high cost is imposed.

Listen tracks from youtube in mpd

Sep 13, 2013