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

Разработка

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

Моделирование работы гидроциклона для очистки воды от нефти с помощью ML

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

Привет, Хабр!  В этой статьей расскажу, как я моделировал работу гидроциклонов для очистки воды от нефти на реальном промышленном объекте. Объясню, почему выбрал машинное обучение (ML) вместо физико-математических моделей, опишу ключевые этапы работы, ошибки, важные выводы и итоговые результаты.

Читать далее

Новости

Сlite — «zero-dependency» фреймворк для создания CLI

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

Привет, Хабр! Это моя первая статья и я пишу ее в рамках конкурса «Сезон Open Source на Хабре». Сегодня я хочу рассказать о своем pet-проекте, Clite - это легковесный, фреймворк на Python для создания CLI.

Читать далее

Автоматизация тестирования 2025: с чего начать?

Время на прочтение6 мин
Количество просмотров391

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

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

Инструменты созданы для повышения эффективности: они облегчают вашу повседневную деятельность, автоматизируют типовые задачи, помогают с регрессией, ускоряют поиск багов и многое другое. Но они не находят баги за вас.

Что я имею в виду? Скрипты выполняют только то, что вы в них заложили. Они не исследуют крайние случаи. Не прописали — не протестируют.

Учитывая это, если бы я начинала все сначала, вот что бы я посоветовала:

Читать далее

Программирование FPGA Gowin с использованием свободных инструментов

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

Краткая инструкция, о том, как запрограммировать чип FPGA Gowin с использованием только свободных программных инструментов и комплекта Sipeed Tang Primer 20K Dock.

Читать далее

Добавляем платежную систему FreeKassa в проект на Go

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

Привет! Хочу поделиться гайдом по интеграции FreeKassa в проект на Golang.
В данной статье будут рассмотрены:
- Создание инвойса.
- Обработка оповещения об успешной оплате.

Читать далее

Добавление слов в языковую модель Vosk

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

Краткий гайд, как дополнить vosk модель распознавания речи своими словами. Для дальнейшего использования в своих проектах. Все подводные камни в использовании инструмента kaldi в 2025 году.

Принять испытание

Idle, Loading, Error, Success: как устроить надёжный UI

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

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

При разработке фронтенда мы часто ограничиваемся тремя состояниями UI-запроса: loading, error, data (или success). Но это не всегда достаточно — особенно когда дело доходит до тонких UX-деталей, предотвращения гонок запросов и адекватного управления отменой при размонтировании компонентов. В статье рассмотрим, почему добавление состояния idle делает систему более надёжной, как реализовать конечный автомат для управления статусами, как отменять fetch-запросы и оптимизировать перерисовки.

Читать далее

Linux для начинающих: WSL — это читерство. Как Microsoft дал нам Linux без головной боли

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

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

Во-первых, иногда требуется специфический софт, который доступен только под Windows. Да, в других ОС могут быть аналоги, но зачастую они менее удобны или требуют дополнительной настройки.

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

Наконец, есть и субъективный фактор — привычка. Я с самого начала работал с Windows, и, несмотря на все преимущества Linux, полностью перестроить рабочий процесс оказалось сложно. WSL в этом плане — идеальный компромисс: Linux-окружение под рукой, но без необходимости отказываться от удобств Windows.

Читать далее

Зачем нужен fillfactor в PostgreSQL

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

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

Один параметр PostgreSQL может похоронить вашу производительность, если вы о нём забудете — это fillfactor. Почему однократная настройка числа приводит к неожиданным page split, bloat и мучительному откату запросов? Давайте разбираться.

Читать далее

Переизобретаем Ansible для Windows в условиях кабинета информатики

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

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

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

Читать далее

Java-разработчик о том, зачем ходить на собеседования ради удовольствия и как их проводить для обоюдной пользы

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

Константин Шибков (на Хабре sendelust)  —  эксперт Skillbox и Java-разработчик, который искренне любит собеседования. Не только проходить их сам, но и обсуждать чужие. Он расспрашивает знакомых, какие им попались задачи, а потом разбирает их вместе с участниками своего алгоритмического клуба JavaKeyFrame. Ведёт телеграм-канал «Три монитора», где делится личным опытом. Мы поговорили с Константином о том, почему техническое интервью — это не пытка, а интеллектуальное удовольствие, как проводить собесы по-человечески, зачем нужны задачки «на подумать» и почему иногда лучше не отвечать сходу, а сначала задать встречный вопрос.

