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

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

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

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

      Читать дальше →
    • Google Fusion Tables API

        Google как всегда показал, что у него ещё много удивительных инструментов и сервисов. И самое главное — он постоянно делятся ими с людьми. На этот раз, для нас, он сделал API для такого сервиса, как Google Fusion Tables. Теперь вы можете выгружать данные из своих БД и визуализировать их в этом замечательном инструменте.

        Вот небольшой ролик, про возможности данного сервиса:



        Официальный пост в блоге Google
        Google Fusion Tables API
        Google Fusion Tables
      • Как покупать электронику на Amazon

          Amazon logo
          Наверняка многие из вас попадали в ситуацию, когда в американском интернет-магазине есть интересующая вас вещичка по заманчивой цене, но доставку магазин осуществляет только в пределах США. Например, в крупнейшем интернет-магазине Amazon жители из стран СНГ могут заказывать лишь книги и фильмы, и то не все. Конечно же, можно компенсировать данный недостаток с помощью ebay, но где еще у вас может быть шанс купить iPod Touch 32 GB 3rd Gen за $269.99, а Nokia N900 за $559.99? А может, грешным делом заказать Nexus One? Падение доллара и ценовая политика производителей сделала покупки в США достаточно заманчивым делом.
          Все самое интересное под катом
        • Побеждаем delaycompress в logrotate

            Notice: этот пост — скорее для начинающих сисадминов, опытные смогут дойти до этого сами.
            Статья описывает настройку logrotate в Debian 5

            Опция «delaycompress» в logrotate используется для отложенной архивации логов (во время следующей ротации).
            Опция создана для программ, которые не могут закрыть логи сразу, что делает невозможной архивацию во время работы logrotate. Info: «copytruncate» не помогает. Проверено.
            В общем-то борьбу с этим ограничением меня заставил вести тот факт, что на некоторых серверах (а точнее — на VPS) доступно ограниченное количество дискового пространства, а логи, тем не менее, занимают много места.
            При использовании «delaycompress» к концу каждого дня у нас хранится уже 2 лога большого объема, вместо одного. В моем случае — это лишние ~200-300MB, что для сервера с ограниченными ресурсами ощутимо.
            Итак, как же заставить logrotate архивировать логи сразу?

            Читать дальше →
          • Системы резервного копирования

              Несколько месяцев назад начал заниматься/разбираться в системах резервного копирования. Все полезные доки/ссылки я сохраняю у себя в заметках.
              Много чего накопилось, решил поделиться записями, полезными ссылками и личным опытом.
              Читать дальше →
            • Цифровые SSL сертификаты. Разновидности, как выбрать?

                Существует достаточно много цифровых сертификатов, каждый из которых служит для своих целей. Самые распространенный тип сертификатов это естественно SSL сертификаты, которые также имеют несколько подвидов. Также существуют Code Signing сертификаты, Website Anti Malware Scanner сертификаты и Unified Communications сертификаты.

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

                Так что если у вас стоит задача поднять защищенное https соединение для вашего сайта, то в этом посте я постараюсь раскрыть все тонкости и особенности SSL сертификатов, чтобы сделать правильный выбор было проще.
                Как выбрать SSL сертификат
              • Dater — определяет часовой пояс, локализует и форматирует время в PHP



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

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

                  И так, встречайте — Dater, и его основные возможности:

                  • Биндинг форматов
                  • Локализация текстов и форматов
                  • Расширение списка опций форматирования
                  • Автоопределение часового пояса
                  • Конвертация времени с учётом часового пояса
                  • Автоматическая конвертация времени в $_GET, $_POST, $_REQUEST с учётом часового пояса
                  • Автоматическая конвертация часового пояса в шаблоне отправляемых данных
                  Читать дальше →
                • Drupal + Git submodules: рецепты

                  • Tutorial
                  В этой статье будут рассмотрены основные приемы работы с подмодулями гита, если использовать их вместе с друпалом.

                  Наиболее полезным этот пост будет для тех кто, имея скромный опыт работы с гитом, попал на Drupal-проект где используются подмодули. (Именно так я познакомился с подмодулями и именно такой статьи мне в то время очень не хватало.)
                  Читать дальше →
                  • +19
                  • 12.8k
                  • 6
                • Создание телеканала в интернете при помощи домашнего компьютера

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

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

                  Итак если вы хотите организовать собственный тв канал в интернете нам понадобится список необходимых для этого программ:

                  1 вариант (бюджетный и с самой низкой нагрузкой на машину) — VLC media player, acestream (torrentstream). Все будет работать и под Windows и под Linux.

                  2 вариант (только под Windows) — VLC media player, acestream (torrentstream), XSplit Broadcaster и/или VH Screen Capture driver, а также по желанию Virtual Audio Cable.
                  Читать дальше →
                • Мой первый скрипт по разгадыванию капчи

                  Предисловие:

                  Есть у меня один знакомый который держит интернет магазин. Балует меня иногда довольно-таки нестандартными задачами в программировании. Всё началось с того что, подумав, он решил что для его пользователей — будет очень удобно получать информацию о том где сейчас его посылка (товары с магазина он отправляет почтой России). Благо на сайте почты есть функция слежения за отправлением.

                  image

                  На странице достаточно ввести номер трекера и информация о посылке появляется на экране в виде аккуратной таблички. Не долго думая, я вооружился функцией curl и за пару минут приготовил легкий скрипт — который парсил эту информацию и выводил последнее местоположение посылки (статус: «Прибыло в место вручения» или «Вручение адресату» — давал команду скрипту отправить покупателю смс о том что он может забирать свою посылку).
                  Читать дальше →
                • AWS: Хороший, плохой, злой

                  • Translation
                  Здесь, в awe.sm, мы с самого начала использовали Amazon AWS для хостинга. За последние три года мы изучили, что хорошо, а что не очень и сформулировали для себя свой собственный набор правил для запуска высоко доступной, высоко производительной системы, которые в некоторых случаях отличаются от того, что советует Amazon.

                  Мы собираемся поговорить о следующих родственных понятиях:
                  1. Для людей, которые слышали об Amazon, но еще не имели возможности его использовать, мы покажем все преимущества и недостатки этого сервиса, с которыми мы столкнулись в своей работе.
                  2. Для тех, кто уже использует AWS, мы проясним некоторые детали и расскажем о лучшей практике использования Amazon для таких высокопроизводительных сервисов, как наш, где непрерывная работа системы является самым высоким критерием.

                  Читать дальше →
                • Coroutines в PHP и работа с неблокирующими функциями

                  • Translation
                  • Tutorial
                  Одним из самых больших нововведений в PHP 5.5 будет поддержка генераторов и корутин (сопрограмм). Генераторы уже достаточно были освещены в документации и в нескольких других постах (например в этом или в этом). Сопрограммы же получили очень мало внимания. Это гораздо более мощный, но и более сложный для понимания и объяснения, инструмент.

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

                  Генераторы


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

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

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

                  Задача банальная — заменить переводы строк на <br/>, за исключением случая, если перед этим шел html-тэг (для простоты только символ >). Отходя от темы — такой алгоритм замены нужен чтобы иметь и автоматическое добавление переводов строки внутри блоков текста в стиле хабра, и при этом не ломать обычную HTML верстку.
                  Читать дальше →
                • Ошибки PHP: классификация, примеры, обработка

                  В статье представлена очередная попытка разобраться с ошибками, которые могут встретиться на вашем пути php-разработчика, их возможная классификация, примеры их возникновения, влияние ошибок на ответ клиенту, а также инструкции по написанию своего обработчика ошибок.
                  Читать дальше →
                • Сервис push-уведомлений Pushover для Android и iOS в связке с PHP


                    Вкратце, push-уведомления — это небольшие по объему важные сообщения от программы или сервиса, отображаемые операционной системой тогда, когда вы непосредственно не работаете с указанным приложением или сервисом. Преимущество таких уведомлений в отсутствии необходимости держать программу вечно в памяти, тратя на нее процессорные мощности и память.
                    Не буду здесь расписывать всю технологию доставки удаленного уведомления, ибо это уже сделано до меня. Выглядит примерно так: периодически демон опрашивает сервер и в случае появления сообщения, показывает его нам.
                    Для iOS придумали APNS, для Android-а — C2DM-GCM, я же хочу рассказать про кроссплатформенный (громко) сервис Pushover и связке его с php-сайтом.
                    Читать дальше →
                  • Понимание ООП в JavaScript [Часть 1]

                    • Translation
                    • Tutorial
                    — Прототипное наследование — это прекрасно
                    JavaScript — это объектно-ориентированный (ОО) язык, уходящий корнями в язык Self, несмотря на то, что внешне он выглядит как Java. Это обстоятельство делает язык действительно мощным благодаря некоторым приятным особенностям.

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

                    К счастью, в ECMAScript 5 появилось множество вещей, которые позволили поставить язык на правильный путь (некоторые из них раскрыты в этой статье). Также будет рассказано о недостатках дизайна JavaScript и будет произведено небольшое сравнение с классической моделью прототипного ОО (включая его достоинства и недостатки).
                    Читать дальше →
                  • Еще раз о модальных окнах и немного плюшек

                    О модальных окнах написано уже, наверное, тонны литературы, но на написание этого топика меня сподвигла вот эта статья на хабре. В ней осталось много недосказанного, в том числе горизонтальные скачки как страницы, так и модального окна.
                    Конечно, можно было бы просто отписаться в комментарих, мол, сделайте так-то и так-то, и все будет тип-топ. Но мой комментарий разросся до размеров новой статьи, с наглядными примерами и комментариями.
                    Кому стало интересно — добро пожаловать под хабракат!
                    Читать дальше →
                  • iOS Human Interface Guidelines на русском языке



                      Мои коллеги делают правку перевода iOS HIG с английского на русский языки. Когда они все закончат, выложат в интернет целиком, это будет самый полный перевод, самый качественный и самый свежий из ныне существующих.
                      Он не будет идеальным, но с вашей помощью мы можем сделать его лучше. Перевод имеет единую терминологию, что облегчает понимание Гайда целиком.

                      Пока идет правка перевода — главы Гайдлайна, по готовности, распространяются в форме рассылки. Когда закончим, то перевод руководства будет выложен целиком.

                      Подписаться на рассылку можно тут: http://guide.ramotion.com

                      После подписки первое письмо придет не сразу, скорей всего на следующий день.