Pull to refresh
0
@Z2Kread⁠-⁠only

User

Send message

DTMF-MQTT шлюз на ESP32 и SIM800

Level of difficultyEasy
Reading time7 min
Reach and readers9.1K

История создания GSM-DTMF-MQTT шлюза как замены телеграм (и вообще любых интернет-сервисов) в проектах домашней и не очень автоматизации.

Читать далее

56 минут созвона → текст за 5 минут на M4 без OBS и облака

Level of difficultyMedium
Reading time6 min
Reach and readers6.9K

У меня от трёх до пяти созвонов в день, почти все в браузере: Meet, Яндекс Телемост, ktalk, реже всего Zoom. Детали встреч мне нужны в тексте, иначе договорённости расползаются. Писал я звонки через OBS с захватом экрана, и на самих звонках началось веселье: звук временами жёстко квакал, всё чуть-чуть подвисало. Причину до конца не выяснял, моё предположение - процессор зажирался захватом и перебивал сам разговор; ktalk и браузер тут ни при чём. А экран, как потом дошло, мне вообще был не нужен.

Дальше вторая серия. Расшифровку я гонял своими Python-скриптами: конвертация → транскрибация → диаризация (разметка, кто когда говорил). На встрече с пятью участниками диаризация расставляла голоса крайне плохо, половину фраз всё равно восстанавливал по памяти.

Пошёл искать вариант, чтобы запись не мешала звонку, результат был приличный и всё крутилось локально: не хотелось ни отдавать записи в облако, ни платить подписку за минуты. Нашёл платный Audio Hijack, он подкупил лёгкостью и простотой настройки. Потом узнал, что на M-чипе быстрее всего у меня отрабатывает mlx-whisper на MLX: веса large-v3-turbo с Hugging Face, инференс на GPU Mac. Это архитектура Whisper, но рантайм — пакет mlx-whisper и бинарь mlx_whisper, не pip install openai-whisper и не репозиторий openai/whisper. Так собрался стек: Hijack пишет один mp3, mlx_whisper делает VTT, pyannote раскладывает по SPEAKER_XX. На 56-минутном звонке транскрипция заняла около пяти минут. Платный только Hijack — разовая лицензия, без подписки (цену смотрите на сайте Rogue Amoeba). Скрипты выложил в mac-call-transcribe под MIT. Ниже сборка, замеры с двух реальных звонков и грабли; повторяется на любом Mac с M-чипом.

Читать далее

Модель не виновата: разбираем 3 громких ИИ-инцидента, которые случились из-за отсутствия архитектуры

Level of difficultyMedium
Reading time11 min
Reach and readers7.2K

Я проектирую системы на LLM, и после каждого громкого ИИ‑инцидента мне прилетает одна и та же ссылка с одним и тем же вопросом: «а у нас такое может случиться?» Чтобы отвечать не на глазок, я завёл привычку разбирать каждый такой инцидент до конкретной технической причины. За последние месяцы таких разборов набралось три, и они удивили меня не сходством, а различием. Дыры, в совершенно разных местах: у одного проекта не проверялись источники, у другого, данные на границах системы, у третьего, права автономного агента. А вот причина одна: системы вокруг LLM строили люди, которые умеют писать промпты, но не умеют проектировать архитектуру.

Судите сами. Deloitte Australia возвращает правительству деньги за отчёт, в котором ИИ выдумал источники. В Миннесоте полиция четырьмя машинами блокирует на парковке журналиста, потому что сеть ИИ‑камер несколько дней вела его как угонщика, из‑за опечатки, сделанной за две тысячи миль от него. А основатель инди‑SaaS просыпается и обнаруживает, что написанный моделью код ночью отменил все подписки его клиентов и оставил бизнесу $38 месячной выручки.

Читать далее

Стоит ли использовать TCXO в LoRa2012?

Level of difficultyMedium
Reading time6 min
Reach and readers7K

