• Некоторые ошибки при написании регэкспов

    • Tutorial
    По мотивам переведенной статьи

    Впервые я увидел регэкспы еще в школе в перле, и в общем полюбил их с первого взгляда, конечно после того как разобрался что это такое :). И с превеликим энтузиазмом принялся все регэкспить. Конечно, при этом, понабивал себе шишек на мозг, но любить их не перестал. Со временем любая искренняя любовь взрослеет и перерастает в глубокую привязанность, с понимаем того, что объект твоего чувства может быть несовершенным, но от этого не менее любимым.

    Итак, несколько способов предохраниться от разочарования в этом мощном и прекрасном инструменте…

    Читать дальше →
  • Повышение работоспособности: как я избавился от бессонницы

      У многих айтишников есть проблемы со сном. Ниже — описание моей проблемы и метод, которым я её решил.

      image
      Несколько недель назад я получил сразу три крупных заказа, каждый из которых был жёстко ограничен сроками. Проекты были действительно интересными и хорошо оплачиваемыми, поэтому первые несколько дней я работал практически без сна. Естественно, производительность начала снижаться. Дошло до того, что я начал ловить себя на том, что несколько минут(!) я «тупо втыкал» в монитор, ничего при этом не делая, и даже не замечая своего аут-состояния.

      Тогда я решил: всё, пора нормально выспаться. Сохранив всё «как есть», я отправился в постель… и понял, что проблема отнюдь не решена.
      Читать дальше →
    • LVM — это просто!

        Собственно, хочется просто и доступно рассказать про такую замечательную вещь как Logical Volume Management или Управление Логическими Томами.
        Поскольку уже давно пользуюсь LVM-ом, расскажу что он значит именно для меня, не подглядывая в мануалы и не выдёргивая цитаты из wiki, своими словами, чтобы было понятно именно тем кто ничего о нем не знает. Постараюсь сразу не рассказывать о всяческих «продвинутых» функциях типа страйпов, снапшотов и т.п.
        Читать дальше →
      • Сверхплавное передвижение объектов

          Иногда у веб-разработчиков возникает задача, которая требует плавного движения объекта по экрану. Это может быть строка загрузки, какой-то спрайт (например, машинки на клавогонках) или что-то ещё. Проблема возникает, когда сдвиг даже на одну точку кажется слишком резким и портит общее ощущение от происходящего. Как этого избежать? Использовать приёмы антиалиасинга.

          Мы сделали небольшой пример (а затем и ещё один с зацикленным фоном), в котором можно посмотреть, как выглядит плавный сдвиг с субпиксельной точностью и антиалиасингом, и как выглядит тот же сдвиг без этого эффекта.

          Как это сделано?
          Читать дальше →
        • Раздобываем бесплатные шрифты для русского языка, чтобы пережить Вторую типографскую революцию в Паутине

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

            Первая типографская революция произошла во Всемирной Паутине настолько давно, что приходится производить поиски, чтобы установить подробности. Кажется достоверным то, что пишет Ian Graham: в Netscape Navigator 2.0 впервые появился элемент <font> (тогда он позволял задавать только размеры шрифта, и только в условных единицах), а в Internet Explorer 3 у этого элемента появился атрибут face, позволявший задавать начертание, задавать шрифтовое семейство. Википедия подсказывает, что Netscape Navigator 2.0 появился в марте 1996 года, а Microsoft Internet Explorer 3 — в августе того же года. В язык HTML версии 3.2 даже не входил атрибут face, хотя и упоминалося, что такой атрибут существует.

            Тринадцать лет назад.

            Все эти тринадцать лет для начертания текста сайтов в основном использовались несвободные шрифты, являющиеся частью операционных систем и офисных пакетов. Сайтам приходилося гадать о том, какие шрифты установлены у читателя, а какие не установлены, и какова вероятность того или другого, какие шрифты можно считать безопасными. Сочинялись специальные плагины jQuery и создавались специальные страницы, способные выяснить набор шрифтов на компьютере читателя. Особый дух того времени прекрасно передал despoth, сочинив превосходную серию статей о такой веботипографике, которая основана именно на подборе несвободных шрифтов (часть I часть II часть III часть IV часть V).

            Наконец, это время кончилось: явствуют, зримо явствуют признаки Второй типографской революции, связанной с приходом @font-face.

            Джон Даггетт сочинил познавательную статью о том, как все мы совсем скоро (после появления Safari 3.1, Firefox 3.5, Opera 10) сможем использовать загружаемые шрифты во всех популярных браузерах, а не только в одном наиболее популярном.

            Марк Пилгрим грубо обрисовал ситуацию с лицензированием собственнических шрифтов. Ситуация эта немало напоминает глухой тупик. Даже создателям прекрасной демонстрации возможностей Firefox 3.5, чтобы изготовить страницу, пришлось специально связаться со шрифтопроизводителями и изготовлять такие особые (усечённые) версии использовавшихся шрифтов, чтобы их не было смысла копировать нелицензионно. А вон там предлагают раздавать особые паутинные обкусанные ужатые копии купленных шрифтов (которые сам покупатель вывешивать не имеет никого права, а только ссылаться). Остроумно. Открывает широкую дорогу в сторону Большого Брата: типа как недавно читальники Kindle удаляли книги Оруэлла за нелицензионность (даже честно купленные — просто оставляя стоимость их на счету покупателя в уплату). Так и тут. Внешний шрифт может неожиданно подохнуть, даже купленный заранее.

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

            Англоязычному люду этот переход дастся достаточно просто: достаточно обратиться к белке-шрифтелке, чтобы получить буквально сотни шрифтов, каждый из которых можно без лицензионных проблем использовать в своей работе, на своём сайте. Тем же, кто пользуется русским языком (или, тем паче, другими языками на основе расширенной кириллицы), придётся гораздо, гораздо похуже. Свободных кириллических шрифтов совсем мало, а русского аналога белки-шрифтелки, похоже, вообще не существует в природе.

            Я собираюсь поэтому перечислить прямо тут все свободные шрифты, подходящие для использования на сайтах, написанных по-русски. Не стесняйтеся дополнять мой список.

            Список пошёл.
          • Интересная ошибка Perl-разработчика

              Представим, что у вас есть код:
              1. chomp(my $input = <STDIN>);
              2. my $kinda_secret = get_data($input);
              3. if(defined $kinda_secret) {
              4.  print 'Your secret is: ', $kinda_secret
              5. }
              6. else {
              7.  print 'No soup for you'
              8. }
              9.  
              10. sub get_data {
              11.  my $input = shift;
              12.  open my $fh, '<', 'data.file' or return;
              13.  my $retval;
              14.  while(<$fh>) {
              15.   if(/^$input:(.+?)$/) {
              16.    $retval = $1;
              17.    last
              18.   }
              19.  }
              20.  close $fh;
              21.  
              22.  $retval
              23. }
              * This source code was highlighted with Source Code Highlighter.

              Ничего экзотичного. Вариации такого кода могут встретиться где угодно. Смысл кода, надеюсь, ясен (я не имею в виду его практическую ценность).

              Вы уже увидели ошибку? Если да, то дальше можно не читать.
              Читать дальше →
            • Новая версия веб-типографа Студии Муравьёва

                Лицо нашего типографа
                Не так давно на Хабре уже заходила речь о нашем новом типографе (см. habrahabr.ru/blogs/typography/66710/). Речь зашла раньше, чем я успел написать этот топик. Нам конечно же очень приятно, что силы, время и душу, которые мы вложили в этот бесплатный продукт кому-то пригодились. Наши первые версии писались в 2007 для форумных систем (о них вы сможете почитать на нашем сайте в разделе типографа, даже скачать можно будет). В конечном итоге мы решили позиционировать его как отдельный независимый продукт, и сейчас я хочу немного рассказать вам о нем.

                Пояснение


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

                Конкретизируя


                Сейчас он включает в себя множество умных правил, которые время от времени улучшаются и становятся более продуманными. Типограф обрабатывает тексты не только по классическим законам (неразрывные пробелы, правильные кавычки, свисающая пунктуация и др.), но и по взятым канонам из «Справочника издателя и автора» Мильчина А. Э. Любители типографики должны это оценить.
                Читать дальше →
              • Веб-аналитика: анализируй это! Часть 3. Базовые метрики

                  Предыдущие части:
                  Часть 1. Вступление
                  Часть 2. Сбор данных

                  Пришло время поговорить о метриках — тех величинах, которые считает любая система статистики. Начнем с прямых метрик — тех, которые можно посчитать легко и без применения формул.
                  Читать дальше →
                • Возвращаем в Оперу то, за что мы её так любим (или ещё раз про ускоритель интернета ;)

                    Я — один из преданных пользователей браузера уже 10 лет. Несмотря на сильную закрытость Оперы (ладно уж расширения, но даже в буфер обмена она копирует не так, как остальные), её движок — настоящий наркотик, который удерживает меня в стане фанатов все эти годы.

                    Однако в последнее время я замечаю довольно досадную вещь: страницы не показываются на лету, сразу же после начала загрузки, а отображаются с задержкой. Причину я выяснил в ходе одной из дискуссий на Хабре, когда мой оппонент ( egorinsk ) не мог понять, чего это у меня рендеринг страниц, открытых из кеша в Гугле, тормозит (у него всё летало). Оказалось, что у него постоянно отключен javascript!

                    Порефрешив страницы с включенным и отключенным javascript, я выяснил, что Опера отдаёт просто бешеный приоритет рендерингу с javascript. Логику понять можно: сейчас некоторые сайты вообще являются веб-программами, которые без js не представляют никакого интереса. Однако разработчики Оперы всегда славились тем, что отдавали предпочтение быстроте рендеринга, прорисовке страницы на лету, комфорту пользователя. Ведь с CSS дела обстоят именно так: во время загрузки тех же блогов с CSS-темами, мы сначала видим ugly plain html, который затем одевается в CSS-одёжку.

                    Возможно, хабраюзер с 10 мегабитами ничего и не заметит, поэтому я хочу спросить — а как обстоят дела у товарищей с не очень быстрыми соединениями? Также? А может, кто-то нашёл решение этой проблемы?

                    Решение не замедлило появиться!


                    Мегаспасибо кам. Kalan!

                    Врубаем параметр opera:config#Extensions|DelayedscriptExecution — и наслаждаемся тем, за шо мы так любим Оперу!

                    P. S. У некоторых параметр ни в какую не сохраняется при перезагрузке Оперы. Его можно найти и поправить в operaprefs.ini
                  • Типы людей в менеджменте

                      На Хабре в последнее время много говорится о менеджменте, вот и я решил написать что-то полезное.

                      Идя пришла после прочтения поста «Подборка кадров, так ли всё просто?»

                      Расскажу я тоже о деление людей на типы для создания максимально эффективных команд, только говорить я буду про теорию менеджмента.
                      Читать дальше →
                    • Веб-аналитика: анализируй это! Часть 1. Вступление

                        Часть 1. Вступление.
                        Часть 2. Сбор данных.
                        Часть 3. Базовые метрики.
                        Часть 4. От статистики к аналитике
                        Часть 5. Разделяй и думай
                        Часть 6. Action!
                        Счетчики посещаемости знакомы всем пользователям интернета уже много лет. Многие владельцы сайтов ставят сразу несколько иконок разных счетчиков, и день за днём цифры на них растут и всё больше радуют хозяина.



                        Далеко не все знают, какую информацию можно извлечь из статистики сайта, кроме цифр посещаемости и, иногда, источников посетителей. Однако, современные системы статистики предоставляют куда больше возможностей для подсчета, обработки и анализа данных посещаемости. Их даже стали по-другому называть: «инструменты веб-аналитики»!

                        Сейчас большинство успешных коммерческих сайтов уделяет огромное внимание сбору и анализу статистических данных. В частности, крупнейший международный онлайн-магазин Amazon.com создал целый культ аналитики.
                        Читать дальше →
                      • Классический треугольник “Sales-PM-Account” в интерактивном агентстве

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

                          Данные размышления, в основном, базируются на многолетнем опыты работы компании ADV/web-engineering. За годы работы и на разных этапах развития компании нами были перепробованы почти все схемы организации “треугольника”.

                          Описание ролей “треугольника”, зоны ответственности


                          Стоит отметить, что мы говорим здесь именно о ролях. Конкретная схема организации “треугольника” может подразумевать совмещение в одном менеджере нескольких ролей.

                          Sales. Менеджер по продажам. Отвечает за продажи проектов по входящим запросам – первый контакт, подготовку и презентацию предложения и сметы, заключение контракта. Иногда также занимается разработкой “холодных” контактов – то есть ищет клиентов самостоятельно (или через каналы, такие как крупные РА, системные интеграторы и пр.).
                          Читать дальше →
                        • Теории мотиваций

                            image

                            На написание меня сподвигли пара топиков про теории мотивации X и Y.

                            В качестве предисловия

                            Проблема мотивирования труда является одной из самых острых проблем, стоящих перед современным российским предприятием. Как правило, отечественные руководители рассматривают систему мотивации как инструмент, базирующийся на персональных выплатах работнику.
                            Согласно принятым системам мотивации на отечественных предприятиях работник получает:
                            • Базовую заработную плату в зависимости от иерархического уровня управления;
                            • Премии и бонусы по результатам деятельности подразделения за отчетный период;
                            • Премии и бонусы по результатам личной деятельности работника (личные бонусы и доплаты за исполнение проектов, комиссионные, поддержка обучающихся, и т.д.);
                            • Премии и бонусы по результатам деятельности организации в целом (годовые бонусы);
                            Но подобные схемы теряют свою эффективность
                            Читать дальше →
                          • Чёрточки: только ли тире, минус и дефис?

                              Однажды вечером я почувствовал, что пришло время расширить 97‐ й параграф «Ководства» Артемия Лебедева.

                              На клавиатуре одна чёрточка, она обычно правее нуля и повыше букв «З» и «Х». Неосведомлённые люди называют её попеременно то дефисом, то минусом, то тире. Лебедев объясняет нам, что это четыре (учитывая две разновидности тире) различных символа. На самом деле их как минимум девять, и об этом я и расскажу вам сейчас.

                              Читать дальше →
                            • Лямбда выражения теперь и в С++

                                image
                                Многие языки программирования позволяют создавать налету локальные не именованные функции внутри выражений. К этим языкам относятся C#3.0, Python, ECMAScript и практически все функциональные языки программирования (например, Haskell и Scheme). Такие функции обычно относят к лямбда функциям, которые имеют широкое применение.
                                Читать дальше →
                              • Категории программных тестов

                                • Translation
                                Перевод был сделан как ответ на некоторые комментарии к переводу Настройка IDE для автоматического запуска тестов. Прочитав статью и посмотрев наглядные примеры, вы сможете прочувствовать разницу между разнообразными видами тестов, что, в свою очередь, поможет вам грамотно составлять тесты и не перемешивать их в одной куче. Каждый тест хорош в нужном месте и в нужное время!
                                — mazurov


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

                                Читать дальше. Категории тестов ...
                              • Video rip. Часть 0. Вводная

                                  Содержание


                                  1. Подготовка DVD
                                    1. vStrip
                                    2. DGMPGDec

                                  2. Обработка видео
                                    1. Что такое interlace и с чем его едят
                                    2. Как определить что у нас: progressive, interlaced или telecined?
                                    3. Избавление от обычной чересстрочности (deinterlace)
                                    4. IVTC

                                  3. Сжимаем и запаковываем


                                  В вводной части я бы хотел сразу обрисовать некоторые моменты дальнейших частей.

                                  Для начала про что всё это будет. Это будет про рип видео с dvd (возможно эти знания можно будет применить к блюрею, но последнего у меня, пока, в наличии нет и я по этому поводу ничего сказать не могу), т.е. другими словами мы будем избавляться от interlace, сжимать видео в h264/xvid и запихивать всё это в mkv/mp4. Есть вероятность, что получившееся видео можно будет воспроизводить на iPhone/iPod. Таких девайсов у меня нет. Надеюсь, читатели проверят. :)
                                  Читать дальше →
                                • Атомарная группировка, или Ни шагу назад!

                                    0. Присказка


                                    В некотором царстве, в некотором государстве жил-был программист. Звали его, как полагается, Иван. Был он настоящим спецом, обладал всеми Тремя Великими Добродетелями Программиста, то есть был ленив, спесив и нетерпелив. Случилась в том царстве печаль великая: кризис. И выгнали Ваню с работы без выходного пособия. Горевал Ваня долго, а потом собрался с духом и разослал резюме по всему белу свету. Долго ли, коротко ли, вызвали Ваню на собеседование. Требований к соискателю было много, но главное — требовалось хорошо владеть регулярными выражениями. До собеседования — почти месяц, готовься — не хочу. Будучи человеком серьёзным, готовиться Иван решил обстоятельно. 3 недели и 3 дня он лежал на печи, почитывал Хабр и думал, как же неслыханно обстоятельно он будет готовиться. До собеседования остался 1 день. Ванюша мысленно обругал работодателей, которые назначают собеседование так скоро, что совсем подготовиться не успеваешь, слез с печи, сдал пивные бутылки и на вырученные деньги купил книжку по регексам. Читал он её до полного изнеможения, пока не отключился. Утром мы найдём сонную физиономию Ванюши лежащей, как на подушке, на этой самой книжке под Хабракатом.
                                    Читать дальше →
                                  • Что меня спрашивали на собеседовании

                                      sobesedovanie.jpg - image uploaded to PicamaticНе буду называть имён компаний. К её чести надо сказать, что это действительно лидер в своём деле, достигший нешуточных успехов. Стоит отметить прекрасный уютный офис, совершенно вменяемый HR (что было очень приятно), множество бонусов (страховки, тренажёры, обучение...) для сотрудников.

                                      Всё было очень мило. И всем действительно большое спасибо.

                                      Но мне хотелось бы сказать о том, что меня действительно поразило!

                                      Вопросы!
                                    • Веб-типографика сегодня. Часть I

                                        Часть IЧасть IIЧасть IIIЧасть IVЧасть V — Часть VI

                                        Часть I



                                        Как-то ко мне обратился знакомый дизайнер с просьбой разобраться в странной по его мнению ситуации. Клиент просил «сделать так же, как у Apple», но с использованием собственных способов расположения блоков, изображений, цветовой гаммы и текста. В общем, дизайн в итоге получался совершенно непохожий на apple.com, но этого, собственно, и добивался клиент. И вроде бы у дизайнера получилось, но… Клиенту по-прежнему не нравилось, он всё равно требовал переделать макет. По его ощущения «что-то было ну совсем не так». А что именно — тот объяснить был не в силах. Вот и возник вопрос у моего коллеги по поводу того, как угодить капризам клиента и понять его чаяния. Оказалось всё не так просто, но вполне объяснимо. Я и раньше сталкивался с данной проблемой. Поэтому решил попробовать изложить свои мысли по этому поводу.

                                        Итак, какова ситуация в области современной веб-типографики и какими способами следует решать возникающие проблемы?
                                        Читать дальше →