• HikariCP — самый быстрый пул соединений на java

      Java недавно стукнуло 20 лет. Казалось бы, на сегодняшний день на java написано все. Любая идея, любой проект, любой инструмент на java? — это уже есть. Тем более когда речь идет о таких банальных вещах как пул соединений к базе данных, который используют миллионы разработчиков по всему миру. Но не тут то было! Встречайте — проект HikariCP — самый быстрый на сегодняшний день пул соединений на java.

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

      Этот пост — вольный и частичный перевод статьи Down the Rabbit Hole от автора HikariCP перемешанный с потоком моего сознания.

      image

      Читать дальше →
    • Реверс API по его android приложению

      • Tutorial

      Зачем


      У меня есть pet-project, приложение для учета финансов.


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


      Но


      • Банков несколько и они ничего не знают друг про друга. В итоге
        • Нет единой аналитики
        • Перевод денег из одного банка в другой будет считаться как списание с одной стороны и зачисление с другой. Эта особенность портит аналитику.
      • Возможность работать с данными позволяет строить любую аналитику и прогнозы в отличие от ui банка
      Читать дальше →
    • Что в Белизне тебе моей или Справочное пособие по гипохлориту натрия («хлорке»)

      • Tutorial
      Не передать, насколько мне приятно это писать. Данная статья полностью профинансирована подписчиками канала LAB66. Ни один производитель описанных в тексте средств -  своего участия не проявил, так что никакой скрытой рекламы, чиcтый альтруизм и потребительский интерес :)

      Сегодня читаем о самом простом, самом доступном и самом действенном антисептике — про гипохлорит натрия (он же «Белизна»). Совместимость с различными материалами, техника безопасности, свойства и эффективность не только против коронавируса, но и против страшной плесени и ее микотоксинов. В качестве «вишенки» — контрольная закупка магазинных отбеливателей и оценка их состава. Чтобы узнать как в эпоху пандемии нас дурят производители бытовой химии и прочий «менеджерский брат» — идем под кат. И обязательно закидываем в закладки. Эта информация пригодится еще не раз ;)


      Даешь нормальную Белизну!
    • Поведенческие факторы ранжирования: технологии Big Data в SEO

        Рынок SEO от простых сервисов переходит к технологиям Big Data, что делает его ещё более интересным. Представьте: к вам на сайт только зашёл пользователь, а вы уже всё о нём знаете – от интересов, до бюджета и адреса доставки. Получая нужного вам пользователя, вы улучшаете показатели своего сайта в выдаче. Это – технологический результат «гонки вооружений» между профессионалами SEO и поисковиками.

        За последнее время кардинально изменился подход к поисковому продвижению. Это произошло потому, что сами поисковики изменили алгоритмы ранжирования сайтов в выдаче. Новые, усложнённые алгоритмы требуют использования больших объемов данных и новых технологий для того, чтобы продвижение сайта было эффективным.
        Читать дальше →
        • –2
        • 5.1k
        • 1
      • Единый интерфейс управления рекламой на сайте

          Монетизация собственного проекта – всегда вызов. Самый простой вариант: поставить на него тизерную рекламу или контекст, и наблюдать, сколько денег капает в карман. Но этот же вариант часто оказывается разочаровывающим – заработок не стоит усилий по его приобретению. Так ли плоха тизерная/контекстная реклама для монетизации сайтов? Скорее всего, вы просто не умеете её готовить.


          В зависимости характера вашего трафика, его источников и состава, будет меняться прибыльность той или иной рекламной сети
          Читать дальше →
        • Targetix — разработка full-stack RTB технологий

            Здравствуйте.
            Мы — группа разработки Targetix, и мы занимаемся разработкой всего, что имеет отношение к автоматизированным системам закупки рекламы на просторах интернета. Сразу оговорюсь, что статья ознакомительная, пробежимся по верхам, а детальные разборы отдельных моментов to be continued…
            image
            Читать дальше →
          • Опасный мир вредоносных расширений и защита от них. Опыт Яндекс.Браузера

              Браузерные расширения в последнее время, к сожалению, всё чаще используются не для того, чтобы приносить пользу, а как инструмент мошенников. Сегодня мы хотим поделиться с вами нашим опытом борьбы с вредоносными разработками, рассказать о мерах и технологиях, которые защищают пользователей Яндекс.Браузера.



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

              В определенный момент количество таких обращений стало достигать 30% от всех сообщений в поддержку. Наблюдения поддержки также подтверждались статистикой основных причин удаления нашего браузера (при удалении пользователям предлагается описать причину). Многие люди искренне считали, что это наша команда решила таким вот способом монетизировать браузер. За короткий период времени количество удалений Яндекс.Браузера, связанных с деятельностью сторонних вредоносных разработок, удвоилось. Нужно было срочно вмешаться и начать работать над этой проблемой.
              Читать дальше →
            • Продать за 60 секунд. Call-центр в облаке и специальная сим-карта

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



                Читать дальше →
              • 36 млн запросов в час, 10000+ постоянно работающих клиентов, на одном сервере, nginx+mysql

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

                Первое, что я заметил — множество советов как все настроить под большую нагрузку. Читайте их внимательно, обычно в тексте найдете, что речь про «высокую нагрузку» в 15-20 тысяч клиентов в сутки. У нас клиентов примерно миллион, активных, ежедневных.

                У нас нет денег и мы все делаем за свой счет, поэтому экономим. Итог — весь миллион клиентов обслуживается на одном сервере, вот на таком — EX-60 на hetzner.
                Читать дальше →
              • Блокировка по access_log, легкий способ прострелить ногу или устранение конкурентов

                  Очередной пример, как легко прострелить себе ногу, на этот раз «переусердствовав» при защите сайта.
                  Имён как всегда не называю, однако история показательна как-таковая, т.е. в качестве примера, как не надо «защищать» свои сервера. Эх говоришь им, говоришь — а все без толку.

                  Пришлось тут намедни делать «аудит» одного коммерческого проекта… ну очень просили.
                  Упала посещаемость сайта, не совсем чтобы совсем, но довольно заметно. Смотрели логи, аналитику поисковиков и т.д. и т.п. Все вроде нормально, и кто приходит, тот даже не уходит сразу.
                  Но не буду ходить вокруг, да около — проанализировав логи банов по IP выяснилась одна закономерность — за короткое время в бан попадало огромное количество IP-адресов. Все поголовно по одной причине — якобы как botsearch. Отротированные логи за последний месяц тоже ужасали своими размерами и даже заглядывать туда не нужно было, и так все ясно. Т.е. случилось следующее: куча клиентов просто не могла попасть на сайт.
                  На вопрос «что-то меняли где-то с месяц назад?» был получен отрицательный ответ.

                  Не буду утомлять здесь детективным чтивом, после недолгих поисков — картина маслом. Некий прямой конкурент этого сайта поспособствовал «утечке» клиентов, или вернее и организовал эту «странную непосещаемость».
                  Читать дальше →
                • Интеграция Fail2ban с CSF для противодействия DDoS на nginx

                  • Tutorial
                  Набор скриптов ConfigServer Security & Firewall (CSF) изначально обладает достаточно богатыми возможностями по организации защиты сервера хостинга Web с помощью фильтра пакетов iptables. В частности с его помощью можно противостоять затоплению атакуемого хоста пакетами TCP SYN, UDP и ICMP слабой и средней силы. Дополняет CSF встроенный Login Failure Daemon (lfd), который осуществляет мониторинг журналов на предмет наличия многочисленных неудачных попыток авторизации в различных сетевых сервисах с целью подбора пароля. Такие попытки блокируются путем внесения адреса IP злоумышленника в черный список CSF.
                  Читать дальше →
                • Пулы потоков: ускоряем NGINX в 9 и более раз

                  • Translation
                  Как известно, для обработки соединений NGINX использует асинхронный событийный подход. Вместо того, чтобы выделять на каждый запрос отдельный поток или процесс (как это делают серверы с традиционной архитектурой), NGINX мультиплексирует обработку множества соединений и запросов в одном рабочем процессе. Для этого применяются сокеты в неблокирующем режиме и такие эффективные методы работы с событиями, как epoll и kqueue.

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

                  Каждый процесс расходует память и каждое переключение между ними требует дополнительных циклов процессора, а также приводит к вымыванию L-кэшей

                  У медали есть и обратная сторона. Главной проблемой асинхронного подхода, а лучше даже сказать «врагом» — являются блокирующие операции. И, к сожалению, многие авторы сторонних модулей, не понимая принципов функционирования NGINX, пытаются выполнять блокирующие операции в своих модулях. Такие операции способны полностью убить производительность NGINX и их следует избегать любой ценой.

                  Но даже в текущей реализации NGINX не всегда возможно избежать блокировок. И для решения данной проблемы в NGINX версии 1.7.11 был представлен новый механизм «пулов потоков». Что это такое и как его применять разберем далее, а для начала познакомимся с нашим врагом в лицо.
                  Читать дальше →
                • Свой облачный хостинг за 5 минут. Часть 1: Ansible, Docker, Docker Swarm

                    Cloud hosting

                    Привет Хабр! Последние 1.5 года я работал над своим проектом, которому был необходим надежный облачный хостинг. До этого момента я больше 10 лет занимался веб-программированием и когда я решил построить свой хостинг у меня были относительно поверхностные знания в этой области, я и сейчас не являюсь системным администратором. Все что я буду рассказывать может выполнить обычный программист в течение 5 минут, просто запустив набор сценариев для Ansible, которые я подготовил специально для вас и выложил на GitHub.
                    Читать дальше →
                  • DDoS атака в обход Qrator. Как защититься?

                      Есть сервисы, защищающие нас от DDoS атак. Они работают по принципу прокси: в DNS прописывается их IP, они фильтруют трафик и проксируют на ваш сервер. Все они настоятельно рекомендуют прятать свой IP и в публичном доступе давать только IP прокси-защитника. Вполне здравый подход, достаточный для успешной защиты. А я расскажу на чем можно проколоться и как от этого защитится.
                      Читать дальше →
                    • Как делаются видео с НЛО

                        Ещё не так давно снять НЛО было довольно проблематично, но с современными технологиями это можно делать даже в высоком разрешении. Например, так:



                        Основные этапы:
                        1. Трекинг камеры по заданным точкам на видео.
                        2. Создание 3D-модели и имитация освещения.
                        3. Рендеринг.
                        4. Композитинг (компоновка картинки и постобработка), цветокоррекция.

                        Всё это можно делать с помощью бесплатного и открытого Блендера.

                        Демонстрация процесса, упакованная в короткое видео:



                        Далее — более подробно о каждом этапе.
                        Читать дальше →
                      • Как перевести сайт целиком на постоянный HTTPS для всех

                        • Translation

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


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

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

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

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

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



                        Хотите узнать, как на просторах интернета убеждать людей и получать от них желаемое?

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

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

                        Моя трёхлетняя дочка София в последнее время частенько упоминает «ноль», например, в таком контексте:
                        — Соня, вот ты вроде сначала не послушалась, а затем послушалась, что же получается?..
                        — Ну… ноль!

                        Т.е. ощущение отрицательных чисел и нейтральности нуля уже имеет, о как. Скоро поинтересуется: почему же это на ноль делить нельзя?
                        И вот решил я простыми словами записать всё, что я ещё помню про деление на ноль и всё такое.
                        Читать дальше →
                      • Переходы наличности и переходы на личности

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