История одного бага и комитта, где все объясняется https://github.com/alphagov/govuk-puppet/commit/63b36f93bf75a848e2125008aa1e880c5861cf46
Теперь я видел все 😆
Теперь я видел все 😆
GitHub
Convert template to US-ASCII to fix error · alphagov/govuk-puppet@63b36f9
I introduced some tests in a feature branch to match the contents of
`/etc/nginx/router_routes.conf`. They worked fine when run with `bundle exec
rake spec` or `bundle exec rspec modules/router/spe...
`/etc/nginx/router_routes.conf`. They worked fine when run with `bundle exec
rake spec` or `bundle exec rspec modules/router/spe...
HTTP Response 418 #УкрТґ 🇺🇦
Читаю одну крутую книгу по хайлоад, нашёл очень крутое объяснение разницы декларативного и императивного подхода. Будет ли интересен такой контент?
Telegraph
Декларативные запросы в Интернете
Преимущества декларативных языков запросов не ограничиваются использованием только в базах данных. Чтобы проиллюстрировать это утверждение, сравним декларативный и императивный подход в совершенно другой среде: браузере. Допустим, у нас есть сайт, посвященный…
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, и подобные и может изменять их в рантайме.
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, и подобные и может изменять их в рантайме.
// Сделаем абстрактный класс обычнымОсторожно! Библиотека предоставляет практически неограниченный доступ к памяти самого PHP и работает со структурами на низком уровне. Поэтому вполне возможны сегфолты, утечки памяти и другие неприятные последствия. Так что, только для тестов.
$refClass = new ReflectionClass(TestClass::class);
$refClass->setAbstract(false);
assertFalse($refClass->isAbstract());
$instance = new TestClass();
assertInstanceOf(TestClass::class, $instance);
GitHub
GitHub - lisachenko/z-engine: :zap: PHP Engine Direct API
:zap: PHP Engine Direct API. Contribute to lisachenko/z-engine development by creating an account on GitHub.
Forwarded from oleg_log (Oleg Kovalov)
Нашел отличную и официальную организацию от AWS с кучей примеров. В общем-то а как еще втянуть людей в свою секту? Но вещь полезная.
https://github.com/aws-samples?type=source
https://github.com/aws-samples?type=source
Я поражён этой инициативой.
Вдруг у человечества будут проблемы. Например много умрет. Или техногенная катастрофа. Современное программное обеспечение законсервируют как святой грааль с инструкциями о восстановлении данных.
https://archiveprogram.github.com/
Вдруг у человечества будут проблемы. Например много умрет. Или техногенная катастрофа. Современное программное обеспечение законсервируют как святой грааль с инструкциями о восстановлении данных.
https://archiveprogram.github.com/
GitHub Archive Program
Preserving open source software for future generations
В моем опенспейсе работает от 40 до 50 человек. Стал задываться о покупке вот такой штуки
Пользовался кто-нибудь? Может есть советы? Пишите в личку @omentes
Пользовался кто-нибудь? Может есть советы? Пишите в личку @omentes
ROZETKA
Наушники противошумные защитные 3M Peltor Optime III (12529)
ROZETKA ⚡️ Купить Наушники противошумные защитные 3M Peltor Optime III (12529) от продавца: Traveller | Низкие цены, гарантия, скидки, кредит или оплата частями
Forwarded from Sysadmin Tools 🇺🇦
Никак не умрет этот ваш php...
https://www.opennet.ru/opennews/art.shtml?num=51944
https://www.opennet.ru/opennews/art.shtml?num=51944
www.opennet.ru
Релиз языка программирования PHP 7.4
После года разработки представлен релиз языка программирования PHP 7.4. Новая ветка включает серию новых возможностей, а также несколько изменений, нарушающих совместимость.
Forwarded from Sysadmin Tools 🇺🇦
Давеча попросил человека перенести полностью репы с одной VCS в другую, к примеру с github в gitlab. Сейчас смотрю, а там не перенос, а просто коммит без веток и всего прочего. Думаю сделаю пост:
Как сделать полный перенос репозитория на другой сервер #vcs #git #github #gitlab #bitbucket
Как сделать полный перенос репозитория на другой сервер #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
Когда действительно заботишься о надеждности пароля своих пользователей
Forwarded from Life-Hack - Хакер
#Обучение
Утечка имён файлов в .DS Store: как просмотреть содержимое и как эксплуатировать
Читать далее...
Утечка имён файлов в .DS Store: как просмотреть содержимое и как эксплуатировать
Читать далее...
Telegraph
Утечка имён файлов в .DS_Store: как просмотреть содержимое и как эксплуатировать
#Обучение DS_Store — это файлы в операционной системе Apple OS X, они хранят пользовательские настройки папки, такие как расположение иконок, выбранное фоновое изображение, список файлов. Имя является сокращением от Desktop Services Store. Эти файлы создаются…
Forwarded from PHP Digest
Как выбрать файлы для предзагрузки в PHP 7.4
https://github.com/DarkGhostHunter/Preloader
Многие ожидали, что поддержку предзагрузки сделают прям в Composer. Но, судя по всему, в ближайшее время это не будет реализовано.
Для Symfony поддержку уже выкатили сами https://symfony.com/blog/new-in-symfony-4-4-preloading-symfony-applications-in-php-7-4
Для Laravel обещают, но из-за использования алиасов пока будут проблемы.
А как быть с произвольным приложением? Можно попробовать загрузить все файлы. Если не нарвётесь на segfault и ряд других нюансов (подробнее https://habr.com/ru/company/badoo/blog/472528/), то это сработает и должно дать прирост. Но эффективнее загружать не все классы, а только самые часто используемые. И вот вопрос как узнать какие это?
Появился вот такой инструмент:
https://github.com/DarkGhostHunter/Preloader
Он предлагает сначала собрать статистику по используемым классам из самого опкэша во время запусков приложения. А потом по этой статистике уже сгенерировать preloader.php скрипт, который подгрузит нужные классы в опкэш. Звучит как годная идея, надо пробовать.
https://github.com/DarkGhostHunter/Preloader
Многие ожидали, что поддержку предзагрузки сделают прям в Composer. Но, судя по всему, в ближайшее время это не будет реализовано.
Для Symfony поддержку уже выкатили сами https://symfony.com/blog/new-in-symfony-4-4-preloading-symfony-applications-in-php-7-4
Для Laravel обещают, но из-за использования алиасов пока будут проблемы.
А как быть с произвольным приложением? Можно попробовать загрузить все файлы. Если не нарвётесь на segfault и ряд других нюансов (подробнее https://habr.com/ru/company/badoo/blog/472528/), то это сработает и должно дать прирост. Но эффективнее загружать не все классы, а только самые часто используемые. И вот вопрос как узнать какие это?
Появился вот такой инструмент:
https://github.com/DarkGhostHunter/Preloader
Он предлагает сначала собрать статистику по используемым классам из самого опкэша во время запусков приложения. А потом по этой статистике уже сгенерировать preloader.php скрипт, который подгрузит нужные классы в опкэш. Звучит как годная идея, надо пробовать.
GitHub
GitHub - DarkGhostHunter/Preloader: Preloader helper to create a PHP-ready preload script from Opcache.
Preloader helper to create a PHP-ready preload script from Opcache. - DarkGhostHunter/Preloader
Я тут на досуге решил напедалить инлайнового бота для конвертации гривны в доллар и наоборот
Бот тут @USD2UAH_bot
Исходники тут https://github.com/omentes/usd2uah
Бот тут @USD2UAH_bot
Исходники тут https://github.com/omentes/usd2uah
Oracle потушил мой Always free инстанс и кнопка Start - disabled. Доброе утро...
Боты снова в строю. И кстати, теперь бот показывает межбанк с сайта минфина, они предоставили доступ к API. В планах доделать другие валюты, НБУ, средний курс в банках. @USD2UAH_bot