Pull to refresh
1
0
Дмитрий Бондарев @dvbondarev

Аналитика, data science, разработка, преподавание

Send message

«Я его обучу, а он уйдёт». Формула, которая должна остаться шуткой

Level of difficultyMedium
Reading time7 min
Views45K

«Я его обучу, а он уйдёт». Формула, которая должна остаться шуткой

— Я их обучу, а они уйдут!
— Ты бойся, что ты их не обучишь, а они останутся.

/Старая менеджерская шутка/

Росстат говорит о падении уровня безработицы на 24% с марта 2021 года по январь 2023. Хорошо это или плохо – вопрос дискуссионный, но для HR – это сигнал бедствия. Стоимость найма и удержания сотрудника выросла не только среди рабочих специальностей, но и в IT, где рынок “соискателя” традиционно набирает обороты. Некоторые владельцы бизнеса не хотят вкладываться в развитие сотрудников. Зачем, если типичной стратегией квалифицированных специалистов становится смена работы каждые 2-3 года? Как говорил кот Матроскин: «Мы его, можно сказать, на помойке нашли, отмыли, очистили от очисток, а он нам фигвамы рисует…»

Тем не менее, развитие сотрудников – это действенный способ повышения лояльности и удержания специалистов. Мы поговорили с соучредителем HR-tech компании «Улей» Александром Григоряном, чтобы понять, как сделать сотрудников соратниками, ценными специалистами и не бояться при этом их потерять. 

Читать далее
Total votes 32: ↑26 and ↓6+20
Comments120

Создание своего терминала на C++ и Qt: Часть 1

Level of difficultyMedium
Reading time5 min
Views12K

Привет, хабр! Сегодня мы создадим свой собственный терминал на языке программирования C++. Я являюсь фанатом Linux, и пользуюсь минималистичными терминальными программами - от Vim как IDE до чатов. Есть множество терминалов, у каждого из них есть плюсы и минусы. Наш терминал не будет претендовать на место серьезного проекта, но если вы хотите улучшить код, который мы сегодня напишем - то вы молодцы, можете без проблем развить наш терминал.

Это будет небольшой, минималистичный терминал для Linux. Он будет на основе фреймворка Qt 5 и библиотеки qtermwidget5.

И эта будет не одна статья, а целая серия статей!

Вперед!
Total votes 12: ↑9 and ↓3+6
Comments22

Вкатываемся в Machine Learning с нуля за ноль рублей: что, где, в какой последовательности изучить

Level of difficultyEasy
Reading time26 min
Views165K

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

Читать далее
Total votes 159: ↑157 and ↓2+155
Comments49

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

Level of difficultyEasy
Reading time5 min
Views3.3K

Знаем, что на Хабре сидят те, кто либо уже открыл свой бизнес в ИТ, либо об этом задумывается. Мы часто работали с начинающими предпринимателями, которые до этого были разработчиками, и ещё не успели переключиться с одной роли на другую.

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

А на деле приходится тащить весь бизнес в одиночку, и помощи ждать неоткуда. Конкуренты давят и отнимают потенциальных клиентов. Сотрудники не хотят работать, они безынициативные и создают проблемы. Потому приходится ишачить с утра до ночи, лишь бы остаться на плаву.

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

Читать далее
Total votes 10: ↑5 and ↓50
Comments21

Разбор работы FIFO на микроархитектурном тренажере

Level of difficultyMedium
Reading time1 min
Views4.1K

FIFO – ключевая концепция в хардварном дизайне. Понимание работы FIFO необходимо, в частности, для понимания протокола valid/ready, который в свою очередь необходим для организации flow-control как внутри цифровых блоков так и на межблочном уровне.

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

Микроархитектурный тренажер дает возможность «прощупать» хардварные сценарии в пошаговом (интерактивном) режиме, предоставляя детальную визуализацию цифровой логики.

Поскольку тренажер является "фронтендом" для HDL симулятора то на самом симуляторе исполняется реальный, синтезируемый SystemVerilog который можно посмотреть и даже поменять его функциональность.

Смотреть видео и читать дальше
Total votes 21: ↑20 and ↓1+19
Comments17

Разработка BIOS на языках высокого уровня

