viernes, 31 de octubre de 2014

Conviértete en Desarrollador Web en ACAMICA

Hace unos días un miembro de ACAMICA me contactó para darle una mirada a su plataforma de aprendizaje. ¿Qué es ACAMICA? Una escuela online para aprender a ser Web Developer, basada en JavaScript, CSS y HTML, los mismo en ese sentido que Code Avengers. Sin embargo ACAMICA es muuuuy diferente a Code Avengers; de hecho me recordó mucho más a Treehouse. 


Pues bien, me decidí a revisar la plataforma y lo primero que vi es que existían varios cursos (menciono algo más adelante) y un árbol de la carrera de Desarrollador Web, donde se veía la currícula de la Carrera, de manera muy similar a Treehouse. 

Bueno, pero hablemos de las diferencias. En primer lugar ¡ACAMICA está en Español! y esto será un tremendo aliciente para la gente que no domina el lenguaje de Shakespeare. Escuelas como Treehouse tienen subtítulos y Code Avengers tiene traducidos muchas de sus secciones al español, pero seamos sinceros, nada como escuchar lenguaje nativo. Por cierto que la última vez que entré a Code School, fallaban en este tema del idioma.

Algo que me gustó de ACAMICA es su elegante diseño, que es algo que siempre le he reprochado a Treehouse pero sobre todo a Code Avengers. En Treehouse de hecho dan bastante diseño web pero nomás no lo aplican. Lo contrario pasa en ACAMICA, en donde la disposición de los videos y las demás áreas del sitio se ven bonitas y  nada recargadas. 
Por cierto ¿dije videos? Sí, ACAMICA utiliza el video para sus clases y los expositores tienen bastante buen manejo de la voz. Las clases también están muy bien hechas. En este momento recién terminé los videos de Introducción al Desarrollo de Aplicaciones Web. La califico de excelente y no he visto nada parecido en las otras escuelas. No está en UDACITY, no la tiene Treehouse, ni Code School, mucho menos Code Avengers, Khan Academy y tantas otras que ya he visto. No digo que no toquen estos temas, algunas escuelas los tocan más que en otras pero no tienen un intro que explique al futuro Desarrollador Web qué es a lo que se va a enfrentar y qué conceptos tiene qué dominar. Esta parte creo que hasta ahora es la que me ha gustado más. 

La carrera de la que he visto videos es:

Hay muchos otros cursos y a decir de la gente de ACAMICA, uno puede acceder al que uno guste. Vi cursos de github, de diseño, apps para ios, etcétera. 

Además de lo anterior habrá algo que posicione de inmediato a ACAMICA: su bajo costo. Esta es de las mejores partes porque ACAMICA es más barata que las competidoras directas como Treehouse o Code School. Digo competidoras directas porque usan formato muy parecido.

Miren, yo siempre he dicho que Code Avengers es barato, pero ACAMICA es más barato aún y eso cae como anillo al dedo a los aspirantes a desarrolladores web porque muchas veces es gente que está buscando de verdad cumplir un sueño y acceder a un trabajo distinto al que han tenido. Gente que tiene poco dinero para gastar y de verdad quiere sacar lo máximo de rendimiento de su inversión.

Mi primera evaluación:

Le voy a dar un 10 en contenido para su introducción. Al sitio le doy un 8 en utilidades por la sencilla razón de que me hacen falta algunos elementos que creo que pueden incorporarse. Por ejemplo, sería buenísimo que tuvieran un menú de notas desplegable como lo tiene Code Avengers, el cual es activado desde una pestaña en donde se activan también referencias a la clase, códigos de ejemplo, etcétera. La verdad es que es mucho más fácil tomar apuntes sobre la misma plataforma que sacar el cuaderno y anotar. Al menos a mí me lo parece y  miren que yo fui de cuadernito y máquina de escribir, tengo 36 años. También me gustaría poder conectarme vía google pero eso aún no está habilitado. En diseño le doy 9.5, como dije es un diseño elegante. En costo le doy 10++ pues es, junto con Udemy, la plataforma más barata que conozco. Comunicación con el equipo de ACAMICA: 10. He estado en contacto con ellos por email y la comunicación ha sido fluida. 

CALIFICACIÓN TOTAL INICIAL: 9.5

Por supuesto que falta por evaluar la clases en materia propiamente dicha de desarrollador web, pero hasta ahora la intro me dejó encantado por su claridad y utilidad. 

Espero que los amigos de ACAMICA me regalen unos accesos cuando se me termine el bono mensual :)

twitter @EricAraujoM

miércoles, 29 de octubre de 2014

