Pull to refresh
13
0

Инженер-программист

Guix — самая продвинутая операционная система

Reading time 15 min
Views 88K
Операционные системы (ОС) — обширная тема. На протяжении десятилетий здесь доминировал один подход: Unix. Действительно, большинство современных систем, включая большинство дистрибутивов GNU/Linux, *BSD и macOS, придерживаются архитектуры Unix. (Windows нет, но там почти ничего интересного по этой теме).

В 2000 году Роб Пайк выступил с докладом о том, почему исследования системного ПО не релеванты. Из-за пессимизма или пренебрежения к сообществу он, кажется, полностью проигнорировал жалобы, собранные многими Unix-пользователями в книге The Unix-Haters Handbook (1994). Книга умышленно саркастична, однако указывает на некоторые критические проблемы систем Unix — и они не решены до сих пор.

В 2006 году Элко Доситра опубликовал диссертацию «Полностью функциональная модель развёртывания программного обеспечения», где описан функциональный менеджер пакетов Nix. В 2008 году автор опубликовал NixOS: полностью функциональный дистрибутив Linux. В то время как NixOS повторно использует много свободного ПО для Unix-систем, она настолько отходит от дизайна и философии Unix, что вряд ли её можно назвать «системой Unix».
Читать дальше →
Total votes 66: ↑59 and ↓7 +52
Comments 119

Алан Кей: «Какие книги Вы бы посоветовали прочесть тому, кто учится на Computer Science»

Reading time 4 min
Views 21K
Если вкратце, то я бы посоветовал читать много книг, не имеющих отношения к информатике.

image

Важно понимать, какое место занимает понятие «science» в «Computer Science», и что означает «engineering» в «Software Engineering».

Современное понятие «науки» можно сформулировать так: это попытка перевести явления в модели, которые можно более-менее легко объяснить и предсказать. На эту тему можно прочесть «Sciences of the Artificial» (одна из важных книг Герберта Саймона). На это можно смотреть с такой точки зрения: если люди (особенно разработчики) строят мосты, то учёные могут объяснять эти явления, создавая модели. Самое интересное в этом то, что наука почти постоянно будет находить новые, лучшие способы наведения мостов, так что дружеские отношения между учеными и разработчиками вполне могут улучшаться с каждым годом.

Примером подобного из сферы Computer Science является Джон Маккарти, размышляющий о компьютерах в конце 50-х годов, то есть о невероятно большом спектре того, что они могут сделать (может быть, ИИ?), и создание модели вычислений, которая является языком, и может служить в качестве собственного метаязыка (Lisp). Моя любимая книга на эту тему — «The Lisp 1.5 Manual» от MIT Press (автор Маккарти с соавторами). Первая часть этой книги по-прежнему остается классикой того, как нужно думать в целом и об информационных технологиях в частности.
Total votes 14: ↑14 and ↓0 +14
Comments 5

Машинное обучение в MatLab/Octave: примеры алгоритмов, подкрепленные формулами

Reading time 2 min
Views 12K

image


Недавно я начал изучать machine learning. Начал с прекрасного, на мой взгляд, курса от Andrew Ng. И чтобы не забыть, а так же повторить выученное решил создать репозиторий Machine Learning in Octave. В нем я собрал математические формулы для гипотез, градиентных спусков, "cost function"-ов, сигмоидов и прочих фундаментальных для машинного обучения "штук". Так же добавил туда упрощенные и доработанные примеры реализации некоторых популярных алгоритмов (нейронная сеть, линейная/логистическая регрессия и пр.) для MatLab/Octave. Надеюсь эта информация будет полезна для тех из вас, кто планирует начать изучение machine learning-а.

Читать дальше →
Total votes 19: ↑17 and ↓2 +15
Comments 3

Структура и случайность простых чисел

Reading time 22 min
Views 38K

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

Но на этом история не заканчивается. Распределение простых чисел выглядит случайным, с неравномерными разрывами и скоплениями, которые выглядят довольно хаотично. Если и существует какая-то схема, то она непостижима. На самом деле, простые числа выглядят достаточно случайными, чтобы можно было сыграть с ними в кости. Создайте список последовательных простых чисел (допустим, начав с 11, 13, 17, 19,... ) и разделите их по модулю 7. Другими словами, разделите каждое простое число на 7 и сохраните только остаток. Результатом будет последовательность целых чисел из множества {1, 2, 3, 4, 5, 6}, которая выглядит почти как результат нескольких бросков правильной кости.

