Entradas

Medir el tiempo de una rutina en PHP

Hace una semana comentaba como poder medir el tiempo de una rutina con c/c++ , principalmente con el fin de optimizar nuestro código. Hoy muestro como hacer lo mismo en PHP: $A = microtime(true); for($i = 0; $i < 1000000; ++$i) { /* Nuestro código */ } $B = microtime(true); $t = ($B - $A); echo("Duracion: ".$t." segundos."); Muy fácil, tomamos el valor del reloj antes del for ,tomamos nuevamente el valor del reloj después del for y finalmente calculamos la diferencia de tiempos (final - inicial), el resultado es el numero de segundos que tarda en realizarse nuestro código 1000000 veces. Sitúa tu rutina dentro de un bucle si dura poco, ya que si el resultado de la medición es de pocos milisegundos no nos sirve, mejor que dure unos segundos. Omite el bucle del código de ejemplo si ya dura de por si un tiempo apreciable.

CSS Tabs al estilo de Windows 7

Imagen
En este post podéis ver como crear pestañas casi idénticas a las de Windows 7, usando CSS y un poco de Javascript. Podría haberlo hecho sin javascript pero para no complicarme mucho y hacerlo compatible con la mayoría de los navegadores lo he usado, ya que para crear un mismo efecto de pestañas sin javascript, solo css, habría que usar el selector :target , el cual solo es compatible en algunos de los navegadores mas modernos. DEMO! El html: <div class="tabs-wrap"> <ul class="tabs"> <li><a href="#A">Tab A</a></li> <li><a href="#B">Tab B</a></li> <li><a href="#C">Tab C</a></li> <li><a href="#D">Tab D</a></li> </ul> <div id="A" class="panel">Text....A</div> <div id="B" class="panel">Text....B</div> <div id="C" class="...

Reduce el tamaño de los ejecutables

Imagen
Para reducir el tamaño de archivos ejecutables, comúnmente *.exe y *.dll, existen multitud de herramientas que lo permiten, pero mi preferida es UPX. UPX es una herramienta de compresión de ejecutables, muy utilizada, muy rápida, con un alto nivel de compresión y que ademas es gratuita. Los ejecutables ocuparan menos de la mitad en la mayoría de los casos o incluso mucho menos, fíjate en la imagen, Photoshop.exe pasa de 49.650KB a 9.449KB , pero no todo es de oro, he oído tardaran mas en abrirse, ya que creo que necesitan descomprimirse en tiempo de ejecución, pero yo personalmente nunca note nada. Esta disponible en modo consola para Windows, linux, ... Yo, para tener el UPX siempre accesible de forma rápida, como se ve en la captura de arriba, cree dos accesos directos, uno de ellos con el parámetro -d que sirve para descomprimir y los metí en la carpeta sendTo .

Benchmark de rutinas en c

Cuando tenemos un programa funcionalmente terminado, lo ideal es optimizarlo para que no solo funcione correctamente, sino para que también sea rápido. Lo mejor para estos casos es ver el tiempo que tarda la CPU en realizar una rutina o función de tu programa y ver si mejora (disminuye) al "optimizarlo". #include <stdio.h> #include <time.h> int main () { clock_t A , B ; // Tiempo inicial y final (en ciclos) double t ; // Tiempo en segundos int i ; A = clock (); // Marcamos el inicio for ( i = 0 ; i < 10000 ; i ++) { /* Código a optimizar */ }; B = clock (); // Marcamos el final t = ( double )( B - A ) / CLOCKS_PER_SEC ; printf ( "%.16g ms \n " , t * 1000.0 ); return 0 ; } Como puedes ver uso un bucle para que se la ejecución de cierto código se repita muchas veces multiplicando el tiempo por 10000 en ...

Apagar todas las pantallas a la vez

Cuando tengo que levantarme un rato del ordenador, por ejemplo para ir a cenar, suelo apagar el monitor, pero esta tarea puede ser fastidiosa cuando tienes varias pantallas (imagínate tener que buscar y pulsar el botón power de 3 o mas pantallas para apagarlas y luego otra vez para encenderlas), yo, cuando empece a usar 2 pantallas fue lo que mas note, sobretodo por que el botón de encendido de una pantalla me quedaba oculto detrás de la otra. Así que para quienes tengan un problema parecido al mio o no quieran pulsar tantos botones de encendido os dejo mi solución al problema. Lo que hice fue crear un programa que enviara una señal a Windows para que apague las pantallas: #include <windows.h> #define MONITOR_ON -1 #define MONITOR_OFF 2 #define MONITOR_STANBY 1 int main() { SendMessage(HWND_BROADCAST, WM_SYSCOMMAND, SC_MONITORPOWER, MONITOR_OFF); } o "simplemente": #include <windows.h> int main(){ SendMessage((HWND)0xFFFF,274,0xF170,2); } Si lo compilá...

Teclas de métodos abreviados

Imagen
Para quien no lo sepa o para quien no pueda disfrutar de las teclas multimedia , en Windows, en las propiedades de cualquier acceso directo existe la posibilidad de incluir una tecla de método abreviado o "hotkey", es decir, una tecla o combinación de teclas que al ser pulsadas en cualquier momento, ejecuta el acceso directo. Nunca vi a nadie usarlas, yo nunca las usé, y no por que no me gusten sino por que nunca me acuerdo de usarlas. Pueden ser realmente útiles si nos acostumbramos a usarlas, pero lo que mas nos "impide" usarlas es que seguramente no nos acordemos de que tecla elegimos para cierta aplicación, o que a la hora de querer abrir un programa no nos acordemos de que teníamos la "tecla abreviada". Por lo general la combinación sera CTRL + ALT + [Letra] , ya que no permite usar teclas de la A a la Z sueltas, ni CTRL + [Letra] , ALT + [Letra] ni WIN + [Letra] , pero si deja usar, aunque yo no las recomiendo, números (del teclado numérico de l...

Como configurar las teclas multimedia

Imagen
Hoy en día la mayoría de los teclados incluyen lo que se llaman teclas multimedia que suelen estar en la parte superior, encima de las teclas F1,F2,...,F12,..., son muy útiles pero creo que se usan poquísimo, principalmente por que no estamos acostumbrandos a usarlas (yo ya he conseguido acostumbrarme a usar la tecla de abrir la calculadora) y por que a veces sirven para cosas que no nos resulta es útil, por lo que aunque tengamos una tecla para abrir MyPC, seguiremos usando el ratón, moviéndolo de un lado para otro de la pantalla buscando el programa que queremos abrir sin acordarnos de que pulsando una tecla esta todo hecho. Para cambiar la funcionalidad de las teclas sin tener que instalar ningún programa, en Windows XP podéis usar TweakUI solo tenemos que entrar en el registro (pulsa WIN+R y ejecuta regedit) y situate en: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\AppKey Veras que "dentro" de AppKey hay carpetas claves, a cada una le corresp...