Pull to refresh
1
0
Send message

Ультрабюджетный домашний сервер и что он может

Level of difficultyEasy
Reading time14 min
Views93K


Давеча мне попалась интересная материнская плата на процессоре Celeron J1800 за цену аж в 850 рублей! В повседневном использовании этот процессор, мягко говоря, не очень хорош, а в роли домашнего сервера у него могут быть все шансы, особенно при такой цене. В статье проведём тесты и изучим его реальные возможности и потребление в паре с бюджетным SSD.
Читать дальше →
Total votes 81: ↑78 and ↓3+103
Comments232

Большая дыра в безопасности Android: почему смартфоны с зеленым роботом подвержены кражам?

Level of difficultyEasy
Reading time8 min
Views22K
image

Многим пользователям смартфонов знакомо такие понятия как «привязка к аккаунту». У различных вендоров смартфонах есть свои механизмы защиты смартфонов от кражи: у Apple — FMI, у Xiaomi — Mi Cloud, а у Google — FRP. Однако у Android есть давняя уязвимость, которая позволяет обходить практически любые смартфоны на «чистой» системе, даже с привязкой к Google-аккаунту. Недавно мне написал известный YouTube-блогер MaddyMurk и предложил задарить смартфон-броневичок AGM H3 на гугл-аккаунте, который он не смог сбросить. Я решил подготовить подробный материал о дырах в защите Android и на практике обойти FRP на смартфоне, который «повис» на активации. Сегодня мы с вами узнаем: почему смартфоны на Android так легко обходить, какие существуют методики и почему подобная практика невозможна на устройствах Apple. Интересно? Жду вас под катом!
Читать дальше →
Total votes 69: ↑63 and ↓6+77
Comments74

Что ты такое, dhclient?

Reading time19 min
Views46K

Сетевой стек Linux не прост даже на первый взгляд: приложение — в юзерспейсе, а всё, что после сокета, — в ядре операционки. И там тысяча реализаций TCP. Любое взаимодействие с сетью — системный вызов с переключением контекста в ядре.

Чтобы лишний раз не дёргать ядро прерываниями, придумали DMA — Direct Memory Access. И это дало жизнь классу софта с режимом работы kernel bypass: например при DPDK (Intel Data Plane Development Kit). Потом был BPF. А за ним — eBPF. 

Но даже помимо хаков работы с ядром есть такие штуки, как sk_buff, в которой хранятся метаданные всех миллионов протоколов. Есть NAPI (New API), которая призвана уменьшить число прерываний. Есть 100500 вариантов разных tables.

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

Начать погружение
Total votes 177: ↑176 and ↓1+221
Comments61

Fooocus v2 — бесплатный Midjourney у вас на компьютере. Подробная инструкция по установке и использованию нейросети

Level of difficultyEasy
Reading time10 min
Views280K

Друзья, всем привет! Сегодня я хочу рассказать вам про самую простую и доступную для понимания нейросеть, которая создает изображения по вашему текстовому описанию. Она называется Fooocus и основана на знаменитой Stable Diffusion XL. Это идеальное решение в качестве вашей первой нейросети, и необходимый инструмент для любого дизайнера или контент мейкера.

Внутри много тяжелых изображений.

Читать далее
Total votes 90: ↑87 and ↓3+114
Comments216

Kubernetes + Jenkins: как использовать вместе

Reading time7 min
Views10K

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

Читать далее
Total votes 16: ↑15 and ↓1+15
Comments2

Операторы в Kubernetes

Level of difficultyHard
Reading time8 min
Views12K

Ручные изменения в кластере доставляют одну лишь головную боль. А чтобы от них избавиться, используются операторы, в частности K8s. Что это такое? И самое главное, как его написать?

Меня зовут Дмитрий Самохвалов, я архитектор в компании КРОК. Пробовал себя в разработке, инфраструктуре и тимлидерстве. Расскажу про архитектуру и внутреннее устройство оператора и покажу как создать свой оператор на Go. Все остальные вопросы можно задать мне в Телеграм.

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

Как уменьшить размер образа Docker для JVM

Reading time8 min
Views11K
image

Если вы уже достаточно долго пишете на Kotlin, или Scala, или на любом другом языке, основанном на JVM, то могли заметить: начиная с Java 11 среда Java Runtime Environment (JRE) больше не поставляется в виде отдельного дистрибутива, а распространяется только в составе Java Development Kit (JDK). В результате такого изменения многие официальные образы Docker не предлагают вариант образа «только для JRE». Таковы, например, официальные образы openjdk, образы corretto от Amazon. В моем случае при использовании такого образа в качестве заготовки получался образ приложения, завешивавший на 414 MB, тогда как само приложение занимало всего около 60 MB. Мы стремимся к эффективной и бережливой разработке, поэтому такая расточительность для нас непозволительна.

