TODO: Documentar esto mucho mejor :/
-
Instalar Jekyll and its dependencies:
$ cd web $ bundle install
-
Arrancar Jekyll:
$ cd web $ jekyll serve --watch
-
bundle install
-
Crear base de datos Postgres, 'indultometro':
createdb indultometro
-
Cargar datos:
$ rake crime_categories:load $ rake pardon_crime_categories:load $ rake pardons:load
-
Arrancar el servidor:
./server
Para poder hacer búsquedas sin tener en cuenta los acentos, vía la consola de PostgreSQL (psql
o heroku pg:psql
):
$ CREATE EXTENSION unaccent;
$ CREATE TEXT SEARCH CONFIGURATION unaccent_spa ( COPY = pg_catalog.spanish );
$ ALTER TEXT SEARCH CONFIGURATION unaccent_spa
ALTER MAPPING FOR hword, hword_part, word
WITH unaccent, spanish_stem;
Para calcular los percentiles, vía la consola de PostgreSQL (psql
o heroku pg:psql
):
$ CREATE OR REPLACE FUNCTION array_sort (ANYARRAY)
RETURNS ANYARRAY LANGUAGE SQL
AS $$
SELECT ARRAY(
SELECT $1[s.i] AS "foo"
FROM
generate_series(array_lower($1,1), array_upper($1,1)) AS s(i)
ORDER BY foo
);
$$;
$ CREATE OR REPLACE FUNCTION my_percentile_cont(myarray real[], percentile real)
RETURNS real AS
$$
DECLARE
ary_cnt INTEGER;
row_num real;
crn real;
frn real;
calc_result real;
new_array real[];
BEGIN
ary_cnt = array_length(myarray,1);
row_num = 1 + ( percentile * ( ary_cnt - 1 ));
new_array = array_sort(myarray);
crn = ceiling(row_num);
frn = floor(row_num);
if crn = frn and frn = row_num then
calc_result = new_array[row_num];
else
calc_result = (crn - row_num) * new_array[frn]
+ (row_num - frn) * new_array[crn];
end if;
RETURN calc_result;
END;
$$
LANGUAGE 'plpgsql' IMMUTABLE;
via esto