Mostrando entradas con la etiqueta gavito. Mostrar todas las entradas
Mostrando entradas con la etiqueta gavito. Mostrar todas las entradas

I'm Programmer

Navigating into Internet I found this video, then I remembered my beginning like programmer.

It's true that I'm not a multimillionaire, but to make software has given to me many happy moments and a few of pride. Now when I look my students I imagine them like the next Bill Gates or Mark, then they employ to me to advise their company and to drink coffee, earning a great salary.

But I remember too, a few of them will become programmers. Many of them say: "i dislike Computer Programming or i hate to programming", then I think.. it hate programming or it hasn't brain to do it.


Image courtesy of suphakit73 - FreeDigitalPhotos.net

My words were heavy, well, I challenge you to build software. 

Do you accept?


Contador de visitas para Drupal (Reales no solo hits o IPs)

Resumen

Antes de la aparición de Google en Internet, llevar el conteo de las visitas a un sitio no era más que un simple dato e incluso pocos lo tenían. Sin embargo, ahora el número de visitas es la moneda de cambio en Internet. Por tal razón el contar de manera efectiva cuantas visitas tiene un sitio tiene tanta relevancia. Este articulo presenta una forma de hacerlo y una herramienta ya construida para ello.

Abstract

Before the advent of Google on the Internet, bringing the count of visitors to a site was nothing more than a simple data and even fewer had it. But now the number of visits is the currency in Internet. For this reason effectively counting how many visits have a site has as much relevance. This article presents a way to do it and a tool already built for it.



Palabras clave

Drupal, Contador vistas, Hits, CMS.

Introducción

El tener un mayor número de visitas implica que muchas más personas ven el contenido publicado en el sitio, lo que en publicidad es un mayor mercado y a su vez podría suponer más clientes. Por otro, lado las entidades de gobierno han empezado a considerar el número de visitas para determinar que tan provechosos y utilizados son los servicios expuestos por ellos en Internet.

Dicho lo anterior, también se debe considerar que cada vez más entidades ya sean publicas o privadas prestan sus servicios o se presentan en Internet usando sistemas pre-diseñados, esto reduce enormemente el tiempo requerido para poner cualquier contenido en Internet, además que permiten un crecimiento fácil a la plataforma y a los servicios prestados, en algunos casos sin escribir una sola línea de código.

En las secciones que continian de esta publicación se presentará como crear un contador de visitas para una de las herramientas de creación de sitios web más populares en Internet, como lo es Drupal. El artículo está dividido en 2 partes, una breve presentación sobre las herramientas conocidas como CMS (Content Manager System), en segundo lugar la explicación de que se considera una visita y finalmente la presentación de un módulo diseñado para contar y presentar el número de visitas para Drupal.


Herramientas

Los CMS  o sistema manejador de contenido, son una herramienta que actualmente se han esparcido por todo Internet debido a su versatilidad. un CMS permite publicar, editar, eliminar contenido de manera fácil y rápida, todo desde un administrador provisto por el mismo sistema[1]. Junto con esto, algunos sistemas también permiten que se adicionen funcionalidades tan fácil como activar y desactivar un módulo, todo esto sin afectar la estabilidad del sistema. Esto ha hecho que muchas empresas los tomen como la base de sus proyectos de Internet.

Drupal [2] es un software que se encuentra dentro del los CMS más populares de Internet y tiene páginas de tanta relevancia como la página de la casa blanca, de estados unidos.


¿Qué es una visita?

Esta pregunta es muy importante debido a que en muchos casos se puede confundir una visita con cuantos click o impresiones de página se han hecho o desde cuantos sitios han visitado la página.

Para responder a esta pregunta lo mejor es proponer un ejemplo:

Una persona entra a un sitio de Internet, luego da click en uno de los menús para ir a otra página del mismo sitio, está misma acción la continuó realizando 5 veces más durante los siguientes 35 minutos, entonces tuvo que separarse del computador por una hora, transcurrido ese tiempo siguió navegando por 2 páginas más del sitio hasta que finalmente cerro el navegador.

El tiempo más común que se toma para diferenciar entre una visita y otra sin que se el usuario haya realizado una petición al servidor es de 30 minutos.

Dado lo anterior se puede considerar que según el ejemplo se obtuvieron:
- 8 hits (Impresiones de página)
- 1 IP (Direcciones desde las cuales se navegó)
- 2 Visitas (impresiones de página con tiempo entre la ultima y la anterior mayor a 30 minutos)

Lo anterior se basa en lo expuesto por Google para su servicio de Google Analitycs en "Cómo se calculan las visitas en Analytics" [3].

My_Visitors - Contador e de visitas para Drupal

