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

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

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

Домашняя Звезда Смерти — это возможно

Время на прочтение 12 мин
Количество просмотров 32K
И снова здравствуйте. Честно говоря, я планировал писать эту статью в самую последнюю очередь, планируя сначала рассказать о более «приземленных» вещах, тянул время. Но вот наступил критический момент, когда тянуть уже дальше некуда.

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

image
Всего голосов 145: ↑145 и ↓0 +145
Комментарии 80

17 интересных (и забавных) API для вашего проекта

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


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

Читать дальше →
Всего голосов 56: ↑48 и ↓8 +40
Комментарии 7

Буферы и окна: подробности о тайне ssh и цикла чтения while

Время на прочтение 7 мин
Количество просмотров 8.7K
Если вы когда-нибудь пробовали воспользоваться в цикле чтения while командой ssh, или, точно так же, командами ffmpeg или mplayer, это значит, что вы сталкивались с неожиданным поведением такого цикла: он, после первой итерации, таинственным образом прекращал работать!



Решение этой проблемы, в случае с ssh, заключается в использовании конструкций ssh -n или ssh < /dev/null, на которые мгновенно «ругается» ShellCheck (тут можно посмотреть на результаты анализа кода с этими конструкциями). На этом можно было бы и остановиться, ведь проблема решена, но мы этого делать не будем. Лучше — детально разберём причины этой проблемы.
Читать дальше →
Всего голосов 55: ↑53 и ↓2 +51
Комментарии 3

Как Лёня с React на Swift переезжал

Время на прочтение 7 мин
Количество просмотров 9.2K
Всем привет! Меня зовут Лёня, я фронтенд-разработчик в компании KOTELOV и выпускник курса «Мидл фронтенд-разработчик» в Яндекс.Практикуме. Общаясь с коллегами, которые занимаются мобильной разработкой, я понял, что у них всё гораздо сложнее, чем в вебе. Я взял свой телефон в руки, посмотрел на известные приложения типа телеги или Яндекс.Музыки с точки зрения человека, который их пишет, и подумал: «Вау, как круто! Я тоже хочу так уметь!»

Тогда я принял твёрдое решение изучить iOS-разработку и написать собственное приложение. На выбор было два языка: Objective-C и Swift. К динозаврам моё отношение подозрительное, поэтому я принял решение набивать шишки обо что-то помягче и посвежее.

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



Готовимся к переходу — изучаем SwiftUI


Два года назад Apple выпустила SwiftUI — новый фреймворк для своего языка. До этого разработчики писали на UI Kit, но это дело прошлого. Думаю, что на нём до сих пор пишут лишь потому, что сложно в один день переписать весь легаси-код на новый лад. Для себя я уже давно вынес правило: никогда не изучай старое, если есть новое. Но на всякий случай я изучил различия между старым UI Kit Storyboard и SwiftUI, а также мнения людей, которые в теме.
Читать дальше →
Всего голосов 23: ↑19 и ↓4 +15
Комментарии 12

Адаптивная балансировка нагрузки или как повысить надёжность микросервиса

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

Привет, меня зовут Геннадий, я работаю в Ozon, занимаюсь разработкой backend-сервисов.

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

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

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

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

Предельная скорость USB на STM32F103, чем она обусловлена?

Время на прочтение 18 мин
Количество просмотров 18K
У данной статьи тяжёлая история. Мне надо было сделать USB-устройства, не выполняющие никакой функции, но работающие на максимальной скорости. Это были бы эталоны для проверки некоторых вещей. HS-устройство я сделал на базе ПЛИС и ULPI, загрузив туда «прошивку» на базе проекта Daisho. Для FS-устройства, разумеется, была взята «голубая пилюля». Скорость получалась смешная. Прямо скажем, черепашья скорость.



Но я же крутой, у меня теперь есть USB-анализатор (его разработка была описана в блоке из нескольких предыдущих статей). Посмотрев логи, я понял, что похоже, знаю, почему скорость невозможно поднять, даже если STM32F103 обслуживает исключительно USB и ничего больше. Даже начал писать о результатах… Но потом решил, что кому-то это будет не интересно, а кто-то скажет, что и так это знал.

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

Итак, давайте выясним, почему именно STM32F103C8T6 не может прокачать по шине USB данные на скорости 12 мегабит, заняв всю ширину предоставленного канала, и можно ли с этим что-то сделать.
Читать дальше →
Всего голосов 61: ↑59 и ↓2 +57
Комментарии 73

1 CPU 1 Гб – а я хочу мониторинг, как у больших дядей

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


