Pull to refresh
3
0
Send message

ESP32 в окружении VSCode

Reading time15 min
Views40K

В нескольких следующих статьях я хотел бы детально рассмотреть настройку окружения VSCode для работы с фреймворком ESP-IDF. Не совсем популярная комбинация ПО обладает как преимуществами, так и недостатками, которые при детальном рассмотрении мы попытаемся исправить, обойти или превратить в достоинства.

Изыскания проводятся в рамках разработки программно-аппаратного комплекса полетного контроллера на чистых кватернионах, без применения углов Эйлера.

Поскольку предполагается многопользовательская удаленная разработка, то мы решили вначале отработать выбор и настройку самой среды разработки. После нескольких экспериментов с Eclipse, Visual Studio и QT Creator выбор пал на кроссплатформенный VSCode и плагин от разработчика Espressif IDF для работы с фреймворком ESP-IDF.

В качестве «сердца» контроллера рассмотрим двухъядерный микроконтроллер ESP32, который обладает рядом преимуществ, и которые планируется использовать и раскрыть в проекте, а именно:

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

Затерянные в тумане, или Увлекательные приключения в мире АПР *

Reading time11 min
Views21K

* АПР - аэропоника с пневматическим распылением

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

Вышло ли из этого что-то и что конкретно - под катом. Сразу предупрежу: статья огромная, потому что материала много. И очень много фото.

Читать далее
Total votes 77: ↑77 and ↓0+77
Comments58

21 канал на YouTube, где вы можете бесплатно изучить ИИ, машинное обучение и Data Science

Reading time5 min
Views26K

Мы уже не раз делились в своем блоге полезными материалами для развития (их список можно найти в конце этого поста). Сегодня продолжаем это начинание и специально перед стартом новых потоков курсов по Data Analytics и Data Science представляем подборку YT-каналов по Data Science, искусственному интеллекту и машинному обучению, существование многих из которых неочевидно: например, представлен канал ArXiv Insights, посвящённый научным работам, и Google Cloud Platform.
Приятного чтения!
Total votes 18: ↑14 and ↓4+17
Comments15

Примеры использования наблюдателей в JavaScript

Reading time8 min
Views23K


Наблюдатель (observer) — это объект, который следит за состоянием определенного элемента и регистрирует происходящие в нем изменения. Элемент, который находится под наблюдением (чуть не написал «за которым организована слежка»), называется целевым. Наблюдатель может следить за состоянием как одного, так и нескольких элементов, а в некоторых случаях также и за потомками целевого элемента.

В JavaScript существует три основных вида наблюдателей:

  1. ResizeObserver
  2. IntersectionObserver
  3. MutationObserver

В данной статье я предлагаю сосредоточиться на практической реализации каждого наблюдателя.
Total votes 11: ↑10 and ↓1+16
Comments5

Создание оптимизированных образов Docker для приложения Spring Boot

Reading time11 min
Views21K

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

В этой статье рассматриваются различные способы контейнеризации приложения Spring Boot:

- создание образа Docker с помощью файла Docker,

- создание образа OCI из исходного кода с помощью Cloud-Native Buildpack,

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

Читать далее
Total votes 7: ↑6 and ↓1+8
Comments1

Как я умный аквариум делал (backend)

Reading time8 min
Views15K

image


Пролог


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


Обучался я в основном web программированию, поскольку и работал на том же направлении. Охватывал Full-stack разработку, поскольку решил, что нужно разбираться как в серверной части, так и во фронтовой. Учил JavaScript и различные фреймворки для бека это были Express, Appolo GraphQL (поскольку на работе был именно такой стек, да и в целом хотелось попробовать что-то отличное от REST подхода), на фронте это был все тот же Apollo GQL и Vue.

Читать дальше →
Total votes 21: ↑20 and ↓1+28
Comments39

Краткое руководство по разработке чартов в Helm

Reading time6 min
Views16K
Unsplash by Frank Eiffert

