Как стать автором
Обновить
23
0
Александр Кухта @RiderSx

Пользователь

Вселенная, соответствующая нашим текущим представлениям, может оказаться невозможной

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

Новая физическая гипотеза бросает вызов лидирующей «теории всего»




25 июня физик Тимм Вразе [Timm Wrase], живущий в Вене, проснулся, и сонно листал в онлайне список недавно опубликованных физических работ. Один заголовок поразил его так, что он сбросил все остатки сна.

Работа выдающегося специалиста по теории струн Камрана Вафы из Гарварда, выполненная совместно с его коллегами, выдвинула гипотезу о существовании простой формулы, определяющей, каким вселенным дозволено существовать, а каким – нет, в соответствии с теорией струн. Теория струн, ведущий кандидат на "теорию всего", сшивающий вместе гравитацию и квантовую физику, определяет всю материю и взаимодействия в виде вибраций крохотных энергетических нитей. Теория допускает порядка 10500 решений: огромный и разнообразный «ландшафт» возможных вселенных. Специалисты по теории струн, такие, как Вразе и Вафа, годами пытались разместить нашу Вселенную где-нибудь на этом ландшафте возможностей.
Читать дальше →
Всего голосов 57: ↑50 и ↓7 +43
Комментарии 135

Динамическое рисование по мешу в Unreal Engine 4

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

В этом туториале по Unreal Engine 4 вы научитесь рисовать цветами по мешу любого типа.

Рисование по мешу позволяет игрокам раскрашивать внутриигровые объекты. Примеры рисования по мешу: граффити (goop) в Super Mario Sunshine, гели в Portal 2 и чернила в Splatoon. Рисование может использоваться как геймплейний элемент или быть просто графическим оформлением. Как бы то ни было, рисование по мешу открывает новые возможности для дизайнеров геймплея и художников.

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

В этом туториале вы узнаете, как рисовать на скелетном меше. Для этого мы сделаем следующе:

  • Развернём меш в его UV-форму
  • Используем точку пересечения трассировки линии для создания сферической маски меша
  • Отрендерим развёрнутый меш и сферическую маску в render target с помощью захвата сцены (scene capture)
  • Используем маску для смешивания текстур в материале персонажа

Учтите, что этот туториал не посвящён рисованию вершин. Рисование вершин зависит от разрешения меша и его невозможно изменять в процессе игры. Используемый в этом туториале метод, напротив, работает вне зависимости от разрешения меша и его можно применять во время игры.
Читать дальше →
Всего голосов 23: ↑22 и ↓1 +21
Комментарии 2

Клод Шеннон: как гений решает проблемы

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


Клоду Шеннону потребовалось около десяти лет, чтобы полностью сформулировать свою эпохальную теорию информации.

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

Однако только в 1948 году он опубликовал Математическую Теорию Связи.

Правда, это был не единственный его крупный вклад в науку. Еще будучи студентом MIT (Массачусетский технологический институт), в свои скромные 21, он опубликовал работу, которую многие считают, пожалуй, наиболее важной магистерской диссертацией века.

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

Мы запросто бросаемся словом «гений», но лишь немногие люди на свете по праву заслужили именоваться так, и Клод Шеннон — один из них. Он мыслил иначе, мыслил играючи.

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

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

Любая задача имеет очертания и форму. Для решения задач первым делом нужно научиться их понимать.

Переведено в Alconost
Читать дальше →
Всего голосов 17: ↑11 и ↓6 +5
Комментарии 6

Квест, который никто не может пройти

Время на прочтение 1 мин
Количество просмотров 23K
Может ты и пройдёшь. Но пока таких случаев не было.



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

  • годовые подписки на любой продукт JetBrains,
  • бесплатные занятия английским в онлайн-школе Skyeng,
  • билеты на конференцию мобильных разработчиков MBLT DEV 2018.

Нужно пройти квест до 5 сентября включительно. 6 сентября на Хабре подведём итоги
Пройти квест
Всего голосов 32: ↑24 и ↓8 +16
Комментарии 159

Как лечат сумасшедших. 1.1 — Фармакотерапия: основы и шизофрения

Время на прочтение 18 мин
Количество просмотров 147K
Приветствую тебя, %username%!



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

