Записки IT специалиста
8.8K subscribers
2.32K photos
57 videos
16 files
2.52K links
IT-канал, просто о сложном
https://interface31.ru

Купить рекламу:
https://telega.in/c/interface31
Download Telegram
BentoPDF -швейцарский нож для работы с PDF
 
Онлайн сервисы для работы с PDF не менее популярны, чем сервисы для работы с изображениями, но несут в себе еще большее количество угроз, связанных с загрузкой документов третьей стороне.
 
Это связано с тем, что PDF зачастую содержат более чувствительную информацию, нежели изображения, а также то, что из них можно легко извлекать текст и анализировать его.
 
Поэтому свой сервис для работы с PDF – это не прихоть, а разумная необходимость. Тем более что сделать это несложно. Мы будем использовать известный проект BentoPDF, для его запуска используйте docker-compose.yml:
 
services:
  bentopdf:
    image: ghcr.io/alam00000/bentopdf:latest
    ports:
      - '3000:8080'
    restart: unless-stopped

 
После чего переходите по адресу http://IP_address:3000, где вы попадете в рабочую среду продукта, которая внешне не отличается от публичных сервисов.
 
Возможностей много, практически всё, что можно придумать при работе с данным форматом. Поддерживается как конвертация в PDF, так и обратно, распознавание текса, извлечение отдельных  данных, защита, оптимизация для веб и т.д. и т.п.
 
И все это исключительно локально, без передачи данных на сторонние сервера. Ваши документы остаются в вашей инфраструктуре.
 
Отдельного внимания заслуживает визуальный конструктор пайплайнов, который позволяет настроить, сохранять и использовать готовые сценарии обработки для PDF, что позволяет легко автоматизировать повседневные задачи.
1👍54🤝52👎1
Как посмотреть пароли в Winbox

Сегодня будет очень короткая заметка, но знают об этой возможности немногие.

Иногда нужно быстро посмотреть используемые пароли в Winbox, обычно для этой цели используют выгрузку конфигурации или ее части в rsc-файл, но есть способ проще.

Просто включите, точнее отключите скрытие паролей в настройках самого приложения!
🔥17🤡13👍101
Находки в старом чулане
 
Есть у нас в «закромах Родины» одна коробка, где лежат всякие разные роутеры Mikrotik, в основном частично исправные. Насобиралось с годами. И вот потребовалась для учебно-ознакомительных целей относительно живая железка.
 
Полезли в очередной раз перебрать тот ящик, а там обнаружился по виду совсем новый hAP, и коробочка рядом с ним, а там совсем новый блок питания, правда уже размотанный и весь остальной комплект.
 
Обычно неисправные роутеры мы так или иначе подписываем, ну и выглядят они соответствующе, несколько лет эксплуатации дают о себе знать по внешнему виду, а этот совсем новый на вид и без надписей, наклеек и т.п.
 
Странно, откуда он у нас? Может клиентский? Но клиентское оборудование все на ответственном хранении, лишних hAP не числится. Интересно…
 
Включаем, смотрим, конфигурация явно не рабочая, настроена куча туннелей и нет даже базовой настройки брандмауэра и всего остального, да и прошивка сильно древняя. Что-то это напоминает…
 
Конечно же, данный роутер мы использовали для тестов при написании статьи:
 
Производительность младших моделей Mikrotik hEX и hAP. Экспресс-тестирование
 
После чего он у нас так и остался и за ненадобностью был отправлен в чулан. Что не удивительно, так как в далеком и светлом 2020 году его стоимость была примерно 2 500 – 2 850  руб., ничего серьезного.
 
Абсолютно доступная и недорогая железка, которую можно было купить для экспериментов и оставить, чтобы было.
 
Сегодня тот же hAP стоит на уровне 5 500 – 6 500 руб., что не сказать, чтобы много, но уже достаточно чувствительно. И это при том, что железка уже откровенно старая и слабая.
 
Сегодня это нижняя планка для каких-то простых применений и одна из самых недорогих моделей, куда можно поставить ROS 7 и не сильно страдать от этого. С тем же hAP lite такой фокус уже не проходит.
 
И все это абсолютно не радует, так как сужает круг доступного оборудования для молодых специалистов, потому как есть целый пласт вопросов и задач, которые не позволяет обойтись виртуалкой и требует физического оборудования.
 