My Visitors es creado para poder realizar el conteo de las visitas hechas a un sitio construido con Druipal. Al contrario de lo que se podría esperar cuando se busca uno modulo con este fin dentro de los más de 8.000 módulos disponibles en el sitio oficial (drupal.org), no se puede encontrar un solo módulo que cuente las visitas efectivas, que significa esto, pues aunque hay otros módulos como "Visitors", estos registran son los hits es decir las veces que se ha presentado alguna página del sitio, lo que sería es un número mucho mayor al número de visitas reales, algunos presentan el número de Ips que han  visitado el sitio pero esto puede ser un número muy inferior al de las visitas reales ya que en una empresa todos los computadores de la empresa suelen conectarse por la misma IP y de esta manera solo contaría una visita.

Dicho lo anterior se presenta un módulo que es capaz de  contar las visitas reales, es decir no solo los hit o las IPs que visiten el sitio. Adicionalmente, el módulo tiene la capacidad de de permitir configurar el tiempo que el administrador del sitio considera prudente que un usuario abandone la página sin que sea contado como otra visita, también permite inicializar el número de visitas registradas y además computar el numero de visitas a una fecha para mejorar los tiempos de respuesta al calcular el número.

A la fecha de publicación de este articulo el módulo My_visitors aun no se encuentra en tramite para que sea expuesto en el sitio oficial de Drupal. Este software se entrega tal como se construyo y puede ser usado de forma libre por cualquiera que lo desee, respetando la autoria del mismo y sin que esto implique ninguna responsabilidad al autor por cualquier afectación que pudiera causar el uso del mismo.


Descargar My_Visitors Usar el botón de descarga https://drive.google.com/open?id=0B6LkXDP4Y0tjb2RtTjYwVGpKZXM&authuser=0

Referencias


[1]: http://en.wikipedia.org/wiki/Content_management_system, (Marzo, 2015)
[2]: https://www.drupal.org, (Marzo, 2015)
[3]: https://support.google.com/analytics/answer/2731565?hl=es  , (Marzo, 2015)



Primera reunión 2015-I semillero IDCI

Primera reunión 2015-I semillero IDCI.
 
Objetivo: Acordar horarios y establecer los objetivos que se realizarán durante el semestre
Fecha: Miércoles, 18 de Febrero de 2015
Hora: 18:05
Lugar: Laboratorio 1


Se compartirán los avances en: 
- Software que hace software
- Programación de Arquitecturas de Altas Prestaciones
- Desarrollo móvil

Llaves compuestas Vs. Llaves exógenas

Durante mis años como ingeniero he trabajado en unas cuantas compañías de tecnologías de la información y de desarrollo de sistemas de información. Durante este período he trabajado desde un programador "raso" hasta la dirección de proyectos de software y claro está muchas veces he tenido que modelar bases de datos para muchos sistemas.

Ahora que interpreto un papel diferente,esta vez como profesor universitario, una de las asignaturas que imparto es justamente "Bases de datos", para lo cual me he propuesto en fortalecer principalmente las habilidades para el diseño de las bases de datos de mis alumnos. Es justo en una de estas clases donde un alumno plantea la cuestión que es objetivo de este post.

Image courtesy of suphakit73 - FreeDigitalPhotos.net
Quizá para muchos esta cuestión tiene poco de cuestión, ya que los mecanismos y reglas que permiten que la información que almacenamos en nuestras bases de datos sean consistentes, permiten dar respuesta a esto, sin embargo, planteada la cuestión aparecieron con ella algunos planteamientos "necios" y es por esto que escribo esta entrada para intentar zanjar la discusión.

 

 

 

 

 

Llaves compuestas Vs. Llaves exógenas

Antes de realizar una comparativa entre las 2 es justo explicar que significa cada una.

Llaves primarias (Primary Keys):

La llave primara es un atributo o un conjunto de atributos que por si mismos son únicos dentro de un conjunto de representaciones o instancias de una entidad y por ende sirven para identificar de forma univoca dicha representación de cualquier otra.

Un ejemplo de una llave primaria puede ser el número de documento de identificación de una persona puesto que este dato es exclusivo para la persona dueña de él y ninguna otra persona podrá tener un número igual. Si tuviéramos una tabla en una base de datos donde se almacene la información de las personas, cada registro de esta tabla (instancia de la entidad) se diferenciaría de los demás, al menos, porque el número de documento es diferente.

Llaves compuestas:

Como se mencionó anteriormente una llave primaria, o en otras palabras los atributos que identifican de forma univoca una instancia de una entidad de sus semejantes, puede ser la combinación de más de un atributo. Este caso es muy frecuente cuando se crean tablas intermedias debido a una relación "Muchos a muchos" en un modelo entidad relación.

