Как вы знаете Spring MVC использует новую модель конфигурации на основе аннотаций начиная с версии 2.5. Чтобы получить эти плюшки, нужно использовать тег <mvc:annotation-driven /> в файле конфигурации. Этот тег регистрирует DefaultAnnotationHandlerMapping и AnnotationMethodHandlerAdaptor в контексте приложения.
Маслов Александр @drakmail
SRE
Идеальный корпоративный почтовый клиент
26 min
179K
Хорошо, но что же использовать вместо них, ведь хочется такой же красивой и прозрачной для пользователя работы с почтой, которую обеспечивает протокол MAPI? Небольшая перетасовычка и на свет появляется вполне очевидное и на самом деле безальтернативное решение — IMAP. IMAP, слава Богу, в современном мире в той или иной степени поддерживают чуть ли не все почтовые клиенты, так что выбор у нас огромен. Но если присмотреться внимательней, то он сужается до весьма скромного множества из одного-двух наименований.
Итак, нам бы хотелось:
- Для начала — кросплатформенность. Глупо использовать стандартизированные технологии, но привязываться изначально к одной ОС, тогда уж проще сразу купить Exchange и навсегда забыть о какой-либо гибкости разворачиваемой инфраструктуры.
- Полная поддержка IMAP и IMAP ACL. Второй пункт важен, т.к. без него нельзя будет организовать ни общих папок, ни передачу прав на различные операции с ящиком другим пользователям, а без этого в корпоративной почтовой системе никак.
- Возможность централизованной настройки клиента через сервер.
- Гибкость настроек клиента и удобство в использовании.

+159
Подготовка пакета документов для переноса доменов в зоне .RU и .SU
3 min
3.4K
+72
Кладезь полезной информации
1 min
2.8K«Чем больше я знаю, тем больше понимаю, что ничего не знаю».
Даже если вы уже давно не чайник и не боитесь увеличить относительный уровень своего незнания — попробуйте проделать на своей машине:
а потом просто вызывайте
Многократный мысленный оргазм гарантирован.
Вот просто некоторые примеры:
Приятного чтения!
Даже если вы уже давно не чайник и не боитесь увеличить относительный уровень своего незнания — попробуйте проделать на своей машине:
sudo apt-get install fortunes-ubuntu-server
а потом просто вызывайте
/usr/bin/ubuntu-server-tip
Многократный мысленный оргазм гарантирован.
Вот просто некоторые примеры:
- Для создания копии файла без дублирования пути файла используйте команду '$
cp /long/path/to/file/name{,.orig}', которая создаст копию файла с суффиксом ".orig". - Если вы выполнили команду и забыли про 'sudo', вы можете набрать 'sudo !!'
для вторичного запуска предыдущей команды с использованием 'sudo'. - Последующие команды обычно принимают аналогичный аргумент. 'Alt-.' вставляет
последний аргумент предыдущей команды. Чтение документации рулит!
Приятного чтения!
+158
Пример Makefile
7 min
76KНаписание makefile иногда становится головной болью. Однако, если разобраться, все становится на свои места, и написать мощнейший makefile длиной в 40 строк для сколь угодно большого проекта получается быстро и элегантно.
Внимание! Предполагаются базовые знания утилиты GNU make.
Внимание! Предполагаются базовые знания утилиты GNU make.
+110
Этап подготовки проекта в теории
12 min
55KВ данной статье рассмотрены теоретические основы важнейшего этапа в управлении проектами – именно его подготовки. Это должно быть интересно как новичкам в таком непростом деле, как менеджмент проектов, так и начинающим стартаперам, и возможно, опытным менеджерам.
Что же такое проект?
Что же такое проект?
+52
Реализация «dropbox» сервиса при помощи Blobstore API (Часть 1)
4 min
1.6KTranslation
Blobstore api — недавнее пополнение платформы App Engine, позволяет загружать и раздавать большие файлы, в настоящий момент до 2Gb (в оригинале — 50Mb, прим. переводчика). Это также один из наиболее сложных в использовании API. Небольшая серия заметок покажет как реализовать «dropbox» сервис на базе App Engine используя Blobstore API. Для начала мы рассмотрим основы, необходимые для загрузки файлов, сохранении информации о них в datastore и дальнейшей отдачи их пользователям для скачивания.
+21
Мысли об интерфейсе: Что важнее – функционал или интерфейс?
3 min
4.6KЧто такое удобный интерфейс? Если набрать этот вопрос в Google, то первая появившаяся ссылка дает нам следующее определение: «Удобная система — это та система, которая позволяет своим пользователям выполнять задачи, которые они хотят выполнить». На мой взгляд определение не совсем правильное – выполнять стоящие перед тобой задачи можно и при очень неудобном интерфейсе, в особенности, если этого требует начальство. Тут уж никуда не денешься, как говорится, «мыши плакали, кололись, но продолжали есть кактус».
В футболе есть очень точное определение качества судейства: хороший судья – это тот, который на поле незаметен. Он присутствует на поле и следит за правилами – а зрители видят борьбу двух команд, совершенно не замечая человека в черном. Перенося футбольные реалии в сферу разработки программного обеспечения, получим следующее утверждение: удобная система – это система, которая позволяет пользователям выполнять задачи, не задумываясь над тем, как это сделать.

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