Раньше hAP был абсолютно доступен и какой-то особой ценности не представлял. А сегодня цена не то, чтобы большая, но заставит несколько раз подумать, а надо ли оно мне просто для поиграться?
 
Я уже не говорю про L009, который на сегодняшний момент видится идеальным роутером для тестов и экспериментов. Потому как 129 USD заявленной цены в наших реалиях превращаются в 15 – 16 тыс. руб., что полностью отбивает энтузиазм, особенно у молодежи.
 
Ну и не забываем про последние инициативы Минпромторга, который активно развивает «поддержку отечественной электроники», судя по всему вдохновившись примером АвтоВАЗа и закрывает параллельный импорт большинства ведущих компьютерных брендов.
 
Mikrotik в этот список пока не входит, но долго ли включить? Это у нас всегда запросто.
 
Выводы тут будут неутешительные, фактически мы стреляем в ногу собственной индустрии, ставя запретительные барьеры собственным специалистам к современным технологиям и оборудованию.
 
А на фоне остальных инициатив картина складывается совсем безрадостная и опыт прошлых лет похоже никого не учит.
💯534🔥4👍3😁1
8mb.local – кодируем видео прямо в браузере
 
После наших публикаций на тему локальных сервисов по обработке изображений и PDF нас спросили, а есть ли что-то подобное для видео? Есть. Начнем с простого. Самая частая задача обработки видео – это перекодирование.
 
Вариантов здесь тоже несколько – ставить локальный софт на ПК или использовать облачные серверы. Локальный вариант требует достаточно мощного железа и не решает вопрос многопользовательской работы, в т.ч. удаленной.

А облачные серверы – это снова передача файлов третьей стороне и возможные ограничения на условия перекодирования.
 
Поэтому сервис по локальному перекодированию видео напрашивается сам собой, тем более что под него можно выделить действительно мощный ПК.
 
Мы подготовили минимальный рабочий docker-compose.yml для кодирования с использованием CPU, для настройки GPU ускорения обратитесь к официальной документации на странице проекта: https://github.com/JMS1717/8mb.local
 
services:
  redis:
    image: redis:7-alpine
    container_name: 8mb-redis
    restart: unless-stopped

    command: >
      redis-server
      --appendonly no
      --maxmemory 256mb
      --maxmemory-policy allkeys-lru

    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  8mblocal:
    image: jms1717/8mblocal:latest
    container_name: 8mblocal

    ports:
      - "8001:8001"

    volumes:
      - ./uploads:/app/uploads
      - ./outputs:/app/outputs

    environment:
      REDIS_URL: redis://redis:6379/0
      WORKER_CONCURRENCY: 4

    restart: unless-stopped

    depends_on:
      redis:
        condition: service_healthy

 
Запущенный сервис будет работать по адресу http://IP_address:8001, интерфейс достаточно прост. Загружаете файл, он анализируется, затем выбираете желаемый итоговый размер или битрейт, настраиваете кодек, разрешение и запускаете конвертацию.
 
Все конвертации становятся в очередь, вы можете не ждать окончания процесса и приступить к следующему файлу, также доступна групповая обработка.
 
Если вы не один работаете с сервисом, то ваш запрос может стать в очередь, вы всегда можете перейти в раздел очередей и посмотреть процесс. Все загруженные и переконвертированные файлы хранятся в сервисе в течении часа.
 
Для распараллеливания процессов используйте параметр окружения
 
WORKER_CONCURRENCY: 4

 
Где укажите делаемое число рабочих процессов, желательно не превышать при этом число доступных процессорных ядер.
 
Данные настройки, как и ряд иных, вы можете задать через переменные окружения, либо изменить в разделе настроек, но в этом случае они не сохранятся при перезапуске контейнера.
👍231👎1🤝1
Почему мы предпочитаем внедрять веб-сервисы

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

Мы не спорим, делается, спокойно. Но только нужно ли оно вам? Нет, если мы говорим об одиночном личном ПК, то да, никакого смысла усложнять себе жизнь нет. А вот если речь идет о корпоративном применении.

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

Это позволяло поддерживать однородность и предсказуемость окружения, да и то, в определенных рамках. По мере устаревания железа и обновления софта могут возникнуть разные интересные ситуации.

Как пример можно привести возможности GPU ускорения или существенного ускорения обработки мультимедиа (и не только) за счет инструкций AVХ и т.д. и т.п.

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

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

