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.

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