miércoles, 6 de marzo de 2019

Presentaciones de equipos

Tutorial django girls.

Para este tutorial vamos a ingresar al siguiente url: Django Girls


1. Creación de un proyecto en django.
Para mas detalles con respecto al apartado de settings puede consultar la entrada anterior a esta en donde se explica más detalladamente.

Posteriormente correremos la migración de datos en nuestro proyecto,
El código que permite la migración es: " python manage.py migrate". De forma que quedaría de esta manera en pantalla.

Como en la entrada pasada, volvemos a correr el comando " python manage.py runserver" para así tener acceso al sitio de nuestro proyecto.



Acedamos al sitio de nuestro proyecto 

2.  Modelos
Un modelo en Django es un tipo especial de objeto que se guarda en la base de datos. Una base de datos es una colección de datos. Es un lugar en el cual almacenarás la información sobre usuarios, tus entradas de blog, etc. 
Vamos a crear una aplicación llamada blog dentro del proyecto que habíamos nombrado djangogirls.

Nos vamos al apartado de settings en nuestro proyecto y vamos a hacer lo que se muestra en la sig. fotografía.

3. Creación de un modelo en la aplicación blog
Dentro de los archivos que se crean al momento de hacer nuestra aplicación, iremos al apartado de models en donde borraremos todo y copiaremos el siguiente código para crear nuestro primer modelo.

from django.db import models
from django.utils import timezone
 
 
class Post(models.Model):
    author = models.ForeignKey('auth.User', on_delete=models.CASCADE)
    title = models.CharField(max_length=200)
    text = models.TextField()
    created_date = models.DateTimeField(
            default=timezone.now)
    published_date = models.DateTimeField(
            blank=True, null=True)
 
    def publish(self):
        self.published_date = timezone.now()
        self.save()
 
    def __str__(self):
        return self.title

*models.CharField, así es como defines un texto con un número limitado de caracteres.
*models.TextField, este es para texto largo sin límite.
*models.DateTimeField, este es fecha y hora.
*modelos.ForeignKey, este es una relación (link) con otro modelo

Para crear una tabla es muy sencillo, únicamente volvemos a nuestro cmd y ejecutamos el comando "python manage.py makemigration blog."
Posteriormente corremos el comando "python manage.py migrate blog" python tomara el archivo que se creo de migraciones en la primera linea de comando para comenzar a fabricar las tablas de información de nuestra aplicación.

4. Administrador django.
Para agregar, borrar y editar los post con el modelo que se ha agregado,utilizaremos un admin de Django.
Dentro del apartado de admin en los archivos de nuestra aplicación, se agregara el siguiente código borrando todo lo demás que este en el archivo.

from django.contrib import admin
from .models import Post
 
admin.site.register(Post)

Dentro del código, se esta importando el modelo que se había hecho anteriormente. Para hacer visible el modelo hay que registrarlo como se hace en la ultima linea. Una vez hecho esto,entraremos a la pagina que nos da nuestro proyecto: http://127.0.0.1:8000/admin/
Dentro de la pagina, nos pedirá un usuario y contraseña como se muestra.

Para crear un superusuario, vamos a nuestro cmd de nuevo y ejecutamos el comando python manage.py createsuperuser .
Nos pedirá el nombre, correo y contraseña de dicho usuario(ojo: al poner la contraseña no saldrá ningún carácter por motivo de seguridad de django).

Una vez hecho esto, corremos nuestro servidor de nueva cuenta e ingresamos con el usuario y contraseña que hemos creado para ingresar a esta pagina.

Finalmente, podemos agregar varios post para que veamos que el modelo que se a creado son los campos que nos permite llenar en esta aplicación.






Navegación por los archivos de django

Al entrar a la pagina de docs que viene en el proyecto, nos da instrucciones de como utilizarlo. Junto con información de bases de datos. En esta misma pagina nos dice como podemos empezar a mejorar y modificar nuestro proyecto.


