WordPress

PHP 2: Variables

2014-03-13 - Categorías: PHP
Continuando con los minitutoriales para aprender rápidamente y en dos dias PHP, ahora las variables..
No hace falta declarar el tipo de variable que vamos a usar, simplemente le damos valor y la usamos. PHP no es fuertemente tipado. No hace falta definir el tipo de variables que usamos, además de que la naturaleza de las variables puede cambiar a lo largo de la ejecución de los programas.
PHP tiene características muy buenas para aprender a programar gracias a su flexibilidad. Quizá por esto es bien popular. Pero a la vez, esta flexibilidad, libertad, o libertinaje, da lugar a quizá códigos fuentes a veces confusos i no lo mejor posibles. Pero esto es otro tema para otro post, así que vamos al grano..

Variables simples

Las variables utilizan el símbolo $ delante del nombre de la variable.
$variable = "cadena";
$variable2 = 1;
$variable3 = 1.2;
$variable4 = true;
echo $variable;
Ésto escribirá ‘cadena’ en la web. Es sencillo ¿verdad? simplemente le damos valores y las usamos.

Variables no tan simples

A modo de curiosidad, en un test me preguntaron para qué servían las variables con doble $, pues mira el código siguiente:
$variable2 = "cadena2";
$$variable2 = "otro valor";
echo $cadena2;
Ésto escribirá ‘otro valor’. Pero ¿cómo? ¡si no le he dado valor a la variable $cadena2! Ésto es lo que en la documentación oficial se llaman variables variables. Sirve para usar nombres de variables que cambien. Dejo aquí el enlace con todo ésto mejor explicado http://php.net/manual/es/language.variables.variable.php

Vectores

También tenemos vectores, de la forma que tenemos una ‘lista’ de elementos. Con un ejemplo podemos verlo claramente cómo se puede usar.
$unvector[] = "valor1";
$unvector[] = "valor2";
$unvector["algo"] = "valor3";
$unvector[0] = "primer valor";
echo $unvector[1] . " - " . $unvector["algo"]; // valor2 - valor3
var_dump($unvector);
Fijándonos en el código anterior, podemos ver que los vectores comienzan por la clave 0 de forma automática. Otra forma de utilizarlos en vez de usar un entero para los elementos, es usando cadenas. Examinando el resultado de la última instrucción especial:

array(3) { [0]=> string(12) «primer valor» [1]=> string(6) «valor2» [«algo»]=> string(6) «valor3» }

Podemos ver que tenemos un vector de 3 elementos. Lo que tenemos entre corchetes [] son las claves para darle valor o usarlo. Y después del => tenemos el valor.

Matrices y otros

Hay muchas más posibilidades, podemos tener también matrices, de forma que en vez de tener vectores de elementos, tenemos vectores de vectores, similar a una tabla.
$matrix[0][0] = 1;
$matrix[0][1] = 2;
$matrix[1][0] = 3;
$matrix[1][0] = 4;

También podemos usar tres dimensiones.

// una matriz tridimensional
$matrix[0][1][5] = 27;

..cinco dimensiones..

// una matriz de cinco dimensiones
$matrix[0][1][5][2][3] = 2723;
Así sucesivamente. Queda añadir que los elementos de los vectores, matrices y otras formas multidimensionales que podamos usar pueden ser de todos los tipos disponibles.
De nuevo, me remito para más información a la documentación oficial http://www.php.net/manual/es/index.php

PHP 1: Escribiendo la respuesta

2014-03-13 - Categorías: PHP
Aquí desde Spain la crisis sigue apretando, no hay mucho trabajo así que aprovecho para seguir con los minitutoriales. Continuando con éste nuevo post, sin demasiada teoría, vemos dónde ponemos el código PHP. Al grano..

Escribiendo la respuesta

Partimos de que ya tenemos un esqueleto básico en HTML de nuestra página index.html o cualquier otra web con incluso CSS, Javascript, etc. Por ejemplo:
<!DOCTYPE html>
<html>
    <head>
        <title>PHP 1: Escribiendo la respuesta</title>
        <meta charset="utf-8">
    </head>
    <body>
        <!-- AQUÍ VA EL CONTENIDO DE LA
        WEB -->
        <?php
 echo "<p>¡Hola mundo!</p>";
        ?>
    </body>
</html>

