MCP

четверг, 2 декабря 2010 г.

Подключение внешнего GPS-приемника к телефону на Android

У меня обновление телефонного парка, теперь есть замечательный Motorola DEFY, когда-нибудь расскажу про него подробнее, а также впечатлениях от Android по сравнению с Windows Mobile. Пока есть ощущение большой сыроватости андроида в плане фич. Если WM телефон выглядит как маленький компьютер со своими достоинствами и недостатками, но это именно продвинутый телефон с возможностью установки программ и отсутствием некоторых вещей.

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

Задача состоит в том, чтобы подключить внешний USB GPS-приёмник к телефону на Android. Для начала небольшая отбивка зачем это нужно (для тех, кто читает мой этот пост не ради конкретной цели подключить ).

  • Внешний приемник имеет свою батарею и не расходует телефонную
  • Внешний может быть постоянно включен, соответственно быть постоянно в курсе спутников (в телефоне норовит всё время отключиться, чтобы поэкономить батарейку)
  • Внешний приёмник имеет лучшее качество приёма, а чтобы было ещё лучше — его можно расположить в зоне лучшего сигнала (может быть полезно в машине). 
Итак, приёмник есть, стандартными средствами его не подключить, ибо в отличие от всех других телефонов и компьютеров, при подключении его к устройству не создаётся виртульный bluetooth COM-порт, к которому могут подключаться программы. Все программы используют системный API работы с GPS, который знать не хочет про внешние устройства.
Но есть оригинальное решение, основанное на том, что для каких-то целей в телефоне есть фунционал Location Mocks, это такие, виртуальные заглушки для определения местоположения. Это полезно для разработчиков, но зачем это конечному пользователю? Впрочем, поскольку данный функционал есть, один хороший человек написал программу, которая использует внешний приемник и изображает из себя заглушку для определения местоположения. Причём программа абсолютно бесплатная и выпущена под GPL.

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

понедельник, 1 ноября 2010 г.

Как сделать загрузочную флешку с Windows, и что ещё с этим можно делать

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

Для начала с простого, как сделать загрузочную флешку. Делается всё элементарно: Идём на сайт Microsoft, находим ссылку на скачивание Windows 7 USB/DVD Download Tool, устанавливаем, следуем инструкции, получаем загрузочную флешку, теперь мы можем устанавливать свежую операционную систему, причём, опыты показывают это всё идёт весьма шустро, и гораздо тише, нежели с DVD-диска.

Теперь маленькие хитрости.

1. Если тупо заменить все файлы на флешке файлами другой системы, то мы получим загрузочную флешку другой ОС, ибо загрузчик не трогается, а у всего семёрочного семейства операционных систем Microsoft один загрузчик (возможно что и с Vista всё будет хорошо). Т.е. если мы изначально поставили русскую Windows 7 32 бита, а потом хотим поставить английский Hyper-V Server 2008 R2 x64 — то нам просто нужно заменить файлы.

2. Если где-нибудь на флешку положить Far (подходящей разрядности, разумеется), то можно загрузиться с флешки, нажать Shift+F10 в появившемся окне установки, в командной строке найти нужный диск с флешкой и запустить Far. В нём можно вполне сносно работать, ведь мы находимся в Windows PE, который нам достался беслатно вместе с установочным диском. Иногда в таком режиме можно решить некоторые проблемы с загрузкой системы.

3. Вместо Far'а можно использовать программы для восстановления файлов/разделов, некоторые из них вполне неплохо себя чувствуют в данном окружении. Т.е. если что-то случилось с системой, её можно подлечить таким образом, не прибегая к тяжёлой артиллерии специализированных систем (иногда просто их нет под рукой).

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

5. Shift+F10 во время установки системы и Far, могут весьма неплохо скрасить ожидание установки системы. Можно понаблюдать за её поведением.

6. При желанни, данную флешку можно использовать для того, чтобы сжать папку Windows. Зачем это надо, хорошо описано на Хабре (там же есть командная строка для запуска). От себя отмечу, что это помогает (только не забыть потом сделать дефрагментацию), кроме того это также экономит немного места на жёстком диске.

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

понедельник, 27 сентября 2010 г.

Впечатления от Application Developer Days 2010

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

