Pull to refresh
5
0
Клюев Андрей @BBird

Программист

Send message

Вы в Самом Деле Хотите Стать Программистом Микроконтроллеров?

Level of difficultyEasy
Reading time57 min
Views69K

В этом тексте я напишу о буднях программиста МК в РФ.

Что вообще пишут программисты МК и на чем?

Основной язык программирования это С. Языку С уже более 50лет. Кроме микроконтроллеров С уже практические никому не нужен. Навыки программирования на С очень слабо конвертируются. В свое время, видимо на С написали компилятор для С++ и нужда в С для desktop как таковая отпала. A сам С остался для сборки артефактов для микроконтроллеров с экстремально малыми ресурсами. Хотя и сейчас большинство компаний в ЕС уже микроконтроллерные сборки собирают на С++ 17. 

Иногда программистам MК приходится обсчитывать аналоговые цепи и вычислять какие-то сложные 8-этажные формулы и строить графики. Для этого практикуют бесплатный интерпретатор Python.

Главным образом программисты МК составляют Board Support Package, пишут драйверы для новых умных периферийных чипов, пишут загрузчики, портируют RTOS(ы) на разные процессорные ядра, пишут код-генераторы, скрипты сборки, составляют модульные тесты, изредка производят рефакторинг, часто чинят ошибки в Legacy коде, изредка что-то изменяют в коде Assembler(а), который запускается до вызова функции main().

Иногда программист МК даже ничего не пишет сам вообще. Важно уже не сколько уметь программировать сколько уметь тестировать и собирать, улучшать из готового кода из интернета. Какие-то исходники можно взять из github или ядра Linux. Там есть код на многие темы. Драйверы для множества чипов.  Важно уметь верифицировать найденные сорцы и аккуратно подключить их к нужной сборке.

Читать далее
Total votes 135: ↑110 and ↓25+122
Comments403

Из инженера в менеджеры: быть или не быть

Reading time11 min
Views5K

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

Читать далее
Total votes 13: ↑7 and ↓6+1
Comments1

Лучшие книги по Golang: что стоит почитать как начинающему, так и опытному разработчику

Reading time6 min
Views67K

Мы в Quadcode любим Golang и можем рассказать о языке и его преимуществах много интересного. Все это неспроста - не так давно мы переписали некоторые наши продукты или отдельные их модули именно на Go, чему радуемся до сих пор. Подробности самых интересных кейсов вскоре планируем раскрыть на Хабре, а пока что поделимся подборкой любимых книг, которые посвящены этому языку. Некоторые из них подходят для начинающих разработчиков, другие - для программистов с опытом. Объединяет все представленные в подборке книги одно - они могут оказаться ну очень полезными для тех, кто так или иначе связан с Go. Подборка - под катом, и, кстати, если вы уже читали какую-то из рекомендованных нами книг, расскажите о своих впечатлениях в комментариях. Поехали!

Да, кстати, еще одна ремарка - некоторые книги переведены на русский, некоторые - нет. Если перевода (пока, как хотелось бы надеяться) нет, то мы об этом скажем.

Читать далее
Total votes 7: ↑6 and ↓1+7
Comments15

HTTPs-сервер с сертификатом Let's Encrypt на Go

Reading time2 min
Views9.1K

У меня есть приложение на Go, в котором в одном из потоков работает простой HTTP сервер. К этому серверу обращаются по HTTPS. Запрос приходит на Pound - HTTP/HTTPS reverse-proxy and load-balancer и перенаправляется в приложение. TLS сертификат изготавливается и обновляется с помощью Let's Encrypt.
  
Простая и привычная схема. Правда, чаще в этой схеме бывает Nginx, но в этой статье мы не будем рассуждать, почему Pound, а не Nginx. Все очень хорошо, но меня последнее время начинает раздражать, когда к простому и понятному коду на Go нужно прикрутить небольшого динозаврика с пять-шестью скриптами на Ansible, закатать все это в деплой и радоваться тому, как это все славно улеглось в небольшой виртуалке.

Читать далее
Total votes 9: ↑6 and ↓3+4
Comments3

Стелем мягкую соломку на жёсткий Flutter: как подготовиться к первому проекту, чтобы не провалить его

Reading time17 min
Views8.9K

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