А в современном мире к этому прилагаются и новые вводные. Рабочее место сотрудника сегодня – это нечто эфемерное, он может работать на служебном ПК в офисе, на служебном ноутбуке, на домашних устройствах и наконец на мобильных.

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

А давайте напишем скрипты, тот же Python и в Африке Python… Ага, а теперь поясните обычному, абсолютно далекому от IT пользователю что куда надо положить, где нажать и откуда забрать.

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

А сервисы – тема привычная, практически каждый пользователь с ними сталкивался и так или иначе использовал. И пользовательский опыт там единообразен: загружаем или перетаскиваем файлы, указываем параметры, нажимаем кнопочку и смотрим на статус-бар.

Потом или скачиваем результат или читаем сообщение об ошибке. И это все работает абсолютно одинаково хоть на рабочем ПК, хоть на домашнем, хоть на мобилке.

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

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

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

Тем самым мы сокращаем энтропию или, говоря по-русски, бардак, сводя его к нескольким контролируемым и управляемым узлам. А старая поговорка гласит, что если автоматизировать бардак, то мы получим автоматизированный бардак.
👍33🤮2👀21👎1
Нужно больше золота!!!

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

Альтернативы? Да их не очень. Цена небольшая, самому что-то изобретать выйдет дороже. Тем более, что у многих и так уже платный тариф, ибо бесплатный давно поприжали.

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

Что думаете по этой ситуации? Какие действия предпринимать будете?
🤔7👍6😁21😢1
И снова «войти в айти»

Каждую весну у родителей и детей, заканчивающих школу, начинается весеннее обострение, выражающееся в навязчивом желании «войти в айти».

Сегодня меня перехватила дальняя родственница, у которой двойняшки, мальчик и девочка, заканчивают 9-й класс, и она хочет их определить куда-нибудь в IT.

Родственница хоть и дальняя, но крестная моей мамы, и мы с ней общаемся в целом хорошо, поэтому я сразу задал ей вопрос – а что именно хочешь ты для своих детей от IT? Почему именно сюда, ведь есть много других отраслей.

Ответ был шаблонный: в IT самые высокие зарплаты, льготная ипотека, бронь от армии и прочие приятные плюшки.

Пришлось поведать ей, как обстоят дела на самом деле. Для высокой з/п нужно выйти хотя бы на уровень «мидла» и выше, да и то не везде. А это задача не на уровне просто просидеть штаны, это надо знать и уметь.

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

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

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

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

Но ИИ – это не только про IT, это практически про любую отрасль. Все простые и однотипные задачи ИИ возьмет на себя, освободив нижний уровень работников, тех самых «джунов».
У меня друг – юрист, за полгода он освоил ИИ и теперь она пишет ему типовые бумаги вместо помощника, причем делает это лучше, чем человек. Он пока его держит, нужно же кому-то бегать ногами по городу, но про повышение зарплаты речь уже не стоит.

Повеяло духом капитализма? Так оно и есть. У нас давно товарно-денежные отношения. Ты нам работу – мы тебе зарплату. Но если все это сделает ИИ за условные 20 долларов, то зачем нам этот товарищ в штате?

Жестоко? Может быть. Но только я, как предприниматель, если разорюсь, то все что мне светит – это пособие по безработице в 1863 руб./мес и после этого социальная пенсия в размере 9 424,12 руб.

Поэтому сегодня, с учетом последних реалий «идти в айти» с ожиданием прибыльного и ненапряжного места – это недальновидно. Равно как и идти с этими соображениями в любую иную отрасль.

Вас просто вытеснит ИИ, к тому самому пособию и социальной пенсии.

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

Нет? Ну вспомним стада юристов конца 90-х, которые бродили неприкаянные без всякого ИИ, потому что никому они такие красивые были не нужны.
👍341👎1🤡1
Проблема возраста

Проблема возраста при трудоустройстве – актуальный и острый вопрос, который обычно сводится к некоторому возрастному цензу, мол после NN лет вообще никуда не берут. На самом деле это не совсем так и проблема достаточно надуманна.

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

Что такое линейная позиция? Это сотрудник без каких-то особых требований к квалификации, который выполняет большой объем рутинной, не очень сложной работы. По общему принципу бери больше – кидай дальше.

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

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

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

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

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

