Обновить
1081.93

Программирование *

Искусство создания компьютерных программ

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

Новый инерциальный MEMS-датчик LSM6DSV320X от ST c искусственным интеллектом для распознавания активности и ударов

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

Инерциальные модули (IMU, Inertial Measurement Unit) выполненные в виде MEMS-датчиков давно используются в смартфонах, игровых контроллерах, носимых устройствах, и т.д. В такой модуль входит акселерометр и гироскоп, вся обработка выполняется на основном процессоре смартфона или микроконтроллера. Для обработки поступающих данных от инерциального модуля, процессор должен быть постоянно в состояние активности. Например, для носимой электроники данный фактор не позволит отправить основной процессор в спящий режим. Вторая проблема заключается в большом лаге между наступлением события и реакции. Например, если необходимо обрабатывать события удара, пока ОС обработает поступающие данные и сделает вывод об ударе, времени на реакцию будет немного. Для решения указанных задач, и не только, компания STMicroelectronics разработала модуль LSM6DSV320X с искусственным интеллектом где вся обработка данных выполняется в самом модуле.

Читать далее

GitLab: Основы написания Pipeline 2/3

Уровень сложностиПростой
Время на прочтение22 мин
Охват и читатели11K

Всем привет!

В первой части мы в общих чертах посмотрели на различия GitHub Actions и GitLab, а также начали разбирать структуру файла .gitlab-ci.yml.

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

Не понимаете, «что тут происходит»? Рекомендую начать с первой части:: по ссылке.

Если вам интересны подобные материалы, подписывайтесь на Telegram-канал «Код на салфетке». Там я делюсь гайдами для новичков, полезными инструментами и практическими примерами из реальных проектов. А прямо сейчас у нас там ещё и проходит новогодний розыгрыш.

Читать далее

Операторы «case» и «switch» это не сахар

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

На страницах Хабра не раз встречались статьи, которые прямо (или косвенно) озвучивали утверждение, что операторы языков программирования "case" и "switch" являются "синтаксическим сахаром" т.е. являются более удобной и наглядной записью последовательности операторов "if". В комментариях, с моей стороны, отмечалось недоумение, по поводу таких заявлений. Для справки приведу общий вид оператора "case" из языка программирования Турбо Паскаль.

case <ключ выбора> of

значение_1: операторы; ... значение_N: операторы;

else операторы;

end;

Когда я учился в университете основам Турбо Паскаля, наш преподаватель сознательно делал акцент на том, что данная синтаксическая конструкция, после вычисления ключа выбора, переходит на соответствующие вычисленному ключу операторы. То есть, без перебора всех ключей, сразу. В этом особенность данного оператора и его принципиальное отличие от последовательности операторов "if" (функционально эквивалентных). Так меня учили.

Авторы статей, считающие иначе, проявили завидное упорство (в комментариях), отстаиваю свою позицию, что привело к желанию разобраться в этом вопросе. (Однажды был даже такой удивительный случай, когда, вероятно начинающий программист, написал статью приблизительно следующего содержания: «А что если ключей выбора очень много? Перебор всех вариантов это долго. А что если попытаться оптимизировать такой нерациональный оператор как „case“, „switch“.» И далее рецепты по оптимизации. После справедливых замечаний в комментариях автор статью удалил. Ну что же, с кем не бывает.)

Читать далее

Создание приложения для моделирования технологических схем с помощью компонента «СПДС» Платформы nanoCAD и API MultiCAD

Время на прочтение5 мин
Охват и читатели5.8K

BIM давно зарекомендовал себя в гражданском и промышленном проектировании. А можно ли использовать информационное моделирование для технологических схем?Демид Сентемов, инженер-проектировщик технологических процессов, разработчик программных решений, ответил на этот вопрос утвердительно. С помощью компонента «СПДС» Платформы nanoCAD и среды API MultiCAD его команда разработала собственный продукт «Промпроектор», предназначенный для создания технологических схем по принципу BIM. Первым пользователем приложения стала компания «РИОС-Инжиниринг», которая уже опробовала новое решение при моделировании технологической схемы для установки реформинга бензина. 

Как это работает

Внутри ядра Docker: что на самом деле происходит при запуске контейнера

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

Когда вы вводите в командную строку docker run nginx — кажется, что произошло какое-то волшебство: за считанные секунды появляется полностью изолированная среда. Но здесь нет никакой магии, а просто инженерия ядра Linux. Давайте подробнее разберём эту тему подробнее и изучим, что именно происходит внутри ядра, когда Docker создаёт контейнер.

Читать далее

MBZUAI – первый в мире университет по искусственному интеллекту

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

Доброго времени суток, коллеги!

