11/18/2009 9:52:42 PM

Интересно здесь. Не то, чтобы совсем, но неожиданно.

Майкрософт объявили направление: веб-приложения, которые (одинаково) доступны на лаптопах, десктопах и мобильных устройствах.
Основной платформой (по крайней мере для UI) объявлен Сильверлайт.

И вот тут начинается интересное, с анонса Silverlight 4.
Silverlight 4 содержит очень много замечательных вещей, начиная с drag-n-drop и заканчивая тем, что теперь он может работать вне пределов браузера, как нормальное приложение.
При этом его можно назначить trusted – и он может иметь доступ к железу, файловой системе, другим веб-сайтам и сервисам, да мало ли.
Например, внутри сильверлайта можно запускать всякие другие вещи. В качестве примера – adobe flash. Ребята запускали youtube на демо.

В общем, похоже, сильверлайт придётся осваивать.

P.S.
Сижу сейчас на секции, посвящённой будущему программирования. Докладчики – их пятеро – рассуждают.. о чём бы вы думали? О распараллеливании, о том, что в функциональных языках этих проблем нет и о том, как с этим быть :) Проблема серьёзно назрела.

11/17/2009 9:41:00 AM

Сегодня весь день слушал workshop по паттернам параллельного программирования.
Мероприятие состояло из трёх частей.

В первой части нам подробно рассказали зачем именно и в каком виде нужно “параллелить”. Какие бывают виды распараллеливания и т.п.
Это была самая сложная часть. В том плане, что я за ночь спал часа три только (а нечего было в самолёте высыпаться), только к утру уснул. Так что жутко хотелось спать. А так как о проблемах параллельности, мультиядерности и т.д. я уже много раз думал, и даже в этом блоге писал три года назад практически то же самое, что они сегодня говорили, то нового для меня в этой части было крайне мало, приходилось буквально заставлять себя держать глаза открытыми и открывать их, если всё же закрылись.

Хотя и из этой “философской” части несколько вещей показалось интересными:

  1. И Майкрософт, и Интел признают, что “затык” и проблема производительности сейчас лежит не на уровне “железа”, а на уровне софта. Представитель Майкрософт сказал прямо со сцены: виноваты мы с вами (все разработчики): мы просто не используем оптимально тех возможностей, которые даёт нам “железо”. А оно без проблем (и даже с меньшими затратами) может дать больше.
  2. Количество транзисторов в каком-нибудь Итаниуме отличается от количества транзисторов в Пентиум-4 примерно в 100 раз.
    Это значит, что вместо того, чтобы выпускать всякие Итаниумы на 2-4 ядра, Интел с тем же успехом и на том же количестве транзисторов мог (и может) выпустить процессор содержащий 100 ядер Пентиума-4. Про 80-ядерный процессор от Интел, впрочем, я тогда же писал.
    Если отвлечься от существующих проблем с софтом и вообразить, что мы можем их равномерно нагрузить – отдача во многом была бы куда лучше, чем от того Итаниума. Но такой процессор не выпускают потому, что мы сейчас не знаем, что с ним делать. Потому, что мы писали и продолжаем писать “однопоточный” софт. Поэтому Интел вынужден делать достаточно малое количество ядер (несколько-то потоков мы всё же делаем, да и несколько приложений одновременно запускаем), продолжая изголяться с частотой и другими параметрами.
  3. Но подвижки всё-таки есть: гибридные ядра вот уже появляются (это когда из четырёх ядер два “нормальные”, а ещё два состоят из микроядер, соотношение может быть 1:3 или 3:1, а могут и все 4 микроядерными быть). А это в свою очередь означает уже совсем другое количество потоков (посчитайте, по два на [микро]ядро хотя бы). Ну и количество ядер растёт – 8 есть, 16 ожидается.
  4. Софт, который пишется сейчас, скорее всего расчитывает продержаться на рынке пару-тройку лет. Даже с такими темпами роста прикиньте, то, что Вы пишете сейчас, способно ли эффективно использовать возможности процессоров, способных исполнять 128-256 нитей в параллели?
    Сколько Вы используете в своём приложении? Максимум три? Вам не кажется это смешным? То, что Ваше приложение будет точно так же тормозить на любой машине? Может пора перестать “изголяться” и пора начать думать и писать “нормально”? :)
    А ведь всё равно каждый, кто прочитает, через 10 минут откроет Visual Studio и продолжит клепать однопоточный код, подумал я. Ибо так проще и думать не надо. И это проблема.
  5. В Майкрософт серьёзно занимаются этой проблемой. Из тех примеров, что я помню: Visual Studio 2010 (которая сама написана на .NET с WPF-интерфейсом) очень активно использует Task Parallel Library (TPL), включёную в .NET 4.0 теперь. Это далеко не единственный пример был, просто я не проспал и запомнил :)

