Search
Write a publication
Pull to refresh
63
0
Глеб Ницман @gleb_l

Инженер

Send message

21 извлеченный урок за 21 год программирования

Reading time7 min
Views47K


Доброго времени суток, друзья!

7 апреля 2020 года. Сегодня для меня очень важный день. Сегодня исполняется ровно 21 год с того момента, как я начал писать код (делать это профессионально, зарабатывать этим себе на хлеб).

Кажется, что это было только вчера… сегодня я — человек среднего возраста с 21-летним опытом программирования, который прошел через множество перипетий вероломного мира разработки программного обеспечения.

Совершать ошибки — неотъемлемая часть процесса обучения. Часто это выступает критерием успеха. Стремление избегать повторения ошибок должно находиться на первом месте в списке приоритетов разработчика.

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

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

Проект LLHD — универсальный язык описания аппаратуры

Reading time10 min
Views11K

Буквально на днях на arXiv-е была выложена очень занятная статья швейцарских исследователей, в которой представлены подробности проекта LLHD. Это проект создания многоуровневого промежуточного представления для языков описания аппаратуры, наследующий идеологию и принципы проекта LLVM.


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


Предлагаемая иерархия инструментов (здесь и далее изображения из оригинальной статьи)


У проекта есть все шансы стать тем же, чем GCC и LLVM в свое время стали для мира открытого программного обеспечения. Сложно даже представить, насколько это может изменить ситуацию вокруг разработки железа.


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

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

Александр Иофа: «Руководство большим коллективом — это хождение по лезвию ножа»

Reading time11 min
Views8.6K


Александр Леонидович Иофа родился в Петрограде 5 марта 1921 года в семье инженера, перед войной окончил школу и поступил в Ленинградский Политехнический институт. В 1941-м его с третьего курса призвали в армию, а через год Иофа оказался на оккупированной территории и чудом остался жив.

После войны окончил Политехнический институт и по распределению был направлен в ОКБ завода «Водтрансприбор», позже преобразованное в «Морфизприбор». Здесь Александр Леонидович с шестилетним перерывом проработал 65 лет и покинул институт, когда ему исполнилось 95.

Более 30 лет Иофа руководил лабораторией, которая первой внедряла вычислительную технику в гидроакустические комплексы. Под его руководством был разработан ряд вычислительных систем собственной оригинальной архитектуры, ориентированной на цифровую обработку сигналов.

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

Накануне своего 99-летия Александр Леонидович поделился воспоминаниями с музейным проектом DataArt.
Читать дальше →

Вопрос про CAN FD

Reading time3 min
Views8.9K
image

Добрый день!

Читаю с интересом ваши статьи и хотел бы задать вопрос, как компетентным людям в автомобильной отрасли — периодически сталкиваюсь с шиной CAN и в процессе изучения встречал информацию о перспективах перехода на CAN FD. Википедия говорит о переходе на FD большинства производителей авто к 2020 году, однако реальных статей о применении в наши дни я не нашёл, как на ваш взгляд выглядит практика применения CAN FD на рынке сейчас?

Заранее благодарю, Алексей.

Ответ


Roman, automotive body SW development

Задержка с внедрением CAN FD в автоиндустрии связана с несколькими причинами:
Читать дальше →

Отладочная плата STM32

Reading time6 min
Views29K

Вступление


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


Автор данной статьи разработал и изготовил собственную плату.


Вашему вниманию предлагается проект отладочной платы на базе микроконтроллера STM32F107.
Данная плата является плодом труда автора, схемотехнические решения заимствованы из технической документации других аналогичных плат. Разводка платы, возможно, требует корректировки, в частности разводка микросхемы RT8201BL для Ethernet. Соединение платы с сетью по Ethernet было протестировано с использованием готового проекта.


Плата модуля контроллера является универсальным средством на базе микроконтроллера STM32F107VCT6, предназначенным для встраивания в различные системы в качестве узла управления.

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

Минисериал: троичный компьютер своими руками

Reading time7 min
Views34K

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


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


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

Знакомимся с COBOL — ч.1

