Pull to refresh
104
0
Евгений @Gugic

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

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

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


Total votes 29: ↑27 and ↓2 +25
Comments 0

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

Reading time 8 min
Views 14K


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

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

Reading time 20 min
Views 85K

enter image description here


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

Читать дальше →
Total votes 87: ↑84 and ↓3 +81
Comments 39

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

Reading time 44 min
Views 209K


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

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

Reading time 18 min
Views 60K

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


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


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


Читать дальше →
Total votes 60: ↑58 and ↓2 +56
Comments 33

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

Reading time 6 min
Views 20K

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




Читать дальше →
Total votes 18: ↑17 and ↓1 +16
Comments 15

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

Reading time 16 min
Views 99K

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

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

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

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

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

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

Reading time 17 min
Views 11K
Примечание переводчика: Оригинал здесь. Все примеры в оригинале написаны на 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);


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

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

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

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


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

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

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

Про то, почему отключение pagefile-а скорее вредно, чем полезно — как нибудь в другой раз, а пока…
Под катом много однообразных картинок и немножко унылого текста
Total votes 532: ↑516 and ↓16 +500
Comments 365

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

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

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

И что же них такого деформированного?
Total votes 461: ↑436 and ↓25 +411
Comments 558

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

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

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

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



Читать дальше →
Total votes 255: ↑245 and ↓10 +235
Comments 182

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

Reading time 18 min
Views 114K

Вступление


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

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

Reading time 10 min
Views 77K
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-файл»!
Читать дальше →
Total votes 71: ↑69 and ↓2 +67
Comments 23

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

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

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

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

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

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

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

Reading time 5 min
Views 25K
Вот уже полтора года я использую Symfony 2 для разработки web-приложений. За это время я трижды начинал новый проект, еще в трех проектах работал с унаследованным кодом, а также провел ревью около 15 тестовых заданий на знание фреймворка.

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

Читать дальше →
Total votes 75: ↑60 and ↓15 +45
Comments 86

Юнит-тестирование моделей в Yii

Reading time 6 min
Views 19K
Сейчас я расскажу про применение техники TDD для разработки моделей, используя Yii-framework.
Изначально предполагается, что была прочитана тема «Тестирование» из официального мануала (http://yiiframework.ru/doc/guide/ru/test.overview).

Итак, окружение настроено и сейчас нашей задачей будет — создать модели категории и продуктов(Category, Product) и покрыть их тестами.

Читать дальше →
Total votes 16: ↑14 and ↓2 +12
Comments 11

На пути к созданию безопасного веб-ресурса. Часть 1 — серверное ПО

Reading time 7 min
Views 98K
Я уже довольно долгое время хочу формализовать все свои мысли, опыт, ежедневно применяемый на практике, и многое другое в одном месте и предоставить их общественности. Уверен, многим этот материал будет полезен. Он посвящен различным моментам в конфигурации серверного ПО Linux и безопасным подходам к созданию сайтов/приложений на php (все же это до сих пор одна из самых популярных связок, хоть её успешно и подвигают другие технологии. Но советы так же легко применимы и к веб-ресурсам на других технологиях).

Т.е. речь идет о типичной ситуации. Проект (стартап), купили под него сервер и разворачиваем на нем сайт. Бизнесу не нужно тратить лишних денег на сервера (поэтому будут выбраны наиболее производительные связки ПО), а так же нужно, чтобы все было безопасно, при чем бесплатно :)
Много текста. По-другому никак
Total votes 170: ↑159 and ↓11 +148
Comments 47

Information

Rating
Does not participate
Location
California, США
Date of birth
Registered
Activity