Как стать автором
Обновить
96
Карма
0.3
Рейтинг
Евгений @Gugic

Программист руками

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

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


Всего голосов 29: ↑27 и ↓2 +25
Просмотры 11K
Комментарии 0

Kubernetes 1.8: обзор основных новшеств

Блог компании Флант Системное администрирование *Серверное администрирование *DevOps *Kubernetes *


Большое и хорошо организованное Open Source-сообщество, стоящее за разработкой Kubernetes, приучило нас ждать значимых и многочисленных изменений от каждого релиза. И Kubernetes 1.8 не стал исключением, представив на радость DevOps-инженерам и всем сочувствующимучастникам улучшения и новые возможности практически во всех своих компонентах.
Читать дальше →
Всего голосов 25: ↑24 и ↓1 +23
Просмотры 13K
Комментарии 9

33 способа ускорить ваш фронтенд в 2017 году

Блог компании Badoo Высокая производительность *Разработка веб-сайтов *JavaScript *Программирование *
Перевод

enter image description here


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

Читать дальше →
Всего голосов 87: ↑84 и ↓3 +81
Просмотры 85K
Комментарии 39

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

Программирование *


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

Исходные коды некоторых браузеров открыты и распространяются с условиями использования различной степени свободы. Поэтому мы увидели появление множества клонов Chromium, часть из которых, впрочем, быстро стала добавлять собственные улучшения относительно Chrome. А кто-то вообще отказался от собственного движка в пользу разработки Google. Так произошло с Opera в 2013 году. Позднее Opera последовала за форком WebKit и перешла на Blink.
Читать дальше →
Всего голосов 63: ↑62 и ↓1 +61
Просмотры 63K
Комментарии 239

50 оттенков Go: ловушки, подводные камни и распространённые ошибки новичков

Блог компании VK Программирование *Совершенный код *Go *
Туториал
Перевод


Go — простой и забавный язык. Но в нём, как и в любых других языках, есть свои подводные камни. И во многих из них сам Go не виноват. Одни — это естественное следствие прихода программистов из других языков, другие возникают из-за ложных представлений и нехватки подробностей. Если вы найдёте время и почитаете официальные спецификации, вики, почтовые рассылки, публикации в блогах и исходный код, то многие из подводных камней станут для вас очевидны. Но далеко не каждый так начинает, и это нормально. Если вы новичок в Go, статья поможет сэкономить немало часов, которые вы бы потратили на отладку кода. Мы будем рассматривать версии Go 1.5 и ниже.
Читать дальше →
Всего голосов 80: ↑76 и ↓4 +72
Просмотры 180K
Комментарии 270

400 музыкальных инструментов для Javascript

JavaScript *Разработка игр *
Туториал
WebAudioFont — новая технология сходная с DLS, но предназначенная для применения в веб-приложениях Javascript.

На данный момент позволяет использовать 400 (четыре сотни) музыкальных инструментов для воспроизведения звука или сгенерированной музыки.
image
Читать дальше →
Всего голосов 39: ↑39 и ↓0 +39
Просмотры 14K
Комментарии 5

Темная сторона TypeScript — @декораторы на примерах

Блог компании Docsvision Разработка веб-сайтов *JavaScript *Программирование *TypeScript *

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


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


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


Читать дальше →
Всего голосов 60: ↑58 и ↓2 +56
Просмотры 55K
Комментарии 33

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

Разработка веб-сайтов *JavaScript *Разработка мобильных приложений *Node.JS *ReactJS *

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




Читать дальше →
Всего голосов 18: ↑17 и ↓1 +16
Просмотры 20K
Комментарии 15

Angular 1.5: Компоненты

JavaScript *Angular *

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

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

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

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

Полный список изменений доступен в репозитории ангуляра. Так же нас ждет небольшой примерчик использования перечисленных фич.
Читать дальше →
Всего голосов 21: ↑21 и ↓0 +21
Просмотры 98K
Комментарии 18

Списки из lambda-функций

Функциональное программирование *
Перевод
Примечание переводчика: Оригинал здесь. Все примеры в оригинале написаны на 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);


Эта статья — просто разминка для мозгов, а не то, что можно было бы использовать в реальном коде. Но как гитарист играет гаммы, которые он никогда не использует в настоящей песне, так же и программистам стоит разминать свои мозги время от времени.
Читать дальше →
Всего голосов 41: ↑39 и ↓2 +37
Просмотры 10K
Комментарии 9

Великая речь великого человека

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

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


Почему этот ролик на хабре? Это первое, что пришло к вам в голову после просмотра?
Upd. Огромное спасибо всем, кто гадит мне в карму и угрожает в личке.
Upd2. Это первый случай на хабре, пост не по it? Нет.
*пруф1 freetonik Doug 'QualiaSoup' Непредубежденность
*пруф2 муравьи зомби
Читать дальше →
Всего голосов 173: ↑95 и ↓78 +17
Просмотры 5.7K
Комментарии 135

