Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

«Open source в России» — интервью с сооснователем и CTO компании-разработчика веб-сервера Angie

Время на прочтение 9 мин
Количество просмотров 1.4K

Продолжаю рассказывать о российских разработчиках open source решений и технологий. На этот раз удалось пообщаться с Валентином Бартеневым, сооснователем и руководителем отдела разработки компании-разработчика российского веб-сервера Angie. Мы обсудили развитие компании, работу в формате open source, взаимодействие с партнерами и не только.

Читать далее
Всего голосов 13: ↑11.5 и ↓1.5 +10
Комментарии 7

Хорошие практики нагрузочного тестирования: гайд для тех, кто успел до «пожара»

Время на прочтение 9 мин
Количество просмотров 4K

В каждом проекте рано или поздно наступает момент, когда нужно провести нагрузочное тестирование. Чаще всего это происходит поздно: сайт уже крашится под наплывом пользователей, стартовая страница не загружается, а обработка запросов в базе данных длится больше минуты. В такие моменты в «Джире» тестировщика появляется новая задача на поиск узких мест в системе.

Конечно, в подобной ситуации уже не до проведения нагрузочного тестирования по всем правилам, но если получилось выиграть пару дней или выпал редчайший шанс провести тестирование до «пожара», то эта статья для вас. Меня зовут Алена Вахтина и я ведущий специалист по тестированию в Лиге Цифровой Экономики — поделюсь своим опытом.

Читать далее
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 1

Ты — это то, как ты пишешь. Как расти через качество кода

Уровень сложности Средний
Время на прочтение 10 мин
Количество просмотров 9.8K

Каждый код уникален. Несмотря на работу линтеров, спустя несколько лет вы с уверенностью сможете определить, что писали вы, а что — другой разработчик. Даже если не помните, что это была за задача. А ещё, код может рассказать об авторе едва ли не больше, чем разговор с ним. Например, какие книги он читал, на каких языках писал раньше. Можно сделать выводы о характере и привычках автора и предположить, как быстро он сможет вырасти.

Я Юрий Митус, фронтенд-разработчик в Сбере. Предлагаю поговорить о коде, который мы пишем, и практиках его улучшения. Расскажу, на что обращать внимание, покажу типичные ошибки, которые «портят» код и как их избегать. Научу писать код так, чтобы вас хотели нанять и перенять ваши практики.

Читать далее
Всего голосов 24: ↑19.5 и ↓4.5 +15
Комментарии 11

Почему вам необходим React Query

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 6.6K

Не секрет, что я ❤️ React Query за то, как он упрощает взаимодействие с асинхронным состоянием в приложениях React. И я знаю, что многие коллеги-разработчики согласятся с этим.

Однако иногда я встречаю сообщения, в которых утверждается, что он вам не нужен для чего-то столь «простого», как получение данных с сервера.

Читать далее
Всего голосов 8: ↑8.5 и ↓-0.5 +9
Комментарии 14

Истории

Регрессируем обычную известь

Время на прочтение 8 мин
Количество просмотров 3.3K
Всем привет! На связи конвертерный цех № 1. Последние месяцы мы работаем над тем, как посчитать, сколько известковой пыли приезжает к нам на конвейере.

image
И на данный момент мы научились правильно определять это количество с вероятностью 85 %

И нет, мы не сошли с ума. Просто в процессе использования извести некоторое количество самой мелкой её фракции вылетает в трубу. Каждый раз — разное. И «вылететь в трубу» тут не фигуральное выражение, а точное описание процесса: около 10 % известковой пыли, которую мы отправляем в конвертер с жидким металлом, навсегда исчезает в аспираторе. Так как мы не знаем, от какого количества нужно эти 10 % взять и не можем посчитать, сколько её в какой момент улетит, известь в металл насыпается с запасом. И это бесит.

«А почему бы не посчитать, сколько вешать в граммах?» — заинтересовались мы и начали придумывать, как это сделать.
Читать дальше →
Всего голосов 28: ↑30 и ↓-2 +32
Комментарии 9