Por ejemplo, Supongamos que es necesario almacenar la nota final de cada alumno para cada una de las asignaturas que ha tomado. En tal caso tendremos lo siguiente:
Para llevar este modelo a una base de datos se requiere una tabla intermedia que relacione el alumno con la materia. Es importante hacer énfasis en que un alumno solo puede tener una nota final para cada materia, esto significa que según la naturaleza de nuestra información la llave natural de esta nueva tabla es la la combinación de las llaves del alumno y de la materia, puesto que un alumno no puede tener más de una nota para la misma materia. Así pues se la nueva tabla tendrá una llave compuesta por las 2 columnas cuya combinación es irrepetible y por tanto identifica de forma univoca cada instancia (registro) de las demás, quedando así:


Como se puede ver, la tabla notas tiene la llave primaria compuesta, de esta forma cada alumno solo podrá tener una nota final por cada asignatura.

Llaves exógenas:

El término exónego hace referencia a que los datos allí almacenados no hacen parte directa de la entidad que van a identificar, es decir, que es un valor obtenido de forma externa a la entidad misma. En otras palabras, es crear un dato que se pretenda irrepetible y asignarlo como llave primaria de una tabla. Esto tiene utilidad cuando no logramos encontrar un atributo o un conjunto de ellos que permita identificar de forma univoca cada instancia de la entidad.

Sin embargo, y es esta la cuestión planteada en clase, algunos diseñadores usan un id (genérico), normalmente un número consecutivo auto-generado, para identificar cada fila o registro de una tabla intermedia como la planteada en el punto inmediatamente anterior (Notas).

Bajo este criterio el modelo quedaría así:


Como se puede ver, la tabla notas tiene la llave primaria exógena, ya que se creo un atributo llamado "id_nota" para guardar un valor arbitrario que identifica cada registro del cruce de un alumno con cada materia para almacenar la nota.

Pero entonces...

¿Si tanto llaves compuestas como exógenas permiten identificar de forma univoca cada registro, por cuál nos inclinamos?

Si bien es cierto que las 2 formas permiten identificar de forma univoca cada instancia de las entidades o en otras palabras cada registro de una tabla, es necesario considerar un punto que es irrebatible y que afecta directamente la congruencia y consistencia de nuestros datos. Para explicar de forma clara en que consiste la inconsistencia usemos el mismo ejemplo anterior.

Se debe recordar que se definió que un alumno solo puede tener una única nota final por cada materia, por tal motivo quién modele la base de datos no debería permitir que aun alumno tenga más que una nota por cada materia.

Si se usa una llave exógena estaríamos permitiendo de forma implícita que un alumno pueda tener más de una nota para la misma materia, ya que no existe una restricción que impida que la combinación entre alumno y materia se repita y por tanto tendríamos algo así:


Como se puede evidenciar en la columna "id_nota" no hay datos repetidos ya que la restricción de la llave primaria lo impide, sin embargo, se permite que el alumno con documento 10 tenga 2 notas para la materia 5, esto por supuesto es una incongruencia en nuestra información.
Por otro lado, si se usa una llave compuesta esta incongruencia en nuestra información no puede existir ya que la llave natural, es decir lo que no se puede repetir, se está usando explícitamente como llave primaria de la tabla y por tanto tendríamos algo así:


Como se puede evidenciar el alumno 10 aparece más de una vez (una por cada materia), de igual manera la materia, sin embargo la combinación de las dos solo existe una vez ya que la llave primaria compuesta así lo exige.

Claro, algunos dirán que el problema de la incongruencia de la información que permiten las llaves exógenas se pueden solucionar de otras formas, por ejemplo el uso de una llave única (UK) adicional compuesta de las columnas que no se pueden repetir, pero esto no deja de ser una tontería ya para eso se define la UK como PK. Alguno otro dirá que eso lo puede controlar el software, y que puedo decir: POS SI!! igual que una puerta cerrada evita que se entren los ladrones y todo irá bien hasta que alguien se deje una ventana abierta.

Dicho lo anterior, está claro que se debe usar lo que llamo "llave natural", es decir, aquella que es parte propia de la entidad en lugar de un dato exógeno. Esta "filosofía" no solo aplica para las tablas intermedias, sino que también se debería aplicar a cualquier entidad y dejar la fea costumbre de poner un campo llamado "id" a cuanta tabla veamos (Cosas que algunos hacen ya de forma instintiva y casi diría que irracional).


Dedicado a mi amigo J.P.

IDCI

IDCI

¿QUÉ ES IDCI?

IDCI - Investigación y Desarrollo de Componentes Informáticos. Entendiendo componentes como piezas de software que pueden ser montadas y desmontadas de un gran sistema sin que se vea afectada la estructura ni la estabilidad del mismo.


NUESTRA HISTORIA

IDCI nace en el segundo semestre del 2013 y se consolida como semillero de investigación el primer semestre del 2014 en la universidad de Cundinamarca extensión Chía.


Fue fundado por los los profesores Gabriel Rojas y Jorge Páramo con invitación abierta a todos los alumnos a formar parte del mismo.

NUESTRO OBJETIVO