Ускорение загрузки Windows for fun and profit

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

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Всего голосов 532: ↑516 и ↓16 +500
Просмотры 792K
Комментарии 364

Психологическая деформация программистов. Взгляд с обеих сторон баррикад

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

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

И что же них такого деформированного?
Всего голосов 461: ↑436 и ↓25 +411
Просмотры 131K
Комментарии 558

Нано-эппл, или как стать производителем электроники

Компьютерное железо
Из песочницы
Итак, вы решили сделать что-то вот эдакое! Новый MP3-плеер, пульт управления для телевизора, да хоть датчик температуры. В моем случае это был пульт управления фотоаппаратами, и идея пришла в час ночи, когда я ради развлечения фотографировал стройку при свете луны. Началось это все в сравнительно небольшом сибирском городе… а сейчас у нас производство в Техасе и дистрибьюторы по всему миру. Вспоминая этот веселый путь, хотелось бы описать как удачные находки, так и ошибки, допущенные в процессе подготовки к производству.
Читать дальше →
Всего голосов 119: ↑114 и ↓5 +109
Просмотры 4.1K
Комментарии 88

На электричестве до Крыма

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



Читать дальше →
Всего голосов 255: ↑245 и ↓10 +235
Просмотры 255K
Комментарии 181

Правильное использование Yii

Yii *
Из песочницы

Вступление


На самом деле, в заголовке должен стоять знак вопроса. Довольно долго я не кодил как на yii, так и на php в целом. Сейчас, вернувшись, хочется переосмыслить свои принципы разработки, понять куда двигаться дальше. И лучший способ — изложить их и выложить на ревью профессионалам, что я и делаю в этом посте. Несмотря на то, что я преследую чисто корыстные цели, пост будет полезен многим новичкам, и даже не новичкам.
Читать дальше →
Всего голосов 79: ↑66 и ↓13 +53
Просмотры 113K
Комментарии 54

Linux Kernel EFI Boot Stub или «Сам себе загрузчик»

Настройка Linux **nix *UEFI *
Из песочницы
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-файл»!
Читать дальше →
Всего голосов 71: ↑69 и ↓2 +67
Просмотры 73K
Комментарии 23

Проблема инициализации объектов в ООП приложениях на PHP. Поиск решения при помощи шаблонов Registry, Factory Method, Service Locator и Dependency Injection

PHP *
Так уж повелось, что программисты закрепляют удачные решения в виде шаблонов проектирования. По шаблонам существует множество литературы. Классикой безусловно считается книга Банды четырех «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 стиле.
Сегодня речь пойдет о том, какие проблемы могут возникнуть с инициализацией объектов в ООП приложении и о том, как можно использовать некоторые популярные шаблоны проектирования для решения этих проблем.
Читать дальше.
Всего голосов 59: ↑53 и ↓6 +47
Просмотры 47K
Комментарии 31

YaUI — буддийская кросплатформенная нативная JavaScript библиотека UI

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

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

Яп — китаец, с классическим менталитетом, свойственным его народу. Я многие годы работаю с ним над гуманитарными проектами в области оцифровки древней литературы, в первую очередь, «Буддийской библии» — Типитаки. Познания Япа, как в области самых древних текстов, так и самого современного программирования, не перестают удивлять меня уже более десяти лет — с тех пор, как мы начали сотрудничать и общаться на самые разные темы. Для себя я давно понял, что, если Яп что-то говорит, а я не согласен или не понимаю, то это лишь значит, что надо продолжать обсуждение, и вся громада причин и следствий в размышлениях моего друга выйдет на поверхность, и как всегда окажется, что Яп прав. Кажущаяся эмоциональность китайцев, на самом деле, необычайно рациональна.
Читать дальше →
Всего голосов 50: ↑44 и ↓6 +38
Просмотры 18K
Комментарии 26

Каким бы я хотел видеть свой первый проект на Symfony

PHP *Symfony *
Из песочницы
Вот уже полтора года я использую Symfony 2 для разработки web-приложений. За это время я трижды начинал новый проект, еще в трех проектах работал с унаследованным кодом, а также провел ревью около 15 тестовых заданий на знание фреймворка.

Наверное, было бы здорово иметь возможность вернуться на полтора года назад и дать себе несколько советов перед стартом своего первого проекта. Увы, это невозможно. Но может быть, мои советы могут пригодятся другим начинающим разработчикам на Symfony?

Читать дальше →
Всего голосов 75: ↑60 и ↓15 +45
Просмотры 25K
Комментарии 86

Информация

В рейтинге
1 641-й
Откуда
California, США
Дата рождения
Зарегистрирован
Активность