En cualquier lugar podemos usando las etiquetas <?php código fuente ?> incluir nuestra programación que se ejecutará antes de enviar al navegante. Éste código dará de resultado, simple y llanamente el siguiente resultado que enviará al navegador:

<!DOCTYPE html>
<html>
    <head>
        <title>PHP 1: Escribiendo la respuesta</title>
        <meta charset="utf-8">
    </head>
    <body>
        <p>¡Hola mundo!</p>
    </body>
</html>

Existen otras formas de escribir la respuesta, pero para escribir simple texto con echo tenemos bastante. Tenemos también print, printf, fprintf, etcétera..

También podemos tener una página completamente en PHP, en la que sólo hace falta que abramos la etiqueta <?php y sin cerrar. Pero en éste caso, todo debe generarse desde PHP. Es decir, todas las etiquetas HTML o contenido cliente debe generarse.
<?php
// código fuente de nuestro programa..
Lo habitual es usar éste formato cuando dividimos la aplicación en varios ficheros. Por ejemplo, podemos tener funciones, objetos, variables y otras cosas separadas en otros ficheros .php e incluirlos o requerirlos. Más adelante escribiré sobre cómo incluir o dividir la aplicación en trozos. Todo éste código PHP se ejecutará en el servidor, escribiendo la respuesta que se le va a enviar al visitante, y posteriormente se le enviará al navegador sin que el navegador del visitante pueda ver nada de la programación PHP.

Para más información me remito a la documentación oficial http://www.php.net/manual/es/index.php


PHP 0: Preparando las herramientas

2014-03-10 - Categorías: PHP
PHP

Inaguro con éste post una serie de pequeños tutoriales que pretendo publicar para auto-reciclado de nuestros conocimientos. O para aprender los nuevos, los que los lleguen a leerlos, de una manera no demasiado técnica, aprendiendo los conceptos básicos sobre programar en PHP.

La sintáxis de PHP es parecida a C/C++, Java, JavaScript, así que si ya conoces alguno de éstos lenguajes verás más claros los codigos.

Sobre navegar

En Internet, mientras navegamos, todo ocurre de la forma: el navegador pide una página aun servidor web, el servidor web se encarga de hacer lo que tenga que hacer y construye la respuesta, y finalmente ésta respuesta se la envía al nevagador web. Hay una arquitectura cliente-servidor, donde el cliente (navegador) hace peticiones al servidor (servidor web) y éste le devuelve lo pedido.

Navegador ------------------> realiza petición ---------------------> Servidor Web
..el servidor procesa la petición, aquí PHP se ejecuta..
Navegador <------------------ recibe la petición <------------------- Servidor Web
PHP se ejecuta en el servidor, aunque también permite ejecutarse en línea de comandos, como el antiguo MSDos o el bash de Linux. Es decir, lo que programemos en PHP va a ejecutarse en el servidor web que tengamos antes de enviarsa nada a nuestros navegadores. PHP se usa para construir la respuesta que vemos en el navegador. Dicha respuesta puede contener noticias, un foro.. todo tipo de contenido dinámico generado según lo que se haya programado.

Herramientas

Vamos a necesitar, como para cualquier desarrollo web, unas herramientas:
  • Editor de texto: Notepad, Notepad++, Eclipse, Aptana Studio, Vi, Nano, Gedit.. cada cual con el que más le guste, si tienes experiencia con Eclipse recomiendo ver el Aptana Studio, si no mejor algo más simple para empezar como el Notepad++, si usas Linux no tendrás problema para encontrar el tuyo y tal vez ya tengas alguno bueno instalado. También los hay de pago como PhpStorm que últimamente está muy de moda.
  • Navegador web: imprescindible tener varios para probar en caso de querer máxima compatibilidad. Internet Explorer, Chrome, Opera, Firefox y Safari son los más utilizados. De entre ellos Firefox es que más respeta los estándares y ya todos suelen traer herramientas de desarrollador que nos faciliten la tarea.
  • Servidor web con PHP: ahora viene lo complicado, tenemos muchos servidores web disponibles y le podemos. Para programar nos puede valer con cualquiera decente que tenga PHP aunque no está de más elegir uno bastante estable y completo. Directamente recomiendo Apache en sus versiones XAMPP, WAMPP, LAMPP, Uniform Server para Windows o el propio Zend Server en su versión gratuita, que ya nos traerá todo el paquete listo para usar y no tendremos que meternos a hacer tareas de administrador de sistemas.
Una vez instalado y configurado todo podemos empezar con un primer proyecto para comprobar que todo funcione.