Меня зовут Влад, и в этом году я поступил в университет MBZUAI (Mohamed bin Zayed University of Artificial Intelligence, Абу-Даби, ОАЭ) – первый в мире университет по искусственному интеллекту. Основанный в 2019 году, он уже успел занять лидирующие позиции среди ведущих лабораторий мира в области ИИ. Так, по данным рейтинга CSRankings на момент написания данной статьи университет занимает 10-е место в мире. Слышали про Сэма Альтмана, основателя OpenAI, компании, создавшей ChatGPT? 26 сентября этого года MBZUAI торжественно присвоил ему степень PhD.

Читать далее

Чему меня научила разработка C#-клиента для распределённой СУБД Яндекса

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

Привет, Хабр! Меня зовут Кирилл Курдюков, и мы с командой делаем YDB (СУБД Яндекса). Как и с языками программирования, популярность СУБД определяется не только их возможностями, но и экосистемой.

В предыдущей статье я рассказал о том, как разработать Java-клиент для распределённой СУБД и интегрировать его с популярными ORM. А из этой статьи вы узнаете, как под капотом работает ADO.NET, почему управление пулом сессий может сильно влиять на ваш код работы с базой данных и какой стратегии обработки ошибок можно придерживаться для разработки отказоустойчивых сервисов. Статья будет полезна тем, кто изучает особенности взаимодействия в распределённых системах или просто хочет научиться лучше писать клиентский код, работающий с современными распределёнными системами.

Читать далее

Вайбкодинг. Сопротивляться или возглавить?

Время на прочтение7 мин
Охват и читатели7.9K

Кто-то кайфует от новых возможностей и говорит, что теперь всё будет делаться с AI. Кто-то называет ерундой, говорит AI ничего не может, и придумывает таким разработчикам клички типа “Саша GPT”. Кто-то готовится к обороне кода как Егор Бугаенко (@yegor256) в своём видео “Как защитить код от AI”: https://www.youtube.com/watch?v=GPJ-LfRpxM4 (очень рекомендую посмотреть)

На какой стороне вы? Новаторов или староверов?

Делюсь своим видением происходящего, с какими плюсами и ограничениями столкнулся на практике.

Читать далее

Как налоговый юрист написал сервис для расчета пени по НДС с помощью LLM, не зная Python

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

Я налоговый юрист и автор телеграм-канала «Налоговый Инсайдер». В моей работе есть рутинные задачи, которые сложно автоматизировать стандартными средствами вроде Excel. Одна из таких задач — расчет пени по НДС при подаче уточненной налоговой декларации.

В этой статье я расскажу, как не написав самостоятельно ни строчки кода с помощью Gemini и ChatGPT я прошел путь от идеи до работающего приложения на Flask , и с какими неочевидными техническими проблемами (вроде устаревшего Python на хостинге и CGI-скриптов) столкнулся гуманитарий-юрист пытаясь запустить современную программу на обычном хостинге.

Читать далее

Создаём замыкания С из замыканий Lua

Время на прочтение12 мин
Охват и читатели14K

Когда я взялся полноценно портировать API Windows с C на Lua, одна из самых интересных и занимательных задач заключалась в том, как делать обратные вызовы к коду C из функций Lua. Без них значительная часть API — например, WNDPROC – осталась бы бесполезной.

Читать далее

Разбираем net/http на практике: пишем веб-сервис DeadDrop для безопасного обмена сообщениями

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

Первая часть цикла «Разбираем net/http на практике»: создаём с нуля сервис DeadDrop — аналог Privnote для безопасной передачи самоуничтожающихся сообщений и файлов.

На чистой стандартной библиотеке net/http разбираем основы:

запуск HTTP-сервера

маршрутизация в ServeMux

написание middleware (логирование и recovery от panic)

работа с HTML-шаблонами и layout’ами

подключение статики через http.FileServer и embed.FS

В итоге получаем работающий сервер с красивой главной страницей, формой создания «ячейки» и базовой архитектурой проекта — всё без внешних зависимостей.

Идеально для начинающих и тех, кто хочет глубоко понять внутренности популярных фреймворков вроде Gin и Echo. Пишем код вместе!

Читать далее

Связь паттернов микросервисной архитектуры

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

В этой статье я хотел бы рассмотреть микросервисные паттерны под другим углом. Когда я начинал изучение микросервисных паттернов, у меня постоянно был вопрос: Так это же было в другом паттерне. Я решил немного структурировать их: объединить по похожим элементам. Кластеризировать микросервисные паттерны достаточно тяжело так как каждый паттерн по‑своему уникален, однако для запоминания на собеседованиях или для себя это сделать можно. Основной контент статьи — картинка, далее идёт описание, чтобы всё было в одном месте.

