вівторок, 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) про те, що плагін не вдалося завантажити.