Как стать автором
Обновить
3
0
Кирилл Темненков @General_Manjago

бекенд разработчик на Java и Kotlin

Отправить сообщение

Как мы проходили кризисы 2020-2023 и как заранее готовились к ним

Время на прочтение10 мин
Количество просмотров15K

Прикол этого поезда на Шри-Ланке в том, что если смотреть вперёд, повышаются шансы встретиться со стенкой тоннеля

Вообще, 90% работы делается до кризиса: вы занимаете нужную позицию, накапливаете ресурсы, строите информационную сеть. А потом наступает коллизия.

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

Многие вещи надо делать заранее. Например, если бешеный экскаватор отрезал вам дата-центр, хорошо бы иметь второй и третий, механики переключения, время от времени проводить учения, вот это всё. С возрастом вы узнаёте, что на стойке в офисе должен лежать договор аренды, причём «Погодите, я сейчас распечатаю» явно не работает, надо именно готовую нотариальную копию. Должны быть механики резкого расширения колл-центра, приоритезации разных задач на случай перегрузок (прям сортировка по Пирогову, сначала пассажиров с отправлениями сегодня, потом остальных) и так далее. То есть для многих сценариев надо подумать и сделать что-то заранее. В рамках подготовки среди прочего мы поняли, что нужно зачистить собственные соцсети, перестать общаться в «грязных» мессенджерах, снести некоторые антивирусы, поговорить с адвокатом про коллизии в его практике.

В общем, у нас создалось полное ощущение, что мы подготовились. Первый же кризис — пандемия-2019 — показал что мы готовы чуть менее, чем никак.

То есть даже не так. Медленные решения мы принимали отлично, а вот тактический уровень очень сильно пострадал. В общем, для начала давайте вернёмся в апрель 2020. Помните те милые времена, когда горела Австралия и какой-то вирус показывал нездоровую контагиозность?
Читать дальше →
Всего голосов 74: ↑70 и ↓4+88
Комментарии17

Разместить FORTH в 512 байтах

Время на прочтение25 мин
Количество просмотров6.1K

Оригинал текста Июнь 10, 2021 - 38 минут чтения

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

11 лет назад vanjos72 описал на Reddit то, что он называет мысленным экспериментом: что если бы вас заперли в комнате с IBM PC, на котором нет операционной системы? Какое минимальное количество программного обеспечения вам понадобилось бы для начала, чтобы вернуться к комфортной работе?

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

Самым минимальным вариантом может быть простая программа, которая принимает ввод с клавиатуры, а затем переходит на нее. Поскольку подпрограммы ввода с клавиатуры в BIOS реализуют escape-коды alt+numpad, вам даже не нужно писать код преобразования базы.2Более того, циклу даже не нужно условие завершения а просто пишите в буфер обратно, пока не столкнетесь с существующим кодом и не перезапишете точку перехода. Такой подход занимает всего 14 байт.

Путь в четвёртое.
Всего голосов 19: ↑19 и ↓0+19
Комментарии2

Доказана омнипериодичность игры «Жизнь» Конвея

Уровень сложностиПростой
Время на прочтение12 мин
Количество просмотров18K

Сообщество игры "Жизнь", клеточного автомата, изобретённого Джоном Конвеем, с давних пор стремилось найти осцилляторы — стабильные конфигурации, которые повторяются с определённой периодичностью во времени — для каждого натурального числа. И вот, наконец, 21 июля 2023 года был найден осциллятор для последнего недостающего периода — 41, завершая таким образом доказательство омнипериодичности.

В этой статье я расскажу историю открытия осцилляторов для всех периодов до 42 включительно, а также про семейство осцилляторов, включающее любой период от 43 и выше.

Читать далее
Всего голосов 113: ↑113 и ↓0+113
Комментарии13

Ломаем хаскелем Brainfuck

Уровень сложностиСложный
Время на прочтение28 мин
Количество просмотров10K

Немного о bfc


Brainfuck — очень глупый язык. Там есть лента из 30к ячеек, по байту каждая. Команды bfc это:


  • Передвижение по ленте влево и вправо (символы < и >)
  • Увеличение и уменьшение значения в ячейке (символы + и -)
  • Ввод и вывод текущей ячейки (символы . и ,)
  • И цикл while, который продолжается пока значение в текущей ячейке не ноль. [ и ] это начало и конец цикла соответственно

Программировать на bfc сложно. Но, как известно, любую проблему можно решить добавлением слоя абстракции (кроме проблемы большого количества абстракций).

Читать дальше →
Всего голосов 84: ↑84 и ↓0+84
Комментарии17

