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

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

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

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

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

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

При разработки нового сайта или поддержке имеющегося многие используют IDE PhpStorm. При этом на "рабочем" сервере ведётся только логирование работы сайта, а основная разработка производится на сервере "разработки" который может быть развёрнут в VirtualBox. При этом синхронизация серверов производится с помошью Git. Работу с Git пока пропустим, а вот настройку сервера "разработки" с "азов" до отладки первого проекта в PhpStorm - рассмотрим по пунктам.

  • Архивация файлов сайта: копирование папки сайта, её сжатие и удаление несжатых скопированных файлов.
  • Экспорт базы данных в файл: экспорт базы данных, сжатия файла экспорта, удаление несжатого файла экспорта.
  • Поиск строки в файлах папки.
  • Установка (упрощённый вариант) нескольких сайтов на Drupal из консоли.

 

Установим nginx и Apache, набрав в консоли:

sudo apt-get install nginx apache2 

На одном из серверов, где в качестве веб-сервера установлен: nginx, понадобилось запустить FastCGI. Можно было бы установить fcgiwrap или spawn-fcgi.

Для начала установим Java:

sudo add-apt-repository ppa:webupd8team/java
sudo apt-get update
sudo apt-get install oracle-java8-installer
sudo apt-get install oracle-java8-set-default 

Angular.js – один из популярных JavaScript фрэймворков, реализующих MVC и разрабатываемый при поддержке Google. Он позволяет создавать динамический веб-приложения, используя возможности HTML со встроенным тестированием. Использование современных подходов таких как биндинг данных и внедрения зависимостей позволяют выиграть время за счёт компактности кода.