Блог экспериментатора инженера-разработчика: Infanty.
Я пишу how-to статьи на редкие темы или статьи обзоры - для себя и тех кто со мной работает.
Блог существует при поддержке: "Оккупационных сил Марса".

Отображено: по дате публикаций. Посмотреть по дате последнего изменения.

Периодически приходится создавать виртуальные машины для локальной разработки с функцией автоматического развёртывания для распространения в команде разработчиков. Для решения этой задачи ограничится только Bash-скриптами не получится. Так как довольно часто клиентские машины для разработки довольно сильно отличаются, как программно так и аппаратно, друг от друга и от серверов на которых будет размешаться разрабатываемый код. В таком случае лучшим решением будет использование VirtualBox (используя Vagrant с Puppet или Ansible) или Docker как одни из самых распространённых технологий для подобных задач.

LXD (сокращение от Linux Container Daemon), созданный канадцем Стефаном Грабе из компании Canonical. Он также является одним из авторов другого популярного контейнерного решения — LXC. Собственно, LXD представляет собой надстройку над LXC, которая упрощает работу с контейнерами и добавляет широкий спектр новых возможностей.

Vue — это прогрессивный фреймворк для создания пользовательских интерфейсов. В отличие от фреймворков-монолитов, Vue создан пригодным для постепенного внедрения. Его ядро в первую очередь решает задачи уровня представления (view), что упрощает интеграцию с другими библиотеками и существующими проектами. С другой стороны, Vue полностью подходит и для создания сложных одностраничных приложений (SPA, Single-Page Applications).

Ratchet позволяет разрабатывать приложения на PHP используя протокол полнодуплексной связи поверх TCP-соединения (WebSocket), предназначенный для обмена сообщениями между браузером и веб-сервером в режиме реального времени (позволяет одновременно передавать и принимать данные).

Ratchet построен на основе ReactPHP - сокет сервера разработанного на PHP для постоянной обработки запросов в отличии от стандартного подхода с Apache и Nginx где процесс умирает по окончании обработки одного запроса.

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

В июле 2010 года поисковый стартап Metaweb разрабатывающий технологию семантической разметки материалов размещённых в сети интернет и поддерживающий открытую базу знаний Freebase (12 млн людей, мест и объектов, связанных друг с другом), был куплен компанией Google. По мнению экспертов сумма сделки должна составлять не менее нескольких миллионов долларов.

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

В годы когда ещё не существовали чат-боты или такие программы как: Siri, Microsoft Cortana, Google Now или Amazon Echo, поступило предложение поучаствовать в качестве архитектора при разработке подобного приложения. На первом этапе разработки - предполагалось, что приложение будет отвечать на вопросы пользователя (как чат-бот) и выполнять несложные действия используя API других программ (по концепции было очень похоже на Siri). На втором этапе разработки - программа должна была отвечать на вопросы по конкретному тексту новости или статьи. А на третьем этапе разработки - предоставлять сокращённый пересказ статьи на одном из нескольких заданных языках. В итоге должна была получиться поисковая система умеющая не просто искать документы на определённых сайтах, но и удалять из выдачи религиозно опасные тексты, давая краткий пересказ любого из оставшихся в поисковой выдаче документов на арабском, берберском, французском или русском языке.

Для удалённой отладки из PhpStorm в VirtualBox необходимо так же пробросить порт по которому работает IDE. Таким же образом можно произвести удалённый проброс порта из Ubuntu в Windows для работы с MySQL настроенной на локальную работу.

XDebug — это расширение для PHP, написанное Derick Rethans, одним из разработчиков языка PHP для упрощения отладки PHP-скриптов. Основной целью расширения является максимально возможное упрощение отладки PHP-скриптов и добавление в разработку на PHP таких удобств, как точки останова, пошаговое выполнение и наблюдение за выражениями. Помимо этого, расширение также позволяет выполнять профилировку приложения и находить те части, которые замедляют его работу. Поддерживается также выполнение произвольного кода на точке останова, а также и ряд других полезных при отладке функций. В целом, расширение нужно, в первую очередь, для экономии времени программистов, так как позволяет быстро локализовать ошибку в коде.