Disclaimer: я не психиатр, а псих. Препараты всех указанных групп я тестировал на себе и наблюдал их действия (когда лежал в психушке). Кроме того, у меня есть некоторый опыт подбора фармы, однако формального образования в этой области я не имею. В связи с этим, а также с тем, что ставить себе диагноз по научпопным статьям — штука крайне неправильная в своей основе, хочу предупредить читателя о том, что, прежде, чем принимать что-либо из описанного здесь, необходимо проконсультироваться со специалистом. Если в пост набегут настоящие сварщики и обоснуют неправильность заявленных тезисов, — буду только рад.

Если вышеизложенное вас не отпугивает, предлагаю окунуться в увлекательный мир психофармакологии. В посте много букв и картинок, предупреждаю сразу.
Всего голосов 119: ↑118 и ↓1 +117
Комментарии 280

Когнитивные стимуляторы и другая психофарма: можно ли стать умнее

Время на прочтение 14 мин
Количество просмотров 192K
Привет, %username%!

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

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

Spoiler: NZT ещё не изобрели, но синтезировали некоторое количество потенциально интересных штук.
Читать дальше →
Всего голосов 70: ↑64 и ↓6 +58
Комментарии 577

Ну и куда теперь девать эти двигатели?

Время на прочтение 6 мин
Количество просмотров 131K
Недавняя публикация о возрождении и развитии двигателя SSME (RS-25) вызвала в ЖЖ наплыв лунных конспирологов в комментариях — судьбу двигателя шаттла они сравнивали с F-1 от Saturn V. Так что сегодня мы сыграем в игру «почувствуй себя руководителем Rocketdyne» и поговорим об извилистом жизненном пути технологий.


Двигатели F-1 и J-2 ракеты Saturn V в музее
Всего голосов 63: ↑62 и ↓1 +61
Комментарии 234

Создание ИИ методом «глокой куздры». Интеллектуальная одиссея

Время на прочтение 33 мин
Количество просмотров 18K
Захотелось мне написать разговаривающую программу. Очень захотелось, позарез.

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

Знакомьтесь, Ваня Разумный.


Ниже находится описание проблем, возникших передо мной на этом хоженом-перехоженом пути, и способов их преодоления.

По поводу результата оговорюсь сразу: целью был не программный код, а формулировка принципов искусственного мышления, функционирующего НЕ на основе физической реальности, как биологические организмы, а на основе СИНТАКСИСА. Поклонники теста Тьюринга, нейронных сетей и машинного обучения могут не беспокоиться.

Внимание, материал объемный.
Читать дальше →
Всего голосов 60: ↑51 и ↓9 +42
Комментарии 251

Рассеяние света в атмосфере в менее чем четырёх килобайтах

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

Введение


В этой краткой заметке будет рассказано о том, как устроена модель атмосферного рассеяния света в нашей последней 4к интре Appear by Jetlag, party-версия которой заняла почётное 12-е место в 4k intro compo на демопати Revision 2018 в апреле этого года.


Cкачать бинарник бесплатно без смс можно здесь.


Если, однако, у вас не Виндовс, или нет мощной современной видеокарты, то есть утешительный утупчик:



Музыку к этой работе написал keen, используя 4klang. За мной же остался весь код и визуальный ряд.


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

Всего голосов 41: ↑39 и ↓2 +37
Комментарии 33

Вы и ваша работа *

Время на прочтение 40 мин
Количество просмотров 813K
Длинный материал. Время чтения – около 40 минут.

image

Доктор Ричард Хэмминг, профессор морской школы Монтерея в штате Калифорния и отставной учёный Bell Labs, прочёл 7 марта 1986 года очень интересную и стимулирующую лекцию «Вы и ваши исследования» переполненной аудитории примерно из 200 сотрудников и гостей Bellcore на семинаре в серии коллоквиумов в Bell Communications Research. Эта лекция описывает наблюдения Хэмминга в части вопроса «Почему так мало учёных делают значительный вклад в науку и так многие оказываются в долгосрочной перспективе забыты?». В течение своей более чем сорокалетней карьеры, тридцать лет которой прошли в Bell Laboratories, он сделал ряд прямых наблюдений, задавал учёным очень острые вопросы о том, что, как, откуда, почему они делали и что они делали, изучал жизни великих учёных и великие достижения, и вёл интроспекцию и изучал теории креативности. Эта лекция о том, что он узнал о свойствах отдельных учёных, их способностях, чертах, привычках работы, мироощущении и философии.
Читать дальше →
Всего голосов 239: ↑229 и ↓10 +219
Комментарии 128

