- А что? У меня хороший график. Сутки через трое. Трое суток на скорой, одни дома.
Правда в эти домашние сутки он ещё на две "синекуры" заглядывал. Это небольшая подработка на двух предприятиях доктором за работу вовсе не считалась:
- Так, бумажки перебираю.
Кончилась эта история с "хорошим графиком" тем, что врач перенёс обширный инфаркт миокарда. После перенесённого инфаркта получил инвалидность, связанную с прогрессирванием хронической сердечной недостаточности. Ждал доктор, когда подойдёт очередь на пересадку сердца. Не дождался
Моё тело – моё дело, это слоган, который призван отстаивать
идею личной телесной автономии, целостности и свободы выбора в написании статей
по слову прошедшей недели!
Балу не даст соврать по поводу слогана
И, между прочим, рекорд ивента 39 статей – правда, немножечко
с хитрецой, поскольку это оказался самый многосерийный ивент.
Бухотека отечественного винного рынка в трёх частях: раздватри
Хотя для других это может кончаться так как на видосике, вывод – не бухайте, а пейте ради
удовольствия
А теперь переключим внимание с тела на Центр, а вот чего, вомбатцы решат на неделе
Слово недели с 30.03 по 05.04
Напоминаем правила ивента:
1. Раз в неделю, по понедельникам случайно генерируется
слово. Это слово будет основой для ваших постов. Неважно что вы сделаете,
слепите, нарисуете, напишите стих с этим словом, расскажете анекдот, свою
историю с этим словом, даже с помощью генератора мемов можно, абсолютно
неважно.
2. Ивент с данным словом длится до следующего
понедельника, когда будет озвучено новое, случайно сгенерированное слово.
3. Необязательно чтобы выпавшее слово было лейтмотивом. Ну
например выпадет слово кит - может быть картинка загадка о морских существах,
на которой изображен один кит, а найти надо дельфина. Или созданный комикс/мем,
в котором вообще речь о другом, но на пряжке у героя изображен кит. Или может у
вас завалялась история из жизни, где кит просто был второстепенным объектом,
или названием бара где все происходило. Т.е. слово обязательно должно
присутствовать в работе, но может не являться ее заглавной темой. А может и
являться.
4. Все посты публикуйте под тегом "Ивент
Вомбата" и "Центр".
Короткий познавательный пост, основанный на моей больной фантазии. Все совпадения случайны.
Обратился как-то один человек на профильном форуме с вопросом, как запустить (не сказать чтобы старую) игру на Windows 10. Игра (хотя я бы назвал это технодемо) была разработана на легендарном XNA 4.0 (земля пухом) и планировалась к выпуску через Steam Greenlight (и ему земля пухом) еще в далеком 2012, после чего заброшена и убрана со всех магазинов.
Игра была куплена тем человеком еще в тот момент, когда она легально продавалась. А спустя годы она просто перестала подавать признаки жизни. $5 за полную версию уплочены, а поиграть нельзя. Обидно.
Так как типовые решения по типу установки XNA Redistributable не помогли, то был предложен единственно возможный выход из ситуации - отладка через dnSpy.
Внимание: обратная разработка хоть прямо и не запрещена законодательно, но разрешенные случаи весьма ограниченны. В других странах разрешен явный запрет любых манипуляций через лицензию, превращающий это занятие во вполне наказуемое. Не повторяйте дома.
Так как ПО было приобретено легально и оно не работает, то этот теоретический случай допустим в соответствии со статьей 1280 гражданского кодекса.
Демонстрировать буду на бесплатной демоверсии, скачать можно здесь.
dnSpy
Театр начинается с вешалки, а программа на C# с атрибутов сборки. Они нам сейчас не сильно интересны, поэтому пытаемся сразу запускать отладку. С неизвестными программами лучше использовать виртуальную машину, так как может быть встроена какая-нибудь пакость для кулхацкеров, но мне можно и так.
Ошибка. Открываем стек вызовов и ищем место, где произошел провальный запрос в сеть.
А вот и виновник торжества. По сообщению из исключения можно сделать вполне однозначный вывод, что проблемой является скупердяйство и непредусмотрительность автора, который решил перестать платить за домен и хостинг, а вместе с этим случайно (а может и намеренно) сделал запуск игры невозможным без интернета. Так как на сайте заявлено отсутствие DRM, то это явно недосмотр.
Что тут происходит?
Если почитать документацию на XNA, то этот метод предназначен для загрузки контента и вызывается автоматически при запуске игры. Первым делом выполняется инициализация некоторых вещей, после чего открывается файл настроек (options.xml) и начинает последовательно считываться. Как только считываются параметры аккаунта для таблицы рекордов, то происходит отправка логина+пароля на официальный сайт и попытка получить ID. Если сервер возвращает Failure, то открывается диалог входа, который можно пропустить. Если сервер возвращает число, то игра запускается. А вот если сервер недоступен, то вылетает исключение, которое никак не обрабатывается и приводит к молчаливому вылету.
Диалог входа официально можно пропустить.
На этом этапе есть 2 варианта действий:
Вручную отредактировать настройки и убрать пункт об аккаунте. Тогда игра будет всегда запускаться без входа.
Физически убрать запрос на несуществующий сайт.
Нормальные герои всегда идут в обход, так что переходим к написанию небольшого патча. (На самом деле, о первом варианте я додумался не сразу. Более того, полная версия зависает при убирании этого пункта из настроек).
Выделяем строчку с запросом и нажимает "Изменить инструкции IL". Открывается окно с заголовком "Изменение тела метода".
Это - язык MSIL. Он очень прост и сильно напоминает Forth, на самом деле, но новичка может отпугнуть.
Ключевым элементом является стек. Что такое стек я уже когда-то рассказывал. Это некоторое место, на вершину которого можно последовательно добавлять значения (числа, строки и прочие объекты), а так же снимать их в обратном порядке.
Не эти стеки, но суть та же. Можно добавлять и снимать сверху.
ldloc.2: Значение локальной переменной под номером 2 (с типом строки)
ldstr: Строку "&p=".
ldloc.3: Значение локальной переменной под номером 3 (тоже строка).
Потом мы вызываем 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() нас не интересуют, так как достаточно просто не делать того, что приведет к обращению в сеть (а конкретно: не открывать диалог входа, не указывать никакие аргументы при запуске и не пытаться авторизоваться через главное меню (вроде бы не реализовано)).
Как на самом деле размножаются апельсины? В крупных апельсинах внутри, со стороны бывшего цветка, очень часто попадается странное включение — словно бы маленький апельсинчик с беспорядочно расположенными складками кожуры, а иногда и с настоящими малюсенькими дольками. Многие в детстве думали (и я тоже), что именно так апельсины и размножаются. А на самом деле — что это за штуковина?
Идея про размножение апельсинов с помощью этих вот «детёнышей» красивая, но, увы, ошибочная. А чтобы разобраться с главным вопросом — «что это за штуковина?» — придётся совершить экскурс в ботанику.
Апельсин — представитель семейства рутовых, которое, в свою очередь, относится к цветковым (покрытосеменным) растениям. Главные характерные черты этой группы, как понятно из двух её названий, — это наличие цветков и плодов (именно плоды «покрывают» семена покрытосеменных). Цветки и плоды — это органы, облегчающие растениям размножение с помощью семян. В цветке происходит опыление (в случае апельсина — с помощью насекомых), плод способствует распространению семян (у апельсина и других фруктов семена распространяют поедающие плоды животные).
Так всё и происходит в случае с сортами апельсина, в которых есть семена (наверняка вы и с такими апельсинами встречались). Но у апельсинов с «детёнышами» внутри, которые часто называются «навелины» (от английского navel — «пупок», то есть «апельсины с пупком»), семян обычно нет! Для еды это очень удобно, но вот размножать такие растения приходится другими способами — чаще всегопрививкой(приживляя стебель нужного нам растения к стеблю и корневой системе другого растения) или с помощьюклеточной культуры(выращивая в лаборатории целое растение из его клетки). .
Апельсин — культурное растение с долгой и непростой историей: сейчас известно, что первые апельсины возникли более 2000 лет назад в результате скрещивания мандаринов и помело. Произошло это в дикой природе или в культуре — мы не знаем, но первое упоминание апельсина относится к IV веку до нашей эры. За столетия выращивания в культуре плоды апельсинов сильно изменились: стали более крупными, сочными, сладкими, с меньшим количеством семян, длительным сроком хранения, легко снимающейся кожурой... Все эти перемены — результаты случайных мутаций, оказавшихся полезными для людей и потому закреплённых искусственным отбором. Но мутации бывают не только полезные — и «пупок» апельсинов-навелинов — это тоже результат мутации (считается, что она возникла в первой половине XIX века в Бразилии), только совершенно бесполезной.
Так что же это за таинственный «пупок» и откуда он взялся? Давайте посмотрим на цветок «нормального» апельсина. Плод образуется из круглой завязи, расположенной в основаниипестика. Завязь состоит из нескольких частей —плодолистиков, — это те самые будущие дольки апельсина. Все остальные части цветка, включая другие части пестика (они называются столбик и рыльце), после окончания цветения засыхают и отваливаются.
Стадии развития плода апельсина. В цветке происходит оплодотворение, и семязачатки внутри завязи пестика становятся семенами. Все части цветка, кроме завязи, отпадают, а завязь превращается в плод, состоящий из долек (плодолистиков) с семенами внутри. Рисунок из презентации Flowering Plants Chapter 25 Notes
Необычность цветка навелинов в том, что в верхней части завязи (назовем ее первичная завязь), в месте перехода ее в столбик, образуется другая (вторичная) маленькая завязь со своими дольками-плодолистиками. Никакие другие части цветка не образуются, только эта одинокая вторичная завязь, которая погружается в первичную. В зависимости от сорта (а за 200 лет сортов навелинов появилось немало!) ее размеры и заметность могут быть разными, но чаще всего она почти полностью скрыта под кожурой и только в месте, где находился столбик, остается более или менее глубокий «пупок».
Зачатки вторичного плода («детёныша») внутри бутона цветка апельсина. SC (secondary carpels) и на левом, и на правом рисунке — вторичные плодолистики, то есть части завязи, которые станут дольками плода. На левом рисунке PP обозначает первичный гинецей, то есть совокупность всех плодолистиков главной завязи. На рисунке справа — первичная завязь (PO); видно, что она состоит из плодолистиков (долек). Фото из статьи J. E. O. Lima and F. S. Davies, 1984. Secondary-Fruit Ontogeny in Navel Orange
Зачем же люди выращивают навелины с этим бесполезным «пупком» в таких больших количествах? Дело в том, что выросшие на мутантном дереве апельсины, помимо «пупка», обладали и многими полезными свойствами: они вкусные, бессемянные, легко чистятся и не слишком сочные (удобно есть дольки руками!). Ну а пупок никому не мешает, к тому же позволяет легко опознать «правильные» апельсины на полках супермаркетов.
Когда Солнце светит, то испущенные им лучи света летят прямо, рядышком друг с другом и вместе падают на Землю. Но есть предметы, например зеркало, которые могут отражать свет. Лучик света, который упал прямо на зеркало, отрывается от своих собратьев-лучей (которые на зеркало не попали) и улетает вбок в одиночестве.
Солнечный зайчик — это и есть кусочек солнечного света, такой луч, который пошел по другому пути, не так, как все.
Похожим образом можно управлять не только светом. Например, вода стекает с гор в море в виде речки. Но если проложить трубу от речки до дома, то в водопроводном кране дома тоже появится струя воды. Это — кусочек речки, который с помощью трубы пошел по не такому пути, как все.
Когда передо мной встала задача пройти повышение квалификации, я сразу обратила внимание на дистанционные программы. Работая в медицинской сфере, знаю, как сложно выкроить время на очные курсы, особенно если график плотный, а нагрузка высокая. Поэтому выбор пал на Московский профессиональный институт (МПО) — один из лидеров дистанционного образования для медработников в России.
Меня привлекло сразу несколько факторов. Во-первых, институт имеет все необходимые лицензии, а выдаваемые документы — дипломы и удостоверения — вносятся в электронные базы ФИС ФРДО. Это важно: работодатель всегда может проверить подлинность документа, и я была уверена, что мой сертификат будет признан по всей стране. Во-вторых, обучение полностью дистанционное: можно учиться с компьютера или даже смартфона, не отрываясь от работы и не тратя время на дорогу. В-третьих, каталог курсов очень широкий — для медиков есть программы по самым разным направлениям, от сестринского дела до узких специальностей.
Записаться на курс оказалось очень просто: я оставила заявку на сайте, выбрала нужную программу повышения квалификации и оплатила обучение. Менеджер быстро связался со мной, уточнил детали и помог с оформлением документов. Для зачисления потребовалось только отправить скан диплома о медицинском образовании — всё через личный кабинет, без бумажной волокиты.
Материалы курса были доступны 24/7. Я могла изучать лекции, презентации и видеоматериалы в любое удобное время — вечером после смены или в выходные. Особенно понравилось, что нет жёсткого расписания: не нужно подстраиваться под группу или ждать начала семестра. Все тесты и контрольные можно сдавать по мере готовности, а если возникали вопросы, преподаватели отвечали оперативно — поддержка действительно работает круглосуточно.
Курс был насыщен актуальной информацией: новые стандарты, изменения в законодательстве, современные подходы к работе. Для меня это было важно, ведь в медицине всё меняется очень быстро. Я смогла сразу применять полученные знания на практике, что отметили и коллеги, и руководство.
По окончании обучения я успешно сдала итоговый тест. Уже через несколько дней мне на почту пришёл скан удостоверения о повышении квалификации, а вскоре — и оригинал документа в твёрдой обложке. Данные о моём обучении появились в реестре ФИС ФРДО, что подтвердило легитимность сертификата. Всё прошло быстро, прозрачно и без лишних хлопот.
Дистанционное повышение квалификации в Московском профессиональном институте стало для меня отличным решением. Я получила актуальные знания, официальный документ и при этом не выпала из рабочего процесса. Если вы медицинский работник и ищете удобный, надёжный и современный способ повысить свою квалификацию — смело рекомендую МПО. Здесь действительно ценят время студентов и дают качественные знания, которые востребованы на рынке труда.
Всем привет! Делюсь своим новым видео.Это японский ремейк на трек «я потому шо ты». Постарался немного передать аниме атмосферу. Буду рад фидбеку! Как вам звучание на японском?
Копье — созвездие чистых помыслами. Кто, как и Кирайя, с оружием в руке встает против несправедливости, лжи и расправы над беззащитными. У копья Кирайи нет темного подобия, ибо оно есть свет, предвечный и негасимый.
Монголия, группа The HU, это их хит, в котором поётся, что всех врагов, которые придут на их земли, ждёт неминуемая смерть. Интересно, а кто и когда нападал на Монголию вообще?