Как стать автором
Обновить
3
Иван @ishamshurread⁠-⁠only

Пользователь

Отправить сообщение

Массовая почтовая рассылка через Exim или как не попасть в спам

Время на прочтение4 мин
Количество просмотров98K
Жизнь была прекрасна и все было в этом мире хорошо, пока почта с моего сайта не стала активно посылаться в спам практически всеми крупными почтовыми серверами. Особенно усердствовал в этом Gmail. Частенько меня принимали за спамера в Yandex, реже в mail.ru и rambler.
image
Исходя из совокупности представленных факторов стало понятно, что надо что-то делать с настройками своего почтового сервера Exim. Посмотреть, как это было сделано, приглашаю под хабракат.
Читать дальше →
Всего голосов 88: ↑80 и ↓8+72
Комментарии41

Видео-курс по JavaScript на русском языке

Время на прочтение1 мин
Количество просмотров218K
Здравствуй, Хабр!

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



Первая лекция: Введение в JavaScript, немного истории, числа (тут есть ошибка: функция toFixed округляет значения).



Остальное – под катом.
Читать дальше →
Всего голосов 135: ↑127 и ↓8+119
Комментарии23

Почему 98% текстов на ваших сайтах не работают. Вообще. И как это починить

Время на прочтение7 мин
Количество просмотров284K

Вот так люди видят вашу страницу

Привет!
Проблема вот в чём. Если зайти на практически любой сайт интернет-магазина или компании с услугами, вы встретите контент. Точнее — отвратительные тексты, которые писали, кажется, маркетологи, воспитанные сеошниками.

Разумеется, можно не делать, как они. Если работать по-умному, то вы поможете и читателям по жизни, и себе в продажах.

По моим примерным подсчётам (усреднение с ряда позиций), конверсии для нас выглядят так:
  • Только название и картинка — около 1,5%.
  • С описанием от производителя — чуть более 2%.
  • С описанием человека, который держал это в руках и знает правила — около 6%.

Ниже — рассказ про то, как мы доводили время на сайте от 3 минут сначала до 6:40, а потом до 20:48. Да-да, двадцати минут сорока восьми секунд для среднего посетителя. Честного среднего, с учётом отказов и по полной выборке.
Читать дальше →
Всего голосов 294: ↑282 и ↓12+270
Комментарии121

Верстка для самых маленьких. Верстаем страницу по БЭМу

Время на прочтение14 мин
Количество просмотров388K
Недавно хабраюзер Mirantus написал статью «Как сверстать веб-страницу», в которой рассказывал о том, как же сверстать веб-страничку. В его статье было подробно рассмотрено, как выделить отдельные элементы из заданного шаблона, подобрать шрифты и т.п. Однако его подход к написанию, собственно, веб-страницы мне показался не очень хорошим, о чем я написал в комментариях.

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

  • BEM
  • Собственно пример — как сверстать страницу

Читать дальше →
Всего голосов 154: ↑133 и ↓21+112
Комментарии172

HTML Purifier. Расширяем возможности

Время на прочтение8 мин
Количество просмотров37K

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

Если вы уже хорошо знакомы с Purifier, то можете смело начинать читать отсюда

Немного о HTML Purifier

Если вы не слышали о такой прекрасной библиотеке (а поиск на Хабре говорит о не такой уж большой популярности) как HTML Purifier, то советую обязательно к ней присмотреться, особенно если ваши пользователи генерируют контент в html формате. Это может быть рядовой пользователь, модератор или даже администратор.
Что же делает эта библиотека?
Согласно конфигурации она очищает любой html код от всех вредоносных, невалидных, запрещенных (вашей конфигурацией) частей кода, в том числе отдельные атрибуты.
Читать далее
Всего голосов 36: ↑30 и ↓6+24
Комментарии35

WPCC 3.5 — плагин для создания калькуляторов в WordPress

Время на прочтение13 мин
Количество просмотров78K
WPCC — это плагин, который позволяет администраторам сайта создавать форму калькуляторов и настраивать формулы расчетов.