Давайте же рассмотрим, как можно радикально уменьшить размер Docker-образа для Java.
Читать дальше →
Total votes 19: ↑19 and ↓0+19
Comments16

Эскалация привилегий в Kubernetes

Reading time5 min
Views8.8K

Когда кто-то говорит о безопасности, в первую очередь имеет ввиду авторизацию и аутентификацию, но в контексте Kubernetes эти две составляющие являются лишь маленькими кусочками большого пазла.

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

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

Строим свой SSO сервер используя Spring Authorization Server

Level of difficultyMedium
Reading time45 min
Views37K

На днях я решил сделать под все свои pet-проекты собственный SSO сервис, дабы не заморачиваться каждый раз с авторизацией и аутентификацией. Возиться с этим особо долго мне не хотелось. Все таки это для pet-проектов. Поэтому выбор пал на Spring Security. Мне давно уже было интересно посмотреть в действии как на Spring Boot 3, так и новый Spring Authorization Server версии 1.x.x. В данной статье речь пойдёт о проблемах и их решениях при построении собственного SSO. А также я поставил себе ряд интересных требований, с которыми я постараюсь справиться и рассказать о своём опыте.

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

Создание CLI-приложений при помощи System.CommandLine в .NET

Level of difficultyEasy
Reading time5 min
Views8.2K

В .NET уже несколько лет существует библиотека System.CommandLine, позволяющая быстро создавать CLI-приложения. Несмотря на то, что библиотека ещё в стадии beta, её активно используют и сами разработчики Microsoft, например, в утилите dotnet из пакета .NET SDK. 

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

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

Ограничиваем доступ в Kubernetes: без смс, но с регистрацией

Reading time9 min
Views4K

Хабр, привет!

Меня зовут Александр Кузьмин, я старший инженер в КРОК, занимаюсь облачными технологиями, микросервисами и всеми новомодными DevOps-методологиями. 

В этом посте хочу поговорить про Kubernetes, а именно — про организацию доступа в кластер. Развернуть кластер несложно, а вот постоянно поддерживать его в рабочем состоянии — это задачка уровнем выше. И здесь не избежать вечного вопроса «как сделать так, чтобы Вася не сломал то, что придумал Петя». В посте рассказываю, как мы работаем с этим в КРОК: какие механизмы ограничения доступа используем, как их подбираем и какие важные моменты учитываем. Всё в деталях, как мы любим на Хабре — с подробными пошаговыми описаниями, лайфхаками из личного опыта и удобной шпаргалкой в конце. 

Пост основан на моем докладе на последнем DevOops Conf, так что если видео вам заходит лучше, приглашаю по ссылке.

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

Как использовать JMeter для нагрузочного тестирования и тестирования производительности

Level of difficultyEasy
Reading time5 min
Views59K

Apache JMeter — это инструмент для проведения нагрузочного тестирования, представляющий собой десктопное приложение с открытым исходным кодом на базе Java. JMeter позволяет определить, может ли тестируемое веб-приложение удовлетворять требованиям высокой нагрузки или нет. Он также помогает проанализировать работу всего сервера под высокой нагрузкой.

Читать далее
Total votes 15: ↑13 and ↓2+15
Comments6

Как написать UI-автотесты, если не умеешь программировать?

Reading time19 min
Views19K

О чем эта статья и чем она полезна.

Всем привет! В этой статье пойдет речь о том, как написать простые UI-тесты на языке Java. Это будет интересно тем, кто давно хотел попробовать себя в автоматизации или добавить новенького в свой текущий проект.

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

Основная часть статьи будет посвящена практическому разбору теста и нюансам их написания.

Собирайте с собой друзей, хорошее настроение и поехали!

Что такое UI-тесты? Плюсы и минусы.

UI-тестирование – это тестирование пользовательского интерфейса программы/сайта/приложения и др.

Звучит легко, а чем такие автотесты полезны?

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

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

3)     Чтобы снять часть работы с сотрудников, если их мало на проекте, часть проверок можно перенести на автотесты.

Читать далее
Total votes 11: ↑10 and ↓1+10
Comments14

Паттерны отказоустойчивости приложений в Kubernetes

Reading time22 min
Views16K
Балансировщики падают, контроллеры зависают, а дата-центры атакуют экскаваторы. Это нормальная история. Мы живём в мире, где нет ничего надёжного на 100 %, а любой бит в планке оперативной памяти может внезапно перещёлкнуться из-за пролетевшей космической частицы.

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

