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

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

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

Запуск графических приложений в Docker

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

В основном, Docker привыкли использовать для запуска сервисов или процессов не предполагающих визуальной составляющей. Однако могут быть ситуации, когда в контейнере возникает необходимость открыть среду разработки и на месте продебажить один сервис или два сервиса, каждый в своем контейнере. В прошлой статье я писал, как запускать графические приложения в wsl, в текущей расскажу, как можно запустить разными способами в контейнере qtcreator. Аналогично можно будет поступить с любой средой разработки или программой.

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

Страх и ненависть в распределённых системах

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


Роман Гребенников объясняет сложность построения распределённых систем. Это — доклад Highload++ 2016.

Всем привет, меня зовут Гребенников Роман. Я работаю в компании Findify. Мы делаем поиск для онлайн-магазинов. Но разговор не об этом. В компании Findify я занимаюсь распределенными системами.

Что же такое распределённые системы?
Всего голосов 42: ↑40 и ↓2 +38
Комментарии 7

FOSS News №65 – дайджест материалов о свободном и открытом ПО за 5–11 апреля 2021 года

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


Всем привет!


Продолжаем дайджесты новостей и других материалов о свободном и открытом ПО и немного о железе. Всё самое главное про пингвинов и не только, в России и мире. ИСП РАН займётся повышением защиты Linux и поддержанием отечественной ветки ядра Linux; Google одержал победу в разбирательстве с Oracle, связанном с Java и Android; KDE взял на себя продолжение сопровождения общедоступной ветки Qt 5.15; Signal добавит функцию платежей криптовалютой; Rust включён в число основных языков для разработки платформы Android; обзор и финальное мнение о дистрибутиве Deepin 20.2 и многое другое.

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

Графика в терминале

Время на прочтение 3 мин
Количество просмотров 29K
Эта история началась, когда я узнал о существовании bpytop. Меня поразила детализация графиков и я начал разбираться как это сделано. Оказалось, что для вывода графиков использовались символы алфавита Брайля, представляющие из себя комбинацию из 8 точек: 2 точки в ширину и 4 точки в высоту. Поискав готовые решения, использующие этот подход, я нашел на реддите анонс такого проекта. В первом же комментарии анонса я прочитал:
Это конечно круто, но почему люди просто не переоткроют для себя ReGIS (векторную графику в терминале) и sixel (пиксельную графику в терминале).
До этого момента я ничего не знал про sixel. Копнув глубже я выяснил, что в теории sixel должен поддерживаться xterm-ом. Я запустил xterm на своей ubuntu 20.04 в режиме эмуляции vt340

xterm -xrm "XTerm*decTerminalID: vt340" -xrm "XTerm*numColorRegisters: 256"

выполнил вот такую команду (convert это команда из пакета imagemagick)

