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

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

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

Как я создал устройство, которое может удаленно эмулировать мышку и клавиатуру на stm32

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

Всем привет, совсем недавно я начал изучать протокол USB на STM32F103C8, а именно HID-устройства. Я такой человек, который не сильно любит теорию, но обожает учиться всему на практике, поэтому я тут же начал думать над будущим проектом. И я вспомнил, что совсем недавно заказал себе wifi модуль - ESP8266.

Читать далее
Всего голосов 11: ↑10 и ↓1+12
Комментарии10

Demhack 2: пришел, напрогал, победил

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

20 и 21 марта 2021 года прошел хакатон проектов в сфере приватности и открытости информации DemHack 2, организованный Роскомсвободой и Privacy Accelerator. Хакатон собрал интересные идеи и талантливых разработчиков, выявил несколько по-настоящему перспективных проектов и наградил два из них! Некоторые решения были высоко оценены жюри и менторами, что дает им отличные шансы на дальнейшую экспертную поддержку, нетворкинг и дальнейшее сотрудничество с бизнес-инвесторами или профильными НКО.

Читать далее
Всего голосов 7: ↑6 и ↓1+9
Комментарии0

Serverless-архитектура сегодня: как бессерверные решения меняют разработку

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

Привет, Хабр! В комментариях к статьям из нашего хаба часто спорят: полезна ли Serverless. Хочу поднять флаг миротворца — и сказать, что бессерверная технология меняет весь рабочий процесс и взгляд на разработку. Для этого есть несколько причин.

Serverless смещает оплату в сторону подхода pay-as-you-go: вы платите столько, сколько израсходовано процессорного времени (плюс-минус 100 мс). Вы не ждёте запуска сервера, не распределяете нагрузку и не заморачиваетесь с техобслуживанием. Задача написана — задача исполнена. С другой стороны, возникают проблемы холодного старта, а многим проектам не подходит отсутствие чёткого контроля контейнера. В этой статье я расскажу, в каких именно случаях может пригодиться Serverless и когда к ней надо присмотреться.

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

Погружение в Serverless. Функции как основной элемент системы

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

Внимание на Serverless я обратил с подачи Евгения Потапова. Мне довелось с ним беседовать в качестве ведущего в подкасте «The Art Of Programming». И меня безумно захватила эта идея. Погрузившись в мир «Бессерверных вычислений», я познакомился с массой интересных людей, занятых созданием экосистемы Serverless в Yandex.Cloud. И после недолгих метаний решил устроить серию интервью, открывающих этот удивительный мир для вас и написанных в дружеской неофициальной манере вечерних посиделок за бокальчиком пенного. Первый мой гость, Глеб Борисов, наверно, один из главных людей, занятых созданием инструментов для запуска функций в Yandex.Cloud.

Вот мы с тобой сидим, идет 2021 год, и у меня стойкое дежавю. Как будто бы идея Serverless — это повторение идеи, с которой я сталкивался, когда только появился интернет. Тогда тоже не было серверов, а были только CGI-скрипты, которые я писал, складывал на чей-то хостинг, и они выполнялись

Читайте интервью дальше.
Всего голосов 16: ↑12 и ↓4+12
Комментарии15

Google Cloud Storage c PHP: сохранение файлов с публичным доступом

Время на прочтение7 мин
Количество просмотров12K
В связи с тем, что предыдущий сервис с помощью которого я хранил изображения накрылся медным тазом (скорее всего из-за того, что был не прибыльный), мне пришлось искать другие варианты хранения изображений. Сервера я использую бюджетные и не хотелось бы мне платить приличную цену за дополнительные 10 ГБ дисковой памяти. Изучая рынок я наткнулся на Google Cloud Storage (GCS) и решил, что данный продукт мне подойдет (ну как минимум можно протестировать). В рунете (да и не только в нем) мало уделяется внимания для настройки GCS с использованием PHP, поэтому я решил внести свою лепту в это направление.

В данной статье будет рассмотрено 2 варианта настройки GCS для загрузки файлов (в примере будет реализована загрузка изображения) с помощью php-клиента и с помощью существующего sdk (утилита gsutil) используя shell. Итак, поехали!
Читать дальше →
Всего голосов 14: ↑13 и ↓1+12
Комментарии5

Как я создал, а затем развалил свою компанию

Время на прочтение8 мин
Количество просмотров53K
Занимательная история о том, как выгорание владельца смогло прикончить вполне перспективную ИТ-компанию.
Читать дальше →
Всего голосов 91: ↑79 и ↓12+101
Комментарии55

Самодельный лидар: OpenTOFLidar

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

В этой статье я хочу рассказать про свой проект импульсного (TOF) Open Source лидара — о том как я его делал, и каких результатов удалось добиться.
top-picture

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

Веб-компоненты: обзор и использование в продакшне

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

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


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


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

Как CSS Grid меняет представление о структурировании контента