Такой сотрудник нафиг не нужен. Потому что это вечная смута в коллективе и попытка по любому вопросу в очередной раз напомнить «кем был Паниковский до революции».

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

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

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

И если стоит выбор между молодым вундеркиндом, влет решающего любые задачки и мужичком, который тут знает, тут не знает, тут забыл, но имеющего за плечами успешный 15-летний опыт – возьмут именно этого мужичка.

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

Плюс есть еще такая вещь, как репутация. У нас до сих пор многие работают не с фирмами, работают с людьми. И если сотрудник уходит в другую фирму многие клиенты могут потянутся за ним просто потому, что это Петрович.

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

Также с опытом приходят и связи, самые разные, которые могут быть полезны. Особенно это касается руководящих сотрудников или которые по долгу службы общаются с внешними контрагентами. Там связи – это первая ценность.

Поэтому для таких сотрудников возраст – это в первую очередь показатель опыта, это не мне 45 лет, а у меня 20 лет стажа в отрасли. Совсем другой акцент.
🤝22👍64👎3
Страшный, страшный ИИ

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

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

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

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

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

Ну и где теперь те луддиты? А станки прочно вошли в нашу жизнь. Да не просто вошли, но и создали новые отрасли и новые рабочие места: станкостроение, ремонт и обслуживание станков, да и работа на станках стала требовать своих специалистов, сам по себе станок не работает.

Да, это повысило требования к квалификации работников и за бортом в первую очередь остались самые низкоквалифицированные.

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

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

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

Это и оператор ЭВМ, который эти самые перфокарты набивал, и верификатор, который их проверял и сортировщик перфокарт. Кого только там не было… И где они все?

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

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

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

И еще ближе к настоящему. Практически в любой организации большую часть штата бухгалтерии составляли «бухгалтера на первичке», хотя это даже не бухгалтера, а биологические автоматы по внесению данных с бумажного носителя в 1С.

Но тут пришло ЭДО и потребность в данном классе сотрудников резко свелась к околонулевому значению. И что? Небо упало на землю? Да нет, на месте вроде.

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

Но так ли это плохо? С одной стороны – да, схлопнется рынок труда, люди пойдут на улицу. Но так было уже не раз и не два прежде.

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

Уже сейчас рынок ИИ-профессий растет, да и в обычных вакансиях все чаще встречается требование базового знания ИИ. А для наших детей это будет также естественно, как для нас интернет.

Мораль сей басни проста: или мы принимаем изменения и развиваемся вместе с ними, или оказываемся, рано или поздно, на обочине. Третьего не дано.
👍25🥱10🤮53💯3
Дедушка умер, а дело живет. Лучше бы было наоборот.

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

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

Мы даже не будем касаться их конкретных реализаций, так как тут ответ простой – там все не так поняли и не так сделали. А обратимся к истокам.

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

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

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

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

Ну отлично же. Берем икру красную, икру черную, мраморную говядину, дорогие виски и коньяк. Красота!

А с утра на работу. А на работе у нас товарищи разные. Есть Петя, семьянин и спортсмен, хороший специалист и инженер. А есть Вася, запойный токарь, который до обеда мается с похмелья, а после обеда, употребив «допинг», старается не заснуть.

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

А если нет разницы, то зачем напрягаться? Петя работает, а Вася по факту ничего не делает. Живут одинаково.

После чего Петя думает: а нафига я тут напрягаюсь? Может проще дернуть в обед пивка и подремать на диване в кабинете?

Собственно, так он и поступит. Ну либо будет играть с коллегой в пинг-понг и пить квас, спортсмен все-таки.

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

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

И типичный продуктовый набор сведется к плохого качества хлебу, кефиру, колбасы одного – двух сортов, дешевой водки и сырка «дружба». А также ботинок «прощай молодость».

А почему? А потому, что производить что-то приличное такое общество окажется неспособным, как по причине отсутствия технологий, так и по причине крайне низкой культуры производства, если эти технологии все-таки удастся где-то приобрести.

При этом всякая личная инициатива в экономической части рубится на корню и вообще объявляется наказуемым деянием, так как подразумевает извлечение прибыли и эксплуатацию человека человеком.

Есть ли перспективы у такого общества? Их нет. Потому что отсутствует стимул и мотивация. Зачем рвать жилы, если все равно ты получишь тоже самое?

