Entradas etiquetadas ‘gratis

Borrar elementos de un array en Php no es una cosa que se necesite a menudo, gracias a la potente función Array Filter podemos borrar algunos elementos del array.

Por ejemplo supongamos que tenemos un array que contiene valores numéricos y letras, queremos separar los valores numéricos porque los necesitamos para un determinado propósito.

Cómo se puede ver en el ejemplo utilizamos dos veces la función, la primera es para filtrar los datos numéricos y la segunda vez es para ordenar el array y que no nos queden elementos intercalados vacios.

$data = array(12, "f", 21, "g", 43.96, "php","");

// Filtramos los datos de $data con la función array_filter y el filtro is_numeric
$datos_numericos = array_filter($data, "is_numeric");

// Volvemos a ejecutar la función para que nos re-indexe el array empezando por 0
$datos_numericos = array_values($numeric_data);

// Imprimimos los datos
print_r($datos_numericos);

La ejecución de este script nos devolvería lo siguiente:

Array
(
    [0] => 12
    [1] => 21
    [2] => 43.96
)

¿Por qué escribir HTML válido?

28 de diciembre de 2008

en: Sin categoría

Es un hecho que aún hoy en día la gran mayoría de páginas webs no son válidas, los blogs son buen ejemplo de ello, mucho se habla de los estándares web son un conjunto de recomendaciones de la World Wide Web Consortium (W3C) y otras organizaciones internacionales.

El principal objetivo de validar tu sitio web es obtener una página que trabaja mejor para todo tipo de navegadores y es mucho más accesible pudiendo funcionar prácticamente en cualquier dispositivo de acceso a Internet, este último punto es muy importante ya que la cantidad de dispositivos diferentes para acceder a Internet ha crecido exponencialmente en los últimos años (teléfonos móviles, teléfonos inteligentes, PDAs, sistemas de televisión interactiva, sistemas de respuesta de voz, puntos de información e incluso algunos pequeños electrodomésticos pueden acceder a la Web).

¿Por qué escribir HTML válido?

Es difícil convencer a los desarrolladores de la necesidad de escribir HTML válido, ya que la gran mayoría de los navegadores procesa e interpreta correctamente el HTML no válido.

Entonces, la pregunta toma aún más interes, ¿Cuál es el incentivo para escribir HTML válido?, pues probablemente la respuesta sea es que si tu sitio web es válido las posibilidades de que la página se muestre y funcione igual en todos los navegadores aumenta considerablemente.

Pongamos un ejemplo básico de HTML y un ejemplo de HTML + Javascript para ver como afectaría un HTML no válido al funcionamiento de nuestra página en ambos casos.

Supongamos que disponemos del código siguiente:

<ol>
<li>Elemento principal uno</li>
<li>Elemento principal dos</li>
</ol>

Como se puede ver los navegadores procesarán sin problemas este código ya que no contiene errores y es bastante sencillo.

Pero que ocurriría si por el contrario cometiéramos errores de validación, por ejemplo:

<ol>
<p><li>Elemento principal uno</li></p>
<p><li>Elemento principal dos</li></p>
</ol>

En este caso el parrafo debería ir dentro del elemento “li” por lo que estamos cometiendo un error, a pesar de ello este error no afectará a la visualización y funcionamiento del HTML… ya que los navegadores podrán interpretarlo sin problemas.

Pero sin embargo si necesitamos el uso de Javascript sobre esta misma página HTML si que nos podemos encontrar con alguna que otra sorpresa.

A menudo antes de empezar un proyecto no tenemos claro cúal es el objetivo del mismo o qué pretendemos alcanzar por eso esta pequeña lista te puede ayudar a la hora de planificar un proyecto.

Planificar una aplicación web implica pensar y definir muchas cuestiones de importancia:

1. Planificar el futuro

Puede sonar un poco duro que nos tengamos planear el futuro de algo que aún no existe pero es así, que pasa si en un futuro tuvieramos problemas de escalabilidad, y sí tuvieramos que migrar las bases de datos de MySql a Oracle, de una buena planificación depende la dificultad en un futuro de realizar cambios en la plataforma que sostiene nuestra aplicación.

2. Documentación

Documenta todo lo que puedas tu aplicación en especial aquellas partes de la misma que hayan requerido un mayor tiempo de desarrollo, en un futuro cercano te librará de más de un quebradero de cabeza.

3. No empiezes por los pequeños detalles

A menudo es más sencillo plantearse el desarrollo de pequeños servicios cómo pueden ser los RSS o una galería de imágenes, pero es fundamental comenzar por lo que vendrá a ser la base de nuestra aplicación, de este modo podremos ir completando nuestra aplicación en un orden lógico, primero los cimientos…

4. Diseño de la interfaz

Esta entrada puede que te ayude en esta parte, es importante conseguir un buen diseño para nuestra interfaz, es importante conseguir un interfaz que se atractivo y útil para la gran mayoria de los usuarios, lo más importante es llegar a conectar con el usuario y la mejor manera es ofrecerle la mayor cantidad de información posible para que se llegue a sentir parte del proyecto pero todo esto muchas veces no lo llegamos a conseguir por una mala elección en la combinación de los colores que se integran en nuestra interfaz.

5. Evita construirte librerías o frameworks innecesarios

