• Конкуренция внутри команды убивает командный дух

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

      Но всегда и везде ли хороша конкуренция? Что будет, если на модели конкуренции построить управление не только продуктами, но и людьми? К сожалению, очень многие «эффективные менеджеры» не осознают, что рыночные практики не всегда применимы, когда речь идёт о взаимодействии членов одной команды или команд внутри одной компании.

      Примеры из жизни


      Пример номер раз. Один очень известный западный бренд устроил настоящую конкуренцию среди отделов российского представительства, продающего детскую одежду и одежду для подростков. Реально и целенаправленно отделы сталкиваются лбами, среди них пестуется жестокое соперничество (например, выполнение плана считается по лучшему отделу, а худший получает штрафы). Руководство компании считает, что при таком давлении сотрудники работают быстрее и продуктивнее, стремясь обогнать «конкурентов».

      Понятно, что сотрудники этих отделов ненавидят друг друга лютой ненавистью (умело подогреваемой руководством) и воспринимают друг друга врагами.

      С другой стороны, рано или поздно ребёнок вырастает из одежды для детей, и ему требуется одежда для подростков. Вполне логичной стратегией было бы плавно «передавать» клиентов из одного подразделения в другое, устраивать совместные акции и т.д. Как вы думаете, заинтересованы ли две команды в таком сотрудничестве? Проводятся ли такие акции на самом деле? А в результате, компания упускает кучу возможностей по расширению клиентской базы и развитию отношений с покупателями.

      Другой пример, уже из IT. Один топ-менеджер одной очень большой компании однажды придумал мерять сотрудников по рангам. Работаешь лучше других – получаешь премию. Работаешь хуже остальных – нагоняй от начальства и прочую немилость.
      Читать, почему это плохо
    • Чем опасен rebase, или как получилось, что 2*3=5

        Однажды старший программист Антон искал причину очередного бага в очень важном проекте компании:
        git bisect start
        git bisect bad
        git bisect good
        …
        

        В компании использовали rebase, история коммитов была линейной, и поиск по ней доставлял Антону одно удовольствие.
        — Ага, нашел. Ну конечно: в коде написано «2*3=5», ещё бы оно работало с этим бредом! Какой @#$%^ это написал?
        Читать дальше →
      • Делаем «mindmap» на Javascript с локальным хранением в базе данных браузера


        Это небольшой учебный пример редактора карты памяти. За счёт очень подробных комментариев и простого кода, понять его не составит проблем. Статья предназначена для знающих и изучающих Javascript.

        Я опишу особенности создания редактора карты памяти, который использует базу данных браузера. Причём, это будет не LocalStorage, который не может превышать 5 мегабайт. Объём данных сможет превысить 100-200 мегабайт, так как используется IndexedDB или webSQL, смотря что доступно в конкретном браузере.

        Исходники выложены в открытый доступ на Github.

        Мы уложимся в 520 строк кода, при этом в нашей карте можно будет перетаскивать узлы между собой, удалять, переименовывать и создавать новые. А также можно будет назначать одну из 120 иконок через контекстное меню.

        Секрет минимализма в том, что мы будем использовать проверенные в бою плагины:
        1. Ydn.db — хранение информации в базе данных браузера с автоматическим выбором лучшего метода и единым API
        2. jQuery context menu — контекстное меню, которое можно наполнять динамически при помощи Javascript
        3. jsPlumb — расширение позволяющее рисовать линии между HTML элементами
        4. jQuery UI — Drag&drop — перетаскивание элементов между собой


        PS: Также мы научимся создавать «синглтон», облегчать себе асинхронное программирование при помощи jQuery и встроенного объекта $.Deferred(), а также при помощи плагина LiveReload, сохраним краску на клавише F5 при изменении свойств CSS и кода в HTML и Javascript.
        Читать дальше →
      • Структуры и конструкторы по умолчанию

          Конструктор по умолчанию — это довольно простая конструкция, которая сводится к созданию для типа конструктора без параметров. Так, например, если при объявлении нестатического класса не объявить пользовательский конструктор (не важно, с параметрами или без них), то компилятор самостоятельно сгенерирует конструктор без параметров. Однако когда речь заходит о конструкторах по умолчанию для структур (для значимых типов), то тут все становится не столь просто.

          Вот простой пример, как вы ответите на следующий вопрос: сколько значимых типов из .NET Framework содержит конструкторы по умолчанию? Интуитивным ответом кажется "все", и будете не правы, поскольку на самом деле, ни один из значимых типов .NET Framework не содержит конструктора по умолчанию.

          Читать дальше →
        • Подборка полезного для любителей Twitter Bootstrap

            В подборке инструменты, плагины и другие полезности, облегчающие работу с Twitter Bootstrap. Предыдущая подборка.

            Инструменты




            Bootstraptor — подборка большого количества бесплатных и премиум тем, в том числе Starter Kit, на основе Bootstrap.
            Читать дальше →
          • Наглядный жизненный урок


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

              Поговорив и с теми и с другими, я заметил, что студенты до последнего верят в «волшебное трудоустройство», которое ждет их сразу после окончания вуза.

              Далее, для тех, кто еще не снял розовые очки — гайд по реальному миру.
              Добро пожаловать в реальный мир
            • 5 правил верстки email-писем от Печкина


                Сегодня мы хотели бы рассказать о базовых правилах верстки HTML в email-письмах. Как известно, на свете существует множество почтовых клиентов:
                • веб-версии у почтовых провайдеров (Gmail, Yandex, Mail, Yahoo итд.)
                • десктопные почтовые клиенты (Outlook, Bat, Thunderbird, Mac Mail)
                • мобильные почтовые клиенты (Blackberry, Android, Iphone, Ipad итд)


                К сожалению, не существует обязательного стандарта верстки писем, который бы универсально поддерживался бы всеми клиентами. Часть поддерживает CSS3, часть нет, какие-то теги и аттрибуты поддерживаются, какие-то нет, не говоря уже о том, что поддержка HTML и CSS меняется даже в пределах одного почтового клиента от версии к версии. Последнее особенно заметно на примере Outlook (от Express и 2003 к Outlook 2011).

                Что же необходимо знать тем, кто собирается самостоятельно верстать HTML-код для email-писем?
                Посмотреть 5 правил верстки email
              • Как научиться отдыхать

                • Tutorial
                Для того чтобы хорошо отдохнуть, как ни странно это звучит, нужно ничего не делать. Т. е. делать то, что нравится, то что приятно. Нравится смотреть Дом-2 — смотрите, нравится читать — читайте, нравится жарить с друзьями шашлыки — пожалуйста. Главное, чтобы вам это было в удовольствие.

                Но если не можете забыть о работе даже за шашлыком, то вам поможет только транс. Транс — это самый эффективный и глубокий отдых. Качественнее отдохнуть просто невозможно :)
                Читать дальше →
              • Быстрочтение featuring Восприятие текста

                  Привет всем. Основываясь на предыдущем опыте, считаю нужным сразу расставить все точи над ё. Описанная ниже методика — не мое изобретение. Однако из собственного опыта могу уверить вас, что она работает. Ровно так, как обещано.
                  Идея, описанная в посте, появилась давно (под катом есть история), в том виде, в каком расскажу ее я, по большей части она представлена в чудесных книгах Тони Бузана Use You Head и The Speed Reading Book (в последней много воды).

                  Пост затрагивает проблемы скорости чтения, понимания текста, а также методы значительного улучшения и того, и другого.

                  Написано с подачи пользователя cympak. Посвящается всем кто много читает: будь то деловые документы, художественные произведения или статьи на Хабре типа этой.

                  Прежде чем приступить к самому главному, прошу вас пройти тест из шести вопросов на Да/Нет.

                  1. Чтение со скоростью свыше 1000 слов в минуту невозможно?
                  2. Медленная скорость чтения способствует лучшему пониманию текста?
                  3. Пропускать слова во время чтения — плохая привычка, ухудшающая понимание текста?
                  4. По умолчанию мы все читаем с «естественной» для нас скоростью, а следовательно, наилучшей?
                  5. Если вы не поняли слово или предложение, лучше перечитать его и понять?
                  6. Ваши глаза находятся в непрерывном движении во время чтения?
                  За результатами и, наконец-то, интересными штуками добро пожаловать под кат.
                  Читать дальше →
                • Основы профессиональной верстки электронных писем

                  Верстка электронных писем
                  Ни для кого не секрет, что e-mail маркетинг только начинает набирать обороты во всем мире. А для России – это ещё и вовсе молодая ниша на рынке. И профессиональная верстка электронных писем здесь один из составляющих факторов успеха. Под профессиональной версткой понимается не только визуально красиво и надежно сверстанный макет, но и то, как выглядит usability открытки с маркетинговой точки зрения, как оптимизирована графика вместе с типографией для спам-фильтров и многое другое. Верстка электронных писем довольно обширная тема, в одной статье все не уместить, поэтому в данном посте постараюсь описать только базовые элементы и приемы, надежно проверенные за годы практики и работающие в top самых используемых почтовых клиентах мира: iPhone 4S/5; Outlook 07/10/13; iPad; Apple Mail; Android 2.3/4.0; Yahoo; Gmail. Если рассматривать только российский рынок, то нельзя не упомянуть о Mail.ru и Яндекс.Почта.

                  Что нужно знать в начале?


                  Сразу хочу выделить несколько из основных и важных моментов:

                  1. В нашем арсенале имеется очень урезанный набор css-свойств, которые поддерживаются всеми почтовиками. При этом, стили нужно прописывать inline, а в head выносить только вендорные свойства и те блоки объявлений, которые не несут нагрузки на основную стилизацию письма. Ну и использовать link in head — крайне нежелательно.
                  2. Не используйте background-image в основных визуальных элементах дизайна и не помещайте в изображения важную текстовую информацию. Вообще нужно всегда учитывать такой вариант, что письмо будет просматриваться получателем без единого изображения.


                  Каркас


                  Пожалуй каждый, кто хоть раз верстал письмо под рассылку, знает, что каркас лучше строить с помощью таблиц. На самом деле простая блочная модель div поддерживается на данный момент во всех перечисленных выше почтовиках, за исключением MS Outlook начиная с 2007 версии. Это связано с тем, что в качестве движка последние версии Outlook используют Microsoft Word, который в свою очередь много не знает о блочных css-свойствах. Игнорировать при верстке данный почтовый клиент я не рекомендую, поэтому в качестве фундамента все же используйте table. Да и добившись хорошего результата для Outlook, можно быть уверенным, что в большинстве почтовиках, письмо будет смотреться тоже хорошо, а скорее и лучше.

                  В качестве примера рассмотрим наиболее важные элементы из следующего, не сложного шаблона:
                  Шаблон письма для рассылки
                  Читать дальше →
                • Альтернативный терминал для Windows

                    Часто путают терминал и шелл. В тех же *nix есть шеллы (bash, csh, zsh, …) и терминалы (konsole/guake/yaquake/tilda и т.д. и т.п.) Для мира Windows общеизвестный терминал только один – стандартное консольное окошко, которое часто ошибочно называют «cmd.exe». И мало кто знает о существовании множества других эмуляторов терминала. Известных шеллов больше, их целых два: cmd.exe и powershell.exe. И хотя есть как минимум три порта bash (MinGW, CygWin, GIT) многие юниксоиды предпочитают ругать cmd.exe.

                    Меня не устраивал ни один из найденных альтернативных терминалов (как в 2009-м, когда я начал работу над ConEmu, так и сейчас). Казалось бы требований немного, вот основные:
                    Читать дальше →
                  • Usability чеклист

                    image

                    Небольшой и полезный чеклист по usability. Проверьте свой ресурс перед тем как перейти к юзер-тестированию. Не претендует на «столп usability», которому необходимо следовать, но здесь собраны довольно полезные вещи.
                    Читать дальше →
                  • Лёгкий сайт или как посадить браузер на диету

                    • Перевод

                    А что если объединить профессионалов, работавших над крупными web проектами, чтобы создать исчерпывающее руководство по оптимизации front-end разработки?
                    И получить в результате не скучную инструкцию, а что то поинтереснее? А если позвать Briza Bueno (Americanas.com), Davidson Fellipe (Globo.com), Giovanni Keppelen (ex-Peixe Urbano), Jaydson Gomes (Terra), Marcel Duran (Twitter), Mike Taylor (Opera), Renato Mangini (Google), и Sérgio Lopes (Caelum) чтобы собрать лучшие практики?

                    Именно это мы и сделали! Мы научим вас создавать быстрые сайты.

                    Zeno Rocha, руководитель проекта.


                    Читать дальше →
                  • Безопасная работа с исключениями в C#

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

                    Собственный класс. Выбрасывайте исключения на основе собственного класса, унаследованного от Exception, а не напрямую — на основе Exception, потому что это дает возможность определить свой собственный обработчик и отделить отслеживание и обработку исключений, выбрасываемых вашим кодом и кодом фреймворка .NET.

                    Отдельные поля. Создавайте отдельные поля в собственном классе для передачи существенной информации, вместо сериализации и десериализации данных в поле Message. Несмотря на то, что идея упаковки в Message сложных данных в виде строки типа JSON выглядит соблазнительно, это редко является удачной идеей, поскольку добавляет дополнительный расход ресурсов на кодирование, локализацию, декодирование.
                    Читать дальше →
                  • Программисты-оптимисты


                      Мы, программисты, — оптимисты. Это проявляется во всем цикле разработки ПО от оценки сроков до написания кода и внедрения. Как показывает моя практика, в разработке ПО законы Мерфи работают в 100% случаев. Несмотря на это, я раз за разом сталкиваюсь с «программистами-оптимистами».

                      Топ «оптимистичных» допущений:
                      Читать дальше →
                    • Практическое использование MvcSiteMapProvider в ASP.net MVC

                      Практическое использование MvcSiteMapProvider в ASP.net MVC

                      В данной статье показано использование MvcSiteMapProvider для построения динамического меню, как с его помощью сделать карту сайта и «breadcrumbs».

                      Практику использвания MvcSiteMapProvider я буду показывать на учебном проекте MVC Music Store.
                      Читать дальше →
                      • +5
                      • 15,8k
                      • 1
                    • Bootstrap-wysiwyg: крошечный текстовый редактор




                        Текстовый редактор bootstrap-wysiwyg — это всего 1.5 Кб в минифицированном и сжатом виде и чуть больше 6 Кб исходного кода, базовые функции редактирования на основе execCommand, drag-and-drop для вставки изображений, поддержка стандартных горячих клавиш и ничего лишнего. Редактор работает в современных браузерах (Chrome 26, Firefox 19, Safari 6) и на мобильных платформах (IOS 6 iPad/iPhone, Android 4.1.1 Chrome). Зависимости — jQuery, jQuery HotKeys и Bootstrap.
                        Читать дальше →
                      • Отладка Node.js в Visual Studio

                          Мне нравится Node.js, но совсем недавно я начал использовать её на серьёзных проектах. При этом я продолжил пользоваться моей любимой средой разработки*. И если для простых скриптов достаточно просто редактора, то для серьёзной разработки нужны серьёзные инструменты, в частности, дебаггер. Ничего готового для студии найти не удалось, поэтому я взял и за пару выходных сделал его сам:
                          image
                          Читать дальше →
                        • Загадка выпадающего списка «Амазона»

                            Бен Кэменс обнаружил, что в выпадающем списке Shop by Department на сайте «Амазон» ховер-эффект происходит очень быстро, абсолютно без какой-либо задержки. Тем самым происходит нарушение старого, выработанного ещё в 90-х годах прошлого века правила: перед отображением пункта подменю необходим так называемый гистерезис, запаздывание.



                            Запаздывание необходимо не только для того, чтобы сберечь ресурсы машины пользователя, но и по соображениям юзабилити: если не добавить задержку, то переводить курсор мыши на выпавшее подменю будет неудобно, придётся вести его сначала горизонтально в меню, не задевая другие пункты, и лишь после выбирать нужный подпункт.
                            Читать дальше →
                          • Поле с паролем

                              Поля для ввода паролей в браузере встречаются в разных случаях:
                              • при регистрации;
                              • на форме логина;
                              • пароль для чего-то абстрактного.
                              Каждый раз всплывают одни и те же проблемы и возникает необходимость в одинаковых шаблонных фичах. Чтобы облегчить эту рутинную задачу, я сделал js-библиотеку, которую можно конфигурировать под разные случаи — о ней и будет этот пост.
                              Что из этого получилось