Thursday, December 31, 2009

Pro ASP.NET MVC Framework

Сегодня закончил читать книгу Стивена Сендресона «Pro ASP.NET MVC Framework». Книга очень хорошая, и как видно из названия, посвящена MVC фреймворку от Microsoft. Книга относительно свежая – апрель 2009, но уже устарела, т.к. описывает ASP.NET MVC v 1.0, в то время как уже вышел релиз-кандидат второй версии фреймворка.
В книге в общих чертах описывается, что такое MVC, затем автор переходит конкретно к ASP .NET MVC и доходчиво объясняет, что такое View, что такое Action, чем занимается Controller, и как это все связать с Model.
Начиная с четвертой главы, новый материал подается на фоне написания реального приложения - SportsStore. Четвертая и пятая глава самые сложные, их надо читать очень внимательно, потому что, лично для меня, в них было много нового материала. Часто приходилось перечитывать, а иногда и лезть в интернет, за уточнениями, но это того стоило.
Стивен много времени уделяет написанию unit-тестов и всячески побуждает читателей делать тоже самое и я с ним полностью согласен. Благодаря этой книге я, наконец, разобрался с тем, как правильно писать мок-объекты, понял, что такое Castle Windsor, и что с их помощью можно тестировать практически все что шевелится. :)
Пока, к сожалению, нет никаких идей для web-проекта, но я для себя решил, что следующий проект буду писать на ASP.NET MVC, иншаАллах.

Wednesday, December 30, 2009

Немного о лямбда-выражениях

Наконец-то хорошенько разобрался в лямбда-выражениях в C#. Сначала выносило мозг, но потом все стало понятно и очевидно. До сих пор неясно, почему MS и топ-девелоперы побуждают (в основном своим примером) всюду, где только возможно, использовать лямбда-выражения. Ведь зачастую они не так эффективны как вызов функции с использованием старых добрых циклов. Поясню на примере.
Допустим, что необходимо определить состоит ли заданная строка только из цифр. Ниже приведены четыре различных варианта реализующие эту функциональность.

    public static bool ContainsOnlyDigits_1(this string str)
    {
      for (int i = 0; i < str.Length; i++)
        if (!Char.IsDigit(str[i]))
          return false;
      return true;
    }

    public static bool ContainsOnlyDigits_2(this string str)
    {
      return str.Where(Char.IsDigit).
          Count().
          Equals(str.Length);
    }

    public static bool ContainsOnlyDigits_3(this string str)
    {
      return str.Count(Char.IsDigit).Equals(str.Count());
    }

    public static bool ContainsOnlyDigits_4(this string str)
    {
      return (from c in str
          where Char.IsDigit(c)
          select c).Count().Equals(str.Length);
    }


* This source code was highlighted with Source Code Highlighter.


Реализовать это можно еще сотней способов, но они мало чем будут отличаться друг от друга. Самыми красивыми и понятными мне кажутся первый и третий варианты. На мой взгляд, вариант с LINQом вообще сложно читать. Самым быстрым, очевидно, будет первый вариант. В подтверждение, я провел серию тестов – результаты на диаграмме.




В общем, не надо злоупотреблять лямбда-выражениями, тем более для простых вещей.

Saturday, December 26, 2009

Почему-то англичане произносят мое имя с ударением на первый слог. Фамилию выговорить с первого раза не может вообще никто. Они спотыкаются на третьем слоге и начинают извиняться :). Странно, в штатах такого не было; насчет имени не помню, но фамилию обычно произносили влет.

Tuesday, December 22, 2009

Уже почти два месяца, как я приехал в Британию. Все это время разбирался с местными реалиями и искал работу. Хвала Всевышнему, я ее таки нашел. Прошел собеседования в 5 компаниях: 4 из них в Лондоне, одна в Кембридже. Компании разные, но в целом всюду (кроме одной) работа была бы для меня интересной. Результат: 1 отказ, 3 оффера, и в одной компании я отказался от второго собеседования, так как уже имел на тот момент хорошее предложение. АльхамдулиЛлах! Оффер, который я принял - это работа на Canary Wharf в банке HSBC. Затем, две недели, кадровое агентство и какая-то сторонняя контора проверяли мое темное прошлое, и лишь убедившись, что я не привлекался, не был замечен и не состоял, предложили подписать контракт. Что я собственно и сделал :). На работу после нового года, иншаАллах.

Saturday, December 19, 2009

New version of "Russian mosques"

New version of "Russian mosques" web-site has been just released.



Release Notes - Version 2.0

Bug

  • [RM-90] - Add proper error handling.
  • [RM-96] - ShowCityList.aspx: For two cities with the same name from different regions even if one of them doesn't contain any mosques, they are both enbolded.
  • [RM-97] - Fix problems with Session object.
  • [RM-98] - Application domain restarts unexpectedly.
  • [RM-100] - Fix view for IE6.
  • [RM-103] - ContactUs.aspx: The page generates exception.

Improvement

  • [RM-72] - ShowCity.aspx: Add links to mosques' icons on the map.
  • [RM-91] - ShowCity.aspx: Improve google maps' search query, to increase probability of finding required city on the map.
  • [RM-93] - Create urls for language changing.
  • [RM-94] - Create db connections' pool.
  • [RM-95] - Sort link in links-cloud alphabetically.
  • [RM-104] - ShowCity.aspx: Add "Mosques in {cityName}" caption to the title.

