Обновить

Все потоки

Сначала показывать
Порог рейтинга

Новые курсы в Академии GlowByte

Академия GlowByte разработала два новых образовательных курса по использованию больших языковых моделей. Один из модулей предназначен для топ-менеджеров компаний (руководителей C-level), второй будет полезен руководителям подразделений и линейным сотрудникам.

📚 В программе курса для руководителей высшего звена:

▪️ основы работы с LLM-моделями,
▪️ потенциальное применение LLM в работе CEO (использование в стратегическом планировании, анализе рынка, принятии решений),
▪️ в каких задачах не стоит применять LLM,
▪️ как сравнивать большие языковые модели между собой.

📚 В программе курса для руководителей подразделений и линейных сотрудников:

▪️ использование ИИ-инструментов для различных бизнес-задач и решения ежедневных рабочих вопросов,
▪️ основы и продвинутые техники промптинга,
▪️ углубленная работа с документацией и контентом,
▪️ написание системных инструкций для модели,
▪️ безопасность данных и конфиденциальность при работе с LLM,
▪️ выявление и исправление неточностей и “галлюцинаций”.

🖥 Узнать подробнее о курсах.

Теги:
Всего голосов 3: ↑3 и ↓0+3
Комментарии0

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

Давайте я просто покажу примеры использования с кратким описанием и все сами поймете.

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

# Проверим uptime на хостах начиная с 1 по 5, исключив 3
$ pdsh -w node[1-5] -x node3 uptime

# Перезагрузим все хосты, кроме node3 и node7
$ pdsh -w node[1-10] -x node3,node7 'sudo reboot'

Если вы достаточно организованы, чтобы вести список хостов - можно даже использовать файл с заранее определенными хостами

# File: my_hosts.txt
# node1
# node2
# db[01-05]

pdsh -w "^my_hosts.txt" 'uptime'

Вы скажете:

Так тебе же ничего не мешает использовать для этих целей Ansible! Например, так:

ansible -i 'node1,node2,node3' all -m shell -a 'uptime'

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

Когда одного pdsh мало - берите PSSH

pssh - отличная альтернатива pdsh

# Одновременное обновление пакетов на всех хостах
pssh -h production_servers.txt -l admin -t 300 "sudo apt update && sudo apt upgrade -y"

pscp - массовое копирование на сервера

# Залить скрипт мониторинга на все хосты
pscp -h all_hosts.txt monitor_script.sh /usr/local/bin/

prsync - параллельное копирование через rsync

# Обновить статические файлы только если они изменились
prsync -h cdn_nodes.txt -a "-avz" static/ /var/www/static/

pslurp - собрать файлы с серверов на локальную тачку

# Собрать логи со всех серверов в отдельные папки
pslurp -h servers.txt -l user -L ./collected_logs /var/log/app/error.log app_error.log

Эти инструменты не заменят полноценные системы управления конфигурациями вроде Ansible или chef, но для быстрых задач, срочных исправлений или массового сбора информации - они незаменимы.

---

Хватит читать DevOps-статьи от людей без продакшена. Я рассказываю про свой реальный опыт в своем Telegram-канале DevOps Brain 🧠 ↩

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Ответьте мне на один простой вопрос: зачем в наше время вообще нужны HR?

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

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

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

Почему HR не выполняют своё прямое предназначение, а действуют по шаблону?

И главный вопрос: каким образом лайв-кодинг должен подтверждать или опровергать мои навыки, если:

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

Короче говоря — как же у меня с этого горит.

Теги:
Всего голосов 5: ↑5 и ↓0+6
Комментарии2

Открытый персональный ИИ‑ассистент Clawdbot берёт на себя рутину, умеет писать и отвечать в Telegram, Discord, Slack, Signal и iMessage, может управлять файлами и программами на ПК, автоматизировать повторяющиеся задачи и работать с сервисами вроде Gmail, Notion, GitHub, Spotify и X. Проект Clawdbot поддерживает все популярные нейросети, запоминает предыдущий контекст и помнит, что делалось раньше. Сервис подстраивается под привычки и становится настоящим цифровым помощником, который работает 24/7 и экономит ваше время.

Минус решения: на текущий момент в репозитории решения открыто 337 issue, многие из которых — сообщения об ошибках и проблемы безопасности. Пока что этот проект далёк от стабильности.

Теги:
Всего голосов 1: ↑1 и ↓0+3
Комментарии1

Что нового появилось в PVS-Studio в 2025 году

