Pull to refresh
0
Andi Leman @Miscarooread⁠-⁠only

User

Send message

TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей

Reading time17 min
Views6.6K
TDD для микроконтроллеров. Часть 1: Первый полет
TDD для микроконтроллеров. Часть 2: Как шпионы избавляют от зависимостей
TDD для микроконтроллеров. Часть 3: Запуск на железе


В предыдущей статье мы начали освещать тему эффективности применения методологии TDD для микроконтроллеров (далее – МК) на примере разработки прошивки для STM32. Мы выполнили следующее:


  1. Определили цель и инструменты разработки.
  2. Настроили IDE и фреймворк для написания тестов.
  3. Написали тест-лист для разрабатываемого функционала.
  4. Создали первый простой тест и запустили его.

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

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

Я добавляю 3-25 секунд задержки сайтам, которые посещаю

Reading time2 min
Views44K


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

В индустрии программного обеспечения, все гонятся за ускорением всего и вся.

Доход и многие вещи влияющие на него, по мнению многих «авторитетных» компаний зависит от задержки на вашем сайте. Чем задержка меньше, тем выше конверсия, люди проводят больше времени на сайте, успевают потребить больше информации и так далее.
Читать дальше →
Total votes 38: ↑30 and ↓8+34
Comments97

Мой бот для Russian AI Cup 2019

Reading time10 min
Views11K


Так уж получилось, что этот чемпионат стал для меня первым, где я смог занять достойное место, за которое не стыдно, поэтому и статью решил тоже написать только сейчас. Путь, которым я шел к этому месту: 1192-е место на чемпионате 13-го года, 241-е на чемпионате 17-го года, 91-е на чемпионате 18-го года и, наконец, 16-е (и 5-е в песочнице) место на этом.
Читать дальше →
Total votes 44: ↑44 and ↓0+44
Comments14

Измерения малых ёмкостей (аналоговый ёмкостной датчик)

Reading time3 min
Views20K
Предлагаю сообществу датчик малых ёмкостей, работающий почти от 0 пФ. Можно использовать в любительской электронике, роботостроении.

Разрабатывая хобби-электронику, мне понадобился какой-нибудь простой датчик расстояния на ёмкостном эффекте. Поискав в Интернете, нашёл только датчики касания, но они имеют малое расстояние срабатывания и дискретный выход. Другие же датчики слишком сложные или с долгой настройкой. Нужен был очень простой и дешёвый, работающий от микроконтроллера. Что получилось — под катом…
Читать дальше →
Total votes 26: ↑26 and ↓0+26
Comments30

«Культурный код: секреты чрезвычайно успешных групп и организаций» — заметки из книги

Reading time10 min
Views7.9K
Я прослушал книгу "Культурный код" Даниела Койла ("The Culture Code: The Secrets of Highly Successful Groups" by Daniel Coyle) после прочтения отрывка, который оставил впечатление «вот оно!»

Вся книга оказалась на том же уровне, что и вступление. Она полностью поменяла мое представление о работе в командах. Пока из всех книг о работе которые я прочитал, я думаю что «Культурный код» повлиял на меня больше всего. На второе место и третье место я бы поставил "В работу с головой" Кэла Ньюпорта ("Deep Work" by Cal Newport) и "Принципы" Рэя Далио ("Principles: Life and Work" by Ray Dalio).

На мой взгляд, «Культурный код» обязателен к прочтению всем, кто работает в команде.

Этот пост — мои заметки из книги.
Читать дальше →
Total votes 6: ↑5 and ↓1+8
Comments14

Методы регрессионного анализа в Data Science

Reading time5 min
Views19K
Накануне запуска курса «Математика для Data Science. Продвинутый курс» мы провели открытый вебинар на тему «Методы регрессионного анализа в Data Science». На нём познакомились с понятием линейных регрессий, изучили, где и как их можно применять на практике, а также узнали, какие темы и разделы математического анализа, линейной алгебры и теории вероятностей используются в этой области. Преподаватель — Петр Лукьянченко, преподаватель НИУ ВШЭ, руководитель технологических проектов.




Если мы говорим о математике в контексте Data Science, мы можем выделить три наиболее часто решаемые задачи (хотя задач, разумеется, больше):
Читать дальше →
Total votes 10: ↑8 and ↓2+10
Comments2

Нововведения JavaScript ES2020 с простыми примерами