Sistema Gestor de Base de Datos (SGBD)

Al tener los conceptos, características, ventajas y desventajas de los tipos de Bases de datos, es preciso mencionar lo que son los Sistemas Gestores de Bases de Datos (SGBD o DBMS, por sus siglas en inglés: Data Base Management System).

Un Sistema Gestor de Base de Datos es un software específico dedicado a servir de interfaz entre la base de datos, el usuario y las aplicaciones que la utilizan. Su objetivo principal es manejar de manera ordenada y clara un conjunto de datos que se convertirán en información importante para una organización. En otras palabras, un SGBD es un software que sirve para crear, programar, administrar y controlar la información de una base de datos, asegurando la integridad, seguridad y confiabilidad de la información.

Existen dos tipos de Sistemas Gestores de Bases de Datos: libres y comerciales. 

Sistemas Gestores de Bases de Datos:

  • PostgreSQL. Es un sistema de gestión de base de datos relacional orientada a objetos, publicado bajo la licencia BSD (Berkeley Software Distribution / Distribución de Software Berkeley), que no es más que una licencia de software otorgada para este tipo de sistemas. Es una licencia de software libre, como la GPL (General PublicLicense / Licencia Pública General) pero ésta es más cercana al dominio público. En el caso de BSD, permite el uso del código fuente en software no libre, a diferencia de GLP.

  • MySQL. Es un sistema multiusuario y de código abierto. El uso de MySQL es muy popular en aplicaciones web, y es componente de las plataformas LAMP, MAMP, WAMP, entre otras, y suele combinarse con el popular lenguaje PHP. como sus principales características podemos decir que: está escrito en C y C++; utiliza multi-threaded mediante threads de kernel; pueden usarse fácilmente múltiples CPUs si están disponibles; emplea el lenguaje SQL para consultas a la base de datos; está disponible como freeware bajo licencia GPL; proporciona sistemas de almacenamiento, transaccionales y no transaccionales; trabaja en las plataforma AIX, BSDi, freeBSD, HP-UX, GNU/Linux, Mac OS X, NetBSD, Novell Net Ware, OpenBSD, OS/2 Warp, QNX, SGI IRIX, Sun OS, SCO Open Server, Solaris, SCO Unix Ware, Tru64 y Microsoft Windows (95, 98, ME, NT, 2000, XP y Vista); utiliza tablas en disco B-tree muy rápidas con compresión de índice y es relativamente sencillo añadir otro sistema de almacenamiento, esto es útil si se desea añadir una interfaz SQL para una Base de datos propia.
  • Oracle. Es una herramienta importante y con muchas capacidades del tipo cliente/servidor para gestión de base de datos, aunque de precio muy alto.

martes, 28 de octubre de 2014

¿Cómo instalar un servidor local?

En el curso de Introducción al Desarrollo de Juegos en HTML5 que imparte gruitamente ZENVA Academy, se nos pide tener un servidor local para ir haciendo las pruebas de los juegos que vamos a crear. Pues bien, recomiendan WAMP para instalar el servidor local. Les explicaré lo que hice pero antes unas definiciones sacadas de sitio de Gian Oliveira http://www.gianoliveira.com/:

A la hora de crear una página web será necesario contar con un dominio y un servidor donde alojar los archivos de nuestra web. Si se trata de una página web muy extensa lo recomendable es intentar hacerla en un servidor de pruebas o servidor local ya que si se contrata un hosting de pago antes de comenzar a hacer la página será mucho tiempo el que perdamos hasta tenerla terminada y lista para subirla y por otro lado si utilizamos el hosting de pago para hacer la página web desde cero cometemos el riesgo de tener un mal SEO ya que a medida que avanzamos se pueden realizar muchos cambios que a futuro se convertirán en páginas 404. Es por esto que antes recomiendo utilizar un servidor local.


¿Qué es un Servidor Local?

Un servidor local es simplemente un ordenador común y corriente con una serie de aplicaciones instaladas para que podamos utilizarlo de servidor de prueba y así corregir las imperfecciones y realizar los cambios necesarios en nuestra página web hasta que estemos 100% seguros de que la podemos subir por FTP y tenerla online.
Las aplicaciones necesarias para que nuestro ordenador funcione como servidor online son:
  • Sistema operativo. Normalmente utilizamos Windows pero se puede utilizar un ordenador Mac o Linux.
  • Apache. Es la aplicación madre que permite que el ordenador se convierta en servidor.
  • MySQL. Es una aplicación de bases de datos controlada por Apache que permite crear todas las bases de datos necesarias para nuestro proyecto.
  • PHP. Es la tecnología de programación utilizada en el servidor.
