Archivo para PHP

A-practicando en la ciudad (II)

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 :P

A-practicando en la ciudad (I)

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 :P

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

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

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

pForm, el generador de formularios Web 2.0

Llego a casa y Martín me escribe por el messenger

me vas a querer cuando te dé esto

Y me pasa el link a pForm, un generador de formularios mediante una bonita interface, que crea un código xHTML limpio como el que más. Lo he estado probando, y la verdad es una gozada.

Tan solo hay que elegir el theme que queremos para nuestro formulario de todos los que nos da:

pForm

Y luego es simplemente ir añadiendo los campos que queramos a nuestro formulario, colocándolos a nuestro gusto, con tan solo pinchar y arrastrar.

Además de los campos comunes en un formulario HTML, también añade funcionalidades como el insertar una fecha mediante un calendario desplegable, o un campo para subir archivos. Esta es la lista completa de los campos a añadir:

pForm

Ganando dinero II

Suponiendo que ya te has leído el cómo ganar dinero con o sin web, ahora añado una nueva forma de ganar dinero con tu web/blog, que funciona básicamente como Text-Link-Ads, es decir, te añaden un enlace de texto no intrusivo, y que colocas donde quieras, sin molestar al usuario. Ellos sólo quieren tu PageRank, no cansar a tus usuarios :)

Si estás interesado en forrarte, o al menos ganar unos leuros para unas cañitas, no dejes de inscribirte en LinkLift, pinchando en el banner de abajo:

LinkLift

Decir que yo acabo de cobrar 40€ por 3-4 meses, y eso en este humilde blog. Así que parece que es interesante, ¿no? :)

Nueva web de los Apartamentos

Como habréis visto, llevo bastante tiempo desconectado, pero lo que nadie conocía (salvo el 98,7% de mi messenger :P) es que he estado dando el callo como el que más, programando día y noche, frente a las inclemencias del tiempo, para al final conseguir un resultado medianamente mediocre, que espero ir mejorando poco a poco, pero ya sabéis como va esto de cumplir los plazos…

La parte técnica ha sido llevada a cabo mediante el framework CodeIgniter, que me recomendó Martín, y que vi en la web de los apartamentos una buena excusa para usarlo a fondo. Veredicto final: notable. Aunque lo del MVC, es un poco raro al principio, luego acaba viniendo muy bien saber donde está cada cosa, sin nada más que pensar cual es su funcion.

Así que os invito a todos a pasaros, seáis o no de la residencia, ya que este año se avisará también sobre “eventos” externos a esta, así que todo el que sea universitario por Valladolid, creo que acabará añadiéndola a sus Marcadores :)

Web | cardenal mendoza

Funcion is_date()

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

PHP:
  1. function is_date($fecha){
  2. //Comprueba si la cadena introducida es de la forma D/m/Y (15/04/1920)
  3.     if (ereg("([0-9]{1,2})/([0-9]{1,2})/([0-9]{4})", $fecha, $bloques)){
  4.         if (($bloques[2]>12)|($bloques[2]<1)){
  5.             return FALSE;
  6.         }
  7.         if (($bloques[2]==4)|($bloques[2]==6)|($bloques[2]==9)|($bloques[2]==11)){
  8.             $dias_mes = 30
  9.         }else{
  10.             if ($bloques[2]==2){ //febrero
  11.                 if((($bloques[3]%4==0)&(!($bloques[3]%100==0)))|($bloques[3]%400==0)){
  12.                     $dias_mes = 29
  13.                 }else{
  14.                     $dias_mes = 28
  15.                 }
  16.             }else{
  17.                 $dias_mes = 31
  18.             }
  19.         }
  20.         if (($bloques[1]<1)|($bloques[1]>$dias_mes)){
  21.             return FALSE;
  22.         }
  23.     }else{
  24.         return FALSE;   
  25.     }
  26.     return TRUE;
  27. }

Fisgona en patoroco.net

Andrés Nieto ha creado un fisgón para Wordpress, para ver quien y qué hace en en la web, así que me he decidido a instalarlo. El diseño no lo he tocado más que para ensancharlo, así que queda un poco soso, pero bueno, hace su función.

Enlace | Fisgon de blog.patoroco.net 

Descargar Plugin | WP-Fisgon

Cambio del feed

He cambiado el feed, por lo que ahora tendreis que acceder al de Feedburner. La dirección del nuevo feed es:

http://feeds.feedburner.com/PeripeciasDeUnDomadorDePinginos

Rapidleech y no pares de bajar

Logo de RapidleechSi eres de los que visitan mucho vagos.es (por decir una), te habrás dado cuenta del incordio que es bajar cualquier cosa un poco grande, por ejemplo un capítulo de una serie, que suele venir partido en tres o cuatro trozos. Esto pasa porque los sitios que proporcionan el espacio, dan puntos a los que suben cosas por cada descarga que tienen, que luego pueden cambiar por cuentas Premium (para bajar sin restricciones durante un tiempo), o incluso dinero.

El problema es que estos sitios suelen poner restricciones a la hora de dar estos puntos, por ejemplo, en MegaUpload, para que te den el preciado punto, no puedes subir archivos de tamaño mayor a 100 megas (si los subes no te contará). Creo que ha quedado claro el por qué de partir los archivos en trozos, desde el punto de vista del que sube las cosas.

Los que bajan, normalmente tienen que meter un captcha y luego  esperar un tiempo, que varía entre los distintos servidores, pero tienen todos la misma finalidad: tocar los webos al que quiere bajarse las cosas, para invitarle a contratar alguno de sus servicios. Esto normalmente no queda en esperar x segundos para bajar algo, sino que también ponen restricción a la hora de bajar más de un archivo a la vez, o el bajar x archivos cada cierto periodo de tiempo. Todo esto, basándose en la mayoría de los casos en la dirección IP.

