Search
Write a publication
Pull to refresh
0
Richard_Ferlow @Richard_Ferlowread⁠-⁠only

User

Send message

Генерация CSS-спрайтов с Gulp

Reading time6 min
Views64K

Работая над одним большим проектом, мы с напарником задумались над тем, чтобы автоматизировать процесс сбора спрайтов на проекте.
До этого спрайты собирались ручками или с помощью онлайн сервисов, что отнимало достаточно времени.
Проект уже собирался Gulp'ом и было принято решение найти адаптированный под него сборщик спрайтов.
Ищем решение

Несколько интересностей и полезностей для веб-разработчика #21

Reading time3 min
Views57K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

Awesome Python


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

Chart.js



Потрясающие интерактивные графики и диаграммы на HTML5 Canvas. Chart.js не зависит от сторонник библиотек, работает во всех современных браузерах и даже в IE7/8 с полифилом, адаптивный к мобильный устройствам, очень гибкий и модульный. Выглядит все на самом деле очень красиво, но признаюсь я не настолько детально изучил проект, чтобы сказать чем он лучше DC.js из моего 19 выпуска. Дело в том, что Chart за несколько дней собрал почти 10 000 звезд на GitHub.

Ну и для того, чтобы добить тему визуализации данных, оставлю ссылку на Amcharts. Проект не open-source, но вы можете пользоваться им бесплатно, если будете размещать логотип. Хочу обратить ваше внимание на то, что с этой библиотекой работают Microsoft, Amazon, IBM, Bank of America, NASA, P&G, PayPal и многие другие мировые корпорации.
Читать дальше →

Настройка роутера Mikrotik для различных задач в SOHO

Reading time9 min
Views369K
Данная статья является калькой с написанной мной собственноручно внутренней инструкции, по которой мы настраиваем новые маршрутизаторы в фирме. Пункты будут расположены в более-менее хронологическом порядке, но каждый из них является самостоятельной мини-инструкцией к одному из используемых в нашей компании сервисов.
Читать дальше →

ReadyScript – наш взгляд на CMS для интернет-магазинов

Reading time8 min
Views32K
image
Недавно рынок e-commerce CMS пополнился новым продуктом от ReadyScript lab. Система обладает рядом уникальных особенностей, о которых мы расскажем в этом посте.
Читать дальше →

Подборка полезных CSS рецептов, или чем мы занимаемся на голых пятницах

Reading time2 min
Views93K


В нашем отделе веб-разработки есть хорошая традиция. Каждые 2 недели у нас проходят «голые пятницы» — это мини-конференции, на которых мы делимся интересными и полезными знаниями, накопенными в процессе работы. Сегодня таких знаний у нас накопилось довольно много, и мы решили начать постепенно делиться ими с общественностью в лице Хабрасообщества.

Итак, представляем вашему вниманию сборку интересных и (надеемся) малоизвестных HTML и CSS-рецептов. Будем рады, если каждый из вас узнает что-то новое!
Вперед!

Как мы написали helpdesk

Reading time6 min
Views123K
Есть продукты, которые можно взять и использовать, но с небольшой модификацией «под себя». Так вот система заявок или helpdesk как раз к таким вещам не относится. Точнее, мы для себя не нашли подходящий продукт и решили сделать сами.


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

Дауншифтинг для программиста? Камбоджа, опыт выживания и опыт жизни

Reading time7 min
Views237K
image

Привет, уважаемые читатели. Сразу скажу, что я немного странный человек и мой опыт приемлем далеко не для всех и часто сталкиваюсь с непониманием, как со стороны близких, так и со стороны абсолютно незнакомых людей. Речь пойдет о том, как я бросил всё и уехал с 300$ в кармане в новую для себя страну, казавшуюся мне чем-то диким и непознанным. В обсуждении одного из постов я вскользь упомянул о моем опыте и меня попросили написать подробнее.
Читать дальше →

Несколько интересностей и полезностей для веб-разработчика #19

Reading time4 min
Views54K
Доброго времени суток, уважаемые хабравчане. За последнее время я увидел несколько интересных и полезных инструментов/библиотек/событий, которыми хочу поделиться с Хабром.

