понедельник, 28 сентября 2009 г.

Дело о тормозящем Internet Explorer 8

Перелез с IE8 на Хром и Мозиллу. Точнее, не совсем перелез, а низвел браузер из статуса "запускаю для просмотра любого сайта" в статус "открываю, только когда в FireFox и Chrome не работает". Реально задрал.

Две основных претензии:

* Крайне медленно запускается. Хром в этом смысле потрясающе продуман - он запускается очень быстро. Я запускаю браузер сотни раз на дню (не мой стиль держать открытыми множество закладок, да и оперативки у меня впритык). Браузер, который запускается за 2-3 секунды явно доставляет мне больше радости, чем суперуниверсальные мегатормоза.

* Невозможно пользоваться функцией view source. Просмотровщик HTML на сложных страницах открывается больше минуты. Чем, вы думаете он занимается? Он раскрашивает теги...

Update 29.09.09: Тормозит связка html source viewer - RoboForm. Робоформ мне нужен, поэтому пока перешел на view source via Notepad ++


Update 2:
Команда RoboForm подтвердила наличие проблемы, аргументируя тем, что робоформ очень тесно связан с рендерингом html, а view source на самом деле рендерит служебный html. Рекомендация RF -- откатиться до IE7, но я вместо этого заменил стандартный просмотровщик на Notepad++

Update 3:
Поставил себе Chromium с включенной поддержкой RoboForm (да! они это сделали!). Тем самым будем слезать с Мозиллы потихонечку :-)


пятница, 25 сентября 2009 г.

ASP.NET Dynamic Data

Себе, на посмотреть
http://www.asp.net/dynamicdata/

Coming Soon...

Как лучше, так -



Или вот так -


?

воскресенье, 20 сентября 2009 г.

ADO.NET: Абстрактное vs Конкретное или "MS - почему?!"

К величайшему своему стыду всегда думал, что MS специально сделал классы ADO.NET для SQL Server и для OLE DB несовместимыми друг с другом. Только сегодня понял, что неправ.

А знаете почему? Потому что во всех примерах, по всему MSDN, во всех книжках код, работающий с ADO.NET пишется вот так:

SqlConnection connection = new SqlConnection(...)
SqlCommand command = connection.GetCommand(...)
SqlDataReader reader = command.ExecuteReader(...)
...

На самом деле, и Sql*-классы, и OleDb* классы совершенно логично наследуют абстрактную модель работы с данными, описанную в System.Data.Common. Это пространство имен предлагает семантику работы с данными через классы DbConnection, DbCommand и т.п.

И по всем правилам объектно-ориентированного дизайна код следует писать вот так:

DbConnection connection = new SqlConnection(...)
DbCommand command = connection.GetCommand(...)
DbDataReader reader = command.ExecuteReader(...)

Тогда программист может при необходимости изменить одну строчку, и перейти к примеру с SQLServer на MySQL (в теории, конечно. На практике все равно весь SQL надо будет переписать. Но тем не менее :-)

На практике - все пишут по примерам. Поиск на Google Code Search по C# коду дает :

То есть, грубо говоря, на каждого человека, который пишет обрашение к базе при помощи абстрактных классов, находится 8 (sic!) SqlServer-ных программистов, которые пишут обращение к БД посредством конкретных классов, не думая о возможной унификации кода и забывая, что существует более, чем один движок SQL.

Конспирологическая моя часть немедленно видит сдесь заговор со стороны софтверного гиганта с целью устроить всемирный vendor lock-in и ухудшить переносимость DBшного кода, писанного на дотнете.

Иначе как объяснить?

пятница, 18 сентября 2009 г.

Если используешь RAID это не значит, что не надо делать backup-ы

Вот теперь есть что показать людям, которые говорят о том, что раз RAID есть, то можно и не бекапиться:

http://gallery.ru/news/article.php?group_id=1&article_id=139

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

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

И вот так вот легким движением летит в трубу репутация сервиса :-)

вторник, 15 сентября 2009 г.

Совершенный дизайн

Набрел на сайт http://kstatida.ru/.
Сайт, кроме общей приятности, обладает совершенным дизайном.

Совершенным.

понедельник, 14 сентября 2009 г.

Tip: Как запустить ASP.NET Development Server из командной строки

Все очень просто:

сделал себе такой вот .CMD файл для запуска примеров ASP.NET Charts

start /B C:\windows\Microsoft.NET\Framework\v2.0.50727\webdev.webserver.exe /port:12543 /path:"C:\samples\dotNet\MSChart\WebSamples" /vpath:"/"


Понятно, что точный путь к webdev.webserver.exe зависит от вашей системы


via this

четверг, 3 сентября 2009 г.

TOGAF

Себе, на почитать

The Open Group Application Framework, TOGAF

http://en.wikipedia.org/wiki/TOGAF

link: Информационный зоопарк ФМС России

http://www.fms.gov.ru/upload/iblock/03d/konc_gismu.pdf

160-страничный аналитический отчет, в котором рассказывается о зоопарке информационных систем, внедренных в ФМС России и планах по созданию единой информационной системы, которая будет все-все объединять. Интересно вот почему:

* Отчет в разделе "AS IS" описывает реально БОЛЬШОЙ зоопарк, федерального уровня, с множеством ИС, АС, АРМ-ов, баз данных и всякого прочего.
* Отчет в разделе "TO BE" рассказывает, как может выглядеть объединенная ИС. Эта часть несколько булшитна, но в принципе показывает, из каких компонентов системы такого уровня строятся. Прямо-таки готовый чеклист для архитектора больших АС - см п. 3.2.1.3.

Здесь тебе и warehouse со всеми кодификаторами, классификаторами, справочниками, и система тебе безопасности, и движок форми, и система аналитики и отчетности, и единая база пользователей, и реально развесистый ETL, который объединяет десятки различных ведомств.

Честно скажу, прочитал по диагонали

вторник, 1 сентября 2009 г.

Как вернуть поиск Google в Mozilla FireFox?

Обидели меня парни из Mozilla Foundation, тем что продвигают нечестные способы привязки к вендорам.

Браузер FireFox Начиная с версии 3.0 неожиданно для меня начал использовать в качестве поискового агента по умолчанию поисковик Популярной Российской Компании.

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

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

О ужас - нормального способа (через стандартные настройки) изменить поисковый агент вообще нет! Есть грязный хакерский

Итак, steps:

1. Открываем в окне поиска url "about:config" (без кавычек)
2. В ответ на страшное Мозиллино сообщение обещаем, что будем себя хорошо веси
3. Ищем настройку под именем "keyword.URL". Можно воспользоваться фильтром для поиска
4. Проставляем настройке keyword.URL правильное значение:

"http://www.google.ru/search?ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox&q=" (без кавычек)

Все, теперь поиск будет искать нам хороший, годный поисковик.

--
How to return Google Search in address bar in Mozilla Firefox 3.0+. This will handle proper ly national/unicode search queries

1. Open up url "about:config" (no quotes!)
2. Confirm on ugly confirmation
3. Look for setting "keyword.URL". You can use filters.
4. Change the value of keyword.URL settings to

"http://www.google.ru/search?ie=utf-8&oe=utf-8&aq=t&rls=org.mozilla:ru:official&client=firefox&q=" (no quotes still)

So, that's all