Search
Write a publication
Pull to refresh
4
0
Денис Рябов @mobi

Пользователь

Send message

Google пытается оптимизировать формат JPEG, увеличив компрессию на 35%. Что это за технология?

Reading time4 min
Views15K

Формат изображений JPEG появился ещё в конце прошлого века, причём актуальность он не теряет, а, наоборот, набирает. Казалось бы, что можно изменить в технологии, которой столько лет? В Google посчитали, что сейчас самое время для оптимизации формата, а именно повышения эффективности компрессии. Что предложили в Google и как работает новая технология?

Читать далее

Используем поля Joomla для фильтрации материалов

Reading time3 min
Views919

В данном руководстве рассмотрим, как можно кастомизировать вывод настраиваемых полей для фильтрации материалов Joomla через переопределение шаблона.

Читать далее

Desert Racer: Первая игра, разработанная исключительно на CSS с возможностью управления свайпом

Level of difficultyMedium
Reading time11 min
Views11K

Я разработал игру Desert Racer, чтобы показать уникальные и инновационные приемы, которые используют только CSS, включая функционал свайпа и детектирования столкновений, выполненные исключительно средствами CSS. На мой взгляд, это первые в своем роде решения. Вы вольны бросить вызов этому утверждению. В данной статье мы рассмотрим упомянутые техники и обсудим общие этапы создания игры со свайп-управлением.

Идеален ли CSS для этой задачи? На данный момент, возможно, нет. Однако CSS начинает заменять некоторые функции обработчиков событий JavaScript. Я надеюсь, что эта статья внесет вклад в продвижение к этой цели. В конце концов, как творческому человеку, мне нравится использовать неподходящие инструменты для создания чего-то, что считается невозможным — это вызов, который я не могу игнорировать. У меня было предчувствие, что это должно работать, и оно оправдалось.

Эта статья предложит вам интерактивный и, надеюсь, вдохновляющий опыт. Приятного прочтения! (По крайней мере, вы можете прокрутить вниз, чтобы посмотреть крутые GIF-анимации)

Читать далее

Какой будет GPT-2030?

Level of difficultyHard
Reading time31 min
Views7.1K

Это перевод статьи Якоба Стейнхардта, где он описывает и обосновывает свои оценки того, как будут выглядеть языковые модели в 2030 году. Статья подводит базу для ещё двух, в которых он описывает возможные при наличии подобных систем катастрофические сценарии. Их переводы тоже скоро будут выложены.

Способность GPT4 программировать, творчески генерировать идеи, писать письма и делать немало чего ещё много кого удивила. В машинном обучении она в этом не одинока: до неё меня, как и многих способных прогнозистов удивили математические способности Minerva.

Как меньше удивляться при появлении новых ИИ‑разработок? Наш мозг часто совершает прогноз нулевого порядка: смотрит на нынешнее положение дел и добавляет усовершенствования, которые «кажутся осмысленными». Но оценка, что именно «кажется осмысленным», подвержена когнитивным искажениям и будет недооценивать прогресс в столь быстро развивающейся области как машинное обучение. Более эффективный подход — прогнозирование первого порядка: численно оценить историческую скорость прогресса и экстраполировать её вперёд, обращая при этом внимание на возможные причины замедления или ускорения.1

В этом посте я использую этот подход для прогнозирования свойств больших предобученных ИИ в 2030 году. Я дальше буду говорить о «GPT2030». Это гипотетическая система, которая обладает способностями, вычислительными ресурсами и скоростью вывода, которые получатся, если экстраполировать большие языковые модели на 2030 год (но эта система скорее всего будет обучена и в других модальностях, таких как изображения). Чтобы предсказать свойства GPT2030, я рассмотрел много источников информации, включая эмпирические законы масштабирования, прогнозы о будущих вычислительных мощностях и будущей доступности данных, скорость улучшения по конкретным метрикам, скорость вывода нынешних систем и возможные будущие улучшения параллелизма.

Читать далее

Почему соединения WPA3 разрываются через 11 часов

Reading time5 min
Views13K
В 2018 году началась сертификация первых устройств Wi-Fi с поддержкой нового протокола безопасности WPA3, а в последующие года WPA3 стал привычной функцией для всего нового оборудования, включая маршрутизаторы, одноплатники вроде Raspberry Pi и т. д.

