Как стать автором
Обновить
24
0

Пользователь

Отправить сообщение

Тандем Cpp/Graphviz для Описания Сложных ToolСhain(ов)

Уровень сложностиПростой
Время на прочтение19 мин
Количество просмотров3.2K

Разработка современного софта это далеко не только про код.

Разработка современного софта это во многом про ToolСhain(ы). Прежде чем начать исполняться исходники проходят гигантский путь. C каждым поколением выходят все более и более массивные системы сборки.
Современные технологии разработки софта это многостадийные конвейеры из различных утилит. Понять их весьма сложно. Однако поможет нам в этом хипстерский язык программирования Graphviz.

Читать далее
Всего голосов 13: ↑10 и ↓3+7
Комментарии8

Эмуляция видеоигр нейросетью

Время на прочтение12 мин
Количество просмотров19K
Я создал играбельный верхний мир Pokémon. Он очень похож на обычную видеоигру, можете попробовать сыграть в него в браузере здесь:


Хотя он похож на видеоигру, я не писал код игры. На самом деле это нейросеть, подражающая видеоигре.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии51

Как сдать английский язык на сертификат ESOL SELT В1 для визы Skilled Worker

Время на прочтение6 мин
Количество просмотров7.9K

Знакомый айтишник собрался подаваться на британскую визу. Среди прочих документов для подачи на Skilled Worker visa потребовался сертификат В1, которого у него не было, и надо было срочно готовиться к экзамену. Поэтому он обратился ко мне, как к преподавателю английского.  Делюсь собранными данными, своими рекомендациями, если вы соберетесь сдавать SELT В1, и личным опытом моего знакомого. Приложенные скриншоты взяты из видео LanguageCert с информацией по прохождению Listening/Reading/Writing /Speaking, которые доступны здесь и здесь. Материалы с пробными экзаменами, включая аудиоматериалы и ответы, можно скачать по ссылке.

Запись на сдачу, cтруктура экзамена и тайминг

Записаться в любой из центров можно здесь. Экзамен состоит из двух блоков (чтение/аудирование/письмо и устная часть) и в Армении проходит в American University of Armenia. Необходимо выбрать дату отдельно на обе части. Знакомый записывался на сдачу за месяц до экзамена. Он выбрал временные слоты таким образом, чтобы пройти все части за один день, и заплатил 235 долларов по карте он-лайн. 

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

Оба блока проходят он-лайн на компьютере с наушниками в лингафонном кабинете: open-space с отдельными столами и компьютерами для каждого студента. Устная часть - это интервью с сертифицированным инструктором. Темы базируются на ежедневных ситуаций и практическом опыте взрослого человека.

Читать далее
Всего голосов 7: ↑5 и ↓2+3
Комментарии6

Ламповые часы Nixie clock своими руками

Время на прочтение6 мин
Количество просмотров68K

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



Картинка кликабельна


Приятного чтения.

Под катом будет много фото...
Всего голосов 45: ↑44 и ↓1+43
Комментарии37

Автоматизация тестирования при разработке прошивок радиоэлектронных устройств

Время на прочтение11 мин
Количество просмотров9.2K

Занимательный факт. Исходный код программы бортового управляющего компьютера лунного модуля Аполлон 11 содержит 64830 строк. Исходные коды прошивок навигационного приемника, которые мы в МЭИ разрабатываем последние десять лет, содержат 217510 строчек на C++ и 181236 строчек на SystemVerilog. И я всё жду, когда это количество перейдет в качество.

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

Читать далее
Всего голосов 37: ↑36 и ↓1+35
Комментарии29

История создания первого по настоящему open-source Brain-computer interface устройства (DIY)

Время на прочтение7 мин
Количество просмотров10K

Crowdsupply - История создания интерфейса мозг-компьютер (Open-source DIY).

Читать далее
Всего голосов 26: ↑25 и ↓1+24
Комментарии25

Открытый курс машинного обучения. Тема 1. Первичный анализ данных с Pandas

Уровень сложностиПростой
Время на прочтение15 мин
Количество просмотров1M


Открытый курс машинного обучения mlcourse.ai сообщества OpenDataScience – это сбалансированный по теории и практике курс, дающий как знания, так и навыки (необходимые, но не достаточные) машинного обучения уровня Junior Data Scientist. Нечасто встретите и подробное описание математики, стоящей за используемыми алгоритмами, и соревнования Kaggle Inclass, и примеры бизнес-применения машинного обучения в одном курсе. С 2017 по 2019 годы Юрий Кашницкий yorko и большая команда ODS проводили живые запуски курса дважды в год – с домашними заданиями, соревнованиями и общим рейтингом учаcтников (имена героев запечатлены тут). Сейчас курс в режиме самостоятельного прохождения.

Читать дальше →
Всего голосов 44: ↑43 и ↓1+42
Комментарии61

Визуализация данных при отладке в Visual Studio Code

Время на прочтение2 мин
Количество просмотров15K