Да, про распараллеливание был ещё хороший пример приведён: докладчик показал последовательно три картинки. На первой был изображён молоток, на второй – воткнутый в доску гвоздь, на третьей – белка. И сказал замечательную фразу: “Когда у Вас в руках молоток, всё вокруг кажется гвоздём. Но не с точки зрения белки.” :)
Сказал он это к тому, что “мы дадим вам молоток, в виде TPL, OpenMP, F# с его immutable типами и т.д, но пользоваться им надо тогда, когда это имеет смысл и так, как это имеет смысл делать”.
По-русски это можно перевести как “дурная голова ногам покоя не даёт” и сказать, что броситься и заменить во всём приложении for на Parallel.For, а IEnumerable на IEnumerable.AsParallel() и “с чистой совестью” думать, что задачи распараллеливания выполнены – глупо.

Вторая часть была гораздо более интересной. Она была дивелоперской.
Человек, который непосредственно из команды разработки TPL, сделал отличный доклад, практически не имея слайдов презентации. Вместо этого он просто открыл Visual Studio и показывал, как делать нужно, как можно, как не нужно, что работает, что нет… Отлично объяснял почему именно и как оно работает, отвечал на вопросы, иллюстрируя ответы тут же кодом, запуская его и демонстрируя результат.
Мне понравилось.
Так, как тема была “паттерны параллельного программирования”, он объяснил, какие паттерны используются при разработке таких приложений, что эти паттерны из себя представляют, как они реализованы в TPL и как пользоваться этой реализацией.

Книжку по этим паттернам можно свободно скачать вот тут: http://www.microsoft.com/downloads/details.aspx?FamilyID=86b3d32b-ad26-4bb8-a3ae-c1637026c3ee&displaylang=en

Третья часть была посвящена Microsoft Windows HPC.
Мне она показалась малоинтересной, за исключением того, что я вообще узнал, что у Майкрософт есть такая версия системы, как HPC. Более того, ожидается вторая версия.
HPC – это аббревиатура от High Performance Computing, а операционная система расчитана на кластеры с большим количеством нод. Текущая версия поддерживает до 256 машин в кластере (я так понял, что не важно, сколько у каждой сокетов и ядер), вторая версия (R2 они теперь взяли моду всё называть) будет поддерживать толи тысячу, толи тысячи, я не понял. Но это всё равно много.
Оттуда можно WCF-сервисы “наружу” выставлять, обработка будет вестись на кластере (или куске кластера, как захочется). И они там тоже использовали те же паттерны параллельного программирования, хотя и без использования TPL, а гораздо на более низком уровне.

Это был просто workshop. Завтра начинается PDC.
Looking Forward.

P.S. Лос Анджелес удивил. Ладно мне коллега и босс говорили, что опасный город, я думал – австралы, не местные, побаиваются. Но когда сегодня обедал с одним местным, он открыл карту метро, провёл пальцем по половине города и сказал: “сюда вообще не надо ездить и выходить на этих станциях”… И потом когда тебе говорят “я в ЛА не использую общественный транспорт, у меня семья, дети, работа, я перемещаюсь или на машине или на такси” – это уже не просто настораживает ;)

11/14/2009 4:09:00 AM

