• Как это работает: Деревья Меркла в биткойн сети

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

      Что это такое, как используется, какие существуют альтернативы — расскажем далее.

      Читать дальше →
    • Big data как арт-искусство

        Проект The Art Of Analytics от компании Teradata выглядит достаточно необычно. Идея проекта — объяснить исследования на основе больших данных в виде художественных образов широкой аудитории. Хотите узнать как выглядит обнаружение мошенничества в банках и террористических угроз или сравнение односолодовых виски? Под катом некоторые из 20 исследований изображенные в виде картин.


        Читать дальше →
        • +12
        • 13,1k
        • 4
      • Работа с геолокациями в режиме highload

          При разработке ПО часто возникают интересные задачи. Одна из таких: работа с гео-координатами пользователей. Если вашим сервисом пользуются миллионы пользователей и запросы к РСУБД происходят часто, то выбор алгоритма играет важную роль. О том как оптимально обрабатывать большое количество запросов и искать ближайшие гео-позиции рассказано под катом.

          image
          Читать дальше →
        • PostgreSQL: Приемы на продакшене

            Можно прочитать много книг по базам данных, написать кучу приложений на аутсорс или для себя. Но при этом невозможно не наступить на грабли, при работе с действительно большими базами/таблицами особенно, когда downtime на большом проекте хочется свести к минимуму, а еще лучше совсем избежать. Вот здесь самые простые операции, как например изменение структуры таблицы может стать более сложной задачей. Наиболее интересные случаи, проблемы, грабли и их решения из личного опыта с которыми нам на проекте Pushwoosh пришлось столкнуться описаны под катом. В статье нет красивых картинок, зато есть много сухого текста.

            image
            Читать дальше →
          • 58 признаков хорошего интерфейса

            • Перевод
            У хорошего интерфейса пользователя высокая конверсия и его просто использовать. То есть, он хорош и для бизнеса, и для использующих его людей. Вот список опробованных нами идей.

            1 Один столбец вместо нескольких


            Один столбец точнее отражает то, что вы хотите донести. Пользователи проходят сверху вниз по более предсказуемому пути. В дизайне с несколькими колонками есть риск отвлечения пользователя от основной задачи страницы.

            image
            Читать дальше →
          • Urban Airship закрывает бесплатную лицензию

              Совсем скоро — 31 декабря, Новый год. Но вместе с этим и закроектся бесплатная Developer Edition в системе рассылки Push-уведомлений Urban Airship. Компания предлагает либо купить платную подписку, либо уйти к другим push-провайдерам.

              Давайте посмотрим, какие у нас есть варианты.

              image
              Читать дальше →
            • Статические члены класса. Не дай им загубить твой код

              • Перевод
              Давно хотел написать на эту тему. Первым толчком послужила статья Miško Hevery "Static Methods are Death to Testability". Я написал ответную статью, но так и не опубликовал ее. А вот недавно увидел нечто, что можно назвать «Классо-Ориентированное Программирование». Это освежило мой интерес к теме и вот результат.

              «Классо-Ориентированое Программирование» — это когда используются классы, состоящие только из статических методов и свойств, а экземпляр класса никогда не создается. В этой статье я буду говорить о том, что:
              • это не дает никаких преимуществ по сравнению с процедурным программированием
              • не стоит отказываться от объектов
              • наличие статических членов класса != смерть тестам

              Хотя эта статья про PHP, концепции применимы и к другим языкам.
              Читать дальше →
            • Хак синтаксиса PHP

              • Перевод
              • Tutorial
              Вы когда-нибудь задумывались о том, как расширить ядро PHP? Что нужно для того, чтобы создать новое ключевое слово или даже разработать новый синтаксис? Если у вас есть базовые знания языка C, то проблем с созданием небольших изменений возникнуть не должно. Да, я понимаю, что это может быть немного бессмысленно, но неважно — забавно ведь.

              Давайте создадим альтернативный способ определения класса. Самый простой способ определения, разрешённый в PHP, выглядит следующим образом:

              <?php
              class ClassName {}
              

              Мы можем упростить синтаксис и заменить фигурные скобки на точку с запятой.

              <?php
              class ClassName;
              

              Если вы попытаетесь выполнить этот код, то он, очевидно, выдаст ошибку. Не проблема, мы можем это исправить.
              Читать дальше →
            • Взламываем шифры с Python

                Опубликованное неделю назад издание «Взламываем секретные шифры с Python» (Hacking Secret Ciphers with Python) — это учебник по Python для новичков. Авторы разумно рассудили, что учиться программированию нужно на конкретных практических задачах. А что может быть интереснее, чем взлом зашифрованных сообщений?

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

                Книга лежит в открытом доступе, её можно бесплатно скачать в формате pdf (зеркало).
                Читать дальше →
              • PHPUnit: Mock объекты

                Довольно часто при написании модульных тестов нам приходится сталкиваться с тем, что тестируемый класс зависит от данных из внешних источников, состояние которых мы не можем контролировать. К таким источникам можно отнести далеко расположенную общедоступную базу данных или службу, датчик какого-нибудь физического процесса и пр. Либо нам необходимо убедиться, что некие действия выполняются в строго определенном порядке. В этих случаях к нам на помощь приходят Mock объекты (mock в переводе с английского — пародия), позволяя тестировать классы в изоляции от внешних зависимостей. Использованию Mock объектов в PHPUnit посвящается эта статья.
                Читать дальше →
                • +8
                • 53,9k
                • 7