Поговорим об оптимизирующих компиляторах. Сказ первый: SSA-форма

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров17K

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

Коротко обо мне. Меня зовут Макс, и так получилось, что я вот уже 10 лет, почти с самого начала своей карьеры, занимаюсь оптимизирующими компиляторами. Я начинал в Intel, потом перешёл в Azul Systems, год провёл в Cadence и вернулся обратно, всё это время занимаясь компиляторными оптимизациями для Java, C++ и нейросетевых моделей. На момент написания статьи у меня чуть за 900 патчей в LLVM, большинство из них посвящено цикловым оптимизациям.

За это время я провёл десятки собеседований на позиции как интернов, так и инженеров сеньорного уровня, и довольно часто люди, приходя на эти собеседования, многих вещей не знают или знают поверхностно. И я подумал: а мог бы я написать такой цикл статей, чтобы человек, прочитав их, узнал бы всю ту базу, которая, на мой собственный взгляд, необходимо начинающему компиляторному инженеру? Очень бы хотелось, чтобы новичку в этой области можно бы было дать один (относительно небольшой по объёму) набор текстов, чтобы он получил оттуда всё необходимое для старта. Это не перевод, текст оригинальный, поэтому в нём могут быть ошибки и неточности, которые я буду рад исправить, если вы мне их укажете.

Итак, поехали.

Погрузиться
Всего голосов 93: ↑91 и ↓2+117
Комментарии58

Spring Security и архитектура наследования ролей в не плоской модели

Уровень сложностиСредний
Время на прочтение18 мин
Количество просмотров14K

Когда речь заходит об авторизации, роли вступают в игру. Если модель плоская, то все просто. Пользователь обладает определенным набором привелегий и при запросе достаточно лишь проверить, что нужное право доступа присутствует в коллекции. Но как быть, если у пользователя могут быть разные наборы ролей для разных сущностей? Например, я обладаю ролью EDITOR в посте в социальной сети, но имею только VIEWER в другом. Также могут быть определены правила наследования. Если админ выдает дает мне роль EDITOR, то я автоматически приобретаю привилегию VIEWER. При этом, если я EDITOR, роль ADMIN у меня не появляется.

Как увязать все эти детали в коде и при этом не превратить продукт в большую кучу грязи? В рамках этой статьи я расскажу вам:

1. Как реализовать наследование ролей в Java?

2. Как протестировать полученную иерархию?

3. Как применить решение в рамках Spring Security?

Читать далее
Всего голосов 13: ↑13 и ↓0+13
Комментарии5

Как самому за один вечер собрать минимальную ОС Linux из исходного кода

Уровень сложностиСредний
Время на прочтение11 мин
Количество просмотров80K
image

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

Ещё больше не даёт покоя мне тот факт, что все ядра операционной системы Linux, которые работают на различных устройствах и серверах, собраны из исходного кода, находящегося в репозитории на сайте kernel.org.

Такие разные устройства, а операционная система, работающая на них, собрана из одного и того же исходного кода! Это утверждение, конечно, верно лишь отчасти, так как фактически ядро обычно расширено и модифицировано разработчиками конкретных дистрибутивов Linux, а также разработчиками конкретных устройств, но общего исходного кода достаточно много.

Мне всегда хотелось собрать операционную систему Linux самому из исходного кода, но процесс этот всегда казался сложным и запутанным, да и многого я не понимал. Но всё-таки в определённый момент времени я накопил достаточное количество знаний, чтобы осуществить свою мечту. В этой статье я хочу рассказать вам, как собрать минимальную Linux из исходного кода и запустить её у себя на компьютере.
Читать дальше →
Всего голосов 83: ↑82 и ↓1+108
Комментарии81

Молодежь нынче пошла не та, или поиск системного аналитика «за 200»

Время на прочтение8 мин
Количество просмотров111K

Всем привет!

Меня зовут Коля, и я периодически собеседую кандидатов на позицию системного аналитика. За последние два месяца провёл порядка 20 десятков собеседований. В основном были кандидаты с опытом 1.5-3 года, на пути к уровню Middle и с зарплатными ожиданиями 150-200 тысяч рублей в месяц.

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

Читать далее
Всего голосов 133: ↑120 и ↓13+135
Комментарии376

Монады как паттерн переиспользования кода

Время на прочтение24 мин
Количество просмотров69K


В предыдущей статье мы обсуждали, почему функциональное программирование это совсем не то, что распиарено, и что оно совершенно не противоречит ООП, так, что даже сам "Дядя Боб" пишет про хороший ФП дизайн порождающий хороший ООП дизайн программы (и наоборот).


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