Ingresamos a nuestro proyecto desde pyhton y nos vamos al archivo "settings" y aquí iremos viendo paso a paso sus partes, así como su estructura y funcionamiento.
Dentro de setting hay un apartado de url's en donde se muestran mas paginas que están relacionadas a nuestro proyecto.

Dentro de nuestro proyecto también existe un archivo llamado urls el cual se muestra de la sig. manera, en este apartado se encuentra todo lo que tenemos en nuestra pagina principal.
En la ultima linea de código  de esta captura podemos ver como se encuentra la palabra "admin/" en color verde, esta se puede modificar dependiendo de los gustos de cada persona. Su función es dar acceso a un usuario.

Ejemplificaremos el cambio de "admin/" por la palabra inicio

Una vez que ya cambiamos esto ingresamos al url con "/inicio" y nos deja ingresar como en la practica anterior con el "/admin" al apartado de usuario.

En la siguiente parte del archivo setting, tenemos el apartado de proceso de autentificaciones en donde se reciben los requerimientos del procesador,mensajes entre otras cosas.

En el apartado database (base de datos) podemos modificar nuestra base de datos, o bien cambiarlo a una base de datos de la que tengamos mayor conocimiento.
Más información en el sig. enlace 

En esta parte vienen varias restricciones que debe tener una contraseña para que sea valida como una para un usuario.

Lenguaje que tendrá nuestro proyecto en la pagina web

Archivos fijos

 Parte de las aplicaciones que se tienen instaladas dentro del proyecto 








Frameworks mas utilizados y populares entre la comunidad de programación.


Rails fue creado en 2003 por David Heinemeier Hansson y desde entonces ha sido extendido por el Rails core team, mas de 2,100 colaboradores y soportado por una extensa y activa comunidad.
Rails es un framework de desarrollo de aplicaciones web escrito en el lenguaje de programación Ruby. Esta diseñado para hacer que la programación de aplicaciones web sea mas fácil, haciendo supuestos sobre lo que cada desarrollador necesita para comenzar. Te permite escribir menos código realizando mas que muchos otro lenguajes y frameworks. Ademas, expertos desarrolladores en Rails reportan que hace que el desarrollo de aplicaciones web sea mas entretenido.


Ventajas:
Cuenta con código libre
Tiene una extensa comunidad detrás de el que la respalda
Favorece en el ahorro de lineas de código
Tiene una forma mas fácil de interactuar

Desventajas:
Se debe aprender el lenguaje de Ruby
No es un lenguaje muy conocido




Symfony es uno de los frameworks PHP mas populares entre los programadores y empresas, ya que permite que los programadores sean mucho mas productivos a la vez que crean código de mas calidad y mas facil de mantener. Symfony es maduro, estable,profesional y esta muy bien documentado.
Symfony sigue la estela de Rails para simplificar al máximo el desarrollo de aplicaciones web profesionales con PHP, utilizando las mejores practicas y los patrones de diseño mas importantes. Symfony incorpora muchas de las ideas del RAD("Desarrollo rápido de aplicaciones") para conseguir que la programación de las aplicaciones sea lo mas productiva, correcta y entretenida posible.

Ventajas
Productividad
Organización clara
Convención con otros frameworks(facil integrar trabajos de otros frameworks)
Documentación
Seguridad
Comunidad
Mejor rendimiento

Desventajas
Curva inicial de aprendizaje
Convención (muchas veces para algunos programadores es una desventaja)
Sensación de bala de plata(Se piensa que es el mejor framework una vez que se acostumbra a su uso y se cae en una zona de confort)



AngularJS es Javascript. Es un proyecto de código abierto, realizado en Javascript que contiene un conjunto de librerías útiles para el desarrollo de aplicaciones web y propone una serie de patrones de diseño para llevarlas a cabo. En pocas palabras, es lo que se conoce como un framework para el desarrollo, en esta caso sobre el lenguaje Javascript con programación del lado del cliente.
Este Javascript pretende que los programadores mejoren el HTML que hacen. Que puedan producir un HTML que, de manera declarativa, genere aplicaciones que sean fáciles de entender incluso para alguien que no tiene conocimientos profundos de informática. El objetivo es producir un HTML altamente semántico, es decir, que cuando lo leas entiendas de manera clara qué es lo que hace o para qué sirve cada cosa.

