Windows 10 и ремонт-2

В самом начале работы по модификации программки при попытке запустить отладку в Студии получил странное сообщение о невозможности разместить программу на компьютере:
Error : DEP0700 : Registration of the app failed. Another user has already installed a packaged version of this app. An unpackaged version cannot replace this.

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

Выясняется, что на такое наталкиваются уже давно и существует несколько рецептов исправить ситуацию с помощью PowerShell. Чуть дальше выясняется, что для Windows 10 рецепты не работают и нужно ремонтировать базу пакетов, где зависает запись об установке. Попробовал использовать китайский чудо-пакет Dism++, он эту неведомую запись увидел, но удалить не сумел.

Пришлось действовать руками, т.е. при помощи менеджера Фар. База с гнилой записью называется C:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd, запись находится в таблице Package. С помощью плагина “Редактор баз данных SQLite” удалось (ну да, надо исхитряться) локализовать и удалить злополучную запись. Попутно пришлось дать по зубам системе, которая выпендривалась и не желала поставить на место отредактированную базу – по-простому объявил себя владельцем этого файла…

Есть подозрения, что эту гадость делает сама Студия, когда при попытке отладки изменённого приложения берётся удалить ранее установленное из магазина. Экспериментировать пока не хочется, но манию топтаться по собственным яйцам стрелять себе в ногу у неё не отнять – например, часто при сборке пакета вылезает ошибка типа “не могу удалить папку”, которую сама же и открыла…

Игрушечка-11 и Windows 10

Давно, собственно, чесались руки переделать программку для “ручного” скробблинга (вернее, её “универсальный” вариант) под UWP, которую сильно пропагандируют с появлением Windows 10. Но всё как-то было недосуг, да и особой нужды не возникало – версия под 8.1 нормально работала и на десктопной, и на телефонной десятке, а средства для изготовления UWP-программ были слабосильны и малочисленны.

Но в конце 2016-го появилась Visual Studio 2017 в более или менее рабочем состоянии и стали появляться разные пакеты для разработки программ. К тому же, потребовалось внести изменения в существующую программу, а для этого пришлось доставать из пыльного чулана Visual Studio 2015 (VS-2017 напрочь отказывается работать с проектами для Windows 8.1). Изменения-то внёс, но потом выяснилось, что на телефоне с десяткой не заработало. Разбираться не хотелось (на телефоне с 8.1 программка вполне работает), проще было написать версию  под десятку.

Проще, естественно, не было, было долго и нудно – пришлось переделать не только весь интерфейс, но и заметную часть “функционального” кода. По ходу дела пришлось выколачивать исправления из индийского производителя бесплатного пакета контролов, прикручивать разные расширения к пакету Microsoft.Toolkit.UWP, продираться через заросли колючек глюков в SDK, компиляторах и Nuget-пакетах. В конце пришлось даже немного поплясать вокруг системы лицензирования программ в магазине.

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

 

***

Windows 10 и ремонт.

Поломалась вчера система на основном компе – не вчера, конечно, она постепенно дошла до состояния, когда даже магазин не открывается – решил работоспособность восстановить, откладывать некуда… Но локальная копия последнего бекапа потерялась, осталась только на облаке, откуда скачивать надо часа три…  Скачал за 10 минут (хвала великому Торренту!) официальный дистрибутив со всеми последними изменениями, однако установка системы поверх имеющейся ничего не дала Sad smile

Решил под шумок – ломать, так ломать – поставить и поизучать в деле последнюю инсайдерскую сборку, которая несколько дней нормально работает не только в виртуалке, но и на железе. Однако фокус и тут не удался: мало того, что у магазина даже иконка пропала, так ещё и мои три монитора превратились в тыкву – в один. Правда, во время установки использовались два монитора: есть у Windows 8+ такая блажь – после второй перезагрузки процесс демонстрируется не на основном мониторе, а на телевизоре. Может, потому, что он по HDMI подключён? Ну и что с того? Уже даже и привык…

В итоге на всю эту индийскую науку плюнул, восстановил из бекапа на начало месяца, за это пришлось ставить ежемесячные обновления и обновления для Студий. На удивление, всё прошло довольно быстро, примерно в течение часа. Дёшево отделался… Fingers crossed

