Испытываете трудности при отдачи контента порциями?
Дискомфорт, говорите? Поделюсь своим опытом раздачи терабайтов обновлений к игровым клиентам. Не знаю, как это у «танчиков», но принцип одинаков везде.
Вот вы зарелизили игру. Первый вопрос: как выкладывать? Одним большим куском или в развёрнутом виде? Тут вопросов не возникает — конечно же, большим куском, раскидать его по серверам поближе к клиентам, на площадки с доступом к основным магистралам. А вот небольшие патчи? Выкладывать сразу или творить кумулятивные обновления? Всего-то из изменений — брутального орка кто-то из локализаторов обозвал «МойЗайчик». Первая мысль была именно такая: давайте сбацаем торрент, и пущай клиенты с клиентов обновляются, меньше нагрузки на сервера, ведь при более-менее массовом апдейте нагрузка может подскочить на порядок, никаких «теньге» (10 Gigabit Ethernet) не хватит. Сделали. Водрузили Transmission на сервера — мол, обновляйтесь. Ой, что это? Почему скорость такая маленькая? А что это клиенты предпочитают качать с центра, а не с других клиентов? А неблагодарные клиенты, скачав обнову, тут же вырубают обновлятор, чтобы играть не мешал, из-за чего начинают выигрывать HTTP-пиры. Вот это и есть традиционные грабельки: гладко было на бумаге, да забыли про овраги…
Так и живём. Имеем кучу nginx, которые раздают или с общего стораджа, или по свистку синхронизируются сами. А найти сервер, который вдруг не поддерживает докачку, надо сильно постараться. Или на коленке самому написать. Nginx в том числе и для этого был создан, чтобы, не сильно потребляя ресурсы, мог отдавать кучу мелких файлов очень большому числу клиентов.
А теперь представьте, когда вы такое количество файлов обновили только наполовину. Да, проверяем целостность клиента, проверяем тысячи хешей, перекачиваем старые файлы. В результате какая-нибудь «ферма» убивает батарею недобука, когда хозяин сидит в «Макдональдсе» и пытается обновляться там. А ему ещё и каждые полчаса линк отключают: мол, переавторизоваться бы …
Счастья, чтобы никто обиженный не ушёл, не существует. Может, с приходом планшетов всё изменится?
Если кто-то ещё помнит историю вычислительной техники — начиналось всё с многообразия архитектур и процессоров. Пусть компьютеров было мало в штуках, зато они были очень разными. Ни о какой ОС речи ещё не было, всё было уникально и по-своему.
Потом сформировались несколько типов компьютеров, появились ОС для них. Операционные системы уже начали становиться неким стандартом, позволяя программистам не так сильно завязываться на особенности реализации конкретной машины.
С расцветом персоналок многообразие архитектур ещё более сузилось, а количество разнообразных операционных систем продолжало неуклонно уменьшаться.
Дальше — больше: давно пропали процессоры Alpha, несмотря на свою уже тогда имевшуюся 64-битность, исчезли процессоры Motorola, бывшие когда-то сердцем компьютеров Apple, передовой для своего времени PowerPC сейчас можно встретить разве что в некоторых моделях бытовой техники, и даже некогда топовое железо от Sun доживает последние дни.
Сколько было различных вариантов UNIX? Где легендарный NextStep? Куда пропал BeOS, обещавший перевернуть представления о компьютерах? Даже QNX, лидер на рынке встраиваемых систем, сейчас вряд ли попадётся вам на глаза.
И вот наши дни: из всего богатства вариантов, из всего зоопарка систем сейчас мы имеем в наличии потомков линеек процессоров х86 и ARM, а из ОС — Linux, OS X и Windows. Другие пока ещё есть, но…
Причина этого вовсе не в происках злобных маркетологов, а в том, что потребители (в данном случае — разработчики, программисты, пользователи) стараются получить как можно больше, затратив минимальные усилия.
Зачем вкладывать деньги в сверхмощные сервера с десятками ядер, когда можно накупить стандартных дешёвых х86 и решить ту же самую задачу, хоть и немного иначе?
Зачем разрабатывать свой уникальный процессор с уникальными системами команд, когда можно взять копеечный штампованный ARM, который к тому же постоянно совершенствуется?
Зачем тратить время и силы на какую-то особую ОС, если тот же Linux прекрасно работает и на x86, и на ARM, что позволяет устанавливать его хоть в дата-центр, хоть в утюг с автоподогревом?
Наоборот, это маркетологам надо сказать спасибо, что до сих пор существуют OS X (хотя от неё до Linux рукой подать) и Windows (вопрос принципов и амбиций известной компании). Если бы не их усилия — люди бы пошли по пути наименьшего сопротивления, сокращая свои издержки за счёт унификации оборудования и софта.
Зачастую проще допилить готовое решение под свои нужды, чем городить что-то уникальное и полностью своё. А вы про «обмылки» говорите…
Смотрю фильм на DVD. Хакер взламывает то ли сеть, то ли базу данных, и у него запрашивают пароль доступа. Хакер потирает руки и произносит «Сейчас…»
Тут у меня звонит телефон. Ставлю DVD-плеер на паузу и иду отвечать. После долгого разговора иду на кухню, ищу, чем бы перекусить, попутно мою давно залежавшуюся в мойке грязную посуду…
Короче, вернулся в зал не скоро. Ага, думаю, надо фильм досмотреть. Беру пульт, снимаю с паузы. С экрана телевизора исчезает скринсейвер DVD-плеера, а вместо него на синем фоне белыми буквами, как в Norton Commander, запрос:
<code>Please enter the access code: _
</code>
На минуту крепко задумался, что за код от меня требует DVD-плеер, даже на пульте что-то набирать пытался, пока не понял, что первое нажатие кнопки «Play» убирает скринсейвер, а второе продолжает воспроизведение.
День выдался, что называется, ни к черту. С утра сильно ушиб ногу, возникли проблемы на работе, из-за скачка напряжения сгорел домашний комп, потом с девушкой разругались в пух и прах… В общем, взял я запас спирта и курева да сел топить грусть-печаль в укромном месте. Вот только забыл я, что район этот не зря считается гопоопасным…
— Слышь, ты, дай денег!
Медленно поднимаю слегка осоловелый взгляд на источник звука. Этого следовало ожидать — типичный
HD-пацан на охоте. Чуть в стороне в нашу сторону посматривает «группа поддержки». Бежать бесполезно, вопить тоже…
— А на кой тебе? — язык, в отличие от мозга, среагировал почти моментально.
— Да купил, &^%, наушники и порвал их на $%&. А чё такое?
Действительно, на шее у вопрошающего висят новенькие Koss Porta Pro с оторванным от одного уха проводом.
— Ничё. Давай сюда, щас сделаем…
В полной прострации парень отдал покалеченные наушники. А дальше дело техники — ножик для зачистки, сигарета в роли паяльника… В общем, спустя пять минут наушники снова выдавали звук в полном объёме.
Нецензурно восхитившись, парень двинулся к товарищам. Спустя десять минут, когда я о нём и думать забыл, предо мной возникло приличное количество пива, и смутно знакомый голос сочувственно прогудел:
— Слышь, братуха… Ты, это, в порядке? Если чё — звони, мы поможем…
Пиво разошлось по рукам. Нестройный хор пропитых голосов матерно и от души желал мне всего и побольше. А над городом зажигались первые звёзды…
Есть у меня топорик, который принадлежал ещё моему деду. Самый обыкновенный хозяйственный топорик, которым и дерево срубить, и гвоздь забить, и доску обтесать. И вот хожу я с ним по лесам и фестивалям и работаю. Или предлагаю поработать им обладателям современных именитых топоров или попросту новодела. Не раз наблюдал смену выражения их лиц с недоумения и презрения моего малыша на лёгкое удивление после работы с ним, ибо и дрова он лучше рубил, и удобен так же был. А секрет лишь в том, что топор был правильно заточен.
Да, новые пластмассовые топоры хороши и легки, но сделаны так, что при поломке их можно только выбросить. Или заменить рукоять на деревянную, предварительно долго и упорно высверливая остатки пластика. И ещё шутка в том, что топор «из коробки» тоже требует заточки. Нет, дрова нарубит и дерево свалит, но, как показала практика, даже специально сточенный под ребро пятикопеечной монеты топор вполне неплохо колет дрова, но для нормальной работы его всё же надо заточить. И да, у топоров есть множество функций помимо рубки дров, и для всего есть своя форма топорища и лезвия.
А теперь вернёмся от железа кованого к железу паяному. Как было замечено несколькими днями ранее, разница между мощностями компьютеров в 2010-м и 2015-м не столь велика, как между 1995-м и 2000-м. При этом основные задачи, выполняемые на компьютерах в офисах, тоже не сильно поменялись: по большей части компьютеры выступают в роли продвинутых печатных машинок. Но при этом год от года, невзирая на увеличение мощности оборудования, программная часть опережает этот прирост мощности, функциональности и прочего, что тормозит наше ПО так же, как и в 95-м. А всё из-за того, что, как и каждый инструмент, программы требуют заточки, балансировки и ухода, а не превращения в яркую игрушку с дополнительными функциями, которые 80% времени не нужны и попросту занимают место. При этом железо становится неремонтопригодно, поскольку всё многообразие схем и дизайнов привело к тому, что уже нельзя выбросить вышедший из строя блок и заменить его на новый: многие новые блоки уже не совместимы со старыми, пусть и вышедшими пару лет назад. Этим блокам может попросту не хватить места в маленьком корпусе, а вздувшийся конденсатор будет из-за тех же размеров не так просто выпаять; если же вышло из строя что поменьше, то тут уже только к мастеру нести, который в 90% случаев скажет, что дешевле купить новый агрегат, чем менять эту копеечную схему.
Новое или старое — не имеет разницы, если это не сказывается на цене или эффективности работы. И проблема современного инструмента в том, что много внимания уделяется тому, чтобы ручка была красной, ибо топоры с красным топорищем лучше заметны в траве, чем топоры с зелёным. А то, что клинья вылетают и рассыпаются, лезвие закалено только по кромке — это всё мелочи, которые исправляются синей изолентой из соседнего отдела да видеоинструкцией с интернета, где показано, как прокалить топор на газовой горелке, но так делать нельзя, ибо потеряете гарантию на дорогое изделие. И не покупайте топоров у дяди Васи на базаре, который в СССР кузнецом был: у него топоры кованые и ручка деревянная пропитана морилкой, не то что наши с красной рукояткой! И помните: рамбутан на красной рукоятке говорит об элитности вашего топора.
Я работаю в сфере IT по своей специальности. Работу свою люблю, нравится узнавать что-то новое, люблю ковыряться в железе, настраивать различное оборудование. Часто обращаются знакомые и родственники с просьбами переустановить операционку, настроить интернет, почистить от вирусов. Не буду жаловаться на просьбы из серии «почини кухонную вытяжку, ты ж программист»: тема старая, вызывает улыбку. А что задолбало? Задолбали те самые знакомые.
Нет, мне не сложно помочь, есть интересные случаи. Есть и вполне адекватные люди. Вот дядя. Помогла приобрести ноутбук, поставила туда его любимые «танки», настроила интернет от мобильного «свистка». С его слов, стало скучно, решил по взрослым сайтам полазить, поймал вирус. Посмеялись, вылечили заразу. Я знаю, что мы с семейством желанные гости у него на даче: баньку истопит, вкусно накормит.
Вот знакомый сестры. Нужно было поставить определённую версию операционки для работы с какой-то железкой. Какую именно, сказать не смог. Не вопрос — читаю мануалы к той самой железке, ставлю операционку, подключаю приборчик. Этот парень у себя в автосервисе на днях будет менять бампер на моей машине.
Вот приносит нетбук подруга. Жалуется на «синий экран». Прогоняю на тестах — помер жёсткий диск. Покупаю, меняю, всё работает, все счастливы, вечером вместе идём в кафе отмечать возрождение любимого бука.
Ещё куча примеров, когда и помогать бесплатно приятно: где-то в гостях накормят, где-то ещё вдогонку солений-варений целую сумку дадут, да и простого «спасибо» хватает. Приятно видеть счастливые лица людей, когда возвращаешь им работающую технику.
Но есть и обратная сторона. Вот девочка. Да, мы хорошо общаемся. Не больше. Просит посмотреть, почему ноутбук тормозит. С ноутом ничего не делали года два. Окей, чищу, убираю лишнее, прогоняю антивирусом. И тут у меня на руках помирает система охлаждения. Заводской косяк, в своё время меняли её по гарантии, но гарантии уже нет. Просто звёзды так сошлись. Подрываю знакомого, который в сервисе работает, заказываю запчасть (цену с девочкой предварительно оговариваю), еду туда на своей машине, трачу свой бензин, забираю, ставлю — всё работает. Когда она его забирала, на лице было явное недовольство. Как так: хотелось на халяву, а пришлось потратиться! Мне с этой системы охлаждения ни копейки не упало, знакомому тоже (он для меня по закупочной цене продал запчасть). Да ещё девочка упрекнула, что появилась царапинка на крышке. К слову, к технике я отношусь бережно. Это не первый разобранный мною ноутбук, претензий по царапинам не было ни у кого. В общем, даже шоколадки я после всей этой беготни не увидела.
Недавно ещё знакомая попросила посмотреть системник. Я к ней приехала, забрала, увезла к себе. Ему около 15 лет, древний, как дерьмо мамонта. Весь грязный, да ещё и попахивает. Выяснилось, что померла материнская плата. Такой древности уже не найти. Есть у неё не менее древний второй системник. Просит собрать из двух один рабочий. По-человечески объясняю, что даже если и получится собрать монстра Франкенштейна, работать это будет плохо и в любой момент может испустить дух. Не стоит мучить себя и ныть мне потом, как всё тормозит, а следует потратить тысяч двенадцать на простенький новый комп из магазина. Хватит и в «тырнетиках» посидеть, и с документами поработать, и тупить не будет. Да ещё и на гарантии. Опять недовольное лицо: девочка усомнилась в моей компетенции. Фраза «ну, работало же ведь» и просьбы придумать что-нибудь. Да ёпрст, я некромантией и некрофилией не занимаюсь! Запчастей я таких не найду: не в сервисе работаю. Хотя, когда работала, владельцам таких динозавров рекомендовала обновить железо.
Вот тётушка. В последний визит на комп я поставила родные «форточки», купленные вместе с компом, необходимый набор бесплатных программ, скачанных с официальных сайтов. Через полгода звонок с претензией: не работает ничего. Прихожу, а там супер-зверь-сиди-сборка и куча непонятного софта в комплекте с зоопарком вирусни. Оказалось, приходил программист (ага, на жезле я таких вертела), два часа что-то делал и «что-то там намудрил». А мне позвонить религия не позволила? Что?! Ещё и деньги ему заплатили? Я бы на решение той проблемы потратила десять минут, а теперь придётся минут сорок приводить комп в первозданный вид. Попросила познакомить с тем недопрограммистом, посмотреть в глаза заразе. Не познакомили, но и сами к нему не обращались. Больше года уже с компом всё в порядке.
Историй можно рассказать много. Я помогаю вам потому, что мне нравится делать людям добро, вы мои близкие и родные люди. Мне не надо набираться опыта — его и так за много лет накопилось немало. Я знаю, что с деньгами у вас не очень, поэтому даже шоколадки мне не надо, просто скажите спасибо. Вся техника имеет свойство ломаться, смиритесь, я не волшебница. Но после такого отношения помогать уже не особо хочется. А я сегодня приду вечером домой, открою бутылку виски, который мне прислали аж из другого города благодарные друзья за реанимацию их любимого ноута, и составлю список тех, кого впредь буду отправлять с их барахлом в сервисные центры. Пусть там любят мозги людям, которые за это денег получают (простите, ребят). Ибо задолбали.
Ты только не обижайся, но я тебе один умный вещь скажу. Твой машина… Блин!
Я во многом консервативен, но экранную клавиатуру всё же поддержу. Говорите, на ней трудно быстро и безошибочно набирать длинные тексты? А вы пробовали? Физическая «клава» привыкшему к ручке тоже поначалу кажется неудобной, как, впрочем, и наоборот. Но стоит натренироваться — и кажется, что ничего удобнее нет. С экранной клавиатурой добиться такого результата тоже возможно, главное — захотеть.
А когда натренируешься, по-настоящему ощутишь главное достоинство ёмкостного экрана — нулевое усилие нажатия. С усталостью после набора довольно увесистого текста, в общем, почти попрощаетесь. Автозамену, кстати, лучше выключить: иногда она так заменит, что смеховой шок обеспечен. Лучше внимательно смотреть, что набираете. Этот навык тоже придёт, как и навык попадания по нужной клавише почти всегда с первого раза даже на маленьком экране. Более того, вы научитесь при работе на маленьком экране уставать меньше, потому что перемещать пальцы потребуется на меньшие расстояния. Именно так был набран этот текст (модераторы, гляньте, пожалуйста, нигде не промахнулся?), но это — не мой рекорд. Рекорд я установил четыре дня назад, набрав в «королевском мягком» аж 20 страниц 11-м шрифтом и устав меньше, чем если бы набирал на физических клавишах. Времени заняло ненамного больше (потренируюсь ещё — будет занимать даже меньше), при том, что на обычной клавиатуре я умею строчить довольно резво, зато всё проделано лёжа, а значит, меньше устали не только пальцы, но и спина. Текст был, кстати, научно-прикладным, так что из правила «лопата отупляет» иногда бывают исключения.
А как повлияет на ваш интеллект квадрокоптер для селфи, зависит только от вас. Если купите — не повлияет вообще никак, так же, как покупка штанов или батона. А если сами напишете для него математику (а это — стабилизация не только полёта, но и изображения) с нуля, независимо, в одиночку и желательно хотя бы частично на асме — к полёту на Марс можете себя считать готовым по крайней мере морально.
Как я погляжу, человеку проще
накатать простыню, какие все разработчики плохие, чем просто поглядеть настройки программы. К примеру, та самая белорусская игра со своим инсталлятором успешно использует торрент для скачивания обновлений — достаточно поставить галочку в настройках, и прогресс скачивания не откатится. За деталями — к принципу работы торрент-сетей.
А менеджеры закачек давно уже поддерживают докачку по частям. Вопрос только в том, что зачастую её не поддерживает сервер, отдающий контент.
К тому же есть понятие непрерывности и атомарности операции. Никто не гарантирует, что установка патча или монтаж ролика будут правильно завершены в том случае, если дядя Вася, решив, что он мегаэлектрик, выбил вам пробки, а у вас «на паузе». Что делать в этом случае? Данные потеряли? Потеряли. Какой файл заменяли последним, есть информация? Нет. Правильнее снова запустить процесс, дабы получить гарантированный результат, а не пытаться выяснять, где побились блоки.
Кстати, наглядный пример: попробуйте в уборной поставить процесс на паузу. Можно ведь? Можно, хоть и сложно. Вот только некомфортно и возникает чувство несовершенства и недоделанности.
Не ищите злых козней разработчиков там, где их нет.
Лаборатория испытаний авиационных микрокомпрессоров. Проходит типовые испытания новое исполнение: три компрессора на стенде, стоит вой воздуходувок, девушка в белом халате усердно подбивает в Эксель статистику, дублирующуюся самописцами.
По окончании проверки компрессоры выключаются, а вой, хоть и не столь сильно режущий уши, остаётся, причём исходит он из системника. Как оказалось, кулеры в стареньком «атлончике» погибли на второй год эксплуатации, чтобы купить новые, нужно оформить кучу документов, придут они месяца через три, а работать нужно сейчас.
В общем, вместо процессорного вентилятора и вентилятора на выброс воздуха стоят авиационные воздуходувки. Промышленный подшипник, металлический корпус, отбалансированная металлическая крыльчатка, частота вращения — 12 тысяч оборотов в минуту.
Питание от бортовой сети с частотой 400 Гц? Так мы в лаборатории, с ним перебоев нет. Слишком шумный? Так когда на стенде нет хотя бы одного компрессора с двумя такими же воздуходувками, компьютер, в общем-то, и не нужен. Зато назначенный срок службы — 20 лет, а по количеству подаваемого воздуха при габаритах 60×60 такой вентилятор заткнёт за пояс любую «стосороковку».
Я работаю дома на телефоне без выходных, в том числе и во все праздничные дни.
Звонит телефон в воскресный день. Отвечаю стандартно:
—Бла-бла-бла, компания «*****», добрый день!
В ответ слышу с крайней степенью удивления:
— А вы что, сегодня работаете?!
И это, собственно, всё, что интересует звонящих, после чего они удовлетворённо бросают трубку. Как в анекдоте: «Лев?» — «Лев». — «Офиге-е-еть…»
Наверное, если на ваш звонок в принципе ответили, сняли трубку, представились и ждут ваших вопросов, это уже означает, что организация работает! Так формулируйте ваш вопрос хоть немного корректнее, а то двадцатому позвонившему уже хочется ответить: «Нет, не работаем, мне просто скучно, и я беру трубки».