Y es aquí donde entra en juego este maravilloso script PHP, que lo que hace es hacer de puente entre el servidor de descarga, y nosotros, permitiendo bajar varios archivos a la vez, o bajar por ambos canales, saltándonos la restricción de bajar 1 archivo cada cierto tiempo, ya que podremos bajar uno en nuestra casa, y otro a través del servidor donde pongamos RapidLeech.

Leer entero

Problemas con el timezone del nuevo host

Uno de los problemas que tiene el que la Tierra sea redonda, es que existen los usos horarios. Uno no se da cuenta de estas cosas hasta que le afectan directamente, y este ha sido el caso.

Por si no lo sabeís, cambié de host a webhostingbuzz, y la verdad es que estoy encantado con ellos, y a pesar de estar en USA (y hablar en inglés, obviusly), la comunicación con ellos ha sido perfecta, e incluso te regalan un dominio durante el tiempo que tengas el hosting con ellos.

El único problema que no había soluciondo hasta ahora, como habréis adivinado, había sido el de los usos horarios, y es que al no estar en España el server, la hora que tenía era 2 horas menor (valga la redundancia) que la de España/Madrid, así que me puse manos a la obra, y busqué algo de info.

Resumiendo, lo que hice fue añadir estas dos líneas al fichero config.php (se carga en todas las páginas):

date_default_timezone_set('Europe/Madrid');
mysql_query("SET time_zone='+2:00'");

La primera línea modifica el timezone de los scripts por así decirlo, y la segunda, la hora de MySQL. Señalar que la segunda es una consulta normal y corriente a MySQL, así que primero hay que conectar y demás.

Apuntar también que date_default_timezone_set está disponible en  (PHP 5 >= 5.1.0RC1), es decir, si tenéis la versión 4 como era mi caso, mirad a ver si vuestro host os permite cambiar. El mío si , para ello solo tuve que añadir a mi .htaccess:

AddHandler application/x-httpd-php5 .php .php4 .php3 .phtml

Y eso fue todo, por fin tengo el horario típical spanish, aunque no es una buena época para decirlo, porque con esto de los exámenes ya no se ni en que hora/día vivo. Por cierto, ¿cuánto se tarda en corregir un examen? porque para mí que lo están haciendo las pruebas del carbono 14 al mio...

Posteador de MMS para WordPress

Bueno, como mucha gente me lo ha pedido, comparto el código del posteador. Pero quiero dejar claro que no me hago responsable de que funcione, tomadlo como una orientación para crear vuestro propio script, y si lo distribuís, hacedlo con las cabeceras originales.

Acceso a video y audio desde PHP

Bueno, en primer lugar Feliz Noche de San Juan (post programado, evidentemente ;)
Leía ayer (hace unos segunos) por la tarde en Versión Cero, que se está trabajando en una extensión para PHP que permitirá trabajar con videos, no solo ver su tamaño, formato y demás, sino que se podrá coger tal fotograma y retocarlo con GD por ejemplo. Esto puede ser una auténtica revolución para sitios que hospedan videos (dejemos el género en el aire ;), para coger un fotograma del video al azar por ejemplo y mostrarlo en la web con una marca de agua.
Como veis, las posibiliades con el video son muchas, y con el audio, parece que "simplemente" se podrá conocer su formato, duración, y demás datos que se ven en el botón derecho >> Propiedades.
Lo que no tengo muy claro es si valdrá ya solo para PHP5, porque algunos aún nos aferramos a PHP4, y aunque sería una buena excusa para el cambio, creo que aún no estoy preparado (aunque el tiempo del verano lo dirá).

Estadísticas del Project Dolphin

Esta tarde me dió por enredar un poco con la galería gráfica de PHP GD y la primera chorrada que se me pasó por la cabeza fue hacer una imagen que muestre mi estado en el Project Dolphin, y el resultado lo teneis en la columna de menus abajo del todo casi, o bueno, para los vagos, os la pongo abajo:

Project Dolphin

Básicamente es una imagen de fondo, y luego muestra el nick, las pulsaciones con las que he contribuido en mi equipo, mi posición dentro de mi equipo y entre parentesis la posición global (para todos los usuarios), la última fecha de Pulse (la última vez que "actualicé" mis pulsaciones) y por último el nombre del equipo al que pertenezco :).
Por si os interesa, os dejo el código aquí.
Como siempre, espero comentarios :)

Pintando a Nemo

En PHP-Hispano han propuesto este desafío consistente en pintar a Nemo usando la librería gráfica de PHP GD. Y bueno, como me gustan los retos, he decidido hacerlo sin usar esta librería, y bueno, el resultado ha sido más bien bueno...

Nemo

Beta-Testeadme! (II)

El otro día ya os pedía que me probaseis la galería que estaba haciendo, y bueno, tras hablar con los de mi hosting (era problema de memorias virtuales y tal), pues he conseguido que vaya perfectamente por ahora, pero como dice mi profesor de programación, nadie puede probarte mejor un programa, que tu peor enemigo, y mejor aún si es un torpe y tal, así que os dejo la web entera AQU� para que la probeis en general, aunque con que probeis el foro y la galería de imagenes me vale, ya que lo demás es tema administrativo y tal...
He creado el usuario: PHP con contraseña: TORPES, aunque por si os da la neura o este no os va correctamente, he desbloqueado el tema del registro, que luego dejará solo registrarse desde la red interna de los apartamentos a los que va dirigida la web (seguridad y rollos de esos), así que eso, os invito a probarlo y a dejar los comentarios pertinentes :D.