В версия калькулятора «Creator Calculator 3.5» для CMS Wordpress внесены следующие изменения и возможности:
  • Изменен алгоритм расчетов
  • Изменена структуру таблицы калькулятора
  • Добавлена возможность округления результата расчетов
  • Появилась возможность применять арифметические функции: Извлечь квадратный корень, Возвести в степень
  • Поле jQurey Copy теперь работает для всех типов полей
  • Исправлен шаблон построения списков SELECT, RADIO (раньше: [100]:title; сейчас: 100:title)
  • Добавлена возможность создавать списки для Checkbox
  • Исправлены логические ошибки в функции расчета
  • Добавлено новое поле: Условия
  • Автоматический старт сессии и подключение плагина jQuery
  • Удалены лишние настройки калькулятора
  • Добавлена опция полей: Исключить из формулы
  • Добавлена опция полей: Скрыть поле визуально (для работы условий)
  • Добавлено новое поле: Слайдер (jQuery UI Slider)
  • Исправлена ошибка подключения wp-load.php к файлам плагина
  • Добавлен Импорт и Экспорт формул калькулятора
  • Добавлена возможность отправлять результаты расчетов пользователя на почту с сохранением выбранных параметров
  • Добавлены новые темы калькулятора
  • Исправлена работа сортировки полей
  • Добавлена возможность подключения скриптов, нужных для работы плагина на определенных страницах сайта

Узнать больше
Всего голосов 14: ↑11 и ↓3+8
Комментарии11

Крошечный Excel на чистом JavaScript (30 строк кода)

Время на прочтение2 мин
Количество просмотров137K
Особенности:
  • Около 30 строк обычного JavaScript
  • Использованные библиотеки: отсутствуют
  • Синтаксис как в Excel (формулы начинаются с "=")
  • Поддерживаются произвольные выражения(=A1+B2*C3)
  • Обнаруживаются циклические ссылки
  • Автоматическое сохранение в localStorage

image
Читать дальше →
Всего голосов 238: ↑232 и ↓6+226
Комментарии98

HTML в PDF

Время на прочтение2 мин
Количество просмотров120K
html to pdf

В далеком 2008 году уже была написана подобная статья и я попытался применить знания, но, к сожалению, не справился с русским языком (на denwer-е работал, на хостинге нет). Возможно сказалось отсутствие опыта. А недавно нашел хорошую библиотеку и решил поделиться. Топик, скорее всего, адресован начинающим программистом и ни на, что не претендует.
Читать дальше →
Всего голосов 144: ↑129 и ↓15+114
Комментарии81

Интеграция веб-сервисов в популярные cms

Время на прочтение10 мин
Количество просмотров22K
В этой статье мы дадим рекомендации как за короткий срок освоить cms и написать для неё расширение, модуль или плагин, а также расскажем о результатах и нашем опыте интеграции сервиса Cackle в эти системы. Cтатья может стать руководством для тех, кто собирается делать интеграции сервисов с cms системами или просто создать модуль.

