Pull to refresh
4
0
Филипп @Philipp0K

Программист

Send message

Эффективные надежные микросервисы

Reading time29 min
Views17K


В Одноклассниках запросы пользователей обслуживает более 200 видов уникальных типов сервисов. Многие из них совмещают в одном JVM-процессе бизнес-логику и распределенную отказоустойчивую базу данных Cassandra, превращая обычный микросервис в микросервис с состоянием. Это позволяет нам строить высоконагруженные сервисы, управляющие сотнями миллиардов записей с миллионами операций в секунду на них.


Какие преимущества появляются при совмещении бизнес-логики и БД? Какие нюансы надо учесть, прибегая к такому подходу? Что с надёжностью и доступностью сервисов? Расскажем подробно об этом всём.

Читать дальше →
Total votes 41: ↑38 and ↓3+35
Comments23

Великий египетский фаерволл

Reading time2 min
Views46K
В мире бушует пандемия, народ скупает туалетную бумагу и гречку в промышленных масштабах, а ИТ компании в большинстве своем переводят сотрудников на удаленку. Так поступил и мой работодатель — немецкая полугосударственная контора.

В основном проблем не возникло, но одна из наших сотрудниц с месяц назад, когда все выглядело еще не так страшно, поехала в отпуск к родне в Египет и благополучно застряла там из-за закрытия границ. Ну, сама-то здорова, рабочий ноут с ней — сидит себе на карантине и работает через VPN. Неделю работает, две… На третью неделю VPN перестал подключаться. Саппорт первой линии проверил банальности навроде перезагрузки — не помогло. Вторая линия стала диагностировать: соединение уходит в вечный таймаут на стадии TLS Handshake. Отключили локальный фаерволл — не помогло. Попробовали другую машину — не работает. Другого провайдера — не работает. На этом моменте саппорты сдались и радостно спихнули проблему на меня по старому доброму принципу «во всем виноват сетевик».
Читать дальше →
Total votes 122: ↑116 and ↓6+110
Comments45

«Откуда ноги растут» или что предшествует программированию?

Reading time14 min
Views6.2K
Всем привет! На днях в рамках образовательной платформы OTUS запускается новый курс: «Архитектура и шаблоны проектирования». В связи со стартом мы провели традиционный открытый урок. На нём изучили особенности монолитного приложения, многоуровневой и бессерверной архитектур. Подробно рассмотрели систему, управляемую событиями, сервис-ориентированную систему и микросервисную архитектуру.



Преподаватель — Матвей Калинин, специалист с более чем 20-летним опытом программирования и автор курса «Архитектура и шаблоны проектирования».
Читать дальше →
Total votes 12: ↑10 and ↓2+8
Comments3

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

Reading time27 min
Views68K

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

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

МЭМС акселерометры, магнитометры и углы ориентации

Reading time8 min
Views33K


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

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

TL;DR: Описан небольшой скрипт для Octave/MATLAB, позволяющий оценить ошибки расчёта углов ориентации по измерениям МЭМС акселерометров и магнитометров. На входе скрипта — параметры датчиков из даташитов (и/или погрешности калибровки). Статья может быть полезна тем, кто начинает использовать инерциальные датчики в своих устройствах. Небольшой ликбез по датчикам прилагается. Ссылка на гитхаб тоже.
Вот как мы решили эту задачу:
Total votes 26: ↑26 and ↓0+26
Comments23

Связь между C# и C#: REST, gRPC и все, что между

Reading time10 min
Views32K
Существует много способов связи между клиентом C# и сервером C#. Некоторые из них надежные, другие нет. Некоторые очень быстрые, другие нет. Важно знать различные варианты, чтобы вы могли решить, что лучше для вас. В этой статье будут рассмотрены самые популярные на сегодняшний день технологии и почему они так широко используются. Мы поговорим о REST, gRPC и всем, что между ними.
Читать дальше →
Total votes 15: ↑14 and ↓1+13
Comments11

Учимся разворачивать микросервисы. Часть 1. Spring Boot и Docker

Reading time7 min
Views89K


Привет, Хабр.


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


Изначально я разбил создание проекта на несколько шагов:


  1. Создать два сервиса — 'бекенд' (backend) и 'шлюз' (gateway), упаковать их в docker-образы и настроить их совместную работу


    Ключевые слова: Java 11, Spring Boot, Docker, image optimization


  2. Разработка Kubernetes конфигурации и деплой системы в Google Kubernetes Engine


    Ключевые слова: Kubernetes, GKE, resource management, autoscaling, secrets


  3. Создание чарта с помощью Helm 3 для более эффективного управления кластером


    Ключевые слова: Helm 3, chart deployment


  4. Настройка Jenkins и пайплайна для автоматической доставки кода в кластер


    Ключевые слова: Jenkins configuration, plugins, separate configs repository



