Как стать автором
Поиск
Написать публикацию
Обновить
0
@kievxread⁠-⁠only

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

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

Домашний сервер на базе Proxmox

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров89K

Привет! Меня зовут Александр Щербаков. Я DevOps команд страхования в Банки.ру. На своём карьерном пути я успел поработать эникейщиком, системным администратором и, наконец, DevOps‑инженером с несколькими командами разработки. Как и любой инженер, я стремлюсь постоянно совершенствоваться: получать новые знания, изучать как устоявшиеся, так и только появившиеся технологии.

И здесь сразу появляется главная проблема — для развития DevOps нужна среда, где можно запускать ПО для исследования. Разработчикам проще: открыл документацию, скачал IDE, начал пробовать и изучать новую технологию. А вот DevOps‑инженеру одной только IDE будет мало, так как часть его работы как минимум завязана на Linux серверах. Поэтому важно не просто знать, как использовать готовые решения, но и понимать, как они функционируют на уровне инфраструктуры.

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

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

Читать далее

Пробы на роль Архитектора. Акт III: выступление

Уровень сложностиСложный
Время на прочтение10 мин
Количество просмотров5.2K

Выборы архитектора происходят всегда по‑разному. Это только политиков одинаково выбирают — по принципу лишь бы не этот… А вот с архитекторами везде свой сценарий. Где‑то в половине мест сидят эстеты и предлагают что‑то изобразить да обсудить. Четверть мест явно химики с мензурками в сейфе — спрашивают про правильный код или просят пузырьковую сортировку. Ещё реже циркачи просят пожонглировать стеклянными шариками на башне или погонять трамваи. Остальные просто хотят обсуждения с залом. Как бы намекая, что нельзя вот так просто прийти в училище имени Гнесиных с фамилией Иванов. Кто‑то из гильдии таки должен сказать, что в мальчике что‑то есть.

У нас уже есть пережёванный легаси, набор грабель, методично разложенных под ногами и дальний свет сигнальных огней, к которым надо стремиться. Так что дело за малым — проложить дорогу от кучки легаси до тех самых огней по минному полю из грабель. Это и есть архитектура. Шагать вперёд, сверяться с картой, и быть чародеем.

Читать далее

Как устроен Braid?

Уровень сложностиПростой
Время на прочтение6 мин
Количество просмотров10K

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

Читать далее

Что не так с вашим кодом, сгенерированным большими языковыми моделями?

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров21K

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

Под катом вольный краткий перевод с комментариями.

Читать далее

Хостинг майнкрафт серверов — и зачем такая сложная архитектура?

Уровень сложностиПростой
Время на прочтение14 мин
Количество просмотров17K

Привет! Это вторая часть статей про хостинг серверов Minecraft, который мы строим. В первой части я рассказывал про физическую часть инфраструктуры — от ноутбук до серверной стойки. В этой же мы погрузимся в её логическую часть без долгой исторической справки, однако это звучит красиво: «от apache до k8s».

Читать далее

Как правильно сделать апгрейд ОС — установить Windows 11 поверх существующей с сохранением приложений и настроек

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров37K

Сегодняшний разговор пойдет о том, как правильно следует устанавливать 64-битную Windows 11 поверх ранее установленной 64-битной операционной системы Windows 7, 8, 10 или 11. Не пропагандирую переход на Windows 11, — выбор за вами, если это вам не нужно, ради бога, — но давайте поможем тем кто хочет это сделать, но встречается с разными сложностями на пути. Хотя при этом, заметка в целом полезна и тем, кто использует, и планирует далее использовать устаревшие системы, — рассказанный мной способ установки ОС «поверх» или «апгрейд» в целом общий для всех версий Windows, я лишь буду отмечать тонкости ранее мне не встречающиеся. Чего еще не будет в этой статье, так это вопросов совместимости с ПО и железом, — такое коротко и обобщенно не описать, решать нужно конкретно поставленную задачу. Обновлять ОС на совсем уж старом железе, наверное, нецелесообразно, а способов заставить работать древний софт на современных ОС известно много, но они тоже подбираются под нужды.

