jueves, 30 de junio de 2016

Series TV



Niños en crecimiento
Me lo contaron en Japon 
ernesto el vampiro
Las Fábulas del Capitán Oso Azul
Nopo y Gonta
La casa voladora
jimbo y el jet set
La Familia Ness 

miércoles, 29 de junio de 2016

Autocad Unir lineas

¿Cómo Unir LINEAS?

La unión de objetos en un dibujo es algo muy recurrente que en algún punto necesitaras realizar para dibujar una pieza o para poder ordenar mejor tu dibujo, y la verdad no es muy dificil realizarlo, en AutoCAD utilizamos el comando JOIN para esa accion el cual se distingue por ser una orden muy sencilla de realizar y muy útil que realmente no se te olvidara una vez que te la aprendas, a continuación te explicare como unir objetos facilmente.
Lo primero que hay que dejar en claro es que para lograr la unión de objetos con JOIN estos deben estar en el mismo plano, es decir que esten dentro de los ejes X,Y sin ninguna elevacion, si están en diferentes planos los únicos objetos que pueden unirse serían las SPLINES o 3D Polyline siempre y cuando sean objetos fuente, los objetos que puedes unir son líneas, polilineas, polilineas 3D, arcos, arcos elípticos, splines y hélices. Ahora bien el procedimiento para unir es el siguiente:
  1. El procedimiento es corto, y lo haremos en solo tres pasos, primero lo que haremos es teclear el comando JOIN o dar clic en el botón ubicado en la cinta de Home sección de Modify.
  2. Enseguida te pedirá seleccionar el objeto fuente, el cual será el objeto al que se le unirán las partes que selecciones.
  3. Enseguida después de seleccionar el objeto fuente seleccionas los objetos a unir y das ENTER para que quede el objeto unido tal y como se aprecia en la figura 1.
http://www.cad2x3.com/2015/12/16/como-unir-objetos-en-autocad/

martes, 28 de junio de 2016

Procedimientos almacenados en postgres


Language Structure

PL/pgSQL is termed a block-structured language. A block is a sequence of statements between a matched set (conjunto combinado) of DECLARE/BEGIN and END statements. Blocks can be nested meaning (lo que significa) that one block can entirely contain another block, which in turn can contain other blocks, and so on. For example, here is a PL/pgSQL function:
 1 --
 2 -- ch07.sql
 3 --
 4
 5 CREATE OR REPLACE FUNCTION my_factorial(value INTEGER) RETURNS INTEGER AS $$
 6   DECLARE
 7     arg INTEGER;
 8   BEGIN
 9
10     arg := value;
11
12     IF arg IS NULL OR arg < 0 THEN
13          RAISE NOTICE 'Invalid Number';
14          RETURN NULL;
15     ELSE
16         IF arg = 1 THEN
17           RETURN 1;
18         ELSE
19           DECLARE
20             next_value INTEGER;
21           BEGIN
22             next_value := my_factorial(arg - 1) * arg;
23             RETURN next_value;
24           END;
25        END IF;
26     END IF;
27   END;
28 $$ LANGUAGE 'plpgsql';

This function contains two blocks of code. The first block starts at line 6 and 
ends at line 27. The second block, which is nested inside the first, starts at 
line 19 and ends at line 24. The first block is called an outer block because it contains the inner block.
Source: PostgreSQL: The comprehensive guide to building, programming, and 
administering
--------------------- 


Que es eso de $$...$$ o $func$..$func$?

...the body of a PL/pgSQL function is itself a string...

The body of my_factorial() is actually the string between the opening dollar quotes (following the word AS) and the closing dollar quotes (just before the word LANGUAGE).



http://stackoverflow.com/questions/12144284/what-are-used-for-in-pl-pgsql
---------------
https://www.postgresql.org/docs/current/static/sql-syntax-lexical.html#SQL-SYNTAX-DOLLAR-QUOTING

PostgreSQL provides another way, called "dollar quoting", to write string constants. A dollar-quoted string constant consists of a dollar sign ($), an optional "tag" of zero or more characters, another dollar sign, an arbitrary sequence of characters that makes up the string content, a dollar sign, the same tag that began this dollar quote, and a dollar sign.
----------
http://stackoverflow.com/questions/12144284/what-are-used-for-in-pl-pgsql
In fact if you look under "4.1.2.2. Dollar-Quoted String Constants" in the manual, you will see that you can even use characters in between the dollar symbols and it will all count as one delimiter.
OSEA QUE ANTES TENIAN QUE SER VACIOS esas cadenas constantes $$
-----------
The dollar signs are used for dollar quoting and are in no way specific to function definitions. It can be used to replace single quotes practically anywhere in SQL scripts.
(yo vi en ebook antiguo de posgresql,que para delimitar el cuerpo de una función utilizaban  comillas simples)

