tag:blogger.com,1999:blog-47618206319641014752024-03-13T19:56:00.958-07:00Axelandrita`s knowledge...Donde lo que aprendo komparto....Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-4761820631964101475.post-85800930314260248052010-02-25T19:14:00.000-08:002010-02-25T19:18:35.377-08:00¿Que son tablas mutantes?Pues una tabla mutante o que esta mutando, es aquella que esta siendo modificada, ya sea por un INSERT, un DELETE o un UPDATE o una tabla que podría modificarse por los efectos de un ON DELETE CASCADE. <br /> <br /> Por otro lado en este tipo de tablas hay dos tipos de restricciones, las cuales se presentan a continuación:<br /><br /> 1. Las instrucciones de un row trigger no pueden ni leer ni modificar una tabla que está mutando. <br /> <br /> 2. Las instrucciones de un row trigger no pueden cambiar ni la clave primaria, ni claves foráneas, ni atributos únicos de tablas que estén restringiendo. Esta restricción tiene una excepción: un before row trigger disparado por un INSERT de una sola fila de una tabla con una clave foránea, puede modificar cualquier columna de la tabla primaria siempre que no se viole ninguna de las restricciones de integridad referencial. <br /><br /> Los ERRORES por Tablas Mutantes se detectan y se generan en Tiempo de Ejecución y no de Compilación (ORA-4091). <br /><br /><br /><span style="font-weight:bold;">Ejemplo de Tablas Mutantes</span><br /><br />A continuación la descripción de el disparador que da lugar a las tablas mutantes.<br /> <br /><span style="font-style:italic;">Este será un disparador que modifique el número de empleados de un departamento (columna Departamentos.Num_Emp) cada vez que sea necesario. Ese número cambia al INSERTAR o BORRAR uno o más empleados, y al MODIFICAR la columna Dpto de la tabla Empleados, para uno o varios empleados. La tabla Departamentos es una tabla de restricción de la tabla Empleados, pero el Disparador es correcto, porque modifica Num_Emp, que no es la clave primaria. Este disparador no puede consultar la tabla Empleados, ya que esa tabla es mutante (por ejemplo, esta instrucción no sería válida: SELECT COUNT(*) INTO T FROM Empleados WHERE Dpto = :new.Dpto;) </span><br /><Code><br />CREATE OR REPLACE TRIGGER Cuenta_Empleados <br />BEFORE DELETE OR INSERT OR UPDATE OF Dpto ON Empleados <br />FOR EACH ROW <br />BEGIN <br />IF INSERTING THEN <br />UPDATE Departamentos SET Num_Emp = Num_Emp+1 <br />WHERE NumDpto=:new.Dpto; <br />ELSIF UPDATING THEN <br />UPDATE Departamentos SET Num_Emp = Num_Emp+1 <br />WHERE NumDpto=:new.Dpto; <br />UPDATE Departamentos SET Num_Emp = Num_Emp-1 <br />WHERE NumDpto=:old.Dpto; <br />ELSE <br />UPDATE Departamentos SET Num_Emp = Num_Emp-1 <br />WHERE NumDpto=:old.Dpto; <br />END IF; <br />END; <br /> </Code><br /> El disparador anterior Cuenta_Empleados tiene un inconvenientes: modifica el campo Num_Emp aunque este no tenga el valor correcto. <br /><br /><br /><span style="font-weight:bold;">Ejemplo de la solución para las Tablas Mutantes</span><br /><br /><br />Ahora bien basándonos en el ejemplo anterior de tablas mutantes, se escribirá la solución basándonos en la creación de dos nuevos disparadores, uno a nivel de fila y el otro a nivel de after, a continuación se escribira:<br /><Code><br /><br />CREATE OR REPLACE PACKAGE Empleados_Dpto AS <br />TYPE T_Dptos IS TABLE OF Empleados.Dpto%TYPE <br />INDEX BY BINARY_INTEGER; <br />Tabla_Dptos T_Dptos; <br />END Empleados_Dpto; <br />CREATE OR REPLACE TRIGGER Fila_Cuenta_Empleados <br />AFTER DELETE OR INSERT OR UPDATE OF Dpto ON Empleados FOR EACH ROW <br />DECLARE Indice BINARY_INTEGER; <br />BEGIN <br />Indice := Empleados_Dpto.Tabla_Dptos.COUNT + 1; <br />IF INSERTING THEN <br />Empleados_Dpto.Tabla_Dptos(Indice) := :new.Dpto; <br />ELSIF UPDATING THEN <br />Empleados_Dpto.Tabla_Dptos(Indice) := :new.Dpto; <br />Empleados_Dpto.Tabla_Dptos(Indice+1):= :old.Dpto; <br />ELSE Empleados_Dpto.Tabla_Dptos(Indice) := :old.Dpto; <br />END IF; <br />END Fila_Cuenta_Empleados; <br />CREATE OR REPLACE TRIGGER Orden_Cuenta_Empleados <br />AFTER DELETE OR INSERT OR UPDATE OF Dpto ON Empleados <br />DECLARE Indice BINARY_INTEGER; <br />Total Departamentos.Num_Emp%TYPE; <br />Departamento Departamentos.NumDpto%TYPE; <br />BEGIN <br />FOR Indice IN 1..Empleados_Dpto.Tabla_Dptos.COUNT LOOP <br />Departamento := Empleados_Dpto.Tabla_Dptos(Indice); <br />SELECT COUNT(*) INTO Total FROM Empleados WHERE Dpto = Departamento; <br />UPDATE Departamentos SET Num_Emp = Total WHERE NumDpto = Departamento; <br />END LOOP; <br />Empleados_Dpto.Tabla_Dptos.DELETE; <br />END Orden_Cuenta_Empleados;<br /></Code><br /><br />Exitos!!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-14640159572139553132009-12-18T08:58:00.000-08:002009-12-18T09:05:51.461-08:00Analogias de SCMRegreso dando algunas analogías de los elementos que vimos en un <a href="http://axelandrita-sw.blogspot.com/2009/03/elementos-de-scm.html">post anterior</a> y hoy quiero dar algunas analogias para que queden claros dichos elementos: <br /><br /><span style="font-weight:bold;">Bóveda = Repositorio</span><br /> - Repo es comun de activos digitales<br /> - Almacena Artefactos<br /> - Asegura Artefactos<br /><br /><span style="font-weight:bold;">Album Fotos = CodeLine</span><br /> - Almacena historia de cambios Quien? Que? Cuando? Pq?<br /> - Almacena cambios eficientemente (en el espacio)<br /> - Reproduce cualquier versión (gracias a los negativos) de cualquiera <br /><br /><span style="font-weight:bold;">Construyendo Casa = Construyendo Sw</span><br /> - Cambios requieren coordinación (maestro obra) <br /> - Secuencia actividades en la construcción (workflow)<br /><br /><span style="font-weight:bold;">Viaje en el Tiempo = CodeLine</span><br /> - Visitar código fuente de:<br /> * Anoche<br /> * Otra plataforma<br /> * Un release de hace 5 años<br /> - Configuración: grupo relacionado de artefactos.<br /><span style="font-style:italic;"> Pq usar configuración? </span><br /> * Administrar versiones de archivos y dirs<br /> * Administrar areas de Trabajo (worckspace)<br /> * Repdroducir configuraciones completas de sistema de sw <br /> - Administración del area de Trabajo<br /><br /><span style="font-weight:bold;">Libro Varios Autores = Desarrollo Paralelo</span><br /><br /><span style="font-weight:bold;">Características similares:</span><br /> - Crear nuevos archivos y directorios <br /> - Modificar versiones existentes<br /> - Acceder al mismo código<br /> - Integrar sus trabajo<br /><br /><span style="font-weight:bold;">Administración Procesos</span><br /> - Un proy de sw es un proyecto de construcción<br /> - Administrar y coordinar las actividades de miembros<br /> <br /><span style="font-weight:bold;">Administración de Builds</span><br /> - Build: compilar, ejecutar pruebas de unidad y linkear<br /> - Software Build, version completa de un sistema que ya es utilizable<br /> - Builds que no funcionan solo bloquean el proceso<br /> - Ejecutar builds optimizan procesos, <br /><br /><br />ExitosAxelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-17187807646419792792009-08-10T21:43:00.000-07:002009-08-10T21:58:34.445-07:00Arquitectura de la OntologíaLuego de una gran pausa regreso ;) hablando un poco sobre las ontologias, un tema que se toca en el curso de Inteligencia Artificial. <br /><br />A continuacion una imagen sobre la arquitectura de una Ontologia que se basa en la arquitectura de la Web Semántica en donde podemos encontrar los elementos básicos de una ontología como lo es XML & XML Schema, DFR & RDFSchema, Vocabularios, etc. <br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp4gamwi0_Clh7QcBW5nrJyrQs3dteZfkEVAKw_pLzondVCDU5FwV0vGaAGOW3oZK1z7MN5D5v7PtR6VtKrCI6jkri1WatpaedDc1PFI335sB21eQ4khIJzWYguF_ShIQZrM98LPe2IbM/s1600-h/Ontologia1.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 277px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhp4gamwi0_Clh7QcBW5nrJyrQs3dteZfkEVAKw_pLzondVCDU5FwV0vGaAGOW3oZK1z7MN5D5v7PtR6VtKrCI6jkri1WatpaedDc1PFI335sB21eQ4khIJzWYguF_ShIQZrM98LPe2IbM/s400/Ontologia1.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5368565990720029602" /></a><br /><br />Exitos!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-29775270756498954142009-07-03T12:12:00.000-07:002009-07-03T12:14:51.711-07:00Ser Ingeniero es un Don !!!<center><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/BfCuOm6crVo&hl=es&fs=1&color1=0x5d1719&color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/BfCuOm6crVo&hl=es&fs=1&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object></center><br /><br />Exitos para los que estamos estudiando Ingenieria!!!! definitivamente es un Don :PAxelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com2tag:blogger.com,1999:blog-4761820631964101475.post-79792203689768431562009-06-30T22:24:00.000-07:002009-06-30T23:18:04.845-07:00Mi primer ABC en JPAHola q tal, hoy voy a mostrar un poco de codigo sobre JPA, el cual es un ORM muy facil y sencillo de utilizar. <br /><br />Es un ABC ya que seran tres metodos que haran Altas (inserciones) Bajas (eliminaciones) Cambios (modificaciones) en la Base de datos, en este caso usaremos MySQL y NetBeans. <br /><br /><span style="font-weight:bold;">Altas:</span><br />Pues emezaremos con las inserciones a la base de datos, el codigo seria el siguiente: <br /><code><br />public void addJugador(Jugador jugador) {<br /> EntityManager em = getEntityManager();<br /> try{<br /> EntityTransaction entr=em.getTransaction();<br /> entr.begin();<br /> em.persist(jugador); <br /> entr.commit();<br /> } finally {<br /> em.close();<br /> }<br />}<br /></code><br />Esto es solo si creamos con anterioridad un objeto tipo Jugador para darle persist, ahora en el caso de que tengamos que obtener los datos de algun formulario, podria ser el siguiente codigo:<br /><code><br />public void addJugador() {<br /> EntityManager em=emf.createEntityManager();<br /> try{<br /> EntityTransaction entr=em.getTransaction();<br /> entr.begin();<br /> Jugador newJugador=new Jugador();<br /> jugador.setColor("Azul");<br /> // o jugador.setColor(jTextField.getText()); <br /> jugador.setDescripcion("Este es un ejemplo."); <br /> //o jugador.setDescripcion(jTextField2.getText()); <br /> em.persist(jugador);<br /> entr.commit();<br /> System.out.println("Ingreso exitoso ala base de datos.");<br /> }<br /> catch(Exception e){<br /> System.out.println(e.getMessage());<br /> }<br /> finally{<br /> em.close();<br /> }<br />}<br /></code><br /><br /><span style="font-weight:bold;">Bajas:</span><br />Para poder eliminar un objeto o bien una tupla de la base de datos. <br /><code><br />public void removeJugador(Jugador jugador) {<br /> EntityManager em = getEntityManager();<br /> try{<br /> EntityTransaction entr=em.getTransaction();<br /> entr.begin();<br /> Jugador deleteJugador = em.find(Jugador.class, jugador.getJugador());<br /> em.remove(deleteJugador); <br /> entr.commit();<br /> } finally {<br /> em.close();<br /> }<br />}<br /></code><br />Igual que en el anterior el objeto Jugador que se pasa por parametro puede tomarse de otro lado, un jTable, una Lista, etc. <br /><br /><br /><span style="font-weight:bold;">Cambios:</span><br />Ahora para modifcar informacion podemos hacer lo siguiente: <br /><code><br />public void updateJugador(Jugador jugador) {<br /> EntityManager em = getEntityManager();<br /> try{<br /> EntityTransaction entr=em.getTransaction();<br /> entr.begin();<br /> Jugador changeJugador = em.find(Jugador.class, jugador.getJugador());<br /> changeJugador.setColor("Verde"); <br /> changeJugador.setDescripcion("Una modificacion a la BD."); <br /> entr.commit();<br /> } finally {<br /> em.close();<br /> }<br />}<br /></code><br /><br />Por si lo necesitan, pueden descargar el archivo rar del siguiente <a href="http://rapidshare.com/files/250565161/JPA_Axelandrita.rar">link</a>, seria grandioso ya que ahi podran encontrar lo siguiente: <br /><br />- El script de la tabla de la base de datos que estaremos manipulando.<br />- El mapeo de la tabla al objeto Jugador.java <br />- El archivo que tiene los metodos del ABC. <br /><br /><br />Estoy pensando hacer mini videos tutoriales para poder mostrar un poco mas a detalle esto de JPA, ojala los pueda subir pronto ;) <br /><br /><br />Exitos!!!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-40845882950620762982009-06-14T21:40:00.000-07:002009-06-14T21:44:24.902-07:00Procesadores de LenguajeHoy vamos a tratar un tema importante, ya que nos ayudara a diferenciar a los distintos procesadores de lenguaje, algunos ejemplos de los tipos de procesadores, asi como una pequeña descripcion:<br /><br /><br /><span style="font-weight:bold;">Definicion:</span><br />Los procesadores de lenguaje son todos los programas que a través de una entrada escrita en un lenguaje de programación pueden manipular herramientas de software y hardware de un computador. Estos procesadores de lenguaje se dividen en traductores e intérpretes.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Hg4YA5nLnm0_Hr8HN7moItLerkF8dGIqbSQ_EM1UBak8uD8Z9BPlDL4bgRJnLwtYSwxcoMmYZoNpMb_NhcmsKM-kbaAClwwIBUo2et7L3fJx41rVNc2CYT9lzQ0glQ4qxs4LAywgyJw/s1600-h/Procesadores.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 330px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj6Hg4YA5nLnm0_Hr8HN7moItLerkF8dGIqbSQ_EM1UBak8uD8Z9BPlDL4bgRJnLwtYSwxcoMmYZoNpMb_NhcmsKM-kbaAClwwIBUo2et7L3fJx41rVNc2CYT9lzQ0glQ4qxs4LAywgyJw/s400/Procesadores.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5347410419898201042" /></a><br /><br /><span style="font-weight:bold;">Traductor: </span><br />Un traductor es un programa que recibe un código fuente y lo traduce a otro código, generalmente a un código objeto, sin perder su funcionamiento. <br /><br /><span style="font-weight:bold;">Interpretes:</span><br />Un intérprete es un programa diseñado para ejecutar instrucciones de un código determinado, no genera ningún tipo de código adicional, y es ejecutable. <br /><br /><br />Exitos!!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com2tag:blogger.com,1999:blog-4761820631964101475.post-32609103990139505772009-05-28T16:56:00.000-07:002009-05-28T17:05:28.811-07:00Robot NXTHoy les contare que en la universidad USAC se estan utilizando los robots lego NXT para varios cursos, especificamente en mi carrera es en el curso de Inteligencia Artificial, pero en otras carreras como Mecanica-Electrica tambien en cursos como Legunajes de Programacion Aplicados a Ingenieria Electrica (LPAIE), a continuacion les dejare un video de unos amigos de esta carrera, el proyecto consistio en realizar un laberinto para que un robotlego NXT encuentre la salida: <br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/a8jQF9-Bghw&hl=es&fs=1&color1=0x5d1719&color2=0xcd311b"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/a8jQF9-Bghw&hl=es&fs=1&color1=0x5d1719&color2=0xcd311b" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /><br /><br />Exitos!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-13486599940097224932009-05-16T20:52:00.000-07:002009-05-16T20:59:57.169-07:00Que es GEANT?Luego de una larga ausencia ( esto debido a que los finales y proyectos en la U han sido muy cansados), pero regreso con este tema, GEANT a continuacion una definicion y un comentario personal del tema. <br /><br /><span style="font-weight:bold;">Definicion</span><br />Red Avanzada de comunicación, esta nueva red cambia la forma de hacer investigaciones en Europa, es por ello que la llaman el futuro de las investigaciones, si nos imaginamos comparar resultados de dichas investigaciones realizadas en un solo cuarto versus comparar toda la información de las investigaciones en toda Europa, es un cambio total a la hora de "hacer ciencia", la red es tan amplia que se mencionan algunas investigaciones o tópicos que ya están a disposición de GEANT o GEANT esta a disposición de ellas, entre las que podemos mencionar:<br />- Radioastronomy (VLBI)<br />- Estructuras de Edificios<br />- Taxonomia (Natural History Museum) <br />- Meteorología<br /><br /><span style="font-style:italic;"><span style="font-weight:bold;">Pq se debería de desarrollar una red tipo GEANT en Guatemala?</span></span><br /><br />No se si<span style="font-style:italic;"> "desarrollar"</span> seria la expresión correcta, o si mejor la cambiaríamos a <span style="font-style:italic;">"Implementar" </span>ya que como se menciono tenemos el recurso pero a veces no lo aprovechamos por no saber los beneficios que esta nos trae, creo que el tener una red avanzada no solo seria un lugar donde publicar sino también buscar y comparar resultados u opiniones y siendo un poco mas ambiciosos podríamos comunicarnos con el resto del mundo y dar a conocer a Guate en otra faceta, la de Científica e Investigativa. <br /><br />Exitos!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-91054839980129894112009-04-24T20:01:00.000-07:002009-04-24T20:29:46.577-07:00Algoritmo para pasar un AFD hacer Analizador Lexico<p>Hoy escribire de como se puede mapear un AFD (Automata Finito Deterministico) hacia un analizador Lexico, les dare el algoritmo basico para esto: </p><p><strong>Primer Paso:</strong><br /></p>Realizar el método del árbol, con sus expresiones regulares unidas por or “|” para llegar a su AFD<br /><p><strong>Segundo Paso:</strong><br /></p><p><em>Reglas:</em></p><ul><li>Cada estado se convierte en un Case</li><li>Cada transición se convierte en un If el cual debe estar dentro de un case.</li><li>En cada estado de aceptación, se agrega un else if para aceptar el lexema.</li></ul><p><br /><strong>Tercer Paso:</strong><br /></p><p><em>Variables</em><br /></p><p><em>Estado:</em> el cual nos indicara en que estado nos encontramos. Es el valor que se utiliza en el switch de comparación.<br /><em>Índice:</em> nos dice la posición en la cual nos estamos moviendo dentro de nuestro archivo de entrada.<br /><em>Lexema:</em> será la variable donde estaremos concatenando la información leída del archivo de entrada.<br /><em>Archivo Entrada:</em> el cual contendrá lo que leamos del archivo de entrada.<br /><br /></p><p><strong>Cuarto Paso:</strong></p><p><em>Algoritmo Básico</em></p><p>Inicializar Variables {</p><p> Mientras No sea EOF{</p><p> Incrementamos índice</p><p> Leemos carácter del Archivo de Entrada en la posición índice</p><p> Switch ( estado ) { <br /> En caso que sea 1<br /> Si (carácter es igual a transicion1)<br /> Cambiar estado<br /> Lexema se le agrega el nuevo carácter<br /> Sino Si (carácter es igual a transicion2)<br /> Cambiar estado<br /> Lexema se le agrega el nuevo carácter<br /> ….<br /> Sino Si (carácter es igual a transiciónN)<br /> Cambiar estado<br /> Lexema se le agrega el nuevo carácter<br /> Sino es ninguna de las anteriores<br /> Es error lexico<br /> En caso que sea 2<br /> Si (carácter es igual a transicion1)<br /> Sino Si (carácter es igual a transicion2)<br /> ….<br /> Sino Si (carácter es igual a transiciónN)<br /> En caso que sea 3 y este sea un estado aceptación<br /> Aceptar Lexema asociado a Token<br /> Reiniciar estado<br /> Limpiar el Lexema<br /> Retroceder el indice.<br /><br />}//Fin Switch</p><p> }//Fin Mientras</p><p>}//Fin de Metodo<br /><br /><br /><br /></p><p>Espero les sirva este algoritmo, muy pronto estare subiendo ejemplos de como llegar al AFD y de como implementar el analizador lexico en java. </p><p></p><p>Exitos!!!! </p>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com8tag:blogger.com,1999:blog-4761820631964101475.post-41928934232684477362009-04-17T17:36:00.000-07:002009-04-17T17:57:19.871-07:00Metodología de Mejora de Proceso<p></p><p>Regreso con un tema nuevo, ahora estoy viendo un poco sobre procesos, así que hoy daré las principales fases para modelar un proceso de negocio: <br /></p><br /><p><strong>1. Fase de Inicialización </strong></p><p><em>1.1 Definir Propietario del Proceso: </em>en este punto buscamos a la persona que este mas familiarizada con el mismo, esta persona debe de tener conocimiento sobre todo lo relacionado al proceso. <br /></p><p><em>1.2 Definir Limites y Alcance: </em>en este segundo paso nos toca definir los limites, pero ahora se ven un poco mas que solo los procesos ya que se definen los limites y el alcance de los procesos dentro del negocio, así como definir los del negocio. <br /></p><p></p><p><strong>2. Fase de Definición </strong><br /></p><p><em>2.1 Definir Procesos:</em> ahora nos toca establecer pasos tareas y actividades para establecer prioridades entre procesos y subprocesos, y ver las relaciones entre ellos, para esta fase nos auxiliamos de diagramas de alto nivel, un ejemplo de estos son diagramas de flujo. <br /></p><p></p><p><strong>3. Fase de Control </strong><br /></p><p><em>3.1 Definir Métricas:</em> esto nos ayuda a clasificar al proceso ya que sin medidas no podremos saber si el proceso llego a su objetivo, si es bueno o si es malo. Algunos ejemplos de medidas son: Desecho, Repetición, Conformidad. <br /></p><p><em>3.2 Puntos de Control: </em>esto es para saber si el proceso llego a cumplir metas, algunos ejemplos de puntos de control son: Costo, Tiempo de Respuesta, Variabilidad <br /></p><p><em>3.3 Retroalimentación: </em>aquí lo que hacemos es compartir información, esto con el fin de mejorar aspectos del proceso. <br /></p><br />Exitos Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-38647908376888214482009-04-12T22:47:00.000-07:002009-04-12T22:51:48.577-07:00SCM Versionamiento y Operaciones<p>Hoy otra vez con SCM dando algunos conceptos que se utlizan mucho en este tema como lo es el versionamiento, ademas las operaciones comunes a realizar cuando se utiliza SCM:</p><p><strong>Identificación de Versiones: </strong><br /></p><p>Se necesita saber la intención del cambio para realizar de manera optima el merge al repositorio. <br /></p><ul><li><em>Numérico:</em> es el mas común y se rige de acuerdo a : Mayor.Menor[.Revision[.Build]]<br /></li></ul><ul><li><em>Fecha:</em> uso del esquema año, mes, dia para identificar 20040505</li></ul><ul><li><em>Año Release:</em> únicamente identifica el año, Office 2007</li></ul><ul><li><em>Código Alfanumérico:</em> Códigos que representen algo, Flash MX<br /></li></ul><p><strong>Operaciones Comunes</strong><br /></p><p>A continuacion las operaciones que se pueden realizar comunmente: </p><ol><li><em>Import:</em> agregar archivos al repo</li><li><em>Check out:</em> copia del repo al workspace</li><li><em>Add:</em> agregar un archive al repo</li><li><em>Modificar:</em> modificar un archive localmente</li><li><em>Update:</em> sincronizar la copia local con el repo</li><li><em>Check in Comitt:</em> incorporar una nueva revisión de un archive modificado localmente.<br /><br /><br /></li></ol>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-84476754412006488632009-04-01T22:26:00.000-07:002009-04-01T22:28:36.487-07:00Impacto de eCommerce en GuatePues como ya mencione en un post anterior el concepto de eComerce hoy quiero dar las definiciones de los modelos de este, y ejemplificar algunos basandome en el impacto que se ha visto en guatemala. A continuacion una lista y una breve descripcion:<br /><br /><br /><span style="font-weight:bold;">• Business to Consumer (B2C)</span><br /><br /> Es el modelo de comercio entre las Empresas y los consumidores finales. Se trata de la venta directa a través de Internet.<br /><br /><span style="font-style:italic;"> Ejemplos:</span><br /><br /><a href="http://www.mcd.com.gt/">* MacDonals</a><br /><a href="http://www.misuper.com/">* HiperPaiz</a><br /><a href="http://www.bi.com.gt/">* Bi</a><br /><br /><br /><span style="font-weight:bold;">• Costumer to Costumer (C2C)</span><br /><br /> Es el modelo de comercio entre consumidores individuales. En un sitio web se provee de una plataforma de intercambio desde donde los consumidores finales hacen sus transacciones económicas con otros.<br /><br /><span style="font-style:italic;">Ejemplos: </span><br /><br /><a href="http://www.gpautos.net/">* GpAutos</a><br /><a href="http://www.gubiz.com/">* Gubiz</a><br /><a href="http://www.rapicompra.com/">* RapiCompra</a><br /><br /><br /><span style="font-weight:bold;">• Peer to Peer (P2P)</span><br /><br /> Es el sistema de red en el que los archivos se reparten en diferentes computadoras, los usuarios accedan a éste de uno a otro en vez de por un servidor central. Se da por medio de e-mail o Internet. Su principal caracteristica es q no hay una transaccion monetaria.<br /><br />Actualmente en guatemala no existen sitios de este tipo, para ejemplificar y enteder bien el concepto de P2P, podria mencionar los siguientes <span style="font-style:italic;">Ejemplos: </span><br /><br /><a href="http://free.napster.com/player/">* Napster:</a> servidores q se comunican y hacen intercambio de música.<br /><a href="http://sourceforge.net/projects/aresgalaxy/?abmode=1">* Ares Galaxy</a><br /><a href="http://www.emule-project.net/home/perl/general.cgi?l=17&rm=download">* eMule</a><br /><br /><br /><span style="font-weight:bold;">• mComerce (P2P)</span><br /><br /> Este modelo de comercio nace para los entornos de Internet móvil (teléfonos, PDA, Ipod , Iphone …), utiliza el teléfono y otros dispositivos móviles para conectar al usuario con la web, fomentando las ventas de muchos productos, sobre todo tonos, juegos, imágenes, música, videos, etc.<br /><br /><span style="font-style:italic;">Ejemplos:</span><br /><br /><a href="http://interacel.com/?page=index&c=GT">* Interacel Guatemala</a><br /><a href="http://www.claro.com.gt/">* Claro </a> (Nueva tecnologia 3G)<br /><a href="http://www.tigo.com.gt/">* Tigo </a><br /><br /><br /><br /><span style="font-weight:bold;">En Conclusion:</span><br /><br /><span style="font-style:italic;">Existen muchos modelos más, pero he detallado los más importantes y conocidos, aunque todos tienen una forma de incorporarse e impactar el desarrollo de eComerce siento que gracias al aumento de los dipositivos moviles las ventas por este modelo seran el futuro.<br /><br />Creo que es dificil poner a cierta empresa en un solo modelo, ya que presta varios servicios que limitarla a un modelo, seria limitar a dicha empresa, un ejemplo puede ser el Banco Industrial que no solo da sus servicios bancarios en linea, sino que provee de mensajeria a moviles para informar las transacciones realizadas a una cuenta. Otra seria Claro que aunque manda mensajes de promociones a los moviles, tambien deja hacer pagos de facturas en linia. Estos solo son ejemplos de como un modelo no puede encapsular a una empresa.</span>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com2tag:blogger.com,1999:blog-4761820631964101475.post-55600893556882516322009-03-28T13:38:00.000-07:002009-03-28T13:59:37.166-07:00Wireless Broadcom 802.11b/g en Ubuntu 8.10Pues hoy quiero compartir como hacer para que la tarjeta wireless funcione en Ubuntu 8.10, en mi caso es una <span style="font-weight: bold;">Broadcom 802.11b/g</span> la cual tiene licencia privativa para los drivers, esto es un problema si estas en Ubuntu.<br /><br />Para solucionar este problema se ha creado un driver generico, este hace funcionar tu tarjeta sin ningun problema.<br /><br />Pasos a seguir:<br />1. Sistema<br />2. Administracion<br />3. Gestor de Paquetes Synaptic<br />4. Buscamos el paquete <span style="font-weight: bold;">b43-fwcutter</span><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhxN1quvcCGqk4BtXOYrG1S7lsH9C2bbKephapC7dzLhtMwOqda6BK6b3TTKVoKFLOy0dTTJG-wz7o3_YdY3WP0Ujpiu-vbDYnXRoDVPhkpp4D4wMa8LzabhnSZz66S0U5y2EYCdKo6c/s1600-h/bcm43.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 240px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhfhxN1quvcCGqk4BtXOYrG1S7lsH9C2bbKephapC7dzLhtMwOqda6BK6b3TTKVoKFLOy0dTTJG-wz7o3_YdY3WP0Ujpiu-vbDYnXRoDVPhkpp4D4wMa8LzabhnSZz66S0U5y2EYCdKo6c/s320/bcm43.png" alt="" id="BLOGGER_PHOTO_ID_5318344538557152530" border="0" /></a><br />5. Aplicamos Cambios<br />6. Reiniciamos<br /><br />Listo, mi wireless inicio a funcionar :P<br /><br /><br />Exitos!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-17872464617682362952009-03-27T19:30:00.000-07:002009-03-28T14:17:10.914-07:00Manejo de Archivos en Java<p>Hoy quiero compartir algunos conceptos basicos para el manejo de archivos en java : </p><p></p><p><strong>Los fundamentos de flujos</strong><br /></p><p>Si se desea procesar los datos en un archivo existente, se debe:<br /><br />1. Abrir el archivo<br />2. Leer o introducir los datos en las variables, un elemento a la vez<br />3. Cerrar el archivo cuando terminemos de trabajar con el.<br /><br />Si se desea transferir algunos datos de ciertas variables a un archivo, se debe:<br /><br />1. Abrir el archivo<br />2. Extraer o escribir nuestros elementos en la secuencia requerida.<br />3. Cerrar el archivo cuando terminemos de trabajar con el.<br /><br /><br />Entonces un archivo es una serie de líneas de texto, y cada una compuesta por un número de caracteres. Cada línea termina con un carácter de fin de línea (\n)<br /><br /><br /><br /><strong>Las clases de E/S en Java</strong><br /><br />Las clases de flujos están organizadas en forma jerárquica. A continuación las clases mas útiles.<br /><br />1. Reader<br />1.1 BurreredReader<br />1.2InputStreamReader<br />1.2.1 FileReader<br /></p><p>2. Writer<br />2.1 PrintWriter<br />2.1.1 FileWriter<br /><br /><br /><strong>Las clases BufferReader y PrintWriter</strong><br /><br />Para leer y escribir líneas de texto, se utilizan:<br /><br />* El método readLine de BufferedReader.<br />* Los métodos print y println de PrintWriter.<br /><br /><br /><strong>Agloritmo a seguir para la Salida de Archivos</strong><br /><br /><em>ArchivoDemo1.java<br />Abre el archivo “textoSalida.txt”<br />Obtiene una cadena del area de texto<br />Escribe la cadena en el archivo<br />Cierra el archivo<br /></em></p><p><span style="color: rgb(51, 51, 153);"><span style="font-family:courier new;"><arrayc exception="" error="" al="" escribir="" span=""></arrayc></span><span style="color: rgb(51, 51, 51);"><strong>Algoritmo archivo de Salida de Archivos</strong><br /><br /><em>ArchivoDemo2.java<br />Introduce un nombre de archivo proveniente del campo de texto.<br />Abre un archivo con ese nombre<br />Introduce las lineas del archivo y las anexa al área de texto siempre y cuando no se llegue al fin del archivo.<br />Cierra el Archivo.<br /></em></span></span></p><em></em><p><span style="color: rgb(0, 0, 0);"><span style="font-family:lucida grande;"><br /></span></span></p><p><span style="color: rgb(0, 0, 0);"><span style="font-family:lucida grande;">Hice tres clases en java para el manejo de archivos, ArchivoDemo1.java; ArchivoDemo2.java; FileDialogDemo.java ; Por aqui les dejo el link de descarga:<span style="color: rgb(102, 0, 0);"> </span><a style="color: rgb(255, 0, 0);" href="http://rapidshare.com/files/214693689/Manejo_Archivos_Java.tar.gz.html">Manejo Archivos Java</a><br /></span></span></p><p><span style="color: rgb(0, 0, 0);"><span style="font-family:lucida grande;"><br /></span></span></p><p><span style="color: rgb(0, 0, 0);"><span style="font-family:lucida grande;">Exitos!!</span></span></p><span style="font-family:courier new;"><span style="color: rgb(51, 51, 153);"><br /><br /></span></span><p></p>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com4tag:blogger.com,1999:blog-4761820631964101475.post-22232487179412245762009-03-18T21:42:00.000-07:002009-03-18T21:45:39.961-07:00Compilador Vs IntérpreteHoy escribire algunas diferencias entre un compilador y un intérprete, las cuales a mi parecer son:<br /><br />• Un programa compilado puede funcionar por si solo mientras que un código traducido por un intérprete no puede funcionar sin éste.<br /><br />• Un programa traducido por un intérprete puede ser ejecutado en cualquier máquina ya que, cada vez que se ejecuta el intérprete, tiene que compilarlo.<br /><br />• Un archivo compilado es mucho más rápido que uno interpretado.Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-82343349966162474742009-03-15T20:16:00.000-07:002009-03-15T20:30:00.774-07:00What Drives Design?<p>Hoy dare un resumen de una presentacion que encontre en InfoQ la cual se titula <strong><a href="http://www.infoq.com/presentations/What-Drives-Design-Rebecca-Wirfs-Brock">What Drives Design?</a></strong><strong> </strong>la expositora fue Rebecca Wirfs-Brock, y da un enfoque sobre que deberia dirigir el diseño de software, se enfoca principalmente en RDD, aunque se mencionan otros.... a continuacion una sintesis del video:</p><p align="center"><span style="font-size:130%;">What Drives Design</span></p><p align="justify"><strong>Definicion de Driven:</strong> motivado para tener o necesitar una compulsiva calidad<br /><br /><strong><span style="color:#000066;">RDD Responsability Driven Design</span></strong><br />Para esta forma de manejar el diseño, existen métodos abstractos para construir en base a bloques: <br />1) Add: un Objeto </p><p align="justify">2) Remove: Un objeto </p><p align="justify">3) Do: un Bloque<br /><br /><span style="color:#000066;"><strong>Principios de RDD</strong></span></p><ul><li align="justify"><em>Maximizar Abstracción: </em>distinción entre la data y el comportamiento<br /></li><li align="justify"><em>Comportamiento Distribuido: </em>control delegado en arquitectura<br /></li><li><em>Flexibilidad:</em> objetos que pueden ser cambiantes</li></ul><p><span style="color:#000066;"><strong>Receta para diseñar sw complejo:</strong></span></p><p>- Identificar funcionalidad e info relacionada: Definir num objetos y componentes<br />- Decidir que funcionalidad e información pertenece a cada elemento<br />- Decidir que elementos se comunicarán con msj <br />- Diseñar clases que cumplan con lo anterios<br /><br /> <br /><em>Nota: Contexto es importante para diseñar con responsabilidad RDD </em><br /><br />En RDD Diseño de Construcciones, se pueden clasificar algunos elementos como lo son:</p><ul><li><strong>Role</strong>: set de responsabilidades</li></ul><ul><li><strong>Responsabilidad: </strong>obligación por cumplir una tarea<br /></li></ul><ul><li><strong>Colaboración:</strong> interacción entre elementos de diseño (Objetos / Roles)<br /></li></ul><ul><li><strong>Contrato:</strong> acuerdo de los términos de colaboración<br /></li></ul><p>El Modelo de Responsabilidad, Es una demostración de cómo un grupo de componentes u objetos trabajando juntos por una tarea especifica. <br /><br /><span style="color:#000066;"><strong>Estereotipos de Roles</strong></span></p><p>(cada uno tiene una responsabilidad)</p><p><em><strong>Information Holders : </strong></em>conocen y dan a conocer info<br /><strong><em>Structurer:</em> </strong>mantiene relación entre info y objetos<br /><em><strong>Interfacer:</strong> </em>Traduce información y peticiones<br /><em><strong>Service Provider: </strong></em>Realiza trabajo en demanda<br /><em><strong>Coordinator: </strong></em>realiza eventos mecánicos (semáforo) <br /><em><strong>Controller: </strong></em>toma decisiones q afectan otras acciones u eventos (policía)<br /><br /><em>Nota: Tanto el controller como el coordinator, son controles de diseño </em><br /></p><p><strong><span style="color:#000066;">XX- Driven Design </span></strong></p><p><span style="color:#000000;">Algunas caracteriticas de elementos que pueden guiar el diseño son: </span></p><p><strong>FDD Feature Driven Design (Feature by Feature )</strong><br /> Walktrhough -> Desing -> Design Inspection -> Code -> Code Inspection<br /> Diseña la primera semana, se codifica en la segunda <br /></p><p><strong>TDD Test Driven Design (Stroy by Story)</strong><br /> Text -> Code -> Run Test -> Code pass the test<br /> Diseño va evulucionando mediante historias <br /></p><p><strong>BDD Behaivor Driven Design</strong><br /> Dar un contexto (Give a context)<br /> Cuando ocurre un evento (When a event ocurre)<br /> Luego asegura resultados (Then ensure some outcomes)<br /></p><p><strong>DDD Domain Driven Design</strong><br /> Objeto Entidad<br /> Valor del Objeto <br /></p><p><strong>CDD Contract Driven Design</strong><br /> Aceptar valores<br /> Retornar valores<br /> Errores de excepcion<br /> Pre y Post condiciones <br /></p><p><strong>RDD Resposability Driven Design</strong><br /> Contactos como interface del diseño<br /><br /><br /></p>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-62364216983576678882009-03-11T10:26:00.001-07:002009-03-11T10:31:35.177-07:00Elementos de SCM<p>Algunos elementos del SCM son: </p><p><strong>Repositorio:</strong> es un almacenamiento centralizado de datos, en forma de árbol filesystem, con jerarquía de directorios. Acciones son: Conectar, crear, escribir, entre otras. <br /></p><p><strong>Area Trabajo: </strong>Workspace, lugar privado de trabajo para el desarrollador local el cual se sincroniza con el repositorio. <br /></p><p><strong>Codeline: </strong>es una progresión del conjunto de artefactos o fuentes del sw que cambian en el tiempo. </p><p><strong>Revisión:</strong> cada cambio en un archivo o artefacto se genera una revisión. <br /></p><p><strong>Snapshot: </strong>son varias revisiones de cada componente en el codeline.</p><p><strong>Configuración:</strong> es una colección de revisiones de cada componente.<br /></p><p><strong>Label:</strong> identifica o marca versiones (configuraciones) como especiales.<br /></p><p><strong>Politica: </strong>definen el propósito del codeline y reglas de cuando y como se pueden hacer cambios. <br /></p><strong>Branch:</strong> es una revisión del archivo que se usa la versión del trunk (o rama principal) como punto de inicio y evoluciona de forma independiente. <br /><p><strong>Release:</strong> Conjunto de revisiones de diferentes archivos que conforman en conjunto un producto de sw q se libera. <br /></p> <br /><br />Exitos!!! Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-3591466437580853782009-03-06T18:01:00.000-08:002009-03-06T22:01:02.216-08:00MySQL ErrorHoy quiero dar la solucion a un error con el que me tope intentando hacer una llave foranea dentro de una tabla en MySQL.<br /><br />Los cambos eran estos:<br /><span style="color:#333333;"><br /></span><span style="font-family:courier new;"><span style="color:#333333;"><span style="font-style:italic;">ALTER TABLE `final_ag`.`horario` ADD CONSTRAINT `FK_horario_2` FOREIGN KEY `FK_horario_2` (`dia`)<br />REFERENCES `dias` (`id`)<br />ON DELETE RESTRICT<br />ON UPDATE RESTRICT;</span></span></span><br /><p></p><p>Pero salio el error MySQL Error 1005, y me puse a ver cual podria ser el error y encontre que mi tabla<strong> dias</strong> era MyISAM, y mi tabla <strong>horario</strong> era InnoDB, por lo cual tube que cambiar mi tabla dias para que siguiera la misma estructura de las demas tablas:<br /></p><p><em><span style="font-family:courier new;"><span style="color:#333333;">ALTER TABLE `final_ag`.`dias` ENGINE = InnoDB;</span></span></em></p><p>Esto me dio la solucion y logre hacer mi FK sin ningun inconveniente. </p><p>Exitos!!</p>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-486897553522190582009-03-04T11:03:00.000-08:002009-03-04T11:07:36.311-08:00Conceptos Basicos de Sistemas Operativos<span style="font-weight:bold;">Detección y Recuperación</span> <span style="font-style:italic;">Consiste en condicionar el sistema sin verificaciones adicionales, de modo que al suceder un interbloqueo se detecte, avise al usuario y se recupere del interbloqueo</span><br /><br /><span style="font-weight:bold;">Prevención</span> <span style="font-style:italic;">Consiste en condicionar el sistema con una serie de reglas estáticas, para evitar al menos una de las condiciones de interbloqueo, por lo que este nunca sucederá</span><br /><br /><span style="font-weight:bold;">Predicción</span> <span style="font-style:italic;">Consiste en condicionar el sistema para revisar el estado del mismo cuando cualquier proceso realice una petición de recursos, de modo que nunca se interbloquee</span><br /><br /><span style="font-weight:bold;">Fallo de Pagina </span> <span style="font-style:italic;">Es el evento que consiste en acceder una pagina que no se encuentra en memoria y se tiene que buscar en el espacio de disco duro</span><br /><br /><span style="font-weight:bold;">Hiperpaginacion </span> <span style="font-style:italic;">Es el evento que consiste en acceder en forma excesiva paginas que no se encuentran en memoria y se tiene que buscar en el disco duro.</span><br /><br /><span style="font-weight:bold;">Reemplazo Optimo </span> <span style="font-style:italic;">Es la estrategia de reposición de pagina que consiste en reemplazar la pagina que no se va a utilizar durante el tiempo mas largo</span><br /><br /><span style="font-weight:bold;">Menos frecuente usado</span> <span style="font-style:italic;">Es la estrategia de reposición de paginas que consiste en reemplazar la pagina cuyo contador de accesos a la misma tiene el menor valor</span><br /><br /><span style="font-weight:bold;">Localidad Espacial</span> <span style="font-style:italic;">Es el principio que consiste en considerar alta la probabilidad de que un evento sucederá en un espacio cercano, dado que sucedió cerca.</span><br /><br /><span style="font-weight:bold;">Localidad Temporal</span> <span style="font-style:italic;">Es el principio que consiste en considerar alta la probabilidad de que un evento sucederá en un tiempo cercano, dado que sucedió hace poco tiempo.</span><br /><br /><span style="font-weight:bold;">Kernel monolítico</span> <span style="font-style:italic;">Es el tipo de kernel que tiene todos sus componentes en el mismo espacio de memoria y para agregar una nueva funcionalidad, se de recompilar por completo.</span><br /><br /><span style="font-weight:bold;">Kernel modular</span> <span style="font-style:italic;">Es el tipo de kernel que, aunque tiene todos sus componentes en el mismo espacio de memoria, se le puede agregar funcionalidades dinámicamente.</span><br /><br /><span style="font-weight:bold;">Microkernel</span> <span style="font-style:italic;">Es el tipo de kernel que tiene sus componentes en distintos espacios de memoria, los cuales se comunican entre si por medio de colas de mensajes.</span><br /><br /><span style="font-weight:bold;">Interrupciones</span> <span style="font-style:italic;">Es el mecanismo de comunicación con dispositivos donde el adaptador interrumpe al procesador para que transfiera los datos del dispositivo a memoria</span><br /><br /><span style="font-weight:bold;">Proyección en puertos</span> <span style="font-style:italic;">Es el mecanismo de comunicación con dispositivos donde el adaptador interactúa con el procesador a través de puertos donde se lee y escribe</span><br /><br /><span style="font-weight:bold;">DMA </span> <span style="font-style:italic;">Es el mecanismo de comunicación con dispositivos que consiste en que el adaptador interactúa directamente con la memoria para leer y escribir del dispositivo.</span><br /><br /><span style="font-weight:bold;">Independencia de los dispositivos</span> <span style="font-style:italic;">Es el principio que especifica que el API del sistema operativo debe permitir manejar todos los dispositivos con el mismo conjunto de instrucciones<br /></span><br /><span style="font-weight:bold;">Anomalía Belady</span> <span style="font-style:italic;">Es el fenómeno en el que, con la misma secuencia de accesos de pagina no hayan fallos de pagina, si se aumenta el numero de marco de pagina</span><br /><br /><span style="font-weight:bold;">Paginación por Demanda</span> <span style="font-style:italic;">Es la estrategia de búsqueda que consiste en subir a memoria, las paginas de proceso conforme los accesos del mismo producen las fallas</span><br /><br /><span style="font-weight:bold;">Paginación Anticipada</span> <span style="font-style:italic;">Es la estrategia de búsqueda de pagina que consiste en subir a memoria, cuando el proceso se despierta, su conjunto de paginas que el proceso usara en el futuro.</span><br /><br /><span style="font-weight:bold;">Conjunto de trabajo </span> <span style="font-style:italic;">Es el conjunto de paginas que un proceso acceso en determinado periodo de tiempo<br /></span><br /><span style="font-weight:bold;">FIFO / PEPS</span> <span style="font-style:italic;">Es la política de reemplazo de paginas que adolece del problema de la anomalia Belady</span><br /><br /><span style="font-weight:bold;">Menos recientemente Usado</span> <span style="font-style:italic;">Es la política de reemplazo de paginas que resuelve el problema de la anomalia Belady<br /></span>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-41329149119208297382009-03-01T19:11:00.000-08:002009-03-01T19:16:14.147-08:00Lenguajes Formales de Programacion (Intro)Hoy quiero darles una intro a lo que es Lenguajes Formales de Programacion, dando la definicion y ejemplos del lenguaje Natural, Formal y de Programacion:<br /><br /><br /><span style="font-weight:bold;">Lenguaje Natural</span><br /><br /><span style="font-weight:bold;"><span style="font-style:italic;">Definición:</span></span><br /><br /> Establece comunicación entre los seres humanos, este tipo de lenguajes se dan por enriquecimiento progresivo y continuo (evolución del lenguaje), ya que tiene ambigüedad acepta polisemantica. Una característica es que no puede darse una formalización completa. <br /><br /> En general un lenguaje natural es el que ha evolucionado con el paso del tiempo para fines de la comunicación humana, y continúan su evolución sin tomar en cuenta reglas gramaticales formales, cualquier regla se desarrolla después de que sucede el hecho, en un intento de explicar y no determinar la estructura del lenguaje. <br /><br /><span style="font-style:italic;">Ejemplo:<br /> Español<br /> Ingles<br /> Alemán <br /> Etc. <br /></span> <br /><br /><br /><span style="font-weight:bold;">Lenguaje Formal</span><br /><br /><span style="font-style:italic;"><span style="font-weight:bold;">Definición:</span></span><br /><br /> Se utiliza para expresar situaciones dentro del área científica. Algunas características que podemos mencionar es que esta perfectamente definido y no puede tener ambigüedades, se desarrolla con teorías preestablecidas y puede llegar a una completa formalización lo que nos permite poderlo construir computacionalmente. <br /><br /> Este lenguaje esta definido por reglas preestablecidas, es decir que primero se determina al lenguaje y no se intenta explicarlo. Gracias al uso de reglas es posible construir traductores computarizados eficientes para los lenguajes de programación a la vez que la falta de estas reglas dificulta la construcción del traductor como lo es el caso del lenguaje natural.<br /><br /><span style="font-style:italic;">Ejemplo: <br /> Lenguajes de Programación<br /> Lenguajes Matemáticos (Algebra) <br /></span><br /><br /><br /><span style="font-weight:bold;">Lenguaje de Programación</span><br /><br /><span style="font-weight:bold;"><span style="font-style:italic;">Definición:</span></span><br /><br />Un lenguaje de programación es una técnica estándar de comunicación que permite expresar las instrucciones que han de ser ejecutadas en una computadora. Consiste en un conjunto de reglas sintácticas y semánticas que definen un lenguaje informático.<br /><br />Un programa escrito en un lenguaje de programación necesita pasar por un proceso de compilación, es decir, ser traducido al lenguaje de máquina, o ser interpretado para que pueda ser ejecutado por el ordenador. También existen lenguajes de scripting que son ejecutados a través de un intérprete y no necesitan compilación.<br /><br />Exitos!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com1tag:blogger.com,1999:blog-4761820631964101475.post-34756916855919589392009-02-27T16:05:00.000-08:002009-02-27T16:08:00.359-08:00SCM Software Configuration Managment<span style="font-weight:bold;">Definición: </span> <span style="font-style:italic;">Identifica y controla la configuración, reportes y revisiones asi como la administración de builds y procesos. </span><br /><br />Las practicas SCM definen como una empresa construye y libera sw, asi como los cambios dentro del ciclo de desarrollo.<br /><br /><span style="font-weight:bold;">Algunos elementos son:</span><br /><span style="font-style:italic;">Identificación Configuración: </span>identifica componentes, reflejando la estructura <br /><span style="font-style:italic;">Control de Configuración:</span> controla cambios, liberaciones del producto mediante codeline<br /><span style="font-style:italic;">Reportes estado Actual:</span> registro y reportes tanto cambios como solicitudes d cambios<br /><span style="font-style:italic;">Auditoria y Revisión:</span> validación de producto y consistencia componentes.<br /><br /><span style="font-weight:bold;">Problemas comunes que resulve SCM:</span><br />• Pobre integridad release<br />• Falta comunicación<br />• Dificultad para determinar el estado del proy<br />• Tareas redundantes están propensas a error si no están automatizadas<br /><br /><span style="font-weight:bold;">Actividades Típicas en SCM</span><br />• Almacena asegura artefactos de sw<br />• Registrar historia de cambios Que? Quien? Cuando? Porque?<br />• Provee flujo de Trabajo (Seguimientos)<br />• Administración de configuraciones (Build, release e Integración)<br />• Aislar a los desarrolladores<br />• Control de procesos<br /><br />Exitos!!!Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-40106875499119984332009-02-23T16:56:00.000-08:002009-02-23T17:02:21.622-08:00eCommerce<span style="font-weight:bold;">Definicion eCommerce</span><br />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. <br /><br />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.<br /><br /><span style="font-weight:bold;">Tiendas en Linea mas populares:</span><br /><br />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:<br /><br />-<a href="http://www.ebay.com">eBay</a><br />-<a href="http://www.amazon.com">Amazon</a><br />-<a href="http://www.target.com/">Target</a><br />-<a href="http://www.walmart.com/">Wall Mart</a><br />-<a href="http://www.bestbuy.com/">Best Buy</a><br /><br />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.<br /><br /><span style="font-weight:bold;">¿Cuales son los productos mas vendidos?</span><br /><br />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:<br /><br />- Libros<br />- Ropa y Accesorios<br />- DVD y Juegos<br />- Tiket de vuelo<br />- Equipo electronico<br /><br />A continuacion la grafica de las estadisticas, dando cada item y su porcentaje de venta:<br /><br /><br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1_kSv51hopm-3mPH4DnHbZ3MScDx_uvdovtlqYZ7th3_srlKzITeYndO0Kw9y4_rqPqa69FG0kKG4ZMafVu6Oy-vYCdA2RXZhQTLG-fUUcTwWrgvZNsUFfnduN7Q-gQVy3U-Xy7Za8P0/s1600-h/ecommerce.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 347px; height: 400px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh1_kSv51hopm-3mPH4DnHbZ3MScDx_uvdovtlqYZ7th3_srlKzITeYndO0Kw9y4_rqPqa69FG0kKG4ZMafVu6Oy-vYCdA2RXZhQTLG-fUUcTwWrgvZNsUFfnduN7Q-gQVy3U-Xy7Za8P0/s400/ecommerce.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5306162387245282162" /></a><br /><br /><br /><span style="font-weight:bold;">En Conclusion:</span><br /><span style="font-style:italic;">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.</span>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-68213780001290067662009-02-22T15:24:00.000-08:002009-02-23T16:54:07.271-08:00How to install SVN (Subversion) in Ubuntu 8.10Esta es una pequeña guía que mustra los pasos a seguir para instalar y configurar Subversion y Websvn en Ubuntu 8.10 <br /><br /><span style="font-weight:bold;">Subversion packages</span><br /><br />Como administradores o root debemos de ingresar los siguientes comandos, para instalar los paquetes necesarios para la configucacion de SubVersion:<br /><br /> <span style="font-style:italic;"># apt-get update<br /> # apt-get install subversion<br /> # apt-get install libapache2-svn <br /></span><br /><br />El paquete libapache2-svn instalará el módulo de Apache WebDAV subversión. <br /><br /><br /><span style="font-weight:bold;">Crear Repositorios</span><br /><br />A continuacion mostraremos como trabajar los repositorios, primero ejecutamos los siguientes comandos: <br /><br /><span style="font-style:italic;"> # mkdir /var/svn-repos/<br /> # svnadmin create --fs-type fsfs /var/svn-repos/practica1 <br /></span><br /><br />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:<br /><br /><span style="font-style:italic;"> # groupadd subversion<br /> # addgroup ale subversion<br /> # chown -R www-data:subversion /var/svn-repos/*<br /> # chmod -R 770 /var/svn-repos/*<br /></span><br /><br />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:<br /><br /><span style="font-style:italic;"> $ sudo svn mkdir --message="Inicializando los directorios..." \<br /> file:///var/svn-repos/trunk \<br /> file:///var/svn-repos/tags \<br /> file:///var/svn-repos/branches<br /></span><br /><br /><br /><span style="font-weight:bold;">Configurando Subversion WebDAV</span><br /><br />Normalmente, apache estará activado por defecto, para asegurarse de que este es el caso tecleamos los siguientes comandos:<br /><br /><span style="font-style:italic;"> # a2enmod dav<br /> # a2enmod dav_svn </span><br /><br />Ahora actualizamos los usuarios para el archivo de accesos de nuestro repositorio<br /><br /><span style="font-style:italic;"> # htpasswd -c /etc/apache2/dav_svn.passwd ale</span><br /><br />Ahora hay q modificar el archivo /etc/apache2/mods-available/dav_svn.conf con la sigiente informacion: <br /><span style="font-style:italic;"><br /> "< Location /practica1 ><br /> DAV svn<br /> SVNPath /var/svn-repos/practica1<br /> AuthType Basic<br /> AuthName "Subversion Repository"<br /> AuthUserFile /etc/apache2/dav_svn.passwd<br /> Require valid-user<br /> < /Location >"<br /></span><br /><br /><br /><br /><span style="font-weight:bold;">Lo Ultimo </span><br /><br />Por ultimo reseteamos apache para verlos resultados:<br /><br /><span style="font-style:italic;"> # /etc/init.d/apache2 restart</span><br /><br />Y Listo!!!! tenemos nuestro primer repositorio configurado en SVN, para poder acceder a el unicamente en nuestro navegador deberiamos teclear: <br /><br /><span style="font-style:italic;">http://localhost/practica1/</span> <br /><br />y veremos nuestro repo!!!!!!<br /><br />Exitos!!! :PAxelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com2tag:blogger.com,1999:blog-4761820631964101475.post-3573925651844707692009-02-16T17:03:00.000-08:002009-03-04T11:06:02.935-08:00Clasificación de Lenguajes de ProgramaciónLa clasificacion que propongo es por el nivel de trabajo de los lenguajes de programacion: <br /><br /><span style="font-weight:bold;">Lenguaje máquina</span><br />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.<br /><br /><span style="font-weight:bold;">Lenguaje de bajo nivel</span><br />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).<br /><br />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.<br /><br /><span style="font-weight:bold;">Lenguaje de alto nivel</span><br />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.<br /><br />Los lenguajes de alto nivel, también denominados lenguajes evolucionados, surgen con posterioridad a los anteriores, con los siguientes objetivos, entre otros:<br /><UL><br /><LI>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.<br /><LI>Aproximarse al lenguaje natural, para que el programa se pueda escribir y leer de una forma más sencilla.<br /><LI>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.<br /></UL><br />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.Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com0tag:blogger.com,1999:blog-4761820631964101475.post-89657479875476368182009-02-15T16:36:00.000-08:002009-02-15T16:39:17.366-08:00Los Protocolos en el Modelo TCP/IPPrimero las siglas del modelo <span style="font-weight:bold;">TCP/IP</span> significan: <em>"Protocolo de control de transmisión/Protocolo de Internet"</em> Asi que en este post quiero mostrar que protocolos estan asociados a las diferentes capas del modelo TCP/IP.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBgvmbfrZZfJcVElvcTIV8JKloqw7M3QD2DSjKabY4AZj5tJBCNBifcVNuOgGhyphenhyphenWKQBJbHo-YMB6057Q7hYE_CrcGZSb0Z89kDEh0LY1bYdgbrPiKkkt-Mf8Kgjai040tMUTcaaa4fPNE/s1600-h/TCP-IP+Protocolos.JPG"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 400px; height: 236px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBgvmbfrZZfJcVElvcTIV8JKloqw7M3QD2DSjKabY4AZj5tJBCNBifcVNuOgGhyphenhyphenWKQBJbHo-YMB6057Q7hYE_CrcGZSb0Z89kDEh0LY1bYdgbrPiKkkt-Mf8Kgjai040tMUTcaaa4fPNE/s400/TCP-IP+Protocolos.JPG" border="0" alt=""id="BLOGGER_PHOTO_ID_5303187914333197858" /></a><br /><br />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:<br /><br />• HTTP <em>(Aplicacion)</em><br />Este es un protocolo de transferencia de hipertexto por sus siglas en ingles <em>HyperText Transfer Protocol</em>.<br /><br />• FTP <em>(Aplicacion)</em><br />Es un protocolo de transferencia de archivos entre sistemas conectados a una red, su arquitectura es Cliente/Servidor.<br /><br />• TCP <em>(Transporte)</em><br />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. <br /><br />• UDP <em>(Transporte)</em><br />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.<br /><br />• IP <em>(Internet)</em><br />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.<br /><br />• TOKEN RING <em>(Enlace)</em><br />Este protocolo se apoya en el estándar IEEE 802.5. Quedo en desuso por la popularización de Ethernet. <br /><br />• PPP <em>(Enlace)</em><br />Este protocolo es más complejo y originalmente fue diseñado como un protocolo separado que funcionaba sobre otro nivel de enlace<br /><br />• MEDIOS FISICOS <em>(Fisico)</em><br />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.<br /><br /><br /><strong>En Conclusion:</strong><br /><em>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. </em>Axelandrahttp://www.blogger.com/profile/07422674755458023393noreply@blogger.com1