Pull to refresh
20
0
Максим @maxim_koksharov

Software engineer

Send message

Учим три телевизора делать солнышко

Level of difficultyEasy
Reading time29 min
Views51K

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

Осторожно, трафик!
Total votes 285: ↑282 and ↓3+328
Comments97

Пока смерть не разлучит нас или всё о static в C++

Reading time8 min
Views192K


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

Читать дальше →
Total votes 9: ↑7 and ↓2+7
Comments23

10 полезных книг: от разработчиков и для разработчиков

Reading time5 min
Views27K
Чтение книг — по-прежнему прекрасный способ открыть нечто новое или научиться чему-то, особенно если вы разработчик, чтобы оставаться востребованным в изменчивой индустрии.
В этой подборке я представлю 10 фантастических книг для разработчиков, которые написали разработчики. Здесь не будет привычных общепринятых книг, которые вы найдете в любой подборке «мастрид для программистов», в этой статье — вручную отобранные сокровища от экспертов с проверенным послужным списком.


Приятного чтения!
Total votes 41: ↑25 and ↓16+15
Comments9

Сравнение компиляторов ARMCC, IAR и GCC

Reading time2 min
Views14K
image
Я работаю над одним проектом, который с большим трудом вмещается в 64к памяти микроконтроллера. И подумалось мне, что возможно, пора взглянуть на разные компиляторы, чтобы выбрать какой более агрессивно может уменьшить размер программы.

Представляю вашему вниманию небольшое сравнение.
Читать дальше →
Total votes 15: ↑14 and ↓1+20
Comments46

Сборка очень компактного планшетного ПК на базе Core i7

Reading time11 min
Views48K
Привет, Хабр! Хочу рассказать о своем порядком затянувшемся пет-проекте по сборке самодельного достаточно мощного планшетного ПК. Процесс еще не завершен, текущее состояние можно назвать «работающим прототипом». Но некоторые предварительные результаты достигнуты, и я хочу поделиться основными идеями.


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

Программисты, ходите на собеседования

Reading time9 min
Views73K

Картинка взята из видеоролика с канала «Воинствующие Аметисты»

Около 10 лет я работал системным программистом под Linux. Это модули ядра (kernel space), различные демоны и работа с железом из пространства пользователя (user space), различные загрузчики (u-boot и др.), прошивки контроллеров и многое другое. Даже иной раз случалось пилить web-интерфейс. Но чаще бывало, что приходилось и с паяльником посидеть, да с проектировщиками печатных плат взаимодействовать. Одна из проблем такой работы это то, что достаточно сложно оценить уровень своей компетенции, поскольку одну задачу ты можешь знать очень глубоко, а рядом можешь не знать совсем. Единственный адекватный способ понять куда идти, и какие течения сейчас есть – это ходить на собеседования.

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

В статье будет небольшой конкурс с призами.
Total votes 61: ↑55 and ↓6+67
Comments366

Молодожены, которых Интел привез в Калифорнию, дали интервью в лабнике от ВШЭ МИЭМ. Как повторить их достижение

Reading time2 min
Views5.6K


Я уже рассказывал про молодоженов Владислава и Елену Шаршиных, который вместе с их коллегой Андреем Папушиным компания Intel привезла в Калифорнию за серебряную победу на конкурсе InnovateFPGA. Их интервью есть в недавно вышедшем лабнике «Цифровой синтез». Этот лабник мы собираемся использовать на семинаре для школьников и младших студентов, который пройдет 15-17 сентября на выставке ChipEXPO в Сколково. Если вы собираетесть повторить (или превысить) достижение Шаршиных и Папушина, или просто стать FPGA или ASIC designer-ом, не выезжая в Санта-Клару, то участие в семинаре, или даже просто просмотр начальных инструкций в этом посте — поможет вам начать.