Вариативные веб шрифты

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


Прошла уже не одна неделя с You Gotta Love Frontend конференции, но еще не поздно пройтись по нескольким поднятым вопросам. Я думаю это будет ряд статеек на интересные мне темы, надеюсь, как и вам. Данный пост это перевод на статьи о вариативных шрифтов, используя которые Lea Verou показывала ряд трюков в цикле своих выступлений "Cекреты CSS". Учитывая, что это был первый раз когда я услышал о вариативных шрифтах, о трюках говорить пока рано :)


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

Читать дальше →
Всего голосов 24: ↑23 и ↓1 +22
Комментарии 13

Обзор материалов по машинному обучению № 3 (16 — 23 апреля 2018 года)

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

image
Читать дальше →
Всего голосов 11: ↑10 и ↓1 +9
Комментарии 0

RxJS: Не отписывайся

Время на прочтение 5 мин
Количество просмотров 11K
Привет, Хабр! Представляю вашему вниманию перевод статьи "RxJS: Don’t Unsubscribe" автора Ben Lesh.

Ну… ладно, просто не отказывайся от подписок.

Я часто помогаю кому-нибудь в отладке проблем с их RxJS кодом, в том числе со структурированием приложений, которые несут в себе много асинхронного кода. При этом я всегда вижу одно и тоже, как люди держат обработчики на тоннах подписок. Разработчик делает 3 HTTP-запроса с Observable, сохраняя 3 объекта подписки, которые будут вызваны, когда произойдет какое-то событие.

Я знаю, почему так происходит. Люди привыкли использовать `addEventListener` N раз, а затем, когда они больше не нужны, вызывать `removeEventListener` N раз. Естественным будет делать то же самое и с объектами-подписками, и по большей части вы будете правы. Но есть и лучшие способы. Сохранение слишком большого количества объектов подписок — это знак того, что вы управляете своими подписками императивно и не пользуетесь преимуществами Rx.
Читать дальше →
Всего голосов 7: ↑7 и ↓0 +7
Комментарии 2

Hyperapp для беженцев с React/Redux

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

image


Я люблю Redux


Именно благодаря Redux для меня началось путешествие в мир удивительного функционального программирования. И это первое из функциональщины, что я попробовал в production. Прошли те времена, когда я использовал DOM для хранения состояния и неуверенно манипулировал им с помощью jQuery.


Redux — это инструмент для управления состоянием приложения (state), который позволяет полностью отделить его от представления (view). Представление (view) становится производным состояния (state), которое предоставляет пользователю интерфейс для его изменения. Действия пользователя (actions) не изменяют состояние (state) напрямую. Вместо этого они попадают в редюсер (reducer). Это такая чистая функция, которая на основе предыдущего состояния (state) и действия (action) генерирует следующее состояние (state). Такой подход к обновлению данных во многом был вдохновлен архитектурой языка программирования Elm и концепцией однонаправленного потока данных Flux. Это, возможно, самая популярная JavaScript-библиотека для иммутабельного изменения состояния из тех, что существуют сегодня. Авторы Redux сфокусировались на решении одной единственной проблемы — управление состоянием приложения (state), и сделали это хорошо. Redux получился достаточно модульным, чтобы работать с различными библиотеками для отображения представления (view).


React использует аналогичный сфокусированный подход для представления (view), имеет эффективный виртуальный DOM, который можно подключить к DOM браузера, нативным мобильным приложениям, VR и прочим платформам.


Что бы создавать надежные, функциональные и легко отлаживаемые web-приложения, можно использовать React и Redux. Правда, потребуются вспомогательные библиотеки вроде react-redux и куча boilerplate-кода. А можно попробовать Hyperapp.

Читать дальше →
Всего голосов 51: ↑48 и ↓3 +45
Комментарии 39

