Pull to refresh
1
0.1

User

Send message

Microsoft Moles Isolation Framework, копаем глубже

Reading time15 min
Views3.4K
Как вы поняли из названия, речь пойдет о продукте от Microsoft Research – Microsoft Moles Isolation Framework. Я познакомился с ним впервые после прочтения поста хабраюзера alek_sys. Моль мне настолько понравилась, что я решил поделиться своим опытом её использования.

Зачем?


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

Читать дальше →
Total votes 44: ↑36 and ↓8+28
Comments21

Взломан канал связи между автомобилем и шинами

Reading time2 min
Views3.7K
Исследователи из университета Рутжерса и университета Южной Калифорнии провели успешный эксперимент по перехвату информации, которая поступает от RFID-датчиков давления в шинах к системе центрального управления автомобилем. Более того, они убедились, что информацию можно подменить и подавать в центральный компьютер сведения о спущенных колёсах (тогда на панели приборов начинают моргать красные лампочки, смущая водителя).

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

К удивлению исследователей, они выяснили, что контроллер давления в шинах в некоторых автомобилях можно вывести из строя, если подавать ему специально подобранные «невозможные данные» о давлении, причём работоспособность не восстанавливается даже после перезагрузки компьютера.
Читать дальше →
Total votes 64: ↑44 and ↓20+24
Comments43

CouchDB сегодня

Reading time8 min
Views27K


Что такое CouchDB для вас? Вероятно любой, кто хоть немного интересуется популярной нынче темой NoSQL, прекрасно знает общие детали: это такая симпатичная игрушка с map/reduce-запросами, которые пишутся на JavaScript, с которой можно работать, гоняя JSON по HTTP-протоколу, а также не исключено, что слышали, что она fault-tolerant, тобишь не ломается вообще. Дальше этого обычно дело не идёт, в результате CouchDB отправляется в delicious в общую кучу со всякими MongoDB, Cassandra, Hadoop и т.п.

Примерно такого мнения придерживался и я вплоть до недавнего времени, пока не возникла острая необходимость переосмыслить архитектуру текущего проекта (упёршегося лбом в свою реляционную БД) и пересесть на документную базу данных, которая бы умела map/reduce. После того, как более пристально взгялнул на CouchDB, я понял, что он уникален в своём классе, его не следует ставить в один ряд с упомянутыми продуктами. Идеи, которые заложены в CouchDB настолько концептуальны, что способны в корне перевернуть представление о разработке веб-приложений.

О том, что же меня так впечатлило, постараюсь рассказать под катом.
Читать дальше →
Total votes 147: ↑142 and ↓5+137
Comments110

Отладка веб-приложений в IIS Express

Reading time2 min
Views9.4K
iis7 Для тех, кто не хочет ждать официальной поддержки IIS Express в Visual Studio, есть простой способ прикрутить возможность отладки самостоятельно.

Все, что нам понадобится — это скачать WebMatrix beta, в который входит IIS Express(отдельно скачать пока нет возможности).

Читать дальше →
Total votes 48: ↑33 and ↓15+18
Comments5

Отслеживание заполнения форм с помощью Google Analytics

Reading time3 min
Views23K
Эффективность работы коммерческого интернет-проекта зависит от количества заказов, регистраций, отзывов и других элементов обратной связи оставленных посетителями сайта через электронную форму.

Соответственно, форма — уязвимое место приема таких обращений, которое может сократить их число из-за своей неэффективности.

Для оценки эффективности можно использовать различные методы, но сейчас мы остановимся на оценке форм с помощью системы веб-аналитики Google Analytics.

image
Читать дальше →
Total votes 48: ↑40 and ↓8+32
Comments10

Kismet

Reading time7 min
Views84K
Kismet — это многофункциональная бесплатная утилита для работы с беспроводными сетями Wi-Fi. Пользователям она знакома в основном по статьям на тему взлома, где программа используется для обнаружения скрытых сетей или захвата пакетов. Взламывать чужие сети — плохо, а между тем Kismet — это гораздо больше чем отмычка в руках злоумышленника. В арсенале инженера информационной безопасности эта программа становится прекрасным инструментом для наблюдения и анализа эфира 802.11.
Читать дальше →
Total votes 87: ↑84 and ↓3+81
Comments14

Отмена запретов Copyright Office

Reading time1 min
Views642
 U.S. Copyright Office раз в 3 года пересматривает запрещенные вещи. После недавнего пересмотра стало легальным (fair use) следующее:

1. Избавление от шифрования на DVD, с целью использования для обучения или критики.

2. Запуск програм, не разрешенных официально оператором/производителем телефона. Например, jailbreaking iphone-а.

3. Использование программ, позволяющих использовать телефон залоченный на определенную сеть под другой сетью.

4. Взлом защиты игр с целью проверки безопасности.

5. Взлом программ, защищенных при помощи hardware средств, если эти средства больше не производятся.