-4
Python-way. Работа над ошибками
3 min
19K
Всем доброго времени суток! Новогодние праздники позади, все хорошо отдохнули. Тем не мнеее, даже в праздники иногда появляется работа. Мне, к примеру, довелось покопаться в чужом коде на Python. Код хороший, замечательно документирован, но во время чтения не покидало ощущение, что автор читал доки по Python и портировал код с Си-подобного языка. Это меня вдохновило на написание статьи с указанием ошибок, которые неизбежно возникают при переходе на Python с Си-подобных языков.
Статья пригодится тем, кто недавно пишет на этом языке, а также для тех, кто пишет на нем маленькие скрипты, не заморачиваясь на деталях.
+88
Как правильно выбирать клиентов
4 min
4.3K
Я работаю в сфере фриланса уже более 7 лет и успел побывать как в роли исполнителя, так и работодателя. Вы наверняка читали не один пост о подборе удаленных сотрудников. А я бы хотел представить «взгляд с обратной стороны», от лица фрилансера. Сегодня мы научимся подбирать себе клиентов.
Работать я рекомендую только на крупнейших фриланс-биржах, где в день публикуются сотни проектов. Например, free-lance.ru, weblancer.net и freelancejob.ru. Обязательно приобретите там pro-версии аккаунтов – обойдется это недорого, но без них вас и за человека-то не посчитают.
+55
Лень — механизм
5 min
75K
Начинается рабочая неделя для большинства жителей России и близится зимняя сессия. В связи с этим решил описать детальный механизм лени человека.
Однако хочу вас обнадежить, лень является лишь проявлением работы нашего подсознания, а значит ее можно контролировать и «настраивать» как вам того желается. Вы сами сможете в этом убедиться, когда поймете механизм ее возникновения.
+131
Java Bytecode Fundamentals
6 min
64KTranslation
Разработчики приложений на Java обычно не нуждаются в знании о байт-коде, выполняющемся в виртуальной машине, однако тем, кто занимается разработкой современных фреймворков, компиляторов или даже инструментов Java может понадобиться понимание байт-кода и, возможно, даже понимание того, как его использовать в своих целях. Несмотря на то, что специальные библиотеки типа ASM, cglib, Javassist помогают в использовании байт-кода, необходимо понимание основ для того, чтобы использовать эти библиотеки эффективно.
В статье описаны самые основы, от которых можно отталкиваться в дальнейшем раскапывании данной темы (прим. пер.).
В статье описаны самые основы, от которых можно отталкиваться в дальнейшем раскапывании данной темы (прим. пер.).
+53
Заметка ленивого верстальщика о SCSS и Compass Framework
3 min
32KЯ изготавливаю сайты «под ключ». Начиная от дизайна, кончая заливкой на хостинг. И самая нелюбимая мною часть этого увлекательного процесса — верстка дизайна в HTML. Вроде бы ничего сложного, но многие рутинные вещи очень утомляют. Поэтому я постоянно нахожусь в поисках интересных решений в этой области.
Не так давно я начал изучать Ruby on Rails 3 и нашел очень интересный плагин для него: Compass. По сути, этот CSS-фреймворк независим от Rails, им можно пользоваться и в других типах проектов.
Расскажу-ка я вам, как Compass облегчил мою жизнь.
Не так давно я начал изучать Ruby on Rails 3 и нашел очень интересный плагин для него: Compass. По сути, этот CSS-фреймворк независим от Rails, им можно пользоваться и в других типах проектов.
Расскажу-ка я вам, как Compass облегчил мою жизнь.
+68
GIMP Script-fu: быстрое изучение и написание простых скриптов на Scheme (+ пакетная обработка бесплатно)
8 min
25KTutorial