Группа точек мониторинга орошения, распределённых в горной местности, днём нагревается на солнце, а ночью остывает — суточный перепад температур может достигать тридцати–сорока градусов. Обслуживающий персонал заметил, что с наступлением осени обратная передача данных с части узлов LoRa стала давать редкие потери пакетов, а после повторного включения питания работа восстанавливалась. Первой реакцией часто бывает переход на более дорогой термокомпенсированный кварцевый генератор (TCXO). Однако по мере того, как LoRa IP четвёртого поколения повысил толерантность к отклонению частоты, TCXO перестал быть ответом по умолчанию на все проблемы температурного дрейфа.

Читать далее

Отзыв на книгу «Не усложняй! Управление проектами по методу P3.express»

Level of difficultyEasy
Reading time5 min
Reach and readers9.6K

Делюсь впечатлениями о недавно вышедшей книге «Не усложняй! Управление проектами по методу P3.express» за авторством @daIlenkov и @lera_ilenkova

Это небольшая (~250 страниц) книга по управлению проектами на основе минималистичной системы P3.express, написанная лёгким и доступным языком. Отлично подойдёт для новичков. В сети уже немало отзывов, которые можно свести примерно к этой формуле.

Я хочу взглянуть на неё чуть глубже. Это книга-матрёшка.

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

Читать далее

10+ млрд строк, 30 000+ таблиц, 5500 полей с персональными данными. Как мы автоматизировали обезличивание на большой БД

Level of difficultyMedium
Reading time14 min
Reach and readers7.6K

Привет! Меня зовут Дима Левин, сейчас я работаю системным аналитиком в Петрович-Техе. Так уж сложилось, что в своей работе в нескольких проектах я плотно работал с персональными данными. Сегодня хочу рассказать о проекте по автоматизации обезличивания большой БД (30 000+ таблиц размером до 10 миллиардов строк). Надеюсь, мой опыт будет полезен.

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

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

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

Читать далее

DuckDuckGo: поиск без слежки как бизнес-модель

Level of difficultyEasy
Reading time5 min
Reach and readers7.9K

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

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

Читать далее

Как мы ускоряли прошивку ESP (спойлер: совы не то, чем кажутся)

Level of difficultyMedium
Reading time42 min
Reach and readers14K

Производство пожаловалось: модуль WB-MGE v.3 на ESP32 шьётся слишком долго — 42 секунды на устройство. Что начиналось как простое «склеить вызовы esptool в один», превратилось в копание в исходниках загрузчиков на Си и Расте, патч прошивальщика, разгон системной шины, физику NOR-флеша (туннелирование Фаулера–Нордхайма — теперь я знаю что это такое), и в итоге ускорение почти в четыре с половиной раза. И да, совы оказались совсем не тем, чем казались.

Читать далее

SPI-контроллер на FPGA: от идеи до сигналов на осциллографе

Level of difficultyMedium
Reading time142 min
Reach and readers8.4K

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

Реальная инженерная работа с ПЛИС устроена иначе. Реальная задача — это когда ваша микросхема должна разговаривать с другой микросхемой по протоколу, у которого есть спецификация на сорок страниц, четыре режима тактирования и подводные камни в каждом втором абзаце даташита. Когда «вроде работает» — это худший из возможных результатов, потому что «вроде» означает «упадёт у заказчика». И когда между «код написан» и «устройство работает» лежат недели верификации и отладки.

Эта статья - следующий шаг в моем обучении и попытка показать полный путь: от фразы "нам нужен SPI-контроллер" до момента, когда логический анализатор показывает красивые пачки импульсов на ножках кристалла. Здесь будут не только архитектурные решения и листинги, но и все ошибки, которые были сделаны по дороге: testbench, который врал, потому что master и slave-модель содержали один и тот же баг; гонка на один такт, из-за которой тест прерываний падал при исправном железе; и финальный детектив — прошивка, в которой SPI-сигналы честно генерировались... на других ножках, потому что файл назначения пинов на диске оказался не тем, который мы правили. Каждая такая история — это методика: симптом, гипотеза, эксперимент, причина, фикс.

Читать далее

nanoCAD Облака точек – новая версия на Платформе nanoCAD 26

Reading time3 min
Reach and readers5.7K

