Рубрика «разработка» - 29

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

В этом руководстве я расскажу о том, как использовать Google Таблицы в роли базы данных. Рассмотренный мной учебный проект будет оснащён API, работать с которым можно по HTTP. Здесь мы воспользуемся Autocode — платформой для разработки Node.js-API, поддерживающей удобный редактор кода. Мы развернём простое приложение и организуем процесс прохождения аутентификации Google. Кроме того, я расскажу об ограничениях Google Таблиц, среди которых можно отметить возможности их применения в больших проектах. Я расскажу и о ситуациях, в которых тем, кто пользуется Google Таблицами, есть смысл поискать более продвинутые альтернативы.

Об ответственном использовании Google Таблиц в роли баз данных - 1


База данных, основанная на электронной таблице
Читать полностью »

Я смотрел какой-то фильм, у одного из героев которого был волшебный шар, отвечающий на вопросы. Мне тогда подумалось, что неплохо было бы сделать такой же, но цифровой. Я порылся в своих запасах электронных компонентов и посмотрел, есть ли у меня то, что нужно для сборки такого шара. В дни пандемии мне не хотелось заказывать что-то без крайней нужды. В результате я обнаружил трёхосевой акселерометр, дисплей для Nokia 5110, плату Arduino Pro Mini и ещё кое-какие мелочи. Этого мне должно было хватить и я принялся за работу.

Делаем волшебный шар на основе Arduino Pro Mini - 1
Читать полностью »

Статические методы Atomics.wait() и Atomics.notify() представляют собой низкоуровневые примитивы синхронизации, которые можно применять для реализации мьютексов и других подобных механизмов. Но, так как метод Atomics.wait() является блокирующим, его нельзя вызывать в главном потоке (если попытаться это сделать — будет выдана ошибка TypeError).

Движок V8, начиная с версии 8.7, поддерживает неблокирующий вариант Atomics.wait(), называемый Atomics.waitAsync(). Этим новым методом можно пользоваться в главном потоке.

Использование Atomics.wait(), Atomics.notify() и Atomics.waitAsync() - 1

Сегодня мы расскажем о том, как применить эти низкоуровневые API для создания мьютекса, который может работать и в синхронном режиме (в потоках воркеров) и асинхронно (в потоках воркеров или в главном потоке).
Читать полностью »

Низкоуровневое программирование микроконтроллеров tinyAVR 0-series - 1

Вы — 8-битный или 32-битный программист? Мы, в компании OMZLO, сосредоточили основные усилия на новых 32-битных ARM Cortex-чипах (STM32 и SAMD), которые, в сравнении с более старыми 8-битными микроконтроллерами (Micro Controller Unit, MCU) обычно предлагают больше RAM, более высокую производительность, поддержку большего количества периферийных устройств. И всё это — за ту же, или за более низкую цену. Но 8-битные MCU ещё не утратили своей актуальности. В частности, компания Microchip выпустила новую серию чипов, «tinyAVR 0-series», которые, в сравнении с AVR-чипами, выпущенными ранее, дают возможность работать с более современной периферией. Новые чипы, при этом, отличаются весьма привлекательной ценой. Возникает такое ощущение, что эти чипы отлично подойдут для разработки простых устройств, которым не нужны те возможности, что предлагают более новые 32-битные MCU. 8-битные микроконтроллеры, кроме того, значительно легче программировать, что приводит к увеличению скорости разработки программной части устройств, создаваемых на их основе.

Благодаря успеху Arduino UNO в интернете можно найти множество руководств, разъясняющих особенности программирования 8-битных микроконтроллеров ATmega328 и их собратьев вроде ATtiny85. Речь идёт о прямом доступе к регистрам без использования языка программирования, используемого для Arduino, и без применения IDE, созданных производителями чипов, вроде Atmel Studio. Чтобы в этом убедиться — просто поищите в Google по словам «atmega328 blinky». Для программирования микроконтроллеров вам понадобится лишь C-компилятор для AVR, текстовой редактор, avrdude и AVR-программатор. На некоторых ресурсах даже можно найти руководства, посвящённые тому, как, пользуясь универсальными макетными платами, «завести» ATmega328. Правда, если говорить о более новых чипах tinyAVR 0-series, по ним найти информацию такого рода непросто.
Читать полностью »

Мне удалось раздобыть старые ведомые часы, которые, если судить по их серийному номеру, выпущены в 1960-х годах. Это — Pragotron PJ 27, версия на 12В. Они были сделаны в Чехословакии, в них используется механизм PS-1.