Reading time3 min
Views53K
Представляем вам перевод статьи из блога Carlos Caballero на сайте Medium.com. Ранее мы публиковали материал этого автора о функциях ES10, появившихся в 2019 году.

Читать дальше →
Total votes 22: ↑15 and ↓7+13
Comments27

Знаменитые уравнения жидкости дали течь

Reading time8 min
Views26K

Исследователи столетиями искали примеры ситуаций, в которых уравнения Эйлера для гидродинамики идеальной жидкости окажутся неверными. И вот, наконец, такой пример нашли математики.



При сближении колец жидкости в определённых упрощённых случаях описывающие их движения уравнения Эйлера не работают

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

Эти уравнения представляют собой идеализированное математическое описание движения жидкости. В границах определённых предположений они моделируют распространение волн на пруду или просачивание патоки из банки. Они должны уметь описывать движение любой жидкости в любых условиях – и более двух столетий всё так и было.
Total votes 29: ↑21 and ↓8+21
Comments33

Three.js и геометрия

Reading time4 min
Views8K

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

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

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

Дизайн-мышление в проектном управлении или зачем менеджеру проектов нужны креативные техники

Reading time5 min
Views6.1K
Да, а действительно, зачем руководителю проекта брать на себя ещё и задачи по дизайн-мышлению? Руководитель проекта и так занят координацией, ускорением и приоритезацией всего того, что без него не движется.



Написать эту статью меня вдохновил опыт коллег плюс собственная рефлексия руководителя проекта по внедрению SAP eWM (Extended Warehouse Management – система для автоматизации складского менеджмента) и по совместительству конечного пользователя многих других проектов.

В чем основная ценность дизайн-мышления? Эта техника позволяет не забыть простые и практически бесплатные шаги, которые часто упускаются или де-приоритезуются (особенно в больших проектах), но потом очень громко выстреливают во время запуска.
Читать дальше →
Total votes 1: ↑0 and ↓1-1
Comments6

Дайджест продуктового дизайна, декабрь 2019

Reading time10 min
Views3.8K
Дайджест собирает свежие статьи по дизайну интерфейсов, а также инструменты, паттерны, кейсы, тренды и исторические рассказы с 2009 года. Я тщательно фильтрую большой поток подписок, чтобы вы могли прокачать свои профессиональные навыки и лучше решить рабочие задачи. Предыдущие выпуски: апрель 2010-ноябрь 2019.

Дайджест продуктового дизайна, декабрь 2019
Total votes 13: ↑13 and ↓0+13
Comments0

Как делать асинхронные Redux экшены используя Redux-Thunk

Reading time5 min
Views99K

Приветствую Хабр! Представляю вашему вниманию перевод статьи — Asynchronous Redux Actions Using Redux Thunk, автора — Alligator.io


По умолчанию, экшены в Redux являются синхронными, что, является проблемой для приложения, которому нужно взаимодействовать с серверным API, или выполнять другие асинхронные действия. К счастью Redux предоставляет нам такую штуку как middleware, которая стоит между диспатчом экшена и редюсером. Существует две самые популярные middleware библиотеки для асинхронных экшенов в Redux, это — Redux Thunk и Redux Saga. В этом посте мы будем рассматривать первую.
Читать дальше →
Total votes 3: ↑2 and ↓1+3
Comments6

Пишем «калькулятор». Часть II. Решаем уравнения, рендерим в LaTeX, ускоряем функции до сверхсветовой

Reading time7 min
Views9.7K
Привет!

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

$(x - b)(\tan(\sin(x))^2 - 3\tan(\sin(x)) + c) = 0$

точно должен решать. А еще красиво нарисовать это дело в латехе, и будет прямо хорошо! Погнали!



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

Архитектор ПО: зачем он нужен и в чём его проклятие

Reading time4 min
Views20K
Гость нового выпуска подкаста «Сушите вёсла» — архитектор программного обеспечения Егор Тафланиди. Обсуждаем, что это за метафизическая роль такая, какие сложности есть в работе и при чём тут тёмные силы.

image

Артём Кулаков и Рома Чорыев — разработчики Redmadrobot. Они записывают ламповые подкасты, где вместе с гостями обсуждают разные стороны создания ИТ-продуктов. Ниже ссылка на новый выпуск и ответы на несколько насущных вопросов.

Total votes 12: ↑11 and ↓1+13
Comments3

Пишем приложение на Flutter в связке с Redux

Reading time7 min
Views18K
image