Ventajas
Angular ofrece más opciones de serie, ayudando a arrancar sin intimidarte por la toma de decisiones
Consistencia en la documentación
Mejor y mas fácil mantenimiento
Un componente en Angular es una porción de código que es posible reutilizar en otros proyectos de Angular sin apenas esfuerzo, lo que permite un desarrollo de aplicaciones mucho más ágil
Gran soporte de herramientas

Desventajas
Nomenclatura(usa conceptos faciles de comprender,pero los llama por un nombre poco convencional)
Sus filtros no funcionan correctamente
Falta de documentación de sus funciones



React (también llamada React.js o ReactJS) es una biblioteca Javascript de código abierto diseñada para crear interfaces de usuario con el objetivo de facilitar el desarrollo de aplicaciones en una sola página. Es mantenido por Facebook y la comunidad de software libre, han participado en el proyecto más de mil desarrolladores diferentes.
React intenta ayudar a los desarrolladores a construir aplicaciones que usan datos que cambian todo el tiempo. Su objetivo es ser sencillo, declarativo y fácil de combinar.

Ventajas
Fácil saber cómo se representa un componente, que acaba de observar la función de render.
JSX facilita la lectura del código de sus componentes. También es muy fácil ver el diseño o cómo los componentes se enchufan/combinan entre sí.
Puede procesar React en el lado del servidor.
Es fácil de probar, y también puede integrar algunas herramientas como broma.
Garantiza la legibilidad y facilita el mantenimiento.
Puede usar Reaccionar con cualquier marco (Backbone.js, Angular.js) ya que solo es una capa de vista.

Desventajas
Es solo una capa de vista, todavía tiene que conectar su código para solicitudes de Ajax, eventos, etc. Algunas personas se sorprenden por eso.
La biblioteca en sí es bastante grande.
La curva de aprendizaje puede ser pronunciada.



CakePHP es un marco de desarrollo rápido para PHP, libre, de código abierto. Se trata de una estructura que sirve de base a los programadores para que éstos puedan crear aplicaciones Web. Su principal objetivo es que se pueda trabajar de forma estructurada y rápida, sin pérdida de flexibilidad.CakePHP empezó en 2005, cuando Ruby On Rails estaba ganando popularidad y utiliza muchos de sus conceptos. Desde entonces la comunidad creció y generó muchos subproyectos.

Ventajas
Facil de aprender
Implementacion rapida
Migracion entre entornos
Plugins(Herramientas para lo que se necesite programar)

Desventajas
Malos consejos a la hora de realizar algun procedimiento(recomendaciones)
Tamaño de los ficheros. Demasiado pesados
Exceso de consultas



ASP.NET es un entorno para aplicaciones web desarrollado y comercializado por Microsoft. Es usado por programadores y diseñadores para construir sitios web dinámicos, aplicaciones web y servicios web XML. Apareció en enero de 2002 con la versión 1.0 del .NET Framework, y es la tecnología sucesora de la tecnología Active Server Pages (ASP). ASP.NET está construido sobre el Common Language Runtime, permitiendo a los programadores escribir código ASP.NET usando cualquier lenguaje admitido por el .NET Framework.

Ventajas
Control de los recursos del sistema
Velocidad y seguridad en el codigo
Portabilidad y gran esbilidad

Desventajas
Consumo elevado de recursos innecesarios
La ejecucion de las aplicaciones requiere el uso de mas recursos innecesarios
No es de codigo abierto




Node.js es una forma de ejecutar JavaScript en el servidor, además de mucho más. Node.js es un entorno Javascript del lado del servidor, basado en eventos. Node ejecuta javascript utilizando el motor V8, desarrollado por Google para uso de su navegador Chrome. Aprovechando el motor V8 permite a Node proporciona un entorno de ejecución del lado del servidor que compila y ejecuta javascript a velocidades increíbles. 

