войти зарегистрироваться

Электроника для начинающихОтладочная плата 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 DevelopmentMicrosoft выпускает собственный «конструктор», конкурент Arduino



Видимо, подобные комплекты стали очень популярны среди разработчиков, поскольку сейчас появляются новые и новые «конструкторы для взрослых». Например, вчера на Хабре был описан ProtoSnap, а теперь и Microsoft выпускает нечто подобное, только комплект от софтверного гиганта более совершенен, чем ProtoSnap. Устройство получило название Microsoft .NET Gadgeteer. Его описание, фотки и видео — в продолжении.

Персональные блогиКакова скорость Вашего доступа в Интернет?

Проголосовало 5668 человек. Воздержался 161 человек.

.NETMono.Cecil: делаем свой «компилятор»

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

Большинство начинают с собственных интерпретаторов, которые представляют собой в общем виде огромный свитч команд в цикле. Интересно, вольготно, но муторно и весьма медленно. Хочется чего-то более шустрого, чтобы 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 будто бы без интернета

The network installation CDНасколько нам известно, не так давно вышла 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, всегда получаем ее.
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

imageЭто шестнадцатая статья из серии, посвященной предстоящему выходу VS 2010 и .NET 4.

Сегодняшний пост первый из серии, рассказывающий о важных изменениях, которые мы произвели с Web Forms в ASP.NET 4 для генерации чистой, соответствующей стандартам CSS-дружественной разметки. Сегодня я расскажу о проделанной нами работе, для предоставления лучшего контроля над атрибутом “ID”, генерируемый серверными элементами управления для клиента.

Я пиарюсь Scany 1.5 — обновление многофункциональной сетевой утилиты для iPhone и iPod Touch

imageЖелание и необходимость заиметь на своем 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.