Search
Write a publication
Pull to refresh
1
Alexander Stellove @AlLSTLread⁠-⁠only

Software Engineer

Send message

Toolbox для исследователей — третий выпуск: поиск источников и работа с ними

Reading time4 min
Views3.7K
Работа над любым исследовательским проектом включает в себя поиск и изучение множества источников информации. Организация этого процесса — непростая задача. Сегодня мы расскажем об инструментах, которые призваны оптимизировать различные ее составляющие.



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

GRUB: Получаем полный доступ к системе

Reading time3 min
Views99K
GRUB, безусловно, является самым продвинутым загрузчиком на сегодняшний день, и за это любим админами и разработчиками по всему миру. Его функционал настолько широк, что он практически монополизировал рынок загрузчиков в мире *NIX, а некоторые вообще говорили, что GRUB2 — это скорее маленькая операционная система, чем просто загрузчик. Эдакий швейцарский нож в мире загрузчиков.

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

Математическая структура столкновений элементарных частиц

Reading time6 min
Views6.5K

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




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

К счастью, они могут выдавать в целом точные предсказания, не прорабатывая всю эту загадочную математику до конца. Укорачивая вычисления, учёные с Большого адронного коллайдера в европейском ЦЕРН делают предсказания, совпадающие с событиями, которые они потом наблюдают при столкновениях субатомных частиц, несущихся с огромной скоростью по 26-километровому треку.

Зашел в офис Ардуино; поговорили о ПЛИС-ах; требуются добровольцы

Reading time3 min
Views15K
Сегодня утром я заходил в офис калифорнийского отделения Ардуино. Там было межкомпанейское совещание по образовательным программам, на которое меня пригласил менеджер из AMD Тимур Палташев. В конце мероприятия возникла любопытная дискуссия:

Вот сейчас школьников учат программировать Ардуино и другие устройства на основе микроконтроллеров и встроенных процессоров (Лего, Расберри Пай итд). А вот в 1970-е годы школьников учили здесь же, в Калифорнии, собирать схемы на макетной плате, на транзисторах и микросхемах малой степени интеграции (7400 TTL, CMOS 4000 итд) с элементами И-ИЛИ-НЕ и D-триггерами. Это как бы и прогресс — на микроконтроллере можно написать программу, которая бы осмысленно двигала роботической рукой, чего трудно сделать на индивидуальных логических элементах, но как мы вырастим школьников, которые бы умели проектировать (не программировать) сами микроконтроллеры?

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



Идея учить школьников по всему фронту цифровой схемотехники и встроенного программирования звучит хорошо теоретически, но как воплотить это в жизнь?
Читать дальше →

Искусство программирования под Unix (и не только). Часть первая, «правило модульности»

Reading time4 min
Views13K
Последние лет десять я ищу на рынке программистов, делаю с ними большие и маленькие подвиги, преимущественно в области веб-разработок. Но, к сожалению, все меньше и меньше находится достойных кандидатов. Работают годами над одними и теми же задачами, клонируя имеющиеся решения и их недостатки. Спрашиваешь про то, что достиг — а в ответ рутинные, банальные вещи. Автоматизация окошек — вот то, чем занимается большинство из таких программистов. А на действительно сложные задачи как было мало специалистов, так и остается по сей день.

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

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

Эрик Реймонд выделяет 17 правил этой «философии». Я буду посвящать по одной заметке на каждое правило. Я постараюсь изложить эти концепции в максимально понятной, упрощенной и популярной форме, насколько это будет возможно.

Начнем с самого первого правила — Правила модульности. Оно звучит так: «Простые блоки связывайте друг с другом ясными и понятными интерфейсами» (Rule of Modularity: Write simple parts connected by clean interfaces).

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

Открываем набор на бесплатные курсы по программированию и разработке под FPGA

Reading time4 min
Views18K
Всем привет! Одно из видений нашей компании звучит следующим образом: Мы создаём знания и делимся ими

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

И я с радостью спешу сообщить, что с 1 ноября мы начинаем курсы по следующим направлениям:

  • Разработка под FPGA
  • Программирование микроконтроллеров
  • Системное программирование в Linux
  • Измерение качества телекоммуникационных каналов
  • Основы программной инженерии

Количество мест ограничено, поэтому естественно присутствует входное тестирование.

Прочитать подробности и записаться на курсы можно тут.

А под катом история появления курсов и более подробная информация о направлениях, учебных планах и входном тестировании. Добро пожаловать!
Читать дальше →

Учимся читать научные статьи у Эндрю Ына из Стэнфорда