Многие из зарегистрировавшихся на семинар уже получили FPGA платы (их раздачей занимается образовательное отделение РОСНАНО) за прохождение теоретического пререквизита. Теперь было бы очень желательно, если бы участники семинара заранее установили Intel FPGA Quartus (или, если кто-нибудь не любит Intel / Altera, то Xilinx Vivado), и запустил на нем хотя-бы примитивный тест. Даже не мигание LED, а вообще один логический элемент XOR. Если все это сделают заранее, то на семинаре мы будем обсуждать не тривиальные проблемы типа «у меня драйвер для USB Blaster не находится», а что-нибудь поинтереснее, например что спрашивают на интервью на позицию RTL Logic Designer-а в NVidia, AMD, Apple и другие компании.
Total votes 11: ↑5 and ↓60
Comments4

IT на YouTube: что посмотреть в рабочий перерыв

Reading time6 min
Views31K


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


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


А сегодня мы в JUG Ru Group запускаем новый сезон разговорных YouTube-шоу, привязанных к нашим IT-конференциям — и это как раз соответствует запросу. Поэтому я решил сделать общий пост: и о том, какие форматы IT-видеоконтента встретил, и конкретно о наших передачах. Смело дополняйте в комментариях своими YouTube-рекомендациями, наверняка я не знаю многого крутого.

Читать дальше →
Total votes 23: ↑20 and ↓3+24
Comments16

Жестокая правда будней программиста: 8 наблюдений

Reading time8 min
Views79K
Несколько лет я писал код, а мне за это платили. За это время я узнал о некоторых неприятных вещах, касающихся работы программиста. Мне всегда хотелось написать об этом. Надеюсь, вы понимаете, что я рассказываю вам всё это не для того, чтобы вас расстроить. Я считаю эту статью особым нигилистическим подарком для всех, кто готов такой подарок принять.



Материал я построил так: сначала, в заголовке раздела, я кратко описываю сделанное мной неприятное наблюдение, потом привожу истории из жизни, обзор ситуации, рассказываю о том, что с ней связано, и завершаю раздел краткими выводами. Читая этот материал, помните о том, что в мире существует баланс между белым и чёрным, между хорошим и плохим.
Читать дальше →
Total votes 88: ↑54 and ↓34+39
Comments96

Обновление для IDE EmBitz 1.11

Reading time3 min
Views8.8K
На официальном форуме появилось обновление для IDE EmBitz 1.11. Оно включает в себя расширенный список поддерживаемых микроконтроллеров STM32, обновленные версии библиотек CMSIS, SPL, HAL и LL, а также текущую версию компилятора gcc-arm-none-eabi-9-2020-q2-update и GDB сервер EBlink, необходимый для прошивки и отладки микроконтроллеров.
Читать дальше →
Total votes 11: ↑11 and ↓0+11
Comments24

Три дороги для программиста: эксперт, руководитель, основатель

Reading time15 min
Views24K

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

С разрешения Сергея мы публикуем все три видео и их текстовую расшифровку.

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

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Views489K
Всем привет!

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


Читать дальше →
Total votes 102: ↑100 and ↓2+135
Comments54

Не прыгайте выше головы — останетесь тупицей в плену больших денег

Reading time5 min
Views54K


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

Такую чушь может сказать человек, который не знает, что у структур есть пустой конструктор по умолчанию, который нельзя ни убрать, ни переопределить. Знаете почему я этого не знал? Да, потому что я никогда их не использовал. Ведь хорошего разрабовского опыта у меня мизер. Я давно уже не хочу читать книжки про сишарп. Зачем, если мне и так платят?
Читать дальше →
Total votes 120: ↑75 and ↓45+54
Comments183

Алгоритм сортировки quadsort

Reading time11 min
Views9.5K

Вступление


Эта статья описывает стабильный нерекурсивный адаптивный алгоритм сортировки слиянием под названием quadsort.

Четверной обмен


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

    if (val[0] > val[1])
    {
        tmp[0] = val[0];
        val[0] = val[1];
        val[1] = tmp[0];
    }

В четверном обмене происходит сортировка с помощью четырёх подменных переменных (своп). На первом этапе четыре переменные частично сортируются в четыре своп-переменные, на втором этапе они полностью сортируются обратно в четыре исходные переменные.


