Как стать автором
Обновить
14
0

Разработка ПО

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

Золотой ключик от Google Adwords — Памятка по (за)ведению кампаний

Время на прочтение9 мин
Количество просмотров5.1K
imageAdWords, сервис контекстной рекламы от корпорации неравнозначия Google, ещё не так хорошо приживается на российском рынке. Рядового пользователя-держателя небольшого интернет-магазинчика, набитый словно бабушкин пирожок черникой на областной станции, интерфейс сразу отпугивает. Да и проблемы с русской морфологией, а также неудобство расчёта месячного бюджета рекламной кампании, для мало-мальски среднечастотных запросов обычно перерастающее в невозможность, зачастую служат разочарованием начинающего предпринимателя и основанием для окончания знакомства с сервисом на самой ранней стадии. Агентства относятся к AdWords более лояльно и даже с пониманием, но всё равно жалуют не часто. Тут против них играют неудобства при расчёте без НДС, платный API и, конечно же, отсутствие агентских комиссионных от Google. Но всё-таки, если ещё и учесть поисковых партнёров Google (тот же Mail.ru), кусок от аудитории предлагается достаточно приличный, чтобы его полностью игнорировать.

Хотя клиентов, соглашающихся вести рекламу в AdWords, раза в 3-4 меньше, чем в Яндекс.Директ, наше рекламное агентство всё равно научилось ценить эту систему контекстной рекламы и мы стараемся быть в курсе всех её нововведений. А благодаря недавнему звонку от агентского консультанта Google, по-крайней мере, я смог более структурировано определить необходимые основы для заведения новой рекламной кампании в AdWords и правки существующей, основы, которые могут существенно увеличить Ваш CTR, конверсии, а соответственно и прибыль.

Предлагаю этот полезный материал и вам...
Всего голосов 38: ↑37 и ↓1+36
Комментарии13

Спать мало, но правильно?

Время на прочтение7 мин
Количество просмотров897K
Навеяно этим постом от юзера case. Пост не новый, и на главную он не попал.
Но я вот наткнулся на него сегодня и решил написать кое-что о сне. Уверен, что это будет полезно многим хабравчанам, да и случайным читателям тоже.
Читать дальше →
Всего голосов 713: ↑670 и ↓43+627
Комментарии420

Упрощение полилинии методом Дугласа-Пекера

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