El principal objetivo es demostrar lo óptimo que puede ser en cualquier índole, la construcción de sistemas bajo una arquitectura de componentes, es decir de piezas desmontables, ya que permite una mayor escalabilidad y fácil mantenimiento de cualquier sistema.

PRIMER LOGRO ESPERADO

Nuestro gran objetivo se limita una simple frase, "software que haga software". Para explicar de forma más detallada, nuestra idea es que mediante un rápido levantamiento de requisitos y con un solo click se genere un sistema que cubra las necesidades de la empresa.

SEGUNDO LOGRO ESPERADO

Diseñar y construir software para ser ejecutado en arquitecturas de altas prestaciones alcanzando el máximo desempeño, enfocado a necesidades científicas.

TERCER LOGRO ESPERADO

Servir de plataforma y soporte para el desarrollo de trabajos de grado que involucren el desarrollo de sistemas de información.

 

 MISIÓN

El semillero IDCI tiene dos propósitos para con los estudiantes y la universidad, en primera instancia, fomentar un marco para el desarrollo e investigación sobre metodologías y lenguajes de modelado para el desarrollo de sistemas de información y en segundo lugar, presentar a la comunidad Udecina, las últimas tendencias en el desarrollo de aplicaciones, construyendo una plataforma que permita la ejecución interdisciplinaria de proyectos de alta envergadura.


VISIÓN

El semillero IDCI busca para el 2018 ser un grupo de referencia nacional en el desarrollo de software de alto interés científico y académico, que brinde a la comunidad Udecina las pautas para desarrollo ingenieril en los proyectos de grado que se involucren la construcción de software.

Me sangran los ojos

 ¿cuál es la diferencia entre...?
  • "Bebés y mamás gratis" y
  • "Bebes y mamas gratis"


Como profesor he tenido que leer muchos escritos de mis apreciados alumnos y alumnas, y no en pocos casos se me ha venido a la mente a Cervantes revolcándose en su tumba. No está de más decir que dichos horrores ortográficos los he encontrado no sólo en los trabajos o talleres realizados en la asignatura, o en lo escrito a mano (cosa que cada vez veo con menos frecuencia), sino que también en los más finamente encuadernados o lujosamente presentados para optar al título de ingenieros.

Ciertamente no soy un experto en ortografía y mucho menos en gramática (hasta hace pocos años no usaba las comas más que para indicar un número decimal), pues bien, partiendo de mis propios antecedentes debería decir que a algunos de mis muy valorados alumnos y alumnas les vendría bien un pequeño repaso sobre ese misterio ancestral, como lo es la ortografía y, así evitar lastimar mis receptores oculares.

Bueno, esta pequeña entrada la he hecho para ellos, mis siempre ponderados alumnos. Una noche de aquellas en que se preparan las clases para la semana siguiente encontré este maravilloso podcast espero les guste y revisen los que escribe o copian, antes de enviar sus trabajos.


Dale al play!


¿Desvelado por terminar un trabajo?

Hace unos años cuando veía los programas futuristas me emocionaba con las increíbles cosas que decían que la ciencia y la tecnología nos iba a traer, entre ellas una que me parecía la más fascinante...

Todos presentaban una creciente preocupación sobre el tiempo de las personas, más específicamente, sobre el tiempo libre que iban a tener, verán, la tecnología prometía liberar a la humanidad de muchas de las labores que nos quitaban mucho tiempo, lo cual sin duda haría que todas las personas tuvieran cada vez más y más tiempo libre...

Las personas trabajarían cada vez menos horas, y claro, no se puede dejar a la gente que tenga tiempo libre sin más ni más, fue así como se pensó en crear parques de diversiones, sitios de ocio y demás actividades que pudieran tener o mantener a la gente ocupada.

Adaptación cuadro de Dalí extraído del sitio http://www.consciencia.net
Que idea más apasionante, más tiempo de diversión, de esparcimiento, para compartir con quien quiera y menos de trabajo. Y es justo al recordar todo esto que se me sube la sangre a la cabeza y no me canso de repetir:
"¿Pero qué cojones pasó?", ya estamos en el futuro, ya tenemos medios de comunicación extremadamente rápidos, inimaginables hace 15 años, medios de transporte más eficientes (bueno esto ..), compras, pagos, transferencias todo sin salir de casa u oficina, en el supermercado más productos de rápida preparación y una lago etcétera que me llevan a decir, ya estamos en el futuro. Y entonces... ¿por qué carajos cada vez tenemos menos y menos tiempo libre?

Salir de casa con el primer asomo del sol, o incluso antes, cumplir con las entregas para las cuales siempre el tiempo es corto, comer de prisa, que las horas de la oficina se hacen cortas, oh no!, otra vez toca echar algunas horas más en el trabajo porque hay que terminar, y además detrás de mi cargo hay otros 3 listos a tomarlo, entonces.., pues nada, toca ver que más se estudia porque toca capacitarse sino quiere estar en desventaja. Cumplir con el trabajo del jefe, cumplir con los trabajos de los profesores, ay ay apreciadiiisimos profesores, como no tenemos vida más allá de verlos y oirles sus profundas voces, cual hipnotizador que adormece un conjunto de primates para hacer que aprendan un nuevo truco. Pues toca cumplir con las fechas de entrega.