The body of a function happens to be a string literal which has to be enclosed in single quotes. Dollar-quoting is a PostgreSQL-specific substitute for single quotes to avoid quoting issues inside the function body. You could write your function definition with single-quotes just as well. But then you'd have to escape all single-quotes in the body:
CREATE OR REPLACE FUNCTION check_phone_number(text)
RETURNS boolean AS
'
BEGIN
  IF NOT $1 ~  e''^\\+\\d{3}\\ \\d{3} \\d{3} \\d{3}$'' THEN
    RAISE EXCEPTION ''Malformed string "%". Expected format is +999 999'';
  END IF;
  RETURN true; 
END;
' LANGUAGE plpgsql STRICT IMMUTABLE;
This isn't such a good idea. Use dollar-quoting instead, more specifically also put a token between the$$ to make it unique - you might want to use $-quotes inside the function body, too. I do that a lot, actually.

CREATE OR REPLACE FUNCTION check_phone_number(text)
  RETURNS boolean  LANGUAGE plpgsql STRICT IMMUTABLE AS
$func$
BEGIN
 ...
END;
$func$;
***********

The SQL needed to create a new function is CREATE FUNCTION, which has the following basicsyntax:CREATE FUNCTION name ( [ ftype [, ...] ] )RETURNS rtype
AS definition
LANGUAGE 'langname'
The parts of the function definition do not need to be in this order, and a popular choice isto state the language being used before the definition, like this:
CREATE FUNCTION name ( [ ftype [, ...] ] )
RETURNS rtype
LANGUAGE 'langname'
AS definition


problemasal abrir un chm en windows 8 64 bits

En windows 8.1 Cuando descargue un archivo .chm de internet me sale la ventana
Advertencia de seguridad de abrir archivo y cuando lo abro me lo bloquea el contenido
La solución:
Desmarcar la opcion de esa ventana: preguntar siempre antes de abrir el archivo.
Otra solución
Clic derecho en el archivo: Propiedades y en la ficha general hacer un check en desbloquear.

http://answers.microsoft.com/en-us/windows/forum/windows_8-files/windows-8-64bit-cant-open-chm-files/7dec5d51-f621-4753-ab13-ea3b59a07cb8?auth=1
https://social.technet.microsoft.com/Forums/en-US/20700886-2000-4c52-b706-aa1fb32d3dfb/cant-view-chm-file-contents?forum=W8ITProPreRel

lunes, 27 de junio de 2016

PHP para programacion competitiva

//CF 359
Convertir cadenas a enteros;
<?php

$string = "1,2,3";
$ids = explode(',', $string);
var_dump($ids);

echo "<br/>"; //print "<br>";

$integerIDs = array_map('intval', explode(',', $string));
var_dump($integerIDs);

//**********************
//entrada estandar
// $in = fopen("php://stdin","r");
//$in = STDIN;

// Leer varios valores en un linea a la vez
$in = fopen("input.txt","r");
list($n,$x) = explode(' ',trim(fgets($in)));

//alternativa
$in = fopen("input.txt","r");
fscanf($in,"%d %d",$n,$x); //para leer caracter y entero: fscanf($in," %c %d",$a,$b);

//**********************
//Otro metodo
$in = fopen("input.txt","r");
list($n,$x) = explode(' ',trim(fgets($in)));
$nds=0;
while (!feof($in))
{
 list($s,$d) = explode(' ',trim(fgets($in)));
 if($s == '-')
 {
   if($d <= $x)
     $x -= $d;
   else
     $nds++;
 }
 else
   $x += $d;
}
echo "$x $nds";

/*para la entrada
5 17
- 16
- 2
- 98
+ 100
- 98
*/

//parecido al anterior
<?php

$in = fopen("input.txt","r");
fscanf($in,"%d %d",$n,$x);
$nds=0;
while (!feof($in))
{
 fscanf($in,"%c %d",$s,$d);
 if($s == '-')
 {
   if($d <= $x)
     $x -= $d;
   else
     $nds++;
 }
 else
   $x += $d;
}
echo "$x $nds";

//revisar
<?php

$in = fopen("input.txt","r");
fscanf($in,"%d %d",$n,$x);
$nds=0;
while (fscanf($in,"%c %d",$s,$d)) 
{
 if($s == '-')
 {
   if($d <= $x)
     $x -= $d;
   else
     $nds++;
 }
 else
   $x += $d;
}
echo "$x $nds";