6. Чтение книг вслух при помощи программ (для слепых), даже если книга защищена DRM.

По информации  CrunchGear
Total votes 75: ↑75 and ↓0+75
Comments52

Обзор безопасности Silverlight 4 приложений. Часть 1

Reading time5 min
Views2.9K
Во все времена безопасность была одной из самых важных частей всех приложений. Обзор состоит из двух частей. В первой части я расскажу, как Silverlight защищает конечного пользователя от вредоносных сайтов. Во второй – как сделать безопасный сайт с использованием Silverlight 4.
Читать дальше →
Total votes 20: ↑13 and ↓7+6
Comments2

Moles — Isolation Framework от Microsoft Research или как сделать юнит-тестирование удобнее

Reading time3 min
Views2K
Иногда случается, что стройную и продуманную систему юнит-тестов душит сильная связность компонентов — особенно этим грешит legacy код, изначально не предназначенный для тестирования. Рефакторинг, конечно, спасает — но не всегда можно рефакторить. Одной из проблем, возникающих при создании юнит-тестов может стать использование static методов или non-virtual методов, которые должны быть перегружены для успешного написания тестов. Поможет в этом проект от Microsoft Research — Moles.
Читать
Total votes 44: ↑30 and ↓14+16
Comments12

Профилирование приложений в Visual Studio 2010

Reading time6 min
Views47K
Сегодня мы будем замерять производительность нашего приложения с помощью Visual Studio Profiling Tool.

Visual Studio Profiling Tool позволяет разработчикам измерять, оценивать производительность приложения и кода. Эти инструменты полностью встроены в IDE, чтобы предоставить разработчику беспрерывный контроль.
В этом руководстве мы по шагам профилируем приложение PeopleTrax используя Sampling и Instrumentation методы профилирования, чтобы выявить проблемы в производительности приложения.

image

Много картинок.
Читать дальше →
Total votes 63: ↑48 and ↓15+33
Comments24

10 HTML5 примеров, чтобы вы забыли о Flash

Reading time1 min
Views60K
В последнее время Вы, наверное, много слышали о том, что Flash является умирающей технологией и о том, как она будет вскоре заменена на HTML5. Лично я считаю, что HTML5 будет постепенно заменять Flash лишь для некоторых вещей, но Flash всегда будет иметь место, особенно при разработке сложных игр и насыщенных интернет-приложений. Если вы еще не видите, что можно сделать с помощью HTML5, я ограничусь десятью примерами, чтобы показать некоторые из возможностей HTML5.

image

Так что же вы думаете – HTML5 заменит Flash?

Читать дальше →
Total votes 179: ↑151 and ↓28+123
Comments238

Брокеры событий, часть 1

Reading time7 min
Views7.4K


Вообще в сложных, динамических системах очень сложно угнаться за меняющейся организацией компонентов, и если мы еще кое-как (это в 21-м то веке!) разурлили проблему создания компонентов с помощью специализированных контейнеров, то взаимодействие из между собой нам все еще полностью не подвластно. Например, реагирование на события в .Net (да и в других языках наверное) сделано на каком-то уж очень несерьезном уровне. И естественным образом в этой задаче появляются всякие инфраструктурные решения, о которых мы и поговорим.

Если интересно...
Total votes 52: ↑42 and ↓10+32
Comments30

2000 часов в одиночестве, или как был сделан RSS reader / Я робокоп

Reading time14 min
Views6.7K
I. Am. Robocop.Всем привет,

Собираюсь поделиться с вами технической стороной того, как я за 16 недель сделал новый вебовый rss ридер, и чуть не сошел с ума.
Отходя от долгой предыстории, будем считать, что все началось в феврале этого года, когда мы с Дэвидом (dmiloshev, UI-дизайнер) решили сделать прототип нашего детища вдвоем.
«В одиночестве» — потому, что не было никаких скрамов, совещаний, «коллективного разума», а всю техническую часть, довелось делать самому.

Если бы меня попросили описать всю статью в одном предложении, то получилось бы:
No-SQL, mongodb, node.js, фак мой мозг, Evented I/O, очереди, выводы, git, nginx, memcached, Google Reader, Atom, TTL, PHP, ZF, jQuery, выводы.
Читать дальше →
Total votes 258: ↑231 and ↓27+204
Comments173

История сумасшествия или свой морской бой на BrainFuck`e

Reading time7 min
Views15K

Доброго времени суток, хабралюди. Перед Вами самадиогностика безнадёжного BrainFuck больного.
Те, кто всё понял из названия и не хотят читать весь пост целиком могут скачать игру и BFDev и сразу перейти под кат в конец поста к разделу «Как играть». В посте рассказано как я заболел BrainFuck`ом, а также описан процесс создания игры «Морской бой» на этом замечательном языке.

Читать дальше →
Total votes 196: ↑179 and ↓17+162
Comments66

Галерея эффектов кэшей процессоров