Чего боятся стажеры? {Спойлер: всех отвлекать, все поломать, чего-то не знать, на код-ревью завалиться…}

Уровень сложности Простой
Время на прочтение 8 мин
Количество просмотров 7.1K

Мы все чего-то боимся. И это нормально: страх достался нам от наших предков как защитная реакция на какой-либо раздражитель, чтобы настроить организм на дальнейшие действия. И хотя времена мамонтов и саблезубых тигров давно прошли, наша биохимия никуда не делась. Главное – как тогда, так и сейчас – чтобы страх не причинял нам самим вреда, не сковывал, не парализовывал. Чтобы не мешал развиваться и двигаться вперед.

В этом посте – шесть совершенно разных историй экс-стажеров “Лаборатории Касперского”. У каждого был какой-либо страх (а как еще, когда ты стажер без опыта, и это твоя первая работа!), но все герои смогли совладать с ними и вырасти до специалистов, тимлидов и даже руководителей целых функций.

А в дополнении – опрос, который покажет, чья позиция ближе Хабру.

Если вы сами – интерн или еще только ищете стажировку в IT-индустрии, этот пост будет для вас особенно актуален. Но даже если вы уже преодолели первую ступень профессионального пути, вам наверняка будет интересно сравнить свой опыт с опытом коллег.

Читать далее
Всего голосов 25: ↑26 и ↓-1 +27
Комментарии 2

Высокоточное измерение ЭКГ. Часть 3

Уровень сложности Простой
Время на прочтение 3 мин
Количество просмотров 1.1K

В данной статье представлены некоторые результаты практической реализации высокоточного измерения сигнала ЭКГ и ФПГ.

Читать далее
Всего голосов 6: ↑7.5 и ↓-1.5 +9
Комментарии 4

PostgreSQL. Устройство карты свободного пространства

Уровень сложности Средний
Время на прочтение 25 мин
Количество просмотров 1.3K

СУБД PostgreSQL способна бысто работать с огромными массивами данных благодаря множеству различных механизмов, таких как карта свободного пространства, позволяющая за короткий промежуток времени найти страницу из основного слоя с необходимым свободным пространством для вставки новых версий строк.

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

Читать далее
Всего голосов 9: ↑9.5 и ↓-0.5 +10
Комментарии 2

Как не стоит делать игры на Unity

Время на прочтение 10 мин
Количество просмотров 2.4K

Много статей написано про хороший и плохой код, но статей с разборами проблем реального кода очень мало (за исключением багов в open source проектах), поэтому решил показать проблемы в реальной игре на Unity.

Читать далее
Всего голосов 7: ↑7.5 и ↓-0.5 +8
Комментарии 3

Ивент шторминг (Event Storming) при работе над игровыми проектами

Время на прочтение 4 мин
Количество просмотров 1.4K

Ивент шторминг (Event Storming) — это отличный способ разложить продукт по полочкам, понять, как он работает (или должен работать), а также донести это до всех участников команды, чтобы картинка в разных головах была одинаковой (что сильно упростить разработку и поможет избежать ошибок и недопониманий).

На моей практике Event Storming успешно использовался в проектировании игр, именно об этом я расскажу в данной статье.

Читать далее
Всего голосов 6: ↑7 и ↓-1 +8
Комментарии 1

Подводные камни при разработке мобильного приложения на Bitrix REST API

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 1K

Меня зовут Андрей Буйновский, я разработчик в ИТ-компании. Мы с командой решили написать эту статью и поделиться некоторыми проблемами, подводными камнями и их решениями в разработке мобильного приложения для одного нашего заказчика из ритейла. 

