Pull to refresh
219
0
Дмитрий Вихарев @vikds

IT RocknRolla

Send message

Тривиальные задачи по вёрстке

Reading time4 min
Views60K
image

Начинаю вести серию статей Это статья про вёрстку html css js, начинаю с самого простого, потом планирую описать более сложные вещи и всякие тонкости и этим видимо так и закончил

Читать дальше →
Total votes 275: ↑251 and ↓24+227
Comments160

Системный подход лидера в работе с командой. Не повторяем ошибок трижды

Reading time7 min
Views19K
Сначала повторяем чужие ошибки, потом делаем свои, потом свои же повторяем ) Итак...

Задачи менеджера проекта (лидера) в работе с командой сводятся к повышению эффективности и снижению себестоимости разработки. Эффективность команды во многом зависит от ее участников. Что мешает нам добиться синергетического эффекта? Пробуем разобраться.

В работе менеджера проектов одно из наиболее ценных качеств – это опыт. Именно опыт формирует интуицию, помогает принимать правильные решения и завершать проекты успехом. Чаще всего наш опыт основан во многом на стандартных ошибках, в стандартных ситуациях. При этом, в текучке проблем, мы придумываем нестандартный выход из них (так проще), и забываем воспользоваться устоявшимся опытом многих предшественников, сведенным в систему. Напрасно. Система «в сознании» позволяет принимать уверенные решения, думать на несколько шагов вперед, и не тратить время на эксперементы с людьми. Описанная ниже схема покажется очевидной многим из нас, но часто мы не берем ее во внимание и совершаем ошибки, которые стоят всем денег.
Читать дальше →
Total votes 90: ↑86 and ↓4+82
Comments31

Рассылка по вопросам клиентской и серверной производительности

Reading time1 min
Views589
Хабралюди!

Если вы хотите задать тупой (или не очень вопрос) по клиентской или серверной оптимизации, ответить какому-нибудь ньюбу или просто узнать новости отрасли — милости просим. Специально для этой цели мы завели рассылку через Google Groups — clientside_ru. Теперь мучить меня по ICQ/Skype совсем не обязательно :)

groups.google.com/group/clientside_ru
Total votes 8: ↑5 and ↓3+2
Comments0

Слушаем вызовы функций в Javascript

Reading time12 min
Views9.9K
Многие знают о механизме Event-Dispatcher-Listener'ов, реализованному во многих языках программирования. Я же создам подобный механизм не для Event'ов, а для любого метода объекта JavaScript — Object.
Я не претендую на оригинальность, нет. Основная цель статьи — рассмотреть интересные механизмы прототипирования в JavaScript, создание декораторов и, собственно, постараться хоть немного раскрыть мощь и гибкость это чудесного языка, который так часто обижают и недооценивают.

UPD1: краткое содержание:
1. Создание декоратора на JavaScript
2. Создание механизма Function call listener с помощью декораторов

UPD2: от 09.06.2009
В конце статьи я добавил раздел Update: Decorator Mark II. В нём — исправления и улучшения (я не перекраивал всю статью из-за этого)

Итак, первый (и, надеюсь, не последний) рецепт в моей поваренной книге JavaScript.
Перейти к рецепту
Total votes 112: ↑107 and ↓5+102
Comments37

Иногда они возвращаются… снова

Reading time6 min
Views3.9K
Совсем недавно на хабре пользователем bur был опубликован пост про приятные ползунки TrackBar. Они мне понравились своей простотой и возможностью их использования в совокупности с jQuery. Чуть позже был так же пост про слайдер, который определял диапазон времени, но его порицали за большой вес и «тяжесть». Тогда у меня и родилась идея создать на основе TrackBar ползунков для выбора произвольного диапазона времени. Придумано – сделано. И сейчас я представляю свои наработки хабраобщественности.

Итак, было:

Стало:


Прочитать про это
Total votes 53: ↑49 and ↓4+45
Comments43

7 мощных каруселей изображений для Web-дизайнеров

Reading time2 min
Views85K
Эта статья является коллекцией некоторых мощных каруселей изображений и текстовых материалов, готовых к использованию в ваших Web-проектах. Она включает в себя Agile Carousel, YUI Carousel, JCarousel, iCarousel (jQuery + MooTools) и учебное пособие о том, как реализовать простую карусель наподобие карусели во Flickr, используя Prototype-UI.
Читать дальше →
Total votes 50: ↑42 and ↓8+34
Comments28

Когда достигнут потолок зарплаты

Reading time5 min
Views6.6K
Хочу сразу предупредить, что несмотря на два экрана текста, в статье больше вопросов, чем ответов. Приглашаю обсудить вместе.

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

В 20-25 лет мы думаем в основном об интересной работе и мало обращаем внимания на растущую зарплату (а вначале карьеры она неизменно быстро растет). Однако, создав семью и родив детей, в той или иной мере начинает хотеться улучшения и в финансовой сфере. Безусловно, работать только ради денег глупо, но получать адекватную зарплату семейному человеку очень актуально. И мы начинаем уделять внимание карьере.

