Как стать автором
Обновить
266
0
Арсений @aruseni

Lead Python Software Engineer

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

Навык поиска работы

Время на прочтение5 мин
Количество просмотров24K
Есть много причин, почему классные разработчики часто долго не могут найти работу, а компании — классных разработчиков. Я хочу поговорить об одной из наиболее распространённых.

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

Проблема в том, что IT-индустрия предполагает, что любой опытный разработчик умеет собеседовать других разработчиков. Откуда такое убеждение? Это же вывод, не основанный ни на чём. Он этому обучался? Он что-то специально об этом читал? Он готовился? Не во всех случаях, разумеется, но чаще, чем хотелось бы, ответ на все три вопроса — нет. Потому что и так прокатывает. Тебе говорят — ищем сотрудника под новую вакансию, завтра у тебя собеседование. А у тебя кроме этого собеседования ещё задач столько, что на весь оставшийся день хватит. В итоге всё, что тебе остаётся — прособеседовать так, как когда-то собеседовали тебя, не задумываясь о том, насколько это эффективно.

Что это за собеседования? Они не абсолютно одинаковые, но одна из их особенностей — теоретические вопросы, ответы на которые кандидат, по их мнению, обязан заучить наизусть. Такие собеседования отвратительны тем, что дают огромное количество ошибок первого и второго рода. По сути, настолько много, что можно использовать вместо собеседований генератор случайных чисел, и результаты будут приблизительно те же самые.
Читать дальше →
Всего голосов 23: ↑18 и ↓5+18
Комментарии102

Telegram after 5 years

Время на прочтение2 мин
Количество просмотров2.8K
A few years ago, when I was using Jabber, all of a sudden the centralized IMs that glue your account to your phone number became popular. I was skeptical towards them for some time, but then there was a temporary illusion that the Telegram developers were trying to do something bigger. Unfortunately, over time it was becoming clearer and clearer that they were not actually going to do anything that was different in any way from what other centralized IMs had to offer.
Read more →
Всего голосов 15: ↑8 и ↓7+1
Комментарии4

Проект популяризации науки 15x4 проводит открытые лекции и масштабируется в новые города

Время на прочтение3 мин
Количество просмотров5.5K
Прошлым летом, когда появилось движение 15x4, едва ли кто-то мог подумать, что проект настолько вырастет так быстро. Всё началось с нескольких человек, безумно увлечённых наукой, которым нравилось пересказывать друг другу Википедию. А потом в Харькове открылся первый лекторий. Немного позже — второй, в Киеве. Со временем в разных городах проводилось всё больше мероприятий, а на YouTube-канале 15x4 появлялись новые и новые записи лекций.

На картинке 176 разноцветных квадратиков с пиктограммами лекций. Посередине 15x4 Share Your Knowledge.

Сейчас 15x4 это сообщество популяризаторов науки, участники которого хотят, чтобы люди выступали и делились знаниями. Мероприятия уже проводятся в Москве, Киеве, Харькове, во Львове, в Кишинёве и Черновцах.

15x4 — категорически не коммерческое объединение учёных и фанатов науки. Деятельность проекта никак не монетизируется, а вход на все мероприятия во всех городах был и остаётся свободным.

На сегодня прочитано около 150 лекций и проведено около 50 мероприятий. Темы лекций очень разнообразны. Лекторы часто читают о физике и биологии, также были лекции о технологиях, медицине, психологии, лингвистике и, естественно, космосе. В том числе сейчас на сайте вы найдёте лекции про Большой адронный коллайдер, глютен, вакцинацию, гомеопатию, CRISPR, 3D-печать, квантовые компьютеры и редактуру текста.
Читать дальше →
Всего голосов 13: ↑13 и ↓0+13
Комментарии0

Используем ноутбук как Bluetooth-клавиатуру (или мышь)

Время на прочтение1 мин
Количество просмотров29K
Только что пришла мне в голову мысль — можно ли подключить ноутбук по Bluetooth к телефону/планшету/etc, чтобы можно было печатать текст на компьютере, а передавались нажатия клавиш на мобильное устройство.

Оказывается, это уже реализовано в виде готовой программы, которую получилось достаточно быстро нагуглить по запросу linux emulate bluetooth mouse.