Primer proyecto

Doy por sentado unos conocimientos mínimos sobre programación, soltura en el manejo de tu ordenador, ficheros, directorios, etc..
Tenemos mucha información de instalación sobre cada servidor en Internet, las versiones de XAMPP son muy fáciles de instalar y seguro que siguiendo las instrucciones lo instalas rápidamente. En mi caso tengo instalado Uniform Server, que simplemente se descomprime y dentro de su carpeta tengo otra llamada ‘www’ que es donde apunta ‘localhost’. Configurar el servidor se sale del propósito de éste minitutorial así que tal vez en otro..

Cabe destacar que desde la versión 5.4.0 tenemos un servidor embebido que tan sólo instalando PHP. Es muy básico pero es simple para empezar. Entramos en línea de comando al directorio donde tenemos la web y ejecutamos lo siguiente:

C:directorioDeLaWebphp -S localhost:12345

Debemos tener el ejecutable de PHP en el path del sistema. Luego accediendo a http://localhost:12345/ podremos ver nuestro index.php o index.html

Una vez tengamos configurado el servidor elegido podremos acceder a http://localhost/ o al host virtual http://hostvirtual/ y vamos a crear nuestro primer ‘hola mundo’. Escribimos en un fichero de texto lo siguiente y lo ponemos en el directorio del servidor web donde está nuestro host:
<?php
echo "¡Hola mundo!";
?>
Una opción al clásico ‘hola mundo’ es mostrar la información del PHP instalado con lo siguiente veremos todas las variables de la instalación, así como la versión y otras configuraciones:
<?php
phpinfo();
?>
Debemos ver algo parecido a la imagen siguiente:

Terminando

Si te has instalado un entorno de desarrollo, un navegador, el servidor web y has conseguido ver en el navegador la imagen anterior del phpinfo te puedes dar por satisfecho. Espero pronto poder seguir escribiendo.

Para terminar no me queda más que remitirme a la documentación oficial de donde he sacado muchos conceptos. También hay muy buenas webs con más contenido sobre PHP, como por ejemplo el proyecto http://www.phptherightway.com/

Un saludo!

Aumentar la vida del disco duro

2014-02-25 - Categorías: General
En éstos días he tenido acceso a un ordenador que ha estado trabajando con archivos grandes, generados de resultado de renderizados 3D. El ordenador ha estado trabajando duro y el disco se ha muerto. Asunto normal teniendo en cuenta la gran carga de trabajo hecho.
No ha quedado otra solución que reemplazar el disco duro, reinstalar el sistema operativo y a seguir funcionando. Pensando en ello, tengo un sistema operativo Windows, igual que el equipo en cuestión. Y resulta que hace tiempo que no desfragmentaba. Con lo que me encontré en uno de los discos la imagen del disco bastante fragmentada que adjunto.

La desfragmentación en Windows

La fragmentación ocurre cuando grabamos archivos en el disco duro en trozos dispersos. Sería mejor que un mismo archivo estuviera en el disco en el mismo sitio, mejorando así su lectura y evitando que el cabezal de lectura del disco vaya dando saltos buscando los trozos del archivo, cosa que reduce la vida del mismo aparte de su velocidad de respuesta.
Aún tenemos en los sistemas de Microsoft el problema de la fragmentación. Cuando teníamos los sistemas de archivos antiguos tipo FAT la desfragmentación era más grave. Con los nuevos sistemas de archivos NTFS se ha mejorado pero sigue pasando, con lo que el desfragmentado viene siendo necesario. Cosa que no ocurre en otros sistemas. Pero ¿porqué ocurre? ¿no sería más fácil grabar los archivos sin partirlos?
La fragmentación ocurre porque Windows da más importancia a que los datos se graben rápidamente, con lo que ahí donde esté el cabezal empezará a grabar y si queda sin espacio contiguo partirá el fichero en trozos más o menos dispersos dependiendo del espacio libre. Además si un archivo crece en tamaño y no hay espacio libre hasta el siguiente archivo entonces se fragmenta. Ésto se ha mejorado con el nuevo NTFS, dejando más espacio libre entre archivo y archivo por si acaso crece en tamaño. Pero tarde o temprano se torna necesario desfragmentar.

Otros sistemas