— Слушай, а что тебе вообще в этом нравится? Слушать про собесы, разбирать задачи, самому ходить. В чём кайф?

— Ну, это всегда какой-то челлендж. Есть элемент соревнования: сможешь ли ты решить задачу, пройдёшь ли ты интервью. Это не про поиск работы. Мне интересно просто попробовать — а вот возьмут ли, а что там спросят. Иногда задачи попадаются нестандартные, и сам подход к ним бывает необычный. Это своего рода хобби — не то чтобы серьёзное, но точно увлекает.

— А есть примеры самых необычных заданий, которые тебе или участникам клуба попадались? Что прям запомнилось?

— Честно говоря, чего-то супернеобычного, наверное, не вспомню. Больше всего удивляет, когда... вообще ничего нет. Вот человек рассказывает: «Пришёл на собес, они такие — пойдём пообедаем. Сходили в кафешку, поболтали». И всё. Никаких задач, ничего. Вот это реально выбивает.

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

Читать далее

Два подхода к интерпретации видимости в Rust

Время на прочтение12 мин
Количество просмотров572

В прошлом году, просматривая пул-реквесты по поводу компилятора Rust, я обратил внимание на #126013. В нём к некоторым пакетам компилятора добавлялась проверка unreachable_pub. Естественно, меня это заинтересовало, так как на тот момент я о такой проверке не знал. Но, разобравшись с её описанием, я тем более удивился, так как эта проверка показалась мне абсолютным нонсенсом! Поговорив об этом с авторами пул-реквеста, я осознал, что, пожалуй, достаточно странно представляю себе, как устроена видимость в Rust. Как минимум, я воспринимал её не «так, как она была задумана».

Эта тема показалась мне достаточно интересной, чтобы раскрыть её в блоге. В этой статье я коротко объясню, как именно работает видимость в Rust, а потом опишу два достаточно разных способа её использовать. Если вы знаете, как в Rust устроена видимость, можете смело пропускать введение и переходить к главной теме. Оговорюсь, что в этом посте я просто вывалил различные мысли на данную тему, скопившиеся у меня, так что не ожидайте найти здесь каких-либо супер-откровений :).

Читать далее

Radio Data System, SI4735 и Flipper Zero

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

Названия музыкальных произведений, которые проигрываются на радиостанциях, можно получать прямо из радиоэфира с помощью radio data system (англ. Radio Data System, RDS). Представим ситуацию, когда из радиоприёмника играет музыка, которая очень понравилась, и стало интересно кто её автор. Конечно, можно "зашазамить", но ведь это не наш метод. Интереснее будет взять микросхему si4735 и подключить её к Arduino. Почему бы и нет. Есть хорошая библиотека SI4735. При таком подходе самым сложным будет качественно оформить устройство в корпусе с кнопками для изменения частоты и громкости, а ещё дисплеем и батареей, чтобы устройство было автономным. Далее будет описан способ с использованием Flipper Zero и созданием простого шилда для него. Тогда не надо терять время на кнопки и дисплей, но нужно немного потрудиться и перенести программную часть на Flipper Zero.

Работа с микросхемами SI473x очень хорошо описана в статье журнала Хакер. Всё, что там написано, проверено и работает. Но там нет работы с RDS. Так что эту статью можно считать просто продолжением той статьи в части работы с RDS.

Читать далее

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

Процессор на коленке ч.1

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


Предыстория


Захотелось мне как-то перевести управление станком на ПЛИС, а для этого понадобилось ядро процессора. Поиск на opencores не особо помог, x86 лицензированный, ARM лицензированный, NIOS… ну, вы поняли. Если выдумывать свою систему команд, может получиться криво, и главное, где брать компилятор. В общем, всё было сложно, так что на время идею пришлось отложить.
С недавних пор ситуация изменилась, архитектура RISC-V пошла в массы.

Читать дальше →

Будущие ИБ-специалисты готовы работать за 50-100 тыс. рублей

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