$\begin{align*}
 11 \bmod 7 & \rightarrow 4 \qquad 47 \bmod 7 \rightarrow 5 \\
 13 \bmod 7 & \rightarrow 6 \qquad 53 \bmod 7 \rightarrow 4 \\
 17 \bmod 7 & \rightarrow 3 \qquad 59 \bmod 7 \rightarrow 3 \\
 19 \bmod 7 & \rightarrow 5 \qquad 61 \bmod 7 \rightarrow 5 \\
 23 \bmod 7 & \rightarrow 2 \qquad 67 \bmod 7 \rightarrow 4 \\
 29 \bmod 7 & \rightarrow 1 \qquad 71 \bmod 7 \rightarrow 1 \\
 31 \bmod 7 & \rightarrow 3 \qquad 73 \bmod 7 \rightarrow 3 \\
 37 \bmod 7 & \rightarrow 2 \qquad 79 \bmod 7 \rightarrow 2 \\
 41 \bmod 7 & \rightarrow 6 \qquad 83 \bmod 7 \rightarrow 6 \\
 43 \bmod 7 & \rightarrow 1 \qquad 89 \bmod 7 \rightarrow 5 \\
 \end{align*}$

Читать дальше →
Total votes 91: ↑91 and ↓0 +91
Comments 41

Численная проверка abc-гипотезы (да, той самой)

Reading time 8 min
Views 16K
Привет, Habr.

На Geektimes Habr было уже несколько статей про abc-гипотезу (например в 2013 и в 2018 годах). Сама история про теорему, которую сначала много лет не могут доказать, а потом столько же лет не могут проверить, безусловно заслуживает как минимум, художественного фильма. Но в тени этой чудесной истории, сама теорема рассматривается черезчур поверхностно, хотя она не менее интересна. Уже хотя бы тем, что abc-гипотеза — одна из немногих нерешенных проблем современной науки, постановку задачи которой сможет понять даже пятиклассник. Если же эта гипотеза действительно верна, то из нее легко следует доказательство других важных теорем, например доказательство теоремы Ферма.

Не претендуя на лавры Мотидзуки, я тоже решил попробовать решил проверить с помощью компьютера, насколько выполняются обещанные в гипотезе равенства. Собственно, почему бы нет — современные процессоры ведь не только для того чтобы в игры играть — почему бы не использовать компьютер по своему основному (compute — вычислять) предназначению…

Кому интересно что получилось, прошу под кат.
Читать дальше →
Total votes 43: ↑37 and ↓6 +31
Comments 30

ИИ-разработчики – профессия миллионеров?

Reading time 5 min
Views 11K
В октябре аналитическая платформа CB Insights опубликовала исследование о трендах в сфере искусственного интеллекта. CB Insights сама является участником этой сферы – компания использует ИИ для синтеза, анализа и визуализации данных о венчурном капитале, стартапах, патентах, партнерствах и новостях. Среди ее клиентов – Cisco, Salesforce, Castrol, Gartner, а также венчурные фонды высшей категории, включая NEA, Upfront Ventures, RRE и FirstMark Capital.

Предлагаем ознакомиться с пятью наиболее интересными и важными трендами в AI, которые платформа составила на основе данных за 2016-2017 годы.


Во всех сферах объем сделок, связанных с ИИ, вырос за последние 5 лет
Читать дальше →
Total votes 4: ↑3 and ↓1 +2
Comments 9

Решение проблемы обнаружения центральной линии сосуда

Reading time 9 min
Views 9.1K

Суть задачи


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


Одна из задач врача — найти стенозы и оценить, насколько они опасны. Задача же разработчика, как обычно, облегчить работу конечного пользователя. Для этого необходимо построить полную 3D модель стенок сосуда и провести их первичный анализ. Это является большой и интересной задачей, однако, в её основе лежит более простая и известная проблема — построение центральной линии сосуда.
Читать дальше →
Total votes 43: ↑42 and ↓1 +41
Comments 15