Muchas personas siempre sostienen que es mejor que cada desarrollador utilize sus propias librerías, pero la realidad es que en muchas ocasiones esto supone una gran pérdida de tiempo, es mejor buscar una librería o framework que se parezca lo más posible a lo deseado que desarrollarlo por ti mismo.

6. Ten un plan de proyecto

Asegúrate de que cada desarrollador que trabaje en el proyecto sepa qué es lo que debe de hacer y cuándo tiene que hacerlo, teniendo todo esto redactado en un documento te ayudará a identificar problemas.

Construye mapas conceptuales con Freemind

28 de octubre de 2008

en: Sin categoría

FreeMind es una herramienta que permite la elaboración de mapas mentales o conceptuales, en otras palabras podemos decir que es una herramienta para construir diagramas de Brainstorming.

Este tipo de aplicaciones han mostrado una gran evolución en los últimos tiempos. FreeMind, una basada en Java, es una muestra de ello (ver ejemplos).

Antes de hablar de esta herramienta conviene saber… ¿Qué es un mapa conceptual?

Un mapa conceptual es una herramienta para la organización y representación del conocimiento. Por lo tanto los objetivos de un mapa conceptual son:

El verdadero motivo del uso de este tipo de herramientas es para conseguir el “Aprendizaje significativo”, este tipo de “aprendizaje” es el que adquirimos cuando vinculamos unos nuevos conceptos con otros previamente adquiridos, estos conocimientos por lo tanto es más duradero y más fácil de memorizar.

  • Generar ideas
  • Representar una estructura compleja
  • Dar a conocer ideas complejas
  • Agrupar, ordenar y clasificar palabras similares que se encuentran en diferentes temáticas
Mapa conceptual


Ejemplos de mapas conceptuales en Español (Freemind)

Freemind

Basado en Java, y open source, fue catalogado por SourceForge como el Proyecto del Mes de Febrero, ocupa 3 megabytes de espacio y su instalación es sencilla.

FreeMind utiliza como formato de almacenamiento XML, lo cual te garantiza una fácil reutilización en aplicaciones similares si es que alguna vez decides cambiar.

Hace unos días leí esta genial entrada que nos enumera diez principios básicos (dados por expertos en PHP) a la hora de programar en PHP.

Usa PHP sólo cuando lo necesites (Rasmus Lerdorf)

Usa bastantes tablas de MySql para darle escalabilidad a la aplicación web (Matt Mullenweg)

Nunca confies en los usuarios (Dave Child)

Cache en tu web con .htaccess

9 de octubre de 2008

en: Programacion

Hay diferentes métodos que nos permiten optimizar la velocidad de nuestro servidor gracias al uso de .htaccess de Apache (httpd.conf). Estos métodos son realmente simples y seguramente consigamos un aumento importante en el rendimiento de nuestros sitios.

Antes de ver las opciones que nos ofrece este tipo de caché debemos saber en que situación la debemos utilizar y para ello nos viene bien conocer los tipos de cache que existen.

Tipos de caché

Podemos decir que hay tres tipos de caché: caché de navegador, caché proxy y caché de pasarela.

Cada una de ellas tiene un objetivo y se pueden combinar entre sí.

Cada tipo puede utilizarse de diversas formas, por ejemplo la caché de navegador es privada y está presente en la máquina de usuario por lo que sólamente puede ser utilizada por un único usuario.

La caché proxy interviene en la comunicación cliente-servidor y sirven páginas a diferentes usuarios, suele ser usada por los proveedores de servicios de Internet (ISP), universidades y empresas para ahorrar ancho de banda.

La caché de pasarela funciona por parte del propio servidor y no distingue entre usuarios.

¿Por qué usar la caché en el navegador?

Este tipo de cache se produce entre el cliente y el servidor, nos permite salvar copias de las respuestas al cliente (HTML, imágenes, hojas de estilo), el funcionamiento es sencillo ya que la próxima vez que el cliente necesite ese archivo ni se molestará en preguntar al servidor y utilizará la copia previamente guardada.

Con este tipo de caché conseguiremos reducir la latencia y reducir el tráfico necesario para resolver las peticiones.

Reducimos la latencia porque la cache se encuentra en el lado del cliente y obtenemos mejores tiempos de respuesta a la hora de servir la página.

Reducimos el tráfico porque al recibir un menor número de peticiones por parte del cliente el ancho de banda necesario para servir la página es inferior.

Cache con Apache y .htaccess

Tenemos que tener claro que hay tres mecanismos básicos para controlar la caché web.

  • Frescura, permite que una respuesta sea usada sin comprobar de nuevo el servidor.
    Ej: la cabecera de respuesta (header) Expires facilita una fecha en la que el documento caduca, y la directiva Cache-Control: max-age informa al cliente del número de segundos durante los que la respuesta será válida.
  • Validación, nos permite comprobar si una respuesta cacheada sigue siendo buena despues de cadudar.
    Ej: la cabecera Last-Modified, el cliente puede hacer una petición condicional usando la cabecera If-Modified-Since para saber si la página cambió.
  • Invalidación, es un efecto secundario de otra petición.
    Ej: si una URL asociada a una respuesta por medio de una cabecera y realizamos una petición POST, PUT o DELETE a esa misma respuesta, la cache queda invalidad.

Puedes encontrar información adicional en htaccess Caching.