• Яндекс.Директ. Популярные ошибки рекламодателей Директа

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

      Читать дальше →
    • Форд. Горький запах поражения. Опыт контекстной рекламы

        Запуск контекстной рекламной компании дело муторное. Сначала потребности клиента, термины, объявления, ключевые слова, минус слова, коррекция объявлений, коррекция ключевых слов, коррекция минус слов. Коррекция — написание — коррекция. Некоторые кампании в моей практике состоят из 80 000 слов, фраз и минус слов. Работа занимает по году. Некоторые кампании состоят из 10 слов и занимают 1 час.
        Самыми большими и сложными являются кампании для автобизнеса. Одних ключевых слов до 6 000. А отрасль очень конкурентная, стоимость запроса достигает 15 долларов за клик. Даже в Бегуне по некоторым запросам до 700 конкурентов.
        Однако не об этом.
        Читать дальше →
      • Облегчение жизни пользователю Safari на iPhone

          Облегчение жизни пользователю Safari на iPhone.

          В моей прошлой статье, мы разбирали, как за короткий промежуток времени возможно изготовить версию сайта, адаптированную для Apple iPhone.Сегодня я продолжаю свою статью. Сейчас мы рассмотрим некоторые мета теги (и не только), которые облегчат жизнь не только посетителю сайта, но и разработчику веб-проекта.



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

          Читать дальше →
        • 50 цитат о программировании всех времён

          • Перевод
          Перевёл после прочтения комментариев к статье «О ненависти к C++». В цитатах можно найти ответы на большинство возникших там вопросов.

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

          49. Lisp — это не язык, а строительный материал.
          — Alan Kay

          48. Ходить по воде и разрабатывать программы, следуя спецификации, очень просто… если они заморожены.
          — Edward V Berard
          Читать дальше →
        • Какой Java поток нагружает мой процессор

          Что Вы делаете, когда Ваше Java приложение потребляет 100% ЦП? Оказывается Вы легко можете найти проблемные потоки, используя встроенные Unix и JDK утилиты. Никакие инструменты профилирования не потребуются.
          С целью тестирования мы будем использовать простую программу:
          Читать дальше →
        • Debian Lenny 5 «закончился». Переходим на Debian Squeeze 6!

            Как известно, полтора месяца назад (в феврале) закончилась поддержка 5-го Дебиана и он официально канул в лету, т.е. в архив archive.debian.org.
            Что делать дальше? — Задумались многие хостеры. Ведь перейти на 6-ой Дебиан не так уж и просто в связи с несколькими факторами:

            1) Его не поддерживают некоторые панели управления (как минимум, ISP Manager имеет свои странности, хотя разработчики и локализовали почти все проблемы)

            2) Из коробки доступен PHP 5.3 вместо уже привычного нам 5.2, а это чревато тем, что перестанет работать много сайтов. Одним из самых неприятных моментов является отсутствие функции ereg, которая используется огромным количеством народа в скриптах, в неофициальных модулях к популярным CMS (свежие версии самих CMS уже совместимы с ним).
            Но никто не стоит на месте, а тем более не смотрит назад, и в любом случае переходить на 6-ой нужно, поэтому приступим.
            Читать дальше →
          • Flyway: управление миграциями баз данных

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

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

                Здравствуй, хабрачитатель.

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

                Читать дальше →
              • Правила эффективного использования jQuery

                  Здесь приведен ряд очень простых правил, следуя которым, ваше сотрудничество с jQuery не будет омрачено скрежетом напрягшегося браузера. Конечно, не так часто случается, что скорость работы javascript’а оказывается критичной, однако такое все же может произойти, и произойти в самый неподходящий момент. Поэтому, лучше держать эти правила в голове и не пренебрегать ими.
                  Читать дальше →
                • Требования к html-верстке

                    1. Верстка, аутсорсинг и технические задания


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

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

                      Написал небольшой мануал по настройке и масштабированию PostgreSQL. Сподвигло меня на это то, что материала по этой теме мало, он устарел или его просто нет.

                      Скачать можно здесь:
                      http://github.com/le0pard/postgresql_book/raw/master/postgresql.pdf
                      Исходники:
                      http://github.com/le0pard/postgresql_book/

                      Страница:
                      http://postgresql.leopard.in.ua/
                    • 5 галочек: чеклист юзабилити

                        Мы выделили 5 основных пунктов, по которым можно определить юзабилити сайта. Список спорный и в основном касается продающих сайтов. И да, эти пять пунктов — среднее арифметическое опыта, полученного при обработке заявок на конкурс «Юзабельный вебпроект». Думаете, мы раздали слонов и забыли?


                        оригинал картинки

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

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

                        Сразу оговоримся, что мы не оцениваем юзабилити в вакууме, нам важно, чтобы сайт работал, т.е. «продавал». Товары, услуги, идеи — не важно. Речь может идти о бесплатном веб-сервисе, для которого транзакцией станет регистрация посетителя.
                        Читать дальше →
                      • Шортлист дьявольского конкурса по юзабилити

                          Здравствуй, хабрачеловек!

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

                          Всего пришло 166 заявок: с нашего блога, с Хабра, с ЖЖ и по почте.

                          Картинка для привлечения внимания

                          Каждому, кто к нам обратился, мы выдали рекомендации по улучшению юзабилити.

                          C трудом мы смогли отобрать 15 сайтов.

                          Вот эти сайты:
                          Читать дальше →
                        • По ту сторону браузера: Как подключить прием платежей

                            Привет!

                            Лето — жарко и писать про бухгалтерию совсем не хочется. Поэтому мы решили начать серию статьей, описывающих работу нашего SAAS сервиса изнутри. Напишем как о чисто технических вещах (процессинг платежей, безопасность, техподдержа), так и о том как мы выросли от перспективного стартапа к самоокупающемуся бизнесу — о деньгах, о людях, о проблемах любого молодого бизнеса и путях их преодоления. Если интересно что-то еще — пишите в комментариях или в личку.

                            Процессинг платежей


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

                              imageНе знаю, на сколько эти мысли полезные и/или капитанские, если что — скажете :) Но такое я нигде не встречал, к сожалению.

                              Засыпая и размышляя над очередной идеей, которой потребовался бы хелпдеск/багтрекер подумал: ведь заставлять пользователей пройти через регистрацию, чтобы запостить баг/фичреквест — бесчеловечно. С дрйгой стороны, Анонимусы — тоже не всегда хорошо. И что делать?

                              Суть вкратце: идеальная форма регистрации — форма логина.
                              Подробнее и с картинками под катом.
                              Читать дальше →
                            • Настройка nginx для работы с apache и tomcat серверами на примере Ubuntu 10.04 Server

                                Возникло желание поставить на свой сервер nginx. И тут же возникла потребность оставить Apache (nginx может его полностью заменить). Так же на сервере работает Apache Tomcat, пока пустой, но все же есть. Я опишу простой пример как заставить nginx работать в роли фронт-энд прокси, слушая порт 80 и перенаправляя запросы другим серверам, в зависимости от контекста. Поехали…

                                Для начала определимся с версиями. apache2 достаточно свеж в репозиториях Ubuntu 10.04. С недавних пор там появилась последняя версия сервера tomcat. А вот nginx стар, очень стар, просто супер-стар. Собирать из исходников последнюю версию? Если хотим пересобрать велосипед — пожалуйста. Дело в том, что многоуважаемый Никита Кардашин с форума nginx собирает последние версии nginx в deb-пакеты и любезно предоставляет их в своем репозитории. Там имеются пакеты даже для lucid. Давайте же добавим его репозитории в sources.list. Делаем себя рутом и далее все выполняем от него:
                                Читать дальше →
                              • MakeMap — покажи себя на карте

                                  imageЗдравствуй %username%
                                  Хочу представить твоему вниманию новый проект посвященный картам проезда и визуальному созданию кода для карт Google.

                                  Некоторое время назад мой друг поинтересовался, а как встроить в свой сайт карту Google? Показав ему стандартный JavaScript код для встраивания карты в свой сайт я услышал, что это достаточно сложно для неспецалиста. И судя по всему для человека который далек от веб-разработки, это так и есть. В итоге родилась идея которую я и представляю на твой, %username%, суд. Сервис реализовал с помощью Google Maps API + Mootools + Yourls (Спасибо getnaked)
                                  Читать дальше →
                                • collectd — собираем системную и пользовательскую статистику

                                    Вопрос номер 0 — зачем?



                                    В посте про pnp4nagios я писал «Nagios/Pnp4Nagios не замена комплексу сбора статистики о состоянии системы». Почему я так думаю? Потому что 1) статистика состояния системы обширна и включает множество показателей 2) не всегда есть смысл их мониторить, точнее генерировать алерты. Например, знать сколько сколько операций ввода-вывода делает диск или происходит переключений контекста неплохо, но почти никогда не критично. Ну и кроме того, Nagios просто не предназначен для этого. В данной статье я не буду делать полное описание системы, ограничусь лишь особенно интересными, с моей точки зрения, моментами.

                                    Вопрос номер 1 — почему collectd?



                                    Основные моменты почему из Munin, Cacti и прочих я выбрал collectd:
                                    1. Масштабируемость
                                    2. Легковесность
                                    3. Концепция — всё есть плагины
                                    4. Сбор и запись данных разделены
                                    5. Количество собираемых показателей
                                    6. Расширяемость


                                    Читать дальше →
                                  • Простой нагрузочный тест с Apache JMeter

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

                                      Почему бы не избежать этих неприятностей, прогнав нагрузочный тест?

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

                                      Под катом рассказываю, как с нуля организовать незамысловатый нагрузочный тест сайта при помощи Apache JMeter.
                                      Читать дальше →
                                    • Типовой шаблон технического задания на разработку сайта

                                        ОФФТОП: Хочу выразить свою благодарность, всем кто плюсанул мой предыдущей пост и карму, это позволило мне пригласить на Хабр еще несколько хороших людей.

                                        Во многих студиях нет единого формата ТЗ, у нас его тоже не было. Просмотрев множество различных форматов и ГОСТов, мы выбрали самые значимые пункты и разработали типовой шаблон ТЗ для нашей компании.
                                        Возможно, это будет полезно и другим студиям, т.к. если мы все будем работать по единым стандартам плюсы очевидны как для студий, так и для заказчиков.

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