Ir al contenido principal

Entradas

Mostrando las entradas de octubre, 2010

Control De Motor DC BiDireccional y Angular

Este circuito permite controlar un motor de corriente directa (DC) con señales lógicas de nivel TTL, permite con una señal de control DIR definir en que sentido gira el motor, ademas permite con la señal de control ENABLE definir si el motor esta "girando" o detenido, y por ultimo usando 4 bits permite definir la cantidad de tiempo que queremos activar el motor, este control permite controlar la cantidad de "pasos" para un contador 47191, usando un comparador 7485 detener el motor al cumplir la cantidad de tiempo indicada. Básicamente funciona de la siguiente forma, se indica la dirección, y se configuran los 4 bits de "tiempo" o "numero de pasos", y finalmente se  activa la señal de "enable" para que el circuito realize el movimiento. el circuito utiliza un contador 74191 para llevar el control de tiempo o numero de pasos, también un comparador  7485 para detectar cuando se ha completado la cantidad correcta de pasos, y también un

Instalar Oracle Enterprise 11g en Kubuntu 9.04

Esta guía muestra paso a paso como configurar un sistema con Kubuntu 9.04 desde los pasos iniciales como configuración de la swap, requisitos varios del sistema, instalación de java, actualizar Kubuntu e instalar paso a paso los paquetes necesarios para instalar Oracle 11g, también la creación de usuarios y grupos y algunos parámetros del kernel, para finalmente correr el asistente de instalación de Oracle. Manual Instalacion Oracle 11g Kubuntu

Centrar con Css un Div HTML

Uno de los elementos básicos para realizar un sitio web, es crear la plantilla del sitio, muchas veces es necesario centrar de forma horizontal elementos "div" dentro de su contenedor, para esto CSS proporciona un metodo muy efectivo que consiste en configurar las propiedades " margin-left: auto; margin-right: auto;  "  para el elemento contenido, o " margin: 0px auto; " para configurar ambos a la vez por ejemplo <div style="background-color: grey;"> <div style="background-color: green; margin: auto; width: 50%;"> contenido </div> </div> contenido debido a la incompatibilidad de algunos navegadores, también a veces es necesario usar la propiedad "text-align:center" en el contenedor para centrar un objeto, (internet explorer). <div style="text-align:center; background-color: grey;"> <div style="background-color: green; width:50%;"> contenido </div>

Extend LT: Como Empezar

Extend LT es un software que permite realizar modelos de varios tipos de sistemas y también simular dichos modelos con una serie de parámetros definidos tanto en sus componentes como en la simulación global, como el tiempo total de simulación etc. Para usar este programa, debemos realizar algunas configuraciones simples, como cargar la librearía, mostrar la paleta de componentes y seleccionar alguna librería de las que hemos cargado, pasos muy simples, pero que al ver el programa no resultan tan evidentes, lo mismo para realizar una simulación y ver el proceso animado, para saltar estos pequeños detalles he realizado este vídeo que muestra como crear un modelo muy simple, desde que iniciamos Extend LT, cargamos librerías, usamos componentes etc. Descargar Archivo usado en el Video

Poligono Animacion en Java 2D

Esta aplicación muestra una animación simple en Java2D con ciclo de render activo, la animación muestra un polígono girando en un JFrame, la cantidad de lados del polígono se puede modificar utilizando las teclas arriba/abajo del teclado, también se puede cambiar el color con la tecla C, y si se dibujan las lineas que cierran el polígono con la tecla L y también la tecla D. para trazar el polígono se utilizan coordenadas polares, se define un angulo de paso en radianes de la siguiente forma  paso = 2 * Pi / lados y luego se ejecuta un ciclo encargado de dibujar cada linea del polígono.  Descargar proyecto original en JDeveloper 11g 

Agujas de Reloj Animación en Java 2D