Новый 2026 год уже вовсю идёт, и мы решили оглянуться назад и вспомнить, что интересного появилось в PVS-Studio за богатый на изменения 2025 год:

  • десятки новых диагностических правил, включая проверки, ориентированные на безопасность;

  • обновления интеграций в популярные IDE, CI/CD-системы, ASOC и сборочные системы;

  • улучшения анализа;

  • расширенная поддержка стандартов.

Всё это и многое другое описано в новой статье в нашем блоге.

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

36 бесплатных уроков недели

Привет, Хабр. Делимся подборкой бесплатных открытых уроков, которые пройдут в последнюю неделю января в Otus. Опытные практики проведут занятия онлайн — сможете узнать больше о формате обучения и задать свои вопросы экспертам. Выбирайте свою тему и присоединяйтесь!

26 января, понедельник:

27 января, вторник:

28 января, среда:

29 января, четверг:

Теги:
Всего голосов 1: ↑1 и ↓0+2
Комментарии1

Bare-metal GPU в аренду или покупку: что выбрать 

Выделенные GPU-серверы — это инфраструктура для задач, где важны предсказуемая производительность и полный контроль над ресурсами. Их используют для машинного обучения и AI, обучения и инференса моделей, VDI, рендеринга и других высоконагруженных сценариев, которые плохо масштабируются на shared-решениях или обычных VPS.

В 2025 году рынок таких решений в России вышел из экспериментальной фазы. По данным Рег.облака, компании всё чаще выбирают аренду bare-metal GPU вместо покупки собственного оборудования. Спрос на выделенные GPU-серверы вырос на 45%, а 87% клиентов возвращаются за услугой повторно — в первую очередь в Enterprise-сегменте. Это отражает устойчивый сдвиг в сторону модели аренды на фоне роста цен на инфраструктуру и необходимости гибко управлять вычислительными мощностями. Основной спрос формируют IT-компании и ритейл. Чаще всего GPU используются для задач машинного обучения и AI (60%), а также для VDI (30%) и разовых вычислительных сценариев — например, рендеринга (10%).

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

Подробнее о том, какие конфигурации востребованы рынком, как сделать выбор между арендой и покупкой и в каких сценариях bare-metal GPU оправданы — на сайте Рег.облака.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Go To Statement Considered Harmful.

Легендарное письмо Эдсгера Дейкстры обсуждалось учёными и программистами довольно долго. Даже сейчас встречаются разные взгляды на присутствие GOTO в программе.

Краткое содержание (парафразирую): GOTO нарушает простую навигацию по коду и, самое главное, возможность сопоставить код с тем, что мы имеем как состояние процесса в определённый момент времени.

Сам Дейкстра пишет, что ничего нового не говорит, о том же уже выступали Тони Хоар, Никлаус Вирт и ряд других учёных.

Дейкста и его коллеги в 1970-х дадут старт “структурному программированию”. В основу ляжет теорема Бёма-Якопини.

Оригинал статьи есть в свободном доступе библиотеки ACM.

Что интересно, этот вариант вырезки содержит и другие письма от 1968 года в редакцию журнала ACM.

К примеру, одно из них про то, что ЯП и их среды не должны быть защищены торговыми марками. Другое про дихотомию килобайты-кибибайты. Ещё одно про необходимость включения пост-мортем дампов (stacktrace или coredump) как обязательную часть высокоуровневых ЯП…

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

Letters to Editor на сайте ACM: https://dl.acm.org/doi/pdf/10.1145/362929.362947

Теги:
Всего голосов 2: ↑1 и ↓1+2
Комментарии0

Представлен открытый веб-редактор изображений DPaint.js (онлайн-версия) на JavaScript, созданный по образцу легендарного Deluxe Paint, с упором на ретро-форматы файлов Amiga. Помимо современных форматов изображений, DPaint.js может читать и записывать файлы иконок Amiga и изображения IFF ILBM.

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

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

Таблицы

Самая недооценённая функция электронных таблиц — таблицы. Что за ерунда, подумает читатель. Дело в том, что есть два английских слова: speadsheet и table. При переводе на русский язык возникает путаница.

Таблица — это набор данных в виде столбцов (как в SQL). Изначально таблицы были реализованы в Excel, а в 2024 появилась поддержка и в Google Sheets.

Пусть есть список сотрудников из трёх столбцов: ID, ФИО и Оклад. Преобразуем его в таблицу. Для этого достаточно в любом месте диапазона с данными нажать сочетание клавиш:

  • Excel: Ctrl + T (⌘ + T)

  • Google Sheets: Ctrl + Alt + T (⌘ + ⌥ + T)

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

