Caminata en el rio.

Caminata en el rio.

Salí a caminar, esto debido a que tenía mucho desde que no lo hacía, exactamente desde febrero, para correr utilizo como muchos la aplicación runtastic, me dispuse a empezar el recorrido tenía planeado hacer dos vueltas al malecón de mi amada ciudad candelaria, la intención además de mejorar mi salud era relajarme, ver el amanecer en el rio. Con desagrado pateo un bote de plástico de refresco accidentalmente me detengo a recogerlo y noto que alguien dejo igual salsas de lo que parece ser su cena además de plato de plástico que la contenía, disgustado (no por recogerlo) levanto todo y lo tiro en un bote de basura a escasos 20 metros del lugar, durante el camino me encontré con, latas de cerveza, botellas y demás basura. La cual está a escasos 3 metros del rio y que el viento termina llevando hacia a él. Así que el resto de la caminata mi pensamiento fue al respeto del tema de la basura, primero en forma molesta y crítica al respecto de ello, pero después analítica al respecto de la situación y de sus soluciones. El problema no eran botes de basura, los hay. Era cultural la gente no los está usando y si bien tirar basura es malo, lo es aún más tirarlo en lugares como bosques ríos o lugares naturales en general, ya que el impacto me parece mayor en otros lugares podrían contar con gente que se encargue de recogerlos, pero en este caso en particular los que limpian no lo hacen tan seguido y mucha de la basura termina en el rio. En mi trabajo en el municipio he participado en algunas campañas de limpieza que han organizado en mi oficina, la cantidad de basura que se recolecta es enorme y solo recorremos 1km de orilla de rio, quisiera decir que logre pensar en una solución pero la verdad es que no, solo pienso que me llevaría a mi familia un fin de semana a limpiar para tratar de hacer mi parte y enseñarle a mis hijos lo mal que esta tirar...

Optimizando PDF

Optimizando PDF

Uno de mis clientes es un periódico el cual cuenta con una aplicación interna que permite que suban el periódico en formato PDF para que luego con una interface de calendario esté disponible en su web. Después de un año de servicio el folder web donde colocan los periódicos ya excede los 2.5 megas y es por que suben PDF no optimizados, a mi parecer son los PDF que se mandan a imprenta entonces pesan en promedio entre 25 a 35 MB. Como empresario la solución es muy simple cobrarles más por darles más espacio, pero es un problema que realmente me interesaba solucionar. La segunda solución es que ellos subieran PDFS menos pesados, sugiriéndoles alguna herramienta para ello o alguna forma de guardado que mejore la compresión. Esto si es una solución pero aun así lo que más me interesaba era si era posible que yo en el servidor los compactara y que siguieran siendo PDF. Básicamente mi idea es posible lo que voy a redactar no es un conocimiento total de la solución sino un concentrado de la información relevante para la solución. pues el primer asunto es que los PDF contienen imágenes y el formato PDF no optimiza por default las imágenes esto significa que si agregas una foto de 16 mega pixeles a un PDF y luego la haces pequeña porque así la ocupas el PDF contendrá la imagen original y solo la hará pequeña para mostrarla, el segundo problema en realidad tiene que ver con lo mismo para que las fuentes se vean correctamente cada fuente utilizada en un documento es integrada como metadato para ser usada a la hora de visualizarla. Pues hasta ahí con esas dos cosas podía solucionar mi problema en primer lugar renderizarla el texto para que estuviera en el formato visual que se deseaba sin incluir la fuente y además aplicaría escalado y compresión a las imágenes para que las que contenga sean del tamaño en el que se visualizan no en el tamaño original. <?php /* Optimiza los pdf guardandolos de menos tamaño Depende de tener ghostscript */ if ($dh = opendir(‘.’)) { while (($file = readdir($dh)) !== false) { //if (($file[0]!=’.’) and (substr(strrchr($file, ‘.’), 1) == ‘pdf’)) { if (($file[0]!=’.’) and (pathinfo($file, PATHINFO_EXTENSION) == ‘pdf’)) { system(“gs -sDEVICE=pdfwrite -dCompatibilityLevel=1.4 -dPDFSETTINGS=/screen -dNOPAUSE -dQUIET -dBATCH -sOutputFile=$file.mini $file”); system(“rm $file”); system(“mv $file.mini $file”); } } closedir($dh); } El codigo depende de la libreria isntalada ghostscript para instalarla solo basta sudo apt-get install ghostscript la linea del if que esta comentada hace lo mismo que la que esta en uso la diferecia basicmaente es la optimizacion, la segunda es mas...

Internet en el Hilton

Internet en el Hilton

Por razones de uno de mis dos trabajos tuve que viajar a México y nos hospedamos en el hotel hilton que está en el centro histórico. No es la primera vez que nos hospedamos ahi pero esta vez me llamo la atención que cuando nos registrábamos nos comentara la chica de recepción que normalmente el internet en las habitaciones tiene un coste pero que como estábamos en periodo vacacional nos daría un código para que pudiéramos usarlo. Cuando entro a mi habitación desempaco y prendo mi portátil y procedo a conectarme a internet un portal captivo me da la bienvenida y me pregunta si tengo un código o si quiero comprarlo. Como tengo un código procedo a ponerlo y funciona así que empiezo a trabajar actualizar repositorios, a subir y bajar información revisar emails esas cosas, pero cuando estoy corriendo unos scripts me acuerdo del que suelo usar para escanear la red en busca de máquinas conectadas, total no me quita nada. “` #!/usr/bin/python # -*- coding: utf-8 -*- from subprocess import Popen, PIPE import socket lan=([(s.connect((‘8.8.8.8′, 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]).split(“.”) lanip=lan[0]+’.’+lan[1]+’.’+lan[2]+’.’ for ip in range(1,255): ipAddress = lanip+str(ip) subprocess = Popen([‘/bin/ping’, ‘-c 1’, ipAddress], stdout=PIPE, stdin=PIPE, stderr=PIPE) stdout, stderr = subprocess.communicate(input=None) if “bytes from ” in stdout : print “IP: %s ” %(ipAddress) “` Descubro que solo mi propia portátil está conectada según a la red cosa que era mentira también estaba conectado mi celular. Así que me pongo a ver qué es lo que pasa era bastante simple estaban colocando a cada persona conectada en una subred diferente Pues ya entrado en el tema decido revisar su portal captivo para ver el modelo del dispositivo y demás información que me diera curiosidad, entro en la parte de comprar un código y descubro que hay un error muy habitual en personas que apenas empieza a programar aplicaciones web, el campo del precio de lo que pagarías por el acceso estaba como código dentro del HTML en un campo escondido, así que solo tenías que ponerle el precio que quisieras pagar o incluso nada, para tener el...

Clase para calculo y consulta de CURP

Clase para calculo y consulta de CURP

Tenia colocada esta clase en mi antiguo blog pero como no le doy mantenimiento lo moveré a este, coloco el modelo. La descarga contiene documentación y ejemplos de uso en GTK y web. DESCARGAR...