viernes, 27 de febrero de 2009

SCM Software Configuration Managment

Definición: Identifica y controla la configuración, reportes y revisiones asi como la administración de builds y procesos.

Las practicas SCM definen como una empresa construye y libera sw, asi como los cambios dentro del ciclo de desarrollo.

Algunos elementos son:
Identificación Configuración: identifica componentes, reflejando la estructura
Control de Configuración: controla cambios, liberaciones del producto mediante codeline
Reportes estado Actual: registro y reportes tanto cambios como solicitudes d cambios
Auditoria y Revisión: validación de producto y consistencia componentes.

Problemas comunes que resulve SCM:
• Pobre integridad release
• Falta comunicación
• Dificultad para determinar el estado del proy
• Tareas redundantes están propensas a error si no están automatizadas

Actividades Típicas en SCM
• Almacena asegura artefactos de sw
• Registrar historia de cambios Que? Quien? Cuando? Porque?
• Provee flujo de Trabajo (Seguimientos)
• Administración de configuraciones (Build, release e Integración)
• Aislar a los desarrolladores
• Control de procesos

Exitos!!!

lunes, 23 de febrero de 2009

eCommerce

Definicion eCommerce
Antes de dar el listado de dichos productos, quiero dar la definicion de lo que es eComerce, que significa Comercio Electronico, la cual es: Cualquier negocio realizado por medios electronicos (ej. internet) donde se involucra una transaccion economica.

Como mencionamos puede ser cualquier tipo de negocio es por ello que los podemos clasificar como servicios o productos, en este post daremos los productos que son mas vendidos por eCommerce.

Tiendas en Linea mas populares:

Antes que todo me gustaria mencionar el top 5 de las tiendas en linea, esto es segun un estudio de marketing realizados a finales del año pasado, los resultados son los siguientes:

-eBay
-Amazon
-Target
-Wall Mart
-Best Buy

Ahora si vemos las tendencias de eCommerce geograficamente podriamos mencionar que en los primeros lugares esta Europa y Norte America, luego le sigue Asia y por ultimo Latinoamerica, esto nos puede dar una vision de el tipo o el perfil del cliente o usuario de eCommerce.

¿Cuales son los productos mas vendidos?

Continuando con el tema de productos, tambien dare el top 5 de lo que podriamso llamar lo mas vendido por en eCommerce, y las tendencias o caracteristicas de lo que se vende, gracias a un estudio de Nielsen Company y su estudio realizado en diciembre del 2007:

- Libros
- Ropa y Accesorios
- DVD y Juegos
- Tiket de vuelo
- Equipo electronico

A continuacion la grafica de las estadisticas, dando cada item y su porcentaje de venta:






En Conclusion:
El comercio electronico esta teniendo un gran auge y aceptacion ya que este nuevo medio de comercio permite romper fronteras, porque no se necesitan varios locales para distribuir un producto. Por otra parte gracias al comercio electrónico hay mas disponibilidad en cuanto a horario, ya que se pueden ofrecer dichos productos durante las 24 horas del día y los 365 días del año.

domingo, 22 de febrero de 2009

How to install SVN (Subversion) in Ubuntu 8.10

Esta es una pequeña guía que mustra los pasos a seguir para instalar y configurar Subversion y Websvn en Ubuntu 8.10

Subversion packages

Como administradores o root debemos de ingresar los siguientes comandos, para instalar los paquetes necesarios para la configucacion de SubVersion:

# apt-get update
# apt-get install subversion
# apt-get install libapache2-svn


El paquete libapache2-svn instalará el módulo de Apache WebDAV subversión.


Crear Repositorios

A continuacion mostraremos como trabajar los repositorios, primero ejecutamos los siguientes comandos:

# mkdir /var/svn-repos/
# svnadmin create --fs-type fsfs /var/svn-repos/practica1