Reading time4 min
Views60K
Этой статьей я планирую начать целый цикл, который может быть со временем соберется в книгу. Информация про COBOL на русском представлена фактически статьей в Википедии и двумя советскими ГОСТами. Вы можете спросить меня зачем я начинаю “раскапывать труп” и прочие аналогичные вопросы. Ответ прост – а просто так. Потому что я люблю COBOL, потому что он вовсе не мертвый, потому что он интересный, потому что это часть важной истории и он продолжит оставаться частью будущего. Потому что COBOL – это событие. И пусть его ругает Дейкстра и другие, это ничуть не умаляет его объемов и его влияния на ИТ в бизнес.

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

Считывание защищенной прошивки из флеш-памяти STM32F1xx с использованием ChipWhisperer

Reading time9 min
Views57K

В предыдущей статье мы разбирались с Vcc-glitch-атаками при помощи ChipWhisperer. Нашей дальнейшей целью стало поэтапное изучение процесса считывания защищенной прошивки микроконтроллеров. С помощью подобных атак злоумышленник может получить доступ ко всем паролям устройства и программным алгоритмам. Яркий пример – взлом аппаратного криптокошелька Ledger Nano S с платой МК STM32F042 при помощи Vcc-glitch-атак.


Интересно? Давайте смотреть под кат.

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

ADAM-6700 —универсальный модуль связи с объектом на базе Linux

Reading time3 min
Views6.5K


Модули серии ADAM — самый узнаваемый продукт нашей компании. Запущенные в далеком 1992 году, они постоянно развиваются, сохраняя классический узнаваемый дизайн. Сегодня это мощные многофункциональные устройства, совмещающие в себе сразу несколько классов приборов для решения самых разных задач.

ADAM-6700 это новая серия устройств на базе процессора Cortex-A8 под управлением Linux RT (real time). Совмещает в себе функции модуля связи с объектом, программируемого логического контроллера (ПЛК), устройства сбора и обработки данных, а так же IP-шлюза для цифровых и аналоговых интерфейсов.

Имеет встроенный сервер Node-RED и возможность конфигурации через веб-интерфейс. Благодаря открытой платформе, на модуле можно запускать клиентские приложения на языке C и реализовывать любую логику работы программно.
Читать дальше →

Программный контроллер интерфейса на STM32

Reading time9 min
Views14K
Проблема обратной совместимости, вероятнее всего, будет всегда.

В области разработки электроники порой приходится поддерживать устройства 30-летней давности (а иногда и старше).

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

В таких случаях совместимые контроллеры приходится реализовывать на CPLD\FPGA\ASIC.

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

Андрей Зарецкий, Александр Труханов (продолжение): «У нас не было имени, но была наглость»

Reading time10 min
Views11K


Во второй части интервью с авторами бестселлера «Энциклопедия профессора Фортрана» музейному проекту DataArt — о тех, кто помогал, о встрече с писателем Успенским, сотрудничестве с издательством «Просвещение» и особенностях бизнеса в 1990-х.
Читать дальше →

Оконные функции с «форточкой» или как пользоваться фреймом

Reading time5 min
Views96K
Всем привет. 26 февраля в OTUS стартовали занятия в новой группе по курсу «MS SQL Server разработчик». В связи с этим я хочу поделиться с вами своей публикацией про оконные функции. Кстати, в ближайшую неделю еще можно записаться в группу ;-).





Оконные функции прочно вошли в нашу практику, но мало кто знает как работают фреймы RANGE и ROWS.

Возможно поэтому они несколько реже встречаются. Цель этой статьи привести примеры использования, чтобы у вас точно не осталось вопросов “Кто есть кто?” и “Как это применять?”. Вопрос “Зачем?” в статье останется не освещенным.

Давайте разберемся что такое фрейм, и как схожего эффекта достичь с помощью ORDER By в предложении OVER().

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

Андрей Зарецкий, Александр Труханов: «Гонорара хватило, чтобы кофе попить»

Reading time8 min
Views39K