Компания «Нанософт» – ведущий разработчик инженерного программного обеспечения объявляет о выходе версии 26 nanoCAD Облака точек.

nanoCAD Облака точек – специализированное решение на Платформе nanoCAD, предназначенное для обработки данных 3D-сканирования и решения инженерных и информационных задач в области геодезии, машиностроения, строительства, инфраструктурного и метрологического мониторинга.

Версия nanoCAD Облака точек 26 доступна в трех конфигурациях: «ReClouds», «Метрология» и «Геотехнический мониторинг».

Что нового в конфигурации «ReClouds»

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

Точное указание уровней сечений при послойной векторизации
В инструменте Послойная векторизация высота каждого сечения теперь может задаваться индивидуально относительно начального уровня для более точного отображения контуров объекта в облаке точек.

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

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

Узнать больше об обновлении

Асимметричная криптография в Java Card

Level of difficultyMedium
Reading time14 min
Reach and readers6.2K

В этой статье разговор пойдет о приложении на Java Card, бегающем на смарт-картах. На хабре уже есть несколько публикаций на эту тему, в своей же я бы хотел немного выйти за рамки стандартного “Hello World”. Здесь вы узнаете как собирать апплет, увидите пример размещения данных в апплет на этапе инсталляции, а также установим защищенный канал между Хостом и картой.

Читать далее

Я месяцами пилил MVP, потому что боялся позвонить клиенту

Level of difficultyEasy
Reading time6 min
Reach and readers5.9K

Понедельник.

Я просыпаюсь и сразу же сажусь вайбкодить. Впрочем, я возможно даже не ложился спать. Ведь я окрылён: от идеи будущего стартапа меня распирает изнутри. И ничего, что кредиты Claude Code улетучиваются со скоростью, с которой уходит энергия на созвоне, которому следовало быть письмом. Да и мой ИИ-агент не может врать, когда в очередной раз мне поддакивает: "О да, блестящий ход. Эта фича точно необходима. Сделаем это прямо сейчас или мгновенно?"

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

Последние дни мало отличаются друг от друга... Кстати, сегодня июнь или уже сентябрь?

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

Таким мне казался идеальный путь соло-фаундера: я знаю проблему, способен накормить своего ИИ-агента точными промптами, да и вообще у меня в голове стооООолько фич.
Это всё определенно нужно рынку, надо просто ещё немного вложиться и продукт готов!

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

А потом продукт выходит в свет и... Пшик!
Ноль регистраций.

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

Узнали себя?

Читать далее

Может ли DIY-устройство умного дома стать чем-то большим, и поможет ли в этом Matter?

Level of difficultyMedium
Reading time12 min
Reach and readers6.9K

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

МУЗА - умная колонка с Алисой, датчиками умного дома, камерой видеонаблюдения, поддержкой локального управления и AirPlay. МУЗА позволяет следить за показателями среды в помещении и трансляцией видеонаблюдения, управлять устройствами умного дома с помощью голоса и в зависимости от показаний датчиков, воспроизводить музыку и помогать ребенку.

В статье особое внимание уделено вопросам разработки и сложностям трансформации DIY-образца в устройство для продажи другим людям.

Читать далее

Организмы, для которых самые суровые места Земли стали домом

Level of difficultyEasy
Reading time6 min
Reach and readers7.5K

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

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

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

Читать далее

Почему найти ценник мало: разбираем ML-задачу с движущейся камеры

Level of difficultyEasy
Reading time10 min
Reach and readers5.5K

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

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

Читать далее

Измеряя незримое: что и как измерять в мобильной разработке

Level of difficultyEasy
Reading time9 min
Reach and readers6.3K

Всем привет! Меня зовут Алексей, я техлид Android-направления в компании Домклик.

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

Читать далее

Линейки версий WordPress под микроскопом

Level of difficultyEasy
Reading time17 min
Reach and readers6.6K

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

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

Чтобы показать вам драматизм ситуации, я для примера провёл с помощью профилировщика PHP измерение ресурсозатратности каждой линейки семейства WordPress - это версии 1, 2, 3, 4, 5, 6 и недавняя 7.

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