Недавно на работе задали задачу — есть клиент с GPS устройством. Ходит, он значит по городу и записывает на это устройство каждую секунду координату своего местонахождения. Потом заходит на наш сайт и отправляет файл с записями маршрута. И в ответ получает изображение карты и поверх нарисованный маршрут по которому он двигался. Все вроде бы ничего, но есть одна проблемка — клиент может записывать хоть целый день и прислать громадный файл, а отрисовка маршрута занимает очень много времени. А он ведь мог идти по прямой линии и тогда смысл отрисовывать все точки отпадает(ценных только две крайних). Тем более рисуется она на JavaScript на клиентской стороне и если клиентская сторона это мобильное устройство вполне вероятно что маршрут он не увидит((
И потому мне надо было сделать небольшую оптимизацию — оптимально упростить ломанную линию. Для этой задачи существует метод Дугласа-Пекера, но на русском описания этого метода я не нашёл, поэтому я решил заполнить этот пробел рунета.
Читать дальше →
Всего голосов 23: ↑22 и ↓1+21
Комментарии16

Height 100 % или высота на полную

Время на прочтение1 мин
Количество просмотров6.9K
height 100

Создавая тему для блога возникла проблема при маленьком объеме странице основная часть сжималась до минимума и footer прижимался к ней, что не есть хорошо и не красиво. Решил сделать основную часть с коннектом на всю высоту страницы. Есть конечно много способов как это сделать с использованием JavaScript'a и без него, а так же с помощью CSS. Я выбрал чистый CSS.

Читать дальше →
Всего голосов 21: ↑8 и ↓13-5
Комментарии19

Как разработать профессиональный логотип

Время на прочтение4 мин
Количество просмотров5.9K
Как-нарисовать-профессиональный-логотип Профессиональный логотип может возвысить компанию или продукт. С другой стороны, непрофессиональный логотип может погубить бренд и испортить портфолио хорошего дизайнера. Многие думают, что они могут создать хороший логотип, однако простого знания фотошопа здесь явно недостаточно. С помощью этих советов и вашего креативного мозга вы сможете улучшить свои навыки по созданию логотипов
Читать дальше →
Всего голосов 33: ↑19 и ↓14+5
Комментарии9

Вкусные гаджеты для Google Wave

Время на прочтение2 мин
Количество просмотров1.5K
image
Не так давно удалось раздобыть инвайт на Google Wave (еще раз спасибо gxcreator). Вещь разносторонняя и многообещающая, о чем уже неоднократно писалось/говорилось, особенно в плане коллективной работы — поддержка ботов и гаджетов. Информацией о наиболее интересных представителях последней группы я бы и хотел поделиться.
Читать дальше →
Всего голосов 104: ↑84 и ↓20+64
Комментарии121

MT Browser Switcher — для тех, кто пользуется несколькими браузерами

Время на прочтение1 мин
Количество просмотров791
Вот я использую Opera. Но есть некоторые сайты, которые предпочитаю открывать в Mozilla Firefox или Google Chrome. Вот приходит мне в почтовый клиент ссылка на событие в моём google-календаре. Если в неё тыкнуть — откроется браузер по-умолчанию, т.е. Opera. А я на гугл лажу Google Chrome'ом. Поэтому приходится копировать ссылку, запускать Google Chrome руками, вставлять её туда и открывать страницу. Неудобно.

Стал искать что-нибудь, что помогло бы решить проблему. Не нашёл.

В творческом порыве наваял MT Browser Switcher. Эта небольшая программа позволит Вам назначать разным сайтам разные браузеры по-умолчанию. MT Browser Switcher выступает для системы в качестве браузера по-умолчанию. После запроса на открытие какого-либо URL (например, после клика на ссылке в текстовом редакторе или в любимом RSS-ридере) MT Browser Switcher анализирует этот URL и выбирает нужный браузер в соответствии с заданными Вами правилами. Если ни одного правила не подошло под URL, то ссылка просто открывается в браузере по-умолчанию.

Схема работы
image

Кому интересно, подробности тут: http://mito-team.com/ru/projects/mt-browser-switcher

За отзывы, багрепорты или пожелания буду благодарен :)
Всего голосов 36: ↑33 и ↓3+30
Комментарии16

Шаблонизаторы для PHP, обзор принципов.

Время на прочтение6 мин
Количество просмотров2K
У таких статей обычно плохая судьба на Хабре.
«Шаблонизаторы», в особенности «шаблонизаторы для PHP» — встретив эти слова в заголовке темы на форуме, названии статьи или записи в блоге, можно быть уверенным — очередной холивар где-то рядом. В чем причина?
Постараюсь не скатиться до банальностей
Всего голосов 3: ↑3 и ↓0+3
Комментарии7

Стражи ночи

Время на прочтение9 мин
Количество просмотров81K
Будучи высококвалифицированным исследователем, я потратил немало времени на продвижение науки вперёд. Но я родился на Юге и искренне убеждён, что прогресс — это выдумка, и что нужно готовиться к Судному дню, к жатве того, что мы посеяли и к появлению быстрых зомби, медленных зомби, и даже вежливых зомби, которые обращаются к вам «сэр» или «мадам», но в итоге пытаются съесть ваш мозг дабы заполучить ваши навыки. Когда нагрянет революция, нужно быть готовым; поэтому в моменты тишины и покоя, когда я не произвожу очередной прорыв в науке, я размышляю над тем, что же я буду делать, когда прогноз погоды изменится на «РЕКИ КРОВИ ЦЕЛЫЙ ДЕНЬ ДО СКОНЧАНИЯ ВРЕМЁН».

В основном я думаю о тех, кто будет прикрывать мою спину, поскольку шансы на выживание в постапокалиптическом мире напрямую зависят от размера и качества того сброда, который вы будете называть своей командой. Очевидно, мне понадобятся: слесарь (чтобы двери вскрывать), эксперт‐подрывник (если уж у слесаря закончатся идеи) и конечно же тот парень, что отловит, выдрессирует и затем будет швырять змей в моих врагов (потому что в мире умершей надежды бросок змеёй — это разумный способ урегулирования разногласий). В сией антиутопии они помогут мне прослыть воинствующим философом.

Но! Но… Самым важным членом моей банды будет системный программист, ибо в гоббсовском кошмаре невероятных масштабов умеющему отладить драйвер устройства или распредёленную систему человеку можно доверять; системный программист видел ужасы Вселенной и понимает безысходность бытия. Системный программист писал драйверы для устройств, прошивку которых создавал то ли пьяный ребёнок, то ли трезвый карась. Системный программист отлавливал проблему с сетью через восемь машин, три часовых пояса и с дружеским визитом в Омск, откуда ее перенаправили в левое переднее копыто той лошади, что избавила Трою от перенаселения.1 Системный программист читал исходники ядра для лучшего понимания процессов мироздания и видел комментарий «И ЭТО РАБОТАЕТ ЛОЛ» в коде планировщика, и не смеялся он, но плакал; и отправил он патч ядра для восстановления баланса Силы и устранения инверсии приоритетов, что приводила к зависанию MySQL. Системный программист знает, что делать, когда общество падёт, потому что он уже живет в мире, где царит беззаконие.
Читать дальше →
Всего голосов 157: ↑136 и ↓21+115
Комментарии50

Оптимизация сайта для планшетов

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

Ускорение набора текста с помощью добавления спецсимволов


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

Читать дальше →
Всего голосов 105: ↑97 и ↓8+89
Комментарии24

Добавляем ссылки на страницы сайта в CKEDITOR 4

Время на прочтение5 мин
Количество просмотров8.1K
image

Доброго времени суток, %habrauser%!

Очень часто приходится писать мини CMS для разных проектов. Обосновано это, в большей степени, человеческой ленью. Поэтому в такие проекты часто добавляю очень удобный редактор CKEDITOR. И часто заказчики просят сделать удобный функционал для добавление ссылок на материалы сайта. В сети есть много описаний подобного процесса, но большинство рассчитаны на версии < 4. Недавно столкнулся с необходимостью внедрения данной функции в редактор.
Если тебе, дорогой читатель, интересно как это реализовать, милости прошу под кат.
Читать дальше →
Всего голосов 7: ↑4 и ↓3+1
Комментарии2

Поиск на Drupal 7 с помощью Apache Solr ч.1 — базовая настройка

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

Я хочу написать не просто очередной пост «как прикрутить Солр к Друпалу», а серию подробных постов начиная от базовой настройки и заканчивая фасетами.
На основе ваших комментариев и вопросов я готов включить дополнительный материал в очередной пост.
Читать дальше →
Всего голосов 21: ↑17 и ↓4+13
Комментарии14

Истинное могущество регулярных выражений

Время на прочтение16 мин
Количество просмотров93K
Как частый посетитель тэга PHP на StackOverflow, я очень часто встречаю вопросы о том, как распарсить какие-то конкретные аспекты HTML, используя регулярные выражения. Самый распространённый ответ на это:
«Ты не можешь парсить HTML с помощью регулярных выражений, потому что HTML не является регулярным. Используй XML парсер, и будет тебе счастье»

Это утверждение — в контексте вопроса — находится где-то между сильно вводящим в заблуждение и абсолютно неправильным. Что я хочу попытаться продемонстрировать в этой статье, так это то, насколько могущественны современные регулярные выражения на самом деле.
Читать дальше →
Всего голосов 182: ↑172 и ↓10+162
Комментарии39

Красивые disabled иконки «малой кровью»

Время на прочтение4 мин
Количество просмотров13K
Delphi давно славится тем, что disabled иконки по умолчанию выглядят как-то так:



А хотелось бы, чтоб они выглядели вот как-то так:



Воспользуемся тем, что Delphi позволяет заменить disabled иконки своими, указав дополнительный список изображений. Но рисовать и подключать такие иконки каждый раз занятие утомительное. Поэтому мы создадим этот список изображений динамически, во время выполнения программы.

Создавать такой список изображений мы будем в специальной функции CreateSpecialImageList(). В качестве аргумента нам понадобится список с оригинальными иконками, а в качестве возвращаемого значения уже будет нужный нам TImageList. Тогда подключить наши новые иконки мы сможем при создании формы следующей строчкой кода:

ActionManager.DisabledImages := CreateSpecialImageList(ImageList);

Но я думаю, мы должны пойти глубже...
Всего голосов 49: ↑37 и ↓12+25
Комментарии5

Приложения из Магазина Windows, которые я использую каждый день, часть 1

Время на прочтение5 мин
Количество просмотров64K
справочное руководство по лучшим приложениям

Как вы все знаете, вчера компания Microsoft выпустила Windows 8. Я пользуюсь Windows 8 с самой ранней версии и на себе ощутил развитие как операционной системы, так и магазина приложений. В этой статье я расскажу про те приложения из Магазина Windows, которыми сам пользуюсь ежедневно. Надеюсь, это руководство поможет новичкам.

У меня Windows 8 установлена на 5 разных ПК: стационарный десктоп, которому исполнилось уже 6 лет, двухлетний планшет Acer Iconia Tab W500, трехлетний ноутбук Dell, относительно новый рабочий ноут Lenovo W510 и новый MacBook Air 11'' (модель 2012 года). На каждом из этих разных по виду устройств все представленные приложения работают одинаково хорошо: на плашете я пользуюсь тачем, на ПК мышкой, на ноутах тачпадом.

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

Это первая часть руководства, в продолжении я расскажу про многочисленные приложения для популярных сервисов вроде Кинопоиск, клиенты онлайн-сервисов вроде Wikipedia и других. В заключительной третьей части будет большой рассказ про многочисленные игры для Магазина Windows.
Читать дальше →
Всего голосов 75: ↑37 и ↓38-1
Комментарии70

Несколько интересных приемов и особенностей работы с MySQL

Время на прочтение3 мин
Количество просмотров88K
Я думаю, что в процессе изучения той или иной СУБД каждый из вас не раз изобретал велосипеды для решения своих задач, не зная о существовании той или иной функции или приема, которые бы могли в разы ускорить выполнение запросов и уменьшить объем кода. В данной статье я хочу поделиться с вами своим опытом работы с очень «добрым» и «отзывчивым» MySQL, часто позволяющему программисту делать вещи, которые другие СУБД переварить бы не смогли. Материал будет полезен скорее тем, кто только решил углубиться в чудесный мир запросов, но возможно и опытные программисты найдут тут что-то интересное.
Читать дальше →
Всего голосов 132: ↑116 и ↓16+100
Комментарии83

Доступные методы борьбы с DDoS-атаками для владельцев vds/dedicated серверов с Linux

Время на прочтение12 мин
Количество просмотров38K
image

Начать свое присутствие на Хабре мы решили с материала, подготовленного для Конференции уральских веб-разработчиков, в котором описаны проверенные на собственной практике и оказавшиеся вполне успешными методы борьбы с DDoS-атаками. Целевая аудитория данной статьи — это программисты, имеющие в распоряжении vds или dedicated. Статья не претендует на полноценное руководство и многие сисадминские нюансы в ней намеренно опущены. Мы рассматриваем только DDoS типа http flood как наиболее распространенный тип DDoS и наиболее дешевый для заказчика.

Целевая аудитория данной статьи – это программисты, имеющие в распоряжении VDS или Dedicated.
Читать дальше →
Всего голосов 97: ↑80 и ↓17+63
Комментарии116

Простая настройка .htaccess для production

Время на прочтение2 мин
Количество просмотров19K
Иногда, когда сайты хостятся на shared-хостинге или работа идет только с Apache, нужно сделать максимальную оптимизацию работы сервера и сайта соответсвенно. В статье приводятся несколько настроек, которые позволят вашему сайту работать лучше.

Читать дальше →
Всего голосов 94: ↑70 и ↓24+46
Комментарии49

Демоны на PHP

Время на прочтение4 мин
Количество просмотров75K
Памятка начинающему экзорцисту.

Прежде, чем начать: я знаю, что такое phpDaemon и System_Daemon. Я читал статьи по этой тематике, и на хабре тоже.

Итак, предположим, что вы уже определились, что вам нужен именно демон. Что он должен уметь?
  • Запускаться из консоли и отвязываться от неё
  • Всю информацию писать в логи, ничего не выводить в консоль
  • Уметь плодить дочерние процессы и контролировать их
  • Выполнять поставленную задачу
  • Корректно завершать работу

Отвязываемся от консоли


// Создаем дочерний процесс
// весь код после pcntl_fork() будет выполняться двумя процессами: родительским и дочерним
$child_pid = pcntl_fork();
if ($child_pid) {
    // Выходим из родительского, привязанного к консоли, процесса
    exit();
}
// Делаем основным процессом дочерний.
posix_setsid();

// Дальнейший код выполнится только дочерним процессом, который уже отвязан от консоли

Читать дальше →
Всего голосов 188: ↑167 и ↓21+146
Комментарии125

Расширения для Google Chrome. Часть первая. Getting started

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

Я хочу написать цикл статей о создании расширений для Google Chrome. К этому меня побуждает, во-первых, практическая польза самого процесса разработки и последующего использования: вы сами определяете, какие ещё задачи хотите решить не выходя из браузера и, во-вторых, отсутствие каких-либо внятных гайдов, туториалов и справочников на русском языке, за исключением, пожалуй, этой и вот этой статей на Хабре. Основная цель цикла — систематизировать разрозненную информацию и облегчить поиск потенциальным разработчикам, благо индексируется Хабр хорошо :)

В первой (этой, то бишь) статье, на примере простейшего расширения, будут рассмотрены все основные моменты, связанные с разработкой, отладкой и использованием расширения, конфигурационный файл manifest.json и начала chrome.* API. Первая же статья, думаю, будет не очень полезна опытным разработчикам (это дисклеймер).
Читать дальше →
Всего голосов 108: ↑95 и ↓13+82
Комментарии39

Информация

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