• Puppeteer c ES6 в ноде и браузере, или почему Zora это лучший тест-фреймворк в своей нише

      Все хорошо, пока вам нужно прогнать JS исходники через бабели-шмабели для создания бандла, но начинается сущий ад, когда вы захотите написать тесты для вашего сайта или бибилиотеки. Проблема в том, что все тест-фреймворки используют специфичные функции из ноды или/и написаны в ES5. Таким образом запуск E2E тестов становятся не тривиальной задачей и предлагает танцы с бубном транспиляций и sourcemap-ов для покрытия кода. Вы же не хотите что бы ошибки указывали не туда?



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

      Запуск экспериментов
    • Градиентный спуск по косточкам

        В интернете есть много статей с описанием алгоритма градиентного спуска. Здесь будет еще одна.


        8 июля 1958 года The New York Times писала: «Психолог показывает эмбрион компьютера, разработанного, чтобы читать и становиться мудрее. Разработанный ВМФ… стоивший 2 миллиона долларов компьютер "704", обучился различать левое и правое после пятидесяти попыток… По утверждению ВМФ, они используют этот принцип, чтобы построить первую мыслящую машину класса "Перцептрон", которая сможет читать и писать; разработку планируется завершить через год, с общей стоимостью $100 000… Ученые предсказывают, что позже Перцептроны смогут распознавать людей и называть их по имени, мгновенно переводить устную и письменную речь с одного языка на другой. Мистер Розенблатт сказал, что в принципе возможно построить "мозги", которые смогут воспроизводить самих себя на конвейере и которые будут осознавать свое собственное существование» (цитата и перевод из книги С. Николенко, «Глубокое обучение, погружение в мир нейронный сетей»).


        Ах уж эти журналисты, умеют заинтриговать. Очень интересно разобраться, что на самом деле представляет из себя мыслящая машина класса «Перцептрон».

        Читать дальше →
      • DevConf 2015: видео докладов секции PHP

          Ежегодная конференция профессиональных веб-разработчиков DevConf проходит с 2010 года. Она состоит из нескольких секций, посвященных самым популярным языкам и технологиям веб-разработки. В 2015 году году компания Badoo взяла на себя важную миссию — записать видео выступлений, чтобы те, кто не смог посетить конференцию, могли посмотреть их в любое время.

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

          Секция PHP конференции DevConf 2015

          В первую очередь хотелось бы отметить доклад Дмитрия Стогова (Zend Technologies) «Релиз PHP 7: что нас ждет в октябре 2015». Не будем мучить вас переводом «чейнджлога» седьмой версии, а скажем просто: смотреть всем, кто имеет хоть какое-то отношение к PHP. Если вы за свою жизнь написали хотя бы строчку кода на PHP, то, скорее всего, уже слышали про сумасшедшую производительность, JIT и spaceship operator. JIT в PHP так и не появился, но оптимизации проведены масштабные. В докладе Дмитрий рассказывает много о внутренней кухне PHP, есть графики производительности разных версий PHP и HHVM на реальных приложениях. Badoo сейчас как раз в процессе перехода на PHP 7, нам пришлось сильно «перекопать» инфраструктуру тестирования и переписать кучу расширений, но мы на финишной прямой и можем подтвердить, что PHP 7 действительно показывает очень серьезный рост производительности. Какой именно получается прирост? Пока секрет. Ждите от нас отдельной статьи на эту тему, когда мы поборем последние косяки, отлавливаемые на продакшн-трафике.


          Читать дальше →
          • +19
          • 16.6k
          • 1
        • 350+ полезных ресурсов, книг и инструментов для работы с Docker

          • Translation
          Мы уже ни раз приводили полезные руководства и подборки источников для разработчиков. На этот раз мы решили продолжить тему контейнеров, которую мы затрагивали ранее, и рассказать о подборке тематических ресурсов на GitHub.

          Читать дальше →
          • +28
          • 81.3k
          • 8
        • Применение машинного обучения для увеличения производительности PostgreSQL

            image

            Машинное обучение занимается поиском скрытых закономерностей в данных. Растущий рост интереса к этой теме в ИТ-сообществе связан с исключительными результатами, получаемыми благодаря ему. Распознавание речи и отсканированных документов, поисковые машины — всё это создано с использованием машинного обучения. В этой статье я расскажу о текущем проекте нашей компании: как применить методы машинного обучения для увеличения производительности СУБД.
            В первой части этой статьи разбирается существующий механизм планировщика PostgreSQL, во второй части рассказывается о возможностях его улучшения с применением машинного обучения.

            Читать дальше →
            • +43
            • 19.4k
            • 6
          • Видео докладов Badoo с конференции Highload 2015

              Наконец-то у нас появились видео выступления наших спикеров на Highload 2015, которые мы с удовольствием выкладываем.

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

              1. «Near-realtime аналитика событий в высоконагруженном проекте», доклад Александра Крашенинникова



              Еще 3 отличных доклада
              • +23
              • 12.2k
              • 1
            • Как разрабатывается Cloud Foundry

                CF community logoЯ кратко расскажу о процессе разработки Cloud Foundry (CF), особенностях open source модели и немного личного опыта.

                В 2013 году я стал активным пользователем платформы, когда IBM запустила внутреннюю бету Bluemix, в начале этого года я принял участие в портировании Cloud Foundry на архитектуру POWER8, а с середины октября я стал членом CF core team, пройдя CF Dojo. Но обо всем по порядку.

                Не буду углубляться в историю или объяснять что такое Cloud Foundry, но вот необходимый минимум фактов. CF — это Platform as a Service (PaaS), разработанная VMWare и позднее переданная Pivotal Software. Исходный код был открыт, сейчас еще есть отдельный инкубатор CF проектов. Чуть позже была создана Cloud Foundry Foundation, в которую вошли Pivotal, IBM, VMWare, EMC, GE, Intel, SAP, настоящее время в нее входит более 50 организаций. Изначально платформа была написана на Ruby, позднее часть компонент были переписаны на Go.
                Читать дальше →
                • +10
                • 11.3k
                • 2
              • Образы и контейнеры Docker в картинках

                docker container

                Перевод поста Visualizing Docker Containers and Images, от новичка к новичкам, автор на простых примерах объясняет базовые сущности и процессы в использовании docker.

                Если вы не знаете, что такое Docker или не понимаете, как он соотносится с виртуальными машинами или с инструментами configuration management, то этот пост может показаться немного сложным.

                Пост предназначен для тех, кто пытается освоить docker cli, понять, чем отличается контейнер и образ. В частности, будет объяснена разница между просто контейнером и запущенным контейнером.
                Читать дальше →
                • +31
                • 105k
                • 6
              • Исповедь Google-спамера

                • Translation

                Правдивая история о том, как беспринципный «ботаник» заработал миллионы долларов на поисковом гиганте


                image

                Прежде чем заняться телемаркетингом, я как-то умудрился заработать за месяц $50 000, и все благодаря спаму в Google. Причем занятию этому нужно было уделять всего порядка 10 часов в неделю. Но, признаться честно, не советую, вот совершенно откровенно, повторять такие «подвиги».

                В этом посте я как раз и решил пояснить, почему.

                Мое видение мира в 2009 году


                Я вовсе не собирался спамить в интернете. Но Google не оставил мне выбора, да тогда я рассуждал, примерно, так.

                Если спамить так плохо, думал я, почему же спам всегда отлично работает? Большинство черных SEO-шников, вероятно, придерживаются той же точки зрения. Они просто находят ряд подходящих оправданий спаму, направленному против индексации Google:

                • Мы же помогаем Google совершенствовать существующий алгоритм индексации!
                • Кто сказал, что контент наше все?!? LOL! Ссылки, вот что вам нужно. Google врет. Спам по ним плачет.
                • Если не будем спамить мы, этим займутся наши конкуренты, а, значит, они нас сделают. Придется спамить.
                • Вообще-то, если вы не в курсе, мы заботимся о своих клиентах: только так мы сможем выиграть битву против гигантской империи зла, которая того и гляди поработит всех, наживаясь на плате за клики!

                Читать дальше →
              • Способ быстрого измерения производительности случайного сервера

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

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

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

                  В этой статье я хочу рассказать о тех приёмах и инструментах, которые мы используем для оценки производительности сервера.
                  Читать дальше →
                • Титаник на Kaggle: вы не дочитаете этот пост до конца

                    Привет, хабр!

                    #{Data Science для новичков}

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

                    Данная работа описывает мою попытку создать модель для предсказания выживших пассажиров «Титаника». Основная задача — тренировка в использовании инструментов применяемых в Data Science для анализа данных и презентации результатов исследования, поэтому данная статья будет очень и очень длинной. Основное внимание уделено исследовательскому анализу (exploratory research) и работе по созданию и выбору предикторов (feature engineering). Модель создаётся в рамках соревнования Titanic: Machine Learning from Disaster проходящего на сайте Kaggle. В своей работе я буду использовать язык «R».
                    Читать дальше →
                    • +28
                    • 49.6k
                    • 5
                  • Linux-контейнеры дома: зачем и как




                      Рассуждения


                      При упоминании словосочетания «контейнерная виртуализация», многим на ум сразу же приходят Virtuozzo и OpenVZ, а также Docker. Ассоциируется же это все, в первую очередь, с хостингом, VPS и другими подобными вещами.

                      Дома, на личных компьютерах многие используют виртуальные машины: в основном, пожалуй, Virtualbox. Как правило, для того, чтобы работая под Linux, иметь под рукой Windows или наоборот. Однако, при наличии множества родственных Linux-операционок, я стал замечать, что использование виртуальных машин — это, мягко говоря, нерационально.
                      Читать дальше →
                    • Машинное обучение, предсказание будущего и анализ причин успеха в электронной коммерции



                        Мы продолжаем публиковать материалы с летней конференции Bitrix Summer Fest. На этот раз хотим поделиться выступлением Александра Сербула, посвящённым текущим трендам в сфере машинного обучения, доступным методикам, а также практическим способам использования математики для увеличения конверсии и удержания клиентов.

                        Материал ни в коем случае не претендует быть формальным и научно строгим. Воспринимайте его как лёгкое, весёлое, полезное и ознакомительное «чтиво».
                        Читать дальше →
                        • +21
                        • 25.4k
                        • 9
                      • Муравьиная оптимизация и сетевые алгоритмы

                        • Translation
                        Как вы могли заметить, у нас тут затишье. Но наш творческий поиск не прекращается, и первая октябрьская публикация будет посвящена ACO (Ant Colony Optimization)



                        Отдавая должное автору, мы не будем публиковать здесь последнюю часть статьи, содержащую пример на JavaScript, а предложим вам опробовать его на сайте оригинала. Под катом же вы найдете перевод теоретической части, доступно рассказывающей о тонкостях муравьиной оптимизации в различных сценариях.
                        Читать дальше →
                        • +16
                        • 17k
                        • 1
                      • Мобильная связь в Европах

                          Я как-то писал о своём выборе роуминговых опций наших сотовых операторов. Тогда я остановился на «Ноль без границ» от МТС для входящих и на тарифе «Вокруг света» от Мегафона для исходящих и интернета. Но уже прошло три года, многое изменилось. Решил задокументировать нынешнее состояние дел.

                          Для начала — почему только Европа. Тут всё просто — я обычно езжу в отпуск в Европу. Не так часто, как некоторые ездят, но сильно чаще, чем сам езжу в другие части света.
                          Почему вообще возник такой вопрос, почему не купить местную симкарту в стране пребывания? Во-первых, туристу это не всегда возможно. Во-вторых, туристу это не всегда выгодно, особенно если приехал на пару дней. Но если я в стране на неделю и больше, то местную симкарту стараюсь приобрести.
                          DontPanicCartoon580_39474a
                          Читать дальше →
                        • Задача о конфетах (улучшаем результат)

                          28 сентября viktorpanasiuk опубликовал задачу, решение которой призвано снизить издержки производства небезизвестной кондитерской фабрики, сделав её товар более конкурентноспособным на рынке и более доступным покупателю.

                          Необходимо было найти максимально допустимое отклонение массы конфеты при ее производстве, чтобы нетто коробки, состоящей из 12 штук их, не выходило за пределы 310±7 грамм в 90% случаев. Закон распределения считать нормальным.

                          Был получен ответ, что если среднеквадратичное отклонение массы конфеты при производстве не превышает =1,2248, то данная величина не ограничена сверху.

                          Под катом вас ожидает улучшение полученного результата по модулю некоторых, как мне кажется — разумных, предположений. Дальнейшее изложено недостаточно строго, но всё же требует знаний математического анализа и теории вероятности в объёме технического вуза.
                          Мне это интересно
                        • Сети для Самых Маленьких. Микровыпуск №5. FAQ по сетевым технологиям

                            Пока весь мир с замиранием ждёт 11-го выпуска СДСМ, посвящённого MPLS BGP L3VPN, я решил сделать вольный перевод неплохой статьи Джереми Стреча с Packetlife.net.

                            Это подборка небольших FAQ для новичков.

                            #На каком уровне OSI работает протокол Ч?
                            #Какая разница между маршрутизатором и многоуровневым коммутатором?
                            #Какая разница между forwarding и control planes?
                            #Какая разница между MTU и MSS?
                            #Какая разница между интерфейсами VLAN и BVI?
                            #Как работает туннельный интерфейс?
                            #Что означают четыре типа адресов в NAT?
                            #Могу ли я использовать адрес сети и широковещательный адрес в NAT-пуле?
                            #Почему нам нужны IP-адреса? Разве нам не хватит MAC-адресации для всего?
                            #Позволяет ли QoS расширить пропускную способность?
                            Читать дальше →
                            • +32
                            • 84.1k
                            • 7
                          • Публикация логов в Elasticsearch — жизнь без регулярных выражений и без logstash


                              При использовании подхода из данного решения парсинг файлов будет не нужен. При изменении формата логирования или появлении новых сообщений не нужно поддерживать большой набор регулярок. Будем перехватывать вызовы методов error, warn, info, debug, trace логера и отправлять данные сразу в elasticsearch. С этим нам поможет аспектно-ориентированное программирование!
                              Программа, конфигурация и скринкаст...
                            • Go, практика асинхронного взаимодействия

                                Немножко про каналы, про выполнение в основном процессе, про то как вынести блокирующие операции в отдельную горутину.
                                • Каналы и пустое значение
                                • Односторонние каналы
                                • Выполнение в основном треде ОС
                                • Вынос блокирующих операций

                                Читать дальше →
                              • Big Data от А до Я. Часть 1: Принципы работы с большими данными, парадигма MapReduce

                                • Tutorial

                                Привет, Хабр! Этой статьёй я открываю цикл материалов, посвящённых работе с большими данными. Зачем? Хочется сохранить накопленный опыт, свой и команды, так скажем, в энциклопедическом формате – наверняка кому-то он будет полезен.



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



                                Начинать надо от простого к сложному, поэтому первая статья – о принципах работы с большими данными и парадигме MapReduce.


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