este programa es un pequeño ejemplo de animación con ciclo de render activo, muestra tres lineas con las posiciones correctas para mostrar la hora, ademas se ajustan al tamaño del JPanel en el que se dibujan, demuestra el uso del método paint, también del objeto Graphics y en general de los principios básicos para realizar animaciones en Java. para iniciar la animación es necesario presionar la tecla "S" Descargar Codigo Fuente

Dibujar Tablero en Java desde un Archivo

Este proyecto de compiladores 1 tenia como requisito analizar un archivo de entrada, que contenía una matriz con números, cada numero indicaba un tipo de casilla, por ejemplo el 0 indica casilla vacía, y el 99 indicaba pared, en la practica este programa tiene un ejemplo claro de un analizador léxico hecho en JLex integrado con un analizador sintáctico hecho en java Cup, ademas de una cantidad considerable de código para dibujar el tablero en un JPanel. Normalmente el principal problema a la hora de crear un juego es la lógica de dibujo, y por ejemplo como mover un personaje sobre el mapa o tablero, todo esto se incluye en el ejemplo. Descargar Codigo Fuente

Semaforos del Sistema en C/C++ sobre Linux

Crear semaforos en Linux para sincronizar procesos # include < sys/ipc.h > # include < sys/sem.h > void main ( ) { key_t llave ; int id_semaforo ; //algun archivo para crear la llave, todos los procesos //que desean obtener la misma llave deben pasar los mismos //parametros, con la misma llave tambien se adquiere el mismo //conjunto de semaforos llave = ftok ( " /bin/bash " , 'X' ) ; //crear 10 semaforos con persimos 0666 (rw-rw-rw-) id_semaforo = semget ( llave , 10 , 0666 | IPC_CREAT ) ; } al crear los semaforos en un proceso, es posible adquirir el mismo conjunto de semaforos desde otro proceso con una llamada a semget # include < sys/ipc.h > # include < sys/sem.h > void main ( ) { key_t llave ; int id_semaforo ; //la misma llave para obtener acceso al conjunto de semaforos creado llave = ftok ( " /bin/bash " , 'X' ) ; i

Manejo de sesion en JSP/JSF

Ejemplo simple de como manejar datos de sesión en una aplicación JSP o JSF, en concreto este ejemplo muestra como realizar un control de acceso (login), aunque de forma básica ya que el único usuario y password validos están hardcoded. el objeto Session esta implícito en las paginas JSP y básicamente es una colección "llave"->"valor" que almacena la información en el ámbito de una sesión, se considera sesión a un grupo de interacciones que el usuario realiza con el sitio web, es decir la colección de sesión almacena información que es relevante al usuario durante toda su interacción con el sitio, un ejemplo claro podría ser un carrito de compras, la información podría estar almacenada en la colección de sesión del usuario, ya que hay una colección diferente por cada "usuario" o "conexión". otra aplicación es el manejo de credenciales, roles y permisos, información almacenada en esta colección es usada para denegar o permitir el acceso a difere

Contador de 3 bits up/down con flip flops JK

El circuito secuencial consiste en 4 flip flops JK y una serie de compuertas lógicas para coordinar los cambios de estado, ademas de un IC 555 para generar la base de tiempo. El contador repite la secuencia 0, 1, 2, 3, 4, 5, 6, 7, 6, 5, 4, 3, 2, 1, 0 .... Archivo original hecho en NI Multisim 10 descargar este diseño fue realizado mientras tomaba el curso de Organización Computacional de la facultad de Ingeniería de la Universidad de San Carlos de Guatemala (USAC).

Ejemplo de Simulación en Extend

Extend es un software usado en los cursos de Modelacion y Simulación 1 y 2 de la carrera de Ingenieria en Ciencias y Sistemas de la Usac, generalmente es difícil dar los primeros pasos en el uso de este programa, que permite simular sistemas discretos de una forma efectiva, pero que a primera vista es poco amigable, luego cuando ya uno entiende que es cada "bloque" y como se configura la simulación empieza a parecer mas bonito, en este caso publico un archivo que contiene un modelo muy simple, un bloque Generator, que se encarga de simular la creación de los elementos que son "procesados" por nuestro sistema, un bloque Counter que se encarga de llevar el control de cuantos elementos pasan por el, y finalmente un bloque Exit que representa el fin del proceso o la salida del sistema, ademas de un bloque Executive que controla la duración de la simulacion. Descargar Archivo de Extend .Mox