Читать далее
Total votes 19: ↑18 and ↓1+19
Comments5

Модель-полиглот: как мы учили GPT-3 на 61 языке мира

Reading time10 min
Views9.1K

Генеративные языковые модели уверенно обосновались в практике Natural Language Processing (NLP). Большие предобученные трансформеры двигаются сразу в трёх направлениях: мультимодальность, мультизадачность и мультиязычность. Сегодня мы расскажем про последнюю — о том, как учили модель на основе GPT-3 на 61 языке мира.

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

Этим релизом мы хотим привлечь внимание к развитию NLP для языков стран СНГ, а также народов России. Для многих из представленных языков эта модель стала первой авторегрессионной языковой моделью. 

Модель доступна в двух вариантах размеров: mGPT XL на 1,3 миллиарда параметров — в открытом доступе, а mGPT 13B — будет доступна в ML Space SberCloud.

Читать далее
Total votes 25: ↑23 and ↓2+27
Comments30

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

Reading time12 min
Views36K

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

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

Нелегко применять софты: быть открытым, уверенным, проявлять эмпатию.

Тяжело даются one-on-one, фидбек и общение, особенно когда надо поговорить не про работу, а про что-то еще.

То есть многие просто не знают, что делать, когда становятся тимлидами: сначала им сложно и некомфортно, у них не получается или получается не то, а ожидания бизнеса и команды не очень понятны. А потом им непонятно, как можно те самые sotf skills развивать, если каждый one-on-one отнимает массу сил. 

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

Читать далее
Total votes 28: ↑25 and ↓3+26
Comments29

Как умереть со своими зубами в 90 лет

Reading time11 min
Views42K

КТ челюсти. Очень важная вещь для составления календаря планового лечения.

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

  1. Идеальный. От рождения до смерти следить за зубами.
  2. Типовой. Обратить внимание на свои зубы в возрасте примерно 30–40 лет. Вылечить кариес, наладить правильную гигиену. Это когда не просто горизонтальными движениями щёткой по зубам. И зайти к ортодонту и ортопеду. Если вы достоверно точно знаете, что с опорным аппаратом зубов у вас всё ОК, то можете пропустить этот шаг.
  3. Сложный. Когда вам уже 60 лет и вставную челюсть не хочется. Это, конечно, уже не про экономию, а про съёмные протезы и профилактику пародонтита.

Сегодня поговорим про календарь планового лечения, про то, что человек должен делать с начала своей жизни и в течение, чтобы у него с зубами было всё хорошо или, по крайней мере, прогнозируемо. В общем, этот пост — про экономию: как грамотно инвестировать в свои зубы и исходя из составленного плана управлять сроками, бюджетом и процессом лечения.
Читать дальше →
Total votes 42: ↑37 and ↓5+45
Comments48

Сохранение данных для ESP32/Arduino в удаленной базе MySQL и не только

Reading time13 min
Views11K


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

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

Микросервисный фреймворк Flogo — собираем систему из кирпичиков

Reading time8 min
Views4.6K

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

Читать далее
Total votes 7: ↑6 and ↓1+5
Comments1

Отчёт с митапа: PostgreSQL-as-Service — можем, умеем, практикуем

Reading time1 min
Views4.9K

Выкладываем запись с Ozon Tech PostgreSQL Meetup. Ранее я уже описывал нашу инфраструктуру: весь PostgreSQL основан на виртуальных машинах — 2К в тестовой среде и ~8К в проде. Это около 2К кластеров баз данных. Так как у нас микросервисная архитектура, мы придерживаемся принципа 1 сервис = 1 база. Нагрузка на базы может быть приличная: 2-2,5 млн транзакций в секунду, а WAL-трафик порядка 1.5 ГБ/c. 

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

Видео и слайды под катом
Total votes 14: ↑14 and ↓0+14
Comments10

Как управлять командой разработки

Reading time9 min
Views15K

Привет! Я Иван Антипин, заместитель директора департамента разработки в AGIMA. За свою карьеру я поработал с десятками команд. Где-то был разработчиком, где-то тимлидом, где-то помогал извне. У меня был миллион возможностей разобраться, как люди ведут себя в коллективе. Но всё же не на все вопросы существуют четкие ответы: что такое команда, как она работает, как ей управлять. В этой статье я попробую описать те методы и подходы, которые лично мне кажутся полезными и правильными.

