Дмитpий Hecтepук

Блог о программировании — C#, F#, C++, архитектура, и многое другое

Posts Tagged ‘good relations

Технологии на моей тарелке

15 комментариев

За последние несколько месяцев, мне под руки попался ряд технологий которые я, без стороннего влияния, наверняка никогда бы и не узнал. Причина этому во-первых в том, что я слишком сильно “залип” в инфраструктуре .Net и языке C# чтобы отчетливо видеть что-то за ее пределами. Тем самым, “отлипание” для меня – процесс болезненный. А целью этого поста является кратко осветить те технологии, с которыми я познакомился – мало ли, может кому-то еще интересно будет.

F#

Писать на F# демо-программки и делать на нем что-то существенное – это совершенно разные вещи. Когда начинаешь массово плодить код на F#, начинаешь понимать всю упадочность своего понимания мира. Например, я достаточно долго писал member this.Something with get() = ... вместо аналогичного варианта member this.Something = .... Ну и тяга к скобочкам и излишним аннотациям типов (даже там где и ежу понятно что это за тип будет) – это тоже наследие использования C# где все прописывается.

F# поражает скудностью поддержки в студии. На одной из моих машин вылетела поддержка IntelliSense (полностью!), на другой – F# проекты по F5 только компилируются но не запускается отладчик. Очевидно что-то тут не так. Я конечно предпринимаю усилия для того чтобы работать с F# было более гуманно, но пока что нужно делать основные вещи, такие как лексер и парсер. Адаптировать их из сорцов F#-а — дело не для слабонервных.

WebSharper

Я упомянул этот фреймворк в моем первом сольном подкасте, сказав что он позволяет делать сайты, полностью оторваные от Asp.Net и IIS. Не знаю, один ли я страдаю такой неприязнью к IIS, но на данный момент для меня нет антидота: тот релиз Вебшарпера который состоялся недавно еще не поддерживает вторую версию Sitelet’ов, в которой как раз и должна быть поддержка создания полностью независимых сайтов. Что-то мне подсказывает, правда, что Адам Границ и компания планируют вообще сделать чуть ли не свой веб-сервер.

Так или иначе, я продолжаю эксперименты с Web#, а как только появятся новые сайтлеты, я начну тестировать все это дело уже на Linux. Интересно, что хоть технология и F#, нельзя сказать что она как-то связана с .Net или Microsoft.

NetKernel

Во-первых, NK – это Java-стек, но меня это не пугает т.к. ничего страшного там нет. NK – это реализация ресурсно-ориентированной парадигмы, которая сейчас будоражит умы всех кто занимается коммуникационными технологиями, например та же комманда WCF. По сути дела, RoC в представлении NK – это REST’ообразная концепция, которая предоставляет как бы аусторсинг веб-архитектуры, позволяя разработчикам писать компоненты, которые работают через ресурсы, запросы на ресурсы, конверсию различных типов ресурсов, и так далее.

NK это, если хотите, эволюция REST, и является интересной технологией (более живой чем существующие .Net аналоги) которая понравится тем, кто доселе работал с такими вещами как WCF REST.

Семантический Веб

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

Во-первых, это DotNetRdf – собственно библиотека, которая позволяет работать с RDF и поддерживает различные форматы хранилищ. Кстати, недавно нашел в блоге попытку создания semantic triple store на MongoDB.

Еще один аспект моих исследований связан уже с конкретикой, а именно с онтологией Good Relations и ее нынешней поддержкой гуглом (их Rich Snippets). Изначально у меня была идея попробовать подобавляеть поддержку всего этого в R2P чтобы с этим было легче работать, но потом я узнал что модели Xml и Html в моем любимом Решарпере не имеют общего корня, что означает что, по сути дела, все пришлось бы делать дважды. Возможно когда-нибудь у меня дойдут до этого руки.

Так вот, в попытках найти возможность создать .Net объектную модель из OWL-файла, описывающего GR, я набрел на проект ROWLEX, в котором поставляется утилита именно для этого. Интересно, а можно ли как-то автоматически брать данные со страниц, записывать их в эту модель и потом заталкивать все в MongoDB без каких-либо лишних действий? Подозреваю что все несколько сложнее…

MindTouch

Я занимался исследованием MindTouch в двух направлениях – в попытке понять, можно ли использовать эту штуку для документирования API большого программного продукта, а также мне хотелось понять, можно ли использовать его вместо SharePoint для внутренних целей.

По первому вопросу у меня нет ответа. Бесплатная версия MT шикарна, и покрывает 99% того что мне лично нужно. Поэтому в личных целях я начал ее использовать. Что же касается построения на нем портала разработчиков, то тут все неоднозначно. Я не decision maker в данном вопросе, но лично меня никто не убедил отдавать за коммерческий вариант этой штуки большие деньги.

Я рекоммендую всем скачать MindTouch Core (бесплатную версию) и поиграть с ней. Это действительно стоит того! Это по сути дела Wiki/CMS которая хорошо подходит для документации. Чудес в этом мире не бывает, но штука красивая, и я ей доволен.

TidePowerd GPU.NET

Поскольку несколько лет назад я плотно занимался GPGPU и даже сам эксплуатировал pixel shader’ы через Direct3D, наличие .Net библиотеки мне импонирует – давно пора. Тем более что трансляция IL во что-то еще – процесс весьма понятный и реализуемый без особых проблем. Библиотека GPU.Net – это как раз оно и есть. Еще одна абстракция чтобы облегчить нам жизнь.

Признаюсь что я только лишь посмотрел вебинар – я не игрался еще с самой библиотекой т.к. не было времени. Все впереди :)Update: уже успел созвониться с директором Tidepowerd – разговор шел в основном в ключе поддержки конкретно F# в GPU.NET. Заинтересованность определенно есть, так что рано или поздно замутим совместный конференс с Саймом, Границем, и партнерами. Как что состоится – обязательно напишу.

Fusion IO

Fusion IO – компания, которая за 3 года получила 300 миллионов долларов инвестиций. Их “фишка” – высокоскоростные хранилища данных, и когда я говорю “хранилище”, подразумевается PCI-карта с SSD-устройствами на ней. Конечно, Fusion IO говорит что их устройства – это не SSD, но на самом деле их отличие в качественном ПО (в плане прошивки их ASIC), а есть ли у них что-то кардинально новое – не знаю. Надо получить образец (надеюсь дадут) и самому посмотреть.

Хотя если по мне, так более интересной фишкой является NVidia Tegra – нам уже 10 лет назад нужно было иметь нормальные SoC-решения. Те же Fusion IO могли бы засунуть на свои карты контроллер и несколько FPGA которые я бы мог “флэшить” и им цены бы не было! Вот интересно – Intel уже начал нервничать или еще нет? Ведь по мне так самое главное это избавиться от ситуации когда я не могу иметь масштабно-инвариантную систему, а должен на каждый процессор закупать еще и материнскую плату, память, жесткий диск, и так далее. Надеюсь скоро эти телодвижения станут пережитками прошлого.

Кстати о Tegra… двухъядерные процессоры в мобильных телефонах это круто или как?

Written by Dmitri

7 января 2011 at 19:44

Опубликовано в .NET, f#, GPU, Hardware

Tagged with , , , ,