Коды которые
Перейти к содержимому

Коды которые

  • автор:

Коды которые

Лина Маргарян закончила 1-й курс колледжа при СПбГУТ имени Бонч-Бруевича и не понаслышке знает, что такое girl power: вместе со своей командой, в которой только девочки, она создает метавселенную, которая в будущем может имитировать даже операцию. Уже четыре года Лина занимается волонтерством и верит, что искусственный интеллект станет лучшим другом человека

Фото: Александр Глуз/«Петербургский дневник»

– Как вы попали в Академию талантов?

– Это произошло почти случайно: классный руководитель скинула нам анонс профильных смен от Академии талантов в лагере «Зеркальный». Я тогда еще ничего не знала про этот лагерь, Академию талантов, и само направление смены было мне непонятным. Но я подала заявку и прошла отбор! Были большие сомнения – ехать или нет? Но я все-таки поехала и познакомилась там с ребятами, которые в итоге играют решающую роль в моей жизни. Там я встретила девочку, с которой мы делали проект для «Сириуса».

– Искусственный интеллект – как вы к этому пришли?

– В реальности искусственный интеллект очень далек от человека и пока может делать очень простые вещи с помощью кода. А чтобы написать этот код, нужно очень много чего ненужного отфильтровать и изучить. Этим я и занимаюсь: пишу код, который делает определенную работу и помогает людям, которые не понимают ничего в программировании. Такой код можно интегрировать на портал, сайт или в приложение, которым смогут пользоваться обычные люди, которые будут как-то взаимодействовать с устройством. Например, я смогу сделать робота на основе искусственного интеллекта. Сам искусственный интеллект вы не увидите, но вы увидите робота, который этим искусственным интеллектом пользуется.

– Как искусственный интеллект помогает людям?

– Я могу предоставить вам робота, который сможет выполнять совершенно разные функции: робот-приложение или, может быть, какой-то сайт, который сможет делать функции, близкие к человеку. Например, распознавание на фотографии какого-либо объекта.

– Над какими проектами вы работали?

– Был проект по обработке сообщений в почтовой переписке работодателя и сотрудника с помощью искусственного интеллекта. Там обрабатывалась следующая информация: какие сообщения пишет сотрудник, и на основе этого выделялись его профессиональные качества – лидерство, замотивированность. Ещё был проект по распознаванию лиц на фотографиях: были фотографии, которые сгенерировала нейросеть, и фотографии настоящих людей. Сеть определяла, где сгенерированные, а где настоящие люди.

– Сколько лет вы уже занимаетесь?

– На самом деле не так давно. С искусственным интеллектом я работаю с сентября. Программированием, если считать вместе со школьной увлечённостью, – чуть больше года.

– Где в будущем мы сможем увидеть искусственный интеллект?

– Мы его можем видеть уже сейчас, но не обращаем внимание. Например, в телефоне, когда вы гуглите шляпы, потом вам постоянно будет попадаться реклама этой шляпы, потому что так работает искусственная сеть.

– Как влияет на вас как на молодого специалиста по искусственному интеллекту ситуация в мире?

– На самом деле, на меня это почти никак не влияет. Единственное, могут быть ограничения по каким-то программам, что приносит небольшой дискомфорт. Но эти ограничения можно обойти. Может быть, только небольшой занавес в информационных знаниях: за рубежом могут уйти куда-то далеко, а мы об этом не будем знать и будем пытаться их догнать. При этом интересно смотреть на такой опыт и думать: «Мы тоже можем так сделать». Для меня это время вызовов.

– Кем вы видите себя через десять лет?

– Я представляю, что у меня очень много знакомых и друзей из такой же сферы, которые многого добились, и я тоже много чего знаю и умею. У меня есть определенный статус, меня могут рекомендовать каким-то важным людям как хорошего разработчика. У меня есть своя команда или компания, которая также имеет хороший статус.

– С каким проектом вы хотели бы выйти на большой рынок? Есть ли у вас задумки?

– На самом деле, такой проект есть: мы с командой делаем стартап. Нас четыре девочки, и мы создаем метавселенную. Конечно, это громко сказано, ведь это невероятно сложно сделать, но у нас есть амбиции и тяга к знаниям. Например, нам срочно нужно пройти 15 модулей, и одна из девочек вдруг пишет: «Я сделала все 15 модулей». И мы такие: «Господи, какая ты молодец!» И так каждый день – радуем друг друга помощью и совместной работой. Мне кажется, в какой-то момент это произведет фурор, и мы очень гордимся тем, что у нас именно такая команда. Мальчики должны были работать с нами, но произошла такая ситуация, что команда получилась именно женская. Она невероятно продуктивная и комфортная.

В принципе метавселенная – это то, что можно увидеть, если, например, надеть какие-то очки виртуальной реальности или очки дополненной реальности. Это место, где вы можете стать другим человеком, где вы можете попробовать себя в том, что недоступно вам в реальной жизни. То есть это не игра, это имитация жизни, в которой возможно больше, чем в реальности.

– По какому сценарию будет жить ваша метавселенная?

– Очень много идей. Возможно, это будут острова по разным направлениям, например остров «Искусство» или «Наука». И на разных островках будут базироваться разные компании. Если какой-то островок связан с IT, там можно будет встретить Google, ВК, Яндекс.