Этот процесс показан на диаграмме выше.
Читать дальше →
Total votes 30: ↑30 and ↓0+30
Comments2

Предвзятый и субъективный взгляд на резюме разработчика

Reading time9 min
Views26K

Привет! Недавно мои коллеги из hh.ru провели вебинар, где разбирали резюме разработчика. Я решил поделиться своей точкой зрения на этот счет.


image


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

Читать дальше →
Total votes 31: ↑25 and ↓6+25
Comments30

Собеседование наоборот: вопросы соискателя к компании

Reading time6 min
Views76K
Всем привет! Хочу очередной раз поднять тему про найм. Только я собираюсь поговорить об этом с точки зрения кандидата, а не работодателя. Ведь собеседование, вопреки многим стереотипам, процесс двусторонний — вопросы может задавать не только интервьюер, но и сам соискатель. За прошлый год я провёл порядочное количество собеседований, и абсолютное большинство кандидатов огорчило меня отсутствием вопросов о компании, всего 5 человек стали меня расспрашивать о работе.

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

image
Читать дальше →
Total votes 114: ↑108 and ↓6+125
Comments131

Управление в стиле Догвилль

Reading time8 min
Views41K
Начальник заставляет работать по ночам или в выходные? Орёт при всех матом? Позволяет себе пошлые шутки? Коллеги постоянно и настоятельно требуют помощи? Премию так и не дают, а зарплату не повышают? Ваше возмущение вызывает, в лучшем случае, смех?

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

Этот подход в общении и, особенно, управлении используют примерно все, причём – бессознательно. Даже дети и животные. Поглядим, как он работает.
Читать дальше →
Total votes 103: ↑91 and ↓12+114
Comments124

Принципы SOLID в картинках

Reading time4 min
Views468K


Если вы знакомы с объектно-ориентированным программированием, то наверняка слышали и о принципах SOLID. Эти пять правил разработки ПО задают траекторию, по которой нужно следовать, когда пишешь программы, чтобы их проще было масштабировать и поддерживать. Они получили известность благодаря программисту Роберту Мартину.

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

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

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

Ну, приступим.
Читать дальше →
Total votes 57: ↑52 and ↓5+54
Comments26

10 советов схемотехнику

Reading time20 min
Views121K
Недавно один мой знакомый, начавший интересоваться электроникой и схемотехникой, обратился ко мне с просьбой дать ему какие-то практические советы по разработке электронных устройств. Поначалу этот вопрос немного озадачил меня: как-то так получилось, что для себя я никогда не выделял какие-то перечни обязательных правил проектирования, всё это было у меня где-то на уровне подсознания. Но этот вопрос послужил хорошим толчком для того, чтобы сесть и сформулировать хотя бы небольшой список таких рекомендаций. Когда все было готово, я подумал, что, возможно, это будет интересно почитать кому-то еще, таким образом и получилась данная статья.


Читать дальше →
Total votes 158: ↑156 and ↓2+208
Comments245

systemd десять лет спустя. Историческая и техническая ретроспектива

Reading time18 min
Views50K
Десять лет назад был анонсирован systemd, который устроил революцию в управлении системой дистрибутивов Linux, тем самым разделив пользователей Linux на несколько лагерей. Качество и природа дебатов не сильно улучшилась со времён пламенных войн 2012-2014 годов, и systemd всё ещё остаётся не до конца понятым и изученным инструментом и с технической, и с общественной стороны, несмотря на пристальное внимание к нему сообщества.

Это пост не совсем о том, как пользоваться systemd. Тут, скорее, будет говориться об истории его возникновения, о его компонентах в целом, и о том, как понять систему, которая начиналось как просто PID 1 и стала тем, что я бы назвал middleware современного дистрибутива Linux.

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

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

Но прежде чем начать речь о systemd, хочу рассказать об init.
Читать дальше →
Total votes 76: ↑74 and ↓2+93
Comments438
1

Information

Rating
Does not participate
Location
Португалия
Registered
Activity

Specialization

Embedded Software Engineer, System Software Engineer
Senior