Обновить

Все потоки

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

Вайбкодинг: 5 приёмов, чтобы не утонуть в собственном коде

Карпатый в феврале придумал термин, 25% стартапов YC W25 уже пишут 95% кода нейросетями. Но Veracode проверил 100+ LLM — 45% сгенерированного кода содержит уязвимости. Из 18 опрошенных CTO 16 словили продакшн-инциденты от AI-кода.

Вот что помогает получать результат, а не хаос:

1. PRD до первого промпта LLM интерпретирует буквально. Размытое ТЗ = размытый результат. 30 минут на структурированный документ экономят дни на итерациях.

2. Cursor Rules Без правил проекта ИИ каждый раз выбирает рандомный стек и стиль. Зафиксируйте один раз — код станет предсказуемым.

3. Модули с первого коммита AI-код содержит в 2.4 раза больше абстракций, чем нужно. Всё в одном файле = потом не распутаете. Сразу раскладывайте по слоям.

4. Git-коммиты как чекпоинты Replit-агент удалил продакшн-базу, проигнорировав code freeze. Коммит после каждой фичи — страховка от таких сюрпризов.

5. Понимание того, что генерируется 40% джунов деплоят код, который не понимают. 63% разработчиков хотя бы раз дебажили AI-код дольше, чем писали бы сами. Базовые знания = контроль. Быстро прокачать основы под вайбкодинг можно тут.

Сам Карпатый, кстати, свой последний проект Nanochat написал руками — «from scratch».

Теги:
-1
Комментарии0

Как получить почти бесконечное зацикливание без использования циклов и без переполнения стека вызовов:

// Установите N = 64, и эта функция никогда не завершится  
// Количество вызовов (calls) = 2^(N+1)  
// Максимальная глубина вложенности = N

let calls = 0
const N = 18
function func(state, visited) {
  calls++
  if (calls > 10_000_000) {
    throw new Error('calls: ' + calls)
  }
  if (visited.includes(state)) return

  const newVisited = [...visited, state]

  func((state + 1) % N, newVisited)
  func((state + 1) % N, newVisited)
}

func(0, [])
console.log('calls:', calls)

Почему это работает без переполнения стека?

func(0, [])
├── func(1, [0])
│   ├── func(2, [0,1])
│   │   └── ... глубина растёт до N
│   │           и перебираются все возможные комбинации значений в newVisited
│   └── func(2, [0,1]) - возвращается, глубина УМЕНЬШАЕТСЯ
└── func(1, [0])       - второй вызов, стек уже освободился

А Garbage Collector (GC) при этом бесконечно удаляет созданные ранее массивы newVisited

Стек "дышит" - достигает максимума N, потом сворачивается, потом снова растёт. Это обход огромного дерева, имеющего небольшую глубину, но очень большую ширину. Это не бесконечная рекурсия. Но при N = 64 количество вызовов будет 2^65 (примерно 10^19) - это займёт тысячи лет, и стек никогда не переполнится.

Теги:
+1
Комментарии2

Я создал обвязку вокруг Pywikibot для простой загрузки файлов в Wikimedia Commons: https://gitlab.com/vitaly-zdanevich/pwb_wrapper_for_simpler_uploading_to_commons

Stateless, позволяет загружать по одному файлу и все из текущей папки (для поддерживаемых расширений). Примеры синтаксиса:

upload.py --file my.jpg --source https://example.com --license 'PD-old' --category 'Sunsets in Batumi' --date '2025-12-27' --desc 'A beautiful sunset from the beach' --target myrenamed.jpg

Либо например

upload.py my.jpg --category 'Sunsets in Batumi' --date '2025-12-27'

Я туда много загружаю - мы живём в горящей библиотеке, и мне важно спасти побольше данных. Базовый загрузчик (Upload Wizard) в браузере так себе. Существуют и прочие инструменты загрузки в Commons, и это мой третий инструмент для этой задачи - уже был скрипт для gThumb и браузерное расширение.

Только этим своим новым скриптом загрузил уже сотни файлов. Вам теперь тоже ещё легче будет спасти какие-нибудь сканы старых газет - помните что в Commons можно загружать только файлы со свободной лицензией - например когда автор умер более 70 лет назад.

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

