Блог очередного разработчика


VueJS/Laravel + Quill Editor handling base64 image upload


Quill editor doing really great job with accepting images and putting it as base64.

But actually it doesnt good, especially for big images.

Your DB will be big AF and page load time will grow with each image in text.

I didnt find good or working solution from Quill side. Only some closed GitHub issues.


So i decided to make lilttle hack on backend.

My system info: VueJS Quill wrapper, Laravel 5.4

Now what we need.

Firstly install Symfony Dow Crawler

Then include it and some other classes in your model/controller.

And here code of extractor/file saver

And finally we got $desc html with converted base64 -> fs path

Saving to DB.

That’s all.


Full Code at gist: https://gist.github.com/S-anasol/5dde48f75a265d21123d0ab1f49d2e8a

URL pattern matcher/classificator


I have many different URLs in database.

From many sites.

I dont know how these sites work and url structure.

So I need to get 500 URLs from each site then compare and group it by common static part.

Which should be automatically merged via replacing with {var} any dynamic URL parts.

And then get ~10 urls as result.

Final result: reduce database size



Here is some kind Proof of Concept 🙂

Example with splitting URL by «?»

— Parse parameters.

— Calculate frequency for unique parameter values.

— Get Nth percentile.

— Build URLs and replace parameters which frequency is more than Nth percentile

For small data like here in sandbox 50 percentile is enough to group some URL.

For «big real data» 90-95 percentile.
For example: I use 90 percentile for 5000 links -> result ~200 links

CloudFlare отдача и кеширование видео

CloudFlare Caching
CloudFlare Caching

Стриминг видео с сервера очень сильно кушает канал. Поэтому появляется мысль кешировать видео через CloudFlare.
При этом надо сохранить возможность перемотки и разбить файлы на небольшие куски, чтобы CF ничего не заподозрил, а так же не попасть под лимит который не кешируется.
Будем использовать Uppod плеер.

1. Разбить видео
2. Создать страницу сайта

UP 19.07 Трафик продолжает снижаться


Поменять IP на всех сайтах в Cloudflare

Заменяем старый IP на всех доменах добавленных в CloudFlare.

Ставим из композера: jamesryanbell/cloudflare

Создаем php файл


Заполняем переменные: старый/текущий IP, новый IP, email аккаунта на CF, API ключ CF


Eloquent query logging outside Laravel

Class db does not exist eloquent

A facade root has not been set

and other terrible errors.

This post for those who like me using Eloquent outside Laravel.
With config like this:

Sometime need to log queries or just count it.
Almost all google results show code like this:

But outside Laravel you will get errors written above.

I spent some time to get it work.
And now i got solution 😀

To get work query logs outside Laravel use this 🙂

How works deploy on my pet project


Hello, %username%.

First english post here. Just for lulz 😀
Actually post related to gift i’ve got from DeployBot
Here some stickers and postcard with handwritten message.
Gift from DeployBot

So I decided to write little post about deploy on my pet project — vboro.de.
I also have work project on deploybot, but it works almost same. Only difference is servers amount.
I use DeployBot about 9 months totally and last 3 months with the paid account.

So my deploy script is not canonical and not safe, but it works 🙂
After commit on master — github send info to DeployBot.
Then it just pulling data from github and then run/install/update composer and depencies.

How it looks on DeployBot

And here full script:

Thats all!
At current moment a have about 2500 deploys passed.

Не показывает русский в DLE после обновления php

Пропал русский в DLE
Пропал русский в DLE

При обновлении со старой версии php в DLE могут пропасть русские символы в заголовках и контенте админки.
Это происходит в случае использования кодировки windows-1251/cp1251
Для исправления необходимо явно указывать кодировку windows-1251 в вызове функции htmlspecialchars().

Список файлов для исправления DLE
Список файлов для исправления DLE

Список файлов для исправления

  • /engine/inc/editnews.php
  • /engine/classes/parse.class.php
  • /engine/inc/xfields.php
  • /engine/inc/include/functions.inc.php

Добавляем во всех функции кодировку из конфига.


История про регулярное выражение

Жил был один новостной сайт на вордпрессе.

Стал плохо жить и переехал к нам на хостинг на собственный выделенный сервер.

Но вот незадача он кушал ресурсы сервера так как-будто это был дешевый шаред хостинг, и сервер не выдерживал нагрузки в пиковые моменты.

А на сайт тот заходили по 10-20 тысяч человек в день и это было очень печально, ведь там стояли еще несколько почти таких же сайтов. Стали мы искать кто же так кушает наш сервер и почему все так плохо.

И нашли мы волшебную строчку в functions.php темы.

Какой-то добрый программист оставил там всего лишь одну строчку которая перед каждой новостью с помощью preg_replace добавляла блок адсенса в нужное место.

Всего лишь один preg_replace для всего контента перед выводом ставил дедик на колени и заставлял его молиться чтобы пронать gateway.

Надеюсь эта маленькая история научит вас любить и уважать функции и не использовать регулярки везде где только можно.