Мы разработали интернет-магазин для крупной торговой сети. После запуска интернет-магазина, мы перешли к развитию проекта, в рамках которого появилась задача по созданию дополнительного канала по взаимодействию с покупателями. Вопрос о выборе API для бэкэнда не стоял, так как интернет-магазин был разработан на платформе 1С-Битрикс, система имеет необходимый функционал для работы с альтернативным фронтом и мобильным приложением. Перед нашей командой стояла задача разработать мобильное приложение на основе Bitrix REST API для платформ iOS и Android с сохранением функционала действующего интернет-магазин заказчика. Это означало необходимость использования компонентов, уже реализованных для интернет-магазина, копирования их с целью сохранения логики, удаления верстки и использования возвращаемых данных.

Читать далее
Всего голосов 5: ↑4.5 и ↓0.5 +4
Комментарии 9

90+ дашбордов для OSINT и глобального мониторинга

Уровень сложности Простой
Время на прочтение 13 мин
Количество просмотров 17K

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

Даже если вы никак не связаны с ИБ, зато часами залипали в контурные карты глобальных стратегий или восхищались глобусом в центре управления X-COM, эта подборка инструментов наверняка вам понравится.

Читать далее
Всего голосов 33: ↑36.5 и ↓-3.5 +40
Комментарии 4

Удалить нельзя эксплуатировать: как мы нашли уязвимость в установщике Битрикс

Уровень сложности Средний
Время на прочтение 6 мин
Количество просмотров 4.2K

Методология тестирования на проникновение предполагает разделение поиска уязвимостей на несколько этапов. Один из первых этапов заключается в поиске легаси с известными уязвимостями, популярных мисконфигов и других low hanging fruits на периметре. Их эксплуатация проста и зачастую не требует от потенциального злоумышленника никакой квалификации, но последствия она может иметь серьезные, вплоть до получения удаленного доступа во внутреннюю инфраструктуру.

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

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

Читать далее
Всего голосов 17: ↑18 и ↓-1 +19
Комментарии 3

Ближайшие события

PG Bootcamp 2024
Дата 16 апреля
Время 09:30 – 21:00
Место
Минск Онлайн
EvaConf 2024
Дата 16 апреля
Время 11:00 – 16:00
Место
Москва Онлайн
Weekend Offer в AliExpress
Дата 20 – 21 апреля
Время 10:00 – 20:00
Место
Онлайн

Как устроен RAPTOR — новый подход для RAG, который понимает контекст сразу всей книги

Уровень сложности Средний
Время на прочтение 4 мин
Количество просмотров 795

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

Примерно для этого в 2020 году предложили RAG (retrieval-augmented generation) методы. Есть и другая мотивация для RAG — после обучения LLM на большой базе данных возникает вопрос, что делать с обновлением этой самой базы. Дообучение — не беспроигрышный вариант, так как это не всегда удобно для гигантских объемов данных. В базовом подходе RAG база знаний нарезается на небольшие куски текста, chunks, в 100-1000 слов, которые в виде эмбеддингов хранятся, как правило, в векторной БД, пока не понадобятся. Запросы пользователя дополняются найденными чанками в качестве контекста и выглядят для модели как один большой запрос. 

Так вот, большинство существующих RAG методов способны переварить только небольшое количество достаточно коротких и последовательных чанков. Это ограничивает возможность оперировать крупномасштабным контекстом. Возвращаясь к уроку литературы, если перед тем, как выдать ответ, прочитать несколько последовательных строф романа, этого явно будет недостаточно.  Недавно вышедшая Стэнфордская статья RAPTOR: Recursive Abstractive Processing for Tree-organized Retrieval призвана решить эту проблему. Основная идея заключается в том, чтобы обобщать отдельные куски большого материала, затем обобщать обобщения и так дальше.

Читать далее
Всего голосов 6: ↑5 и ↓1 +4
Комментарии 2

Huawei продвигает собственную ОС и планирует дистанцироваться от Android, Windows и других операционных систем

Время на прочтение 4 мин
Количество просмотров 4.6K

