«Computer, how is my build doing?» и другие волшебные заклинания

Автор: admin от 4-04-2018, 12:55, посмотрело: 58

Барух Садогурский рассказывает, как с помощью сервиса голосовых команд Alexa можно добавить голосовой интерфейс к совершенно неожиданным вещам, таким как IntelliJ IDEA и Jenkins, а также, откинувшись в кресле с бокалом любимого напитка, управлять всем, чем угодно.





В основе статьи – выступление Баруха на конференции JPoint 2017 в Москве.

Категория: Программирование » Веб-разработка

 

Эксперименты с AR: когда C# встречается с CSS

Автор: admin от 4-04-2018, 12:55, посмотрело: 44

Эксперименты с AR: когда C# встречается с CSS

Часто при работе над проектом самые большие технические сложности возникают тогда, когда меньше всего этого ожидаешь. В моём случае это произошло, когда я работала с Google Creative Lab над прототипом эксперимента по переносу песни Грейс Вандервол Moonlight в дополненную реальность. Нам понравилась идея окружения зрителя красивым написанным от руки текстом песни, который будет раскрываться и парить в пространстве при движении по нему.



[spoiler=Наш AR-текст песни в реальном мире]Эксперименты с AR: когда C# встречается с CSS

Я была кодером проекта; когда я приступила к прототипу, то мне казалось, что самой сложной частью будет AR. Расположение и сохранение стабильного положения объектов в AR — это задача для огромного объёма сложных вычислений, правда? На самом деле, благодаря ARCore, взявшему на себя основные сложности, всё оказалось достаточно тривиальным. Однако с созданием анимированного эффекта рукописного текста в 3D-пространстве всё оказалось не так просто.



В этом посте я расскажу о некоторых хитрых хаках, которые я использовала для решения задачи анимирования нашего двухмерного рукописного текста в 3D-пространстве с помощью компонента Unity LineRenderer, обеспечивающего достаточную скорость даже при наличии тысяч точек.

Категория: Программирование » Веб-разработка

 

Реальность повторного использования

Автор: admin от 4-04-2018, 12:55, посмотрело: 46

Говорят, что не нужно изобретать велосипед. На первый взгляд это кажется очевидным. Если вы потратили время на разработку, то зачем делать это снова, можно ведь повторно использовать старое решение? Казалось бы, со всех сторон хороший вариант. Но не всё так просто. Как старый «седой» программист, я видел, как организации снова и снова становятся жертвами этого заблуждения, вкладываясь в предварительный дизайн и разработку, но никогда не достигая обещанного массивного ROI благодаря повторному использованию. На самом деле я считаю, что наша чрезмерно оптимистичная оценка пользы и простоты повторного использования — одна из самых распространённых и опасных ловушек в разработке ПО.



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

Категория: Программирование » Веб-разработка

 

Веб-воркеры в JavaScript: безопасный параллелизм

Автор: admin от 4-04-2018, 12:55, посмотрело: 57

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



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



Веб-воркеры в JavaScript: безопасный параллелизм




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



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



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

Категория: Программирование » Веб-разработка

 

Разработка AI для пошаговой игры на Node.js (часть 1)

Автор: admin от 4-04-2018, 09:30, посмотрело: 112

Разработка AI для пошаговой игры на Node.js (часть 1)
Всем привет!

Прошло целых полтора года с момента написания моей первой статьи на Хабре. С тех пор проект FOTM претерпел ряд изменений. В начале пройдёмся вкратце по всем модернизациям, а затем перейдём к детальному разбору основной фичи — AI.

Категория: Программирование » Веб-разработка

 

Ищем проблемы с конверсией сайта в Google Spreadsheets

Автор: admin от 3-04-2018, 17:55, посмотрело: 79

Привет, Хабр! Меня зовут Дмитрий Окунев, я работаю product-менеджером в финтех-компании ID Finance. Это первый пост в блоге компании. Здесь мы будем делиться опытом, в том числе и международной экспертизой. Поехали.



В большинстве онлайн-бизнесов конверсия сайта — краеугольный камень превращения лида в клиента. Мы в ID Finance делаем огромное количество изменений, которые могут отражаться на CR как в положительную, так и отрицательную сторону, поэтому без постоянного, буквально ежедневного трекинга эффективности конверсионной воронки работать было бы проблематично.

Есть много разных подходов к измерению конверсии своего сайта, мы для подобного трекинга разработали свой формат дэшборда, который основан на ежедневной автоматизированной выгрузке воронки из Google Analytics. Почему именно такой способ?




  • Google Analytics — сессионная аналитика, нас же в большинстве случаев интересуют пользователи, т.е. уникальные clientID. Эти данные проще всего получить, запросив метрику users из GA.

  • Дэшборд в нашем случае — это обычный Google Spreadsheet файл, которым легко можно делиться, задавать права разным пользователям, а чтение его не требует большого опыта работы с аналитикой.

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

  • Гибкий формат отчета позволяет, помимо мониторинга CR, выполнять ряд других задач: быстро находить проблемные места пользовательского флоу, замерять AB-тесты, проверять гипотезы, проводить быстрые расчеты на данных и т.д.

Категория: Программирование » Веб-разработка

 

Использование произвольных DataFlash 25-й серии вместо дорогих конфигураторов FPGA Altera без дополнительной аппаратуры

Автор: admin от 3-04-2018, 10:40, посмотрело: 121

Из любого описания на FPGA известно, что для хранения их конфигураций используются специальные микросхемы – конфигураторы. Например, для Altera Cyclone используются микросхемы EPCS. Вот схема от типичной макетной платы с кристаллом семейства Cyclone IV. На ней мы видим конфигуратор EPCS16. Всё бы ничего, но традиционно эти конфигураторы достаточно дороги, поэтому хотелось бы использовать что-нибудь подешевле.

Подробности в длиннющем тексте ниже. Если же очень интересно, но лень читать так много букв, то можно упростить задачу, посмотрев подробное 20-минутное видео.

Категория: Программирование » Веб-разработка

 

19 корпораций, которые используют технологии блокчейн и распределенные реестры

Автор: admin от 3-04-2018, 10:40, посмотрело: 441

Сегодня все говорят о том, что в области блокчейн не хватает успешно реализованных проектов, реальных кейсов, которые могли бы стать вдохновляющим примером для компаний, вставших на путь цифровой трансформации. Хочу поделиться с вами переводом статьи именно о таких кейсах. Текст опубликован американской аналитической компанией CB Insights. Она копает в области прорывных цифровых технологий и знает все о стартапах, меняющих мир к лучшему (очень рекомендую следить за публикациями ее специалистов).



19 корпораций, которые используют технологии блокчейн и распределенные реестры

Категория: Программирование » Веб-разработка

 

Как начать работать с Лямбда-выражениями в Java

Автор: admin от 3-04-2018, 10:40, посмотрело: 64

Привет, Хабр! Представляю вашему вниманию перевод статьи "How to start working with Lambda Expressions in Java" автора Luis Santiago.

До того как Лямбда-выражения были добавлены в JDK 8, я использовал их в таких языках как C# и С++. Когда они были добавлены в Java я стал изучать их подробнее.

С добавлением Лямбда-выражений добавились элементы синтаксиса, которые увеличивают «выразительную силу» Java. В этой статье я хочу сосредоточиться на основополагающих концепциях, с которыми вам необходимо познакомиться, чтобы начать использовать Лямбда-выражения.

Краткое введение


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

Это анонимные методы (методы без имени), используемые для реализации метода, определенного функциональным интерфейсом. Важно знать, что такое функциональный интерфейс, прежде чем вы начнете использовать Лямбда-выражения.

Функциональный интерфейс


Функциональный интерфейс — это интерфейс, содержащий один и только один абстрактный метод.

Если вы посмотрите на определение стандартного интерфейса Runnable, то вы заметите как он попадает в определение функционального интерфейса, поскольку он определяет только один метод: run().

В приведенном ниже примере кода метод computeName является абстрактным и единственным методом в интерфейсе MyName, что делает его функциональным интерфейсом.

interface MyName{
  String computeName(String str);
}
Читать далее

Категория: Программирование » Веб-разработка

 

Разработка голосовых приложений 3CX: введение для начинающих

Автор: admin от 3-04-2018, 10:40, посмотрело: 135

Среда разработки Call Flow Designer



Среда разработки 3CX Call Flow Designer (CFD) позволяет администратору АТС создавать сложную логику обработки вызовов (голосовые приложения) в удобном визуальном редакторе — с минимальными навыками программирования или вообще без них. Голосовые приложения взаимодействуют с пользователем по телефону, принимая от него ввод и выполняя определенные действия. Вы можете, например, запросить у абонента номер карточки клиента, проверить его в CRM системе и перевести к закрепленному менеджеру. Или вы можете маршрутизировать вызов в зависимости от даты, времени и других факторов.

Категория: Программирование » Веб-разработка