Каждому шагу я планирую посвятить отдельную статью.


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

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

Подборка 143 переводов эссе Пола Грэма (из 184)

Reading time8 min
Views60K
image

Пол Грэм — один из самых уважаемых людей среди ИТишников, основателей и инвесторов. Он первоклассный программист (написал два языка программирования), хакер, создатель дерзкого акселератора Y Combinator, философ. Своими помыслами и разумом Пол Грэм врывается в широкий спектр областей: от прогнозирования развития языков программирования на сто лет вперед до человеческих качеств и способов починить/хакнуть экономику. А ещё он осознает важность того, чтобы формулировать свои мысли в текст и делиться ими с окружающими.

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

Первую подборку переводов эссе Пола Грэма меня вдохновили сделать коллеги из tceh.com (60 переводов из 176). Вторую — Edison Software (125 переводов). Третью — PhilTech-акселератор (134 перевода и еще несколько в процессе). Потом был период (2017, 2018 и 2019), когда Пол Грэм не писал эссе (а занимался с детьми), а только немного в Твиттер и дал одно видео-интервью для стартап-школы. Но в конце 2019 и начале 2020 года он вновь стал публиковать глубокие тексты об которые интересно подумать. Предлагаю вашему вниманию ссылки на новые переводы (upd с прошлой подборки) и полный список всех эссе.

Novelty and Heresy (Да здравствует ересь!)
The Lesson to Unlearn (Вредные уроки)
The Bus Ticket Theory of Genius (Теория навязчивых идей)

Five Questions about Language Design (Пять вопросов о проектировании языков программирования)
What Made Lisp Different (Что сделало Lisp особенным)
After the Ladder (На смену корпоративной лестнице)
What I’ve Learned from Hacker News (Чему я научился у Hacker News)
Snapshot: Viaweb, June 1998 (разбор полетов: Viaweb июня 1998 года)
Some Heroes (Мои кумиры)
The Equity Equation (Как делить доли в стартапе)

Бонус - видео из стартап-школы 2018 с русскими субтитрами


Total votes 33: ↑30 and ↓3+27
Comments10

Управляя коллективом, нарушьте все правила

Reading time23 min
Views40K

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

Если ответы на эти вопросы вас интересуют, то вам стоит почитать книгу Маркуса Бакингема и Курта Коффмана «Сначала нарушьте все правила: Что лучшие в мире менеджеры делают по-другому». Эта книга могла бы стать для меня настольной, но перечитывать нет времени, поэтому я сделал выжимку, которой и хочу с вами поделиться.
Читать дальше →
Total votes 84: ↑81 and ↓3+78
Comments20

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

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

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

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

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



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

Как подключить карты в эллипсоидной проекции, если это не предусмотрено?

Reading time4 min
Views3.6K
Или как подогнать тайлы Яндекс карт под проекцию OpenStreetMaps?

Вступление


Каждый раз, когда открываете какую-нибудь онлайн-карту, вы не скачиваете ее целиком. Для ускорения загрузки карты разделена на небольшие кусочки (тайлы), чтобы можно было скачать только нужную область. Проблем в том, что разрезать на эти квадратики можно несколькими способами.
Читать дальше →
Total votes 8: ↑8 and ↓0+8
Comments1

Делаем интерактивный план местности за 15 минут

Reading time10 min
Views18K


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

Total votes 16: ↑15 and ↓1+14
Comments2

TelegramBot инструкция по созданию базового функционала для бота. (Часть 1)

Reading time6 min
Views47K
Не так давно я предложил вам воспользоваться моим ботом для телеграмма.

Telegram Bot — помощник в планировании мероприятий

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

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

Я решил написать цикл статей, в которых хочу показать базовые вещи, которые будут нужны вам для написания своего бота.
Вас ждет Java, Maven, TelegramAPI, Lombok и Log4j.
Кому интересно — прошу под кат…
Читать дальше →
Total votes 7: ↑6 and ↓1+5
Comments17

Использование PowerShell для сбора информации об инциденте