Что такое карьера в сфере IT?
Читать дальше →
Total votes 171: ↑159 and ↓12+147
Comments314

10 приемов, разрушающих хрупкую красоту кода

Reading time19 min
Views102K
Статья приводится в сокращении из-за ограничения на объем материала.

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

Последние несколько лет я собирал приемы программирования, разрушающие в программном коде его утонченную красоту:
  1. Объявление всех переменных в начале программы;
  2. Возврат результата функции через ее параметр;
  3. Отсутствие локальных функций;
  4. Отсутствие else if;
  5. Использование параллельных массивов;
  6. Хранение размера массива в отдельной переменной;
  7. Доступ к свойствам объекта через obj.getProperty() и obj.setProperty(value);
  8. Использование рекурсии для вычисления факториалов и Чисел Фибоначчи;
  9. Отсутствие именованных параметров функции;
  10. Невозможность объявления объектов «на лету».
Наверняка, в некоторых местах вы будете со мной несогласны — ведь чувство красоты у всех разное.


Объявление всех переменных в начале программы


В двух словах:

Переменные должны объявляться в начале логического блока, в котором они используются, а НЕ в начале функции или программы.


Читать дальше →
Total votes 402: ↑324 and ↓78+246
Comments411

Правильно поставленная задача время бережет

Reading time3 min
Views18K
Хочу поделиться своими мыслями по оптимизации общения адекватного руководителя и адекватного исполнителя. Что надо делать и чего делать не стоит, для того, что бы работа была выполнена качественно и в срок?

Нормально построенная система взаимоотношений руководитель—подчиненный строится на интеллектуальном превосходстве руководителя и его умении прогнозировать и расставлять приоритеты не без учетов интересов исполнителя, что очень важно. Если это не так, и в роли работодателя выступает девочка-менеждер, а в роле исполнителя — программист-маньяк, то менеджер не получит результатов, а программист — денег.
Читать дальше →
Total votes 86: ↑75 and ↓11+64
Comments95

Типографика и WPF — Рисуем красивый текст

Reading time7 min
Views5K

Важно: этот подход устарел, теперь можно просто использовать DirectWrite и получать все плюшки OpenType. Пример конкретной реализации можно найти вот тут.



Введение


Как известно, в WPF есть достаточно мощная встроенная система типографики. К сожалению, эта система ориентирована в основном на работу с документами и, тем самым, все типографические изыски вроде поддержки OpenType невозможно использовать для какого-нибудь простого контрола вроде Label. Но, не смотря ни на что, есть все-таки возможность получить качественную отрисовку текста – просто нужно немного помучаться.
Читать дальше
Total votes 44: ↑34 and ↓10+24
Comments25

5 принципов построения решений

Reading time1 min
Views1K
На самом деле принцип там один. Проектируйте свой опыт и всякие best practice которые вы используете при разработке веб-приложений на ASP.NET на то, что вы делаете для Sharepoint.

Но всё же те пять пунктов которые касаются работы с данными и про которые хотелось поговорить.
Читать дальше...
Total votes 15: ↑9 and ↓6+3
Comments2

.NET в unmanaged окружении: вызов управляемого кода из неуправляемого

Reading time12 min
Views5.8K
Как вы, наверное, помните из моей предыдущей статьи, взаимодействие unmanaged и managed кода представляет определенную проблему, даже для опытных разработчиков. Причина этого — необходимость понимать, какие процессы происходят при пересечении данными границы CLR.

К сожалению, нередко проблема наладить взаимодействие встает у тех разработчиков, которые слабо знакомы с подноготной технологии COM и возможностями .NET для обеспечения взаимодействия. Это нормально — нельзя знать все на свете. Потому я не буду здесь объяснять всю суть проблемы маршаллинга данных из unmanaged в managed и обратно, а просто дам несколько рабочих рецептов, которые помогут вам тогда, когда нужно срочно и завтра, и вы с тоской смотрите на английское издание книги Inside OLE и понимаете, что разобраться в этом за день нет никакой возможности.

Однако, для тех, кто неплохо в этом разбирается, в конце статьи есть небольшой бонус — способ организации out-process COM на .NET. Честно говоря, я добросовестно считал, что сделать out-process COM с помощью .NET невозможно, однако буквально вчера выяснилось, что все-таки нет, можно. В связи с этим, рассказывать про архитектуру .NET Pipe RPC я скорее всего не буду — она достаточно сложна, однако все предоставляемые ей возможности с легкостью заменяет out-process COM.
Под хабракатом много текста
Total votes 35: ↑29 and ↓6+23
Comments8

Разработка веб-частей. Введение

Reading time3 min
Views11K
Одной из наиболее распространенных и повседневных задач разработчика для платформы Sharepoint является разработка веб-частей. Это наиболее гибкий и доступный способ расширения функционала платформы. Несмотря на то, что в интернете сейчас достаточно статей про разработку веб-частей, немногие знают про все возможности и ньюансы.
Читать дальше...
Total votes 36: ↑22 and ↓14+8
Comments23

.NET в unmanaged окружении – использование и родовые проблемы

Reading time8 min
Views7.5K
Managed код и .NET Framework – совершенно замечательная вещь с точки зрения программиста, которому надо кровь из носу выдавать максимально стабильно работающие программы. Использование .NET позволяет очень сильно сократить затраты на разработку, тестирование и сопровождение программных продуктов, особенно по сравнению с C++ или Delphi.

Однако, managed код имеет одну очень серьезную родовую травму, которая прямо проистекает из его достоинств – он изначально несовместим с unmanaged средой, в которой вынужден работать. Boxing, поля памяти, отсутствие прямой адресации и прочие ухищрения, призванные облегчить жизнь программисту, приводят к тому, что взаимодействие managed и unmanaged кода становится проблемой.

Однако нет такой проблемы, которую нельзя решить (пусть даже с помощью топора и лома). Сегодня у нас краткий обзор возможностей организации взаимодействия между managed и unmanaged кодом. Многие C# и особенно VB.NET программисты боятся этого, но на самом деле в этом нет ничего страшного. Начнем мы с самых примитивных методов, которые будут интересны разве что новичкам (поэтому матерые волки .NET могут с чистой совестью первую часть статьи пропустить), и закончим описанием того, что делать, если хочется написать программу на .NET, но сделать это невозможно (а такое тоже бывает). Естественно, к каждому случаю будут приведены конкретные примеры, быть может, хабрачеловеки расскажут мне о моей собственной велосипедности. Параллельно я скажу пару слов о подводных камнях при работе с VSTO и Windows Shell.
Читать дальше →
Total votes 41: ↑35 and ↓6+29
Comments32

Иерархические (рекурсивные) запросы

Reading time10 min
Views511K
Дерево объектов

Чтобы понять рекурсию, сначала надо понять рекурсию. Возможно, поэтому рекурсивные запросы применяют так редко. Наверняка вы представляете что такое SQL-запрос, я расскажу, чем рекурсивные запросы отличаются от обычных. Тема получилась объемная, приготовьтесь к долгому чтению. В основном речь пойдет об Oracle, но упоминаются и другие СУБД.

Читать дальше →
Total votes 108: ↑103 and ↓5+98
Comments159

Верстка скругленных границ и острых углов

Reading time4 min
Views21K
Сложность элементов интерфейса увеличивается с каждым новым макетом, что доставляет немало хлопот верстальщикам. Развивающиеся технологии позволяют создавать в WEBе сложные приложения (Google не даст мне соврать), поэтому дизайнеры себя не сдерживают и рисуют всё более навороченные вещи. Как правило, это приводит к большому количеству графики на страницах.

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

Читать дальше →
Total votes 190: ↑183 and ↓7+176
Comments96

30 высококачественных комплектов иконок

Reading time1 min
Views2.6K
Доброго времени суток, хабралюди! Сегодня я хочу представить вашему вниманию 30 комплектов иконок. Несмотря на то, что все иконки выполнены на очень высоком уровне, распространяются они абсолютно бесплатно. Превью для каждого пака внутри.
Читать дальше →
Total votes 146: ↑131 and ↓15+116
Comments38

Работаем с LINQ to XML

Reading time8 min
Views131K
В первой статье в блоге .NET «Работаем с XML» в комментариях народ потребовал статьи LINQ to XML. Что же, попробуем раскрыть принципы работы этой новой технологии от Microsoft.

Создадим базу для ведения каталога аудиозаписей.
Читать дальше →
Total votes 32: ↑30 and ↓2+28
Comments66

ASP.NET MVC на реальном примере. Теория и вступление.

Reading time9 min
Views64K
Команда Microsoft очень интенсивно развивает свои продукты и средства для разработчиков. На эту тему уже и выхлопы шуточные были, по поводу выхода новых версий фреймворков. Разработчики, которые работают в крупных компаниях, ввязаны в большие проекты в общем-то без особого энтузиазма на это смотрят, так как такие махины нельзя в короткие сроки перевести на новую версию. Может быть чревато как всплыванием багов, так и изменением всей структуры проекта, что делать не всегда получается легко. Сказанное выше, к сожалению (или к счастью), меня не касается и это дает мне возможность использовать все самое новое без оглядки на бекграунд. Проекты довольно таки обозримые, часто переводятся на новую версию безболезненно, и новые фичи начинаю внедрять уже при реализации следующей задачи в пректе. На момент внедрения это, конечно, вносит некий хаос в код, так как в разных кусках кода используются разные принципы (например, внедрение LINQ), но последующий рефакторинг кода приводит все к единому виду и все приходит в норму.

К чему все это?


Одним из таких нововведений является ASP.NET MVC — реализация шаблона Model-View-Controller под платформу .NET. Попробуем разобраться что же это такое, зачем нужно, и применим наши знания на простом, но реальном приложении.
Приступим
Total votes 36: ↑33 and ↓3+30
Comments166
12 ...
9

Information

Rating
Does not participate
Location
Москва, Москва и Московская обл., Россия
Date of birth
Registered
Activity

Specialization

Backend Developer
Lead
C++