Но иногда технология вызывает совершенно неожиданные и необъяснимые сбои. Некоторые пользователи начали сообщать о странном баге, когда беспроводные соединения WPA3 разрываются через 11 часов по непонятной причине.
Читать дальше →

Исследование: какую долю занимает Joomla среди ru-сайтов в 2024 году?

Reading time9 min
Views5.5K

В процессе работы как с самой Joomla, так и вместе с Joomla-сообществом периодически возникали вопросы о том "какую долю рынка CMS" занимает Joomla, каким общедоступным цифрам можно доверять и насколько они точны. Также, кроме уточнения самой доли рынка хотелось получить статистику по используемым версиям Joomla.

Ну и весомым фактором было желание попробовать сделать с Joomla что-то новое, выходящее за рамки обычной рабочей рутины - сделать собственное исследование ?

Читать далее

Битва фреймворков: сравнение высокопроизводительных HTTP-библиотек

Reading time5 min
Views15K

Мир веб-разработки предлагает бесконечное количество вариантов HTTP-фреймворков для разных языков программирования. Но как разработчикам понять, какие из них обеспечивают действительно высокую производительность? Под катом команда блога CodeReliant* проводит прямое сравнение некоторых из лучших претендентов на быстродействие. Рассматривает популярные варианты на Javascript/Bun, Java, C#, Go и Rust, проводит бенчмаркинг, оценивает их пропускную способность и время отклика при тестировании.

Выбранные для сравнительного анализа фреймворки имеют репутацию высокопроизводительных, — но посмотрим, как это понятие реализуется в разных стеках.

*Обращаем ваше внимание, что позиция автора может не всегда совпадать с мнением МойОфис.

Читать далее

Воплощённые типы

Level of difficultyMedium
Reading time5 min
Views2.2K

Всем привет!

Хочу представить вам подход к определению типов, позволяющий сделать ваш код чище и понятнее. Я называю это "Воплощённые типы"("Embodied types").

Воплощённый тип - тип, для которого определена переменная с одинаковым именем и в которой содержится объект с утилитами для этого типа.

Читать далее

Обнаружение SSH-туннелей по размеру пакетов

Level of difficultyMedium
Reading time8 min
Views23K

Иллюстрация из книги «Справочник киберсантехника»

Протокол SSH — очень мощный инструмент, который используется для удалённой консоли или передачи файлов (scp, sftp). Есть менее известная функция перенаправления портов. Такие SSH-туннели используются для пробития файрволов и хорошо скрываются от обнаружения стандартными средствами мониторинга типа Trisul, Zeek (ранее был известен как Bro), Suricata и Snort. Поэтому для их обнаружения в корпоративной сети используются другие методы.
Читать дальше →

Исследование пользовательского опыта с ChatGPT: мои лайфхаки, ошибки и выводы

Level of difficultyEasy
Reading time9 min
Views8.1K

В команде исследований Lamoda Tech мы проводим интервью с пользователями: выясняем их потребности и узнаем правду о том, как они используют наши продукты. 

Такие задачи требуют глубокой эмпатии к людям, понимания их психологии и мотивации. Поэтому мне было любопытно, получится ли встроить в нашу работу AI, не потеряв ее ценность и смысл. 

Скажу сразу — далеко не все получилось с первого раза. Но в результате эксперимента я выстроил сценарий исследования и обработал 24 интервью по фреймворку Jobs to be Done, сэкономив целых 6 дней работы!  

В этой статье не будет четкой инструкции, как сделать идеальное исследование силами ChatGPT4. Вряд ли такая инструкция вообще возможна. Я расскажу про свой опыт — местами удачный, местами не очень. Покажу, где ошибался и какие выводы сделал. Надеюсь, это вдохновит вас попробовать искусственный интеллект в своих задачах хотя бы из любопытства.

В общем, я дерзнул, и вот что понял.

Читать далее

Добавление своих команд для CLI в Joomla 4 и Joomla 5 с помощью плагина

Reading time18 min
Views1.2K

В Joomla, как и во многих других PHP фреймворках и движках, уже довольно давно (с версий 1.7.x) существует возможность работы с помощью CLI. С его помощью обычно решают те задачи, решение которых в веб-интерфейсе Joomla нецелесообразно из-за возможных ограничений веб-сервера - так называемые "тяжелые" задачи. Это может быть миграция большого количества контента со старой версии Joomla на новую, синхронизация данных с внешним источником по API (синхронизация цен и остатков, выгрузка заказов), работа с файлами и каталогами, выполнение пакетных заданий на больших объёмах и т.д. - всё то, что может занимать много времени и ресурсов сервера.