Мы подаем этот проект на конкурс, и Сбер может предоставить нам инвесторов. Как вы сможете в эту вселенную попасть? Войти на сайт, разработчиком которого я являюсь. Суть в том, что эту метавселенную нельзя будет поставить на паузу. Вы, например, либо с телефона открываете этот сайт, либо, если мы найдем инвесторов или спонсоров, найдем хорошее оборудование, –попадете туда с помощью очков виртуальной реальности или специального костюма, который будет помогать ощущать все прикосновения из этой вселенной. Дорого ли это? Как я знаю, подобные костюмы стоят 18 тысяч долларов, программное обеспечение для таких костюмов может стоить 20 тысяч долларов. Насколько это правдоподобно? Очень! Такие костюмы разрабатываются со специальным датчиками: приходит сигнал, и они давят вам на руку.

– Где эта метавселенная будет полезна?

– Была такая статистика, что работники железных дорог могут обучаться перебрасывать направление поезда. Когда работники тренируются в виртуальных очках, вероятность травм снижается. То же самое можно делать в сфере медицины: проводить какие-то пробные операции в виртуальной реальности.

– Ваша мечта?

– Быть хорошим программистом не только в сфере искусственного интеллекта. В какой-то момент тебе захочется элементарно перейти в веб-разработку и делать сайты. Не хочу выбирать что-то одно.

– Чем еще увлекаешься?

– Я занимаюсь волонтерством в лидерском клубе. А еще я вхожу в молодежную команду вдохновителей – я руководитель HR-отдела. Работаю с уже имеющимися сотрудниками и их ценностями и мотивациями.

– Ваше место силы?

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

– Любимая книга?

– «Я манипулирую тобой» по психологии.

– Любимый фильм?

– «Идеальный голос» – прекрасный мюзикл.

– С кем бы ты хотела встретиться?

– С Марком Цукербергом, потому что он тоже делает метавселенную и отлично развивается в этой сфере. А еще хотела бы встретиться с Илоном Маском, потому что он очень классный предприниматель.

– Ваш жизненный девиз?

– Если не сейчас, то когда, и если не я, то кто?

Коды которые

Для использования кодов в The Sims 4 нужно сначала открыть консоль кодов в игре, нажав клавиши Ctrl + Shift + C на ПК или на Mac. Откроется диалоговое окно, в котором можно ввести код. Не забудьте нажать Enter после введения кода.

Как получить больше симолеонов?

Денежные коды для The Sims 4:

  • чтобы получить 1 000 симолеонов, введите rosebud или kaching;
  • чтобы получить 50 000 симолеонов, введите motherlode.

Как сделать все дома на карте мира бесплатными?

Выбрать подходящий дом для сима не так-то просто, когда только начинаешь играть. Так почему бы не открыть доступ ко всей недвижимости на карте? Откройте консоль кодов и введите FreeRealEstate On, чтобы поселиться на любом жилом участке вне зависимости от его цены. Чтобы отключить эту функцию, откройте консоль кодов и введите FreeRealEstate off.

Как купить недоступные предметы карьеры в каталоге режима строительства?

Для использования этого кода в The Sims 4 зайдите в режим строительства, откройте диалоговое окно для кодов и введите bb.ignoregameplayunlocksentitlement.

Как менять состояние объектов с помощью кодов?

Для некоторых сюжетов вам могут понадобиться объекты в определенном состоянии. Например, чистые тумбы. Или грязные. Для этого откройте диалоговое окно для кодов и введите testingcheats true, удерживая клавишу Shift и нужный вам предмет. Если вы хотите, чтобы предмет стал грязным, выберите действие «Испачкать», а если он нужен вам чистым, — «Очистить».

Как телепортировать симов, которые не являются вампирами?

Введите код testingcheats true, затем, удерживая клавишу Shift, нажмите на любое место на земле в зоне, куда хотите перенести сима, и выберите действие «Телепортироваться сюда».

Как менять потребности симов?

Если вам хочется сделать несчастных симов счастливыми, откройте консоль кодов, введите testingcheats true, а затем, удерживая клавишу Shift, щелкните по симу и выберите действие «Сделать счастливым».

Как сделать так, чтобы уровень шкал потребностей сима не снижался?

Если все шкалы потребностей сима окрашены в зеленый цвет (или даже красный!), и вы хотите, чтобы такое состояние сохранялось долгое время, откройте консоль кодов, введите testingcheats true, а затем, удерживая клавишу Shift, щелкните по симу, выберите «Чит-код для потребности», а далее действие «Отключить ослабление потребности». Если вы хотите восстановить обычные настройки, сделайте то же самое, только в конце выберите действие «Включить ослабление потребности».

Как создать семью с определенным количеством симолеонов?

Для того, чтобы создать семью с определенным количеством симолеонов, откройте консоль кодов, введите testingcheats true, а затем Money X, где X — это сумма, которая вам необходима.

Например, если вы введете код Money 145897, то у семьи появится 145 897 симолеонов.

Как переместить объект в любое место?

В режиме строительства вы можете захотеть разместить объекты вроде мебели или окон в местах, где этого не позволяет сделать сетка. Для того, чтобы активировать эту возможность, откройте консоль кодов, введите bb.moveobjects on и выберите объект, который теперь может быть размещен в абсолютно любом месте вашего участка.

