Лайфхакер
Лайфхакер
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Лучшее
Рубрики
Рецепты
Подкасты
Сервисы
Колонки
Выгодные покупки
Новости
Здоровье
Спорт и фитнес
Покупки
Технологии
Отношения
Кино
Реклама
МакрадарТехнологии
18 марта 2015

Эволюция Стива Джобса — отрывки из новой книги Becoming Steve Jobs

Фото автора Артём Козориз
Артём Козориз

Автор Лайфхакера

Эволюция Стива Джобса — отрывки из новой книги Becoming Steve Jobs

Вундеркинд. Сволочь. Новатор. Тиран. Это всё о нём. Даже сейчас, спустя четыре года после смерти Стива, сложно прочесть любую историю, описывающую его характер без этих затертых ярлыков.

Известные журналисты Рик Тецели и Брент Шлендер, освещающие тему Apple для Fortune, The Wall Street Journal и Fast Company, и неоднократно бравшие интервью у Джобса, готовят книгу Becoming Steve Jobs, которая появится в продаже 24 марта. Судя по опубликованному позавчера на Fast Company фрагменту, она обещает быть очень интересной и непохожей на уже выходившие биографии Стива.

Рик и Брент начали собирать материал для книги еще три года назад, но поначалу близкие коллеги Стива отказывались говорить с ними. Первыми они говорили с людьми, которые расстались с Джобсом на определенном этапе его жизни, зачастую при сложных обстоятельствах. Однако даже те люди чувствовали, что он был недопонят многими. Сьюзен Барнс была финансовым менеджером в команде Mac и финансовым директором в NeXT Computer, но покинула компанию, решив что Джобс растрачивает капитал впустую. Стив тут же вычеркнул ее из жизни, удалив все телефоны, email и любые упоминания о ней. Несмотря на это, она очень эмоционально отзывается о нем и все еще упоминает его в настоящем времени, как и многие другие люди, с которыми беседовали Тецели и Шлендер.

«Вы читаете книгу о нем и не можете понять, как вообще кто-то мог согласиться на него работать. Он был удивительным боссом», — говорит Сьюзен.

Позже, когда люди из ближнего круга Джобса начали встречаться с Риком и Брентом, они просто подорвали его стереотип. Эд Кэтмал, президент Pixar и, возможно, самый главный наставник в жизни Стива, сказал что он постоянно совершенствовался как в бизнес-решениях, так и в своих личных манерах. «Я смотрю на Стива как на человека, который постоянно пытался измениться», — говорит Кэтмал, знавший Джобса на протяжении 25 лет.

Из эксклюзивных интервью с Джони Айвом, Тимом Куком, Биллом Гейтсом, Бобом Айгером и другими (включая вдову Стива, Лорин Пауэлл Джобс) всплыло множество образов Стива, разительно отличавшихся друг от друга. Он был человеком с безудержной жаждой знаний, буквально впитывая их где только можно. Стив предпочитал говорить и размышлять о будущем, а не о прошлом, поэтому у нас есть очень мало примеров того, как он оценивал свои успехи и неудачи или признавал извлеченный урок.

Если ввести в поиск на Amazon «Steve Jobs», то вы получите целый ворох книг с однотипными названиями на манер «10 уроков лидерства Стива Джобса», «66 секретов Стива Джобса» или «Рецепты успеха Стива Джобса». На самом же деле таких рецептов нет. Как нет и никаких прописных истин о дизайне или простоте, которые смогут изменить вашу компанию. Вместо них есть рассказ о постоянных изменениях. Эволюцию, в процессе которой был создан iPad, нельзя сравнить с творческим созиданием Apple II. Методы управления Стива командой Apple в 2000‑х не имеют почти ничего общего с методами управления той командой пиратов, которые создали Mac.

Образ Стива во многом отличается от стереотипов, созданных за прошедшие годы. В нем хорошо видны изменения.

В «Стиве» нет «Я»

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

В первые десять лет Apple была расколота внутренними конфликтами, многие из которых были начаты или усилены Стивом. После увольнения ему посчастливилось попасть в Pixar, где благодаря Эду Кэтмаллу была очень развита корпоративная культура. У аниматора, который за многие годы вырос в великого менеджера, было чему поучиться. Эд провел Pixar через множество трудных периодов, которые предшествовали появлению «Истории Игрушек», проложив путь через неудачи с плохими сценариями, недостаточно яркими персонажами и соперничеством с Disney, тогдашним «монополистом» мультипликационной индустрии. И Стив научился.

В 1997‑м, когда Джобс вернулся в Apple, большая часть команды руководителей была новой, включая Джона Рубинштейна, отвечавшего за аппаратные средства, Эви Теваняна, ведавшего программным обеспечением и Тима Кука, пришедшего из Compaq. Стив возложил на них огромные обязательства, но также предоставил много свободы.

Фред Андерсон вспоминает, что Стив почти не вмешивался в финансовые операции: «Это не было его сильной стороной и он знал это». А Рон Джонсон, бывший руководитель розничных продаж Apple, указывает на талант распределения задач Джобса: «Стив был лучшим делегатором, котрого я встречал в жизни».

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

Воскрешение Apple было усилием команды и этот факт упущен в ущерб для всех.

Каждый из членов той ранней команды выполнил свою часть великого дела. Андерсон полностью пересмотрел финансовые потоки компании, Кук построил надежную глобальную систему поставок, Теванян создал операционную систему, а Рубинштейн контролировал начинку Mac, iPod и других продуктов. Потом появился дизайнер по имени Джони Айв, создавший iMac, который стал первым шагом к восстановлению Apple. Об этом же говорит и Билл Гейтс: «Это действительно первоклассная команда, каждый из членов которой очень крут в своем деле».

Стив прислушивался к мнению своих специалистов. После того как он влюбился в видеомонтаж в 1999‑м, Apple создала iMovie, но исполнительное руководство убеждало Джобса, что цифровая музыка будет лучшей ставкой. Он признал их правоту и уже через год были выпущены iTunes и iPod. Потом Стив был против приложений независимых разработчиков на iPhone, но прислушавшись к своей команде, он дал добро на создание App Store, благодаря чему iPhone вошел в историю.

Дюйм за дюймом, день за днем

Стив неизменно представлял нам новые впечатляющие продукты: от Apple II до iPad. Однако процесс создания этих продуктов сильно изменялся в течение его жизни. Из Джобса-революционера он превратился в Джобса-инкременталиста.

В 1991‑м Брент провел с Джобсом и Гейтсом совместное интервью в доме Стива в Пало-Альто, в ходе которого Гейтс утверждал, что инкрементализм — это то, в чем нуждается компьютерная индустрия. Подразумевая своих корпоративных клиентов он сказал так: «Всё, что мне нужно, это автомобиль, на котором можно ездить по существующим улицам. Я нахожусь на этом эволюционном пути». Тогда у Джобса была другая цель, ему нравились трансформации как с Apple II и Mac, что-то подобное он расчитывал сделать и с компьютером NeXT. «Тонкость состоит в том, чтобы сбалансировать постепенные улучшения с периодическими большими шагами», — сказал он. «Время от времени знаменосцу нужен хороший пинок под зад».

Когда Стив вернулся в Apple, он смягчил свой подход. После продажи NeXT в декабре 1996-го он провел месяцы, размышляя над главными проблемами Apple и обдумывая стоит ли ему вообще возвращаться. В сентябре 1997-го, когда он уже принял решение вернуться на полный рабочий день в качестве генерального директора, он осознал всю глубину проблем компании: слишком большая линейка продуктов, упавшие духом сотрудники, низкая цена акций и мизерная доля рынка. Одним, пусть даже самым революционным, продуктом нельзя было вытащить Apple со дна.

Поэтому Стив выбрал стратегию постепенного продвижения шаг за шагом. Он начал кампанию Think Different, направленную на поднятие духа Apple среди сотрудников компании, запустил iMac, который больше был дизайнерсокой уловкой, чем инженерной разработкой. Тогда Фред Андерсон оптимизировал снижение финансовых затрат и нашел более ценные кадры, которые пришли на смену уволенным. Нужно было снова застваить общество положительно воспринимать Apple и быть на слуху.

Ежегодные требования рынка потребительской электроники сделали инкрементализм необходимостью и все же возрастающий технологический прогресс давал потенциал для передовых прорывов. «Я всегда считал, что есть много вещей, которых вы достигаете в конце проекта», — говорил Джони Айв.

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

Снова и снова Apple использовала в новых продуктах знания и опыт, полученные в более ранних проектах. После создания iTunes компания поняла насколько жалкими являются цифровые проигрыватели и создала iPod. Обжегшись с «музыкальным телефоном», который был сделан Motorola, Apple поняла каким должен быть iPhone и то, что его производством нужно заниматься самостоятельно. А опыт iPhone был перенесен на iPad, полностью переосмыслив все сущесвующие устои планшетных компьютеров.

У Джобса был талант «синтезирования», благодаря которому Apple значительно расширила свою производственную линейку. iPod, iPhone, iPad — все эти продукты были новыми версиями устройств, с которыми экспериментировали, но потерпели неудачу другие производители.

Apple — это мировоззрение

После смерти Стива многие задавались вопросом, как Apple сможет оставаться на волне успеха без своего харизматичного лидера. На этот вопрос есть ответ.

В 2008‑м Стив нанял Джоэла Подольны из Йельской школы менеджмента для создания Apple University, образовательной программы для интернов и новых сотрудников компании. Она была создана, чтобы рассказать об истории и корпоративных ценностях Apple.

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

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

— Можете представить себе Стива в качестве главы Microsoft?

— Он был бы ужасен, — рассмеялся Гейтс.

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

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

via

Если нашли ошибку, выделите текст и нажмите Ctrl + Enter

Лучшие предложения

10 пар зимней обуви с хорошими скидками на «чёрной пятнице»

10 пар зимней обуви с хорошими скидками на «чёрной пятнице»

постельное белье

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

Roborock Q5 Pro

Надо брать: робот-пылесос Roborock Q5 Pro со скидкой 76%

Гидравлический домкрат с высоким рейтингом отдают со скидкой 35% на AliExpress

Гидравлический домкрат с высоким рейтингом отдают со скидкой 35% на AliExpress

23 нарядных платья, которые можно надеть на новогодний корпоратив

23 нарядных платья, которые можно надеть на новогодний корпоратив

10 рюкзаков для ноутбука, которые не боятся мокрого снега и дождя

10 рюкзаков для ноутбука, которые не боятся мокрого снега и дождя

5 милых мягких игрушек для тех, кто любит мультфильмы Хаяо Миядзаки

5 милых мягких игрушек для тех, кто любит мультфильмы Хаяо Миядзаки

Самый популярный компрессор от Baseus отдают за полцены

Самый популярный компрессор от Baseus отдают за полцены

Это интересно
ИГРА: Полный бак бонусов

ИГРА: Полный бак бонусов

Коля идёт на смену! Как проходит первый день новичка на складе Ozon 

Коля идёт на смену! Как проходит первый день новичка на складе Ozon 

VK Education запускает кейс-чемпионат для студентов с призовым фондом 1 млн рублей

VK Education запускает кейс-чемпионат для студентов с призовым фондом 1 млн рублей

Экология, инфраструктура и перспективы: 3 причины переехать на север Москвы

Экология, инфраструктура и перспективы: 3 причины переехать на север Москвы

Комментарии
Ярослав Яблоков
19.03.15 08:43
Просто ужасное количество опечаток (ошибок?). Авторы, пожалуйста, перечитайте ВНИМАТЕЛЬНО и исправьте. Содержание мне понравилось, спасибо :)
Андрей Самойлов
19.03.15 19:31
интересное мнение
Что вы могли пропустить
Xiaomi начала обновлять до HyperOS 3 ещё четыре смартфона, включая Redmi 13
Xiaomi начала обновлять до HyperOS 3 ещё четыре смартфона, включая Redmi 13
0
Вчера
Android
Новости
Представлен внешний SSD с кнопкой уничтожения файлов без следа — прямо как в шпионских фильмах
Представлен внешний SSD с кнопкой уничтожения файлов без следа — прямо как в шпионских фильмах
0
Вчера
Новости
Устройства
Испарительная камера рвётся голыми руками: OnePlus 15 проверили на прочность
Испарительная камера рвётся голыми руками: OnePlus 15 проверили на прочность
0
Вчера
Новости
Устройства
Как выбрать хороший увлажнитель воздуха для квартиры и частного дома
Как выбрать хороший увлажнитель воздуха для квартиры и частного дома
0
Вчера
Как выбрать
Ликбез
В «Блокноте» на Windows 11 появилась поддержка таблиц
В «Блокноте» на Windows 11 появилась поддержка таблиц
0
Вчера
Windows
Новости
Huawei увеличит автономность смартфонов Mate 80 до 14 дней
Huawei увеличит автономность смартфонов Mate 80 до 14 дней
0
21 ноября
Новости
Устройства
Бюджетные MacBook, iPhone и iPad выйдут в начале 2026 года
Бюджетные MacBook, iPhone и iPad выйдут в начале 2026 года
0
21 ноября
Новости
Устройства
iPhone 11 и ещё три модели Apple: названы самые популярные смартфоны у россиян
iPhone 11 и ещё три модели Apple: названы самые популярные смартфоны у россиян
0
21 ноября
Новости
Устройства
На Android вышло приложение, открывающее доступ к главным функциям AirPods
На Android вышло приложение, открывающее доступ к главным функциям AirPods
0
21 ноября
Android
Новости
11 удобных приложений для заметок на Android и iOS
11 удобных приложений для заметок на Android и iOS
0
21 ноября
Ликбез
Технологии
ИИ-браузер Comet от Perplexity вышел на Android — с голосовым режимом
ИИ-браузер Comet от Perplexity вышел на Android — с голосовым режимом
0
21 ноября
Android
Браузеры
AirDrop теперь и на Android: смартфоны Pixel 10 научились отправлять и получать файлы с iPhone
AirDrop теперь и на Android: смартфоны Pixel 10 научились отправлять и получать файлы с iPhone
0
21 ноября
Android
Новости
Google представила Nano Banana Pro — улучшенную модель генерации изображений на базе Gemini 3 Pro
Google представила Nano Banana Pro — улучшенную модель генерации изображений на базе Gemini 3 Pro
0
21 ноября
Веб-сервисы
Новости
Представлен игровой планшет OneXPlayer Super X с AMOLED‑дисплеем и встроенной подставкой
Представлен игровой планшет OneXPlayer Super X с AMOLED‑дисплеем и встроенной подставкой
0
20 ноября
Новости
Устройства
В браузере Chrome наконец-то появились вертикальные вкладки
В браузере Chrome наконец-то появились вертикальные вкладки
0
20 ноября
Браузеры
Новости

Новые комментарии

Аватар автора комментария
Horugvi22 минуты назад

0 / 0

Тебе же не помогло...
Падение Икара: астрофотограф запечатлел парашютиста, «подлетевшего» прямо к Солнцу
Аватар автора комментария
D.V.2 часа назад

0 / 0

Про натертую пятку это круто !
Что такое shallowing — секс-тренд, который очень нравится женщинам
Аватар автора комментария
Информатик3 часа назад

0 / 0

на xiaomi 11 не работает. Вкл режим Factory Mode . Чтоб выти из режима нужно все время клавищей выкл жать и чтоб выбрана верхняя стройка была..
Как включить и отключить безопасный режим на Android-смартфоне
Аватар автора комментария
Кирилл Тимонин3 часа назад

0 / 0

22.11.2025 - новая версия скрипта для автоматического удаления постов со стены ВК, учитывающая все изменения алгоритма удаления постов и интерфейса ВК. У скрипта есть удобное меню для управления процессом. Пред запуском скрипта необходимо войти в режим просмотра сообщений стены с выбором по календарю (двойной клик по слову Сообщения). Далее - выбираете год и дату в календаре, с которой начинать удалять сообщения - например 31 декабря 2023 года. Сообщения будут удаляться в прошлое - весь декабрь, ноябрь, октябрь и так далее. В меню скрипта нужно выбрать год - это служит предохранителем от случайного удаления текущих постов этого года. Скорость удаления постов от 0.1 до 3 секунд. Настраивать в зависимости от скорости вашего интернета и мощности компьютера. Для максимально быстрой работы скрипта необходимо в настройках браузера отключить показ картинок и видео. Скрипт успешно тестировался в браузере Хром на любых скоростях. Удаляет без ошибок. var test = false, count = 0, targetYear = 2024, deletePause = 100; var controlElements = {}; // Объект для хранения элементов управления // Функция создания панели управления function createControlPanel() { var panel = document.createElement('div'); panel.style.cssText = ` position: fixed; top: 20px; right: 20px; z-index: 10000; background: rgba(0,0,0,0.8); color: white; border-radius: 10px; padding: 15px; font-family: Arial, sans-serif; min-width: 200px; backdrop-filter: blur(10px); `; var title = document.createElement('div'); title.innerHTML = '🎯 Управление удалением'; title.style.cssText = 'font-weight: bold; margin-bottom: 10px; font-size: 16px;'; panel.appendChild(title); var stats = document.createElement('div'); stats.id = 'controlStats'; stats.innerHTML = `Год: ${targetYear}Удалено: ${count}Пауза: ${deletePause/1000}сек`; stats.style.cssText = 'margin-bottom: 10px; font-size: 12px; line-height: 1.4;'; panel.appendChild(stats); // Кнопка остановки/продолжения controlElements.stopBtn = document.createElement('button'); controlElements.stopBtn.innerHTML = '🛑 Остановить'; controlElements.stopBtn.style.cssText = ` background: #ff4444; color: white; border: none; padding: 8px 12px; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 12px; margin-right: 5px; margin-bottom: 5px; width: 100%; `; controlElements.stopBtn.onclick = function() { if (test) { // Останавливаем скрипт test = false; controlElements.stopBtn.innerHTML = '▶️ Продолжить'; controlElements.stopBtn.style.background = '#44aa44'; console.log('⏸️ Скрипт приостановлен пользователем'); } else { // Продолжаем скрипт test = true; controlElements.stopBtn.innerHTML = '🛑 Остановить'; controlElements.stopBtn.style.background = '#ff4444'; console.log('▶️ Скрипт продолжен пользователем'); // Запускаем процесс снова setTimeout(() => { processPostsContinuously(); }, 100); } updateControlPanel(); }; panel.appendChild(controlElements.stopBtn); // Кнопка перезапуска var restartBtn = document.createElement('button'); restartBtn.innerHTML = '🔄 Перезапустить'; restartBtn.style.cssText = ` background: #44aaff; color: white; border: none; padding: 8px 12px; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 12px; margin-bottom: 5px; width: 100%; `; restartBtn.onclick = function() { test = false; console.log('🔄 Перезапуск скрипта...'); // Сбрасываем кнопку остановки к красному цвету if (controlElements.stopBtn) { controlElements.stopBtn.innerHTML = '🛑 Остановить'; controlElements.stopBtn.style.background = '#ff4444'; } setTimeout(() => { restartWithNewSettings(); }, 500); }; panel.appendChild(restartBtn); // Кнопка быстрых настроек var settingsBtn = document.createElement('button'); settingsBtn.innerHTML = '⚙️ Быстрые настройки'; settingsBtn.style.cssText = ` background: #ffaa00; color: white; border: none; padding: 8px 12px; border-radius: 5px; cursor: pointer; font-weight: bold; font-size: 12px; width: 100%; `; settingsBtn.onclick = function() { quickSettings(); }; panel.appendChild(settingsBtn); document.body.appendChild(panel); return panel; } // Функция сброса кнопки остановки при перезапуске function resetStopButton() { if (controlElements.stopBtn) { controlElements.stopBtn.innerHTML = '🛑 Остановить'; controlElements.stopBtn.style.background = '#ff4444'; } } // Функция обновления панели управления function updateControlPanel() { var stats = document.getElementById('controlStats'); if (stats) { stats.innerHTML = `Год: ${targetYear}Удалено: ${count}Пауза: ${deletePause/1000}секСтатус: ${test ? 'активен' : 'пауза'}`; } } // Функция быстрых настроек function quickSettings() { if (test) { alert('Сначала остановите скрипт для изменения настроек!'); return; } var newPause = parseFloat(prompt('Новая пауза между удалениями (секунды):\n\n0.1-0.3 - Максимальная скорость\n0.5-1.0 - Баланс\n1.5-3.0 - Максимальная надежность', deletePause/1000)); if (!isNaN(newPause) && newPause >= 0.1 && newPause <= 3) { deletePause = newPause * 1000; console.log('⚙️ Пауза изменена: ' + newPause + ' сек.'); updateControlPanel(); } else { alert('Некорректное значение паузы!'); } } // Функция перезапуска с новыми настройками function restartWithNewSettings() { // Сбрасываем счетчик count = 0; // Запрос года для удаления var currentYear = new Date().getFullYear(); var newTargetYear = parseInt(prompt('Введите год, посты за который нужно удалить\n(например: 2024, 2023, 2022)', targetYear)); // Проверка корректности года if (isNaN(newTargetYear) || newTargetYear < 2000 || newTargetYear > currentYear) { alert('Некорректный год! Будет использован предыдущий год: ' + targetYear); } else { targetYear = newTargetYear; } // Настройка паузы между удалениями var pauseInput = parseFloat(prompt('Пауза между удалениями постов (секунды)\n\nРекомендации:\n• 0.1-0.3 - Максимальная скорость (риск ошибок)\n• 0.5-1.0 - Баланс скорости и надежности\n• 1.5-3.0 - Максимальная надежность', deletePause/1000)); // Проверка и ограничение паузы if (isNaN(pauseInput) || pauseInput < 0.1) { pauseInput = 0.1; } else if (pauseInput > 3) { pauseInput = 3; } deletePause = pauseInput * 1000; test = confirm("⚡ НОВЫЕ НАСТРОЙКИ УДАЛЕНИЯ:\n\n• Год: " + targetYear + "\n• Пауза между удалениями: " + pauseInput + " сек." + "\n• Медиа заблокированы: Да\n\nНачать удаление с новыми настройками?"); if (test) { console.log('🔄 ПЕРЕЗАПУСК С НОВЫМИ НАСТРОЙКАМИ'); console.log('🎯 Целевой год: ' + targetYear); console.log('⏱️ Пауза между удалениями: ' + pauseInput + ' сек.'); // Сбрасываем кнопку остановки к красному цвету resetStopButton(); updateControlPanel(); startContinuousDeletion(); } else { updateControlPanel(); } } // Остановка по клавише ESC document.addEventListener('keydown', function(e) { if (e.key === 'Escape' && test) { test = false; if (controlElements.stopBtn) { controlElements.stopBtn.innerHTML = '▶️ Продолжить'; controlElements.stopBtn.style.background = '#44aa44'; } console.log('⏸️ Скрипт приостановлен по клавише ESC'); updateControlPanel(); } }); function disableMediaLoading() { document.querySelectorAll('img, video, iframe').forEach(el => { el.style.display = 'none'; }); const observer = new MutationObserver(mutations => { mutations.forEach(mutation => { mutation.addedNodes.forEach(node => { if (node.nodeType === 1) { if (node.tagName === 'IMG' || node.tagName === 'VIDEO') { node.style.display = 'none'; } node.querySelectorAll?.('img, video').forEach(media => { media.style.display = 'none'; }); } }); }); }); observer.observe(document.body, { childList: true, subtree: true }); console.log('⚡ Медиа заблокированы'); } function itit() { disableMediaLoading(); // Запрос года для удаления var currentYear = new Date().getFullYear(); targetYear = parseInt(prompt('Введите год, посты за который нужно удалить\n(например: 2024, 2023, 2022)', currentYear)); // Проверка корректности года if (isNaN(targetYear) || targetYear < 2000 || targetYear > currentYear) { alert('Некорректный год! Будет использован текущий год: ' + currentYear); targetYear = currentYear; } // Точная настройка паузы между удалениями var pauseInput = parseFloat(prompt('Пауза между удалениями постов (секунды)\n\nРекомендации:\n• 0.1-0.3 - Максимальная скорость (риск ошибок)\n• 0.5-1.0 - Баланс скорости и надежности\n• 1.5-3.0 - Максимальная надежность', '0.5')); // Проверка и ограничение паузы if (isNaN(pauseInput) || pauseInput < 0.1) { pauseInput = 0.1; } else if (pauseInput > 3) { pauseInput = 3; } deletePause = pauseInput * 1000; test = confirm("⚡ НАСТРОЙКИ УДАЛЕНИЯ:\n\n• Год: " + targetYear + "\n• Пауза между удалениями: " + pauseInput + " сек." + "\n• Медиа заблокированы: Да\n\nНачать удаление?"); if (test) { console.log('⚡ ЗАПУСК С НАСТРОЕННЫМИ ПАРАМЕТРАМИ'); console.log('🎯 Целевой год: ' + targetYear); console.log('⏱️ Пауза между удалениями: ' + pauseInput + ' сек.'); createControlPanel(); startContinuousDeletion(); } } function startContinuousDeletion() { console.log('🔄 Начинаем непрерывное удаление...'); updateControlPanel(); processPostsContinuously(); } function processPostsContinuously() { if (!test) { console.log('⏸️ Скрипт на паузе'); return; } console.log(`\n=== ПОИСК ПОСТОВ ЗА ${targetYear} ГОД ===`); var posts = document.querySelectorAll('div._post'); console.log(`📊 На странице: ${posts.length} постов`); if (posts.length === 0) { console.log('📭 Постов не найдено, пытаемся загрузить...'); loadMorePosts().then((success) => { setTimeout(processPostsContinuously, 1000); }); return; } var postsToDelete = []; for (var i = 0; i < posts.length; i++) { var post = posts[i]; var postDate = extractDateFromPost(post); if (postDate && postDate.getFullYear() === targetYear) { postsToDelete.push({ element: post, date: postDate, index: i }); } } console.log(`🎯 Найдено постов за ${targetYear} год: ${postsToDelete.length}`); // Показываем информацию о найденных постах if (postsToDelete.length > 0) { console.log('📅 Даты найденных постов:'); postsToDelete.forEach(post => { console.log(' - ' + post.date.toLocaleDateString()); }); } if (postsToDelete.length > 0) { console.log('🔥 Начинаем удаление...'); deletePostsSequentially(postsToDelete, 0, () => { console.log(`✅ Удаление завершено. Всего удалено: ${count}`); updateControlPanel(); setTimeout(processPostsContinuously, 500); }); } else { console.log('📭 Постов за ' + targetYear + ' год не найдено, загружаем следующую страницу...'); loadMorePosts().then((success) => { setTimeout(processPostsContinuously, 1000); }); } } function loadMorePosts() { return new Promise((resolve) => { console.log('🔍 Поиск пагинации для загрузки следующей страницы...'); // Ищем кнопку "1" в пагинации (первая страница) var paginationButton = findPaginationButton(); if (paginationButton) { console.log('✅ Найдена кнопка пагинации, нажимаем...'); paginationButton.click(); console.log('⏳ Ждем загрузки новой страницы (3 секунды)...'); setTimeout(() => { // Прокручиваем немного для стимуляции загрузки window.scrollTo(0, 100); setTimeout(() => { console.log('✅ Новая страница загружена'); resolve(true); }, 1000); }, 3000); } else { console.log('❌ Кнопка пагинации не найдена, пробуем альтернативные методы...'); // Альтернативные методы загрузки var alternativeButtons = [ document.querySelector('#fw_load_more.pg_more_link'), document.querySelector('#wall_more_link'), document.querySelector('.wall_more_link'), document.querySelector('.pg_more_link'), findElementByText('к предыдущим постам') ]; var foundButton = alternativeButtons.find(btn => btn !== null); if (foundButton) { console.log('✅ Найдена альтернативная кнопка, нажимаем...'); foundButton.click(); console.log('⏳ Ждем загрузки постов (4 секунды)...'); setTimeout(() => { console.log('✅ Посты загружены через альтернативную кнопку'); resolve(true); }, 4000); } else { console.log('❌ Ни одна кнопка не найдена, используем прокрутку...'); var oldCount = document.querySelectorAll('div._post').length; window.scrollTo(0, 0); setTimeout(() => { window.scrollTo(0, document.body.scrollHeight); console.log('⏳ Ждем загрузки постов после прокрутки (5 секунд)...'); setTimeout(() => { var newCount = document.querySelectorAll('div._post').length; if (newCount > oldCount) { console.log(`✅ Загружено ${newCount - oldCount} постов через прокрутку`); resolve(true); } else { console.log('❌ Не удалось загрузить новые посты через прокрутку'); resolve(false); } }, 5000); }, 1000); } } }); } // Функция поиска кнопки пагинации "1" function findPaginationButton() { // Ищем все элементы пагинации var paginationContainers = [ document.querySelector('.pagination_page'), document.querySelector('.pagination_pages'), document.querySelector('.page_list'), document.querySelector('.pagination_list'), document.querySelector('[data-module="uiPagination"]'), document.querySelector('.ui_pagination') ]; // Ищем в контейнерах пагинации for (var container of paginationContainers) { if (container) { // Ищем кнопку с цифрой "1" var button = container.querySelector('a[href*="offset=0"], a[href*="page=1"], .pagination_page:first-child, .page:first-child'); if (button) return button; // Ищем по тексту "1" var buttons = container.querySelectorAll('a, span, .page, .pagination_page'); for (var btn of buttons) { if (btn.textContent && btn.textContent.trim() === '1') { return btn; } } } } // Ищем по всему документу ссылки с offset=0 var offsetLinks = document.querySelectorAll('a[href*="offset=0"]'); for (var link of offsetLinks) { if (link.textContent && link.textContent.trim() === '1') { return link; } } // Ищем любую кнопку с цифрой "1" в вероятных контейнерах пагинации var allButtons = document.querySelectorAll('a, span, .page, .pagination_page, .ui_pagination a'); for (var btn of allButtons) { if (btn.textContent && btn.textContent.trim() === '1' && (btn.href && btn.href.includes('wall') || btn.parentElement && btn.parentElement.className.includes('pagination'))) { return btn; } } return null; } function findElementByText(text) { var elements = document.querySelectorAll('a, span, div, button'); for (var i = 0; i < elements.length; i++) { var element = elements[i]; var elementText = element.textContent || element.innerText; if (elementText && elementText.trim() === text) { return element; } } return null; } function extractDateFromPost(postElement) { try { var dateElement = postElement.querySelector('.PostDateBlock__root'); if (dateElement) { var dateText = dateElement.textContent || dateElement.innerText; if (dateText) { return parseDateFromText(dateText); } } var likeWrap = postElement.querySelector('.like_wrap'); if (likeWrap) { var likeText = likeWrap.textContent || likeWrap.innerText; if (likeText) { return parseDateFromText(likeText); } } } catch (e) { return null; } return null; } function parseDateFromText(text) { if (!text) return null; text = text.replace(/\s+/g, ' ').trim(); var datePatterns = [ /(\d{1,2})\s+(янв|фев|мар|апр|май|июн|июл|авг|сен|окт|ноя|дек)\s+(\d{4})/i, /(\d{1,2})\s+(января|февраля|марта|апреля|мая|июня|июля|августа|сентября|октября|ноября|декабря)\s+(\d{4})/i ]; for (var pattern of datePatterns) { var match = text.match(pattern); if (match) { var day = parseInt(match[1]); var monthStr = match[2].toLowerCase(); var year = parseInt(match[3]); var months = { 'янв': 0, 'января': 0, 'фев': 1, 'февраля': 1, 'мар': 2, 'марта': 2, 'апр': 3, 'апреля': 3, 'май': 4, 'мая': 4, 'июн': 5, 'июня': 5, 'июл': 6, 'июля': 6, 'авг': 7, 'августа': 7, 'сен': 8, 'сентября': 8, 'окт': 9, 'октября': 9, 'ноя': 10, 'ноября': 10, 'дек': 11, 'декабря': 11 }; var month = months[monthStr]; if (month !== undefined) { return new Date(year, month, day); } } } return null; } function deletePostsSequentially(posts, currentIndex, callback) { if (currentIndex >= posts.length || test === false) { callback(); return; } var post = posts[currentIndex]; deleteSinglePost(post.element).then(() => { count++; console.log(`✅ Удален пост ${currentIndex + 1}/${posts.length}. Всего: ${count}`); // Используем настроенную пользователем паузу console.log(`⏱️ Ждем ${deletePause/1000} сек. перед следующим удалением...`); setTimeout(() => { deletePostsSequentially(posts, currentIndex + 1, callback); }, deletePause); }).catch((error) => { console.error('❌ Ошибка:', error); // При ошибке используем стандартную паузу 100мс setTimeout(() => { deletePostsSequentially(posts, currentIndex + 1, callback); }, 100); }); } function deleteSinglePost(postElement) { return new Promise((resolve, reject) => { try { var menuButton = postElement.querySelector('[data-testid="post_context_menu_toggle"]'); if (!menuButton) { reject('Кнопка меню не найдена'); return; } menuButton.click(); setTimeout(() => { var deleteButton = document.querySelector('[data-testid="post_context_menu_item_delete"]'); if (!deleteButton) { reject('Кнопка удаления не найдена'); return; } deleteButton.click(); setTimeout(() => { var confirmButton = document.querySelector('.vkuiButton--mode-primary'); if (confirmButton) { confirmButton.click(); } postElement.remove(); resolve(); }, 200); }, 200); } catch (error) { reject(error); } }); } function showFinalStats() { var message = `🎉 УДАЛЕНИЕ ЗАВЕРШЕНО!\n\n• Год: ${targetYear}\n• Удалено постов: ${count}\n• Пауза между удалениями: ${deletePause/1000} сек.`; alert(message); console.log(message); updateControlPanel(); } // Запускаем скрипт itit(); // КОМАНДЫ ДЛЯ УПРАВЛЕНИЯ: // - test = false // Остановить скрипт // - restartWithNewSettings() // Перезапуск с новыми настройками // - quickSettings() // Быстрые настройки паузы // - resetStopButton() // Сброс кнопки остановки
Как быстро удалить записи со стены «ВКонтакте»
Задача — дойти до школы самому: как подготовить ребёнка и убедиться, что всё будет в порядке&nbsp;

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

Лайфхакер
Информация
О проектеРубрикиРекламаРедакцияВакансииДля начинающих авторовО компании
Подписка
TelegramВКонтактеTwitterViberYouTubeИнициалRSS
Правила
Пользовательское соглашениеПолитика обработки персональных данныхПравила применения рекомендательных технологийПравила сообществаСогласие на обработку персональных данныхСогласие для рекламных рассылокСогласие для информационной программы
18+Копирование материалов запрещено.
Издание может получать комиссию от покупки товаров, представленных в публикациях