jueves, 10 de diciembre de 2009

HowTo: Como licenciar un programa bajo GPL

Mucho se habla sobre licencias libres como GPL pero la realidad es que no todos saben como liberar su programa bajo una licencia pública general.

Hablando con zer0 le pregunte sobre este tema ya que acabo de crear un mini programa para enviar SMS gratis y me surgió la necesidad de licenciarlo y tras su respuesta me paso un artículo muy completo de Franco Iacomella donde explica como es el proceso y una síntesis de las licencias mas importantes, muy muy interesante.

Pero vamos a lo que nos interesa…

Cómo licenciar un programa bajo GPL

El proceso es realmente simple, paso a paso sería así:

  1. Insertar nuestro Copyright: se debe poner en cada archivo (clases) de nuestro código fuente de esta forma “Copyright 2007 Lucas Muñoz”, se debe usar la palabra “Copyright” no son válidas las traducciones al estilo “Derechos de autor” o parecidos, también podemos utilizar el símbolo “©” o bien (c).
  2. Debemos especificar cada año: el año que especificaremos será aquel en el que lanzamos la versión de nuestro programa, si cada año lanzamos una nueva nuestro Copyright quedaría así: “Copyright 2007 2008 2009 Lucas Muñoz”.
  3. En todos los archivos de nuestro código fuente deberemos insertar el preámbulo de la licencia GPL, este es el texto: This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA..
  4. Junto a nuestro código fuente deberemos incluir una archivo con el texto completo de la licencia, generalmente este archivo se llama “LICENSE” o “COPYING”, podemos bajar la licencia completa desde el sitio oficial de GNU.

Con eso ya tenemos nuestra aplicación liberada bajo GPL, como les dije al principio, es muy simple.

Dentro de poco voy a subir mi mini-aplicación para enviar SMS gratis para que la vean y si quieren la pueden mejorar (seguramente tendrá millones de fallos y habrá mejores formas de hacerlo pero la intención es lo que cuenta o eso dicen ;) jeje).

Fuente: tuxi


jueves, 26 de noviembre de 2009

Crear graficos estadisticos con PHP( pChart ) y MySQL

Hace algunos dias me vi en la necesidad de usar una libreria para generar reportes estadisticos, anteriormente habia usado una libreria JpGraph, pero que por motivos de algunos problemas con el renderizado de la imagen y su baja calidad, busque una nueva libreria, la cual se llama pChart, realmente es muy accesible, facil de manipular y crea graficos muy profesionales, los cuales son adaptables a a necesidad.

Primeramente es necesario descargar la libreria desde su web (pChart), donde existen ejemplos utilizando datos estaticos, aqui veremos como implementar una reporte grafico usando base de datos.

Crearemos la base de datos llamada arqonexus. con la tabla personm. la cual contendra los datos de personas y sus respectivas edades.

1.CREATE TABLE `personm` (
2. `cpersona` int(10) NOT NULL,
3. `nombre` varchar(20) NOT NULL,
4. `apellido` varchar(50) NOT NULL,
5. `edad` int(3) NOT NULL,
6. PRIMARY KEY (`cpersona`)
7.) ENGINE=MyISAM DEFAULT CHARSET=utf8;

Ahora rellenaremos de datos.:

1.insert into `personm`(`cpersona`,`nombre`,`apellido`,`edad`)
2. values (1,'Moshe','Cotacallapa',18),(2,'Jose','Ramirez',24),(3,'Mateo','Hurtado',17),(4,'Carlos','Gonzales',19),(5,'Judas','Iscariote',24),(6,'Pedro','La Roca',21),(7,'Ananias','Gutenm',24),(8,'Maria','Carmona',18),(9,'Julio','Farre',19),(10,'Charles','Chaplin',19),(11,'Noe','Prado',17),(12,'Viviana','Roman',17),(13,'Tadeo','Torres',19);

Ahora que ya tenemos nuestra base de datos llenada, procederemos a implementar nuestro sitio.
Descompimir el archivo en una carpeta llamada, grafico, y crearemos un nuevo archivo php llamado conexion.php.

En el archivo a descargar existen 2 archivos php, uno de ellos se llama mypie.php y el otro vermypie.php, de los cuales el primero se encarga de crear la imagen a mostrar, el segundo hace un llamado al primero y tambien llama a la imagen renderizada.

Si desemos cambiar los datos lo podemos realizar en esta parte de mypie.php

01.include "conexion.php";//llamamos a la conexion, donde uds puede modificar la base de datos ,user y pass.
02.$cn=LibMySQL::getInstancia();
03.
04.include("pChart/pData.class");
05.include("pChart/pChart.class");
06.
07. $rs=$cn->consultar("select count(edad) as cedad,edad from personm group by edad asc;");//la consulta a la base de datos pidiendo la cantidad de edades de una determinada edad
08. $edad=array();//creamos el array
09. $cedad=array();
10. foreach($rs as $datos){
11. $edad[]=$datos['edad']." de edad"; //asignamos a los arrays creados
12. $cedad[]=$datos['cedad'];
13. }
14.
15. $DataSet = new pData;
16.
17. $DataSet->AddPoint($edad,"Edad");//el texto
18. $DataSet->AddPoint($cedad,"Porcentajes");//Extrayendo Porcentajes(la libreria se encarga de extraerlos , tan solo es necesario colocar cantidades.)
19.$DataSet->AddAllSeries();
20.$DataSet->SetAbsciseLabelSerie("Edad"); //no olvidar que aqui van los textos(nombres de los campos)
21.....// el codigo continua, pero no es necesario modificarla.
22......//
23. $Test->Render("ReporteEdad.png");//en la ultima parte se ve el nombre de la imagen que deseamos que se cree.

ahora veremos vermypie.php
En este caso el boton se llama ver

1.if(isset($_POST['ver'])){
2. include("mypie.php");//no olvidarse llamar a nuestra archivo de renderizado
3. echo "";//llamar al nombre de la imagen que hemos colocado en el mypie.php
4. }

Ahora nos quedara de la siguiente forma:
buttons

Todo el archivo para descargar y ver la prueba se encuentra aqui:
espero que les sirva.


viernes, 20 de noviembre de 2009

Licencia Creative Commons

Poner vuestras obras bajo una licencia Creative Commons no significa que no tengan copyright. Este tipo de licencias ofrecen algunos derechos a terceras personas bajo ciertas condiciones. ¿Qué condiciones? Esta web os ofrece escoger o unir las condiciones de la siguiente lista. Hay un total de seis licencias Creative Commons para escoger:

attributionReconocimiento (Attribution): En cualquier explotación de la obra autorizada por la licencia hará falta reconocer la autoría.

non commercialNo Comercial (Non commercial): La explotación de la obra queda limitada a usos no comerciales.

no derivate worksSin obras derivadas (No Derivate Works): La autorización para explotar la obra no incluye la transformación para crear una obra derivada.

share alikeCompartir Igual (Share alike): La explotación autorizada incluye la creación de obras derivadas siempre que mantengan la misma licencia al ser divulgadas.


Con estas cuatro condiciones combinadas se pueden generar las seis licencias que se pueden escoger:

by Reconocimiento (by): Se permite cualquier explotación de la obra, incluyendo una finalidad comercial, así como la creación de obras derivadas, la distribución de las cuales también está permitida sin ninguna restricción.
by-nc Reconocimiento - NoComercial (by-nc): Se permite la generación de obras derivadas siempre que no se haga un uso comercial. Tampoco se puede utilizar la obra original con finalidades comerciales.
by-nc-sa Reconocimiento - NoComercial - CompartirIgual (by-nc-sa): No se permite un uso comercial de la obra original ni de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.
by-nc-nd Reconocimiento - NoComercial - SinObraDerivada (by-nc-nd): No se permite un uso comercial de la obra original ni la generación de obras derivadas.
by-sa Reconocimiento - CompartirIgual (by-sa): Se permite el uso comercial de la obra y de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.
by-nd Reconocimiento - SinObraDerivada (by-nd): Se permite el uso comercial de la obra pero no la generación de obras derivadas.

Obtener la licencia

Cuando hayas hecho tu elección tendrás la licencia adecuada para tu trabajo expresada de tres formas:
Commons Deed: Es un resumen fácilmente comprensible del texto legal con los iconos relevantes.
Legal Code: El código legal completo en el que se basa la licencia que has escogido.
Digital Code: El código digital, que puede leer la máquina y que sirve para que los motores de búsqueda y otras aplicaciones identifiquen tu trabajo y sus condiciones de uso.

Utilizar la licencia

Una vez escogida la licencia tienes que incluir el botón Creative Commons "Algunos derechos reservados" en tu sitio, cerca de vuestra obra. Este botón enlaza con el Commons Deed, de forma que todos puedan estar informados de les condiciones de la licencia. Si encuentras que tu licencia ha sido violada, entonces tendrás las bases para poder defender tus derechos.


Fuente: http://es.creativecommons.org/

sábado, 14 de noviembre de 2009

Evento sobre técnicas de reuso de activos software

La Fundación Universitaria Iberoamericana –FUNIBER - se encuentra organizando un evento Científico – Tecnológico denominado “Técnicas de Reuso de Activos Software y su Aplicación a Activos de Ingeniería de Requisitos”, el mismo que se llevará acabo el próximo jueves 19 del presente mes en el Hotel Los Delfines.
Cabe mencionar que dicho proyecto resultó premiado por el FINCyT.
La presentación estará a cargo del presidente del FINCyT, Sr. Alejandro Afuso Higa y de la directora de FUNIBER, Dra. Catherine Mantilla.
Mientras que la charla principal correrá a cargo del Dr. Omar Hurtado Jara.
Mayor información al 449 – 8000 ó visitar www.funiber.org .

Exigencias del negocio para el área TI


En estos días es difícil imaginar que un negocio no esté soportado por tecnología. Pero ¿qué espera el negocio del área de TI? Esa es la pregunta con la cual, nosotros como proveedores de soluciones, debemos comenzar cada una de nuestras interacciones con nuestros clientes.

No se trata de ofrecer el último equipo, sin saber realmente cuáles son las necesidades de nuestros clientes y qué es lo que espera la alta dirección de sus áreas TI. Esta es la principal pregunta que debemos hacernos los proveedores de soluciones. El negocio exige, cada vez más, servicios de mayor calidad, alta disponibilidad, y que el área de TI innove y desarrolle nuevos servicios, nuevas tecnologías, para que éstas se conviertan en diferenciadores frente a la competencia. Pero, ¿realmente el área de TI tiene la capacidad de ofrecer estos nuevos servicios?, ¿Acaso el área TI está en condiciones de invertir tiempo en desarrollar nuevas tecnologías?

¿Por dónde comenzar?

Cuando el negocio requiere atender nuevos desafíos, el área de TI debe responder eficientemente con los recursos disponibles. Para cumplir con los requerimientos debemos pensar en soluciones que integren personas, tecnología y procesos; de esta forma el área de TI podrá reordenar recursos y poder responder a estas necesidades. Se requerirá comenzar a implementar metodología estándar de gestión de servicios, para ello contamos con un conjunto de mejores prácticas que nos ayudarán a ir generando procesos y metodología, y de esta forma mejorar los procesos de soporte, hablamos de ITIL.

Information Technology Infrastructure Library - ITIL

ITIL nos permitirá comenzar a implementar procesos ya probados en miles de organizaciones, con la finalidad de estandarizar procesos de soporte para generar valor en nuestros servicios. Debemos comenzar a medir la calidad de nuestros servicios, contar con información para poder gestionar e identificar puntos de mejora, y a partir de ello, ofrecerle al negocio un mayor nivel en la calidad de nuestros servicios. Es un imperativo poder contar con herramientas de gestión de infraestructura y las que nos permitan automatizar tareas de monitoreo repetitivas, y que no aportan valor al negocio, pero que ciertamente, son el día a día de cualquier área de sistemas.

El poder automatizar los procesos de monitoreo, y delegar estas funciones en herramientas de software especializadas, puede generar un aumento considerable en la capacidad de atención de nuestra área de sistemas. IDC habla que al implementar, por ejemplo, una sistema de monitoreo de infraestructura de servidores, inmediatamente estamos aumentando la capacidad de poder atender de 10 a 15 veces más la cantidad de servidores que podríamos administrar sin estas herramientas. Entonces, al implementar software que le permita al personal de soporte liberar tiempo, que hoy destina a realizar tareas repetitivas, pueda entonces, reutilizar este tiempo en el desarrollo de nuevos servicios o innovando sobre nuevas tecnologías. Existen en la actualidad cientos de herramientas para el monitoreo de infraestructura, las cuales le permitirán al área de TI, disminuir la cantidad de horas hombre dedicadas al soporte reactivo, aumentar la calidad de los servicios, poder tomar acción inmediata sobre cualquier problema detectado en la infraestructura, antes de que los usuarios contacten al área de soporte reportando que algún servicio no se encuentra disponible. Ese es el objetivo de este tipo de herramientas.

Herramientas de gestión, ROI asegurado

El retorno de la inversión sobre cualquier herramienta de monitoreo es realmente muy alto, dado que le permiten al área de TI tener pleno conocimiento de la salud de la infraestructura, y de esta forma poder implementar esquemas de soporte preventivo y evitar la degradación de los servicios ofrecidos. Por último, pero no por ello menos importante, debemos concentrarnos en el nivel de capacitación que tiene el persona del área de tecnología, y no hablo de que técnicamente el personal cuente con el conocimiento tecnológico necesario, sino que en muchas oportunidades podemos tener al mejor tecnólogo pero que desconoce el negocio. Las organizaciones dependen de la tecnología y, para ello, el personal de TI debe tener un perfecto conocimiento de cómo opera el negocio, cómo impacta, por ejemplo, cada uno de los servicios ofrecidos por el área de tecnología; conocer el impacto que tendrá que una determinada aplicación no esté disponible en un determinado horario. De esta manera, debemos estar seguros de contar no solo con personal que tenga buenos conocimientos tecnológicos, sino, que cuente con la mayor información y capacitación del cómo se desarrolla el negocio de la compañía. De esta forma podremos asegurar un entendimiento completo de los procesos, su relación entre sí, y en qué medida dependen de la tecnología.

Por Lautaro A. Desmonteix

Gerente General de JMLD Business Solutions

jueves, 12 de noviembre de 2009

Tienes 5 segundos

Libro llamado "Tienes 5 segundos" y lo ha publicado hoy, lo interesante es que lo ha publicado con licencia Creative Commons y es completamente descargable. Espero les sea de utilidad.

Fuente:illasaron

Añadir búsquedas CakePHP en Firefox