Как просмотреть объекты, которые скрыты в каталоге режима строительства?

Некоторые объекты могут быть скрыты в каталогах режима строительства и покупки — например, объекты из закончившихся внутриигровых событий, которые вам интересны. Для того, чтобы получить к ним доступ, откройте консоль кодов, введите bb.showhiddenobjects, и все объекты станут доступны для использования.

Игроки The Sims со всего мира используют коды. Мы ни в коем случае это не запрещаем. Даже наоборот, только поощряем! Читайте дальше, чтобы узнать, как использовать коды в The Sims™ 4 на игровых приставках, или читайте про коды на ПК/Mac здесь.

  • Коды на консолях и коды на ПК/Mac
  • Как открыть консоль для кодов на игровой приставке
  • Коды для режима строительства

Коды на консолях и коды на ПК/Mac

Процесс использования кодов на ПК/Mac и на таких игровых приставках, как PlayStation®4 или Xbox One, слегка различается. Главное, запомните: включив коды на игровых приставках, вы перестанете получать достижения и призы в текущем сохранении. Чтобы их получить, придется играть по старинке, то есть без кодов.

В частности, к кодам, блокирующим достижения и призы в текущем сохранении, относятся любые коды, для использования которых требуется ввести testingcheats true. (Имейте в виду, что достижения и призы будут доступны в других сохранениях!)

К счастью, коды для режима строительства, часть из которых мы перечислили ниже, жульничеством не считаются!

Как открыть консоль для кодов на игровой приставке

Чтобы ввести код в игре The Sims 4 на PlayStation 4 или Xbox One, запустите игру или откройте сохраненную. Откройте консоль для кодов, удерживая все четыре плечевые кнопки в игре. Если вы подключили клавиатуру и мышь к своей игровой приставке, нажмите CTRL+Shift+C. Откроется диалоговое окно.

В режиме строительства обычно достаточно просто ввести код, в то время как для кодов в режиме жизни может потребоваться дополнительный шаг. Читайте об этом здесь.

Чтобы закрыть консоль после введения кода, заново нажмите четыре плечевые кнопки (или ESC на клавиатуре).

Для работы некоторых кодов необходимо особым образом нажать на сима или объект. Как это сделать: удерживая кнопку круг, нажмите кнопку X (PlayStation 4) или, удерживая кнопку B, нажмите кнопку A (Xbox One).

Коды для режима строительства

В The Sims 4 есть три разных режима: режим создания персонажа, режим строительства и режим жизни. Вводить коды для режима строительства можно и в режиме жизни, но использовать их можно только в режиме строительства. К кодам для режима строительства относятся коды для перемещения объектов, пополнения каталога покупки/строительства и многие другие.

Коды для режима жизни можно посмотреть здесь.

Удерживайте L2+R2 (PlayStation 4) или LT+RT (Xbox One) и нажмите вверх/вниз на крестовине

Позволяет менять размер выбранного предмета

Дает возможность строить в любом месте, включая закрытые участки

Открывает доступ ко всем наградам в режиме покупки

Снимает ограничения на размещение предметов

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

