Alexey's profileLife vs. ProgrammingPhotosBlogListsMore Tools Help

Blog


    December 29

    Год уходит. Воспоминания остаются.

    Еще один год прошел.
    Ничего плохого я про него сказать не могу. По мне - так весьма даже удачный год получился.

    Год уходит, воспоминания остаются. Чтобы они оставались дольше и чтобы ими было проще делиться, я сделал фотоальбом "Мы в 2006-м". В этот альбом я поместил наши с супругой фотографии, сделанные в течение этого года в разных местах, в которых мы побывали.
    Такая вот "история в лицах" получается, правда, лица всего два :)

    Альбом находится здесь: http://picasaweb.google.ru/alexey.raga/We2006

    Год прошел. Надеюсь, следующий будет не хуже.

    Technorati tags: , , ,
    del.icio.us tags: , , ,

    December 25

    Прикрутил FeedBurner

    Теперь весь RSS-поток с http://alexey.raga.name идет через FeedBurner. Тестирую, пока нравится.
    Чего и вам всем желаю ;)

    Enterprise Library 3.0 Декабрьский CTP

    Два дня честно пытался поставить на днях вышедший комьюнити превью Enterprise Library 3.0

    Не вышло. После того, как я пару недель назад стер у себя с диска каталог C:\Winnt\Installer, освободив тем самым несколько гигабайт на диске, я огреб кучу проблем с тем, что не могу что-то инсталлировать\деинсталлировать.

    Вот и сейчас. Enterprise Library 3.0 пытается устанавливать какое-то расширение для Visual Studio, не находит какой-то installer и ругается. Хотя студию я уже переустанавливал после удаления того злополучного каталога..

    Словом, пока так и не удалось посмотреть.
    Кому интересно - пожалуйте на страницу проекта, а именно сюда: http://www.codeplex.com/entlib

    Technorati tags:
    December 16

    ASP.NET AJAX RC и Visual Studio 2005 SP1

    Сегодня важная веха для ASP.NET AJAX Framework - вышел первый Release Candidate.

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

    В частности, библиотека Microsoft.Web.Extentions.dll была переименована в System.Web.Extentions.dll, а неймспейсы серверной стороны, соответсвенно с Microsoft.Web в System.Web.
    Клиентский, впрочем, код (javascript) не трогали пока, чтобы уж совсем все не ломать :)

    Кроме того, объявили, как я когда-то давно и писал, что ASP.NET AJAX будет полноправной и полностью поддерживаемой частью ASP.NET и .NET Framework.

    Поддержка ASP.NET AJAX так же будет включена в следующую Visual Studio (Orcas).

    Да, после выполнения всех шагов инструкции, Скотт рекомендует сделать еще одну вещь: очистить каталог c:\Document and Settings\[YourUserName]\Application Data\Microsoft\VisualStudio\8.0\ReflectedSchemas и рестартовать студию. Это может понадобиться для корректной работы интеллисенса.

    Взять новую версию можно, конечно же, тут: http://ajax.asp.net

    Еще одна новость состоит в том, что наконец-то вышел релиз Visual Studio 2005 Service Pack 1.
    Доступен на 10 языках, включая русский (а что, кто-то пользуется?). Взять можно нужно тут: http://msdn.microsoft.com/vstudio/support/vs2005sp1/default.aspx

    Пофиксено много багов, добавлено много фич. В частности обещана поддержка новых процессоров (Core Duo), улучшена производительность с Team System, включен Web Application Project (поэтому вы должны удалить его перед тем, как ставить сервис пак), а так же ряд других полезностей.

    Устанавливаться будет долго. И тем дольше, чем больше разных студий и экспрессов установлено у вас на машине. Но оно того стоит.

    Technorati tags: ,
    December 13

    Тестирую Windows Live Mail

    Давненько уж у меня в голове бродит мысль завести (и использовать) почту, которая способна хоть как-то сочетаться с Windows Live Messenger. Но все как ни соберусь - что-то не получается.

    Ну, смотрите сами: сейчас я пользуюсь веб-интерфейсом GMail, чему и рад вполне: удобно, все всегда в одном месте, на локальную машину ничего не скачивается, следовательно и не теряется.. Доступ к почте, опять же, с любого компьютера.
    Но, поскольку Web-интерфейс хотмейла дюже убог, то дальше послерегистрационного письма "поздравляем!" у меня с ним знакомство не складывалось.

    Другое дело Windows Live Mail, о котором и  писали, и говорили... К тому же возможность перевести почту собственных доменов на WLM показалась очень соблазнительной: можно настроить .NET Passport и почту на один email и радоваться.

    Чтож, сегодня дошли руки переключить тестовый домен на WLM и настроить почтовый ящик.
    Впечатления смешанные.

    Во-первых при подтверждении регистрации моего имейла меня предупредили о том, что я должен каждые 30 дней "выходить на связь", иначе мой аккаунт перестанет быть активным. Это мне очень не понравилось, ибо разные бывают ситуации, можно оказаться в месте, где нет интернета (в тюрьме, например, или в больнице).

    Во-вторых, мне понравился клиент. Удобный, достаточно простой, достаточно мощный. С гуглом сравнивать не стану - другой просто. Что-то более удобно, что-то - менее. Словом, тут претензий нет никаких.

    В третьих, все впечатление от пункта второго смазал огромный огромнейший баннер сверху. Тот самый, который отжирает немереную часть экрана (на широкоформатном мониторе особенно заметно) и из-за которого (во многом) я и перелез со Spaces на http://alexey.raga.name.

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

    December 12

    Вставка в WIndows Live Writer

    Windows Live Writer, не смотря, что в статусе беты, уже является одним из самых удобных клиентов для написания постингов в блог/блоги.

    Я уже давненько пользуюсь этим клиентом, но вот только сегодня заметил, что Ctrl+Insert и Ctrl+V работают по-разному: Ctrl+V "убивает" HTML-форматирование, когда вставляется код из Visual Studio, например, а Ctrl+Insert - нет.
    Достаточно удобно.

    Кстати, о плагинах. Вчера на CodePlex состоялся третий релиз набора плагинов к WLW.
    Изменениям подвергся и мой Code Syntax Highlighter - теперь он работает с последней версией WLW, появилась подсветка синтсксиса уже при вставке кода а так же добавилась возможность редактирования уже вставленного кода.

    И хотел я его забросить - да не дали :)

    December 10

    Предрождественское...

    Вчера в Намюре открылась рождественская ярмарка. Поставили деревянных домиков-киосков, продают всякие сувенирчики, которые, наверное, могут очень пригодится при встрече нового года или уже в нем, а так же всевозможные вкусности - пончики, вяленое\вареное мясо, колбасы, сыры.. Готовят картошку с сыром, немецкие хот-доги (или как они там называются).. Шоколад, вафли, разумеется.

    Вот такими сковородами готовят картошку с сыром Колбасный павильон Сыру отведать не желаете? Первый раз - бесплатно!

    Сегодня специально ходили туда есть картошку и пить глинтвейн. Ну, то есть, я не пил, а вот супруге вариант с аморетто пришелся по вкусу.

    А вчера купили банку Фуа Гра у мужика-француза, который привез свою продукцию на ярмарку. После дегустации сложно было не купить, на самом деле  :)


    Дегустация французского народного продукта

    В очередной раз удивились количеству разных продуктов, которые делаются из этой самой фуа гра: вон сколько банок всяких. Кстати, купили мы одну банку, а вторую он нам так подарил. Не знаю, что это было, но это была не фуа гра (возможно, что-то с ее добавлением) и это было вкусно. Банка ушла за 2 раза покушать.

    Вообще, все готовятся к рождеству, и только мы - к новому году. Недавно решили встретить его в немецком старом замке, в Германии. Есть два предложения по этому поводу, вероятно будем завтра покупать билеты.
    Забавно, в замках я еще не бывал :)

    December 09

    Перемен! Мы ждем перемен.

    Я еще ни разу не писал про кино, да и вообще не слишком люблю это обсуждать - у всех разное восприятие, каждому свое.

    Но вот сегодня посмотрел фильм "Пыль" и не могу не отметить здесь это. Фильм на удивление "зацепил". Более того, уверен в том, что буду его пересматривать.

    Концовка, а именно титры в фильме, требуют отдельного упоминания. На мой взгляд - гениально или близко к тому. Посмотреть можно тут: http://youtube.com/watch?v=haehT63KUVU

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

    Technorati tags: ,

    Шаблоны в ASP.NET

    Предположим такую часто возникающую ситуацию: нужно сделать контролы (.ascx файлы) кастомизируемыми. Намример, в зависимости от темы. Скины (skins) и темы (Themes) в этом не помогут, поскольку они предназначены лишь для изменения стиля, но не для шаблонизации. То есть, скажем, обозначить какой-нибудь <ItemTemplate> в скине не получится. А хочется.

    С другой стороны хочется, чтобы шаблон все же оставался именно шаблоном, без всяких там code behind, наследований и т.д. То есть просто view, ничего более.

    Ну и последнее: хочется, чтобы и работать с такими шаблонами было так же удобно, как с простыми контролами, то есть, кинул на страничку - и все.

    С ходу я придумал такое решение:

    1. Создается не имеющий представления (.ascx) контрол. Это может быть собственный наследник WebControl, в котором создаются свойства типа ITemplate для областей, который нужно позволить кастомизировать. Это может быть наследник одного из уже имеющихся контролов, например, наследник DataList. У него уже есть ITemplate-свойства - те же ItemTemplate, SeparatorTemplate и т.д.
      Этот контрол содержит всю логику, которая размещалась бы в CodeBehind'е, если бы мы делали "обычный" ascx-контрол.
      Таких контролов понадобится столько, сколько их понадобится :) Словом, все те, которые мы хотим сделать кастомизируемыми. Вьюшек мы наделаем дальше.
    2. Создается один контрол-обертка, который может выглядеть в самом простом случае так:
      public class TemplatedControl : Control
      {
          private string _controlName;
          /// <summary>
          /// Имя ascx-представления, которое нужно загрузить.
          /// </summary>
          public string ControlName
          {
              get { return _controlName; }
              set { _controlName = value; }
          }
          protected override void OnLoad(EventArgs e)
          {
              string controlName = HttpPath.Combine(
                  HttpPath.SkinsDirectory,
                  SiteSettings.Instance.Theme,
                  ControlName);
              Control ctrl = Page.LoadControl(controlName);
              this.Controls.Add(ctrl);
              base.OnLoad(e);
          }
      }

      Как видите, задача этого контрола примитивна: определить исходя из темы путь к файлу представления (.ascs) и загрузить его. Вместо LoadControl можно использовать пару LoadTemplate/InstantiateIn, если так будет более удобно.
    3. Создаем представления (Views) для наших контролов из пункта 1. Поскольку это просто шаблоны, то и создание их примитивно: это просто .ascx-файлы, которые не имеют code behind файлов. В общем случае там даже директива <%@ Control не нужна. Вот пример файла EntityList.ascx:
      <core:ListView runat="server" ID="_myList">
          <ItemTemplate>
              <%#Eval("Title") %>
          </ItemTemplate>
          <SeparatorTemplate>
              <hr />
          </SeparatorTemplate>
      </core:ListView>

      Здесь ListView - это мой собственный наследник от DataList, сделанный, как было сказано в пункте 1. Там внутри всякая логика - он умеет сам себя заполнить, например, обработать нужные мне события и т.д.
      Такие файлы можно создавать в каждой теме, изменяя шаблоны по-своему.
    4. Помещаем этот контрол на форму посредством контрола-обертки из пункта 2:
      <core:TemplatedControl runat="server" ID="_listControl" ControlName="EntityList.ascx" />

    Точно так же поступаем со всеми остальными контролами.
    Таким образом имеем достаточно гибкое отделение объекта от его представления, но без добавления всяких промежуточных слоев и с сохранением всех "вкусностей" ASP.NET, таких, как те же скины, работа с постбеками и т.д.

    Это что пришло в голову сразу.
    А кто еще какие способы использует?

    Technorati tags: ,
    December 05

    Соединяем Web + Desktop

    Вышел декабрьский комьюнити-превью (CTP) интересной штуки, называющейся "WPF/E".

    "WPF/E" - это попытка объединить в себе доступность и простоту веб-интерфейса с удобством и богатством пользовательского интерфейса десктоп-приложения.
    С помощью этой штуки можно сочетать WPF и ASP.NET, XAML и AJAX.

    Что это - следующее поколение SmartClients?
    Реинкарнация апплетов или этакий апплет-киллер (а их и так-то не много осталось)?

    Пока не знаю, в данный момент скачивается :)
    Но удобство для всякого рода административных интерфейсов, менеджмент инструментов и т.д. налицо.

    Добыть эту штуку можно здесь: http://msdn2.microsoft.com/en-us/asp.net/bb187358.aspx

    Попутно готовится новый интсрумент для дизайна пользовательского интерфейса (любого, от HTML до WPF и WPF/E). Называется Express Studio.
    Попробовать его можно тут: http://www.microsoft.com/products/expression/en/default.mspx

    Technorati tags: , ,
    December 03

    Еще про PayPal

    Покупая вторую eSATA-карточку снова воспользовался PayPal.
    На этот раз было еще удобнее - потребовалось всего два клика мышью.

    Первый привел меня на страницу PayPal, где было подробно описано за что и сколько я плачу.
    После второго клика (по большой оранжевой кнопке Pay) я мгновенно получил SMS о том, что с моей карточки были сняты деньги. А через секунду на экране возник отчет о том, что деньги были переведены куда следует.

    ВебМани отдыхают :)

    Technorati tags:
    December 02

    Бельгия отстала от России лет на 10!

    В плане магазинов компьютерной техники.

    Моя покупка внешнего SATA-винчестера и PCMCIA-карточки к ноутбуку для его подключения вылилась в то, что на корпусе диска оказался один разъем (eSATA), а на карточке - другой ("обычный" SATA).
    Чтобы не терять время, в очередной раз заказывая на немецком eBay, поехал в Брюссель с надеждой купить там либо новую карточку, либо переходник между SATA и eSATA.

    Я бы не поверил, если бы не видел. Компьютерные магазины в современном Брюсселе находятся на уровне российских компьютерных лавочек образца 1996-1997го года.
    Тогда я покупал себе модем, первый компьютер.. Я помню эти коморки-закуточки с малюсеньким ассортиментом.

    Так вот, тут - то же самое. Про SATA они еще слышали и в одном из шести магазинов мне даже нашли SATA-кабель. Про eSATA никто не слышал ничего. Даже дисков с этим интерфейсом не продается, вообще все внешние диски исключительно USB2.0.
    В этих магазинчиках помимо новой техники (есть на прилавках несколько коробок, в основном почему-то видеокарты) продается немерено всякой рухляди. Например десктопные (горизонтальные) потертые системники HP по 200 евро за штуку. Лежат просто столбиками. Какие-то подержанные винчестеры... Ужас :)

    Если кто-то помнит, в Костроме была (а может и до сих пор есть) такая фирма - Клондайк.
    Вот примерно то же самое, только помещение еще меньше.

    Нет, есть и большие магазины. Но комплектующих в них нет. Они продают Компьютеры.
    То есть, ты приходишь, тыкаешь пальцем в понравившийся тебе системный блок, собранный на заводе ACER или того же HP, платишь деньги и забираешь коробку. Все уже собрано, установлено, настроено.

    Максимум что ты можешь купить отдельно - это USB-кабель. Да, в последние буквально пару месяцев все стало завалено DVI кабелями и переходниками на HDTV.
    Ну и прочие коробочки с периферией: WiFi-роутеры, флешки, мышки и сумки для ноутбуков.
    Мысль о том, что кто-то может захотеть установить себе другой, скажем, кулер или даже процессор никого не волнует. Даже жестких дисков (обычных, внутренних) нигде нет.

    Чудеса...

    P.S. А еще начался рождественский месяц. Сегодня походили по уже украшенному Брюсселю, послушали уличного музыканта, поели всякой вкуснятины на рождественском базаре :)
    Хоть не совсем зря мотались..