Semáforos en Java, Sincronizar Threads

Este ejemplo muestra como utilizar semáforos para coordinar un grupo de threads, este problema implementa un caso de lectores-lectores, donde dos tipos de "lectores" pueden cooperar con los de su mismo tipo, pero son excluyentes con los del tipo contrario, en el caso particular tenemos un puente de un solo carril, que permite el paso en los dos sentidos, un tipo de "lector" son los carros que van al Este, estos pueden entrar al puente acompañados de otros carros que vayan en el mismo sentido, pero son excluyentes con los carros que van al Oeste, por lo que debe existir exclusión mutua Este-Oeste y cooperar entre Este-Este y Oeste-Oeste. Este programa fue realizado como practica del curso de Sistemas Operativos 1 de la Carrera de Ingeniería en Ciencias y Sistemas de la Facultad de Ingeniería de la Universidad de San Carlos de Guatemala. Descargar Código Fuente JDeveloper 11g

Consultas y Carga de Datos Oracle

Proyecto de Bases de Datos 1, este proyecto consta de diez consultas con un grado de complejidad ligeramente mas elevado que el típico select * from, en los archivos del proyecto se incluye un script para generar un esquema, crear el modelo y cargar los datos con SqlLoader, ademas se incluye otro script para rellenar el modelo a partir de una tabla temporal (resultado de la carga de datos), usando SqlPlus, y finalmente se incluye el código fuente de las consultas, listas para ser ejecutadas. SELECT  NOMBRE  AS  SECTOR  ,   MAX (  DECODE (  CODTIPODELICENCIA  ,   1   ,  CANTIDAD  )   ) AS   "COMPUTADORA" ,   MAX (  DECODE (  CODTIPODELICENCIA  ,   2   ,  CANTIDAD  )   ) AS   "Employee" ,   MAX (  DECODE (  CODTIPODELICENCIA  ,   3   ,  CANTIDAD  )   ) AS   "PROCESADOR" ,   MAX (  DECODE (  CODTIPODELICENCIA  ,   4   ,  CANTIDAD  )   ) AS   "Universal Power Units" ,   MAX (  DECODE (  CODTIPODELICENCIA  ,   5   ,  CANTIDAD  )   ) AS

Java 3D Racing Game

Este proyecto realizado para el curso de Arquitectura 2 de la carrera de Ingeniería en Ciencias y Sistemas de la USAC, muestra como mapear texturas, modelar sólidos a mano, detección de colisiones, seguimiento de terreno, control de cámara y en general todos los elementos que participan en el mundo virtual en el que se desarrolla el juego. https://github.com/rudygt/java3d-car Descargar Código Fuente

Como Hacer un Juego en Ensamblador, Modo 13h

El modo 13h es el modo de vídeo mas simple de usar, debido a la forma en la que esta proyectado en memoria, con una resolución de 320 * 200 pixels y una profundidad de 256 colores, el área de vídeo esta mapeada en 64 000 bytes de memoria, a razón de 1 byte de color por cada pixel de la pantalla. este modo es muy popular debido a que es fácil direccionar cada pixel, la formula es básicamente offset = 320 * y + x y la direccion base de la memoria de video es 0xA000 entonces se puede acceder a la memoria de video, con operaciones normales sobre la memoria del sistema. este ejemplo es básicamente una plantilla para un juego en ensamblador, contiene todos los elementos necesarios para desarrollar un juego, función de retardo (delay), doble bufffer, sincronizacion vertical, manejo de teclado, ciclo de render activo, fps constantes etc. Descargar Código Fuente

Matriz Ortogonal, Estructura de Datos en Java