En los equipos Mac también ocurre la desfragmentación. En Linux, con los sistemas de archivos ‘ext’ se ha solucionado casi totalmente éste problema porque directamente dispersa los archivos por el disco duro asegurándose que no haga falta fragmentarlos. Produciéndose la desfragmentación sobre la marcha donde sólo permite un 1% de archivos fragmentados. Aunque también hay herramientas con las que se puede desfragmentar un sistema Linux.

Mejorando

Resumiendo, si queremos entonces evitar en la medida de lo posible que tu disco duro vaya dando saltos adelante y atrás, moviéndose entre discos, sectores y cilindros para leer y escribir tus datos lo que debemos hacer es desfragmentar el disco duro de vez en cuando.
En Windows 7 tenemos el desfragmentador en el botón de Inicio -> Accesorios -> Herramientas del sistema -> Desfragmentador de disco
Hay muchas soluciones en el mercado, de entre ellas, para uso personal tenemos el famoso Defraggler. Es muy completo, te permite incluso elegir qué archivos quieres compactar entre sus numerosas opciones.
Un saludo!

Probando Bootstrap 3

2014-02-17 - Categorías: General

Cada vez menos ordenadores de sobremesa visitan las páginas web. Se venden ingentes cantidades de dispositivos que no son los clásicos ordenadores como tablets, smartphones, smart TV.. Los visitantes de una web necesitan que la página sea compatible con todo tipo de dispositivos. Bootstrap de Twitter está muy de moda, a fecha de hoy van por la versión 3.1.1 así que aprovechando para ponerme al día les dejo éste post. Al grano..

Bootstrap de Twitter es un framework de desarrollo para hacer aplicaciones web compatibles con todo tipo de dispositivos. El modelo de desarrollo cambia totalmente al modo habitual porque se da preferencia a los dispositivos móviles siendo su adaptación primera, antes que para escritorios de ordenador. Para verlo claro más abajo veremos cómo el mismo menú en caso de tener una pantalla ancha se verá en horizontal como en la imagen de arriba. Si tenemos una pantalla estrecha se visualizará desplegándose hacia abajo para que quepa todo.
Lo mismo sucede con el resto de las páginas diseñadas con Bootstrap, se adaptan según cambia el tamaño del navegador. Así tendremos una web que se puede ver correctamente en cualquier dispositivo.

Esbozando la web

Para que sea lo máximo posible compatible necesitamos utilizar el estándar HTML5 con lo que la primera estructura quedará así:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Probando Bootstrap Twitter</title>

</head>
<body>

</body>
</html>
Es importante saber que con la metaetiqueta «viewport» definimos la escala inicial de la página. Ésto se utiliza para agrandar o disminuir con la función de zoom de los navegadores.

Añadiendo los archivos externos

Prefiero descagar los archivos de las páginas oficiales (getbootstrap.com) y usarlos dentro del proyecto en cuestión. Pero para simplificar ésta primera plantilla he puesto los CDN. Será necesario tener conexión a Internet para ejecutar la web y se vean el aspecto estilo Bootstrap. Si los incluyes dichos archivos no será necesario Internet. Añadimos dentro del <head> lo siguiente:
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<link rel="stylesheet" href="http://netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap-theme.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="https:///netdna.bootstrapcdn.com/bootstrap/3.1.1/js/bootstrap.min.js"></script>

Ésto simplemente enlaza a los archivos públicos que tenemos en Internet. Te ahorras espacio usando los CDN, pero dependes de que dichos archivos estén disponibles para que tu web funcione correctamente.

Algunos componentes para probar

A continuación he puesto un menú de navegación y tres paneles, uno simple, otro con título y un tercero con título con estilo de cabecera. Añadiendo en el body lo siguiente tendremos la barra de navegación que viene en la documentación oficial:
        <nav class="navbar navbar-default" role="navigation">
<!-- El logotipo y el
icono
que despliega el menú se
agrupan
para mostrarlos mejor en
los
dispositivos móviles -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".navbar-ex1-collapse">
<span class="sr-only">Desplegar navegación</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Logotipo</a>
</div>

<!-- Agrupar los enlaces
de
navegación, los
formularios y
cualquier
otro elemento que se
pueda
ocultar al minimizar la
barra
-->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li class="active">
<a href="#">Enlace #1</a>
</li>
<li>
<a href="#">Enlace #2</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> Menú #1 <b class="caret"></b> </a>
<ul class="dropdown-menu">
<li>
<a href="#">Acción #1</a>
</li>
<li>
<a href="#">Acción #2</a>
</li>
<li>
<a href="#">Acción #3</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #4</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #5</a>
</li>
</ul>
</li>
</ul>

