Maksym Prokopov personal blog
Idea is a something worth sharing

Late binding

13.04.2021

Late binding is a very precious idea.

Example:

Say, you have a docker image someone decided to use for the development. One created a huge bundle with all tools, bells, and whistles.

As time passes and you try to use it and then you miserably fail. Dependencies don’t met requirements anymore, most of the tools are outdated and should be bumped to newer version, initial SQL data has been changed and etc.

Configs are hidden and manipulated in docker image, composer.json is outside and you end up starring at this pile of crap.

Read More…

Linkedin, what are you doing? Stop it!

08.04.2021

Recently I’ve checked this website and styling became really aweful. After my digging it turned out one little busty thing was doing the crap.

Official Linkedin badge! Overrides default link styling!

<script type='text/javascript' src='https://platform.linkedin.com/badges/js/profile.js' async defer ></script>

The easiest way to turn it off is to change type=‘text/javascript’ to just ’text’.

You have also been decreasing my lighthouse score. Bye-bye little nasty thing.

Read More…

On Datomic dark sides

07.04.2021

I love datomic. Datalog is a definitely something noteworthy and even if you never going to use it in your projects, still it is worth getting your hands dirty. Despite all Datomic bright sides, there are some thoughts bothering me since I started using it more extensively in my pet project.

Read More…

Smalltalk and its descedants

27.03.2021

The Smalltalk is an extraordinary language. Firstly, this is a mother of all OOP family languages. Secondly, Java was invented as alternative for payed (sic!) programming language Smalltalk, and if IBM won the race with Microsoft a that time, things might end up very differently and Smalltalk could still be a hype.

Initially I’ve been exposed to Ruby, but only with Smalltalk I finally grasp lot’s of ideas in Ruby, so as the roots of the syntax.

Read More…

org-roam ideas

04.03.2021

I love talking about ideas. org-roam has quite simple idea for organizing your knowledge. I didn’t believe it works when I gave it a try.

The essense of the Zettelkasten method is following:

  1. Keep your notes split apart in one single folder.
  2. Insert tags and backlinks to group notes together.

That’s it!

What is so special about this? Let’s say I started moving all things from my backlog pile into separate small notes and I started to breath again! You know you probably have this cemetry of links you will never open and articles you will never read. I have such pile as well, links in browser in “favorites”, pile of links in org backlog file.

Read More…

Disable Chrome browser confirmation to open external protocol with org-protocol

02.02.2021

I recently added org-capture chrome extension to my toolbelt. Unfortunalely chrome annoys me by asking if I want to open this protocol link every time.

Here is the simple way to fix this.

Execute this in the shell

defaults write com.google.Chrome URLAllowlist -array-add -string 'org-protocol://*'

check chrome://policy url that it contains proper settings for org-protocol

Chrome policy

Read More…

Emacs literate programming and SQL

08.01.2021

I’m really crying of how finally emacs can be used for the literate programming and for some testing.

For restclient, this creates POST request with json data structure in request body.

  #+begin_src restclient
    POST http://muster.test/index.php?cl=ping
    Content-Type: application/json


    {
    "essentialtech": true,
    "googleadwords": false,
    "googleanalytics": false,
    "googlemaps": true,
    "gtmbasedtech": false,
    "terminland": true,
    "userlike": true
    }
#+end_src

#+RESULTS:
#+BEGIN_SRC js
{
  "message": "success"
}
// POST http://muster.test/index.php?cl=ping
// HTTP/1.1 200 OK
// Date: Tue, 09 Feb 2021 13:45:07 GMT
// Server: Apache/2.4.46 (Unix) OpenSSL/1.1.1i
// X-Powered-By: PHP/7.1.33
// Expires: Thu, 19 Nov 1981 08:52:00 GMT
// Cache-Control: no-store, no-cache, must-revalidate
// Pragma: no-cache
// Set-Cookie: language=0; path=/; HttpOnly
// Set-Cookie: sid=0fvjai2h5h2pso52p4vq9e5309; path=/; HttpOnly
// Keep-Alive: timeout=5, max=100
// Connection: Keep-Alive
// Transfer-Encoding: chunked
// Content-Type: application/json;
// Request duration: 0.269261s
#+END_SRC
Read More…

useful git wip

07.01.2021

Useful Git WIP alias command

add this to the .gitconfig

[alias]
  wip = for-each-ref --sort='authordate:iso8601' --format=' %(color:green)%(authordate:relative)%09%(color:white)%(refname:short)' refs/heads
  

and enjoy git wip sorting branches by most recent

Source: https://carolynvanslyck.com/blog/2020/12/git-wip/

Read More…

Книги о здоровье

06.01.2021

Вот небольшой список книг и ресурсов, которые настоятельно рекомендую для погружения в обширную тему здоровья.

  1. Очаровательный кишечник. Джулия Эндерс
  2. Нейрофитнес Рахул Джандиал
  3. Сахар, соль и жир. Майкл Мосс
  4. Блог Бесчастнова Павла aka Stelazin
Read More…

Gitlab limit parallel pipeline execution

24.12.2020

In brief - use the resource_group directive.

Example:

stages:
  - build

jobA:
  resource_group: jobA
  stage: build
  script: 
    - echo HelloA

jobB: 
  stage: build
  script:
    - echo HelloB

There are some useful patterns for Resource Group.

resource_group: $CI_ENVIRONMENT_NAME … Limit per environment

resource_group: $CI_JOB_NAME … Limit per job

resource_group: $CI_COMMIT_REF_NAME:$CI_JOB_NAME … Limit per job per branch

resource_group: $CI_COMMIT_REF_NAME:$CI_ENVIRONMENT_NAME … Limit per environment per branch (e.g. review apps)

Read More…