clear && convert <(curl -s https://upload.wikimedia.org/wikipedia/en/7/7d/Lenna_%28test_image%29.png) sixel:-

и увидел вот это:

image
Вау, работает!
Читать дальше →
Всего голосов 115: ↑115 и ↓0 +115
Комментарии 51

Как же писать эти грёбаные циклы?

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

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

Читать далее
Всего голосов 26: ↑9 и ↓17 -8
Комментарии 79

Обзор операторов PostgreSQL для Kubernetes. Часть 1: наш выбор и опыт

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


Всё чаще от клиентов поступают такие запросы: «Хотим как Amazon RDS, но дешевле»; «Хотим как RDS, но везде, в любой инфраструктуре». Чтобы реализовать подобное managed-решение на Kubernetes, мы посмотрели на текущее состояние наиболее популярных операторов для PostgreSQL (Stolon, операторы от Crunchy Data и Zalando) и сделали свой выбор.

Эта статья — полученный нами опыт и с теоретической точки зрения (обзор решений), и с практической стороны (что было выбрано и что из этого получилось). Но для начала давайте определимся, какие вообще требования предъявляются к потенциальной замене RDS…
Читать дальше →
Всего голосов 54: ↑53 и ↓1 +52
Комментарии 27

Как нарисовать звезду (и не только) в полярных координатах

Время на прочтение 6 мин
Количество просмотров 32K
Вопрос о формуле для многоугольника в полярных координатах регулярно возникает на тематических ресурсах — и так же регулярно остаётся без внятного ответа. В лучшем случае попадается решение через функцию остатка от деления — что не является «чистым» с математической точки зрения, поскольку не позволяет производить над функцией аналитические преобразования. Видимо, настоящие математики слишком заняты решением проблем тысячелетия и поисками простого доказательства теоремы Ферма, чтобы обращать внимание на подобные банальные задачи. К счастью, в этом вопросе воображение важнее знания, и для решения этой задачи не нужно быть профессором топологических наук — достаточно знания школьного уровня.
Дальше больше картинок
Всего голосов 152: ↑150 и ↓2 +148
Комментарии 31

Сервис на языке Dart: каркас серверного приложения

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


Подготовка


В прошлый раз мы закончили на том, что разместили статическую веб страницу-заглушку, разработанную с использованием Flutter для web. Страница отображает прогресс разработки нашего сервиса, однако данные о датах начала разработки и релиза пришлось захардкодить в приложении. Таким образом мы лишились возможности изменить сведения на странице. Пришло время разработать приложение — сервер данных. Схема всех приложений сервиса — в статье «Сервис на языке Dart: введение, инфраструктура бэкэнд».

В этой статье мы напишем приложение с использованием фреймворка Aqueduct, оценим его производительность и потребление ресурсов в разных режимах, напишем инструментарий для компиляции в нативное приложение для Windows и Linux, разберемся с миграциями схемы базы данных для доменных классов приложения и даже опубликуем наш инструментальный docker образ в публичный регистр DockerHub.


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

Как помнить всех в лицо, или эффективный поиск лиц в большой базе

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

О себе


Здравствуй, Хабр! Меня зовут Павел, я работаю техническим директором в компании, занимающейся производством IoT устройств. Производим много чего — начиная от контроллеров для умных домов, заканчивая умными приборами учёта на своём запатентованном протоколе сенсорных сетей.


Также исполняют обязанности генерального директора ит-компании. В прошлом полуфиналист ЧМ по программированию ACM ICPC.


Мотивация


Пишу я это статью потому, что наша команда убила около месяца на поиск решения (ещё недели две на реализацию и написание тестов) для хранения и эффективного поиска распознанных лиц в базе данных, с целью сэкономить время вам в ваших проектах. Спойлер: ничего готового вроде классного плагина для существующей СУБД не нашли, а сроки полыхали, по этому написали свою СУБД именно для этой задачи (хранения огромного количества эмбендингов лиц). Моя статья ни в коем случае не претендует на звание исчерпывающего руководства, но, я надеюсь, что она даст точку старта для дальнейшего изучения и развития наших мыслей.


Эмбеддинг – это отображение из дискретного вектора категориальных признаков в непрерывный вектор с заранее заданной размерностью.
Читать дальше →
Всего голосов 31: ↑26 и ↓5 +21
Комментарии 8

[ В закладки ] CSS: использование внутренних и внешних отступов

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


Эта статья посвящена всему, что нужно знать о настройке расстояний между элементами и о настройке внутренних пространств элементов. В частности, речь пойдёт о том, в каких ситуациях стоит использовать внутренние отступы (padding), а в каких — внешние (margin).
Читать дальше →
Всего голосов 34: ↑31 и ↓3 +28
Комментарии 6

Практика подготовки иностранных слов с озвучкой для запоминания в программе Anki

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

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

Читать дальше →
Всего голосов 14: ↑11 и ↓3 +8
Комментарии 15

Файл дескриптор в Linux с примерами

Время на прочтение 14 мин
Количество просмотров 98K
Однажды, на одном интервью меня спросили, что ты будешь делать, если обнаружишь неработающий сервис из-за того, что на диске закончилось место?

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

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

Интервьюер прервал меня на последнем слове, дополнив свой вопрос: «Предположим, что данные нам не нужны, это просто дебаг лог, но приложение не работает из-за того, что не может записать дебаг»?

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

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

Интервьюер остался доволен, а я нет.

Тогда я подумал, почему человек, проверяющий мои знания, не копает глубже? А что, если данные все-таки важны? Что если мы не можем перезапускать процесс, и при этом этот процесс пишет на файловую систему в раздел, на котором нет свободного места? Что если мы не можем потерять не только уже записанные данные, но и те данные, что этот процесс пишет или пытается записать?
Читать дальше →
Всего голосов 136: ↑136 и ↓0 +136
Комментарии 20

Настройка параметров PostgreSQL для оптимизации производительности

Время на прочтение 6 мин
Количество просмотров 92K
По умолчанию конфигурация PostgreSQL не настроена для рабочей нагрузки. Значения по умолчанию установлены для обеспечения работоспособности PostgreSQL везде с наименьшим количеством ресурсов. Имеются настройки по умолчанию для всех параметров базы данных. Главной обязанностью администратора базы данных или разработчика является настройка PostgreSQL в соответствии с нагрузкой их системы. В этом блоге мы изложим основные рекомендации по настройке параметров базы данных PostgreSQL для повышения производительности базы данных в соответствии с рабочей нагрузкой.

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

Тем не менее, параметры базы данных тоже очень важны, поэтому давайте посмотрим на восемь, которые имеют наибольший потенциал для повышения производительности
Читать дальше →
Всего голосов 17: ↑15 и ↓2 +13
Комментарии 21

Искусство и наука: Проект VITAE — множество отпечатков ладоней на лунном цветке

Время на прочтение 3 мин
Количество просмотров 774
Французский художник и скульптор Анилор Банон некоторое время назад провела презентацию своего амбициозного проекта VITAE («Жизнь») перед специалистами и руководством компании Dassault Systèmes. По словам Банон, VITAE — это совместный проект всего человечества; он выглядит как цветок с чашечкой, где планируется запечатлеть отпечатки ладоней жителей всех континентов. Автор проекта говорит, что он посвящен связующим элементам жизни, творчеству и инновациям, устранению барьеров.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 0

Стажёр Вася и его истории об идемпотентности API

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

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


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


image

Читать дальше →
Всего голосов 219: ↑216 и ↓3 +213
Комментарии 163

Опыт использования AWS ECS в нашей инфраструктуре

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

В данной статье я бы хотел поделиться нашим опытом использования AWS ECS в инфраструктуре, рассказать о плюсах и минусах этого продукта и о том, как мы решали проблемы с этим связанные. Начнём с определения:
Amazon EC2 Container Service – это высокопроизводительный сервис управления контейнерами с высокими возможностями масштабирования.

По сути ECS это попытка компании Amazon влезть в рынок управления контейнеров, где сейчас существуют Kubernetes, Mesos/Marathon, Docker Swarm и другие. Однако, в отличии от них Amazon предоставляет сервис с API, таким образом наиболее близкий аналог это Google Container Engine (aka kubernetes-as-a-service). Стоит отметить, что сам ECS бесплатен, а платите вы только за EC2 инстансы.
Читать дальше →
Всего голосов 8: ↑8 и ↓0 +8
Комментарии 16

Serverless и React 2: ловкость рук и никакого мошенничества

Время на прочтение 15 мин
Количество просмотров 11K
Можно ли по-простому рассказать фронтенд-разработчикам о работе «безоблачной» архитектуры Serverless в рамках AWS (Amazon Web Services)? Почему бы и нет. Давайте отрендерим React/Redux-приложение в архитектуре AWS, а после этого поговорим о плюсах и минусах AWS-лямбд.


В основе материала — расшифровка доклада Марины Миронович с нашей весенней конференции HolyJS 2018 в Санкт-Петербурге.
Всего голосов 29: ↑24 и ↓5 +19
Комментарии 1

Функции для документирования баз данных PostgreSQL. Часть вторая

Время на прочтение 19 мин
Количество просмотров 3.9K
Это вторая часть статьи, которая описывает пользовательские функции для работы с системными каталогами: pg_class, pg_attribute, pg_constraints и т.д.

В этой части статьи обсуждаются функции, возвращающие характеристики ограничений и индексов.
Читать дальше →
Всего голосов 12: ↑11 и ↓1 +10
Комментарии 3

Mozilla разработала открытый шлюз для Интернета вещей

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


Apple, Google, Amazon, Samsung — у каждой из этих компаний собственные стандарты и программы для управления «умными» устройствами собственной марки. В результате они зачастую могут общаться только со своими «родственниками» производства той же фирмы. Смарт-колонка Apple HomePod откажется делать резервную копию данных в облако Amazon или Google и не будет выполнять команды с Andrioid-смартфона. Получается, что для полной интеграции вся техника в доме должна быть от одной компании. Это явно ненормальная ситуация.

В прошлом году организация Mozilla объявила, что работает над созданием единого свободного фреймворка — программ и сервисов для Интернета вещей, работающих по открытому стандарту Web Things API, который использует JSON, REST и WebSockets API.

Фреймворк должен стать единым шлюзом для взаимодействия «умных» устройств разных производителей (Things Gateway). Сейчас организация официально объявила о запуске проекта Mozilla IoT, выложила стек программ и опубликовала руководство по построению системы «умного дома» с использованием Raspberry Pi. Заявка на стандартизацию Web Things API подана в консорциум W3C 2 февраля 2018 года.
Читать дальше →
Всего голосов 30: ↑29 и ↓1 +28
Комментарии 13

CoffeeMiner: взлом WiFi для внедрения криптомайнера в HTML-страницы

Время на прочтение 7 мин
Количество просмотров 30K
Предупреждение: эта статья и проект имеют исключительно образовательные цели.

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

Цель этой статьи — объяснить, как провести атаку MITM (человек посередине) для внедрения определённого JavaScript-кода в страницы HTML, чтобы заставить все устройства, подключённые к WiFi, майнить криптовалюту для злоумышленника.

Задача состоит в создании скрипта, который проводит автономную атаку в сети WiFi. Это то, что мы назвали CoffeeMiner, поскольку атаки такого типа можно проводить в кафе.
Читать дальше →
Всего голосов 23: ↑21 и ↓2 +19
Комментарии 15

Информация

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