• Настоящее семантической паутины

      Насколько все быстро растет


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

      Далее я расскажу о реальном использовании.
      Читать дальше →
    • Грабли при верстке HTML писем

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

        Ниже список встретившихся нам особенностей и способы их разрешения (как то упорядочить их мне не удалось, поэтому всё идет единым списком)
        Читать дальше →
      • Преобразование даты в международный формат(UTC). Шаблон для версий XSLT от 1.0

          Потребовалось переводить дату в xml файлах из московского времени в международное. Изначально проблема решалась вставкой Java скрипа, но потребовалось сделать используя только встроенные возможности XSLT 1.0.
          Сразу предупреждаю комментирующих, версия XSLT 2.0, где есть тип данных Дата, не годится, требуется реализация именно в 1.0.

          Скачать пример, шаблон, результат и парсер можно здесь.

          Итак, шаги решения задачи:
          • Разбиение исходной даты в нашем формате на составляющие.
          • Определение смещения часового пояса относительно UTC учитывая переход на зимнее/летнее время, для москва летом смещение -4, зимой -3. Переход на летнее время происходит в два часа ночи последнего воскресенья марта, переход на зимнее время в три часа ночи последнего воскресенья октября.
          • Перевод всех частей даты в UTC время
          • Сбор даты в UTC формате.


          Подзадачи:
          • Поиск дня недели, используется формула Зеллера
          • Поиск количества дней в месяце
          • Проверка года на високосность


          Исходный шаблон даты:
          DD.MM.YYYY hh:mm:ss
          Подправить XSL под ваш формат можно без проблем, достаточно изменить последовательность разрезания и указать разделители.

          Формат UTC даты:
          YYYY-MM-DD hh:mm:ss
          Подправляется еще проще, при сборе конечной строки.

          Если требуется другие значения смещения часового пояса, достаточно исправить их в функции MoscowOffsetTime.

          Использование шаблона:
          <xsl:call-template name="GetTime">
            <xsl:with-param name="time" select="10.15.2010 14:10:17"></xsl:with-param>
          </xsl:call-template>


          * This source code was highlighted with Source Code Highlighter.


          Посмотреть шаблон
        • Развитие валидации форм

          • Translation

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

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

          • Translation
          Недавно столкнулся с задачей прикручивания достаточно необычного шрифта для мобильного веб клиента. Так как работа была под айфон, то я решил, что в этой задаче мне поможет css 3 и такая штука как @font-face. Пользу от такого способа решения задачи, я думаю, видят все, потому что:
          • сохраняется поиск по тексту, потому что это текст, а не картинка;
          • появляется возможность использовать онлайн-переводчики и разные фишки связанные с текстом;
          • никто не отменяет для нас использование line-height, letter-spacing, text-shadow,text-align, и селекторов вида ::first-letter и ::first-line

          Читать дальше →
        • Регулярное использование статического анализа кода в командной разработке


            В преддверии выхода примерно в сентябре статического анализатора от Intel под названием Advisor, который войдет в Intel Parallel Studio 2011, нелишне будет в целом рассказать о технологии статического анализа кода и об ее применении. Дело в том, что по опыту в России статический анализ применяется не часто, видимо из-за того, что у нас не так много сложных программных проектов. Поэтому краткий текст на тему что это и кому может быть полезно, надеюсь, окажется кстати. Ну и кому же как не авторам анализатора PVS-Studio этот текст делать? :-)
            Читать дальше →
          • Календарный период — улучшаем интерфейс

              Работая над интерфейсом очередного крупного проекта я старался дотошно проработать каждый его элемент. Конечно нет предела совершенству и, как это обычно бывает, заканчивая один проект ты уже видишь кучу его недостатков, делаешь анализ и выводы на будущее.

              Тем не менее, в результате, работая над drop-down выбором календарного периода, в голову пришла интересная мысль не разбивать дату на две отдельные формы «С» и «По», как это всегда делают, а объединить их в одну форму и выпадающий блок.

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

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

              image
              Пример обычной формы на Booking.com. Календари «С» и «По» разнесены в разные блоки

              Как же улучшить этот интерфейс?
            • Улучшаем border-radius.htc

                Думаю многим верстальщикам известно решение, которое заставляет IE рисовать скругленные уголки: «curved-corner» (или border-radius.htc).

                В этой статье я расскажу, как избавиться от ошибок «Invalid argument» при его использовании, а также как в разы ускорить его работу.
                Читать дальше →
              • Пирамида стратегии в Сети, или Хорошо сбалансированная стратегия

                • Translation
                image

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

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

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

                С этим всем пониманием давайте взглянем на то, что я называю «пирамида стратегии в Сети».
                Читать дальше →
              • Новое в Payoneer (бизнес счет) или сам себе режиссер

                  imageДа, это свершилось! О чем собственно речь: в системе Payoneer появилась возможность получить бизнес-счет. Пока эта фича в закрытом бета-тестировании, но если Вы уже являетесь обладателем карты Payoneer, и на нее более менее регулярно приходят платежи от партнеров, то никакой проблемы с получением расширенного функционала для Вашего счета не возникнет.
                  Ниже я подробно со скриншотами покажу и объясню, как это работает и опишу, зачем мне это надо. Поехали.
                  Читать дальше →
                • Хэндгам своими руками

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

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

                    Читать дальше →
                  • Zend Framework: подключаем OpenID

                      В своем проекте (Вопросы и ответы для программистов) на Zend Framework мне стало необходимо подключить OpenID и после часа работы я успешно подключил стандартный зендовский сервис. Думаю класс, как легко и удобно(как и все в зенде), но как оказалось этот сервис не работает с OpenId 2.0, да — он просто не дописан.

                      Немного порывшись в исходниках я это подтвердил — Consumer.php * todo OpenID 2.0 (7.3) XRI and Yadis discovery
                      Потом посмотрел по багтрекеру и оказалось что это весит уже давно(очень) и никто не спешит доделывать. Тогда я и начал искать альтернативу. Выбор попал на openidenabled.com/php-openid.

                      Далее приведу пример, который позволит тем кто еще только собирается подключать сделать это минут за 15.
                      Читать дальше →
                    • eCSStender: модульное средство реализации свойств CSS3 в прежних браузерах

                        Помните ли, как (много лет подряд) был известен проект IE7-JS (автор — Dean Edwards), нацеленный на подтягивание Internet Explorer 6 (а затем и Internet Explorer 7) до уровня современных браузеров?

                        Теперь другой разработчик развил эту идею. В последнее время появляются ведь и такие свойства CSS3, которые поддерживает только один современный движок (например, WebKit), или даже не поддерживает ни один (потому что все движки требуют к этому свойству своих префиксов: «-moz-», «-ms-», «-o-», «-webkit-» — а иначе не работают). Все браузеры нуждаются в костылях (более или менее основательных) для поддержки CSS3.

                        Библиотека eCSStender (автор — Aaron Gustafson) претендует на роль основы именно такого костыля. Я говорю «основы», так как сама по себе она предоставляет лишь небольшую (≈20 Kb JS) платформу, занимающуюся анализом CSS-стилей — а поддержкою конкретных CSS-свойств должны заниматься (работая поверх неё) отдельные расширения, написанные в соответствии с документацией. Сейчас есть ужé с полдюжины расширений, из которых половина — костыли для IE.

                        Читать дальше →
                      • 30 комплектов иконок в стиле минимализм

                        • Translation
                        image

                        Минимализм — стиль в дизайне, характеризующийся лаконичностью выразительных средств, простотой, точностью и ясностью композиции. Отвергая классические приемы творчества и традиционные художественные материалы, минималисты используют промышленные и природные материалы простых геометрических форм, нейтральных цветов (черный, серый) и малых объемов.
                        Эти значки идеально подходят для проектов, которые направлены на контент и типографику.
                        Читать дальше →
                      • Cloud Zoom: интересный плагин для увеличения изображений

                          Cloud Zoom – это облегченный, быстро настраиваемый jQuery плагин, который позволяет увеличивать изображения на ваших веб-страницах. Можно использовать этот плагин для создания увеличенных изображений с различными характеристиками, такими как теневой эффект, внутреннее увеличение и размытое изображение. Этот плагин работает во всех браузерах, включая IE6.

                          image

                          Cloud Zoom очень прост в обращении и хорошо документирован. Можно легко изменить вид эскиза изображения, линзу и увеличительное окошко, используя CSS. Он предлагает несколько встроенных опций, позволяя изменять его поведение, включая: высоту, ширину и позицию увеличительного окошка; тень; прозрачность; степень сглаживания/искаженности увеличенного изображения при его движении; добавления заголовков.
                          Читать дальше →
                        • Колибри: Обзор вашего интернет-трафика в реальном времени

                          • Translation
                          logo
                          Михаил Натт и Бенни Вонг создали интересный продукт для интернет-аналитики в реальном времени, названный «Колибри» (Hummingbird). Он создан с использованием таких горячих технологий, как Node, Canvas, Web Sockets, MongoDB.
                          Читать дальше →
                        • Генерируем QR-код на PHP


                            QR-code, уже давно распространен повсеместно, во всех сферах человеческой жизни. Вроде такая популярная вещь, а нормальной библиотеки (Open Source) на PHP — нет. Товарища deltalab, очень напрягла эта проблема и он решил переписать имеющиеся в наличии С библиотеки ibqrencode от Kentaro Fukuchi, на более привычный ему язык PHP.
                            Читать дальше →
                          • Внутренние технологии Яндекс.Карт стали доступны всем веб-разработчикам

                            • Из RSS

                            Яндекс открывает в API технологию, которая раньше использовалась только на собственных проектах.

                            Называется технология «активные области». Её задача очень простая — дать возможность показать на карте столько активных меток, сколько это нужно проекту. Если 10000, значит десять тысяч. Если сто тысяч, то сто! И никаких компромиссов.

                            API Яндекс.Карт позволяет показывать стандартным способом не более тысячи меток, при добавлении большего числа меток, браузер пользователя начинает работать заметно медленее. Теоретический предел новой технологии измеряется сотнями тысяч активных меток на карте.

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

                            "Банкоматор" — карта банкоматов и терминалов самых популярных сетей.
                            Вот так выглядит карта банкоматов Сбербанка на территории Москвы, на ней сейчас 1274 метки. Карта терминалов Qiwi выглядит ещё внушительнее. Здесь одновременно отображено 11 309 терминалов.

                            Проект "4rent.ru" использует активные области для того чтобы показывать объявления о недвижимости. Большое количество объявлений требует использования специальной технологии.

                            Так же активные области использует портал "Тили-Тесто" с обширным свадебным каталогом на карте.

                            Подробнее об активных областях читайте в документации.

                            Кроме активных областей в новой версии API, стали доступны и другие функции:

                            • Модуль «Метро» — поиск ближайших станций метро для 11 городов (а это 401 станция метро);
                            • Модуль «Регионы» — позволяет организовать выбор региона на карте России, Украины,  Белоруссии и Казахстана;
                            • Геотаргетинг — определение координат региона пользователя по его IP адресу;
                            • Новый дизайн меток и балунов.

                            Будем рады вашим отзывам и предложениям!

                            Команда API Яндекс.Карт

                            .
                          • Практический опыт разработки интернет-магазина на OpenCart

                              В ноябре 2009 года я познакомился с www.opencart.com и остался очень доволен этой CMS построенной с соблюдением основных принципов MVC. Это просто замечательная система код которой можно легко адаптировать под собственные нужды. Файлы системы разделены по папкам controller, model, view, language.
                              image
                              Гениально и просто. Настолько просто, что я за считанные часы понял как работает система и уже смог адаптировать несколько файлов контроллеров под свои нужды. Как CMS эту систему лучше не рассматривать в принципе! Все очень скудно и печально. Но площадка для коммерческой деятельности очень приличная. Главный лозунг сайта интернет-магазин с минимальными усилиями при разработке.

                              Важным для меня преимуществом является высокая скорость генерации страницы. Простой код с разделением на модель, вью, контроллер. Шаблоны дизайна лежат в папках с понятной структурой. Простая система по сравнению с magento commerce в которой что-то поменять ну очень не просто.

                              А теперь немного подробностей, которые могут быть интересны тем, кто интересуется Опенкартом. Публикую инфу, которая на мой взгляд может оказаться полезной и что самое важное основанную не на теоретическом опыте, а на примере использования в конкретном проекте.
                              Читать дальше →
                            • Google выпускает skipfish — сканер безопасности сетевых приложений

                                imageПолностью автоматизированный инструмент проверки безопасности ваших веб приложений от Google. Основные возможности:

                                высочайшая скорость: написан на C, оптимизированные HTTP запросы, минимальные требования к CPU — скорость запросов легко достигает 2000 в секунду.

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

                                отличная логика безопасности: высокое качество работы, различные способы проверки безопасности.

                                Поддерживаются операционные системы — Linux, FreeBSD, MacOS X и Windows (требуется Cygwin).

                                Google skipfish