Работа с изображениями на Python

Reading time 18 min
Views 99K
Тема сегодняшнего разговора — чему же научился Python за все годы своего существования в работе с изображениями. И действительно, кроме старичков родом из 1990 года ImageMagick и GraphicsMagick, есть современные эффективные библиотеки. Например, Pillow и более производительная Pillow-SIMD. Их активный разработчик Александр Карпинский (homm) на MoscowPython сравнил разные библиотеки для работы с изображениями на Python, представил бенчмарки и рассказал о неочевидных особенностях, которых всегда хватает. В этой статье расшифровка доклада, который поможет вам выбрать библиотеку под свое приложение, и сделать так, чтобы она работало максимально эффективно.


О спикере: Александр Карпинский работает в компании Uploadcare и занимается сервисом быстрой модификации изображений на лету. Участвует в разработке Pillow — популярной библиотеки для работы с изображениями на Python, развивает собственный форк этой библиотеки — Pillow-SIMD, который использует современные инструкции процессоров для наибольшей производительности.
Total votes 49: ↑49 and ↓0 +49
Comments 9

Делаем проект по машинному обучению на Python. Часть 1

Reading time 13 min
Views 78K


Перевод A Complete Machine Learning Project Walk-Through in Python: Part One.

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

Чтобы у вас в голове наконец сложилась цельная картина, мы предлагаем разобрать от начала до конца проект применения машинного обучения с использованием реальных данных.
Читать дальше →
Total votes 24: ↑21 and ↓3 +18
Comments 4

Изучаем сопромат с CalculiX

Reading time 12 min
Views 18K
Сдал сопромат — можно жениться!

Введение


Метод конечных элементов (МКЭ или FEM, у них за рубежом) прочно вошел в практику инженерных расчетов при проектировании сложных систем. В значительной степени это касается прочностных расчетов механики. Применения этого метода, реализуемого соответствующим программным обеспечением существенно сокращает цикл разработки конечного устройства, позволяя исключить массу экспериментальных проверок, необходимых при использования классических расчетов на основе методов сопромата и строительной механики. На текущий момент разработана масса прикладного ПО, реализующего МКЭ. Во главе угла стоит мощный ANSYS, по бокам от него и в почетном удалении — CAD-системы со встроенным FEM-модулем (SolidWorks, Siemens NX, Creo Parametric, Компас 3D).

CalculiX силен, но труден и непонятен. Исправим это?



Естественно, МКЭ проник и в сферу образования — чтобы использовать его в реальных задачах, нужна подготовка соответствующих специалистов. В столицах, в крупных технических вузах обстановка в этой области более-менее нормальная, да и у нас в регионе тот же ANSYS применяется, например, на кафедре теории упругости ЮФУ. Но по периферии, в узко специализированных и не богатых университетах ситуация плачевна. И всё просто — ANSYS стоит порядка 2 млн. рублей за одно рабочее место, а место требуется не одно. К сожалению не все вузы могут позволить себе выложить 30-40 миллионов на организацию компьютерного класса для обучения применению МКЭ.

Одной из альтернатив может служить применение в учебном процессе свободного ПО. К счастью таковое ПО имеется. Однако, русскоязычных материалов по его использованию практически не существует. Исправляя эту ситуацию, данную статью я собираюсь посвятить в введению в CalculiX — открытый, свободный программный пакет, предназначенный для решения линейных и нелинейных трёхмерных задач механики твёрдого деформируемого тела и механики жидкости и газа с помощью метода конечных элементов.
Читать дальше →
Total votes 28: ↑28 and ↓0 +28
Comments 55

Михаил Бессмельцев с коллегой разработал новые алгоритмы для векторизации графики

Reading time 3 min
Views 32K

Слева направо: оригинал, оснащённое поле (frame field) и окончательный результат. На базе зашумлённого растрового изображение в оттенках серого вычисляется оснащённое поле, выровненное по линиям картинки. На острые углы типа X- и T-пересечений накладываются векторы по обоим направлениям. Затем из этого поля извлекается топология чертежа — и производится окончательная генерация векторных кривых

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

