Искусственные нейронные сети (или ИНС) — это алгоритмы искусственного интеллекта, которые имитируют процессы человеческого мышления. Нейронная сеть работает аналогично человеческому мозгу: она состоит из нейронов, которые взаимодействуют друг с другом целью получения каких-либо значимых результатов. Хоть это всего лишь модели, и пока достаточно далекие от полноценного человеческого мышления, искусственные нейронные сети уже используются в системах прогнозирования, классификации и поддержки принятия решений, в оптическом распознавании символов и многих других областях.
PHP *
Скриптовый язык общего назначения
Быстрый старт на проекте с Drupal 7 без головной боли: решение проблем и работа без установки зависимостей
Ускорьте свой старт на проекте с устаревшим Drupal 7:
Узнайте как быстро стартовать работу на проекте с 7 версией Drupal и сэкономить время на настройке рабочего окружения.
Оптимизация бэкенда приложения с примерами на Symfony. Часть 1
Всех приветствую! Я планирую создать цикл статей, демонстрирующий распространенные ошибки, влияющие на производительность приложения со стороны бэкенда, а также методы их поиска и устранения. Для этого, я написал приложение, в котором специально допустил различные ошибки, чтобы по порядку найти и исправить их.
В текущей статье, рассмотрим темы - n+1, пагинация и индексы. Приятного чтения!
Описание приложения
Рассматриваемый проект - это веб-журнал посещений различных мест людьми с возможностью выгрузки и загрузки журнала в формате XML. Пользователь может загрузить журнал посещений в формате XML через форму на странице /upload, и на основе информации из файла будет заполнена база данных. Вся информация о посещениях будет отображаться на главной странице /index. Экспорт из системы осуществляется через команду, которая преобразует информацию из системы в формат XML и выгружает ее в файл (data.xml).
Работа с размерами изображений с помощью класса Uri в Joomla 4
Парадокс, конечно, но это возможно. Казалось бы, причем тут класс ядра для работы со строками url. Но именно он может помочь нам в Joomla 4. Статья о том, как автоматически определять размеры файлов изображений для атрибутов width и height с помощью ядра Joomla 4 и не грузить сервер.
Истории
Сам себе экосистема: Как я адаптировал старый смартфон под современные реалии и написал клиенты нужных мне сервисов
Время неумолимо бежит вперед: выходят новые гаджеты, постепенно заменяя старые, превращая их в тыкву или в лучшем случае, в «тапочек» для звонков. Сейчас смартфоны стали практически одинаковы во всем: дисплей на всю площадь передней панели, почти полное отсутствие аппаратных кнопок, беспроводная зарядка… Это всё, конечно, здорово, но ведь иногда так хочется взять в руки старый, но такой необычный в наше время QWERTY-смартфон и попытаться его использовать как основной, да и цены на них могут приятно удивить: БУ девайс можно купить за несколько сотен рублей (~5-10$). Одна проблема — клиенты приложений на версии Android 1.6-2.0 безбожно устарели и давно не работают. Но иногда желание воскресить старый девайс превыше потребительского качества и тут я пришёл к мысли… а почему бы не написать с нуля свои клиенты популярных приложений? ВК с музыкой, YouTube, трекинг посылок. Так я и сел писать необходимые в повседневной жизни приложения, с нуля, на голом API Android, без каких либо фреймворков (и даже AppCompat). Получилось ли у меня это? Узнаем в статье!
OpenApiGenerator — или как мы генерируем документацию для 3k сервисов API на PHP без погружения в openapi
Вначале мы делали документацию в Word, потом в Google Docs, потом в Confluence, потом была попытка написать openapi-спецификацию для API вручную, но увидев сколько всего там нужно было писать - бросили эту затею.
Нужно было вести документацию в знакомом отрасли формате для растущего (в количестве сервисов) API, и делать это максимально "подручно".
Учитесь, глупцы
Современный мир стремительно меняется и подбрасывает нам всё новые вызовы. Кажется, что ландшафт современного IT изменится кардинально. Не зря же вся мировая AI тусовка написала письмо с просьбой «немедленно приостановить» обучение систем ИИ, «более мощных, чем GPT-4».
Я провел небольшое исследование и спросил всех до кого смог дотянуться следующее:
Я пишу обзорную статью для Хабра об инструментах AI. Интересуют реальные кейсы применения в работе этих инструментов. Если ты использовал\использовала его и есть желание поделится со мной, то прошу это сделать.
Множество людей самых разных профессий поделились своим опытом и экспертизой. Я оставил самые яркие и интересные, надеюсь, вам понравится.
Ниже я публикую реальные кейсы, которые применяют здесь и сейчас.
Я пробовал GitHub Copilot, и я в восторге
GitHub Copilot позиционирует себя как «ваш помощник по написанию кода на базе ИИ». Copilot выводит машинное обучение на совершенно новый уровень — он интегрируется с IDE по вашему выбору (ну, если конечно вы выберете что-нибудь из Jetbrains, VS Code или Neovim) и предоставляет в ваше распоряжение мощную систему AI-driven кода, обученную на миллиардах строк опенсорсных проектов на GitHub на дюжине с лишним языков.
Речь идет не о более умной аналитической версии существующего функционала автодополнения (auto-complete) ваших IDE. Copilot способен на интеллектуальное контекстно-зависимое дополнение всего: от отдельных строчек кода до целых функций как на основе кода, который вы только что написали, так и по комментариям на английском языке, описывающим то, что вы хотите получить.
Как с помощью AI-интеграций повысить популярность проекта
Рассказываем о том, как внедряли новомодные AI-инструменты в проект. Как это повлияло на его популярность и что за этим последовало — читайте в статье.
Технические особенности проекта: фреймворк — Laravel, БД — PostgreSQL, кэш/очереди — Redis, архитектура — основной кластер DigitalOcean Kubernetes и графический кластер GKE.
Когда переподключения ускоряют работу по сети. Разбираемся с быстродействием TCP-сокетов
При написании предыдущей статьи я наткнулся на странный эффект с производительностью TCP-сокетов. При попытке отправить пачку запросов через сокет оказалось, что выгоднее заново устанавливать TCP-соединение после каждого запроса, а не переиспользовать его. Исследованию причин этого эффекта (а заодно и поиску способов от него избавиться) и посвящена эта статья.
Пишем свой мессенджер на PHP
Пишем свой Мессенджер на PHP через WebSocket. Так и для Начинающих так и далёких от IT людей.
Тут вы узнайте как установить PHP, WebSocket и в чём его различие с AJAX (http) запросами как написать сервер и клиент Мессенджера полностью.
Делаем донаты для telegram бота, через интеграцию ЮKassa для самозанятых
В статье-инструкции расскажу, как начал монетизировать telegram бота, который присылает уведомления о необходимости продлить домен, тем самым делает напоминание, чтобы пользователь продлил домен во время и не потерял его. За 2 часа, добавил кнопку доната и настроил интеграцию с ЮKassa. Через 1 день уже начал принимать донаты.
ЦУЦ — или как свести 15 тысяч товаров от разных поставщиков на коленке
По мере роста бизнеса и расширения ассортимента товаров, компания столкнулась с проблемой остатков товаров и актуальными ценами. Если в начале моей работы, количество товара на сайте было в районе 3 тысяч, то на текущий момент позиций более 15 тысяч. Обновлять руками такое количество позиций нереально. С чего я начал работу по автоматизации цен и с какими трудностями столкнулся читайте в моей публикации.
Как и зачем тестировать код на бэкенде: рекомендации для новичков
Расскажем, как автоматизировать тесты так, чтобы не тратить на них кучу времени, быстрее находить баги и не повторять их. А ещё поделимся секретом идеального теста. Спойлер: его не существует, но решение есть.
Также разберём базу: виды тестов, их отличия друг от друга, плюсы и минусы. Если вы только начинаете разбираться в тестировании, вам это точно пригодится.
Апгрейд и рефакторинг PHP-проектов — теперь это просто с Rector
Привет! В статье поделюсь, как инструмент автоматического рефакторинга Rector помогает обуздать легаси и автоматизировать обновление PHP проектов и пакетов, чтобы процесс проходил эффективнее и малой кровью.
Статья написана на основе доклада с PHP Russia 2022.
Как разминировать свой код на PHP (и не только)?
«Мины» в исходном коде — это не только уязвимости, но и прочие дефекты безопасности, которые так или иначе ухудшают качество софта. Какими путями «минируется» ваш код и какие типы «мин» наиболее актуальные? Поговорим об этом в контексте веб-программирования и PHP.
О «минах» в коде расскажет Илья Поляков, руководитель отдела анализа кода Angara Security. Илья поделится какими инструментами разминировать код и какие уязвимости и дефекты безопасности можно найти максимально быстро и дешево.
«Давайте перепишем всё с нуля». Почему такой подход интереснее программистам, а не бизнесу
Привет! Меня зовут Дмитрий Панькин, я основатель компании, которая создает сложные ИТ-продукты для клиентов: сайты маркетплейсов, B2B-порталы, личные кабинеты, приложения, кастомные CRM- и ERP-системы.
Очень частый запрос от наших заказчиков — переписать существующую в их компании ИТ-систему, потому что она устарела. В этом случае есть два пути: написать ее с нуля или модернизировать то, что есть. Обычно программисты советуют выкинуть весь старый код и написать всё по-новому, но это может стать критической ошибкой для бизнеса.
В этой статье я расскажу, почему чаще всего не стоит строить ИТ-систему с нуля и лучше поэтапно модернизировать то, что есть. А также объясню, из-за чего большинство разработчиков будут доказывать вам обратное 😈
Надеюсь, мой гайд поможет менеджерам и руководителям компаний понять, что делать с проектом, который нужно обновить.
Компилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет? (upd)
У многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли.
Однако времена меняются, и люди начали осознавать свои ошибки, переходя, скажем, на ООП.
Чтобы поностальгировать и продемонстрировать нового Франкенштейна, мы соберем полноценное консольное exe-приложение на PHP.
Статический анализ. PHPStan
Цель статьи - помочь разработчикам которые много слышали про статический анализ, но пока что так и не поняли что это такое и с чем его едят.
Статический анализ
Анализ программного обеспечения, производимый без реального выполнения исследуемых программ, процесс выявления ошибок и недочетов в исходном коде программ. Список языков для которых существуют статические анализаторы кода достаточно велик - Си, Си++, C#, Java, Ada, Fortran, Perl, Ruby и т.д. Компиляторы различных языков программирования во время своей работы так же запускают статические анализаторы (как правило усеченные версии) которые находят ошибки. Т.о. использование статичского анализа, в поисках ошибок, приравнивает (а может даже и превосходит, все зависит от используемого анализатора и стиле написания приложения) PHP к компилируемым языкам программирования.
Сообщество PHP прикладывает значительные усилия в сторону развития статического анализа, так типы mixed и never были добавлены для лучшего анализа программами статического анализа.
Необходимость статического анализа
Статический анализ позволяет найти уйму различных проблем в коде, начиная от неправильного использования конструкций языка, заканчивая опечатками. При проведении code review позволяет сосредоточиться на просмотре реализации логики программы, а не на поиске синтаксических ошибок, опечаток, ошибок в данных, мертвый код и т.п.
DTO в языке PHP: примеры для начинающих
DISCLAIMER
Друзья, читая этот текст, вы мало того, что общаетесь со вселенским разумом, но и принимаете участие в социальном эксперименте. ChatGPT пытается рассуждать о DTO в языке PHP. Пока ему сложно, с каждым вашим комментарием, замечанием, он пытается улучшить свой ответ, получается не всегда хорошо. Мы со своей стороны его почти не редактируем. Просто просим переформулировать какие-то фрагменты, дополнить свой ответ. Скоро опубликуем статью в ВАКовском журнале об этом эксперименте. Ссылку приложим в комментариях.
DTO (Data Transfer Object) — это шаблон проектирования, который используется для передачи данных между слоями приложения. DTO представляет собой объект, который содержит данные, необходимые для выполнения операции или запроса в приложении.
Вклад авторов
-
pronskiy 10649.4 -
SamDark 1519.8 -
AloneCoder 987.8 -
youROCK 823.0 -
AntonShevchuk 815.0 -
spasibo_kep 731.0 -
AlexLeonov 620.0 -
olegbunin 560.0 -
zapimir 559.0 -
alexzfort 558.0