Reading time6 min
Views18K

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

Альберт Эйнштейн

Каждому, кто серьёзно занимается машинным обучением, необходимо научиться понимать то, что публикуется в научных статьях. Подобные публикации делают учёные, находящиеся на переднем крае исследований в соответствующих областях. Это — искусственный интеллект (AI, Artificial Intelligence), машинное обучение (ML, Machine Learning), глубокое обучение (DL, Deep Learning) и многие другие сферы.



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

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

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

40 лет анализа больших объёмов данных в Физике Высоких Энергий: интервью с Рене Браном

Reading time13 min
Views3.7K
За 40 лет своей карьеры в ЦЕРН (Международная Лаборатория Ядерных Исследований расположенная в Женеве) Рене Бран (Rene Brun) разработал ряд программных пакетов, которые стали широко использоваться в Физике Высоких Энергий. За этот фундаментальный вклад он был недавно награжден специальным призом Отделения Физики частиц Высоких Энергий Общества Европейской Физики (EPS). Мы поговорили с ним о ключевых событиях этой истории.

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

Сделаем код чище: Пару слов об управляемых ресурсах в ядре Linux для драйверов устройств

Reading time4 min
Views15K
Наблюдая за появляющимися драйверами в ядре Linux, не могу не отметить, что разработчики недостаточно хорошо знают инфраструктуру ядра, точнее внутренний API, значительно упрощающий жизнь при написании драйверов устройств. Сегодня я коснусь темы, посвящённой управляемым ресурсам. В частности поясню каким образом они работают и как упрощают разработку драйверов.
Читать дальше →

Сделаем код чище: Нюансы вывода отладочных сообщений в драйверах Linux

Reading time2 min
Views5.2K
Как многим извесно вывод отладочных сообщений в Linux в отношении драйверов осуществляется несколькими подмножествами макросов и функций. Не все аналоги взаимозаменяемы и работают так, как кажется логичным на первый взгляд. Вот об этом и пойдёт речь в этой короткой заметке.
Читать дальше →

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

Reading time5 min
Views24K
Этот пост будет интересен для тех, кто хочет посмотреть, как выглядит российское высокотехнологическое производство электронного оборудования, а именно встраиваемых систем.



Для тех, кто не знает, что такое встраиваемые системы, простыми словами – это процессорные платы и периферийные модули различных форматов, например, CompactPCI, PC/104, MicroPC, которые встраиваются в разнообразные системы: от промышленной автоматизации до телекоммуникационного оборудования.

Для тех, кто все это знает – не принимайте на свой счет.
Читать дальше →

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

Reading time3 min
Views20K
Одна из самых заметных проблем, с которыми сталкиваются разработчики встроенных систем, — это разнообразие технических требований к организации внешнего интерфейса ввода-вывода. Независимо от того, будь то Ethernet с оптическим или «медным» физическим уровнем передачи данных, аналоговый интерфейс или гигабитный последовательный интерфейс, разработчикам системы требуется набор средств для эффективного создания необходимого сочетания интерфейсов в вычислительной системе.


Мезонинный модуль стандарта FMC
Читать дальше →

Программирование МК AVR на языке assembler в среде Linux

Reading time11 min
Views44K

Введение


Ни для кого не секрет, что микроконтроллеры семейства AVR прочно вошли в практику домашних поделок. Кроме того, уже несколько лет наблюдается массовое (на грани эпидемии) увлечение отладочными платами типа Arduino, построенными на базе все тех же AVR. Не буду судить, хорошо это или плохо, ибо статей на эту тему на ресурсе более чем достаточно. Хочу уберечь и моего читателя от споров на тему «что такое Arduino и хорошо это или плохо». Статья не об этом.

Рано или поздно для любого «ардуиньщика» (при условии что он хочет выйти на более высокий профессиональный уровень) наступает момент когда в рамках платформы Arduino ему становится тесно и он начинает задумываться о том а что же в действительности происходит под капотом. И ответы на все его вопросы уже есть, например в виде замечательного курса «AVR. Учебный курс» от глубокоуважаемого DIHALT. Если вы пользователь OS Windows, то и недостатка в инструментах разработки у вас не будет, достаточно бесплатной Atmel Studio, закрывающей все вопросы разработки ПО для МК AVR.

