Search
Write a publication
Pull to refresh
15
0
Send message

Как обычному сайту на Wordpress набрать 99/100 в PageSpeed Insights

Reading time5 min
Views136K
Началось все с того что Adsense в очередной раз понизил оценку эффективности страниц:
image
А все мы знаем, что скорость сайта – один из факторов ранжирования в выдаче Гугла.

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

Изначально имеется сайтик со статьями, коих в интернете миллионы: CMS Wordpress 4.2, два десятка плагинов, тема, сверстанная фрилансером и shared хостинг.
Читать дальше →

Реализация поискового движка с ранжированием на Python (Часть 1)

Reading time5 min
Views35K
Просматривая ленту новостей я наткнулся на рекомендацию от Типичного Программиста на статью «Implementing a Search Engine with Ranking in Python», написанную Aakash Japi. Она меня заинтересовала, подобного материала в рунете не очень много, и я решил перевести её. Так как она довольно большая, я разделю её на 2-3 части. На этом я заканчиваю своё вступление и перехожу к переводу.

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

Но в то время как Google является невероятно сложным, основная концепция поисковой системы, которые ищут соответствия и оценивают (ранжируют) результаты относительно поискового запроса не представляет особой сложности, и это может понять любой с базовым опытом программирования. Я не думаю, что в данный момент возможно превзойти Google в поиске, но сделать поисковой движок — вполне достижимая цель, и на самом деле это довольно поучительное упражнение, которое я рекомендую попробовать.

Это то, что я буду описывать в этой статье: как сделать поисковую систему для локальных текстовых файлов, для которых можно обрабатывать стандартные запросы (по крайней мере, одно из слов в запросе есть в документе) и фразу целиком (появляется вся фраза в тексте) и может ранжировать с использованием базовой TF-IDF схемы.

Есть два основный этапа в разработке поискового движка: построение индекса, а затем, используя индекс, ответить на запрос. А затем мы можем добавить результат рейтинга (TF-IDF, PageRank и т.д.), классификацию запрос/документ, и, возможно, немного машинного обучения, чтобы отслеживать последние запросы пользователя и на основе этого выбрать результаты для повышения производительности поисковой системы.

Итак, без дальнейших церемоний, давайте начнем!
Читать дальше →

Под прессом. Ломаем и защищаем Wordpress своими руками

Reading time11 min
Views92K


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

Как интернет-магазину остановить «слив» бюджета в контекстной рекламе

Reading time4 min
Views13K


В идеале контекстная реклама приводит в магазин «горячую» аудиторию. Пользователи уже заряжены на покупку, при этом они как приходят, так и уходят. Конверсия выше 3% считается поводом открывать шампанское) Как правило, эффективность намного ниже: от 0,5 до 1,5%. Почему лишь 1 из 100 посетителей магазина совершает покупку и как остановить «слив» рекламного бюджета?

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

«Есть ли жизнь у маркетплейсов в России?» или «Как мы пытаемся делать конкурента Яндекс.Маркету»

Reading time9 min
Views12K
Сегодня мы расскажем, как запускали в Рунете свой товарный агрегатор или маркетплейс (market place) (дальше будем придерживаться термина «агрегатор» — звучит более по-русски как-то). В статье попробуем ответить на вопросы: зачем и как мы это делали, и что в итоге у нас получается. Откроем все цифры по трафику, заказам и т.п. Подчеркнем, что проект еще в стадии развития – мы занимались и занимаемся им в режиме спокойной работы, выделяя на это собственные ресурсы, чуть больше года, и сделать нужно еще очень много.

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

Геотаргетинг по городам (регионам, странам) для WordPress

Reading time4 min
Views32K

Причины создания


Недавно попросили сделать геотаргетинг по городам для сайта на wordpress. Пересмотрев существующие геотаргетинг-плагины (в том числе платные), не нашёл не одного работающего с городами (только страны). Поэтому решил сделать свой, используя какую-нибудь существующую базу для определения местоположения по IP-адресу. Сначала начал с разработки функции в шаблоне, но потом решил создать плагин и выложить на github, так как думаю, что он может пригодиться кому-нибудь ещё.
Читать дальше →

Не мамонт ли Вы? (пятничный тест; который ложь, да в ней намек)