<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Buscar">
</div>
<button type="submit" class="btn btn-default">
Enviar
</button>
</form>

<ul class="nav navbar-nav navbar-right">
<li>
<a href="#">Enlace #3</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> Menú #2 <b class="caret"></b> </a>
<ul class="dropdown-menu">
<li>
<a href="#">Acción #1</a>
</li>
<li>
<a href="#">Acción #2</a>
</li>
<li>
<a href="#">Acción #3</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #4</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>
Incluyendo dentro del body también lo siguiente tenemos los tres paneles citados:
        <div class="container">
<div class="panel panel-default">
<div class="panel-body">

<h1>¡Hola Mundo!</h1>

</div>
</div>

<div class="panel panel-default">
<div class="panel-heading">
¡Hola Mundo!
</div>
<div class="panel-body">
Contenido del panel
</div>
</div>

<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">¡Hola Mundo!</h2>
</div>
<div class="panel-body">
Contenido del panel
</div>
</div>
</div>
Nota que los paneles están dentro de un <div class=»container»>. Éste div contenedor se suele usar para el contenido de la web, alinea lo que tengas dentro, para algunos componentes es necesario si no puede que no se vean bien.

Ahora es el momento de probar con un móvil el fichero, o con una tablet. Si quieres verlo claro directamente en el ordenador puedes estrechar horizontalmente el navegador con la página cargada y verás cómo se modifica el aspecto.

Usando archivos incluidos en el proyecto

Si descargamos y descomprimimos los archivos de la página oficial getbootrap.com, tendremos tres directorios con todos los archivos necesarios menos jQuery. jQuery lo podemos descargar de su página oficial http://code.jquery.com/jquery-2.1.0.min.js y copiarlo al directorio js. Ahora tendremos un directorio /css otro /fonts y un tercero /js con todo incluido. En éste caso viendo los archivos que tengamos según la versión podremos incluir en la cabecera el código siguiente:
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>

Mira que las rutas relativas a los archivos sean correctas y que dichos archivos estén en su sitio, sino no funcionará.

Resumiendo

Entonces el archivo completo de pruebas con los archivos necesarios incluidos en el directorio del proyecto quedará tal que así:
<!DOCTYPE html>
<html lang="es">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Probando Bootstrap Twitter</title>
<link rel="stylesheet" href="css/bootstrap.min.css">
<link rel="stylesheet" href="css/bootstrap-theme.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
</head>
<body>

<nav class="navbar navbar-default" role="navigation">
<!-- El logotipo y el
icono
que despliega el menú se
agrupan
para mostrarlos mejor en
los
dispositivos móviles -->
<div class="navbar-header">
<button type="button" class="navbar-toggle" data-toggle="collapse"
data-target=".navbar-ex1-collapse">
<span class="sr-only">Desplegar navegación</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<a class="navbar-brand" href="#">Logotipo</a>
</div>

<!-- Agrupar los enlaces
de
navegación, los
formularios y
cualquier
otro elemento que se
pueda
ocultar al minimizar la
barra
-->
<div class="collapse navbar-collapse navbar-ex1-collapse">
<ul class="nav navbar-nav">
<li class="active">
<a href="#">Enlace #1</a>
</li>
<li>
<a href="#">Enlace #2</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> Menú #1 <b class="caret"></b> </a>
<ul class="dropdown-menu">
<li>
<a href="#">Acción #1</a>
</li>
<li>
<a href="#">Acción #2</a>
</li>
<li>
<a href="#">Acción #3</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #4</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #5</a>
</li>
</ul>
</li>
</ul>

<form class="navbar-form navbar-left" role="search">
<div class="form-group">
<input type="text" class="form-control" placeholder="Buscar">
</div>
<button type="submit" class="btn btn-default">
Enviar
</button>
</form>

<ul class="nav navbar-nav navbar-right">
<li>
<a href="#">Enlace #3</a>
</li>
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown"> Menú #2 <b class="caret"></b> </a>
<ul class="dropdown-menu">
<li>
<a href="#">Acción #1</a>
</li>
<li>
<a href="#">Acción #2</a>
</li>
<li>
<a href="#">Acción #3</a>
</li>
<li class="divider">
</li>
<li>
<a href="#">Acción #4</a>
</li>
</ul>
</li>
</ul>
</div>
</nav>