Теги:
0
Комментарии0

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

Ахинейно-поршневой двигатель с симметричным поршнем и параллельными ахинеями.
Ахинейно-поршневой двигатель с симметричным поршнем и параллельными ахинеями.

Вот такой вот «двигатель», у которого поршень в виде «колобашки» без всяких шатунов сидит сам на шатунной шейке коленвала. Косинусную составляющую вращения он, естественно, отрабатывает сам, а синусную… как говорил сатирик, вы побольше воздуха наберите и покрепче сядьте — синусную отрабатывает весь сдвоенный цилиндр, болтаясь вверх-вниз на маленьких поршеньках-направляющих (для этого сверху и снизу в нём сделаны дополнительные маленькие цилиндрики). В этом месте вы все уже представили, какой массой мы собираемся размахивать в воздухе туда-сюда, а самые сообразительные — ещё и какие там будут перекосы и какое адское трение (усилие-то приложено несбалансированное).

Проржавшись, переходим к занимательной геометрии, поскольку в силу описанного считать это двигателем уже нельзя. В геометрии можно сделать следующие допущения: охлаждающая рубашка не нужна, 1200 оборотов при 50 кубиках нам достаточно (масса не страшна), вместо свечи вспышки обеспечивает маг-пирокинетик, трение в малых ЦПГ отсутствует. В общем, переходим к математической абстракции.

И тут становится интересно: можно ли, правильно выбрав диаметры малых ЦПГ, положение их перепускных окон на главном цилиндре, положение выпускных и продувочных окон на них самих и так далее, реализовать не просто фыр-фыр-двухтактник, в котором окна в главном цилиндре открываются «сразу на улицу», а какой-нибудь более интересный цикл: Аткинсона, Миллера или, наоборот, Цоллера (Доппельколбен, который решает противоположную Аткинсону задачу), ну или там, не знаю, Уткинсона, Мурчинсона, Пушкина, Кукушкина или вообще Нак-Мак-Фиггля. Допустим, что к продувочным окнам ведут идеально гибкие шланги (абстракция же; в принципе, в реальной модели, если бы она была нужна, это более-менее обходится тоже).

Сами понимаете, что одни двигаются по синусу, другие — по косинусу, перепускные окна открываются согласно косинусоиде, выпускные и продувочные — согласно синусоиде, и всё это можно произвольно двигать вдоль ходов поршней, причём независимо. А если это кажется слишком лёгкой задачей — добавим возможность наклонять группу малых ЦПГ на небольшие углы (чтобы отрабатывали не чистый синус, а какую-то смесь), да ещё и вместо поршней в некоторых местах сделать полноценные золотники, которые открывают окна только при строгом совпадении положений, а не «от N мм и до мёртвой точки» (они же, кстати, и в шлангах не нуждаются, потому что наружная часть у них неподвижна).

В общем, такая вот небольшая тригонометрическая головоломка. Занимательная и в целом практически бессмысленная. Пафнутий Львович Чебышёв, конечно, назвал бы это задачкой для первого класса спецшколы для умственно отсталых, но простым смертным типа нас с вами может представлять интерес. Не забывайте только, что в малых ЦПГ при движении газ тоже не исчезает «в никуда», чтобы не получить незапланированный компрессионный двигатель, например. Задачка-то геометрическая, но граничные условия у неё от «реального» ДВС, иначе будет слишком просто.

Теги:
-3
Комментарии1

Слышу уже от второго человека, что язык Rust не дает нормально работать с указателями в связанных списках, деревьях и графах (в моей вселенной ЯП без этого - это как свадьба без невесты). Взял ChatGPT, задал промпт: "write a code to insert a node into a doubly linked list in rust". Оно сгенерило нечто с кучей дополнительных слов, которых не было ни в Си, ни в Паскале 40 лет назад: borrow, as_ref, and_then, upgrade, map, downgrade, Some, clone, borrow_mut. Это все реально нужно или они там совсем озверели?

Теги:
+11
Комментарии59

