var isPDFInstalled = false;
if (window.ActiveXObject) {
var control;
try {
control = new ActiveXObject('AcroPDF.PDF');
} catch (e) { }
if (!control) {
try {
control = new ActiveXObject('PDF.PdfCtrl');
} catch (e) { }
}
if (control) {
isPDFInstalled = true;
}
} else {
isPDFInstalled = navigator.mimeTypes && navigator.mimeTypes["application/pdf"];
}
if (isPDFInstalled) {
document.write('okay');
// ну или что-то другое
} else {
document.write('shit');
// ну или что-то другое
}Путь к ИИ‑сингулярности
У нас было два репозитория неоттестированного вайб‑кода, семьдесят пять тяжеловесных SDD‑спецификаций, пять обмазанных смазкой харнессов, солонка, наполовину полная кастомных скиллов и забитых капслоком правил, с десяток дырявых MCP‑серверов, RAG‑база со свежевекторизованным Confluence, самодельная дощечка имаго‑кодинга и целая россыпь автономных агентов всех мастей, от безобидных автодополнялок до галлюцинирующих субагентов, ставящих пакеты со slopsquatting и втихаря сносящих боевые базы.
Не то чтобы все это было действительно нужно для поездки к ИИ‑сингулярности, но если уж начали участвовать в спуске с горы на велосипеде без седла, остановиться уже невозможно.
Единственное, что вызывало у меня настоящий животный страх, это передача ответственности за ревью самой модели. Тот самый момент, когда седьмой агент подтверждает галлюцинации шестого, потому что все тесты зеленые, и я знал, что рано или поздно мы перейдем на эту дрянь.
Нет ничего более беспомощного, безответственного и испорченного, чем IT‑команда, запустившая мультиагентный оркестр в режиме allow all.
Это критический (и слегка ехидный) обзор того, что произошло с разработкой последние пару лет.

