• Сделаем это по-быстрому: голосовой бот на Dialogflow и Voximplant

    • Tutorial
    Голосовые боты были и остаются полезной фичей для общения с клиентами. Потому что если что-то возможно автоматизировать, то надо срочно это делать. Подтверждение заказов и информация о них, запись обратной связи от клиентов, распознавание голоса и действия согласно тому, что распозналось и т.д. Кстати, о последнем – сделать бота с распознаванием в 2018 году стало еще проще: Voximplant отлично умеет распознавать и транскрибировать речь, а инструмент Dialogflow от “корпорации добра” хорошо анализирует текст. Ниже я покажу, как можно быстро собрать демо-бота, который расскажет о погоде в названном городе.


    Читать дальше →
  • Kubernetes 1.8: обзор основных новшеств



      Большое и хорошо организованное Open Source-сообщество, стоящее за разработкой Kubernetes, приучило нас ждать значимых и многочисленных изменений от каждого релиза. И Kubernetes 1.8 не стал исключением, представив на радость DevOps-инженерам и всем сочувствующимучастникам улучшения и новые возможности практически во всех своих компонентах.
      Читать дальше →
      • +23
      • 11.7k
      • 9
    • 33 способа ускорить ваш фронтенд в 2017 году

      • Translation

      enter image description here


      Вы уже используете прогрессивную загрузку? А как насчёт технологий Tree Shaking и разбиения кода в React и Angular? Вы настроили сжатие Brotli или Zopfli, OCSP stapling и HPACK-сжатие? А как у вас обстоят дела с оптимизацией ресурсов и клиентской части, со вложенностью CSS? Не говоря уже о IPv6, HTTP/2 и сервис-воркерах.

      Читать дальше →
    • На GitHub появился странный репозиторий, похожий на исходники движка Opera Presto [закрыто правообладателями]



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

        Исходные коды некоторых браузеров открыты и распространяются с условиями использования различной степени свободы. Поэтому мы увидели появление множества клонов Chromium, часть из которых, впрочем, быстро стала добавлять собственные улучшения относительно Chrome. А кто-то вообще отказался от собственного движка в пользу разработки Google. Так произошло с Opera в 2013 году. Позднее Opera последовала за форком WebKit и перешла на Blink.
        Читать дальше →
      • 50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

        • Translation
        • Tutorial


        Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
        Читать дальше →
      • 400 музыкальных инструментов для Javascript

        • Tutorial
        WebAudioFont — новая технология сходная с DLS, но предназначенная для применения в веб-приложениях Javascript.

        На данный момент позволяет использовать 400 (четыре сотни) музыкальных инструментов для воспроизведения звука или сгенерированной музыки.
        image
        Читать дальше →
        • +39
        • 14k
        • 5
      • Темная сторона TypeScript — @декораторы на примерах

          Декораторы — это невероятно круто. Они позволяют описывать мета информацию прямо в объявлении класса, группируя все в одном месте и избегая дублирования. Ужасно удобно. Однажды попробовав, вы уже никогда не согласитесь писать по-старому.


          Однако, несмотря на всю полезность, декораторы в TypeScript (заявлены также на стандарт) не так просты, как хотелось бы. Работа с ними требует навыков джедая, так как необходимо разбираться в объектной модели JavaScript (ну, вы поняли, о чем я), API несколько запутанный и, к тому же, еще не стабильный. В этой статье я немного расскажу об устройстве декораторов и покажу несколько конкретных приемов, как поставить эту темную силу на благо front-end разработки.


          Помимо TypeScript, декораторы доступны в Babel. В этой статье рассматривается только реализация в TypeScript.


          Читать дальше →
        • Amelisa. Оффлайн и реалтайм движок для React и Mongo


            Написал недавно движок для синхронизации данных, имеющий первоклассную поддержку оффлайна. Например, можно уйти в оффлайн, изменять данные, закрыть браузер, открыть браузер, открыть сайт (выйти в онлайн) и данные смержатся без потерь. Также во время онлайна данные между клиентом и сервером синхронизируются в реальном времени. Хочу рассказать, в чём была идея, какие есть подобные решения/технологии и кому это может пригодиться.




            Читать дальше →
          • Angular 1.5: Компоненты


              Не так давно увидел свет релиз Angular 1.5, который привносит множество интересных нововведений. Важной особенностью

              данной версии является то, что это первый из череды релизов, который должен сгладить концептуальный разрыв между Angular1.x и Angular2.x. Для людей, у которых есть необходимость вести проекты на Angular сейчас, но в будущем планируется постепенная миграция на Angular2, это очень радостная новость.

              В данной статье я постараюсь осветить основные нововведения:

              • Компоненты!
              • Односторонние биндинги!
              • Мульти-слот трансклюды!

              Полный список изменений доступен в репозитории ангуляра. Так же нас ждет небольшой примерчик использования перечисленных фич.
              Читать дальше →
            • Списки из lambda-функций

              • Translation
              Примечание переводчика: Оригинал здесь. Все примеры в оригинале написаны на JavaScript, но я решил перевести их на Scheme. Уверен, менее понятно не стало, но зато видна вся красота этого языка.
              UPD: добавил ко всем примерам справа еще и оригинальные примеры на JavaScript.


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

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

              (define x 10)
              
              (define (f y)
                  (display x) (newline)
                  (display y) (newline)
              )
              
              (define g f)
              (f 1)
              (g 2)
              

              var x = 10;
              
              var f = function(y) {
                  console.log(x);
                  console.log(y);
              }
              
              var g = f;
              
              f(1);
              g(2);
              


              Эта статья — просто разминка для мозгов, а не то, что можно было бы использовать в реальном коде. Но как гитарист играет гаммы, которые он никогда не использует в настоящей песне, так же и программистам стоит разминать свои мозги время от времени.
              Читать дальше →
              • +37
              • 8.2k
              • 9
            • Великая речь великого человека

                Это был его первый звуковой фильм. Его личный протест, никто не соглашался дать ему денег на картину, разоблачающую Гитлера как сумасшедшего тирана. Гитлер по мнению журнала «The Times», был Человеком года и великим политиком.
                Тогда Чаплин снял фильм «Великий Диктатор» на свои личные средства.
                Фильм, послужившей одной из причин его изгнаия из США.
                Фильм, который посмотрел Гитлер и объявил Чаплина своим личным врагом.

                И речь, которая остается актуальной и по сей день, не смотря на то, что уже прошло больше 70-ти лет.
                3.809.000 — просмотров у оригинального ролика, который уже перевели на 22 различных языка.
                Вот русские субтитры к этому ролику:


                Почему этот ролик на хабре? Это первое, что пришло к вам в голову после просмотра?
                Upd. Огромное спасибо всем, кто гадит мне в карму и угрожает в личке.
                Upd2. Это первый случай на хабре, пост не по it? Нет.
                *пруф1 freetonik Doug 'QualiaSoup' Непредубежденность
                *пруф2 муравьи зомби
                Читать дальше →
              • Ускорение загрузки Windows for fun and profit

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

                  Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
                  Под катом много однообразных картинок и немножко унылого текста
                • Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

                    Я достаточно часто сталкивался с подобным мнением и не придавал ему особого значения, но когда женский коллектив нашей организации поздравил программистов с 23-м февраля по доброму назвав их «космическими войсками», решил всё же расставить определенные акценты в данном вопросе, т.к. одна из моих профессий связана напрямую с психоанализом. Да и баш уже не молчит.

                    И что же них такого деформированного?
                  • Как не потерять деньги, желая сэкономить. Правила интернет покупок из-за рубежа

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

                      Итак, начнем. Заранее прошу прощения за большое количество текста и излишнее словоблудие.
                      Читать дальше →
                    • Нано-эппл, или как стать производителем электроники

                      Итак, вы решили сделать что-то вот эдакое! Новый MP3-плеер, пульт управления для телевизора, да хоть датчик температуры. В моем случае это был пульт управления фотоаппаратами, и идея пришла в час ночи, когда я ради развлечения фотографировал стройку при свете луны. Началось это все в сравнительно небольшом сибирском городе… а сейчас у нас производство в Техасе и дистрибьюторы по всему миру. Вспоминая этот веселый путь, хотелось бы описать как удачные находки, так и ошибки, допущенные в процессе подготовки к производству.
                      Читать дальше →
                    • На электричестве до Крыма

                      «Сколько жрёт, сколько прёт и где тут двигатель» — классические вопросы на каждом светофоре. Е-байк, летящий по проспекту со скоростью 80км\ч, рвёт шаблоны соседей по потоку раз и навсегда. Но то сугубо утилитарные поездки, не отличающиеся особой автономией. Сама идея о загородном вояже может показаться абсурдной. В первую очередь мыслью – «А где в пути искать розетки?». Но обо все по порядку. Хотя самые ленивые могут сразу смотреть последний ролик.
                      Типичная дальнобойность самодельного электровелосипеда не превышает 50км (серийные муляжи со свинцовыми аккумуляторами даже не рассматриваются). Литий и только литий. В среднем надо около 1Квтч электричества на преодоление указанной выше дистанции при 50км\ч. Пословица «тише едешь – дальше будешь» актуальна как никогда. При междугородних перегонах требуется покрывать 100-150км, отсюда вытекает требование к набортной емкости 2.5+Квтч. Это довольно серьезная емкость, поэтому первым шагом стала замена батареи на более «долгоиграющую». Так возник проект «Крымский чемодан», 240 элементов 18650 Li-ion LG D1:



                      Читать дальше →
                    • Правильное использование Yii

                      Вступление


                      На самом деле, в заголовке должен стоять знак вопроса. Довольно долго я не кодил как на yii, так и на php в целом. Сейчас, вернувшись, хочется переосмыслить свои принципы разработки, понять куда двигаться дальше. И лучший способ — изложить их и выложить на ревью профессионалам, что я и делаю в этом посте. Несмотря на то, что я преследую чисто корыстные цели, пост будет полезен многим новичкам, и даже не новичкам.
                      Читать дальше →
                    • Linux Kernel EFI Boot Stub или «Сам себе загрузчик»

                      UEFI Tux Logo

                      Введение


                      Прочитав недавнюю статью Загрузка ОС Linux без загрузчика, понял две вещи: многим интересна «новинка», датируемая аж 2011 годом; автор не описал самого основного, без чего, собственно, и работать ничего не будет в некоторых случаях. Также была ещё одна статья, но либо она уже устарела, либо там опять таки много лишнего и недосказанного одновременно.

                      А конкретно, был упущен основной момент — сборочная опция ядра CONFIG_EFI_STUB. Так как в последних версиях U(lu/ku/edu/*etc*)buntu эта опция по умолчанию уже включена, никаких подозрений у автора не появилось.
                      Насколько мне известно, на текущий момент она включена в дистрибутивах указанных версий и выше: Arch Linux, Fedora 17, OpenSUSE 12.2 и Ubuntu 12.10. В комментах ещё упомянули, что Debian с ядром 2.6 умеет, но это не более, чем бэкпорт с последних версий. На этих дистрибутивах пересобирать вообще ничего не нужно! А ведь на других CONFIG_EFI_STUB, скорее всего, либо вообще отсутствует, т. к. опция доступна только с ядра версии 3.3.0 и выше, либо выключена по умолчанию. Соответственно, всё, описанное ниже, справедливо для ядра, собранного с опцией CONFIG_EFI_STUB.

                      Итак, что же такое Linux Kernel EFI Boot Stub?


                      Общая информация

                      А ни что иное, как… «exe-файл»!
                      Читать дальше →
                    • Проблема инициализации объектов в ООП приложениях на PHP. Поиск решения при помощи шаблонов Registry, Factory Method, Service Locator и Dependency Injection

                        Так уж повелось, что программисты закрепляют удачные решения в виде шаблонов проектирования. По шаблонам существует множество литературы. Классикой безусловно считается книга Банды четырех «Design Patterns» by Erich Gamma, Richard Helm, Ralph Johnson and John Vlissides" и еще, пожалуй, «Patterns of Enterprise Application Architecture» by Martin Fowler. Лучшее из того, что я читал с примерами на PHP – это «PHP Objects, Patterns and Practice» by Matt Zandstra. Так уж получилось, что вся эта литература достаточно сложна для людей, которые только начали осваивать ООП. Поэтому у меня появилась идея изложить некоторые паттерны, которые я считаю наиболее полезными, в сильно упрощенном виде. Другими словами, эта статья – моя первая попытка интерпретировать шаблоны проектирования в KISS стиле.
                        Сегодня речь пойдет о том, какие проблемы могут возникнуть с инициализацией объектов в ООП приложении и о том, как можно использовать некоторые популярные шаблоны проектирования для решения этих проблем.
                        Читать дальше.
                      • YaUI — буддийская кросплатформенная нативная JavaScript библиотека UI

                        Эта история началась, когда мой друг и соратник, Яп Чэ-шень, сказал мне следующее:

                        — Я больше не хочу никогда в своей жизни писать на Дельфи! Я поклялся: больше ни единой строчки! С сегодняшнего дня все свои проекты и библиотеки перевожу на JavaScript!

                        Яп — китаец, с классическим менталитетом, свойственным его народу. Я многие годы работаю с ним над гуманитарными проектами в области оцифровки древней литературы, в первую очередь, «Буддийской библии» — Типитаки. Познания Япа, как в области самых древних текстов, так и самого современного программирования, не перестают удивлять меня уже более десяти лет — с тех пор, как мы начали сотрудничать и общаться на самые разные темы. Для себя я давно понял, что, если Яп что-то говорит, а я не согласен или не понимаю, то это лишь значит, что надо продолжать обсуждение, и вся громада причин и следствий в размышлениях моего друга выйдет на поверхность, и как всегда окажется, что Яп прав. Кажущаяся эмоциональность китайцев, на самом деле, необычайно рациональна.
                        Читать дальше →