Электроника для начинающих → Отладочная плата FEZ Hydra на базе Open-source проекта .NET Gadgeteer
На Хабре уже упоминалась предыдущая разработка компании FEZ Spider Kit. Компания GHI Electronics продолжила развитие в направление разработки устройств .NET Gadgeteer. И 8 ноября представила новое дополнение к конструктору плату FEZ Hydra. FEZ Hydra использует процессор ARM9 с тактовой частотой 240Mhz. С 16 Мб SDRAM ОЗУ, и 4 Мб постоянной памяти типа FLASH. Как указывает разработчик, на устройстве возможно запустить ОС Linux, т.к. система является полностью 100% открытой.


Mobile Development → Microsoft выпускает собственный «конструктор», конкурент Arduino

Видимо, подобные комплекты стали очень популярны среди разработчиков, поскольку сейчас появляются новые и новые «конструкторы для взрослых». Например, вчера на Хабре был описан ProtoSnap, а теперь и Microsoft выпускает нечто подобное, только комплект от софтверного гиганта более совершенен, чем ProtoSnap. Устройство получило название Microsoft .NET Gadgeteer. Его описание, фотки и видео — в продолжении.
.NET → Mono.Cecil: делаем свой «компилятор»
Одной из самых роскошных тем для программистов, балующихся изобретением велосипедов, является написание собственных языков, интерпретаторов и компиляторов. Действительно, программа, способная создавать или исполнять другие программы, инстинктивно вселяет благоговейный трепет в сердца кодеров — потому что сложно, объемно, но безумно увлекательно.
Большинство начинают с собственных интерпретаторов, которые представляют собой в общем виде огромный свитч команд в цикле. Интересно, вольготно, но муторно и весьма медленно. Хочется чего-то более шустрого, чтобы JIT'ить умело и, желательно, само следило за памятью.
Отличным решением данной проблемы является выбор .NET в качестве целевой платформы. Оставим лексический разбор на следующий раз, а сегодня давайте попробуем сделать простейшую программу, которая создает работающий исполняемый экзешник:

Большинство начинают с собственных интерпретаторов, которые представляют собой в общем виде огромный свитч команд в цикле. Интересно, вольготно, но муторно и весьма медленно. Хочется чего-то более шустрого, чтобы JIT'ить умело и, желательно, само следило за памятью.
Отличным решением данной проблемы является выбор .NET в качестве целевой платформы. Оставим лексический разбор на следующий раз, а сегодня давайте попробуем сделать простейшую программу, которая создает работающий исполняемый экзешник:

.NET → Инъекции MSIL кода в стороннюю сборку при помощи Mono.Cecil. Реализация принципов АОП в NET из песочницы
Введение
В данной статье я расскажу про то, как можно добавлять свой код в существующие .NET сборки и о том, как это связано с аспектно-ориентированным программированием. Статья будет сопровождаться работающими примерами, так как я считаю, что код — это лучший способ донести идею.
Многие .NET разработчики знают, что для доступа к объектам чужой сборки можно использовать Reflection. С помощью типов из System.Reflection мы можем получить доступ ко многим объектам .NET сборки, просмотреть их метаданные, и даже использовать те объекты, доступ к которым ограничен (например, private методы чужого класса). Но использование Reflection имеет свои ограничения и главная причина этому — данные, с котороми вы работаете через Reflection, все еще считаются кодом. Таким образом, вы, к примеру, можете получить CodeAccessSecurity exception, если сборка, к которой вы пытаетесь применить Reflection, запрещает это. По этой же причине Reflection работает довольно медленно. Но наиболее важным для данной статьи является то, что стандартный Reflection не позволяет изменять существующие сборки, только генерировать и сохранять новые.
Mono.Cecil
Качественно иной подход предлагает бесплатная библиотека с открытым исходным кодом Mono.Cecil. Главное отличие подхода Mono.Cecil от подхода Reflection в том, что данная библиотка работает с NET сборкой как с потоком байт. При загрузке сборки, Mono.Cecil разбирает PE заголовок, CLR заголовок, MSIL код классов и методов и т.д. работая напрямую с потоком байтов, представляющим сборку. Таким образом, с помощью данной библиотеки можно как угодно (в пределах предусмотренного) изменять имеющуюся сборку.
Linux для всех → Debian Netinst будто бы без интернета
Насколько нам известно, не так давно вышла Debian GNU/Linux 5.0.5. В прошлых версиях я сталкивался с такой проблемой, как отсутствие пакета pppoe в дистрибутиве, а соответственно вместе с ним отсутствует возможность настроить интернет-соединение. Думал, что в новой версии на этот раз учтут сий недостаток, но…Обычно я обходился первым CD и уже оттуда шагал. В этот же раз мне захотелось как-либо обойти этот момент, чтобы поставить систему практически с нуля. Да и просто доказать себе, что netinst все же придумали не зря. :)
.NET → Расширение возможностей Unity
В этом посте я покажу пример того, как можно расширить стандартные возможности IoC-контейнера Unity. Покажу как создается объект в Unity «изнутри». Расскажу про Unity Extensions, Strategies & Policies.
Допустим в нашем приложении есть компонент Persistence, который отвечает за сохранении объектов. Он описывается интерфейсом IPersistence и имеет реализации — FilePersistence, DbPersistence, WsPersistence, InMemoryPersistence.
В классическом варианте мы в начале приложения регистрируем нужную реализацию в Unity и далее, вызывая Resolve для IPersistence, всегда получаем ее.
Но что делать, если необходимая реализация может меняться в процессе работы приложения. Например она задается в конфиг-файле, или при недоступности сети надо автоматически использовать FilePersistence?
Допустим в нашем приложении есть компонент Persistence, который отвечает за сохранении объектов. Он описывается интерфейсом IPersistence и имеет реализации — FilePersistence, DbPersistence, WsPersistence, InMemoryPersistence.
В классическом варианте мы в начале приложения регистрируем нужную реализацию в Unity и далее, вызывая Resolve для IPersistence, всегда получаем ее.
IUnityContainer uc = new UnityContainer();
uc.RegisterType<IPersistence, FilePersistence>();
IPersistence p = uc.Resolve<IPersistence>();
p.Add(obj);
* This source code was highlighted with Source Code Highlighter.Но что делать, если необходимая реализация может меняться в процессе работы приложения. Например она задается в конфиг-файле, или при недоступности сети надо автоматически использовать FilePersistence?
.NET → Более чистая HTML-разметка в ASP.NET 4 Web Forms
Это шестнадцатая статья из серии, посвященной предстоящему выходу VS 2010 и .NET 4.Сегодняшний пост первый из серии, рассказывающий о важных изменениях, которые мы произвели с Web Forms в ASP.NET 4 для генерации чистой, соответствующей стандартам CSS-дружественной разметки. Сегодня я расскажу о проделанной нами работе, для предоставления лучшего контроля над атрибутом “ID”, генерируемый серверными элементами управления для клиента.
Я пиарюсь → Scany 1.5 — обновление многофункциональной сетевой утилиты для iPhone и iPod Touch
Желание и необходимость заиметь на своем iPhone аналог Nmap привело к появлению относительно простого приложения, которое сначала умело не намного больше чем сам Nmap. На этом бы вероятно его развитие и закончилось, но, после реализации пожеланий наших пользователей и выхода следующей версии, Apple разместил ссылку на наше приложение в разделе What's Hot своего магазина в US, что, понятное дело, было не только очень приятно, но и подняло приложение до 6-й позиции среди утилит и до 73-й позиции среди всех.Более 100 дней нахождения в топ 100 утилит не прошли даром — пришло много писем от пользователей с пожеланиями, предложениями и критикой, большую их часть мы учли и реализовали в самой свежей версии Scany. На сегодня (по данным US iTunes App Store) Scany является одной из 3-5 наиболее часто скачиваемых сетевых утилит для iPhone.
Приложение получило целый ряд полезных фич и стало многофункциональным приложением полезным для всех, кто интересуется сетями, Интернетом и их безопастностью.
Приглашаю под кат.
Интеллектуальная собственность → Революция медиа. Prometeus поглощает Google
Прогнозы вообще дело неблагодарное, но зато увлекательное. Особенно когда дело касается будущего Интернет и остального, что появиться на базе Сети.
И вот снова хочу предложить для просмотра ролик той же итальянской компании Casaleggio Associati, специализирующей на разработке стратегиий для компаний.
Создатели ролика на этот раз решили пересмотреть все средства донесения информации и достаточно смело предположить их дальнейшее развитие. Вплоть до 2050 г. Вплоть до момента, когда Google покупает Microsoft.
Апофеоз ролика, это заявление о том, что продажа памяти человека в будущем станет обычным делом! Хм… А почём, кстати? :)
Перевод для более комфортного просмотра подготовил ваш покорный atner.
И вот снова хочу предложить для просмотра ролик той же итальянской компании Casaleggio Associati, специализирующей на разработке стратегиий для компаний.
Создатели ролика на этот раз решили пересмотреть все средства донесения информации и достаточно смело предположить их дальнейшее развитие. Вплоть до 2050 г. Вплоть до момента, когда Google покупает Microsoft.
Апофеоз ролика, это заявление о том, что продажа памяти человека в будущем станет обычным делом! Хм… А почём, кстати? :)
Перевод для более комфортного просмотра подготовил ваш покорный atner.