Ventajas
Escalabilidad de manera sencilla
Rendimiento
Gestion de paquetes
"Popularidad"

Desventajas
API inestable
Falta de una libreria estandar
Falta de librerias en general
No hay suficiente documentacion




Yii es un framework PHP basado en componentes de alta performance para desarrollar aplicaciones Web de gran escala. El mismo permite la máxima re utilización en la programación web y puede acelerar el proceso de desarrollo.
Yii también es un framework genérico de programación Web que puede ser utilizado para todo tipo de aplicaciones Web. Gracias a que es liviano de correr y está equipado con soluciones de cacheo sofisticadas, es adecuado para desarrollar aplicaciones de grán tráfico como portales, foros, sistemas de administración de contenidos (CMS), Sistemas de comercio electrónico (e-commerce), etc.

Ventajas
Esta diseñado específicamente para trabajar con aplicaciones web de trafico alto.
Manejo de permisos a usuarios
Eficiencia y variedad de funcionalidades
Clara documentación(ingles)
Seguro
Desventajas
Perdida de control sobre lo que se esta haciendo
Generador de código basura



Meteor JS es una nueva infraestructura de JavaScript que tiene como objetivo automatizar y simplificar el desarrollo de aplicaciones web que actúan en tiempo real.
Usa la comunicación en tiempo real mediante un protocolo llamado Distributed Data Protocol (DDP), que es soportado por navegadores modernos que usan WebSockets 
Meteor JS es parte de una nueva ola de frameworks y tecnologías que buscan desafiar el status quo haciendo webs reactivas y en tiempo real.

Ventajas
Mejor proceso de comunicación y actualización con las bases de datos
Fácil de aprender
Respuesta rápida
Gran comunidad activa

Desventajas
Meteor viene incluido solo con MongoDB
El sistema de paquetes esta cerrado a la comunidad por ahora.



Laravel es un framework de código abierto para desarrollar aplicaciones y servicios web con PHP 5 y PHP 7. Su filosofía es desarrollar código PHP de forma elegante y simple, evitando el "código espagueti"(Código que no tiene logica o es incomprensible para el programador) . Fue creado en 2011 y tiene una gran influencia de frameworks como Ruby on Rails, Sinatra y ASP.NET

Ventajas
Desarrollo rápido
Hace la aplicación mas segura
Fácil mantenimiento
Gran comunidad

Desventajas
Lenta ejecución
Soluciones generales para problemas específicos
Tiempo para aprender y dominar el framework
Visibilidad y control limitado

Creación de un proyecto y aplicación con django

Vamos a crear un proyecto y una aplicación con django para poder hacer esto primero debemos hacer la instalación de "django", en este caso yo lo hice mediante cmd como se muestra en la siguiente imagen:

Para crear nuestra aplicación debemos introducir el siguiente código a nuestro cmd
"django admin startapp proyectoEjemplo"

Para la creación de nuestro proyecto es casi la misma sintaxis.
"django admin startproject proyectoAlondras"

Para poder visualizar todo lo que django nos ha creado en la carpeta con  el nombre de nuestro proyecto se utiliza la instrucción "dir".

al ingresar la sentencia "python manage.py runserver" activa el servidor que hemos creado

Una vez que ya realizamos esto entramos al url que nos manda, como se muestra en la penultima linea de la foto anterior y al ingresarlo en un navegador se muestra de esta forma 

Al momento en el nosotros le agregamos "/admin" al url anterior nos envia a la siguiente pantalla


Y en nuestra consola nos ira mostrando las actividades que se realizaron en las dos direcciones anteriores.

Para poder hacer la migración de información se utiliza la siguiente sentencia
"python manage.py migrate"




martes, 29 de enero de 2019

Manejadores de base de datos

Los manejadores de bases de datos más utilizados


