• Регулярные выражения. Сборник рецептов

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

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

      Сегодня я хотел бы познакомить вас с книгой Яна Гойвертса и Стивена Левитана «Регулярные выражения. Сборник рецептов», которая поможет вам понять как работать с регулярными выражениями.

      Читать дальше →
    • Современный подход к визуальной идентификации бренда

        Природа тенденций * Мир стал другим * Матерные слова * Прощай, привычный логотип * Сквозная система визуальной идентификации — что это? * Решительное «нет» хиромантии * Открытый для фантазии * Учимся понимать клиента


        Под катом много букв и картинок про то, что такое хорошо и что такое плохо.
      • Чёрный экран входа в Windows Server 2003

          В один прекрасный день Windows Server 2003 начал выдавать траурное (готичное?) приветствие. Выглядит это так
          приглашение
          На работу системы это никак не сказалось, но вводить пароль оказалось проблематично. В рунете решения не нашлось. А вот на одном из форумов на английском нашлась тема с точным описанием проблемы, причины и решения.

          Как оказалось, причиной явления является…
          Читать дальше →
        • Как Яндекс распознаёт музыку с микрофона

            Поиск по каталогу музыки — это задача, которую можно решать разными путями, как с точки зрения пользователя, так и технологически. Яндекс уже довольно давно научился искать и по названиям композиций, и по текстам песен. На сказанные голосом запросы про музыку мы тоже умеем отвечать в Яндекс.Поиске под iOS и Android, сегодня же речь пойдёт о поиске по аудиосигналу, а если конкретно — по записанному с микрофона фрагменту музыкального произведения. Именно такая функция встроена в мобильное приложение Яндекс.Музыки:

            image

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

              Уже около полугода для разработки веб-проектов используем Symfony 2. Накопился список полезных библиотек и бандлов, не входящих в состав symfony-standard, но значительно экономящих время и избавляющих от изобретения велосипеда.



              Обзор больше теоретический и включает следующие разделы:
              • Админгенераторы
              • Пользователи
              • Импорт/экспорт xls
              • API и OAuth 2.0
              • Меню/навигация
              • Мультимедиа
              • Формы
              • Поиск
              • Пагинация
              • Файловая система
              • HTTP клиент

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

              Читать дальше →
            • Административный интерфейс с SonataAdminBundle

                В базовой поставке Symfony 2 предусмотрен только минимальный функционал создания CRUD интерфейса. Для реализации административного интерфейса разработан ряд бандлов, в частности SonataAdminBundle.
                Читать дальше →
              • Развитие валидации форм

                • Translation

                Валидация форм была педантичным занятием с момента появления web. Первой пришла серверная валидация. Затем она развилась в валидацию на стороне клиента для проверки результатов в браузере. Теперь у нас есть такие гиганты как HTML5 и CSS3: глава о формах HTML5 предлагает нам новые типы для input полей и атрибуты, которые делают возможным проверку ограничений поля. Базовый UI модуль CSS3 предоставляет несколько псевдо-классов, которые помогают нам стилизовать состояние валидности и менять внешний вид поля в зависимости от действий пользователя. Давайте взглянем на комбинацию обоих для создания валидатора форм основанного на CSS, который имеет достаточно широкую поддержку браузеров.

                Чем больше мы можем дать подсказок пользователю, как правильно заполнять форму, в процессе заполнения, тем меньше шансов, что он сделает ошибку. Взгляните на пример CSS3 валидации форм в браузере поддерживающем CSS3 UI псевдо-классы, например Chrome 4+, Safari 5+ или Opera 9.6+. Я использовал CSS3 UI псевдо-классы и HTML5 атрибуты форм для создания валидации основанной на CSS. Давайте посмотрим как это работает.
                Читать дальше →
              • Penisland, или как написать спеллчекер

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



                  Итак, хочется исправить эти проблемы. А именно, написать корректор коротких фраз или запросов, который:
                  • умел бы выявлять три (и более) ошибки в запросе;
                  • умел бы проверять «разорванные» или «слипшиеся» фразы, например expertsexchange — experts_exchange, ma na ger — manager
                  • не требовал много кода для реализации
                  • мог бы достраиваться до исправления ошибок на других языках и других типов" ошибок

                  Остальное — под катом.
                  Читать дальше →
                • extsrc.js — загружаем все скрипты асинхронно и уже после отрисовки страницы (даже с document.write)

                    Хочу Вам рассказать о штуке, которую я изобрел сегодня, чтобы ускорить процесс загрузки сайтов. Все вы знаете, что <script src="..."></script> задерживает отрисовку страницы, пока не загрузится этот скрипт. Если их десятки — это может сереьезно замедлить работу сайта — в результате пользователь 20 секунд пялится на пустую (или недорисованную) страницу из-за какого-нибудь тупящего социального виджета (умножить на десяток этих виджетов).

                    Не правда ли было бы круто, если бы можно было сказать <script extsrc="..."></script> ("extsrc" = "грузи потом"), чтобы скрипты загружались после того как страница отрисована?

                    Все бы хорошо, но есть document.write… Сегодня я наконец решил его проблему — представляю extsrc.js — скрипт, который запустит все скрипты после отрисовки страницы (даже если они содержат document.write — и правильно отрисуется все).

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

                    Использование:

                    Заменяем <script src="..."> на <script extsrc="...">.

                    Итого получается:

                    <script src="http://whiteposts.com/extsrc_js/extsrc.js"></script>
                    <script extsrc="..."></script>
                    

                    все остальное под катом
                  • Отчёт о Web Standards Days в Киеве. Теперь официально


                      Не прошло и десяти дней, как мы публикуем официальный отчёт о встрече Web Standards Days, прошедшей в Киеве 18-го сентября. Как это обычно случается, финальная программа сильно отличалась от заявленной ранее — но только в сторону её улучшения. На встрече прозвучало шесть докладов:
                      • Веб-стандарты в большом проекте: что помогает, а что мешает. Андрей Сумин, PDF 138 КБ;
                      • Про проектирование интерфейсов и немного про Adobe Fireworks. Вадим Пацев, PDF 1,2 МБ;
                      • Веб в кривых. Второе рождение SVG. Вадим Макеев, HTML 15,6 МБ;
                      • Введение в Web Performance: W3C, Webkit, IE9 и будущее. Николай Мациевский, PDF 4,1 МБ;
                      • Разработка веб-приложений. Обзорная экскурсия. Виталий Рыбалка;
                      • Обзор новых API JavaScript. HTML5 и самостоятельные черновики W3C. Антон Немцев, HTML 750 КБ.
                      …причём порядок их следования составлялся налету, по мере появления докладчиков, что добавило некоторой динамики и неожиданности в нашу и без того нескучную программу.
                      Читать дальше →
                    • Comet — обзорная статья

                        Данная статья написана исходя из собственного опыта и является скорее поводом к обсуждению технологии, нежели к попытке полноценно осветить тему :)

                        Что такое COMET?


                        Comet неологизм, описывающий модель работы веб-приложения. В обычном цикле обработки запроса, клиент инициирует соединение и запрашивает интересующий его документ. После отдачи данных, связь разрывается. В случае с Сomet, сервер инициирует соединение и отправляет клиенту сообщение. Типичный пример Comet это оповещения в Facebook, Twitter, чат в Gmail и др.
                        Читать дальше →
                      • HTML5 для веб-дизайнеров. Часть 4: Формы 2.0

                        • Translation
                        HTML5 для веб-дизайнеров

                        1. Краткая история языка разметки
                        2. Модель HTML5
                        3. Мультимедиа
                        4. Формы 2.0
                        5. Семантика
                        6. HTML5 и современные условия


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

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

                        Говоря о формах, тут возможности CSS довольно ограничены. И теперь на сцену снова выходит HTML5. Следуя тому же принципу, он вводит новые функции, которые на самом деле вовсе не новые, но сделаны проще и удобнее.

                        Нетрудно догадаться, что прежде они были частью отдельной спецификации WHATWG под названием Web Forms 2.0.
                        Читать дальше →
                      • 13 антисоветов разработчику, желающему написать хороший веб-сайт

                          Привет, разработчики на хабре!

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

                          1. Не проставляйте ключи!


                          СУБД пишут умные люди. Некоторые из них даже получают за это деньги. Зачем подсказывать им, как устроены данные? Пускай догадываются сами из названий полей и самих данных. В крайнем случае, админы поправят профайлером.
                          Читать дальше →
                        • Электронная цифровая подпись для чайников: с чем ее есть, и как не подавиться. Часть 1

                            Итак, все чаще в кругах, работающих с документами все чаще звучат слова «электронный документ» и, связанное с ним почти неразрывно «электронная цифровая подпись», иначе — ЭЦП.

                            Данный цикл статей предназначен для того, чтобы раскрыть «тайное знание» о том, что это такое, когда и как это можно и нужно использовать, какие есть плюсы и минусы.

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

                            Читать дальше →
                          • Проверяй позиции в поисковиках %username%, бесплатно

                              Привет, Хабражители!
                              Несколько месяцев назад открылся сервис проверки позиций Сеумка.

                              Он позволяет владельцам сайтов отслеживать позиции своих сайтов в Google, Яндекс и Rambler в автоматическом режиме.

                              После длительного тестирования мы счастливы выставить сервис на обозрения Хабрасообщества.
                              Узнать, что к чему...
                            • Эта неделя в jQuery, том 6

                              • Translation
                              Другая неделя, другая коллекция ссылок на некоторые из самых интересных и захватывающих событий в Сети, касающихся jQuery.

                              Одним из самых интересных событий на этой неделе стал выпуск Glimmer. Glimmer позволяет легко создавать интерактивные элементы на вашей веб-странице, используя мощь библиотеки jQuery. Вы можете использовать мастера Glimmer для генерации скриптов jQuery, отрабатывающих самые общие интерактивные сценарии. Glimmer также имеет расширенный режим, обеспечивая дизайнер для создания эффектов на основе уже существующих HTML и CSS. — примечание от переводчика — есть отдельная статья на Хабре про Glimmer.

                              Также стоит упомянуть новый облик сайта jQuery для дизайнеров от Реми Шарпа.
                              Читать дальше →
                            • Сброс стилей с помощью CSS Reset

                              • Translation
                              Данная статья — первая из цикла на тему укрощения CSS. Сегодня мы рассмотрим технологию CSS Reset.

                              Зачем это нужно?


                              Каждый браузер устанавливает свои значения стилей по умолчанию для различных HTML-элементов. С помощью CSS Reset мы можем нивелировать эту разницу для обеспечения кроссбраузерности стилей.

                              Например, вы используете элемент a в вашем документе. Большинство браузеров, как Internet Explorer и Firefox, добавляют ссылке синий цвет и подчёркивание. Однако представьте, что через пять лет кто-то решил создать новый браузер (назовём его UltraBrowser). Разработчикам браузера не нравился синий цвет и раздражало подчёркивание, поэтому они решили выделять ссылки красным цветом и полужирным шрифтом. Именно исходя из этого, если вы установите базовое значение стилей для элемента a, то он гарантированно будет таким, каким вы хотите его видеть, а не как предпочитают его отображать разработчики UltraBrowser.

                              Читать дальше →
                            • Дао бизнесмена

                                ВСЕГО ТРИ СУЩНОСТИ УПРАВЛЯЮТ ЭТИМ МИРОМ


                                Представьте, что Вы — это я.
                                Я, который разложил мир на три составляющие.
                                Человек, который строит бизнес и личность из: (1) концентрации, (2) энергии и (3) свободы.
                                Всего три сущности управляют нашим бизнесом и нашей личностью.
                                Постройте треугольник эффективности из этих сил, развивайте его в себе, и в вашей организации. рис. Концентрация, энергия и свобода — организуют треугольник эффективности.

                                Читать дальше →
                              • Запись и обработка акапеллы

                                  image
                                  Человеческий голос в песне наиболее критичен к восприятию на слух, а потому звучать он должен максимально естественно. Большинство звукорежиссёров сходятся во мнении, что записывать вокал нужно так, чтобы свести к минимуму его последующую обработку, и это, конечно, правильно. Вот только реализовать подобное можно лишь на профессиональной студии с хорошим (желательно ламповым) оборудованием. А можно ли обойтись без этого дорогущего оборудования, но вместе с тем максимально приблизиться к студийному качеству звучания? Можно! Этим мы сейчас и займёмся.

                                  Читать дальше →