Вообще Debugger Visualizers для обычного Visual Studio — это очень старая тема (статья 2009 года), но не очень популярная. В большинстве случаев принято учить сразу дебажить, представляя процессы в голове, а штуки вроде сортировок и списков показываются на доске. В вебе часто визуальную часть предоставляет браузер, и все всем довольны. Но бывает, что списки или деревья в голове уже не умещаются, таблицы хочется отсортировать, а графики строить не выходя из среды отладки. Для всего этого и был создан плагин для VS Code — Debug Visualizer.
Читать дальше →
Всего голосов 26: ↑26 и ↓0+26
Комментарии0

Составляем DNS-запрос вручную

Время на прочтение7 мин
Количество просмотров50K
Об авторе. Джеймс Рутли — бэкенд-разработчик в компании Monzo.

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

Мы узнаем, как:

  • Написать запросы DNS в двоичном формате
  • Отправить сообщение в теле датаграммы UDP с помощью Python
  • Прочитать ответ от DNS-сервера

Писать в двоичном формате кажется сложным, но в реальности я обнаружил, что это вполне доступно. Документация DNS хорошо написана и понятна, а писать мы будем маленькое сообщение — всего 29 байт.
Читать дальше →
Всего голосов 21: ↑21 и ↓0+21
Комментарии8

Эмулятор RFID

Время на прочтение14 мин
Количество просмотров67K

Эмулятор карт EM Marine



Наверняка каждому из нас, кто хоть раз бывал в обычных офисах, было интересно, как же функционируют эти бесконтактные пропуска. В данной статье мы разберёмся с принципом работы бесконтактных карт и сделаем эмулятор буквально из трёх радиодеталей.
Читать дальше →
Всего голосов 172: ↑168 и ↓4+164
Комментарии91

Склеиваем несколько фотографий в одну длинную с помощью компьютерного зрения

Время на прочтение4 мин
Количество просмотров24K
В предыдущих статьях был описан шеститочечный метод разворачивания этикеток и как мы тренировали нейронную сеть. В этой статье описано, как склеить фрагменты, сделанные из разных ракурсов, в одну длинную картинку.
Читать дальше →
Всего голосов 101: ↑101 и ↓0+101
Комментарии30

Google говорит, университеты больше не нужны

Время на прочтение7 мин
Количество просмотров30K

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

Для многострадального образовательного сектора, который и без того осаждают проблемы вроде спада в числе абитуриентов, черепашьего темпа изменения учебных программ, затруднений с переходом на дистанционное обучение и слишком высокой стоимости, этот ход со стороны Google и его сотрудников, возможно станет началом давно назревающего цифрового переворота.
Читать дальше →
Всего голосов 26: ↑24 и ↓2+22
Комментарии126

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

Время на прочтение8 мин
Количество просмотров6.5K

Сейчас возможности Computer Vision (CV) полностью перекраивают ландшафт рынка Public Safety solutions. В то время как традиционными системами видеонаблюдения уже не просто никого не удивить, а странно не найти её в любом общественном месте, использование ИИ в данной области всё ещё вновинку.


Мы исследуем применение CV для различных бизнес-задач в сфере Public safety. В этом посте мы предлагаем вариант перевода видео с движущейся камеры в неподвижную систему координат для последующего анализа.


Полностью проект лежит на GitHub.




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


Зачем это нужно? Очень часто в задачах public surveillance видео, которое нужно анализировать, снято на движущуюся камеру. Из-за этого возникает несколько проблем в определении положения объектов относительно друг друга:


  • Непонятно, чем вызвано изменение координат объекта: движется камера или сам объект;
  • При смене сцены из-за поворота камеры разные объекты могут получить одни и те же координаты, даже если объекты были статичными.

image
Рисунок 1 — Одинаковые объекты имеют разные координаты из-за движения камеры


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


  1. Определить начало координат;
  2. Сопоставить между собой два последовательных фрейма;
  3. Найти преобразование, которое будет переводить координаты объекта на текущем фрейме в координаты относительно начала координат, при этом учитывать все движения камеры (поворот, перемещение, наклон и т.д.).

image
Рисунок 2 — проективное преобразование

Читать дальше →
Всего голосов 10: ↑10 и ↓0+10
Комментарии15

Выбираем канал для точки доступа Wi-Fi. Исчерпывающее руководство

Время на прочтение9 мин
Количество просмотров289K
2,4 ГГц — это плохо. 5 ГГц — это хорошо. 6 ГГц — это ещё лучше, но послезавтра. Все это знают, кого я тут учу, в самом деле. Всё это хорошо, только делать-то что, когда ты такой, как умный, открываешь какой-нибудь Wi-Fi Explorer, а там сатанизм и этажерки, как на скриншоте?



Шаг первый — поплакать. Шаг второй — нырнуть под кат. Вопрос простой, а ответ — нет.
Когда это нас останавливало?
Всего голосов 111: ↑110 и ↓1+109
Комментарии234