Хоть я и тимлид в коллективе разработчиков ПО прикладного уровня, вопросы «железа» которое в нашей конторе делается на базе AVR с недавних пор стали интересовать меня очень остро. Возникло желание хорошо разобраться во всех аспектах разработки ПО для МК. И так как я являюсь убежденным приверженцем использования в разработке OS на базе ядра Linux, меня заинтересовал вопрос, а как там в линуксах: можно/нельзя ли писать и отлаживать ПО, зашивать его в кристалл с тем же (или примерно тем же) уровнем удобства, который нам доступен в Windows. Тех кого тоже интересует этот вопрос, и в особенности тех, кому тема поста кажется надуманной, приглашаю под кат.
Читать дальше →

Самая доступная плата для экспериментов с SoC'ом MCU&FPGA

Reading time2 min
Views11K
Технологии шагают вперёд. И вот уже несколько лет как есть SoC’и MCU+FPGA. И на
КДПВ платка как раз с таким SoC’ом.

image

Это — Microsemi SmartFusion 2 Maker-Board. Кому интересно, что это за плата прошу под кат. Будет краткий обзор.
Читать дальше →

Начни с себя, или 60 дней Kubuntu

Reading time5 min
Views76K


В продолжении предыдущей статьи «Как Prius, но только на Linux» мне хотелось бы рассказать о собственном опыте смены рабочей среды. Перед тем как переводить офисные рабочие станции, всегда лучше ставить эксперименты на себе. И я решил поставить себе Linux на пару месяцев. В качестве операционной системы для экспериментов был выбран свежий дистрибутив Kubuntu 18.04, а о подводных камнях, с которыми я столкнулся и о хрониках эксперимента расскажу под катом.


Этот материал будет полезен тем, кому любопытно попробовать Linux в повседневности, но лень наступать сразу на все грабли.

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

Тесты на pytest с генерацией отчетов в Allure с использованием Docker и Gitlab Pages и частично selenium

Reading time18 min
Views110K

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


Пример отчета, получающийся в allure


Рабочий репозиторий с финальной версией рабочего кода и инфраструктуры


Ссылка на отчеты после прогона тестов


Когда я хотел добавить в gitlab автотесты в стеке python, allure, docker, то я выяснил, что толковых статей на эту тему нет. Пришлось разбираться самостоятельно и как результат проб и ошибок появилась эта статья, которая скорее является гайдом, частично затрагивающим написание тестов, но наибольший фокус именно на выстраивании инфраструктуры. Если у вас уже написаны тесты на allure, то вы сразу можете переходить к разделу настройки инфраструктуры. Отмечу, что текст НЕ затрагивает написание UI тестов, но я затрону инфраструктуру для них в отдельном блоке.

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

Китай планирует обогнать США в разработке чипов. Насколько это реально?

Reading time5 min
Views13K


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

КНР до сих пор сохраняет пятилетний горизонт планирования, текущая пятилетка уже 14-я в истории страны. В октябре план должен быть утвержден лидерами страны, после чего на реализацию проекта развития отечественной полупроводниковой инфраструктуры выделят более триллиона долларов США. По мнению аналитиков, Китай хорошо понимает, что страна, которая владеет технологией производства современных чипов, если не правит всем остальным миром, то в состоянии оказывать сильнейшее давление на другие государства.
Читать дальше →

Курс лекций «Основы цифровой обработки сигналов»

Reading time12 min
Views217K
Всем привет!

Часто ко мне обращаются люди с вопросами по задачам из области цифровой обработки сигналов (ЦОС). Я подробно рассказываю нюансы, подсказываю нужные источники информации. Но всем слушателям, как показало время, не хватает практических задач и примеров в процессе познания этой области. В связи с этим я решил написать краткий интерактивный курс по цифровой обработке сигналов и выложить его в открытый доступ.

Большая часть обучающего материала для наглядного и интерактивного представления реализована с использованием Jupyter Notebook. Предполагается, что читатель имеет базовые знания из области высшей математики, а также немного владеет языком программирования Python.


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

Как объяснить бабушке, что такое Agile за 15 минут с картинками

Reading time7 min
Views1.2M
«Любое дело всегда длится дольше, чем ожидается, даже если учесть закон Хофштадтера.»
— закон Хофштадтера

image

Самый просматриваемый ролик на YouTube по теме agile. 744 625 просмотров на момент публикации данной статьи. Легкий стиль изложения, картинки и всего 15 минут — лучшее что я видел. TED отдыхает.

За счет чего TDD “драйвит” разработку

Reading time9 min
Views12K

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

Поэтому я не хотел писать еще одну статью с описанием техники Red-Green-Refactor. Мне хотелось взглянуть на TDD немного глубже и описать, как и почему TDD влияет на поведение человека.

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

Читать далее

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity