Программирование

Статьи по программированию

Построение нейронной сети

Сфера искусственного интеллекта (ИИ), это уже непросто находящаяся в тени область исследования, а совокупность науки и различных технологий. Исследования в области создания ИИ идут уже не с один десяток лет. И конечно уже есть значительные продвижения. Хотя насколько они значительные, этого утверждать никто не берется. Хотя бы по той простой причине, что если говорить прямо, то граница исследования в области искусственного интеллекта закончится тогда, когда ЭВМ будет наделена разумом, отождествленным с разумом человека.

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

Читать далее

Устраняем баг в плагине syntaxhighlighter

Захотелось мне на wordpresse сменить плагин галереи. Поскольку раньше на другие сайты я ставил галерею lightbox, то и в данной ситуации начал искать плагины для wordpressa на его основе. После просмотра нескольких разновидностей галерей, выбор был остановлен на плагине lightbox plus colorbox. Далее плагин был скачан, успешно проинсталлирован и настроен. Но в один прекрасный момент, по воле случая во всем знакомом браузере Internet Explorer, галерея отказалась работать. Вернее как оказалось позже, она и не работала сразу после инсталляции. Просто у меня и в мыслях не было, что в Internet Explorere могут быть проблемы. Так как в других браузерах я протестировал, а ранее в Internet Explorere с галереями lightbox проблем не было. Читать далее

Модификация браузера от Mozilla в C#

Если в своих проектах на C# вы используете браузер, основанный на движке от Mozilla Gecko, то вы наверняка заметили что его стандартные возможности, желают оставлять лучшего. Имеется в виду, что если вы используете чистую, а не модифицированную библиотеку Skybound.GeckoFX. Конечно следует выразить благодарность разработчикам этого движка и этой библиотеки. Ведь лучше иметь немного, чем не иметь ничего. Но на этой библиотеке далеко не “уедешь” (хотя смотря у кого какие цели). Потому что она имеет самый минимально необходимый функционал. Но ее можно расширить до колоссального перечня различных возможностей. Если вы хотите управлять программно некоторыми операциями, то необходимо объявить необходимые интерфейсы и описать реализацию нужных вам методов. В этой статье я продемонстрирую, как расширить функциональные особенности библиотеки Skybound.GeckoFX. Читать далее

Браузер от Mozilla в проекте на C#

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

При поисках движка, выбор пал на движок от Mozilla Gecko. И так получилось, что документация и примеры по его использованию (практически только на англоязычных ресурсах) были под C# или под VB.Net. Я свой выбор остановил на C#. Читать далее

Установка нейронной сети FANN в Linux

Устанавливать библиотеку Fast Artificial Neural Network будем на операционную систему Debian (один из дистрибутивов Linux). Произвести установку библиотеки можно двумя способами.

  1. установка из репозиториев;
  2. установка всех элементов в отдельности.

Первый метод конечно облегчает немного установку, но это того не стоит. Вот с чем мне собственно пришлось столкнуться. Когда мне понадобилось произвести установку на Debian. Я нашел руководство по установке, в котором описывался первый метод. Бегло прочитав его и уже успев обрадоваться (как оказалось в дальнейшем, ненадолго), я принялся выполнять в точности все этапы по установке библиотеки, описанные в руководстве. Нюансов не возникло. Вроде библиотека установилась и расширение для PHP тоже. Казалось, что все должно было работать. Но не тут то было. Сначала я подключил нейронную сеть, которую использовал на denwere. Но результат оказался нулевым. Оказалось, что не проходила даже инициализация самой библиотеки. Перечитав еще раз руководство по установке и аналогичные руководства с других ресурсов, я понимал, что все должно работать. Но в итоге ничего не работало. Два дня у меня ушло на решение проблемы с установкой. Когда все возможные варианты (а их было немного) были исчерпаны у меня “пронеслась” мысль, а что если дистрибутив из репозитариев самой библиотеки “битый”. И как оказалось в дальнейшем, так оно и было. Поэтому рекомендую вам использовать второй метод установки, в итоге все будет работать, и ваши нервы будут в полном порядке. Читать далее

Класс CURL для передачи данных на PHP

В практически любом языке программирования, имеются библиотеки для передачи данными между сервером и клиентом. И PHP не стал исключением. PHP поддерживает работу с библиотекой libcurl. Разработчиком и правообладателем данной библиотеки является Daniel Stenberg. Библиотека имеет очень богатые возможности для работы с различными протоколами, с SSL сертификатами, а также обладает поддержкой использования прокси-серверов.

Поскольку мне часто приходиться работать с этой библиотекой. А желания, каждый раз от вызова до вызова дублировать код у меня не было, то мною было принято решение разработать класс, который будет являться оберткой над библиотекой libcurl. В классе реализованы следующие возможности: Читать далее

Нейронная сеть в PHP на Denwere 2

В качестве нейронной сети была выбрана библиотека – FANN (Fast Artificial Neural Network). Как ни странно, но использование нейронной сети в PHP 5.2, вызвало ряд мелких затруднений.

Во-первых, это ее установка. Для работы я использую пакет Denwer. И найти руководство по установке ее на Denwer, мне так и не удалось. Первое что я узнал после прочтения некоторой документации, так это то, что для того чтобы использовать FANN в PHP на Denwere, необходимо скачать расширение php_fann. Здесь все было хорошо, и долго его искать не пришлось. После установки расширения и попытки инициализации были получены ошибки. На следующем этапе поиск информации уже занял более длительное время. Но как оказалось, попытки поиска информации в преодолении проблемы принесли успех. Как выяснилось, необходима еще одна библиотека это fanndoubleMT.dll. Вот эту самую библиотеку (для windows XP) помещаем в каталог windows/system32. Вот теперь все окончательно готово и можем наслаждаться работой этой чудной библиотеки. Читать далее

Создаем отчеты в Excel на PHP

Не редко при разработке некоего проекта, возникает необходимость в формировании отчетной статистики. Если проект разрабатывается на Delphi, C# или к примеру, на С++ и под Windows, то тут проблем нет. Всего лишь необходимо воспользоваться COM объектом. Но дела обстоят иначе, если необходимо сформировать отчет в формате excel на PHP. И чтобы это творение функционировало на UNIX-подобных системах. Но, к счастью, не так все плохо. И библиотек для этого хватает. Я свой выбор остановил на PHPExcel. Я уже пару лет работаю с этой библиотекой, и остаюсь доволен. Поскольку она является кроссплатформенной, то не возникает проблем с переносимостью.

PHPExcel позволяет производить импорт и экспорт данных в excel. Применять различные стили оформления к отчетам. В общем, все на высоте. Даже есть возможность работы с формулами (сам я не пробовал). Только помните, что вся работа (чтение и запись) должна вестись в кодировке utf-8. Читать далее

Постраничная навигация с использованием PHP и MySQL

Применять на сайтах постраничную разбивку стали практически сразу при появлении динамических сайтов. Применение постраничной навигации позволяет сделать контент сайтов не только более приятным для восприятия, но и уменьшает нагрузку на сервер (при огромном объеме записей). Наиболее частое применение постраничной разбивки используется на форумах, информационных порталах и т.д. Для осуществления постраничной разбивки я представляю вам класс pager. Читать далее

Компонент календаря на JavaScript

Чуть более двух лет назад мне понадобилось написать компонент календаря и прикрутить его к своей CMS. От идеи использования динамического календаря на PHP я сразу отказался. Поскольку нужен был календарь для вставки даты в поля формы. Первое, что я сделал, начал искать готовые решения. Естественно было и много и красивых. Но, как известно, есть пословица “Свой хлеб вкуснее”. И тут мне пришла идея о создании своего календаря. И написать его хотелось только с использованием DOM. В итоге получился календарик, не зависящий от браузеров и разный Фреймворков. Вот собственно который, я и выкладываю для использования. Читать далее