Либо в таком обществе зародится параллельная, теневая экономика. Читай тот же капитализм, где кто-то будет что-то производить или доставать, а кто-то платить за это весьма высокую цену.

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

Что мешало самому передовому обществу снабдить себя подобными товарами?

То, о чем мы написали выше – отсутствие стимула и мотивации. Ведь для этого надо поднять задницу и что-то начать делать. А зачем? Можно ведь ничего не делать, ровно с таким же результатом.

К чему это привело – все знают. И заголовок придумали не мы, а жители того самого, передового общества.
🤡40💯14👍106👎6
Безусловный базовый доход

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

На первый взгляд идея интересная и здравая, но только на первый взгляд.

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

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

Если брать нашими деньгами, то это где-то 50-60 тыс. Первоначально все будет очень даже хорошо, кто-то, наоборот, даже вырастет, ибо не получал столько на своей кассе в Пятерочке, а тут и делать ничего не надо.

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

При этом текущая общественная модель не подразумевает какого-то открытого разделения общества на касты. В основном имеет место имущественное расслоение, но тут все дороги открыты – иди, работай, зарабатывай.

В нашем же обществе возникнет такое разделение и будет оно проходит по уровню образования. Потому что в игре останутся только достаточно квалифицированные кадры, в т.ч. и рабочие. Так как станки будут поголовно с ЧПУ и даже сварочные аппараты будут «умными».

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

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

А теперь рассмотрим состав этих каст. «Тупые» — это преимущественно лица физически сильные, привыкшие к физической работе и к рефлексиям не склонные. Выросшие на улице, привычные к силовому решению вопроса, мелкому криминалу и физическому насилию.

«Умные» – полная их противоположность, это люди, привыкшие к умственному труду, нахождению компромиссов, решению сложных вопросов при помощи переговоров, а все их прегрешения перед законом в основном записаны в Правилах дорожного движения.

При этом «умные» у нас заняты, «умные» работают им некогда предаваться всяким непотребствам.

А вот «тупые» предоставлены сами себе, работать им не надо, свободного времени – завались. А вот материальных ценностей как раз остро не хватает. Естественно, праздный ум будет занят тем, что думать о том, как эти материальные ценности получить.

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

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

После чего «святые 90-е» покажутся цветочками, так как там вопрос стоял именно в перераспределении имущественных ценностей, а не носил национального или классового, как в нашем случае, характера.

В тоже время история знает, что самые ожесточенные конфликты – это именно межнациональные или межклассовые.

Поэтому, безусловный базовый доход – это только на первый взгляд хорошо, но в долгую это бомба замедленного действия. Более правильными видятся лимиты на автоматизацию, которые будут сохранять рабочие места, даже если их можно заменить роботами.
🤮22👍19🤣32👎2
Всплывающие предупреждения в Mikrotik

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

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

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

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

При этом мало кто знает об одном простом, но удобном инструменте Mikrotik – заметках. Найти их можно в System – Note. Вы можете написать туда все, что угодно и этот текст будет отображаться при каждом новом входе в систему.

Что там написать? А это уже каждый думает самостоятельно, поле большое, написать можно многое. Как ключевые особенности этого экземпляра, так и различные предупреждения себе или коллегам.
👍32🤝732🤮1
Что такое запись DNS CAA (Certificate Authority Authorization) и зачем она нужна
 
DNS CAA  - это ресурсная запись DNS, которая позволяет владельцу домена явно указать, какие удостоверяющие центры (CA) имеют право выпускать TLS-сертификаты для этого домена и его поддоменов.
 
Это важная часть инфраструктуры безопасности, предупреждающая несанкционированный выпуск сертификатов третьей стороной.
 
Позвольте, но чем это отличается от проверки владения? Сегодня, перед выпуском сертификата любой удостоверяющий центр попытается выполнить проверку владения доменом: через HTTP-файл, DNS-запись или email.
 
Но как быть, если ваша инфраструктура оказалась скомпрометированной? Или трафик был перехвачен и подменен на этапе проверки? В этом случае злоумышленник может выпустить сертификат в стороннем CA и спокойно использовать его для MiTM или фишинга.
 
Да, есть Certificate Transparency, но это уже постреагирование и не все мониторят эти журналы. Поэтому был разработан способ проактивной защиты, а именно DNS CAA. С сентября 2017 года проверка CAA-записей является строго обязательной для всех публичных CA согласно требованиям CA/Browser Forum.
 