Перед тем как решить с какой cms делать интеграцию стоит собрать статистику по запросам на интеграцию своих пользователей, а также посмотреть на общую статистику по cms на сайтах зоны .RU (http://statonline.ru/metrics/webapp_cms?tld=ru) из которой видно, какие cms имеют самую большую популярность.
image

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

Интеграция позволяет удобным образом встраивать сервисы в cms и максимизировать выгоду от его использования. Идеальным решением является установка плагина в несколько кликов. Приемлемым решением может быть мод — инструкция по допиливанию cms, при котором изменяются скрипты cms. Для нашего проекта любая интеграция комментариев Cackle для cms обычно включает следующие пункты:

— Cинхронизация комментариев с сервиса Cackle в локальную БД каждые 5 минут
— Отображение html для SEO
— Экспорт существующих на сайте комментариев в Cackle
— Возможность ресинхронизации(повторное копирование комментариев в локальную БД)
— SSO (авторизация своих пользователей)
— Счётчик комментариев на главной странице
— Виджет последних комментариев

Все эти требования к модулю включают реализацию таймера, получение комментариев запросом через API, сохранение в БД, отображение js виджета в шаблонах cms на определенных страницах и админку для ввода ключей API, и других настроек.

Мы сделали интеграции нашего сервиса комментариев Cackle в следующие cms системы:
Wordpress, Drupal, DLE, InstantCms, Joomla, Bitrix.

Теперь хронологическом порядке опишем наш опыт по интеграции для каждой cms.
Читать дальше →
Всего голосов 35: ↑30 и ↓5+25
Комментарии11

Верстка писем, набор сниппетов

Время на прочтение3 мин
Количество просмотров30K


Автор изображения MVBen

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

В ходе работ у меня накопилось немного готовых решений, которые я сам ныне держу у себя под рукой и крайне часто использую, чем и с вами хочу поделиться.
Читать дальше →
Всего голосов 57: ↑49 и ↓8+41
Комментарии16

Структуры данных, PHP. Часть вторая

Время на прочтение11 мин
Количество просмотров40K
Продолжаю совмещать приятное с полезным и переводить. Сегодня речь зайдет о кучах (heaps) и графах. Как обычно, материал скорее подойдет новичкам — большая часть информации, если не вся, уже где-то так или иначе освещалась.

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

UPD: Добавил сравнение производительности
Читать дальше →
Всего голосов 37: ↑29 и ↓8+21
Комментарии18

Быстрая реализация резервного копирования в Amazon S3

Время на прочтение3 мин
Количество просмотров25K
Я устал испытывать определённые опасения за сохранность данных на выделенном сервере, наблюдая за происходящим у хостеров последнее время… 3FN, Agava, Hosting.UA, МакХост — тенденция получается очень нехорошая.

В итоге, МакХост стал последней каплей, и, чтобы не оказаться в числе тех, кто «уже делает бекапы», я перевёл систему бекапов своего сервера на Amazon S3. Получилось вполне себе быстро и прозрачно.

Хочу поделиться с общественностью простейшей реализацией.
Читать дальше →
Всего голосов 170: ↑167 и ↓3+164
Комментарии62

Простое создание миниатюр и хранение их на Amazon S3

Время на прочтение3 мин
Количество просмотров16K
Ни один сайт не может обойтись без генерации миниатюр изображений. В интернете можно найти миллион статей на эту тему. Возможно, кому-то пригодится и это решение.

Требования:
  • Изображения хранятся на удаленных серверах. У нас есть только ссылки на эти изображения
  • Миниатюра должна формироваться любого заданного размера в момент непосредственного обращения к ней
  • Должна быть предусмотрена защита от вредителей
  • Миниатюра должна храниться на Amazon S3 и быть доступна по поддомену основного сайта. Количество бакетов на S3 и соответственно поддоменов неограничено

Читать дальше →
Всего голосов 29: ↑25 и ↓4+21
Комментарии16

Как узнать, что ваш PHP сайт был взломан

Время на прочтение11 мин
Количество просмотров134K
Сайт моего друга недавно был взломан, на нем была запущена старая версия IP.Board, в которой есть уязвимость локального внедрения кода (local file inclusion). Этот пост не будет посвящен IP.Board или другому php коду, он покажет, как найти потенциально вредоносный php код на ваших серверах. Наконец, покажу пример того, что злоумышленники могут загрузить на взломанный сайт.

Проверьте логи доступа


Что бы с чего-то начать, я бы хотел поделиться некоторыми записями из журнала доступа (access log) взломанного сайта моего друга.

IpreMOVED - - [01/Mar/2013:06:16:48 -0600] "POST /uploads/monthly_10_2012/view.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"
IpreMOVED - - [01/Mar/2013:06:12:58 -0600] "POST /public/style_images/master/profile/blog.php HTTP/1.1" 200 36 "-" "Mozilla/5.0"

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

Два файла выше это загруженные взломщиком скрипты, как они туда попали, большой роли не играет, так как код на любых двух серверах, вероятно, будет различным. Тем не менее, в данном конкретном примере, уязвимость в устаревшей версии IP.Board была использована, и атакующие смогли добавить свои собственные скрипты в директории доступные для записи, такие как пользовательский каталог загрузки и каталог, в котором IP.Board хранит кэшированные изображения темы оформления. Это общий вектор атаки, много людей изменяют права на эти каталоги на 777 или дают им доступ на запись, подробнее об этом чуть позже.

Рассмотрим подробнее приведенные выше строки журнала, ничего не цепляет вас?

Обратите внимание, что в журнале доступа POST запросы, а не GET запросы.
Скорее всего, злоумышленники хотели сделать журнал доступа более неприметным, так как большинство журналов не сохраняют post данные.
Читать дальше →
Всего голосов 109: ↑82 и ↓27+55
Комментарии122

Cерверы в Нидерландах Intel Quad-Core Xeon X3440 / 8GB DDR3 / 2x1TB SATA2 / 100Mbps Unmetered за $89! Осталось 50 серверов!

Время на прочтение4 мин
Количество просмотров10K
Приветствую!

Предупреждаю, РЕКЛАМА! Тем не менее это НАШ блог и я считаю уместным уведомить IT-сообщество об уникальных ценах на серверы с гарантированным каналом без ограничения трафика. Если Вам это не интересно — просто проходите мимо, это прежде всего касается неадекватов, любящих поставить «минус» за рекламу услуг компании в блоге этой же компании, тем самым не дав возможности другим ознакомиться с предложением.

Неограниченные гарантированные каналы еще никогда не стоили так дешево! Теперь Вы имеете возможность арендовать сервер с моментальной активацией в нидерландском премиум Дата Центре EvoSwitch с неограниченным гарантированным каналом 100 Мбит / с по цене от $65:

http://ua-hosting.com.ua/nl-servers.html

Мы продолжаем распродажу и осталось доступно в аренду 50 серверов с моментальной активацией Intel Quad-Core Xeon X3440 / 8GB DDR3 / 2x1TB SATA2 / 100Mbps, стоимость аренды сервера всего лишь $89! Windows 2008 Standart R2 БЕСПЛАТНО по запросу!

В чем же уникальность предложения?


— реально неограниченный трафик и гарантированный канал, а не только 10 ТБ;
— одна из лучших в мире связностей (прямые каналы на РФ и Украину);
— серверное железо;
— Дата Центр премиум-класса EvoSwitch, а не ангар для серверов;
— отсутствует плата за установку;
— моментальная активация и выдача сервера уже с базовой настройкой;
— реакция на критичесую проблему практически мгновенно (SLA Platinum) предоставляется бесплатно);
— замена сервера в течении часа;
— сопровождение на родном языке;
— базовая настройка + панель управления ISP Manager Lite в виде бонуса;
— лицензия Windows 2008 Standart R2 в виде бонуса на весь период работы;
— возможность оформления полноценного администрирования с мониторингом 24/7 по цене от $20 / месяц.