¿Y dónde está mi tiempo?, el tiempo que me prometieron que tendría cuando llegara el futuro con sus mágicos avances, ¿Quién me responde?, ¿Quién se robó mi tiempo?, ¿dónde está la vaca culpable?

2:00 am y sigo trabajando, intentando terminar aquello que hoy tiene una importancia de vida o muerte, pero que el lunes ya no recordaré....

No vale la pena lamentarse, pues cada minuto de lamentación es un minuto menos de sueño y además no es mi intención (al menos en este post) plantear respuestas a todas las preguntas expuestas aquí, aunque seguro los vendedores de café estarán dichosos. 

Si alguien a llegado hasta este párrafo y no tiene 10 cosas más en la cabeza, le felicito por ese tiempo disponible, si ha llegado y tiene 10 cosas en su cabeza o también está trasnochando para terminar un trabajo, o si simplemente un azar del destino les trajo hasta este puerto, les dejo unos audios que harán que aquellas noches de trabajo sean menos tediosas, menos solitarias si se puede y en algunos casos algo que los puede animar (eso depende de su sentido del humor). Espero les guste.

___________________________________________________________________________

"El Superviviente" de Stephen King

___________________________________________________________________________


___________________________________________________________________________

"El Que Camina Sobre el Polvo" de Clark Asthon Smith

___________________________________________________________________________



Activación del registro por autónomo de alumnos en un curso en Moodle



A continuación serán presentados de forma simple los pasos necesarios para permitir que un curso creado en Moodle pueda ser “tomado” por cualquier interesado sin requerir que un administrador tenga que registrarle.

Es importante aclarar el término tomado, este viene a significar que el alumno está claramente identificado en la plataforma y puede presentar todos los exámenes y realizar todas las actividades planteadas en el curso y registrar sus calificaciones, es decir, no es un invitado anónimo.

Paso 1: Activación de la extensión de identificación basada Email


Para empezar es necesario permitir que las personas se puedan registrar e identificar ante la plataforma mediante una cuenta personal para ello se debe abrir la sección de “Administración del sitio>Extensiones>Vista general de extensiones”:



Una vez allí se procede a activar la extensión llamada “identificación basada en Email”, para ello se ingresa a la configuración de la extensión:


Ya en la página de configuración se presentará una serie de campos que deberán se ajustados según el criterio que se tenga (s recomendable activar la opción reCaptcha para evitar que el sitio se vea afectado por el uso de robots):