Таким образом вы можете указать кто именно имеет право выпускать сертификаты для вашего домена и таким образом сузить поверхность возможной атаки. Теперь ни один публичный CA не выпустит сертификат без вашего разрешения.
 
👉 Общий формат записи выглядит как:
 
example.com. IN CAA <флаг> <тег> "<значение>"

 
🔹 Флаг (Flag) Принимает значение от 0 до 255, но на практике сейчас активно используются только два:

▫️0 (Non-critical): Если CA не понимает или не поддерживает встреченный тег в записи, он может проигнорировать его и продолжить выпуск сертификата.

▫️128 (Critical): Если CA встречает незнакомый тег в записи с этим флагом, он обязан отказать в выпуске сертификата.

🔹 Тег (Tag) Определяет поведение и тип разрешения. Существует три стандартных тега:

▫️ issue: Разрешает указанному CA выпускать любые типы сертификатов (как обычные, так и wildcard) для данного домена.

▫️issuewild: Разрешает выпуск только wildcard-сертификатов (*.example.com). Если этот тег задан, то для wildcard-запросов правила из issue игнорируются.

▫️ iodef (Incident Object Description Exchange Format): Указывает URL (обычно mailto: или http/https), куда CA должен отправить отчет, если кто-то попытается запросить сертификат в обход правил CAA.

🔹 Значение (Value) Строка в кавычках, содержащая доменное имя разрешенного CA (например, "letsencrypt.org", "digicert.com") или параметры для iodef.
 
👉 Несколько примеров:
 
Разрешаем выпускать сертификаты только для Let's Encrypt, а в случае нарушений — слать отчеты на почту:
 
example.com. IN CAA 0 issue "letsencrypt.org"
example.com. IN CAA 0 iodef "mailto:security@example.com"

 
Разрешаем DigiCert выпускать только обычные сертификаты, а Let's Encrypt — только wildcard:
 
example.com. IN CAA 0 issue "digicert.com"
example.com. IN CAA 0 issuewild "letsencrypt.org"

 
Отдельная возможность – это полный запрет выпуска сертификатов для домена, например, это служебный или временно не используемый домен и выдача сертификатов дня него не предусматривается:
 
example.com. IN CAA 0 issue ";"

 
👆 Записи CAA мы можем создать как для домена, так и для любого поддомена, проверка идет по снизу вверх по дереву DNS. Если CA проверяет поддомен sub.dev.example.com, поиск записей происходит по следующей цепочке до первого совпадения:
 
🔸 Выполняется поиск CAA для sub.dev.example.com.
🔸 Если записей нет, проверяется dev.example.com.
🔸 Если снова пусто, проверяется корневой example.com.
 
Если на корневом домене example.com установлена запись CAA, она автоматически распространяется на все поддомены, если для конкретного поддомена не создана своя, переопределяющая запись CAA.
 
Исключение – записи CNAME, если для них не установлена CAA запись, то проверка по дереву прекращается и начинается проверка дерева домена на который указывает такая запись.
👍261🤮1
Watchtower – управляем обновлением контейнеров в Docker

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

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

Для его использования вам потребуется еще один небольшой контейнер, который можно развернуть при помощи следующего docker-compose.yml:

services:
watchtower:
image: nickfedor/watchtower:latest
container_name: watchtower
restart: unless-stopped
volumes:
- /var/run/docker.sock:/var/run/docker.sock
environment:
- WATCHTOWER_CLEANUP=true
- WATCHTOWER_REMOVE_VOLUMES=true
- WATCHTOWER_POLL_INTERVAL=86400
- DOCKER_API_VERSION=1.40
- WATCHTOWER_LABEL_ENABLE=true
logging:
driver: "json-file"
options:
max-size: "10m"
max-file: "3"


Коротко пробежимся по некоторым опциям:

🔹 WATCHTOWER_CLEANUP - удаляет старые образы после обновления

🔹 WATCHTOWER_REMOVE_VOLUMES - удаляет старые анонимные тома

🔹 WATCHTOWER_POLL_INTERVAL - интервал проверки обновлений, в нашем случае - сутки

Перед включением этих опций, особенно второй, убедитесь, что вы понимаете что делаете.

Но обновлять все подряд без разбора – плохая идея. Поэтому мы рекомендуем в продуктивных средах использовать включенным параметр:

