Как стать автором
Обновить
4
0

Male. White. Straight.

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

Удивительные клеточные автоматы: обратные и расширенные поколения

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


👾, Хабр!
Давно не виделись.

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

В первых статьях цикла мы познакомились с поколениями, одной из базовых и простейших модификаций стандартной конфигурации клеточных автоматов. До этого дополнения наши клетки могли находиться лишь в двух логических состояниях – пустая и живая (0 и 1, соответственно). После же, с новым параметром G, мы добавили третье положение – старение, что значило, что клетка, после выхода из состояния 1, начинала отмирать, доходя до состояния G-1, и только после возвращая состояние к 0. Во время старения клетки не влияют на соседей, не проходят проверки выживания, увеличивая собственный счётчик состояния с каждым шагом, но они и не позволяют новым клеткам рождаться на их месте.

Дополнение поколений является самым популярным, среди всех модификаций стандартной модели, и даже, фактически, оно стало частью правила по умолчанию, наравне с B/S, используясь практически во всех прочих расширениях, хотя использование поколений, конечно, опционально.

Со временем участники сообщества начали предлагать дополнения и к этому варианту конфигурации. На поверхности лежали многие вариации, как ещё возможно изменить или переставить состояния клеток. Одним из них были и обратные поколения, a.k.a. snoitareneG, с которых мы и начнём.
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии10

Правильные, но (не)простые бэкапы. Как настроить резервное копирование в Kubernetes?

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

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

Меня зовут Филипп, я системный администратор в отделе Data- и ML-продуктов Selectel. В этой статье постараюсь раскрыть, какие есть решения для резервного копирования в Kubernetes, и на простом примере покажу, как с ними работать. Подробности под катом.
Читать дальше →
Всего голосов 31: ↑31 и ↓0+31
Комментарии0

Decky Notifications: как переизобрести KDE Connect и перенести уведомления в Steam Deck

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

Недавно в мои руки попала портативная игровая консоль Steam Deck. Замечательное устройство, которое полностью поглощает внимание. В этом я вскоре нашел минус: телефон генерирует уведомления и приходится откладывать приставку, чтобы посмотреть сообщение.

Хочу играть и не проверять телефон, но при этом боюсь пропустить что-то важное. И я нашел способ решение этой задачи. В этой статье расскажу, как мне пришлось полностью перебрать протокол KDE Connect, чтобы написать плагин, который переносит уведомления в Steam Deck. Подробности под катом!
Читать дальше →
Всего голосов 44: ↑44 и ↓0+44
Комментарии10

«Самоидентификация» клавиатуры

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

«Я — русский!»‑ спел недавно известный певец. Да и я, после 20 лет пользования клавиатурой, наконец‑то, устал вечно поправлять текст, набранный не в той раскладке клавиатуры (в голове держать всё невозможно!) и сделал индикацию текущей раскладки. Казалось бы, мелочь, а приятно.

А раньше как бывало? Оторвал взгляд от клавы, посмотрел на экран… «Фу, чёрт! Не та раскладка!» Стираешь то, что набрал непосильным трудом и заново набираешь тот же текст.

Вы скажете: «Не интересное решение! Есть же замечательная программа Punto Switcher! Она может автоматически исправлять набранный текст в нужную раскладку.» Но всегда оставалась проблема набрать специальные символы независимо от языка ввода. И вот тут‑то Punto Switcher начинал ошибаться.

А нельзя ли поставить прямо возле клавиш небольшой экранчик OLED (благо таких стало в продаже много) и выводить на него текстом текущую раскладку аж по всем языкам мира? Можно. Но как показал мой дальнейший опыт, увидеть свечение боковым взглядом проще, чем вглядываться в надпись на экранчике. Кроме того, обычно мало кто пользуется одновременно более чем тремя языками раскладки. Да и по цене решение со свечением светодиодами будет гораздо дешевле.

Вот я так и пошёл по этому простому пути. И замутил банальную схему:

Читать далее
Всего голосов 28: ↑21 и ↓7+23
Комментарии141

Автоматическая генерация CI/CD пайплайна для развёртывания инфраструктуры

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

При нашей работе мы используем подход «Инфраструктура как код». Однако в процессе его использования мы столкнулись с проблемой написания пайплайнов для инфраструктуры.

Во всём «виноват» terragrunt: каждому модулю terragrunt нужна отдельная джоба в пайплайне на plan и apply, но для каждого модуля они во многом повторяют друг друга. Подобное постоянное написание одинаковых частей CI/CD пайплайна при добавлении новых баз и бакетов навевало тоску.

