Tuesday, 22 June 2010

Видео прокси для вещания в локальной сети

В период чемпионата мира по футболу очень хотелось следить за ходом матчей в живую, да вот беда - работа. Решение казалось бы банально - on-line видео трансляции, но не я один такой заинтересованный оказался. А при 30-40 одновременных потоках входящий Интернет канал оставляет остальным сотрудникам офиса лишь маленькую надежду на закачку чего бы то ни было.
Очень быстро родилась идея организовать видео прокси, которое бы принимало on-line трансляцию и раздавало видео поток в сети. Локальный трафик не так значим, как входящий интернет трафик, потому приступил к реализации. Выбор пал на VLC media player, который сначала показался несколько монстроидальным, но в дальнейшем оправдал все надежды.

archive

Friday, 18 June 2010

Несколько наблюдений о PostgreSQL

1. Postgresql 8.4 + PostGis 1.5.1 оказался в 4 раза производительнее при использовании st_intersects на большом кол-ве данных, нежели Postgresql 8.3 + PostGis 1.3

2.
Слышали про магическое
"\d" в psql? Не знаете какие же запросы делает этот оператор? Вот вам лекарство: "\set ECHO_HIDDEN t"

3.
Как вывод из предыдущего пункта, напрашивается решение следующих вопросов:
* "А как создать таблицу, но только если она еще не существует?"
* "А как создать индекс, но только если он еще не существует?"
В Postgresql это решается обёрткой создания в функцию следующего вида:

CREATE OR REPLACE FUNCTION create_tables_if_not_exist()
RETURNS void AS
$BODY$
BEGIN
  IF NOT EXISTS ( select * from pg_class where relname = 'countries' ) THEN
    CREATE TABLE countries
    (
      id serial NOT NULL,
      geom geometry,
      name character varying(80),
      cid integer,
      CONSTRAINT countries_pkey PRIMARY KEY (id)
    )
    WITH (OIDS=FALSE);
  END IF;
END;
$BODY$ language 'plpgsql';

archive