Вступление
В статье будет рассказано о том, как в кратчайшие сроки познакомиться с основами скриптинга в GIMP на языке Scheme и приступить непосредственно к решению простых практических задач. Данный материал предназначен лишь для тех, кто собирается автоматизировать рутинную обработку здесь и сейчас, не сильно вдаваясь в тонкости и не жертвуя драгоценным временем. Также, статью не рекомендуется использовать в качестве пособия по Scheme отдельно от Script-fu. Связано это с упрощённым стилем программирования в данном материале и отсутствием освещения других немаловажных фактов, которые нас сейчас волнуют гораздо меньше, чем скорость освоения.
Содержание:
- Что нам понадобится?
- Коротко о синтаксисе
- Переменные
- Функции
- Списки
- Регистрация скрипта в GIMP
- Написание кода
- Заключение
+56
Автоответчик на звонки в Skype на Python
4 min
11KПривет! Данный топик будет посвящен написанию автоответчика для Skype, который будет принимать за вас звонки, проигрывать приветствие и записывать ответ.
+71
Программирование под N900 на Python
5 min
4.2KСреди топиков на Хабре я нашел лишь руководство по программированию на Python для платформы S60. Являясь счастливым обладателем N900 и фанатом Python я решил это исправить.
+25
Настоящий веб-сайт на Common Lisp за 9 шагов
7 min
12KВведение

Эта вводная статья предназначена для желающих попробовать применить Common Lisp в задачах веб-программирования. Я не буду останавливаться на преимуществах этого языка, за меня это сделал ababo в своем вводном посте Разработка web-приложений на языке Common Lisp (часть первая)
Я занимаюсь вопросами разработки веб-приложений на Common Lisp немногим более года и сделал на Common Lisp крупный интернет-магазин, что, как мне кажется, предупредит возражения тех, кто считает, что лисп бесполезен для коммерческого применения.
Сегодня моя задача — рассказать в подробностях о применяемом мной способе развертывания всей необходимой инфраструктуры. Используя эту статью как пошаговое руководство внимательный читатель сможет развернуть свой собственный сайт на лиспе.
Возможно мои подходы не идеальны — в таком случае я буду рад конструктивной критике — пожалуйста, не стесняйтесь если вам что-то не нравится — одной из целей написания этой статьи было исправление собственных ошибок.
Для тех, кто любит проматывать скучные процедуры установки — в конце статьи размещена небольшая вкусность, которая, возможно, расширит ваш взгляд на веб-программирование, если до этого момента вы не имели дела с лиспом. Ищите по ключевым словам SLIME и SWANK :)
+56
Нативные интерфейсы в Qt
11 min
67K
Эта статья посвящена программированию GUI на базе фреймворка Qt от Nokia. Мы рассмотрим способы разработки интерфейсов для нативного отображения на платформах Windows, Linux и Mac OS X.
Презентацию[1] вёл Йенс
От переводчика: далее, поскольку это
Итак, приступим. Каждое графическое окружение имеет свой свод правил (User Interface Guidelines, UIG) по созданию интерфейсов, предназначенных для этих окружений. Из основных можно отметить такие руководства как Windows User Experience Interaction Guideline, Apple Human Interface Guideline, KDE User Interface Guideline и GNOME HID. Каждое из этих руководств «определяет положение кнопочек и рюшечек» конкретного окружения. Фреймворк Qt, в свою очередь, осуществляет поддержку всех этих руководств, предоставляя разработчику возможность создавать программы с использованием виджетов, «подстраивающихся» под окружение.
+108
CANVAS шаг за шагом: Основы
6 min
546KTutorial
CANVAS шаг за шагом:
Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
Если верить англо-русскому словарю, то можно узнать что canvas переводится как холст, а если верить википедии, то можно узнать что тег canvas, это элемент HTML 5, который предназначен для создания растрового изображения при помощи JavaScript. Тому как создать это растровое изображение и будет посвящен мой небольшой текст. Прежде чем начинать пробовать свои силы в этом не легком деле рекомендуется уже иметь базовые знания о том что такое HTML и с чем едят JavaScript.
+80
Тюнинг резинового текстового поля
3 min
28KДумаю, что многим верстальщикам (и не только) приходилось верстать текстовые поля (<input type=«text» />), задавая им произвольные размеры. Но как сделать данный элемент резиновым и удовлетворить условиям:
- Возможность установки любых горизонтальных и вертикальных отступов у текста;
- Элемент должен занимать весь контейнер, в который он помещен;
- Клик мышью в любое место текстового поля устанавливает в нем курсор.
Ответ достаточно прост и решается следующим методом:
+15
Information
- Rating
- Does not participate
- Location
- Москва, Москва и Московская обл., Россия
- Date of birth
- Registered
- Activity