All streams
Search
Write a publication
Pull to refresh
60
0

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

Send message

Клонируем сами, своими руками

Reading time7 min
Views13K
Картина маслом: Опытный сисадмин ищет четырёхлетний бэкап на файл-сервере

Задача: Вася летел на самолёте. Из-за неисправности двигателя самолёт упал на необитаемом острове. Вася был единственным выжившим. После осмотра уцелевшего багажа Вася понял, что в его распоряжении есть несколько лаптопов и Wi-Fi роутер. Теперь для того, чтобы выжить, Вася решил поднять ЦОД. Для нормальной работы ЦОДа Васе нужно уметь клонировать Debian Linux. Но под рукой нет никаких средств клонирования. Даже старый диск Clone Zilla куда-то запропастился. Что делать Васе?

Итак, для начала посмотрим на кое-какие условия ТЗ, не описанные в первом абзаце.
Читать дальше →

Пособие по программированию модулей ядра Linux. Ч.5

Reading time15 min
Views7.7K

Пятая часть последней версии руководства по написанию модулей ядра от 2 июля 2022 года. В ней мы разберемся, как в ядре реализована совместная работа процессов и потоков, узнаем, какую роль в этом играет режим ожидания (sleep), рассмотрим возможные способы избежания коллизий и взаимных блокировок, а также познакомимся с назначением и использованием атомарных операций.
Читать дальше →

Примеры кошмарного программирования вокруг нас. Выученная беспомощность

Reading time6 min
Views40K

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

Возьмём классический пример — реестр Windows. Этот странный артефакт инженерной мысли представляет некое подобие иерархической БД для хранения абсолютно всех настроек — и системных, и приложений, и драйверов. Центральное бинарное хранилище заменило массу файлов .ini, разбросанных по всей системе и должно было упростить жизнь. Но вышло наоборот. И глядя на монструозный тормозящий конструкт, возникает только один вопрос: как это исправить? Ответ тоже простой: «Если вкратце, то никак». И так во всём. Мы создаём монстров, а потом не можем от них избавиться.
Читать дальше →

REST API на основе Snake (Python, Mamba, Hydra и Fast API)

Reading time7 min
Views11K

Сегодня я хочу попробовать что-то новое и начну исследовать мир Python. В этой статье представлен пошаговый туториал по реализации простого REST API при помощи Python, Fast API, Hydra и Mamba. Более того, я вкратце опишу, как упаковать всех этих змей в один образ Docker и заставить их работать вместе. Весь код выложен на моём GitHub.

Давайте начнём с кратного объяснения того, почему я решил выбрать эту тему.
Читать дальше →

Вторая жизнь старого железа. Продакшн

Reading time7 min
Views66K

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

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

Git — сравнение Visual Studio 2022 с MeGit/EGit и SourceTree

Reading time11 min
Views14K

В этой статье мы сравним функциональность Git в IDE Visual Studio 2022 и в других клиентах Git с GUI. Git внутри VS2022 имеет упрощённый интерфейс по сравнению с некоторыми другими GUI-клиентами наподобие MeGit/EGit и SourceTree. Это привлекает многих разработчиков к платформе VS2022/Git, однако опытным пользователям дополнительно потребуются и другие инструменты.
Читать дальше →

Как успешно бороться с дымом от лазерного резака?

Reading time11 min
Views24K

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

Всё это справедливо для случая, если мы идём простым, среднестатистическим путём.

В противовес ему существует весьма эффективный альтернативный способ, который почему-то обходят вниманием, именно его мы и постараемся рассмотреть в статье.
Читать дальше →

Введение в математическую оптимизацию на примере компании Recruit. Часть 1

Reading time8 min
Views9.4K
Что такое «математическая оптимизация» — четыре области применения, шаги по её применению к реальным проблемам, чем она отличается от машинного обучения и как её использовать иначе

Прим. переводчика: Ранее на хабре не было переводов статей с японского языка. Мы решили исправить это досадное упущение и начать переводить их ещё и с этого языка. Данный материал будет пробой пера.
Эта серия статей о том, что такое математическая оптимизация и как она может быть применена в бизнесе через представление примеров применения в компании Recruit. В первой статье представлен обзор математической оптимизации, четыре примера применения в Recruit, процедура применения к реальным случаям, отличия от машинного обучения и как использовать её иначе.