Helm — мощный инструмент для применения, обновления и управления приложениями в Kubernetes. Сообщество Helm создает множество чартов с открытым исходным кодом. Вы можете развернуть Redis, Nginx или Prometheus Operator с помощью одной команды. И они поставляются со всем, что нужно, например с Ingress.

Команда Mail.ru Cloud Solutions перевела статью, автор которой описывает быстрый способ создания базового чарта, показывает полезные команды и делится лучшими практиками. Он не останавливается на аспектах языка шаблонов Go, поскольку большинство из них описаны в документации по Helm. В этом руководстве — более абстрактные аспекты и идеи по улучшению рабочего процесса.
Читать дальше →
Total votes 12: ↑11 and ↓1+24
Comments1

Переезд инженера в Будапешт: работа, деньги и стоимость жизни

Reading time8 min
Views45K


Привет, Хабр! Хотим поговорить о странах для IT-миграции: подготовили материал про переезд в Будапешт. Да, это не самое популярное направление для IT-специалистов. Но культурная близость, цены ниже обычных европейских и, главное, офисы FAANG и других IT-гигантов — аргументы рассмотреть Будапешт для смены локации. Легко ли устроиться на работу, сколько платят программистам, как найти квартиру — ответы на эти и другие практические вопросы в нашей статье.
Читать дальше →
Total votes 32: ↑25 and ↓7+30
Comments117

Операционные усилители: 10 схем на (почти) все случаи жизни

Reading time15 min
Views461K
Всем привет!

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


Читать дальше →
Total votes 102: ↑100 and ↓2+135
Comments54

IBM открыла инструмент полностью гомоморфного шифрования для Linux

Reading time4 min
Views26K

Компания IBM опубликовала на GitHub исходный код набора инструментов FHE для Linux. Утилиты работают на платформах IBM Z и x86, поддерживаются Ubuntu, Fedora и CentOS.

Полностью гомоморфное шифрование (FHE) долгое время считалось чем-то вроде чаши святого Грааля в криптографии. Задача действительно казалась нереальной. Тип шифрования FHE предполагает манипуляции зашифрованными данными третьей стороной без возможности расшифровки самих данных или результата манипуляций.

Как такое возможно?
Total votes 50: ↑49 and ↓1+64
Comments35

Запускаем Apache Spark на Kubernetes

Reading time22 min
Views15K
Дорогие читатели, доброго дня. Сегодня поговорим немного про Apache Spark и его перспективы развития.



В современном мире Big Data Apache Spark является де факто стандартом при разработке задач пакетной обработки данных. Помимо этого, он также используется для создания стриминговых приложений, работающих в концепции micro batch, обрабатывающих и отгружающих данные маленькими порциями (Spark Structured Streaming). И традиционно он являлся частью общего стека Hadoop, используя в качестве менеджера ресурсов YARN (или, в некоторых случаях, Apache Mesos). К 2020 году его использование в традиционном виде для большинства компаний находится под большим вопросом в виду отсутствия приличных дистрибутивов Hadoop — развитие HDP и CDH остановлено, CDH недостаточно проработан и имеет высокую стоимость, а остальные поставщики Hadoop либо прекратили своё существование, либо имеют туманное будущее. Поэтому всё больший интерес у сообщества и крупных компаний вызывает запуск Apache Spark с помощью Kubernetes — став стандартом в оркестрации контейнеров и управлении ресурсами в приватных и публичных облаках, он решает проблему с неудобным планированием ресурсов задач Spark на YARN и предоставляет стабильно развивающуюся платформу с множеством коммерческих и открытых дистрибутивов для компаний всех размеров и мастей. К тому же на волне популярности большинство уже успело обзавестись парой-тройкой своих инсталляций и нарастить экспертизу в его использовании, что упрощает переезд.