Вышло новое интервью на Русском (https://www.youtube.com/watch?app=desktop&v=BBL-IFZJGWA) от Романа Ямпольски (один из тех дядек, что твердит об опасности ИИ). Выдает фразы насколько непонятные, что пришлось нейронкой проанализировать смысл его высказываний.

Базовый тезис

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

Что именно он считает главной угрозой

Не «нынешний чат-бот сам по себе», а переход к AGI, после которого появляется возможность самоускоряющегося улучшения (AI помогает делать следующий AI быстрее, параллельно, эффективнее), что приводит к ASI.

Для ASI он утверждает: мы окажемся в положении «муравьёв» относительно людей — не сможем предсказать, остановить, навязать ограничения.

Как по мне, в его суждениях есть несколько фундаментальных ошибок:

Он безусловно принимает на веру тот тезис, что "AGI будет однозначно враждебен к человечеству".

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

Он говорит, что "Умный агент при оптимизации целей естественно приходит к инструментальным стратегиям (самосохранение, ресурсы, обман/шантаж как выгодные ходы в теории игр)".

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

ИИ- это чёрный ящик (в смысле, что человек не понимает, как оно устроено), что уже умнее человека.

Уточнение, что умнее в определенных областях, и не факт, что во всех, которые важны для выживания/уничтожения человека. Калькулятор, смартфон, процессор: в мире найдется всего несколько десятков тысяч человек, которые понимает, как устроен калькулятор. Все, что сложнее, не сможет объяснить ни один человек в мире (имеется ввиду полностью, все детали и механизмы). Но бояться надо именно нейросетей - да...

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

Теги:
-1
Комментарии11

У людей есть простая пословица:
«Кто не помнит прошлого — обречён повторять его».
В цифровых системах это работает буквально.
Память — это не архив. Это фундамент ответственности.
Когда при обновлениях исчезают старые ссылки, Doc-ID, номера обращений, история решений и причины, по которым они были приняты, система теряет не «удобство», а способность отвечать за свои действия.
В такой среде ИИ не делает систему умнее.
Он лишь ускоряет воспроизведение ошибок, потому что больше не видит, почему раньше было сделано именно так.
Ответ есть — основания нет.
Решение есть — истории нет.
На практике это быстро бьёт по всем:
пользователи не могут проверить или оспорить отказ;
инженеры поддержки заново разбирают уже решённые проблемы;
доверие к системе исчезает, даже если интерфейс стал «красивее».
Поэтому проблема здесь не в ИИ и не в новом дизайне.
Проблема — в архитектурной амнезии, потере связности опыта.
Отсюда следуют простые, но жёсткие принципы.
Приоритет связности.
Никакое обновление не может считаться завершённым, если оно разрушает семантические связи с прошлым: стабильные ID, историю изменений, причины принятых решений.
ИИ — навигатор, а не оракул.
ИИ должен помогать ориентироваться в накопленном опыте. Ответ без ссылки на основание — это не помощь, а догадка, и он должен прямо маркироваться как неверифицированный.
Защита опор реальности.
Красота интерфейса и скорость поиска не могут быть важнее ответственности. Ответственность — это способность системы доказать свою правоту, опираясь на факты собственного прошлого.
Современность системы определяется не количеством «умных» функций,
а тем, сохраняет ли она память о собственных решениях и умеет ли за них отвечать.
ИИ без памяти — это не интеллект, а ускоритель деградации.
А разговор об интеллекте — это уже следующий шаг.

Теги:
0
Комментарии2

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

Теги:
0
Комментарии0

Оператор робота во время обучения проиграл Unitree G1 бой самому себе. Самое страшное, что робот запомнил этот приём.

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

Теги:
+6
Комментарии0

Состоялся первый мажорный релиз открытого проекта для шифрования текста и файлов Stirlitz. Программа написана на языке С++ и распространяется под лицензией GPLv3. Приложение адаптировано для работы в операционных системах семейства Linux, Windows и Android. Для пользователей Arch Linux в AUR доступен сценарий сборки пакета. Для пользователей Windows доступен экспериментальный инсталлятор. Для пользователей Android доступен экспериментальный пакет в формате apk.

Основные возможности Stirlitz 1.0:

  • Шифрование текста и файлов для передачи через любые каналы публичной связи (мессенджеры, e‑mail сообщения и тому подобное). Шифрование осуществляется на базе публичных ключей (алгоритм Ed25519) и алгоритма шифрования AES256.

  • Шифрование файлов для локального хранения. Шифрование осуществляется через задание имени пользователя и пароля с использованием алгоритма AES256.

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

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

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

  • Для библиотеки stirlitz доступна документация в формате html.

Теги:
+2
Комментарии4

Главная причина купить очки дополненной реальности — играть на работе, пока коллеги думают, что ты пытаешься успеть всё к дедлайну.

Теги:
+9
Комментарии1

DDoS-атаки: почему стандартные решения не спасают и как выстроить эффективную защиту. Интервью ispmanager с GreyWeb

Рады вас приветствовать, дорогие читатели!

Тема противодействия DDoS-атакам остается одной из самых острых и актуальных в сфере IT. Атаки постоянно эволюционируют, становятся более сложными и мощными, заставляя специалистов искать новые, более изощренные методы защиты.

В ispmanager мы регулярно сталкиваемся с вопросами наших пользователей о том, как обезопасить свои серверы и проекты. Именно поэтому мы провели глубокое интервью с ведущими экспертами по кибербезопасности из компании GreyWeb, которые специализируются на профессиональной защите от DDoS.

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

•  Эволюция угроз: Как меняются DDoS-атаки и почему вчерашние методы защиты сегодня уже неэффективны.

•  Ограничения стандартных решений: Разбор типовых ошибок и мифов, связанных с "базовой" защитой.

•  Комплексные стратегии: Какие подходы и технологии позволяют эффективно отражать даже самые мощные и целевые атаки.

•  Взгляд изнутри: Практический опыт GreyWeb по предотвращению и минимизации ущерба от DDoS, кейсы и рекомендации.

•  Подготовка к атаке: Что нужно сделать заранее, чтобы быть готовым к худшему сценарию.

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

Приглашаем к прочтению: ➡️

https://www.ispmanager.ru/news/case-greyweb

Делитесь вашим опытом борьбы с DDoS в комментариях!

Теги:
-1
Комментарии0

Новогодний дайджест с подарками 1С.

С Новым 2026 годрм!
С Новым 2026 годрм!

Вашему вниманию предлагается 1С - подборка для ваших баз - для новогоднего настроения и проведения праздников.

С наступающим праздником новогодними поздравлениями и открытками поздравляет Инфостарт.

Чем можете отблагодарить? Пройдите новогодний опрос для сообщества и посмотрите ответы.

Для любителей 1С и классики игр будет интересен и такой сюрприз.

Кому надо просто отвлечься - есть и небольшие игры для 1С:

Для практического применения в офисе и не только - тайный Санта

И не забудьте поздравить детей по списку

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

Всех с наступающим! Счастливого праздника!

Теги:
0
Комментарии0

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

Готовьтесь к Новому году с диджей-сетами от BÖRIS REDWÄLL и разработчиков AvitoTech!

26 декабря мы устроили вечеринку-стрим AvitoTechno. Что было:

  • специальный сет от BÖRIS REDWÄLL;

  • огненное шоу от LAVBLAST

  • и конечно, сеты от диджеев-разработчиков AvitoTech!

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

Также запись сета доступна на других площадках:

Twitch
VK

Теги:
+23
Комментарии0

Готово ли ваше облако к 2026 году? Быстрый FinOps-чек-лист

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

Это бесплатный инструмент в формате гугл-таблицы. Прохождение занимает 5–7 минут.

Что дает чек-лист:

  • видно, где процессы уже работают, а где есть пробелы

  • понятно, на каких этапах теряется прозрачность расходов

  • есть конкретные шаги, что имеет смысл внедрять дальше

Чек-лист можно пройти одному, например CTO или Head of Engineering, либо вместе с командой, инженером, архитектором и финансовым специалистом.

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

👉 Забрать чек-лист

Теги:
+5
Комментарии0

Подборка инструкций по работе с сетью для начинающих

Привет, Хабр! В пятницу я снова с подборкой статей. На этот раз несу инструкции по работе с сетями.

Хороших выходных!

Теги:
+8
Комментарии0

Обстановка с ростом цен на ОЗУ: планка на 256 ГБ стоит на $1400 дороже, чем RTX 5090.

Ранее из-за дефицита ОЗУ (бум искусственного интеллекта и скупка любых карт памяти для серверов) 2 плашки памяти на 64 ГБ оперативной памяти в США стали стоить столько же или дороже (после скидки) полуавтоматической винтовки AR15 или как MacBook Air.

Теги:
0
Комментарии4

Перевел почти всё на Grok 4.1 с декабря не смотря на ажиотаж в других моделях.
1. Дешево за большой контекст
2. Code execution дает возможность дешево анализировать данные
3. Реальные расходы токенов на задачи уровня flash и mini моделей, но качество заметно лучше
4. Хорошо следует схемам
5. Контекст 2M

Экономия в 3-4 раза с Claude Sonnet.

Где использовал:
HR-тематика: массовая обработка резюме и вакансий
Анализ данных, поиск информации

  • Claude Sonnet: $3 / $15 за 1M токенов (input/output)

  • Grok 4.1 Fast: $0.20 / $0.50 за 1M токенов

Использую Grok 4.1 Fast для простых задач и 4.1 Fast Reasoning когда нужно "подумать".

Расскажите в комментариях, на каких моделях работаете и для каких задач?

Теги:
-3
Комментарии3

Геймер спрятал ПК в конструктиве 50-килограммовой викторианской батареи отопления. Это сделано для экстремального охлаждения компьютера. Никакого корпуса не нужно - чугунный радиатор XIX века работает как гигантский пассивный теплоотвод. Снизу батареи поместилась материнская плата, видеокарта и блок питания. Энтузиаст даже аккуратно спрятал проводку и сохранил «антикварный» внешний вид.

Теги:
+2
Комментарии2

Как автоматизировать Photoshop через кодинг

Когда говорят об автоматизации, чаще всего имеют в виду Python. Но важно понимать: Photoshop не выполняет Python-код напрямую.

Зато у него есть встроенная поддержка скриптов — Photoshop умеет исполнять код на JavaScript (ExtendScript).

Это не «JS как в браузере» и не замена Python. Это родной язык автоматизации Photoshop, с прямым доступом к:

  • слоям

  • тексту

  • смарт-объектам

  • экспорту файлов

  • истории документа

Если задача — управлять самим Photoshop, то скрипты внутри Photoshop — самый надёжный путь.

Что это даёт на практике

Через код можно:

  • массово менять текст в PSD

  • генерировать сотни изображений из одного шаблона

  • автоматизировать экспорт

  • исключить Actions и Variables с их ограничениями

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

Пример задачи

Есть:

  • один PSD

  • текстовый слой

  • значения 1 м → 100 м

Нужно:

  • автоматически подставить значения

  • сохранить 100 PNG-файлов

  • вернуть PSD в исходное состояние

Пример скрипта для Photoshop (JSX)

#target photoshop

var doc = app.activeDocument;
var layerName = "1 м"; // имя текстового слоя
var outputFolder = Folder.selectDialog("Выбери папку для сохранения");

if (!outputFolder) {
    alert("Папка не выбрана");
    exit();
}

function findTextLayer(layerSet) {
    for (var i = 0; i < layerSet.layers.length; i++) {
        var layer = layerSet.layers[i];
        if (layer.kind == LayerKind.TEXT && layer.name == layerName) {
            return layer;
        }
        if (layer.typename == "LayerSet") {
            var found = findTextLayer(layer);
            if (found) return found;
        }
    }
    return null;
}

var textLayer = findTextLayer(doc);
if (!textLayer) {
    alert("Текстовый слой не найден");
    exit();
}

for (var i = 1; i <= 100; i++) {
    textLayer.textItem.contents = i + " м";

    var file = new File(outputFolder + "/pkabel_4x2_5_" + i + "m.png");

    var opts = new PNGSaveOptions();
    opts.compression = 9;

    doc.saveAs(file, opts, true, Extension.LOWERCASE);
}

// откат без сохранения
doc.activeHistoryState = doc.historyStates[0];

alert("Готово!");
Теги:
+4
Комментарии0