Search
Write a publication
Pull to refresh
78
0
Роман @RomeoGolf

инженер-программист

Send message

Домашний робот-полотёр

Reading time5 min
Views8.7K

Робот в уборке использует самую обычную ручную «человеческую» швабру с губкой и выжимающим механизмом. Проект робота‑полотёра вначале задумывался как
сложный антропоморфный робот с руками‑манипуляторами, который полностью бы копировал технику мойки человека такой шваброй. Но со временем пришло понимание о возможности достижения цели гораздо более простым способом манипулирования шваброй. В результате на данный момент робот оснащён всего двумя мотор колёсами и одним линейным актуатором привод которого выполняет все необходимые операции со шваброй: поднятие и опускание швабры в ведро, полоскание, отжим, переворачивание губки швабры с одной стороны на другую после загрязнение первой и парковка.

Участие человека в процессе это поставить ёмкость‑ведро с чистой водой до мойки, а после мойки вылить грязную воду из него.

Читать далее

Программисту нужна математика?

Level of difficultyEasy
Reading time3 min
Views19K

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

Всё дело в том, что этот вопрос сам по себе является риторическим, провоцирующим спор. «Правильность» ответа существенным образом зависит от контекста, который у каждого собеседника, как правило, свой собственный. Контекстом в данном случае будет разное понимание смысла слов вопроса.

Давайте разберём смысл каждого слова

C++ и кризис стандартизации

Level of difficultyMedium
Reading time6 min
Views11K

У меня на ладони лежит очень горячий сотовый телефон, который разогрелся из‑за того, что мессенджер отображает статичное сообщение с пузырем и текстом на экране при помощи браузерного движка и безумного количества сторонних библиотек. При этом я отлично помню время, когда десктоп был в 10 раз менее производительным, чем этот сотовый, а не‑кроссплатформенные мессенджеры тех времен, написанные на С++, отображали текст не нагружая эти допотопные процессоры и на 10%. Я считаю, что в такой деградации виноват в первую очередь комитет по стандартизации C++. Их близорукие решения и неспособность адаптироваться к реальным потребностям разработчиков привели к парадоксальной ситуации: несмотря на постоянное увеличение мощности компьютеров, программы работают медленнее и потребляют больше ресурсов, чем их аналоги десятилетней давности, а С++‑разработчики не могут создать даже простой мессенджер, который будет работать на 2–3 распространенных операционных системах, не используя массы сторонних библиотек.

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

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

Читать далее

Код, который вы не поймете. Подборка вымерших языков программирования

Reading time6 min
Views46K

Натыкаясь на очередную подборку в духе «Какой язык программирования учить в 2025 году», я вижу каждый раз плюс-минус одни и те же тезисы. Обычно они сводятся к рассуждениям о количестве открытых вакансий, зарплатной вилке или библиотеках и фреймворках, которые обещают изменить вообще все. Python, JavaScript или C++ живее всех живых, и в ближайшие годы им вряд ли что-то грозит. Но ведь не все языки программирования оказались столь успешными. В этой статье я предлагаю вспомнить те из них, которые либо не дожили до современности, либо остались в полузачаточном состоянии. Я постараюсь не просто перечислить мертвые языки, но и описать их идеи, ошибки и причины, по которым они исчезли из истории программирования через короткое время после рождения.
Читать дальше →

Стать программистом в зрелом возрасте — 10 лет спустя

Level of difficultyEasy
Reading time5 min
Views45K

Более 10 лет прошло с момента публикации моего поста на Хабре, в котором я рассуждал о том можно ли стать программистом после 30-ти. За это время многое изменилось в моей жизни, стране и в мире. Ковид, протесты 2020-го в Беларуси (я родом оттуда), война… Та статья была выдержана в оптимистическом ключе. А сейчас я хочу взглянуть на проблему глазами уже состоявшегося программиста. И более приземлённо что-ли. Если не сказать больше — пессимиста. Ну, возраст всё-таки даёт о себе знать, вы понимаете.

Читать далее

Как оформить профиль в LinkedIn, чтобы к тебе приходили HR от международных компаний

Level of difficultyEasy
Reading time4 min
Views25K

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

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

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

