Categoría de ‘ Programación ’

Acabe el Proyecto!

Redactado el 16 de Junio del 2007 por Fitti

Por fin, después de 3 meses de duro trabajo (quizás no tan duro) la semana pasada, con alguna ayuda por parte de Alex, tenia casi acabado el proyecto.

Mi proyecto se basa en un programa en C ayudado con la librería (n)curses para el apartado gráfico. Es un Terminal de Punto de Venta. Es bastante simple, hay una lista de productos que se obtiene de un TXT y se va realizado la compra. En cualquier momento podemos ver el ticket con los productos comprados y el precio total, cuando acabemos podemos empezar con un nuevo cliente.

Esta muy bien comparado con el nivel de C que he dado durante el curso.

El jueves hice la exposición y parece que los 2 miembros del “jurado” quedaron contentos, no se dedicaron a putear con preguntas rebuscadas. Esto ultimo creo que es porque ninguno de los 2 tenia suficientes conocimientos de programación como para entender el código fuente.

Ah, se me olvidaba comentar que mi proyecto también era el de Kuder.

Medición del tiempo de ejecución con microtime

Redactado el 4 de Agosto del 2006 por Fitti

Medición del tiempo de ejecución del script con microtime

/**
* Funcion simple para replicar el comportamiento en PHP 5
*/
function microtime_float()
{
list($useg, $seg) = explode(" ", microtime());
return ((float)$useg + (float)$seg);
}
$tiempo_inicio = microtime_float();
// Dormir por un momento
usleep(100);
$tiempo_final = microtime_float();
$tiempo = $tiempo_final - $tiempo_inicio;
echo "No hice nada en $tiempo segundos";

Medición del tiempo de ejecución del script en PHP 5

$tiempo_inicio = microtime(true);
// Dormir por un momento
usleep(100);
$tiempo_final = microtime(true);
$tiempo = $tiempo_final - $tiempo_inicio;
echo "No hice nada en $tiempo segundos";

Extraer la extensión de un archivo en PHP

Redactado el 26 de Julio del 2006 por Fitti
function extension($archivo){
$posicion = strrpos($archivo,'.')+1;
$extension =  substr($archivo,$posicion);
return $extension;
}

Sencilla función que nos devuelve la extensión de un archivo.

Restringir el acceso de los scripts PHP

Redactado el 16 de Marzo del 2006 por Fitti

Los que alojéis varias webs en un mismo servidor os podéis haber encontrado que partiendo desde una web y mediante un include o con fopen se puede tener acceso a los archivos de las otras webs.

Ejemplo:

El webmaster de web1 aloja sus archivos en /var/www/web1 y el webmaster de la web2 en /var/www/web2. Pues si el segundo webmaster quisiera ver el codigo fuente de alguno de los archivos de web1 lo tendría bastante fácil ya que las funciones de PHP (como include) pueden saltar de /var/www/web2 a /var/www/web1.

La solución al problema es fácil, el admin del servidor debe añadir la directiva open_basedir de la siguiente manera:

<VirtualHost …>
[...]
php_admin_value open_basedir /var/www/web2/
[...]
</VirtualHost>

Esto se debe hacer en cada host virtual cambiando la ruta de la web a la que queremos “encerrar�?.

Ejecutar PHP desde la consola

Redactado el 17 de Febrero del 2006 por Fitti

Ya que hace un momento he puesto un script en PHP que necesita ser ejecutado desde consola os explicaré como se ejecuta un archivo PHP desde consola.

  • Si estamos en Windows nos bajamos los binarios de windows y buscamos el archivo php.exe, ahora vamos a la consola y c:\ruta\php.exe c:\ruta\script.php
  • Si por el contrario lo queremos hacer en linux (Debian, Ubuntu….) descargaremos el paquete php5-cli o php4-cli con aptitude install phpX-cli luego es tan fácil como php script.php. Recordar que el php.ini es independiente del de Apache.

Medir velocidad de descarga

Redactado el 17 de Febrero del 2006 por Fitti

Después de tantos problemas con ADSL se me ocurrió hace unos días monitorizar mi linea, es decir, descargar alguna distro una y otra vez durante todo el día para recoger datos. Luego, con esos datos, hacer unos gráficos para ver hasta donde llegan los “20 megas�? según las horas.

Por el momento he hecho un script en PHP (es lo único que domino…) que mide la velocidad de descarga del archivo de la manera más fácil que me ha ocurrido: miro el tamaño del archivo que estoy descargando (con wget), espero 1 segundo y vuelvo a medir el tamaño. De esta manera se a que velocidad estoy bajando ese archivo, que sera la máxima que permite la linea.

Si sigo con la idea de monitorizar la linea tendré que crear un script que baje el archivo una y otra vez y hacer que el script anterior guarde los resultados en la base de datos. Luego solo quedara hacer los gráficos.

Aquí os dejo el código fuente de este mini script.

Hola Mundo en PHP

Redactado el 22 de Enero del 2006 por Fitti

Y ya que pongo Hola Mundo en C pongo el de PHP :P

<?=("Hola Mundo")?> o <?PHP echo "Hola Mundo"; ?>

Hola Mundo en C

Redactado el 22 de Enero del 2006 por Fitti

Llevaba días que quería mirar algún lenguaje aparte de PHP. No tenia claro si JavaScript, Java o C. JS me seria útil para AJAX, Java porque dicen que es muy fácil y C para continuar con C++.

Pues ayer me compre el primer libro que vi y es de…. C. Ya se que en Internet hay miles de tutoriales pero prefiero empezar por algo en papel.

De momento no parece muy complicado, llevo 5 temas de 21 :P Pero si nota que C tiene 30 añitos, PHP es mas nuevo y su estructura es mas lógica y cómoda.

Para acabar os dejo el tipico “Hola Mundo�?:

// Hola Mundo

#include <stdio.h>

main() {

printf(”Hola Mundo”);

}