Собственно, заканчиваю про себя, лучше про впечатления. Конференция была просто отличной, в ней, конечно, не было московского лоска, зато было всё остальное: отличный интернет (спасибо D-Link, отличные пирожки, вода, и что особенно редко на конференциях — свободные розетки. Можно было зарядить ноутбук, одновременно поглощая информацию. При этом даже на крупных конференциях с интернетом обычно лажа, еда по расписанию, вода счастливчикам.

Теперь по докладам, 2/3 которых, я естественно пропустил  (было 3 параллельных трека, и естественно я не мог физически присутствовать на всех, будем ждать видео). Началось всё с доклада Стаса Фомина про Открытые Системы Разработки. Стас впечатлил технической организацией доклада — подставка под клавиатуру, mind map вместо power point, сам доклад при этом был не очень для меня полезен (может потому что у нас уже внедрено большинство из того, о чём говорил Стас?), но рассказано всё было очень хорошо и интересно, поэтому следующий доклад про Сравнения Хранилищ Данных, показался не очень хорош. Первая часть доклада была сплошным глоссарием, хоть полезным, но как-то не очень интересным, поэтому вместо второй части я отправился слушать Андрея Бибичева про Дополненную Реальность. Доклад был больше обзорным, зато было много деталей и полезной информации. Например, я узнал нафига в телефоне гироскоп, акселерометр, цифровой компас, чем они отличаются и почему для полного счастья должно быть всё. Ну, и то, что в обработке изображений в большинстве случаев используются тупые дубовые алгоритмы, зато они работают, и не жрут много ресурсов.

После обеда послушал Дмитрия Завалишина про разработку на Java. Ничего особого, но рассказано интересно. Доклад про GPGPU для .NET показался весьма странным: проект очень интересный, но весь доклад не покидала мысль: зачем всё это нужно?

Ну а после этого начался знатный срач Java vs C#, который быстро превратился в обсуждение vendor lock и является ли корпорацией зла Oracle. То, что если нужна разработка под Windows, то C# рулит, в самом начале заявил Дмитрий Завалишин и никто в общем-то и не спорил.  Доклад про статический анализ кода, позволил мне порадоваться за компанию Custis, что у них есть клёвый инструмент для этого. А в конце был замечательный доклад Алёны про ИИ в играх. Опять же, вроде бы ничего секретного не было рассказано, но было очень интересно и познавательно. Я даже записал видео доклада (спасибо хорошему интернету).

Потом было отличное afterparty (вечеринка в IT-стиле), и следующий день докладов, который начался с доклада Миши про разработку под Windows Phone 7. У Миши был секретный прототип, который он никому не давал пощупать, зато много показывал. Что я могу сказать, технически, разработка под WP7 очень крута. А что будет с политикой Microsoft в этом плане, узнаем позднее. Доклад про Apache Hadoop был омрачён фразой в конце, что он падает и теряет данные. Ну и нафига такое счастье? Подождём, когда будет более стабильный.

После этого Миша рассказал про круть и мощь IE9, ничего особо полезного, но зато очень красивая демонстрация, и интерсно рассказано.

У Ильи Кантора доклад был из двух частей, про защиту от DDOS с помощью специфичного прокси (с тем же успехом можно было сделать вводную про HiLoad) и кросс-доменную авторизацию, которая из себя представляет хороший рабочий хак, который реально нужен только для SEO. Ну и в конце был интересный секретный доклад, о котором я ничего не расскажу, он же секретный

Алёна рассказала про  C++0x, который движется непонятно в какую сторону и получается весьма странно и ужасно. Зато есть фишки из C#, выглядящиие абсолютно чужеродно для С++ Что-то люди как-то не туда движутся.

Никита Фролов порвал весь зал рассказом про то, как надо разрабатывать под iPhone. Несмотря на то, что половину времени зал валялся, общая концепция была рассказана очень понятно. Всё это чем-то похоже на обкуренный Delphi с кучей дизайнерских фишек.

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

В конце была раздача слонов и подарков, а в субботу мастер-классы Ильи Кантора. В общем, всё было круто и замечательно. Первая конференция определённо удалась.

среда, 22 сентября 2010 г.

Pattern & Practices Summit. Результаты

Как я понял, никогда не стоит проводить конференции по понедельникам.
Просто и конференция давно кончилась и все отчитались, а я только вспомнил, что надо бы и мне пару слов вставить.
А всё из-за чего? В час ночи выехал, в час ночи следующих суток вернулся домой. Находясь там было интересно слушать жалобы людей, которым ехать до москвы 1-2 часа, типо это много, и они хотят спать. Ха!
Невыспавшийся рванул на работу, поднимать целину разгребать дела, делать клиентов счастливыми, потом одно, другое, в общем пишу уже когда никому это не нужно. Ну и ладно, для истории пойдёт (по блогу, кстати хорошо потом события восстанавливаются).

 Конференция была небольшой, всего в два трека, и специфика больше для архитекторов, чем для разработчиков. Во всяком случае, больше концептуальных вещей, чем каких-то специфичных. После основных докладов всё разделилось на две разные части: Enterprise Library и Azure (т.е. во всех проявлениях про Enterprise Library/Patterns и в них же про Azure). Побывал и там и там, для себя сделал следующие выводы: Enterprise Library выглядит на словах очень хорошо, но все кто с ней сталкивался отзываются о ней без энтузиазма: "ну есть и есть, а логгинг они и не починили". Соответственно, как я говорил, что это для архитекторов, архитекторы пусть и решают, стоит ли использовать данную библиотеку в проектах или же использовать другие, более удобные и понятные вещи.
Про Azure (это облачная платформа от Microsoft), наоборот было много интересного, правда всё это красиво нивелировалось тем, что никто не мог сказать, когда же это всё будет запущено в России. Зато понял про модель оплаты всего этого дела, и как всё это устроено. Вкратце, там поверх своей хитрой и специфичной технологии ещё натянуты обычные сервисы и NTFS. Их можно использовать, но это будет неоптимально с точки зрения потребления ресурсов, поэтому лучше писать сразу под Azure, но тут возникает вопрос: "А если нужно писать специально под эту технологию, то почему нужно писать именно под эту технологию, а не какую-нибудь другую?". Т.е. Microsoft предоставляет гибкость, масштабирование и всё такое, но вместо обычного SQL у нас SQL Azure который несмотря на название, всё-таки является NoSQL, сервисы и службы тоже весьма специфичные. Так что же мешает вместо всего этого просто взять и делать обычное масштабирование системы с использованием других технологий (пусть тех же облаков, но которые тупо IaaS)? Этого я не знаю. Пока в голову лезут уж очень специфические проекты с непостоянной сезонной нагрузкой.

Я намеренно не рассказываю конкретно про доклады, докладчиков и прочие моменты, потому что и без меня это уже очень хорошо сделано, единственное, что меня смутило, так это банальное отсутствие интернета на мероприятии. После двух докладов выяснилось, что он в принципе есть, и ещё два доклада и случайная встреча потребовались чтобы выяснить, что DHCP-сервер не существует, и нужно вбить очень оригинальные настройки руками. Многие, кстати, плюнули на весь этот квест, но я таки решил пройти его до конца. Так что в этом плане всё было весьма странно. Вторая странность была в парных докладах, т.е. между двумя соседними докладами не было паузы, и получалась весьма некрасивая ситуация, когда новый докладчик уже начал рассказывать, а люди в зале активно перемещаются (кто-то убегает на другой доклад, кто-то наоборот).

А вообще, организовано всё было неплохо, докладчики были интересными, подарки отличными, и если бы я был архитектором, я бы наверно оценил всё ещё лучше 
 
А уже завтра начинается Application Developer Days 2010, где я в пятницу буду выступать с докладом, всё обещает быть очень интересным, а я, надеюсь что оставлю отзыв не через 2 недели после мероприятия.

пятница, 17 сентября 2010 г.

Проблемы с VMBus при миграции с Virtual PC на Hyper-V

Тут перетаскивали локальную виртуалку на Висте с Virtual PC на Hyper-V. При этом вылезла проблема с тем, что виртуалка на новом месте не видела сети (только Legacy) безумно тормозила (100% загрузки процессора и почти всё время в ядре), в списке устройств лежал неработающий VMBus (это виртуальное устройство от Hyper-V).

Естественно, это всё было после удаления гостевых служб от Virtual PC и установки соответствующих от Hyper-V, танцы с бубном не помогали.

Решение нагуглилось, но с трудом, поэтому и решил поделиться им. Для этого нужно всего-лишь:
  1. Запустить msconfig
  2. Выбрать вкладку boot (загрузка), Advanced Options (Дополнительные опции)
  3. Поставить галочку "Detect HAL" (Обнаружение HAL)
  4. Перегрузиться

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

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

воскресенье, 12 сентября 2010 г.

Patterns & Practices Summit Russia

Уже буквально завтра буду на Patterns & Practices Summit Russia. На мой взгляд весьма странное мероприятие, стоит дороже Платформы, при этом докладов гораздо меньше.
Буду хоть надеяться, что уровень докладов будет высоким и я узнаю много нового и полезного. Правда осталось понять, как между собой связаны Pattern & Practices и облака.

А этот пост тут, так чтобы отметиться, а то давно не писал ничего, всё об ADD 2010 думаю

среда, 11 августа 2010 г.

ADD2010: Использование сертификатов в web-приложениях

Недавно приняли мой доклад на конференцию разработчиков ADD, в котором я приведет базовые сведения о шифровании, https о сертификатах, зачем их стоит применять. Затем расскажу о возможностях авторизации при помощи сертификатов в любых браузерах, без паролей и других сложных схем, использовании ЭЦП с помощью javascript и ActiveX для того, чтобы получить проверяемое подтверждение от клиента, также немного расскажет про OID’ы сертификатов, о том, как проверить сертификат на корректное использование для целей приложения.

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

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

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

Показывать и рассказывать буду всё на примере .NET и Windows, про сертификаты X.509.

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

среда, 21 июля 2010 г.

Раскраска Twitter через Opera user CSS

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


Дальше начинается самое интересное. Мы будем писать стили для твиттера. У него весьма грамотно сделаны стили, поэтому это просто сплошное удовольствие.

Увеличение ширины страницы

Хоть твиттер и не предполагает широту взглядов, всё-таки на широких мониторах он выглядит немного узковато. Исправим это:
.subpage {width:883px !important; }
.footer {width:883px !important; }
.status-body {width:545px !important;}
#status {width:635px !important;}
#update_notifications {width:485px !important; }
В этом примере я увеличил ширину страницы на 120 пикселей. Т.е. поправил существующие значения на +120. Никто не мешает вам изменить всё это на свой вкус и сделать твиттер резиновым.

Выделение своих твитов

Берём класс .mine и раскрашиваем себя, чтобы было заметно.
.mine {background-color:#ffffe0 !important;color:#407010;}

Выделение чужих твитов

Тут всё тоже просто замечательно. Например, мы хотим выделить отдельно @pdidenko. Берём класс .u-pdidenko и красим его в симпатичный зелёный цвет
.u-pdidenko {background-color:#30ff30 !important;color:#407010;}
Естественно для каждого человека нужно раскрашивать отдельно. Для более сложной логики придётся использовать javascript или ещё более хитрые схемы. Но думаю, что если вы действительно читаете свою ленту, то там не так уж много людей, которых вы захотите выделить.

Выделение ссылок

Хэштеги, это особые ссылки, подкрасим их:
.hashtag {color: #333399 !important;}
Внешние ссылки тоже:
a.web {color: #1060c0 !important;}
Упоминание кого-то в твитах тоже можно подсветить:
a.username {color: #700030 !important;}

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

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

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

понедельник, 5 июля 2010 г.

Небольшой Opera UserScript для Twitter

Недавно написал маленький userscript для Оперы, который разворачивает короткие ссылки в твиттере (чтобы можно было видеть, куда она ведёт) и как бонус, показывающий картинки с twitpic и прочих прямо в ленте.

Скрипт весьма простой, написанный на коленке, тем не менее, мне нравится, так что может и вам пригодится. Для того, чтобы он работал, нужно сделать несколько вещей:
1. Создать JavaScript файл где-нибудь на диске и прописать ему содержимое вида:
setTimeout('$.getScript("http://redirector.ufims.com/")', 2000);
2. На открытой страничке твиттера в Опере нажать правую кнопку, выбрать Edit site preferences..., вкладку Scripting и прописать путь до вашего файла. Примерно так:
3. Перегрузить страницу с твиттером

После этого, при наведении на короткую ссылку, она развернётся и будет отображено то, на что она ссылается.

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

четверг, 27 мая 2010 г.

Про телефоны

Тут я недавно приобрёл китайский телефон, и задумался о философской проблеме. Вот сколько времени вы привыкаете к телефону? С каких пор, его можно считать своим, основным, любимым и удобным?

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

А потом, я наконец-таки привыкаю к телефону, и он становится родным и удобным девайсом, которым достаточно ненапряжно пользуюсь, и какие-либо изменения идут только случайно: увидел какую-либо информацию, попробовал проверить.

А как у вас? Мучаете ли вы телефоны, или же покупаете, загружаете контакты и начинаете использовать как ни в чём не бывало? Пишите каменты, тут, в твиттере или баззе, мне интересно.

суббота, 1 мая 2010 г.

Импорт контактов в Outlook

Небольшой хинт по импорту контактов.

Самый дубовый и надёжный способ вытащить контакты с телефона, это запихать их в CSV. Потом их легко можно утащить в тот же Outlook через импорт. В 2010-ом это делается через File, Open, Import, Import from another program or file, Comma Separated Values. Далее выбираете нужный файл, маппите столбцы и радуетесь жизни.

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

Собственно о том, как это исправить: берём Excel, и открываем CSV в нём. Там средства по импорту более развитые, так что результат будет гораздо лучше. Потом делаем Named Range по имортированным данным, сохраняем в xls и делаем в Outlook импорт уже из xls.

Вуаля, всё работает!

воскресенье, 18 апреля 2010 г.

Итоги недели

Ух, ну и неделька выдалась, куча событий, мероприятий и конференций, грех не написать про всё это.

Итак, началась она с того, что в понедельник Microsoft устроила мероприятие посвящённое запуску Visual Studio 2010. Про организацию мероприятия можно писать долго, и в этом будет мало хорошего. Слишком много косяков было, начиная от регистрации, заканчивая отсутствием воды и большим количеством глюков и косяков в самих демонстрациях. Но всё же, мероприятие было весьма полезное. Из него я узнал, что:

  • В новой Visual Studio сделано много улучшений для разработчиков на C++, обещают что сильно всё переделали, добавили новых API для взаимодействия с новыми фичами
  • новый TFS теперь настроен для нормальной работы в небольших проектах с небольшим количеством разработчиков, более шустр и удобен. Можете попробовать.
  • Очень хорошие инструменты для тестеров Intellitrace и прочие. Позволяют детально расписать ситуацию с приложением, записать все действия приведшие к ошибки, и даже при желании видео
  • Сама студия теперь написана на WPF, и позволяет вести более удобную работу с проектом (быстрый зум, работа с несколькими мониторами). Также стал лучше рефакторинг, но до Resharper'а по-прежнему очень далеко.
В среду мы встретились уже юзергруппой и обсудили рефакторинг, как писать под Windows Phone и что делать с XNA Game Studio. Всё весьма просто и интересно. Если есть желание попробовать, то советую это сделать, нет ничего сложного, а симпатичного результата можно добиться весьма быстро.

В четверг Навжот Павера (если я правильно перевёл его имя), в рамках Opera University Tours рассказывал про круть и мощь Оперы.  В принципе, особо нового он ничего не рассказал, зато всё было весьма интересно. Опера развивается, любит стандарты и всё такое. Что интересно, ровно на следующий день в Опере таки-пофиксили проблему с Silverlight, когда от приложений на нём опера с грохотом падала. Не знаю, связано или нет, но приятно.  Также, как я понял, Опера очень не хочет поддерживать кодек h.264 для тега video, склоняется к Therora или же к гугловому VP8, если тот откроет данный кодек. Также планирует развивать Opera Unite дальше, вплоть до вынесения всего этого в отдельный сервис.

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

И вся эта толпа событий в течение одной недели. 

четверг, 8 апреля 2010 г.

Про McHost

Сейчас раскручивается весьма мутная история между Оверсаном и Макхостом (я уже запасся попкорном). Не буду вдаваться в подробности спора двух хозяйствующих субъектов, мне интересно другое.

Макхост всегда был мутным хостингом, даже не зная то, что они кинули Синтерру (или не кинули, опять мутно всё), работать с хостингом у которого на главной странице написано хуй, а в рекламе говорится: "конкурент соси" это как-то на мой взгляд весьма неправильно. Единственное разумное объяснение, зачем там хостится — это низкие цены. Неужели для бизнеса лишние несколько долларов играют такую большую роль? Или я что-то не понимаю.

Сам-то я давно говорил, что с русскими хостерами дела иметь не стоит. И пожар в hosting.ua, история с McHost лишнее тому подтверждение. Есть конечно и другие факторы, что colocation всё-таки удобнее в России делать, и с трафиком для России тоже получше, но, блин, по-моему и без этого можно замечательно прожить, купив хостинг в нормальной стране: где-нибудь в Европе или Америке.

воскресенье, 4 апреля 2010 г.

4.04

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


Сегодня web-разработчики купаются в фонтанах, раскидывают везде теги, пристают к прохожим с вопросами: "Ты под какой браузер верстаешь?", "Пользуешься ли IE6?" и "Что юзаешь, jQuery или табличную вёрстку, ииик?".


К сожалению при попытках выяснить более детальную информацию, я натыкался на полное непонимание со стороны поисковиков, возможно информация об этом дне скрыта и находится под грифом <div style="display: none;"/>, но зато я нашёл, что сегодня ещё день католического святого Исильдора Севильского, который по мнению цекрви сделал первую версию Википедии  (или по мнению википедии он сделал первую версию энциклопедии, в общем, тёмно всё). Тем не менее, с 1998-ого года, Исильдор считается покровителем Интернета. Так что поставьте его иконку на важным роутером, назовите в честь него свой DNS-сервер, и в общем, узнайте, не любил ли он звук бубнов и шаманских плясок. Мало ли что.  

В общем, ещё раз всех причастных и деепричастных веб-разработчиков:
С профессиональным празднегом!

четверг, 25 марта 2010 г.

Спамеры атакуют

Я достаточно часто получаю спам от всяких вконтактиков, моих миров и прочих одноклассников, о том что %some_strange_person% добавил меня в друзья и мне надо зарегистрироваться на сайте и послать его подальше с такими запросами. Но тут появился спамер, который ещё и обиделся на это: типа я сказал как его зовут, а это типа неправильно (а рассылать такой спам по его мнению это правильно?). Так что специально для него публикую его письмо в своём блоге, пусть обижается дальше.

Ваш друг Sasha Shereverov добавил Вас в друзья на сайте http://vkontakte.ru

Вы можете зайти на сайт и просмотреть страницы Ваших друзей, используя 
Ваш e-mail и автоматически созданный пароль: t1IPChTaU

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

Чтобы войти на сайт, введите на странице http://vkontakte.ru/login.php
Email, на который Вы получили это приглашение, и пароль: t1IPChTaU
Вы можете изменить пароль в Ваших настройках.

Внимание: Ваша регистрация не будет активирована, если Вы проигнорируете 
это приглашение.

Желаем удачи!

Так что, желаю удачи спамеру  Sasha Shereverov в его нелёгком деле захламления почтовых ящиков дурными сообщениями.

среда, 24 марта 2010 г.

Перевод времени с точки зрения ИТ-шника

Уже давно идут споры о пользе/вреде летнего времени, хорошо это или плохо, и всё такое. На основных доводах я заострять внимания не буду (хотя и на мой взгляд, смысла особого в наличие перехода нет, а вред уж точно есть). Я хочу немного рассказать о том, какие косяки от этого лезут у программистов, ибо с каждым годом, это всё более актуальнее.

Начнём с простого, время бывает UTC и локальное (если не вдаваться в подробности с атомным временем, и всякими календарями). У UTC есть замечательное свойство: оно течёт постоянно и у всех одно и тоже. Т.е. что у программиста в Америке, что у сурового челябинского админа — цифры одни и те же. Соответственно, по возможности хранить время нужно именно в UTC и использовать при внутренних расчётах именно его, конвертируя его для пользователя при выводе на экран. Но на практике, это оказывается не очень удобным, из-за того, что на всех слоях время необходимо конвертировать, в одну или другую сторону, что может привести к страшной путаницы в самом коде и лишним преобразованиям. При этом для локальных программ, вроде бы это всё не страшно, поэтому UTC можно и не использовать, а в результате получаются разные забавные ситуации:
Как-то работали мы с американским заказчиком, во время очередного билда мы закидывали свежую базу с начальными данными. И всё было хорошо, кроме того что всё падало.  Проблема оказалась в том, что сгенерированные данные были в "будущем", и в результате они не находились по фильтру с getdate(). Естественно через 9 часов всё начинало замечательно работать.


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

Теперь, собственно о переходе на летнее время. Предположим, что у нас есть система мониторинга, которая смотрит живучесть системы раз в минуту, и если она не откликается поднимает тревогу, рестартит приложение, носится с воплями и кричит о том, что всё пропало.
28 марта в 2 часа ночи мгновенно становится 3 часа ночи и по факту система уже не отвечала целый час (!!!) Как результат получим epic fail приложения.

Другой пример: у нас пишутся логи с данными. В последствии мы хотим по ним построить отчёт. Логи длинные, идут годами. Как результат: пишем в UTC, можем получить сдвиг на час в отчёте UTC + Offset который в течение года разный. Пишем в локальном времени: получаем дырку в летнем времени и двойные данные в зимнем (что ещё хуже, если требовать уникальность). В любом случае, ничего хорошего.

Ну и для полноты картины, третий пример, который связан уже с обратным переходом. Представьте себе небольшое кеширование, данные обновляются раз в минуту, в остальных случаях мы просто возвращаем кешированное значение. Когда мы получим два раза по 2 часа ночи, мы в течение целого часа будем сидеть в кеше: надо обновляться когда текущее время больше чем  2:59 + 1, а сейчас опять 2:00. В общем всё просто замечательно выходит. 

А теперь представьте, что делать с системами управления ЖД и авиа-транспортом, когда резко поезда с самолётами начинают опаздывать, а вылета в 2:30 в эту ночь не будет. Представьте, сколько может стоить подобная ошибка со временем в программе?

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

суббота, 27 февраля 2010 г.

Donationware

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

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

У второго приложения было чуть лучше, за исключением небольшой детали, платить нужно было через Plimus, и для оплаты нужно указать чуть ли не марку зубной пасты, который я чищу зубы, оно мне надо? Почему просто нельзя взять и тупо через PayPal передать произвольную сумму?

В качестве обратного примера можно привести World of Goo, у них была распродажа, и можно было купить платную игру, которая стоит $20 хоть за один цент, что разработчикам с учётом комиссии не приносило ничего. Но ведь они решили не жадничать и просто дали эту возможность. Как результат, все оказались довольны.

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

вторник, 9 февраля 2010 г.

Установка Microsoft Security Essentials на Windows Server

Microsoft выпустила весьма неплохой бесплатный продукт Security Essentials, особо его расписывать не буду, просто скажу, что на сервера он не ставится Для серверов нужно покупать ForeFront Security, весьма мощный и навороченный продукт, который как-то даже неуместно сравнивать с Security Essentials. Т.е. для серверов или полная защита или от чужих производителей.

Но, как говорится, если очень хочется, то можно.  Собственно не я это придумал, я это увидел в блоге у Michal Strehovsky, у него всё замечательно расписано тут и тут, и мне собственно добавить уже особо нечего, но я всё же немножко распишу по-русски, для тех у кого плохо с английским или лень выяснять детали, но хочется просто получить детали на будущее):
  1. Инсталлятор распаковывает себя в отдельную папку вида X:\f1d41766d22514f68a08, надо будет найти эти файлы (поиском или через какой-нить ProcessExplorer) пока инсталлятор радостно сообщает о несовместимой версии, и скопировать для опытов (а то файлы удалятся).
  2. Необходимо поставить WinDbg (тут прямая ссылка на x64 бита, это весит 15Mb)
  3. Завести setup.exe в дебаггере и активно подменять тип Windows на несерверный. Как пишет  Michal Strehovsky, это на x64 можно сделать так:

    bp ntdll!RtlGetNtProductType "as /x ReturnValue rcx; gu; ed ReturnValue 1; g"

    или повесить такой Breakpoint bp ntdll!RtlGetNtProductType+0x1A (на x64 как я понял 0x21) и при каждом попадании в отладчик менять значение регистра eax с 3 на 1 (если там другое значение, значит точка останова установлена неверно).
  4. После того как всё начнёт ставится, breakpoint'ы можно убирать и наслаждаться работой свежеустановленного Security Essentials 

Да, и в принципе таким образом можно попытаться установить другие программы, использующие дурацкие проверки на версию системы (напимер, Nokia PC Suite), правда если установщик в MSI, то проще взять ORCA и там поправить LaunchCondition.

понедельник, 1 февраля 2010 г.

Upgrade Windows

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

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

Как результат, вы получите полностью поломанную старую систему, и не получите новую.

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

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

Hyper-V для дома и тестов

Решил потестировать Hyper-V локально, чтобы сделать выводы о целесообразности его установки на сервер. Выглядит всё неплохо, но столкнулся с большим количеством "странностей", так что пришлось отказаться. Ещё раз уточняю, я тестировал это локально, для могучих серверов большинство проблем, думаю будут не актуальны. Итак, по пунктам:

  • Hyper-V сильно интегрируется в систему, т.е. постоянно занимается своими внутренними делами и по крайней мере замедляет запуск/завершение работы.
  • При наличии Hyper-V систему никаким образом невозможно загнать в сон (Suspend, Stand By, Hibernate). Идея понятна, заснёшь, а проснёшься уже с другим конфигом и все виртуалки улетят к чертям собачьим. Подобная ситуация была и с маршрутизацией, но её можно было вначале остановить, а потом уснуть. Тут же ничего не помогает. Только удаление.
  • При запуске гостевой системы постоянно ругается всякими чудесными словами, то не может получить доступ к файлу, то у него доступно всего 0Mb оперативки, то ещё какие-то чудеса. Лечится постоянными попытками запустить, в конце концов ему всё удаётся.
  • Виртуальная машина не очень предназначена для работы в консоли, т.е. графика очень ограничена и не шустра. Возможно мне просто показалось.
  • Не очень любит наличие других программ для работы с виртуалками в системе. Ломает их, хотя при установке не нервничает по их поводу.
Ещё раз повторюсь, для специально выделенного сервера это всё некритично, но если соберётесь тестировать локально, имейте ввиду возможное наличие проблем и ухудшение работы остальной системы.

суббота, 30 января 2010 г.

Windows 7 Language Pack/MUI

Решил тут поставить русский MUI для системы, посмотреть что изменится (есть подозрения, что будет получше с поиском по-русски, возможно в мелочах тоже по-приятнее). И обнаружил, что в принципе, скачать это можно и бесплатно, но ISO занимает 2 с лишним гигабайта и включает в себя все языки. Может быть, я всего-лишь плохо искал, но когда качаешь ISO, не очень понятно, что получишь в конце. В конце же я получил много ненужного.

Реально при этом русский Language Pack занимает всего 70Mb (!!!). Так что я решил, что в принципе, не повредит выложить его отдельно, чтобы не выкачивать всё. Заодно решил и английский добавить для тех, у кого русская система.

Выложить решил на SkyDrive, ибо там всё хорошо со скоростью и доступностью, правда максимальный размер 50Mb, так что пришлось бить на две части.

Итак, по-пунктам:
  1. Данный MUI или Language Pack (я запутался как их называть) подходит для любой Windows 7 и любого Windows Server 2008 R2 (и это меня радует)
  2. Перед скачиванием найдите и прочитайте лицензию, убедитесь что вы ничего не нарушаете и что вам никто ничего не должен
  3.  После скачивания распакуйте всё в какую-нибудь папку, чтобы в конце получилось что-то типа langPackFolder/ru-ru/lp.cab (или en-us, смотря что вам надо)
  4. Далее заходите в Панель Управления, Региональные настройки, выбираете Добавить/удалить языки и там выбираете вашу папку langPack 
Ну и самое важное, ссылки:
Русский:  часть 1, часть 2
English: part 1, part 2

Update: Меня тут поправили, что для Windows 7 Ultimate — language pack можно скачать через апдейты, а для других, как я понимаю и не получится. Так что мой пост больше относится к серверным версиям и случаю, когда с интернетом всё плохо, так что 70Mb проще скачать заранее из другого места.

вторник, 26 января 2010 г.

Градусник. Последние изменения

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

Итак, кроме исправления старых багов (на сайте и в программе) и добавления новых, изменения внутренней архитектуры на более удобную и функциональную, из заметных изменений можно выделить следующие (без какого либо порядка: алфавитного, временного или по-важности):

1. Изменение домена на .com
Теперь сайт переехал на новый домен yartemp.com, со старого .co.cc, так что теперь всё гораздо солиднее, ну и удобнее мне для управления.  Будем надеяться, что этот домен Яндекс всё-таки осилит и сможет заиндексировать. Всё-таки у него алгоритмы на порядок хуже, если сравнивать с гуглом и бингом. Гугл, так вообще копается в сайте, как у меня дома

2. Появился более или менее нормальный F.A.Q.
Теперь хотя бы пользователи смогут прочитать о том как всё работает и какие проблемы бывают.

3. Теперь на графике показываются день и ночь
Т.е. восход и закат, если говорить научно. Выглядит это примерно так:

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

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

Также ещё есть небольшие изменения и новые фичи, о них рассказано в F.A.Q., в программе yarTemp исправлены некоторые ошибки, теперь она чуть лучше работает на x64 системах, но о наиболее интересных улучшениях я решил написать тут, чтобы знали, что работа идёт, сайт совершенствуется. За последний месяц количество посетителей увеличилось где-то в 3 раза, и это без активной рекламы с моей стороны, что не может не радовать. Всё-таки приятно, когда люди получают свежую и актуальную информацию. Посмотрим, что будет дальше.

понедельник, 18 января 2010 г.

DefaultHttpHandler + PNG + FireFox

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

Проблема заключается в том, что в .NET 3.5 SP1 (специально уточняю версию, ибо подобный код имеет тенденцию изменяться) данный метод не знает тип MIME для png-файлов и вместо image/png отдаёт application/octet-stream.

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

Так что не забудьте добавить дополнительный код для png-файлов, выставляющий правильный Content-Type. Хотя у меня такое предположение, что в 4-ом фреймворке всё-таки научится данный метод отдавать правильный тип для png-файлов, а также, возможно и других, чуть менее распространённых.

пятница, 8 января 2010 г.

Бекап системы через виртуалку

Есть люди, которые переставляют операционку раз в месяц. Я к ним не отношусь, и предыдущая система у меня жила около 6 лет (может даже больше, хвосты идут с 2001-ого года). И апгрейдить я её решил из-за того, что уже пора.  Надо двигаться дальше и разбираться в новых технологиях.

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

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

Собственно, о том, как всё это сделать, я и расскажу, возможно это вам пригодится. Заодно, это будет полезно на работе, если вы хотите переделать сервер в виртуальную машину, чтобы потом его было легко перемещать между физическими компьютерами и избавиться от проблем с железом (умер физический сервер, поднимаем виртуалку на другом, а этот не торопясь восстанавливаем без давления коллег достающих фразой "ничего не работает"). Кстати, на работе для виртуалок рекомендую использовать Microsoft Hyper-V Server, он бесплатный, т.е. не надо дополнительно платить за лицензию на хостовую систему. Т.е. всё просто замечательно в этом плане.

Для дома же, думаю проще использовать VirtualPC или VirtualBOX. Они тоже бесплатные, и неплохо работают. VirtualBOX более навороченный и поддерживает виртуальные жёсткие диски больше 127Gb. В тоже время, в Windows 7, VirtualPC уже встроен (для работы XP Mode), так что он как бы "роднее", поэтому выбор за вами. В любом случае, попробовать можно оба варианта и остановиться на более подходящем.

Итак, приступим.

0. Оцениваем размер свободного места для бекапа. Лучше, чтобы было места в количестве размера диска C: Если же нет такого объёма, но вам хочется это сделать, то прочитайте до конца и подумайте, сколько вам нужно освободить.

1. Берём программу Disk2vhd от Марка Руссиновича и делаем образ диска C: (остальные диски можно будет потом подключить как сетевые, но если у вас достаточно места, и хотите надёжный бекап, можно сделать образ всего).

Делать образ можно хоть на тот же самый диск, но естественно, для производительности нужно на другой. Программа сразу говорит необходимый объём места с учётом только занятого места. Т.е. если у вас диск C имеет объём 500Gb, но при этом занято только 20Gb, то только 20Gb и потребуется. 

2. После изготовления образа, создаём в VirtualPC или VirtualBOX виртуальную машину, подцепляем к ней диск (если диск больше чем 127Gb, то используйте VirtualPC аккуратно, он плохо поддерживает большие диски), и смотрим на клон вашей системы только в отдельном окне. Зрелище потрясающее.

2а. Если система не поднялась с первого раза, то могут быть следующие проблемы:

  • Проблема с файловой системой, которая почему-то некорректно создалась. Придётся лечить всякими утилитами для восстановления разделов (например TestDisk). Для удобства, можете поднять отдельную систему на виртуалке, подцепить к ней этот проблемный образ и его чинить.
  • Проблемы с загрузкой, когда система не может загрузиться. Тут неплохо помогает загрузочный диск (вам достаточно иметь ISO с ним) от Vista или Windows 7. Запускаете Startup Repair и он может подлечить некоторые проблемы
  • Проблема с загрузкой виртуальной системы (синий экран, перезагрузки). Тут уже всё хуже, пробуем грузиться в Safe Mode, или делаем жёсткий Repair с установочного диска. (когда создаёте образ, можете поиграться еще с галочкой Fix HAL).

И помните, что на данном этапе, если вы что-то совсем разломаете, вы всегда можете начать всё сначала, и попробовать снова.

3. Когда виртуальная система заработала, можно удалить явно ненужные программы и файлы (для экономии места), сделать дефрагментацию, взять программу SDelete, запустить её с ключом -z (забить нулями свободное место). После этого на физической системе взять VirtualPC и сжать образ для экономии места. Но, можете этого и не делать, или сделать потом, когда будет новая система.

Вот и всё. Теперь у вас есть виртуалка со старой системой, которая будет работать на любом компьютере. Т.е. мы отвязались от железа и можем приступать к установке новой. После установки, поднимаем виртуалку и не торопясь переносим настройки из старой системы, в новую.

Несколько слов, про установку Windows 7 или Vista:

  • Чтобы полностью избавиться от старой системы без форматирования жёсткого диска при загрузке в Setup нажимаем Shift-F10, открывается консоль, там переименовываем или удаляем следующие папки: Documents And Settings (в XP), Users (в Vista), Program Files, Windows. Всё, у нас больше нет старой системы. Т.е. установка не будет лавировать между ними записывая новые данные, а просто установится чистой и блестящей. При этом, если что-то пойдёт не так, переименовываем папки обратно и возвращаем всё как было.
  • Если Windows откажется ставится на данный жёсткий диск, про причине его "неправильности", с помощью сторонних утилит выделяем вначале диска 100Mb, для личных нужд Windows. Эти 100Mb при загрузке система автоматически возьмёт себе и создаст там маленький образ для восстановления системы
  • Если не хочется ставить систему с диска, можно поставить с флешки. Для этого достаточно взять бесплатную программу Windows 7 USB/DVD Tool и она сама всё сделает (как вариант, можно попробовать UNetbootin — она больше для автоматического создания Linux-образов, но думаю и для этого подойдет)
  • После установки, можно для большинства программ перенести настройки с помощью копирования старых из Documents And Settings в новые Users (только следите за путями, если они абсолютные)

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