Читать далее

Стиральная машина позволила мне иначе взглянуть на сроки разработки ПО

Level of difficultyMedium
Reading time5 min
Views32K
Моя недавняя эпопея со стиральной машиной напомнила мне, почему одна из самых страшных и ненавидимых задач в разработке ПО начинается с вопроса:

«Сколько времени вам на это потребуется?»

Привычность этого бытового прибора внушила мне ложное чувство безопасности
Читать дальше →

Закат удалёнки: почему сотрудников возвращают в офис

Reading time3 min
Views109K

В последние два года мы стали свидетелями глобального тренда на возвращение сотрудников в офисы. Крупные компании, такие как Amazon, Google и Meta активно внедряют гибридный формат с обязательными офисными днями. Согласно опросам, для большинства руководителей (79%) эксперименты с удалёнкой завершились, и теперь они хотят присутствия сотрудников в офисе. 

Читать далее

[Перевод] Управление пакетами C ++ с помощью Conan: Введение

Level of difficultyEasy
Reading time5 min
Views4.6K

Прим. пер.: Перевод и примеры исправлены, дополнены и адаптированы с учётом современных версий Conan 2, инструментов сборки и библиотек.

Автор: Ilyas Hamadouche

Управление зависимостями C++ может оказаться непростой задачей. Зачастую разработчику приходится самостоятельно заботиться о загрузке исходных кодов, интеграции готовых к использованию двоичных файлов, сборке, установке и связывании библиотек. В этой статье я расскажу вам о Conan — менеджере пакетов C/C++ с открытым исходным кодом, который отлично справляется с этими задачами.

Conan — это свободный менеджер пакетов с открытым исходным кодом (MIT), разработанный для C и C++. Он похож на NuGet и npm для .NET и JavaScript соответственно. Он может работать в любой операционной системе, поддерживающей Python. К ним относятся Linux, Mac, а также Windows.

Читать далее

Как измерить расстояние с точностью до нанометров или даже пикометров? Берём рулетку и… (нет, всё не так)

Level of difficultyMedium
Reading time8 min
Views9.4K
Картинка Cookie_studio (Freepik), Youtube-канал «Huygens Optics»

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

Более продвинутые в инженерном плане вспомнят про штангенциркули, микрометры и концевые меры длин (плитки Иогансона).

Тем не менее, есть ещё один класс способов, который позволяет измерять расстояния со сверхмалым разрешением — вплоть до одного нанометра и менее…
Читать дальше →

Ни одна реализация элементарных функций не соответствует стандарту IEEE 754

Level of difficultyMedium
Reading time9 min
Views17K

Введённый в 1985 году стандарт IEEE-754 для чисел с плавающей запятой был предназначен для решения проблемы разнородности реализаций чисел с плавающей запятой, мешавших портируемости кода, а также для повышения стабильности между платформами.

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

Моя работа в течение последнего года заключалась в анализе погрешности различных математических функций, накопления этой погрешности и способов её уменьшения при помощи различных программных паттернов. Одной из исследованных мной тем были базовые математические функции, используемые в функциях активации нейронных сетей, а также способы их аппроксимации для повышения производительности. В процессе работы нам пришлось столкнуться с противодействием со стороны людей, активно стремящихся к корректной реализации математических функций и к соответствию их стандартам, в частности, к соблюдению обеспечения корректности одной наименее значимой единицы измерения (unit in last place, ULP) для элементарных функций.

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

В процессе изучения я обнаружил, что ни одна из популярных математических библиотек, используемых во множестве сфер вычислений, на самом деле не выполняет корректное округление в соответствии с требованиями любой версии IEEE 754 после первой редакции 1985 года.
Читать дальше →

Сложно о простом. Как работает интернет. Часть 2. Что такое сеть, маска подсети, сегментация сети с помощью VLAN и маски

Level of difficultyEasy
Reading time12 min
Views73K

Приветствую, коллеги! Меня зовут @ProstoKirReal Мне бы хотелось с вами обсудить как работает интернет от кабелей на витой паре, соединяющие простые локальные сети до подводных коммуникационных кабелей соединяющие между собой континенты и основные операторские сети.

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