Видимо, моё расписание на PDC будет примерно таким. График достаточно плотный, учитывая  то, что всё начинается в 8:30 утра с Keynotes, потом секции, а после них всякие мероприятия до 9 вечера. Кроме последнего дня, когда всё просто заканчивается в 4:00.

Вообще весь PDC, похоже, приурочен к выходу Windows Azure и большинство докладов связано с ним.
Но, поскольку Microsoft решили ограничить объем базы данных на Azure 10-ю гигабайтами, что для нашего проекта крайне мало… В общем, Azure пока не слишком актуальна и я решил посмотреть “более другие” вещи.

Там тоже много интересного, частенько хоть разорвись. Поэтому в расписании на одно время часто запланировано по две секции. Это где я ещё не определился. Жирным выделено наиболее вероятное :)
Определяться буду по ходу и по отзывам других людей, наверное.

Ну, в общем, получается как-то вот так:

Monday
    10:00 AM - 5:45 PM
        Patterns of Parallel Programming: A Tutorial on Fundamental Patterns and Practices for Parallelism

Tuesday
    11:00 AM
        Software + Services Identity Roadmap Update
        OR
        Data Programming and Modeling for the Microsoft .NET Developer

    12:30 PM
        Concurrency Fuzzing & Data Races

    01:30 PM
        Agile – Tales of Triumph, Tribulation, Tools, and Teams
        OR
        Microsoft ASP.NET Futures

    03:00 PM
        Microsoft ASP.NET 4 Core Runtime for Web Developers
        OR
        Evolving ADO.NET Entity Framework in Microsoft .NET Framework 4 and Beyond

    04:30 PM
        Code Contracts and Pex: Power Charge Your Assertions and Unit Tests
        OR
        Behavior-Driven Development vs. Test-Driven Development: What’s What?

Wednesday
    11:30 AM
        Microsoft Perspectives on the Future of Programming
        OR
        Building Data-Driven Applications Using Microsoft Project Code Name "Quadrant" and Microsoft Project Code Name "M"

    01:00 PM
        Microsoft Project Code Name “M”: The Data and Modeling Language
        OR
        Making Microsoft SQL Server 2008 Fly

    02:00 PM
        ADO.NET Data Services: What’s New with the RESTful Data Services Framework
        OR
        Spice Up Your Applications with Windows Workflow Foundation 4

    03:15 PM
        Windows Workflow Foundation 4 from the Inside Out
    
    04:30 PM
        Exception Management – Handling and Reporting Exceptions Effectively

Thursday
    08:30 AM
        Building Hybrid Cloud Applications with Windows Azure and the Service Bus
        OR
        Patterns for Building Scalable and Reliable Applications with Windows Azure

    10:00 AM
        Axum: A .NET Language for Safe and Scalable Concurrency
        OR
        Microsoft Visual Studio Lab Management to the Build Setup Rescue

    11:30 AM
        Workflow Services and “Dublin”

    12:45 PM
        Microsoft Semantic Engine

    01:45 PM
        Application Server Extensibility with Microsoft Project Code Name “Dublin” and Microsoft .NET Framework 4

    03:00 PM
        Automating "Done Done" in the Team Workflows with Microsoft Visual Studio Ultimate and Team Foundation Server 2010

10/31/2009 10:46:00 AM

В Сидней приезжает Тори Амос (Tori Amos). Будет выступать в главном зале знаменитой сиднейской оперы.
Ещё давно, несколько месяцев, наверное, назад были успешно куплены билеты и оставалось только ждать этой даты – 17-го ноября.

Однако, совершенно неожиданно с этой датой совпало проведение PDC (Professional Developers Conference). Точнее, неожиданностью оказалась не дата проведения конференции, а тот факт, что я на неё попадаю. Тем не менее, завтра с утра у меня интервью в американском консульстве на предмет получения визы, и если всё сложится удачно, то на концерт Тори Амос я, к сожалению не попадаю.

На работе смеются – для австрала персональное интервью в консульстве перед поездкой куда-то выглядит крайне забавно и необычно. Интересуются “а зачем”, “а страшно ли”, “а что там спрашивают”, удивляются.