Рассказываем, как мы создали генератор джоб в Gitlab CI/CD и навсегда забыли о ручном написании пайплайнов для развёртывания элементов инфраструктуры.

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

Инструкция по установке Postgres для OLTP приложений и 1С. Часть 1 Базовая конфигурация

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

В Postgres достаточно подробная документация, и видимо поэтому , при инсталляции Postgres для 1С большинство параметров приходится выставлять самим. Параметров в Postgres много, а составить эффективную комбинацию не так просто. Все упрощается если рассмотреть профиль нагрузки, например, 1С это прежде всего профиль OLTP нагрузки – так устроены его метаданные (объекты).  Если сосредоточится на оптимизации профиля OLTP, понимание Postgres сразу упростится.

Установить Postgres для OLTP
Всего голосов 6: ↑5 и ↓1+5
Комментарии6

Измерение скорости чтения-записи носителей с помощью утилиты dd

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров17K
Недавно, я вновь побывал в роли технического эксперта, когда занимался переводом книги «Understanding Software Dynamics» от Richard L. Sites. В ходе работы над главой — про скорость работы с жёстким диском, мне поступил вопрос от коллеги: каким образом можно просто и быстро измерить скорость чтения и записи твердотельных носителей информации, в разрабатываемых в компании устройствах? При этом стояла задача реализовать всё это наиболее простыми способами, чтобы они были переносимы между совершенно разными платформами и архитектурами. Носители же информации могут быть любыми: USB Flash, eMMC, SD, NAND и прочее, прочее. Единственное, что их объединяет — это Linux.

Задача захватила меня с головой…
Читать дальше →
Всего голосов 41: ↑39 и ↓2+57
Комментарии47

16-, 8- и 4-битные форматы чисел с плавающей запятой

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

Уже лет 50, со времён выхода первого издания «Языка программирования Си» Кернигана и Ритчи, известно, что «числа с плавающей запятой» одинарной точности имеют размер 32 бита, а числа двойной точности — 64 бита. Существуют ещё и 80-битные числа расширенной точности типа «long double». Эти типы данных покрывали почти все нужды обработки вещественных чисел. Но в последние несколько лет, с наступлением эпохи больших нейросетевых моделей, у разработчиков появилась потребность в типах данных, которые не «больше», а «меньше» существующих, потребность в том, чтобы как можно сильнее «сжать» типы данных, представляющие числа с плавающей запятой.

Я, честно говоря, был удивлён, когда узнал о существовании 4-битного формата для представления чисел с плавающей запятой. Да как такое вообще возможно? Лучший способ узнать об этом — самостоятельно поработать с такими числами. Сейчас мы исследуем самые популярные форматы чисел с плавающей запятой, создадим с использованием некоторых из них простую нейронную сеть и понаблюдаем за тем, как она работает.

Читать далее
Всего голосов 88: ↑87 и ↓1+130
Комментарии99

Книга «C++ для начинающих. 2-е изд."

Уровень сложностиСредний
Время на прочтение10 мин
Количество просмотров13K
image Привет, Хаброжители!

Книга Герберта Шилдта начиная с таких базовых понятий языка, как типы данных, массивы, строки, указатели и функции, книга охватывает также важнейшие элементы объектно-ориентированного программирования — классы и объекты, наследование, виртуальные функции, потоки ввода-вывода, исключения и шаблоны. Каждый раздел сопровождается простыми и наглядными примерами, позволяющими получить практические навыки программирования. Книга предназначена для приступающих к изучению языка С++ — одного из самых универсальных и распространенных на сегодня языков программирования.
Читать дальше →
Всего голосов 10: ↑8 и ↓2+8
Комментарии6

Как разбить видеокарту и поделиться с коллегами? Динамический шеринг GPU в Kubernetes с помощью MIG, MPS и TimeSlicing

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

Привет, Хабр! С вами снова Антон, все еще DevOps-инженер в отделе Data- и ML-продуктов Selectel, который все еще исследует тему шеринга GPU. В предыдущей статье я рассказал, как можно использовать шеринг видеокарт в Kubernetes.

В комментариях была затронута тема динамического переконфигурирования MIG. Вопрос: можно ли настраивать деление GPU при активной нагрузке? Я погрузился подробнее в этот вопрос и нашел несколько способов, как это сделать. Интересно? Тогда добро пожаловать под кат!
Читать дальше →
Всего голосов 39: ↑39 и ↓0+39
Комментарии8

Организуем High Availability PostgreSQL

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

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

Читать далее
Всего голосов 17: ↑14 и ↓3+14
Комментарии28
2

Информация

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

Специализация

Сантехник
Lead
OOP
C++
Linux
MySQL