Называется она hidclient. Работает на Linux-компьютерах с Bluetooth.

Теоретически, передавать таким образом события с клавиатуры или мышки можно на любое устройство, которое поддерживает подключение HID-устройств по Bluetooth. На практике я попробовал это с iPod — прекрасно работает.
Настройка
Всего голосов 12: ↑12 и ↓0+12
Комментарии10

Какие эксперименты Facebook ставит над своими пользователями

Время на прочтение1 мин
Количество просмотров66K
17 июня в журнале Proceedings of the National Academy of Sciences была опубликована статья под названием «Экспериментальное доказательство заражения масс эмоциями через социальные сети».

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

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

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

При регистрации в Facebook вы принимаете пользовательское соглашение, в котором, в частности, указывается ваше согласие на «внутренние операции, включающие устранение неполадок, анализ данных, тестирование, исследования и улучшение сервиса». Поэтому, теоретически, Facebook оставляет за собой право на своё усмотрение управлять содержимым новостной ленты каждого пользователя.
Опрос
Всего голосов 62: ↑54 и ↓8+46
Комментарии50

Motocoin — криптовалюта с человеческим майнингом

Время на прочтение2 мин
Количество просмотров50K
Логотип1 мая на форуме BitcoinTalk появилась ветка, в которой один из пользователей форума анонсировал несколько необычный форк Bitcoin. Основное отличие этой криптовалюты заключается в том, что майнят её не компьютеры, а люди. Для того, чтобы получить MOTO (единицы криптовалюты Motocoin), вам понадобится лишь средний компьютер (на данный момент требуется поддержка OpenGL версии три, но в будущем, скорее всего, игра будет работать и со второй версией) и некоторые навыки прохождения компьютерных игр.

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

Игра, в которую нужно играть для майнинга MOTO, очень похожа на ЭластоманиюX-Moto) — отсюда и такое название криптовалюты.

Такой необычный подход к майнингу сначала удивил многих участников Bitcoin-сообщества (некоторые даже решили, что это шутка), но позже, когда стало понятно, что всё вполне серьёзно, эксперимент пришёлся сообществу по вкусу. А отчего бы и нет — ведь не так уж много таких криптовалют, которые (в теории) можно годами майнить даже на среднем ноутбуке. И, что ещё важнее, тут нужно время человека, а не компьютера, а оно гораздо ценнее.
Читать дальше →
Всего голосов 60: ↑50 и ↓10+40
Комментарии73

Платформа для общественного финансирования разработки свободного ПО Bountysource теперь работает и с Bitcoin

Время на прочтение1 мин
Количество просмотров7.3K
Bountysource, набирающая популярность платформа для общественного финансирования разработки свободного ПО, теперь позволяет производить взаиморасчёты не только в долларах, но и в криптовалюте Bitcoin.

Работает Bountysource следующим образом:

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

Я думаю, что Bountysource и другие аналогичные платформы в будущем позволят вывести свободное ПО на качественно новый уровень. На самом деле, эта модель может быть настолько эффективна, что в какой-то момент надобность в покупке проприетарного ПО для большинства людей и вовсе исчезнет: потому что профессиональным разработчиком будет настолько выгодно заниматься OS-проектами, что это просто станет их основной деятельностью, вместо работы над проприетарными проектами.
Поучаствовать в опросе
Всего голосов 17: ↑17 и ↓0+17
Комментарии10

Восстановление данных в MySQL из снимка EBS

Время на прочтение4 мин
Количество просмотров4K
Это короткое руководство, возможно, поможет кому-то, кто использует AWS (и, в частности, MySQL на инстансе EC2), восстановить данные в MySQL из снимка EBS (регулярное создание которых любой предусмотрительный системный администратор, конечно же, настраивает заблаговременно — с помощью ec2‑consistent‑snapshot, например)

Прежде всего нужно открыть EC2 Management Console, и в разделе ELASTIC BLOCK STORE → Snapshots найти подходящий снимок (обычно это последний снимок раздела).

Далее нужно щёлкнуть на снимке правой кнопкой мышки и выбрать «Create Volume». В Availability Zone при этом нужно выбрать тот же регион, в котором находится инстанс EC2.