Ничего всё это я уже проходил при получении первой британской визы (вот как раз факт того, что я был в Британии я и забыл указать в анкете, надеюсь простят), на вопрос “let me see the conference program” ответить смогу.

А австралы, кстати, тоже регистрируются где-то по какой-то визовой программе, не просто так едут. Ходить им, конечно, никуда не надо, но, видимо, какая-то электронная регистрация у них всё же есть. Ну а отпечатки пальцев снимать и фотографировать лица будут у всех одинаково :) Ну, за исключением босса – он хотя и не гражданин Австралии оказался, но канадец, а посему въезд в США для него свободный.

Вот. В Лос Анджелесе я ещё не был. Надеюсь, у них там в далёкой Америке есть интернет, напишу, оттуда, что там и как :) Уже договорился, что на время поездки мне выдадут другой, более лёгкий ноутбук…

Но 13.5 часов в самолёте! Это, я вам скажу, похлеще, чем в Австралию из России лететь. Тут придётся честно все 13.5 часов отвисеть в воздухе, тогда как перелёт в Австралию хоть и занимает 17-19 часов, но с отдыхом посередине этого временного отрезка! В прошлый раз было так неплохо поспать ночь в Японии в хорошем таком отеле, который, кстати, предоставлялся бесплатно. А тут 13.5 часов в воздухе. Мрак. Хорошо хоть ночью летим, надо будет не выспаться наконуне.

Программу конференции ещё не смотрел, оставил на “после получения визы”, но меня уже зарегистрировали на пред-конференционную сессию по теме “шаблоны параллельного программирования” (это надо было сразу выбирать, ибо оплачивается отдельно).

В общем, каждый раз после проведения PDC я смотрел видео доклады в интернете (очень советую) и каждый раз думал, что обязательно надо собраться как-нибудь и съездить. Ибо ролики – это одно, а личное присутствие – совсем другое, что бы там ни говорили те, кто всегда смотрит и никогда не присутствовал, это я по TechEd и ReMix знаю :)

Вот, представился шанс…

4/11/2008 9:11:00 PM

Майкрософт бесплатно предлагает онлайн-курсы по новшествам SQL Server 2008. Ознакомиться полезно.

Доступно три курса:

  • What's New in Microsoft SQL Server 2008 for Enterprise Data Platform
  • What's New in Microsoft SQL Server 2008 for Business Intelligence
  • What's New in Microsoft SQL Server 2008 for Database Development

"Записаться" можно здесь: http://go.microsoft.com/?linkid=8685354&tapm=A87S20G15

Вообще достаточно полезно ознакомиться с нововведениями.

4/4/2008 12:10:35 AM

JuvalLowyBook Сегодня в Бельгии состоялась встреча VISUG (я уже немного рассказывал, когда была встреча со Scott Guthrie), единственным докладчиком которой был сам Juval Lowy - человек, который написал книжку, обложку которой вы сейчас видите справа.

Сразу скажу, что книжку я не читал. Но теперь обязательно добуду и прочитаю. Но речь не об этом (обложку книжки я вставил только потому, что не нашел в интернете адекватной фотографии автора ;))

Juval оказался очень хорошим докладчиком. Он отлично раскрыл тему и показал, что WCF - это далеко не "новое поколение веб-сервисов". Причем показал на очень простых, но очень впечатляющих примерах, уделяя внимание совершенно не коду (его-то как раз было мало), а именно проблематике.

Вообще, о много о чем он там говорил, этот "человек-легенда", в частности он назвал WCF "улучшенным .NET'ом", называя его именно платформой для разработки. Он даже обвинил Майкрософт в том, что они, дескать, не могут нам сейчас сказать: "все, что вы сейчас делаете - устарело. Они [microsoft] специально говорят 'WCF? О, это для веб-сервисов!'. Вспомните, то же самое они говорили когда появился .NET 1.0" :)

В общем, интересность и полезность выступления можно оценить на 12 баллов из 10 возможных.
Автор отлично показал, зачем нужен WCF, какие проблемы он решает, какова парадигма этих решения проблем в "привычном" подходе...