Переименуем таблицу в Сотрудники (в Excel это делается не совсем очевидно). Теперь посчитаем сумму окладов двумя способами: с помощью обычных и табличных ссылок.

=SUM(C2:C7)
=SUM(Сотрудники[Оклад])

Или найдём ФИО сотрудника по ID:

=XLOOKUP(4357379;A2:A7;B2:B7)
=XLOOKUP(4357379;Сотрудники[ID];Сотрудники[ФИО])

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

Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Глава Pocketpair (компании-создателя Palworld) Такуро Мидзобэ (Takuro Mizobe) сообщил о нестандартном требовании к кандидатам на должности геймдизайнеров в компании — соискатели должны быть активными пользователями платформы Steam с обширной игровой историей. На собеседовании кандидатов просят предоставить скриншоты своей игровой истории Steam и подробно проанализировать игры, в которых они провели больше всего времени. Студия ищет специалистов, которые понимают особенности жанра не только как разработчики, но и как заядлые игроки. Соискатель должен объяснить, почему были приняты те или иные дизайнерские решения в любимых играх и чем они отличаются от конкурентов в своём жанре.

Теги:
Всего голосов 2: ↑2 и ↓0+3
Комментарии0

Представлена открытая ИИ-студия для работы с видео и лицами — VisoMaster Fusion, включая замену лиц, обработку видео и редактирование изображений. Работает локально, без облаков и подписок. Возможности сервиса: реалистичная замена лиц в видео и фото, работа с несколькими персонажами в кадре, инструменты улучшения качества изображения и лица, контроль над параметрами генерации. Подойдёт тем, кто работает с видео, контентом, ИИ-инструментами или просто хочет попробовать современные технологии без ограничений и подписок.

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

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

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии1

Ближайшие события

Коллеги привет, искал себе решение как реагировать на изменения в объекте и нашел отличный сервис, который используется внутри директив таких как NgClass и NgStyle.

KeyValueDiffers позволяет создать KeyValueDiffer для сравнения изменений текущих пар ключ-значение с новыми. Если вы используете иммутабельные объекты, то можно просто обернуть все в эффект, ну а если вы наследники крутого легаси, где все объекты мутируются по ссылке, тогда проверку нужно вешать в DoCheck, чтобы реагировать на каждый тик change detection.

Накидал оба примера, чтобы поделиться с вами:

Иммутабельный с effect:


@Component({
  selector: 'app-test',
  template: ''
})
export class TestComponent {
  public state = input.required<Record<string, string | number>>();
  
  private differs = inject(KeyValueDiffers);
  private differ: KeyValueDiffer<string, string | number> | undefined;

  constructor() {
    effect(() => {
      const currentState = this.state();
      
      // создаем диффер, если он еще не создан
      if (!this.differ) {
        this.differ = this.differs.find(currentState).create();
      }

      // Эффект будет перезапускаться при изменении инпут-сигнала.
      const changes = this.differ.diff(currentState);

      // только если есть изменения
      if (changes) {
        changes.forEachAddedItem((record) => {
          console.log(`В объект добавлена запись: Ключ: ${record.key} | Значение: ${record.currentValue}`)
        });

        changes.forEachChangedItem((record) => {
          console.log(`Изменено: ${record.key} | Новое значение: ${record.currentValue}`)
        });

        changes.forEachRemovedItem((record) => {
          console.log(`Удалено: ${record.key}`)
        });
        
        // Остальные методы forEachItem и forEachPreviousItem по необходимости
      }
    })
  }
}

Легаси подход, которого, надеюсь, ни у кого нет, но на всякий случай :)

@Component({
  selector: 'app-legacy',
  template: ''
})
export class LegacyComponent implements OnInit, DoCheck {
  @Input({ required: true }) state!: Record<string, string | number>;
  
  private differs = inject(KeyValueDiffers);
  private differ: KeyValueDiffer<string, string | number> | undefined;

  ngOnInit() {
    // Создаем диффер при инициализации
    this.differ = this.differs.find(this.state).create();
  }

