Showing 7 results for the tag: programación.

22

Ene

2008

1

A-practicando en la ciudad (II)

reloj20:55 calendarioCategorías: General, Personal, PHP, Programas, Universidad

Rafa me ha recordado la opción -boost al compilar, y la verdad, que los tiempos han mejorado increíblemente (sin tocar nada más del programa). Aquí los resultados:

jormaro@duero ~/practica2 $time ./a.out < 9_ciudades.txt ; time ./a.out < 10_ciudades.txt;time ./a.out < 11_ciudades.txt ; time ./a.out < 12_ciudades.txt
910.5
SOR-BRG-PAL-VAL-LEO-ZAM-SAL-AVI-SEG-SOR

real    0m1.169s
user    0m1.140s
sys     0m0.020s
974.7
SOR-ARN-SEG-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR

real    0m11.956s
user    0m11.930s
sys     0m0.020s
985.7
SOR-ARN-SEG-AVI-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR

real    2m5.911s
user    2m5.820s
sys     0m0.000s
1110.9
SOR-ARN-SEG-AVI-SAL-ZAM-PNF-LEO-VAL-PAL-BRG-MIR-SOR

real    24m45.139s
user    24m44.500s
sys     0m0.010s

Ahora toca ponerse con la programación dinámica. A ver que sale 😛

22

Ene

2008

3

A-practicando en la ciudad (I)

reloj03:17 calendarioCategorías: Peripecias, Personal, PHP

Ando terminando una práctica de Estructura de Datos, y en lo que termina de ejecutarse la prueba con 12 ciudades (lleva ya un buen rato), os dejo los resultados hasta ahora. El programa tiene un concepto sencillo, se trata del problema del viajante, que tiene que pasar por n ciudades de la forma más eficiente posible, y pudiendo cambiar la dirección tan solo en el extremo más al oeste (va de este a oeste y luego vuelve al origen de oeste a este). Sencillo, ¿no? Pues mirad los resultados de mi algoritmo de fuerza bruta 😛

jormaro@duero ~/practica2 $time ./a.out < 5_ciudades.txt
343.0
ORIGEN-INT1-INT2-EXTREMO-FALLO-ORIGEN

real    0m0.079s
user    0m0.060s
sys     0m0.030s

jormaro@duero ~/practica2 $time ./a.out < 9_ciudades.txt
910.5
SOR-BRG-PAL-VAL-LEO-ZAM-SAL-AVI-SEG-SOR

real    3m11.552s
user    3m11.500s
sys     0m0.010s

real    33m28.323s
user    33m27.470s
sys     0m0.020s

Decir que básicamente lo que hago es generar las n! posibles permutaciones de todas las ciudades, y escoger entre ellas la de mejor distancia. Es el peor algoritmo que hay, pero es el más fácil de implementar, y por algo hay que empezar. A ver si mañana consigo aplicar alguna estructura de datos propiamente dicha. Se admiten sugerencias 🙂

EDITO: seguimos viendo la maravillosa eficiencia de un algoritmo de fuerza bruta…

jormaro@duero ~/practica2 $time ./a.out  < 10_ciudades.txt
974.7
SOR-ARN-SEG-SAL-ZAM-LEO-VAL-PAL-BRG-MIR-SOR

13

Sep

2007

8

Funcion is_date()

reloj23:33 calendarioCategorías: PHP

Bueno, la acabo de hacer, y me apetecía compartirla. Imagino que habrá alguna otra por ahí, pero esta es mía, mi tesooooro 🙂

function is_date($fecha){
//Comprueba si la cadena introducida es de la forma D/m/Y (15/04/1920)
if (ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $fecha, $bloques)){
if (($bloques[2]>12)|($bloques[2]<1)){
return FALSE;
}
if (($bloques[2]==4)|($bloques[2]==6)|($bloques[2]==9)|($bloques[2]==11)){
$dias_mes = 30;
}else{
if ($bloques[2]==2){ //febrero
if((($bloques[3]%4==0)&(!($bloques[3]%100==0)))|($bloques[3]%400==0)){
$dias_mes = 29;
}else{
$dias_mes = 28;
}
}else{
$dias_mes = 31;
}
}
if (($bloques[1]<1)|($bloques[1]>$dias_mes)){
return FALSE;
}
}else{
return FALSE;
}
return TRUE;
}

19

Dic

2004

3

Nuevos proyectos

reloj14:20 calendarioCategorías: Personal

Mi profesora de programación estaría orgullosa de que empiece a utilizar diagramas a diario, incluso para mi nuevo proyecto, una web para los apartamentos donde vivo

Diagrama

09

Dic

2004

1

PROYECTOS EN MENTE

reloj18:57 calendarioCategorías: Personal

Decir que he cogido hoy el gusto por escribir y este es otro post en diferido de los mí­os, que tengo pensado racionalizar para no escribir un dí­a mucho y otro dí­a nada. Bueno, reflexiones aparte…
Llevo dando vueltas a que llevo mucho tiempo sin hacer nada útil en Internet, ordenador o demás, por lo que quiero dejar constancia de que la intención al menos la tengo :D.
A continuación voy a poner una serie de proyectos que tengo en mente, a los cuales os invito a colaborar si podéis/sabéis:

  • Sistema anti-spam en el blog
  • Web de mi pueblo
  • CMS propio (una vez más, Xergio me pincha para ello, aunque lleva en mi mente desde verano)
  • Web y programa para controlar ftps en la residencia donde vivo
  • Instalar Gentoo en PC y portátil desde 0
  • Probar Fedora Core 3 en algún sitio
  • Programa basado en MySQL y PHP + Visual Basic para llevar un control sobre piezas de un almacén

Creo que ya vale. Decir que no están por orden de preferencia ni de prioridad, y bueno, solo es orientativo, ya que aparte de todo esto, tengo que estudiar bastante, y me gustaría pasar los apuntes de la universidad a ordenador (2 asignaturas nada más), que también me llevará tiempo.
Viendo esto, espero que también entendáis que no puedo dedicar al blog todo el tiempo que me gustarí­a, ya que es fí­sicamente imposible.
Un saludo y hasta más ver.

08

Jul

2004

4

Parsear XML con PHP

reloj00:58 calendarioCategorías: PHP

Esta tarde me instalé el Azureus, un cliente de Bittorrent, y la verdad es que va muy bien, y encima me fijé en que a diferencia de otros clientes P2P, en lugar de crear un archivo de texto plano con las estadísticas y demás, crea un fichero XML, para el cual hay varias funciones en PHP, pero que para mi eran imposibles de entender, por lo que le pedí ayuda a Diz, y al poco tiempo me apareció con el código que él mismo ha publicado aquí, y que yo he arreglado un poco, convirtiéndolo en una función, que para mi gusto es más sencilla de usar. El código es este:

< ?php
function parsear ($ruta) {
	// Ruta al archivo
	$xml = '/home/patoroco/.azureus/Azureus_Stats.xml';

	// Creamos el objeto DOM
	$xmldoc = domxml_open_file($xml);

	// Creamos un contexto en este documento para la consulta XPath
	$xpctx = $xmldoc->xpath_new_context();

	// Ejecutamos la consulta XPath en el contexto creado y recogemos el resultado
	$result = xpath_eval($xpctx, $ruta);

	foreach ($result->nodeset as $nodo) {
		// Recorremos el array volcando el contenido (texto) de los nodos
		$resultado[] = $nodo->get_content();
	}
	return $resultado;
}
?>

Y con esta función, sencillamente habría que saber la «ruta» de etiquetas en el XML, y por ejemplo, para mostrarlo, sería:

$var = parsear('/STATS/GLOBAL/DOWNLOAD_SPEED/TEXT');
echo $var[0];

Muchas gracias de nuevo a Diz, y gracias también a thessoro, por haber sugerido el tratar a los resultados como un array en lugar de como una cadena, ya que para cuando hay varios es mucho más practico.

07

Jul

2004

15

Creando ejecutables en PHP

reloj21:14 calendarioCategorías: PHP

Hace tiempo que llevaba queriendo escribir este tutorial, bueno, más que escribir, pasar a limpio, porque lo tenía en un *.txt esperando a ser publicado. Consiste básicamente en como crear un ejecutable programado en php, para poderlo abrir sin necesidad de navegador u otros.
[+ Más]