Но ведь в интернете буквально сотни статей про ФП и монады, зачем писать еще одну?


Дело в том, что все их (по крайней мере те что я читал) можно поделить условно на две категории: с одной стороны это статьи где вам объяснят что монада это моноид в категории эндофункторов, и что если монада T над неким топосом имеет правый сопряжённый, то категория T-алгебр над этой монадой — топос. На другой стороне располагаются статьи, где вам рассказывают, что монады — это коробки, в которых живут собачки, кошечки, и вот они из одних коробок перепрыгивают в другие, размножаются, исчезают… В итоге за горой аналогий понять что-то содержательное решительно невозможно.


Получается, что первые обычно полезны тем, кто и так знает обсуждаемую тему, а вторые даже не знаю на кого рассчитаны: сколько я их не прочитал, ничего полезного понять из них мне не удалось.


Я же хотел бы занять промежуточную позицию, и рассказать про монады без заумных терминов, но и без котиков, используя понятные ООП разработчикам термины: интерфейсы, паттерны, копипаста, инкапсуляция сложности, бойлерплейт, и так далее. В процессе работы над статьёй ни один термин теории категории использован не был.

Читать дальше →
Всего голосов 89: ↑85 и ↓4+100
Комментарии256

Функциональное программирование — это не то, что нам рассказывают

Время на прочтение17 мин
Количество просмотров125K

Функциональное программирование — это очень забавная парадигма. С одной стороны, про неё все знают, и все любят пользоваться всякими паттерн матчингами и лямбдами, с другой на чистом ФП языке обычно мало кто пишет. Поэтому понимание о том, что же это такое восходит больше к мифам и городским легендам, которые весьма далеко ушли от истины, а у людей складывается мнение, что "ФП подходит для всяких оторванных от жизни программок расчетов фракталов, а для настоящих задач есть зарекомендовавший себя в бою проверенный временем ООП".



Хотя люди обычно признают удобства ФП фич, ведь намного приятнее писать:


int Factorial(int n)
{
    Log.Info($"Computing factorial of {n}");
    return Enumerable.Range(1, n).Aggregate((x, y) => x * y);
}

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


int Factorial(int n)
{
    int result = 1;
    for (int i = 2; i <= n; i++)
    {
        result *= i;
    }
    return result;
}

Так ведь? С одной стороны да. А с другой именно вторая программа в отличие от первой является функциональной.


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

Читать дальше →
Всего голосов 208: ↑200 и ↓8+251
Комментарии795

Топ-32 оптических иллюзий движения от японского художника @jagarikin

Время на прочтение3 мин
Количество просмотров64K
image

(1)

Есть такой японский цифровой художник じゃがりきん (jagarikin), который экспериментирует с иллюзией движения (обратный фи-феномен), когда пиксели не двигаются, а просто меняют цвет. Его работы репостнули Илон Маск и Стивен Пинкер. За полгода я хорошенько поизучал его работы (отмотал «Твиттер» на 5 лет) и выбрал 32 самых крутых и залипательных. Отметьте для себя, какая иллюзия приковала ваше внимание больше всего, и поделитесь в комментариях.

Канал в Telegram Cognitive Illisions, где я буду делиться самыми вырвиглазными находками, как хакнуть мозг через восприятие.

Осторожно: 1) Гифки тяжелые! 2) Много ярких мигающих картинок!

Читать дальше →
Всего голосов 47: ↑45 и ↓2+59
Комментарии31

Большой гайд. Пишем микросервисы на Java и Spring Boot, заворачиваем в Docker, запускаем на EKS, мониторим на Grafana

Время на прочтение37 мин
Количество просмотров89K

Туториалы делятся на две больших категории: либо "как нарисовать сову", либо подробно расписанные тысячи шагов в формате "напиши туториал для дурака - и только дурак захочет его читать".

Как какой из двух категорий относится эта статья — решать вам.

В этой статье вы увидите пошаговое создание cloud-native микросервиса на Amazon AWS, пригодное для "чтения с листа". Чтобы понять, что здесь происходит, не нужно разворачивать проект - достаточно обладать живым воображением и прочитать текст по диагонали. Если же вы всё-таки захотите повторить шаги, вам будут жизненно нужны знания вида, как создавать классы в IDE и что такое Spring.

Вначале мы напишем пару простых микросервисов на Spring Boot, докеризуем их, зальём в AWS, настроим красивые доменные имена и HTTPS, прикрутим логирование и мониторинг, Prometheus и Grafana. Это небольшое путешествие по всем кругам ада, из которого вы не вернетесь прежним.

