https://www.conventionalcommits.org/ru/v1.0.0/
Соглашение о написании сообщении коммитов
Соглашение о написании сообщении коммитов
Forwarded from КиберТопор
This media is not supported in your browser
VIEW IN TELEGRAM
Meta выпустила ИИ для генерации кода, которая превосходит GPT-4.
Code Llama 70B теперь можно запустить у себя на компьютере, бесплатно, без VPN и цензуры.
Даже без подключения к сети чат-бот будет кодить игры, находить баги, выполнять технические задачи и многое другое. Для запуска на ПК должно быть достаточно мощностей и свободного места на диске.
Запрашиваем доступ здесь.
🕹КиберТопор
Code Llama 70B теперь можно запустить у себя на компьютере, бесплатно, без VPN и цензуры.
Даже без подключения к сети чат-бот будет кодить игры, находить баги, выполнять технические задачи и многое другое. Для запуска на ПК должно быть достаточно мощностей и свободного места на диске.
Запрашиваем доступ здесь.
🕹КиберТопор
Forwarded from Авва
В мире компьютерной безопасности сегодня интересный день. Точнее, он начался вчера вечером, когда немецкий разработчик Андрес Фройнд опубликовал отчет о тайной лазейке (бэкдор), которую он обнаружил в новых версиях широко используемой библиотеки для сжатия liblzma (часть архиватора xz). Лазейка позволяет взломщикам заходить через SSH на системы, в которых установлены эти новые версии - к счастью, похоже, что это всего несколько дистрибутивов Линукса в их до-релизовых версиях.
Всех очень впечатлило, насколько эта лазейка была сделана хитро, и как взломщик или взломщики серьезно поработали над тем, чтобы замести следы:
- взломщик под именем/псевдонимом Jia Tan почти два года (!) участвовал в разработке опенсорсного пакета xz, завоевал доверие его мейнтейнеров и получил доступ к прямому коммиту в его репозиторию. Он сделал больше 700 коммитов, лишь малая часть которых медленно подготовила код для лазейки
- основной код лазейки спрятан в тестовых файлах проекта (примеры "плохих" и "хороших" архивов)
- исходный код, который включает лазейку в собственно библиотеку, вообще не является частью основной репозитории в Github. Он спрятан в тар-архивах двух последних релизов, которые обычно используются мейнтейнерами дистрибутивов. То есть есть таг релиза, есть архив, якобы собранный из репозитории в момент этого тага, но на самом деле в нем есть крохотная добавка; в самой репозитории ее нет
- эта добавка прячется в конфигурационной магии autoconf, которую все ненавидят лютой ненавистью и никто никогда не заглядывает внутрь
- она проверяет, когда исходники конфигурируют именно для постройки дебиан-пакета или RPM-пакета (т.е. то, что будут делать мейтейнеры дистрибутивов), и только в этом случае вынимает из тестовых файлов определенные куски и добавляет в код библиотеки
- внутри библиотеки код лазейки заменяет несколько функций, которые работают с символьными таблицами библиотек во время их подгружения. Затрачены специальные усилия, чтобы имена функций не появлялись в двоичном коде. Что именно дальше делает код лазейки, до конца еще не ясно, но он обрабатывает сам символьные таблицы библиотек, и видимо находит то, что имеет отношение к SSH серверу, и что-то там заменяет. Это еще проверяют сейчас.
- интересно, что openssh, стандартный SSH-сервер под линуксом, не использует библиотеку liblzma, в которую вставили эту лазейку, но несколько популярных дистрибутивов добавляют в него поддержку уведомлений системы, systemd, а библиотека libsystemd уже в свою очередь использует liblzma.
- после того, как вышли версии библиотеки с ошибкой, несколько разных людей с незамеченными до того именами (очевидно, альты взломщика или сообщники) стали открывать запросы в разных программах и пакетах сделать апгрейд на эти новые версии, и в некоторых случаях преуспели
Взломщик допустил только одну ошибку: код лазейки, когда он работает как часть openssh, довольно медленно обрабатывает эти символьные таблицы, или что он еще там делает, и даже неудачная попытка логина на такую систему занимает на полсекунды дольше, чем обычно. Андрес Фройнд заметил эти полсекунды задержки. Они его раздражали. Он решил найти, какой новый баг к этому приводит, и нашел эту лазейку.
Если бы все происходило быстро и не было задержки в полсекунды, очень может быть, что это не заметили бы месяцы и годы, и этот код попал бы в основные дистрибутивы, в версии Линукса, которые запускаются у основных облачных провайдеров итд. Они реально очень, ОЧЕНЬ хорошо замели следы.
Теперь все думают, что надо было/надо теперь делать по-другому, и как обнаружить следующую лазейку такого типа - или предыдущую, если она уже есть и никто не знает! - не опираясь на удачу и героическую занудливость Андреаса Фройнда.
Всех очень впечатлило, насколько эта лазейка была сделана хитро, и как взломщик или взломщики серьезно поработали над тем, чтобы замести следы:
- взломщик под именем/псевдонимом Jia Tan почти два года (!) участвовал в разработке опенсорсного пакета xz, завоевал доверие его мейнтейнеров и получил доступ к прямому коммиту в его репозиторию. Он сделал больше 700 коммитов, лишь малая часть которых медленно подготовила код для лазейки
- основной код лазейки спрятан в тестовых файлах проекта (примеры "плохих" и "хороших" архивов)
- исходный код, который включает лазейку в собственно библиотеку, вообще не является частью основной репозитории в Github. Он спрятан в тар-архивах двух последних релизов, которые обычно используются мейнтейнерами дистрибутивов. То есть есть таг релиза, есть архив, якобы собранный из репозитории в момент этого тага, но на самом деле в нем есть крохотная добавка; в самой репозитории ее нет
- эта добавка прячется в конфигурационной магии autoconf, которую все ненавидят лютой ненавистью и никто никогда не заглядывает внутрь
- она проверяет, когда исходники конфигурируют именно для постройки дебиан-пакета или RPM-пакета (т.е. то, что будут делать мейтейнеры дистрибутивов), и только в этом случае вынимает из тестовых файлов определенные куски и добавляет в код библиотеки
- внутри библиотеки код лазейки заменяет несколько функций, которые работают с символьными таблицами библиотек во время их подгружения. Затрачены специальные усилия, чтобы имена функций не появлялись в двоичном коде. Что именно дальше делает код лазейки, до конца еще не ясно, но он обрабатывает сам символьные таблицы библиотек, и видимо находит то, что имеет отношение к SSH серверу, и что-то там заменяет. Это еще проверяют сейчас.
- интересно, что openssh, стандартный SSH-сервер под линуксом, не использует библиотеку liblzma, в которую вставили эту лазейку, но несколько популярных дистрибутивов добавляют в него поддержку уведомлений системы, systemd, а библиотека libsystemd уже в свою очередь использует liblzma.
- после того, как вышли версии библиотеки с ошибкой, несколько разных людей с незамеченными до того именами (очевидно, альты взломщика или сообщники) стали открывать запросы в разных программах и пакетах сделать апгрейд на эти новые версии, и в некоторых случаях преуспели
Взломщик допустил только одну ошибку: код лазейки, когда он работает как часть openssh, довольно медленно обрабатывает эти символьные таблицы, или что он еще там делает, и даже неудачная попытка логина на такую систему занимает на полсекунды дольше, чем обычно. Андрес Фройнд заметил эти полсекунды задержки. Они его раздражали. Он решил найти, какой новый баг к этому приводит, и нашел эту лазейку.
Если бы все происходило быстро и не было задержки в полсекунды, очень может быть, что это не заметили бы месяцы и годы, и этот код попал бы в основные дистрибутивы, в версии Линукса, которые запускаются у основных облачных провайдеров итд. Они реально очень, ОЧЕНЬ хорошо замели следы.
Теперь все думают, что надо было/надо теперь делать по-другому, и как обнаружить следующую лазейку такого типа - или предыдущую, если она уже есть и никто не знает! - не опираясь на удачу и героическую занудливость Андреаса Фройнда.
Мысли, которые мне понравились, из интервью Павла Дурова Такеру Карлсону:
🔗 Всегда делайте качественный продукт! Качественный продукт не требует рекламы и продвижения.
🔗 Чтобы нанимать и управлять лучшими инженерами, тебе не нужен огромный штат hr-ов и менеджеров.
🔗 Хорошему инженеру нужна высокая оплата труда и продукт в котором он может раскрыть свой потенциал.
🔗 В мире высокой конкуренции нужно создавать инновации, а не копировать работающие идеи.
🔗 Бэкдор в твоём приложении это всегда бэкдор, его может использовать кто угодно.
🔗 Выбор между "двумя стульями" может появиться там где не ожидаешь :)
Please open Telegram to view this post
VIEW IN TELEGRAM
Clean Code vs Fast Code
https://youtu.be/oFiY7EEtAW4
https://youtu.be/oFiY7EEtAW4
YouTube
Инцидент, Который Создал Шум Во Всей IT Сфере
Привет!
Научись создавать нейросети:
https://go.skillfactory.ru/windertontonka
Скидка 50% по промокоду TONKA
+курс по софт скилам в подарок
Бесплатный IT-рентген: https://go.skillfactory.ru/itwndtn
Если понравилось, то тебе сюда 100% - https://tttttt.me/wndtn…
Научись создавать нейросети:
https://go.skillfactory.ru/windertontonka
Скидка 50% по промокоду TONKA
+курс по софт скилам в подарок
Бесплатный IT-рентген: https://go.skillfactory.ru/itwndtn
Если понравилось, то тебе сюда 100% - https://tttttt.me/wndtn…
Forwarded from Henry Dev - заметки разработчика
Постоянно слышу мнение, что PHP устарел и вобще не айс. Но мне нравится этот язык и куда он развивается. Сейчас, это полностью объектно-ориентированный язык, поддерживающий написание строго типизированного и качественного кода, который вобрал в себя лучшие практики.
https://teletype.in/@henryh/o-php
https://teletype.in/@henryh/o-php
Media is too big
VIEW IN TELEGRAM
8-летняя девочка программирует своего чат бота при помощи нейросетей. И это впечатляет! Даже если видео преукрашено, возможности поражают. Такие вещи очень облегчают создание простых вещей, для которых ранее нужно было напрягать взрослых дядек)
Forwarded from Формошлёпство
Проверка переменных окружения во всех файлах .env
В мире, полном хаоса и неопределённости, существует пакет — Laravel Env Keys Checker, который, проверяет наличие ключей во всех
https://github.com/msamgan/laravel-env-keys-checker
Представь: ты отчаянно пытаешься добавить новое значение в свой локальный
Функции этого пакета, возможно, не столь уж и значительны, но вот они:
- Проверяет наличие всех ключей во всех
- Автоматически добавляет недостающие ключи, словно заботливый друг, который подставляет плечо.
- Синхронизирует ключи по строкам во всех
В мире, полном хаоса и неопределённости, существует пакет — Laravel Env Keys Checker, который, проверяет наличие ключей во всех
.env
файлах. Кто бы мог подумать, что в этой бездне бессмыслицы существует что-то, что может хоть как-то облегчить твои страдания.https://github.com/msamgan/laravel-env-keys-checker
Представь: ты отчаянно пытаешься добавить новое значение в свой локальный
.env
файл. И тут возникает вопрос: а есть ли оно в .env.example
? Или другой разработчик, словно глупец, обновил .env.example
.Функции этого пакета, возможно, не столь уж и значительны, но вот они:
- Проверяет наличие всех ключей во всех
.env
файлах, чтобы ты не чувствовал себя полным неудачником.- Автоматически добавляет недостающие ключи, словно заботливый друг, который подставляет плечо.
- Синхронизирует ключи по строкам во всех
.env
файлах, как будто это хоть как-то поможет.GitHub
GitHub - msamgan/laravel-env-keys-checker: check if all the keys are available across all the .env files.
check if all the keys are available across all the .env files. - msamgan/laravel-env-keys-checker
| ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄|
| Don't Push To Production On Friday |
|_________________|
\ (•◡•) /
\ /
——
| |
|_ |_
| Don't Push To Production On Friday |
|_________________|
\ (•◡•) /
\ /
——
| |
|_ |_
This media is not supported in your browser
VIEW IN TELEGRAM
Реальность в Бигтехе!😁
This media is not supported in your browser
VIEW IN TELEGRAM
Как забить на синдром самозванца
This media is not supported in your browser
VIEW IN TELEGRAM
Когда тестировщик проводит проверку того, что создал разработчик
Forwarded from CardReview
Очень интересное и короткое выступление Кирилла Меньшова. Цитирую близко к оригиналу:
Мы не можем просто заменить в ораклоцентричном ландшафте Oracle на Postgre, потому что постгре предназначен для систем следующего поколения, на микросервисах, которые базу используют только для хранения информации...
В результате этого исторического момента наши банки снова окажутся впереди планеты всей просто потому что всем остальным это не надо, а мы вынуждены импортозамещаясь строить новый ИТландшафт на самых современных доступных технология: микросервисы, постгре....
Мы не можем просто заменить в ораклоцентричном ландшафте Oracle на Postgre, потому что постгре предназначен для систем следующего поколения, на микросервисах, которые базу используют только для хранения информации...
В результате этого исторического момента наши банки снова окажутся впереди планеты всей просто потому что всем остальным это не надо, а мы вынуждены импортозамещаясь строить новый ИТландшафт на самых современных доступных технология: микросервисы, постгре....
Forwarded from Пятиминутка PHP
Добавлены новые функции mb_trim(), mb_ltrim(), mb_rtrim(), mb_ucfirst(), mb_lcfirst(), bcceil(), bcdivmod(), bcfloor() и bcround(), pcntl_getcpu(), pcntl_getcpuaffinity(), pcntl_getqos_class(), pcntl_setns(), pcntl_waitid(), http_get_last_response_headers(), http_clear_last_response_headers(), fpow()
Операции exit и die теперь можно вызывать в форме полноценных функций, которые допускается передавать в качестве аргумента в другие функции. Ранее возможности функций exit() и die() были сильно ограничены, так как они представляли собой обвязки над ключевыми словами exit и die.
Добавлены изменения, усложняющие эксплуатацию уязвимостей, вызванных выходом за границы буфера, а также усиливающие рандомизацию имён файлов, создаваемых через функцию tempnam().
Объявлено устаревшим поведение, при котором для параметров функций с присвоенным по умолчанию значением null автоматически разрешалось присвоение значений null. Для того, чтобы подобные параметры могли принимать значения null теперь требуется явное указание префикса "?". Например, вместо "function save(Book $book = null) {}" следует указывать "function save(?Book $book = null) {}".
Объявлены устаревшими константы E_STRICT, MYSQLI_REFRESH_*, функции mysqli_ping(), mysqli_kill(), mysqli_refresh(), методы mysqli::ping(), mysqli::kill(), mysqli::refresh(), возможность использования "_" в качестве имени класса, некоторые свойства DOMDocument и DOMEntity. Запрещено переопределение констант класса GMP, для которого теперь выставлено ключевое слово "final".
Источник: https://www.opennet.ru/opennews/art.shtml?num=62269
Операции exit и die теперь можно вызывать в форме полноценных функций, которые допускается передавать в качестве аргумента в другие функции. Ранее возможности функций exit() и die() были сильно ограничены, так как они представляли собой обвязки над ключевыми словами exit и die.
Добавлены изменения, усложняющие эксплуатацию уязвимостей, вызванных выходом за границы буфера, а также усиливающие рандомизацию имён файлов, создаваемых через функцию tempnam().
Объявлено устаревшим поведение, при котором для параметров функций с присвоенным по умолчанию значением null автоматически разрешалось присвоение значений null. Для того, чтобы подобные параметры могли принимать значения null теперь требуется явное указание префикса "?". Например, вместо "function save(Book $book = null) {}" следует указывать "function save(?Book $book = null) {}".
Объявлены устаревшими константы E_STRICT, MYSQLI_REFRESH_*, функции mysqli_ping(), mysqli_kill(), mysqli_refresh(), методы mysqli::ping(), mysqli::kill(), mysqli::refresh(), возможность использования "_" в качестве имени класса, некоторые свойства DOMDocument и DOMEntity. Запрещено переопределение констант класса GMP, для которого теперь выставлено ключевое слово "final".
Источник: https://www.opennet.ru/opennews/art.shtml?num=62269
Forwarded from IT-жесть из Тагила: менеджемент по частям.
Доброе утро, мой дорогой программист/QA/devops/etc!
Тебе повезло и ты в моей команде!
А если ты работаешь у меня, то попал ты сюда одним из этих путей:
1) ты уже ранее работал со мной и показал себя не мудаком, поэтому я просто взял тебя без собеса.
2) я нашёл тебя через огромное комьюнити разрабов, девопсов тестеров и даже манагеров, сарафанное радио и 3 рукопожатия, а тот кто тебя рекомендовал, скорее всего адекват. Поэтому я провёл не сильно занудное интервью, и скорее оно касалось софтов и фита команде.
3) в оставшихся 10% случаев получилось так, что я самостоятельно нашел тебя на хх, LI и прочих площадках/дали сорсеры. Мы с командой действительно внимательно прочли твоё резюме, списались с тобой в телеге, договорились о встрече, поговорили по душам про твои реализованные проекты, ты показал что умеешь и чему хотел бы научиться, обсудили как мы пьем пиво по пятницам, поняли что фит есть и без лишней бюрократии взяли. Потому что ты подошел по софтам и 50%+ хардов, а остальные с удовольстием добьешь)
Утопия? Отнюдь! Это тот самый адвекатный подбор и наём.
Тесты, тупые вопросы про солид, алгоритмы, тупорылый систем дизайн, 10 этапов хуй пойми чего растянутое на месяц, воронки, просмотр всех, гороскопы, карты таро, цыгане, гадание на гавне и кони - всё это нахуй.
Но..
Кажется чего-то не хватает???
Неужели HRов и дефективных менеджеров? )))
Всё нормально!
Они в Неве - баланс соблюден!
Ах да, посчитаем, сколько денег мы сэкономили компании?
Тебе повезло и ты в моей команде!
А если ты работаешь у меня, то попал ты сюда одним из этих путей:
1) ты уже ранее работал со мной и показал себя не мудаком, поэтому я просто взял тебя без собеса.
2) я нашёл тебя через огромное комьюнити разрабов, девопсов тестеров и даже манагеров, сарафанное радио и 3 рукопожатия, а тот кто тебя рекомендовал, скорее всего адекват. Поэтому я провёл не сильно занудное интервью, и скорее оно касалось софтов и фита команде.
3) в оставшихся 10% случаев получилось так, что я самостоятельно нашел тебя на хх, LI и прочих площадках/дали сорсеры. Мы с командой действительно внимательно прочли твоё резюме, списались с тобой в телеге, договорились о встрече, поговорили по душам про твои реализованные проекты, ты показал что умеешь и чему хотел бы научиться, обсудили как мы пьем пиво по пятницам, поняли что фит есть и без лишней бюрократии взяли. Потому что ты подошел по софтам и 50%+ хардов, а остальные с удовольстием добьешь)
Утопия? Отнюдь! Это тот самый адвекатный подбор и наём.
Тесты, тупые вопросы про солид, алгоритмы, тупорылый систем дизайн, 10 этапов хуй пойми чего растянутое на месяц, воронки, просмотр всех, гороскопы, карты таро, цыгане, гадание на гавне и кони - всё это нахуй.
Но..
Кажется чего-то не хватает???
Неужели HRов и дефективных менеджеров? )))
Всё нормально!
Они в Неве - баланс соблюден!
Ах да, посчитаем, сколько денег мы сэкономили компании?
Forwarded from Пятиминутка PHP
Веб-сервер Angie: на PHP-приложении
Если у вас есть высоконагруженный Hello World в production - возьмите на заметку 😉
echo “Hello World”
показывает результат в 2 раза производительнее, чем nginx!Если у вас есть высоконагруженный Hello World в production - возьмите на заметку 😉