Todas estas aplicaciones han sido desarrolladas después del lanzamiento de Linux y son de código abierto. Pueden ser instaladas por separado cada una de ellas aunque hoy en día existe un paquete que las engloba a todas.
Originalmente este paquete de instalación se creó bajo el nombre de LAMP (Linux, Apache, MySQL y PHP) aunque hoy en día ya se puede encontrar para Mac en MAMP y para Windows el WAMP que es del que hablaremos aquí. 

Bueno, hasta aquí lo del buen Gian Oliveira del cual recomiendo su sitio ya que da unos explicaciones muy claras. Pues bien, ahí les van los pasos con imagen y todo.

1. Vamos a la página de WAMPSERVER (le cambié a idioma inglés pues está en francés).

2. Nos vamos a downloadas y le picamos a la que nos sea adecuada, ya sea la de 32 bits o 64 bits. Si no sabes de cuántos bits es tu equipo vete a "panel de control" y "sistema" y ahí te dice.


3. A la hora de querer el download nos saldrá que necesitamos tener instalado el visual  c++. Si no lo tienes hay que hacer la descarga. Descargamos WAMP y Visual c++.



4. Debes poner atención y elegir la descarga correcta de visual c++. En mi caso, mi máquina es de 32 bits y por esa razón descagué la versión que termina en x86 que es la que corresponde a 32 bits.

5. Instalamos Visual C++.

6. Instalamos WAMP.

7. Listo, ahora en la barra inferior le picamos con el botón izquierdo al ícono de WAMP y tranquilamente encendemos el servidor.

8. Ahora en nuestro navegador favorito podemos ver cómo funciona, sólo hay que poner en la barra de navegación localhost,

Ahora sigue Github, pero esa será otra entrada del blog.

lunes, 27 de octubre de 2014

Curso gratis "Introducción al desarrollo de juegos en HTML5" por Zenva

Buscando en la red cursos sobre HTML5 me encontré con un curso sobre desarrollo de juegos en HTML5 que imparte Zenva Academy. Este curso es gratuito y ofrece la oportunidad de obtener un certificado al finalizarlo. Además se utilizan herramientas de libre uso por lo que prácticamente no tiene costo. Los detalles del curso son los siguientes:

Descripción del Producto

Learn from scratch to create games that run on all platforms and devices!
In this online training you will learn the basics of HTML5 game development by creating your first Mario-style platformer game. All of it using 100% free tools and frameworks!
We’ll be using the Quintus HTML5 game framework, which is a lightweight yet powerful JavaScript library used to create professional 2D games. This course was created by Pablo Farias Navarro, HTML5 developer and founder of ZENVA.
What you’ll learn in this course:
  • Creating levels for your game using the Tiled open source map editor.
  • Loading assets in your game.
  • Making a 2D platformer game that runs on phones, tablets, smart tvs, computers and maybe even cars!
  • Understanding basic platformer mechanics.
  • Implementing enemies and their behaviors.
  • Putting it all together to create your first game!
  • How to publish your finished game to the Amazon Appstore.
Don’t just make a game, publish and monetization are important too!
In the course you’ll also learn how to publish your HTML5 games to the Amazon Appstore and get access to millions of potential customers in over 200 countries!
¿Se obtiene un certificado del curso?
SÍ 






Pues bien, le daré una probada al curso y les contaré de qué va y si es bueno o no.
@EricAraujoM

¿Cómo usar una fuente de google fonts?

Aquí los pasos para usar una fuente diferente a las habituales, extraída de Google Fonts

1. Vamos a Google Fonts:



2. Buscamos la fuente que nos interesa y le picamos en Quick use:


3. Nos vamos al paso 3 y le picamos en @import. Copiamos el código.

4. Lo pegamos hasta arriba de nuestro archivo CSS:


5. Regresamos a google fonts para copiar el código que habremos de introducir en el atributo font-family. En este caso es 'BenchNine', sans-serif:


6. Pegamos dentro de h1 que es lo que nos interesaba. Observen que sí hubo cambios en la imagen del celular.


@EricAraujoM

Cuadro comparativo de tipos de Bases de Datos