una matriz ortogonal es una estructura de datos que implementa una tabla con memoria dinámica, se puede buscar o recorrer por uno de los dos aspectos de orden, en este ejemplo en particular, la tabla almacena Vehículos, y las filas representan las marcas de los vehículos y las columnas representan los modelos. codigo fuente del Nodo de la Matriz Ortogonal public class NodoMatriz { //Direccionamiento de la matriz con el movimiento de los nodos... private NodoMatriz mArriba = null ; private NodoMatriz mAbajo = null ; private NodoMatriz mDerecha = null ; private NodoMatriz mIzquierda = null ; private String mMarca = "" ; private int mModelo = 0 ; private ListaCarro mElementos = null ; public NodoMatriz ( ) { //Constructor } //Los set y gets... public void setMarca ( String pMarca ) { mMarca = pMarca ; } public String getMarca ( ) { ret

Sincronizar Procesos con Semáforos en Linux

Este problema fue planteado como practica en el curso de Sistemas Operativos 1 de la carrera de ingeniería en Ciencias y Sistemas de la Universidad de San Carlos de Guatemala, el problema básicamente es coordinar a un grupo de turistas para que puedan cruzar un puente, el cual tiene un limite en el peso soportado, para esto algunos turistas deben esperar en la entrada del puente hasta que el peso libre sea suficiente para soportarlos. la implementacion se realizo con semáforos del sistema y memoria compartida, los elementos básicos de IPC (Comunicación Entre Procesos). se utilizaron las librerías #include <sys/ipc.h> #include <sys/shm.h> #include <sys/sem.h> y las funciones semop ftok shmget shmat semget semctl shmdt shmctl Descargar Código Fuente

Encuesta de opciones en Java

Uno de los problemas que se presentaron durante Coecys 2010 fue la asignación de conferencias a los salones disponibles, el asunto es que teníamos dos salones de diferentes capacidades, el salón A con capacidad para 200 personas, y el salón B con capacidad para 100 personas. el día lunes hubo mucha gente que prefería la conferencia del salón pequeño, incluso algunos no pudieron ingresar, para resolver este asunto, se creo un pequeño programa, para registrar que conferencia era la preferida (1 entre dos opciones) y así asignar la conferencia que mas "votos" tenia en el salón grande y evitar el problema del día anterior. Descargar Código Fuente

QMutex como sincronizar Threads en QT

Este ejemplo es muy simple y muestra el uso básico de QMutex para forzar la exclusión mutua entre una serie de Threads que acceden a una región critica, se define una clase ThreadR que implementa el acceso a la región critica, dicha región critica utiliza los métodos lock() y unlock() de la clase QMutex para garantizar que solo uno de los threads accede a la variable protegida.  void run ( ) { while ( true ) { mutex . lock ( ) ; Reportar ( mNumero ) ; mutex . unlock ( ) ; sleep ( ( rand ( ) % 5 ) + 1 ) ; } } Descargar Código Fuente

GuateXGuate El Regreso

Luego de un tiempo fuera de servicio, regresa GuateXGuate. GxG es una organización formada por un grupo de estudiantes de ingeniería en Ciencias y Sistemas de la Universidad de San Carlos de Guatemala, el proyecto nació con el deseo de fomentar el intercambio de conocimiento entre los estudiantes de nuestra carrera, básicamente nos dimos cuenta que mucho del conocimiento que hemos obtenido a lo largo de nuestras largas horas de trabajo y sufrimiento podía ser transferido a las nuevas generaciones, entre compañeros, fomentando la unidad y en fin el  crecimiento de la facultad como un todo, pues si todos trabajamos por mejorar nosotros mismos, pero también por transmitir lo que hemos aprendido de forma inmediata a nuestro entorno mas próximo estamos ayudando no solo a crear mejores profesionales, también mejores personas, que compartan nuestros principios de acceso universal al conocimiento, sin egoísmo ni envidia, sin pensar que porque a mi me ha costado, mis compañeros también deben su