На Хабре не раз и не два писали про Harmony OS, китайскую операционную систему, которая изначально базировалась на Андроиде, но потом стала постепенно удаляться от своих корней. Китайская компания Huawei, разработавшая Harmony OS, планирует продвигать свою операционную систему в качестве основного продукта для всех своих девайсов. Что происходит и какие у этого проекта перспективы — читайте под катом.

Читать далее
Всего голосов 6: ↑9 и ↓-3 +12
Комментарии 36

Неизвестно полезный CSS. Часть 2

Уровень сложности Средний
Время на прочтение 7 мин
Количество просмотров 6.5K


Привет, Хабр. Я продолжаю рассказывать про неизвестные широкому кругу разработчиков CSS-фишки. Я отбираю их так, чтобы они были полезны в разного рода проектах. Неважно, верстаете ли вы сайт для малого бизнеса или создаёте супермодное React-приложение. Они поддерживаются большинством браузеров. Отдельно отмечу, что я не считаю IE11 современным браузером. По этой причине я не учитывал его.


Сегодня мы рассмотрим:

  • загрузку фоновых изображений для экранов с повышенной плотностью пикселя с помощью функции image-set();
  • как с помощью неё же ускорить загрузку страницы;
  • можно ли использовать нестандартный шрифт без его загрузки;
  • чем полезен псевдо-класс :focus-within при вёрстке кастомных чекбоксов;
  • мой любимый лайфхак на основе пользовательских CSS-свойств.

Больше не буду затягивать. Давайте посмотрим, что я вам подготовил.

Читать дальше →
Всего голосов 21: ↑26 и ↓-5 +31
Комментарии 7

Rolldown — новый сборщик на основе Rollup

Время на прочтение 3 мин
Количество просмотров 1.3K

Rollup - это лучший и наиболее полный сборщик на сегодняшний день. Он опередил свое время, став первопроходцем в таких ключевых концепциях, как tree shaking, и до сих пор ему нет равных в этом отношении. Когда Эван Ю представил Vite - Rollup был краеугольным камнем процесса сборки. Плагины Vite - это (по большей части) плагины Rollup.

Читать далее
Всего голосов 4: ↑3.5 и ↓0.5 +3
Комментарии 0

Ликбез по методологиям проектирования хранилищ данных

Уровень сложности Простой
Время на прочтение 2 мин
Количество просмотров 8K

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

Рассмотрим сильные и слабые стороны самых популярных методологий.

Читать далее
Всего голосов 6: ↑3 и ↓3 0
Комментарии 5

An incursion under C#. Протаскиваем F# в Godot

Уровень сложности Простой
Время на прочтение 18 мин
Количество просмотров 1.3K

Godot — игровой движок, который имеет нативную поддержку dotnet. К сожалению, эта поддержка до такой степени заточена под C#, что F# она выходит боком. Почти все проблемы разрешимы, но при недостатке опыта они скатываются в большой пластилиново-волосатый валик у самого входа в подземелье, который иногда приводит к преждевременной и бессмысленной гибели. Чтобы избежать этого в данной статье я дам программу-минимум, которая позволит выжить в Godot, но не выжать из него максимум.

Это не значит, что у сочетания F# + Godot нет своих плюшек. Просто мне хотелось съесть вначале сосредоточить всех мух в одном месте, а котлетами заняться потом и в более свободной манере. Также я предполагаю, что на данную статью будут натыкаться как новички в F#, так и новички в Godot, поэтому местами я буду дублировать базовые руководства.

Читать далее
Всего голосов 9: ↑9.5 и ↓-0.5 +10
Комментарии 0

Умный дом на openHAB+MQTT+Arduino. Часть 2: Датчики, релюшки

Уровень сложности Средний
Время на прочтение 11 мин
Количество просмотров 4.6K

Продолжаем разговор за бюджетный умный дом, в этой статье мы соберем простой модуль на Arduino Nano. Предыдущая статья, посвященная настройке кластера openHAB, находится тут.

Читать далее
Всего голосов 5: ↑6 и ↓-1 +7
Комментарии 17