Портирование FreeModbus под STM32. Версия от Динара

Время на прочтение9 мин
Количество просмотров32K
Доброго времени суток, любители и профессионалы программирования на микроконтроллерах. Эта статья посвящена портированию библиотеки freemodbus на STM32F100 (тот, что в discovery vl). Да, на habrahabr уже есть подобная статья, но мне она кажется не самой удачной. Буду использовать Modbus RTU в режиме slave. Для успешного портирования библиотеки freemodbus на платформу без операционной системы, необходимо выполнить три шага:

1. прописать файл port.h
2. настроить таймер
3. настроить usart

Итак, план составлен — пора за работу.
Читать дальше →
Всего голосов 32: ↑32 и ↓0+32
Комментарии6

15 базовых советов по Git для эффективной работы каждый день

Время на прочтение5 мин
Количество просмотров60K

Привет, меня зовут Сергеев Сергей aka gurugray. Сейчас я «Mentor FrontEnd Community» в компании ManyChat. Вы могли видеть мои лекции по релизному циклу и регламенту работ с системами контроля версий в Школе Разработки Интерфейсов Яндекса (ШРИ).


Меня часто спрашивают какие life-hacks или best-practices я использую при работе с Git'ом и репозиториями проекта.


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


Читать дальше →
Всего голосов 72: ↑68 и ↓4+64
Комментарии63

Интеграция в проект LVGL графической библиотеки для микроконтроллеров

Время на прочтение4 мин
Количество просмотров31K
LVGL — Light and Versatile Graphics Library также известная как LittleVGL.


Библиотека поддерживает большое количество микроконтроллеров, таких как STM32, ESP32 и другие. Мне пока удалось запустить полноценную демо программу на ESP32 и STM32f429 Discovery. Библиотека открытая, поддерживает большое количество графических элементов с Dark and Light темами. Распространяется под MIT license. Можно свободно использовать даже в коммерческих продуктах. Можно посмотреть интерактивное Online Demo без установки на устройство
Всего голосов 39: ↑39 и ↓0+39
Комментарии56

Как я восстанавливал данные в неизвестном формате с магнитной ленты

Время на прочтение8 мин
Количество просмотров39K

Предыстория


Будучи любителем ретро железа, приобрёл я как-то у продавца из Великобритании ZX Spectrum+. В комплекте с самим компьютером мне достались несколько аудиокассет с играми (в оригинальной упаковке с инструкциями), а также программами, записанными на кассеты без особых обозначений. На удивление данные с кассет 40-летней давности хорошо читались и мне удалось загрузить почти все игры и программы с них.



Однако, на некоторых кассетах я обнаружил записи, сделанные явно не компьютером ZX Spectrum. Звучали они совершенно по-другому и, в отличие от записей с упомянутого компьютера, не начинались с короткого BASIC загрузчика, который обычно присутствует в записях всех программ и игр.

Какое-то время мне не давало это покоя — очень хотелось узнать, что скрыто в них. Если бы получилось прочитать аудио сигнал как последовательность байтов, можно было бы поискать в них символы или что-то, что указывает на происхождение сигнала. Своего рода ретро-археология.
Всего голосов 177: ↑177 и ↓0+177
Комментарии98

Очередная книга про разработку операционных систем

Время на прочтение4 мин
Количество просмотров14K
image

Приветствую!

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

Всё это время я также наблюдал на разных ресурсах посты о «разработке ОС», которые в основном сводились к выводу «hello world» в QEMU, и сетовал на то, что не нужно путать ОС и «программу, которая может работать на голом железе». ОС это совсем не про работу на железе, это, в первую очередь, про синхронизацию и все такое прочее.
Читать дальше →
Всего голосов 41: ↑40 и ↓1+39
Комментарии35

Коды избыточности: простыми словами о том, как надёжно и дёшево хранить данные

Время на прочтение11 мин
Количество просмотров31K


Так выглядит избыточность


Коды избыточности* широко применяются в компьютерных системах для увеличения надёжности хранения данных. В Яндексе их используют в очень многих проектах. Например, применение кодов избыточности вместо репликации в нашем внутреннем объектном хранилище экономит миллионы без снижения надёжности. Но несмотря на широкое распространение, понятное описание того, как работают коды избыточности, встречается очень редко. Желающие разобраться сталкиваются примерно со следующим (из Википедии):



Меня зовут Вадим, в Яндексе я занимаюсь разработкой внутреннего объектного хранилища MDS. В этой статье я простыми словами опишу теоретические основы кодов избыточности (кодов Рида — Соломона и LRC). Расскажу, как это работает, без сложной математики и редких терминов. В конце приведу примеры использования кодов избыточности в Яндексе.


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


* Под термином «коды избыточности» в статье подразумевается инженерный термин «erasure codes».

Читать дальше →
Всего голосов 62: ↑58 и ↓4+54
Комментарии32
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Челябинск, Челябинская обл., Россия
Дата рождения
Зарегистрирован
Активность