Hello! 👋

A blog about programming, web development, useful tools, and technology. Here you’ll find articles, tips, and resources for developers.

No to Russia's war against Ukraine

This is a message to all Russians and Belarusians who are still unaware that Russia is at war with Ukraine. Ukrainians are dying for their country right now — and so are Russians and everyone who joined them, for unclear goals. I want to ask all of you: What are you dying for? What are you fighting for? For Putin’s dacha in Gelendzhik? For the billions of various “Rotenbergs”? I cannot wrap my head around how anyone could start this fratricidal war. So remember this: there are no more “brothers” and “sisters” beyond the Ukrainian border. Not for me. Below I will add videos from people you may know. ...

February 27, 2022 · 2 min · Віктор
Composer setup

Laravel 5 blog (part 0): Setting up the environment on Mac/Linux

Setting up Composer This lesson is a short guide for Mac/Linux users. If you work on Windows 10, read the article Web developer environment on Windows about preparing your system for Laravel development. Open a terminal and go to your home directory, for example: cd /Users/<USER_NAME>/ Run the command below to download Composer. It creates a Phar (PHP Archive) file named composer.phar: curl -sS https://getcomposer.org/installer | php Now move composer.phar to /usr/local/bin/ and set permissions so you can run it without sudo every time: ...

January 29, 2020 · 3 min · Віктор

Differences between MyISAM and InnoDB storage engines

Differences between MyISAM and InnoDB storage engines In this table I tried to show the difference between MyISAM and InnoDB with simple examples: Description MyISAM InnoDB Transactional engine No Yes Foreign key support No Yes Locking Table-level locking Row-level locking Concurrent queries to different parts of a table Slower Faster Mixed load (SELECT/UPDATE/DELETE/INSERT) Slower Faster INSERT operations Faster Slower due to transaction overhead — the cost of reliability Mostly read operations (SELECT) Faster Slower Deadlocks Do not occur Possible Full-text search support Yes No (available since MySQL 5.6.4) COUNT(*) query Faster Slower mysqlhotcopy support Yes No Table file storage Separate file per table By default, data is stored in large shared files Binary copy of tables? Yes No Table size in the database Smaller Larger Behavior on failure The whole table can crash Can be recovered from logs Storing “logs” and similar data Better Worse Conclusions: ...

January 24, 2020 · 1 min · Віктор

Indexes in MySQL

Indexes in MySQL are an excellent tool for optimizing SQL queries. To understand how they work, let’s look at working with data without them. 1. Reading data from disk On a hard disk there is no such concept as a “file” at the low level — there are blocks. One file usually occupies several blocks. Each block knows which block comes next. The file is split into chunks, and each chunk is stored in an empty block. ...

January 24, 2020 · 10 min · Віктор
CSS variables

CSS variables

Over the last few years, CSS preprocessors have been very successful. Greenfield projects often started with Less or Sass — and they are still popular. In my view, their main advantages are: Nested selectors Easy imports Variables Today, modern CSS already supports CSS custom properties, also known as CSS variables. CSS is not a programming language like JavaScript, Python, PHP, Ruby, or Go, where variables are central. CSS is limited and mostly a declarative syntax that tells browsers how to render an HTML page. ...

March 14, 2019 · 4 min · Віктор