Привет, Хабр! Мы в «СёрчИнформ» вместе с проектом «Кибердом» подготовили исследование карьерных ожиданий среди будущих ИБ-шников. Опросили 311 студентов ИБ-направлений из 15 вузов России о том, как они оценивают карьерные перспективы, на какие факторы ориентируются при выборе работы и чего ожидают от работодателей. Делимся выводами.

Читать далее

«Змейка» и «Тетрис»: почему они до сих пор с нами?

Время на прочтение6 мин
Количество просмотров797
image

Как получилось, что простая игра, созданная советским программистом, и примитивная «Змейка» из телефонов 1990-х до сих пор удерживают игроков лучше, чем современные мультимиллионные блокбастеры? Ответ кроется в самой природе игрового удовольствия.

Игровая индустрия стала больше, чем кино и музыкальная индустрия вместе взятые. Каждый год выходят AAA-хиты с голливудскими бюджетами, фотореалистичной графикой и открытыми мирами.

Бюджеты многих игр даже намного больше, чем у голливудских блокбастеров. Известно, что затраты на разработку Star Citizen составили $700 млн, но даже эта цифра — мелочь по сравнению с тем, что, по слухам, бюджет GTA 6 составит $2 млрд.

Трейлеры к AAA-играм — это вау-фактор, а мероприятия по запуску игр напоминают кинопремьеры с красной дорожкой. Но геймплей оставляет ощущение вялой переработки прошлых успехово.
Читать дальше →

Умный подход к оптимизации Django

Время на прочтение4 мин
Количество просмотров415
Однажды я увидел этот пост и вспомнил, как оказался однажды в похожей ситуации — но в моём случае требовалось разобраться со строковыми операциями в нашей виртуальной машине. В настоящее время этот проект уже не функционирует, но код остался в открытом доступе. Давайте ненадолго перенесёмся в прошлое.

Шёл 2018 год, и я как раз присоединился к команде, которая поднимала новую среду выполнения для Python (тогда её прозвали Pyro, а теперь она называется Skybison). Была поставлена цель: опираясь на 30-летний опыт инженерных исследований в инженерии VM и народную мудрость заново спроектировать всё с нуля, чтобы получилась система с высокой производительностью. Важное уточнение: мы могли применять только одну кодировку строк: UTF-8 [1] (с прицелом на будущее).
Читать дальше →

Как упростить себе освоение Rust

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

Я наблюдаю за тем, как люди снова и снова совершают одни и те же ошибки при изучении Rust. Ниже представлены мои мысли (в порядке важности) о том, как можно упростить себе процесс обучения. Моя цель — помочь вам сэкономить время и избежать разочарования.

Расслабьтесь

Перестаньте сопротивляться. Это самый важный урок.

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

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

Я видел разработчиков-джунов, прекрасно справлявшихся с Rust без предварительного обучения, и сениоров, которые боролись с ним неделями/месяцами или полностью капитулировали. Забудьте о своей гордыне.

Читать далее

Менеджер по развитию бизнеса в ИБ: проводник между технологиями и реальным миром

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

Каждая первая компания сталкивается с кибератаками, а утечки данных становятся поводом для обсуждения в обществе и СМИ, на передовой цифровой безопасности появляемся мы — менеджеры по развитию бизнеса. Мы не просто «продажники в IT», а своеобразные переводчики между сложным языком кибербезопасности и конкретными бизнес‑потребностями компаний.

Читать далее

Есть ли у AMD перспективы в AI/ML/DL. Часть 1

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

Привет, Хабр! Я Ефим Головин, старший MLOps-инженер в Selectel. Некоторое время назад мы в отделе Data/ML начали задаваться вопросом: а как там поживает AMD? Понятно, что у них масса дел, но нас интересовало, скорее, что у них в плане AI/DL/ML. С NVIDIA все плюс-минус ясно, это стандарт. А вот AMD — что-то неизвестное. Я вообще предполагал, что у «красных» хотя бы в плане терминологии и документации все должно быть плюс-минус аналогично тому, как оно есть у NVIDIA. Но решил убедиться в этом, поэтому отправился изучать документацию обеих компаний и попал в дивный мир хаоса, бардака и разброса в терминах. Не могу держать в себе, давайте разбираться вместе. Начнем, как ни странно, с поиска истины в документации NVIDIA.
Читать дальше →
1
23 ...