Приключения с Windows 10, русофобские

Делал-делал некую программку, придумывал/отлаживал, чего-то получилось – ура! Настала пора делать пакет для Магазина – нет проблем, запускаем в Студии процедуру и на выходе получаем …нет, не пакет, а кукиш Thumbs down в виде длинного и малоосмысленного перечня ошибок в программе, которая отлажена и 5 минут назад работала.

Что ж, надо рыть… Раскопки привели к факту падения программки …\Microsoft.net.native.compiler\1.6.1\tools\x64\ilc\Tools\nutc_driver.exe со странной формулировкой “fatal error N1002: Недостаточно памяти” при том, что на тот момент свободной памяти было ок.11 Гб. Если отключить компиляцию в native-код, то никаких ошибок не появляется, но по умолчанию она включена, да и в магазин, говорят, пакеты без такого кода не принимают. Хотя, спрашивается, кому он сдался, этот код? Программы для Windows 8.1 никто не компилит, а они и в “десятке” прекрасно работают… 

После некоторых манипуляций с подключениями сторонних пакетов памяти стало хватать, появилась другая ошибка – “fatal error N1001: Internal compiler Error”. Поиск причины такого харакири компилятора привёл к двум константам, объявленным внутри метода и имеющим русские имена. (Ну да, у меня много и других русских имён в программе, но только вот такие константы заваливают компилятор…). Ну, русофобы там работают, что с них возьмёшь? Кортану на русском даже и обещать перестали, Магазин для русских тоже сильно ограничен, теперь вот и компилятор. Devil

Если кто не верит – крохотный тест: В Visual Studio 2017 сделайте новый пустой проект универсального приложения (самый верхний пункт) с именем “Переводчик”, на страницу MainPage добавьте пару элементов

image

и пару методов:

image

Включите конфигурацию Debug, запустите и наблюдайте исправную работу переводчика.

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

image

И будет этот кукиш до тех пор, пока не исправите вон ту самую маленькую жопу:

image

Вот такая вот русофобия в недрах благодетеля…

P.S. И не говорите, что писать русские имена неправильно – во-первых, язык официально поддерживает любые юникодные наименования, во-вторых я русский, отчасти фанат правильного использования языков (как своего, так и английского) и для меня правильней написать русское имя, чем тужиться и изобретать при помощи “трансляторов” осмысленное английское. Тем более, никогда не напишу транслитом.

И что с того, что какой-то засранец в команде разработчиков каким-то специальным способом обработал именно имена констант (и только их)? Её и вовсе быть не должно, этой жопо-константы – где-то там речь шла про оптимизацию кода, а заинлайнить жопу предлагал ещё Roslin, как только я её написал. Пришлось .Trim() написать, чтоб отстал. А где были остальные оптимизаторы – неведомо, если жопа дожила до native-компиляции…

Прорвёмся…

Приключения с Windows 10, календарные-4.

Не так уж и давно, в ноябре 2016-го, похожие приключения уже были. Сегодня с утра, примерно до 12.30, всё было нормально, о делах девайсы напоминали исправно и вовремя. После обеда заметил, что все молчат… Пригляделся – так и есть, наступают на те же грабли.

Все настройки оповещений удалены подчистую, осталось оповещение только у одного, которое добавлял сегодня – видимо, удачно попал, когда “мудификации” на сервере уже прошли…

В дополнение к удалению оповещений косорукие воины Nadell’ы пошли дальше: настройки повторяющихся событий из вида “каждое 24 число месяца” перевели в вид “каждый 4-й четверг месяца”. Вот это уже совсем вредительство – без оповещений нужную информацию можно, всё же, увидеть глазами, а вот когда четверг окажется 26-го, тогда пропуск платежа за телефон гарантирован… И кому я буду потом зачитывать этот пост?

Блин, и ведь от этих фокусов никак увернуться нельзя – все изменения делаются на сервере, никакие бекапы тут не помогут.

P.S. Контакты они тоже “усовершенствовали”, по мне этот каток тоже прошёлся – потеря аватаров (всех), склеивание разных людей (мало)…