После этого нужно перейти в раздел ELASTIC BLOCK STORE → Volumes и, опять же, щёлкнуть правой кнопкой мышки на появившийся раздел. В меню нужно выбрать пункт «Attach Volume», после чего в появившемся модальном окне выбрать инстанс EC2 и нажать «Yes, Attach».

Всё — на сервере должно появиться новое блочное устройство. Теперь можно запустить dmesg | tail и посмотреть, какой идентификатор был присвоен для подключённого блочного устройства. Допустим, это xvdg. Тогда ФС может располагаться, например, на /dev/xvdg1 (зависит от предпочтений того, кто создавал таблицу разделов).
Непосредственно восстановление
Всего голосов 16: ↑15 и ↓1+14
Комментарии3

bcat: просмотр вывода консольных программ в браузере

Время на прочтение2 мин
Количество просмотров8.5K
С удивлением обнаружил, что никто на Хабрахабре не писал про bcat. Это маленькая удобная утилита для просмотра вывода консольных программ в браузере. У вас есть скрипт, возвращающий HTML? Bcat! Нужен простой предпросмотр для README-файла с Markdown-форматированием, который вы только что дописали? Bcat! Пишете парсер веб-сайта, и хотите посмотреть, что за ошибку возвращает сайт? Bcat! Есть большой лог, и вы хотите, чтобы он отобразился чёрным по белому, и его было удобно читать? Ну, вы поняли, да? :)

Программа работает на Linux, Mac OS X и FreeBSD (и, теоретически, на любой UNIX-подобной платформе с интеграцией freedesktop.org).

Для установки bcat можно воспользоваться gem:

gem install bcat

Вместе с bcat устанавливается rack (если, конечно, он не был уже установлен до этого).

Для проверки можно попробовать открыть календарь на 2014 год:

python -c "import calendar ; print calendar.HTMLCalendar().formatyear(2014)" | bcat

Если в браузере открылась новая вкладка, и в ней отобразился календарь — значит, всё работает правильно.
Примеры
Всего голосов 33: ↑30 и ↓3+27
Комментарии21

2ndb — тетрадка для записей, которая изучает, а затем улучшает того, кто в ней пишет

Время на прочтение18 мин
Количество просмотров15K
У вас есть такие друзья, которые всё время что-то записывают в тетрадку или в файлик в Google Docs? Вы спрашивали у них о том, зачем они это делают, и что именно они туда пишут? Если нет, то отвечу за них (не за всех, но за многих):

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

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

Именно такую систему я бы и хотел описать более подробно: программный продукт, способный собирать информацию (на начальных этапах это в основном те данные, которые пользователь предоставляет самостоятельно, регулярно занося их в систему) и, анализируя её, находить в ней различные тенденции, связывать разнообразные аспекты человеческой жизни по каким-либо общим параметрам (например, обнаруживая хронологическую связь) и информировать пользователя в том случае, если у системы есть для него какие-либо рекомендации, советы или предостережения.
Читать дальше →
Всего голосов 30: ↑16 и ↓14+2
Комментарии10

Пять вещей, которые нужно учесть, продумывая архитектуру интернет‑магазина

Время на прочтение6 мин
Количество просмотров38K
Не секрет, что заказчики не всегда заранее знают обо всём, что им потребуется от разрабатываемого программного продукта. Многие из них также не могут отличить такие нововведения, которые можно легко добавить в уже готовую систему от таких, которые необходимо либо предусмотреть с самого начала, либо сразу готовиться к значительным правкам существующего кода, сложным миграциям данных, и, соответственно, значительным затратам времени.

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

Давайте рассмотрим, что стоит сразу же учесть при обсуждении проекта интернет-магазина.
Читать дальше →
Всего голосов 29: ↑17 и ↓12+5
Комментарии14

Простым языком об HTTP

Время на прочтение9 мин
Количество просмотров1.5M
Вашему вниманию предлагается описание основных аспектов протокола HTTP — сетевого протокола, с начала 90-х и по сей день позволяющего вашему браузеру загружать веб-страницы. Данная статья написана для тех, кто только начинает работать с компьютерными сетями и заниматься разработкой сетевых приложений, и кому пока что сложно самостоятельно читать официальные спецификации.

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