Время на прочтение8 мин
Количество просмотров18K
Каждый, кто хотя бы немного занимался созданием веб-сайтов, знает, что теги <div> — являются важным строительным блоком для контроля над макетом.

HTML5 представил новые семантические элементы, чтобы помочь в этом. И хотя они являются фантастическим дополнением к языку, они немного похожи на украшение к нашему супу из <div> элементов.



С приходом CSS Grid, нам больше не нужно полагаться на элементы <div> для создания структуры страницы или даже более сложного компонента. Структура буквально определяется родительским элементом, а не тем, как расположено содержимое внутри него.

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

Всего голосов 22: ↑21 и ↓1+20
Комментарии19

Как проводить код-ревью

Время на прочтение18 мин
Количество просмотров53K
Из документации Google's Engineering Practices

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


См. также Руководство автора CL, в котором даются подробные советы разработчикам, чьи коммиты проходят ревью.
Читать дальше →
Всего голосов 27: ↑26 и ↓1+25
Комментарии17

Революция или боль? Доклад Яндекса о React Hooks

Время на прочтение16 мин
Количество просмотров28K
Меня зовут Артём Березин, я разработчик нескольких внутренних сервисов Яндекса. Последние полгода я активно работал с React Hooks. По ходу дела возникали некоторые сложности, с которыми приходилось бороться. Теперь хочу поделиться этим опытом с вами. В докладе я разобрал React Hook API с практической точки зрения — зачем нужны хуки, стоит ли переходить, что лучше учитывать при портировании. В процессе перехода легко наделать ошибок, но избежать их тоже не так сложно.



— Хуки — это просто еще один способ описывать логику ваших компонентов. Он позволяет добавить к функциональным компонентам некоторые возможности, ранее присущие только компонентам на классах.

Читать дальше →
Всего голосов 48: ↑46 и ↓2+44
Комментарии72

Работа с callbacks в React

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

За время своей работы, я периодически сталкивался с тем, что разработчики не всегда четко представляют, каким образом работает механизм передачи данных через props, в частности колбеков, и почему их PureComponents обновляется так часто.


Поэтому в данной статье мы разберемся, как передаются callbacks в React, а также обсудим особенности работы event handlers.

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

Щелкаем реле правильно: коммутация мощных нагрузок

Время на прочтение3 мин
Количество просмотров243K
Привет, Geektimes!

Управление мощными нагрузками — достаточно популярная тема среди людей, так или иначе касающихся автоматизации дома, причём в общем-то независимо от платформы: будь то Arduino, Rapsberry Pi, Unwired One или иная платформа, включать-выключать ей какой-нибудь обогреватель, котёл или канальный вентилятор рано или поздно приходится.

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

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



Я же хочу рассказать про простую и довольно очевидную, но при этом редко встречающуюся схему, умеющую вот такое:

  • Гальваническая развязка входа и нагрузки
  • Коммутация индуктивных нагрузок без выбросов тока и напряжения
  • Отсутствие значимого тепловыделения даже на максимальной мощности


Но сначала — чуть-чуть иллюстраций. Во всех случаях использовались реле TTI серий TRJ и TRIL, а в качестве нагрузки — пылесос мощностью 650 Вт.

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

ООП мертво, да здравствует ООП

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

Источники вдохновения


Этот пост возник благодаря недавней публикации Араса Пранцкевичуса о докладе, предназначенном для программистов-джуниоров. В нём рассказывается о том, как адаптироваться к новым ECS-архитектурам. Арас следует привычной схеме (объяснения ниже): показывает примеры ужасного ООП-кода, а затем демонстрирует, что отличным альтернативным решением является реляционная модель (но называет её «ECS», а не реляционной). Я ни в коем случае не критикую Араса — я большой фанат его работ и хвалю его за отличную презентацию! Я выбрал именно его презентацию вместо сотен других постов про ECS из Интернета потому, что он приложил дополнительные усилия и опубликовал git-репозиторий для изучения параллельно с презентацией. В нём содержится небольшая простая «игра», используемая в качестве примера выбора разных архитектурных решений. Этот небольшой проект позволил мне на конкретном материале продемонстрировать свои замечания, так что спасибо, Арас!

Слайды Араса выложены здесь: http://aras-p.info/texts/files/2018Academy — ECS-DoD.pdf, а код находится на github: https://github.com/aras-p/dod-playground.

Я не буду (пока?) анализировать получившуюся ECS-архитектуру из этого доклада, но сосредоточусь на коде «плохого ООП» (похожего на уловку «чучело») из его начала. Я покажу, как бы он выглядел на самом деле, если бы правильно исправили все нарушения принципов OOD (object-oriented design, объектно-ориентированного проектирования).

Спойлер: устранение всех нарушений OOD приводит к улучшениям производительности, аналогичным преобразованиям Араса в ECS, к тому же использует меньше ОЗУ и требует меньше строк кода, чем ECS-версия!