  // Запускается на каждый тик change detection, так как мутации по-другому не отследим.
  ngDoCheck(): void {
    const changes = this.differ?.diff(this.state);

    if (changes) {
      changes.forEachAddedItem((record) => {
        console.log(`В объект добавлена запись: Ключ: ${record.key} | Значение: ${record.currentValue}`)
      });

      changes.forEachChangedItem((record) => {
        console.log(`Значение изменилось: ${record.key}`)
      });

      changes.forEachRemovedItem((record) => {
        console.log(`Запись удалена: ${record.key}`)
      });

      // Остальные методы forEachItem и forEachPreviousItem по необходимости
    }
  }
}
Теги:
Всего голосов 1: ↑1 и ↓0+1
Комментарии0

Лучший подарок студенту - новые инструменты для учебы и сэкономленные деньги. В честь Дня студента собрал в один пост студенческие скидки на ИИ-приложения и полезные сервисы, которыми пользуюсь сам для учёбы и личных проектов. Для получения скидки обычно требуется только учебная почта (*.edu). Иногда нужно привязать карту.

Notion (тариф Plus) - бесплатно.
Универсальное рабочее пространство для заметок, баз данных и управления проектами.
Регистрируйтесь с учебной почты (в домене *.edu). Или сначала создайте аккаунт на любой адрес, а затем в профиле смените его на свой .edu. После этого в настройках нажмите Upgrade plan и выберите пункт Get free education plan - тариф обновится автоматически.

Miro (тариф Education) - бесплатно.
Онлайн-доска для совместной работы, мозгового штурма и визуализации идей.
Используйте учебную почту .edu для регистрации. Доступ дали сразу.

GitHub Education - бесплатно.
Помимо GitHub Pro и Copilot Pro, доступны бонусы от партнёров в рамках GitHub Education Pack.
Регистрируйте аккаунт на *.edu почту. Перед отправкой заявки полностью заполните профиль, включите 2FA и укажите Billing information с именем и фамилией так же, как в студенческом. Номер банковской карты можно не добавлять. Заявку проверяют ~5 минут, а все бонусы становятся активны в течение 72 часов.

Perplexity Pro - месяц бесплатно + скидка 75% на продление.
Регистрируйтесь на *.edu почту. В разделе аккаунта нажмите кнопку redeem perplexity pro for education, заполните форму и ждите ответа (до 2 рабочих дней).

Lovable (Pro) - скидка 50%.
Создание веб-приложений с нуля без навыков программирования.
Регистрируем аккаунт на студенческую почту (*.edu).

Bolt.new (Pro) - скидка 50%.
ИИ-сервис для разработки веб-приложений, похожий на Lovable.
Используйте свою учебную почту .edu для регистрации

Windsurf (Pro) - скидка 50%.
IDE со встроенным ИИ-помощником, который пишет и редактирует код.

Framer (Basic) - бесплатно.
Платформа для создания интерактивных прототипов и веб-приложений без кода.
Заполняете форму и прикрепляете фото студенческого. Через пару минут на почту придет подтверждение. Далее в разделе тарифов выбираете апгрейд до Basic и на странице оплаты вводите промо‑код на 100% скидку, который пришел по email. Для активации потребуется зарубежная карта или аккаунт PayPal (списаний не будет).

Beautiful.ai (Pro) - бесплатно
ИИ‑инструмент для автоматического создания презентаций по текстовому запросу или загруженным материалам.
По сути, это аналог более известной gamma.app, но у gamma студенческих тарифов нет. Нужна .edu‑почта. Дают бесплатную годовую подписку Pro.

Obsidian Sync - скидка 40%.
Бесплатное кросс-платформенное приложение для создания заметок и персональной базы знаний на Markdown-файлах с графом связей между заметками.
Тут речь про скидку на их платное решение для облачного хранения и синхронизации.

Есть ещё множество других предложений, но чаще всего они доступны студентам из США и некоторых стран ЕС:
• Google AI Premium - бесплатный год подписки: https://gemini.google/students/
• Figma: https://www.figma.com/education/
• Cursor: https://cursor.com/students
• ChatGPT: https://chatgpt.com/college-students/
• Claude: https://claude.com/contact-sales/education-plan

Подписывайтесь на канал, чтобы быть в курсе новых находок!

Если знаете и о других скидках для студентов - делитесь в комментариях.

Теги:
Всего голосов 6: ↑2 и ↓40
Комментарии4

Открытый проект Mirror ищет скрытые процессы на macOS и следит за тем, чтобы никакой вредный код не потреблял память ПК. Умеет находить скрытые процессы, убивает процессы за один клик, включая даже «невидимые» процессы.

Теги:
Всего голосов 2: ↑2 и ↓0+2
Комментарии3