Аббревиатура HTTP расшифровывается как HyperText Transfer Protocol, «протокол передачи гипертекста». В соответствии со спецификацией OSI, HTTP является протоколом прикладного (верхнего, 7-го) уровня. Актуальная на данный момент версия протокола, HTTP 1.1, описана в спецификации RFC 2616.

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

Задача, которая традиционно решается с помощью протокола HTTP — обмен данными между пользовательским приложением, осуществляющим доступ к веб-ресурсам (обычно это веб-браузер) и веб-сервером. На данный момент именно благодаря протоколу HTTP обеспечивается работа Всемирной паутины.
Читать дальше →
Всего голосов 94: ↑82 и ↓12+70
Комментарии35

Автоматизируем щелчки мышкой в Linux: xdotool

Время на прочтение4 мин
Количество просмотров49K
Эта очень короткая заметка на примере активации ключей в Steam описывает процесс автоматизации операций, выполняемых при помощи мыши и клавиатуры.

Допустим, вы купили несколько наборов игр Humble Bundle. Теперь у вас есть, например, 5 ключей для активации в Steam. А может быть 15 или даже 25. Вы очень не хотите активировать их вручную, потому что это слишком муторно: в клиенте Steam нужно каждый раз наводить курсор на меню «Games», щёлкать, потом наводить курсор на пункт меню «Activate a Product on Steam…», опять щёлкать, потом нажимать Enter, потом ещё раз Enter, и только затем наконец-то вводить ключ (а потом нужно подождать, ещё раз нажать Enter, затем Escape). А потом повторять то же самое для каждого последующего ключа. Как писал Леонид Каганов, стоило ли вообще ради такого «прогресса» спускаться с пальмы и брать в руки каменный топор?

В общем, вы решили этот процесс автоматизировать — тем более, что задача-то, на самом деле, очень простая. Для её решения нам потребуются консольные утилиты xdotool и xclip — убедитесь, что они установлены у вас в системе.
Читать дальше →
Всего голосов 29: ↑27 и ↓2+25
Комментарии15

Всемирная база паролей к сетям Wi-Fi на вашем мобильнике

Время на прочтение3 мин
Количество просмотров195K
Те из нас, кто много путешествует, наверняка не раз оказывались вот в такой ситуации: в городе, в который вы приехали, много беспроводных сетей, но все они с паролями (которых вы не знаете). Местной SIM-карты у вас нет, а интернет в роуминге у вас стоит как двигатель самолёта, на котором вы прилетели.

А вот здорово бы было, если бы хотя бы некоторые из этих паролей были бы вам известны. Давайте рассмотрим, как именно подобная система могла бы работать.
Читать дальше →
Всего голосов 63: ↑54 и ↓9+45
Комментарии72

Безграмотная мотивация — хуже отсутствия какой-либо мотивации

Время на прочтение3 мин
Количество просмотров34K
Часто бывает, что какие-то бизнес-принципы одни компании копируют у других — просто потому, что директор компании когда-то где-то уже видел, как что-то было сделано в других компаниях, и, в силу отсутствия каких-либо знаний в соответствующей области, ему проще всего сделать у себя точно так же: вроде же как-то работает.

На самом деле в некоторых случаях это будет ошибкой. Один из довольно ярких примеров — мотивация персонала. Именно в разговорах о мотивации многие руководители проявляют вопиющую биологическую безграмотность.
Читать дальше →
Всего голосов 39: ↑31 и ↓8+23
Комментарии59

Вход на сайт с помощью авторизационного файла

Время на прочтение2 мин
Количество просмотров14K
ИллюстрацияРанее я уже рассказывал о том, как можно добавить авторизационные QR-коды, чтобы пользователи, которые уже вошли на сайт на компьютере, могли сразу же также авторизоваться на мобильных устройствах (например, на планшете или мобильном телефоне), и при этом не вводить ни адрес сайта, ни логин, ни пароль. Справа изображён ещё один вариант авторизации — с помощью файла.

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

Исходный код (Python/Django) простого варианта реализации можно посмотреть здесь. В каждом авторизационном файле хранится некоторая сгенерированная случайным образом строка символов, для которой в базе данных на сервере есть хэш, привязанный к определённому идентификатору пользователя. Таким образом, время, необходимое на вход, минимально: после того, как пользователь перетаскивает авторизационный файл на страницу, JS проверяет размер файла, вставляет содержимое в специальное текстовое поле и тут же отправляет форму — никаких дополнительных действий для входа не требуется, даже кнопку «Войти» нажимать не нужно.
Читать дальше →
Всего голосов 34: ↑25 и ↓9+16
Комментарии42

