Тем, кто ещё не учил язык и хочет начать осваивать его без страха.
Тем, кто уже освоил базу и хочет двигаться дальше.
Тем, кому нужно раскрепоститься и наконец-то заговорить.
Что вас ждёт:
На курсах студентов сопровождает целая команда специалистов. Они создают для вас языковую среду и поддерживающую атмосферу, чтобы вы не просто учили, а достигали своих целей.
Обработка HTTP ответа в Joomla 6+. Изменения по сравнению с Joomla 3 - Joomla 5.
В Joomla для выполнения внешних запросов из PHP к сторонним API используется класс Joomla\Http\Http напрямую или же Joomla\Http\HttpFactory, который возвращает для работы преднастроенный по умолчанию класс Http. О работе с HTTP-запросами подробно рассказывалось в статье 2021 года Создание внешних запросов с использованием HttpFactory (Joomla) (на Хабре), (на сайте автора). Некоторые изменения касаются работы с ответами на запросы. Например, наш запрос:
use Joomla\Http\HttpFactory;
$http = (new HttpFactory)->getHttp($options, ['curl', 'stream']);
$response = $http->get('https://any-url.ru/api/any/endpoint');
Раньше можно было получить код ответа или тело ответа как свойство $response - $response->code или $response->body. Однако, Joomla, начиная с Joomla 4 во многом переходит на стандарты PSR. В частности для работы с HTTP-ответами - на PSR-7. Также хорошая статья на Хабре о PSR-7: PSR-7 в примерах.
Прямое обращение к свойствам code, headers, body объявлено устаревшим в Joomla 6.0.0 и обещают удалить в Joomla 7.0.0.
Вместо этого нужно работать с HTTP-ответом по стандартам PSR-7.
Код ответа. Было $response->getContents(). Стало $response->getStatusCode().
Заголовки ответа.
Было $response->headers. Стало $response->getHeaders().
Тело ответа.
Было $response->body. Стало (string)$response->getContents().
В тело ответа теперь приходит не строка, а поток - объект класса Laminas\Diactoros\Stream. Поэтому его нужно привести к строке (если это json, к примеру): (string)$response->getContents(). Чаще всего в коде Joomla встречается именно такой вариант. Однако, есть и вариант с перемещением указателя чтения на начало потока:
// Получили ответ в виде потока
$stream = $response->getBody();
// "перемотали" на начало
$stream->rewind();
// Получили строковый ответ
$json = $stream->getContents();
Samsung запустил круглосуточную рекламу на холодильниках. Чтобы отключить назойливые объявления, нужно каждый месяц платить по $16 (1200 рублей). Стоимость такого умного холодильника с экраном составляет от 250 тысяч рублей.
Я тут вчера и сегодня занятным образом наступил на грабли. У меня есть канал на Дзене с которого я реплицирую материалы На Хабр. И когда я там пишу статью, то вставляю нормальные ссылки- Википедия, Хабр, телеграмм и тп. Но, оказывается Дзен конвертирует эти ссылки в свой внутренний формат, добавляя https://dzen.ru/away?to= (и дальше уже нормальная ссылка). Зачем он это делает догадаться не сложно - безопасность внешних переходов и сбор статистики трафика.
Потом я все это дело (не глядя) копировал на Хабр и публиковал. И получал массу гневных откликов от читателей. О том что, в статье много слов пропущено. Выглядит это примерно вот так.
А причина в том, что на стороне читателя AdBlock видит это трансформированную Дзеном ссылку и беспощадно "выкусывает" ее. И будь я на его месте - я бы точно также делал.
В-общем, в итоге я поправил ссылки в статьях на Хабре - теперь вроде бы все работает.
Но, возможно кому то еще будет полезно. Уверен, что я не единственный, кто наступил на эти грабли. И не только Дзен этими трансформациями грешит...
Минималистичные healthcheck-утилиты для Docker-контейнеров
Однажды я был маленький, и задавался вопросом - вот собираешь ты свое приложение, нежно помещаешь его в Docker-образ, заботишься о том чтоб и зависимостей было поменьше, и скомпилируешь его так чтоб итоговая каша из байт было погуще, но покомпактее; используешь scratch, статическую линковку, но чтоб "из коробки" был еще и healthcheck - приходится или писать свой мальний чекер каждый раз, или тянуть статичкски слинкованный curl/wget, если приложение работает как http сервер.
Потому что без healthcheck жизнь ну совсем не торт, даже при локальной разработке, когда запускаешь уже готовые образы, ставишь их в зависимость для других (в том же docker compose) - без него это все работать не будет так, как тебе хочется - демоны будут стучаться друг к другу без уважения и учета, готово оно в этому или нет.
Так родился microcheck - набор крошечных статически скомпилированных бинарников, созданных специально для healthcheck-ов. Они не имеют зависимостей от динамических библиотек, написаны на C, и работают даже в scratch и distroless образах, да умеют корректно возвращать exit-коды, понятные Docker’у (0 - здоров, 1 - приходи завтра).
В комплекте:
httpcheck — проверка HTTP-эндпоинтов (~75 KB)
httpscheck — то же самое, но с TLS и автоопределением протокола (~500 KB)
portcheck — проверка TCP/UDP-портов (~70 KB)
У вас в продакшене наверняка Kubernetes, и все проверки делает kubelet - скорее всего, вам не нужно ничего менять. Но если вы запускаете контейнеры в «голом» Docker’е или других рантаймах без встроенных healthcheck-ов - такие инструменты могут здорово упростить жизнь.
Разница по размеру в десяток мегабайт против семи десятков килобайт, а в качестве бонуса - не нужен shell-процесс, всё работает напрямую и быстро (а еще и в переменные окружения умет).
Поддерживаются все популярные архитектуры (x86_64, ARM, ppc64le, s390x и др.), есть готовые образы в GitHub Container Registry и Docker Hub.
Как масштабироваться в Kubernetes автоматически и экономически выгодно? Расскажем через 15 минут
Подключайтесь к вебинару сегодня в 16:00 мск. Покажем, как Karpenter в кластерах Managed Kubernetes помогает оптимизировать затраты на инфраструктуру, и объясним, как использовать этот инструмент. Присоединяйтесь!
В программе:
✔️ Обзор возможностей Karpenter и его сравнение с Cluster Autoscaler;
✔️ Воркшоп по настройке решения в кластерах Managed Kubernetes;
✔️ Кейсы применения Karpenter. Оптимизация GPU-инфраструктуры с сервисом.
В конце ответим на вопросы — задавайте их в форме регистрации. На вебинаре особенно полезно будет DevOps-инженерам, техлидам и СТО, системным администраторам и архитекторам.
Многоуровневая группировка участников на sequence-диаграмме (в plantUML)
Последнее время часто замечаю, что многие системные аналитики не выделяют на sequence диаграмме (в plantUML) границы Систем и сервисов, а также не выделяют внешние сервисы. В результате, открывая чужие Sequence, приходится тратить много времени чтобы понять, что-же к чему относится. Поэтому сейчас расскажу как это сделать быстро и без воды
Чтобы создать вложенные группы — группы внутри групп, используйте Архитектуру teoz, путем ее подключения в коде: c помощью строки !pragma teoz true, добавляемой сразу после @startuml после чего box и end box можно вкладывать друг в друга генерируя несколько уровней вложенности:
Код диаграммы:
@startuml
!pragma teoz true
box "Группы" #LightBlue
box "Первая подгруппа"
participant Bob
end box
box "Вторая подгруппа"
participant Alice
participant John
end box
end box
box "Внешняя группа" #lightgreen
participant Lector
box "Слушатели первой подгруппы"
participant Marina
end box
end box
Bob -> Alice : hello
Alice -> John : hello
John -> Marina: Hello
Lector -> Marina: Hello
@enduml
Если Вам было полезно и интересно, поддержите кармой или комментарием ---- Также я веду TG-канал: @sa_chulan
Save the date: встречаемся 27 ноября на Wildberries & Russ Golang Meetup!
27 ноября в 19:00 приглашаем на Golang Meetup, где поговорим о том, как строить надёжную бизнес-логику, управлять памятью без потерь производительности и проектировать масштабируемую событийную архитектуру.
В программе — три доклада от инженеров Wildberries & Russ, которые решают эти задачи в продакшене каждый день: про иерархические стейт-машины в Go, реальные кейсы оптимизации GC и указателей, а также опыт создания единой платформы событий Databus.
🎤 Доклады:
Иерархические стейт-машины: инструмент для организации бизнес-логики | Сергей Шлянин, Go-разработчик в WB Bank.
1000 в 1: единая платформа для событий Databus | Виктор Такташов, Go-разработчик в платформе Trust & Safety.
Указатели в Go: от аллокации до GC — разбираем ошибки производительности на реальных примерах | Александр Бруяко, Unit Lead в сервисах Медиа.
После докладов — афтепати и нетворкинг с разработчиками Wildberries & Russ.
Привет! Мы на Хабр Карьере собираем сотни онлайн-курсов по разным направлениям и каждую неделю делаем подборки для тех, кто хочет освоить новую профессию или просто прокачать навыки.
На этот раз собрали подборку для тех, кто хочет развиваться в маркетинге. Вообще все курсы по специализации можно посмотреть здесь, а ниже — ссылки на обучение ключевым направлениям:
— Интернет-маркетинг. SEO, контекстная реклама, email-маркетинг, аналитика — всё, что нужно, чтобы продвигать продукты онлайн, привлекать аудиторию и повышать конверсии.
— SMM. Социальные сети, контент, рекламные кампании и аналитика. Навыки для продвижения бренда и взаимодействия с аудиторией.
— Продуктовый маркетинг. Стратегия продукта, позиционирование и работа с целевой аудиторией. Всё для того, чтобы продукт был заметным и востребованным на рынке.
— Бренд-менеджмент. Создание и развитие бренда, управление имиджем и маркетинговыми коммуникациями. Навыки для формирования сильного бренда.
— Контент-маркетинг. Создание полезного, вовлекающего и продающего контента для сайтов, соцсетей, блогов и рассылок. Важно для SEO, SMM и стратегии бренда.
А чтобы вы могли проверить качество курсов, мы собираем отзывы тех, кто уже прошел обучение — так что читайте и выбирайте лучшее для себя.
Termit с нуля: как развернуть и настроить платформу виртуализации рабочих столов и приложений
Привет, Хабр! Мы не раз отмечали, что одна из ключевых особенностей нашей платформы VDI и терминального доступа Termit — простота запуска. 27 ноября мы проведем live-tutorial о старте работы с Termit, где покажем пошаговый процесс развертывания платформы.
Вместо нескольких часов изучения документации вы сможете посмотреть один вебинар, на котором системный инженер Orion soft в прямом эфире проведет ручное и автоматизированное развертывание платформы виртуализации рабочих столов (VDI) и приложений.
На вебинаре:
Покажем пошаговый «рецепт» развертывания и настройки Termit за 30 минут
Поделимся техническими лайфхаками
Ответим на вопросы о начале работы с Termit
Только у участников вебинара будет возможность получить специальный CookBook с подробной инструкцией по развертыванию Termit, а также шаблоны для автоматического развертывания.
Монетный двор США официально завершил производство одноцентовых монет (¢ - пенни), которые чеканились на протяжении 232 лет. При чеканке последних пенни присутствовали министр финансов США Скотт Бессент и казначей Брендон Бич, которые лично нажимали на кнопку печатного пресса.
Две одноцентовые монеты, которые были выпущены последними, планируется выставить на аукцион. В обращении по-прежнему останутся те монеты, которые были выпущены ранее. По оценкам Американской банковской ассоциации (ABA), в обращении остаётся 250 млрд таких монет. Брендон Бич сообщил, что теперь Монетный двор будет чеканить только коллекционные монеты в 1 цент и только в ограниченном количестве, в оборот они поступать не будут.
О планах прекращения производства одноцентовых монет администрация Дональда Трампа сообщила полгода назад, аргументировав это тем, что чеканка каждой такой монеты обходится в ¢3,69 (десять лет назад она составляла ¢1,42). По оценкам Монетного двора, в 2024 финансовом году он потерял $85,3 млн на производстве пенни. Власти полагают, что прекращение производства позволит экономить около $56 млн ежегодно.
Первая монета в 1 цент была отчеканена в 1787 году, и изображение на ней придумал один из отцов-основателей США Бенджамин Франклин. Официально в обращение первые пенни поступили в 1793 году, и тогда на одну монету можно было купить печенье, свечку или конфеты на развес.
На первом пенни изображалась женщина с развевающимися волосами, символизирующая свободу, монета была изготовлена полностью из меди. С тех пор дизайн и состав пенни несколько раз меняли. Например, в 1909 году Авраам Линкольн стал первым президентом, изображённым на американских монетах, в честь 100-летия со дня его рождения. Современные пенни состоят из меди и цинка.
Представьте, у вас есть целая компания с несколькими направлениями: техотдел и отдел продаж. Вы хотите, чтобы рассылки и запросы приходили на отдельные почты для каждой команды, чтобы проще управлять и отслеживать их.
И сейчас вы можете создать почту на поддоменах, например:
В начале недели проходила двухдневная конференция TeamLead Conf 2025. Хотелось бы присутствовать оффлайн… Нетворкинг, все дела, но вы цены видели?..
Ладно вернемся к конфе. Была бесплатная трансляция Главного зала оба дня. Огромное спасибо за такую возможность организаторам конференции. Смотрел краем глаза несколько докладов.
Вообще никогда не любил онлайн формат таких мероприятий. Не знаю, атмосферы что ль не хватает. Или может не попадалось достойных докладов, но в этот раз мне прямо очень зашло. Начну с того, что сама конфа была какая-то тимлидоцентричная что ли… То есть тебя не учили работать и не тыкали носом в какие-то ошибки. На всех докладах, на которых я был рассматривали тимлида, как личность, с углубленным вниманием на софт скилы и душевную организацию. Особенно мне понравился упор на душевную организацию.
Ну погнали, расскажу о докладах, которые мне понравились больше всего.
Первым выступал Руслан Агамалиев с темой о тайм-менеджменте здорового человека. Если честно, если бы не он, то я бы, наверное, дальше не смотрел. Руслана было очень приятно слушать, как спикера. Очень живое выступление с элементами общения с залом. В целом по содержанию вроде ничего сверх нового, но… Он рассказал об этой интересной технике. Решение прямо на поверхности, хотя сам я об этом почему-то не подумал. Если у вас большое количество созвонов, а главное, что часть из них бесполезные, то можно провести запись своих звонков с анализом их эффективности и продуктивности. А затем уменьшить их количество с помощью этой аналитике на руках. Рабочая схема? Как по-мне, интересная точно.
Второго спикера, которого я бы хотел отметить, это Никита Ульшин с докладом о демотивации людей. Если коротко, то тимлидер - это реально лицо команды. Твое мировоззрение, мотивация и даже настроение всегда передается команде. Тяжело мотивировать своих подчиненных, если ты сам не веришь в успех. В общем, если ты чего-то хочешь от своих сотрудников, но у тебя не получается, то первым делом необходимо начать работать над собой.
Ну лучиком солнца мне в душу запал Эрик Бурыгин. Парень - профессиональный выгоральщик. Не нравится то, чем ты занимаешься - выгораешь. Нашел работу, которая тебе нравится, и начинаешь в нее упарываться - выгораешь. Начинаешь меньше работать и начинаешь упарываться в спорт - выгораешь. Где-то в середине его доклада, я начал думать, что у спикера просто нет семьи, раз он ни разу не сказал о балансе работы и семейной жизни. А потом он затронул и эту тему. Если ты максимально упарываешься в работу, спорт, увлечения, забывая о семье и быте - выгорает твоя семья. А если начинает рушиться твоя семья, то ты снова выгораешь. Мораль данного доклада в том, что всегда нужно ловить баланс. При чем нет универсальной формулы этого баланса. Над ним всегда нужно работать и рефлексировать.
Подводя итог, хочется отметить, что онлайн формат может быть увлекательным, если подобрать реально крутых спикеров с реально интересными темами.
Жаль конечно, что не смог участвовать в оффлайне. Об этой движухе я узнал за пару недель до ее начала. В этот момент билеты уже были неподъемными, а если еще сюда суммировать трансфер из другого города и проживание, то в целом можно и на море на недельку сгонять.
Поддерживать актуальную версию PHP важно не только ради новых функций, но и ради безопасности и производительности сайтов.
В базе знаний Рег.облака показали, как установить PHP через терминал или панель ispmanager, проверить текущую версию, переключиться между релизами и устранить проблемы, если скрипты перестали выполняться после обновления.
Как нагрузочное тестирование на бою помогает платёжному сервису готовиться к сезону распродаж
День холостяка, Чёрная пятница, предновогодние распродажи — для платёжного сервиса ЮKassa это не просто даты в календаре, а особенно важное время. Тех, кто одновременно нажимает на кнопку «Оплатить» в онлайн-магазинах, становится в разы больше, и за считанные минуты нагрузка на инфраструктуру нашего сервиса многократно увеличивается.
Главный инструмент, который помогает нам успешно справиться с повышенной нагрузкой на сервис, — это определённо нагрузочное тестирование, которое мы проводим не только на тесте, но и на бою.
Для тестов на продакшене мы используем контролируемое нагрузочное тестирование, при котором синтетические платежи генерируются через боевые API и проходят полный цикл обработки: магазин → наш шлюз → банк → маркетплейс → платёжная система. Весь тестовый трафик маркируется и не подлежит биллингу — это гарантия отсутствия финансовых рисков. Нагрузка наращивается по двум сценариям — сначала ступенчато (step load), а затем резкими краткосрочными пиками (bursts), — чтобы достоверно сымитировать ситуацию в момент старта распродажи.
Таким образом, нагрузочные тесты позволяют проверить систему со всех сторон и предотвратить возможные сбои, чтобы чувствовать себя уверенными в пик нагрузок.
«Ростелеком» приглашает всех желающих 13 ноября в 11:00 МСК на «Проектную исповедь», где профильные эксперты и представители IT-команды компании покажут решения ИТ-дилемм. В 2025 году это онлайн-мероприятие пройдёт в формате интерактивного сериала-квеста «Разделение» (Severance) и будет посвящена поиску решений в ситуациях, где нет единственно верного ответа.
Конференция «Проектная исповедь» даёт возможность участникам честно разобраться в неоднозначных рабочих ситуациях на примере реальных кейсов и вместе найти выход. Участие бесплатное, но нужно зарегистрироваться на официальном сайте проекта.
«С 2019 года „Проектная исповедь“ является нашей флагманской конференцией, посвящённой тематике проектного менеджмента и управлению командами ИТ‑разработки. Каждый год совместно с партнёрами и внешними спикерами мы подбираем кейсы, с которыми сталкиваются ИТ‑специалисты, руководители проектов и CTO на практике. Для любого лидера, ответственного за проект или продукт, каждый новый запуск — абсолютно уникальный опыт, в процессе которого необходимо выходить за рамки стандартных правил и методологий. Однако у тех, кто уже прошел этот путь, есть ценные ориентиры. Мы помогаем специалистам и начинающим инженерам обменяться подобными практиками, чтобы каждый нашел свой подход к успешному решению задач», — пояснил заместитель президента — председателя правления «Ростелекома» Дарий Халитов.
Темы «Проектной исповеди 2025»:
«Своя игра» в ИТ‑индустрии.
Исповедь контрол‑фрика: как подчинить тревожность и использовать её в работе.
Создать из хаоса порядок, или как сверить несверяемое.
GR в ИТ: инструкция по применению.
Промолчать ради гармонии или говорить о проблемах.
Искусство управлять невозможным: баланс контроля и вдохновения.
Мосты вместо стен: как соединить работу и жизнь, не сгорев на границе.
Что на самом деле убивает ИТ‑проекты.
Кастомизировать продукт под каждого или делать универсальное решение?
Активация ключей. Сможем ли мы выйти из лабиринта проектных дилемм — и больше никогда сюда не попадать? Узнаем в финале Исповеди.
Valve анонсировала сразу три устройства — всё на базе SteamOS, продажи стартуют в начале 2026 года. Цены пока не раскрывают:
Steam Frame: это полностью автономная VR-гарнитура весом 440 грамм, которая не требует подключения к ПК или Steam Deck. Здесь можно играть, писать код, смотреть фильмы в браузере с облачными сохранениями. Разрешение на линзу — 2160×2160 пикселей при частоте 144 Гц.
Steam Machine: мини-ПК, мощнее PS5 и в 6 раз производительнее Steam Deck. На базе процессора AMD Zen 4 и видеокарты AMD RDNA 3 28CU с 8 ГБ памяти, с 16 ГБ ОЗУ и возможностью запускать игры в 4K/60 FPS. Корпус сделали в стиле Xbox. + Можно кастомизировать внешний вид.
Steam Controller: гибрид геймпадов Xbox и PlayStation, но с сенсорными панелями под стиками, как у Steam Deck, для точной стрельбы в шутерах.
Предприниматель Йосеф Айеле из Эфиопии и основатель фонда LAVA пожаловался, что его рабочий аккаунт в Telegram был заблокирован без причины. После чего он объявил в соцсети X, что прекращает пользоваться этим мессенджером и переводит свои коммуникации в Signal и электронную почту. В ответ на это основатель Telegram Павел Дуров лично извинился за инцидент с блокировкой. Дуров пояснил, что аккаунт Айеле был разблокирован, а «урок извлечён».
В новом выпуске подкаста Mobile Developer об этом рассказывает Данила Горячкин, iOS-инженер в Авито. Даня не понаслышке знаком с потребностью в мире Wi-Fi и развитой мобильной сети создать приложение, которое может работать без интернета, — а потому ему точно есть, чем поделиться.
Подписывайтесь на канал AvitoTech в Telegram, там мы рассказываем больше о профессиональном опыте наших инженеров, проектах и работе в Авито, а также анонсируем митапы и статьи.