Открытый проект SubTrackr ищет и мониторит текущие подписки, отслеживает переводы и напоминает о датах списаний:

  • показывает подписки в одном месте;

  • поможет на раз отписаться от ненужных сервисом и не тратить деньги впустую;

  • мониторит траты, даты списаний, а также тематики подписок и их полезность;

  • дает рекомендации;

  • имеет понятный интерфейс и несколько тем для кастомизации;

  • работает полностью локально.

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0

Dcnfk yt c njq yjub& Yt ,tlf! :vb СфзыДщсл и не придётся перепечатывать текст заново.

Ставим AutoHotKey - фреймворк для клавиатурных утилит. Потом пишем скрипт ruen.ahk:

#Requires AutoHotkey v2.0
#SingleInstance Force

; пробегаемся по всем клавишам, удаляем одинаковые в разных раскладках, экраниуем через `
en := "QWERTYUIOP{}|ASDFGHJKL:`"ZXCVBNM<>?~@#$^&qwertyuiop[]asdfghjkl;'zxcvbnm,./``"
ru := "ЙЦУКЕНГШЩЗХЪ/ФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,Ё`"№;:?йцукенгшщзхъфывапролджэячсмитьбю.ё"

; собираем карты переключения в обе стороны
en2ru := Map()
for ch in StrSplit(en)
    en2ru[ ch ] := SubStr( ru, A_Index, 1 )
ru2en := Map()
for ch in StrSplit(ru)
    ru2en[ ch ] := SubStr( en, A_Index, 1 )

; общий код для всех хоткеев
Correct() {
    
    backup := ClipboardAll() ; сохраняем буфер, потом восстановим
    
    A_Clipboard := "" ; чистим буфер
    Send "#{Space}^c" ; Жмём Win+Space и Ctrl+C
    ClipWait 0.5 ; дожидаемся копирования в буфер
    
    if A_Clipboard { ; буфер не пустой
        
        result := ""
        mode := "en" ; по дефолту переводим в английский
        
        Loop Parse A_Clipboard { ; для каждого символа из буфера
            
            ; ищем варианты переключений для текущего симовола
            ru := en2ru.Get( A_LoopField, "" )
            en := ru2en.Get( A_LoopField, "" )
            
            if en && ru { ; возможны оба варианта - выбираем прошлый
                result .= mode = "en" ? en : ru
            } else if en {
                result .= en
                mode := "en"
            } else if ru {
                result .= ru
                mode := "ru"
            } else { ; оставляем как есть
                result .= A_LoopField
            }
            
        }
        
        A_Clipboard := result ; пишем в буфер
        Send "^v" ; жмём Ctrl+V
        Sleep 100 ; ждём пока данные заберут
        
    }
    
    A_Clipboard := backup ; восстанавливаем буфер
    
}

; CapsLock - хоткей коррекци выделения
CapsLock:: {
    Correct()
}

; Shift + CapsLock - хоткей коррекции последнего слова
+CapsLock:: {
    Send "^+{Left}" ; Жмём Ctrl+Shift+Left
    Correct()
}

; Ctrl + CapsLock - хоткей коррекции до конца строки
^CapsLock:: {
    Send "+{End}" ; Жмём Shift+End
    Correct()
}

; Ctrl + Shift + CapsLock - хоткей коррекции с начала строки
^+CapsLock:: {
    Send "+{Home}" ; Жмём Shift+Home
    Correct()
}

Даблкликаем по нему, и получаем:

  • переключение раскладки выделенного текста по CapsLock

  • последнего слова - по Shift + CapsLock

  • до конца строки - по Ctrl + CapsLock

  • от начала строки - по Ctrl + Shift + CapsLock

При желании его можно скомпилировать в exe-шник. Интерфейс самого AHK так и сделан.

Из уникальных фичей: переключает одновременно и раскладку введённого текста, и текущую раскладку клавиатуры.

Известные альтернативы:

  • Punto Switcher - 100 метровый звездолёт против 12 у AHK. Автопереключение часто не к месту, а горячую клавишу Break пойди найти на ноуте. Про интеграцию вашего буфра обмена с сервисами Яндекса я даже не заикаюсь.

  • Caramba Switcher - 60 метров и никаких настроек. Переключения по шифту - тот ещё глюкодром, с которым борятся через самообучение.

  • Mahou - поди найти клавиши Scroll и Pause.

  • Остальные лень ковырять - расскажите в комментах кому не влом.

Теги:
Всего голосов 8: ↑8 и ↓0+8
Комментарии2

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

Теги:
Всего голосов 3: ↑2 и ↓1+3
Комментарии0