Reading time4 min
Views72K
PHP развивается стремительно. И сам язык, и его реализация, и, особенно, сообщество. PHP перестаёт быть языком для быстрого клепания сайтиков и всё больше движется в сторону языка общего назначения, хотя путь этот будет долог — слишком много врожденных недостатков тянется с доисторических времён.

Как грибы растут стандарты, фреймворки, развивается и становится всё слаще синтаксис, растут разнообразные инструменты.

И это здорово!

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

image

Попробуйте пройти несложный тест и определить — не мамонт ли Вы в мире PHP? Не грозит ли Вам, как специалисту, вымирание в ближайшее время?

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

Как перевести сайт целиком на постоянный HTTPS для всех

Reading time6 min
Views45K

Шифруем всё подряд


Эра незашифрованного веба проходит, и это хорошо. В этой инструкции мы предполагаем, что на вашем сервере работает веб-сервер Nginx. И теперь мы сделаем так, чтобы все посетители сайта пользовались исключительно протоколом HTTPS. Кроме этого мы включим HSTS – это «HTTP Strict Transport Security», когда сайт не только поддерживает HTTPS, но и настаивает на его использовании.

Для этого есть множество способов, но я опишу метод под названием «HTTPS termination». Иначе говоря, мы поставим перед веб-сервером обратный прокси, который и будет обеспечивать HTTPS. Это получается проще и гибче, чем настраивать HTTPS только при помощи возможностей веб-сервера. Возможно, вам покажется контринтуитивным, что добавление ещё одного приложения в стек упростит вашу жизнь – но это действительно так.

Уточним, что данный рецепт подходит для серверов на базе Linux, на которых установлен Nginx.

То, что будет работать прежде всех остальных приложений в стопке – это HAProxy. Это в первую очередь приложение для балансировки – он умеет распределять приходящие запросы между разными физическими серверами. Много высоконагруженных сайтов используют его в этом качестве (тот же reddit), но в последней версии у него появилась возможность выполнять SSL termination. Он умеет устанавливать HTTPS-соединения от имени сервера.

Поэтому мы поставим HAProxy, скормим ему наши сертификаты SSL/TLS, поручим перенапрявлять все HTTP запросы на HTTPS, и покажем ему уже сам веб-сервер в качестве бэкенда.
Читать дальше →

Переходим от MongoDB Full Text к ElasticSearch

Reading time6 min
Views30K
В своем прошлом посте, с анонсом Google Chrome расширения для Likeastore, я упомянул тот факт, что в качестве поискового индекса мы начали использовать ElasticSeach. Именно ElasticSeach дал достаточно хорошую производительность и качество поиска, после которого было принято решение, выпустить расширение к хрому.

В этом посте, я расскажу о том, что использование связки MongoDB + ElasticSeach, есть крайне эффективное NoSQL решение, и о том, как перейти на ElasticSearch, если у вас уже есть MongoDB.
Читать дальше →

Шаг за шагом, или Как мы строили свой поиск

Reading time13 min
Views39K
В прошлом посте мы рассмотрели примеры архитектуры поисковиков. Везде ключевую роль играет база данных, над которой удобно производить некоторые операции, исследовать и анализировать содержащиеся в ней документы.

До весны 2012 года у нас вместо такой базы существовали две базы данных разного уровня — со стороны спайдера, который имел свою собственную базу URL-ов, и со стороны индексатора. Это было крайне неудобно: допустим, если пользователь жаловался, что его сайт не индексируется, то для того, чтобы найти причину, при старой архитектуре пришлось бы анализировать массу данных. На это требовалось день-два, иногда даже неделя.

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

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

HBase + Thrift + PHP

Reading time4 min
Views11K
Видимо так сложилось исторически, но на хабре не очень много статей о HBase, Thrift и тем более о том как их связать для работы с PHP клиентом. Давайте же ликвидируем этот пробел и пройдемся от инсталяции HBase до получения PHP клиентом примитивных данных из HBase.
Читать дальше →

Как устроен интернет-магазин люстр, светодиодов и ламп