Глубинное обучение с подкреплением пока не работает

Время на прочтение 33 мин
Количество просмотров 30K
Об авторе. Алекс Ирпан — разработчик из группы Brain Robotics в Google, до этого работал в лаборатории Berkeley Artificial Intelligence Research (BAIR).

Здесь в основном цитируются статьи из Беркли, Google Brain, DeepMind и OpenAI за последние несколько лет, потому что их работы наиболее заметны с моей точки зрения. Почти наверняка я что-то упустил из более старой литературы и от других организаций, так что прошу прощения — я всего лишь один человек, в конце концов.


Введение


Однажды в Facebook я заявил следующее.
Когда кто-то спрашивает, может ли обучение с подкреплением (RL) решить их проблему, я сразу отвечаю, что не может. Думаю, что это верно как минимум в 70% случаев.
Глубинное обучение с подкреплением сопровождается массой шумихи. И на то есть хорошие причины! Обучение с подкреплением (RL) — невероятно общая парадигма. В принципе, надёжная и высокопроизводительная система RL должна быть прекрасна во всём. Слияние этой парадигмы с эмпирической силой глубинного обучения очевидно само по себе. Глубинное RL — это то, что больше всего похоже на сильный ИИ, и это своего рода мечта, которая подпитывает миллиарды долларов финансирования.

К сожалению, в реальности эта штука пока не работает.

Но я верю, что она выстрелит. Если бы не верил, то не варился бы в этой теме. Но впереди куча проблем, многие из которых фундаментально сложны. Прекрасные демки обученных агентов скрывают всю кровь, пот и слёзы, что пролились в процессе их создания.
Читать дальше →
Всего голосов 59: ↑59 и ↓0 +59
Комментарии 34

Объёмное атмосферное рассеяние света

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

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

GIF

Статья разбита на следующие части:

  • Часть 1. Объёмное атмосферное рассеяние
  • Часть 2. Теория атмосферного рассеяния
  • Часть 3. Математика рэлеевского рассеяния
  • Часть 4. Путешествие сквозь атмосферу
  • Часть 5. Атмосферный шейдер
  • Часть 6. Пересечение атмосферы
  • Часть 7. Шейдер атмосферного рассеяния
Читать дальше →
Всего голосов 50: ↑50 и ↓0 +50
Комментарии 14

О классификации методов преобразования Фурье на примерах их программной реализации средствами Python

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

Введение


Публикации по методу Фурье условно можно разделить на две группы. Первая группа так называемых познавательных публикаций, например, [1,2].

Вторая группа публикаций касается применения преобразований Фурье в технике, например, при спектральном анализе [3,4].

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

Задачи публикации


Провести классификацию методов преобразования Фурье на примерах их программной реализации средствами Python. При этом для облегчения чтения использовать формулы только в программном коде с соответствующими пояснениями.

Гармонический анализ и синтез


Гармоническим анализом называют разложение функции f(t), заданной на отрезке [0, Т] в ряд Фурье или в вычислении коэффициентов Фурье по формулам.

Гармоническим синтезом называют получение колебаний сложной формы путем суммирования их гармонических составляющих (гармоник).

Программная реализация
#!/usr/bin/python
# -*- coding: utf-8 -*
from scipy.integrate import quad # модуль для интегрирования
import matplotlib.pyplot as plt # модуль для графиков
import numpy as np # модуль для операций со списками и массивами
T=np.pi; w=2*np.pi/T# период и круговая частота
def func(t):# анализируемая функция
         if t<np.pi:
                  p=np.cos(t)
         else:
                  p=-np.cos(t)
         return p
def func_1(t,k,w):# функция для расчёта коэффициента a[k] 
         if t<np.pi:
                  z=np.cos(t)*np.cos(w*k*t)
         else:
                  z=-np.cos(t)*np.cos(w*k*t)
         return z
def func_2(t,k,w):#функция для расчёта коэффициента b[k] 
         if t<np.pi:
                  y=np.cos(t)*np.sin(w*k*t)
         else:
                  y=-np.cos(t)*np.sin(w*k*t)
         return y