TL;DR: Прежде чем прийти к выводу, что ООП отстой, а ECS рулит, сделайте паузу и изучите OOD (чтобы знать, как правильно использовать ООП), а также разберитесь в реляционной модели (чтобы знать, как правильно применять ECS).
Читать дальше →
Всего голосов 55: ↑50 и ↓5+45
Комментарии48

Как доить коров роботами и сделать на этом промышленный стартап. История разработки R-SEPT

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


В 2017 году в СМИ звучала крайне интересная история про стартап, который роботизирует доение коров на промышленных молочных фермах. Компания называется R-SEPT, и тогда она получила 10 миллионов рублей инвестиций. Но год прошел, а новостей, что произошло дальше, все нет. Мы связались с Алексеем Хахуновым (AlexeiHahunov), основателем стартапа и поговорили о разработке. Оказывается весь год его команда доводила прототип робота до ума, и как раз неделю назад провела первые полевые испытания на ферме.

Под катом — история, как студент-робототехник, выросший на родительской ферме, превратил университетский диплом в промышленный стартап, как собирал с друзьями первые манипуляторы, а потом выходил на уровень государственных программ по роботизации сельского хозяйства. Ну и самое главное — чем железная рука робота и машинное зрение лучше живой доярки.
Читать дальше →
Всего голосов 102: ↑101 и ↓1+100
Комментарии68

Зацените: сделал стол

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


TL;DR В статье описывается мой опыт постройки стола c нуля из фанеры. От проектирования до сборки.

Я очень долго страдал от плохих столов. Все они неудобные, плохого качества, маленькие и, самое главное, ШАТКИЕ. Более-менее приличные столы стоили тысячи долларов. В итоге я решил изготовить стол самостоятельно.

Основные требования к столу:

  • Устойчивость! Предметы на столе не должны трястись, если резко положить руки на стол или оттолкнуться от него. Мой стол весит ~120кг. С его края можно делать сальтухи, при этом на другом конце паять SMD компоненты.
  • Ширина и глубина столешницы. Столы шириной 60 см — это унижение. Мне нужно иметь запас по глубине, чтобы можно было отодвинуть ноутбук вперед, и при этом получить достаточное рабочее пространство.
  • Вместительность. Мне нужны полки, чтобы разместить там оборудование: паяльники, лабораторный блок питания, осциллограф, аудио усилитель и т.д. При этом полки должны быть так же устойчивы, как и стол.
  • Цена. Я не готов выложить за стол несколько тысяч долларов. Мой стол обошелся в ~$300 с учётом покупки всего инструмента для сборки и покраски.
Всего голосов 261: ↑250 и ↓11+239
Комментарии559

Конструкция async/await в JavaScript: сильные стороны, подводные камни и особенности использования

Время на прочтение8 мин
Количество просмотров67K
Конструкция async/await появилась в стандарте ES7. Её можно считать замечательным улучшением в сфере асинхронного программирования на JavaScript. Она позволяет писать код, который выглядит как синхронный, но используется для решения асинхронных задач и не блокирует главный поток. Несмотря на то, что async/await — это отличная новая возможность языка, пользоваться ей правильно не так уж и просто. Материал, перевод которого мы публикуем сегодня, посвящён разностороннему исследованию async/await и рассказу о том, как использовать этот механизм правильно и эффективно.

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

Пишем скрипт для синхронизации папок с Google Drive, плюс учимся использовать Google Drive API

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

В этой статье мы рассмотрим основные инструменты работы с Google Drive REST API, осуществим "прямую" и "обратную" синхронизацию папки на компьютере с папкой в облаке Гугл Диска, а заодно выясним какие сложности могут возникнуть при работе с Google Docs через API Диска и как правильно их импортировать и экспортировать чтобы (почти) никто не пострадал.

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

Как легко работать с OneDrive из приложений UWP

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

Продолжаю рассказывать об интересных/полезных вещах из мира XAML/C# приложений UWP. OneDrive API является частью Microsoft Graph. Для работы с OneDrive можно использовать OneDrive REST API, которое использует протокол HTTP и в частности его методы GET, POST, DELETE, PUT…

Кроме того, в соответствии с новыми принципами работы Microsoft, была создана библиотека обертка OneDrive SDK for CSharp, которая облегчает работу и использование сервиса из кода ваших приложений.
Читать дальше →
Всего голосов 25: ↑25 и ↓0+25
Комментарии10

Ассортимент — классическая задача оптимизации

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


Ассортимент очень влияет на выручку магазина, но управляется не самим магазином. Судя по последним исследованиям, ассортиментом в России в целом мало кто управляет эффективно. Просто если поддерживать нужные товары в нужном количестве в нужных местах, можно дико поднять эффективность продаж многих магазинов. Дико — это, например, на треть.

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

Первый вопрос в том, почему вообще может не быть какого-то товара. Это очевидная вещь для любого человека из розницы, но крайне нелогичная для человека со стороны. Столетиями работает рынок, так почему, чёрт побери, до сих пор случаются неувязки?
Читать дальше →
Всего голосов 77: ↑74 и ↓3+71
Комментарии89
1

Информация

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