суббота, 11 октября 2014 г.

The (no)Brain

В процессе поиска инструментов работы с MindMaps, наткнулся на TheBrain. Программа для Мака - должно быть хоть какое-то приемлимое качество. Но - разочарование!

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

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

четверг, 5 июня 2014 г.

Number в Oracle и в Vertica очень разный

Vertica постулирует, что она "почти" 100% совместима с Oracle. По крайней мере, в том что касается данных. 
Это очень близко к правде. Но тем более обидно находить мелкие проблемы несоответствия, которые взрывают мозг.
Например, в мануале Vertica есть проверочная последовательность команд
CREATE TABLE num1 (id INTEGER, amount NUMERIC(8,2));
INSERT INTO num1 VALUES (1123456.78);
SELECT * FROM num1;
Если ее поправить для проверки типа number.
CREATE TABLE num1 (id INTEGER, amount number);
INSERT INTO num1 VALUES (1123456.78);
SELECT * FROM num1;
и проверить на Vertica и Oracle (11), то можно увидеть вот что
Oracle
SQL> CREATE TABLE num1 (id INTEGER, amount number);
Table created.
SQL> INSERT INTO num1 VALUES (1123456.78);
1 row created.
SQL> SELECT * FROM num1;
    ID     AMOUNT
---------- ----------
     1  123456.78
но при этом 
SQL> INSERT INTO num1 VALUES (1123456.122333444455555666666777777788888888999999999);
1 row created.
SQL> select * from num1;
    ID     AMOUNT
---------- ----------
     1 1.23456122333444455555666666777777788889E05
То есть оно сохраняет и дробную часть. То есть по документации Number - это Number(38,38)
Vertica
dbadmin=> CREATE TABLE num1 (id INTEGER, amount number);
CREATE TABLE
dbadmin=> \d num1
                                    List of Fields by Tables
 Schema | Table | Column |     Type      | Size | Default | Not Null | Primary Key | Foreign Key
--------+-------+--------+---------------+------+---------+----------+-------------+-------------
 public | num1  | id     | int           |    8 |         | f        | f           |
 public | num1  | amount | numeric(38,0) |   24 |         | f        | f           |
(2 rows)
dbadmin=> INSERT INTO num1 VALUES (1123456.78);
 OUTPUT
--------
      1
(1 row)
dbadmin=>  SELECT * FROM num1;
 id | amount
----+--------
  1 123457
(1 row)
то есть number = numeric (38,0) , что соответствует документации, но не соответствует Oracle.