🔹 WATCHTOWER_LABEL_ENABLE – включает режим обновления по меткам

Теперь для того, чтобы Watchtower отслеживал и обновлял контейнер к нему следует добавить метку:

labels:
- "com.centurylinklabs.watchtower.enable=true"


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

Кстати, для них есть другая полезная метка:

labels:
- "com.centurylinklabs.watchtower.enable=false"


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

WATCHTOWER_LABEL_ENABLE=false


В этом случае автоматически обновляются все контейнеры, кроме имеющих метку enable=false, что служит надежным предохранителем от нештатной ситуации.
👍161😁1
Обратная сторона открытого кода
 
Убежденные адепты открытого кода одним из несомненных преимуществ данного подхода ставили неутомимое комьюнити: тысячи рук, тысячи глаз, которые должны были оперативно отыскивать ошибки и уязвимости и устранять их.
 
Но, как известно, человек – существо ленивое и пока гром не грянет, мужик не перекрестится. Вот как-то так оно и вышло. Жили в своем уютном мирке и не тужили…
 
А тут как снег на голову… Действительно неутомимые тысячи рук и тысячи глаз… В лице искусственного интеллекта… И понеслось…
 
Совсем недавно мы писали о том, как ИИ нашел древнюю уязвимость в ядре: https://t.me/interface31/6086
 
Но ладно бы одну! Свежие новости заставляют вздрогнуть, количество уязвимостей позволяющих локально поднять права до суперпользователя за счет изменения страничного кеша плодятся со страшной силой:
 
1️⃣ Copy Fail - CVE-2026-31431

2️⃣ Dirty Frag - CVE-2026-43284

3️⃣ Dirty Frag - CVE-2026-43500

4️⃣ Fragnesia - CVE-2026-46300

5️⃣ PinTheft -  CVE-идентификатор не присвоен

6️⃣ DirtyDecrypt -  CVE-идентификатор не присвоен
 
При этом для каждой из них уже есть эксплойт или прототип.
 
В целом нет ничего удивительного, в любом проекте с большим сроком жизни есть легаси-код, есть технический долг и много других скучных и неприятных вещей, которые обычно проходят по классу: работает – не трогай.
 
И вот появился тот, кто может взять и потрогать, причем потрогать внимательно и вдумчиво. Со всеми вытекающими. Ну а как иначе, технический долг тоже нужно когда-то отдавать.
 
Только теперь это приходится делать в режиме загнанной лошади. Но даже это лучше, чем если бы эти уязвимости рано или поздно кто-то начал бы использовать по-тихому, без большой огласки.
 
А ИИ в очередной раз показал, что рынок ПО стремительно меняется и программирование уже никогда не будет прежним, старые подходы стремительно устаревают и становятся неэффективными.
 
Новые еще не выработаны. Отрасль, по сути, находится на распутье и сегодня важно не проспать новые тенденции, чтобы остаться в обойме и не оказаться за бортом. Так как изменится не только рынок программирования, но и все смежные отрасли так или иначе изменятся.
 
И этот процесс уже идет. Кто-то уже начал осваивать новые инструменты, кто-то только приглядывается, а кто-то пытается прятать голову в песок. Но отсидеться ни у кого не получится. Эпоха перемен началась и затронет она так или иначе каждого.
👍12🔥9🤮5🤡2👀2
DoT и DoH - в чем разница?

🔹 DNS-over-TLS (DoT)
- специальная реализация протокола DNS c TLS защитой. Согласно стандарта для этой службы выделен отдельный порт 853. Технически это инкапсуляция стандартных DNS-запросов в TLS.

🟢 Из плюсов - лучшая управляемость, так как благодаря отдельному порту системные администраторы могут контролировать использование этого протокола.

Еще один плюс - хорошая обратная совместимость, не нужно переписывать софт, так как используются стандартные запросы, нужно только реализовать поддержку TLS.

🔴 Из минусов - обратная сторона плюсов, DoT трафик легко перехватить и заблокировать (но не расшифровать).

🔹 DNS-over-HTTPS (DoH) - принципиально иная реализация защиты DNS, когда поставлена цель сделать DNS-запросы неотличимыми от обычного HTTPS-трафика.

В DoH для передачи DNS-запросов используется протокол HTTP/2 и по сути это некое веб API для передачи DNS данных. Поэтому отличить DoH от обычного HTTPS трафика решительно невозможно.