Читать далее
Total votes 27: ↑22 and ↓5+17
Comments14

Играю в Pac-Man, не испытывая дефицита в монетках. Или как собрать свой аркадный автомат

Reading time5 min
Views4.1K

Привет! Я Илья, разработчик игр в Beeline Казахстан. Люблю изучать игры и однажды понял: платформ много, о существовании каких-то я даже не знаю — пора мне тоже заняться аркадами.

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

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

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

Insert Coin
Total votes 16: ↑15 and ↓1+17
Comments9

Три вещи, которые сделают тебя продуктивнее

Reading time8 min
Views12K

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

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

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

Читать далее
Total votes 19: ↑15 and ↓4+14
Comments23

Советы начинающим тимлидам: как работать с командой, выбраться из ловушки токсичного специалиста и не сойти с ума

Reading time11 min
Views15K

Привет, Хабр! Меня зовут Никита Пимошенко, я тимлид команды Billing API в Quadcode. Сегодня поделюсь советами и кейсами из практики, которые пригодятся начинающим тимлидам.

Читать далее
Total votes 21: ↑16 and ↓5+16
Comments23

Атрибуты Xорошей PCB

Level of difficultyEasy
Reading time5 min
Views14K

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

Этот перечень сформировался в результате реальных инцидентов.

Читать далее
Total votes 31: ↑24 and ↓7+30
Comments82

Где искать работу в IT?

Reading time5 min
Views211K

Ты решил «Войти в Айти» или уже работаешь в IT и хочешь найти место получше. Где же найти работу и не потратить на это несколько месяцев?

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

Читать далее
Total votes 14: ↑7 and ↓7+5
Comments18

11 Aтрибутов Хорошего Firmware

Level of difficultyEasy
Reading time6 min
Views18K

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

Читать далее
Total votes 41: ↑36 and ↓5+46
Comments114

JavaScript: разрабатываем чат с помощью Socket.io, Express и React с акцентом на работе с медиа

Reading time25 min
Views27K



Привет, друзья!


В данной статье я хочу показать вам, как разработать простое приложение для обмена сообщениями в режиме реального времени с использованием Socket.io, Express и React с акцентом на работе с медиа.


Функционал нашего приложения будет следующим:


  • при первом запуске приложение предлагает пользователю ввести свое имя;
  • имя пользователя и его идентификатор записываются в локальное хранилище;
  • при повторном запуске приложения имя и идентификатор пользователя извлекаются из локального хранилища (имитация системы аутентификации/авторизации);
  • выполняется подключение к серверу через веб-сокеты и вход в комнату main_room (при желании можно легко реализовать возможность выбора или создания других комнат);
  • пользователи обмениваются сообщениями в реальном времени;
  • типом сообщения может быть текст, аудио, видео или изображение;
  • передаваемые файлы сохраняются на сервере;
  • путь к сохраненному на сервере файлу добавляется в сообщение;
  • сообщение записывается в базу данных;
  • пользователи могут записывать аудио и видеосообщения;
  • после прикрепления файла и записи аудио или видео сообщения, отображается превью созданного контента;
  • пользователи могут добавлять в текст сообщения эмодзи;
  • текстовые сообщения могут озвучиваться;
  • и т.д.

Репозиторий с исходным кодом проекта.


Если вам это интересно, прошу под кат.

Читать дальше →
Total votes 8: ↑6 and ↓2+6
Comments3

Анонимизация базы данных или как быть уверенным, что ты не нарушаешь закон “О персональных данных”

Reading time22 min
Views13K

В настоящее время практически все ИТ-продукты работают с персональной информацией пользователя: ФИО, телефон, e-mail, паспортные и другие идентифицирующие данные. Для  обеспечения защиты прав и свобод, человека и гражданина при обработке его персональных данных в Российской Федерации существует Федеральный закон от 27.07.2006 N 152-ФЗ “О персональных данных”.

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

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

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

Читать далее
Total votes 9: ↑6 and ↓3+8
Comments5

Information

Rating
Does not participate
Location
Барнаул, Алтайский край, Россия
Registered
Activity