Собственно, начать об обновлении ОС я хочу с того, что Microsoft всегда имеет «матрицу обновляемости» (upgrade matrix) и четкие правила того, что на что может быть обновлено. Начнем с матрицы (а как иначе, Нео?). В любой версии и издании Windows в папке C:\Windows\servicing\Editions лежит файл UpgradeMatrix.xml, в котором четко прописано, с каких версий и изданий вы можете выполнить обновление на данную систему. Для ОС, которая в ISO образе, или на установочной флешке, этот файл лежит внутри install.wim, его проще всего открыть 7zip архиватором и посмотреть, если есть интерес. Разбирать его детально я сегодня не буду, это скучная задача, поговорим о сложностях, возникающих при обновлении ОС.

Читайте, задавайте вопросы, отвечу! :)

Что скрывала от нас Скарлетт Йоханссон, или где вы можете легально не платить банку 50% взятой ипотеки

Уровень сложностиПростой
Время на прочтение7 мин
Количество просмотров45K

Привычный нам порядок вещей выглядит так: обычные люди идут в банки, а те их всяко‑разно обманывают. Тем приятнее, что существует на этой планете страна, где всё обстоит ровным образом наоборот: люди там могут взять в банке здоровенный кредит, а потом в полном соответствии с законом «простить» самим себе половину задолженности.

Читать далее

Микросервисы и монолиты

Уровень сложностиСредний
Время на прочтение4 мин
Количество просмотров6.4K

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

Читать далее

Работа с информерами Java kubernetes client

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров3.6K

Привет, меня зовут Сергей, старший разработчик 80 уровня компании DataBlend (группа компаний GlowByte). Наша команда занимается разработкой продукта ClusterManager, который управляет поведением и мониторит состояния таких продуктов, как GreenPlum, ClickHouse, DWH, Nova и т. д.

Около полутора лет назад у нас появилась необходимость собирать и отображать в удобном виде и разрезах метрики и данные об объектах кластеров Kubernetes, в которых развернут продукт Nova.

Для этих целей был выбран официальный kubernetes‑client для Java.

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

Лучше всего для этой цели подходит механизм информеров kubernetes‑client.

И сейчас мы посмотрим, с какой стороны их лучше начинать есть.

Читать далее

FreeIPA под прицелом: изучение атак и стратегий защиты

Уровень сложностиСредний
Время на прочтение22 мин
Количество просмотров11K

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

Меня зовут Всеволод Саломадин, я ведущий аналитик-исследователь угроз кибербезопасности в компании R-Vision. Сегодня мы поговорим о системе FreeIPA, которая является одной из немногих альтернатив такого «комбайна», как Microsoft Active Directory (AD).

Учитывая закон о переходе на отечественное ПО на объектах КИИ к 2025 году, эта тема становится актуальной для многих компаний. Вместе с активным переходом на FreeIPA, у пользователей стали возникать вопросы о механизмах атак и стратегиях защиты от них. В этой статье мы рассмотрим некоторые примеры атак на инфраструктуру FreeIPA и предложим варианты их детекта с помощью SIEM-системы.

Читать далее

Устойчивость микросервисных Spring приложений: роль аннотации @Transactional в предотвращении утечки соединений

Уровень сложностиПростой
Время на прочтение5 мин
Количество просмотров6.7K

В новом переводе от команды Spring АйО вы узнаете, как аннотация @Transactional помогла решить проблему с утечкой соединений и обеспечила стабильность системы.

Читать далее

Ясное мышление — чёткие требования

Уровень сложностиСредний
Время на прочтение16 мин
Количество просмотров10K

Влияет ли наше состояние на то как мы думаем и что говорим? Как через состояние и мышление повысить качество документации?

Читать далее

Российские игры: нулевые. Часть 2

Уровень сложностиПростой
Время на прочтение11 мин
Количество просмотров13K
image

Очень легко потерять хоть какую-то самобытность, уйти в лимбо из шароварных казуалок. Российский геймдев это легко доказал к концу нулевых, сохраняя тенденцию в начале десятых. Но ведь могло быть всё иначе. Могло же?..
Читать дальше →

UB или не UB – вот в чём вопрос: как gcc и clang обрабатывают статически известное неопределённое поведение

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