Более подробно о ЦОД Вы можете узнать тут: http://habrahabr.ru/company/ua-hosting/blog/180851/

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

Читать дальше →
Всего голосов 75: ↑40 и ↓35+5
Комментарии41

Теггирование кеша в Yii

Время на прочтение5 мин
Количество просмотров11K
В Yii для проверки актуальности кеша предусмотрены зависимости (Dependency). Они конечно позволяют многое, но, как всегда, не достаточно. Захотелось иметь возможность помечать кеш тегами так, чтобы при удалении любого тега, становился не актуальным весь кеш, помеченненый этим тегом.
Погуглив нашел пару статей по этому поводу:

В первой статье кешируют с зависимостью от одного тега.
Во второй статье уже зависимость от нескольких тегов, но использование описанной конструкции вносит некоторый эффект неожиданности в проект. Надеяться что любой тег проживет дольше записи помеченной этим тегом мне кажется слегка легкомысленным.
Не найдя подходящего решения написал своё по мотивам Dklab_Cache_Backend_TagEmuWrapper но в стиле Yii.
Читать дальше →
Всего голосов 13: ↑9 и ↓4+5
Комментарии7

12 крутых обучающих видео по Веб-аналитике

Время на прочтение1 мин
Количество просмотров31K
В нашем интернет-агентстве множество роликов по обучению специально для «своих». Вашему вниманию список видеороликов, где мы показываем архиважные моменты веб-аналитической работы.

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

Карта видеороликов


По ссылке карта видеороликов.
Наведите курсор на карту, оформятся кнопки — нажимайте и смотрите видео на Youtube:

www.thinglink.com/scene/408866971061321728

Нажимайте и узнайте больше о видероликах
Всего голосов 19: ↑10 и ↓9+1
Комментарии5

Организуем выделение текста в textarea

Время на прочтение4 мин
Количество просмотров24K
Добрый день.

В разработке интерфейсов иногда можно встретиться с задачей выделения вводимого пользователем текста в зависимости от определенных условий. (Например, была реализована серверная проверка грамматики, либо необходимо выделять определенным цветом те или иные слова\участки и т.д.)
Однако, элемент textarea не поддерживает html\bb теги. Как один из способов решения — использование contenteditable в элементах div.
В данной небольшой статье я предлагаю более-менее подробно рассмотреть способ выделения текста, используя textarea.
Читать дальше →
Всего голосов 37: ↑35 и ↓2+33
Комментарии14

Многопроцессовые демоны на PHP

Время на прочтение3 мин
Количество просмотров43K
Зачем может понадобиться писать демоны на PHP?
  • Выполнение трудоемких фоновых задач;
  • выполнение задач, которые длятся больше, чем время ожидания при HTTP-запросе (30 секунд);
  • выполнение задач на более высоком уровне доступа, чем серверный процесс (читай — под рутом).

Читать дальше →
Всего голосов 111: ↑97 и ↓14+83
Комментарии117

Отказоустойчивая система на базе репликации mySQL и сетевого протокола CARP

Время на прочтение4 мин
Количество просмотров17K
И так задача.
Есть 2 сервера: 1 — Master, 2 — Slave. Нужно сконфигурировать отказоустойчивую систему, которая позволит в случае падения 1го сервера и/или базы данных, автоматически переключиться на 2й при минимальном downtime. После восстановлении Мастера, он должен стать слейвом, а Слейв — Мастером. ОС FreeBSD.
Читать дальше →
Всего голосов 9: ↑6 и ↓3+3
Комментарии7

Информация

В рейтинге
Не участвует
Откуда
Донецк, Донецкая обл., Украина
Дата рождения
Зарегистрирован
Активность