Читать далее

Старый добрый ламповый SOCKS5. Почему спустя почти 30 лет ему всё-таки понадобился TLS

Level of difficultyMedium
Reading time16 min
Reach and readers7.3K

Есть технологии, которые вспыхивают ярко, несколько лет находятся на пике популярности, а затем постепенно исчезают, уступая место чему-то новому. А есть SOCKS5.

Он появился в 1996 году, когда массового HTTPS ещё практически не существовало, контейнеры оставались делом будущего, а облачные сервисы скорее напоминали научную фантастику. За это время вокруг него успело измениться почти всё. Появились NAT и IPv6, повсеместный TLS, HTTP/2, HTTP/3, QUIC, контейнеры, облачные платформы и Zero Trust. Сам SOCKS5 при этом почти не изменился и, что удивительно, продолжает прекрасно выполнять свою работу.

Его до сих пор используют OpenSSH для динамического проброса портов, корпоративные прокси, системы автоматизации, инструменты тестирования, VPN-клиенты и просто пользователи, которым нужно направить трафик через удалённый сервер.

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

Год назад я рассказывал на Хабре о ProxiFyre, небольшом инструменте для Windows, который позволяет прозрачно направлять трафик выбранных приложений через SOCKS5-прокси. Многие программы вообще не умеют работать через SOCKS5 или требуют ручной настройки. ProxiFyre берёт эту работу на себя: приложение продолжает работать как обычно, а решение о том, какие соединения следует отправить через прокси, принимается на уровне операционной системы.

Читать далее

Начало конца x86? Как Apple перевернула индустрию вычислений

Level of difficultyMedium
Reading time11 min
Reach and readers7.6K

Более 40 лет архитектура x86 оставалась незыблемой основой индустрии вычислений. Именно на ней построены практически все процессоры Intel и AMD, а вместе с ними — настольные компьютеры, рабочие станции и серверы.

Однако в 2020 году ситуация начала меняться. Компания Apple объявила об отказе от процессоров Intel в пользу собственных чипов Apple Silicon на базе архитектуры ARM, которая до этого ассоциировалась преимущественно со смартфонами и планшетами. Для корпорации из Купертино это был один из самых рискованных шагов за последнее десятилетие: вместе с архитектурой нужно было изменить операционную систему и инструменты разработки, а также обеспечить совместимость огромного массива программ, написанных для x86.

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

Вслед за Apple на ARM сделали ставку Qualcomm и Microsoft, а весной 2026 года к ним присоединилась Nvidia. Когда сразу несколько крупнейших игроков отрасли начинают двигаться в одном направлении, это становится важным сигналом для всего рынка.

Действительно ли компьютерная индустрия стоит на пороге крупнейшей трансформации со времен появления IBM PC, или же успех Apple так и останется исключением из правил? Чтобы ответить на этот вопрос, разберемся, как x86 стала мировым стандартом, почему сегодня ее позиции начинают слабеть и какое будущее эксперты прогнозируют рынку вычислительной техники.

Читать далее

Как добавить в умную колонку новые команды и ничего не сломать

Reading time7 min
Reach and readers12K

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

Быстрые команды удобнее не только пользователям, но и системе: запросы через слово «Алиса» требуют обращения к модели распознавания речи ASR, которой из‑за её размеров необходимы серверные вычислительные ресурсы, а модель быстрых команд устроена гораздо компактнее. Она работает прямо на устройстве, а значит, ограничена вычислительными ресурсами самой колонки — её CPU и оперативной памятью. Из‑за этого модель нельзя сильно увеличить: ей приходится оставаться компактной, зато запрос обрабатывается быстрее. 

За распознавание быстрых команд отвечает нейросеть. Её архитектура почти полностью совпадает с решением для наушников Яндекс Дропс, которое подробно описал в своей статье Григорий Афанасенко. Разница в основном в масштабе: наша модель весит всего от 0,5 до 1,5 МБ в зависимости от железа конкретного устройства.

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

Читать далее
1
23 ...

Information

Rating
Does not participate
Registered
Activity