Reading time5 min
Views7.4K
PowerShell достаточно распространенное средство автоматизации, которое часто используется, как разработчиками вредоносных программ, так и специалистами по информационной безопасности.
В данной статье будет рассмотрен вариант использования PowerShell для удаленного сбора данных с конечных устройств при реагировании на инциденты ИБ. Для этого потребуется написать скрипт, который будет запускаться на конечном устройстве и далее будет подробное описание данного скрипта.
Читать дальше →
Total votes 13: ↑13 and ↓0+13
Comments2

Машинное (радио)зрение видит сквозь стены

Reading time4 min
Views13K
image

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

Про радиозрение команды лаборатории CSAIL (Computer Science and Artificial Intelligence Lab) уже писали на Хабре (раз и два), сегодня немного свежих подробностей.

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

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

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

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

Подписывайтесь на каналы:
@AutomotiveRu — новости автоиндустрии, железо и психология вождения
@TeslaHackers — сообщество российских Tesla-хакеров, прокат и обучение дрифту на Tesla

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

Cerebras Systems представила компьютер с самым большим в мире процессором 22×22 сантиметра

Reading time5 min
Views33K

Схема компьютера CS-1 показывает, что большая часть отведена для питания и охлаждения гигантского «процессора-на-пластине» Wafer Scale Engine (WSE). Фото: Cerebras Systems

В августе 2019 года компания Cerebras Systems и её производственный партнер TSMC анонсировали крупнейшую микросхему в истории компьютерной техники. С площадью 46 225 мм² и 1,2 триллиона транзисторов микросхема Wafer Scale Engine (WSE) примерно в 56,7 раз больше, чем самый большой GPU (21,1 млрд транзисторов, 815 мм²).

Скептики говорили, что разработать процессор — не самая сложная задача. Но вот как он будет работать в реальном компьютере? Каков процент брака на производстве? Какое потребуется питание и охлаждение? Сколько будет стоить такая машина?

Похоже, инженерам Cerebras Systems и TSMC удалось решить эти проблемы. 18 ноября 2019 года на конференции Supercomputing 2019 они официально представили CS-1 — «самый быстрый в мире компьютер для расчётов в области машинного обучения и искусственного интеллекта».
Читать дальше →
Total votes 36: ↑36 and ↓0+36
Comments144

Установка FPV и телеметрии на квадрокоптер

Reading time2 min
Views16K
Данная статья является продолжением статьи «Квадрокоптер на MultiWii SE v2.5 — от задумки до первого полёта», в ней я поделюсь с Вами своим опытом установки и настройки FPV оборудования на квадрокоптер для полётов от первого лица. Заинтересовавшихся прошу под кат.


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

Работаем с USB Custom HID на Android

Reading time6 min
Views13K
Designed by Freepik
В современных Android — приложениях для взаимодействия с другими устройствами чаще всего используются беспроводные протоколы передачи данных, как например Bluetooth. В годы, когда часть устройств имеют беспроводную зарядку, сложно представить себе связку Android устройства и периферийного модуля, в которой необходимо использование проводных интерфейсов. Однако когда такая необходимость возникает, на ум сразу же приходит USB.

Давайте разберем с вами гипотетический кейс. Представьте, что к вам приходит заказчик и говорит: “Мне нужно Android приложение для управления устройством сбора данных и вывода этих самых данных на экран. Есть одно НО — приложение надо написать на одноплатный компьютер с операционной системой Android, а периферийное устройство подключено по USB”

Звучит фантастически, но и такое иногда случается. И тут как нельзя кстати пригодится глубокое знание USB стека и его протоколов, но данная статья не об этом. В данной статье мы рассмотрим, как управлять периферийным устройством по протоколу USB Custom HID с Android устройства. Для простоты напишем Android-приложение (HOST), которое будет управлять светодиодом на периферийным устройством (DEVICE) и получать состояние кнопки (нажатия). Код для периферийной платы приводить не буду, кому интересно — пишите в комментариях.
Читать дальше →
Total votes 17: ↑17 and ↓0+17
Comments49

Oculus Quest подключается к ПК и видит руки

Reading time2 min
Views18K
25 сентября началась большая ежегодная презентация от компании Facebook — Oculus Connect, и началась она с бомбических анонсов для всех, кто уже обладает или только приглядывается к шлему Oculus Quest! Давайте по порядку:


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

Погружение в свёрточные нейронные сети: передача обучения (transfer learning)

Reading time37 min
Views18K

Полный курс на русском языке можно найти по этой ссылке.
Оригинальный курс на английском доступен по этой ссылке.


Читать дальше →
Total votes 14: ↑12 and ↓2+10
Comments3

Information

Rating
Does not participate
Location
Минск, Минская обл., Беларусь
Date of birth
Registered
Activity