HTTP Response 418 #УкрТґ 🇺🇦
138 subscribers
618 photos
86 videos
6 files
350 links
PHP, web, memes, jokes, Ukraine, charity, war, ADHD (ICD-10: F90.0), ASD (ICD-10: F84.5), Asperger syndrome, volunteering, human rights. LGBT-frendly.

Contact:
@setnemo
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Один из популярных способов денормализации для счётчиков это вынести в отдельную таблицу количество прочитанных и не прочитанных сообщений. И когда мы открываем сообщение бросается ивент, который отнимает у счетчика прочитанные сообщения. В случае отсутствия атомарности данной транзакции (а это нормально, ведь вы хотите прочитать сообщение, а не уменьшить счётчик непрочитанных, и в случае неудачи отнятия прочитанного у счетчика фейлить открытие неразумно) можно наблюдать эффект, когда сообщение прочитано, а счётчик не обнулился. Теперь ждать когда будет запущен контрольный пересчёт, который профиксит эту проблему...
CORE team PDFfiller ❤️
KTO TAK PIWET или смотрим кто написал то, что тебе надо менять во всем проекте

for n in $(git log -S 'KTO_TAK_PIWET'  --format=format:'%H')
do
echo "https://github.com/galera/project/commit/$n"
done

#bash #git
Forwarded from THINGS PROGRAMMERS DO
This media is not supported in your browser
VIEW IN TELEGRAM
Когда джун просит дажть ему доступ к базе данных продакшена.
Forwarded from PHP Digest
Чёрная магия PHP

https://github.com/lisachenko/z-engine

Как замокать финальный класс или переопределить финальный метод? Ну допустим, для этого есть badoo/soft-mocks. А как насчёт добавить интерфейс к существующему классу в рантайме? Или, например, изменять тип объекта.

Новая библиотека от Александра Лисаченко потенциально позволяет делать вообще всё что угодно.

В PHP 7.4 добавлена новая возможность – FFI, которая позволяет подгружать сишные модули (.dll or .so), и вызывать функции из них или использовать структуры данных из C на чистом PHP.
Библиотека Z-Engine использует FFI, чтобы получить доступ к внутренним структурам самого PHP! Z-Engine читает нативные структуры PHP, например, zend_class_entry, zval, и подобные и может изменять их в рантайме.

// Сделаем абстрактный класс обычным
$refClass = new ReflectionClass(TestClass::class);
$refClass->setAbstract(false);
assertFalse($refClass->isAbstract());
$instance = new TestClass();
assertInstanceOf(TestClass::class, $instance);

Осторожно! Библиотека предоставляет практически неограниченный доступ к памяти самого PHP и работает со структурами на низком уровне. Поэтому вполне возможны сегфолты, утечки памяти и другие неприятные последствия. Так что, только для тестов.
Forwarded from oleg_log (Oleg Kovalov)
Нашел отличную и официальную организацию от AWS с кучей примеров. В общем-то а как еще втянуть людей в свою секту? Но вещь полезная.

https://github.com/aws-samples?type=source
Это шедеврально
Я поражён этой инициативой.
Вдруг у человечества будут проблемы. Например много умрет. Или техногенная катастрофа. Современное программное обеспечение законсервируют как святой грааль с инструкциями о восстановлении данных.

https://archiveprogram.github.com/
Forwarded from Sysadmin Tools 🇺🇦
Давеча попросил человека перенести полностью репы с одной VCS в другую, к примеру с github в gitlab. Сейчас смотрю, а там не перенос, а просто коммит без веток и всего прочего. Думаю сделаю пост:
Как сделать полный перенос репозитория на другой сервер #vcs #git #github #gitlab #bitbucket

# Клонируем исходный репозиторий без рабочего каталога (--bare)
git clone --bare https://github.com/exampleuser/old-repository.git

cd old-repository.git
# Делаем mirror-push(будут скопированы все ветки и тэги) в новый репозиторий
git push --mirror https://github.com/exampleuser/new-repository.git

cd ..
# Удаляем папку с репозиторием
rm -rf old-repository.git
Использование .git/hooks/commit-msg

Копируем пример в рабочий хук

cp .git/hooks/commit-msg.sample .git/hooks/commit-msg

Редактируем содержимое файла
~/test(TEST-BRANCH)  » cat  .git/hooks/commit-msg                                                                                                                                                                
#!/bin/sh
COMMIT_EDITMSG=$1
NAME=$(git branch | grep '*' | sed 's/* //')
echo "[$NAME] $(cat $COMMIT_EDITMSG)" > $COMMIT_EDITMSG
cat $COMMIT_EDITMSG

Теперь при коммите будет следующее поведение - к вашему сообщению в начале будет добавлено название бранчи в квадратных скобках.
git commit -am 'text'
даст текст коммита
[TEST-BRANCH] text

#git
Forwarded from IT Юмор
This media is not supported in your browser
VIEW IN TELEGRAM
Когда действительно заботишься о надеждности пароля своих пользователей