Давным-давно (я уже не помню когда, но давно) я собрался и запустил для себя сайт. Сначала он использовался просто как склад того, что нужно кому-то передать. Потом совершенно случайно образовалось свободное время и получилось заполнить сайт чем-то осмысленным и (надеюсь) полезным. И очень захотелось быть в курсе событий, происходящих на сайте. Самое простое решение — отсылать письма, что и было сделано. Однако через некоторое время появилось желание избавиться от писем с сайта так как поток служебной почты в течении дня превышает разумные пределы.
Владимир Юнев @XaocCPS
Chief Architect
ASP.NET MVC + jQuery = рай для AJAX
3 min
50KTranslation
Я никогда раньше не имел дело ни с одним AJAX Toolkit от Microsoft, но недавно у меня появилась необходимость добавить картографический функционал к проекту, который я веду. Нам нужно было, чтобы у пользователей появилась возможность перемещать маркер по карте, а у нас получать его новые координаты на сервере. Очевидно, что нам для этого придется использовать AJAX в каком-либо виде. Сегодня я вам покажу насколько просто использовать связку ASP.NET MVC на сервере и jQuery на клиенте. Так как jQuery теперь включен в поставку ASP.NET MVC, то больше нет оправдания его не использовать.
+22
Новые возможности C# 4.0. Часть 2: параметры по умолчанию
3 min
11KTranslation
Сегодня мы поговорим о другой новинке C# 4.0, которую я ждал много лет. В прошлом, ее отсутствие объяснялось архитектурным решением. Но, видимо, прагматизм победил и теперь у нас есть параметры по умолчанию. Чтобы сделать их еще более полезными они добавили к ним именованые параметры. Мы обсудим их через пару минут, а сейчас займемся параметрами по умолчанию.
+42
Визуализируем данные на JavaScript
3 min
4.5KTranslation