Другие части доступны здесь:


❖ автор Рёсуке Судо
Читать дальше →

#2 Нейронные сети для начинающих. NumPy. MatplotLib. Операции с изображениями в OpenCV

Reading time16 min
Views27K

Это вторая статья из серии введения в «Нейронные сети для начинающих». Здесь и далее мы постараемся разобраться с таким понятием — как обработка графических данных, визуализация данных, а также на практике решим пару простых задач. Предыдущая статья — #1 Нейронные сети для начинающих. Решение задачи классификации Ирисов Фишера
Маленький совет из будущего: «В данной статье будут затронуты некоторые понятия, о которых я писал раньше, так что для полного понимания темы, советую прочитать и предыдущую статью»
На самом деле, на хабре было множество публикаций по этой теме, но все они говорят о разных вещах. Давайте разберёмся и соберём всё в одну кучку, для полноценного понимания картины мира.
Читать дальше →

Напишите свою инфраструктуру Kubernetes — как код Go

Reading time8 min
Views7.7K

cdk8s (Cloud Development Kit for Kubernetes) — это опенсорсный фреймворк (часть CNCF), при помощи которого можно определять приложения Kubernetes при помощи обычных языков программирования (вместо yaml). В предыдущих постах по этой теме я познакомил читателей с фреймворком и рассказал об использовании библиотеки cdk8s-plus для дальнейшего расширения базовых возможностей функций библиотеки cdk8s. В этом посте мы ещё больше расширим границы возможностей cdk8s.

Я продемонстрирую, как можно использовать Kubernetes Custom Resource Definitions при помощи cdk8s. Мы начнём с простого примера Nginx, а затем используем комбинацию CRD проекта Strimzi вместе с Go cdk8s для описания и развёртывания кластера Kafka на Kubernetes!
Читать дальше →

Возвращение к жизни Roland JV-30 за $5

Reading time2 min
Views9.8K

Небольшой фотоотчёт о диагностировании и восстановлении работоспособности 16-частного мультитембрального синтезатора Roland JV-30, который мне удалось урвать на гаражной распродаже всего за $5.
Читать дальше →

Кремниевые долины Бразилии: не только самба, кофе и фавелы

Reading time6 min
Views7K

У большинства из нас Бразилия ассоциируется с чем угодно, но не с высокими технологиями и IT. Футбол, зажигательная самба, бескрайние леса Амазонки, солнечные пляжи и жуткие фавелы Рио, кофе и сахар — примерно такие стереотипные представления о самой большой португалоязычной стране бытуют в остальном мире. Естественно, они возникли не на пустом месте.

Однако современная Бразилия — это ещё и страна стартапов, технологий и «единорогов». По состоянию на 2022 год по числу последних (17) она находится на девятом месте в мире, уступая лишь колоссам США, КНР и Индии, а также давно и прочно развитым Великобритании, Германии, Франции, Израилю и Канаде. По числу «единорогов» Бразилия опережает даже Южную Корею с Японией и Гонконгом.
Читать дальше →

YouTubeDrive: хранение файлов на YouTube

Reading time9 min
Views41K


Хостинг неограниченного размера? Звучит как нечто фантастическое и невозможное по законам природы. Примерно как вечный двигатель. Но что, если такое возможно? (не вечный двигатель, конечно, а неограниченный хостинг).

Если подумать, ведь бесплатное хранилище неограниченного размера предоставляют десятки интернет-сервисов, от соцсетей до фотохостингов. Например, ограничение YouTube на размер одного видеоролика — 12 часов или 256 ГБ, но на количество видеороликов ограничений нет.
Читать дальше →

Магия ssh

Reading time12 min
Views77K

Разве что ленивый не писал про ssh и несмотря на это, данный протокол и его возможности не перестают меня восхищать. Здесь я хочу поделиться исключительно своим опытом использования сего замечательного инструмента в своих задачах (При этом активно применяю его даже при разработке на Windows).