DC.js



Библиотека позволяет создавать великолепные многоуровневые/масштабируемые кроссплатформенные графики и диаграммы с моментальным перерендерингом при пользовательском взаимодействии. За процесс визуализации отвечает знаменитая d3.js, а за анализ многомерных наборов данных crossfilter.js. Кстати кроссфильтр — проект небезызвестной компании Square.
chart.renderlet(function(chart){
    // smooth the rendering through event throttling
    dc.events.trigger(function(){
        // focus some other chart to the range selected by user on this chart
        someOtherChart.focus(chart.filter());
    });
})


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

Добавление видео из Youtube в email-рассылку

Reading time4 min
Views24K
Видео ворвалось в жизнь интернета внезапно и, не сказать, чтобы так давно. Однако, уже стало неотъемлемой частью жизни любого из нас. Видео стало инструментом бизнеса в продвижении товаров и услуг. На Youtube можно найти инструкции к товарам, промо-ролики, записи вебинаров итд. Размещение видео в email-рассылках — это очень толковый маркетинговый ход. По нашей статистике это на 17% повышает долю кликов в вашей рассылке (по сравнению с аналогичными без видео).

Но как это сделать в своем html-макете рассылки?

Вставлять видео из Youtube на веб-страницах просто — достаточно скопировать html-код с iframe и разместить его у себя. А вот с email-рассылкой такой финт не пройдет. И, хотя, email-рассылка тоже содержит html-макет вставить в него iframe нельзя по соображениям безопасности. Открываем Технические и административные требования для отправки электронных сообщений на Mail.Ru. Мы их используем, как основные на рынке рунета (в нашем трафике доля Mail составляет более 70%).

… при использовании HTML в ваших сообщениях, убедитесь что соблюдена валидная структура HTML-документа. Запрещено использовать потенциально опасные объекты, такие как ActiveX, JavaScript, VBScript, Java-апплеты, Frames и IFrames, подключаемые с внешних сайтов CSS, Meta Refresh и т.п. (использование таких элементов может привести к блокировке ваших рассылок);


К тому же, такие iframe зачастую будут просто некорректно отображаться почтовыми клиентами, программами или веб-сервисами. И, все-таки, как вставить видео в письмо? Сервис email-маркетинга Pechkin-mail.ru, как всегда, делает всю основную работу за вас.

Посмотреть как это реализовано на Печкине с примерами кода.

Индексирование Sphinx с удаленного сервера средствами PHP

Reading time6 min
Views10K
Доброго времени суток, дорогие читатели!

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

Исходные данные:
Стандартный набор LAMP (далее СС),
Yii framework (версия здесь не важна),
удаленный сервер (далее УС), на котором установлен демон Sphinx, searchd.
На УС создан пользователь с правами рута (но не сам рут).
На СС установлен модуль ssh2_mod для PHP.

Сразу оговорюсь, в этой статье я не буду расписывать особенности Sphinx, кому интересно, могут почитать официальный мануал sphinxsearch.com/docs/current.html.
Ограничусь только общей информацией.

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

Задача:
Запускать индексацию сфинкса на УС.
Причина именно удаленного запуска состоит в том, что необходимо запускать команды по крону с конкретными параметрами, определяемыми в коде. Кроны запускаются с СС.
Т.е. на сервере запускается крон, метод которого выполняет индексацию на УС.
Читать дальше →

Увеличиваем конверсию в форме оплаты с помощью визуального улучшения полей

Reading time4 min
Views14K
В этой статье пойдет речь о повышении конверсии платежных форм. Кстати, выводами, которые в ней представлены пренебрегают до 90% сайтов. Если же учесть изложенные ниже рекомендации, то можно повысить конверсию платежей на несколько десятков процентов. Исследования юзабилити платежных форм показали, что многие пользователи не задумывались о безопасности, пока им не пришлось вводить данные своей кредитной карты. Кроме того, было сделано другое интересное наблюдение: несколько участников исследования высказали свое мнение по поводу отдельных частей платёжной формы как о «надёжных» и «ненадёжных».

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

То, что вам никто не говорил о z-index в статье «То, что вам никто не говорил о z-index»