Tipo de Base de datos
Funciones
Usos
Ventajas
Desventajas
Base de datos relacional
Su idea fundamental es el uso de relaciones. Estas relaciones podrían considerarse en forma lógica como conjuntos de datos llamados “tuplas”. Se puede pensar en cada relación como si fuese una tabla que está compuesta por registros (las filas de una tabla), que representarían tuplas, y campos (las columnas de una tabla).
Prácticamente se usa en donde haya gran cantidad de datos por organizar. Es el estándar de la industria. Son ampliamente utilizadas en muchas industria para almacenar registros financieros, hacer el seguimiento del inventario y llevar un registro de los empleados.
-El lugar y la forma en que se almacenen los datos no tiene relevancia.
-Es más fácil de entender y de utilizar para un usuario esporádico de base de datos.
-La información puede ser recuperada o almacenada mediante “consultas” que ofrecen un  aamplia flexibilidad y poder para administrar la información.
-El lenguaje más habitual para construir las consultas a bases de datos relacionales es SQL, un estándar implementado por los principales motorses o sistemas de gestión de bases de datos relacionales.
-Costosa creación y mantenimiento del sistema. Con el fin de establecer una base de datos relacional, por lo general, se necesita comprar un software especial. Si no eres programador puedes utilizar cualquier número de productos para establecer una base de estas. Sin embargo lleva tiempo ingresar toda la información y configurar el programa.
-Si tu empresa es grande y necesitas una base de datos robusta, tendrás que contratar a un programador para crear la base de datos utilizando el lenguaje de consulta estructurado SQL y un administrador de bases de datos para el mantenimiento una  vez instalada.
-Independientemente de los datos que utilices, tendrás que, o bien importarlos de otros archivos de datos, como texto u hojas de cálculo de Excel, o introducirlos manualmente.
-Si tu empresa maneja información confidenclal o legalmente protegida tendrás que proteger los datos contra el acceso no autorizado con el fin de cumplir las normas reglamentarias.
Base de datos de árbol (jerárquica)
Esta base de
datos tiene como objetivo establecer una jerarquía de fichas, de manera que cada ficha puede contener
a sus vez listas de otras fichas, y así sucesivamente. P.ej., una ficha de clientes puede contener una
lista de fichas de facturas, cada una de las cuales puede contener a su vez una lista de fichas de líneas
de detalle que describen los servicios facturados
También su uso es para la industria, las compañías por ejemplo que quieren llevar el control de empleados, inventarios, etc.
-Son especialmente útiles en el caso de aplicaciones que manejan un gran volumen de información
-Globalización de la información: permite a los diferentes usuarios considerar la
información como un recurso corporativo que carece de dueños específicos.
-Eliminación de información inconsistente: si existen dos o más archivos con la
misma información, los cambios que se hagan a éstos deberán hacerse a todas
las copias del archivo de facturas.
-Permite compartir información
- Permite mantener la integridad en la información: la integridad de la
información es una de sus cualidades altamente deseable y tiene por objetivo
que sólo se almacena la información correcta.
-Independencia de datos: el concepto de independencia de datos es quizás el que
más ha ay udado a la rápida proliferación del desarrollo de Sistemas de Bases de
Datos.
-No permite el acceso directo a las instancias de un segmento
hijo, si no es seleccionando previamente las instancias de los padres de los que depende. P.ej., no se puede seleccionar un estudiante si no es previa selección de una oferta y de un curso.
-Una de las principales desventajas de este modelo es su incapacidad de representar eficientemente la redundancia de datos.
-La extracción de la información de una unidad que se encuentra varios niveles
abajo requiere navegar por un camino a través de las unidades y sus relaciones
hasta llegar a ella.
-Presenta la desventaja de que es necesario un conocimiento en profundidad de
las unidades de información y de sus relaciones entre sí.
-Adicionalmente,
combinar la información de unidades que residen en ramas muy separadas de
la estructura arbórea es una tarea que consume tiempo y esfuerzo.
-Las operaciones de insertar y borrar son complejas.
-Las relaciones Nodo a Nodo pueden ser implementadas de una forma no
muy eficiente, pues para hacerlo se genera redundancia.
Base de datos de red
Modelo ligeramente distinto del jerárquico; su diferencia fundamental es la modificación del concepto de nodo: se permite que un mismo nodo tenga varios padres.
-El modelo en red más aceptado es el llamado codasyl, que durante mucho tiempo fue un estándar.
-En general los modelos son usados para lo mismo, sólo que se fue avanzando y ahora el más usado es el modelo relacional
-Este modelo en red es más potente que el modelo jerárquico, ya que aquél puede simularse,
aplicando una jerarquía de conjuntos en varios niveles.
-Fue una gran mejora respecto al modelo jerárquico ya que ofrecía una solución eficiente al problema de la redundancia de datos.