Es un sistema de gestión de base de datos relacional, multihilo y multiusuario seguramente el más usado en aplicaciones creadas como software libre.
Por un lado se ofrece bajo la GNU GPL, pero, empresas que quieran incorporarlo en productos privativos pueden comprar a la empresa una licencia que les permita ese uso.

Ventajas:
Velocidad al realizar las operaciones
Bajo costo en requerimientos para la elaboración de bases de datos

Facilidad de configuración e instalación




Es un sistema de gestión de bases de datos relacionales basado en el lenguaje Transact-SQL, capaz de poner a disposición de muchos usuarios grandes cantidades de datos de manera simultánea.
Es un sistema propietario de Microsoft. Sus principales características son:
Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Incluye también un potente entorno gráfico de administración, que permite el uso de comandos DDL y DML gráficamente.
Permite trabajar en modo cliente-servidor donde la información y datos se alojan en el servidor y las terminales o clientes de la red sólo acceden a la información.
Además permite administrar información de otros servidores de datos

Su principal desventaja es el precio, aunque cuenta con una versión EXPRESS que permite usarlo en entornos pequeños. (Aprox. unos 4GB de información y varios millones de registros por tabla).



Es un sistema de gestión de base de datos relacional (o RDBMS por el acrónimo en inglés de Relational Data Base Management System), fabricado por Oracle Corporation.
Tradicionamente Oracle ha sido el SGBS por excelencia, considerado siempre como el más completo y robusto, destacando por:
Soporte de transacciones.
Estabilidad.
Escalabilidad.
Es multiplataforma.
Tambien siempre ha sido considerado de los más caros, por lo que no se ha estadarizado su uso como otras aplicaciones.
Al igual que SQL Server, Oracle cuenta con una versión EXPRESS gratis para pequeñas instalaciones o usuarios personales.




Es un sistema de gestión de bases de datos Relacional creado por Microsoft (DBMS) para uso personal de pequeñas organizaciones.
Se ha ofrecido siempre como un componente de la suite Microsoft Office aunque no se incluye en el paquete “básico”.
Una posibilidad adicional es la de crear ficheros con bases de datos que pueden ser consultados por otros programas.
Entre las principales funcionalidades reseñables podemos indicar que:
Permite crear tablas de datos indexadas.
Modificar tablas de datos.
Relaciones entre tablas (creación de bases de datos relacionales).
Creación de consultas y vistas.
Consultas referencias cruzadas.
Consultas de acción (INSERT, DELETE, UPDATE).
Formularios.
Informes.
Entorno de programación a través de VBA
Llamadas a la API de windows.





Es un sistema de gestión de base de datos relacional orientada a objetos y libre, publicado bajo la licencia BSD.
Como muchos otros proyectos de código abierto, el desarrollo de PostgreSQL no es manejado por una empresa y/o persona, sino que es dirigido por una comunidad de desarrolladores que trabajan de forma desinteresada, altruista, libre y/o apoyada por organizaciones comerciales. La comunidad PostgreSQL se denominada el PGDG (PostgreSQL Global Development Group).

Sus principales características son:
Alta concurrencia: mediante un sistema denominado MVCC (Acceso concurrente multiversión, por sus siglas en inglés)
Amplia variedad de tipos nativos: provee nativamente varios soportes
Ahorros considerables de costos de operación
Estabilidad y confiabilidad




Este SGBD es propiedad de IBM, bajo la cual se comercializa el sistema de gestión de base de datos. Utiliza XML como motor, además el modelo que utiliza es el jerárquico en lugar del modelo relacional que utilizan otros gestores de bases de datos. Es el único de los gestores que hemos comentado que nos relacional.
Sus caracteristicas más importantes son:

Permite el manejo de objetos grandes (hasta 2 GB)
La definición de datos y funciones por parte del usuario, el chequeo de integridad referencial,
SQL recursivo, soporte multimedia: texto, imágenes, video, audio; queries paralelos, commit de dos fases, backup/recuperación on−line y offline.
Permite agilizar el tiempo de respuestas de esta consulta
Recuperación utilizando accesos de sólo índices.
Predicados correlacionados.
Tablas de resumen
Tablas replicadas
Uniones hash