Reading time2 min
Views45K
image
Почти два года назад вышла статья «What no one told you about z-index» (и её перевод на Хабре «То, что вам никто не говорил о z-index»), авторы которой рассказывают о малоизвестной (76% проголосовавших пользователей Хабра слышат об этом впервые), но документированной возможности создания нового контекста наложения указав opacity меньше единицы.

Но несмотря на название статьи, авторы не рассказали вам ещё кое о чём.

Предполагается, что вы знакомы с понятием контекста наложения (англ. stacking context).
Элементы с общими родителями, перемещающиеся на передний или задний план вместе известны как контекст наложения. Понимание контекста наложения является ключом к пониманию z-index и порядка наложения элементов.

Каждый контекст наложения имеет свой корневой элемент в HTML структуре. В момент формирования нового контекста на элементе, все дочерние элементы так же попадают в этот контекст и занимают своё место в порядке наложения. Если элемент располагается в самом низу одного контекста наложения, то никаким мыслимым и немыслимым образом не получится отобразить его над другим элементом в соседнем контексте наложения, располагающимся выше по иерархии, даже с установленным z-index равным миллиону.
— Из статьи «То, что вам никто не говорил о z-index». Для понимания темы настоятельно рекомендую к ознакомлению либо её, либо классический труд на MDN.

Новый контекст наложения формируется в случаях:

  • Корневой элемент () всегда содержит корневой контекст наложения. Любой элемент на странице, не участвующий в локальном контексте наложения (сформированном любым из последующих вариантов), участвует в корневом контексте наложения.
    Элемент с position отличным от static и значением z-index отличным от auto. Кроме одного исключения для position: fixed, но я это вынес в отдельный пункт.
    Элемент имеет значение opacity меньше, чем 1.
Нужно больше контекстов наложения!

Установка последних RedMine + Apache + nginx

Reading time26 min
Views49K
Redmine logo

Приведу кратко основное по RedMine:
  • ведение нескольких проектов;
  • система отслеживания ошибок;
  • диаграммы Ганта;
  • настраиваемые произвольные поля для инцидентов, временных затрат, проектов и пользователей;
  • лёгкая интеграция с системами управления версиями (SVN, Git, Mercurial);


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

Разработка Iframe приложений на VK API. От первых шишек до двухмиллионной аудитории

Reading time5 min
Views71K
image
image
image Здравствуйте, в этом посте речь пойдет о том, как я создавал Iframe приложения в одной известной социальной сети. Пост будет скорее повествовательным, чем познавательным, хотя я постараюсь ответить на многие вопросы, которые поставили меня в ступор на начальном этапе.

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

Работать с javascript API Вконтакте просто до безобразия. Нужно лишь подключить файл xd_connection.js, инициализировать VK API, и делать запросы не чаще трех раз в секунду. Также стоит отметить, что и безо всяких запросов Вк передает в Iframe много необходимых параметров в виде объекта flashVars. Из него можно вытащить id пользователя, токен, упрощающий авторизацию пользователя на стороннем сервере, язык интерфейса и другие нужности.
Читать дальше →

30 полезных сервисов для веб-разработчика

Reading time2 min
Views163K
Решил собрать сервисы, которые могут быть полезны веб-разработчикам и дизайнерам. Буду рад, если кто-то найдет для себя полезный сервис. Осторожно, под катом куча картинок!
Читать дальше →

Несколько слов о движке интернет-магазинов OpenCart

Reading time4 min
Views115K

Предыстория


За всё то время, что я занимаюсь веб-разработкой, как-то не возникало необходимости написать, наверное, чуть ли не самый распространённый вариант заказов на биржах фриланса — интернет-магазин. К такой потребности пришёл только, собственно, с уходом во фриланс. Передо мной встал извечный вопрос — какой же движок выбрать. Довольно долго шерстил сеть, встречал различные комментарии, обзоры, сравнения на этот счёт, наконец плюнул и взял одно из довольно популярных, хотя часто не замечаемых в угоду более известных и навороченных конкурентов, решение — OpenCart. Взял и не пожалел. Обычно я жутко не люблю и не перевариваю различные ширпотребные CMS, но OpenCart оказался исключением. Не думаю, что моё описание будет сильно полезно профессионалам — мини-анализ рассчитан скорее на тех, кто точно так же пытается определиться, на чём писать, или кто просто ещё не пробовал.
Читать дальше →