-Una restricción bastante importante de
este modelo, es que una ocurrencia de registro
miembro puede pertenecer como máximo a
una sola instancia de un determinado conjunto,
aunque puede participar en varios tipos de
conjuntos distintos.
-La dificultad que significa administrar la información es una base de datos de red ha significado que sea un modelo utilizad en su mayoría por programadores que por usuarios finales.

domingo, 26 de octubre de 2014

Curso de Desarrollo Web nivel 1, terminado.

Hoy terminé el curso de Desarrollo Web nivel 1 que imparte Code Avengers. El curso es bueno y completo, además de que tiene buena extensión. Lo recomiendo a quien quiera comenzar a entrenarse como Web Developer. En México no hay nada parecido así que estas escuelas online son una opción muy buena y al alcance de cualquier bolsillo. 

Aquí les dejo la imagen de certificado obtenido:
Comenzaré ya el nivel 2 del Desarrollo Web y les mantendré enterado de mi avance y los proyectos que vayan saliendo.

Eric

sábado, 25 de octubre de 2014

Base de datos relacional

Las bases de datos relacionales, que en la actualidad son las más utilizadas, trabajan a través de tablas, que están conformadas de filas y columnas para la realización de sus búsquedas y otras operaciones. Estas tablas se encuentran relacionadas entre sí, de ahí el nombre de relacional.

Las tablas están conformadas por campos, que son las características de las tablas; dominios, que son los valores posibles que puede contener un campo; y un conjunto de dominios relacionados entre sí, en términos de bases de datos se les conoce como tuplas. Cada tabla está compuesta de llaves primarias (PK, por sus siglas en inglés: Primary Key) y llaves foráneas (FK, por sus siglas en inglés: Foreign Key) que serán quienes hagan la relación entre diferentes tablas de información. Las llaves primarias son campos únicos que identifican a la información como única e irrepetible; que no permiten duplicidad de información. Mientras que las llaves foráneas, también llamadas llaves externas, son campos que hacen la relación entre las tablas existentes en la base de datos, estas llaves deben de existir primero en otras tablas como llaves primarias.

Para tener una definición más clara de lo que es una base de datos relacional, el autor Javier Quiroz (2003) comenta que la estructura del modelo relacional está fundamentada por la relación, es decir, una tabla bidimensional constituida por filas (tuplas) y columnas (atributos). Sus relaciones se presentan en las tablas que están formando parte de la base de datos. Todas y cada una de las instancias de la entidad encontrarán sitio en una tupla de la relación, mientras que los atributos de la relación representan las propiedades de la entidad en las columnas de la tabla. Por ejemplo, si en la base de datos se tienen que representar personas, podrá definirse una relación llamada Personas, cuyos atributos describen las características de las personas y cada tupla de la relación Personas representará una persona concreta, esto es, la relación. De tal modo, una base de datos relacional es un repositorio compartido de datos.

Para hacer disponible los datos de una base de datos relacional a los usuarios, hay que considerar varios aspectos:

1. La forma en que el usuario solicita los datos

¿Cuáles son los diferentes lenguajes de consulta que utilizan? SQL es el lenguaje de consulta más usado, así como QBE y Datalog, que ofrecen enfoques alternativos a la consulta de datos relacionales.

2. La integridad de los datos y la seguridad

Las bases de datos necesitan proteger los datos del daño provocado por los usuarios, ya sean intencionados o no. El componente de mantenimiento de la integridad de una base de datos asegura que las actualizaciones no violan las restricciones de integridad que hayan especificado sobre los datos. El componente de seguridad de una base de datos incluye la autenticación de usuarios y el control de acceso para restringir las posibles acciones de cada usuario. Los aspectos de integridad y seguridad se presentan independientemente del modelo de datos, pero se estudian en el contexto de modelo de datos relacional para ejemplificarlos. Las restricciones de integridad forman la base del diseño de base de datos relacionales.

3. El diseño de bases de datos relacionales

El diseño del esquema relacional es el primer paso en la construcción de aplicaciones de base de datos. Este diseño de esquemas es de los principios que se pueden usar para distinguir los buenos diseños de bases de datos que se formalizan mediante varias formas normales que ofrecen diferentes compromisos entre la posibilidad de inconsistencias y la eficiencia de ciertas consultas.

Estructura básica de las bases de datos relacionales 

Como ya se explicó, las bases de datos consisten en relaciones, y cada una de ellas tiene un nombre único. Cada relación permite usar valores nulos, que indican que el valor puede ser inexistente o nulo.

En estas bases cada fila representa la relación de un conjunto de valores. Cada tabla es un conjunto de dichas relaciones, por lo que existe correspondencia entre el concepto de tabla y de relación. Su estructura la ejemplificamos en la siguiente figura