🟢 Из плюсов - невозможно отличить от HTTPS трафика и осуществлять выборочный перехват и блокировку DNS-запросов

🔴 Из минусов - серьезные затруднения для системных администраторов, которые не могут выделять и контролировать DNS-запросы пользователей.

Второй минус - необходимость серьезной доработки софта, так как вместо стандартных запросов требуется реализовать поддержку работы с HTTP/2
👍27👌2🤝21
Никогда такого не было и вот опять!

Добрый вечер, с вами снова ваша любимая рубрика: как все завалить и ничего не понять.

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

Спрашиваем, читал ли логи? Вроде читал, вроде никакого криминала, нет, ИИ не давал почитать. Ну да ладно, просим эти самые логи прислать.

Ну а там просто классика жанра, причем эталонная, хоть в палату мер и весов отправляй. В общем история проста и поучительна. А также очень типична.

Мы не даром в заметке заострили внимание на то, что без меток Watchtower использовать в продуктивных средах крайне нежелательно, но кого и когда это останавливало?

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

Хотя еще Чехов заметил, что если в пьесе на стене висит ружье, то оно должно обязательно выстрелить. Так и произошло в этот раз. Домашния лаба, руками давно не обновлялась, некогда, да и лень.

А тут заметка про Watchtower – эврика, это то, что нам надо. Быстренько разворачиваем, все лишнее выкидываем и предвкушаем радость от полной автоматизации процесса, ну какие еще метки, зачем, будь проще и люди к тебе потянутся.

И что же тут могло пойти не так? Читаем лог. Watchtower запустился и нашел обновления абсолютно ко всем контейнерам домашней лаборатории, что не удивительно. Но так совпало, что установленный вчера образ nickfedor/watchtower:latest сегодня тоже обновился.

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

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

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

Но в любом случае это опыт, а за одного битого, как известно, двух небитых дают.
🔥19👍142
Настраиваем цвета строки приглашения Bash

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

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

За формат строки приглашения отвечает переменная окружения PS1 и по умолчанию она имеет значение:

PS1='\u@\h:\w\$ '


Где u – имя пользователя, h – имя хоста, w – текущий путь, а $ - символ приглашения.

В результате строка будет выглядеть так:

user@host:/home/user$


Для изменения внешнего вида нам доступны три параметра: формат символов, цвет текста и цвет фона.

Формат может принимать три значения:

▫️Нормальный текст – 0
▫️Жирный текст – 1
▫️Подчеркнутый текст – 4

Цвета текста / фона:

▫️Черный 30/40
▫️Красный 31/41
▫️Зеленый 32/42
▫️Желтый 33/43
▫️Голубой 34/44
▫️Фиолетовый 35/45
▫️Бирюзовый 36/46
▫️Белый 37/47

Для того чтобы задать цвет отдельных элементов применяется специальное форматирование, использующее символы \e в начале и m в конце.

Например, выделим имя пользователя и хост зеленым цветом, а путь сделаем синим, при этом двоеточие и символ приглашение раскрашивать не будем:

PS1='\[\e[01;32m\]\u@\h\[\e[m\]:\[\e[01;34m\]\w\[\e[m\]\$ '


Сам цвет задает конструкция:

\[\e[01;32m\] 


Формат текста задает 01, а его цвет – 32, т.е. жирный зеленый. Если мы хотим еще изменить фон, то добавляем туда еще одно значение:

\[\e[01;32;43m\] 


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

Конструкция

\[\e[m\]


Сбрасывает цвет и формат элементов на дефолтные.

Так, например, если мы уберем такую конструкцию перед двоеточием, то оно тоже окрасится в заданный перед этим цвет:

PS1='\[\e[01;32m\]\u@\h:\[\e[01;34m\]\w\[\e[m\]\$ '


Проверить что получилось можно сразу, введя указанную строку в консоль и нажав Enter. Таким образом можно тонко настроить цвета в соответствии со своими потребностями.

Если же вы люто накосячили, то не отчаивайтесь, введите

PS1='\u@\h:\w\$ '


И все снова станет как было. Либо просто выйдите из консоли.

Чтобы выбранное вами оформление автоматически применялось при входе в систему добавьте полученную строку в файл .bashrc выбранного пользователя.
👍10🔥42👌1