New Feature

  • [RM-92] - Create map of Russia and show all mosques on it
  • [RM-101] - Add abbility to delete a mosque
  • [RM-102] - Add abbility to delete a city

Task

  • [RM-99] - Profile the application and find memory impact places.
Кроме того, совместно с Данисом, была полностью заполнена информация о городах и было добавлено множество новых мечетей. В дальнейшем продолжаем работу над проектом в фоновом режиме иншаАллах. Если у кого есть идеи по функциональности, а также материалы, которые можно опубликовать на сайте, милости просим.

Avatar

Ходил на Аватара. В кинотеатр VUE в районе Islington. Порадовала автоматизация кинотеатра – в холе стоят аппараты по продаже билетов; выбираешь фильм, сеанс, категорию билета и место в зале, затем скармливаешь аппарату кредитку и получаешь билет. Обыкновенные кассы тоже есть, но кассиров там не было. Такое ощущение, что они работают только в часы пик. В остальном же все как обычно.
Кино хорошее. Про то как земляне (читай американцы) прилетели на планету Пандора добывать редкий минерал обладающий анти- гравитационными свойствами. На планете живут хвостатые дикари в набедренных повязках, с которыми пытаются наладить общий язык с помощью «аватаров». «Аватар» это искусственно выращенный абориген, сознанием которого управляет землянин. В общем, учат дикарей языку, пытаются привить западные ценности и все в таком духе. А эти граждане живут в полном симбиозе со своей планетой – у каждой твари есть интерфейс для подключения либо напрямую – либо через дерево. Т.е. подключаются они к деревьям и могут общаться друг с другом через километры (корни всех деревьев планеты переплетены), подключатся к «лошади» и могут на ней ездить, отдавая мысленные команды и т.д. И живут они поселениями у особо крупных деревьев (типа коммутаторов планетарного масштаба) . И надо-же такому случиться, что земляне обнаруживают под ближайшим таким деревом грандиозное месторождение искомого минерала. Ну и начинается: аборигенов просят подвинуться – они ни в какую, тогда вопрос пытаются решить силой. Один из аватаров – бывший морпех, ныне прикованный к инвалидному креслу, сильно сближается с аборигенами, проходит их испытание на смелость, охмуряет дочь вождя и становится членом племени. Короче этот Зверобой вместе с индейцами дает отпор земному агрессору.
В общем, мне очень понравилось. В кинотеатре крутят три версии – 2D, 3D и 2D (18+). Я ходил на 2D, и в принципе, понял в какой момент он отличается от 2D (18+) :). Кстати инопланетные тетки – хоть и хвостаты, очень даже сексуальны, тем более что не носят ничего кроме мааааленькой набедренной повязки и ожерелий слегка прикрывающих грудь :).

Tuesday, December 15, 2009

Уже вторую неделю сижу и жду результатов скрининга. Я вот не понимаю, как так долго можно проверять человека, только что (месяц назад) въехавшего в страну? Не совсем ясно и то, как они осуществляют эту проверку. От меня затребовали все мои паспортные данные со сканами главной страницы и визы + три референса + адреса проживания в России за последние 5 лет. С паспортом и референсами понятно – это можно проверить за один день. Но как, а главное зачем, они проверяют мои бывшие адреса? Такое ощущение, что отдел безопасности просто имитирует бурную деятельность. А я, честно говоря, уже немного кисну от сидения дома.
Запасаемся терпением, и ждем иншаАллах.

Sunday, December 06, 2009

Ходил сегодня гулять по Лондону. Зашел в Национальную Галлерею, посмотрел импрессионистов. К слову сказать, вход почти во все британские музеи – бесплатный. Разительный контраст с Россией, где вход мало того, что платный (ладно уж), так в музеях действует дискриминационная политика по отношению к иностранцам – для россиян вход 100 рублей, а для иностранцев 300 :). Лажа. Такая же лажа наблюдается с Парком культуры в Москве – вход платный, рублей 200 кажется, точно не помню. А вот в Гайд-парке не то что вход, даже туалеты бесплатные – что для Москвы вообще нонсенс. В общем, погулял я по Пэл-Мэлу, Пикадилям, зашел в Гайд-парк, почитал книжку на скамейке у пруда с лебедями. Было очень солнечно и тепло, хоть и немного ветрено. Много ходил и честно говоря немного устал :), но это того стоило.

Saturday, December 05, 2009

Сектанты

Вчера засек в нашей мечети таблигов. Я иногда хожу туда на ишу и обычно ухожу сразу после нее, а тут решил задержаться, с мыслями собраться, просто посидеть подумать - не тут-то было. Образовался кружок человек из 10 и началась какая-то лекция, хотя лекцией это было сложно назвать. «Лектор» минут 10 читал по книге о том, какую важную часть в Исламе занимает призыв, что без него никак, что это сунна, что обязанность исламского призыва лежит на каждом мусульманине без исключения, приводил какие-то доводы, а потом закрыл книгу, добавил пару слов от себя и завершил фразой: «Кто готов выйти ради Аллаха на 3 дня?». Услышав это, я хмыкнул, встал и ушел.
UPD: Немного подробнее о таблиговцах. Самое страшное, что многие из них – особенно рекрутеры из низшего звена и не подозревают в какое болото попали, и что реально кроется за их призывом :(.