Я обожаю читать на хабре статьи про то, как устроены системы больших интернет-компаний. Кластеры SQL-серверов, монг и редисов. Тут у нас кластер ELK собирает трейсинг, там – сборка логов, здесь балансер выдает входящим запросам traceID и можно отслеживать, как запрос ходит по всем нашим микросервисам. Класс. Но, допустим, у вас совсем маленький проект и вы можете себе позволить лишь VPS минимальной конфигурации. Реально ли на ней сделать мониторинг не хуже, чем у больших проектов? Я решил – надо попробовать.
Читать дальше →
Всего голосов 82: ↑80 и ↓2 +78
Комментарии 82

Возможности QR-кодов

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

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


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


В этой статье будут рассмотрены некоторые из этих стандартов и описаны возможные типы данных, которые можно спрятать в qr-код.


Читать дальше →
Всего голосов 63: ↑56 и ↓7 +49
Комментарии 25

Разгоняем оптрон до сотни

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

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

Читать далее
Всего голосов 101: ↑98 и ↓3 +95
Комментарии 53

SQLite — не игрушка

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

Рассказываю, почему SQLite отлично подойдет вам в повседневной работе. И неважно, разработчик вы, аналитик, тестировщик, админ или продакт-менеджер.

Читать далее
Всего голосов 239: ↑237 и ↓2 +235
Комментарии 89

GraphQL на Rust

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

В этой статье я покажу как создать GraphQL сервер, используя Rust и его экосистему; будут приведены примеры реализации наиболее часто встречающихся задач при разработке GraphQL API. В итоге API трёх микросервисов будут объединены в единую точку доступа с помощью Apollo Server и Apollo Federation. Это позволит клиентам запрашивать данные одновременно из нескольких источников без необходимости знать какие данные приходят из какого сервиса.

Читать далее
Всего голосов 27: ↑26 и ↓1 +25
Комментарии 41

Реализуем кооперативную многозадачность на C#

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


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

Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 38

Что такое системы API Management

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

Всем привет! Меня зовут Антон, я – инженер команды, отвечающей за развитие централизованных IT-сервисов, которыми пользуются продуктовые команды в X5 Retail Group.