Эта статья предназначена для более быстрого запоминания/повторения паттернов микросервисов. Кое‑где я приводил кейсы, которые могут быть непонятны новичкам. Здесь нет подробных кейсов применения каждого паттерна так как иначе статья получилась бы на другую тему. Для удобства я приложил ссылки — чтобы избежать дублей.

Читать далее

Один микросервис — один контейнер. День 1

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

Это первая статья о том, как идея проходит путь от прототипа до полноценного продукта — с участием архитектуры на каждом шагу. Формат — ADR (Architecture Decision Records): каждое решение зафиксировано по дням, чтобы показать реальную эволюцию проекта. Продукт вымышленный, проблемы — настоящие. Те самые, с которыми сталкиваются архитекторы и команды. Документация и код — в открытом доступе на GitHub.

Читать далее

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

Соотношение свободы и приватности с безопасностью

Время на прочтение35 мин
Охват и читатели8.2K

Данная статья была написана и впервые опубликована осенью 2023 года. В ней разбираются мифы о свободном программном обеспечении и критикуются аргументы любителей проприетарного ПО. За прошедшее время статья нисколько не потеряла своей актуальности. Наоборот, представления о большей безопасности проприетарного ПО по сравнению со свободным становятся все более популярными. Потому разбор этих представлений — выяснение того, состоятельны ли они или носят спекулятивный характер — весьма важен. Хотя статья посвящена главным образом программному обеспечению, серьезное внимание уделено тем социально-экономическим факторам, которые способствуют распространению разбираемых в ней мифов. Вторая половина статьи рассматривает социальные вопросы, показывает, что современная система привела не только к засилью несвободного ПО, но и к репрессивному виду авторского права, нищете, голоду, усугублению экологической обстановки. Хотя в ней нет указаний по исправлению ситуации, но представлены возможные решения по противодействию насаждению угнетения в сфере программного обеспечения и публикаций. Текст статьи остался без изменений, однако ссылки на источники были исправлены — некоторые заменены на более удобные, недоступные ныне ссылки на рабочие.

Читать далее

Что такое MCP-сервер, и зачем он нужен

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

Привет, Хабр! Меня зовут Андрей Слесаренко — frontend‑разработчик с опытом работы более 8 лет. Прошёл путь от джуна до тимлида, работал над разными высоко‑нагруженными проектами. В начале этого года начал активно использовать LLM‑агентов в повседневной работе — и за это время набил немало шишек.

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

Читать далее

AI без интернета (офлайн) на своем компьютере

Уровень сложностиСредний
Время на прочтение3 мин
Охват и читатели12K

Зачем это обывателю?

Кейсов на самом деле не мало, как минимум это бесплатно и дает возможность запускать AI без облака, чтобы ничего не отправлялось в интернет (приватность, скорость), 

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

Еще можно использовать как офлайн переводчик или объяснялку без интернета, помощника по учебе и изучения чего либо.

Читать далее

PostgreSQL. Интервальный тип данных. Интеграция с Spring Data JPA

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели8.7K

В своей практике мы можем сталкиваться с хранением и поиском информации задаваемой в интревальном формате. Например: срок действия акций, тарифы на доставку и прочее. В статье мы подружим Spring JPA и Range Types.

Читать далее

Как ИИ создавал клоны «Сапера»: тест четырех моделей и неожиданные результаты

Время на прочтение6 мин
Охват и читатели15K

Недавно команда специалистов по ИИ провела эксперимент: нескольким ИИ-сервисам для программирования предложили с нуля создать веб-версию классической игры «Сапер». Помимо базовой логики, в задании были дополнительные требования — звуковые эффекты, поддержка сенсорных экранов и нестандартные игровые элементы. На практике такой формат быстро выявил различия в возможностях сервисов: одни справились с задачей уверенно, другие неожиданно споткнулись на, казалось бы, простых вещах. В этом материале разберем, как OpenAI Codex, Anthropic Claude Code, Mistral Vibe и Google Gemini CLI подошли к заданию и что их результаты говорят о текущем уровне ИИ в разработке.

Читать далее

FlutterPulse: декабрьский дайджест Flutter & Dart

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

Декабрь — это когда:

- задачи вроде бы закрыты, но TODO всё ещё смотрит укоризненно

х- очется «ещё один маленький рефакторинг» перед Новым годом

- и, конечно, появляется ощущение, что со следующего года всё точно будет ещё лучше

Читать далее

Production-ready архитектура AI-агента. Часть 1: ReAct, Advanced RAG, Tools, Prompts

Время на прочтение9 мин
Охват и читатели11K

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

На примере разработки AI-консультанта для своего агентства расскажу о системном подходе к проектированию архитектуры production-ready AI-агентов, который мы применяем при создании агентских систем для бизнеса. Чтобы они не были дорогой игрушкой, а приносили эффект и оправдывали своё назначение.

Поехали...

Читать далее

Вклад авторов