Как приготовить сотни баз 1С и не сойти с ума

Reading time8 min
Views76K
Кнопка — не самая обычная бухгалтерская компания, но бухгалтерию мы ведём в 1С, как и большинство отечественных коллег. На текущий момент у нас на сервере проживают сотни баз, поэтому нам пришлось научиться быстро и качественно всё это богатство администрировать. Если вы — бухгалтерская компания, хостер с сервисом 1С, или у вас просто откуда-то взялась куча 1Сок, вы знаете, как это трудно. Мы любим приносить пользу, поэтому поделимся опытом, практическими советами и инсайтами, которые успели нас посетить за бессчётное количество ночей, праздничных и выходных дней, проведенных за обновлением и актуализацией всего нашего хозяйства.



Мы не продаём 1С, а потому рассказ будет без купюр, цензуры, а главное — без маркетингового булшита. Бонустреком, по ходу поста можно найти несколько полезных скриптов и советов для тех у кого действительно много баз 1С.
Читать дальше →

Отладка электронной почты при помощи MailCatcher

Reading time4 min
Views25K
imageВы используете в своем приложении электронную почту, не так ли? Это, в общем-то, риторический вопрос, конечно используете. Ей уже больше 30 лет, а это по прежнему самое популярное средство коммуникации на планете. Вот некоторые статистические данные от Pingdom:
  • 2,2 млрд. — Количество пользователей электронной почты по всему миру
  • 144 млрд.- Объем отправляемых электронных писем ежедневно во всем мире
  • 4,3 млрд.- Количество почтовых клиентов во всем мире

Потрясающе!

Зачем нужна эта статья?


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

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

Тесты проходят, вы хвалите себя и продолжаете работу. Но спустя некоторые время вы получаете звонок от своего заказчика. Он жалуется, что его клиенты получили странные. Он расстроен и хочет получит ответ.

Было такое? Не хочется, чтобы повторилось? Есть решение — MailCatcher. Если вы не слышали о нем то вкратце:
… Супер-простой SMTP-сервер, который перехватывает любое отправленное сообщение и выводит его в веб-интерфейсе. Запустите mailcatcher, в настройках вашего приложения укажите smtp://127.0.0.1:1025 вместо SMTP-сервера по умолчанию, и затем просматривайте почту, которая была отправлена по адресу 127.0.0.1:1080


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

Сейчас я хочу показать вам, как настроить, запустить и использовать MailCatcher.
Ну-ка, поглядим...

Рендеринг WEB-страницы: что об этом должен знать front-end разработчик

Reading time6 min
Views239K
Приветствую вас, уважаемые хабравчане! Сегодня я бы хотел осветить вопрос рендеринга в веб-разработке. Конечно, на эту тему уже написано много статей, но, как мне показалась, вся информация довольно разрознена и отрывочна. По крайней мере, чтобы собрать всю картину в своей голове и осмыслить её, мне пришлось проанализировать немало информации (в основном — англоязычной). Именно поэтому я решил формализовать свои знания в статью, и поделиться результатом с сообществом Хабра. Думаю, информация будет полезна как начинающим веб-разработчикам, так и более опытным, чтобы освежить и структурировать свои знания.

Данное направление можно и нужно оптимизировать на этапе вёрстки/frontend-разработки, поскольку, очевидно, что разметка, стили и скрипты принимают в рендеринге непосредственное участие. Для этого соответствующие специалисты должны знать некоторые тонкости.
Читать дальше →

Ускоряем Wordpress

Reading time4 min
Views66K
image

Wordpress в стандартной установке довольно медленный. По умолчанию движок не использует некоторые возможности современного Веба для значительного своего ускорения. Существует целая куча плагинов для оптимизации Wordpress'a. Давайте наведем в них порядок и проведем капитальную оптимизацию.
Читать дальше →

Information

Rating
Does not participate
Location
Россия
Registered
Activity