Su principal desventaja es el precio, está dirigido solo a grandes empresas con necesidades de almacenamiento y  procesamiento muy altas.
Funciones de Administración de base de datos.

Gestión General de Base de DatosEl DBA es la persona con más conocimientos sobre base de datos en una organización. Como tal, debe entender las reglas básicas de la tecnología de base de datos relacional y ser capaz de comunicarlos con precisión a los demás.

Modelado de Datos y Diseño de Base de DatosUn DBA debe ser un profesional experto en la recopilación y análisis de las necesidades del usuario para obtener modelos de datos conceptuales y lógicos. Esta tarea es más difícil de lo que parece. Un modelo conceptual de datos describe los requisitos de datos a un nivel muy alto, un modelo de datos lógico proporciona en profundidad los detalles de los tipos de datos, longitudes, relaciones y cardinalidad. El DBA utiliza técnicas de normalización para ofrecer modelos de datos que reflejen las necesidades de los datos de la empresa.

AuditoriaUna de las tareas de un DBA es identificar qué usuarios tienen acceso a insertar, actualizar o eliminar datos, y cuándo. Una auditoría NO sólo podría ser necesaria por un tiempo limitado, para usuarios específicos o datos específicos. También puede ser requerida  24/7 para todos los datos que se introduzcan en el DBMS. Regularmente, para realizar las funciones de autorías los DBAs tienen que trabajar en combinación con los auditores internos y externos de la empresa.

Integración con aplicacionesLa mayoría de las empresas hoy en día utilizan aplicaciones de terceros (casi nadie ya desarrolla sus propias aplicaciones in-house), muy pocas de estas aplicaciones funcionan de manera aislada. En otras palabras, las aplicaciones tienen que interconectarse unas con otras, generalmente utilizando base de datos como el medio para compartir los datos. Los DBAs a menudo se involucran en los procesos de integrar las aplicaciones existentes con las bases datos que administran. Esto puede incluir la creación de aplicaciones a medida, scripts, etc.

Resguardo y recuperación de datosUno de los aspectos más fundamentales del trabajo del DBA es proteger los datos de la organización. Esto incluye hacer copias de seguridad periódicas de los datos y mantenerlos a salvo de la destrucción accidental o intencional. Además, diseñar, implementar y probar un plan de recuperación para que cuando se presenten los problemas, los datos se pueden restaurar rápidamente.

Inteligencia de negocios y almacenamiento de datosUna de las áreas de mayor crecimiento para el DBA es la Inteligencia de Negocios (BI) y almacenamiento de datos. Esto se debe a que cada vez más organizaciones están tratando de extraer toda la información que pueda con el fin de tomar mejores decisiones de negocios.

Planificación de capacidadEn la mayoría de las organizaciones, el número y tamaño de las bases de datos crece rápidamente. Es la responsabilidad del DBA gestionar el creciente volumen de datos y diseñar los planes apropiados para administrarlos. Esto incluye también la gestión del hardware donde se almacenan los datos.

Administración de cambiosLa configuración del servidor SQL Server o MySQL, el esquema de base de datos, el código de Transact-SQL, y muchas otras facetas del ecosistema de aplicaciones cambian con el tiempo. A menudo es la responsabilidad del DBA realizar el análisis de impacto antes de realizar los cambios dentro de una DBMS. Implementar cambios, hacer pruebas piloto y documentar todos los cambios y procedimientos es parte del trabajo de un DBA.

Desarrollo de aplicacionesMuchos administradores de base datos deben de desarrollar aplicaciones y scripts con el objetivo de automatizar tareas relacionadas con la inserción, sustracción o borrado de información dentro del manejador de base de datos. En general, éste debe de colaborar a nivel de integración de sistema con los desarrolladores de aplicaciones, por lo que a veces se ve en la obligación de desarrollar código para casos específicos.

Presentaciones de equipos