Развитие компьютерной графики подталкивает нас к изобретению всё новых способов графического представления данных. Разрабатывались различные прикладные программы для визуализации данных на локальных компьютерах. Однако всё изменилось с развитием интернета: в нём содержатся колоссальные объёмы информации, которые нам постоянно хочется представить как-то удобнее, дружелюбнее, понятнее. Что же мы имеем на сегодняшний день?
Существует немалое число серверных библиотек и утилит, способных генерировать сложные графики. Однако я считаю, что такой подход не всегда оптимален. Если мы можем производить визуализацию на стороне клиента с помощью JavaScript, то почему бы нам не воспользоваться такой возможностью? Логика работы подобной связки проста: сервер генерирует данные, а клиент их визуализирует.
Разумеется, вы можете воспользоваться Flash, Silverlight или Java-апплетами, однако в этом обзоре я хотел бы вам показать библиотеки визуализации, написанные на чистом JavaScript.
+70
Анти-паттерны Test Driven Development
4 min
20KTranslation
Я надеюсь, что как грамотный разрабочик, вы имеете представление о unit-тестировании и сделаете себе в голове пару мысленных отметок о том, чего надо избегать при написании тестов. Знакомьтесь:
Unit-тест, который успешно выполняет все кейсы и выглядит работающим правильно, однако при более детальном рассмотрении обнаруживается, что он на самом деле не тестирует то, что должен.
Лжец (The Liar)
Unit-тест, который успешно выполняет все кейсы и выглядит работающим правильно, однако при более детальном рассмотрении обнаруживается, что он на самом деле не тестирует то, что должен.
+107
Новые возможности C# 4.0. Часть 1: dynamic
3 min
6KTranslation
Одна из самых интересных возможностей язык C# 4.0, который был представлен на PDC является новое ключевое слово — dynamic. Оно позволяет разработчику объявить объект, привязка к методам которого, будет осуществлятся на этапе выполнения, а не компиляции. Примечательно, что класс, который инстанциирует этот объект объявляется стандартным способом.
+35
Вторая глобальная раздача ФППП-призов
1 min
589На дворе 1 ноября, а это значит, что пришло время подвести итоги октябрьской ФППП-активности.
Собственно, места между главными активистами распределились следующим образом:
1 место — ноутбук Apple MacBook от компании «Тематические Медиа»: enartemy и его «выхлоп» про пропал iPhone в России. Ах, какая ирония;
2 и 3 места — гаджет от интернет-магазина SmartMasses: zakhars с топиком про опыт сборки бесшумного компьютера для дома, а также eagleas с топиком про горе-корректуру;
4 и 5 места — книги от издательства «Манн, Иванов и Фербер»: maxshopen и его история про спам, а также XaocCPS с топиком про победу над Google.
Победителям следует тщательно следить за входящей почтой, дабы не пропустить от нас важных сообщений с подробной информацией о том, как можно получить заработанные призы.
Ну а теперь хотелось бы сообщить менее приятные новости: с ноября мы вынуждены частично сократить призовой фонд ФППП, а именно — убрать из списка призов ноутбук. Это «яблоко» оказалось настолько «раздорным», что гонка за призом стала больше похожа на холодную войну, а не на честную конкуренцию, а рейтинг лучших статей возглавили «Выхлопы» и «Юмор на Хабрахабре», а не профильные Хабраблоги. Все это явно не на пользу ни нам, ни вам. Кроме того, с этого момента меняются и правила ФППП: отныне в конкурсах не участвуют все «оффтопики» (блоги «Юмор», «Выхлопы», «Оффтопик», «Рано сваливать» и некоторые другие). Подробнее об этом будет в следующем топике в блоге «ФППП». Такие дела…
Тем не менее, спасибо всем участникам за активность. Следите за анонсами :)
Собственно, места между главными активистами распределились следующим образом:
1 место — ноутбук Apple MacBook от компании «Тематические Медиа»: enartemy и его «выхлоп» про пропал iPhone в России. Ах, какая ирония;
2 и 3 места — гаджет от интернет-магазина SmartMasses: zakhars с топиком про опыт сборки бесшумного компьютера для дома, а также eagleas с топиком про горе-корректуру;
4 и 5 места — книги от издательства «Манн, Иванов и Фербер»: maxshopen и его история про спам, а также XaocCPS с топиком про победу над Google.
Победителям следует тщательно следить за входящей почтой, дабы не пропустить от нас важных сообщений с подробной информацией о том, как можно получить заработанные призы.
Ну а теперь хотелось бы сообщить менее приятные новости: с ноября мы вынуждены частично сократить призовой фонд ФППП, а именно — убрать из списка призов ноутбук. Это «яблоко» оказалось настолько «раздорным», что гонка за призом стала больше похожа на холодную войну, а не на честную конкуренцию, а рейтинг лучших статей возглавили «Выхлопы» и «Юмор на Хабрахабре», а не профильные Хабраблоги. Все это явно не на пользу ни нам, ни вам. Кроме того, с этого момента меняются и правила ФППП: отныне в конкурсах не участвуют все «оффтопики» (блоги «Юмор», «Выхлопы», «Оффтопик», «Рано сваливать» и некоторые другие). Подробнее об этом будет в следующем топике в блоге «ФППП». Такие дела…
Тем не менее, спасибо всем участникам за активность. Следите за анонсами :)
+29
Расширяем Хабр
1 min
809Однажды, устав играть в Counter-Strike 1.6, решил, что можно убить оставшееся время более продуктивно (особенно в условиях мирового финансового кризиса). На память мне пришла притча, приписываемая Лао-Цзы, мораль которой сводилась к тому, что из сложного можно получить простое, даже не прибегая к рисовой водке. Проще говоря, сделал два маленьких улучшения для правой панельки на странице топиков:

Чтобы установить расширения, надо иметь Firefox с установленным GreaseMonkey.

Чтобы установить расширения, надо иметь Firefox с установленным GreaseMonkey.
+67
Memcached: статистика, отладка и RPC
4 min
12KСерия постов про “Web, кэширование и memcached” продолжается. Начало здесь: 1, 2, 3, 4 и 5.
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached, а также о проблеме одновременного перестроения кэшей и тэгировании кэшей.
Сегодняшний пост завершает эту серию, в нём обзорно мы поговорим о технических “мелочах”:
Полный текст всех разделов в виде одной большой PDF-ки можно скачать и посмотреть здесь (в разделе “Материалы”).
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached, а также о проблеме одновременного перестроения кэшей и тэгировании кэшей.
Сегодняшний пост завершает эту серию, в нём обзорно мы поговорим о технических “мелочах”:
- анализ статистики memcached;
- отладка memcached;
- “RPC” с помощью memcached.
Полный текст всех разделов в виде одной большой PDF-ки можно скачать и посмотреть здесь (в разделе “Материалы”).
+38
IE5+ и CSS3 — есть способ подружить!
1 min
1.3KУверен, что найдутся на Хабре люди, которые уже знают о этом замечательном способе заставить «ненавистный» ИЕ понимать такие вещи, как min-width и ::after. Но лично я об этом способе не знал, и испытал настоящий восторг, когда наткнулся в сети на очень элегантное и эффективное на мой взгляд решение данной проблемы.
+47
Пример создания анимированного меню
4 min
2KВ своей работе я часто сталкиваюсь с однотипными задачами. Для того чтобы не топтаться на одном месте, развиваться как разработчик, да и просто не скучать от однотипной работы, я придумываю небольшие фишки в проектах.
Так, при создании админки для одного из моих клиентов, я решил сделать анимированное меню при помощи фреймворка Mootools. В этой статье я расскажу, как создавалось меню и немного опишу функции и методы фреймворка, которые мне в этом помогли. Статья написана как для людей, которые только начинают изучение mootools, так и для тех, кто желает начать изучение этого фреймворка, но, возможно, не знают с чего начать.
Так, при создании админки для одного из моих клиентов, я решил сделать анимированное меню при помощи фреймворка Mootools. В этой статье я расскажу, как создавалось меню и немного опишу функции и методы фреймворка, которые мне в этом помогли. Статья написана как для людей, которые только начинают изучение mootools, так и для тех, кто желает начать изучение этого фреймворка, но, возможно, не знают с чего начать.
+19
Сброс группы кэшей и тэгирование в memcached
5 min
8.3KСерия постов про “Web, кэширование и memcached” продолжается. Начало здесь: 1, 2, 3 и 4.
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached, а также о проблеме одновременного перестроения кэшей.
Сегодня мы поговорим о тэгировании кэшей и о возможности сброса сразу группы кэшей в memcached.

Последний, шестой пост, будет посвящен различным техническим вопросам работы с memcached: анализу статистике, отладке и т.п.
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached, а также о проблеме одновременного перестроения кэшей.
Сегодня мы поговорим о тэгировании кэшей и о возможности сброса сразу группы кэшей в memcached.

Последний, шестой пост, будет посвящен различным техническим вопросам работы с memcached: анализу статистике, отладке и т.п.
+44
Проблема одновременного перестроения кэшей
4 min
10KСерия постов про “Web, кэширование и memcached” продолжается. Начало здесь: 1, 2 и 3.
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached.
Сегодня мы рассмотрим проблему одновременного перестроения кэша, которая возникает при большом количестве одновременных обращений к кэшу, который был только что сброшен или потерян, что может привести к перегрузке БД.
Следующий пост будет посвящен тэгированию кэшей.
В этих постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования, кластеризации, атомарных операциях и реализации счетчиков в memcached.
Сегодня мы рассмотрим проблему одновременного перестроения кэша, которая возникает при большом количестве одновременных обращений к кэшу, который был только что сброшен или потерян, что может привести к перегрузке БД.
Следующий пост будет посвящен тэгированию кэшей.
+43
WPF Binding: Мощь стилей и шаблонов в WPF.
9 min
38KTranslation
В WPF существует очень четкое разделение между поведением Control'а и тем, как он выглядит. К примеру, поведение объекта класса Button состоит в том, чтобы реагировать на различные события по клику, но его вид может быть любым — вы можете сделать кнопку в виде стрелки, рыбы, или чего-либо еще, что подходит для вашего приложения. Переопределение отображения Control'а очень просто сделать при использовании VS со стилями и шаблонами, и даже еще проще, если у вас есть Microsoft Expression Blend. В этом примере я покажу вам, как переопределить отображение ListBox'а, который используется для отображения списка планет.
+22
Анимация в MooTools. Основы и не только.
18 min
7.5KВ данном топике я собираюсь свести все свои знания об анимации в MooTools воедино и рассмотреть темы, более углубленные, чем просто примеры использования плагинов. Теоретическая информация справедлива не только для MooTools, но и для других фреймворков. Начинающим будет интересно ознакомиться с возможностями фреймворка, а продолжающим — понять, как все это работает :). В статье приведено много примеров, есть довольно оригинальные, вот некоторые из них: 1, 2, 3. Приятного вам чтения.
+55
Визуализация Xml-документов
3 min
102KДумаю, для многих не секрет, что xml является достаточно удобным способом хранения и передачи информации. Вот уже который раз натыкаюсь в литературе на утверждение, что в будущем xml должен заменить html, а появление xhtml является тому подтверждением. Но тут есть нюанс. все браузеры знают как отображать html-документы, но ни один из них не знает, как должны отображаться xml-документы. Это связано прежде всего с тем, что формируя xml-документ Вы можете ввести свои теги. Я хочу коротко (это очень большая тема, на самом деле) рассказать о так называемых «Таблицах преобразований xml-документов».
Думаю, что многие наверняка знакомы с ними, но надеюсь что кому-то это может быть полезно, а, учитывая мою любовь к практике, хочу показать всё на очень простом примере
Думаю, что многие наверняка знакомы с ними, но надеюсь что кому-то это может быть полезно, а, учитывая мою любовь к практике, хочу показать всё на очень простом примере
+25
Сборник хаков
4 min
6.5KВ этом посте я постарался собрать все известные мне хаки для css. Многие могут усомниться в их надобности для нормальных современных браузеров, потому как большинство хаков всегда применялись только для IE, но этот пост скорее для любознательных :), в верстке хаки вообще лучше не использовать. Но так или иначе, раз они есть, грех о них не знать.
В отличие от многих хаков для той же Opera, которые также будут обработаны и Safari, я немного изменил код и Opera 9.2, Opera 9.5 и Safari 3 увидят каждый свой css.
В отличие от многих хаков для той же Opera, которые также будут обработаны и Safari, я немного изменил код и Opera 9.2, Opera 9.5 и Safari 3 увидят каждый свой css.
+126
Атомарность операций и счетчики в memcached
5 min
8.2KСерия постов про “Web, кэширование и memcached” продолжается. В первом и втором постах мы поговорили о memcached, его архитектуре, возможном применении, выборе ключа кэширования и кластеризации memcached.
Сегодня речь пойдет о:
Следующий пост будет посвящен проблеме одновременного перестроения кэшей.
Сегодня речь пойдет о:
- атомарных операциях в memcached;
- реализации счетчиков просмотров и онлайнеров.
Следующий пост будет посвящен проблеме одновременного перестроения кэшей.
+41
Контекстное меню на javascript: небольшое, но мощное
5 min
14KВы наверняка не раз видели javascript-реализации контекстных меню на базе популярных библиотек, таких как jQuery и prototype. А значит обязательно сталкивались с основными их недостатками: неудобностью API, большим количеством кода, требовательностью к ресурсам, любовью к генерации огромного количества html кода. В один прекрасный момент эти проблемы пересилили мою лень и я решил бороться с ними, поставив следующие задачи:

UPD: разместил проект в google code, пользуйтесь, развивайте:
- Минимум html кода, генерируемого для меню (зачем нам засорять ДОМ)
- Лаконичность js кода для создания меню (API вызова без копипасты)
- Оптимум гибкости при работе (многоуровневые, динамически модифицируемые меню)
- Как можно меньше кода в реализации библиотеки (6302 байта в несжатом виде)
- Минимальное количество jQuery-вызовов (чтобы можно было легко от них отказаться тем, кто jQuery не использует)
- Inline-события где это возможно вместо биндов (меньше ресурсов сожрет)

UPD: разместил проект в google code, пользуйтесь, развивайте:
svn checkout js-cmenu.googlecode.com/svn/trunk js-cmenu-read-only
+74
GTK + VisualStudio 2008: Быстрый старт
2 min
12KДля создания кроссплатформенного приложения, была выбрана хорошо известная библиотека GTK, но если в Unix системах всё более-менее просто (хотя конечно и не всегда порой), то с установкой и использованием в Windows — системах могу возникнуть некоторые вопросы.
Решением этих вопросов, а если быть точнее, настройкой Microsoft Visual Studio 2008 для работы с библиотеками GTK, я бы и хотел поделиться.
Возможно, для людей хорошо знающих Visual Studio, эта информация покажется не новой, но для новичка, который бы хотел протестировать свой первый «Hello World», я думаю, будет не лишней. Если интересно, тогда поехали…
Решением этих вопросов, а если быть точнее, настройкой Microsoft Visual Studio 2008 для работы с библиотеками GTK, я бы и хотел поделиться.
Возможно, для людей хорошо знающих Visual Studio, эта информация покажется не новой, но для новичка, который бы хотел протестировать свой первый «Hello World», я думаю, будет не лишней. Если интересно, тогда поехали…
+34
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Works in
- Date of birth
- Registered
- Activity