В 1991 году издательство «Просвещение» выпустило детскую книгу «Энциклопедия профессора Фортрана». Практически моментально она стала бестселлером и разошлась миллионными тиражами. Это был очень легкий и понятный рассказ о персональных компьютерах, которых в нашей стране еще не было практически ни у кого. Музейный проект DataArt пообщался с авторами книги Андреем Зарецким и Александром Трухановым о том, как два ученых-физика решили стать писателями и придумали профессора Фортрана и Кадабру. В первой части монолога — рождение идеи, ненавистный научпоп, свобода мысли в Черноголовке и чаепитие с Фронтом освобождения Полисарио.
Читать дальше →

Оффшор для IT-бизнеса в Грузии: лайфхаки и подводные камни

Reading time10 min
Views50K
Сингапур, Кипр, Китай, Голландия — государства, которые, первыми приходят на ум, когда речь заходит об офшорах для ИТ-компаний. Но в этой статье я расскажу о стране, которая граничит с Россией и предлагает, на удивление, очень соблазнительные условия для стартап-компаний в сфере информационных технологий. Проверено на себе! Погнали?

Гамарджоба, генацвале!

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

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

На момент нашего отъезда лишь единственный источник в интернете достаточно подробно рассказывал об условиях работы для грузинских IT-компаний. Данной информации оказалось достаточно, чтобы мы отправились в двухмесячную командировку в Тбилиси и на собственном опыте проверили нововведения этой страны.

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

Николай Прохоров: «Американские гиганты за счет массовости подавили все новое»

Reading time16 min
Views25K


Во второй части интервью музейному проекту DataArt Николай Прохоров — генеральный конструктор СМ ЭВМ и директор ИНЭУМ в 1983—2006 гг. — рассказывает о заводах, производивших советские компьютеры, процессе создания новых машин, творческой переработке и прямом заимствовании иностранных моделей, зарплатах, премиях, быте и отдыхе инженеров в СССР.
Читать дальше →

Самодельный рекуператор для загородного дома с КПД 80%

Reading time2 min
Views119K

image


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

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

Байесовская нейронная сеть — теперь апельсиновая (часть 2)

Reading time16 min
Views38K
Как вы думаете, чего в апельсине больше — кожуры, или, хм, апельсина?



Предлагаю, если есть возможность, пойти на кухню, взять апельсин, очистить и проверить. Если лень или нет под рукой — воспользуемся скучной математикой: объем шара мы помним из школы. Пусть, скажем, толщина кожуры равна от радиуса, тогда , ; вычтем одно из другого, поделим объем кожуры на объем апельсина… получается, что кожуры что-то около 16%. Не так уж мало, кстати.

Как насчет апельсина в тысячемерном пространстве?

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

  • во-первых, в тысячемерном гиперапельсине кожуры больше, чем мякоти
  • а во-вторых, ее больше примерно в 246993291800602563115535632700000000000000 раз

То есть, каким бы странным и противоречивым это ни казалось, но почти весь объем гиперапельсина содержится в ничтожно тонком слое прямо под его поверхностью.

Начнем с этого, пожалуй.

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

Байесовская нейронная сеть — потому что а почему бы и нет, черт возьми (часть 1)

Reading time16 min
Views94K
То, о чем я попытаюсь сейчас рассказать, выглядит как настоящая магия.

Если вы что-то знали о нейронных сетях до этого — забудьте это и не вспоминайте, как страшный сон.
Если вы не знали ничего — вам же легче, полпути уже пройдено.
Если вы на «ты» с байесовской статистикой, читали вот эту и вот эту статьи из Deepmind — не обращайте внимания на предыдущие две строчки и разрешите потом записаться к вам на консультацию по одному богословскому вопросу.

Итак, магия:


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

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

Карманная метеостанция

Reading time5 min
Views18K
Да, метеостанция — это про что-то, измеряющее огромное количество параметров от направления и силы ветра до уровня солнечной радиации, но более подходящего термина не нашлось, поэтому приходится вводить в заблуждение. А вот насчет размера, все по-честному.

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

Серийное производство электроники в России. Автоматизация тестирования

Reading time8 min
Views22K


Продолжаю рассказывать про наш опыт организации серийного производства коммерческой электроники.

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

Information

Rating
10,432-nd
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity