Страницы

29 ноября 2015 г.

Визуализация данных. Мысли вслух...

Сейчас, в современном мире в базы данных не пишутся разве что ваши сны... Хотя, и они тоже туда попадают, если вы этого хотите. Это я к тому что сейчас, все, везде и всегда пишется в какие-либо базы данных, сохраняется в хранилищах, трансформируется и анализируется для принятия решений. Мир сильно изменился, теперь мы порождаем слишком много данных. Система сбора данных работает интенсивнее чем система обработки и анализа. Думаю эта проблема актуальна для всех уровней потребности в данных (от индивидуального человека, до глобальных аналитических систем). Задача современного человека - переварить как можно большую часть информации, которая предоставляется для обозрения/изучения за как можно меньшее время.
Как это сделать?
Визуализация... Представление данных в виде таблиц - это тоже визуализация. Представление данных в виде утверждений - это тоже своего рода визуализация.
Сейчас есть прямая потребность в ускорении потребления информации и принятия решений. Картинки - вот выход. Мы с детства, перед тем как читать книгу - ищем картинки. Т.к. именно они могут рассказать нам о содержимом в сотни раз проще и быстрее чем текст. Уже давно на смену простому тексту пришла инфографика... Почему? Не потому что люди стали ленивее, а потому что это реальное ускорение скорости восприятия. Чаще всего нам не нужно учить наизусть предоставляемые данные, нам просто нужно посмотреть и принять какое-то решение.
Хочется с кем-то пообщаться по поводу визуализации. Т.к. данные сейчас охватывают все сферы жизни - визуализация это очень актуальная тема, которая будет в тренде еще долгое время. Время всего лишь отшлифует методы визуализации и упростит их, но ничем не заменит...
Хочется поработать с вот этой штукой: http://d3js.org/

25 ноября 2015 г.

NetBeans 8.1. Python projects + проблема с Python 3.4. в Ubuntu

Для того чтобы разрабатывать на python в NetBeans необходимо установить плагин.
Его можно скачать здесь: http://plugins.netbeans.org/plugin/61688/python

Необходимо скачать архив и куда-нибудь распаковать.
Далее, открываем NetBeans. Главное меню - Tools - Plugins. Открывается окно - переходим на вкладку "Downloaded", нажимаем на кнопку "Add Plugins...". Открывается диалог выбора файлом. Вам просто нужно пойти в ту папку куда вы ранее распаковали архив и выбрать сразу все файлы. Далее проследует несложный диалог установки - Готово. 
NetBeans захочет перезапуститься - лучше не отказываться.

После перезапуска в список доступных конфигураций проектов добавится папка "Python"

Видео можно посмотреть тут: 

Может возникнуть проблема (у меня была на Ubuntu 14.4), по умолчанию в проекте определен Python 2.7, хотя в системе уже стоит Python 3.4. Предполагаю что это из-за алиасов, т.к. 3-й python в терминале доступен как "python3" (например pethon3 --version).
Решается проблема так: 

Кликнуть правой кнопкой мыши на проекте в окне Projects, кликнуть Properties. Откроется диалог. Рядом с пунктом "Python platform", есть кнопка "Manage...". При нажатии открывается диалог с платформами. Нужно нажать на кнопку "New", и в перейти в каталог "usr/bin", там найти python3 и выбрать его. У вас в список добавится платформа. Выбрать ее и нажать кнопку "Make default", чтобы сделать ее платформой по умолчанию.
Все!

16 ноября 2015 г.

Настраиваем рабочее место django-разработчика на linux (ubuntu 14.4) в виртуальном окружении.

Используем виртуальное окружение чтобы не захламлять систему разными версиями библиотек. (virtialenv).
Если кто-то не знаком с virtialenv - в интернете очень много материалов для ознакомления.

Устанавливаем easy_install или pip для установки дополнительных пакетов.
Установка easy_install:
sudo apt-get install python-setuptools

Установщик готов,  теперь с его помощью устанавливаем virtualenv:
sudo easy_install virtualenv

Теперь создаем папку виртуального окружения:
virtualenv --no-site-packages myvirtual

где
--no-site-packages - параметр указывающий не использовать системные библиотеки питона.
myvirtual - папка витруального окружения.

После выполнения этой команды, в текущем каталоге появился каталог myvirtual. Это легко проверить выполнив команду в терминал:
ls -l

В этом каталоге содержится несколько подкаталогов. Нас на текущий момент интересует bin. В каталоге bin  есть скрипт activate которые активирует виртуальное окружение.

Находясь в каталоге virtualenv вводим команду:
source bin/activate

Тем самым включая контекст виртуального окружения. Это означает что в с текущего момента мы будем работать только в своем виртуальном окружении. В терминале, в начале строки ввода команд в скобках должно быть указано наименование виртуального окружения в контексте которого мы сейчас находимся (myvirtual).

Теперь необходимо установить django. Для этого выполняем в терминале команду:
easy_install django

Ждем окончания установки.

Рабочее место готово!

Для выхода из виртуального окружения вводим команду:

bin/deactivate.


После чего вы вновь окажитесь в окружении своей системы.



8 ноября 2015 г.

Aqua Studio. Teradata. Пропадают комментарии в хранимках

После установки Aqua Studio не до конца настроил некоторые параметры, что в свою очередь вылилось в пропажу комментариев из текстов хранимок. Пропажа вызвала запредельное негодование, т.к. комменты вычистились из нескольких хранимок с 1000+ строк и нетривиальной логикой.

Чтобы остановить стирание комментов при сохранении хранимки в метаданных сервера терадаты, нужно в Aqua Studio установить следующие параметры:


Тем кто сидит на SQuirreL sql можно не бояться :)

Python. Ошибка Teradata beyond SQL_ACTIVE_STATEMENTS limit

Если кто-то встретился с такой проблемой, .то вы просто не закрываете "курсор" когда отправляете много statements на сервер.

Вот пример кода который генерирует ошибку:
    def executeSql(sqlCommand, parameters = ()):
        connect = SqlQuery.getConnect()
        try:
            cursor = connect.cursor()
            cursor.execute(sqlCommand, parameters)
            connect.commit()
        except Exception as e:
            logger.exception('Sql query error.', str(e))
            connect.rollback()
        finally:
            connect.close()
        return 0


Вот пример кода, который позволяет избежать ошибки:
    def executeSql(sqlCommand, parameters = ()):
        connect = SqlQuery.getConnect()
        try:
            cursor = connect.cursor()
            cursor.execute(sqlCommand, parameters)
            connect.commit()
        except Exception as e:
            logger.exception('Sql query error.', str(e))
            connect.rollback()
        finally:
            cursor.close()
            connect.close()
        return 0

SqlQuery  - это самописный билдер подключений. Он не влияет на проблему.
Проблема была замечена пока только на терадате.