sábado, 25 de junio de 2016

Diferencias entre C# y JAVA

Error al declara una matriz rectangular  en c# pensando que existe una sintaxis de C# propia de JAVA
JAVA
Una matriz rectangular (cuadrada) rectangular array, la puedo declara así
int [][] matrix = new int[n][n];

En C#  me sale un error: Invalid rank specifier: expected ',' or ']'

Necesariamente tengo que declararlo así una matriz cuadrada:
int [,] matrix = new int[n, n];

O sino
int [][] matrix = new int[n][];
e inicializar cada fila por separado, osea declarar un arreglo de arreglos (Jagged Array)

para 3 dimensiones seria por ejemplo
int[, ,] array1 = new int[4, 2, 3];

http://stackoverflow.com/questions/12567329/multidimensional-array-vs
www.functionx.com/csharp2/arrays/Lesson02b.htm

sábado, 18 de junio de 2016

Algoritmo de kadane

Contiguous subarray with largest sum (Kadane): Dynamic Programming
Given an array of signed integers, find a subarray with largest sum in that array. Subarray is continuous indices of array with size ranging from 0 to N where  N is size of original array.
For example, for array {-1, 3, -5, 4, 6, -1, 2, -7, 13, -3} maximum sum sub array will be {4,6,-1,2,-7,13} with sum = 17

Largest sum subarray problem is solved using Kadane’s algorithm.
look at this link, it gives a clear explanation for Kadane's algorithm.
Basically you have to look for all positive contiguous segments of the array and also keep track of the maximum sum contiguous segment until the end. Whenever you find a new positive contiguous segment, it checks if the current sum is greater than the max_sum so far and updates that accordingly.
The following code handles the case when all the numbers are negative.
int maxSubArray(int a[], int size)
{
   int max_so_far = a[0], i;
   int curr_max = a[0];

   for (i = 1; i < size; i++)
   {
        curr_max = max(a[i], curr_max+a[i]);
        max_so_far = max(max_so_far, curr_max);
   }
   return max_so_far;
}
otro con analisis de alternativas
http://www.ritambhara.in/kadanes-algorithm-to-find-maximum-subarray-sum/

viernes, 17 de junio de 2016

cuello de botella

https://www.facebook.com/groups/ProgramadoresUnidos/permalink/1225856037426611/

No mamen eso no depende del procesador ni de la tarjeta de video ni del fabricante ni emparejamiento, ni que estuvieran en el 90 para necesitar ram de misma marca y capacidad, investiguen un poquito antes de soltar tonteras eso depende de la mother finalmente si la detecta si la suma y todo lo que quieran pero como máximo puede ocupar 2 gb de los 16 instalados todas las mother tienen un tope de ram que soportan.

---
jajajajaj pues creo que ese mother no soporta esa cantidad de memoria ram  ._. al igual que ese procesador  o si no es que en el bios le as asignado unos 14gb de ram al video 
--
Diablos.... Para que quieres tanta RAM con un procesador a 1.6 GhZ ?




------------
x
Procesador DDR2 a lo mucho AM2, lo cual da a entender que la placa solo soporta maximo 8GB si es una buena placa, y algo esta cruzado, probablemente las RAM, me paso con una lap, decia 6 GB RAM solo tenia (1 x 1GB y 1 x 2GB, supuestamente reconocia la de 1 GB como de 4 GB xD )

x
BLA BLA BLA BLA BLA BLA BLA BLA BLA, todos han hablado sandeces todo el rato, si no es porque me aburrio que me llenasen las notificaciones no me pongo a buscar lo que dije hace un momento , para la proxima por favor, ahy esta google, ponganse a buscar y luego hablan xD http://www.cpu-world.com/.../AMD-Sempron%2064%202800%2B...

----------
OJO
Eliminador de esta placa base creo que tiene un limite pero no debería ser este,asi como si pones una memoria de 800MHZ en una placa base que solo corre a 667 MHZ en DDR2 de igual forma es compatible pero solo te andara con la velocidad de la motherboard los 667 Mhz para nada los 800Mhz,asi pasa con esto el winodws esta limitado aunque también opino lo mismo sobre el limite de memoria maximo XD del que hablas Jose Ignacio

miércoles, 15 de junio de 2016

MULTIMEDIA