P.P.S. Попробовал применить к редактирование контактов Outlook 2016 (когда-то была любимая программа, на все случаи жизни) – нет, фокус не удался. И форматы уже разные, и что-то не считывается, что-то не записывается. Бросил эту затею…

P.P.P.S. Пора начинать искать сторонние средства средства для календарей/контактов, Наделловское воинство, полагаю, не остановится… А жаль, начиналось-то неплохо.

Тачпад, мышка и Андроид

Была у меня любимая мышка (собственно, она и сейчас есть, никуда не делась), вот такая:

 

Microsoft Touch Mouse Black USB

Весьма удобная, никаких движущихся частей (даже колёсика нет), всё управление жестами. Один был недостаток – очень прожорлива  на предмет батареек. Положение спасают аккумуляторы и удовольствия перекрывают этот маленький минусик. Но всё проходит, даже хорошее – с некоторых пор мышь начала очень плохо работать в Windows 10 ( MS даже выпустила две или три модификации драйвера мышки, но помогает это слабо). Периодически курсор становится малопослушным, будто кто-то его держит… Помогает выключение/включение мышки или вытаскивание приёмника из USB-разъёма, но на несколько минут. В общем, не работа это… Главное, других таких мышек и нет. Вернее, одна есть (не считая множества имитаций), вот эта:

 

Logitech Ultrathin Touch Mouse T630 Black-Silver USB

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

Конечно, есть у меня мышки и попроще, и с хвостом, и беспроводная, но работать с ними на трёх FullHD мониторах (два 24″ монитора и один 42″ телевизор) – процесс весьма матерный. Всё же, их делали тогда, когда монитор на 19″ считался большим. Для перетаскивания окна с третьего монитора на первый приходится поднимать со стола клавиатуру. Настройка большой скорости курсора мыши делает только хуже – позиционирование становится плохим.

Братья китайцы предлагают купить аналог – беспроводной тачпад от Lenovo:

image

Всё, вроде, хорошо: и цена очень приличная, и функциональность хорошая… Одна незадача – никогда в жизни не держал в руках такого большого тачпада – размер примерно 13 см *13 см. Может, и вовсе неудобно с ним обращаться? И потрогать живьём негде – не продают такое в наших магазинах почему-то (потрогал как-то клавиатуру с тачпадом, но у него там размер меньше, ближе к ноутбучному).

Нет живьём – будем моделировать: в хозяйстве имеются два планшета с сенсорным экраном, 7″ на Андроиде и 10″ на Windows. Андроид бы очень подошёл – и по размерам где-то похоже, да и не использую его практически, чего там железке валяться… Гугль на запрос, как из планшета сделать тачпад, в первых строках выдал вот эту программку – TouchMousePointer. Её, собственно, сделали для организации виртуального тачпада на самом планшете (да, иногда и надо бы, хоть и редко), но если есть “мышка”, то ей всегда можно поработать на других компьютерах при помощи программки от MS Mouse without Borders. Минут 15 ушло на настройку обеих программ и изучение инструкции по настройке виртуального тачпада – и вот он, большой тачпад:

Screenshot (8)

На 10″ и сам поместился, и и инструкция про жесты… Winking smile Третий день с ним упражняюсь, и почти уже привык, мышка требуется всё реже и реже. Трудности, конечно, всякие возникают – когда планшет успевает в спячку уйти, надо связь восстанавливать, программка “Mouse without Borders” иногда принимается бузить и её надо перезапустить. Но это мелочи, а свобода дороже – вози пальцами, хоть вправо, хоть влево, хоть одним, хоть всей пятернёй, никаких кнопок судорожно нажимать не нужно и колёсико скрюченными пальцами осторожно поворачивать… В общем, как стенд на предмет оценить технологию – лучше не придумаешь. Недельку поупражняюсь и станет ясно, удобно ли таким способом управлять компом и нужно ли купить физическое устройство от китайцев или можно виртуальным обойтись… А пока технология нравится.