Первые алгоритмы векторизации изображений появились в начале 1990-х годов и
использовались в инструментах для редактирования векторной графики, таких как Adobe Illustrator (Live Trace), CorelDRAW (PowerTRACE) и Inkscape. Несмотря на их широкое внедрение в промышленности, эти алгоритмы до сих пор страдают от серьёзных недостатков и находятся в активной разработке. В нескольких индустриях, где векторизация крайне необходима, включая традиционную анимацию и инженерное проектирование, она часто выполняется вручную. Дизайнеры кропотливо обводят отсканированное изображение с помощью инструментов рисования.
Читать дальше →
Total votes 82: ↑80 and ↓2 +78
Comments 28

Моделирование динамических систем: Как движется Луна?

Reading time 24 min
Views 29K
Светлой памяти моего учителя — первого декана физико-математического факультета Новочеркасского политехнического института, заведующего кафедрой «Теоретическая механика» Кабелькова Александра Николаевича

Введение


Август, лето подходит к концу. Народ яростно рванул на моря, да оно и неудивительно — самый сезон. А на Хабре, тем временем, буйным цветом распускается и пахнет лженаука. Если говорить о теме данного выпуска «Моделирования...», то в нем мы совместим приятное с полезным — продолжим обещанный цикл и совсем чуть-чуть поборемся с этой самой лженаукой за пытливые умы современной молодежи.


А вопрос ведь действительной не праздный — со школьных лет мы привыкли считать, что наш ближайший спутник в космическом пространстве — Луна движется вокруг Земли с периодом 29,5 суток, особенно не вдаваясь в сопутствующие подробности. На самом же деле наша соседка своеобразный и в какой-то степени уникальный астрономический объект, с движением которого вокруг Земли не всё так просто, как, возможно хотелось бы некоторым моим коллегам из ближайшего зарубежья.

Итак, оставив полемику в стороне, попытаемся с разных сторон, в меру своей компетенции, рассмотреть эту безусловно красивую, интересную и очень показательную задачу.
Читать дальше →
Total votes 74: ↑72 and ↓2 +70
Comments 73

Компрессия больших массивов простых чисел

Reading time 20 min
Views 17K
песочница

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

 

Так, формат 16-разрядных беззнаковых целых при размере такой таблицы около 13 килобайт вмещает всего лишь 6542 простых числа: вслед за числом 65531 идут значения более высокой разрядности. Такая таблица годится разве что в качестве игрушки.

 

Наиболее ходовой в программировании формат 32-разрядных целых выглядит значительно солиднее — он позволяет хранить около 203 млн простых. Но такая таблица занимает уже около 775 мегабайт.

 

Еще больше перспектив у 64-разрядного формата. Однако при теоретической мощности порядка 1e+19 значений, таблица имела бы размер 64 экзабайта.


Читать дальше →
Total votes 55: ↑54 and ↓1 +53
Comments 58

Meta Crush Saga: игра, выполняемая во время компиляции

Reading time 21 min
Views 11K
image

В процессе движения к долгожданному титулу Lead Senior C++ Over-Engineer, в прошлом году я решил переписать игру, которую разрабатываю в рабочее время (Candy Crush Saga), с помощью квинтэссенции современного C++ (C++17). И так родилась Meta Crush Saga: игра, которая выполняется на этапе компиляции. Меня очень сильно вдохновила игра Nibbler Мэтта Бирнера, в которой для воссоздания знаменитой «Змейки» с Nokia 3310 использовалось чистое метапрограммирование на шаблонах.

«Что ещё за игра, выполняемая на этапе компиляции?», «Как это выглядит?», «Какой функционал C++17 ты использовал в этом проекте?», «Чему ты научился?» — подобные вопросы могут прийти к вам в голову. Чтобы ответить на них, вам придётся или прочитать весь пост, или смириться со своей внутренней ленью и посмотреть видеоверсию поста — мой доклад с Meetup event в Стокгольме:


Примечание: ради вашего психического здоровья и из-за того, что errare humanum est, в этой статье приведены некоторые альтернативные факты.
Total votes 41: ↑35 and ↓6 +29
Comments 14

Экскурсия по PyTorch

Reading time 17 min
Views 45K
Привет, Хабр!