El repositorio que creamos anteriormente necesita los permisos adecuados para apache ademas de un usuario para manipularlo. Voy a hacer un grupo y añadir un usuario al mismo para hacer nuestras pruebas:

# groupadd subversion
# addgroup ale subversion
# chown -R www-data:subversion /var/svn-repos/*
# chmod -R 770 /var/svn-repos/*


Aunque no es estrictamente necesario, vamos a crear los directorio trunk, tags y branches que servirán para almacenar el código de nuestro proyecto actual, los tag y las posibles ramas que pueda tener nuestro proyecto:

$ sudo svn mkdir --message="Inicializando los directorios..." \
file:///var/svn-repos/trunk \
file:///var/svn-repos/tags \
file:///var/svn-repos/branches



Configurando Subversion WebDAV

Normalmente, apache estará activado por defecto, para asegurarse de que este es el caso tecleamos los siguientes comandos:

# a2enmod dav
# a2enmod dav_svn


Ahora actualizamos los usuarios para el archivo de accesos de nuestro repositorio

# htpasswd -c /etc/apache2/dav_svn.passwd ale

Ahora hay q modificar el archivo /etc/apache2/mods-available/dav_svn.conf con la sigiente informacion:

"< Location /practica1 >
DAV svn
SVNPath /var/svn-repos/practica1
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
Require valid-user
< /Location >"




Lo Ultimo

Por ultimo reseteamos apache para verlos resultados:

# /etc/init.d/apache2 restart

Y Listo!!!! tenemos nuestro primer repositorio configurado en SVN, para poder acceder a el unicamente en nuestro navegador deberiamos teclear:

http://localhost/practica1/

y veremos nuestro repo!!!!!!

Exitos!!! :P

lunes, 16 de febrero de 2009

Clasificación de Lenguajes de Programación

La clasificacion que propongo es por el nivel de trabajo de los lenguajes de programacion:

Lenguaje máquina
El lenguaje máquina es el único que entiende directamente la computadora, utiliza el alfabeto binario que consta de los dos únicos símbolos 0 y 1, denominados bits (abreviatura inglesa de dígitos binarios). Fue el primer lenguaje utilizado en la programación de computadoras, pero dejó de utilizarse por su dificultad y complicación, siendo sustituido por otros lenguajes más fáciles de aprender y utilizar, que además reducen la posibilidad de cometer errores.

Lenguaje de bajo nivel
Un lenguaje de programación de bajo nivel es el que proporciona poca o ninguna abstracción del microprocesador de un ordenador. Consecuentemente es fácilmente trasladado a lenguaje de máquina.En general se utiliza este tipo de lenguaje para programar controladores (drivers).

La programación en un lenguaje de bajo nivel como el lenguaje de la máquina o el lenguaje simbólico tiene ciertas ventajas: 1. Mayor adaptación al equipo. 2. Posibilidad de obtener la máxima velocidad con mínimo uso de memoria. Pero también tiene importantes inconvenientes: 1. Imposibilidad de escribir código independiente de la máquina. 2. Mayor dificultad en la programación y en la comprensión de los programas. Sus características son: 1. Se trabaja a nivel de Microinstrucciones, es decir, su programación es al más fino detalle. 2. Está orientado a la máquina.

Lenguaje de alto nivel
Los lenguajes de alto nivel logran la independencia del tipo de máquina y se aproximan al lenguaje natural. Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso.

Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:

  • Lograr independencia de la máquina, pudiendo utilizar un mismo programa en diferentes equipos con la única condición de disponer de un programa traductor o compilador.
  • Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla.
  • Incluir rutinas de uso frecuente como son las de entrada/salida, funciones matemáticas, manejo de tablas, etc, que figuran en una especie de librería del lenguaje, de tal manera que se pueden utilizar siempre que se quieran sin necesidad de programarlas cada vez.

Se puede decir que el principal problema que presentan los lenguajes de alto nivel es la gran cantidad de ellos que existen actualmente en uso (FORTRAN, LISP, ALGOL, COBOL, APL, SNOBOL, PROLOG, MODULA2, ALGOL68, PASCAL, SIMULA67, ADA, C++, LIS, EUCLID, BASIC), además de las diferentes versiones o dialectos que se han desarrollado de algunos de ellos.

domingo, 15 de febrero de 2009

Los Protocolos en el Modelo TCP/IP

Primero las siglas del modelo TCP/IP significan: "Protocolo de control de transmisión/Protocolo de Internet" Asi que en este post quiero mostrar que protocolos estan asociados a las diferentes capas del modelo TCP/IP.



La imagen anterior nos ilustra la relacion entre cada capa y sus protocolos, asi que a continuacion dare una breve descripccion de cada uno de estos protocolos:

• HTTP (Aplicacion)
Este es un protocolo de transferencia de hipertexto por sus siglas en ingles HyperText Transfer Protocol.

• FTP (Aplicacion)
Es un protocolo de transferencia de archivos entre sistemas conectados a una red, su arquitectura es Cliente/Servidor.

• TCP (Transporte)
Este es un protocolo orientado a la conexión, que proporciona un flujo de bytes (datos), que asegura que los datos llegan completos, sin daños y en orden.

• UDP (Transporte)
Es un protocolo de datagramas sin conexión. Es un protocolo no fiable porque a diferencia del anterior no verifica que los paquetes lleguen a su destino, y no da garantías de que lleguen en orden.

• IP (Internet)
Este realiza tareas básicas para conseguir transportar datos desde un origen a un destino. IP puede pasar los datos a una serie de protocolos superiores.

• TOKEN RING (Enlace)
Este protocolo se apoya en el estándar IEEE 802.5. Quedo en desuso por la popularización de Ethernet.

• PPP (Enlace)
Este protocolo es más complejo y originalmente fue diseñado como un protocolo separado que funcionaba sobre otro nivel de enlace

• MEDIOS FISICOS (Fisico)
Aunque no son especificamente protocolos, la capa Fisica a la que pertenece debe tomar en cuante todo lo relativo a los detalles como los conectores, código de canales y modulación, potencias de señal, etc.


En Conclusion:
El modelo TCP/IP representa todas las reglas de comunicación para Internet y se basa en las direcciones IP; como sabemos este modelo se divide en capas, el término capa en este contexto se utiliza para mostrar que los datos que viajan por la red atraviesan distintos niveles de protocolos.

jueves, 12 de febrero de 2009

Token vs Lexema

A veces resulta dificil diferenciar lo que es Token de la palabra Lexema, y es q en algunos casos nos los llegan a enseñar como que son sinonimos, pero no lo son.

Token: también llamado componente léxico es una cadena de caracteres que tiene un significado coherente en cierto lenguaje de programación.

Lexema: cadena de caracteres que concuerda con un patron que describe un componente lexico.

Entonces cual es la diferencia ¿¿??

El componente lexico, en nuestro caso token es el patron que deben de seguir los caracteres, luego una vez que la secuencia de caracteres es aceptada a ella la llamamos lexema

Cabe mencionar que un token puede tener tener uno o infinitos lexemas, esto es si el token es palabra reservada o no, si el token es palabra reservada, entonces solo tendra un lexema (ej if, do), pero si no es palabra reservada, tendra muchos lexemas (ej identificador, numero)que puedan cumplir con la secuencia.

Espero ejemplificarles mejor esto con esta tabla:




Exitos!!!

miércoles, 11 de febrero de 2009

Bienvenidos...

Este espacio sera para comunicarle a todos lo que voy aprendiendo... la información es de todos, hay que compartirla así que al igual yo espero que comenten, pregunten, completen y corrijan lo que voy a ir escribiendo...

Así que bienvenidos a mi nuevo espacio.... donde el konocimiento es de todos!!!