Парное программирование как сервис

Время на прочтение2 мин
Количество просмотров18K
Что, если можно бы было в тот момент, когда сталкиваешься с какой-то сложной задачей, которую уже достаточно долго не можешь решить самостоятельно (хоть и посмотрел всё, что можно было найти в Гугле на этот счёт), зайти на специальный сайт и попросить кого-нибудь посмотреть и помочь?

Речь идёт про теоретическую возможность сделать сайт для поиска напарников для па́рного программирования.

Бэндэр и Фрай

Когда кому-то нужна помощь, он заходит на сайт, нажимает на кнопку «Нужна помощь» и описывает суть проблемы.

Например:

Всем привет, меня зовут Антон, мне 12. Дело такое: друг написал сайт, но у него по-дурацки реализована защита от накрутки в форме голосования. Хочу продемонстрировать ему проблему в действии, но я никак не могу понять, как в Python правильно использовать CookieJar с urllib2 — серьёзно, какое-то запутанное API. Так в остальном у меня почти всё готово, осталось как раз вот поддержку cookies прикрутить. Буду рад, если поможете!

Время на реализацию (приблизительно): 30 минут
Время для связи: любой день недели, с 3 p.m. до 12 a.m.

python, cj, cookiejar, urllib2
Читать дальше →
Всего голосов 39: ↑30 и ↓9+21
Комментарии48

Пользуетесь ли вы кнопкой «стоп» в музыкальном проигрывателе?

Время на прочтение1 мин
Количество просмотров19K
В последние несколько лет появилась тенденция убирать кнопку «стоп» из интерфейса музыкальных проигрывателей. Например, такой кнопки нет в Ubuntu (Rhythmbox), в Mac OS X (iTunes), в Android, в iOS.

Так, в случае с Rhythmbox, если у вас нет кнопки «стоп» на мультимедийной клавиатуре (в этом случае «стоп» всё-таки работает — хотя в интерфейсе нет ни кнопки, ни пункта в меню), чтобы добиться эффекта, который был бы от кнопки «стоп», нужно поставить музыку «на паузу», и затем закрыть Rhythmbox. Либо выбрать последнюю композицию и промотать её до конца.

Иначе при нажатии на «плэй» воспроизведение начнётся с того же места (что вполне логично для кнопки «пауза»), что далеко не всегда уместно (особенно для музыки). Либо придётся вместо «плэй» нажимать на кнопку для воспроизведения предыдущей композиции (для того, чтобы начать воспроизведение текущей композиции сначала).

Лично вам нравится такое решение? Вы согласны с тем, что кнопка «стоп» — лишняя? Или всё-таки не стоило её везде убирать?
Всего голосов 38: ↑22 и ↓16+6
Комментарии74

Django: Использование QR-кодов для быстрого входа на сайт с мобильных устройств

Время на прочтение9 мин
Количество просмотров22K
Если у вас есть сайт, которым часто пользуются с мобильных устройств (таких как телефоны и планшетные ПК), то вы, возможно, задавались вопросом, как реализовать быстрый вход — так, чтобы пользователю не требовалось вводить ни адрес сайта, ни логин и пароль (либо E-mail и пароль).

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

Скриншот с экрана мобильного телефона

Кстати, весь процесс написания приложения, которое приводится далее, можно посмотреть в скринкасте (есть на YouTube, либо в более хорошем качестве в виде файла MPEG2 в 1080p).
Читать дальше →
Всего голосов 22: ↑19 и ↓3+16
Комментарии11

Песни об IT

Время на прочтение2 мин
Количество просмотров14K
Дорогие хабраюзеры! Хочу поздравить вас с Днём гордости гиков!

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

И, поскольку у нас есть такой хороший повод, то давайте вспомним некоторые песни, которые напрямую относятся к жизни IT-гиков. Если вы вспомните ещё какие-то интересные песни, добавляйте их в комментарии.
Читать дальше →
Всего голосов 85: ↑60 и ↓25+35
Комментарии60

Информация

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