Недавно у нас в команде зашла дискуссия о неопределённом поведении (UB) в C. Напомню для тех, кто не знает: если мы пишем такой код, эффект от выполнения которого (и события в процессе его выполнения) строго не определён в спецификации языка, то возникает неопределённое поведение. Таким образом, встретив такой код, компилятор может действовать по собственному усмотрению, и нет никаких гарантий, что выполнение этого кода пойдёт по предсказуемому пути. Следовательно, нужно избегать неопределённого поведения любой ценой, поскольку мало того, что оно может приводить к глюкам программы, но и часто становится источником уязвимостей и угрозой безопасности. Примеры кода, в котором проявляется неопределённое поведение: выход за границы массива при его индексировании, целочисленное переполнение, деление на ноль, разыменование указателя на null [1].

Компиляторы нередко пользуются неопределённой семантикой языка, чтобы делать те или иные допущения о программе. Например, если написать что-то вроде int x = y/z, компилятор может предположить, что z не может быть равно нулю, так как деление на ноль приводит к неопределённому поведению, а программист явно не собирался писать такой код. На основе этой информации он может попытаться далее оптимизировать программу так:

Читать далее

Панорама матричных расширений: от x86 до RISC-V

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

Матричное расширение ISA CPU… Что это и что оно делает? Уже из названия понятно, что это расширение позволяет ускорять операции над матрицами на CPU. Но задумывались ли вы когда-нибудь, какие они бывают, когда появились, кто и как их создает?

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

Матричные расширения появились не так давно — чуть более трех лет назад. Несмотря на это, они есть у каждой уважающей себя процессорной архитектуры, в том числе и у относительно молодой открытой RISC-V. Почему их так много и чем они отличаются? Поддерживаются ли разреженные матрицы? Об этом и многом другом вы узнаете из статьи. Приготовьтесь, будет интересно и (спойлер!) без многоэтажных формул. 

Читать далее

1000 мозгов — новая книга о многогранном человеческом интеллекте

Уровень сложностиСредний
Время на прочтение21 мин
Количество просмотров21K


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


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

Совсем недавно появилась поистине революционная теория работы мозга. И придумана она, внимание, бывшим разработчиком популярных КПК, основателем Palm Computing. Неожиданно, верно?  И для того чтобы донести свою новейшую теорию до широкой аудитории, Джефф Хокинс написал книгу. Научно-популярную. И сегодня мы ее разберем по кусочкам! 
Читать дальше →

HTML и CSS ошибки, влияющие на доступность. Мой опыт и моего незрячего знакомого Ильи. Часть 9

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров3K

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


Сегодня мы рассмотрим следующие аспекты:

  • какие сюрпризы есть при использовании свойства display;
  • о чём нужно помнить при вёрстке кнопки «Показать пароль»;
  • зачем нужны подсказки с помощью атрибута aria-label при разметке областей навигации;
  • как можно переборщить с заголовками и какие проблемы будут.

Давайте начнём!

Читать дальше →

Битый или небитый? Как обеспечить целостность данных в Postgres Pro

Уровень сложностиПростой
Время на прочтение9 мин
Количество просмотров7.8K

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

Администратор любой IT системы должен знать о всех возможных проблемах, которые могут возникнуть на вверенном ему оборудовании: аппаратные сбои системы хранения, сбои файловой системы, повреждения страниц в оперативной памяти, сбои в кэше хранилищ и так далее. Для серверов баз данных выявление и исправление таких ошибок особенно важно, так как информация в БД должна быть в согласованном состоянии и некорректность только части данных портит БД целиком. В этой статье мы расскажем с помощью каких инструментов можно защитить ваши данные в СУБД Postgres и обнаруживать ошибки до того, как они становятся реальными проблемами.

Читать далее

Секреты логических операторов в Python

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров38K

Логические операции играют важную роль в программировании. Они используются для создания условных конструкций и составления сложных алгоритмов. В Python для проведения логических операций используются логические операторы:

not — логическое отрицание

and — логическое умножение

or — логическое сложение

В этой статье мы поговорим о неочевидных деталях и скрытых особенностях работы логических операторов в Python.

Читать далее

Путь от создания базовой системы мониторинга к системе автоматизации и принятия решений

Уровень сложностиСредний
Время на прочтение7 мин
Количество просмотров8.7K

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

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

Читать далее

Информация

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