<div class="container">
<div class="panel panel-default">
<div class="panel-body">

<h1>¡Hola Mundo!</h1>

</div>
</div>

<div class="panel panel-default">
<div class="panel-heading">
¡Hola Mundo!
</div>
<div class="panel-body">
Contenido del panel
</div>
</div>

<div class="panel panel-default">
<div class="panel-heading">
<h2 class="panel-title">¡Hola Mundo!</h2>
</div>
<div class="panel-body">
Contenido del panel
</div>
</div>
</div>

</body>
</html>
Si todo ha ido bien debemos de ver la página como la de la imagen de al lado cuando hacemos la ventana del navegador estrecha. Espero haber resumido correctamente la documentación oficial como para poder empezar a jugar con el framework Bootstrap.

Sólo me queda decir que los ejemplos de componentes que he puesto los he sacado de la documentación oficial, en ella estan todos los que hay disponibles. Como por ejemplo el uso de rejillas, las fuentes para los pequeños gráficos incluidos, y un largo etcétera..

Saludos!


Validación de páginas web

2014-02-09 - Categorías: General
Hace tiempo que no escribo, parece que estoy olvidándome de la programación pero no es así. He estado bastante liado, tal vez demasiados proyectos o demasiado «querer hacer». El que mucho abarca poco aprieta, o el que mucho aprieta poco abarca :S así que espero seguir escribiendo, aunque sea los fines de semana.

En éstos días he estado viendo cómo se puede medir la calidad de una página web. Desde un punto de vista se puede medir la cantidad y calidad de los algoritmos que trabajan en la parte servidor, sus funciones o servicios que dan. Por otro lado tenemos las validaciones de la parte cliente, si cumple con los estándares de los lenguajes..

Unos chequeos que podemos hacer para validar la parte cliente:
Otras herramientas: http://www.w3.org/QA/Tools/
Con ésto ya hay para hacerle algunos checkeos automáticos. Son pocas las webs que cumplen con todos los estándares, pero la organización mundial donde se organiza todo ésto está ahí haciendo su trabajo, queda de nuestra mano todo lo demás sino te arriesgarás a que la web pueda no funcionar bien en algunos navegadores. Ten en cuenta también que cumpliendo con la accesibilidad le hecharás una mano a personas que tienen problemas visuales, a los que necesitan traductores automáticos, de otras culturas, y un largo etcétera. La accesibilidad es algo muy importante y se nos pueden pasar por alto.
Por otro lado tenemos también los criterios de diseño como por ejemplo: «Si algo es un botón que parezca un botón.» no le pongamos una imagen con luces intermitentes.. ésto ya es otro tema, a ver si pronto tengo tiempo.. Si estás leyendo ésto gracias por haber llegado hasta aquí 🙂
Un saludo!

Redes sociales de Internet: qué son y cómo usarlas

2014-01-22 - Categorías: General
Una red social, es una estructura donde los elementos conectados en su mayor parte son personas que establecen relaciones. Se interrelacionan estableciendo lazos de diversa naturaleza: relaciones personales, familiares, de trabajo, por distribución geográficas, gustos, aficiones, etcétera.
Son una forma muy eficiente y práctica de relacionarse, estableciendo nuevos contactos, manteniendo y comunicando todo tipo de información.

Principales

Dependiendo de la naturaleza de las relaciones se pueden diferenciar los principales usos que se les está dando. Nombrarlos todos es una tarea interminable, ya que dada la naturaleza de las relaciones sociales que se pueden establecer no acabaríamos nunca.
Entre las principales redes sociales de Internet a fecha de hoy tenemos Facebook, Twitter, Google+, Linkedin, Instagram, Pinterest.. en la zona occidental del globo. Todas tienen características propias que las diferencian y son mejores para algunas cosas.

Características

Analizarlas todas en profundidad necesitaría de un estudio detenido sobre cada una por lo que vamos a citar las principales diferencias.
  • Facebook, caracterizada por su uso general para todo tipo de propósitos: familiar, amistad, trabajo, etcétera. Se pueden compartir fotos, vídeos, ficheros, comentarios, etcétera.
  • Twitter, red de difusión de pequeños mensajes de 140 caracteres. Se pueden compartir fotos, vídeos y enlazar con webs externas.
  • Google+, cuya principal característica es que enlaza todo tipo de contenidos. De igual manera que Facebook, y usando el ecosistema de servicios de Google, podemos comunicarnos mediante mensajes, emails, compartir información de Blogger, fotos de Picasa y videos de YouTube.
  • Linkedin, destaca por su uso para trabajo, estableciendo relaciones laborales entre las personas. Es buena en estructurar dicha información, facilitando las relaciones entre personas laboralmente afines.
  • Instagram, orientadaa compartir imágenes comentándolas. Destacan los retoques fotográficos que se les pueden dar.
  • Pinterest, parecida a Instagram, nos facilita enormemente compartir imágenes. Destaca la facilidad que da para organizar temáticamente tus fotos.