Поскольку я программист, то инструментарий ssh часто нужен мне в разработке и для личных нужд. Самые частые задачи, которые я выполняю с его помощью (по частоте использования):

  • Удалённый доступ — логично, ведь для этого он и предназначался.
  • Монтирование папок по сети — очень удобно для работы с кодом на удалённой машине.
  • Удалённое выполнение команд — нечастая, но используемая мной операция. Удобно получать выхлоп команды в канал другой команды на текущей машине.
  • Запуск графических приложений на удалённой машине.
  • Проксирование трафика — способ перенаправления трафика. Этакий быстрый и простой аналог VPN.
  • Обратный ssh — использую для проброса портов к системам, находящимися за NAT, когда лень настраивать firewall.

Далее вкратце разберу каждый пункт, и особенно пути эффективного и простого использования под Windows.
Читать дальше →

Сравнение реализаций БПФ для .NET

Reading time5 min
Views6.2K

В этой небольшой статье мы сравним следующие реализации быстрого преобразования Фурье (БПФ) для платформы .NET:
  Accord Exocortex Math.NET NWaves NAudio Lomont DSPLib FFTW
Версия: 3.8.0 1.2 5.0 0.9.6 2.1 1.1 (2017) 3.3.9
Лицензия: LGPL BSD MIT MIT MIT - MIT GPL
Сборки: 3 1 1 1 1 - - 1+1
Размер: 3.6 MB - 1.6 MB 0.3 MB 0.2 MB - - 2.3 MB
NuGet: да нет да да да нет нет нет
Читать дальше →

Защита данных супершифратором Cipherbox

Reading time11 min
Views11K

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

Создание Aimbot для Half-Life 2

Reading time11 min
Views15K

В этом посте мы расскажем о процессе создания aimbot — программы, автоматически прицеливающейся во врагов в игре жанра «шутер от первого лица» (FPS). Создавать будем aimbot для игры Half-Life 2, работающей на движке Source. Aimbot будет работать внутри процесса игры и использовать для своей работы внутренние функции игры, подвергнутые реверс-инжинирингу (в отличие от других систем, работающих снаружи игры и сканирующих экран).
Читать дальше →

Первый дата-центр на Луне. Хостинг в лавовых туннелях, канал 15 Гбит/с на Землю

Reading time7 min
Views11K
© Джейсон Райли (студия Artificial Lens), по заказу Lonestar Data Holdings

Несмотря на все проблемы, программа «Артемида» неуклонно продвигается вперёд. С каждым годом наше возвращение на Луну становится всё ближе, появляются новые интересные детали.

Из необычных новостей — контракт частной компании Lonestar Data Holdings с подрядчиками Intuitive Machines и Skycorp на постройку нескольких ЦОДов под поверхностью Луны.
Читать дальше →

Создание HTTP-запросов на C++

Reading time7 min
Views39K

В этой статье я покажу вам, как создавать HTTP-запросы к REST-серверу с помощью библиотеки C++ Request, написанной Ху Нгуеном. При её написании мистер Нгуен во многом ориентировался на принципы проектирования из Python Requests, поэтому для тех, кто использовал или знаком с Python Requests, C++ Requests окажется вполне понятна.
Читать дальше →

Прагматичный набор модификаций для Windows 10 на старом железе

Reading time7 min
Views51K

В статьях про раздувание софта часто упоминают лаги Windows 10/11. Главная причина — ожирение кода в новых версиях. Для работы ОС с каждым годом требуется всё больше ресурсов. После засорения системы приходится ждать 10–20 секунд, пока отрисуются пункты контекстного меню по правой кнопке…

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

Но что делать, если приходится поневоле сидеть под Win10/11? Тогда остаётся одно — бороться с ожирением софта хирургическим путём. А именно, отключить ненужные модули и компоненты, развестистый GUI, анимацию и спецэффекты, удалить лишний софт, почистить реестр. Другими словами, спустить жирок из системы. После мануальных процедур винда начинает шевелиться значительно бодрее.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Works in
Registered
Activity