По роду деятельности мне постоянно приходится сталкиваться с проблемами отказоустойчивости, так как я руководитель разработки в отделе Газпромбанка, обеспечивающем эксплуатацию ML и Big Data-решений. Поэтому сегодня я хочу рассказать о нескольких паттернах отказоустойчивости и типовых решениях при эксплуатации приложения в кластере Kubernetes. Разберём основные паттерны, ну и, конечно, рассмотрим варианты, при которых неправильные настройки прострелят вначале одну ногу, а потом — другую, потому что она слишком медленно стала шагать.


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

VSСode. Как настроить окружение для разработки в Docker на удаленном сервере через SSH

Level of difficultyEasy
Reading time3 min
Views21K

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

Читать далее
Total votes 11: ↑10 and ↓1+12
Comments23

Разделяй и властвуй. Изоляция процессов в Linux

Reading time13 min
Views14K

Последнее десятилетие проходило под знаком контейнеризации, появлялись десятки и сотни инструментов для управления контейнерами, создания виртуальных сетей для взаимодействия контейнеров на разных узлах кластера, появлялись системы маршрутизации трафика, мониторинга доступности и иные DevOps-инструменты, которые во многом трансформировали деятельность системных администраторов вплоть до того, что начали появляться сомнения в потребности организаций в администраторах Linux (особенно с учетом появления облачных провайдеров, предоставляющих как среды для запуска контейнеров в Kubernetes, так и полностью настроенные и управляемые сервисы баз данных, очередей, систем для накопления и анализа логов и т.п.). Но нередко возникают ситуации, когда нужно осуществить некоторый уровень изоляции или ограничения уже запущенных процессов и для этого можно использовать возможности control groups ядра Linux, которые также лежат в основе технологий контейнеризации Docker и LXC. В этой статье мы последовательно разберем возможности cgroups, обсудим отличия новой cgroups v2 и затронем тему контейнеризации на основе Linux Containers. Да пребудет с вами безопасное окружение выполнения.

Читать далее
Total votes 18: ↑15 and ↓3+17
Comments1

Уроки компьютерного зрения на Python + OpenCV с самых азов. Часть 3

Reading time4 min
Views30K

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

Сегодня продолжим тему обработки изображений. На прошлом уроке мы пытались при помощи размытия удалить из изображения такие дефекты, как гауссовский шум и царапины. С первым что-то более-менее получилось, а вот с царапинами ничего не вышло. Да, кстати, в комментах мне был задан вопрос: «Откуда берется гауссовкий шум?»

Отвечаю:

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

Ладно. Идем дальше. Как же нам быть с царапинами? А для их удаления можно воспользоваться медианным фильтром:

Читать далее
Total votes 6: ↑3 and ↓3+3
Comments9

Разработка 2-наносекундного излучателя лидара. Тестовое задание от Яндекс.Беспилотники

Reading time10 min
Views43K

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

Читать далее
Total votes 101: ↑100 and ↓1+120
Comments110

5 оригинальных проектов на базе Raspberry Pi весны 2022 года

Reading time4 min
Views24K

Сложно представить, что бы делали любители DIY-электроники в случае, если бы «малинки» никто не изобрел. На основе Raspberry Pi разных поколений создано столько проектов, что представить невозможно, и каждый день появляются все новые и новые. Есть откровенно простые, а есть и весьма продвинутые, комплексные. В этой подборке собраны 5 необычных проектов, основанных на «малинках», которые нам показались интересными. Подробности — ниже.
Читать дальше →
Total votes 42: ↑40 and ↓2+48
Comments36

Лучшие проекты на Raspberry Pi начала 2022 года, на которые стоит обратить внимание

Reading time4 min
Views44K

DIY-электроника всегда была чем-то особенным, атмосферным. Ну а одноплатники и микроконтроллеры Raspberry Pi привнесли в эту отрасль много нового. Проектов на базе «малинок» просто огромное количество, и далеко не все из них имеют какую-то «изюминку», из-за которой на них стоит обращать внимание. Но проекты, о которых говорится под катом, по нашему мнению, как раз оригинальные.

Некоторые из них достаточно простые, так что сделать нечто подобное или даже лучше сможет даже новичок в электронике. Другие посложнее, так что над их реализацией придется попотеть. Но в любом случае, результат будет интересным и главное — стоит потраченного времени. Что же, самое интересное — под катом.
Читать дальше →
Total votes 60: ↑51 and ↓9+53
Comments21
1
23 ...

Information

Rating
Does not participate
Registered
Activity