Maksym Prokopov personal blog
Idea is a something worth sharing

Согласен по всем пунктам!

28.03.2018

Согласен по всем пунктам!

Я для себя выделил ещё один признак, это умение проводить собственные размышления над проблемой, особенно если они противоположны общепринятой точке зрения. И, конечно, умение вести дискуссию пользуясь логическими построениями, вместо «ойнувсе».

Noteworthy Clojure projects

18.01.2018

Recently I again dived deeply into Clojure development with my Bank Statements — ERP sync tool and started to investigate what’s new in Clojure world. It appears a lot of great things happend in 2017!

Every of following tools drops my jaw down. Here is my list:

Read More…

Вещи в веб-деве, которые меня действительно впечатлили

16.01.2018

Lightmod и Nightcode редактор с подсветкой синтаксиса, где Clojure и ClojureScript работают из коробки и есть несколько хороших примеров кода прямо в той же коробке.

Удивительно, какие вещи может сделать один человек. Проекты также содержат интерактивный REPL прямо на странице ClojureScriptа. Впрочем, это лучше показать.

ClojureScript REPL right in your Google Chrome Dirac. Лучше всего за себя скажет сам скриншот Dirac. Отличная поддержка ClojureScript прямо в вашем браузере!

В этом же контексте имеет смысл посмотреть на paren-soup онлайн редактор для Clojurescript.

Read More…

Про редакторы и IDE

10.01.2018

Я люблю время от времени тыкать палочкой в различные редакторы и пробовать их в своей работе.

Сейчас появилось очень много интересных и быстрых штук типа Sublime, Atom, LightTable. Ребята из Jetbrains создают отличные (но медленные и прожорливые) IDE типа WebStorm, RubyMine, PyCharm.

Также небезынтересно было посмотреть, что и как используют сейчас в качестве редактора другие программисты https://github.com/A/code-screenshots.

И, конечно, незабвенные Vim и Emacs. Уверен, что постигнуть нужно оба редактора. Первый, обязательно, за дружелюбность к пальцам, которая перерастает при помощи двигательной памяти в такую производительность управления текстом, которую очень непросто достигнуть конкурентам. И, кстати, именно поэтому практически все вышеперечисленные редакторы предлагают режим эмуляции Vim. Включая Emacs. И, кстати, о Emacs.

Read More…

Моноколесо Ninebot One S2: Ремонт прокола камеры своими руками

01.11.2017

Однажды ехал вечером домой и не заметил достаточно глубокую яму. После обследовал колесо: включается-выключается, крутится, но шина спущена. Взял в руки потерпевшего и понес 🙂 Насмотрелся видео с разбором колеса до хорошего доступа к шине, также посмотрел видео, где кто-то умудрился заклеить колесо не разбирая. Но у меня не настолько хороши навыки гинеколога, чтобы повторить подобную процедуру.

Что понадобилось мне для ремонта: шестигранники, маленький чтобы открутить небольшой винт снизу педали, побольше для раскрутки основных винтов, которые держат крышку и еще чуть больше, чтобы открутить педали. Хорошая крестовая отвертка. Плоская железка или кусок крепкого пластика, чтобы поддеть шину для разбортировки. Также потребуется велосипедный набор для ремонта камер, в него входит наждак для зачистки поверхности резины, резиновый клей и заплатки.

Read More…

Quick fix for rubygems SSL error

24.10.2017

In case you get

ERROR: SSL verification error at depth 2: certificate has expired (10) 
ERROR: Certificate /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA expired at 2014–01–28T12:00:00Z 
ERROR: SSL verification error at depth 2: certificate has expired (10) 
ERROR: Certificate /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA expired at 2014–01–28T12:00:00Z 
ERROR: SSL verification error at depth 2: certificate has expired (10) 
ERROR: Certificate /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA expired at 2014–01–28T12:00:00Z 
ERROR: Could not find a valid gem ‘cocoapods’ (>= 0), here is why: 
 Unable to download data from https://rubygems.org/ — SSL_connect returned=1 errno=0 state=SSLv3 read server certificate B: certificate verify failed (https://api.rubygems.org/specs.4.8.gz
ERROR: SSL verification error at depth 2: certificate has expired (10) 
ERROR: Certificate /C=BE/O=GlobalSign nv-sa/OU=Root CA/CN=GlobalSign Root CA expired at 2014–01–28T12:00:00Z

Read More…

Compare Postgres speed within Docker and without

07.09.2017

I decided to compare if there will be significant differences between dockerized and non-dockerized Postgres.

Here is my test environment:

  • rails 5 application with rich test suite, about 628 examples,
  • macOS Sierra 10.12.6,
  • Docker 17.06.0-ce-mac19.

I use Postgres docker version alpine 9.6 which is 37,7Mb and raw Postgres 9.6 with GUI for Mac which is 379Mb.

Rails run locally, database.yml connects to the localhost postgres with pool 5 using gem pg (0.21.0).

Read More…

Gitlab: continuous delivery setup for Clojure/Java with Docker

05.09.2017

Recently I was doing a microservice with Server Sent Events and Pedestal in Clojure and I though it should be a good idea to implement automatic build and deployment to docker registry container. I already have Gitlab installed and started to play around.

Long story short, here my .gitlab-ci.yml which took me a couple of days to figure out what is the “artifact” in Gitlab and how is it suppose to survive between artifact builds and docker builds.

Read More…

Fully automated docker mysql database backup from remote host

17.08.2017

The main idea is to have fully automated docker database backup from low end D-Link NAS DNS-320. I believe, that host, which hosts backups should be responsible for doing whole backup process, not the web-servers, which nowadays designed to be ephemeral.

Solution design is following:

  1. My backup box will copy backup.sh script to the remote coreos-03 host.
  2. Then remote host copies backup.sh script into database container.
  3. Backup box executes docker command «docker exec itservice_db_1 backup.sh» on coreos-03 host, which, in turn, executes mysqlbackup. SQL dump is captured directly from command output and then gzipped.
  4. Rsnapshot saves folder with gzipped SQL dump and rotates old backup folders as necessary.

So, we will need only

Read More…

Ansible Containers

15.08.2017

Long story short. Ansible decided to create separate orchestration tool for the managing application containers, which is obviously a mainstream now. And this is straightforward next step after development tools for server state management like Ansible.

ansible/ansible-container
_ansible-container - Ansible Container is a tool to build Docker images and orchestrate containers using only Ansible…_github.com

But I was really disappointed with Ansible 2.3, because docker_service module is still broken. I tried all possible combinations of docker, docker-py and docker-compose python modules for ansible on remote host with CoreOS and all of combinations failed with different weird errors like “Dockerfile could not be found” and so on. After all the day trying hard to tackle that issues I gave up and wrote simple “docker-compose up” ansible command :(

Read More…