Начиная с версии 2.3.0 Apache Spark обзавёлся официальной поддержкой запуска задач в кластере Kubernetes и сегодня, мы поговорим о текущей зрелости данного подхода, различных вариантах его использования и подводных камнях, с которыми предстоит столкнуться при внедрении.
Читать дальше →
Total votes 6: ↑6 and ↓0+6
Comments5

Google Dorking или используем Гугл на максимум

Reading time21 min
Views218K

Вступление


Google Dorks или Google Hacking — техника, используемая СМИ, следственными органами, инженерами по безопасности и любыми пользователями для создания запросов в различных поисковых системах для обнаружения скрытой информации и уязвимостях, которые можно обнаружить на общедоступных серверах. Это метод, в котором обычные запросы на поиск веб-сайтов используются в полную меру для определения информации, скрытой на поверхности.
Читать дальше →
Total votes 30: ↑26 and ↓4+29
Comments7

Подтверждение входа с помощью Telegram на Spring Boot

Reading time19 min
Views14K

Недавно столкнулся с проблемой: все приложения используют Telegram-бота в качестве подтверждения входа в аккаунт, а мое — нет. Я был настроен серьезно и провёл уйму времени в интернете в поиске туториала, но меня ждало разочарование. Задача сложная и имеет много подводных камней, а туториалов — ноль.


Следующую неделю я потратил на написание своей имплементации данной фичи и готов поделиться успехом.


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


Total votes 8: ↑8 and ↓0+8
Comments6

39 аббревиатур на английском для начинающих маркетологов и сеошников

Reading time11 min
Views16K
Практически все термины, которые используют специалисты в маркетинге и смежных сферах, крепко привязаны к английскому языку. Поэтому уже на этапе обучения профессии нужно их изучать.

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

Мы решили немного упростить задачу новичкам в профессии. Надеемся, что этот словарь будет полезен для начинающих и Junior сеошников и маркетологов.

Важно! Мы знаем, что многие аббревиатуры используются в оригинальном виде, на английском. Но сложность для новичка в том, что они все довольно похожи. Поэтому есть риск запомнить неправильно. Мы считаем, что оптимальный способ выучить их — сначала понять расшифровку и перевод, а затем вникать в смысл и нюансы.
Читать дальше →
Total votes 7: ↑4 and ↓3+3
Comments6

Пишем операционную систему. Часть 1. Загрузчик

Reading time3 min
Views42K
Всем привет! Сегодня мы напишем загрузчик, который будет выводить «Hello World» и запустим его на VirtualBox. Писать будем на ассемблере FASM. Скачать его можно отсюда. Также нам понадобится собственно VirtualBox и UltraISO. Перед тем как писать код, разберемся как загружаются операционные системы.

Итак, когда мы нажимаем большую кнопку включения на нашем компьютере запускается система, которая есть на любом компьютере — BIOS (Basic Input/Output System или базовая система ввода/вывода). Задача BIOS это:

Читать дальше →
Total votes 43: ↑35 and ↓8+36
Comments37

Как удалить свой IP из чёрного списка Gmail

Reading time10 min
Views58K

Если ваши пользователи перенаправляют почту на Gmail, то они вероятно перенаправляют и спам. Gmail не волнует, что почта была перенаправлена. Их системы видят, что ваш сервер присылает спам, и заносят его в чёрный список.

Проблемы с чёрным списком Gmail? Вы пришли по адресу.

Используя описанный ниже процесс, мы успешно разрешили почти все случаи включения в чёрный список Gmail, с которыми сталкивались.
Читать дальше →
Total votes 26: ↑25 and ↓1+24
Comments6

База данных простых чисел до ста миллиардов на коленке

Reading time7 min
Views12K
image