А вот Андроид ожиданий не оправдал Sad smile Всегда считалось, что программ под Андроид-устройства полно и они всегда лучше аналогов для устройств на Windows, но вот с этой задачей превращения планшета в тачпад я так не скажу. Несколько программ для этой задачи нашлось, и бесплатных, и за деньги, к моему планшету и компьютеру (все программы состоят из сервера на десктопе и клиента на планшете) подошла пара из них, рабочей оказалась всего одна – курсор передвигается, нажатие кнопок симулируются, и на этом всё. Да и то, что реализовано, работает весьма плохо – курсор движется медленно, экрана планшета не хватает для перемещения по всему монитору. До скроллинга страниц в браузере и работы с текстом руки не дошли. Грустно,.. Может, конечно, под более продвинутые версии Андроида (у меня 4.0.3) написаны более крутые программы, но я про это, скорей всего, не узнаю – не буду я новый Андроид-агрегат покупать, дешевле купить тачпад от Lenovo.

Все на VPN!

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

Вчера поутру обнаружил, что программа Microsoft Band на моём винфоне не синхронизирует данные с десктопом, хотя телефон подключён как к домашней wi-fi сети, так и к мобильной сети МТС. После традиционных пожеланий здоровья корпорации стал разбираться, в чём же дело. Выяснилось, что если отключить wi-fi, то синхронизация данных проходит. Тут же обнаружилось, что и на десктопе недоступны многие сервисы MS – visualstudio, Office365, к вечеру “пропал” Onedrive. Никаких сообщений о блокировке не выводится, страница недоступна, заходите позже… При подключении через телефон всё работало. Называется, приехали. “Техподдержка” провайдера бодро рапортует, что проблема им известна, причина не ясна, работают над устранением. Как и ожидал, сегодня положение не изменилось, только ближе к вечеру доступ к сайтам восстановился.

Нет худа без добра – решил поплотнее посмотреть, как подобные художества впредь обходить: меньше-то их не станет, правительственные дурилки будут всё больше беситься на тему блокировок ресурсов, а дурилки провайдерские будут тупо (а как они могут ещё?) блокировать то, что им указали дурилки из какого-нибудь районного сельского суда по наводке дурилок из прокуратуры. Блокировали ведь уже такие сервисы, как last.fm, github.com… Для браузеров проблема решается сравнительно легко при помощи многочисленных расширений и дополнений, а вот с программами наподобие MS Office, Visual Studio и т.п. такой подход вряд ли реализуется. Тут только VPN поможет.

Оказалось, что отрасль VPN достаточно хорошо развита, в т.ч. можно найти и бесплатные услуги. Понравился небольшой обзор провайдеров VPN здесь. Для себя выбрал два с бесплатным доступом – hide.me и vpnGate. Первый лёгок в настройке и использовании, в т.ч. на Windows 10 Mobile, бесплатно предоставляет 2 Гб трафика в месяц, скорость передачи данных не рекордная, но отправить/получить данные сервисов вполне можно.

Второй в принципе бесплатный, не просит никакой авторизации и никак не ограничивает трафик. Как его использовать на телефоне, пока не сообразил, но всё прочие потребности, от обновлений программ в магазине и на серверах до просмотра видеороликов на YouTube и скачивания файлов через торрент-клиента, vpnGate обеспечивает. Скорость при скачивании доходила до 25 Мбит/с по диспетчеру задач Windows. Похоже, его можно постоянно на десктопе включать и использовать. Неясно пока, правда, как система себя ведёт при выключении сервера, к которому подключился – там многие серверы от добровольцев, а им тоже отдыхать надо…

На следующей неделе, 13-14 декабря, должно быть “большое” обновление Windows почти всех версий и при продолжении игр с блокировками можно этих обновлений не получить и отдать компьютер злобным хакерам – некоторые умники публикуют информацию об уязвимостях до того, как их устранят (а теперь и родимое “правительство” может препятствовать установке даже тех заплаток, которые выпустят). И никакие антивирусы в подобной ситуации могут не помочь – их-то сервисы обновлений тоже могут под блокировку попасть.

В общем, граждане россияне, спасение утопающих – дело рук самих утопающих, все на выборы. Ну да, правильно, выборы уже прошли и на них благополучно не сходили, поэтому все на VPN!