Игроки The Sims со всего мира используют коды. Мы ни в коем случае это не запрещаем. Даже наоборот, только поощряем! Читайте дальше, чтобы узнать, как использовать коды в The Sims™ 4 на игровых приставках, или читайте про коды на ПК/Mac здесь.

  • Коды на консолях и коды на ПК/Mac
  • Как открыть консоль для кодов на игровой приставке
  • Коды для режима жизни
    • Коды для разного
    • Коды для денег
    • Коды для карьеры
    • Коды для потребностей

    Коды на консолях и коды на ПК/Mac

    Процесс использования кодов на ПК/Mac и на таких игровых приставках, как PlayStation®4 или Xbox One, слегка различается. Главное, запомните: включив коды на игровых приставках, вы перестанете получать достижения и призы в текущем сохранении. Чтобы их получить, придется играть по старинке, то есть без кодов.

    В частности, к кодам, блокирующим достижения и призы в текущем сохранении, относятся любые коды, для использования которых требуется ввести testingcheats true. (Имейте в виду, что достижения и призы будут доступны в других сохранениях!)

    К счастью, чит-коды для режима строительства жульничеством не считаются!

    Как открыть консоль для кодов на игровой приставке

    Чтобы вводить коды для режима жизни в The Sims 4 на PlayStation или Xbox, сначала необходимо начать новую игру или загрузить сохраненную. Откройте консоль для кодов, удерживая все четыре плечевые кнопки в игре. Если вы подключили клавиатуру и мышь к своей игровой приставке, нажмите CTRL+Shift+C. Откроется диалоговое окно.

    Для включения режима чит-кодов введите testingcheats true, а затем тот или иной код! Чтобы закрыть консоль кодов, снова нажмите все четыре плечевые кнопки (или ESC, если используете мышь и клавиатуру).

    Для работы некоторых кодов необходимо особым образом нажать на сима или объект. Как это сделать: удерживая кнопку круг, нажмите кнопку X (PlayStation 4) или, удерживая кнопку B, нажмите кнопку A (Xbox One).

    Коды для режима жизни

    В The Sims 4 есть три разных режима: режим создания персонажа, режим строительства и режим жизни. Все следующие коды вводятся в режиме жизни. Сюда относятся коды для денег, карьеры, отношений, потребностей, навыков и прочего.

    О кодах для режима строительства рассказано здесь.

    Коды для разного

    Завершает текущую часть жизненной цели.

    Открывает меню создания персонажа.

    Включает/выключает счета для семьи.

    Коды для денег

    freerealestate на /off

    Делает все дома бесплатными. Вводится на экране мира или города.

    Добавляет 1000 симолеонов.

    Добавляет средства в указанном [количестве].

    Добавляет 50 000 симолеонов.

    Коды для карьеры

    careers.demote [название карьеры]

    Дает персонажу понижение в указанной карьере.

    careers.promote [название карьеры]

    Дает персонажу повышение в указанной карьере.

    careers.remove_career [название карьеры]

    Заставляет персонажа бросить указанную карьеру.

    Коды для потребностей

    Перезагружает зависшего персонажа.

    Удовлетворяет все потребности активного персонажа.

    Дает активному персонажу указанное количество баллов удовлетворения.

    Удаляет настрои и возвращает персонажа в нейтральное настроение.

    Удовлетворяет все потребности всех персонажей в текущем доме.

    *Дополнительный контент нужно приобрести отдельно, требуются все обновления основной игры. Могут требоваться учетная запись актуальной платформы, подключение к сети и учетная запись EA. Действуют возрастные ограничения.

    The Sims™ 4 The Sims™ Mobile The Sims™ FreePlay facebook youtube instagram twitter Библиотека игр Подписка EA app Информация Специальные возможности Помощь Austria Belgium Bulgaria Croatia Cyprus Czech Republic Denmark Estonia Finland France Germany Greece Hungary Iceland Ireland Italy Latvia Liechtenstein Lithuania Luxembourg Malta Netherlands Norway Poland Portugal Romania Slovakia Slovenia Spain Sweden Switzerland Россия United States United Kingdom Australia France Deutschland Italia 日本 Polska Brasil España México 简体中文 대한민국 繁體中文 Юридическая информация и конфиденциальность Пользовательское соглашение Правила соблюдения конфиденциальности информации и идентификации пользователя (ваша конфиденциальность) Обновления сетевых компонентов Безопасность Условия использования YouTube Политика конфиденциальности и Условия использования Google

    Строки кода, которые изменили мир

    image

    В 2009 году Facebook добавила в интерфейс своей социальной сети код, изменивший мир — кнопку «Like». «Лайк» был детищем нескольких программистов и дизайнеров — Лии Перлман и Джастина Розенштейна. Они предположили, что пользователи Facebook часто бывают слишком заняты, чтобы оставлять комментарии к постам своих друзей, и что поэтому им нужна простая кнопка, нажав которую можно было бы дать понять друзьям, что их пост вам понравился. Так оценивать и поощрять друг друга пользователям стало бы легче, а значит и делали бы они это чаще.

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

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

    ❯ Бинарные перфокарты (первый код)

    Двоичное кодирование появилось задолго до компьютеров. Базиль Бушон считается первым, кто проделал отверстия в бумаге и использовал её для управления машиной: в 1725 году он изобрел ткацкий станок, который ткал узоры на основе инструкций, содержащихся в перфорированной бумаге. Отверстие — это «единица», а отсутствие отверстия — это «ноль». Как бы многое ни изменилось с тех пор, основной «строительный блок» кода остался прежним.

    ❯ Первый современный код

    ENIAC был первым программируемым электронным компьютером. Завершённый в 1945 году, он настраивался для каждой новой задачи путём прокладки соединений между его многочисленными компонентами. Несколько лет спустя Клара Дан фон Нейман и Николас Метрополис подключили ENIAC к первому запуску кода современного вида: сотни числовых инструкций, выполняемых из постоянной памяти (переключатели таблицы функций ENIAC). Они смоделировали взрыв нескольких атомных бомб, оцениваемых в Лос-Аламосской национальной лаборатории в Нью-Мексико, с использованием метода Монте-Карло, когда сложная система моделируется шаг за шагом, чтобы многократно отобразить распределение вероятностей возможных результатов. Дальние потомки этого кода до сих пор используются в Лос-Аламосе.

    ❯ Компилятор Грейс Хоппер

    Обнаруженный Грейс Хоппер первый компьютерный «баг» — мотылёк, залетевший в компьютер Mark II и вызвавший замыкание

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

    Некоторые насмехались над этой идеей, но к началу 1950-х годов она разработала компилятор — набор инструкций, который преобразует код, состоящий из слов, в код более низкого уровня, непосредственно обрабатываемый машиной. С помощью этого инструмента она и её лаборатория разработали FLOW-MATIC, первый язык программирования, включающий английские слова на основе этого процесса.

    (0) INPUT INVENTORY FILE-A PRICE FILE-B ; OUTPUT PRICED-INV FILE-C UNPRICED-INV
    FILE-D ; HSP D .
    (1) COMPARE PRODUCT-NO (A) WITH PRODUCT-NO (B) ; IF GREATER GO TO OPERATION 10 ;
    IF EQUAL GO TO OPERATION 5 ; OTHERWISE GO TO OPERATION 2 .
    (2) TRANSFER A TO D .
    (3) WRITE-ITEM D .
    (4) JUMP TO OPERATION 8 .
    (5) TRANSFER A TO C .
    (6) MOVE UNIT-PRICE (B) TO UNIT-PRICE (C) .
    (7) WRITE-ITEM C .
    (8) READ-ITEM A ; IF END OF DATA GO TO OPERATION 14 .
    (9) JUMP TO OPERATION 1 .
    (10) READ-ITEM B ; IF END OF DATA GO TO OPERATION 12 .
    (11) JUMP TO OPERATION 1 .
    (12) SET OPERATION 9 TO GO TO OPERATION 2 .
    (13) JUMP TO OPERATION 2 .
    (14) TEST PRODUCT-NO (B) AGAINST ; IF EQUAL GO TO OPERATION 16 ;
    OTHERWISE GO TO OPERATION 15 .
    (15) REWIND B .
    (16) CLOSE-OUT FILES C ; D .
    (17) STOP . (END)

    Сэмпл программы FLOW-MATIC

    ❯ Spacewar!

    hp1, dap hp2
    count i ma1, hp2
    law hp3 / next step
    dac i ml1
    law 7
    dac i mb1
    random
    scr 9s
    sir 9s
    xct hr1
    add i mx1
    dac i mx1
    swap
    add i my1
    dac i my1
    random
    scr 9s
    sir 9s
    xct hr2
    dac i mdy
    dio i mdx
    setup .hpt,3
    lac ran
    dac i mth
    hp4, lac i mth
    sma
    sub (311040
    spa
    add (311040
    dac i mth
    count .hpt,hp4
    xct hd2
    dac i ma1
    hp2, jmp .

    Эта процедура позволяет в игре Spacewar! кораблям не сталкиваться друг с другом.

    В конце 1961 года группа молодых сотрудников MIT получила доступ к компьютеру DEC PDP-1, который имел 18-битную длину слова и использовал бумажную ленту для хранения программ. В течение пяти месяцев эти программисты создали игру, где два игрока управляют космическими кораблями, которые сражаются в космической битве один на один.

    Spacewar! быстро распространилась среди раннего «хакерского» сообщества. Позже DEC распространяла его с каждым PDP-1, предварительно загружая в основную память. Программа значительно повлияла на небольшое сообщество программистов 1960-х годов и вдохновила поколения создателей видеоигр. Игра продолжает жить в эмуляциях и регулярно демонстрируется в Музее компьютерной истории на последнем действующем PDP-1, которому более 50 лет (Жалоб от пользователей нет. Отчетов о сбоях нет. И поддержка по-прежнему доступна).

    ❯ Электронная почта

    WHENEVER A(1).E.FENCE.OR.A(2).E.FENCE.OR.A(3).E.FENCE
    PRFULL.($’R’1INSTRUCTIONS:$)
    PRFULL.($ ‘4MAIL NAME1 NAME2 PROB1 PROG1 PROB2 PROG2 . $)
    PRFULL.($ WHERE ‘=NAME1 NAME2’= IS THE FILE TO BE MAILED,$)
    PRFULL.($ AND ‘=PROBN PROGN’= ARE DIRECTORIES TO WHICH ‘8$,
    1 $IT IS TO BE SENT.’B$)
    CHNCOM.(0)
    END OF CONDITIONAL

    В том же 1961 году программисты того же MIT создали систему, позволяющую нескольким пользователям входить в один и тот же компьютер, и они начали оставлять друг другу небольшие сообщения. В 1965 году группа программистов решила создать формальную систему команд для отправки, получения и отображения этих маленьких цифровых посланий. Высшее руководство поначалу сопротивлялось команде MAIL , думая, что это немного легкомысленно, но её использование стало настолько популярным, что к 1971 году Массачусетский технологический институт даже увидел первый спам: сообщение против войны во Вьетнаме.

    ❯ Код спасения лунного модуля «Аполлон-11»

    POODOO INHINT
    CA Q
    TS ALMCADR

    TC BANKCALL
    CADR VAC5STOR # STORE ERASABLES FOR DEBUGGING PURPOSES.

    INDEX ALMCADR
    CAF 0
    ABORT2 TC BORTENT

    OCT77770 OCT 77770 # DONT MOVE
    CA V37FLBIT # IS AVERAGE G ON
    MASK FLAGWRD7
    CCS A
    TC WHIMPER -1 # YES. DONT DO POODOO. DO BAILOUT.

    TC DOWNFLAG
    ADRES STATEFLG

    TC DOWNFLAG
    ADRES REINTFLG

    TC DOWNFLAG
    ADRES NODOFLAG

    TC BANKCALL
    CADR MR.KLEAN
    TC WHIMPER

    У управляющего компьютера «Аполлона» (AGC) было меньше вычислительной мощности, чем у сегодняшних поздравительных открыток, и всё же он работал. Эта ограниченная мощность и объём памяти означали, что задачи должны были тщательно продуманы. Команда разработчиков программного обеспечения AGC знала, что всегда существуют непредвиденные обстоятельства. Поэтому они создали BAILOUT . Когда на компьютере возникал риск нехватки места, AGC запускал BAILOUT , чтобы «запаузить» менее важные операции, чтобы поддерживать работу жизненно важных.

    Когда посадочный модуль Eagle опускался на поверхность Луны, на высоте 15 000 метров AGC высветил сигнал тревоги «1202», который ни Нил Армстронг, ни диспетчер полётов в Хьюстоне сразу не распознали. Но менее чем через 30 секунд компьютерные эксперты из Центра управления полётами сообщили, что программное обеспечение AGC делает именно то, что и должно: откладывает менее приоритетные задачи и запускает важные (так быстро, что это незаметно для экипажа). Армстронг и Базз Олдрин продолжали получать то, что им было необходимо от AGC, чтобы не сбиться с пути.

    ❯ Hello, world!

    Когда вы садитесь изучать новый язык программирования, первое, что вам нужно сделать, — заставить компьютер отобразить фразу «Hello, world!». Самый известный ранний пример взят из меморандума Bell Laboratories под названием «Programming in C — A Tutorial», написанного в 1974 году.

    «Hello, world!» это хороший пример педагогики. Это небольшая достижимая задача, которая быстро даёт чувство выполненной работы. Это стандарт, поэтому он помогает проиллюстрировать различия между разными языками программирования. Это также быстрый и простой способ для программистов убедиться, что всё работает правильно после установки новой среды.

    ❯ Строка с завершающим нулём

    Самая катастрофическая ошибка проектирования в истории вычислительной техники

    В 1972 году Деннис Ритчи принял судьбоносное решение: представить текст на своём новом языке с помощью чего-то, что называется строкой с нулем в конце. Эта концепция существовала и раньше, но он закрепил её в своем новом языке, который назвал C, и с тех пор наследие этого решения остаётся с нами.

    Чрезвычайно распространённая ошибка в коде C — копирование длинной строки в более короткую, что означает переполнение строки и уничтожение других данных. Помимо простого нарушения работы программы, такие ошибки можно использовать для изменения поведения программы. Почти все эксплойты безопасности, о которых вы когда-либо слышали, берут свои истоки отсюда, начиная с червя Морриса в 1988 году.

    Вы можете аккуратно кодировать на C, чтобы избежать подобных ошибок, но язык делает этот класс ошибок лёгким для совершения и трудным для обнаружения. Почти все современные языки избегают строк с завершающим нулем, но C и C++ по-прежнему 50 лет спустя имеют этот класс багов.

    ❯ IRC

    /join #cats
    Internet Relay Chat (IRC), появился ещё до того, как большинство людей смогли бы рассказать, что такое Интернет. Это был первый популярный способ общаться в режиме реального времени с другими людьми в групповом канале. Первые пользователи входили в систему, чтобы делиться новостями. Сам чат требовал своего рода код: чтобы присоединиться к каналу, нужно было ввести /join #[название канала] . Если вы хотели сообщить что-то о себе, надо было набрать /me так устал , и ваше имя отмечалось звездочкой со словами «так устал». Не смотря на кажущуюся простоту, для многих это была первая проба пера с использованием команды на компьютере.

    ❯ Червь Морриса

    /join #cats
    checkother() /* 0x57d0 */
    int s, l8, l12, l16, optval;
    struct sockaddr_in sin; /* 16 bytes */

    optval = 1;
    if ((random() % 7) == 3)
    return; /* 612 */

    s = socket(AF_INET, SOCK_STREAM, 0);
    if (s < 0)
    return;

    Это выдержка из ключевой функции в коде червя Морриса.

    И Роберт Моррис, и сам Интернет были молоды, когда 23-летний аспирант Корнелла, выпустил «червя Морриса», запустив то, что было названо «первой крупной атакой в Интернете». Приблизительно 10 % из 60 000 компьютеров, подключённых к Интернету, были повреждены. Был нанесён ущерб на миллионы долларов, что вынудило New York Times впервые напечатать слово «Интернет». Даже технически подкованные люди были удивлены, увидев, насколько обширен охват действия червя. Моррис, который говорил, что никогда не собирался причинять такой большой ущерб, стал первым человеком, которому было предъявлено обвинение в соответствии с Законом о компьютерном мошенничестве и злоупотреблениях. После того, как его приговорили к трём годам условно, он стал соучредителем знаменитого инкубатора стартапов Y Combinator и доцентом компьютерных наук в MIT (и снова MIT).

    ❯ HTML-гиперссылка

    Тим Бернерс-Ли изменил мир, когда представил гиперссылку, фрагмент кода, который позволяет любому сёрфить по Всемирной паутине. Концепция связывания информации не была особенно новой. Что было в новинку, так это знаки препинания, которые были собраны вместе из различных соглашений компьютерных систем, чтобы получить формат «URL-адреса двоеточие-слэш-слэш». Концепция гиперссылки на что угодно сделала эту идею перспективной. Гиперссылка Бернерса-Ли могла бесплатно стать кнопкой «Купить сейчас», «Like», «ретвитом» и многим другим.

    ❯ JPEG

    double *NaiveDct_transform(double vector[], size_t len) < if (SIZE_MAX / sizeof(double) < len) return NULL; double *result = malloc(len * sizeof(double)); if (result == NULL) return NULL; double factor = M_PI / len; for (size_t i = 0; i < len; i++) < double sum = 0; for (size_t j = 0; j < len; j++) sum += vector[j] * cos((j + 0.5) * i * factor); result[i] = sum; >return result; >

    Дискретное косинусное преобразование, лежащее в основе JPEG.

    Сегодня стало само собой разумеющимся, что можно заполнять память смартфонов огромным количеством фотографий. Но раньше изображения требовали огромных объёмов данных. В 1992 году Объединённая группа экспертов по фотографии опубликовала спецификации стандарта JPEG, чтобы уменьшить размер файлов. Хотя в то время были доступны и другие форматы сжатия, JPEG стал мировым стандартом, отчасти потому, что он был бесплатным. Файлы JPEG используют сжатие с потерями — процесс, который удаляет аспекты изображения, невидимые для человеческого глаза, такие как небольшие различия в цвете. Сжатие с потерями было также важно для изобретения кое-чего ещё, представленного в 1992 году: MP3, формата аудиофайлов, который стал возможен благодаря отбрасыванию битов данных, неразличимых человеческим ухом.

    ❯ Браузер Mosaic

    MakeImage(dsp, data, width, height, depth, img_info, clip) Display *dsp; unsigned char *data; int width, height; int depth; ImageInfo *img_info; int clip; < int linepad, shiftnum; int shiftstart, shiftstop, shiftinc; int bytesperline,bpp; int temp; int w, h; XImage *newimage; unsigned char *bit_data, *bitp, *datap; Visual *theVisual; int bmap_order; unsigned long c; int rshift, gshift, bshift; #ifdef NEW switch(bpp=bits_per_pixel(dsp,depth)) #else switch(depth)

    Рождение Интернета, каким мы его видим.

    Предыдущие браузеры были неуклюжими, хоть и отображали текст хорошо, но вынуждали просматривать изображения в отдельном окне. В 1993 году разработчикам во главе с Марком Андриссеном потребовался браузер, в котором изображения и текст располагались бы рядом. И они создали Mosaic. Благодаря им сеть стала выглядеть так, как если бы это был классный цифровой журнал или газета. Это также подтолкнуло стандарты HTML к ускоренному развитию, поскольку веб-мастера по всему миру начали требовать всё больше тегов, чтобы сайты выглядели круче.

    ❯ Пиксель отслеживания

     

    Пиксель отслеживания просмотра страниц Facebook.

    Эти крошечные фрагменты HTML являются основой цифровой рекламы, что ставит их в центр многих современных проблем: слежки, консолидации СМИ и даже дезинформации. Ещё в 1990-х веб-дизайнеры использовали прозрачные однопиксельные изображения для настройки макетов страниц. Но компьютер должен загрузить каждое изображение на веб-странице — даже один незаметный пиксель. В 1993 году компании начали извлекать из этого выгоду: отслеживая загрузки пикселей, они узнавали, кто и где находится, и инициировали загрузку файла cookie в их браузер. Этот файл cookie позволяет рекламодателям следить за пользователями на сайтах.

    Именно успех отслеживания пикселей привел к появлению кнопки «Like» в Facebook, которая отслеживает вас на каждом веб-сайте, где она встроена. Этот массивный сбор данных позволил реализовать гипертаргетинг, который сделал рекламу в Facebook такой успешной, уведя миллиарды доходов от медиакомпаний. Это привело к процветанию целенаправленной дезинформации и распространению бизнес-моделей, основанных на слежке.

    ❯ Wiki

    Начало для Википедии.

    sub AsLink < local($num) = (@_); local($ref) = $old; defined $ref ? ($ref =~ /\.(?:gif|jpg|jpeg|png)$/i ? "" : "[$num]") : "[$num]"; >

    WikiBase от WikiWikiWeb, последний раз редактировалось 13 июня 2000 г.

    Уорд Каннингем впервые разработал Wiki на своём сайте WikiWikiWeb, который он представлял как простейший способ обмена информацией. Он использовал базовый язык разметки, который включает в себя скобки, объединение слов без пробелов и апострофы вокруг текста, чтобы редакторы могли обновлять и упорядочивать информацию, связанную между страницами, — система, которая до сих пор широко используется в Википедии, запущенной в 2001 году.

    ❯ Первая всплывающая реклама

    window.open('https://timeweb.cloud/')

    Базовый код для открытия нового окна с заданным URL-адресом.

    Всплывающая реклама была разработана для решения реальной проблемы: компания Tripod позволяла людям размещать любой контент, который они хотели, на бесплатной домашней странице. Чтобы субсидировать сервис, владельцы компании продавали рекламу. Но рекламодателям не всегда нравился контент страницы, на которой они размещались, поэтому было принято решение отделить рекламу от пользовательского контента. Так появился этот бич Интернета.

    ❯ Алгоритм PageRank от Google

    import numpy as np def pagerank(M, num_iterations=100, d=0.85): N = M.shape[1] v = np.random.rand(N, 1) v = v / np.linalg.norm(v, 1) iteration = 0 while iteration < num_iterations: iteration += 1 v = d * np.matmul(M, v) + (1 - d) / N return v

    До PageRank поисковые системы пытались найти информацию, основываясь на том, соответствуют ли слова запроса словам на сайтах. Но у Ларри Пейджа и Сергея Брина возникла блестящая идея: они создали алгоритм, который ранжирует известность страницы в зависимости от того, сколько других страниц в Интернете ссылаются на неё. Именно это отвечает за доминирование среди браузеров, которым сегодня пользуется Google.

    ❯ Пропорциональное справедливое планирование для беспроводных сетей

    [~, b_user] = max(drc(i, :)/_avg_thruput(i, :));
    avg_thruput(i+1, 🙂 = (i/(i+1))*avg_thruput(i, :);
    avg_thruput(i+1, b_user) = (i/(i+1))*avg_thruput(i, b_user)+drc(i, b_user)/(i+1);

    «Управляемая передатчиком система с несколькими приёмниками, использующая разнесение путей для справедливого увеличения пропускной способности», Патент США № 6449490, 10 сентября 2002 г.

    Всего три строки кода, которые заставляют работать все сотовые сети 3G и 4G по всему миру.

    Часто в каком-либо населённом пункте имеется намного больше мобильных телефонов, чем могут обслуживать вышки базовых станций. Это может препятствовать надежной передаче данных. Таким образом, вышкам необходимо решить проблему расстановки приоритетов: убедиться, что все пользователи могут завершить свои звонки, принимая во внимание тот факт, что пользователям в более «шумных» местах необходимо предоставить больше ресурсов для получения того же качества обслуживания. Решение? Компромисс между потребностями отдельных пользователей и общей производительностью всей сети. Пропорциональное справедливое планирование гарантирует, что все пользователи имеют хотя бы минимальный уровень обслуживания при максимальной общей пропускной способности сети. Это делается путём предоставления более низкого приоритета пользователям, которым, как ожидается, потребуется больше ресурсов.

    ❯ Биткоин

    double AttackerSuccessProbability(double q, int z) < double p = 1.0 - q; double lambda = z * (q / p); double sum = 1.0; int i, k; for (k = 0; k return sum; >

    Код, без которого не существовал бы Биткоин.

    Являетесь ли вы сторонником биткоина, скептиком или не совсем уверены, что это такое, вы, вероятно, знаете, что это хайповая тема. Сам Биткоин привлёк сотни миллиардов долларов прямых инвестиций, но более важно то, что лежащий в основе технологический принцип, блокчейн, был исследован для бесконечных приложений, от обеспечения демократических выборов до прекращения сексуальных контактов без согласия.

    Все началось в 2008 году, когда Сатоши Накамото опубликовал официальный документ, в котором объявил о запуске Биткоин. Документ включал в себя эти строки кода, которые вычисляют бесконечно малую вероятность того, что злоумышленник сможет захватить блокчейн Биткоина. Математика убедила мир в том, что системе, созданной ненадёжными людьми, тем не менее, можно доверять. Это проложило путь к созданию как минимум около 3000 других криптовалют.

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

    Коды ответа HTTP

    Код ответа (состояния) HTTP показывает, был ли успешно выполнен определённый HTTP запрос. Коды сгруппированы в 5 классов:

    1. Информационные 100 - 199
    2. Успешные 200 - 299
    3. Перенаправления 300 - 399
    4. Клиентские ошибки 400 - 499
    5. Серверные ошибки 500 - 599

    Коды состояния определены в 10-ой секции RFC 2616. Обновленную спецификацию можно найти в RFC 7231 .

    Если вы получили код ответа (состояния), которого нет в данном списке, в таком случае он является не стандартизированным кодом ответа (состояния), вероятней всего он кастомный сервера.

    Следующая таблица содержит список всех кодов и их значения:

    • GET: "ПОЛУЧИТЬ". Запрошенный ресурс был найден и передан в теле ответа.
    • HEAD: "ЗАГОЛОВОК". Заголовки переданы в ответе.
    • POST: "ПОСЫЛКА". Ресурс, описывающий результат действия сервера на запрос, передан в теле ответа.
    • TRACE: "ОТСЛЕЖИВАТЬ". Тело ответа содержит тело запроса полученного сервером.

    "Множественный выбор". Этот код ответа присылается, когда запрос имеет более чем один из возможных ответов. И User-agent или пользователь должен выбрать один из ответов. Не существует стандартизированного способа выбора одного из полученных ответов.

    "Перемещён на постоянной основе". Этот код ответа значит, что URI запрашиваемого ресурса был изменён. Возможно, новый URI будет предоставлен в ответе.

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

    "Перенаправление на постоянной основе". Это означает, что ресурс теперь постоянно находится в другом URI, указанном в заголовке Location: HTTP Response. Данный код ответа имеет ту же семантику, что и код ответа 301 Moved Permanently , за исключением того, что агент пользователя не должен изменять используемый метод HTTP: если POST использовался в первом запросе, POST должен использоваться и во втором запросе.

    Примечание: Это экспериментальный код ответа, Спецификация которого в настоящее время находится в черновом виде.

    Этот ответ отсылается, когда веб сервер после выполнения server-driven content negotiation, не нашёл контента, отвечающего критериям, полученным из user agent.

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

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

    Запрос отклонён, потому что сервер требует указание заголовка Content-Length , но он не указан.

    Размер запроса превышает лимит, объявленный сервером. Сервер может закрыть соединение, вернув заголовок Retry-After

    Found a content problem with this page?

    • Edit the page on GitHub.
    • Report the content issue.
    • View the source on GitHub.

    This page was last modified on 3 авг. 2023 г. by MDN contributors.

    Your blueprint for a better internet.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *