Появилась фобия...
Работаю it-шником восем лет
появилась фобия при общении с пользователем...
Просить его нажать кнопку "Пуск" на клавиатуре...
Работаю it-шником восем лет
появилась фобия при общении с пользователем...
Просить его нажать кнопку "Пуск" на клавиатуре...
Джей быстро поднимался по плохо освещённой лестнице, тяжело дыша. Бёдра и икры горели адским пламенем, давно повреждённое колено снова напомнило о себе и начало ныть тупой болью. Оставалось около трёх этажей, шесть пролётов. Бежать приходилось почти беззвучно, и это даже удавалось, а вот с дыханием были проблемы. Горло уже саднило и хотелось сплюнуть горькие слюни с привкусом крови. Слегка искривлённая носовая перегородка предательски громко сопела, казалось, на все девяносто девять этажей здания.
За дверьми на этажах иногда раздавались резкие звуки, преследователи наступали на пятки. Последние два пролёта пришлось пройти практически на руках, опираясь на перила. Джей с замиранием сердца приложил палец к замку. Сработало! Зелёный огонёк, звук открывшегося засова внутри двери. Джей протиснулся за армированную сталь, навалился обратно, аккуратно закрыл до щелчка, стараясь шуметь как можно меньше.
В прохладном помещении тихо гудела вентиляция, тёмные стойки серверов уходили вереницей вдаль. Джей знал что теперь у него есть двадцать пять минут, прежде чем система опознает посторонний биологический загрязнитель в комнате с серверами. Он вытянул небольшой ноутбук из кармана на спине, подошёл к ближайшей стойке, воткнул провод в разъём и сполз по стене, пытаясь отдышаться. По центру экрана появилось загрузочное окно “Вход в систему...”. Вот-вот Джей получит ответы на все вопросы.
Офис крупной мегакорпорации Аксис стоял высоким блестящим небоскрёбом на окраине Лондона. Изящный треугольник, расширяющийся к основанию, был развёрнут как парус на восток, в центре здания зиял идеально круглый вырез. У его подножья расположилось множество треугольных зданий пониже, словно бы сложенные друг на друга, они составляли на первый взгляд безобразную несимметричную фигуру, но, будучи расставленными правилу золотого сечения, на самом деле всего лишь завершали композицию, издалека напоминая собой цветущую лилию.
Аксис занимались всем: когда-то давно они начали с небольшого поисковика в сети Интернет, со временем разрослись на продаже рекламы, затем почта, сопутствующие сервисы, и вот на вершине IT мира планеты стоит новый гигант отрасли. Впрочем, на вершине во всех смыслах - башня Aether является самым высоким зданием в Европе, не говоря уже о том, что главный офис компании находится на нулевом меридиане.
За дверью крыла здания с многословным названием Data Science в одной из переговорных комнат сидели двое — руководитель команды поддержки рекомендательной системы Аксис по имени Джей Тайгер и проекция начальника из отдела кадров. Джей неохотно выслушивал речь о профнепригодности и последующем сложении полномочий в пользу более перспективного сотрудника. HR вяло рассказывал, над чем Джею ещё стоит поработать и предлагал дальнейшие варианты его пути в компании, или даже долгосрочную отставку с поощрительным пособием, как самому эффективному сотруднику компании пару лет назад. Джей же в это время прекрасно понимал, что отдел кадров и понятия не имеет о чём говорит, всё равно его вытуривает с должности его же собственная рекомендательная система.
Алгоритмы слишком хорошо учатся. Когда-то они были нужны для показа более эффективной рекламы, но со временем нейросети проникли во все сферы. Сейчас рекомендательная система Аксиса работает даже в микроволновке и в шкафчике, где робот-уборщик хранит моющие средства. Она рекомендует, какую приправу сегодня подать к курице, чтобы восполнить запас минералов. Она посоветует, какую статью прочесть, чтобы успокоить накопленный за день стресс, и какой режим массажа выбрать в ванной, чтобы улучшить приток крови к миндалевидному телу. Если вам не будет хватать окситоцина, она подскажет, с какой девушкой вы можете познакомиться, уже зная, где она будет сегодня в удобное время и на таком расстоянии, чтобы выполнить дневную норму шагов. Маршрут будет построен таким образом, чтобы пройти мимо магазина с нужной приправой, где она, конечно, будет в наличии. И сейчас эта система говорит, что Джей выгорел. Мол, у него нервы, ему пора отдохнуть. Отстой. Маловероятно, что она могла ошибиться, но Джей не мог и не хотел с этим соглашаться, только не сейчас.
Он только недавно сменил место жилья на более дорогое, предварительно сделав капитальный ремонт. Долг перед застройщиком гасился через банк, где у него была неплохая репутация, но недавно филиал был выкуплен другой мегакорпорацией, и теперь часть кредитующихся клиентов оказалась в подвешенном состоянии. А всего несколько недель назад Джей болезненно расстался с женщиной, с которой он счастливо прожил почти десять лет. Так что нет, смена работы ему была сейчас совсем не кстати, не для его расшатанных нервов.
Джей кивнул руководителю HR, дав понять, что уловил суть разговора, поднялся и вышел в коридор. Переговорная опустела и стёкла снова стали прозрачными, включилась дезинфекция. Джей пошёл к рабочему месту. Кольцо одобряюще завибрировало, на линзу вывелось сообщение о том, что сделана половина дневной нормы нагрузки на ноги.
На рабочем месте он авторизовался, открыл окно с внутренней сетью. Администраторский доступ к системе давал возможность контролировать работу нейросети на подопытной и контрольных группах, запускать A/B тестирование разных подсистем, смотреть показатели аватаров, смотреть к каким решениям приводят те или иные действия. Здесь же можно было “очеловечивать” рекомендации, подключать словари, настраивать лексемы, и, наконец, вручную менять веса и сдвиги нейронов. На доске разработки двигались задачи, подчинённые чинили баги и плодили новые, писали синтетические тесты и просили продлить время задач, всё как всегда.
Сейчас Джею как никогда было интересно, что же такого могла сказать о нём система, раскатанная на "боевых" серверах, работающих на массового потребителя. Естественно, ни к личной анкете, ни к банку данных в виде многомерных OLAP-кубов доступа у него не было, так что даже просто прогнать RC версию нейросети на своём слепке он физически не мог. Или?..
Опять заболело запястье. “Никаких неврологических нарушений. Психосоматика”, — говорил ему доктор. “Вам бы комплексное обследование пройти, работа у вас сопряжена со стрессом”. Сейчас, безусловно, оно заныло от опасной затеи, которая возникла в голове Джея. И мысли эти ему не нравились. Кольцо завибрировало. Пульс подскочил, надпочечники снова принялись за выработку кортизола. Джей знал, что сейчас в HR улетит новый отчёт о стрессе на рабочем месте. Зараза. Он поднялся чтобы пройтись до диспенсера в другом конце комнаты.
Офис переехал в Aether не так давно, но будучи уже вовлечённым в процесс, Джей также прекрасно знал, что один из облачных датацентров сейчас стоит под крышей здания и используется в качестве офисной реплики всей базы данных. Обычно это делается для того, чтобы доверенные сотрудники и дата-сайентисты компании не смогли случайно излишне тяжёлым запросом уронить реальную "боевую" базу данных. Каждый такой датацентр был доступен только по защищённому отдельно проложенному туннелю до рабочих станций со специальным сканером для аутентификации и авторизации сотрудника.
Подделать такой доступ практически невозможно, о социальной инженерии не могло быть и речи. Другое дело, что в самих физических носителях серверов имеются все необходимые интерфейсы, достаточно подсоединить рабочий ноут в рабочий разъём. Можно даже включить выделенный шифрованный VPN до домашнего компьютера, и… Идея показалась перспективной и пытливый программистский мозг взялся прорабатывать варианты.
Стеклянные двери в опенспейс беззвучно раздвинулись, и в помещение вошли три сотрудника охраны. Они, не задумываясь, направились к рабочему месту Джея. Сам Джей невольно замер, стараясь слиться со стеной, у которой стоял. Только один из них был сотрудником охраны бизнес центра, двое других были "вайперами" — сотрудниками компании Viper. Насколько Джей знал, они занимались подавлением террористических угроз на уровне, связанном с применением компьютерных технологий и с коммуникациями через всемирную сеть. Встреча с ними точно не сулила ничего хорошего. Сначала отставка, а сейчас что, мегакорпорация готовит против него обвинение?
Медлить было нельзя — он аккуратно поставил стакан с водой на диспенсер и максимально непринуждённо, но быстро вышел из отдела. За дверьми он направился к выходу из крыла и лифтам. На ресепшене сидели секретари и внимательно что-то прокликивали в своих мониторах. Чёрт. Джей остановился, и, подумав, свернул на пожарную лестницу. Она запиралась только изнутри крыла, и сейчас там как обычно висела связка ключей. Он аккуратно проскользнул в проём, на миг ему пришла в голову светлая мысль — он забрал ключи и запер дверь со стороны лестничной площадки “B”.
Так. Так. Пятьдесят первый этаж, не ахти бежать. Если что, всегда можно притвориться что поплохело и отпроситься домой. С другой стороны, этажом выше находится подсобка, где у Джея как раз находилась часть личных вещей, которые роботы-уборщики иногда утаскивали с рабочего места. Немного корпоративной техники сейчас бы пригодилось.
Он быстро поднялся, приложил кольцо к замку, прошёл в крыло. Здесь не было офисов, сплошь утилитарные комнаты, предназначенные для роботов и большинства разводок вентиляции, водопровода, интернета и электричества. По этой же причине вопреки лоску, идеальной чистоте и ярким цветастым стенам этажом ниже, здесь было довольно холодно и темно, воздух был сухой. Подсобка нашлась быстро, там и жёлтый ящик. Старая фотография первого офиса, кольца и браслеты старых версий, цифровые ключи от каких-то проектов, накопители, портативный ноутбук, две антистресс игрушки и множество новых полиэтиленовых пакетов от разной серверной периферии. С какой стати роботы решили что это мусор ему принадлежит? Джей распихал предметы по карманам, ноутбук засунул в карман на спине, ворох полиэтилена скинул в какое-то ведро.
Кольцо настойчиво завибрировало и засветилось зелёным. Входящий звонок. Джей прищурился и активировал линзу, не принимая вызов. На левый глаз вывелось изображение неизвестного номера, видеосвязи не было. Затем звонок прекратился и на экран вывелось сообщение. “Джей Тайгер, руководство Аксиса в лице генерального директора Эндрю С. просит вас выйти на связь или появиться на рабочем месте в ближайшее время. Вопрос очень срочный”.
От таких сообщений холодеет спина и начинает сосать под ложечкой. Прямое обращение от генерального директора следом за отрядом вайперов? Одно из двух: или корпорация или он серьёзно влипли. Пойти или нет? С этими мыслями Джей приблизился к двери, вышел на пустую лестничную площадку и облокотился на перила, взяв голову в руки. Подумав, перевёл все мессенджеры и звонки в режим “Не беспокоить”. Так он простоял минут десять, решаясь, вернуться ли в крыло или спуститься на первый этаж грузовым лифтом, вызвав его откуда-нибудь сверху?
Бах. Дверь этажом ниже просто попытались открыть, но в тишине удар прозвучал как набат. Джей вздрогнул. За дверью раздались мужские голоса и ещё несколько несильных ударов. Затем неприятно захрустел металлический замок. Джей сглотнул и инстинктивно начал быстро подниматься вверх по ступенькам, смотря вниз. Он быстро сообразил, что на шестьдесят третьем этаже есть отдел юристов, где он в целом неплохо общался с Фаей. Фая может помочь, она добрая, она прикроет… С этой мыслью он ускорился, поднимаясь всё выше.
Синтетическая рубашка совершенно не дышала, воротник начал натирать шею, пришлось расстегнуть верх. Десять этажей стоили ему пяти минут времени, когда далеко внизу что-то громыхнуло. Джей не рискнул смотреть в пролёт между перилами, но отчётливо услышал пару слов. Французский? Что, чёрт возьми, происходит? GIGN? Спецназ Франции? Это что, тревога международного уровня?
Шестьдесят один, шестьдесят два… ещё два пролёта. Джей устало вскочил на последнюю ступеньку и почти упал на белую дверь. Замок опасно помедлил, но всё же пикнул под кольцом и впустил беглеца внутрь. На этом этаже располагался открытый опенспейс в бело-фиолетовых тонах. Джей растерянно оглядывался по сторонам, пытаясь заметить хоть какое-нибудь движение, но ничего не было, кроме робота, поливающего цветы на столах обеденных зон. Непонятно…
Система распознала присутствие человека и включился погодный контроль. Матовые стёкла окон растаяли и стали прозрачными, залив этаж ярко-оранжевым светом. Где-то вдалеке садилось солнце, стеля лучи над смогом вечернего Лондона.
На освещённых белыми холодными лампами участках стояли какие-то нетронутые коробки с бумажной и многоразовой корреспонденцией, видимо, сложенные уже на завтра. “Чёрт с ним”, — подумал Джей, — “Дойду до ближайшей шахты лифта, а там посмотрим”. Он неловко, словно опасаясь чьего-то взгляда, просновал мимо незнакомых столов и компьютеров. Когда он уже был совсем рядом с грузовым лифтом, вдруг раздался звук сирены. От испуга Джей упал на одно колено, зачем-то прикрыв голову. Динамики тут были что надо, чтобы докричаться до любого сотрудника в самых звуконепроницаемых наушниках. Сирена повыла с десять бесконечно долгих секунд и так же резко замолкла. Джей поднялся и быстро ударил по кнопке вызова лифта. “С коленом это я зря так, как бы не сказался давний ушиб”.
Томительное ожидание лифта затягивалось. В нетерпении он нажал на кнопку ещё несколько раз, даже попробовал голосовую команду, пока, наконец, не заметил ошибку на небольшом экране у кнопки: “Активирован протокол безопасности A127. Только авторизованный персонал может пользоваться лифтом. Просим вас сохранять спокойствие и ожидать помощи на месте”.
Грязно выругавшись, Джей пнул пустую коробку. Бред. Что теперь? Так. Так. Спросим самое очевидное.
— Аксис, что за протокол безопасности A127?
Приятный женский голос ответил из крохотной серьги в ухе:
— Протокол A127 башни Айзер предписывает установление максимального режима защиты VIP лица, а также автоматическое оцепление периметра.
— Кому угрожает опасность, Аксис?
— Неавторизованный доступ, отказано. Обратитесь к администратору.
— Аксис, отменить протокол A127!
— Неавтори-
— Замолчи, — Джей устало выдохнул, озираясь по сторонам. Самым тёмным местом на залитом солнцем этаже был вход на лестничную площадку “A”. Джей не обрадовался доступным вариантам, но делать было нечего, пришлось направиться туда.
Кабинеты топ-менеджеров находятся на двадцать восьмом этаже. Конечно, самые пафосные и красивые переговорные комнаты класса люкс находились на девяностых этажах, но работать и жить там целый день было некомфортно. Значит, в теории можно подняться на девяносто восьмой и спуститься в подземные этажи техническим лифтом для системных администраторов. План почти был нарисован, когда в противоположном конце зала распахнулась дверь.
— Вижу его! СТОЙ, это приказ! — проревел голос сквозь защитное стекло шлема, Джей лишь краем глаза успел заметить вскинутый в его сторону автомат. Он инстинктивно упал на пол, однако выстрелов не последовало. Где-то там раздался звук множества шагов и падающей мебели. Джей быстро пополз в направлении лифта, нещадно стирая локти о грубый ковролин. Что-то произошло, окна вновь перешли в режим блэкаута, оранжевая весь исчезла, уступив место темноте и редким островкам белого света. До двери на лестницу “А” оставались считанные пять метров, Джей подскочил и пополз на четвереньках, боясь оглянуться и в каждый момент ожидая выстрела или удара. Но ничего не последовало, вместо этого дверь пикнула зелёным светом и приветливо открылась сама. Уже когда Джей проскользнул на холодный керамогранит и тяжёлая дверь почти закрылась, в паре метров от неё раздался грохот, крик и два громких как самолёт выстрела.
Первая пуля высекла сноп искр из плитки, пройдя в полуметре от лежащего на полу Джея, вторая звонко задела торец двери и неприятным свистящим звуком сделала несколько рикошетов от стальных перил.
А затем настала гулкая тишина и кромешная тьма. Дрожа от ужаса, Джей перевернулся на полу, ощупывая себя одеревенелыми пальцами. В темноте было непонятно, кровь ли на нём или пот, поэтому он попытался встать, стараясь перестроить глаза на темноту после ярких белых пятен.
Словно помогая мыслям беглеца, над дверью ярко загорелся жёлтый дисплей. “Эвакуация” — твердила табличка большими мигающими белыми буквами. Джей наконец бегло осмотрел себя при свете, не найдя никаких повреждений, не считая пары пятен крови на локтях.
Медлить совсем не хотелось, Джей решил следовать плану побега, поэтому продолжил подниматься вверх по лестнице, стараясь не шуметь. Каждые три этажа в стене должно быть небольшое техническое окно, но похоже лестница “А” сильно отличалась от остальных в здании. Джей насчитал уже десять подъёмов, когда наконец в самом углу одной из площадок попалось крохотное окно, почти на уровне пола. Оранжевый свет, задевающий стекло пыльного окошка тускло вырисовывал ступеньки и такую же утяжелённую стальную дверь, как та, которая спасла Джея. Если подумать, похоже на этой лестнице все двери были такими. Что это за место? Снаружи ничего видно не было, только крохотный кусочек неба.
Минута покоя прервалась небольшой вспышкой откуда-то далеко снизу. Джей ещё ничего не успел понять, когда из середины площадки вырвался оглушительный грохот, до боли осязаемо хлопнувший по обеим барабанным перепонкам. Следом прошлась ударная волна, встрепенув мокрые волосы, затем пол площадки завибрировал, но совсем ненадолго. Пыли не было, но глаза застелила сильная головная боль. Джей на миг закрыл их руками, а когда открыл, то ужаснулся. В расстоянии около сорока метров от окошка в воздухе медленно плыл вооружённый до зубов военный вертолёт. Как мог, Джей отскочил в сторону, молясь чтобы его не видели. И теперь он заметил как гудят и дрожат перила, как пока ещё тихий звук десятков шагов быстро поднимается откуда-то снизу. Кровь ритмично застучала в висках, задевая и без того болящие перепонки. Бежать. Прямо сейчас, или смерть. Джей ощутил это каждой клеточкой тела.
Поначалу казалось что силы возросли четырёхкратно, но когда Джей преодолел девяносто пятый этаж, организм чётко сказал “хватит”. Ноги подгибались сами по себе, каждое движение тяжело давалось не только физически, но и морально. И вот, он за дверью серверной. Время есть, сил нет. Ноутбук в компьютере. Джей закрыл ламерский убогий интерфейс, обнажив чёрную консоль. Авторизация — успех. Джей не поверил своему везению, но продолжил погружаться в файловую систему. Быстро изучил дерево, список контейнеров, список сервисов и системных утилит. Не все программы известны, но есть над чем поколдовать…
Привычными командами Джей посетил несколько виртуальных машин. На разных подсистемах были запущены разные сервисные программы, некоторые были скриптовыми однодневками, некоторые висели в рантайме уже по нескольку лет. В некоторых гостевых ОС была развёрнута дополнительная кластеризация с новым набором контейнеров. Довольно странно, зачем тратить такие ресурсы на многоуровневую виртуализацию, не проще было бы проводить вычисления на основной ОС?
У Джея были права на управление практически всеми процессами, кроме системных. Прежде чем он найдёт базу данных, ему стало интересно, из-под какого пользователя работает основная часть программ?
Выведя подробный список процессов основной системы, он не поверил своим глазам. Почти все программы были запущены из-под пользователя j_tiger_255, его собственного корпоративного идентификатора. Что?!
Джей быстро вернулся в основную ОС, проверил список процессов, ища что-нибудь, связанное с обслуживанием небоскрёба. Процесс aether_alerting являлся дочерним процессом всей программы безопасности. Джей перешёл в его рабочую директорию, попытался перехватить вывод программы.
“Протокол A127, защита VIP лица, пользователь j_tiger_255. Локация: server_room_99_x0”.
Система защищает его самого? Не веря глазам, Джей перезапустил процесс несколько раз. Программа продолжала выводить на экран отладочный журнал в режиме реального времени, выводя всё новые сообщения о перемещении потенциальных нарушителей порядка.
Джей понял что губы давно пересохли. Пытаясь совладать с голосом, он сипло произнёс:
— Аксис, кто я?
— Джей Тайгер, код #255, должность: упразднена, — отчеканил приятный женский голос.
— Аксис, кто запустил процесс aether_alerting?
— Джей Тайлер, код…
— Стоп. Аксис, когда?
— Двадцать восьмого августа две тысячи сорокового года, год и шесть месяцев назад.
Сомнения в реальности происходящего окончательно навалились на Джея. Он просто продолжил задавать вопросы.
— Аксис… опиши родительский процесс?
— Виртуальная машина Человек Ноль, версия Аквила Пять, кандидат в релизы. Запущен четыре неполных года назад, аватар j_tiger_255, максимальный режим синхронизации.
То, что здание работает на передовой нейросети, имитирующий работу человеческого мозга, было неудивительно. Но бесперебойная работа длиной в четыре года? На его собственном слепке мозга, переведённом в цифру?! Всё здание и корпоративные сети работают на его нейронах, памяти и аналитических способностях?
Ладно. Допустим, Джей. Это объясняет почему ты авторизован сюда. Но не… Стоп, теперь вспомнились пакеты из-под оборудования в подсобке. Большой Джей решил самостоятельно заказать себе немного апгрейдов?
Эта мысль здорово разозлила измождённого, слабого и израненного человека, лежащего в углу комнаты. Бездушный виртуальный Джей окружил тщетную физическую оболочку бездушными молчаливыми рабочими станциями. Не говоря о том, что это нарушение всех прав человека на свете, и сокрытие деталей настолько сильного технологического прорыва как аптайм нейросети длительностью в четыре года, как можно было сохранить столь важную тайну от самого Джея? Как давно за ним следили? Почему выбрали его? Аксис сейчас ответит ему на все вопросы...
Джей пошатываясь встал, оставил ноутбук на полу, не преминув слегка пнуть его напоследок. Теперь ему не было необходимости говорить с системой через консоль. Да, Аксис?
Хотелось бы чтобы система имела какое-нибудь воплощение. Цифровое лицо, глаза на экране, или хотя бы главный компьютер, зловеще поблескивающий красными огоньками, но нет. Его цифровой мозг сейчас находился одновременно на всех пятьсот двенадцати невзрачных серверах, стоящим по всей комнате ровными рядами. Они тихо гудят кулерами и насосами, проталкивающими охлаждающую жидкость. Вывод из строя одного сервера никак не отразится на всей системе, да даже если за раз выключить половину. Не говоря уже об огромных датацентрах компании Аксис, стоящих под толщей воды в океанах.
Джей просто прихрамывая пошёл в другой конец зала мимо стоек. В голове вертелся ворох вопросов, хотелось узнать ответы на каждый, но одновременно не хотелось больше ничего. В конце пути сквозь плексиглас освещалась солнцем небольшая техническая терраса с ржавыми перилами. Джей бесцельно подошёл к толстой двери наружу, та самостоятельно пикнула и открылась внутрь крохотного коридора. Едва Джей оказался внутри, двери поменялись ролями, и коридор заполнился ледяным воздухом и буйным ветром снаружи.
Джей вышел на крохотную террасу и взялся руками за холодные перила. Далеко внизу в багровой мгле засыпал Лондон. Лёгкие розовые облака плыли перед глазами, но вблизи просто превращались в едва заметный туман.
Пальцы почти сразу занемели, затмив чувство саднящих и разбитых в кровь костяшек. Ветер выдувал влагу из глаз, делая им больно, но через несколько морганий ей уступили место слёзы. Чего достиг он, как личность? И чего достиг виртуальный Джей, выпущенный в безграничный мир возможностей интернета?
На холоде под порывистым ветром он чувствовал, что он по-настоящему живой. Живой, каким давно не был. Это был его выбор, а не рекомендация многомерной нейросети, которую, в создании которой он принимал куда большее участие, чем мог себе представить. И сейчас Джею предстояло сделать ещё один выбор. Возможно, самый определяющий выбор в жизни.
За толстым слоем органического стекла стояла дюжина спецназовцев. Дверь отказывалась открываться ни под каким предлогом. Все держали Джея на прицеле, хотя это было и бесполезно, армированный плексиглас последних этажей не берётся пулями такого смешного калибра. Да и ветер, нещадно сдувавший всё тепло с задумчивого Джея, сейчас справлялся куда лучше пуль.
Конец.
________________________________________
Продолжение рассказа Человек Ноль.
Часто бывает ситуация, когда из-за применения новых настроек на домашнем роутере или банального перезапуска, приходится лезть на площадку noip.com и менять ручками IP адрес. А если вы за 200 или более километров и у вас нет возможности узнать адрес? Вот и у меня, был (слава богу и есть), дистанционный узнаватель IP адреса - отец, но он бывает и в отпуск может уехать, иль же быть на работе, а обновить адрес нужно здесь и сейчас.
Да, вы скажете что на маршрутизаторах есть такая функция для бесплатных доменов и будете правы, но увы - либо маршрутизатор может быть старый, либо не работает эта функция или же только в одной доменной зоне работает. Короче много нюансов, а нам же хочется что бы было всё как у людей.
Пример того, как это сделано не в стоковой прошивке d-link dir320. Поверьте весьма не богатый и не гибкий способ настройки (я люблю зону отличную от ddns.net). Обновляется что в оригинальной прошивке, что в не оригинальной через зад, про остальные роутеры типа томсон я вообще молчу, тут хоть работает :).
Так вот, сервис на самом деле не плохой и предоставляет превосходный api (дёргай хоть через get или через post - работает, что хорошо для применения в разнообразных ситуациях и сценариях), а значит можно использовать как на обычном пк, так и на сервере. В данном случае он применяется в сервере с debian на борту, и работает как запасной вариант (на всякий случай, так как про другой, более крутой скрипт я напишу чуть позже, если зайдёт данный материал).
Кому интересно, могут ознакомиться с api сервиса noip тут https://www.noip.com/integrate/request
Пишем скрипт:
import re, urllib
if __name__ == "__main__":
web_page = urllib.urlopen("https://2ip.ru")
web_page = web_page.read()
ip = re.findall("(\d+\.\d+\.\d+\.\d+)", web_page)[0]
username = 'ВАШ Э-МАЙЛ'
password = 'ВАШ ПАРОЛЬ ОТ СЕРВИСА'
host = 'ВАШ ХОСТ, ПО ТИПУ ЭТОГО blog.bounceme.net'
update = urllib.urlopen("https://"+str(username)+":"+str(password)+
"@dynupdate.no-ip.com/nic/update?hostname="+str(host)+"&myip="+ ip)
res = update.read()
if re.match("(good)|(nochg)", res):
print 'ok'
else:
print 'error\n' + res
Что делает скрипт?
Думаю особо пояснять тут смысла нет, если в общих чертах, то он заходит на всем наверное известный 2ip, парсит оттуда ваш ip адрес, запоминает его и далее использует в переменной, в api сервиса noip. При успешной отработке скрипта, адрес в сервисе меняется, а вы в терминале получаете сообщение "ок", в противном случае будет напечатано сообщение о ошибке.
сохраняем в файл noip.py и запускаем python noip.py
Результат:
Запихиваем в крон и радуемся :)
Товарищи программисты, админы и им сочувствующие, поздравляю всех нас со скромным праздником - Днем рождения Powershell. :-)
14 ноября 2006 года, была выпущена финальная версия (Release to Web, RTW) Powershell. Эта версия была выпущена для Windows XP SP2, для Windows Vista, финальная версия Powershell была выпущена 30 января 2007 года.
Конечно, до этого были предрелизные версии (Release Candidate), был проект Monad, который являлся предшественником Powershell. Непосредственно Powershell, его финальная версия, был выпущен именно 14 ноября 2006 года.
Я с самого начала не очень позитивно воспринял появление Powershell - мне он казался просто немного расширенной версией командной строки, не дающий особых преимуществ по сравнению с последней - тогда мне вполне хватало CND, VBS, Autoit и т.д.
До определенного момента я Powershell запускал только для каких-нибудь экспериментов, не рассматривая его как инструмент для повседневной работы.
В один прекрасный момент, мне надо было решить задачу по обработке большого количества файлов - на почтовом сервере письма сохранялись в виде отдельных файлов *.eml, а общий формат был: Адрес_отправителя-ID_письма.eml. Писем было несколько сотен тысяч.
Я эту задачу решил, причем решил на CMD, VBS и Autoit. После этого, мне опять на глаза попался Powershell и я решил решить задачу на нем, в качестве упражнения. Решение нужной мне задачи занимало на VBS примерно 30 строк кода. Каково же было мое удивление, когда решение этой задачи на Powershell составило всего 3 строки!
За прошедшее время, Powershell не раз меня выручал, давая возможность просто решать задачи различной степени сложности.
После этого, я решил попристальней посмотреть в сторону Powershell и разобраться с ним получше.
Время шло, я разбирался с Powershell и у меня накопилось приличное количество заметок, записок, статей о нем. Мне показалось неудобным хранить информацию в таком виде и я решил создать для себя справочник, в который и включить все имеющиеся данные с тем, чтобы, когда возникнет у меня необходимость освежить что-то в памяти, я мог это сделать, посмотрев в одном источнике.
Собрав таким образом некоторый объем информации, я увидел, что у меня получилась книга. Решив, что данное мое творение может оказаться полезным не только мне, но и некоторому кругу других людей, я решил свою книгу опубликовать.
Сегодня, в честь дня рождения Powershell, я решил выложить новую версию своей книги.
Поделитесь Вы, уважаемые читатели, помогал ли Вам Powershell каким-либо образом в работе?
Ответ на пост: О вреде IT аутсорса
История: 1 января 18 года. Я - лидер рынка на 2000км в любую сторону. Проделана огромная работа для дальнейшего роста. К концу года, у меня уже должен открыться филиал. Новый год я встречаю с уверенностью!
Ядро системы - 1С, написанная специально под меня с нуля. Подобным могут похвастаться только монстры типа Евроавто. Разрабатывали её 2,5 года. И сайт.
Последний год я почти не спал, жил на работе, чтобы забить большую часть товара в 1С. Всё почти готово!
Всё крутится на сервере, который обслуживает админ на аутсорсе.
Всё продумано: защиты доступа, 3 бекапа хранятся на сервере, и ежемесячный - у админа. Для этого ему выдан диск на 2TB.
В декабре админ попросил купить ещё дисков для сервера. Но поставить их он не смог - конец года.
3 Января 2018. 19-00. Админ цепляется к серверу, пытается добавить диски в систему. Просит перезагрузить сервер. Что-то не то.
21-00. Админ у нас, что-то шаманит с дисками. Говорит: система посыпалась.
Я спокоен: 8 дисков на сервере. 3 бекапа! + бекап у админа.
4 Января 2018: Вся информация на ключевых дисках уничтожена. Бекапы тоже. На винте у админа база за МАЙ!!!
И восстановить её не получится.
За 2 часа, моё предприятие из лидера рынка стало трупом. Каким то чудом мне удалось вытащить предприятие. Цена - 2 года моей жизни, здоровье, зрение, нервные срывы вплоть до психолога.
Кстати, если вашу фирму админит Андрей Пиданов из Омска, вы задумайтесь. Ну или обращайтесь, подскажу хорошего психолога)
Я продумал всё, предусмотрел всё, кроме лени аутсорсера.
За эти 2 года я перепробовал больше десятка аутсорсеров. Бездна! Океан боли!
Итак, Аксиомы:
1. Аутсорсеру плевать на результат. Только деньги.
Примеры:
- Сколько нужно, чтобы настроить синхронизацию сайта с 1С со стороны сайта?
8 месяцев и под 200 тыр? Легко!
Главное - уверенность у клиента, что осталось чуть чуть.
Исполнитель - фирма Аниматика. Владивосток
2. Если работа связана с 1С, МОЛИТЕСЬ!!!
ПОЛТОРА ГОДА!!! 6!!! разных контор не могли сделать список из 20 доработок. Куча денег, толку 0!!!
Сторонний спец, за 2 часа сделал большую часть этого списка.
И это - норма!
3. Дороже не значит лучше: Чаще всего, если ценник космический, то результата вы вообще не получите. Вас просто будут красиво доить!
ИНСТРУКЦИЯ ПО РАБОТЕ С IT АУТСОРСЕРАМИ!
1. Если есть годный спец, и работы много - возьмите его в штат, и не работайте с аутсорсами!По окончании работы, его можно уволить, договорившись обслуживании на удалёнке.
ГЛАВНОЕ!!! Заполните все бумаги правильно, чтобы при необходимости можно было его засудить, или написать гадость в трудовой! НЕ ЭКОНОМЬТЕ НА ЭТОМ!!!
По суду вы всё равно ничего не получите, но это очень ДИСЦИПЛИНИРУЕТ исполнителя.
2. Если других вариантов нет - идёте на фриланс, создаёте проект.
Выбираете человека с лучшим местом в нужном вам разделе.
Пример:
Этому человеку можно доверить 1С.
3. НЕ ЭКОНОМЬТЕ НА СБР!!
На Фрилансе отзывы - всё.
Если возникнут сложности, у удалёнщика будет больше стимул довести дело до конца.
4. Пишите техзадание ПОЛНОСТЬЮ!!!
До последней запятой!
Только с таким ТЗ удалёнщики работают нормально!
5. Проверяйте выполнение полностью, до последней запятой!
Удалёнщик ничего проверять за вас не будет!
6. Не надейтесь на знакомых!
Даже если админ пришёл по рекомендации, ему всё равно на вас похуй!
Он может творить любую дичь, узнаете о ней слишком поздно.
Я долго пытался найти в своём городе нормальных спецов. Они есть. Где-то.
Фриланс обходится значительно дешевле для нервов.
Следование этим правилам позволит сильно снизить вероятность такого пиздеца как было у меня.
Профстандарты обязательны для всех, кто не подходит под профстандарт в центре можно сдать экзамен и стать специалистом)))
профстандарты обязаны применять все, только для не гос контор почти нет ответственности, поэтому игнорируются (пока что, но есть задача наклипать по стране центров по сдаче квалификаций)
все птушники за борт, даже админ нынче не только с вышкой но и с повышением квалификаций
Прошу вас взглянуть на шедевр (привет из 90х) и оценить себя
http://spk-it.ru/nok/otsenochnye-sredstva-dlya-it-kvalifikat...
ps "Пример оценочного средства для оценки квалификации" -кликабельны, вопросы в самом конце.
ps пару примеров из документов:
Что должны обеспечить контрольные примеры на этапе автономных
испытаний? - для программиста
Какой способ обращения к данным
информационной системы (ИС) является
наиболее независимым от программной и
аппаратной платформы ИС?
Даже не спрашивайте чего я накурился, чтоб лизать светофор, я всё равно не скажу.
Предисловие:
Одним солнечным октябрьским выходным зачесалось у меня шило в ж.. и я срочно решил действовать, так как в голове уже неделю вынашивался план собрать Build светофор.
Для тех кто не в курсе что это и нахрена нужно, рассказываю:
Во время разработки программного обеспечения есть Релизы, это непосредственно новая версия Программного Обеспечения, которую видят пользователи (Да да, те самые достающие обновления каждую одну\две недели).
Но помимо этих релизов есть ещё и Night Build. Программисты весь день пишут код, потом сливают его в специальное хранилище, чаще всего это developer ветка git. Специальный сборщик (это программа такая) просыпается ночью и начинает собирать свеженаписанный код, после чего тестирует его разными тестами, суть которых выявить, ничего ли программисты не сломали новым кодом.
В конце этого безобразия и получается ночной билд.Именно на Ночной билд мы и будем делать светофор.
Логика такая:
1. Светофор подключается к известной сети wi-fi
2. Светофор опрашивает проект jenkins каждые 10 секунд и показывает текущий статус.
3. Если возникают ошибки при запросе\расшифровке ответа - сообщаем нужным цветом.
4. Если ошибки длятся более чем какое-то заданное время - перезагружаем светофор.
За основу я решил взять светодиоды WS2812B. Это такие умные RGB светодиоды, которые управляются любым микроконтроллером.
Мозгом установки будет служить ESP32 (Можно и ESP8266) потому что она у меня была под рукой.
Корпус будем делать дендрофекальным методом из картона, термоклея и пластика.
Так же я решил включить в сборку аккумулятор для автономной работы со всеми вытекающими типа модуля зарядки лития, повышающего преобразователя и т.д.
На этом моменте я принялся бегать по магазинам и искать то, что будет отражателями в "глазах" светофора. Изначально я планировал взять фары от какого-то советскго авто, но цены меня вовсе не устроили.
Долго бродив между рядами в автомагазине я нарвался на маленькие пластиковые переноски, внутри которых была лампа накаливания на 12в и провода с крокодилами.
Переноски были куплены в количестве 3х штук. Лампы из них вырваны к чёрту и обрезано крепление этих ламп.
Тут я дико извиняюсь перед читателем за отсутствие фото этого процесса. На тот момент я был в кураже и совсем не думал про то, что данный проект окажется удачным. О фото не вспоминал.
Сборка
На этом этапе у меня знатно подгорело. Я хотел использовать такую ленту диодов
И эта лента у меня даже была. Но на конусовидный отражатель клеиться ровно совсем не хотела. Тут во мне возникла борьба перфекциониста с ленью и лень проиграла (ЛЛ не кидайтесь тапками, я с вами).
Решил по хардкору! Нашлись у меня диоды в виде единичных экземпляров с обвязкой на текстолите, но их было много! То что нужно.
Ну и я принялся паять. 3 ряда по 4 штуки. Между ними по 3 контакта и 6 точек пайки.
Количество я взял "от балды". Максимум диодов чтоб было ярко, но не так много, чтоб я задолбался паять.
Само собой три глаза светофора, значит три таких блока. На этот моменте я напился, посмотрел 3 фильма, подумал о былом, но паять не прекратил.
Игра: Угадай, что это за перемычки такие, которые я паял и откуда я их взял.
После чего вставил это всё в пластиковые отражатели, залил термоклеем и собрал стенд для теста работы.
Всё работает, продолжаем.
Начинаем размечать и вырезать из большого листа картона корпус.
Места изгиба я с силой изнутри продавил обратной стороной пинцета, чтоб сгибалось лучше.
Ну и начал проклеивать. Аккуратность тут не важна, ведь всё это будет внутри. Главное вырезать картон не задницей.
В конце клеевого безумия вставляем туда глаза отражателей (немного пошкурив их в местах склейки) и промазываем термоклеем.
Кстати ему же ещё нужны козырьки! Тут нам фортануло! У этих пластиковых переносок была просто чудесная крышка! Круглая и ровная. К её торцу мы и клеем картонные козырьки.
На этих крышках была выдавлена в пластике какая-то символика завода и у*бищная надпись КАМАС, что бы это ни значило. Я сначала хотел стереть её шкурвой, но перфекционист во мне на тот момент (второй день сборки) давно сдох и я положил на это свой бородатый болт.
И так сойдёт.jpg
Электрику, разводку и прочее дерьмо клеим на термосопли к прям к картону. Ну а что, разбирать это я точно уже не собирался =)
Разбирать не собирался, а вот открывать иногда надо, потому ляпаем на заднюю "дверцу" липучки от одежды. Кстати держат эти липучки очень даже классно.
Кому любопытно, схема подключения примерно такая
Заметьте аккумулятор 18650, нужен для автономной работы, и чтоб таскать светофор куда нужно. В остальное время он подключен по MicroUSB к блоку питания через модуль заряда аккумулятора.
Схема сделана за 5 минут для себя, так что не подписано ничего.
Зеленое снизу, это повышающий блок питания на 5в. Синее и большое - понижающий до 3.3в для питания ESP32.
Не кидайте тапками, разводить платы я умею, но травить мне нечем, а ждать от китайцев не хотелось, помните же про шило в ж?
Программная часть:
Тут самое веселое. Сначала я хотел написать код в Arduino среде на C++, но у меня никак не вышло заставить её работать по HTTPS протоколу, рвёт соединение на стадии handshake и всё. Промучившись пару часов я было повесил голову, но тут нашёл проект MicroPython!
Это Python3 для микроконтроллеров. Прошил ESP32 я за 10 минут, написал тестовый код ещё за 15.
Потом началось веселье с продумыванием всех мелочей и прочим дерьмом.
Код прикладывать не буду, так как пост и так получился неприлично жирный, скажу только основные моменты. А кому нужен код, пишите в комментарии, я покажу.
Для запросов я использовал модуль requests (в МикроПитоне это urequests). С его помощью я быстро подключился к Jenkins, передал ему в headers авторизацию и запросил цвет проекта. В Jenkins все проекты имеют цвет:
red - последняя сборка упала (сломалась, сдохла, завершилась с ошибкой)
blue - последняя сборка выполнена успешно
red_anime - последняя сборка упала, но сейчас идёт новая сборка
blue_anime - последняя сборка успешна, но сейчас идёт новая сборка
Основываясь на этом цвете мы зажигаем нужный цвет.
Ну и вот итог:
Что мы тут видим:
Светофор запускается и зажигает по очереди цвета в своих "глазах" для проверки.
Затем оповещение о подключении к wi-fi синим центральным "глазом" + первый запрос данных из Jenkins.
После получения данных выходим на рабочую прямую и светим нужным глазом и цветом. Повторяем запрос каждые 10 секунд.
Иногда его правда стоит перепрошивать и дописывать прошивку из-за найденных багов, но это совсем другая история.
В целом эта штука у нас стоит и работает с октября. Всем нравится и нареканий к работе нет.
Себестоимость что-то около 1500 рублей.
Ваши вопросы я жду в комментариях, буду стараться отвечать на всё.
Всем печенек!
Есть Windows.
В нём есть файл.
К нему, на чужой машине, может быть доступ:
a) Запрет на чтение и запрет на запись
б) Разрешено чтение и запрет на запись
в) Разрешены чтение и запись
Как протестировать все варианты на машине с одной учёткой локального администратора?
Вариант который придумал я - разместить файл на флешке в NTFS, ставить права в свойствах файла стандартным способом, затем отформатировать её целиком (когда закрыл все права доступа к файлу для своей учётки). Если ли способ проще?