Level of difficultyHard
Reading time11 min
Views23K
Ничего лишнего: материнская плата, видеокарта и ROM-BIOS

Меня давно волнует вопрос, как подступиться к разработке на голом железе, на чистом си. Хотелось понять, каким же образом идёт запуск BIOS, u-boot, grub и прочих первичных загрузчиков. Ведь необходимо перейти от ассемблера к тёплому ламповому си и соблюсти условие, собрать всё это в линукс любимым компилятором gcc.

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

Здесь я хочу свести основные моменты разработки BIOS в одном месте и разобраться обо всех проблемах, которые я получил во время своих опытах в разработке (первая и вторая части).
Читать дальше →
Total votes 134: ↑133 and ↓1+132
Comments58

Как я вывел математический способ определить степень вашей финансовой свободы

Reading time11 min
Views41K

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

Читать далее
Total votes 63: ↑59 and ↓4+55
Comments164

Toyota: 81 514 нарушений в коде

Reading time5 min
Views101K


Люди: — Эй, Тойота, мы тут посчитали, у вас из-за корявой электроники и софта 89 человек погибло с 2000 по 2010.
Тойота: — Да они сами виноваты, путают педали.
Люди: — Хьюстон, у нас проблемы.
NASA: — Ща разберемся, нам надо 10 месяцев и 3 миллиона долларов.
Люди: — На.
Тойота: — 3 миллиона мало, вот вам еще сверху кэшем.
(прошло 10 месяцев)
NASA: — Эй, Тойота, мы у вас пару ошибок в коде нашли, а точнее 7134 нарушения стандартов MISRA, рекурсию, функцию на 740 строк и 9000 глобальных переменных.
Тойота: — А у нас свои стандарты. А вы ваще на Луну летали?
NASA (публично): — Тойота ни в чем не виновата.
(Акции Тойота подскочили на 4,6%)
Люди: — Ну ё-моё.
(спустя 3 года)
Два американских тестировщика (у которых дедушки погибли в Перл-Харбор): — Нет багов? А если найдем?
Total votes 131: ↑123 and ↓8+115
Comments268

10 правил, которые позволяют NASA писать миллионы строк кода с минимальными ошибками

Reading time3 min
Views159K

image
Маргарет Гамильтон стоит рядом с написанным ей исходным кодом бортового компьютера «Аполлона»


Лаборатория реактивного движения (Jet Propulsion Laboratory) — научно-исследовательский центр НАСА, ответственный за большинство беспилотных космических кораблей США. Там пишут много кода, и права на ошибку у них намного меньше, чем у обычных программистов.


В JPL пишут на Си, и на их сайте есть документ "JPL Institutional Coding Standard", описывающий жесткие стандарты кодирования внутри организации. Они напоминают правила программирования для встроенных (embedded) систем и систем реального времени, с ограниченными ресурсами. Но многие из правил эти просто принципы хорошего программирования. Ограничение сложности, максимальное упрощение для последующего чтения кода и отладки, отсутствие побочных эффектов. Мы в Хекслете постоянно говорим об этом в вебинарах и, конечно, в самих курсах. Мы считаем очень важным как можно раньше поднимать эти темы, поэтому про функции и побочные эффекты начинаем говорить в самом первом курсе «Основы программирования», который рассчитан на новичков. Это бесплатный курс, кстати, и в нем есть практика на языке JavaScript.


Спасибо хабраюзеру Boletus за важную поправку и дополнение:
В 2006 году Gerard Holzmann с коллективом сформулировал 10 основных правил для JPL в документе «The Power of 10: Rules for Developing Safety-Critical Code». Они вошли в основу нынешнего стандарта, наряду с MISRA C и другими дополнениями. Статья в Википедии.


Вот перевод этого списка.

Читать дальше →
Total votes 92: ↑80 and ↓12+68
Comments118

Теория радиоволн: аналоговая модуляция

Reading time4 min
Views236K
image

Продолжаем серию общеобразовательных статей, под общим названием «Теория радиоволн».
В предыдущих статьях мы познакомились с радиоволнами и антеннами:

Давайте ближе познакомимся с модуляцией радиосигнала.
Читать дальше →
Total votes 69: ↑60 and ↓9+51
Comments65

50 (или 60) лет разработки процессоров… ради этого?