CONTENDORES CODECS
http://multimedia.uoc.edu/blogs/fem/es/codec-y-contenedor/
explicandotecnologia.blogspot.pe/2011/01/diferencia-entre-formatos-contenedores.html
es.slideshare.net/merybrishh/gua-bsica-sobre-contenedores-cdecs-y-formatos-de-vdeo
************************************************

Understanding codecs and containers

http://www.pitivi.org/manual/codecscontainers.html


**********
QUE ES EL H.264.
  • MPEG1: En vídeo le sonará a quien recuerde los VCD (vídeo cd, o lo que era lo mismo la forma de comprimir un DVD para que entrara en el espacio de un CD y además manteniendo el menú de navegación, etc). En cuanto a la parte del sonido el MPEG1 Audio Layer III es ni más ni menos que lo que conocemos como MP3.
  • MPEG2: El estándar de compresión de vídeo usado en los DVD con el avance en lo que respecta a calidad de imagen, etc. (Recordemos que el objetivo siempre es conseguir una buena compresión con la mejor calidad de imagen).
  • MPEG3: Abandonado. No confundir con el MP3 que ya hemos visto forma parte del estándar MPEG1.
  • MPEG4: Estándares de codificación de audio y vídeo en el que encontramos los ya conocidos códecs XvidD y DivX para el vídeo y AAC para el audio. Este grupo de estándares ha ido evolucionando hasta llegar a su décima parte, o lo que es lo mismo el MPEG4 Advanced Video Coding o H.264
http://www.omicrono.com/2012/03/todo-sobre-el-h-264-los-formatos-propietarios-y-el-futuro-del-video-en-internet/

Dobly
El término Dolby hace referencia a de una compañía estadounidense, que se ha hecho un nombre con procedimientos para la reducción de ruido en grabaciones de sonido analógico (sobre todo cassettes). Ahora es conocido, principalmente, por el sonido envolvente (Surround).

http://computerhoy.com/noticias/hardware/que-es-sistema-dolby-como-funciona-14247


sábado, 11 de junio de 2016

Trucos Windows eliminar un programa que arranca durante el inicio de windows

Si es que no se encuentra el programa con msconfig
Entoces puede ser que se ejecute como una tarea programada


Alli los matamos
Reg Clean pro que vino con total converter 5.0.6

viernes, 10 de junio de 2016

matar conexiones en postgresql

todas las conexiones
SELECT pg_terminate_backend(pid) FROM pg_stat_activity WHERE datname='siam_siar';

solo una
SELECT pg_terminate_backend(1952);

2 implementaciones split

delimiter $$
create procedure sp_split(str varchar(40), del varchar(1))
begin

declare idx int; //olvido declara int y de frente inicializo
declare idxOld int;//olvido declara int y de frente inicializo
declare subs varchar(50);//olvido declarar subs y de frente inicializo


set idx := 1;
//set idxOld := idx;
set token:='';

set str := trim(str);
set idx := instr(str,del);
while(idx > 0) //error poner  0 porque las cadenas comienzan con 1 y devuelve 0 si no encuentra
begin
 //set token := substring(str,idxOld + 1,idx-idxOld); error
 set token := SUBSTRING(str,1,idx - 1);
 insert into tblTemp(token);
 //set idx := idx + 1;
 //set str := SUBSTRING(str,idx,LENGTH(str) - idx + 1);
 set str := SUBSTRING(str,idx + 1,LENGTH(str) - idx);

 //set idxOld :=  idx;
 set idx: = SUBSTR(str,idx);
end
IF(LENGTH(str) > 0)
BEGIN
  insert into tablTemp(str);
END
end
$$

delimiter $$
create procedure split(s varchar(100), del varchar(1))
begin
 declare start int;
 declare end int;
 set start = 1;
 set endp1 = locate(s,del,start) ;
 while(endp1 > 0)
  begin
   insert int tbl(substring(s,start,endp1 - 1))
   start = endp1 + 1;
   end1 := locate(s,del,start);
  end
  if(start <= length(s))
   begin
    substring(s,start,length(s) - start + 1)
   end
end

 while(endp1 > 0)
  begin
   insert int tbl(substring(s,start,endp1 - 1))
   start = endp1 + 1;
   end1 := locate(s,del,start);
  end
  if(start <= length(s))
   begin
    substring(s,start,length(s) - start + 1)
   end
$$

create temporary table temp_table(
    datasplit varchar(100)
);

Primer procedimiento almacenado respetable

delimiter $$
DROP PROCEDURE IF EXISTS sp_splitx$$
CREATE PROCEDURE sp_splitx(str nvarchar(6500), dilimiter varchar(15), tmp_name varchar(50))
BEGIN
declare end_index   int;
declare part        nvarchar(6500);
declare remain_len  int;

