вівторок, 29 жовтня 2013 р.

Робоче середовище для NuPIC

Одна з платформ, яку я використовую у своїй роботі, це вільна платформа NuPIC, яка є альтернативою сучасному штучному інтелекту. Відправною точкою є сама платформа а також невеличкий вступний урок на Хабрі (знайшов випадково вчора). Тому з вчорашнього дня я займаюся тим, що намагаюся побудувати робоче середовище за допомогою virtualenv з використанням пайтону 2.7.

Для того, щоб запустити таке середовище, потрібні такі залежності:
  1. У Дебіан: libpng-dev libfreetype6-dev libtool automake python-dev
  2. У virtualenv:
    • argparse==1.2.1
    • matplotlib==1.3.1
    • nose==1.3.0
    • numpy==1.7.1
    • pyparsing==2.0.1
    • python-dateutil==2.1
    • six==1.4.1
    • tornado==3.1.1
    • validictory==0.9.1
    • wsgiref==0.1.2
Рядок для pip виглядає таким чином: pip install validictory numpy;pip install matplotlib
Тобто для створення середовища потрібно встановити віртуальне оточення:
$ export NTA=$HOME/nta/eng
$ export NUPIC=/path/to/repo
$ export BUILDDIR=/tmp/ntabuild
$ export MK_JOBS=3
$ cd $NUPIC
$ virtualenv --python=python2.7 venv
$ . venv/bin/activate
(venv) source $NUPIC/env.sh
(venv) ./cleanbuild.sh
Далі запускаємо С++ тести:
$NTA/bin/htmtest
$NTA/bin/testeverything
А також тести на python:
cd $NTA
./bin/run_tests.sh
У тому випадку, якщо ми отримуємо повідомлення: E ImportError: libpython2.6.so.1.0: cannot open shared object file: No such file or directory потрібно видалити вбудовану у NuPIC бібліотеку matplotlib:
rm $NTA/lib/python2.7/site-packages/matplotlib
Хвилюватися з приводу цього не варто, оскільки у нас встановлено matplotlib у $NUPIC/venv//lib/python2.7/site-packages/ .
Надалі, для роботи з NuPIC можна використовувати наступні команди:
$ source $NUPIC/venv/bin/activate
(venv) source $NUPIC/env.sh

вівторок, 22 жовтня 2013 р.

Абстракція знань та математика

Невеличкий конспект за мотивами статті "Як виростити мозок: статистика, структура та абстракції".
Оскільки я зараз займаюся задачами узагальнення і (трішки) штучного інтелекту у тій області, з якою я раніше стикався досить дотично, то чергова чернетка стосується аналізу відомих підходів до формування знань (бажано б на абстрактному рівні). Що ж ми маємо станом на сьогодні?
Наприклад: діти, у процесі пізнання сприймають невідомі терміни інтуїтивно, а потім можуть з легкістю їх розрізнити, наприклад іграшку від ложки. Яким чином вони це роблять? У пошуках висновків, автори пропонують опиратися не лише на синтаксичні конструкції чи морфологічні правила, але більше на побудову високо-масштабованих систем знань, напр. інтуїтивних фізичних, психологічних чи біологічних теорій або ж навіть системи правил для соціальної структури чи моральної оцінки дій. Навіть у такому випадку, отриманий кінцевий продукт (створення якого буде вимірюватись роками), буде суттєво відрізнятися від проведених спостережень (мабуть мова йде про абстрагування).

неділя, 10 лютого 2013 р.

Cygwin+Vim+Backspace

Цього семестру мої студенти будуть вчити С++ у польових умовах, з використанням Cygwin та G++. Причин для такого вибору є декілька:
  • Необхідно мати зручний компілятор, який буде запускатися швидко і на стареньких комп’ютерах, оскільки нові цього року не світять;
  • Хочу мати під руками компілятор, який відповідає останньому стандарту С++;
  • Хочу розказати студентам, що не IDE єдиним живе програміст;
  • Хочу їх трохи дисциплінувати і навчити гарно форматувати код, а то приносять джерельні коди у форматі doc (так, так, вони умудряються копіювати код у word, а потім дивуються, чому я кажу, що так не можна робити);
  • Хочу їхній код компілювати в себе на Лінаксі, щоб було видно що й до чого;
  • Хочу спробувати попрацювати з cygwin.
Першою суттєвою проблемою став вибір мінімального набору ПЗ. Станом наразі це:
  • gcc-g++
  • gcc-mingw-g++
  • libgcc1
  • gdb
  • make
  • termcap
  • terminfo
  • vim
Перша видима проблема: у vim не можу видаляти символи за допомогою backspace.
Рецепт:
  1. Створюємо файл налаштувань для vim: ~/.vimrc
  2. Встановлюємо параметри backspace:
    set backspace=indent,eol,start
     
  3. Зберігаємо файл
Усьо.

вівторок, 1 січня 2013 р.

Iceweasel 3.5.X and illegal instruction

Вхідні дані:
  • 31 грудня 2012 року:
  • рідний домашній сервер, через який бігає мій інтернет;
    • На сервері крутиться Debian/GNU Linux Squeezy.
  • запущений процес оновлення системи: aptitude safe-upgrade
  • 1 січня 2013 року:
  • оновлений сервер;
  • вилітання крижаного тюленя (iceweasel) з повідомленням «Illegal instruction»;
  • повідомлення хрому (google-chrome) про те, що плагін не вдалося завантажити.

неділя, 23 грудня 2012 р.

Встановлення MySQL Workbench

Більшість замовлень на розробку веб-сайтів містять вимогу про використання баз даних. Типовою є MySQL, що її встановлено на моєму тестовому майданчику і яку просять використовувати для дрібних проектів. Роботу з цією БД можна організувати за допомогою консольних запитів (mysql-client) або ж за допомогою графічних утиліт. Основними вимогами до такої утиліти є:
  • кросплатформність (бо краще так);
  • зручність використання;
  • підтримка всього, що тільки може бути;
  • хороші відгуки на різних форумах.

субота, 1 вересня 2012 р.

Підсвітка синтаксису у Vim


Типово vim має підтримку синтаксису лише англійської мови. Інших мов у дистрибутиві я не знайшов, однак довідка vim (:help spell) підказала, що це є файли з розширенням spl.
Невеликий пошук з гуглом, показав, що файли з перевіркою синтаксису, а також файли ймовірних замін знаходяться на http://ftp.vim.org/vim/runtime/spell/

Для перевірки синтаксису, використовуються такі команди як:
  • 'runtimepath' - перелік шляхів, де буде здійснено пошук файлу з перевіркою. Окремі шляхи розмежовуються комою.
  • 'encoding' - кодування файлу.
  • 'spelllang' - мова, за якою здійснюється перевірка.

Якщо ми припустимо, що потрібно здійснити перевірку україномовного тексту, у файлі, який має кодування utf-8, то це можна зробити за допомогою наступних комад:
:set encoding=utf-8
:set spelllang=uk
Тоді vim буде шукати файл uk.utf-8.spl. Якщо ж цей файл є відсутнім у шляху runtime, то vim автоматично спробує його завантажити.

Для перегляду можливих варіантів «правильного» слова - використовуємо комбінацію «z=».

середа, 6 червня 2012 р.

Нові курси від Udacity


Ще тепленька новина. Компанія Udacity розпочинає реєстрацію на нові курси:
1) Вступ до фізики
2) Вступ до статистики
3) Основи алгоритмів
4) Логіка та дискретна математика
5) Тестування програмного забезпечення

Усі курси читаються англійською мовою, до кожної лекції є завдання та конспект.

Особисто я слухав курс з програмування автомобілів на Пайтоні і мені сподобалось. Тому просто рекомендую тим, хто хоче підтягнути знання як із зазначених предметів, так і з англійської.

Успіхів.