Как добавить свою команду в CLI интерфейс Joomla расскажет эта статья.

Читать далее

10 sim-карт на одного «корпоративного» гражданина России. Негласный запрет уже вводят на Госуслугах?

Level of difficultyEasy
Reading time2 min
Views15K

Информация из рассылки одного мобильного оператора связи:

«Подтверждение номеров пользователей может быть ограничено: на одни персональные данные подтверждение не более 10 номеров у всех операторов связи (с учетом ранее подтвержденных). Ограничение будет установлено на стороне Госуслуг».

Разбираемся, что это значит для пользователей сотовой связи в России.

Читать далее

Joomla на FOSDEM 2024: запуск Альянса открытых веб-сайтов

Reading time5 min
Views705

FOSDEM 2024 - масштабная конференция разработчиков ПО с открытым исходным кодом, насчитывающая тысячи участников и более шестидесяти конференц-залов. Президент Joomla Crystal Dionysopoulos присутствовала на этом мероприятии. Представители популярных платформ Joomla, Drupal, WordPress и Typo3 объединили усилия и запустили Альянс открытых веб-сайтов.

Читать далее

NLP для поиска грамматических ошибок

Level of difficultyEasy
Reading time10 min
Views2.6K

Привет, Хабр!

Сегодня с вами участник профессионального сообщества NTA Журавлев Сергей.

В 2017 году на свет вышла статья разработчиков Google под названием «Attention is All You Need». В ней впервые была предложена идея трансформеров — моделей машинного обучения, ключевой особенностью которых было использование так называемых «слоев внимания», определяющих, какие слова и в какой степени важны для формирования контекста предложения. Публикация стала началом активного развития и продвижения моделей машинного обучения на описанной архитектуре.

Читать далее

Как разработчику организовать личную базу знаний: систематизация информации из книг, статей, видео и курсов

Level of difficultyEasy
Reading time6 min
Views56K

Привет, Хабр!

Хочу поделиться своими мыслями и опытом («сыном ошибок трудных») в организации своей базы знаний, регулярно приобретаемых после прочтения разных книг, статей, просмотра видосов, прохождения курсов и прочих самообразовательных активностей.

Начнем с краткой предыстории, потом опишу сам подход в целом, далее пробежимся по нескольким вариантам реализации и в конце остановимся на том, что для меня оказалось самым оптимальным. 

Читать далее

Гудбай Pusher, привет Laravel Websockets

Level of difficultyEasy
Reading time2 min
Views9.7K

Так получилось, что при создании очередного проекта для своих клиентов возникла необходимость реализовать уведомления пользователей о событиях да еще ко всему прочему запилить корпоративный чат.

Проект делается на Laravel 10 на стартере Breeze Inertia + Vue.js.

Историю как я придумывал саму логику уведомлений я оставлю как-нибудь на потом, а вот о том как я распрощался с Pusher я расскажу сейчас. Вообще Pusher, конечно, сервис хороший, но если брать бесплатные лимиты, то там всё достаточно грустно, поэтому я решил использовать что‑то другое в качестве альтернативы. Выбор пал на Laravel Websockets.

Для справки, Laravel Websockets — это такая надстройка над Laravel, которая на бэке использует Ratchet, но никаких особых настроек делать не нужно, всё работает практически «из коробки». Правда есть несколько подводных камней, о которых я тоже расскажу.

Читать далее

ИТ в РФ уже не нужно? Попытка анализа рынка на основе того, чего нет

Level of difficultyHard
Reading time7 min
Views71K

Вместо предисловия – цитаты известных людей:
из режима "Всё идет по плану" казённая медийка переходит в режим "Идёт ликвидация ответственными лицами отдельных недоработок". Ключевой момент - "ликвидация недоработок" должна быть полностью заслугой "ответственных лиц". Системных "ответственных лиц". "Всё пошло немножко не по плану, сейчас поправим".
Непризнание кризиса кризисом является главным признаком системного кризиса. То есть система свои проблемы не рефлексирует как системные, изменения в механизм работы не вносятся. И решать их нормально не решает. И, в целом, продолжает работать "по плану и с опережением графика".
(С)