Когда будет обработано видео выступления, обязательно выложу ссылку. Смотреть нужно всем и обязательно!!!

P.S. Забавно он начал свое выступление: "WCF - это удивительно просто для программиста. Пара атрибутов и две строчки кода для создания хоста - все, что нужно 95% разработчиков. Но давайте попробуем ответить на вопрос, почему об этом пишут книги в 750 страниц?!". На вопрос ответил превосходно. Что называется "раньше я не думал, теперь я знаю" :)

3/24/2008 3:47:56 PM

wpf_unleashed Сейчас читаю книжку по WPF, называется, соответственно, Windows Presentation Foundation Unleashed, автор Adam Nathan.

Преотличнейшая, надо сказать, книга. Очень качественно, структурно и толково изложен материал, нет никакой лишней "воды". Книга читается легко и интересно. Давно таких книг не читал, серьезно.

А кроме того, она выполнена на очень качественной бумаге и цветная! Последнее может показаться несущественным, но примеры XAML-кода, равно как и кода процедурного, в цветном варианте воспринимаются совершенно иначе, нежели в "стандартном" черно-белом варианте. О скриншотах и говорить не приходится.

Словом, всем, кто имеет желание познакомиться или углубить свои знания в области WPF, очень-очень рекоменду. Чтение форумов, статей в MSDN и примеров не дает такого эффекта и таких знаний, как прочтение этой книги, "проверено на людях" :)

3/5/2008 8:57:59 PM

Сидел и думал - как назвать пост... Потом решил, что пусть называется так :)

Сегодня было объявлено, что ОС Singularity, разрабатываемая Microsoft Research, появилась в свободном доступе.
Сама по себе Singularity штука, должно быть, интересная хотя бы потому, что это никакой не клон или переработка Windows, среда была написана "с нуля" и, насколько я помню из блогов 1-2-летней давности, разрабатывалась она на .NET Framework.

Да, ребятам там пришлось "подточить" компилятор и что-то еще, вроде даже сделали какой-то клон C#, чтобы появилась возможность делать драйверы, чтобы что-то там реализовать в ядре, но все же - это managed код!

Сегодня Microsoft опубликовали код и все сопутствующие инструменты на здесь: http://www.codeplex.com/singularity

О том, что из себя представляет Singularity и какие проблемы пытаются решить разработчики, создавая эту систему, можно прочесть здесь: http://research.microsoft.com/os/singularity/

Как и практически все, разрабатываемое Microsoft Research, Singularity не претендует на то, чтобы быть "коммерческой", она экспериментальная. Разработчики пробуют в этой среде различные идеи, новшества, подходы... Что-то потом переходит в коммерческие продукты, что-то нет, как было с языком программирования "си омега" (если не ошибаюсь), который тоже развивался в Майкрософт Ресёч, а после "выродился" в F#, кроме того, некоторые идеи из него были перенесены (и продолжают переноситься) в C#.

Словом, достаточно интересно, чтобы хотя бы посмотреть.

Поставил скачиваться :)

2/24/2007 9:37:00 AM

Можно получить здесь: ASP.NET AJAX Free Course

Как сказано в описании курса, требования к слушателям такие:

  • Visual Studio 2005 / Visual Studio 2003 (2 года)
  • .NET 2.0 / .NET 1.1 (2 года)
  • ASP.NET 2.0 / 1.1 (2 года)
  • JavaScript (6 месяцев)

Так же рекомендуется:

  • HTML DOM (6 месяца)
  • Понимание или опыт работы с AJAX

 

 

Technorati tags: ,
1/27/2007 4:48:00 AM

Пришло уведомление от BrainBench (www.brainbench.com) о том, что до 31-го января некоторые тесты можно пройти бесплатно.

Появился новый тест - C# 2.0, только что сдал. Получил "Мастера" :)

Tags:

Powered by BlogEngine.NET 1.6.0.0

About the author

Alexey Raga Alexey Raga
.NET software developer.

E-mail me Send mail

Twitter


Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010

Sign in