Текст написан на основе текстов и демо-проекта microservice-customer за авторством @kamaruzzaman. Если вы потеряли нить повествования, всегда можно зайти на GitHub и найти весь код в пригодном для запуска виде. Если захочется закопаться в тему, то бро Дима Чуйко (@Teapot) написал вам ещё две части статьи "Микросервисы: от CRUD до Native Image" (раз, два).

Последняя важная оговорка. В этом гайде будут использоваться технологии Amazon и обычные дистрибутивы OpenJDK. Автор осознает, что мы живём в России, и возможно, вместо Amazon куда лучше подойдет что-то вроде SberCloud или MTS Cloud, а вместо обычного OpenJDK - Axiom JDK с сертификацией по ФСТЭК. Особенности российских технологий - тема для отдельной статьи. Если вы захотите таковую после чтения этого гайда - отметьтесь в комментариях.

Читать далее
Всего голосов 66: ↑65 и ↓1+83
Комментарии27

Влияние дофамина на организм: как работает и как этим управлять

Время на прочтение25 мин
Количество просмотров122K

Ура! Готов магнум опус про дофамин, по мотивам подкаста Лаборатории Губермана! Это было сложно, долго и дорого, но оно того точно стоило!

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

Она является конспектом и осмыслением 39 выпуска подкаста “Лаборатория Губермана” (Controlling Your Dopamine For Motivation, Focus & Satisfaction | Huberman Lab Podcast #39), который ведет Эндрю Губерман, профессор нейробиологии Стэнфордского Университета. 

Подстрочный перевод выпуска (35 страниц).

Задача данного конспекта: сохранить максимум фактуры и прикладной части, разобраться в том, как там что работает, и сразу приложить подходящие полезные рутины к улучшению качества жизни. Понять, как и зачем можно регулировать количество дофамина в мозге и теле через определённые действия и их субъективное восприятие. 

Читать далее
Всего голосов 71: ↑66 и ↓5+73
Комментарии28

Выходим за пределы JVM. Объясняем на крестиках-ноликах чем хорош Kotlin Multiplatform

Время на прочтение31 мин
Количество просмотров14K

Какой есть общий недостаток у мобильной, front-end и back-end разработки и иногда распила микросервисов? Дублирование логики. Очень часто я видел статьи или новости, где одна команда мобильных разработчиков ждет другую, чтобы выкатить релиз. И если с мобильными версиями более-менее все понятно и есть решения, то что делать с браузером? Очень часто логику работы приложения нужно поддержать и там.

Что делать, если хочется писать нативный код и при этом не иметь дублей реализации — на этот вопрос я постараюсь ответить подробно в данной статье. В процессе чтения можно будет познакомиться с технологией Kotlin Multiplatform и создать полноценный проект всем известной игры «Крестики-нолики» на трех самых популярных платформах Browser (JS), iOS (Swift) и Android (Java) с общей логикой на Kotlin.

Читать далее
Всего голосов 21: ↑18 и ↓3+18
Комментарии21

Дюк, вынеси мусор! — 6. Shenandoah GC

Время на прочтение8 мин
Количество просмотров16K

Несмотря на то, что мы уже успели достаточно подробно рассмотреть целых шесть сборщиков мусора (Serial, Parallel, CMS, G1, ZGC, Epsilon), у OpenJDK еще есть, что нам предложить. Эта статья посвящена Shenandoah, тому самому сборщику, "который смог" (с таким слоганом он обычно подается).

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

Посмотреть, раз есть на что
Всего голосов 15: ↑15 и ↓0+15
Комментарии3

Что почитать по ИБ в метро от Бутово до Савёловской

Время на прочтение6 мин
Количество просмотров22K

Привет! Каждый день у меня есть 45 минут сидя стоя в метро на новости/аналитику/книги, чтобы не отставать от того, что происходит в сфере кибербезопасности. И так как в моих сутках, как и у всех, 24 часа, приходится выбирать тот контент, который успеваешь «переварить», а не просто помечать как прочитанное или помещать канал в «архивные» до лучших времен (которые с момента создания этого архива так и не настали).

Количество новостных ресурсов в ИБ давно перевалило за сотни, а аналитические выкладки и книги выходят еженедельно — на что из этого потратить драгоценное время?

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

Читать далее
Всего голосов 21: ↑21 и ↓0+21
Комментарии0

Симулятор x86 подобного процессора на машине Тьюринга

Время на прочтение17 мин
Количество просмотров15K

Привет, Хабр! В свободное от работы время по вечерам мне нравится воплощать в жизнь свои сумасшедшие идеи. В один из таких вечеров родилась мысль реализовать компилятор кода в машину Тьюринга. Осознав всю тщетность бытия сложность реализации, было принято решение начать с чего-то более простого – симулятора простенького процессора со своим собственным ассемблером, в котором команды выполнялись бы с помощью различных состояний машины Тьюринга, а данные хранились бы на одной ленте. В конечном итоге удалось осуществить практически первоначальную задумку, а именно получить одну единственную машину Тьюринга, способную выполнять скомпилированную из NASM подобного ассемблера программу без какого-либо внешнего взаимодействия.

Читать далее
Всего голосов 56: ↑55 и ↓1+72
Комментарии6

Миллион одновременных соединений

Время на прочтение8 мин
Количество просмотров61K

Я слышал ошибочные утверждения о том, что сервер может принять только 65 тысяч соединений или что сервер всегда использует по одному порту на каждое принятое подключение. Вот как они примерно выглядят:

Адрес TCP/IP поддерживает только 65000 подключений, поэтому придётся назначить этому серверу примерно 30000 IP-адресов.

Существует 65535 номеров TCP-портов, значит ли это, что к TCP-серверу может подключиться не более 65535 клиентов? Можно решить, что это накладывает строгое ограничение на количество клиентов, которые может поддерживать один компьютер/приложение.

Если есть ограничение на количество портов, которые может иметь одна машина, а сокет можно привязать только к неиспользуемому номеру порта, как с этим справляются серверы, имеющие чрезвычайно большое количество запросов (больше, чем максимальное количество портов)? Эта проблема решается распределением системы, то есть кучей серверов на множестве машин?

Поэтому я написал эту статью, чтобы развеять данный миф с трёх сторон:

  1. Мессенджер WhatsApp и веб-фреймворк Phoenix, построенный на основе Elixir, уже продемонстрировали миллионы подключений, прослушивающих один порт.
  2. Теоретические возможности на основе протокола TCP/IP.
  3. Простой эксперимент с Java, который может провести на своей машине любой, если его всё ещё не убедили мои слова.

Если вы не хотите изучать подробности, то перейдите в раздел «Итоги» в конце статьи.
Читать дальше →
Всего голосов 82: ↑80 и ↓2+99
Комментарии27

Тернистый путь внедрения аутентификации через соцсети

Время на прочтение10 мин
Количество просмотров12K


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

Столкнувшись с очередным таким требованием, особенно на новой платформе, человек просто закрывает вкладку в браузере со словами «не больно-то и хотелось». Чтобы упростить жизнь пользователям – существует аутентификация через третьи сервисы (чаще социальные сети).

Привет, Хабр, меня зовут Сергей Солдатов, я тимлид в подразделении eSports MTS Digital, разработчик на Go и немного архитектор. Занимаюсь сервисами аутентификации и авторизации на WASD.TV. Это многофункциональная стриминговая платформа для геймеров, собственный сервис МТС. Как мы настраивали аутентификацию на WASD.TV и что из этого вышло – читайте под катом.
Читать дальше →
Всего голосов 18: ↑18 и ↓0+18
Комментарии16

Однажды Microsoft забанила всю мою страну за читерство

Время на прочтение15 мин
Количество просмотров27K

Об игре


Club Bing — это набор игр, в которые можно было играть в 2007-2012 годах. Все игры были связаны со словами, в них нужно было играть онлайн, чтобы зарабатывать очки, которые можно было тратить в онлайн-магазине для покупки призов. Одна из игр называлась Chicktionary. Цель игры: использовать 7 букв, чтобы составить как можно больше слов.


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

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

  • 123 Main St. Apt #1, Anywhere, YZ, USA
  • 123 Main St. Apt #2, Anywhere, YZ, USA
  • 123 Main St. Apt #3, Anywhere, YZ, USA

Очевидно, наилучшим соотношением стоимости к очкам обладал контроллер XBox, поэтому можно было оставить компьютер набирать очки на нескольких аккаунтах, а затем тратить все очки на покупку контроллеров. На одном форуме был пост с фотографией парня, получившего почтой примерно 100 контроллеров за один день. Он сразу же выложил их на Ebay и продал.
Читать дальше →
Всего голосов 85: ↑79 и ↓6+97
Комментарии23
1
23 ...

Информация

В рейтинге
Не участвует
Откуда
Москва и Московская обл., Россия
Дата рождения
Зарегистрирован
Активность