Тезисно.
Увидеть черную дыру нельзя по определению – излучение Хокинга может есть, может нет. Однако можно увидеть и гравитационное линзирование, и излучение от газового облака.
Похожим образом – соотнося те события, про которые писать «можно», те события, о которых «говорят официальные лица» и то, как сейчас пишут и как НЕ пишут вакансии, о чем пишут и о чем НЕ пишут на том же Хабре, можно попробовать сделать какой-то анализ. Как обычно пишут мне свежеразмороженные учетки в комментариях - "эмоционально,спутанно и негативно".

Читать далее

Критика протокола и оргподходов Telegram. Часть 1, техническая: опыт написания клиента с нуля — TL, MT

Reading time60 min
Views74K

В последнее время на Хабре стали чаще появляться посты о том, как хорош Telegram, как гениальны и опытны братья Дуровы в построении сетевых систем, и т.п. В то же время, очень мало кто действительно погружался в техническое устройство — как максимум, используют достаточно простой (и весьма отличающийся от MTProto) Bot API на базе JSON, а обычно просто принимают на веру все те дифирамбы и пиар, что крутятся вокруг мессенджера. Почти полтора года назад мой коллега по НПО "Эшелон" Василий (к сожалению, его учетку на Хабре стёрли вместе с черновиком) начал писать свой собственный клиент Telegram с нуля на Perl, позже присоединился и автор этих строк. Почему на Perl, немедленно спросят некоторые? Потому что на других языках такие проекты уже есть На самом деле, суть не в этом, мог быть любой другой язык, где еще нет готовой библиотеки, и соответственно автор должен пройти весь путь с нуля. Тем более, криптография дело такое — доверяй, но проверяй. С продуктом, нацеленным на безопасность, вы не можете просто взять и положиться на готовую библиотеку от производителя, слепо ему поверив (впрочем, это тема более для второй части). На данный момент библиотека вполне работает на "среднем" уровне (позволяет делать любые API-запросы).


Тем не менее, в данной серии постов будет не так много криптографии и математики. Зато будет много других технических подробностей и архитектурных костылей (пригодится и тем, кто не будет писать с нуля, а будет пользоваться библиотекой на любом языке). Итак, главной целью было — попытаться реализовать клиент с нуля по официальной документации. То есть, предположим, что исходный код официальных клиентов закрыт (опять же во второй части подробнее раскроем тему того, что это и правда бывает так), но, как в старые времена, например, есть стандарт по типу RFC — возможно ли написать клиент по одной лишь спецификации, "не подглядывая" в исходники, хоть официальных (Telegram Desktop, мобильных), хоть неофициальных Telethon?

Ответ на этот вопрос неоднозначен

freenginx: комментарии от Макса Дунина

Level of difficultyEasy
Reading time4 min
Views22K

14-го февраля Максим Дунин анонсировал форк nginx - freenginx (freenginx.org). Максим - старейший сотрудник nginx и core-контрибьютор nginx со времен Рамблера. Максим любезно согласился на интервью, вопросы задавал Алексей Рыбак (@rybakalexey), DevHands.io.

[АР] Почему ты решил форкнуть nginx и запустить проект freenginx? Почему ты делаешь акцент на свободе, в чём был несвободен nginx внутри F5?

[МД] Я в течении почти двух лет пытался избежать создания форка и безвозмездно занимался улучшением nginx - потому что считал и считаю, что создание форков не полезно для проекта. К сожалению, в F5 решили отказаться от наших договорённостей, и предпочли делать с проектом то, что они считают нужным, игнорируя как существующие политики проекта, так и мнение разработчиков, в том числе моё. Поэтому я создал отдельный проект, в котором позиция разработчиков гарантировано будет определяющей.

Читать далее

Применение ООП на практике

Level of difficultyMedium
Reading time13 min
Views19K

Чаще всего задачу можно решить интуитивно понятным процедурным способом. Однако самый простой вариант не всегда самый лучший. Предлагаю посмотреть на примере реальной задачи, как можно сделать решение объектно-ориентированным, и какую пользу это может принести.

Читать далее

Information

Rating
Does not participate
Location
Yerevan, Yerevan, Армения
Date of birth
Registered
Activity