Самый известный алгоритм для нахождения всех простых чисел, не больших заданного, – решето Эратосфена. Он замечательно работает для чисел до миллиардов, может быть, до десятков миллиардов, если аккуратно написан. Однако каждый, кто любит развлекаться с простыми числами, знает, что их всегда хочется иметь под рукой как можно больше. Как-то раз мне для решения одной задачи на хакерранке понадобилась in-memory база данных простых чисел до ста миллиардов. При максимальной оптимизации по памяти, если в решете Эратосфена представлять нечетные числа битовым массивом, его размер будет около 6 гигабайт, что в память моего ноутбука не влезало. Существует модификация алгоритма, гораздо менее требовательная по памяти (делящая исходный диапазон чисел на несколько кусков и обрабатывающая по одному куску за раз) – сегментированное решето Эратосфена, но она сложнее в реализации, и результат целиком в память все равно не влезет. Ниже предлагаю вашему вниманию алгоритм почти такой же простой, как и решето Эратосфена, но дающий двукратную оптимизацию по памяти (то есть, база данных простых чисел до ста миллиардов будет занимать около 3 гигабайт, что уже должно влезать в память стандартного ноутбука).
Читать дальше →
Total votes 24: ↑23 and ↓1+34
Comments28

GraalVM: смешались в кучу C и Scala

Reading time12 min
Views7.9K

Не знаю, как на вас, а на меня в последнее время производят сильное впечатление статьи про новые Java-технологии — Graal, Truffle и все-все-все. Выглядит так, как будто раньше ты придумал язык, написал интерпретатор, порадовался какой язык хороший и погрустил, какой медленный, написал к нему нативный компилятор и/или JIT, а ведь нужен ещё отладчик… LLVM есть, и на том спасибо. После прочтения этой статьи сложилось (несколько гротескное) впечатление, что после написания интерпретатора специального вида работу можно, в принципе, и завершать. Ощущение, что теперь кнопка "Сделать зашибись" стала доступна и программистам-компиляторщикам. Нет, конечно, JIT-языки медленно стартуют, им нужно время на прогрев. Но, в конце концов, время и квалификация программиста тоже не бесплатные — в каком бы мире информационных технологий мы бы жили, если бы до сих пор писали всё на ассемблере? Нет, может, всё бы, конечно, и летало (это если программист грамотно инструкции разложил), но вот насчёт суммарной сложности активно используемых программ у меня есть некоторые сомнения...


В общем, я прекрасно понимаю, что в дилемме «затраченное программистом время vs идеальность полученного продукта ("ручная работа")» границу можно двигать до скончания веков, поэтому давайте сегодня просто попробуем воспользоваться традиционной библиотекой SQLite без подгрузки нативного кода в чистом виде. Будем использовать уже готовую truffle-реализацию языка для LLVM IR, зовущуюся Sulong.

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

Компилируем Spring Boot-приложение в нативное с помощью GraalVM

Reading time10 min
Views8.3K
Перевод статьи подготовлен в преддверии старта курса «Разработчик на Spring Framework».





Привет, любители Spring’а! Добро пожаловать в очередной выпуск Spring Tips. Сегодня мы поговорим о недавно реализованной поддержке компиляции Spring Boot-приложений в GraalVM. Мы уже говорили о GraalVM и нативных приложениях в другом выпуске Spring Tips в теме про Spring Fu.



Немного вспомним, что такое GraalVM. GraalVM — замена стандартного компилятора C1 в OpenJDK. Подробнее об использовании GraalVM вы можете послушать в моем подкасте Bootiful Podcast с Крисом Талингером (Chris Thalinge) — контрибьютором GraalVM и инженером Twitter. При определенных условиях GraalVM позволяет быстрее запускать обычные Spring-приложения и, хотя бы по этой причине, он заслуживает внимания.
Total votes 8: ↑7 and ↓1+8
Comments1

Прокачиваем беговую дорожку

Reading time11 min
Views25K
Недавно я решился на очень странную для себя покупку. Да, я купил себе беговую дорожку.



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

Так я решил сделать что-то подобное и с беговой дорожкой: подключить её к смартфону или планшету, чтобы собирать и отображать статистику.
Total votes 80: ↑80 and ↓0+80
Comments38

Information

Rating
Does not participate
Registered
Activity