<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-4471449534293026557</id><updated>2012-02-16T00:27:09.523-08:00</updated><category term='c#'/><category term='eventos'/><category term='programacion'/><category term='sonido'/><category term='tecnologia'/><category term='reconocimiento del habla'/><category term='personales'/><category term='secicomp'/><category term='java'/><category term='noticias'/><category term='base de datos'/><category term='procesamiento de imagenes'/><title type='text'>Jhon Alvarez Borja</title><subtitle type='html'>Bch. en Ciencia de la Computación</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>15</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-1036584381449337388</id><published>2009-01-06T07:23:00.000-08:00</published><updated>2009-01-06T10:28:25.447-08:00</updated><title type='text'>OpenCV</title><content type='html'>Bueno, para quienes le interese toda la parte de procesamiento de imágenes y el uso eficiente de recursos en el computador con el lenguaje de programación C++, les presento un pequeño tutorial introductorio al manejo de OpenCV, una librería OpenSource muy potente y muy utilizada.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;Para una imagen proporcionada por el usuario [escogida aleatoriamente de la web] podemos observar los siguientes resultados: &lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;Imagen Original&lt;/center&gt;&lt;div&gt;&lt;/div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288245514928886786" border="0" alt="" src="http://4.bp.blogspot.com/_O1NmM8vPcUg/SWOfRwpjlAI/AAAAAAAAC1I/3w4a1HefI4s/s320/Imagen1.png" /&gt;&lt;br /&gt;&lt;center&gt;Imagen en escala de Grises&lt;br /&gt;&lt;/center&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288245998278159522" border="0" alt="" src="http://1.bp.blogspot.com/_O1NmM8vPcUg/SWOft5RALKI/AAAAAAAAC1Q/DKARvKP-Co8/s320/Imagen2.png" /&gt;&lt;br /&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;Imagen binarizada en RGB&lt;/center&gt;&lt;div&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288246499861684274" border="0" alt="" src="http://3.bp.blogspot.com/_O1NmM8vPcUg/SWOgLFz1YDI/AAAAAAAAC1Y/5HADbQZXP8g/s320/Imagen3.png" /&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;center&gt;Imagen Binarizada en escala de grises&lt;/center&gt;&lt;img style="TEXT-ALIGN: center; MARGIN: 0px auto 10px; WIDTH: 320px; DISPLAY: block; HEIGHT: 302px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5288246627528840258" border="0" alt="" src="http://3.bp.blogspot.com/_O1NmM8vPcUg/SWOgShaDlEI/AAAAAAAAC1g/v63YD3tbSrM/s320/Imagen4.png" /&gt;&lt;br /&gt;Para ver el tutorial sigamos el siguiente link: &lt;a href="http://my.opera.com/jalvarezborja/blog/introduccion-a-opencv"&gt;http://my.opera.com/jalvarezborja/blog/introduccion-a-opencv&lt;/a&gt;, en donde encontraremos ademas los pasos para configurar el OpenCV con Dev-Cpp, una guia con las funciones principales y el codigo fuente de este programa.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Espero que les sea util esta información.&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-1036584381449337388?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/1036584381449337388/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=1036584381449337388' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1036584381449337388'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1036584381449337388'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2009/01/opencv.html' title='OpenCV'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_O1NmM8vPcUg/SWOfRwpjlAI/AAAAAAAAC1I/3w4a1HefI4s/s72-c/Imagen1.png' height='72' width='72'/><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-4675967907772931079</id><published>2008-12-15T05:22:00.000-08:00</published><updated>2008-12-15T07:40:38.306-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><title type='text'>Reproduccion MP3 en Java</title><content type='html'>Bueno, a quien no se le ha ocurrido tratar de reproducir sonido en Java, o tratar de construir un reproductor MP3 en este lenguaje tan popular&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 390px; CURSOR: hand; HEIGHT: 333px; TEXT-ALIGN: center" alt="" src="http://www.subirimagen.es/08/0312/95782/mascota.gif" border="0" /&gt;&lt;/p&gt;&lt;p&gt;Lo que vamos a aprender es muy sencillo, solo basta con usar una libreria llamada BasicPlayer, sobre la cual lograremos reproducir archivos mp3 y de otras extensiones ademas de una manera sencilla.&lt;/p&gt;&lt;p&gt;Para ir al tutorial sigamos &lt;a href="http://my.opera.com/jalvarezborja/blog/show.dml/2815527"&gt;este enlace&lt;/a&gt;&lt;/p&gt;&lt;p&gt;Fuente: &lt;a href="http://my.opera.com/jalvarezborja/blog/"&gt;http://my.opera.com/jalvarezborja/blog/&lt;/a&gt;(Mi blog de programacion)&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-4675967907772931079?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/4675967907772931079/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=4675967907772931079' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4675967907772931079'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4675967907772931079'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/12/reproduccion-mpe-en-java.html' title='Reproduccion MP3 en Java'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-6320103118145979396</id><published>2008-11-24T17:08:00.000-08:00</published><updated>2008-12-15T07:43:50.741-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='programacion'/><title type='text'>Personalizar Iconos en un JTree</title><content type='html'>&lt;div align="justify"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;A mas de uno se le habra ocurrido crear un JTree con la necesidad de cambiar los iconos por defecto con los que viene el arbol. Lastimosamente el IDE Netbeans (con el que trabajo frecuentemente) no nos permite hacer mucho (tal igual como lo que pasa con los JTable). En pocas palabras, necesitamos recordar nuestros conceptos de Herencia e Interfaces.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div align="justify"&gt;En mi caso particular, me planteo desarrollar un programa de mensajería instantanea (IM), el modelo que presentan los JTree y los arboles en general es muy adecuado para agrupar contactos por estado, por grupo, etc. y decidi usarlo en el proyecto que me encontraba desarrollando. Un aproximado podria ser el siguiente:&lt;/div&gt;&lt;div align="center"&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5272655163943723058" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 241px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_O1NmM8vPcUg/SSw775X-oDI/AAAAAAAAC1A/o_yXXVjEx6U/s320/Imagen1.png" border="0" /&gt; &lt;p align="center"&gt;&lt;em&gt;Figura 1: Modelo de JTree a crear&lt;br /&gt;&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Donde, los iconos de contacto1 y contacto2 deben ser de un color distinto al de contacto3 y contacto4, el grupo conectados y no conectados deben tener un mismo icono y bueno, el icono de la raiz no tiene importancia.&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;strong&gt;CONCEPTOS PREVIOS:&lt;/strong&gt;&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Cuando un JTree necesita pintar los datos que contiene, esta llama a otra para obtener detalles de este dibujado. Esta clase a la que llama se denomina &lt;strong&gt;DefaultTreeCellRenderer &lt;/strong&gt;y proporciona informacion de cada hoja, del icono de cada nodo dentro del arbol.&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;La clase &lt;strong&gt;DefaultTreeCellRenderer&lt;/strong&gt; implementa a su vez la interfaz &lt;strong&gt;TreeCellRenderer&lt;/strong&gt; , la cual, haciendo uso del metodo &lt;strong&gt;getTreeCellRendererComponent &lt;/strong&gt;devuelve toda la informacion necesaria para dibujar un arbol y sus nodos. &lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;El JTree, en su método &lt;strong&gt;getCellRenderer() &lt;/strong&gt;nos devuelve la clase que está usando para saber cómo dibujar los datos. Con su método &lt;strong&gt;setCellRenderer()&lt;/strong&gt; podríamos pasarle una clase hecha a nuestra medida. Haciendo uso de estos métodos, nosotros podemos redefinir los iconos en el arbol (aunque de una forma muy limitada), haciendo uso de los métodos:&lt;/p&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;setLeafIcon() para cambiar el icono de los nodos hoja (nodos sin hijos).&lt;/li&gt;&lt;br /&gt;&lt;li&gt;setOpenIcon() para cambiar el icono de los nodos con hijos que están desplegados (sus hijos son visibles). &lt;/li&gt;&lt;br /&gt;&lt;li&gt;setClosedIcon() para cambiar el icono de los nodos con hijos que están cerrados (los hijos no son visibles). &lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;Sin embargo, esta solucion &lt;em&gt;no permite distinguir entre los hijos de tal o cual padre dentro del arbol&lt;/em&gt; (para el caso de los hijos del nodo "Conectados" y los hijos del nodo "No Conectados").&lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Con todo lo que hemos descrito solo nos quedan dos cosas por hacer: Crear una clase que implemente la interfaz &lt;strong&gt;TreeCellRenderer&lt;/strong&gt; (lo cual implica la construccion completa del metodo getTreeCellRendererComponent, lo cual no es muy adecuado) o crear una clase que herede de la superClase &lt;strong&gt;DefaultTreeCellRenderer &lt;/strong&gt;y sobre la cual hariamos solo algunas modificaciones finales para lograr lo que buscamos. &lt;/p&gt;&lt;br /&gt;&lt;p align="justify"&gt;Asumimos que ya tenemos en el proyecto un objeto instancia de JTree, la cual se denomina &lt;em&gt;"arbol". &lt;/em&gt;Lo que haremos es modificar los datos que contiene por defecto para colocar los que en realidad necesitamos para nuestro proposito. Esto lo hacemos con el método &lt;em&gt;remodelarArbol()&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;public void remodelarArbol(){&lt;br /&gt;&lt;br /&gt;        //DefaultTreeCellRenderer dt = (DefaultTreeCellRenderer)arbol.getCellRenderer();&lt;br /&gt;&lt;br /&gt;        DefaultTreeModel def = (DefaultTreeModel)arbol.getModel();&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode contactos = new DefaultMutableTreeNode("Contactos");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode conectados = new DefaultMutableTreeNode("Conectados");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode noconectados = new DefaultMutableTreeNode("No Conectados");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode c1 = new DefaultMutableTreeNode("Contacto 1");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode c2 = new DefaultMutableTreeNode("Contacto 2");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode nc1 = new DefaultMutableTreeNode("Contacto 3");&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode nc2 = new DefaultMutableTreeNode("Contacto 4");&lt;br /&gt;&lt;br /&gt;        conectados.add(c1);&lt;br /&gt;&lt;br /&gt;        conectados.add(c2);&lt;br /&gt;&lt;br /&gt;        noconectados.add(nc1);&lt;br /&gt;&lt;br /&gt;        noconectados.add(nc2);&lt;br /&gt;&lt;br /&gt;        contactos.add(conectados);&lt;br /&gt;&lt;br /&gt;        contactos.add(noconectados);&lt;br /&gt;&lt;br /&gt;        def.setRoot(contactos);&lt;br /&gt;&lt;br /&gt;        arbol.setModel(def);&lt;br /&gt;&lt;br /&gt;        arbol.setCellRenderer(new RendererArbol());//añadimos nuevo renderer&lt;br /&gt;&lt;br /&gt;    }&lt;/pre&gt;&lt;br /&gt;Si nos fijamos en la ultima linea, añadimos a nuestro arbol remodelado una nueva clase que se encargará de su dibujado. Esta clase la tenemos que crear y ajustar a nuestras necesidades.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;import javax.swing.tree.*;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;&lt;br /&gt;import java.awt.*;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;&lt;br /&gt; *&lt;br /&gt;&lt;br /&gt; * @author Jhon Anthony Alvarez Borja&lt;br /&gt;&lt;br /&gt; */&lt;br /&gt;&lt;br /&gt;public class RendererArbol extends DefaultTreeCellRenderer{&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    /** Creates a new instance of RendererArbol */&lt;br /&gt;&lt;br /&gt;    ImageIcon conectados;&lt;br /&gt;&lt;br /&gt;    ImageIcon noConectados;&lt;br /&gt;&lt;br /&gt;    public RendererArbol() {&lt;br /&gt;&lt;br /&gt;        conectados = new ImageIcon("src/Resources/Pack MSN/Enligne.png");&lt;br /&gt;&lt;br /&gt;        noConectados = new ImageIcon("src/Resources/Pack MSN/Horsligne.png");&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded, boolean leaf, int row, boolean hasFocus)&lt;br /&gt;&lt;br /&gt;    {               &lt;br /&gt;&lt;br /&gt;        super.getTreeCellRendererComponent(tree,value,selected,expanded,leaf,row,hasFocus);&lt;br /&gt;&lt;br /&gt;        String val = value.toString();&lt;br /&gt;&lt;br /&gt;        ImageIcon i;&lt;br /&gt;&lt;br /&gt;        DefaultMutableTreeNode nodo = (DefaultMutableTreeNode)value;&lt;br /&gt;&lt;br /&gt;        if(val.compareTo("Conectados")!=0 &amp;amp;&amp;amp; val.compareTo("No Conectados")!=0 &amp;amp;&amp;amp; val.compareTo("Contactos")!=0){   &lt;br /&gt;&lt;br /&gt;            TreeNode t = nodo.getParent();&lt;br /&gt;&lt;br /&gt;            if(t!=null){&lt;br /&gt;&lt;br /&gt;                if(t.toString().compareTo("Conectados")==0){&lt;br /&gt;&lt;br /&gt;                    setIcon(conectados);&lt;br /&gt;&lt;br /&gt;                }else if(t.toString().compareTo("No Conectados")==0){&lt;br /&gt;&lt;br /&gt;                    setIcon(noConectados);&lt;br /&gt;&lt;br /&gt;                }&lt;br /&gt;&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }                           &lt;br /&gt;&lt;br /&gt;        return this;&lt;br /&gt;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div align="justify"&gt;&lt;br /&gt;&lt;br /&gt;Lo que hacemos en esta clase es implementar el metodo &lt;strong&gt;getTreeCellRendererComponent &lt;/strong&gt;modificando solo lo que nos interesa&lt;br /&gt;lo cual es en este caso los íconos para los usuarios conectados y no conectados. Al hacer uso de la palabra reservada y el metodo &lt;strong&gt;super.getTreeCellRendererComponent &lt;/strong&gt;lo que hacemos es llamar al método original de la clase y lineas abajo, colocamos las modificaciones que queremos hacer al momento de mostrar un determinado nodo en funcion de nuestras necesidades. En este caso basta con identificar el nombre de cada nodo padre, y de acuerdo a ello colocamos el icono correspondiente a conectado o no conectado.&lt;br /&gt;&lt;br /&gt;Espero les sea de ayuda este pequeño tutorial. Aca les dejo el codigo fuente&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/P%c3%bablico/Arboles.rar" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Fuentes: &lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;[1] &lt;a href="http://www.chuidiang.com/"&gt;http://www.chuidiang.com/&lt;/a&gt;&lt;br /&gt;[2] &lt;a href="http://www.gfc.edu.co/estudiantes/anuario/2002/sistemas/gustavo/tercerperiodo/TreeIconDemo2/x63.html"&gt;Manual de JTree&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-6320103118145979396?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/6320103118145979396/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=6320103118145979396' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/6320103118145979396'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/6320103118145979396'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/11/personalizar-iconos-en-un-jtree.html' title='Personalizar Iconos en un JTree'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_O1NmM8vPcUg/SSw775X-oDI/AAAAAAAAC1A/o_yXXVjEx6U/s72-c/Imagen1.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-8196969875302617507</id><published>2008-11-12T12:30:00.000-08:00</published><updated>2008-12-15T07:43:26.091-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='sonido'/><title type='text'>AUDIO DIGITAL</title><content type='html'>&lt;a href="http://www.broadjam.com/userimages/57/57391/57391_98547.jpg"&gt;&lt;img style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 400px; CURSOR: hand; HEIGHT: 300px; TEXT-ALIGN: center" alt="" src="http://www.broadjam.com/userimages/57/57391/57391_98547.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div align="justify"&gt;Actualmente, el avance de la tecnología computacional ha permitido la digitalizacion de la información, entre la que tambien encontramos al sonido. Esta evolucion en el sonido ha implicado la mejora notoria en la calidad de sonido en equipos de alta fidelidad (Hi-Fi), sin embargo el cambio delo analogico a lo digital ha provocado una serie de problemas diversos, los cuales han sido corregidos en su gran mayoria. He aquí una introducción y algunos conceptos indispensables para los interesados en &lt;em&gt;procesamiento de señales &lt;/em&gt;y aficionados al audio digital.&lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;div align="justify"&gt;En el procesamiento de señales es común encontrar este término, y muchas veces incluso confundido por la mayoría de las personas. En esta sección trataremos de despejar algunas dudas respecto a este término para profundizar mas adelante en el desarrollo de temas más complejos.&lt;br /&gt;&lt;br /&gt;La frecuencia de muestreo viene a ser el número de muestras por unidad de tiempo que se toman de una señal continua (analógica) para poder producir una señal discreta (digital), durante el proceso necesario para transformarla de analógica a digital.&lt;br /&gt;&lt;br /&gt;La frecuencia de muestreo, como todas las frecuencias, se expresa en Hz (hercios o ciclos por segundo).&lt;br /&gt;&lt;br /&gt;Obviamente, la transformación de una onda analógica a digital ocasiona la perdida de información, pero matemáticamente es demostrable la reconstrucción completa de una onda bajo el Teorema de muestreo de Nyquist-Shannon.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;TEOREMA DE NYQUIST - SHANNON&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Según este teorema, para poder reconstruir con exactitud la forma de una onda, es necesario que la frecuencia de muestreo sea siempre el doble de la frecuencia a muestrear. Atendiendo al margen audible de los humanos, que va desde los 20 Hz hasta los 20 kHz, es necesario que la frecuencia de muestreo sea como mínimo de 40 000 muestras por segundo. Por otro lado, cada bit de una muestra de audio añade 6 dB de margen dinámico (margen que hay entre el nivel de referencia y el ruido de fondo de un determinado sistema, medido en decibelios), por lo que con 8 bits obtendríamos 48 dB, con 16 bits 96 dB y con 24 bits 144 dB. Ahora, como el margen dinámico útil es aproximadamente 110 dB ( sin llegar al umbral del dolor ) y el de los sistemas analógicos de cinta magnética de unos 72 dB, pareció en principio que codificar a 16 bits era una buena alternativa.&lt;br /&gt;&lt;br /&gt;La alta tasa de muestreo de otro formato de audio de reciente aparición, el SACD o Super Audio CD, es una consecuencia del uso de una tecnología denominada modulación Sigma-Delta (Direct Stream Digital). Si bien la tasa de muestreo es 64 veces la del CD-Audio, es necesario tener presente que se trata de una &lt;em&gt;cuantificación de 1 bit&lt;/em&gt; (en lugar de los 16 empleados en el CD-Audio) y basado en técnicas de &lt;em&gt;Noise Shaping&lt;/em&gt; (modelado de ruido). No es posible, por tanto, establecer comparaciones superficiales con el PCM de CD-Audio, ya que en este caso la relación señal-ruido no es constante respecto de la frecuencia (en CD-Audio el ruido de cuantificación es independiente de la frecuencia y sólo depende de los intervalos de amplitud empleados en el proceso de cuantificación, es decir, de unos 98,09 dB constantes para los 16 bits de este estándar CD-Audio en todo el espectro útil).&lt;br /&gt;&lt;br /&gt;Un SACD puede registrar y reproducir señales con componentes de hasta 33 kHz con una relación señal-ruido equivalente al de un CD-Audio (aunque 33 kHz está casi una octava por encima del máximo audible y, por tanto, una ventaja sobre el CD-Audio de dudosa utilidad) y mantener una relación señal-ruido de aproximadamente 122 dB para el espectro audible (un potencial, el equivalente aproximado a 20 bits,3 también de dudosa utilidad práctica como formato final de usuario). Entre las ventajas objetivas de estos formatos recientes (DVD-Audio y SACD) se encuentra el potencial multicanal (registro de más de dos canales) y la capacidad para el empleo de técnicas de protección de copia (algo de extraordinario interés para las compañías discográficas). Ninguna prueba doble-ciego realizada en condiciones controladas ha probado que existan diferencias audibles entre estos formatos denominados de "alta resolución"&lt;/div&gt;&lt;br /&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;strong&gt;ALIASING&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;Todo lo explicado anteriormente es correcto, sin embargo existen sonidos que el oído humano no puede escuchar (aquellos armónicos que se generan más allá de los 20 000 Hz). Cuando digitalizamos una onda con tales armónicos presentes, según Nyquist, se produce el fenómeno de aliasing, el cual convierte esas frecuencias no audibles y las cuales no las percibimos en frecuencias que si lo son y que no se encuentran presentes en el sonido original.&lt;br /&gt;&lt;br /&gt;Cito un ejemplo no mío pero muy didáctico: Lo que ocurre cuando vemos la rueda de un carro en una película, aunque el carro va hacia adelante nosotros vemos que los aros de la rueda van en sentido inverso. No hay concordancia entre el periodo de rotación de la rueda y la frecuencia de muestreo del cine (que es de 24 frames/sec). Para evitar este tipo de problemas se tiene que añadir un filtro de paso bajo de corte por encima de la frecuencia que se corresponda con la mitad de frecuencia de muestreo. Este tipo de filtro es conocido como “filtro anti-aliasing”. Para este problema, en los CD’s de audio se estandarizó que la frecuencia de muestreo sea de 44.1 kHz para poder utilizar filtros con una pendiente desde los 22.050 kHz.&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;FRECUENCIAS TIPICAS DE MUESTREO &lt;/strong&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;&lt;img id="BLOGGER_PHOTO_ID_5268207176190706818" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 320px; CURSOR: hand; HEIGHT: 228px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_O1NmM8vPcUg/SRxug7wCxII/AAAAAAAACp8/rGRqGqwdbkE/s320/Imagen9.png" border="0" /&gt;&lt;/strong&gt;&lt;/p&gt;&lt;p align="justify"&gt;Las investigaciones en esta rama continuan, los sistemas de audio tienden a tener mayor capacidad de mustreo y mayor resolucion, asimismo los medios para almacenar esa informacion avanzan a la misma velocidad, con costes mas asequibles a los usuarios. &lt;/p&gt;&lt;p align="justify"&gt;Continuaremos proximamente con aplicaciones DSP en ondas de audio, espero les haya motivado con esta introduccion a este inmenso campo de procesamiento de señales.&lt;/p&gt;&lt;p&gt;Fuentes:&lt;/p&gt;&lt;p&gt;[1] &lt;a href="http://www.ispmusica.com/articulo.asp?id=564"&gt;Los males del audio digital. Jitter, aliasing, errores de cuantización&lt;/a&gt;&lt;/p&gt;&lt;p&gt;[2] &lt;a href="http://es.wikipedia.org/wiki/Frecuencia_de_muestreo"&gt;http://es.wikipedia.org/wiki/Frecuencia_de_muestreo&lt;/a&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-8196969875302617507?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/8196969875302617507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=8196969875302617507' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/8196969875302617507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/8196969875302617507'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/11/audio-digital.html' title='AUDIO DIGITAL'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_O1NmM8vPcUg/SRxug7wCxII/AAAAAAAACp8/rGRqGqwdbkE/s72-c/Imagen9.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-1183365374767304476</id><published>2008-10-24T18:04:00.000-07:00</published><updated>2008-12-15T07:38:46.568-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secicomp'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>SECICOMP 2007 - videos publicitarios</title><content type='html'>Aca dejo unos videos promocionales del evento SEMANA DE CIENCIA DE LA COMPUTACION SECICOMP 2007&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;Introduccion&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/LA3IY8rePKI&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/LA3IY8rePKI&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;Noticias - break 1&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/OKbjFqJR92M&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/OKbjFqJR92M&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Noticias - break 2&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Mlys_8Q6w1w&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/Mlys_8Q6w1w&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comision Organizadora&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/L1eBLvHCGY8&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/L1eBLvHCGY8&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Clausura&lt;br /&gt;&lt;object height="344" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Yw4YiKXm_9I&amp;amp;hl=es&amp;amp;fs=1"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;embed src="http://www.youtube.com/v/Yw4YiKXm_9I&amp;hl=es&amp;fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-1183365374767304476?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/1183365374767304476/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=1183365374767304476' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1183365374767304476'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1183365374767304476'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/10/secicomp-2007-videos-publicitarios.html' title='SECICOMP 2007 - videos publicitarios'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-4469689027394730594</id><published>2008-10-24T06:10:00.000-07:00</published><updated>2008-12-15T07:39:21.807-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secicomp'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>SEMANA DE CIENCIA DE LA COMPUTACION</title><content type='html'>La Escuela de Informática de la Universidad Nacional de Trujillo es una de las pocas escuelas a nivel nacional y en el norte del país, relacionada específicamente con el área de Ciencia de la Computación.&lt;br /&gt;&lt;br /&gt;El poseer esa característica de investigadores en Ciencia de la Computación nos distingue entre las demás carreras afines por generar investigación para la creación y/o mejoramiento de soluciones, usando para ello fundamentos en ciencias exactas y el método científico en campos de Biometría, Inteligencia Artificial, Computación Gráfica entre otros campos, y por poseer los fundamentos teóricos para resolverlos.&lt;br /&gt;&lt;br /&gt;Lastimosamente la carrera no es tan conocida en el mercado y debido a este desconocimiento de las empresas se desaprovechan creatividad e ingenio peruanos, prefiriendo en la mayoría de casos software importado antes que uno generado en Perú con mano de obra peruana cuyo desarrollo podría ser incluso mucho más económico.&lt;br /&gt;&lt;br /&gt;Es así como surge la idea de mostrar en un evento local lo que estudiantes y egresados profesionales en esta rama científica son capaces de desarrollar. A este evento inicialmente le llamamos “Semana de Ciencia de la Computación”, evento realizado por primera vez el año 2006 en el que los mejores proyectos entre alumnos y ex alumnos se mostraron a la comunidad estudiantil. El evento constó de una feria de proyectos y una serie de ponencias a cargo de docentes y ex alumnos de temas específicos, lo cual fue todo un éxito debido a la gran acogida por parte de los alumnos universitarios y pre-universitarios que nos visitaron.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/q7_bBh1eRWD1GDGG_MV8FQ"&gt;&lt;img src="http://lh6.ggpht.com/jhonalvarez/SQAp_iWXKhI/AAAAAAAAAeI/vG9NCgfaAx4/s400/Carlos%20Sabana%2001%20%28Large%29.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jhonalvarez/Secicomp200603"&gt;secicomp 2006&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/dNqTI4ChjxSzAUMIVyIwSQ"&gt;&lt;img src="http://lh5.ggpht.com/jhonalvarez/SQCETtJuGMI/AAAAAAAAAw4/w1W5kuK9NnI/s400/carrito%2001%20%28Large%29.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jhonalvarez/Secicomp200603"&gt;secicomp 2006&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;El año pasado, contando con el apoyo y el compromiso de los docentes y autoridades de la Escuela y la Facultad, se realizó un evento más grande denominado “II Semana de Ciencia de la Computación SECICOMP 2007”, evento de ámbito nacional que se realizó del 10 al 15 de septiembre, el cual contó con la presencia de científicos profesionales invitados de todo el país en las denominadas PONENCIAS OFICIALES, además de contar con profesionales egresados, quienes mostraron sus investigaciones en las denominadas PONENCIAS LIBRES, y además con la participación de alumnos de las diferentes universidades peruanas, quienes mostraron sus trabajos de investigación en ciencia de la computación por categorías en INICIACION CIENTIFICA y los cuales fueron expuestos en una FERIA DE PROYECTOS.&lt;br /&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/t4y6WbJkE40FBnFKsF4wjw"&gt;&lt;img src="http://lh4.ggpht.com/jhonalvarez/SQCOSI0nn0I/AAAAAAAABX8/opdpBLnUNwI/s400/DSCF0281%20%28Large%29.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jhonalvarez/SECICOMP2007"&gt;SECICOMP 2007&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/DquRH89EWZ_WEK2mkkedvA"&gt;&lt;img src="http://lh4.ggpht.com/jhonalvarez/SQCPPOE3lHI/AAAAAAAABdU/mU2MYwmfa4E/s400/DSCF0332%20%28Large%29.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jhonalvarez/SECICOMP2007"&gt;SECICOMP 2007&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Este año, contando además con el patrocinio de la Universidad Nacional de Trujillo, pretendemos realizar un evento mucho más grande denominado “III SEMANA DE CIENCIA DE LA COMPUTACION SECICOMP 2008”, evento de ámbito INTERNACIONAL que se realizará del 13 al 17 de octubre del presente año y en el que contaremos con la presencia de investigadores en diferentes áreas afines a Ciencia de la Computación tanto Nacionales como Internacionales.&lt;br /&gt;&lt;center&gt;&lt;br /&gt;&lt;table style="WIDTH: auto"&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;a href="http://picasaweb.google.com/lh/photo/Ox2EZDcx8CI1mBvAsGpB6w?authkey=GBbUne9yyKw"&gt;&lt;img src="http://lh3.ggpht.com/jhonalvarez/SQHTKrhv91I/AAAAAAAACpI/4Xp05AyvJyA/s400/DSC078~3.JPG" /&gt;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td style="FONT-SIZE: 11px; FONT-FAMILY: arial,sans-serif; TEXT-ALIGN: right"&gt;From &lt;a href="http://picasaweb.google.com/jhonalvarez/JhonAlvarezBorja?authkey=GBbUne9yyKw"&gt;Jhon Alvarez Borja&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;br /&gt;Mas fotos en el album web de &lt;a href="http://picasaweb.google.com/jorge.carlos14/IIISecicomp2008#"&gt;jorge valverde&lt;/a&gt;&lt;br /&gt;&lt;/center&gt;&lt;br /&gt;&lt;br /&gt;Se anuncia desde ya la formación de la comisión central para el evento del próximo año IV SEMANA DE CIENCIA DE LA COMPUTACION “SECICOMP 2009”, esperamos se logren muchas mas cosas y quedemos listos para la organización del primer congreso en ciencia de la computación para los años próximos.&lt;br /&gt;&lt;br /&gt;Me queda agradecer a todos por su participación dentro de la organizacion en alguno o todos las ediciones de este evento, son experiencias inolvidables y que quedan permanentemente en el recuerdo…. Gracias muchachos!&lt;br /&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;&lt;/center&gt;&lt;br /&gt;&lt;center&gt;&lt;/center&gt;&lt;center&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-4469689027394730594?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/4469689027394730594/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=4469689027394730594' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4469689027394730594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4469689027394730594'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/10/semana-de-ciencia-de-la-computacion.html' title='SEMANA DE CIENCIA DE LA COMPUTACION'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://lh6.ggpht.com/jhonalvarez/SQAp_iWXKhI/AAAAAAAAAeI/vG9NCgfaAx4/s72-c/Carlos%20Sabana%2001%20%28Large%29.JPG' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-1123325141113160380</id><published>2008-09-27T08:28:00.001-07:00</published><updated>2008-12-15T07:39:46.747-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='noticias'/><category scheme='http://www.blogger.com/atom/ns#' term='tecnologia'/><title type='text'>T-Mobile G1 aparece en el mercado mundial</title><content type='html'>&lt;div align="justify"&gt;El gigante de las búsquedas en Internet Google ingresó hace poco al mercado de los teléfonos móviles al presentar un aparato desarrollado junto a la telefónica T-Mobile para competir con el popular iPhone de Apple.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;img id="BLOGGER_PHOTO_ID_5250724870682331762" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_O1NmM8vPcUg/SN5Sc0pUSnI/AAAAAAAAAVY/GU-U2xjoUnc/s320/t-mobile-g1.jpg" border="0" /&gt; &lt;div align="justify"&gt;El T-Mobile G1, el primero que utiliza el sistema operativo “Android”, creado por Google, es fabricado por la firma taiwanesa HTC y estará disponible en las tiendas estadounidenses el 22 de octubre, a un costo de US$ 179. El iPhone 3G de Apple cuesta US$ 199.&lt;br /&gt;Los clientes también tendrán que abonarse durante dos años a T-Mobile, filial de Deutsche Telekom, de 25 a 35 dólares por mes.&lt;/div&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5250724524841633122" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_O1NmM8vPcUg/SN5SIsSeBWI/AAAAAAAAAVI/bF1LeOgokOs/s320/tmob_g1_1.jpg" border="0" /&gt;&lt;br /&gt;Cole Brodman, director de tecnología e innovación de T-Mobile, consideró que el G1 “propulsará un nuevo Internet móvil del futuro”.Un poco más grueso pero más angosto que el iPhone, el G1 saldrá a la venta en Gran Bretaña a inicios de noviembre y en otros países europeos a inicios de 2009. &lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5250724664487811890" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_O1NmM8vPcUg/SN5SQ0gtmzI/AAAAAAAAAVQ/Od4miiUrvvc/s320/tmobile-g1.jpg" border="0" /&gt; &lt;p align="justify"&gt;&lt;br /&gt;El G1 tiene muchas de las características del iPhone y del BlackBerry de Research in Motion, como una pantalla táctil, Internet de alta velocidad, Wi-Fi, GPS, correo electrónico y SMS.&lt;br /&gt;Incluye una cámara de 3.0 megapíxels y un teclado Qwerty6 “escondido”. &lt;/p&gt;&lt;p align="justify"&gt;Este telefono ha sido integrado a aplicaciones de Google, como Google Maps y G-Mail, y puede mostrar videos de YouTube, el sitio de intercambio de videos comprado por Google en 2006.&lt;/p&gt;&lt;p align="justify"&gt;&lt;strong&gt;Especificaciones&lt;/strong&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Lo que seguro que nos llamará la atención del teléfono G1 es su diseño, que ha sido subordinado a la usabilidad del teléfono. Al menos en teoría. Cuenta con una pantalla táctil de 3.1 pulgadas que nos ofrece una resolución justa de 480×320 píxeles. Para el que quiera compararlo con el iPhone, el T-Mobile Phone es más grueso y pesado&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;La novedad de este teléfono G1 es que bajo la pantalla, mediante un deslizamiento de la misma, nos encontramos con un teclado completo que nos facilitará el uso de correo electrónico y diversos servicios en los que es necesario escribir bastante. &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Encontramos además con la presencia de un &lt;em&gt;Trackball &lt;/em&gt;similar a las usadas en los populares teléfonos &lt;em&gt;Blackberry&lt;/em&gt;&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Una cámara de fotos de 3.1 MPixels, sin flash ni grabaciones de video, pero con una tecnología de autoenfoque incorporada, además de geoposicionamiento y acceso a internet&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;No viene con una gran memoria interna, solo 1GB, la cual podemox expandir a 8GB con tarjetas microSD&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;A los amantes de la tecnlolgía en Perú, me imagino que estaran alistando sus bolsillos para la llegara de este instrumento de ocio y comunicaciones. Ya llego el ansiado iPhone despues de tanto tiempo, esperaremos un poco más para este último para verlo, aunque sea en las vitrinas :'(&lt;/p&gt;&lt;p align="justify"&gt;Fuentes:&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.xataka.com/2008/09/24-tmobile-g1"&gt;http://www.xataka.com/2008/09/24-tmobile-g1&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;a href="http://www.tecnologiasaldia.com/general/google-desafia-al-iphone-de-apple.html#more-559"&gt;http://www.tecnologiasaldia.com/general/google-desafia-al-iphone-de-apple.html#more-559&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-1123325141113160380?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/1123325141113160380/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=1123325141113160380' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1123325141113160380'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1123325141113160380'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/09/t-mobile-g1-aparece-en-el-mercado.html' title='T-Mobile G1 aparece en el mercado mundial'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_O1NmM8vPcUg/SN5Sc0pUSnI/AAAAAAAAAVY/GU-U2xjoUnc/s72-c/t-mobile-g1.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-1498917064739776977</id><published>2008-09-24T06:51:00.000-07:00</published><updated>2008-12-15T07:41:09.221-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='procesamiento de imagenes'/><title type='text'>Algoritmo de Esqueletizacion de Pavlidis</title><content type='html'>&lt;div align="justify"&gt;&lt;br /&gt;En ocasiones, debido a la gran cantidad de información que presenta una imagen, resulta conveniente trabajar solo con las características más importantes de la imagen a procesar. Para el caso particular de reconocimiento óptico de caracteres las características más importantes se encuentran representadas en el esqueleto del caracter.&lt;br /&gt;&lt;br /&gt;Entendemos por Esqueletización a una transformación que busca reducir la cantidad de datos o simplificar la forma del objeto, con el fin de encontrar características útiles en algoritmos de reconocimiento y clasificación.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p&gt;&lt;img id="BLOGGER_PHOTO_ID_5249589780273261394" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_O1NmM8vPcUg/SNpKF3W1a1I/AAAAAAAAATk/mmS-eIB5HwM/s320/Imagen1.jpg" border="0" /&gt;&lt;br /&gt;El algoritmo de esqueletizacion de Pavlidis se basa en la idea de que los pixeles esqueletales son solo aquellos pixels que presentan alguna similaridad con alguna de las plantillas que se muestran a continuación:&lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5250158608055892722" style="DISPLAY: block; MARGIN: 0px auto 10px; CURSOR: hand; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_O1NmM8vPcUg/SNxPb_-hevI/AAAAAAAAAUY/jKeFRCTd24A/s320/Imagen1.png" border="0" /&gt;&lt;br /&gt;&lt;p&gt;En las plantillas del inciso A, al menos un píxel de los grupos etiquetados como A o B debe ser diferente de cero. Los píxeles marcados con el valor de 2 son píxeles esqueletales.&lt;br /&gt;&lt;br /&gt;En la plantilla del inciso B, al menos un píxel marcado con debe ser diferente de cero. Si ambos píxeles etiquetados con C son diferentes de cero, entonces los píxeles etiquetados con CA o pueden tener cualquier valor. De otra manera, al menos un miembro de cada par marcados con BA y deben ser diferentes de cero&lt;/p&gt;&lt;p&gt;&lt;br /&gt;En base a esta teoría y atendiendo a dificultades en los resultados con el algoritmo antes mencionado, planteo una solución alternativa, la cual se basa en las rotaciones de las plantillas que muestro a continuacion: &lt;/p&gt;&lt;img id="BLOGGER_PHOTO_ID_5250163514813060146" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 372px; CURSOR: hand; HEIGHT: 138px; TEXT-ALIGN: center" height="126" alt="" src="http://3.bp.blogspot.com/_O1NmM8vPcUg/SNxT5nEmFDI/AAAAAAAAAUg/97J15mHR9s0/s320/Imagen2.png" width="344" border="0" /&gt;Según lo cual, las cuatro rotaciones en 90º de cada una de las plantillas deben ser comparadas con cada uno de los 4-vecinos de cada pixel de la imagen. Los 4-vecinos de un pixel en una vecindad de 3x3 se denota bajo el siguiente esquema:&lt;br /&gt;&lt;img id="BLOGGER_PHOTO_ID_5250163814977829922" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 257px; CURSOR: hand; HEIGHT: 194px; TEXT-ALIGN: center" height="219" alt="" src="http://3.bp.blogspot.com/_O1NmM8vPcUg/SNxULFRc_CI/AAAAAAAAAUo/mgKsWPJT9yQ/s320/Imagen3.png" width="289" border="0" /&gt;Y los que son necesarios a considerarse en el algoritmo de pavlidis y en ste algoritmo son los pixels 0,2,4,6.&lt;br /&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;Algoritmo&lt;br /&gt;% Entrada: Imagen binarizada imBin normalizada (0 = negro, 1 = blanco)&lt;br /&gt;% Salida: Imagen Esqueletizada normalizada (0=negro, 1=blanco)&lt;br /&gt;&lt;br /&gt;REMAIN = 1; % se usa para denotar la existencia de pixeles esqueletales&lt;br /&gt;SKEL = 0; % se fija a cierta cuando alguna vecindad de un pixel es similar a&lt;br /&gt;% alguna de las plantillas existentes en P&lt;br /&gt;CONVERTIR IMBIN A CEROS Y UNOS Y ALMACENARLA EN IMG&lt;br /&gt;nf = NUMERO DE FILAS DE MATRIZ img&lt;br /&gt;nc = NUMERO DE COLUMNAS DE MATRIZ img&lt;br /&gt;d = 1 % columnas que no se evalúan por ser la plantilla de 3 x 3&lt;br /&gt;MIENTRAS REMAIN = 1&lt;br /&gt;    REMAIN = 0;&lt;br /&gt;    PARA k=1 hasta 4 % los indices de los vecinos de un determinado punto&lt;br /&gt;       % se recorre toda la imagen&lt;br /&gt;       PARA i=1+d hasta nf-d&lt;br /&gt;          PARA j=1+d hasta nc-d&lt;br /&gt;             SI P TIENE EL VALOR DE 1 Y SI J-VECINO TIENE EL VALOR DE CERO&lt;br /&gt;                SKEL = 0&lt;br /&gt;                SI VECINDAD DE P CONCUERDA CON ALGUNA PLANTILLA, SKEL SE ACTUALIZA A 1&lt;br /&gt;                SI SKEL == 1 ENTONCES % si la plantilla concuerda con la matriz&lt;br /&gt;                    img(i,j) = 2;&lt;br /&gt;                EN CASO CONTRARIO&lt;br /&gt;                    img(i,j) = 3;&lt;br /&gt;                    REMAIN = 1;&lt;br /&gt;                FIN SI&lt;br /&gt;             FIN SI&lt;br /&gt;          FIN PARA&lt;br /&gt;       FIN PARA&lt;br /&gt;   REEMPLAZAR TODOS LOS PIXELS CON VALOR “3” POR “0”&lt;br /&gt;   FIN PARA&lt;br /&gt;FIN MIENTRAS % fin del algoritmo&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div align="justify"&gt;Aca les dejo la implementación del algoritmo de pavlidis, con una ligera modificación hecha por mi parte para Adelgazamiento de Imágenes. El trabajo fue desarrollado en el curso de Procesamiento de Imágenes, un curso de Pre-grado de la carrera de Informática en la Universidad Nacional de Trujillo. El codigo esta hecho en matlab y se encuentra documentado.&lt;br /&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/P%c3%bablico/Esqueletizacion.rar" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-1498917064739776977?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/1498917064739776977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=1498917064739776977' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1498917064739776977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/1498917064739776977'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/09/algoritmo-de-esqueletizacion-de.html' title='Algoritmo de Esqueletizacion de Pavlidis'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_O1NmM8vPcUg/SNpKF3W1a1I/AAAAAAAAATk/mmS-eIB5HwM/s72-c/Imagen1.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-6017005176349980348</id><published>2008-09-24T06:32:00.000-07:00</published><updated>2008-12-15T07:42:34.716-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secicomp'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>SECICOMP 2007 - PAPERS</title><content type='html'>&lt;div align="justify"&gt;Para los que no pudieron conseguir el CD con las presentaciones de los ponentes, aca les dejo una serie de papers y presentaciones expuestos en la II Semana de Ciencia de la Computación. Espero les sea de utilidad&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/P%c3%bablico/CD_Secicomp.rar" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-6017005176349980348?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/6017005176349980348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=6017005176349980348' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/6017005176349980348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/6017005176349980348'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/09/secicomp-2007-papers.html' title='SECICOMP 2007 - PAPERS'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-5582895817302359771</id><published>2008-09-24T06:23:00.000-07:00</published><updated>2008-12-15T07:41:52.047-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='base de datos'/><title type='text'>Consultas en bases de datos de Imagenes</title><content type='html'>&lt;div align="justify"&gt;Las soluciones computacionales actuales a necesidades de información de ciertas empresas necesitan almacenar y recuperar información propia para poder desempeñar sus actividades diarias tales como retiros y depósitos en caso de bancos, consulta de precios y facturación en caso de un centro comercial, y un sinfín de actividades que requieren siempre una base de datos (o bases de datos) para su funcionamiento. Dependiendo de las necesidades de información de la empresa y su manipulación es que se escoge entre distintos tipos de bases de datos la que más se adecúe a una solución en particular y con esta se satisfacen las necesidades de información de las aplicaciones.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;Existen aplicaciones que manipulan información multimedia o imágenes, como los servicios de información satelitales en los que es necesaria la ubicación directa de la imagen, para este tipo de necesidades existe un tipo de base de datos denominado “Base de datos de Imágenes”, en el cual el índice o llave es una imagen(a diferencia de las bases de datos convencionales en las que contábamos con un ID de tipo cadena o numérico), por lo que nos daremos cuenta de que el tipo de consultas en este tipo de bases de datos es muy distinto al que nosotros conocemos en las bases de datos convencionales.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;Todo esto nos lleva a pensar en un factor importantísimo en toda aplicación (como lo vendría a ser el propio manejador de la base de datos): “La Eficiencia”. Imaginemos una base de datos de imágenes en las que se quiera recuperar todas las imágenes que posean un rectángulo en el extremo izquierdo, y que se encuentren entre un rango de tono de gris determinado. ¿Será eficiente la respuesta de la base de datos en una base con unos cien mil registros? Obviamente el factor eficiencia está asociado directamente al intérprete de consultas de la base de datos que, como reitero es muy distinto al de una base de datos convencional.&lt;/div&gt;&lt;div align="justify"&gt;&lt;br /&gt;En este paper lo que se pretende es brindar una visión global del tratamiento de bases de datos de imágenes haciendo hincapié en las consultas en este tipo de bases de datos por lo importante de ellas en la recuperación de información en este tipo de bases de datos.&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/papers/CONSULTAS%20EN%20BASES%20DE%20DATOS%20DE%20IM%c3%81GENES.pdf" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-5582895817302359771?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/5582895817302359771/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=5582895817302359771' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/5582895817302359771'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/5582895817302359771'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/09/consultas-en-bases-de-datos-de-imagenes.html' title='Consultas en bases de datos de Imagenes'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-5310547417071622415</id><published>2008-09-21T10:36:00.001-07:00</published><updated>2008-12-15T07:42:57.388-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='c#'/><category scheme='http://www.blogger.com/atom/ns#' term='base de datos'/><title type='text'>Conexiones a Bases de Datos en C#</title><content type='html'>&lt;p align="justify"&gt;En la actualidad, el acceso a datos por parte de nuestros programas de escritorio es algo indispensable, y el uso de bases de datos dan fe de ello, tanto en el trabajo como en la vida universitaria de cualquier estudiante de computación y afines.&lt;br /&gt;&lt;br /&gt;En vista de ello, y ya que actualmente me encuentro estudiando C#, me animé a incursionar más en el mundo del software propietario y aprovechar las herramientas y tecnologías que proveen.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ADO.NET&lt;/strong&gt; es una colección de clases, interfaces, estructuras y tipos enumerados que permiten acceder a los datos almacenados en una base de datos desde la plataforma .NET. Si bien se puede considerar una versión mejorada de ADO, no comparte con éste su jerarquía de clases.&lt;br /&gt;&lt;br /&gt;DO .NET usa XML. De hecho, los conjuntos de datos se almacenan internamente en XML, en vez de almacenarse en binario como sucedía en ADO. Al estar los datos almacenados en XML, se simplifica el acceso a los datos a través de HTTP (algo que ocasiona problemas en ADO si los datos tienen que pasar cortafuegos). Por otro lado, se simplifica la comunicación entre aplicaciones al ser XML un formato estándar.&lt;br /&gt;&lt;br /&gt;Con ADO .NET se puede acceder a los datos de dos formas distintas:&lt;br /&gt;&lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Acceso conectado: Acceso sólo de lectura con cursores unidireccionales ("firehose cursors"). La aplicación realiza una consulta y lee los datos conforme los va procesando con la ayuda de un objeto DataReader.&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Acceso desconectado: La aplicación ejecuta la consulta y almacena los resultados de la misma para procesarlos después accediendo a un objeto de tipo DataSet. De esta forma, se minimiza el tiempo que permanece abierta la conexión con la base de datos.&lt;br /&gt;&lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Al proporcionar conjuntos de datos de forma desconectada, se utilizan mejor los recursos de los servidores y se pueden construir sistemas más escalables que con ADO (que mantenía abierta la conexión con la base de datos la mayor parte del tiempo). Este enfoque resulta más adecuado en sistemas distribuidos como Internet.&lt;br /&gt;&lt;br /&gt;Ahora vamos a ver unos cuantos códigos de ejemplo de conexiones de base de datos en C#.&lt;br /&gt;&lt;br /&gt;Si tenemos una base de datos en SQL Server (aunque funciona para cualquier base que se encuentre registrada previamente en el DSN de usuario), de nombre “ModeladorSQL” en el DSN de Usuario y con nombre del servidor = “HOME” (el nombre del computador), el código de una conexión será de la siguiente manera:&lt;br /&gt;&lt;br /&gt;&lt;span class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;using&lt;/span&gt; System;&lt;br /&gt;&lt;span class="Estilo2"&gt;using&lt;/span&gt; System.Data;&lt;br /&gt;&lt;span class="Estilo2"&gt;using&lt;/span&gt; System.Data.SqlClient;&lt;br /&gt;&lt;span class="Estilo2"&gt;using&lt;/span&gt; System.Data.SqlTypes;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;namespace&lt;/strong&gt;&lt;/span&gt; WindowsApplication1&lt;br /&gt;{&lt;br /&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;class&lt;/strong&gt;&lt;/span&gt; ejemplo1&lt;br /&gt;{&lt;br /&gt;SqlConnection conexion;&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;public&lt;/strong&gt;&lt;/span&gt; ejemplo1()&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;inicializarConexionBD();&lt;br /&gt;consultaBD();&lt;br /&gt;cerrarConexionBD();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;private void&lt;/strong&gt;&lt;/span&gt; cerrarConexionBD()&lt;br /&gt;{&lt;br /&gt;conexion.Close();&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p class="Estilo1" align="left"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;private void&lt;/strong&gt;&lt;/span&gt; inicializarConexionBD()&lt;br /&gt;{&lt;br /&gt;conexion = new &lt;span class="Estilo5"&gt;SqlConnection&lt;/span&gt;(&lt;span class="Estilo3"&gt;"Server=HOME;Database=ModeladorSQL;Integrated Security=True"&lt;/span&gt;);&lt;br /&gt;conexion.Open();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;private void&lt;/strong&gt;&lt;/span&gt; consultaBD()&lt;br /&gt;{&lt;br /&gt;SqlDataReader dr;&lt;br /&gt;SqlCommand comm = new SqlCommand("Select nombre from Tipo_Atributo",conexion);&lt;br /&gt;dr = comm.ExecuteReader();&lt;br /&gt;while(dr.Read())&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(dr.GetString(0));&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1" align="left"&gt;&lt;span style="font-family:courier new;"&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La sencilla aplicación busca reportar la primera columna del resultado de la consulta, la cual devuelve todos los atributos “nombre” de la tabla “Tipo_Atributo”&lt;br /&gt;&lt;br /&gt;Otra forma de obtener el mismo resultado, pero de una manera más elaborada es la siguiente, solo reemplazamos el procedimiento consultaBD por el que se muestra a continuacion:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span class="Estilo2"&gt;&lt;strong&gt;private void&lt;/strong&gt;&lt;/span&gt; consultaBD()&lt;br /&gt;&lt;br /&gt;{&lt;br /&gt;DataSet d = new DataSet();&lt;br /&gt;SqlCommand com = new SqlCommand("Select nombre from Tipo_Atributo",conexion);&lt;br /&gt;SqlDataAdapter sda = new SqlDataAdapter();&lt;br /&gt;sda.SelectCommand = com;&lt;br /&gt;sda.Fill(d);&lt;br /&gt;DataTable data = d.Tables[0];&lt;br /&gt;foreach (DataRow dr in data.Rows)&lt;br /&gt;{&lt;br /&gt;int i;&lt;br /&gt;for (i = 0; i &amp;lt; data.Columns.Count; i++)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(dr[i].ToString());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En el ejemplo anterior hacemos uso de un objeto de tipo DataSet,una caché de memoria interna de datos recuperados desde un origen de datos. Este tipo de estructura permite almacenar más de una tabla dentro de ella. Para hacer uso de ella en las consultas, es necesario declarar un SqlDataAdapter, el cual llenará los datos de la consulta dentro de ella, en una nueva tabla.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;ODBC.NET e&lt;/strong&gt;s un componente complementario del Kit de desarrollo de software (SDK) de Microsoft .NET Framework. Proporciona acceso a los controladores ODBC nativos de la misma manera que el proveedor de datos de OLE DB .NET proporciona acceso a los proveedores de OLE DB nativos. Aunque el proveedor de datos de ODBC .NET está pensado para trabajar con todos los controladores ODBC compatibles, sólo se ha probado con los siguientes: &lt;/p&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;Controlador ODBC de Microsoft SQL &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Controlador ODBC de Microsoft para Oracle &lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;Controlador ODBC de Microsoft Jet &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Las conexiones, sin embargo son bastante similares a las hechas usando ADO.NET, aunque no con la potencialidad de esta ultima. Veamos un ejemplo:&lt;br /&gt;&lt;br /&gt;Asumiendo que la base de datos se encuentra en SQL Server 2000, que el servidor se llama “HOME” y que la base de datos, en orígenes de datos se encuentra registrada como “modeladorSQL”.&lt;br /&gt;&lt;br /&gt;&lt;span class="Estilo1"  style="font-family:courier new;"&gt;using System;&lt;br /&gt;using System.Data;&lt;br /&gt;using System.Data.Odbc;&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;namespace&lt;/strong&gt; WindowsApplication1&lt;br /&gt;{&lt;br /&gt;&lt;strong&gt;class&lt;/strong&gt; ejemplo2&lt;br /&gt;{&lt;br /&gt;OdbcConnection conexion; &lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;public&lt;/strong&gt; ejemplo2()&lt;br /&gt;{&lt;br /&gt;inicializarConexionBD_ODBC();&lt;br /&gt;consulta_ODBC();&lt;br /&gt;cerrarConexionBD();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;private void&lt;/strong&gt; cerrarConexionBD()&lt;br /&gt;{&lt;br /&gt;conexion.Close();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1" align="left"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;private void&lt;/strong&gt; inicializarConexionBD_ODBC()&lt;br /&gt;{&lt;br /&gt;conexion = new OdbcConnection("Driver={SQL Server};Server=HOME;Database=modeladorSQL;IntegratedSecurity=True");&lt;br /&gt;conexion.Open();&lt;br /&gt;}&lt;/span&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;private void&lt;/strong&gt; consulta_ODBC()&lt;br /&gt;{&lt;br /&gt;OdbcCommand comm;&lt;br /&gt;comm = new OdbcCommand("Select nombre from Tipo_Atributo", conexion);&lt;br /&gt;OdbcDataReader reader = comm.ExecuteReader();&lt;br /&gt;while (reader.Read())&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(reader.GetString(0));&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Esta es una forma sencilla de conectar una base de datos, sin embargo podemos hacerlo de una manera más elaborada:&lt;br /&gt;&lt;/p&gt;&lt;p class="Estilo1"&gt;&lt;span style="font-family:courier new;"&gt;&lt;strong&gt;private void&lt;/strong&gt; consulta_ODBC()&lt;br /&gt;{&lt;br /&gt;OdbcCommand comm;&lt;br /&gt;DataSet d = new DataSet();&lt;br /&gt;comm = new OdbcCommand("Select nombre from Tipo_Atributo",conexion);&lt;br /&gt;OdbcDataAdapter da = new OdbcDataAdapter();&lt;br /&gt;da.SelectCommand = comm;&lt;br /&gt;da.Fill(d);&lt;br /&gt;DataTable data = d.Tables[0];&lt;br /&gt;foreach (DataRow dr in data.Rows)&lt;br /&gt;{&lt;br /&gt;for (int i = 0; i &amp;lt; data.Columns.Count; i++)&lt;br /&gt;{&lt;br /&gt;Console.WriteLine(dr[i].ToString());&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;Vemos que trabaja con estructuras similares a ADO.NET, como objetos DataView, OdbcDataAdapter muy similar a SqlDataAdapter. Depende de gustos, de la aplicación y del gestor de base de datos a utilizar. Hay que tener en cuenta que en ODBC especificamos el driver a utilizar para la base de datos correspondiente, algo que no se ve en ADO.NET.. en fin.. &lt;/p&gt;&lt;p&gt;Espero que les sea de utilidad . Saludos&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Fuentes:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://support.microsoft.com/kb/310988/es"&gt;http://support.microsoft.com/kb/310988/es&lt;/a&gt;&lt;br /&gt;&lt;a href="http://msdn.microsoft.com/es-es/library/system.data.dataset(VS.80).aspx"&gt;http://msdn.microsoft.com/es-es/library/system.data.dataset(VS.80).aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://elvex.ugr.es/decsai/csharp/databases/index.xml"&gt;http://elvex.ugr.es/decsai/csharp/databases/index.xml&lt;/a&gt; &lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-5310547417071622415?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/5310547417071622415/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=5310547417071622415' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/5310547417071622415'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/5310547417071622415'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/09/conexiones-bases-de-datos-en-c.html' title='Conexiones a Bases de Datos en C#'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-3812026285246762859</id><published>2008-08-30T07:49:00.000-07:00</published><updated>2008-12-15T07:37:02.486-08:00</updated><title type='text'>Tecnicas de Construccion de Programas - Material</title><content type='html'>&lt;div align="justify"&gt;Como uds sabran, un curso de técnicas de construccion de programas en el III ciclo de Informática es fundamental, aca les dejo un material confeccionado por mi persona y el docente del curso en el semestre 2008-I para el curso de Tecnicas de Construcción de Programas dictado en la Universidad Nacional de Trujillo. &lt;/div&gt;&lt;div align="justify"&gt;&lt;/div&gt;&lt;ul&gt;&lt;li&gt;&lt;div align="justify"&gt;La primera unidad corresponde al manejo de archivos secuenciales en C++.&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;La segunda unidad corresponde a algoritmia elemental, eficiencia computacional y tecnicas de recurrencia&lt;/div&gt;&lt;/li&gt;&lt;li&gt;&lt;div align="justify"&gt;La ultima unidad referida basicamente a temas de algoritmia avanzada, como son los algoritmos avidos, backtraking &lt;/div&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p align="justify"&gt;Espero les sean de utilidad estos materiales.&lt;/p&gt;&lt;br /&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/papers/MANIPULACION%20DE%20ARCHIVOS%20EN%20C.PDF" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/papers/NOTACION%20ASINTOTICA.pdf" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: #dde5e9 1px solid; PADDING-RIGHT: 0px; BORDER-TOP: #dde5e9 1px solid; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; MARGIN: 3px; BORDER-LEFT: #dde5e9 1px solid; WIDTH: 240px; PADDING-TOP: 0px; BORDER-BOTTOM: #dde5e9 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: #ffffff" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/papers/algoritmia%20avanzada.pdf" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-3812026285246762859?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/3812026285246762859/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=3812026285246762859' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/3812026285246762859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/3812026285246762859'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/08/tecnicas-de-construccion-de-programas.html' title='Tecnicas de Construccion de Programas - Material'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-4862330490439475689</id><published>2008-08-27T19:52:00.001-07:00</published><updated>2008-12-15T07:40:15.792-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='secicomp'/><category scheme='http://www.blogger.com/atom/ns#' term='eventos'/><title type='text'>SECICOMP 2008</title><content type='html'>&lt;p align="justify"&gt;Este año, y con muchas más novedades, la Escuela de Informática de la Universidad Nacional de Trujillo está organizando la III SEMANA DE CIENCIA DE LA COMPUTACION, evento a nivel nacional que se realizará en la ciudad de Trujillo, del 13 al 18 de octubre del presente año. Contaremos con la presencia de personalidades investigadores en las diferentes áreas de Ciencia de la Computación de renombre Local, Nacional e Internacional.&lt;/p&gt;&lt;p align="justify"&gt;Animense, los esperamos...&lt;/p&gt;&lt;p align="justify"&gt;sitio : &lt;a href="http://www.secicomp2008.org/"&gt;http://www.secicomp2008.org/&lt;/a&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p align="justify"&gt;&lt;/p&gt;&lt;p align="center"&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=" height="60" width="462" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"&gt;&lt;param name="_cx" value="12224"&gt;&lt;param name="_cy" value="1588"&gt;&lt;param name="FlashVars" value=""&gt;&lt;param name="Movie" value="http://www.secicomp2008.org/imagenes/link/secicomp_up.swf"&gt;&lt;param name="Src" value="http://www.secicomp2008.org/imagenes/link/secicomp_up.swf"&gt;&lt;param name="WMode" value="Window"&gt;&lt;param name="Play" value="-1"&gt;&lt;param name="Loop" value="-1"&gt;&lt;param name="Quality" value="High"&gt;&lt;param name="SAlign" value=""&gt;&lt;param name="Menu" value="-1"&gt;&lt;param name="Base" value=""&gt;&lt;param name="AllowScriptAccess" value=""&gt;&lt;param name="Scale" value="ShowAll"&gt;&lt;param name="DeviceFont" value="0"&gt;&lt;param name="EmbedMovie" value="0"&gt;&lt;param name="BGColor" value=""&gt;&lt;param name="SWRemote" value=""&gt;&lt;param name="MovieData" value=""&gt;&lt;param name="SeamlessTabbing" value="1"&gt;&lt;param name="Profile" value="0"&gt;&lt;param name="ProfileAddress" value=""&gt;&lt;param name="ProfilePort" value="0"&gt;&lt;param name="AllowNetworking" value="all"&gt;&lt;param name="AllowFullScreen" value="false"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;embed src="http://www.secicomp2008.org/imagenes/link/secicomp_up.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="462" height="60"&gt;&lt;/embed&gt;&lt;br /&gt;&lt;/object&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;p align="left"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-4862330490439475689?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/4862330490439475689/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=4862330490439475689' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4862330490439475689'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4862330490439475689'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/08/secicomp-2008.html' title='SECICOMP 2008'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-4694980622446908247</id><published>2008-08-13T21:44:00.000-07:00</published><updated>2008-12-15T07:44:13.996-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='reconocimiento del habla'/><title type='text'>Determinacion de pitch en una onda de habla</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;El lograr determinar con precisión el periodo de pitch(relacionado fuertemente con la frecuencia fundamental) es un tanto imprecisa, mucho mas en el analisis en el dominio del tiempo que en el del dominio de las frecuencias.&lt;br /&gt;&lt;br /&gt;Lo que queremos encontrar es la forma de un periodo que se repita en la onda y aproximar el periodo de la misma. Hay varias formas de hacerlo, sin embargo propongo un método muy similar al planteado en la bibliografia, el cual es sin embargo ineficiente para propositos de analisis de ondas muy grandes, ademas de ser suceptible a ruido.&lt;br /&gt;&lt;br /&gt;Les dejo el paper para que le echen un vistazo y puedan proporcionar mejoras al mismo.&lt;br /&gt;&lt;/div&gt;&lt;p align="center"&gt;&lt;iframe style="BORDER-RIGHT: rgb(221,229,233) 1px solid; PADDING-RIGHT: 0pt; BORDER-TOP: rgb(221,229,233) 1px solid; PADDING-LEFT: 0pt; PADDING-BOTTOM: 0pt; MARGIN: 3px; BORDER-LEFT: rgb(221,229,233) 1px solid; WIDTH: 240px; PADDING-TOP: 0pt; BORDER-BOTTOM: rgb(221,229,233) 1px solid; HEIGHT: 66px; BACKGROUND-COLOR: rgb(255,255,255)" marginwidth="0" marginheight="0" src="http://cid-47cafc2722acfb1e.skydrive.live.com/embedrowdetail.aspx/papers/informe%7C_pitch.pdf" frameborder="0" scrolling="no"&gt;&lt;/iframe&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-4694980622446908247?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/4694980622446908247/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=4694980622446908247' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4694980622446908247'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/4694980622446908247'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/08/determinacion-de-pitch-en-una-onda-de.html' title='Determinacion de pitch en una onda de habla'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-4471449534293026557.post-2605282696567176554</id><published>2008-05-17T09:16:00.000-07:00</published><updated>2008-12-15T07:44:34.976-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='personales'/><title type='text'>estudiando en la UNT</title><content type='html'>&lt;div style="TEXT-ALIGN: justify"&gt;Aun recuerdo como ayer (no hace mucho porsiaca) cuando ingrese a la U, en medio del alboroto de ser cachimbo y saber como seria en esta nueva etapa... He aqui un pequeño resumen de mi trayectoria en la escueka de Informática de la Universidad Nacional de Trujillo&lt;br /&gt;&lt;br /&gt;Io un estudiante dedicado full time(en mis inicios, aunque no lo crean) no me daba time para divertirme y esas cosas, a pesar de pasar el mayor tiempo en mi casa.. Poco a poco comencé a tener más amigos y a sentarme mas atras que de costumbre(porque adelante siempre da sueño jeje). Las cosas me salieron regular académicamente e iba aprendiendo nuevas cosas, como también comenzaba a conocer más de la forma de trabajo de mis compañeros de grupo...La verdad es que el trajín entre amanecidas y relajos en las semanas posteriores a los examenes parciales es el dia a dia en la UNT, al menos en informática era asi...&lt;br /&gt;&lt;br /&gt;Los profes son una constante incógnita cuando uno ingresa... No sabes como son y te orientas acerca de su exigencia y capacidad por los precedentes en las anteriores promociones que en ocasiones exageran pr intimidar a los recien llegados. Profesores como Cruz Silva, Saavedra Rondo, Chang Camacho, Castillo Diestra, Guevara Ruiz, Cruz Florián, no todos con el mismo nivel claro esta, pero de alguna forma u otra al final el alumno es quien terminada aprendiendo al propio estilo peruano.. no hay imposibles no?&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Llegué al 5 ciclo, con nuevas espectativas de estudio, nuevas metas, io siempre proyectándome a futuro como de costumbre, y por motivos de salud en los que corria riesgo mu propia vida tuve que dejar la Universidad hasta que termine el tratamiento... En general pensaba que iba a tener el suficiente tiempo para cumplir mis metas y lograr todo lo que me proponia... en ningun momento se me cruzó por la cabeza que me podia morir en cualquier instante y que no habia cumplido mis propositos en el mundo... fue un baldazo de agua fría que de un momento a otro me cayo sin esperarlo, baldazo que necesitaba recibir a mi parecer.. Dios sabe por qué hace las cosas&lt;br /&gt;&lt;br /&gt;Pronto regresé a la Universidad, algo retrasado(por el semestre que me atrasé) pero supe enfrentar al tiempo y las ganas renovadas de mejorar y ser alguien mucho mejor en la vida, por poco alcanzo a los de mi promoción(que actualmente ia son egresados pero sin bachillerato por el trámite que toma obtener el grado), pero salgo este semestre a enfrentar nuevas cosas y nuevos retos, con las mismas ganas y el mismo nerviosismo como cuando se ingresa a algo nuevo... Nos veremos pronto promo .**...&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/4471449534293026557-2605282696567176554?l=jalvarezb.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://jalvarezb.blogspot.com/feeds/2605282696567176554/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=4471449534293026557&amp;postID=2605282696567176554' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/2605282696567176554'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/4471449534293026557/posts/default/2605282696567176554'/><link rel='alternate' type='text/html' href='http://jalvarezb.blogspot.com/2008/05/estudiando-en-la-unt.html' title='estudiando en la UNT'/><author><name>jhonAkw</name><uri>http://www.blogger.com/profile/00125333264766257420</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://2.bp.blogspot.com/_O1NmM8vPcUg/Sh9DZoUarPI/AAAAAAAAC14/_PzY_jgVAxc/S220/27052009(013).jpg'/></author><thr:total>0</thr:total></entry></feed>