Еще до конца мая у нас выйдет перевод книги Франсуа Шолле "Глубокое обучение на Python" (примеры с использованием библиотек Keras и Tensorflow). Не пропустите!



Но мы, естественно, смотрим в надвигающееся будущее и начинаем присматриваться к еще более инновационной библиотеке PyTorch. Сегодня вашему вниманию предлагается перевод статьи Питера Голдсборо, готового устроить вам долгую прогулку ознакомительную экскурсию по этой библиотеке. Под катом много и интересно.
Читать дальше →
Total votes 27: ↑24 and ↓3 +21
Comments 9

NumPy в Python. Часть 1

Reading time 5 min
Views 379K

Предисловие переводчика


Доброго времени суток, Хабр. Запускаю цикл статей, которые являются переводом небольшого мана по numpy, ссылочка. Приятного чтения.



Введение


NumPy это open-source модуль для python, который предоставляет общие математические и числовые операции в виде пре-скомпилированных, быстрых функций. Они объединяются в высокоуровневые пакеты. Они обеспечивают функционал, который можно сравнить с функционалом MatLab. NumPy (Numeric Python) предоставляет базовые методы для манипуляции с большими массивами и матрицами. SciPy (Scientific Python) расширяет функционал numpy огромной коллекцией полезных алгоритмов, таких как минимизация, преобразование Фурье, регрессия, и другие прикладные математические техники.
Читать дальше →
Total votes 36: ↑36 and ↓0 +36
Comments 26

Конец прокрастинации или что такое ИКИГАИ?

Reading time 24 min
Views 94K
Описать понятие прокрастинации можно этим максимально простым изображением. У вас есть ряд определенных задач и есть выделенное время на их выполнение. Прокрастинаторы решают свалить все задачи в кучу и оставить на самый последний момент.

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



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

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

Под катом рассказ Петра Людвига на конференции Aletheia Business 2017 о том, как положить конец прокрастинации используя три простых инструмента. Как только вы внедрите их в свою жизнь, вы сразу заметите разницу. Вы будете более продуктивны, почувствуете себя счастливее и у вас появится больше энергии.


Total votes 74: ↑64 and ↓10 +54
Comments 87

CPU сдаст вас с потрохами: самая серьезная дыра в безопасности за всю историю наблюдений?

Reading time 2 min
Views 131K

Что случилось?


Исследователи Google опубликовали исследование «Reading privileged memory with a side-channel», в котором они описывают найденную ими аппаратную уязвимость, которая затрагивает практически все современные и устаревшие процессоры вне зависимости от операционной системы. Строго говоря, уязвимостей целых две. Одной подвержены многие процессоры Intel (на них проводилось исследование). AMD с ARM также уязвимы, но атаку реализовать сложнее.

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

Пожалуй, самое вероятное и неприятное применение на данный момент — получение дампа системной памяти во время выполнения JavaScript.

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

Эксплуатация уязвимости не оставляет следов.

Насколько это серьезно?


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

Как защититься?


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

Прекрасные новости, это всё?


Не все. Судя по тестам, патчи сильно повлияют на производительность существующих систем. Тесты показывают падение на 10-30% в некоторых задачах. Да-да, вы все правильно поняли, ваш мак может навсегда стать медленнее, а AWS заметно дороже.

Дополнительные данные


Читать дальше →
Total votes 138: ↑130 and ↓8 +122
Comments 524

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

Reading time 40 min
Views 812K
Длинный материал. Время чтения – около 40 минут.

image

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

Введение в архитектуры нейронных сетей

Reading time 31 min
Views 176K


Григорий Сапунов (Intento)


Меня зовут Григорий Сапунов, я СТО компании Intento. Занимаюсь я нейросетями довольно давно и machine learning’ом, в частности, занимался построением нейросетевых распознавателей дорожных знаков и номеров. Участвую в проекте по нейросетевой стилизации изображений, помогаю многим компаниям.

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

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

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

После этого рассмотрим 2 сравнительно продвинутых темы и закончим небольшим обзором фреймворков и библиотек для работы с нейросетями.
Читать дальше →
Total votes 54: ↑51 and ↓3 +48
Comments 2

Information

Rating
Does not participate
Location
Россия
Registered
Activity