set end_index      = INSTR(str, dilimiter);

while(end_index   != 0) do


    /* Split a part */
    set part       = SUBSTRING(str, 1, end_index - 1);
    select concat('',part);

    /* insert record to temp table */
    #call `sp_split_insert`(tmp_name, part);

    set remain_len = length(str) - end_index;
    set str = substring(str, end_index + 1, remain_len);

    set end_index  = INSTR(str, dilimiter);

end while;

if(length(str) > 0) then
    select concat('',str);

    /* insert record to temp table */
    #call `sp_split_insert`(tmp_name, str);

end if;
END
$$

# probando con call  sp_splitx('c,d,f,g',',','x');

jueves, 9 de junio de 2016

procedimiento almacenado

delimiter $$
DROP PROCEDURE IF EXISTS sp_split$$
CREATE PROCEDURE sp_split(str nvarchar(6500), dilimiter varchar(15), tmp_name varchar(50))
BEGIN
declare end_index   int;
declare part        nvarchar(6500);
declare remain_len  int;

set end_index      = INSTR(str, dilimiter);

while(end_index   != 0) do

    /* Split a part */
    set part       = SUBSTRING(str, 1, end_index - 1);

    /* insert record to temp table */
    call `sp_split_insert`(tmp_name, part);

    set remain_len = length(str) - end_index;
    set str = substring(str, end_index + 1, remain_len);

    set end_index  = INSTR(str, dilimiter);

end while;

if(length(str) > 0) then

    /* insert record to temp table */
    call `sp_split_insert`(tmp_name, str);

end if;
END
$$


DROP PROCEDURE IF EXISTS sp_split_insert$$
CREATE PROCEDURE sp_split_insert(tb_name varchar(255), tb_value nvarchar(6500))
BEGIN
 SET @sql = CONCAT('Insert Into ', tb_name,'(item) Values(?)');
 PREPARE s1 from @sql; SET @paramA = tb_value;
 EXECUTE s1 USING @paramA;
END
$$

DROP PROCEDURE IF EXISTS test_split$$
CREATE PROCEDURE test_split(test_text nvarchar(255))
BEGIN
    create temporary table if not exists tb_search
    (
        item nvarchar(6500)
    );

    call sp_split(test_split, ',', 'tb_search');

    select * from tb_search where length(trim(item)) > 0;

    drop table tb_search;
END
$$
#call test_split('Apple,Banana,Mengo');
#$$

devolver result set o select en mysql con funcion o procedimiento almacenado ademas sql server


2 
In MySQL, a function cannot return a table. You would have to use a stored procedure for that. – Dmytro Shevchenko Nov 6 '12 at 13:11 
4 
What do you mean with "In SQL it's working fine?". You are using SQL.... – a_horse_with_no_name Nov 6 '12 at 13:28
************************
CREATE FUNCTION myFunction(id INT) RETURNS TABLE  
BEGIN  
   RETURN SELECT * FROM board;  
END  
This query gives following error:
1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'TABLE  
*********************************
As per documentation on user defined functions in MySQL
you can only return values of type {STRING|INTEGER|REAL|DECIMAL}
CREATE [AGGREGATE] FUNCTION function_name RETURNS {STRING|INTEGER|REAL|DECIMAL}
    SONAME shared_library_name
If you want to read a select resultset you have to define a procedure but not function.
DELIMITER //

DROP PROCEDURE IF EXISTS myProcedure //

CREATE PROCEDURE 
  myProcedure( id INT )
BEGIN  
   SELECT * FROM board
     -- add where condition if required
    WHERE Col_name = id
   ;  
END 
//

DELIMITER ;
And you can call procedure like
call myProcedure( 6 )
That returns implicit objects based on the statements used in the procedure.
************

  
CREATE PROCEDURE myProcedure( id INT ) BEGIN SELECT * FROM board WHERE id = id ; END //check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 5– Ankit Aranya May 2 '14 at 6:36 
  
CREATE PROCEDURE myProcedure( id INT ) BEGIN select * from board; END // check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 3 – Ankit Aranya May 2 '14 at 6:39
  
can you please see this error – Ankit Aranya May 2 '14 at 6:40
  
delimiter was not defined. Answer updated. Please check. – Ravinder Reddy May 2 '14 at 6:48
  
*********
EN SQL SERVER
http://stackoverflow.com/questions/5604927/how-to-return-a-table-from-a-stored-procedure