Reading time12 min
Views52K
«Закон масштабирования Деннарда и закон Мура мертвы, что теперь?» — пьеса в четырёх действиях от Дэвида Паттерсона

«Мы сжигаем мосты, по которым сюда мчимся, не имея других доказательств своего движения, кроме воспоминаний о запахе дыма и предположения, что он вызывал слёзы» — «Розенкранц и Гильденштерн мертвы», абсурдистская пьеса Тома Стоппарда

15 марта д-р Дэвид Паттерсон выступил перед аудиторией из примерно 200 наевшихся пиццы инженеров. Доктор вкратце изложил им полувековую историю конструирования компьютеров с трибуны в большом конференц-зале здания E в кампусе Texas Instruments в Санта-Кларе во время лекции IEEE под названием «50 лет компьютерной архитектуры: от центральных процессоров до DNN TPU и Open RISC-V». Это история случайных взлётов и падений, провалов и чёрных дыр, поглотивших целые архитектуры.

Паттерсон начал с 1960-х годов и новаторского проекта IBM System/360, основанного на ранних работах Мориса Уилкса по микропрограммированию 1951 года. По меркам IT это было давным-давно… Ближе к концу выступления Паттерсон показал потрясающую диаграмму. Она наглядно демонстрирует, как именно смерть закона масштабирования Деннарда, за которой следует смерть закона Мура, полностью изменили методы проектирования компьютерных систем. В конце он объяснил посмертные технологические последствия этих потрясений.
Читать дальше →
Total votes 52: ↑51 and ↓1+50
Comments81

Изучаем MIPS-ассемблер

Reading time7 min
Views64K


Как говорит Википедия, MIPS – микропроцессор, разработанный компанией MIPS Computer Systems (в настоящее время MIPS Technologies) и впервые реализованный 1985 году. Существует большое количество модификаций этой архитектуры, созданных специально для 3D-моделирования, быстрой обработки чисел с плавающей запятой, многопотоковых вычислений. Различные варианты этих процессоров использутся в роутерах Cisco и Mikrotik, смартфонах, планшетах и игровых консолях.

Инструкции MIPS достаточно просты для понимания, и именно с него рекомендуется начинать изучение ассемблера. Чем сейчас, собственно, и займёмся.
Читать дальше →
Total votes 71: ↑67 and ↓4+63
Comments20

Любовь, 3D-печать и роботы: сезон DIY на Хабре

Reading time30 min
Views36K

Было бы нелегко объяснить нашим далёким предкам концепцию Do It Yourself. Предки бы удивились: а кто ещё, собственно, do, кроме yourself? Срубить избу, соткать полотно, вырезать ложку-плошку — навыки, которыми крестьянин прошлых веков не стал бы даже особо хвастать. 

Уатт своими руками сделал паровую машину. Харли с Дэвидсоном собрали первый мотоцикл в сарае. Хьюлет и Паккард создали свой первый продукт в гараже. Сегодня же многие паникуют и вызывают мастера, если заискрила розетка или заело замок. Но есть и те, кто продолжает славные традиции прошлого и творит в своём гараже такое, что удивился бы даже Уатт.

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

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

Читать далее
Total votes 58: ↑55 and ↓3+52
Comments30

Выбор структур данных для самописного текстового редактора

Level of difficultyMedium
Reading time13 min
Views10K

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

Ресурсы


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

  • Build Your Own Text Editor — наверно, самый фундаментальный пост о создании текстового редактора с нуля, который я видел. Это превосходный туториал на случай, если вы хотите начать писать собственный текстовый редактор. Стоит заметить, что в редакторе из этого туториала в качестве внутренней структуры для текста используется, по сути, вектор строк.
  • Text Editor: Data Structures — отличный обзор множества структур данных, которые можно использовать при реализации текстового редактора. (Спойлер: как минимум одна из них будет рассмотрена в моём посте)
  • Плейлист Ded (Text Editor) на YouTube — это потрясающая серия, в которой @tscoding фиксирует процесс создания с нуля текстового редактора. Эти видео стали для меня источником вдохновения.

Зачем?


