Разработчик интерактивных книг со светодиодами пожаловался на кражу идеи сотрудниками Google

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

Все началось несколько лет назад, где-то в 2013 году, когда обычному студенту по имени Цзе Ци (Jie Qi) пришла в голову идея создавать раскрывающиеся объемные книги со светодиодами и сенсорами. Книги получались интерактивные, они проводили читателя по элементам сюжета и позволяли красочно все представлять события. Одна из книг была о светодиоде по имени Элли, которая мечтала стать звездой. Дело отнюдь не в сюжетах, а в самих книгах, вернее, идее, которая стала основой работы.
Читать дальше →
Разработчик интерактивных книг со светодиодами пожаловался на кражу идеи сотрудниками Google
Source: habrahabr

[Перевод] Заблуждения программистов об именах — с примерами

В 2010 году Патрик Маккензи написал знаменитую статью «Заблуждения программистов об именах», перечислив 40 фактоидов, которые не всегда верны в отношении человеческих имён.

Думаете, программисты сели, подумали и изменили обработку имён в компьютерных системах? К сожалению, не совсем. Нас по-прежнему повсеместно просят заполнить онлайн-формы, которые предполагают обязательное наличие имени и фамилии (причём именно в таком порядке). Эти системы по-прежнему предполагают, что наши имена всегда можно записать символами алфавита, зачастую только ASCII.
Читать дальше →
[Перевод] Заблуждения программистов об именах — с примерами
Source: habrahabr

PVS-Studio ROI: как не терять миллионы

PVS-Studio ROI

Время от времени нам задают вопрос, какую пользу в денежном эквиваленте получит компания от использования анализатора PVS-Studio. Я решил реализовать на сайте ROI-калькулятор и разместить подробное описание принципов его работы. Но прежде я решил вынести свои мысли и расчёты на обсуждение. Я надеюсь получить интересные и полезные комментарии, которые помогут сделать калькулятор как можно более достоверным и убедительным.

Вашему вниманию предлагается описание калькулятора, позволяющего рассчитать возврат инвестиций от использования в процессе разработки статического анализатора кода PVS-Studio.
Читать дальше →
PVS-Studio ROI: как не терять миллионы
Source: habrahabr

Тактичный робот: умеет слушать и не перебивает

Распознавание речи (далее – ASR, Automatic Speech Recognition) используется при создании ботов и/или IVR, а также для автоматизированных опросов. Voximplant использует ASR, предоставляемый «корпорацией добра» – гугловское распознавание работает быстро и с высокой точностью, но… Как всегда, есть один нюанс. Человек может делать паузы даже в коротких предложениях, при этом нам нужна гарантия, что ASR не воспримет паузу как окончание ответа. Если ASR думает, что человек закончил говорить, то после «ответа» сценарий может включить синтез голоса со следующим вопросом – в это же самое время человек продолжит говорить и получит плохой пользовательский опыт: бот/IVR перебивает человека. Сегодня мы расскажем, как с этим бороться, чтобы ваши пользователи не огорчались от общения с железными помощниками.

Читать дальше →
Тактичный робот: умеет слушать и не перебивает
Source: habrahabr

Игровые фичи с помощью ECS: добавляем в шутер аптечки

От ковров перейдем к серьезным вещам. Мы уже рассказали про ECS, какие есть фреймворки для Unity и почему написали свой (со списком можно ознакомиться в конце статьи). А сейчас остановимся на конкретных примерах, как используем ECS в нашем новом мобильном PvP-шутере и как реализуем игровые фичи. Отмечу, что применяем эту архитектуру мы только для симуляции мира на сервере и системы предсказания на клиенте. Визуализация и рендер объектов реализованы с помощью MPV-паттерна — но сегодня не об этом. Читать дальше →
Игровые фичи с помощью ECS: добавляем в шутер аптечки
Source: habrahabr

Как правильно работать с исключениями в DDD

image

В рамках недавно прошедшей конференции DotNext 2018 состоялся BoF по Domain Driven Design. На нем был затронут вопрос работы с исключениями, который вызвал жаркий спор, но не получил развернутой дискуссии, поскольку не являлся основной темой.

Также, изучая множество ресурсов, начиная от вопросов на stackoverflow и заканчивая платными курсами по архитектуре, можно наблюдать, что в IT-сообществе сложилось неоднозначное отношение к исключениям и к тому, как их использовать.

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

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

Кто-то делает валидацию на исключениях, а кто-то повсеместно использует монаду Result. Справедливо, что Result позволяет по сигнатуре метода понять, возможно ли не только успешное выполнение. Но не менее справедливо, что в императивных языках (к которым относится C#) повсеместное использование Result приводит к плохо читаемому коду, засыпанному конструкциями языка настолько, что с трудом можно разглядеть исходный сценарий.

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

Речь пойдет об enterprise-приложении, построенном на базе ASP.NET MVC+WebAPI. Приложение построено по луковой архитектуре, общается с базой данных и брокером сообщений. Используется структурированное логирование в ELK-стек и настроен мониторинг при помощи Grafana.
Читать дальше →
Как правильно работать с исключениями в DDD
Source: habrahabr

[Из песочницы] Как я писал самый большой скрипт для Altium Designer

15680 строк, 800 053 знаков — именно такой величины сегодня мой скрипт, созданный внутри Altium Designer — системы по разработке печатный плат.

image
Читать дальше →
[Из песочницы] Как я писал самый большой скрипт для Altium Designer
Source: habrahabr

Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits

Привычный хаос в названиях коммитов. Знакомая картина?

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

Меня зовут Ержан Ташбенбетов, я работаю в одной из команд Яндекс.Маркета. И сегодня я расскажу читателям Хабра, какие инструменты для создания осмысленных коммитов мы используем в команде. Приглашаю присоединиться к обсуждению этой темы.

Читать дальше →
Как генерировать осмысленные коммиты. Применяем стандарт Conventional Commits
Source: habrahabr

0cx00007b или установка драйверов из-под программы

Вступление

Доброго времени суток. Знакомо ли вам исключение 0cx00007b? С момента перевода движка X-Ray под x64 приходило очень много репортов о проблеме 0cx00007b. В 90% случаев, это была проблема с отсутствием 64 битного драйвера OpenAL.

Читать дальше →
0cx00007b или установка драйверов из-под программы
Source: habrahabr

0xc00007b или установка драйверов из-под программы

Вступление

Доброго времени суток. Знакомо ли вам исключение 0xc00007b? С момента перевода движка X-Ray под x64 приходило очень много репортов о проблеме 0cx00007b. В 90% случаев, это была проблема с отсутствием 64 битного драйвера OpenAL.

Читать дальше →
0xc00007b или установка драйверов из-под программы
Source: habrahabr