• Переход на embedded PostgreSQL в unit-тестах


      В приложениях, работающих с базами данных, естественным образом возникает потребность в тестах, которые проверяют корректность результатов выполнения запросов. На помощь приходят различные встроенные (embedded) базы данных. В этой статье я расскажу о том, как мы перевели unit-тесты с HSQLDB на PostgreSQL: зачем это затеяли, с какими трудностями столкнулись и что нам это дало.

      Читать дальше →
    • Машинное обучение и поиск темной материи: соревнование от ЦЕРНа и Яндекса

        Яндекс уже несколько лет сотрудничает с ЦЕРНом. Он сделал для учёных-физиков поиск по событиям в БАК, предоставил свои вычислительные ресурсы и технологии обработки данных — в том числе Матрикснет и ClickHouse. В 2014 году Яндекс стал ассоциированным членом CERN openlab.


        Школа анализа данных Яндекса принимает участие в двух экспериментах ЦЕРНа — SHiP и LHCb. Машинное обучение в наши дни становится «микроскопом» для современных учёных, которым необходимо изучать большие объемы данных и находить в них различные закономерности. В этом году ШАД совместно с лабораторией Методов анализа больших данных Вышки и Имперским колледжем Лондона организует в Великобритании международную школу, которая посвящена способам применения современных технологий в научных исследованиях.



        Эксперимент OPERA — из Швейцарии в Италию (картинка взята с сайта коллаборации OPERA)


        Сегодня в рамках школы начинается открытое соревнование, участники которого будут ни много ни мало искать нейтрино. Принять участие в поисках мы приглашаем всех желающих. Им предстоит обрабатывать данные с международного эксперимента OPERA. Для этого будут предоставлены исходные данные — результаты сканирования слоев фотопленок одного «кирпича» эксперимента OPERA. Соревнование состоит из двух этапов. На первом этапе участники будут искать отдельный ливень в «кирпиче», первая вершина которого известна, на втором — несколько ливней, рассредоточенных по объему «кирпича» без дополнительной информации. Победители смогут рассказать о своих решениях ученым, работающим в ЦЕРНе.

        Читать дальше →
        • +41
        • 6,9k
        • 2
      • VK Streaming API Contest

          Привет! Мы запустили бета-тестирование нового продукта для получения публичных данных из ВКонтакте в реальном времени — Streaming API.



          Он призван заменить методы публичного API для поиска и парсинга данных (newsfeed.search, wall.search, wall.get) и стать более удобным решением задачи аналитики упоминаний в соцсети.

          Читать дальше →
          • +26
          • 7,9k
          • 7
        • Распределенные структуры данных (часть 2, как это сделано)

            В предыдущей статье — часть 1, обзорная — я рассказал о том, зачем нужны распределенные структуры данных (далее — РСД) и разобрал несколько вариантов, предлагаемых распределенным кешем Apache Ignite.


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


            Итак:



            Читать дальше →
            • +25
            • 7,5k
            • 1
          • Масштабируя TLS



              Хабр, это доклад с одного из «не главных» залов Highload++ 2016. Артём ximaera Гавриченков, технический директор Qrator Labs, рассказывает про прикладное шифрование, в том числе, в высоконагруженных проектах. Видео и презентация в конце поста — спасибо Олегу Бунину.

              Приветствую! Мы продолжаем находиться на сессии про HTTPS, TLS, SSL и всё такое.
              То, о чём я сейчас буду говорить — не какой-то туториал. Как говорил мой преподаватель в университете по базам данных, Сергей Дмитриевич Кузнецов: «Я не буду учить вас настраивать Microsoft SQL сервер — пусть это делает Microsoft; не буду учить вас настраивать Oracle — пусть это делает Oracle; не буду учить вас настраивать MySQL — делайте это сами».

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

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

                Больше изоленты!


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

                Читать дальше →
              • Алгоритм Джонкера-Волгенанта + t-SNE = супер-сила

                • Перевод
                До:



                После:



                Заинтригованы? Но обо всем по порядку.

                t-SNE


                t-SNE — это очень популярный алгоритм, который позволяет снижать размерность ваших данных, чтобы их было проще визуализировать. Этот алгоритм может свернуть сотни измерений к всего двум, сохраняя при этом важные отношения между данными: чем ближе объекты располагаются в исходном пространстве, тем меньше расстояние между этими объектами в пространстве сокращенной размерности. t-SNE неплохо работает на маленьких и средних реальных наборах данных и не требует большого количества настроек гиперпараметров. Другими словами, если взять 100 000 точек и пропустить их через эту волшебный черный ящик, на выходе мы получим красивый график рассеяния.
                Читать дальше →
                • +63
                • 23,1k
                • 2
              • Дилетантское ЧПУ?



                  Всё, чему я учусь самостоятельно, стараюсь не только воплощать в жизнь, но и заставлять это работать дольше одного дня, приносить долгосрочную пользу.

                  Однажды нам понадобилось организовать управление для самодельной штамповочной линии. Линия самодельная, а значит и управление, сделаем самодельное. Мы не использовали промышленные стандарты для передачи данных. Было решено, всё сделать из подручных материалов и ненужного старого компьютера. Главные условия: просто, дёшево, быстро. Надёжность – как получится. Расскажу, как мы это сделали.
                  Читать дальше →
                • Реализация псевдо-3D в гоночных играх

                  • Перевод

                  Введение


                  Почему псевдо-3d?

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

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

                  Стоит заметить, что не в каждой старой гоночной игре используются эти техники. В действительности описываемый в статье метод — это только один из способов создания псевдотрёхмерной дороги. В других случаях используются спроецированные и отмасштабированные спрайты или различные способы реального проецирования дороги. Степень смешения реальной математики с трюками зависит от создателей. Надеюсь, вам понравится изучение предложенного мной спецэффекта.
                  Читать дальше →
                • Vertica+Anchor Modeling = запусти рост своей грибницы

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


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