Если в сети есть так много хороших ресурсов о создании собственного текстового редактора (не говоря уже о том, что уже существует множество феноменальных текстовых редакторов), то зачем я это пишу? На то есть несколько причин:

  1. Я хотел заняться проектом, непохожим ни на один свой прошлый.
  2. Я хотел создать инструмент, которым смогу пользоваться.
  3. Мне всегда хотелось глубже разобраться с созданием собственных структур данных.
Читать дальше →
Total votes 60: ↑59 and ↓1+58
Comments18

Swin Transformer V1 и V2 — лучшие модели компьютерного зрения не на основе CNN

Reading time5 min
Views2.8K

Трансформеры широко используются в операциях, связанных с обработкой естественного языка (Natural Language Processing. NLP), а в последнее время также часто применяются во многих задачах компьютерного зрения, поскольку они моделируют глобальные и действующие на дальнем расстоянии связи, а также семантическую информацию изображений лучше, чем CNN, поскольку последняя является более локализованной.

Читать далее
Total votes 12: ↑11 and ↓1+10
Comments0

60 антипаттернов для С++ программиста, часть 10 (совет 46 — 50)

Level of difficultyEasy
Reading time7 min
Views5.1K

1053_60_cpp_antipatterns_ru/image2.png


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

Читать дальше →
Total votes 12: ↑11 and ↓1+10
Comments15

Многопоточность и Thread Pool в C++

Level of difficultyEasy
Reading time18 min
Views28K

Привет, Хабр! Я неожиданно созрел для написания первой статьи тут. За время работы в сфере IT у меня появилась своя собственная библиотека на языке C++, которая медленно, но верно обрастает различными полезными модулями. Не все включаемые в нее модули написаны мною с нуля, но я всегда стараюсь так или иначе адаптировать их под свои нужды. Сегодня у меня появилось непреодолимое желание поделиться с вами некоторыми фрагментами моей библиотеки.

Читать далее
Total votes 10: ↑8 and ↓2+6
Comments12

Делаем тетрис под FPGA

Reading time9 min
Views39K
Всем привет!

imageНа этих долгих новогодних выходных я задался вопросом: насколько легко написать какую-то простенькую игрушку на FPGA с выводом на дисплей и управлением с клавиатуры. Так родилась еще одна реализация тетриса на ПЛИС: yafpgatetris.


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


Если интересно, как можно запускать игру без операционной системы, реализуя её на самом низком уровне, с помощью триггеров и комбинационной логики, добро пожаловать под кат.

Читать дальше →
Total votes 57: ↑57 and ↓0+57
Comments24

Цифровая фильтрация на ПЛИС – Часть 2

Reading time23 min
Views94K


Всем привет!

Это вторая публикация на тему «Цифровая фильтрация на ПЛИС». Вторая часть будет посвящена практической реализации КИХ фильтров на FPGA. В процессе подготовки материала я понял, что она раздуется до небывалых размеров, но делить ее на несколько частей не хочется. Поэтому все тонкости теории и синтеза FIR фильтров будут в одной статье, разбитой на взаимосвязанные разделы. Начну обзор с теоретической части, в частности — расскажу об особенностях и методах расчета коэффициентов фильтров. Подробно рассмотрю создание КИХ фильтров в различных средах — MATLAB, CoreGENERATOR, Vivado HLS. Всех заинтересовавшихся прошу под кат.
Читать дальше →
Total votes 2: ↑2 and ↓0+2
Comments0

Цифровая фильтрация на ПЛИС – Часть 1

Reading time9 min
Views70K
Всем привет!

Давно хотел начать цикл статей, посвященных цифровой обработке сигналов на ПЛИС, но по разным причинам так и не мог к этому приступить. К счастью, в распоряжении появилось немного свободного времени, поэтому периодически я буду публиковать материалы, в которых отражены различные аспекты, связанные с ЦОС на ПЛИС.


В этих статьях я постараюсь минимизировать теоретическое описание тех или иных алгоритмов и большую часть материала посвятить практическим тонкостям, с которыми столкнулся лично я и мои коллеги, и знакомые, так или иначе связанные с разработкой на ПЛИС. Надеюсь, данный цикл статей принесет пользу, как начинающим инженерам, так и матёрым разработчикам.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments13
1
23 ...

Information

Rating
Does not participate
Location
Новосибирск, Новосибирская обл., Россия
Registered
Activity