В этой статье я расскажу о системах класса API Management и в частности о APIM Gravitee (https://www.gravitee.io), том, что это за класс систем, как они используются для обеспечения потребностей команд разработки. Статья не погружает в технические аспекты, но может быть полезна архитекторам и менеджерам, которые думают о том, чтобы попробовать использовать данный класс систем, но не знают, подойдут ли они для их задач, а также разработчикам, которые могут открыть для себя новые инструменты для удобной работы с API.

Читать далее
Всего голосов 3: ↑3 и ↓0 +3
Комментарии 2

Юноше, обдумывающему электронику. Ключи к материалу для самостоятельного изучения

Время на прочтение 6 мин
Количество просмотров 19K
Перевод учебника «Искусство схемотехники» пополнился Частью 3, в которой разбираются полевые транзисторы. Книга приобрела целостный, хотя всё ещё не окончательный, вид. На данный момент отсутствуют три части — 11 («Программируемая логика»), 14 («Компьютеры, контроллеры и шины данных»), 15 («Микроконтроллеры») — и таблицы. Таблицы отложены до завершения перевода (там почти одни цифры, с которыми можно ознакомиться и в оригинале), а остающиеся темы при всём уважении к авторам лучше изучать по другим источникам. В анонсе перевода среди жалоб на несовершенство мира была высказана мысль о необходимости грамотного руководства освоением нового материала. Здесь предлагается метод изучения, рационализирующий данный процесс и некоторые соображения о повышении КПД знаний, относящиеся к системе Цеттелкастен.
Читать дальше →
Всего голосов 31: ↑29 и ↓2 +27
Комментарии 18

Cчетчик газа в Home Assistant без паяльника

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

Не так давно мне пришел счёт за газ от которого стало не по себе, и я решил интегрировать обычный счетчик газа в свой умный дом на базе Raspberry Pi + Home Assistant, чтобы прогнозировать стоимость расходов и получать предупреждения сразу же как только расход начинает превышать ожидания.

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

Есть довольно интересная статья 2014 года об оптическом снятии показаний с любого счетчика с помощью смартфона, но в ней ни слова ни о Home Assistant вообще ни о его компоненте для оптического распознавания счетчиков в частности.

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

Читая эти и другие статьи (например статью 2018 года про Вотериус, или статью 2020 года Умная хрущёвка на максималках) я понял, что счетчики делятся не на два поколения (offline и online), а на три. Помимо 3-го поколения счетчиков, которое умеет отправлять показания счетчика куда надо, есть еще 2-е, которое само передавать данные по сети не умеет, но снабжено передатчиком импульсов (оптических или магнитных), позволяющим подключить к счетчику модуль, который эти импульсы считывает и передает дальше.

Погуглив свой счетчик газа (им оказался BK-G4) я с радостью обнаружил не только то, что генератор магнитных импульсов в него встроен (магнитик на барабане младшего разряда), но и даже то, что уже есть успешные примеры его интеграции в Home Assistant.

Однако перед тем как заказывать специализированный (герконовый) датчик импульсов IN-Z61 (1640р с доставкой, устанавливается в специально предусмотренную для него выемку в корпусе счётчика), плату esp8266 (788р с доставкой), паяльник, олово, канифоль, ждать пока все это приедет, а потом канифолиться с этим конструктором, я решил проверить гипотезу, нельзя ли решить задачу существенно проще и дешевле.

Удача улыбнулась мне, и вместо недели ожидания и нескольких тысяч расходов, я в тот же день интегрировал счетчик в Home Assistant обычным датчиком открытия двери Xiaomi (модель MCCGQ01LM), горсть которых когда-то приобрел на Авито по 600р за штуку.

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

Что означает RISC и CISC?

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

Многие говорят, что разница между RISC и CISC стала несущественной. Так ли это? И если нет, то в чем разница между современными RISC и CISC процессорами?

Компания Apple выпустила процессор Apple Silicon M1, который произвел фурор. Теперь вы можете задаться вопросом, чем он отличается от процессоров Intel и AMD? Вероятно, вы слышали, что M1 — процессор с архитектурой ARM, а ARM — это RISC, в отличие от Intel и AMD.

Если вы читали про разницу между микропроцессорами RISC и CISC, то вы знаете, что множество людей утверждают об отсутствии практической разницы между ними в современном мире. Но так ли это на самом деле?
Читать дальше →
Всего голосов 76: ↑72 и ↓4 +68
Комментарии 89

Как установить Kubernetes на сервер Ubuntu без Docker

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

Kubernetes прекращает поддержку Docker. Теперь, вся тяжелая работа, которую вы вложили в изучение, сильно изменится. Даже с самого начала пути использование Kubernetes не будет прежним.

Я говорю о самой установке инструмента управления контейнерами. Вы, конечно, не можете развернуть Kubernetes так же, как когда-то — установив Docker в качестве среды выполнения.

Вместе мы сейчас попробуем установить  Kubernetes на Ubuntu Server 20.04 без Docker-а.
Читать дальше →
Всего голосов 11: ↑7 и ↓4 +3
Комментарии 8

Давайте напишем командную оболочку Linux

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

Всем привет!

Хочу поделиться своим опытом написания собственной командной оболочки Linux используя Posix API. Усаживайтесь поудобнее.

Что должен уметь наша командная оболочка?

1. Запуск процессов в foreground и background режиме

2. Завершение background процессов

3. Поддержка перемещения по директориям

Читать далее
Всего голосов 32: ↑29 и ↓3 +26
Комментарии 13

Почему хабражители предпочитают велосипеды, вместо готовых решений? Или о systemd, part 0

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

С Новым Годом Хабр!
Первого января все нормальные люди занимаются прокрастинацией, уничтожением стратегического запаса оливье и прочими, не связанными с физической или интеллектуальной нагрузкой вещами. Вот и я планировал присоединиться к этой новогодней армии, но не тут-то было!

Во всём виноват Хабр!
Всего голосов 106: ↑104 и ↓2 +102
Комментарии 245

Шифрование данных на виртуальном сервере

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


Немного здоровой паранойи еще никому не вредило. Помимо мессенджеров с оконечным шифрованием, шифрованием файлов на смартфонах «из коробки» и обязательным использованием SSL на сайтах, не лишним будет защитить данные на виртуальных серверах. Тем более, современные технологии сделали это простым и доступным любому пользователю. Крупные провайдеры, предоставляющие услуги хостинга VPS, предлагают шифровать данные пользователей используя стандартные средства операционных систем. Например, Microsoft, в своем облаке Azure, использует для серверов на Windows — BitLocker, а для виртуальных машин на Linux — DM-Crypt. Эти средства позволяют сохранить приватность ваших данных, даже если злоумышленник получит доступ к ЦОДу, где находятся сервер или вашему локальному компьютеру.

 Можно доверять свои данные хостерам предоставляющим VPS, можно не доверять, но никто не запретит вам использовать те же самые способы у любого VPS-провайдера, настроенные самостоятельно. В этой статье я расскажу вам как это сделать.
Читать дальше →
Всего голосов 26: ↑25 и ↓1 +24
Комментарии 16

Информация

В рейтинге
Не участвует
Зарегистрирован
Активность