Evitar navegación.
Principal

codigo

Limitar descargas con Php

Probablemente no te encuentres con este problema pero si lo encuentras esta es una buena solución.

A menudo nos encontramos con sitios con un gran número de archivos para descargar, estos sitios limitan el número de descargas permitidas a sus visitantes.

En un principio no suele haber problemas si no limitas las descargas, pero si el visitante utiliza un "gestor de descargas" en los que puedes introducir un número de conexiones por archivo descargado, veras muy limitados los recursos de tu servidor.

Si tienes un control total de tu servidor puedes limitar de manera sencilla el número de descargas permitidas gracias al módulo mod_limitipconn, pero si tu sitio esta en un "hosting compartido" tendrás que tirar de ingenio para ponerle solución.


Técnica de generación procedural (64KB generando 1.9GB)

Gonzo escribio hace un año sobre esta presentación 3D en 64KB que sin comprimir ocupa 1.9GB, hay que decir que es un tema antiguo pero no por ello debemos dejar de sorprendernos:

fr08_final.zip [64kb]

En un primer momento al verla vas a pensar que es imposible, despues pensándolo un poco y viendo más información sobre el mundo de la demoscene te lo vas creyendo.

Para aquellos no relacionados con la demoscene aquí les dejo un link: ¿Qué es la demoscene?

¿Qué es la Demo Scene?

La demoscene es una subcultura informática, las demos comenzaron siendo firma de los crackers que cuando se iniciaba uno de sus programas crackeado las mostraban a modo de presentación, el objetivo principal de una de estas demos es demostrar que se es mejor programador y que se tienen mejores habilidades gráficas y musicales respecto a los demas grupos.

Premios Scene.org

Muchos de estos crackers terminaron trabajando para la industria de los videojuegos.

¿Qué cabe en 64 KB?

No hay que caer en el error de pensar que como se pueden hacer este tipo de "demos" tambien podriamos tener videos de 3 minutos en 64KB (Alta Calidad)... hay que pensar que todo es matemática (Técnicas vectoriales), por lo tanto la manera de verlo es que es una demo de 64KB y no significa que hayan comprimido 1.9 GB sino que los 64KB mencionados son capaces de generar el equivalente a 1.9 GB.

Esto se consigue mediante algoritmos de generación de texturas, generación de sonidos, animación 3D y muchas sincronización todo ello ejecutandose en tiempo de ejecución, por lo tanto y resumiendo los 64KB contienen las "instrucciones" necesarias para generar los 1.9 GB en memoria.

Generación Procedural

Todo lo anterior está relacionado con la técnica de generación procedural, en la que los gráficos son generados al momento, en vez de ser cargadas las texturas. Esto implica por un lado que no es necesario tener gigas y gigas de imágenes y texturas, ahorrandonos la mayor parte del espacio ocupado por un juego al ser generados (los gráficos) al momento y que requiere más CPU de lo habitual. | Ver Porcedural Generation.

Una de las mejores pruebas de esto es ".kkrieger" (First Person Shooter) que pesa sólo 96kb (Descargar).


Top 10 programadores

La verdad es que nunca había preguntado cuales pueden ser los programadores más influyentes de todos los tiempos, seguro que mucha gente no estará de acuerdo con este top pero para eso están los comentarios.

La lista ha sido sacada del blog The "Programming and Management Blog", se nota que el autor se decanta por la industria del videojuego.



Técnicas de optimización de código

Estos pequeños consejos para optimizar el código de tu aplicación no son los únicos y probablemente los habrá mejores pero sin duda te pueden servir de gran ayuda si estas buscando optimizar partes de código de una aplicación, algunas de ellas son unicamente aplicables a un lenguaje en concreto pero con un poco de ingenio las podrás extrapolar a cualquiere lenguaje.

Aclarar que la optimización de código puede realizarse durante la generación o como paso adicional a esta y en último caso (menos recomendable) a posteriori.

Las optimizaciones de código en realidad proporcionan mejoras, pero obviamente no aseguran el éxito de una aplicación.

Clasificación de optimizaciones:

1. Dependientes de la máquina.
* Asignación de registros.
* Instrucciones especiales ("idioms").
* Reordenación del código.
2. Independientes de la máquina.
* Ejecución en tiempo de compilación.
* Eliminación de redundancias.
* Cambio de orden.
* Reducción de frecuencia de ejecución (invariancias).
* Reducción de fuerza.

Tras esta breve introducción pasemos a ver cuales son las más técnicas más destacadas:

Elimina código innecesario

Si tienes código innecesario elimínalo, parece obvio pero en muchas ocasiones esos pequeños trozos de código se mantienen en todas las versiones de la aplicación, si tienes que reescribir una función pero no estas del todo seguro y por lo tanto no quieres perder la versión original, haz una copia de seguridad y de ese modo no se vera realentizada la ejecución de la aplicación.


Reglas básicas para un desarrollador web

Estas son algunas reglas básicas a la hora de desarrollar un buen "producto web", probablemente si desarrollas aplicaciones con asiduidad tienes en cuenta algunas de ellas pero si no las conoces y te gustaría empezar un proyecto seguro que te vendrá bien echarle un vistazo.

Desconfia de los usuarios

Suena duro pero es la verdad, no quiero decir con esta afirmación que todos los usuarios sean maliciosos pero lo que si es cierto es que mientras más desconfies más preparado estarás cuando algo no deseado suceda, intenta comprometer lo menos posible tu aplicación evitando todos aquellos agujeros de seguridad que esten en tu mano, tambien es importante que no te centres unicamente en la seguridad... ten en cuenta que muchos usuarios por desconocimiento de la aplicación harán un uso incorrecto de la misma, un buen ejemplo de ello lo tenemos a la hora de rellenar los formularios, hay que asegurarse y validar todos los datos introducidos por los usuarios.


Generar documentos OpenOffice con PHP

PHP DocWriter es una serie de clases en php para crear documentos de OpenOffice.org en XML, luego con la propia suite lo conviertes al formato que desees/necesites.

Puede que esto ya lo hayas visto puesto que fué uno de los proyectos aprobados para el Google Summer of Code, su objetivo era leer, modificar y crear documentos OpenDocument desde PHP.

¿Cómo generar un documento Open Office con PHP?

Php DocWriter es una serie de clases PHP que permiten crear documentos OpenOffice en formato XML, puedes descargar los archivos de esta librería aqui.

Sigue los pasos de instalación en el enlace mencionado (En Inglés)

Otra de sus características es la de convertir el documento XML generado con la clase a cualquier otro formato de manera automática.


Lenguaje de programación D

Sí no me he equivocado el título dice bien "Lenguaje de programación D", puede que lo hayais escuchado alguna vez porque ha habido varios lenguajes de programación llamados D este en concreto se trata del desarrollado por Walter Bright.

Aún no se considera terminado y esta sujeto a cambios en la especificación pero lenguaje de programación D podría liberarse muy pronto, de todas maneras ya es suficientemente estable como para probarlo.

Es un lenguaje de programación relativamente joven ya que su primera versión apareció en 1995 desarrollada por Walter Bright cómo resultado a algunas decadas de investigación:

Sitio oficial
Descárgate el compilador de D
Más información: Lenguaje de programación D (Wikipedia)

Cómo se puede leer en la Wikipedia, D es de un nivel más alto que C++ y aspira a sustituir a este convirtiendose en una evolución del mismo porque cuenta con mejoras e incluso características de las que C++ no dispone.

Según dicen en la página oficial D es compatible con los binarios de C (No con los de C++) y es más intuitivo y fácil de aprender que C, C++ o Java.


Generar passwords accesibles con Php

A menudo hoy en día las aplicaciones web ofrecen la posiblidad durante el proceso de registro, de generar una clave aleatoria para los usuarios.

Sin embargo estas passwords a menudo carecen de usabilidad debido a la complicada combinación de números, letras y caracteres especiales, trataremos de explicar cómo idear una función en php que genere passwords accesibles.
Tradicionalmente la manera de generar passwords más sencilla es por medio del uso de la función rand(), concatenando letras y números de manera aleatoria.

Ejemplo de ejecución del script
Codigo Fuente del generador de passwords en PHP