Una vez guardada la configuración se presentará la página que permite la activación específica de las extensiones de identificación (esta página también puede ser encontrada en la sesión “Administración del sitio>Extensiones> Identificación>Gestionar identificación”. Para activar la extensión se hace clic en el “ojo” que se encuentra en la columna habilitar, para hacer que quede abierto (el ojo):


Finalmente, en la misma página se deberá seleccionar, zona de ajustes comunes, “Identificación basada en Email”.



Paso 2: Permitir auto-matriculación al curso


La auto-matriculación permitirá que un usuario del Moodle pueda ser alumno de un curso específico. Para contar con esta opción se debe ingresar al curso, una vez allí en la sección “Administración del curso>Usuarios>Métodos de matriculación”, se debe activar y poner en primera línea el método “Auto-matriculación (Estudiante)”:


En caso de que este método no existiera basta con crearlo asegurándose que el rol que se asignará por defecto es “Estudiante”:




Paso 3: Registro de usuario y matricula de estudiantes


A partir de ahora los alumnos podrán registrarse por su cuenta, cuando intenten ingresar al sitio se presentará la siguiente página:



El alumno deberá dar clic en el botón “Comience ahora creando una cuenta” y diligenciar la información solicitada:


Una vez el alumno se registre en el sitio recibirá una correo con para que realice la confirmación de la creación de la cuenta.

De igual manera el usuario puede ser activado en la sección “Administración del sitio>Extensiones> Usuarios>Ojear lista de usuarios”, simplemente dando clic en confirmar:


Una vez confirmada la cuenta ya sea por el propio usuario o por el encargado de la gestión del sitio, el alumno estará en capacidad de ingresar a la plataforma usando sus credenciales:


Una vez dentro el alumno podrá buscar el curso por el que esté interesado y auto-matricularse:


EP1 - Foros como fuente de soluciones de enseñanza

Que es un foro

Es un tablero de mensajes, en Internet un sitio de debate o discución donde las personas pueden publicar caulquier opinión o inquietud y caulquier otra puede responder o controvertir lo opinado. A diferencia de lo que ocurre con las wikis, en los foros no se puede modificar lo publicado por otro participante aun cuando si existe un moderador que podrá bloquear o censurar los comentarios.

Image courtesy of sheelamohan - FreeDigitalPhotos.net



El concepto de foro busca representar el concepto antiguo de la ágora donde las personas de ciencias y letras se reunian a conversar sobre los temas de su interés. 

Tipos de foros

En la actualidad existen foros de muchos tipos, varios de ellos especializados en diferentes tematicas. Así mismo existen muchas herramientas para hacer la tarea de creación de foros algo sencillo y que no requiera de conocimientos especiales algunos de pago y otrs gratuítos, incluso algunos CMS (como Drupal) traen de facto la posibilidad de crear y gestionar foros así como algunos LMS (como Moodle).

Un ejemplo de plataforma diseñado especificamente para la creación de foros es http://www.forospro.com/ un sitio con todas las herramientas para la gestión de los propios foros.

Los foros como fuente de enseñanza

Sean técnicos o de cualquier otra índole los temas disponibles en foros son tan diversos que permiten encontrar respuesta a muchas de las dudas que surgen todos los días. Si alguien es experto en un determinado tema puede abrir un foro para que las personas interesadas en el tema pregunten y poder discutirlos. Si alguien es interesado en un tema puede buscar un foro sobre el tema e interactuar de forma asíncrona con miembros más avezados en el tema y profundizar en sus conocimientos. Incluso en caso de no ser un experto y no encontrar u foro sobre el tema deseado se puede abrir una nueva discusión en algún foro público.

Recursos:

     

EP1 - Creando un Wiki Curso


¿Que es una wiki?

Un wiki o una wiki (del hawaiano wiki, 'rápido') es un sitio web cuyas páginas pueden ser editadas por múltiples voluntarios a través del navegador web. Los usuarios pueden crear, modificar o borrar un mismo texto que comparten.

Image courtesy of cooldesign - FreeDigitalPhotos.net

Historia

 El origen de los wikis está en la comunidad de patrones de diseño, cuyos integrantes los utilizaron para escribir patrones de programación. El primer WikiWikiWeb creado por Ward Cunningham, quien inventó y dio nombre al concepto wiki, y produjo la primera implementación de un servidor WikiWiki para el repositorio de patrones del Portland (Portland Pattern Repository) en 1995.

 
Wiki Wiki bus at the Honolulu International Airport

Algunos Wikis

En Internet existen muchos sitios que permiten crear Wikis, por tanto, antes de empezar quizás convenga echar un vistazo a este sitio que permite comparar entre ellos: http://www.wikimatrix.org/

Algunos otros son:


  • UseModWiki: el más antiguo, escrito en Perl.
  • MediaWiki: utilizado en todos los proyectos de Wikimedia. Basado en PHP y MySQL.
  • PhpWiki: basado en UseMod. Escrito en PHP, puede utilizar distintas bases de datos.
  • TikiWiki: CMS completo, con un wiki muy desarrollado, usando PHP y MySQL.
  • DokuWiki: Un wiki completo escrito en PHP sin necesidad de bases de datos (usa sólo ficheros de texto)
  • WikkaWiki: basado en WakkaWiki, un wiki muy ligero. Usa PHP y MySQL
  • MoinMoin: Modular. Escrito en Python.
  • OpenWiking: Wiki programado en ASP.
  • Swiki: Wiki programado en Squeak
Referencia: http://es.wikipedia.org/wiki/Wiki



Que instrucciones o comando usa un wiki

Un compendio de la sintaxis que se puede usar la puede encontrar en: http://handbook.wikidot.com/es:wiki-syntax


Dinámica de curso


Para la realización de este curso debe registrarse en este sitio: http://www.wikispaces.com/ y realizar la actividad dispuesta en la entrada: https://profesorgavit0.wikispaces.com/Biografias



Presentación Drupal - UDEC

Hemos llevado a cabo la primera reunión del semillero IDCI dando como resultado la propuesta de una presentación sobre el uso, instalación, configuración y puesta en marcha de Drupal. El objetivo es hacer una práctica conjunta así que quién quiera llevar su computador y realizar el ejercicio e irse a casa con uno de los sistemas para la gestión de contenido más interesantes de la actualidad, bienvenidos sean.

Fuente: http://kimajako.com/drupal.html
Drupal is an open source content management platform powering millions of websites and applications. It’s built, used, and supported by an active and diverse community of people around the world.
Drupal es una herramienta de alto reconocimiento entre los cms y cuenta con importantes ejemplos a nivel mundial y para muchas categorías: entidades gubernamentales, comercio en línea, educación, tecnología y un largo etcétera, aquí unos destacados.

Drupal is Open Source
Drupal is open source software maintained and developed by a community of 630,000+ users and developers. It's distributed under the terms of the GNU General Public License (or "GPL"), which means anyone is free to download it and share it with others. This open development model means that people are constantly working to make sure Drupal is a cutting-edge platform that supports the latest technologies that the Web has to offer. The Drupal project's principles encourage modularity, standards, collaboration, ease-of-use, and more.
Más acerca de Drupal Aquí



El evento será realizado en las sede de la Universidad de Cundinamarca - Ext. Chía. Próximamente estaremos indicando el día y la hora. Para los interesados en el tema pueden entrar al sitio del grupo http://idci.g0corp.co/ y registrarse.



Máquinas virtuales

Introducción al uso de máquinas virtuales

Definción:

Una máquina virtual es un software que simula un computador de tal manera que pueda ejecutarse como si fuera un computador real, permitiendo instalar sistemas operativos, asignar memoria y recursos de disco y procesador.


Una característica esencial de las máquinas virtuales es que los procesos que ejecutan están limitados por los recursos y abstracciones proporcionados por ellas. Estos procesos no pueden escaparse de esta "computadora virtual".

Referencia: http://es.wikipedia.org/wiki/Máquina_virtual


Utilidad:


El uso de máquinas virtuales da una amplia gama de usos posibles desde la prueba de sistemas operativas sin necesidad de tener que hace una instalación en la máquina física (lo que implicaría el desuso de la misma mientras se instala el S.O.). También a nivel empresarial tiene usos practico ya que la flexibilidad de las máquinas virtuales permite que los recursos sean asignados de forma más dinámica, así si un servidor requiere en determinado momento más memoria RAM podría simplemente asignarla e incluso en caso de que la máquina física no disponga de ella se podría simular dando espacio en el disco duro (aunque eso disminuiría el rendimiento).

Inconvenientes de las máquinas virtuales:

Uno de los inconvenientes de las máquinas virtuales es que agregan gran complejidad al sistema en tiempo de ejecución. Esto tiene como efecto la ralentización del sistema, es decir, el programa no alcanzará la misma velocidad de ejecución que si se instalase directamente en el sistema operativo "anfitrión" (host) o directamente sobre la plataforma de hardware. Sin embargo, a menudo la flexibilidad que ofrecen compensa esta pérdida de eficiencia.

Image courtesy of Stuart Miles - FreeDigitalPhotos.net

 Algunos software para crear máquinas virtuales:

A continuación se presentan algunos de los programas de virtualización más conocidos:

Máquinas listas para usar:


Otra de las ventas que ha generado el uso de máquinas virtuales son las llamadas "Appliances", máquinas virtuales completamente funcionales para una determinada tarea, es decir que tienen pre-instalado el sistema operativo y el software necesario por tal razón alguien sin muchos conocimientos técnicos podría encontrar máquinas con cualquier servicio pre-instalado y las configuraciones necesarias ya realizadas.

algunos ejemplos de donde encontrar dichas máquinas listas para usar son:

https://solutionexchange.vmware.com/store/category_groups/virtual-appliances

 Como se usa:


A continuación algunos vídeos muestras como usar las máquinas virtuales





SO - Introducción a los Sistemas Operativos

Introducción a los sistemas operativos

El objetivo de este curso es suministrar sólidos conocimientos referidos a los sistemas operativos como administradores de recursos de las computadoras, en especial la administración de recursos compartidos tales como el procesador, la memoria y los dispositivos de entrada/salida, analizando los principales algoritmos de cada caso.

Image courtesy of  xedos4 - FreeDigitalPhotos.net

¿Qué es un Sistema Operativo?

Un sistema operativo (SO, frecuentemente OS, del inglés Operating System) es un programa o conjunto de programas que en un sistema informático gestiona los recursos de hardware y provee servicios a los programas de aplicación, ejecutándose en modo privilegiado respecto de los restantes y anteriores próximos y viceversa. Referenciahttp://es.wikipedia.org/wiki/Sistema_operativo



Historia de los Sistemas Operativos - Generaciones

Generaciones por décadas:
  • 1940s: Se considera como la primera generación de de los sistemas operativos. En aquel entonces las computadoras eran máquinas muy costosas lo que hacía que estuvieran muy solicitadas y que sólo pudieran utilizarse en periodos breves de tiempo. Todo se hacía en lenguaje de máquina, no existían los sistemas operativos, y los programadores debían interaccionar con el hardware del computador sin ayuda externa.
  •  1950s: Los sistemas operativos hacen una aparición discreta y bastante simple, con conceptos tales como el monitor residente, el proceso por lotes y el almacenamiento temporal.
  • 1960s: Hubo cambios bastante significativos en tanto del software como del hardward, aparecen los circuitos integrados lo cual aumenta el poder calculo. Se desarrollan nuevos modelos para gestionar y aprovechar mejor los recursos físicos disponibles.
  • 1970s: En esta década aparece Unix uno de los sistemas operativos más famoso, además se empezó a plantear la programación orientada a objetos, sin embargo aún eran muy costosos y los tiempos de fabricación muy extensos y peor aun, los usuarios debían conocer y recordar comandos complejos para la ejecución de trabajos, aun así fue un cambio significativo en la forma en que se debía interaccionar con la máquina.
  • 1980s: Esta década es conocida como la del nacimiento del computador personal, esto se logró gracias a la producción de circuitos integrados (ships), a gran escala, además de la cada vez más notoria reducción del tamaño de los componentes que constituían los computadores. También se dio origen a los sistemas operativos más populares de la actualidad (al menos en el ámbito domestico), MS-DOS (posteriormente Microsoft Windows) y Mac OS. Empiezan a aparecer las interfaces gráficas y se piensa en ser más amigables con el usuario.
  •  1990s: Ve la luz uno de los sistemas para servidores más difundido en el mundo,  GNU/Linux. Con la expansión de Internet se masificó la aparición de programas auto gestionados con fines no deseados para los usuarios en muchos casos, como es el caso de los virus, adicionalmente los computadores se vieron expuestos a robos de información, todo esto llevo a que los sistemas operativos empezaran a fortalecer su seguridad y a crear mecanismos que redujeran el impacto de estos problemas.
  • 2000s: La masificación de los dispositivos móviles hizo que se creará también sistemas operativos con características propias que permitieran manejar de mejor manera los recursos mucho más limitados que los de un computador de escritorio (aunque las distancias entre ambos cada vez es más corta). Si bien es cierto que ya existían dispositivos como la Palm realmente hasta la aparición de symbian, prácticamente cada fabricante de teléfonos celulares tenia su propio sistema operativo, pero fue la aparición del iPhone (2007) lo que dio un impulso vertiginoso al desarrollo de dispositivos móviles "inteligentes", sin embargo el iPhone seguía siendo un sistema propietario y de uso exclusivo para dispositivos de Apple, pero en el año 2008 Google libero Android que es sin duda el líder del mercado móvil en S.O., este sistema fue diseñado sobre el núcleo de Linux, aunque inicialmente fue diseñado para teléfonos inteligentes luego de unas modificaciones fue adaptado para otro tipo de dispositivos como tablets.

 Referencia: http://es.wikipedia.org/wiki/Historia_de_los_sistemas_operativos
http://es.wikipedia.org/wiki/Sistema_operativo_móvil

Conceptos de los Sistemas Operativos

Estructura de los Sistemas Operativos

A continuación se presenta una imagen ejemplo con la estructura de un sistema Operativo en capas:

Fuente: http://www.fing.edu.uy/inco/cursos/sistoper/recursosTeoricos/4-SO-Teo-EstructuraSistemasOperativos.pdf

Tendencias

 
Fuente: http://www.kienyke.com/noticias/el-sujetador-que-interactua-con-twitter/

Ya no basta con tener sistemas operativos en teléfonos u otros aparatos móviles, cada vez se hace más habitual el encontrar otro tipo de dispositivos y otra forma de interacción con ellos: gafas, zapatillas, hasta brasiers con ships, además de los otros viejos conocidos que aumentan su inteligencia con velocidad: lavadoras, neveras, hornos, etc. Son solo un ejemplo de todos los dispositivos que se desean controlar de manera eficiente y segura, adicionalmente y de la misma manera en que cada vez más las personas interaccionan entre sí, los dispositivos que nos rodean también deben hacerlo. Neveras que se comunican con relojes, automóviles que se comunican con las carreteras y con otros vehículos incluso marca-pasos que envían SMS.


Fuente: http://www.google.com/glass/start/

Básicamente todo lo que nos rodea tendrá uno o cientos de ships con cada vez más poder de cálculo y todos intercomunicables y cada uno con su interfaz para interaccionar con las personas, todos ellos necesitarán sistemas operativos que permitan gestionar sus recursos, pero esto también trae con sigo problemas que ya se han vivido con los tradicionales anfitriones de sistemas operativos y es que así como un computador de escritorio puede ser infectado con un virus informático, es casi seguro que nuestra nevera, nuestra lavadora o nuestro horno microondas también pueda verse infectado por uno.


Fuente: http://www.arqhys.com/neveras-inteligentes.html

Así pues la guerra entre tener un sistema operativo saludable y el tiempo disponible de muchos entusiastas de los virus parece que se seguirá librando en el futuro.

Fuente: http://malkun.blogspot.com/2013_02_01_archive.html

Libro de referencia (Sistemas operativos modernos Escrito por Andrew S. Tanenbaum)



También se recomienda la 3ra edición del mismo libro:

Programación Orientada a Objetos (POO - en inglés OOP)

Image courtesy of digitalart - FreeDigitalPhotos.net La programación orientada a objetos es un paradigma o un modelo de programación qu...