В этом цикле статей я не стану учить вас настраивать оборудование и проектировать сети. Я расскажу об основных (и не только) принципах построения сети, а также о функционировании сети и сетевых протоколов в стеке TCP/IP.

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

Читать далее

Налоговый вычет в 2025 году: как вернуть часть потраченных денег

Level of difficultyMedium
Reading time14 min
Views9.3K

Начало года – это время подводить финансовые итоги, планировать личный бюджет на следующий год и заранее предусмотреть все возможные дополнительные способы его пополнения. Один из таких способов – вернуть часть уплаченного НДФЛ за прошлые периоды.

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

Я Оксана, эксперт по расчетам с персоналом в IT-компании SimbirSoft, в этой статье постараюсь доказать, что получить налоговый вычет не так сложно, как кажется на первый взгляд, а суммы этих вычетов достаточно существенные, чтобы их упускать.

Читать далее

Семь способов выхода из рекурсии

Level of difficultyMedium
Reading time5 min
Views3.3K

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

Читать далее

Как AI захватывает Хабр, и почему это всех бесит

Level of difficultyEasy
Reading time3 min
Views13K

Если вы частый гость на Хабре, то, скорее всего, уже сталкивались с этим странным феноменом. Открываете статью, она выглядит вполне прилично: логичная структура, правильные запятые (редкость, кстати), даже мысль какая-то есть. Читаешь, вроде интересно... но что-то не так. Какой-то пластмассовый привкус остаётся после прочтения. А потом ты листаешь комментарии и видишь: «AI-генерат, автор в бан!» И ты такой: «Точно! Вот что меня смутило!»

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

Читать далее

Экономика, вывернутая наизнанку

Level of difficultyEasy
Reading time6 min
Views22K

Всем привет. Эта (полу)шуточная статья родилась из обсуждений с «бородачами» из PRO Hi‑Tech примерно полгода назад. Я тогда осознал важность одного обстоятельства в производстве чипов, которому раньше не придавал значения. А оно, возможно, имеет ключевой смысл для всей истории. Дело в том, что в экономике есть, так сказать, «прямая» логика — максимизация прибыли. А есть «инверсная» — минимизация убытков. В большинстве случаев работает прямая, но вот производства непрерывного цикла, к коим относится и фабрика микроэлектроники, управляются инверсной. Начну с маленькой прелюдии.

Читать далее

Заговор разработчиков против корпораций: архитектура и принципы

Level of difficultyMedium
Reading time14 min
Views14K

С момента написания предыдущей статьи я находился под пристальным вниманием. Попытка опубликовать материалы на англоязычных платформах обернулась фиаско — в первые же минуты легионы последователей тайного братства обрушились с критикой:

— Нет никакой организации! — вопили они.

Подозреваю, что слежка велась через мой телеграм-канал.

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

Узнать тайны, о которых молчали

Разработка диагностического кабеля VAG-KKL для работы с программой CASCADE

Reading time4 min
Views8.5K


Приветствую, Хабр! Все началось с того, что у меня на автомобиле (Kia Sportage 2) не работает ABS. Как-то давным-давно я приобрел Wi-Fi сканер, который умеет читать ошибки по CAN. Как оказалось, для диагностики ABS/ESP необходима работа с K-Line. И это еще не все…
Читать дальше →

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

Level of difficultyMedium
Reading time11 min
Views15K
Картинка (в том числе): Youtube-канал "~j0ule", blog.ru

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

Тем не менее, как ни странно, он прав: если и не в части орфографии, то хотя бы во вложенном смысле. Чем система проще, тем легче её создать (а также она надёжнее и т. д., но нас интересует именно лёгкость реализации).

А что, если я скажу вам, что существует несколько весьма простых способов изучения простейших, а также как минимум один весьма лёгкий способ превратить смартфон в микроскоп для рассматривания маркировок электронных деталей и не только?
Читать дальше →

Создание CAN-концентратора на базе esp8266

Level of difficultyMedium
Reading time2 min
Views7K

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

Читать далее

Information

Rating
3,911-th
Location
Свердловская обл., Россия
Date of birth
Registered
Activity