Reading time12 min
Views17K
Эта прикладная статья позволит составить представление о работе интернет-магазинов освещения и светового оборудования. Она нацелена на стартаперов, которые интересуется данным направлением бизнеса с точки зрения бизнес-логики и техники реализации. Статья написана на основе опыта разработки интернет-магазинов, стартовавших в 2008 году, и сейчас являющихся одними из лидеров по показателю видимости сайтов в поисковой выдаче Яндекса и присутствию в контекстной рекламе по Москве и МО.
Читать дальше →

Надзиратель для фрилансера: выбираем систему учета рабочего времени

Reading time11 min
Views159K


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

Управление программными проектами: процессы, инструменты, методики

Reading time17 min
Views22K
Существуют разные представления о том, как ведётся творческая работа. Для многих людей творец – это личность (поэт, художник, изобретатель), которая создаёт своё творение в момент озарения. Управлять озарением? О, нет! Это невозможно!

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

Творческая работа может вестись как индивидуально (одним творцом – учёным, художником, композитором или поэтом), так и коллективно (когда над созданием произведения работают коллективы людей разных специальностей). В данной статье мне бы хотелось сконцентрироваться на вопросах управления творческими коллективами на примере распределённого коллектива программистов, художников и дизайнеров из трёх стран, который выпускает приложение, продаваемое во всём мире. Каждый год продаётся более 10 миллионов экземпляров. Годовая выручка – 1 миллиард долларов.

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

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

Дайджест продуктового дизайна, февраль 2015

Reading time17 min
Views14K
Уже почти пять лет я публикую регулярные обзоры свежих статей по теме интерфейсов, новых инструментов и коллекций паттернов, интересных кейсов и исторических рассказов. Из лент нескольких сотен тематических подписок отбирается примерно 5% стоящих публикаций, которыми интересно поделиться. Предыдущие материалы: апрель 2010-январь 2015.

Дайджест продуктового дизайна, февраль 2015
Читать дальше →

Компания Facebook приобрела сервис для поиска товаров

Reading time2 min
Views2K
Как сообщает Techcrunch, компания Facebook сделала новое приобретение – TheFind, поисковая система для выбора товаров. За время своего существования, с 2005 года, проект привлек $26 млн, но сейчас, в связи с поглощением, он будет на время закрыт, а затем реорганизован.
Читать дальше →

Сила минимализма: как мы меняли дизайн Yelp

Reading time5 min
Views13K
Коллективный дизайн – это смерть от тысячи порезов. Умирает он медленно, по мере получения всё большего количества мнений от разных людей, пока не начинает выглядеть как мешанина из разрозненных кусочков. Так не должно быть – тем более, в таких больших компаниях, как Yelp.

image

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

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

Yboard — Движок доски объявлений на Yii

Reading time2 min
Views52K
imageПосле работы на ужасно неуклюжем и неприятном проекте посвященный объявлениям, задался вопросом какие существуют еще решения для такого рода проектов.

Из бесплатных как оказалось их не так уж и много, самым известным является наверное OsClass. Другое дело когда говорим о платных аналогах, тут большое разнообразие движков, функционалов и цен за них.
Читать дальше →

37 инструментов для повышения конверсии и роста продаж

Reading time3 min
Views33K


Цель бизнеса — зарабатывать деньги, и все процессы компании должны быть подчинены ей. В нашей сегодняшней подборке представлены инструменты, которые будут полезны предпринимателям, маркетологам и специалистам по Growth Hacking — представляем вашему вниманию 37 инструментов для повышения конверсии и роста продаж.
Читать дальше →

Курс по Big Data: три месяца на основные знания, и зачем это нужно

Reading time8 min
Views80K


Студент в Big Data получает 70 тысяч рублей в месяц, а специалист с опытом 3-4 года — 250 тысяч рублей в месяц. Это те, например, кто умеет персонализировать предложения розницы, искать в соцсети человека по анкетным данным заявки на кредит или по списку посещённых сайтов вычислять новую симку старого абонента.

Мы решили сделать профессиональный курс по Big Data без «воды», маркетинга и всяких эджайлов, только хардкор. Позвали практиков из 7 крупных компаний (включая Сбербанк и Oracle) и устроили, фактически, хакатон длиной во весь курс. Недавно у нас прошел день открытых дверей по программе, где мы напрямую спросили практиков, что же есть Big Data в России, и как компании на деле используют большие данные. Ниже ответы.
Читать дальше →

Information

Rating
Does not participate
Registered
Activity