En líneas generales sin entrar en tecnicismos sobre conectores, grado de centralización, cohesión.. éstas son las principales. Se podrían establecer una principal diferenciación entre redes de propósito general, como Facebook o Google+, y las orientadas a ciertos usos o tareas. Existen todo tipo de redes temáticas como por ejemplo para cinéfilos, lectores, amantes de la música, gatos..

Curioso

Destaca la «teoría de los seis grados de separación». Propuesta en 1930 por el escritor húngaro Frigyes Karinthy. En la cual se establece la hipótesis de que dos personas cualesquiera de la Tierra están conectados por una cedena de conocidos de máximo cinco intermediarios.
Facebook ha realizado en 2011 un estudio relacionado estableciendo que el 99,6% de las personas de su red cumplen la teoría de los seis grados, bajando incluso la media a menos de cinco los grados de separación.

Resumiendo

La forma de relacionarnos está cambiando, las redes sociales de Internet estan pasando a formar parte de nuestras vidas. Lo queramos o no, se estan convirtiendo en una prolongación de nuestros cuerpos con la que podemos comunicarnos y relacionarnos con el resto de seres humanos. Estan ahí y parece que han llegado para quedarse.
Un saludo.

Joomla! equilibrio entre potencia y flexibilidad

2014-01-10 - Categorías: General
Un CMS es un gestor de contenidos para una web, un software para administrar su web. Como todo buen software debe tener flexibilidad y muchas opciones, eso nos da la potencia.

¿Has visto el nuevo panel de administración de la nueva versión de Joomla 3.2?

Es un gestor muy potente:
  • Gran cantidad de extensiones, plantillas de diseño.
  • Buena documentación en Internet.
  • Comunidad de usuarios muy grande.
  • Compatible por defecto con dispositivos móviles.
  • Gestión de usuarios con roles, privilegios, permisos, grupos..
  • Sistema de actualización automatizado.
  • Adaptable por defecto a muchos tipos de web.
  • Y un largo etcétera.
Un saludo!

Drupal, un gestor de contenidos muy flexible

2014-01-10 - Categorías: General
Drupal es otro sistema gestor de contenido (CMS). Es software que se instala en una web para gestionarla. Se dice que está hecho por programadores y orientado para programadores, de ahí su flexibilidad y potencia. Se puede hacer de todo con Drupal.

La imagen es del panel de control, buscando actualizaciones..

Algunas de sus características

  •   Excepcionalmente flexible.
  •   Compatible con varias bases de datos, entre ellas MySQL, PostgreSQL y SQLite.
  •   Muchas extensiones, plantillas de diseño, utilidades, aunque pocas en comparación con los otros dos principales WordPress y Joomla!
  •   Al principio difícil de aprender pero muy potente después.
  •   Impresionante comunidad de desarrolladores con gran cantidad de documentación.
  •   Grandes cambios se vienen con la versión 8, aún en desarrollo.
  •   Y un largo etcétera.
La web: https://drupal.org/

Un saludo.


La base de datos más grande de iconos vectoriales gratis

2013-12-30 - Categorías: General
Se trata de un proyecto libre, hecho por y para diseñadores y desarrolladores, cualquier colaboración seguro que será bien recibida. 
Su fundador, Alejandro Sánchez Blanes, se preocupaba diciendo:

«Por qué no construir una nueva herramienta para encontrar y elegir los iconos sin límites, una herramienta que puede funcionar bien en cualquier proyecto, con el tiempo.»

