Рубрика «основы» - 2

В статье я хотел бы описать шаги на пути к написанию прошивки для микроконтроллеров stm32 без использования специальных сред разработки типа keil, eclipse и тому подобных. Я опишу подготовку прошивки с самых основ, начиная с написания загрузчика на ассемблере, скрипта для линкера и заканчивая основной программы на C. В коде на C буду использовать заголовочные файлы из CMSIS. Редактор кода может быть любым на ваш вкус, vim, emacs, блокнот, все что угодно. Для сборки проекта буду использовать утилиту make. Итак, начнем!
Читать полностью »

В последнее время мой приятель, отец семейства, не может договориться с сыном о выгуле собаки. В семье заведено, что с собакой гуляют все члены семьи по очереди. Но когда очередь доходит до сынишки, — мальчуган при первой возможности дурачит родителей, оставаясь дома и говоря, что собаку выгулял. Между отцом и сыном было несколько разговоров, и подросток в целом объяснял свою позицию: «Не хочу брать на себя ответственность за ваши с мамой решения!» Родители же непреклонны в желании научить сына брать ответственность.

Собака бывает кусачей
Фотобанк &#x24B8 Free Stock Images

Читать полностью »

Auto Layout занимается динамическим вычислением позиции и размера всех view в view иерархии, на основе constraints — правил заданных для того или иного view. Самый большой и очевидный плюс для разработчика в использовании Auto Layout в том, что исчезает необходимость в подгонке размеров приложения под определенные устройства — Auto Layout делает это за вас, динамически изменяя интерфейс в зависимости от внешних или внутренних изменений.

Примером внешних изменений может быть: Изменение размера окна в macOS, изменение ориентации экрана, различные размеры экранов.

Пример внутренних изменений: Изменение контента в окне, изменения в зависимости от языка и т.д.

Создать свой интерфейс можно 3-мя способами: программно, на основе маски, которая автоматически подстраивается под изменения или использовать Auto Layout.

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

Статья полезна тем, кому небезразлична их квалификация и хочется стать лучше. Учиться никогда не поздно.

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

image

Читать полностью »

image

Интерфейс можно считать своеобразным договором между системой и внешним окружением. В рамках компьютерной программы «система» — рассматриваемая функция или модуль, а «окружение» — весь остальной проект. Интерфейс формально описывает, какие данные могут передаваться между системой и окружением. А «реализацию» можно охарактеризовать как «система минус интерфейс». В языках наподобие Haskell интерфейсы могут быть крайне специфическими. А в языках вроде Python они, напротив, очень обыденны. Выбранный тип интерфейса может повлиять на размер созданного технического долга и производительность программиста. О том, как это посчитать, написано ниже. Также будет предложен метод для оценки и сравнения разных интерфейсов. На основании этих сравнений вы сможете сами понаблюдать за способами использования языка или программного инструмента.
Читать полностью »

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

В своё время я был, одержим идеей искусственного интеллекта. Когда я стал программистом, я понял, что всё не так просто, и можно сказать даже гораздо сложнее, чем казалось. Я не переставал работать над программами и осваивал все известные нынче языки программирования. Я пытался переложить на машину как можно больше собственных мыслительных процессов, и оказалось, что они занимали большие объемы кода и сами умели очень мало. Я пытался заставить программы учится, делать выводи, и использовать их в дальнейшем. Но все языки программирования имеют одинаковый недостаток – они не могут рассматривать алгоритмы, как данные. Программы не могут учиться, по тому, что они не имеют доступа к самим себе.
Читать полностью »

Добрый день, уважаемое сообщество.

Меня все время удивляли люди, которые понимают в радиоэлектронике. Я всегда их считал своего рода шаманами: как можно разобраться в этом обилии элементов, дорожек и документации? Как можно только взглянуть на плату, пару раз «тыкнуть» осциллографом в только одному ему понятные места и со словами «а, понятно» взять паяльник в руки и воскресить, вроде как почившую любимую игрушку. Иначе как волшебством это не назовёшь.

Расцвет радиоэлектроники в нашей стране пришёлся на 80-е годы, когда ничего не было и все приходилось делать своими руками. С той поры прошло много лет. Сейчас у меня складывается впечатление, что вместе с поколением 70-х уходят и знания с умением. Мне не повезло: половину эпохи расцвета меня планировали родители, а вторую половину я провёл играя в кубики и прочие машинки. Когда в 12 лет я пошёл в кружок «Юный техник» — это были не самые благополучные времена, и ввиду обстоятельств через полгода пришлось с кружком «завязать», но мечта осталась.

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

Итак, добро пожаловать в кружок начинающего радиолюбителя.
Читать полностью »

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

image

Читать полностью »

Программируем квадрокоптер на Arduino (часть 1)

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

У нас впереди:

  1. Базовые понятия.
  2. PID-регуляторы с интерактивной web-демонстрацией работы на виртуальном квадрокоптере.
  3. Собственно программа для Arduino и настроечная программа на Qt.
  4. Опасные тесты квадрокоптера на веревке. Первые полёты.
  5. Крушение и потеря в поле. Автоматический поиск с воздуха средствами Qt и OpenCV.
  6. Окончательные успешные тесты. Подведение итогов. Куда дальше?

Материал объемный, но постараюсь уложиться в 2-3 статьи.
Сегодня нас ожидает: спойлер с видео, как наш квадрокоптер полетел; базовые понятия; PID-регуляторы и практика подбора их коэффициентов.Читать полностью »

A n00b y0u areКогда-то книга “Совершенный код” Стива МакКоннела произвела на меня большое впечатление. Я лично думаю, что эту книгу обязательно должен прочесть каждый, кто зарабатывает на жизнь написанием кода. Особенно настоятельно я рекомендую эту книгу новичкам.

Настоящие размышления о программирования посвящаются главе 33 “Личность” и тем, кто решил связать свою жизнь с разработкой программного обеспечения.
Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js