Привет всем! В этой статье я хотел бы показать вам, как создать Flutter приложение, используя Redux. Если вы не знаете, что такое Flutter, то это — SDK с открытым исходным кодом для создания мобильных приложений от компании Google. Он используется для разработки приложений под Android и iOS, а также это пока единственный способ разработки приложений под Google Fuchsia.

Если вы знакомы с Flutter и хотите создать приложение, которое хорошо спроектировано, легко тестируется и имеет очень предсказуемое поведение, — продолжайте читать данную статью и вы скоро это узнаете!

Но перед тем как мы приступим к написанию самого приложения. Давайте немного познакомимся с теорией, давайте начнем с объяснения, что такое Redux.
Читать дальше →
Total votes 9: ↑9 and ↓0+9
Comments9

Автоворонка продаж или как не сливать клиентов и работать даже с теми, кто отказался от ваших услуг?

Reading time3 min
Views3.8K
Наверняка многие уже слышали, что это такое, но не все думаю, разобрались окончательно, что это такое. По сути автоворонка – это автоматическая система работы с вашими потенциальными клиентами в Интернете.

Если уходить в историю, то термин автоворонки, лид-магниты, трипваеры и т.д. придумал Френк Керн – это гуру инфобизнеса, благодаря нему мы теперь знаем, что это такое.
Если уходить еще дальше в историю, то по воронке начинали продавать еще в 19 веке –
продавцы приходили домой и предлагали всем чашечку ароматного вкусного кофе, через неделю приходили обратно и спрашивали – понравился ли вам наш кофе? Люди говорили да – и им предлагали купить зерно и посуду, из которого варится это кофе – так и продавалась посуда с зерном, т.е. по сути они продавали основной продукт (зерно и посуду) через чашку кофе, так как кофе продукт понятный и его легче продать.
Читать дальше →
Total votes 17: ↑0 and ↓17-17
Comments23

STM32 fast start. Часть 2 Hello World на HAL, отладка в Atollic TrueSTUDIO

Reading time3 min
Views26K
В прошлый раз мы осваивали создание нового проекта при помощи STM CubeMX первую часть можно найти здесь.

Для тех, кому лень перечитывать — закончилось все тем, что пустой проект успешно собрался.



В данной части напишем простейший пример Hello World на HAL, посмотрим как запускать и пользоваться отладчиком, ну и выясним, сколько же памяти кушает наша программа, которая в этой части будет написана на HAL.
Читать дальше →
Total votes 7: ↑5 and ↓2+6
Comments78

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

Reading time4 min
Views124K


На Хабре много статей о том, как самостоятельно изучать английский язык. Но вот вопрос, а как оценить свой уровень при самостоятельном изучении? Понятно, что есть IELTS и TOEFL, но эти тесты почти никто не сдает без дополнительной подготовки и эти тесты, как говорят, оценивают не сколько уровень владения языком, а скорее умение проходить эти самые тесты. Да и использовать их для контроля самообучения будет накладно.

В этой статье я собрал различные тесты, которые проходил сам. При этом я сверяю свою субъективную оценку владения языком с результатами тестов. А также сравниваю результаты между разными тестами.
Читать дальше →
Total votes 81: ↑77 and ↓4+91
Comments62

Криптографический АРМ на базе стандартов с открытым ключом. Конфигурирование токенов PKCS#11

Reading time4 min
Views2K
Еще раз просмотрев функционал утилиты cryptoarmpkcs, обратил внимание на то, что она, в основном работая с криптографическими токенами/смаркартами PKCS#11, не имеет встроенного функционала для их конфирурирования. Речь идет об инициализации токенов, установки PIN-кодов и т.п. И было решено добавить этот функционал. Первым делом для этого пришлось расширить функционал пакета TclPKCS11, библиотека которого написана на языке Си.

Новые функции пакета TclPKCS11


В пакете появились три новые функции:

::pki::pkcs11::inittoken <handle> <slotId> <SO-pin> <label for token>

::pki::pkcs11::inituserpin <handle> <slotId> <SO-pin> <USER-pin>

::pki::pkcs11::setpin <handle> <slotId> <so | user> <oldpin> <newpin>
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments0

Мутабельный мозг

Reading time4 min
Views3K
В программировании мутабельностью называют изменчивость данных.
— Кэп

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


Оглавление


Читать дальше →
Total votes 13: ↑11 and ↓2+9
Comments4
1
23 ...

Information

Rating
Does not participate
Location
Qingdao, Shandong, Китай
Date of birth
Registered
Activity