Si estás profundizando en el trabajo con CakePHP, te puede ser muy útil contar con estos plugins para Firefox que te permiten incluir entre los motores de búsqueda del navegador: La API de CakePHP; El Cookbook de CakePHP, Sitios relacionados con CakePHP; y el Google Groups de CakePHP. Para incluir estos motores de búsqueda en Firefox tienes que seguir estos sencillos pasos:

  • Ir a: http://mycroft.mozdev.org/search-engines.html?name=cakephp
  • Pulsa el enlace a “CakePHP API” (o a cualquiera de los otros cuatro)
  • Añade “CakePHP API” a la lista de motores de búsqueda disponibles en la barra de búsquedas de Firefox
  • (Puedes ver el nuevo motor de búsqueda en la lista desplegable)
  • Ctrl + K (windows) o atajo de teclado similar en tu SO
  • Escribe el texto de búsqueda, y pulsa “Enter”
  • Ver resultados
  • Videotutoriales para aprender a programar en JavaScript.

    Serie de 13 videotutoriales sobre programación en JavaScript en español. Podéis verlos todos desde este enlace

    Ventajas de configurar Google Analytics

    "Frecuentemente los nuevos de Google Analytics no valoran en su justa medida esta potente herramienta de analítica web y piensan que básicamente ofrece lo mismo que otras muchas herramientas de estadística web que se incluyen de forma gratuita con sus planes de hospedaje y la razón es que usan Analytics con su configuración básica, sin personalizarlo para dar respuesta a sus necesidades reales.

    Ventajas de configurar Google Analytics

    Frecuentemente los nuevos de Google Analytics no valoran en su justa medida esta potente herramienta de analítica web y piensan que básicamente ofrece lo mismo que otras muchas herramientas de estadística web que se incluyen de forma gratuita con sus planes de hospedaje y la razón es que usan Analytics con su configuración básica, sin personalizarlo para dar respuesta a sus necesidades reales.

    Dar de alta una cuenta en Analytics es muy sencillo y el único “trabajo” que supone es el de copiar un código de control que debe estar instalado en todas las páginas del web, algo muy sencillo y rápido si hemos realizado un diseño previsor y tenemos partes comunes en las páginas web que nos permitan actualizar toda la web con modificar un único archivo.

    En la configuración básica Analytics nos ofrece información estadística que efectivamente proporcionan todos los demás sistemas de estadística gratuitadel mercado como son el número de nuestras visitas, las páginas vistas, procedencia de las mismas, páginas más visitadas, navegadores utilizados, etc.

    El verdadero problema consiste en cuando deseamos mejorar una web de la que sólo tenemos esta información básica ya que solo podremos conocer si el sitio web está creciendo en visitas, pero no en rentabilidad. Si el modelo de negocio de su empresa se basara únicamente en vender banners y lo único que nos interesara es aumentar el número de páginas vistas por usuario y el de páginas vistas o impresiones en total, puede que este dato nos ayudara, pero… ¿Acaso busca usted solamente visitas o busca Clientes? ¿Qué pasa si lo que queremos es saber la rentabilidad real del web?

    Una configuración Avanzada de Google Analytics le permite definir objetivos de rentabilidad de forma que respondamos a preguntas como estas: ¿de qué provincia o país son los clientes que compran más? ¿Qué contenido publicado (artículos, textos…) es el que consigue que se den de alta los usuarios en nuestra base de datos? ¿Piden más información los clientes que leen la oferta A o la oferta B? ¿Son más rentables mis campañas de tráfico gratuito en buscadores (SEO) o las campañas de pago (SEM)? ¿Cuántos clientes generaron las campañas de email que realicé la semana pasada? ¿Es realmente rentable el banner que he contratado en esa web? ¿Qué buscador y palabras clave en SEO y SEM me traen clientes finales y no sólo curiosos?....

    En resumen una configuración avanzada de Google Analytics y personalizada le permite saber si lo que tenemos son “más curiosos” o “más clientes potenciales o finales” y no invertir a la vieja usanza con frases como “Sé que estoy tirando a la basura la mitad de mi presupuesto publicitario, pero no sé qué mitad”, tal y como sigue pasando por desgracia con muchas campañas en medios tradicionales.

    Enrique Maldonado (Qualified en Google Analytics)
    http://www.marketing-on-line.es/
    http://www.marketalia.com/

    Los 14 mejores editores CSS para diseñadores y desarrolladores

    CSS se ha convertido en el sistema indiscutible para dar estilo y cambiar la apariencia de todos los sitios web modificando un único archivo. Este proceso se puede hacer incluso más sencillo mediante el uso de editores CSS. En BestDesignTuts.com han recopilado 14 Editores CSS que pueden reducir mucho el tiempo necesario para crear nuestro código CSS, aunque en cualquier caso el conocimiento del Código CSS va seguir siendo siempre muy necesario.

    12 scripts para foros en php

    Los foros phpBB se han convertido en los más utilizados en la red, pero hay muchas otras opciones con sus propias peculiaridades. En Webdesignbooth listan doce Script de foros elaborados con PHP, todos ellos opensource, con lo que te pueden ser de ayuda si piensas embarcarte en la creación de tus propios foros PHP. Desde phpBB a MyBB o SEO-Board, Vanilla.... y así hasta 12

    Diferencias CSS en Internet explorer 6,7,8

    Uno de los hechos más esperpénticos en relación con el uso de los navegadores es el modo en el que las distintas versiones de Internet Explorer interpretan el código CSS de las hojas de estilo y como se adaptan a los estándares. Si a esto se le une que, aunque el IE sigue siendo el navegador más utilizado (en torno al 65% del mercado) lo hace de un modo muy repartido entre sus distintas versiones. Aunque parece increible muchísimos ordenadores siguen usando la versión 6 de IE. Consecuencia: los desarrolladores se ven obligados a testear sus proyectos en las distintas versiones. En algunos casos se ha pasado a la insumisión y simplemente no se hace, pero cuando estás trabajando para un cliente, eso no le va convencer mucho. Pues para el que no le quede otro remedio, en este excelente artículo de Smashingmagazine, explican a modo de cheat sheat y con comparaciones muy claras las diferencias entre estas tres versiones de IE en cuanto a : Selectores y Herencias; Pseudo-Clases y Pseudo-elementos; Soporte para las propiedades CSS; Otras técnicas y los Bugs más significativos e incompatibilidades. Imprescindible para el momento que tengas que probar si tu proyecto se ve bien hasta en el IE6......si no te queda otro remedio, claro, porque en ese caso lo mejor es declararse "insumiso" y el que entre con el IE6 que lo actualice si quiere.

    Drupal 6 theme starter. Aplicación AIR para crear themes Drupal


    En unos días retomaré el curso de Drupal Práctico, en el que incluiremos también la creación de themes para drupal. De momento, dejo el enlace a Drupal 6 theme starter, una aplicación creada con AIR que permite crear la estructura del tema de modo visual sin tener que hacerlo editando manualmente los archivos .info del theme. Muy útil tanto para los que ya hayan desarrollado themes par Drupal y quieran acelerar el proceso, como para los que por primera vez

    SIGGRAPH 2009

    Está teniendo lugar esta semana en New Orleans, el encuentro anual de gráficos y técnicas interactivas, SIGGRAPH 2009.

    Se reunen en él algunos de los mejores artistas digitales e investigadores en estos temas en la actualidad. Estas son algunas de las ideas más novedosas que se han presentado este año, fruto de investigación universitaria y que es posible que en algunos casos, veamos en el mercado en un tiempo:

    1. Holografía táctil: Desde la Universidad de Tokyo desarrollan una interface que permite tocar los objetos que parecen flotar alrededor. Se simula mediante una pantalla LCD y un espejo cóncavo. La sensación de tocarlos se crea a través de ultrasonidos.

    2. Realidad aumentada para juguetes comunes:

    Frantz Lasorne, estudiante de la École de Design en Francia inventaba un ingenioso sistema para dar vida a viejos juguetes. Su pantalla Scope reconoce de forma automática los muñecos en una plataforma cubierta de patrones hexagonales. Vistos a través de una pantalla de realidad aumentada se convierten en botones interactivos que pueden modificar de forma virtual el objeto. En el vídeo podemos ver un muñeco Lego armado con un bazoka virtual…

    3. Realidad virtual Hiper-realista:

    En la Universidad de Grenoble desarrollan un nuevo sistema de realidad virtual, “Virtualization Gate”, que traza los movimientos oculares de forma muy precisa usando cámaras múltiples y permitiendo la interacción con objetos virtuales. El usuario viste una HMD (head-mounted display) y se mueve a través de un espacio virtual mientras varias cámaras trazan el movimiento. En el vídeo se utiliza un cluster de PCs que procesan las imágenes necesarias y el modelado 3D.

    4. Teleconferencia 3D

    Desde la Universidad de California del sur presentaban Headspin, un sistema de teleconferencia 3D que mantiene el contacto visual entre una cabeza tridimensional y el resto de participantes. La pantalla 3D proyecta video de alta velocidad en un disco giratorio de aluminio para generar una imagen precisa de cada participante.

    5. Scratchable Input

    Desde la Universidad Carnegie Mellon presentaban una nueva tecnología para input de borradores. El sistema convierte cualquier superficie, de forma inmediata, en un dispositivo de entrada, captando el sonido al arrastrar el dedo. Podría ser útil para dispositivos móviles, convirtiendo cualquier superficie en la que lo situemos en una interface.

    Fuente: Technology Review

    Sinergias entre AdWords-Analytics

    "Un problema muy común con el que nos encontramos cuando tenemos un primer contacto con nuestros clientes es que la mayoría ya están utilizando programas más o menos avanzados de analítica web, pero no saben sacarle todo el jugo a la información que estos ofrecen.
    Todos los programas de estadísticas ofrecen información básica como el número de visitas, impresiones por visitantes, origen de la visita, tipo de buscador utilizado, etc… pero según el tipo de sitio web que estamos gestionando deberemos fijarnos más en unos datos que en otros.


    Sinergias entre AdWords-Analytics
    Un problema muy común con el que nos encontramos cuando tenemos un primer contacto con nuestros clientes es que la mayoría ya están utilizando programas más o menos avanzados de analítica web, pero no saben sacarle todo el jugo a la información que estos ofrecen.
    Todos los programas de estadísticas ofrecen información básica como el número de visitas, impresiones por visitantes, origen de la visita, tipo de buscador utilizado, etc… pero según el tipo de sitio web que estamos gestionando deberemos fijarnos más en unos datos que en otros.
    Profesionalmente creo que una herramienta gratuita como Google Analytics es más que suficiente para la mayoría de los proyectos web, y si se configura de una forma avanzada nos puede ofrecer información realmente valiosa. La ventaja de Analytics es que es una aplicación gratuita y que si la utilizamos junto con Google AdWords nos permite extraer información conjunta realmente interesante.

    Sitios de e-Commerce
    En los sitios de comercio electrónico las métricas más importantes que debemos analizar son: Beneficios, ingresos, ratios de conversión, pedido medio y la media del coste de las conversiones.
    Esta es la configuración más complicada para obtener datos fiables, pero si configuramos AdWords y Analytics adecuadamente la mayor parte de la información la tendremos en tiempo real. Por ejemplo, es posible indicar el precio o beneficio obtenido por un producto individual de forma que cuando consultemos los datos de nuestra web veamos qué campañas tienen un mayor retorno de inversión (ROI).
    Un dato especialmente importante que nos ofrece Analytics es saber qué orígenes de datos son los que nos están generando ingresos. Por ejemplo, podemos saber la rentabilidad diaria del banner en la web de un afiliado, conocer la rentabilidad de una campaña de e-mailing, saber que una palabra clave en SEO (posicionamiento orgánico) nos genera X ingresos y las palabras más rentables de nuestra campaña de publicidad en buscadores (SEM).
    Generación de Leads / Peticiones o Registros
    Este segundo tipo de sitios webs, que basan su negocio en la generación de Leads (Registros o Peticiones de Información) son seguramente los que mas partido pueden sacar de una campaña de AdWords y de la analítica Web.
    En los sitios de Generación de Leads las métricas más importantes a analizar son: volumen de leads generados, tasa de conversión de clic a Lead, ingresos generados por cada lead, coste por lead y beneficio de cada visita.
    La mayor parte de la información que necesitamos nos la ofrece el propio AdWords una vez que hemos configurado adecuadamente el seguimiento de conversiones, pero al igual que en los sitios de comercio electrónico, hay información de campañas adicionales (e-mailings, banners, enlaces comprados en otras webs, etc…) que sólo podemos obtener con Analytics.
    Incluso es posible saber la calidad y rentabilidad que generan los resultados gratuitos en los buscadores (SEO) frente a los resultados de campañas de pago en buscadores (SEM).
    Un error muy habitual de muchas campañas en AdWords es fijarse sólo en el coste por clic CPC en vez del coste por Lead o número de Conversiones. ¿Qué más nos da pagar 1 Euro por clic si obtenemos clientes a 5 Euros y nuestro producto se vende a un precio de 50 Euros? ¿No es más rentable que una campaña de CPC a 0,50 Euros pero que no genera apenas Leads o los genera a un precio desorbitado? El ratio de Conversión y el coste final por Lead son los datos más importantes en este tipo de campañas.

    Sitios basados en Publicidad
    El modelo de los sitios que basan su negocio en la publicidad es más simple: deben obtener el máximo número de páginas vista por usuario y conseguir vender sus espacios publicitarios al mejor precio posible para maximizar sus ingresos. Ante este modelo el objetivo que debemos seguir es una campaña con un CPC bajo.
    Las métricas que debemos examinar en un sitio basado en Publicidad son: beneficio, ingresos, páginas vistas de media por cada usuario, coste medio por visita y beneficio medio por visita.
    En este tipo de sitios la red de contenido de Google puede ayudar a obtener clics a bajo coste ya que generalmente ofrece un CPC menor, pero sin dejar de revisar el número de páginas vista por cada usuario y campaña, información que obtendremos de Analytics.


    Enrique Maldonado
    Director Técnico
    Marketalia Marketing On Line
    www.marketing-on-line.es

    como asegurarnos de que google visita a fondo nuestras páginas web

    Toda empresa debe tener algún tipo de presencia en Internet, pero de poco sirve estar en Internet si no nos aseguramos de que los robots de los buscadores encuentren nuestras páginas y sean capaces de visitar todos nuestros contenidos. A continuación vamos a dar unos consejos básicos especialmente recomendados para mejorar la visibilidad de nuestra web en Google, lo que de por sí ya ayudará a mejorar nuestro posicionamiento, aunque sólo sea porque gracias a seguir estos consejos Google entenderá mejor nuestro sitio y no se dejará ninguna página que deseemos sin visitar.

    CÓMO ASEGURARNOS DE QUE GOOGLE VISITE A FONDO NUESTRAS PÁGINAS WEB EN 10 PASOS Toda empresa debe tener algún tipo de presencia en Internet, pero de poco sirve estar en Internet si no nos aseguramos de que los robots de los buscadores encuentren nuestras páginas y sean capaces de visitar todos nuestros contenidos. A continuación vamos a dar unos consejos básicos especialmente recomendados para mejorar la visibilidad de nuestra web en Google, lo que de por sí ya ayudará a mejorar nuestro posicionamiento, aunque sólo sea porque gracias a seguir estos consejos Google entenderá mejor nuestro sitio y no se dejará ninguna página que deseemos sin visitar. 1. Da de alta tu página web en el buscador de Google si no lo estaba ya y consigue que otros sitios web enlacen a tu sitio web ofreciéndoles valor añadido (artículos, notas de prensa, informes…) Google aprecia mucho la información y el contenido fresco. 2. Si ya tienes páginas incluidas en Google, empieza con una simple búsqueda en el propio Google que te diga las páginas que tiene indexadas, para ello escribe la siguiente búsqueda: site: miweb.com 3. Utiliza las Herramientas para Webmasters gratuitas de Google para conocer cómo Google rastrea nuestro sitio Web. Si no tienes dado de alta tu sitio dalo de alta. Por ejemplo, la herramienta de Análisis de Contenido te permitirá saber si hay problema con tus etiquetas Meta. 4. Crea y actualiza con frecuencia el Sitemap (Mapa del sitio estándar en formato XML para buscadores) de tu sitio en función de lo que actualices cada sección e incluye información de qué secciones se actualizan con más frecuencia. 5. Revisa que los nombres de tus imágenes aporten información de lo que contienen. Google prefiere encontrarse nombres de archivos de imágenes del estilo contacto.jpg, pedidos.jpg… que 0001.jpg, imagenA.jpg… Piensa además que, si lo permites a través de las herramientas de Webmasters, las imágenes también se incluirán en el buscador de imágenes de Google. 6. Si apareces en el primer puesto de Google, es muy posible que junto con tu web aparezcan una serie de enlaces adicionales que son las secciones que el buscador ha considerado las principales de tu Web. Si no estás de acuerdo con esa clasificación puedes eliminar alguno de esos enlaces para que aparezcan otros modificándolos. 7. Revisa los estados de tus páginas Web y sobre todos los errores 404 de página no encontrada. Si una página cambia de sitio emite un código 301 e indica la ubicación nueva de la página, esto te ayudará a no perder el histórico de puntuación que le hubiese dado el buscador y evitarás molestias a tus usuarios, ya que el cambio es transparente. Si la página efectivamente ya no existe, asegúrate de que no esté enlazada desde otro punto de la web. Revisa la documentación de Google sobre como manejar los cambios en URL. 8. Crea contenidos originales pensados para las personas, no sólo para estar mejor posicionado en Google. Evita duplicar contenidos y si no tienes más remedio (como pasa con los programas de afiliados), personalízalos al máximo o mejóralos con contenidos e información adicional. No uses nunca páginas que sólo puedan ver los buscadores (Doorway pages) o puedes ser expulsado y borrado de Google. 9. Organiza el contenido de tus páginas esquematizando la estructura de tu sitio web con etiquetas …. de forma que por ejemplo, la eqtiqueta H1 sea el título de la página, la H2 los puntos principales, H3 subpuntos… tal y como harías con un documento escrito. 10. Utiliza los estándares web y verifica si tu web los cumple. El W3C ofrece herramientas online gratuitas para verificar si tu web cumple con los estándares XHML o si tus hojas de estilo cumplen con el estándar CSS. Esto además de mejorar la visibilidad con los buscadores ayudará a mejorar la usabilidad y compatibilidad del sitio web. Enrique Maldonado www.marketalia.com www.marketing-on-line.es "

    10 consejos esenciales para desarrollador de base de datos

    Explicamos 10 consejos esenciales para todo aquel que sea desarrollador de base de datos. hacieno un repaso a lo más importante de cada una de ellas.

    Ahora, vamos a detallar 10 trucos esenciales para desarroladores SQL:

    Usa un lenguaje correcto

    Un ejemplo muy claro de un correcto uso del lenguaje y sobre todo de los recursos de una base de datos es no darle más trabajo del que realmente se necesita. Con esto quiero decir que si por ejemplo necesitamos seleccionar de una base de datos los usuarios cuyo nombre empiecen por "Da" un fallo común será hacer lo siguiente:

    SELECT * FROM usuarios WHERE user_nom like 'Da%';

    Y vosotros pensaréis, ¿Que hay de malo en esta consulta?, pues el problema está en el (*), ya que esto quiere decir que la consulta va a recuperar todos los campos de esa tabla. En el caso de que tu tabla tenga sólo 3 campos, no habría problema, pero imaginaros una tabla de Usuarios donde tenga todo tipo de información como: nombre, apellidos, DNI, calle, plaza, ciudad, pais, edad, e-mail, contraseña, usuario, etc .. y si a esto le sumamos que en vuestra tabla pudiera haber 2 millones de registros, pues la cosa se pone muy fea.

    Hagamos las cosas bien y si queremos recuperar solo el nombre la consulta la hacemos de la siguiente manera:

    SELECT user_nom FROM usuarios WHERE user_nom like 'Da%';

    De esta forma haremos que la base de datos sufra menos.

    Código Seguro

    Las bases de datos almacenan información muy personal o incluso financiera, por lo que suelen ser susceptibles de ataques.

    Si no estas convencido sobre la seriedad de la seguridad en bases de datos, estos dos artículos pueden cambiar tu idea:

    "The FBI and Virginia State Police are searching for hackers who demanded that the state pay them a $10 million ransom by Thursday for the return of millions of personal pharmaceutical records they say they stole from the state's prescription drug database." Read the Washington Post article
    "Kaspersky Lab, a Moscow-based security company, admitted today that a database containing customer information had been exposed for almost 11 days and that it only learned of the breach when Romanian hackers told the firm about it last Saturday." Read the ComputerWorld article

    Por tanto vamos a mostrar algunos consejos para poder solucionar algunos aspectos de seguridad de tu base de datos:

    ..... seguir leyendo .....

    Patrón de Diseño Singleton en PHP5

    "Patrón de Diseño Singleton


    Artículo dedicado al entendimiento y uso del patrón Singleton en PHP5:


    El Patrón de diseño "Singleton" está diseñado para restringir la creación de objetos pertenecientes a una clase, forzando a que solo se pueda crear una única instancia, de ahí su nombre Singleton (instancia única).


    Un ejemplo de uso de este patrón: supongamos que tenemos una clase "Database" y instanciamos dicha clase, la cual nos devuelve un objeto llamado "$conn", una vez creada la conexión con la base de datos esta simple instancia será fácilmente accesible a muchos otros objetos, restringiéndose así a la creación de una única instancia la cual será reutilizada una y otra vez.


    Aquí les dejo el link al artículo y espero que sea de su agrado:

    Patrón de Diseño Singleton en PHP5



    versión estable cake php 1.2.5

    Curso de CakePHP CakePHP ha lanzado la versión estable 1.2.5, la cual es compatible con PHP 5.3 y contiene arreglos para suprimir los mensajes de desaprobación que se presentaban con la versión anterior.

    Ir a página oficial de CakePHP

    Patrón Decorator

    Desde DesarrolladorSenior, Curso de Patrones de Diseño en PHP5 donde vemos el uso del Patrón Decorator.

    Patrón de diseño Decorator en PHP5


    Un Decorator responde a la necesidad de agregar funcionalidad a un objeto por medio de la asociación de clases. Es un objeto con el que se puede ejecutar funcionalidades de varias clases a la vez. Esto nos permite no tener que crear sucesivas clases que hereden de la primera incorporando la nueva funcionalidad, sino otras que la implementan y se asocian a la primera.

    El uso de este patrón es equivalente a utilizar la herencia múltiple pero sin los problemas que esta conlleva como son: las colisiones de nombres y la herencia repetida.

    Patrón simple factory

    Desde DesarrolladorSenior. Curso de Patrones de Diseño en PHP5, donde vemos el uso del Patrón "Simple Factory".






    Clasificación del patrón

    Estructural.



    Intención o problema que soluciona

    Centraliza en una clase constructora la creación de objetos de un subtipo de un tipo determinado, ocultando al usuario la casuística para elegir el subtipo que crear.

    Entrevista web semántica – 3.0 para la revista Computing

    “¿Qué novedades plantea la Web 3.0? ¿Qué diferencias existe con respecto a la Web 2.0?

    No existe un consenso alrededor de lo que es web 3.0. De hecho, una de las definiciones típicas es la que constata un hecho puramente cronológico: Web 3.0 es la tercera década de la web. Si significará o no un cambio cualitativo, tema que es indudable para la web 2.0 o social, es algo que no sabemos aún. Sí podemos describir algunas de las tendencias hacia las que parece dirigirse la web de hoy. Algunas representan características más disruptivas que otras (web semántica) respecto a lo que tenemos hoy.

    Otras, que voy comentando en El caparazón, serían según los analistas más relevantes en el ámbito anglosajón, cosas como la web en tiempo real, la web ubicua(con conceptos como Cloud Computing o Telefonía móvil), el Embodiment, la Internet de las cosas o la web contextual (entendiendo la que personaliza la experiencia del usuario según su contexto social, geográfico, etc…).

    Quizás la teoría más extrema al respecto sea la de la Singularidad, que según la definición oficial supone que el progreso tecnológico y el cambio social se acelerarán debido al desarrollo de inteligencia super humana, cambiando nuestro ambiente de manera tal, que cualquier ser humano anterior sería incapaz de comprender o predecir.

    Recomiendo la serie de vídeos de Simón Hergueta, además de otros sobre el tema que recopilaba en una entrada reciente (al final).

    ¿Qué es la web semántica y qué retos plantea?

    La web semántica es aquella que se construye en un lenguaje que los ordenadores pueden “entender”. Se refiere, más allá de la transmisión de señales, a la comunicación.

    Es una web de datos escritos en formatos interoperables, de bases de datos compatibles que construyen algo así como ámbitos conceptuales globales en toda la web. Son datos, dicho de otro modo, que los ordenadores pueden interpretar, relacionar con otros, etc… para devolvernos resultados o una experiencia de usuario más cómoda y satisfactoria.

    Para que todo ello sea posible (y ese es el reto básico), debe definirse un estándar (el W3C es el organismo encargado de ello) además de traducir los conceptos del mundo a códigos informáticos (ontologías, otro de los retos). RDF y derivados son formas de marcar el contenido de cualquier página web de forma semántica.

    El reto está en la interoperabilidad (la necesidad de que todas las páginas se adapten a un mismo lenguaje), además de en la complejidad, a la hora de marcar contenidos e incluso de definirlos.

    Es, sin duda, una web mucho más costosa pero más eficiente a largo plazo.

    ¿Qué iniciativas hay interesantes sobre esa web semántica? En España hay algunos ejemplos?

    Hay muchas iniciativas interesantes en Intranets o en el ámbito de la gestión del conocimiento corporativo. También en aplicaciones en sectores “verticales”, en los que es más posible la creación de ontologías, el trabajo de base para el funcionamiento de la web semántica. El turismo sería uno de los más beneficiados al respecto. El sector farmacéutico, la automoción son otros de los que el W3C recoge en su directorio (incluyo enlace a la presentación correspondiente en español al final)

    Menos frecuentes son a nivel “mainstream” o generalizado, aunque Wikipedia, ahora Bing y el mismo Google estén trabajando ya con algoritmos semánticos. Como aplicaciones de éxito podemos hablar de Twine, una herramienta intermedia entre lo social (o de intereses), propio de la web 2.0, y la web semántica, en el sentido de organizar la información que recibe (los marcadores sociales) con ayuda de código semántico. El resultado es bastante bueno, logrando recomendaciones automáticas bastante adaptadas a nuestros intereses.

    Es uno de los aspectos que trabajo con mayor profundidad en presentaciones, talleres, seminarios, etc… porque creo que el futuro éxito de esta web “mejor” depende, para un usuario cada vez más formado y exigente, del conocimiento de las ventajas que este tipo de acercamiento constituye. Tenéis, también al final de la entrevista, en los últimos slides de la última presentación que preparé sobre el tema de la web semántica – 3.0, muchos otros ejemplos de aplicaciones.

    En su opinión, ¿Qué papel deberían jugar los gobiernos y la iniciativa privada para consolidar este tipo de web?

    El papel de los organismos reguladores, de instituciones (el W3C es la fundamental) que definan los estándares o ese lenguaje común, es crucial. Tim Berners-Lee trabaja en la “linked data web”, la web de los datos enlazados o la traducción de bases de datos públicas en distintos gobiernos a los estándares, para gobiernos como el de UK o EEUU.

    Son muchos los organismos, las instituciones y empresas privadas que están entrando en la “Linked data cloud” (nube de datos interoperables). Sería, por decirlo de forma metafórica, hacer una apuesta por formar parte de un mundo web ordenado.

    Existen gráficos acerca de su evolución en términos de número de agentes implicados y el crecimiento resulta muy importante en 2009, aunque está lejos aún de ser mainstream.

    Podéis observar el tema en los gráficos. El primero corresponde a 2008, el segundo a 2009:

    lod-datasets_2008-03-31

    lod-datasets_2009-03-05-scaled

    ¿Qué funciones tendrá la publicidad en este contexto? ¿cómo encajará?

    La publicidad semántica puede mejorar la precisión, la relevancia de la actual publicidad contextual. Esto ser entiende mejor desde una afirmación de Winer: “La publicidad perfectamente adaptada a nuestros intereses es contenido”, considerada información y no spam.

    Puede ser, de hecho, uno de los ámbitos en los que la aplicación de este tipo de tecnologías puede resultar más rentable.

    Se trata de ir más allá de los sistemas de “Behavioral advertising” o publicidad según nuestro comportamiento como internautas (basados en cosas como introducir cookies y software “espía”, entre otros muchos atentados a nuestra privacidad).

    Hakia, una de las startups de lo semántico decía al respecto: “Si un 90% del tráfico de tu sitio viene de los buscadores, es porque los lectores de tu contenido vienen con una “orientación mental de búsqueda”. La publicidad relevante corresponde a esta mentalidad. Si los resultados son pobres en cuanto a relevancia y los anuncios parecen malos, generarás mala imagen en tu espacio, como de la publicidad en internet en general”

    Existen ejemplos muy aparentes acerca de la diferencia entre bloques de publicidad de ambos tipos. Es uno de los recursos frecuentes en formación de este tipo de tendencias.

    ¿Llegará la rentabilidad a este tipo de iniciativas?

    Demuestran ya su rentabilidad en Intranets, son inversiones a largo plazo. Pero la rentabilidad es precisamente uno de los principales obstáculos a esta “web mejor”. Ayuda mucho a comprender la evolución de la web y su futuro, recordar cómo la web semántica es tan poco web 3.0 en el sentido cronológico que la definíamos al principio, que surgió, de hecho, antes de la 2.0 actual (también en esto existen matices y definiciones del momento actual como de transición, 2.5…).

    Tim Berners Lee pensó la web como algo mucho más elaborado que lo que tenemos ahora. Han sido criterios prácticos, la prioridad en el abaratamiento de los costes, las “prisas” en la construcción de una web social mínimamente rentable, los que han guiado la actual arquitectura, técnicamente muy mejorable, de la WWW. Y es posible que el mismo imperativo económico frene su evolución.

    Es así, de hecho, si tenemos en cuenta la aparente resistencia de Google, que argumentaba hasta hace muy poco que la semweb era simplemente imposible, de muy difícil (y costosa) implementación. Es difícil, cuando todavía están por definir los modelos de negocio de la web social, cuando todavía es complicado rentabilizar de modos alternativos toda la oferta de contenidos, aplicaciones y servicios libres, apostar por sistemas mucho más difíciles de implementar que cosas tan simples a nivel tecnológico como Twitter, con una inversión inicial (y por tanto una asunción de riesgo) mínima.

    Aún así, la competencia, el hecho de que dotar a nivel real o como estrategia de márketing, del adjetivo “semántico” a cualquier aplicación (de hecho, fue uno de los términos que generó ruido sin ser del todo adecuado para al lanzamiento de Wolfram Alpha), le añada valor en un mercado colapsado, puede ayudar a avanzar en la dirección correcta. Es el caso del propio Google, que siguiendo con lo anterior, estaría incorporando desde hace un tiempo, coincidiendo con la aparición de Bing (motor de búsqueda de Microsoft, que previamente adquiría Powerset, un buscador semántico) algoritmos semánticos a su sistema.

    ¿La Web 3.0 es viable a día de hoy desde un punto de vista tecnológico? ¿Están habilitados y disponibles todos los recursos que necesita?

    Si obviamos la metafísica, las teorías de la singularidad que suponen la aparición de una inteligencia cibernética independiente de la humana y que, como veíamos, se inscriben también en la cultura de la web 3.0 y semántica (o inteligente), podemos contestar de forma afirmativa a esta pregunta.

    Los recursos que precisa la web semántica van construyéndose día a día. Si hace unos años eran las Universidades los únicos agentes encargados de escribir, de definir las ontologías necesarias para su evolución, hoy son gobiernos, empresas privadas, organizaciones públicas las que también contribuyen.

    No es fácil, pero también son cada vez más sofisticadas las herramientas de semantización de los UGC (contenidos generados por el usuario) propios de la web social. La web 3.0 entendida como semántica es una tendencia que abarcará posiblemente los próximos, ya no 10 (recordemos la definición como tercera década de la web) sino posiblemente 20 años que vienen. La web semántica es un proceso, una forma de seguir construyendo la web, no un resultado posible al 100% en cualquier momento concreto.”

    plone para phyton

    Hola a todos!. Estoy muy interesado en un cms que se llama plone y que se desarrolla en zope, todo programado en python. Estoy intentando aprendera a hacer webs con plone, creo que tiene muchisimas posibilidades, me he comprado un libro Building websites with Plone, esta en ingles y lo voy leyendo despacio. Creo que este sistemas de hacer webs es muy profesional y con muchas posibilidades, ademas esta programado con python con lo que se puede modificar facilmente y crear nuevos contenidos.

    http://www.plone-es.org
    http://plone.org/
    http://www.plonehispano.com/foro/


    el futuro del internet

    Internet de las cosas, inteligencia artificial, singularidad, web semántica, naturaleza de la conciencia, con autores como Kurtzweill, Kevin Kelly y muchos otros sobre web 3.0, futuro de la web, de los que hemos hablado aquí en ocasiones y que trataré en Virtual Educa 2009, en Buenos Aires, en unos meses:

    4 Vídeos imprescindibles para entender la web 3.0

    1. The future Internet: Service 3.0 Video será presentado en el Web 3.0 Event en pocas semanas. Ha sido un descubrimiento reciente y creo que es, simplemente, lo mejor de la serie para entender la evolución de la web. No he podido encontrar el código para embeberlo, así que os dejo enlace:

    servicios-3

    2. Entender la web semántica: Lo utilizo y comento en mis presentaciones porque creo que, al estilo de los de Common Craft, ayuda a entender de forma simple y amena el concepto:

    3. Kevin Kelly, de Wired, una de las publicaciones digitales más antiguas: Los próximos 5000 días de la web, también en inglés pero insustituible como introducción a lo que vendrá:

    4. El futuro de Internet: El vídeo, hecho por Simón Hergueta, trata sobre singularidad tecnológica, esa inteligencia sobrehumana de la que habla, también Kevin Kelly y que seguro que es posible si no la entendemos como nada más que eso, inteligencia, sin voluntad, conciencia y algunas otras de las cosas que hacen del ser humano algo distinto.

    Ha generado bastante polémica (también en Los sueños de la razón y estoy de acuerdo en cuestionarlo si supone que el aumento de conexiones podría hacer surgir de forma espontánea la conciencia.


    javascript MVC

    JavaScript sigue siendo el centro de la web, con presencia en prácticamente todos los proyectos que aparecen continuamente. Al igual que con HTML, sus orígenes eran mucho más limitados y su constante crecimiento obliga a un replanteamiento de su uso. La aparición de ROR, aunque no se ha convertido en el estándar que muchos esperaban, sí ha hecho que las arquitecturas MVC se hayan extendido a la mayoría de los lenguajes de programación. Y JavaScript no podía ser menos. En A List Apart incluyen un excelente artículo sobre la implementación MVC para JavaScript como medio de organización del código.

    viernes, 6 de noviembre de 2009

    php 5.3

    Aqui obtendrás información acerca de migrar de php 5.2 a 5.3 http://es2.php.net/migration53
    Aqui todo lo relacionado con php 5.3 http://php.net/releases/5_3_0.php

    jueves, 5 de noviembre de 2009

    Comparando paradigma estructurado con POO

    Encontre la info por la red, un experto escribe

    El tema de entender porque pasar a POO es comprender el mundo y los cambios del mismo, ya que algo en estructurado para ti son 200 lineas y en POO son 500 lineas, y entonces que ventaja tiene hacer POO si terminas escribiendo mas ?

    Hay muchas formas de explicarlo, y mi forma de hacerlo cambio durante los años, yo comencé a programar cuando no existía otra forma, pero quien hoy enseña formalmente en estructurado, realmente no sabe de trataesto de programar.

    Existen muchas formas de armar un sistema, como por ejemplo el modelo vista controlador (MVC), un modelo de capas de datos, entidades, interfaces, etc.

    Al comienzo cuando en 1994 comencé a ver el tema, no había otra que hacerlo por gusto, o para re-utilizar, ya que pascal, y clipper que usaba en esos tiempos y luego visual basic, realmente no podían aprovechar las ventajas.

    La idea de programar en objetos, es simplemente tratar de facilitar tanto la manera de pensar un sistema, como la de reutilizar partes.

    Por ejemplo si creas una clase persona:

    Persona {
    nombre string;
    apellido string;
    }

    puedes crear objetos heredados de esa clase:

    Empleado hereda de Persona {
    sueldo double;
    }

    con solo eso, tu puedes crear un objeto de la clase empleado, algo así:

    e = new Empleado();

    y luego usar ese objeto, por ejemplo para mostrar los datos:

    echo e.nombre;
    echo e.apellido;
    echo e.sueldo;

    como ves si bien Persona tiene 2 campos, en realidad Empleado tiene 3 porque heredo y le agregamos uno.

    Esto es posible hoy día y significa muchas ventajas. Imagina un sistema de ventas, donde tu creas tu clase Persona, haces tus métodos set y get y ademas los métodos para guardar, en la base, obtener de la base, mostrar en pantalla (o dispositivos), etc.

    Eso 20 o 30 procedimientos tu los haces en Persona, pero con solo heredarlos los puedes usar en:

    Empleados hereda Persona {}

    Vendedores hereda Persona {}

    Clientes hereda Persona {}

    Proveedores hereda Persona {}

    o sea que personas en estructurado ocupa 100 lineas, en POO seguramente 200 o 300, pero realmente con poder re-utilizar ganas un sistema que en vez de 5 mil lineas, tiene 1500 smile.gif

    Por otra parte si hay algún cambio, lo haces en un solo logar y eso se repara para todos sus heredados.

    Esta es la primer ventaja de POO.

    Otra cosa que en principio parece fea, y un largo camino para hacer algo sencillo son lo de los metodos get y set, es obvio que hacer:

    e.nombre = "pepe";

    y echo e.nombre;

    es sencillo, pero no es lo optimo, siempre es mejor crear metodos set y get, algo simple como:

    setNombre(n string) {
    nombre = n;
    }

    y

    getNombre() string {
    return nombre;
    }

    y lo usaras así:

    e.setNombre("pepe");

    y

    echo e.getNombre();

    es mas largo, y parece poco útil, pero imagina que el nombre, DNI, cedula, pasaporte deba tener cierto formato smile.gif, solo heredas y en la función SET modificas o verificas ese contenido.

    La suma de todo esto nos hacen posible crear modelos como el MVC y de Capas, y vamos a un poco de historia.

    Al comienzo, cuando programaba en clipper, no tenia mas que usar dbase o un derivado de este para base de datos, y mi programa lo miraban en una pantalla CGA 256 colores, en DOS o Windows. El esquema era este:

    [DBASE - SISTEMA]

    O sea todo en uno, y el mismo sistema contenía el manejador de base de datos.

    Esa realidad ya no es así, el motivo es que existen un montón de bases de datos, un montón de sistemas operativos, un montón de dispositivos donde verlo.

    Con el viejo sistema, se tenia que hacer un programar para windows, otro para linux, otro para SQL, otro para DBase, etc, todo aparte.

    Si programamos en capas podemos tener:

    [servidor base de datos] <=> [driver de datos] <=> [adaptador de datos] <=> [entidades de datos] <=> [sistema o reglas de negocio] <=> [interfaz]

    o sea un sistema de múltiples capas, explico brevemente:

    servidor de datos, es SQL, MySQL, Oracle, etc

    driver de datos, es el que ejerce la conexión, por ejemplo un driver mysql para java windows, o un driver mysql para java linux, o un driver mysql para .net o php, etc

    adaptador de datos, es un modulo hecho por ti, que conociendo el driver va a guardar y obtener datos desde la base, como única misión, y dejarlo disponible para tusistema.

    entidades de datos, son tus clases que mantienen la info en memoria para que la utilice tu sistema, luego de obtenerla en la base, y antes de presentarla en pantalla

    reglas de negocio, es un modulo que hace lo que el sistema debe hacer, calcular sueldos, preparar datos para recibos, etc

    intefaz, es tu pagina web, o pantalla DOS, o windows, o en un dispositivo móvil.

    Como ves, muchas piezas, pero gracias a POO puedes programarlas independiente una de otra.

    En un sistema POO bien ideado, y construido ninguna capa molesta a la otra, por el contrario la potencia.

    Esto quiere decir, que con solo modificar la capa de acceso a datos, tu sistema pasa de ser para SQL a MySQL u ORACLE, cambiando solo esas pocas lineas, o incluso funcionar con cualquiera de las bases de datos si lo programas de esa forma.

    Lo mismo pasa con la interfaz, solo cambiando esto, todo tu sistema pasa de ser utilizado en web, red local, a ser utilizado en móviles, linux o windows.

    Esa es la idea general y posibilidades de la programación orientada a objetos.

    Cada lenguaje tiene frameworks o librerías que permiten utilizarse en sustitución de cada capa.

    Por ejemplo en .net, acostumbro a crear un modulo de datos, para 2 o 3 tipos de base de datos (SQL, MySQL, Oracle), que con solo seleccionar el sistema funciona con cualquiera de las 3, pero todo mi sistema es re utilizable sin mas cambios. Lo mismo para que el sistema corra en LAN, Web, o Windows, o linux si MONO fuera lo que debe ser.

    En PHP, lo mismo ahí utilizo ADODB para la capa de datos y driver de acceso a datos. Y smarty para la interfaz web, para lograr independencia del diseño.

    sábado, 31 de octubre de 2009

    Animaciones en la que puedes interactuar con un Router Cisco 2600 series. Y te permite configurar e ingresar ciertos comandos desde teclado.


    Configuring BGP


    Integration IGRP


    Directed - Broadcast - Handling


    Configuring Basic BGP


    Creating a BGP Route Reflector


    Configuring BGP Connection Wheight


    Modifying Redist. Admin. Distances


    Redistribution with Route Filters


    Route Map Creation


    IP Helper - Address Command

    martes, 27 de octubre de 2009

    mega coleccion cisco

    Hola amigos, juntando info por la red, pude conseguir todo esto, ahora tienen que estudiar pa aprobar el curso del ing Nixo, saludos

    MEGA COLECCION CISCO
    Parte 1
    Calculo_manual_de_subredes
    Fundamentos de Unix v2.0 Español (CISCO)
    Fundamentos de Wireless LANs v1.0
    Guía de Preparación para el Examen de Certificación CCNA
    redes y routers
    Código:
    http://rapidshare.com/files/281838176/a_d_c_1.rar
    Parte 2
    CCNA Examenes Final todos los modulos Version 4.0
    Cisco 4.0 (laboratorios y teoria)
    libro de ccna 1,2,3,4 en pdf
    Código:
    http://rapidshare.com/files/281842229/a_d_c_2.part1.rar
    http://rapidshare.com/files/281827341/a_d_c_2.part2.rar
    Parte 3
    CCNA 1 EXPLORATION 4.0 en pdf y el ejecutable, en donde se instala el curso oficial, en español
    Código:
    http://rapidshare.com/files/281924733/c_4_e_1.part1.rar
    http://rapidshare.com/files/281886877/c_4_e_1.part2.rar
    Parte 4
    CCNA 2 EXPLORATION 4.0 en pdf y el ejecutable, en donde se instala el curso oficial, en español
    Código:
    http://rapidshare.com/files/281942593/c_4_e_2.part1.rar
    http://rapidshare.com/files/281923356/c_4_e_2.part2.rar
    Parte 5
    CCNA 3 EXPLORATION 4.0 el ejecutable, en donde se instala el curso oficial, en español
    Código:
    http://rapidshare.com/files/282296533/c_4_e_3.rar
    Parte 6
    CCNA 4 EXPLORATION 4.0 el ejecutable, en donde se instala el curso oficial, en español
    CCNA 4 V 4.0 Exploration - Examen Final Modulo 4 [61 preguntas].pdf
    Código:
    http://rapidshare.com/files/282306559/c_4_e_4.part1.rar
    http://rapidshare.com/files/282284948/c_4_e_4.part2.rar

    viernes, 12 de junio de 2009

    Bienvenidos

    Esta página esta dedicada a los alumnos de ingeniería de sistemas que generalmente se enecuentran con algunos vacíos en la web, espero poder ayudarlos con mi material....