Flaticon es un almacén de iconos vectoriales que viene de la mano de Freepik, ya muy conocido. Pero en éste caso, se orientan a los iconos, todo tipo de iconos simples y sencillos, los ladrillos para tus trabajos.
Los tenemos ordenados por categorías, autores, packs.. también tenemos un buscador. Podemos ir añadiendo a una cesta todos los iconos que queramos y descargarlos de una vez en un archivo comprimido que se generará automáticamente. Podremos elegir los formatos de Webfont, PNG, SVG o descargar en todos los formatos de una vez.
Por otro lado tenemos disponible un plugin para Photoshop, libre en descarga también en la web. En Jnjsite, como viene siendo habitual, nos gustan los proyectos libres así que aquí les dejamos el enlace a la web:
Un saludo!

PHP siguiente nivel (editado)

2013-12-30 - Categorías: General
Pensaba que ya tenia un buen nivel de conocimiento en la programación PHP. Estaba a mitad de camino entre programar webs desde cero, o usar CMSs y adaptarlos. Indagando, indagando, y bien aconsejado me decidí por aprender a fondo sobre el tema, cómo estan hechos los CMSs, y sobre los frameworks de desarrollo. La idea que tenia en mente era no reinventar la rueda una y otra vez con cada proyecto. Ahora resulta que como dice el dicho, cuanto más aprendo, más veo que me falta por aprender. Es chistoso pero así es, a veces me siento contento de haber aprendido, pero miro hacia adelante, no quiero quedarme atrás, y pienso sobre todo lo que quisiera saber.
Por todo ésto les quiero compartir una serie de enlaces a alimento académico y herramientas. Para todos aquellos que estamos en constante reciclaje, que creo la mayoría de los programadores..

Al grano, los recursos:
  • PHP -> Imprescindible, manuales oficiales sobre el lenguaje de programación PHP.
  • LIBROSWEB -> Muchos libros gratis para la comunidad de programadores. Son libros avanzados sobre XHTML, Symfony, Silex, Composer, Git, CSS y más.
  • Composer -> Es una herramienta con la que podemos instalar de forma automática todo tipo de librerías para aplicaciones PHP. Es un manejador de dependencias. Resumiendo, eliges las herramientas, ejecutas el comando de composer y te instala todas las librerías. Por ejemplo, Symfony y Silex se pueden instalar o actualizar usando Composer.
  • Packagist -> Es el repositorio principal de paquetes para Composer. Podemos consultarlo que probablemente encontremos herramientas que nos agilicen los desarrollos.
  • Symfony -> Framework de desarrollo con una comunidad de habla hispana muy grande, podemos encontrar mucha documentación en Internet.
  • Silex -> Microframework basado en algunos componentes que usa Symfony. Muy sencillo para empezar y potente cada vez más cuando vamos aprendiendo a usar sus componentes.
  • Aptana Studio -> Un entorno de desarrollo basado en Eclipse que seguro que a mas de uno le gustará si lo prueba. Tiene de todo para el desarrollo web desde el punto de vista de un programador. Editor de código bueno, autoformateo de código, autocompletado, resaltado de sintáxis. Y es gratis.
  • PHP, la manera correcta -> Proyecto de documentación sobre buenas prácticas a la hora de programar.
Gracias a Albert por gran parte de la información.
Un saludos y ¡que aproveche!

El uso de programas Open Source

2013-09-23 - Categorías: General
OpenSource que significa código abierto en castellano, se acuña mucho en éstos tiempos en el ámbito de la informática. Está revolucionando la informática en la empresa y también en nuestros hogares. ¿Sabemos qué tanto podemos ganar por usar programas de código abierto? Son totalmente gratuitos y colaboran en su desarrollo hasta millares de personas de todo el mundo.
Algunos proyectos que le pueden ser muy útiles son:
– La completa suite ofimática LibreOffice.
– El editor de imágenes Gimp.
– Un editor de sonido, el Audacity.
– Otro editor de imágenes pero vectoriales, Inkscape.
VLC, un reproductos multimedia compatible con casi todo.
– Los proyectos de la familia Mozilla, como el navegador Firefox.
– Etcétera..
Tenemos disponibles todo tipo de soluciones: para tratamiento de textos, hojas de cálculo, bases de datos, edición de vídeo, imagen, audio.. Tenemos completos sistemas operativos, gestores de contenidos web, navegadores, entornos de programación, avanzados sistemas de gestión de la información.. y un largo etcétera.
Nos mantenemos al día en los proyectos de código abierto, los utilizamos siendo herramientas esenciales de nuestro negocio. Por ello podemos bajar los precios y dar la mejor calidad.
Reciban un cordial saludo.

© 2024 JnjSite.com - MIT license

Sitio hecho con WordPress, diseño y programación del tema por Jnj.