• Как мы боролись с парсерами

      image
      Ключевые моменты:
      * Реализация скрипта для проверки PTR посетителей;
      * Конфигурирование nginx в IfIsEvil-style с ветвлениями map;
      * Имена location в переменных map;
      * Управление ветвлением через try_files /nonexist $map_var.

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

      Читать дальше →
    • Векторная графика бесплатно — подборка сайтов

      У векторной графики много преимуществ. В отличие от растровых, векторные изображения более гибкие, легко масштабируются, сохраняют качество и т.д. Ниже представлена подборка веб-ресурсов с бесплатными векторными иконками, символами и картинками.

      1. Freepik


      www.freepik.com

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



      Читать дальше →
      • +27
      • 250k
      • 3
    • Юзабилити линч: ищем уязвимости интерфейса в CMS Diafan



        Привет, Хабр. Я уверен, ты всё-таки еще не умираешь! Постараюсь, чтобы данный материал внёс свои 5 коп в фонд развития “Хабр — живи!”.

        Я достаточно длительное время занимаюсь дизайном интерфейсов. Люблю своё дело и каждый раз ищу любую возможность развиваться. Поиск ошибок и уязвимостей интерфейсов в рабочих системах, прототипах и приложениях нахожу такой возможностью. Обнаружив несколько типичных ошибок у других, выводы точно отпечатаются в подсознании, что позволит не наступать на подобные грабли вновь в собственной повседневной рутине.
        Прошу заранее не судить строго. Обзор носит чисто субъективный характер. Взгляд на данную систему изложен исключительно через призму личного профессионального опыта. Обрадую тем, что будет не только критика — будут предлагаться и решения!
        Читать дальше →
        • +12
        • 11.8k
        • 7
      • Эмоциональный landing page? Воу воу, полегче

          «Продавайте эмоцию, а не товар», «Расскажите про длительный эффект от покупки» – именно эти заголовки в одной из статей испортили однажды мне утро.


          Пародия на избыточную эмоциональность в интерфейсах

          А началось все с клиента, прочитавшего статью о «правильной» технике продаж и поставившего под сомнение мою компетенцию. Та статья стоила 2-х часового разговора и заставила разложить вопрос эмоциональности в интерфейсах по-полочкам.
          Читать дальше →
          • +11
          • 17.9k
          • 6
        • Крутой шаринг страниц в соцсети с помощью Open Graph

            Решил собрать в одной статье короткий рецепт приготовления страницы, которая круто шарится во все основные соцсети. Тем, кто вообще не в теме, придётся сначала прочитать про Open Graph protocol.
            Читать дальше →
            • +8
            • 64.9k
            • 5
          • Тест производительности проектов

              image
              Часто у нас стоит задача протестировать какую нагрузку выдерживает сайт наших клиентов. Для себя, в качестве инструмента тестирования, мы выбрали yandex-tank. Это будет краткая заметка о том как быстро начать работать с этим инструментом.

              Читать дальше →
              • +7
              • 11.9k
              • 2
            • Особенности поддержки 10 дата-центров по всему миру: мой опыт и грабли


                Это 2 Петабайта бэкапа

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

                Вот пример. Стоят у нас в стойках серверы, по сути — дисковые полки, предназначенные для «медленных» данных бэкапов. Место на них кончалось. В каждом сервере было по 24 диска и 36 слотов, мы решили добить ещё по 12 HDD. Я отправил тикеты, объяснил, что мы делаем и зачем, добавил, что нужно поставить диски в неподсвеченные слоты.

                Через 10 минут мониторинг показал, что у нас выпал диск в первом сервере. «Ничего себе, коллеги жгут», — подумали мы. Наверное, задели или ещё что-то… Но тут почти сразу выпали второй и третий диски. Я начал звонить в немецкий саппорт, и мне ответил коллега из Индии.

                К моменту, когда мы успели остановить его коллегу-грека, этот «терминатор» вытащил по 12 дисков из пяти серверов и готовился приступать к шестому. Система делала бешеный ребилд.
                Читать дальше →
              • [ScanDoc] предобработка сканов

                • Tutorial


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

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

                Читать дальше →
                • +15
                • 9.1k
                • 4
              • Segmentation Fault (распределение памяти компьютера)

                • Translation


                Когда я делаю ошибку в коде, то обычно это приводит к появлению сообщения “segmentation fault”, зачастую сокращённого до “segfault”. И тут же мои коллеги и руководство приходят ко мне: «Ха! У нас тут для тебя есть segfault для исправления!» — «Ну да, виноват», — обычно отвечаю я. Но многие ли из вас знают, что на самом деле означает ошибка “segmentation fault”?

                Чтобы ответить на этот вопрос, нам нужно вернуться в далёкие 1960-е. Я хочу объяснить, как работает компьютер, а точнее — как в современных компьютерах осуществляется доступ к памяти. Это поможет понять, откуда же берётся это странное сообщение об ошибке.

                Вся представленная ниже информация — основы компьютерной архитектуры. И без нужды я не буду сильно углубляться в эту область. Также я буду применять всем известную терминологию, так что мой пост будет понятен всем, кто не совсем на «вы» с вычислительной техникой. Если же вы захотите изучить вопрос работы с памятью подробнее, то можете обратиться к многочисленной доступной литературе. А заодно не забудьте покопаться в исходном коде ядра какой-нибудь ОС, например, Linux. Я не буду излагать здесь историю вычислительной техники, некоторые вещи не будут освещаться, а некоторые сильно упрощены.
                Читать дальше →
              • Обзор и классификация CMS по категориям (2013)

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

                  Я рассматривала CMS на php, в основном бесплатные, за некоторым исключением. В результате на текущий момент получился такой набор:

                  CMS общего назначения: Alto CMS, Cogear, Contao, Cotonti, DataLifeEngine, Drupal, ImageCMSCorporate, Joomla, Host CMS, MaxSiteCMS, MODX, MosquitoBloodyMary, ReloadCMS, Wordpress
                  Галереи: Coppermine, Gallery (Gallery2, обновленная до версии 3), Koken, MG2 = MiniGal 2, Pikateka, SimpleViewer, Zenphoto
                  Социальные сети: Elgg, Explay CMS, InstantCMS, LiveStreet, BigStreet
                  Форумы: IPB (Invision Power Board), Phorum, phpBB, phpBBex, PunBB, Simple Machines Forum, Vanilla, vBulletin
                  Интернет-магазины: ECShop, Magento, OpenCart, Семейство osCommerce, Prestashop
                  Сайты-визитки без SQL-базы: GetSimple, Monstra, Nanote, Stacey, CMS Чайник
                  Читать дальше →
                • Что писать в карточках, если товары одинаковые?



                    Привет! Я продолжаю рассказывать про буквы в блоге Михаила, владельца Текстброкера.

                    Предположим, у вас есть интернет-магазин, а у него внутри – карточки товаров. И товары бывают двух тяжелых категорий:
                    • Те, у которых дофига неуникального текста (например, теххарактеристики телефонов, инструкции медицинских препаратов), и непонятно, как быть с SEO.
                    • Те, которые имеют артикулы ####0001, ####0002, ####0003… ####0050 и так далее, то есть отличаются какими-то совершенно нереальными мелочами вроде цвета. Пример – 180 моделей очаровательных трусиков. К сожалению, очаровательны они для райтера только первые десять раз.

                    Давайте посмотрим, что делать.
                    Читать дальше →
                  • Favicons, Touch Icons, Tile Icons и т. д. Что выбрать?

                    • Translation
                    От переводчика.
                    Это перевод статьи Филипа Бернарда с сайта css-tricks.com. Часть статьи, содержащую описание работы с созданным им сервисом, я позволил себе опустить. Если вы найдете ошибки, просьба сообщить о них в личном сообщении.

                    Статья содержит результаты проведенного им исследования, каким должен быть фавикон (и то что его заменяет), чтобы хорошо отображаться в различных случаях.


                    Фавикон был представлен в 1999 году, в Internet Explorer 5 (источник) и стандартизирован W3C несколько месяцев спустя. Это была маленькая иконка, представляющая сайт.



                    С тех пор большинство настольных браузеров следуют тенденции и используют фавикон тем или иным способом. Это очень просто, не так ли? Создать маленькую картинку и добавить в любой интернет-проект, чтобы сделать его «завершённым». Ничего сложного.
                    Или нет?
                  • Почему я не использую платёжный агрегатор…

                      Оплата покупки на сайте — необходимый атрибут любого хорошего интернет-магазина. Это не просто правило хорошего тона, это значительное повышение оборотов. Способов оплаты в рунете много — электронные валюты Яндекс.Деньги, Киви, WebMoney, RBK Money, а также банковские карты, счета мобильных телефонов, смс микроплатежи и т.д. Как дать покупателям возможность оплачивать покупки любимым способом?
                      Для своего сервиса мы решили не заморачиваться и воспользовались услугами одного платежного агрегатора. Но по мере роста накопилось большое количество замечаний. Стало понятно, что агрегатор — временное решение, и рано или поздно от него придётся отказаться.

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


                        После двух лет активной разработки и бурного роста пользовательской базы (свыше 125 тыс. клиентов) команда облачного сервиса Kimono радостно сообщает о своём присоединении к Palantir — частной американской компании-разработчику программного обеспечения анализа данных для организаций. Событие это радостное, но не во всём.
                        Детали...
                      • Немного об архитектурах программного обеспечения



                          Никаких сомнений, что за последнее время мир только укрепил свою зависимость от программного обеспечения. Приложения должны обладать высокой доступностью, качественно выполнять требуемые функции и иметь адекватную стоимость. Эти характеристики, в той или иной степени, определяет архитектура ПО.
                          Читать дальше →
                          • +15
                          • 45.5k
                          • 2
                        • Microsoft выложила на Github инструментарий CNTK для глубинного обучения



                            Microsoft выложила в открытый доступ исходный код инструментов, которые используются в компании для ускорения разработок в области искусственного интеллекта: набор Computational Network Toolkit опубликован на Github.
                            Читать дальше →
                            • +22
                            • 16k
                            • 8
                          • Python и красивые ножки: как я бы знакомил сына с математикой и программированием

                              Раньше мы уже искали необычные модели Playboy с помощью библиотеки Python Scikit-learn. Теперь мы продемонстрируем некоторые возможности библиотек SymPy, SciPy, Matplotlib и Pandas на живом примере из разряда занимательных школьных задач по математике. Цель — облегчить порог вхождения при изучении Python библиотек для анализа данных.



                              Читать дальше →
                            • Несколько интересностей и полезностей для всех



                                Доброго времени суток, уважаемые хабравчане! Обычно мои подборки ориентированы сугубо на веб-разработку, но этот выпуск охватывает все сферы программирования. Но самое главное, что интересность и полезность каждого материала имеет социальное доказательство, благодаря замечательному сервису Slant.co. Это некий аналог Quora, сфокусированный сугубо на разработчиков.

                                Коллекция из почти 200 ответов в Slant на вопросы «Какие лучшие...»


                                Читать дальше →
                                • +17
                                • 31.4k
                                • 9