a=[];b=[];c=4;g=[];m=np.arange(0,c,1);q=np.arange(0,2*np.pi,0.01)# подготовка списков для численного анализа
a=[round(2*quad(func_1, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для a[k], k -номер гармоники 
b=[round(2*quad(func_2, 0, T, args=(k,w))[0]/T,3) for k in m]# интеграл для b[k], k -номер гармоники
F1=[a[1]*np.cos(w*1*t)+b[1]*np.sin(w*1*t) for t in q]#функции для гармоник
F2=[a[2]*np.cos(w*2*t)+b[2]*np.sin(w*2*t) for t in q]
F3=[a[3]*np.cos(w*3*t)+b[3]*np.sin(w*3*t) for t in q]
plt.figure()
plt.title("Классический гармонический анализ функции \n при t<pi  f(t)=cos(t)  при t>=pi  f(t)=-cos(t)")
plt.plot(q, F1, label='1 гармоника')
plt.plot(q, F2 , label='2 гармоника')
plt.plot(q, F3, label='3 гармоника')
plt.xlabel("Время t")
plt.ylabel("Амплитуда А")
plt.legend(loc='best')
plt.grid(True)
F=np.array(a[0]/2)+np.array([0*t for t in q-1])# подготовка массива для анализа с a[0]/2
for k in np.arange(1,c,1):
         F=F+np.array([a[k]*np.cos(w*k*t)+b[k]*np.sin(w*k*t) for t in q])# вычисление членов ряда Фурье
plt.figure()
P=[func(t) for t in q]
plt.title("Классический гармонический синтез")
plt.plot(q, P, label='f(t)')
plt.plot(q, F, label='F(t)')
plt.xlabel("Время t")
plt.ylabel("f(t),F(t)")
plt.legend(loc='best')
plt.grid(True)
plt.show()

Читать дальше →
Всего голосов 14: ↑10 и ↓4 +6
Комментарии 1

Библия движений Doom. Часть 1

Время на прочтение 9 мин
Количество просмотров 40K
Здравствуйте и добро пожаловать в Библию движений Doom! В статье разобраны и рассортированы по категориям все причуды и капризы кода движений в Doom, включая замысловатые трюки с описанием их работы.



Метрика


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

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

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

Читать дальше →
Всего голосов 77: ↑72 и ↓5 +67
Комментарии 11

Внутреннее устройство и оптимизация бандла webpack

Время на прочтение 15 мин
Количество просмотров 43K
Webpack фактически стал стандартом для сборки крупных приложений на JS. Его используют практически все. Для разработчика webpack выглядит как магический черный ящик: если забросить в него файлы и небольшой конфиг, на выходе автоматически появится бандл.

Чтобы разобраться в секретах этой магии, мы обратились к эксперту, человеку, который неоднократно залезал внутрь webpack, — Алексею Иванову. Он готов объяснить, как выглядит бандл изнутри, как на него влияют разные настройки, к чему и почему могут привести некоторые из них, а также рассказать, как все это отладить и оптимизировать.


В основе материала — доклад Алексея Иванова на конференции HolyJS 2017, проходившей в Санкт-Петербурге 2-3 июня.
Всего голосов 56: ↑54 и ↓2 +52
Комментарии 23

Может ли существовать тороидальная планета?

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

После публикации моей статьи о том, какой была бы Земля, будь она в два раза больше, у читателей появился вопрос: «А что насчёт тороидальной Земли»? Вопрос не самый оригинальный, эту тему уже обсуждали в онлайне и проводили её моделирование. Но я люблю всё делать сам, так что я попытался провести свой собственный анализ.

Может ли существовать тороидальная планета?


Стабильность тороидальной планеты неочевидна. С практической точки зрения планеты можно рассматривать как жидкие шарики без поверхностного натяжения – прочность камня не сравнить с весом планеты. Они обладают эквипотенциальными гравитационными поверхностями с учётом центробежного потенциала. Если бы это было не так, то на них встречались бы места, которые могли бы уменьшить свою энергию перетеканием в сторону понижения потенциала. Ещё один очевидный факт – существование верхней границы скорости вращения, после которой планета развалится: центробежная сила на экваторе превышает гравитацию и материал улетает в космос.
Читать дальше →
Всего голосов 105: ↑103 и ↓2 +101
Комментарии 222

Информация

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