Reading time10 min
Views25K
Ядро PenrynПочти все разработчики знают, что кэш процессора — это такая маленькая, но быстрая память, в которой хранятся данные из недавно посещённых областей памяти — определение краткое и довольно точное. Тем не менее, знание «скучных» подробностей относительно механизмов работы кэша необходимо для понимания факторов влияющих на производительность кода.

В этой статье мы рассмотрим ряд примеров иллюстрирующих различные особенности работы кэшей и их влияние на производительность. Примеры будут на C#, выбор языка и платформы не так сильно влияет на оценку производительности и конечные выводы. Естественно, в разумных пределах, если вы выберите язык, в котором чтение значения из массива равносильно обращению к хеш-таблице, никаких результатов пригодных к интерпретации вы не получите. Курсивом идут примечания переводчика.
Читать дальше
Total votes 181: ↑177 and ↓4+173
Comments47

От чего защищает strong name в .net cборках?

Reading time4 min
Views17K
Основная цель strong name или подписи сборки это ее уникальность в GAC(Global assembly cache). На основании сборки во время подписи вычисляется криптографический открытый ключ, закрытый хранится в секрете у производителя сборки, хеш-функция от которого и составляет public token, что, по сути, есть strong name для сборки. Public token сохраняется в метаданных сборки и в паре с именем сборки, версией, и культурой, и служит для уникальной ее идентификации.

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

Но многие заблуждаются думая, что сборка со строгим именем защищена от модификации. Справедливости ради, стоит заметить, что если производитель сборки опубликовал public token или открытый ключ, например на своем сайте, то всегда можно проверить соответствует ли этот ключ или токен тому ключу, который зашит в используемые сборки, но это скорее придется проверить вручную. Важно другое, что строгое имя не защитит сборку от модификации, как многие думают, и соответственно механизм в CLR не отработает, как положено и загрузит модифицированную сборку.
Читать дальше →
Total votes 42: ↑26 and ↓16+10
Comments28

Использование SQLCLR для увеличения производительности

Reading time3 min
Views36K
Начиная c MS SQL Server 2005 в распоряжение разработчиков баз данных была добавлена очень мощная технология SQL CLR.

Эта технология позволяет расширять функциональность SQL сервера с помощью .NET языков, например C# или VB.NET.

Используя SQL CLR можно создавать написанные на высокопроизводительных языках свои хранимые процедуры, триггеры, пользовательские типы и функции, а также агрегаты. Это позволяет серьезно повысить производительность и расширить функциональность сервера до немыслимых границ.

Рассмотрим простой пример: напишем пользовательскую функцию разрезания строки по разделителю используя SQL синтаксис и SQL CLR на базе C# и сравним результаты.
Читать дальше →
Total votes 43: ↑30 and ↓13+17
Comments19

LINQ to SQL и конфликты параллельного доступа

Reading time14 min
Views7.2K
В первой части статьи мы изучили то, каким образом можно найти конфликт параллельного доступа и возможные способы их решения.
Вторая часть статьи посвящена решению этого конфликта, при использовании LINQ to SQL.

Во второй части статьи рассмотрено, как решать конфликты параллельного доступа в LINQ to SQL, и причины появления ChangeConflictException при попытке обновления записей, способы решения.
далее много текста
Total votes 41: ↑30 and ↓11+19
Comments14

Comet для ASP.NET своими руками

Reading time14 min
Views11K
Не так давно в рамках разработки крупного ASP.NET проекта возникла следующая подзадача: реализовать визуальное отображение табличных данных, обновляющихся в режиме real-time. Схема обновления довольно проста, а именно: на сервер посредством QueryString присылаются данные, которые должны как можно быстрее заменить собой устаревшие данные на странице, причем без необходимости страницу эту рефрешить. Первым решением, которое сразу же пришло мне в голову, было использовать ставшую уже общепринятой технику AJAX-запросов по таймеру, скажем, каждые 5 секунд. Однако сразу же выявились очевидные недостатки применения такого подхода: во-первых, довольно внушительное число потенциальных клиентов, дергающих сервер каждые 5 секунд с созданием каждый раз нового соединения, а во-вторых, это все-таки довольно грубая эмуляция real-time'а, ведь данные на сервер гипотетически могут приходить даже по несоколько раз в секунду (а могут не приходить и по несколько минут, и это уже больше относится к «во-первых»).

Идея решения пришла довольно неожиданно от коллеги по работе, поделившегося линком на статью на Хабре, описывающую реализацию технологии Comet на Perl в целях создания веб-чата. "Comet — это то что нужно!", — подумали мы, и я начал разбираться, как же эту штуку можно прикрутить к ASP.NET. О чем, собственно, и пойдет речь под катом.

Читать дальше →
Total votes 63: ↑50 and ↓13+37
Comments45

Information

Rating
4,007-th
Location
Харьков, Харьковская обл., Украина
Date of birth
Registered
Activity