Не отображается стрелка на плюсах
Android 11, веб-версия сайта, Google Chrome.
@vombat, заметил баг.
Не отображается стрелочка вверх.
При нажатии на кнопку, появляется на короткое время, затем снова не отображается.


Сохраняй посты, комментируй и ставь оценки
Android 11, веб-версия сайта, Google Chrome.
@vombat, заметил баг.
Не отображается стрелочка вверх.
При нажатии на кнопку, появляется на короткое время, затем снова не отображается.


![Делаем разрабам головную боль [0]](https://img.vombat.su/xl/images/post/big/2025/01/01/17357419356195.png)
Между словом и ссылкой нет разделителя. Явно используется регулярка с удалением переноса строки. Выглядит ужасно. Лучше замените на непрерываемый пробел. Или просто пробел. Ссылку тоже бы проводить через санитайзер, чтобы лишнего не было.
И не надо рекомендовать писать багрепорты. Я лучше минус отхвачу, чем что-то под зелёное сукно уйдёт.
Всем вомбатный привет! Стараемся как можно чаще выпускать пусть и маленькие, но важные обновления сервиса.
Сегодня в релизе:
В профиле пользователя появилась кнопка добавления его в игнор-лист.

Посмотреть список игнорируемых пользователей и тегов можно в профиле в разделе Игнор-лист. Там же можно вернуть кого-то из игнора.

В первую очередь функция будет полезна тем, что захочет добавить @vambot в игнор. Напоминаем, что @vambot занимается сбором контента со сторонних ресурсов и публикует его у нас, без этого нашему проекту будет сложно выжить, необходимо это для рекламы нашего ресурса. Пока Вомбат уверенно не встанет на ноги, мы будем дозированно добавлять новые посты таким образом.
Это не касается постов, импортированных нашими пользователями при привязывании аккаунта Пикабу. Автором этих постов будут указаны соотвествующие пользователи.
Появился первый верифицированный пользователь - @chistomen, которому присвоена синяя галочка. Поздравляем!

Если вы публично известная личность и хотите получить такую же - напишите нам в тг https://t.me/vombat_su
Теперь можно увидеть из какого количества плюсов и минусов считается рейтинг поста и комментария. Для этого просто наведите курсор на цифру рейтинга (в десктопе) или тапните по цифре рейтинга (в мобилке).

Открыв картинку в режиме просмотра теперь можно зумить её колёсиком мыши чтобы рассмотреть.
Т.к. было много вопросов, как перенести заблокированного или удаленного пользователя с Пикабу, добавили это в Вопросы и ответы. А также в Правилах указали, что при их несоблюдении юзеры будут баниться (чтобы это было очевидно).
P.S. Ещё просьба ко всем Вомбатам: давайте вести себя прилично в сообществах и группах проектов по воссозданию старого Пикабу, аналогичных нашему. Этих ребят мы уважаем, поэтому давать ссылки в их чатах на нас не следует, иначе это антиреклама.
Короткий познавательный пост, основанный на моей больной фантазии. Все совпадения случайны.
Обратился как-то один человек на профильном форуме с вопросом, как запустить (не сказать чтобы старую) игру на Windows 10. Игра (хотя я бы назвал это технодемо) была разработана на легендарном XNA 4.0 (земля пухом) и планировалась к выпуску через Steam Greenlight (и ему земля пухом) еще в далеком 2012, после чего заброшена и убрана со всех магазинов.
Игра была куплена тем человеком еще в тот момент, когда она легально продавалась. А спустя годы она просто перестала подавать признаки жизни. $5 за полную версию уплочены, а поиграть нельзя. Обидно.

Так как типовые решения по типу установки XNA Redistributable не помогли, то был предложен единственно возможный выход из ситуации - отладка через dnSpy.
Внимание: обратная разработка хоть прямо и не запрещена законодательно, но разрешенные случаи весьма ограниченны. В других странах разрешен явный запрет любых манипуляций через лицензию, превращающий это занятие во вполне наказуемое. Не повторяйте дома.
Так как ПО было приобретено легально и оно не работает, то этот теоретический случай допустим в соответствии со статьей 1280 гражданского кодекса.
Демонстрировать буду на бесплатной демоверсии, скачать можно здесь.

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

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

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

Если почитать документацию на XNA, то этот метод предназначен для загрузки контента и вызывается автоматически при запуске игры. Первым делом выполняется инициализация некоторых вещей, после чего открывается файл настроек (options.xml) и начинает последовательно считываться. Как только считываются параметры аккаунта для таблицы рекордов, то происходит отправка логина+пароля на официальный сайт и попытка получить ID. Если сервер возвращает Failure, то открывается диалог входа, который можно пропустить. Если сервер возвращает число, то игра запускается. А вот если сервер недоступен, то вылетает исключение, которое никак не обрабатывается и приводит к молчаливому вылету.

На этом этапе есть 2 варианта действий:
Нормальные герои всегда идут в обход, так что переходим к написанию небольшого патча. (На самом деле, о первом варианте я додумался не сразу. Более того, полная версия зависает при убирании этого пункта из настроек).
Выделяем строчку с запросом и нажимает "Изменить инструкции IL". Открывается окно с заголовком "Изменение тела метода".

Это - язык MSIL. Он очень прост и сильно напоминает Forth, на самом деле, но новичка может отпугнуть.
Ключевым элементом является стек. Что такое стек я уже когда-то рассказывал. Это некоторое место, на вершину которого можно последовательно добавлять значения (числа, строки и прочие объекты), а так же снимать их в обратном порядке.

Тут мы добавляем на стек:
Потом мы вызываем String::Concat(), принимающий в себя 4 строки и соединяющий их вместе. При вызове метода будут сняты 4 верхние строки со стека и добавлена новая строка.
Вызов следующего метода (WebClient::DownloadString()) снимает строку, полученную от String::Concat(), и веб-клиент. В результате должна остаться только 1 строка, возвращенная WebClient::DownloadString().
Следующим этапом мы должны снять эту строку со стека и сохранить её в локальную переменную 1, но этого не произойдет, так как WebClient::DownloadString() всегда будет проваливаться и выбрасывать исключение. Исключение, если его не обработать сразу, будет раз за разом проваливаться глубже по стеку вызовов, пока не достигнет обработчика или дна. Так как никаких обработчиков по пути нет, то исключение достигает дна и приводит к вылету.
Чтобы избежать получения исключения, мы можем убрать всё, что предназначено для запроса в сеть. Примерно вот так:

8 инструкций превратились в 2: загрузка строки с числом (которое может быть любым) и сохранение в локальную переменную под номером 1.
Сохраняем и проверяем результат.


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



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

Но не всё так просто. Если попытаться пройти любой уровень, то вылетит то же самое исключение.
Для исправления точно так же выделяем строку и опять редактируем инструкции в теле метода. Но так как отправка статистики нонче ни на что не влияет, то просто удаляем выделенные инструкции без остатка.
А для надежности выделяем WebClient, нажимаем "Анализировать" и смотрим, где еще может ждать нас подлянка.

В Finish.Update() мы ошибку только что исправили, в Game1.LoadContent() исправили в самом начале, а Login.button1_Click(), Program.Main() и Title.Update() нас не интересуют, так как достаточно просто не делать того, что приведет к обращению в сеть (а конкретно: не открывать диалог входа, не указывать никакие аргументы при запуске и не пытаться авторизоваться через главное меню (вроде бы не реализовано)).
Вуаля. Игра работает как прежде.





















Два друга Петя и Вася задумались о том, как рассчитать площадь поверхности зонта. На первый взгляд зонт кажется круглым, а его купол напоминает часть сферы (сферический сегмент). Но если присмотреться, то видно, что купол зонта состоит из восьми отдельных клиньев, натянутых на каркас из восьми спиц (рис. 1). Сферическая форма в раскрытом состоянии достигается за счёт гибкости спиц и эластичности ткани, из которой изготовлен зонт.
Петя и Вася сумели измерить расстояние между концами соседних спиц а. Оно оказалось равно 38 см. Высота купола зонта h (рис. 2) оказалась равна 25 см, а расстояние d между концами спиц, образующих дугу окружности, проходящей через вершину зонта, — ровно 100 см.
Длина зонта в сложенном виде равна 25 см и складывается из длины ручки (рис. 3) и трети длины спицы (зонт в три сложения). Найдите длину спицы, если длина ручки зонта равна 6,2 см.

Задачка 2: Поскольку зонт сшит из треугольников, рассуждал Петя, площадь его поверхности можно найти как сумму площадей треугольников. Вычислите площадь поверхности зонта методом Пети, если высота каждого равнобедренного треугольника, проведённая к основанию, равна 53,1 см. Ответ дайте в квадратных сантиметрах с округлением до десятков.
Парни все решают и решают: Вася предположил, что купол зонта имеет форму сферического сегмента. Вычислите радиус R сферы купола, зная, что ОС = R (рис. 2). Ответ дайте в сантиметрах.
А Васю все не отпускает: Вася нашёл площадь купола зонта как площадь поверхности сферического сегмента по формуле S = 2πRh , где R — радиус сферы, а h — высота сегмента. Рассчитайте площадь поверхности купола способом Васи. Число π округлите до 3,14. Ответ дайте в квадратных сантиметрах с округлением до целого.
После этой задачи парни пошли к девкам, если не решат то Оля и Василиса без секса: Рулон ткани имеет длину 35 м и ширину 80 см. На фабрике из этого рулона были вырезаны треугольные клинья для 29 зонтов, таких же, как зонт, который был у Пети и Васи. Каждый треугольник с учётом припуска на швы имеет площадь 1050 кв. см. Оставшаяся ткань пошла в обрезки. Сколько процентов ткани рулона пошло в обрезки?
Запись экрана не показывает проблему, попробую как-то иначе зафиксировать... Если есть возможность - прошу удалить пост, так как пока кроме текста он не несёт нагрузки
Так это того, как тут устроено свежее / новое. Если врубить скрывать просмотренное - счетчик начинается с 17 дней назад. Емнип, это новый год, но надо завтра еще посмотреть, будет ли 18. Так о чем бишь я - это баг или фича? Автор может подсказать, чяднт?

Привет всем! Недавно купил очень хороший климатический комплекс для всей семьи - Boneco H300.

Дело в том, что у нас до этого комплекса были разные очистители, увлажнители. Да, с ними дома было получше, но чего-то не хватало. Полез как и многие в интернет, чтобы найти информацию, какой увлажнитель лучше. В итоге больше недели потратил на изучение разных производителей и моделей. Увлажнитель полезная вещь, особенно в отопительный сезон. Очиститель тоже нужен, если есть домашние животные. Прошлым летом брали очиститель от IKEA тысячи за 2000 и какое было удивление, когда сейчас его продают у нас за 18000!!!! Так как у нас шпиц и ребёнок, то уже принял решение брать и не пожалел! Почему решил взять комплекс? Потому что там сверху стоит фильтр и тут 2 в 1, то есть и очиститель и увлажнитель, есть детский режим, управление с телефона. Ребёнок и мы с супругой стали спать лучше. Многие советуют брать мойки воздуха, скажу так, у нас уже есть одна! Расход воды большой, качество воздуха стало лучше и в итоге используем сейчас два устройства.
Рекомендую всем, кто заботится о своих близких. Данный пост не является рекламой, просто с этим климатическим комплексом дома действительно стало очень комфортно! И делюсь своей радостью! Мне действительно очень понравился данный комплекс.
Автор статьи не призывает брать данный климатический комплекс, так как каждый сам решит, что ему надо!
А вы используете дома: увлажнитель, очиститель воздуха или климатический комплекс? Давайте обсудим данную тему!
Всем добра и удачи!
Комментарии