Разработка ведущих часов для Pragotron PJ 27 базе ESP32 с синхронизацией времени по NTP - 1


Ведомые часы

Такие часы обычно применялись в организациях, где использовалась система единого времени. Например — в школах, на заводах и в других подобных местах. Изначально работу таких часов обеспечивали большие механические ведущие часы. Позже механические часы заменили на электронные.
Читать полностью »

Я руковожу проектом по разработке и производству детских конструкторов из фанеры с самых первых дней. Не самый простой проект. Копировать чужие бизнес-модели мы принципиально не стали. Нам пришлось изобретать колесо.

История от первого лица: Наш стартап по разработке и изготовлению детских конструкторов из фанеры - 1
Читать полностью »

В последнее десятилетие достигнуты значительные успехи в сфере разработки инструментов непрерывной интеграции (Continuous Integration, CI) и непрерывного развёртывания (Continuous Delivery, CD). Развитие технологий интеграции разработки и эксплуатации ПО (Development Operations, DevOps) привело к быстрому росту спроса на CI/CD-инструменты. Существующие решения постоянно улучшаются, стремясь идти в ногу со временем, выходят их новые версии, в мире контроля качества ПО (Quality Assurance, QA) постоянно появляется множество новых продуктов. При таком богатстве выбора подбор подходящего инструментария оказывается нелёгкой задачей.

Битва Jenkins и GitLab CI-CD - 1

Среди всех существующих CI/CD инструментов существуют два проекта, на которые, определённо, стоит обратить внимание тому, кто ищет что-то из этой сферы. Речь идёт о Jenkins и об инструменте GitLab CI/CD, который является частью платформы GitLab. У Jenkins имеется более 16000 звёзд на GitHub. Репозиторий GitLab на gitlab.com набрал чуть больше 2000 звёзд. Если сравнить популярность репозиториев, то окажется, что Jenkins набрал в 8 раз больше звёзд, чем платформа, в состав которой входит GitLab CI/CD. Но при выборе CI/CD-инструмента это — далеко не единственный показатель, на который стоит обращать внимание. Есть и масса других, и это объясняет то, что во многих сравнениях Jenkins и GitLab CI/CD оказываются очень близко друг к другу.
Читать полностью »

Мы, выбирая фреймворк для нового веб-проекта, обычно склонны останавливаться на инструментах, с которыми знакомы, не обращая внимания на то, насколько хорошо они подходят для этого проекта. Я же пробую поступать с точностью до наоборот. Всякий раз, когда у меня возникает такая возможность, я испытываю новые технологии. Что я узнал после таких экспериментов? Почему я, в итоге, считаю своим стандартным инструментом для создания статических сайтов (static site generator, SSG) Next.js?

Почему я выбрал Next.js, а не Gatsby, Gridsome или Nuxt? - 1

В этом материале я расскажу о том, как я экспериментировал с разными веб-технологиями. Речь пойдёт о поиске подходящего инструмента в рамках Jamstack, о том, как выбирать именно то, что подойдёт разработчику и хорошо интегрируется в его проект, о том, почему я выбрал Next.js.
Читать полностью »

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

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

Улучшение Python-кода: 12 советов для начинающих - 1

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

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

Raspberry Pi — это, может, и не единственный одноплатный компьютер (single-board computer, SBC) на рынке, но он, определённо, является самым популярным. Raspberry Pi пользуется огромное количество людей, он является центром экосистемы, в которую входит множество официальных и неофициальных ресурсов и изделий — от книг и дополнительного оборудования до форумов и учебных курсов. Raspberry Pi снабжён отличной, поддерживаемой в актуальном состоянии документацией. Благодаря Raspberry Pi Foundation регулярно выходят новые модели SBC, появляются и усовершенствования моделей предыдущих поколений. Raspberry Pi, учитывая его серьёзную вычислительную мощность, отлично показывает себя в роли настольного компьютера. Он подходит и тем, кто занимается программированием.

Лучшие IDE для Raspberry Pi - 1


Raspberry Pi

Из этого материала вы узнаете о том, почему Raspberry Pi имеет смысл рассматривать как компьютер, подходящий для разработчика ПО. Здесь же мы поговорим о выборе интегрированной среды разработки (integrated development environment, IDE). Среди рассмотренных IDE можно найти инструменты для программирования практически на любом языке.
Читать полностью »


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