Fixing psycopg2 python package on Mac `ld: library not found for -lssl`

If you ever get

ld: library not found for -lssl

You should:

  1. Check you have openssl installed with brew install openssl
  2. Make sure that openssl-bindings are available in PATH: brew link openssl
  3. If the installation still fails and you are using poetry, you can try installing package with pip directly from the virtualenv.

Django way of serving apple-app-site-association

Key for solving was looking up how facebook does it at

path('.well-known/apple-app-site-association', TemplateView.as_view(

Note: apple domain association can be verified at special site.


How to build and install RGF (Regularized Greedy Forest) on Mac OS

Regularized Greedy Forest was introduced in this article. And now it is one of the approaches for efficient boosting training. However, building and installing it on Mac not yet (for November 2018) is as simple as pip3 install xgboost. So, this short note is about how to build and run RGF on Mac, if you have any troubles with it.



How to send html-formatted email

Short answer: sending .html-formatted email is rather easy, even from a local laptop. But there can be difficulties, which are not avoided easily. To begin with, the short and (hopefully) working answer:

Mac OS | CentOS | Debian

cat letter.html | mail -s "$(echo -e "Testing email\nContent-Type: text/html")"

Make sure you check the SPAM folder, as it has nearly 0 chance of getting through to your mailbox from scratch. If it doesn’t work out, you’ll have to go deeper.



How to finally stop iBooks from unloading epub and pdf files

There is a problem with iBooks: books are getting removed locally and uploaded to the cloud, if the space is running low on the device. But with iOS 11 some users experience unwanted file upload even when there is no space shortage.

And there lots of topics and discussions all over the web, starting with official help site, Reddit, macrumors.

UPD: There is not way to guarantee proper behaviour. That is an official Apple Support:

There isn’t a way to prevent iCloud from offloading downloaded books. The best advice is to redownload a book before leaving a Wi-Fi connection, if you know you may be not near one later. You can also leave feedback requesting that feature, as we do like to hear ideas and suggestions for our products. You can leave your feedback using this link: Select iOS Apps > Books


These are some options that you can try, but they are probably won’t help:

  1. Remove iBooks
    Reinstall it from AppStore
    Download all the books.It might be useful also to do this afterwards:Settings > Apple ID > iCloud > iBooks: OFF
    Reboot iPad
    Settings > Apple ID > iCloud > iBooks: ON
    Launch iBooks
  2. Check the appropriate settings, stop iCloud syncing at: Settings > iBooks >Sync Collection: OFF
    Settings > Apple ID > iCloud > iBooks: OFF. And then upload books to the device using wire, or just get them through Cloud Storage (Dropbox, Google Drive, Yandex.Disk or etc).As the downside, your notes won’t sync, but you will keep the books on your device.
  3. There is yet another hack to stop iCloud from deleting books: turning airplane mode.
    iBooks can't unload books, if there is no internet




Overcoming long Spark job runtime on small datasets

If you are dealing with relatively low datasets < 1M entries (and you just have to use Spark for some reasons), significant speedup can be achieved with tuning (lowering) number of partitions.

Basically, setting `spark.default.parallelism` param to number of cores and `spark.sql.shuffle.partitions` to something like 20 (instead of default 200), will allow you to receive significant speedup, since Spark won’t lose time on shuffling RDDs and generating large number of tasks.


Another useful link.


Best browser multiplayer games

Inspired by recent Bobuk’s tweet (russian), here is the curated list of the best browser multiplayer games to kill your time. All of these games are highly addictive and playable in the browser.



Migrating code from Zeppelin to Spark

When you have shiny Zeppelin application, which runs smoothly and does what it supposed to do, you start transferring your code into Spark environment to use it in production. If you are novice in Hadoop environment (like me), you might encounter a couple of tasks, required to be solved before you will celebrate project launch.

Basically, it can be broken down into easy chunks:

  1. Launching spark-submit with test class.
  2. Adding main class and Spark context initialization.
  3. Building fat jar (which includes all the  libraries).
  4. Launching a job with a spark-submit.



Founders at work — short summary

One of the best books about the history of the common internet, how the whole IT sphere was developed, through the interviews of the founders of tech companies. It is unique material of opinions and real life stories of founders companies which made a lot of today commodities.

This is a book, there can be no good short summary for, because every story is unique, but they have something in common. And despite that it can only be highly recommended to read this book, despite the fact that most of the companies were built and sold over 2 decades ago, there are some key insights which can be written down here.

  1. Doing something new and innovative isn’t fun. Usually it takes much more than 40 hours work week. And there is only one way to allocate more time — from sleep.
  2. Business plans are useless. Life is too complicated and the only purpose of writing a business is demonstrating that you are committed enough to do some extra work.
  3. People is everything that matters. Team and connections — this is one of the fundamental things, which if crucial to performing the best.
  4. Users are never speaking of their problems, they are suggesting feature they think can help them.

Замена дисплея на маке по гарантии от Staingate в России

Staingate — это признанная Apple проблема, из-за которой экраны (а точнее — антибликовое покрытие) MacBook-ов начинали выглядеть потёртыми или поцарапанными, не смотря на отсутствие явных физических повреждений. Проблемы были подвержены ноутбуки от 2013 до 2015 выпуска и для них существует возможность бесплатной замены дисплея в авторизованных центрах Apple. Не смотря на отсутствие фирменных магазинов, в России работают авторизованные сервисные центры, в которые можно придти и совершенно бесплатно заменить дисплей.