<?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-2477025624042505356</id><updated>2012-02-16T10:06:06.228-05:00</updated><category term='Ing. de Software'/><category term='MSSQL'/><category term='SCRUM'/><category term='Mi_Vida'/><category term='Netbeans_VisualWeb_JSF'/><category term='VBasic'/><category term='Mis_Enlaces'/><category term='MySQL'/><category term='Mis_Frases'/><category term='PostgreSQL'/><category term='Ciencias_de_la_Computacion'/><category term='Chistes Informaticos'/><category term='TIC&apos;s'/><category term='Netbeans_Swing'/><category term='JasperReports_IReport'/><title type='text'>Mis Ayuda Memoria</title><subtitle type='html'>Hola, al fin decidi hacer mi Blog para todas esas cositas que he ido aprendiendo experimentando, buscando y ayudado por otros sobre el "oscuro" mundo de Netbeans con Java, VBasic, MySQL, PostgreSQL, Ing. de Software..etc etc :o)  en si muchas cosas que me han ido interesado en mi vida de Hacking,  espero que les ayude a tod@s y a mi tambien, porque a veces solo queremos lo mas simple para que las cosas funcionen.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>47</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-3285279622751733346</id><published>2011-11-16T12:20:00.001-05:00</published><updated>2011-11-16T12:23:04.298-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 14</title><content type='html'>"Las cicatrices nos recuerdan que el pasado fue real."&lt;br /&gt;Hannibal Lecter&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-3285279622751733346?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/3285279622751733346/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2011/11/frase-14.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3285279622751733346'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3285279622751733346'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2011/11/frase-14.html' title='Frase 14'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4179763570683047436</id><published>2011-11-16T12:01:00.002-05:00</published><updated>2011-11-16T12:19:17.363-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='JasperReports_IReport'/><title type='text'>Cambiar coma por punto decimal en IReport/JasperReport</title><content type='html'>Bueno, despues de tiempo compartire algo, el problema es cambiar la coma decimal por punto decimal en un campo numerico en un reporte Jasper. IReport y Jaspercompiler toman por default el "locale" del sistema pero tambien se puede forzar a que sea diferente.&lt;br /&gt;&lt;br /&gt;En IReport, si quieren q el punto sea el separador decimal y la coma el separador de miles, deben entrar a Herramientas-&amp;gt;Opciones-&amp;gt;IReport, en la ficha "Compilation and Execution" cambiar el valor de "Report Locale", para mi caso use "Ingles (Estados Unidos)" y lito se compila y funciona.&lt;br /&gt;&lt;br /&gt;Ahora, mis reportes los compilo y muestro desde un jsp, alli lo que se debe hacer es pasar un parametro indicando el "locale". Para esto primero agregamos el "Import" respectivo en la cabecera:&lt;br /&gt;&lt;br /&gt;&amp;lt;%@page import="net.sf.jasperreports.engine.JRParameter"%&amp;gt;&lt;br /&gt;&lt;br /&gt;y luego agregamos el parametro antes de compilarlo, quedando algo asi:&lt;br /&gt;&lt;br /&gt;Map parameters = new HashMap();&lt;br /&gt;parameters.put("ID", (String)request.getParameter("nro_id"));&lt;br /&gt;&lt;br /&gt;parameters.put(JRParameter.REPORT_LOCALE, Locale.US);&lt;br /&gt;&lt;br /&gt;JasperReport report = JasperCompileManager.compileReport(reportPath);&lt;br /&gt;JasperPrint print = JasperFillManager.fillReport(report, parameters, ConnrsProyectos);&lt;br /&gt;&lt;br /&gt;Ok, espero a alguien mas le sirva.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4179763570683047436?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4179763570683047436/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2011/11/cambiar-coma-por-punto-decimal-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4179763570683047436'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4179763570683047436'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2011/11/cambiar-coma-por-punto-decimal-en.html' title='Cambiar coma por punto decimal en IReport/JasperReport'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4791449561566643863</id><published>2011-03-08T10:47:00.002-05:00</published><updated>2011-03-08T10:51:18.903-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_Swing'/><title type='text'>Fijar el ancho de columna de un JTable por codigo</title><content type='html'>Aporte de Matias Varela :&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;Para definir el ancho fijo de una columna:&lt;br /&gt;&lt;br /&gt;Suponiendo que tablaDeIngresos es el Jtable:&lt;br /&gt;// le establezco el ancho&lt;br /&gt;tablaDeIngresos.&lt;wbr&gt;getColumnModel().getColumn(0).&lt;wbr&gt;setWidth(100);&lt;br /&gt;// hago que no puede cambiar&lt;br /&gt;tablaDeIngresos.&lt;wbr&gt;getColumnModel().getColumn(0).&lt;wbr&gt;setResizable(false);&lt;br /&gt;&lt;br /&gt;Espero sirva. Hay que tener en cuenta que lo anterior va después del&lt;br /&gt;&lt;br /&gt;tablaDeIngresos.setModel(dtm);&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span class="Apple-style-span" style="border-collapse: collapse; font-family: arial, sans-serif; font-size: 13px; "&gt;That's all&lt;/span&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4791449561566643863?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4791449561566643863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2011/03/fijar-el-ancho-de-columna-de-un-jtable.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4791449561566643863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4791449561566643863'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2011/03/fijar-el-ancho-de-columna-de-un-jtable.html' title='Fijar el ancho de columna de un JTable por codigo'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5250287034603541236</id><published>2011-01-25T14:43:00.003-05:00</published><updated>2011-01-25T14:53:25.894-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_Swing'/><title type='text'>Poblar/llenar una Grilla o JTable con un Resultset</title><content type='html'>Holas, siempre olvido como hacerlo... asi que mejor lo pongo aqui y si a alguien mas le sirve excelente.&lt;br /&gt;&lt;br /&gt;El JTable se llama "tblDatos", este ya lo hemos editado con el editor visual de columnas en Netbeans (V6.9.1) (click derecho sobre el JTable -&gt; Table Contents.. -&gt; Columns) y hemos agregado o quitado las que necesitamos , asi como los Titulos y el tipo de contenido.&lt;br /&gt;&lt;br /&gt;El codigo seria el siguiente:&lt;br /&gt;&lt;br /&gt;===========================================================&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;SQL="select * from clientes";&lt;br /&gt;rst=stmt.executeQuery(SQL);&lt;br /&gt;           &lt;br /&gt;if(rst!=null)&lt;br /&gt;{&lt;br /&gt;             int f=0;&lt;br /&gt;             ((DefaultTableModel) tblDatos.getModel()).setRowCount(0);&lt;br /&gt;             while(rst.next())&lt;br /&gt;             {&lt;br /&gt;               ((DefaultTableModel) tblDatos.getModel()).setRowCount(tblDatos.getRowCount()+1);&lt;br /&gt;              &lt;br /&gt;               tblDatos.setValueAt(rst.getString("codcliente").toString(),f,0);&lt;br /&gt;               tblDatos.setValueAt(rst.getString("cliente"),f,1);&lt;br /&gt;               tblDatos.setValueAt(rst.getDouble("monto"),f,2);&lt;br /&gt;               f++;&lt;br /&gt;}&lt;br /&gt;lblTotal.setText("TOTAL CLIENTES. =&gt; "+String.valueOf(f));&lt;br /&gt;rst.close();   &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;===========================================================&lt;br /&gt;&lt;br /&gt;That´s all.&lt;br /&gt;bye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5250287034603541236?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5250287034603541236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2011/01/poblarllenar-una-grilla-o-jtable-con-un.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5250287034603541236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5250287034603541236'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2011/01/poblarllenar-una-grilla-o-jtable-con-un.html' title='Poblar/llenar una Grilla o JTable con un Resultset'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7124557041405102235</id><published>2010-10-25T09:06:00.001-05:00</published><updated>2010-10-25T09:06:48.551-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 13</title><content type='html'>“Los analfabetos del siglo XXI no serán aquellos que no sepan leer y  escribir, sino aquellos que no sepan aprender, desaprender y  reaprender."&lt;br /&gt;Alvin Toffler&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7124557041405102235?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7124557041405102235/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/10/frase-13.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7124557041405102235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7124557041405102235'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/10/frase-13.html' title='Frase 13'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7193265564078508900</id><published>2010-08-24T17:24:00.002-05:00</published><updated>2010-08-24T17:27:41.598-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 12</title><content type='html'>A pesar de que muchos dirian que no es una frase "digna" de recordarla, pero dada la situación de nuestro país, yo creo que es digna de recordarse siempre.&lt;br /&gt;&lt;br /&gt;"El problema no es tu contrato basura, el problema es la basura que te contrata"&lt;br /&gt;Gremio de Construcción Civil - Perú&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7193265564078508900?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7193265564078508900/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/08/frase-12.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7193265564078508900'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7193265564078508900'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/08/frase-12.html' title='Frase 12'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-2640547071954874594</id><published>2010-08-20T16:27:00.003-05:00</published><updated>2010-08-20T16:52:15.844-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Chistes Informaticos'/><title type='text'>Maximas Geek de Chuck Norris</title><content type='html'>&lt;strong&gt;1.&lt;/strong&gt; Chuck Norris invento C++ despues de darle una patada giratoria a C.&lt;br /&gt;&lt;strong&gt;2.&lt;/strong&gt; Chuck Norris es el "Domain controller".&lt;br /&gt;&lt;strong&gt;3.&lt;/strong&gt; Chuck Norris tiene el IP 0.0.0.0&lt;br /&gt;&lt;strong&gt;4.&lt;/strong&gt; Chuck Norris puede hacerle ping a 256.256.256.256 y obtener respuesta.&lt;br /&gt;&lt;strong&gt;5.&lt;/strong&gt; Chuck Norris puede hackear cualquier banco desde su palm.&lt;br /&gt;&lt;strong&gt;6.&lt;/strong&gt; La PC de Chuck Norris puede cargar Windows XP Pro con solo tener instalado DOS 6.2.&lt;br /&gt;&lt;strong&gt;7.&lt;/strong&gt; El EMail de Chuck Norris es ChuckNorris. El ES Internet.&lt;br /&gt;&lt;strong&gt;8.&lt;/strong&gt; Chuck Norris es "mailer-daemon".&lt;br /&gt;&lt;strong&gt;9.&lt;/strong&gt; Chuck Norris es Dr Watson.&lt;br /&gt;&lt;strong&gt;10.&lt;/strong&gt; &lt;code&gt;format c:&lt;/code&gt; es el pedido para que Chuck Norris le de una patada giratoria a tu PC.&lt;br /&gt;&lt;strong&gt;11.&lt;/strong&gt; Lenguaje Maquina es el otro nombre para el lenguaje de Chuck Norris.&lt;br /&gt;&lt;strong&gt;12.&lt;/strong&gt; El CPU de Chuck Norris no tiene ventilador.&lt;br /&gt;&lt;strong&gt;13.&lt;/strong&gt; Chuck Norris puede escribir DVDs en un floppy drive.&lt;br /&gt;&lt;strong&gt;14.&lt;/strong&gt; Chuck Norris invento Internet.&lt;br /&gt;&lt;strong&gt;15.&lt;/strong&gt; Chuck Norris puede pegar imagenes en Notepad.&lt;br /&gt;&lt;strong&gt;16.&lt;/strong&gt; Chuck Norris con una patada giratoria convierte un modem 14400k en  ADSL.&lt;br /&gt;&lt;strong&gt;17.&lt;/strong&gt; La impresora matricial de Chuck Norris imprime fotos – en color.&lt;br /&gt;&lt;strong&gt;18.&lt;/strong&gt; Chuck Norris usa Notepad como una base de datos&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;strong&gt;20.&lt;/strong&gt; Chuck Norris monitor has no glare…no-one glares at Chuck Norris.&lt;br /&gt;&lt;strong&gt;21.&lt;/strong&gt; Chuck Norris puede editar archivos PDF.&lt;br /&gt;&lt;strong&gt;22.&lt;/strong&gt; Chuck Norris quema CDs con sus manos.&lt;br /&gt;&lt;strong&gt;23.&lt;/strong&gt; Chuck Norris puede descargar mp3s de Metallica usando Naspter.&lt;br /&gt;&lt;strong&gt;24.&lt;/strong&gt; Chuck Norris tiene una cuenta yahoo con hotmail.&lt;br /&gt;&lt;strong&gt;25.&lt;/strong&gt; Chuck Norris tiene un CPU Intel en una placa madre AMD.&lt;br /&gt;&lt;strong&gt;26.&lt;/strong&gt; Chuck Norris puede programar una MAC con macros de excel.&lt;br /&gt;&lt;strong&gt;27.&lt;/strong&gt; Chuck Norris puede hacer correr Windows Vista en un Pentium I a 133 Mhz&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;28.&lt;/span&gt; Los desarrolladores de Ubuntu crearon el comando sudo porque no pensaron en Chuck Norris&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;29.&lt;/span&gt; Chuck Norris respondió un hoax y salvó a un niño enfermo.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;30.&lt;/span&gt;  Chuck Norris puede programar torres de hanoi sin recursion.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-2640547071954874594?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/2640547071954874594/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/08/maximas-geek-de-chuck-norris.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/2640547071954874594'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/2640547071954874594'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/08/maximas-geek-de-chuck-norris.html' title='Maximas Geek de Chuck Norris'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4571216609881180394</id><published>2010-07-27T19:09:00.001-05:00</published><updated>2010-07-27T19:11:14.554-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 11</title><content type='html'>"En el mundo actual, se está invirtiendo cinco veces más en medicamentos para la virilidad masculina y silicona para mujeres, que en la cura del Alzheimer. De aquí a algunos años, tendremos viejas de tetas grandes y viejos con pene duro, pero ninguno de ellos se acordará para que sirven"&lt;br /&gt;&lt;br /&gt;Drauzio Varella - Oncólogo brasileño ganador del Nobel de medicina.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4571216609881180394?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4571216609881180394/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/07/frase-11.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4571216609881180394'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4571216609881180394'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/07/frase-11.html' title='Frase 11'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7259998633248540246</id><published>2010-06-29T21:36:00.001-05:00</published><updated>2010-07-27T19:09:13.037-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 10</title><content type='html'>"Imagino k esa es la parte de la persona k para ser completa necesita k alguien tambien lo necesite&lt;br /&gt;Dios creo hombre y mujer para que estuvieran juntos."&lt;br /&gt;&lt;br /&gt;GPV&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7259998633248540246?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7259998633248540246/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/06/imagino-k-esa-es-la-parte-de-la-persona.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7259998633248540246'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7259998633248540246'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/06/imagino-k-esa-es-la-parte-de-la-persona.html' title='Frase 10'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-6872790982994827586</id><published>2010-06-05T10:15:00.002-05:00</published><updated>2010-06-05T10:20:04.111-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIC&apos;s'/><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><category scheme='http://www.blogger.com/atom/ns#' term='Ciencias_de_la_Computacion'/><title type='text'>Un buen programa de Analisis de Grafos</title><content type='html'>&lt;div&gt;A todo los interesados en las disciplinas de:&lt;br /&gt;&lt;br /&gt;Matematica Discreta&lt;br /&gt;Teoria  de Grafos&lt;/div&gt; &lt;div&gt;Analisis de Algoritmos&lt;br /&gt;Investigacion de Operaciones&lt;br /&gt;&lt;br /&gt;pos hay este programa que se llama "Grafos" es free, me parece interesante, lo pueden descargar de:&lt;br /&gt;http://personales.upv.es/arodrigu/Grafos/funciones.htm&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-6872790982994827586?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/6872790982994827586/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/06/un-buen-programa-de-analisis-de-grafos.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6872790982994827586'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6872790982994827586'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/06/un-buen-programa-de-analisis-de-grafos.html' title='Un buen programa de Analisis de Grafos'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-8962592047942272402</id><published>2010-04-23T10:33:00.001-05:00</published><updated>2010-04-23T10:35:04.760-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Muchos Libros de Ingenieria, Administracion e Informatica para descarga</title><content type='html'>Muy buena recopilacion de libros, gracias VisualSAC&lt;br /&gt;&lt;br /&gt;http://visualingenieria.blogspot.com/search?updated-min=2006-01-01T00%3A00%3A00-05%3A00&amp;amp;updated-max=2007-01-01T00%3A00%3A00-05%3A00&amp;amp;max-results=38&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-8962592047942272402?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/8962592047942272402/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/04/muchos-libros-de-ingenieria.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8962592047942272402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8962592047942272402'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/04/muchos-libros-de-ingenieria.html' title='Muchos Libros de Ingenieria, Administracion e Informatica para descarga'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7446935582989355236</id><published>2010-04-05T10:41:00.002-05:00</published><updated>2010-04-05T10:49:15.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='MySQL'/><title type='text'>Usar un alias de campo en otro campo</title><content type='html'>Esto se podia hacer en MSAccess muy sencillo, por ejemplo:&lt;br /&gt;&lt;br /&gt;select (punit*cantidad) as total, total/1.19 as vventa from factura&lt;br /&gt;&lt;br /&gt;el alias total es usado para general el alias vventa.&lt;br /&gt;&lt;br /&gt;En MySQL se resuelve usando variables:&lt;br /&gt;&lt;br /&gt;SELECT @total:=(punit*cantidad) as total, &lt;br /&gt;  @total/1.19 AS vventa FROM factura&lt;br /&gt;&lt;br /&gt;That's all&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7446935582989355236?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7446935582989355236/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/04/usar-un-alias-de-campo-en-otro-campo.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7446935582989355236'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7446935582989355236'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/04/usar-un-alias-de-campo-en-otro-campo.html' title='Usar un alias de campo en otro campo'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5591524312751344007</id><published>2010-03-19T15:28:00.002-05:00</published><updated>2010-03-19T15:32:49.397-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Cambiar contraseña del usuario postgres</title><content type='html'>Esto lo he probado en postgres 8.3 y 8.4 sobre CentOS 5.4&lt;br /&gt;&lt;br /&gt; - En una sesion de terminal como root :&lt;br /&gt;&lt;br /&gt;su postgres&lt;br /&gt;&lt;br /&gt;psql template1 (template1 o alguna base q tengan creada)&lt;br /&gt;&lt;br /&gt;- ya en el cliente psql poner&lt;br /&gt;&lt;br /&gt;\password postgres&lt;br /&gt;&lt;br /&gt;- Ahi les pedira el nuevo password, luego salen con \q y listo... es todo.&lt;br /&gt;&lt;br /&gt;Bye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5591524312751344007?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5591524312751344007/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2010/03/cambiar-contrasena-del-usuario-postgres.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5591524312751344007'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5591524312751344007'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2010/03/cambiar-contrasena-del-usuario-postgres.html' title='Cambiar contraseña del usuario postgres'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-1632141150619993685</id><published>2009-09-30T09:37:00.003-05:00</published><updated>2009-09-30T09:42:46.625-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIC&apos;s'/><title type='text'>Matar una conexion de red activa en windows XP</title><content type='html'>Holas, muchas veces nos ha pasado que hacemos un netstat para ver las conexiones activas de nuestro windowsXP y queremos cerrar o terminar alguna de ellas, para hacerlo lo que se debe hacer es matar el proceso que origina esta conexion. Entonces pasos para hacerlo, en una ventana de comandos hacemos lo sig:&lt;br /&gt;&lt;br /&gt;1. Listar las conexiones activas con su PID&lt;br /&gt;netstat -o&lt;br /&gt;&lt;br /&gt;2. Matamos la conexion de la cual hemos identificado su PID.&lt;br /&gt;taskkill /PID XXXX&lt;br /&gt;&lt;br /&gt;* Si les dijera que se debe forzar para poder matar la conexion, entonces seria asi:&lt;br /&gt;taskkill /F /PID XXXX&lt;br /&gt;&lt;br /&gt;Ok, eso es todo, bye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-1632141150619993685?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/1632141150619993685/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/09/matar-una-conexion-de-red-activa-en.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1632141150619993685'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1632141150619993685'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/09/matar-una-conexion-de-red-activa-en.html' title='Matar una conexion de red activa en windows XP'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-2253808654975513683</id><published>2009-09-02T10:09:00.002-05:00</published><updated>2009-09-02T10:15:48.912-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBasic'/><title type='text'>Instalar Visual Studio 6.0 sin el JVM</title><content type='html'>Hola, bueno este es un TIP muy rapidito y en si es la traduccion y resumen del post original de http://www.muujware.com/journal.asp?JournalItemID=1302882294.&lt;br /&gt;&lt;br /&gt;Cuando instalamos Visual Studio 6 (siiii!!! aun lo uso.. y mucha gente tambien :o) ) nos pide obligatoriamente instalar su viejo y obsoleto JVM (Java Virtual Machine) y no te deja continuar con la instalacion de VS6 hasta que no instales el JVM.&lt;br /&gt;Para evitar esta instalacion solo debes crear el archivo &lt;kbd&gt;msjava.dll en la carpeta C:\windows y listo, el instalador de VS6 ya no pedira instalar el JVM.&lt;br /&gt;&lt;br /&gt;Bye&lt;br /&gt;&lt;/kbd&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-2253808654975513683?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/2253808654975513683/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/09/instalar-visual-studio-60-sin-el-jvm.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/2253808654975513683'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/2253808654975513683'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/09/instalar-visual-studio-60-sin-el-jvm.html' title='Instalar Visual Studio 6.0 sin el JVM'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5303181265788915928</id><published>2009-08-20T10:41:00.001-05:00</published><updated>2009-08-20T10:43:38.865-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 9</title><content type='html'>"Tratar a tus usuarios como colaboradores es el comienzo menos complicado para mejorar con rapidez y depurar eficientemente un programa"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5303181265788915928?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5303181265788915928/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/08/frase-9.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5303181265788915928'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5303181265788915928'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/08/frase-9.html' title='Frase 9'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-1286847650630468324</id><published>2009-06-30T14:24:00.001-05:00</published><updated>2009-06-30T14:31:38.493-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_VisualWeb_JSF'/><title type='text'>Trabajando con Netbeans 6.5.1 y Visual Web JSF - Parte 2</title><content type='html'>&lt;span&gt;&lt;span&gt;Holas a todo@s, bueno aqui va la segunda parte del manual /guia.. mejor me apuro con esto porque ya salio la version 6.7 de Netbeans y derepente ya no sirva mucho esta guia,,jajaja,, no lo creo.. pero siempre hay que estar preparado para algun cambio..&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PARTE II. CREANDO LA BASE DE D&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;ATOS &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Y CONECTANDOLA A NUESTRO PROYECTO&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;1. Crear nuestra base de datos en PostgreSQL.&lt;/span&gt;&lt;br /&gt;Usando cualquier Administrador (psql, pgadmin3, pgmanager, etc etc)  para PostgreSQL creamos una base de datos que se llame "biblioteca".&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;2. Haciendo la conexion.&lt;/span&gt;&lt;br /&gt;Vamos a netbeans y seleccionamos la ficha Services, alli desplegamos el Nodo Databases -&gt; Drivers, luego hacemos click derecho en sobre PostgreSQL* y escogemos "Connect using..."&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RhPJJRySnYs/SkpfuOcmmBI/AAAAAAAAAEw/LAbgonPnJnY/s1600-h/fig2_01.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 268px;" src="http://3.bp.blogspot.com/_RhPJJRySnYs/SkpfuOcmmBI/AAAAAAAAAEw/LAbgonPnJnY/s320/fig2_01.jpg" alt="" id="BLOGGER_PHOTO_ID_5353196354839943186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;*Si no tenemos el driver listado debemos agregarlo, bajando el driver jdbc para PostgreSQL de &lt;a href="http://pgfoundry.org/projects/jdbc/"&gt;http://pgfoundry.org/projects/jdbc/&lt;/a&gt; y agregandolo con las opciones que netbeans nos da.&lt;br /&gt;&lt;br /&gt;Luego nos aparece la ventana para configurar nuestra conexion usando el driver jdbc de PostgreSQL, asi que solo ponemos lo que corresponda en cada campo, mas o menos como la figura siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/Skpf2PRdAqI/AAAAAAAAAE4/YHkSmzM9h9Q/s1600-h/fig2_02.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 314px; height: 320px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/Skpf2PRdAqI/AAAAAAAAAE4/YHkSmzM9h9Q/s320/fig2_02.jpg" alt="" id="BLOGGER_PHOTO_ID_5353196492500566690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Le damos click en "OK", nos pide escoger el esquema, asi que seleccionamos "public" y hacemos click en "Ok",&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RhPJJRySnYs/SkpgBfamvLI/AAAAAAAAAFA/DOr5m74Xj04/s1600-h/fig2_03.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 206px;" src="http://4.bp.blogspot.com/_RhPJJRySnYs/SkpgBfamvLI/AAAAAAAAAFA/DOr5m74Xj04/s320/fig2_03.jpg" alt="" id="BLOGGER_PHOTO_ID_5353196685812481202" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;con lo que tenemos un nuevo nodo en el arbol bajo Databases.. algo como la figura:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/SkpgMseGvrI/AAAAAAAAAFI/HMwkrBEQojc/s1600-h/fig2_04.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 148px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/SkpgMseGvrI/AAAAAAAAAFI/HMwkrBEQojc/s320/fig2_04.jpg" alt="" id="BLOGGER_PHOTO_ID_5353196878295383730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;desplegamos el nuevo nodo y veremos 3 carpetas "Tables", "Views" y "Procedures". Hacemos click derecho sobre "Tables" y escogemos la opcion "Create Table"..&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/SkpgbVf0ZxI/AAAAAAAAAFQ/r8TSvN6YE6U/s1600-h/fig2_05.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 229px; height: 67px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/SkpgbVf0ZxI/AAAAAAAAAFQ/r8TSvN6YE6U/s320/fig2_05.jpg" alt="" id="BLOGGER_PHOTO_ID_5353197129826592530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;nos aparece el formulario de creacion de una nueva tabla, asi que crearemos nuestra tabla que se llame "libros" y con los campos como se muestran en la figura (para agregar un nuevo campo solo debemos hacer click en el boton "Add column"):&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/Skpi2MfM9MI/AAAAAAAAAGA/lyVfE3c2R7s/s1600-h/fig2_06.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 157px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/Skpi2MfM9MI/AAAAAAAAAGA/lyVfE3c2R7s/s320/fig2_06.jpg" alt="" id="BLOGGER_PHOTO_ID_5353199790287811778" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Asi podemos crear tambien las otras tablas necesarias para nuestra aplicacion: "usuarios" y "prestamo_de_libros", soy consciente de que no uso ningun estandar de nomenclatura ni que el diseño de la base de datos es el adecuado y bla bla bla.. solo es un EJEMPLO con fines netamente didacticos :o), aun asi recomiendo dar integridad referencial (claves foraneas en la tabla "prestamo_de_libros" con algun otro administrador de PostgreSQL de tal forma que cuando despleguemos el nodo "Foreign keys" de la tabla "prestamo_de_libros" tengamos algo como la figura siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RhPJJRySnYs/SkpiWmIZxbI/AAAAAAAAAF4/yL_F2zQPV38/s1600-h/fig2_07.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 274px; height: 320px;" src="http://4.bp.blogspot.com/_RhPJJRySnYs/SkpiWmIZxbI/AAAAAAAAAF4/yL_F2zQPV38/s320/fig2_07.jpg" alt="" id="BLOGGER_PHOTO_ID_5353199247415690674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bueno para los que deseen solamente crear la base de datos desde cualquier otro medio y empezar a hacer la aplicacion aqui les doy el script de creacion de la base de datos "biblioteca":&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE TABLE public.libros (&lt;br /&gt;codigo smallint NOT NULL,&lt;br /&gt;titulo character varying(45),&lt;br /&gt;autor character varying(45),&lt;br /&gt;isbn character varying(45)&lt;br /&gt;) WITHOUT OIDS;&lt;br /&gt;--&lt;br /&gt;CREATE TABLE public.usuarios (&lt;br /&gt;codigo smallint NOT NULL,&lt;br /&gt;nombre character varying(50),&lt;br /&gt;direccion character varying(50),&lt;br /&gt;documento character varying(15),&lt;br /&gt;telefono character varying(15),&lt;br /&gt;fecha_nacimiento date,&lt;br /&gt;sexo character(1)&lt;br /&gt;) WITHOUT OIDS;&lt;br /&gt;--&lt;br /&gt;CREATE TABLE public.prestamo_de_libros (&lt;br /&gt;numero integer NOT NULL,&lt;br /&gt;fecha date NOT NULL,&lt;br /&gt;usuario smallint NOT NULL,&lt;br /&gt;libro smallint NOT NULL,&lt;br /&gt;fecha_de_devolucion date NOT NULL&lt;br /&gt;) WITHOUT OIDS;&lt;br /&gt;--&lt;br /&gt;ALTER TABLE ONLY libros&lt;br /&gt;ADD CONSTRAINT libros_pkey PRIMARY KEY (codigo);&lt;br /&gt;--&lt;br /&gt;ALTER TABLE ONLY usuarios&lt;br /&gt;ADD CONSTRAINT usuarios_pkey PRIMARY KEY (codigo);&lt;br /&gt;--&lt;br /&gt;ALTER TABLE ONLY prestamo_de_libros&lt;br /&gt;ADD CONSTRAINT prestamo_de_libros_pkey PRIMARY KEY (numero);&lt;br /&gt;--&lt;br /&gt;ALTER TABLE ONLY prestamo_de_libros&lt;br /&gt;ADD CONSTRAINT prestamo_de_libros_fk FOREIGN KEY (usuario) REFERENCES usuarios(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;&lt;br /&gt;--&lt;br /&gt;ALTER TABLE ONLY prestamo_de_libros&lt;br /&gt;ADD CONSTRAINT prestamo_de_libros_fk1 FOREIGN KEY (libro) REFERENCES libros(codigo) ON UPDATE RESTRICT ON DELETE RESTRICT;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;3. Enlazando el componente "Table".&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Abrimos la pagina "FrmLibros" que hicimos anteriormente, luego vamos a nuestra paleta de componentes y jalamos un componente de tipo "Table" a la pagina,&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/SkplQd60L6I/AAAAAAAAAGQ/nELuf6C8qdo/s1600-h/fig2_12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 224px; height: 183px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/SkplQd60L6I/AAAAAAAAAGQ/nELuf6C8qdo/s320/fig2_12.jpg" alt="" id="BLOGGER_PHOTO_ID_5353202440666886050" border="0" /&gt;&lt;/a&gt;&lt;/pre&gt;&lt;br /&gt;le cambiamos el titulo a "LIBROS", y quedara algo asi:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/SkpiEgSzxtI/AAAAAAAAAFw/qpr-Bekh9ik/s1600-h/fig2_08.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 146px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/SkpiEgSzxtI/AAAAAAAAAFw/qpr-Bekh9ik/s320/fig2_08.jpg" alt="" id="BLOGGER_PHOTO_ID_5353198936611079890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;luego vamos a la ficha "Services", seleccionamos nuestra tabla "Libros" y con el mouse la arrastramos y soltamos sobre el objeto "Table1" que acabamos de colocar en la pagina "FrmLibros" que tenemos abierta, aqui se puede demorar unos segundos en refrescar, y luego tendremos algo como se muestra:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/SkpheXkH0uI/AAAAAAAAAFo/6DwoStbOULc/s1600-h/fig2_09.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 222px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/SkpheXkH0uI/AAAAAAAAAFo/6DwoStbOULc/s320/fig2_09.jpg" alt="" id="BLOGGER_PHOTO_ID_5353198281432748770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Con esto se ha enlazado el Table con la tabla Libros de la base de datos. Se pueden dar algunas opciones para personalizar el diseño de la tabla usando la ventana de propiedades o haciendo click derecho sobre la tabla y escogiendo la opcion "Table Layout...". Por ejemplo vamos a corregir los titulos para que esten en mayusculas. Hacemos click derecho sobre Table1, escogemos "Table Layout...":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RhPJJRySnYs/SkphDAWS8oI/AAAAAAAAAFg/K5bbuH4TclY/s1600-h/fig2_10.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 203px;" src="http://3.bp.blogspot.com/_RhPJJRySnYs/SkphDAWS8oI/AAAAAAAAAFg/K5bbuH4TclY/s320/fig2_10.jpg" alt="" id="BLOGGER_PHOTO_ID_5353197811344274050" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Alli podemos modificar muchos atributos mas, como alineacion de los datos, ancho de columnas, quitar columnas, agregar, etc etc.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RhPJJRySnYs/SkpgsNIqNLI/AAAAAAAAAFY/MmVeP7MswZU/s1600-h/fig2_11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 278px; height: 320px;" src="http://3.bp.blogspot.com/_RhPJJRySnYs/SkpgsNIqNLI/AAAAAAAAAFY/MmVeP7MswZU/s320/fig2_11.jpg" alt="" id="BLOGGER_PHOTO_ID_5353197419639747762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Con esto ya podemos ejecutar "F6" y podremos ver los datos de nuestra tabla Libros.&lt;br /&gt;Bueno dejo esta parte ahi, sino me demorarare mas en publicar.. la proxima si sera el insertar borrar y actualizar datos... y prometo que sera en menos tiempo  que este post :o) , ademas revisare la nueva version de Netbeans 6.7, haber que cambios hay para VisualWeb. See yaaa&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-1286847650630468324?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/1286847650630468324/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/06/trabajando-con-netbeans-651-y-visual.html#comment-form' title='16 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1286847650630468324'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1286847650630468324'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/06/trabajando-con-netbeans-651-y-visual.html' title='Trabajando con Netbeans 6.5.1 y Visual Web JSF - Parte 2'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RhPJJRySnYs/SkpfuOcmmBI/AAAAAAAAAEw/LAbgonPnJnY/s72-c/fig2_01.jpg' height='72' width='72'/><thr:total>16</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5126593201785608078</id><published>2009-06-24T14:21:00.002-05:00</published><updated>2009-06-24T14:22:49.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>Migrando de MSSQL2000 a PostgreSQL8.3 - Conclusiones</title><content type='html'>Ya termine la migración!!!!.. pero... hubieron cosas y cositas que resolver en el camino... asi queee... que mejor que compartirlas con uds...&lt;br /&gt;&lt;br /&gt;Estas son las cosas que pasaron o que siempre se deben tener en consideración al momento de hacer una migración de este tipo:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;No olvidar la diferencia de mayusculas minusculas, si desean usar Mayusculas o caracteres no ingleses como la ñ o tildes ponerlo siempre entre comillas (").&lt;/li&gt;&lt;li&gt;El driver ODBC no puede capturar resultados de cursores; es decir funciones que devuelven tipos cursor o refcursor. Segun algunos se puede usando tres instrucciones:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;  &lt;br /&gt;       begin;&lt;br /&gt;       select * from tufuncion();&lt;br /&gt;       fetch all from "nombre del cursor devuelto";&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&amp;lt;&amp;lt;&amp;lt;&amp;lt;Yo no lo pude hacer funcionar en VB6 ni en Delphi, asi que use records, el tiempo ya presionaba mucho.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El driver OleDB cuando retorna mas de 8000 registros aprox. se vuelve lento muy lento. ODBC es siempre rapido pero hay que definir el record para retornar valores.&lt;/li&gt;&lt;li&gt;En Delphi fue muy muy ineficiente usar OleDB asi que alli solo se uso ODBC.&lt;/li&gt;&lt;li&gt;La instruccion "exists" en Postgres es muy lenta, en lo posible se debe evitar su uso; siempre hay una forma de evitarla con lefts joins, right joins y esas cosas.&lt;/li&gt;&lt;li&gt;No existe la sentencia TOP en Select's, en MSSQL se hace algo como: &lt;code&gt;SELECT TOP 10 * FROM tutabla&lt;/code&gt;, en PostgreSQL seria: &lt;code&gt;SELECT * FROM tutabla LIMIT 10&lt;/code&gt; , dicen que tambien se puede usar el atributo 'maxrows' de CFQUERY, pero nunca lo use y no tengo idea a que se refieren :o).&lt;/li&gt;&lt;li&gt;La sentencia LIKE diferencia mayusculas y minusculas en postgresql, se puede solucionar con algo como esto:  &lt;code&gt;SELECT * FROM tutabla WHERE LOWER(columna) LIKE '%#LCase(var)#%'&lt;/code&gt; (O tambien se puedes usar el operador ILIKE).&lt;/li&gt;&lt;li&gt;El operador mas (+) no se usa para concatenar, en su lugar se debe usar la barra doble (||), por ejemplo la instrucción en MSSQL &lt;code&gt;SELECT nombre + ' ' + apellido AS &lt;span style="font-family:Georgia,serif;"&gt;nombrecompleto&lt;/span&gt;&lt;/code&gt; seria &lt;code&gt;SELECT nombre || ' ' || apellido AS &lt;span style="font-family:Georgia,serif;"&gt;nomobrecompleto&lt;/span&gt;&lt;/code&gt; , la ultima forma es aceptada tambien en MSSQL.&lt;/li&gt;&lt;li&gt;Hay muchas otras funciones tambien que no existen en PLPgSQL, pero no es dificil encontrar sus equivalencias, por ejemplo:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;    month -&gt; date_part&lt;br /&gt;    year -&gt; date_part&lt;br /&gt;    convert -&gt; to_char, cast, ::&lt;br /&gt;    print -&gt; raise notice&lt;br /&gt;    isnull -&gt; coalesce&lt;br /&gt;    str -&gt; to_char&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El uso del tipo decimal desde VB a veces funciona y aveces no, el porque..., no lo se, asi que migramos todos los "decimal" a double precision, el problema es que despues hay que formatear las salidas y entradas a la cantidad de decimales que se necesiten.&lt;/li&gt;&lt;li&gt;Es importante tambien saber que la logica de manejo de transacciones en las funciones almacenadas en PostgreSQL es diferente que la de MSSQL con los Procedimientos Almacenados, en MSSQL si queremos controlar la correcta ejecucion de tooodo un store con muchas instrucciones debemos indicar explicitamente que queremos que este store este en una transaccion e ir capturando los codigos de error para hacer un rollback, mientras que en PostgreSQL toda funcion almacenada se ejecuta automaticamente dentro de una transaccion, por lo que si falla nuestra funcion en algun punto se hara un rollback automatico.&lt;/li&gt;&lt;/ul&gt;Ahora si creo que es todo.. Bytes y espero que esto le sirva a alguien mas....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5126593201785608078?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5126593201785608078/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/06/migrando-de-mssql2000-postgresql83.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5126593201785608078'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5126593201785608078'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/06/migrando-de-mssql2000-postgresql83.html' title='Migrando de MSSQL2000 a PostgreSQL8.3 - Conclusiones'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-594094086087437552</id><published>2009-06-12T14:44:00.009-05:00</published><updated>2009-06-13T12:00:41.435-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Backup Simple en PostgreSQL usando pg_dump</title><content type='html'>Holas, bueno este post no es totalmente de mi autoria, pero lo he traducido y lo pongo en mi Blog por si alguien mas lo necesita, hago algunos aportes chiquititos al articulo original, para que se entienda bien en un entorno CentOs 5 y PostgreSQL 8.3&lt;br /&gt;La entrada original en ingles esta en &lt;a href="http://www.cyberciti.biz/tips/howto-backup-postgresql-databases.html"&gt;http://www.cyberciti.biz/tips/howto-backup-postgresql-databases.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;PostgreSQL es una de las bases de datos open-source mas robustas que existen. Como muchos otros RDBMS este brinda herramientas para realizar tareas de backup de la data.&lt;br /&gt;&lt;br /&gt;Paso# 1: Ingresar al sistema como usuario postgres.&lt;br /&gt;&lt;br /&gt;Digite el siguiente comando:&lt;br /&gt;$ su postgres&lt;br /&gt;Obtener la lista(s) de la(s) base de datos a sacar backup:&lt;br /&gt;$ psql -l&lt;br /&gt;&lt;br /&gt;Paso# 2: Hacer el backup usando pg_dump&lt;br /&gt;&lt;br /&gt;Pg_dump es un utilitario para hacer backups de una base de datos PostgreSQL. Solo se puede hacer backup de una sola base de datos a la vez. Sintaxis general:&lt;br /&gt;pg_dump basededatos &gt; archivodestino&lt;br /&gt;&lt;br /&gt;Ejemplo: Hacer backup a una base de datos llamada ventas&lt;br /&gt;&lt;br /&gt;Escriba los siguientes comandos&lt;br /&gt;$ pg_dump ventas &gt; ventas.dump.out&lt;br /&gt;&lt;br /&gt;Para restaurar la base de datos ventas:&lt;br /&gt;$ psql -d ventas -f ventas.dump.out&lt;br /&gt;&lt;br /&gt;O&lt;br /&gt;&lt;br /&gt;$ createdb ventas&lt;br /&gt;$ psql ventas&lt;br /&gt;&lt;br /&gt;Sin embargo, en un ambiente de produccion siempre necesitaremos comprimir el backup de la base de datos:&lt;br /&gt;&lt;br /&gt;$ pg_dump ventas | gzip -c &gt; ventas.dump.out.gz&lt;br /&gt;&lt;br /&gt;Para restaurar la base de datos usamos el siguiente comando:&lt;br /&gt;&lt;br /&gt;$ gunzip ventas.dump.out.gz&lt;br /&gt;$ psql -d ventas -f ventas.dump.out&lt;br /&gt;&lt;br /&gt;Paso# 3: Automatizar el proceso&lt;br /&gt;A continuación veremos un script en bash para realizar dicha tarea automaticamente, y luego los comandos necesarios para ponerlo en el gestor de tareas cron del linux.&lt;br /&gt;&lt;br /&gt;Creamos el archivo backup.sh&lt;br /&gt;$ nano backup.sh&lt;br /&gt;&lt;br /&gt;Y alli escribimos el codigo siguiente:&lt;br /&gt;#!/bin/bash&lt;br /&gt;DIR=/backup/psql&lt;br /&gt;F=$(date +%Y-%m-%0e)&lt;br /&gt;export PGUSER=postgres&lt;br /&gt;export PGPASSWORD=tupassword&lt;br /&gt;[ ! $DIR ] &amp;amp;&amp;amp; mkdir -p $DIR || :&lt;br /&gt;LIST=$(psql -l | awk '{ print $1}' | grep -vE '^-|^Listado|^Nombre|template[0|1]')&lt;br /&gt;#LIST="ventas produccion almacen"&lt;br /&gt;for d in $LIST&lt;br /&gt;do&lt;br /&gt;            pg_dump $d | gzip -c &gt;  $DIR/$d$F.out.gz&lt;br /&gt;done&lt;br /&gt;unset PGUSER&lt;br /&gt;unset PGPASSWORD&lt;br /&gt;&lt;br /&gt;Salimos guardando con Ctrl-X.&lt;br /&gt;Yo reemplazo la variable LIST con los nombres de mis bases que quiero sacar backup, el comando que saca los nombres de las bases de datos en el script no me funciona del todo bien, pero la idea es esa :o).&lt;br /&gt;&lt;br /&gt;Luego damos permisos de ejecucion al archivo backup.sh&lt;br /&gt;$ chmod 755 backup.sh&lt;br /&gt;&lt;br /&gt;Ingresamos la tarea en el cron.&lt;br /&gt;$crontab -e&lt;br /&gt;&lt;br /&gt;Configuro para que todos los dias a la 1am se realice el backup, por lo que escribo (para editar deben usar comandos de vi)&lt;br /&gt;00 01 * * * /var/lib/pgsql/backup.sh&lt;br /&gt;&lt;br /&gt;Paso #4:Backup completo de todo el gestor de base de datos.&lt;br /&gt;Otra opcion es usar el comando pg_dumpall. como su nombre lo dice genera un backup de TODA la base de datos, guardando los datos de todo el gestor como usuarios, grupos y privilegios. Se puede usar el comando de la sig. forma:&lt;br /&gt;$ pg_dumpall &gt; all.dbs.out&lt;br /&gt;&lt;br /&gt;O&lt;br /&gt;&lt;br /&gt;$ pg_dumpall | gzip -c &gt; todo.dbs.out.gz&lt;br /&gt;&lt;br /&gt;Para restaurar el backup usamos el siguiente comando:&lt;br /&gt;$ psql -f todo.dbs.out postgres&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-594094086087437552?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/594094086087437552/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/06/backup-simple-en-postgresql-usando.html#comment-form' title='7 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/594094086087437552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/594094086087437552'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/06/backup-simple-en-postgresql-usando.html' title='Backup Simple en PostgreSQL usando pg_dump'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>7</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4041437742560632550</id><published>2009-05-19T17:01:00.003-05:00</published><updated>2009-05-19T17:08:44.447-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_VisualWeb_JSF'/><title type='text'>Trabajando con Netbeans 6.5.1 y Visual Web JSF - Parte 1</title><content type='html'>Holas a tod@s, esto queria ya publicarlo hace tiempo; logre hacer este ejemplo que es un sistema sencillo con base de datos full Netbeans con VisualWeb JSF revisando muchos ejemplos y en el caso del uso del framework de persistencia tuve algo de suerte tambien :o). Se que muchos desisten de usarlo porque no encuentran un buen manual o guia, espero que este sea un buen comienzo para todos.. Pensaba hacer una sola guía de todo, pero seria muy larga asi que mejor lo hare por partes.&lt;br /&gt;El ejemplo es un pequeño sistema de Bibliotecas en el cual se tiene mantenimiento de Libros, Autores y Usuarios, y se pueden realizar los prestamos de libros y algunas consultas basicas. Espero en el transcurso de cada semana o antes ir subiendo cada parte de esta guía.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PARTE I. CREANDO EL PROYECTO&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; Y LA INTERFAZ&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Crear el proyecto&lt;/span&gt;&lt;br /&gt;&lt;img src="file:///C:/DOCUME%7E1/JOSEAY%7E1.DEP/CONFIG%7E1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;img src="file:///C:/DOCUME%7E1/JOSEAY%7E1.DEP/CONFIG%7E1/Temp/moz-screenshot-1.jpg" alt="" /&gt;Usamos las opciones segun las figuras:&lt;br /&gt;Tipo de Proyecto: Java Web -&gt; Web application&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMFTPqMJDI/AAAAAAAAACQ/pNALujRhQfo/s1600-h/fig11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 224px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMFTPqMJDI/AAAAAAAAACQ/pNALujRhQfo/s320/fig11.jpg" alt="" id="BLOGGER_PHOTO_ID_5337615811543311410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Llamaremos al proyecto "VWBiblio":&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMFwqgZGqI/AAAAAAAAACY/4z-ncNkNUW0/s1600-h/fig12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 223px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMFwqgZGqI/AAAAAAAAACY/4z-ncNkNUW0/s320/fig12.jpg" alt="" id="BLOGGER_PHOTO_ID_5337616316966181538" border="0" /&gt;&lt;/a&gt;Seleccionamos el Servidor de Aplicaciones: yo uso tomcat por lo comercial que es, por ejemplo hay muy pocos host que te den un servidor Glassfish, hay mas documentación y ayuda sobre tomcat; asi que por eso prefiero usarlo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RhPJJRySnYs/ShMGRbfscZI/AAAAAAAAACg/yO87IuxkDp4/s1600-h/fig13.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 220px;" src="http://3.bp.blogspot.com/_RhPJJRySnYs/ShMGRbfscZI/AAAAAAAAACg/yO87IuxkDp4/s320/fig13.jpg" alt="" id="BLOGGER_PHOTO_ID_5337616879872405906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Seleccionamos el framework: VisualWeb JavaServer Faces&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMG4rfdeKI/AAAAAAAAACo/gL-fTT-IoY0/s1600-h/fig14.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 221px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMG4rfdeKI/AAAAAAAAACo/gL-fTT-IoY0/s320/fig14.jpg" alt="" id="BLOGGER_PHOTO_ID_5337617554181290146" border="0" /&gt;&lt;/a&gt;Le damos en "Finish" y ya tenemos creado nuestro proyecto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2. Creando la Pagina Principal (Menu y fragments)&lt;/span&gt;&lt;br /&gt;La pagina por default se llama Page1.jsp, la renombramos(Ctrl+R)  a FrmPrincipal (me gusta usar esa nomenclatura :o) ) y presionamos "Refactor"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMJF0CMGLI/AAAAAAAAACw/2uKjZzR6rxQ/s1600-h/fig15.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 219px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMJF0CMGLI/AAAAAAAAACw/2uKjZzR6rxQ/s320/fig15.jpg" alt="" id="BLOGGER_PHOTO_ID_5337619978835990706" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Agrego una pagina del tipo Fragment para el menu y la llamare "FrmMenu",&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMJcjSqLtI/AAAAAAAAAC4/xeij2EQ7rBU/s1600-h/fig16.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 94px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMJcjSqLtI/AAAAAAAAAC4/xeij2EQ7rBU/s320/fig16.jpg" alt="" id="BLOGGER_PHOTO_ID_5337620369478659794" border="0" /&gt;&lt;/a&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMJuAVM4_I/AAAAAAAAADA/U1lSmtY8TSA/s1600-h/fig17.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 114px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMJuAVM4_I/AAAAAAAAADA/U1lSmtY8TSA/s320/fig17.jpg" alt="" id="BLOGGER_PHOTO_ID_5337620669331727346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ajusto el ancho y largo del fragment (widht= ,height= )&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMNheiTedI/AAAAAAAAADI/haG_5GiZ4qQ/s1600-h/fig18.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 256px; height: 165px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMNheiTedI/AAAAAAAAADI/haG_5GiZ4qQ/s320/fig18.jpg" alt="" id="BLOGGER_PHOTO_ID_5337624852147960274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Luego agrego un control del tipo "Tree", al colocarlo me pide editar el titulo y le pongo "MENU".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMUUBfQrII/AAAAAAAAADQ/QuhG3PeJKw0/s1600-h/fig19.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 225px; height: 142px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMUUBfQrII/AAAAAAAAADQ/QuhG3PeJKw0/s320/fig19.jpg" alt="" id="BLOGGER_PHOTO_ID_5337632317593660546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Agrego TreeNodes haciendo click derecho sobre el nodo padre y click en "Add Tree Node" hasta tener un menu como el de la figura.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMVvBtrUmI/AAAAAAAAADY/b-GzqD4WNQs/s1600-h/fig20.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 197px; height: 320px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMVvBtrUmI/AAAAAAAAADY/b-GzqD4WNQs/s320/fig20.jpg" alt="" id="BLOGGER_PHOTO_ID_5337633881022222946" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Agrego otra pagina de tipo Fragment para la barra de Titulo y le pongo de nombre "Frmtitulo"&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RhPJJRySnYs/ShMbFbpd0tI/AAAAAAAAADg/DjPw3K9kC18/s1600-h/fig21.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 95px;" src="http://4.bp.blogspot.com/_RhPJJRySnYs/ShMbFbpd0tI/AAAAAAAAADg/DjPw3K9kC18/s320/fig21.jpg" alt="" id="BLOGGER_PHOTO_ID_5337639763499143890" border="0" /&gt;&lt;/a&gt;Luego configuro el ancho=800px y alto=75px.&lt;br /&gt;Agrego un control de tipo Label y cambio el texto a "Sistema de Bibliotecas"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_RhPJJRySnYs/ShMdNVyd6qI/AAAAAAAAADo/pqkAsBn8P4M/s1600-h/fig22.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 98px;" src="http://4.bp.blogspot.com/_RhPJJRySnYs/ShMdNVyd6qI/AAAAAAAAADo/pqkAsBn8P4M/s320/fig22.jpg" alt="" id="BLOGGER_PHOTO_ID_5337642098388495010" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Cambio el tamaño de la fuente del Label a 24px, eso lo hago modificando la propiedad "Style" del Label.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMdNvyCDxI/AAAAAAAAADw/GHunw4aQvvk/s1600-h/fig23.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 189px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMdNvyCDxI/AAAAAAAAADw/GHunw4aQvvk/s320/fig23.jpg" alt="" id="BLOGGER_PHOTO_ID_5337642105365991186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Cerramos guardando FrmMenu y FrmTitulo.&lt;br /&gt;Ahora vamos a la pagina FrmPrincipal que sera la que contenga los fragments que hemos creado.&lt;br /&gt;Agregamos un control del tipo "Page Fragment Box", aparece una venta donde se puede seleccionar el fragmento a agregar, automaticamente se seleccionara el fragment "FrmMenu.jspf" que es el Menu que creamos anteriormente, asi que solo hacemos click en el boton "Close"&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMgMWNSP8I/AAAAAAAAAD4/D5kjli62jHA/s1600-h/fig24.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 257px; height: 202px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMgMWNSP8I/AAAAAAAAAD4/D5kjli62jHA/s320/fig24.jpg" alt="" id="BLOGGER_PHOTO_ID_5337645379855990722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Agregamos otro  "Page Fragment Box" y en la ventana de seleccion escogemos "FrmTitulo.jspf", luego le damos en "Close" con lo cual tenemos los dos fragment en nuestra pagina principal. Los ubicamos usando el mouse de tal forma que nos quede como la figura siguiente.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMhnFgkjQI/AAAAAAAAAEA/mU_8AWlbf9E/s1600-h/fig25.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 214px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMhnFgkjQI/AAAAAAAAAEA/mU_8AWlbf9E/s320/fig25.jpg" alt="" id="BLOGGER_PHOTO_ID_5337646938741574914" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3. Agregando las demas paginas y la navegacion del Menu.&lt;/span&gt;&lt;br /&gt;Como ya tenemos nuestra pagina principal con titulo y Menu, ahora agregaremos las demas paginas de nuestro proyecto y la enlazaremos al Menu de navegacion que hemos creado.&lt;br /&gt;Click derecho en "Web Pages" del proyecto y New -&gt; "VisualWeb JSF Page".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMl9r9BROI/AAAAAAAAAEI/6JjBVWkXlqQ/s1600-h/fig26.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 55px;" src="http://1.bp.blogspot.com/_RhPJJRySnYs/ShMl9r9BROI/AAAAAAAAAEI/6JjBVWkXlqQ/s320/fig26.jpg" alt="" id="BLOGGER_PHOTO_ID_5337651725065077986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Le cambio del nombre a FrmLibros y le doy click en el boton "Finish".&lt;br /&gt;Del mismo modo agregamos las paginas FrmUsuarios, FrmPrestamo, FrmDeudores y FrmLibrosDisponibles.&lt;br /&gt;Por lo que nuestra carpeta "WebPages" quedara como la figura siguiente:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMmS8XZetI/AAAAAAAAAEQ/8PrjTP542iA/s1600-h/fig27.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 179px; height: 320px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMmS8XZetI/AAAAAAAAAEQ/8PrjTP542iA/s320/fig27.jpg" alt="" id="BLOGGER_PHOTO_ID_5337652090247936722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ahora abrimos la pagina "FrmLibros" y agregamos los fragments FrmMenu y FrmTitulo al igual que hicimos en la pagina principal "FrmPrincipal".&lt;br /&gt;Tambien agregamos un control de tipo Label y le ponemos como texto "MANTENIMIENTO DE LIBROS". Con ello nos debera quedar una pagina como se muestra en la figura:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMn8ZSPUVI/AAAAAAAAAEY/KKMv3FHt0-0/s1600-h/fig28.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 215px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMn8ZSPUVI/AAAAAAAAAEY/KKMv3FHt0-0/s320/fig28.jpg" alt="" id="BLOGGER_PHOTO_ID_5337653901897191762" border="0" /&gt;&lt;/a&gt;Ahora para añadirle la navegacion al menu: regresamos a la pagina de tipo Fragment "FrmMenu", alli seleccionamos el nodo Libros de nuestro Menu,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMqhxpNH-I/AAAAAAAAAEg/DLFE1qFcPUA/s1600-h/fig29.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 207px; height: 100px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMqhxpNH-I/AAAAAAAAAEg/DLFE1qFcPUA/s320/fig29.jpg" alt="" id="BLOGGER_PHOTO_ID_5337656743114383330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Luego vamos a la propiedad "url" y la cambiamos usando el boton del lado derecho "...", al aparecer la ventana seleccionamos la pagina "FrmLibros" y hacemoc click en el boton "Ok".&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMqiMrQF_I/AAAAAAAAAEo/PSkNUY5Wy5Y/s1600-h/fig30.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 250px; height: 285px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/ShMqiMrQF_I/AAAAAAAAAEo/PSkNUY5Wy5Y/s320/fig30.jpg" alt="" id="BLOGGER_PHOTO_ID_5337656750370723826" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Debemos hacer lo mismo para las otros nodos del Menu y cambiar su propiedad "url" segun la pagina que corresponda.&lt;br /&gt;Con ello si ejecutamos nuestra aplicacion (presionando F6) tendremos ya nuestro aplicativo web con un menu con el que podemos navegar entre las diferentes opciones.&lt;br /&gt;&lt;br /&gt;Esto todo por ahora, la siguiente parte sera hacer el primer mantenimiento, para lo que usaremos PostgreSQL enlazado a nuestro proyecto VisualWeb JSF. Bye&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4041437742560632550?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4041437742560632550/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/05/trabajando-con-netbeans-651-y-visual.html#comment-form' title='24 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4041437742560632550'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4041437742560632550'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/05/trabajando-con-netbeans-651-y-visual.html' title='Trabajando con Netbeans 6.5.1 y Visual Web JSF - Parte 1'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RhPJJRySnYs/ShMFTPqMJDI/AAAAAAAAACQ/pNALujRhQfo/s72-c/fig11.jpg' height='72' width='72'/><thr:total>24</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5314198232058692417</id><published>2009-04-27T08:22:00.002-05:00</published><updated>2009-04-27T08:28:50.983-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Administrando PostgreSQL</title><content type='html'>&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;Hola con &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="mailto:tod@s"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;tod@s&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; otra vez; como ya les conté estaba migrando una base de datos MSSQL2000 a PostreSQL 8,3, bueno la tarea aun sigue, pero esta vez les contare sobre algunas herramientas que son fundamentales en el momento de administrar nuestra base de datos PostgreSQL.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;1. psql (&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://psql.sourceforge.net/"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;http://psql.sourceforge.net&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;).&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; Esta herramienta en modo texto o consola se instala predeterminadamente cuando instalamos el servidor PostgreSQL, es básicamente un programa interactivo para ejecutar comandos SQL en nuestro servidor, aunque no tiene un interfaz gráfico amigable es una poderosa herramienta par administrar de forma interactiva nuestro servidor de base de datos.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;2. pgAdmin III (&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://www.pgadmin.org/"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;http://www.pgadmin.org/ &lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;)&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;  El administrador gráfico por defecto para PostgreSQL, es bueno y nos permite hacer muchas de las tareas de administración y consulta a nuestra base de datos de forma gráfica, es totalmente gratuita y se instala siempre que instalamos PostgreSQL en un entorno Windows. Algunas cosas que no tiene y con lo que seria en si una poderosa herramienta son: un diseñador de consultas al estilo E/R, un depurador de funciones , aunque en este punto encontré que si es posible hacerlo pero hay que recompilar el servidor y la herramienta con algunos parches para que se pueda realizar dicha función, mas información al respecto en &lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://www.pgadmin.org/docs/1.8/debugger.html"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;http://www.pgadmin.org/docs/1.8/debugger.html&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;. También sería fenomenal si se pudiera exportar a  otros formatos como html, xml, xls, etc. ya que solo soporta exportación de los datos consultados a CSV (texto separado por comas).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;3. pg_dump.&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; La herramienta predeterminada para hacer copias de seguridad de nuestras bases de datos en PostreSQL, lo malo ( si se le puede llamar asi) es que es en modo texto o consola y es totalmente interactiva, no pudiéndose programar tareas, pero usándolo en combinación con algún otro programa adicional como cron en unix/linux/freebsd se puede hacer muchas cosas interesantes. Pero en definitiva es imprescindible para cualquier administrador de base de datos PostgreSQL.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;4. pg_top (&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://ptop.projects.postgresql.org/"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;http://ptop.projects.postgresql.org/&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;).&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; Interesante programa para poder monitorear el estado de las conexiones, que esta haciendo cada una y algunas cosas mas de nuestro servidor PostgreSQL en ambientes linux. Podríamos compararlo en funcionalidad con el SQLProfiler de MSSQL. Esta herramienta esta hecha al estilo de la interfaz del comando top de Linux. PgAdminIII puede también darnos este tipo de información pero solo si tenemos instalado PGAdmin en el mismo equipo que el servidor. Pero en definitiva la considero también como una herramienta imprescindible para un DBA de PostgreSQL que se respete :o) .&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt; &lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;5, SQL Manager for PostgreSQL (&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://sqlmanager.net/en/products/postgresql/manager"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;http://sqlmanager.net/en/products/postgresql/manager&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;).&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; Poderosa herramienta de administración, consulta y manipulación de datos para PostgreSQL. Permite consultar, modificar, eliminar datos, administrar usuarios y permisos, depurar funciones, exportar a muchos formatos, diseñador de consultas, etc, etc, etc. Todo con excelentes interfaces y asistentes gráficos que hacen que la tarea de administración del servidor sea realmente un trabajo mucho mas sencillo. Yo he probado algunos otros mas y siempre llego a la conclusión de que esta herramienta es la mejor. Lo malo, es que es de pago, pero aun así podemos usarla con dos opciones una es un demo por 30 días con todas las opciones y la otra es una versión “Lite” libre de pago pero con limitaciones en algunas funcionalidades. Aun así si se tiene la posibilidad de comprarla sera una excelente compra.&lt;/span&gt;&lt;/span&gt;  &lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;6, Arinet Automatic Postgresql BackupScript (&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color:#000080;"&gt;&lt;span lang="zxx"&gt;&lt;u&gt;&lt;a href="http://autopgsqlbakup.sourceforge.net/"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;http://autopgsqlbakup.sourceforge.net/&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;&lt;i&gt;&lt;b&gt;)&lt;/b&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt; Mas que un programa  es un script basado en pg_dump para poder realizar las tareas de backup de nuestra base de datos de una forma mucho mas sencilla y con mejores opciones. Se debe trabajar también con cron en Unix/Linux/FreeBSD ya que el script esta hecho en bash. Pero para mi caso particular me ha servido bastante en el momento de administrar el backup de mi información. En el sig. link hay un pequeño manual de como ponerlo a trabajar en Linux: &lt;a href="http://linux2.arinet.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=125&amp;amp;Itemid=35"&gt;http://linux2.arinet.org/index.php?option=com_content&amp;amp;task=view&amp;amp;id=125&amp;amp;Itemid=35&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="justify"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size: 11pt;font-size:85%;" &gt;Bueno es todo por ahora, si se de alguna otra herramienta por ahí se los haré saber en un próximo post. Bye&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5314198232058692417?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5314198232058692417/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/04/administrando-postgresql.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5314198232058692417'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5314198232058692417'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/04/administrando-postgresql.html' title='Administrando PostgreSQL'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-3782895195439780043</id><published>2009-04-02T14:40:00.001-05:00</published><updated>2009-04-02T14:40:55.805-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 8</title><content type='html'>&lt;span class="texto_2"&gt;“La única diferencia entre un sueño y un objetivo es una fecha.”&lt;br /&gt;&lt;/span&gt;&lt;span class="texto_2"&gt;Edmundo Hoffens&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-3782895195439780043?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/3782895195439780043/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/04/frase-8.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3782895195439780043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3782895195439780043'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/04/frase-8.html' title='Frase 8'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5850604301033136565</id><published>2009-03-17T11:24:00.002-05:00</published><updated>2009-03-17T12:36:08.902-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='MSSQL'/><title type='text'>Migrando de MSSQL2000 a PostgreSQL8.3</title><content type='html'>Hola, estoy ahora migrando una BD MicroSoft SQL 2000(MSSQL)  a PostgreSQL 8.3 (PGSQL)..., la BD MSSQL tiene como principal caracteristica y que ha dado todo el trabajo, muchos Stores Procedures (SPs) asi que la dificl tarea de hacer esa migracion empezo ya.&lt;br /&gt;Los sistemas que actualmente uso y se conectan al MSSQL2000 estan hechos en VisualBasic 6 y en Delphi 5, ya hice pruebas de conectividad y uso de PGSQL con estos lenguajes y todo bien usando el driver OleDB de Postgres (&lt;a href="http://pgfoundry.org/projects/oledb/"&gt;http://pgfoundry.org/projects/oledb/&lt;/a&gt;). Generar la cadena de conexion es muy sencillo, en todo caso un ejemplo seria:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CadConn = "Provider=PostgreSQL OLE DB Provider;" &amp;amp; _&lt;br /&gt;     "Password=mipassword;User ID=miusuario;" &amp;amp; _&lt;br /&gt;    "Data Source=localhost;Location=mibasededatos;Extended Properties='';"&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;El Unico detalle aqui es un problema del driver cuando uno lanza SQLs que devuelven registros, provoca un error de retorno, pero esto no sucede si se hace a traves de SPs.&lt;br /&gt;&lt;br /&gt;Ok ahora si a las bases de datos; primero unos alcances: MSSQL usa como lenguaje de programacion Transact-SQL(T-SQL) y PostgreSQL PlPgSQL, para postgres no es el unico, se pueden instalar otros como java, c, etc ,etc. Pero el mas usado y casi por default es PLPGSQL. Asi que dare alguno tips para hacer esta tarea un poco mas sencilla.&lt;br /&gt;&lt;br /&gt;Existe una herramienta que se llama SQLWays(http://www.ispirer.com/products) que ofrece hacer dicha migracion, es realmente util, pero siempre hay que revisar lo que ha migrado, ademas al hacer esta tarea de manera automatizada hay muchos SPs que no son optimos o que no se ejecutan.&lt;br /&gt;&lt;br /&gt;Ok entonces vamos a los tips especificos&lt;br /&gt;&lt;br /&gt;1. En PGSQL no existen "Procedimientos Almacenados" como tales, sino mas bien "Funciones Almacenadas", eso quiere decir que siempre estaremos obligados a devolver algo desde nuestros "SPs".&lt;br /&gt;&lt;br /&gt;2. Declaracion de variables:&lt;br /&gt;&lt;br /&gt;MSSQL: se usa la palabra DECLARE y el nombre debe empezar con el simbolo @ , por ejem:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;           DECLARE @mivar INT&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;PGSQL: se hace el estilo de C o de java, es decir identificador seguido del tipo de dato, por ejem:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;           mivar int;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Las asignaciones de valores a variables:&lt;br /&gt;&lt;br /&gt;MSSQL: se usa SET , ejem:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;            SET @mivar=1.12&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;PGSQL: se usa el simbolo := , ejem:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;            mivar:=1.12;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;4. Devolucion de registros o filas, uno de los mas importantes tips creo yo.&lt;br /&gt;&lt;br /&gt;MSSQL: se hace el select directamente y punto, por ejem: :o)&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;create procedure consulta as&lt;br /&gt;    select * from mitabla&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;PGSQL: como dije anteriormente en PGSQL se usan "funciones Almacenadas" por lo que debemos indicar a nuestra funcion el tipo a devolver. Lo mejor es usar el tipo pg_catalog.refcursor, que creo que esta disponible recien desde la version 8.x de PGSQL.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION consulta() RETURNS "pg_catalog"."refcursor" AS&lt;br /&gt;   declare data refcursor;&lt;br /&gt;begin&lt;br /&gt;   open data for (&lt;br /&gt;     Select * from mitabla&lt;br /&gt;   );&lt;br /&gt;   return data;&lt;br /&gt;END;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;5. Recorrer cursores dentro de los SPs.&lt;br /&gt;&lt;br /&gt;MSSQL:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;declare @v_1 varchar(10)&lt;br /&gt;declare @v_2 varchar(10)&lt;br /&gt;declare cur1 cursor for&lt;br /&gt;select * from mitabla&lt;br /&gt;OPEN cur1&lt;br /&gt;FETCH NEXT FROM cur1&lt;br /&gt;INTO @v_1, @v_2&lt;br /&gt;WHILE @@FETCH_STATUS = 0 BEGIN&lt;br /&gt;print 'Valor 1 '+v_1 &lt;br /&gt;print 'Valor 2 '+v_2 &lt;br /&gt;FETCH NEXT FROM cur1&lt;br /&gt;  INTO @v_1, @v_2&lt;br /&gt;END&lt;br /&gt;CLOSE cur1&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;PGSQL:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;declare&lt;br /&gt;cur1 refcursor;&lt;br /&gt;v_1 varchar (10) ;&lt;br /&gt;v_2 varchar (10) ;&lt;br /&gt;begin&lt;br /&gt;OPEN cur1 FOR execute('select * from mitabla');&lt;br /&gt;loop&lt;br /&gt; fetch cur1 into v_1, v_2;&lt;br /&gt;&lt;br /&gt; if not found then&lt;br /&gt;    exit ;&lt;br /&gt; end if;&lt;br /&gt;&lt;br /&gt; RAISE NOTICE 'Valor 1(%)', v_1;&lt;br /&gt; RAISE NOTICE 'Valor 2(%)', v_2;&lt;br /&gt;&lt;br /&gt;end loop;&lt;br /&gt;close cur1;&lt;br /&gt;end;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;* Existe otra forma de recorrer registros en PGSQL, pueden ver mas detalles en &lt;a href="http://www.postgresql.org/docs/8.3/interactive/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING"&gt;http://www.postgresql.org/docs/8.3/interactive/plpgsql-control-structures.html#PLPGSQL-RECORDS-ITERATING&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;6. Bueno este tip mas que de SPs, es para la carga de data, mis tablas en MSSQL son de millones de registros asi que la mejor manera de pasar la data del MSSQL a PGSQL es:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;1ero. Bajar la data del MSSQL a texto plano, tipo csv, es decir valores separados por comas.&lt;br /&gt;2do. Usar el comando COPY.. FROM de PGSSQL para cargar a data desde los arhivos de texto a las tablas de PGSQL.&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;Ok, es todo hasta ahora, si veo algo mas lo publicare o si alguien mas puede dar un aporte bienvenido.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5850604301033136565?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5850604301033136565/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/03/migrando-de-mssql2000-postgresql83.html#comment-form' title='5 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5850604301033136565'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5850604301033136565'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/03/migrando-de-mssql2000-postgresql83.html' title='Migrando de MSSQL2000 a PostgreSQL8.3'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>5</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-3853053895589148850</id><published>2009-03-09T14:20:00.004-05:00</published><updated>2009-03-09T14:55:39.237-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBasic'/><title type='text'>Un programa simple de descarga de archivos  usando API’s de Windows en Visual Basic</title><content type='html'>Hola a todos, bueno en esta oportunidad les contare algo del uso de APIs desde nuestros programas hechos en Visual Basic.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Para los que no saben que es un API… un API&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;(&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;u&gt;&lt;a href="http://es.wikipedia.org/wiki/Application_Programming_Interface"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Application Programming Interface&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;) &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;o en castellano “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Interfaz de Programación de Aplicaciones” es [gracias &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 255);"&gt;&lt;u&gt;&lt;a href="http://es.wikipedia.org/wiki/API_de_Windows"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Wikipedia&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt; :o)] :&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;blockquote style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-style: italic;"&gt;Un conjunto de funciones residentes en bibliotecas (generalmente dinámicas, también llamadas DLLs por sus siglas en inglés, término usado para referi&lt;/span&gt;&lt;span style="font-style: italic;"&gt;rse a éstas en Windows) que permiten que una aplicación corra bajo un determinado sistema operativo. En este caso se refiere a las aplicaciones Windows.&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;Debido a su estrecha relación con el desarrollo de software, los programas en sus especificaciones generalmente explicitan la versión de la API del sistema operativo, mediante diversas nomenclaturas tales como la versión específica del sistema operativo (para Windows 98, por ejemplo), o explic&lt;/span&gt;&lt;span style="font-style: italic;"&gt;itando la versión del conjunto de bibliotecas (Plataforma Win32, etc.).&lt;/span&gt;  &lt;span style="font-style: italic;"&gt;Las funciones API se dividen en varias categorías:&lt;/span&gt; &lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Depuración y manejo de errores&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;E/S de dispositivos&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;DLLs, procesos e hilos&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Comunicación entre procesos&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Manejo de la memoria&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Monitoreo del desempeño&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Manejo de energía&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Almacenamiento&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Información del sistema&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;GDI (interfaz para dispositivos gráficos) de Windows (tales como impresoras)&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-style: italic;"&gt;Interfaz de usuario de Windows&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt; &lt;/blockquote&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Bueno a lo nuestro.. “&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;y entonces José para que es todo eso, si VB (Visual Basic) tiene un montón de clases, funciones y procedimientos que nos permiten hacer cosas con el sistema operativo&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;” , es cierto pero no todo se puede hacer con lo nativo de Visual Basic, veamos un ejemplo&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt; especifico; se requiere hacer un programa en VB de descarga de archivos de Internet, donde nos muestre una barra con el avance de la descarga y obviamente antes nos habra mostrado el tamaño total de la descarga.&lt;/span&gt;&lt;/span&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Como lo resolvemos??? Existe en VB6 el control Inet y en Vb.Net la clase Net.WebClient, pero con ninguno de ellos podremos hacer una barra de progreso real.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Asi que para eso usaremos el API “WinInet” que como su nombre lo indica esta en el archivo “WinInet.dll” dentro de la carpeta de Windows\system32.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Ahora si, a resolver el problema..&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Hagamos  la Interfaz usando el diseñador de formularios en VB2005 de tal  forma que nos quede algo asi:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span&gt;&lt;span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_RhPJJRySnYs/SbVzBS-t6JI/AAAAAAAAABI/wN8F6E-5bV8/s1600-h/descarga.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 138px;" src="http://2.bp.blogspot.com/_RhPJJRySnYs/SbVzBS-t6JI/AAAAAAAAABI/wN8F6E-5bV8/s320/descarga.jpg" alt="" id="BLOGGER_PHOTO_ID_5311277801665325202" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Ok, ahora agregamos un modulo que se llame WinInet.bas y declaramos las funciones de la API que usaremos:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;       &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;i&gt;&lt;/i&gt;&lt;/p&gt;&lt;blockquote&gt;&lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;i&gt;O&lt;/i&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;ption Explicit&lt;br /&gt;Public Const INTERNET_OPEN_TYPE_PRECONFIG = 0&lt;br /&gt;Public Const INTERNET_OPEN_TYPE_DIRECT = 1&lt;br /&gt;Public Const INTERNET_OPEN_TYPE_PROXY = 3&lt;br /&gt;Public Const scUserAgent = "VB OpenUrl"&lt;br /&gt;Public Const INTERNET_FLAG_RELOAD = &amp;amp;H80000000&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Const HTTP_QUERY_CONTENT_LENGTH = 5&lt;br /&gt;Public Const HTTP_QUERY_LAST_MODIFIED = 11&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" _&lt;br /&gt;(ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, _&lt;br /&gt;ByVal sProxyBypass As String, ByVal lFlags As Long) As Long&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Declare Function InternetOpenUrl Lib "wininet.dll" Alias "InternetOpenUrlA" _&lt;br /&gt;(ByVal hOpen As Long, ByVal sUrl As String, ByVal sHeaders As String, _&lt;br /&gt;ByVal lLength As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Declare Function InternetReadFile Lib "wininet.dll" _&lt;br /&gt;(ByVal hFile As Long, ByVal sBuffer As String, ByVal lNumBytesToRead As Long, _&lt;br /&gt;lNumberOfBytesRead As Long) As Integer&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Declare Function InternetCloseHandle Lib "wininet.dll" _&lt;br /&gt;(ByVal hInet As Long) As Integer&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Declare Function HttpQueryInfo Lib "wininet.dll" Alias "HttpQueryInfoA" _&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;(ByVal h&lt;/i&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;HttpRequest As Long, ByVal lInfoLevel As Long, ByRef sBuffer As Any, _&lt;br /&gt;ByRef lBufferLength As Long, ByRef lIndex As Long) As Boolean&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/blockquote&gt;&lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Una explicacion rápida (el artículo se volvería demasiado extenso si explico a profundidad cada uno de ellos):&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;InternetOpen:  &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;Abre la conexión a Internet.&lt;br /&gt;&lt;/span&gt;&lt;i&gt;InternetOpenUrl: &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;Abre la dirección desde donde descargaremos el archivo.&lt;br /&gt;&lt;/span&gt;&lt;i&gt;InternetReadFile: &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;Lee o descarga el archivo desde la dirección abierta.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;HttpQueryInfo: &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;Lee o extrae algun tipo de información de una dirección en Internet.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;InternetCloseHandle: &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;Cierra la conexión abierta a Internet&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Listo, ahora que tenemos las funciones hay que usarlas. En el formulario que creamos anteriormente lo que nos interesa es que al presionar el boton etiquetado “Iniciar” descargue el archivo ingresado en la caja de texto al lado de la etiqueta “Ruta(URL):”; ademas deberemos cambiar el nombre de algunos objetos como sigue:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;La barra de progreso : pgDownload&lt;br /&gt;La Etiqueta de Tamaño del archivo: lblFileSize&lt;br /&gt;La Etiqueta de Bytes descargados: lblBytesDownloaded&lt;br /&gt;La etiqueta de Estado:  LblEstado&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;entonces el código para ello seria el siguiente:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;    &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Private Sub Command1_Click()&lt;br /&gt;   DownloadFile Text1.text, “c:\Downloads\archivo.txt”&lt;br /&gt;End Sub&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;              &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Public Function DownloadFile(FileOrigen As String, FileDestino As String) As Boolean&lt;br /&gt;'On Error GoTo errhandle&lt;br /&gt;Dim hOpen As Long&lt;br /&gt;Dim HOpenURL As Long&lt;br /&gt;Dim sUrl As String&lt;br /&gt;Dim bDoLoop As Boolean&lt;br /&gt;Dim bRet As Boolean&lt;br /&gt;Dim sReadBuffer As String * 2048&lt;br /&gt;Dim lNumberOfBytesRead As Long&lt;br /&gt;Dim sBuffer As String&lt;br /&gt;Dim percent As Integer&lt;br /&gt;Dim file As String&lt;br /&gt;Dim flen As Long&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;     &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;  &lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;pgDownload.Value = 0&lt;br /&gt;lblFileSize.Caption = 0&lt;br /&gt;lblBytesDownloaded.Caption = 0&lt;br /&gt;'MsgBox "voy a conectar" + vbCrLf + FileOrigen + vbCrLf + FileDestino&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;  &lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;sUrl = FileOrigen 'url&lt;br /&gt;hOpen = InternetOpen(scUserAgent, INTERNET_OPEN_TYPE_PRECONFIG, vbNullString, vbNullString, 0)&lt;br /&gt;HOpenURL = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;  &lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;'MsgBox "conectado!!"&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;DownloadFile = False&lt;br /&gt;Me.LblEstado.Caption = "Descargando.."&lt;br /&gt;Me.LblEstado.Refresh&lt;br /&gt;bDoLoop = True&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;Dim cnt As Long&lt;br /&gt;cnt = 0&lt;br /&gt;DownloadFile = True&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;                     &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;     &lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;     &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;While bDoLoop&lt;br /&gt; sReadBuffer = vbNullString&lt;br /&gt; bRet = InternetReadFile(HOpenURL, sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)&lt;br /&gt; sBuffer = sBuffer &amp;amp; Left$(sReadBuffer, lNumberOfBytesRead)&lt;br /&gt; 'percent = Int((Len(sBuffer) / flen) * 100)&lt;br /&gt; cnt = cnt + lNumberOfBytesRead&lt;br /&gt; If (cnt &gt; 10000) Then&lt;br /&gt;    lblBytesDownloaded.Caption = CStr(Len(sBuffer))&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;      &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;lblBytesDownloaded.Refresh&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;      &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;cnt = 0&lt;br /&gt; End If&lt;br /&gt; pgDownload.Value = lblBytesDownloaded.Caption&lt;br /&gt; If Not CBool(lNumberOfBytesRead) Then&lt;br /&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;      &lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;bDoLoop = False&lt;br /&gt; End If&lt;br /&gt;Wend&lt;br /&gt;'Kill FileDestino&lt;br /&gt;Open FileDestino For Binary Access Write As #2&lt;br /&gt; Put #2, , sBuffer&lt;br /&gt;Close #2&lt;br /&gt;pgDownload.Value = 100&lt;br /&gt;lblBytesDownloaded.Caption = file&lt;br /&gt;lblBytesDownloaded.Refresh&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;If HOpenURL &lt;&gt; 0 Then InternetCloseHandle (HOpenURL)&lt;br /&gt;If hOpen &lt;&gt; 0 Then InternetCloseHandle (hOpen)&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;i&gt;End Function&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Con eso seria suficiente, espero a alguien le sirva este programita, a mi me sirvio mucho; le hice algunas modificaciones para que me sirva de un actualizador de EXE's en mi red corporativa, si alguien desea que le explique como lo hice e avisan para un siguiente post jeje.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt; &lt;span style="color: rgb(0, 0, 255);"&gt;&lt;span style="font-size:85%;"&gt;Referencias:&lt;br /&gt;&lt;/span&gt;&lt;u&gt;&lt;a href="http://www.vbforums.com/showthread.php?t=543107"&gt;&lt;span style="font-family:Arial,sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: normal;"&gt;http://www.wikilearning.com/tutorial/los_rincones_del_api_win32_el_cache_de_wininet-enumerar_las_entradas_almacenadas_en_el_cache/3846-6#verOpiniones&lt;br /&gt;http://www.experts-exchange.com/Programming/Languages/Visual_Basic/Q_20577961.html&lt;br /&gt;http://support.microsoft.com/default.aspx?scid=kb%3Ben-us%3BQ175179&lt;br /&gt;http://en.allexperts.com/q/Visual-Basic-1048/using-wininet-dll.htm&lt;br /&gt;http://www.vbforums.com/showthread.php?t=543107&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/u&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-left: 0.64cm; margin-bottom: 0cm; font-style: normal;"&gt; &lt;/p&gt;&lt;p style="margin-left: 0.64cm; margin-bottom: 0cm;"&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-3853053895589148850?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/3853053895589148850/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/03/un-programa-simple-de-descarga-de.html#comment-form' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3853053895589148850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3853053895589148850'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/03/un-programa-simple-de-descarga-de.html' title='Un programa simple de descarga de archivos  usando API’s de Windows en Visual Basic'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_RhPJJRySnYs/SbVzBS-t6JI/AAAAAAAAABI/wN8F6E-5bV8/s72-c/descarga.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-6098306295979059262</id><published>2009-02-02T15:08:00.000-05:00</published><updated>2009-02-02T15:09:21.085-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 7</title><content type='html'>"El que quiera hacer todo solo, jamás será un gran líder; tampoco el que quiera quedarse con todo el crédito por hacerlo "&lt;br /&gt;- Andrew Carnegie&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-6098306295979059262?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/6098306295979059262/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/02/frase-7.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6098306295979059262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6098306295979059262'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/02/frase-7.html' title='Frase 7'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-474312721107960043</id><published>2009-01-05T12:41:00.002-05:00</published><updated>2009-01-05T12:46:25.784-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 6</title><content type='html'>Vuelve a empezar...&lt;br /&gt;&lt;br /&gt;aunque sientas el cansancio,&lt;br /&gt;aunque el triunfo te abandone,&lt;br /&gt;aunque un error te lastime,&lt;br /&gt;aunque un negocio se quiebre,&lt;br /&gt;aunque una traición te hiera,&lt;br /&gt;aunque una ilusión se apague,&lt;br /&gt;aunque el dolor queme tus ojos,&lt;br /&gt;aunque ignoren tus esfuerzos,&lt;br /&gt;aunque la ingratitud sea la paga,&lt;br /&gt;aunque la incomprensión corte tu risa,&lt;br /&gt;aunque todo parezca nada...&lt;br /&gt;vuelve a empezar...&lt;br /&gt;(Cecilia Prezioso)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-474312721107960043?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/474312721107960043/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2009/01/frase-6.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/474312721107960043'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/474312721107960043'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2009/01/frase-6.html' title='Frase 6'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-8735521322451272631</id><published>2008-12-26T08:26:00.002-05:00</published><updated>2008-12-26T08:28:40.374-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mi_Vida'/><title type='text'>Un bonito regalo</title><content type='html'>&lt;span style="color:#205867;"&gt;Holas, quiero compartir con tod@s, este regalo que me hicieron por mi cumpleaños.. el texto simplemente me parece sensacional... Gracias. muchas gracias KS..&lt;br /&gt;=====================================================&lt;br /&gt;&lt;br /&gt;......son las casi 10:58 am del 24 de diciembre de 1975 , y ya naciste! , tienes aproximadamente ya casi 10 horas y 37 minutos respirando este aire inesperado&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Papà y mamà estan felices por que ya estas aqui y además de todo  eres varón!! (jaaaa el machismo por delante)&lt;img alt="" src="http://gfx2.hotmail.com/mail/w3/ltr/emoticons/smile_tongue.gif" width="19" height="19" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;mas ya no importa tanto la razón, importa más la sensación de felicidad de tenerte aún mas cerca que antes&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Y te sientes extraño,todas tus sensaciones son nuevas, sientes un algo que entra hasta tus pulmones muy ligero y aún mas extraño tu pechito se empieza a hinchar y luego a desinflar, estas inspirando y expirando &lt;img alt="" src="http://gfx2.hotmail.com/mail/w3/ltr/emoticons/smile_teeth.gif" width="19" height="19" /&gt; ... ya empezaste a respirar! &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Y te sientes  frio y un tantito solo, pues ya no son dos, ahora eres uno&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;claro! sin dudar , no hay nada mas cálido que el vientre de mamá&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;pero desde antes y hasta ahora todo es un perder y ganar ,ya no estas dentro  &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;pero ahora la puedes rozar,la puedes tocar , puedes sentir sus manos recorriendo tu diminuto  rostro, puedes sentir como se asoman sus besos y se entregan a ti envueltos en  la mas maravillosa energia y la muestra más pura de amor,lo ves... tal vez haz ganado mas , que perdido...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;.......y ya diste tu primer llanto, tu primera protesta como un gran no conformista y es que todos nacemos asi, pero pasan cosas y mas cosas que algunos quedamos atrapados en ese conformismo y otros tantos  intentamos mantenerla lejos ..en finn...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;...... por ahora tu lenguaje es binario, y es que si tienes la boquita abierta es un 0 (cero) , y si la cierras es un 1(uno),eres un bebe robusto como el increible Hulk ..jajaja tal vez ,bello y muy inteligente desde ya.... ya eres un gran hacker ...y ya empiezas a cuestionar ...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;De pronto oyes una voz muy conocida ...sii...es mamá ....de seguro dirás,tan linda como siempre,aún no entiendes lo que intenta decir tan sólo te dejas llevar y mecer por la sinfonia perfecta de su voz y ya casi dormido vuelves a oir más y ahora  con más claridad a todo los demàs,y escuchas jose!, ese debe ser mi nombre piensas ..entonces...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Empiezas a sentir tu cuerpecito de un modo diferente,mueves tus piernecitas ,jaaa ya aprendiste a patalear pero presiento que futbolista ..no seras...tranquilo no te muevas tanto,esta bien que ya empieces a controlar tu cuerpo,pero aún dependes de mamá,pero faltara poco para ser independiente como te gusta ser,ahora es tiempo de disfrutar y llego el momento mágico de tu primer amamantamiento, la conexion mas perfecta de amor,placer,nutriciòn y que se yo ......aún tus labios titubean en movimiento pero ella te ayuda y tus labios rosaditos pequeñitos  pasan de dibujar el  1 al 0, para poder sentir la seda de los pechos de mamá y de un modo más te dice cuanto te ama .... y a lo lejos una voz susurra como brisa de mar, despacito muy despacito para no asustarte ..y te dice : bienvenido jose joaquin a vivir...&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Son las 11:15 am  del 24 de diciembre del 2008 y sigues viviendo &lt;img alt="" src="http://gfx2.hotmail.com/mail/w3/ltr/emoticons/smile_wink.gif" width="19" height="19" /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;te haz dado cuenta que eres un ser muy especial , tienes el derecho y el deber de estar bien contigo...ps q bueno que lo sepas .&lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt; &lt;/span&gt;&lt;br /&gt;&lt;span style="color:#205867;"&gt;Es otro modo más de decir Felíz Dia Jöse.&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-8735521322451272631?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/8735521322451272631/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/12/un-bonito-regalo.html#comment-form' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8735521322451272631'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8735521322451272631'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/12/un-bonito-regalo.html' title='Un bonito regalo'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-8362495323491433207</id><published>2008-12-23T11:34:00.003-05:00</published><updated>2008-12-30T18:23:47.460-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBasic'/><title type='text'>Impresión Draft desde VB2005</title><content type='html'>Hola, tal y como lo dije anteriormente entre al problema de imprimir en Draft desde VB2005 en una EPSON FX890.&lt;br /&gt;Asi que les contare todo lo que probe y con lo que finalmente quede como solución.&lt;br /&gt;&lt;br /&gt;1. Use la API de winspool.drv , pero no respeta algunas configuraciones de la impresora como tamaño de pagina, interlineado o corte de pagina automático, asi que esta solución no es la mas eficiente.&lt;br /&gt;&lt;br /&gt;2. Instale el &lt;a href="http://www.microsoft.com/downloads/details.aspx?familyid=371368a8-7fdc-441f-8e7d-fe78d96d4063&amp;amp;displaylang=en"&gt;power pack 3 de VB2005&lt;/a&gt; con el que habilita el objeto printer para poder ser usado en VB2005, perooooooo, no reconoce las fuentes dela impresora, yo me imagino que es porque la clase printer trabja de todas formas a traves del framework de .net y este no puede accder a las fuentes de la impresora.. asi queeeeeeeeeeeee........ no me sirve esta solución.&lt;br /&gt;&lt;br /&gt;3. En VB6 me funciona perfectamente imprimir Draft con el objeto Printer, solo se debe setear el nombre de la fuente a "Draft 10cpi" (printer.fontname="Draft 10cpi") y listo funciona y respeta las configuraciones de la impresora, solo hay que tener cuidado con el tamaño de página que no puede ser menor a 4" de longitud.&lt;br /&gt;Entonces lo que hice fue hacer una dll en VB6 que contenga una clase con el objeto Printer, luego agregue esta dll a VB2005 y todo funciono de maravillas. Lo unico malo claro es que se depende de las librerias de ejecucion de VB6 como la msvbvm60.dll&lt;br /&gt;Ahi les dejo el codigo de la dll, yo le puse de nombre clsDraft.cls&lt;br /&gt;================================&lt;br /&gt;VERSION 1.0 CLASS&lt;br /&gt;BEGIN&lt;br /&gt;  MultiUse = -1  'True&lt;br /&gt;  Persistable = 0  'NotPersistable&lt;br /&gt;  DataBindingBehavior = 0  'vbNone&lt;br /&gt;  DataSourceBehavior  = 0  'vbNone&lt;br /&gt;  MTSTransactionMode  = 0  'NotAnMTSObject&lt;br /&gt;END&lt;br /&gt;Attribute VB_Name = "clsDraft"&lt;br /&gt;Attribute VB_GlobalNameSpace = False&lt;br /&gt;Attribute VB_Creatable = True&lt;br /&gt;Attribute VB_PredeclaredId = False&lt;br /&gt;Attribute VB_Exposed = True&lt;br /&gt;Option Explicit&lt;br /&gt;Public Fuente As String&lt;br /&gt;&lt;br /&gt;Private Sub Class_Initialize()&lt;br /&gt; Fuente = "Draft 10cpi"&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub AbreImpresora(Optional NombreDoc As String = "CROMOTEX")&lt;br /&gt; With Printer&lt;br /&gt;'  .PaperSize = vbPRPSUser '256&lt;br /&gt;'  .Height = 10773 '19.2&lt;br /&gt;'  .width = 4083 '7.2&lt;br /&gt;  '.Orientation = vbPRORLandscape&lt;br /&gt;  .FontName = Fuente&lt;br /&gt; End With&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub CierraImpresora()&lt;br /&gt; Printer.EndDoc&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub Imprimir(Texto As String, Optional Salto As Boolean = True)&lt;br /&gt; Printer.FontName = Fuente&lt;br /&gt; Printer.Print Texto&lt;br /&gt;End Sub&lt;br /&gt;================================================&lt;br /&gt;&lt;br /&gt;Espero le sirva a alguien mas.&lt;br /&gt;&lt;br /&gt;Ahhh aun estoy buscando un Reporteador que tambien me permita usar la fuente Draft en Vb2005.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-8362495323491433207?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/8362495323491433207/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/12/impresin-draft-desde-vb2005.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8362495323491433207'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8362495323491433207'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/12/impresin-draft-desde-vb2005.html' title='Impresión Draft desde VB2005'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5270376458858830117</id><published>2008-12-20T12:44:00.002-05:00</published><updated>2008-12-20T12:47:10.957-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='TIC&apos;s'/><title type='text'>GPS, una tecnología de moda en el transporte peruano</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_RhPJJRySnYs/SU0vlspBmRI/AAAAAAAAAAw/k610ozcsd9o/s1600-h/GPS.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px; height: 222px;" src="http://3.bp.blogspot.com/_RhPJJRySnYs/SU0vlspBmRI/AAAAAAAAAAw/k610ozcsd9o/s320/GPS.jpg" alt="" id="BLOGGER_PHOTO_ID_5281930262660356370" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Es increíble el boom actual de los GPS en el Perú, ya sea gracias a normativas gubernamentales o al excesivo incremento delincuencial en el país; por lo que entonces debemos ver y/o conocer un poco de esta tecnología y toda la gama de aplicaciones empresariales, gubernamentales a las que se les esta dando uso en nuestro país.&lt;br /&gt;&lt;br /&gt;Como siempre debemos empezar con un poco de marco teórico.. así que haremos uso nuevamente de nuestro querido wikipedia..:&lt;br /&gt;&lt;br /&gt;“El Global Positioning System (GPS) o Sistema de Posicionamiento Global (más conocido con las siglas GPS, aunque su nombre correcto es NAVSTAR-GPS[1] ) es un Sistema Global de Navegación por Satélite (GNSS) que permite determinar en todo el mundo la posición de un objeto, una persona, un vehículo o una nave, con una precisión hasta de centímetros, usando GPS diferencial, aunque lo habitual son unos pocos metros. Aunque su invención se atribuye a los gobiernos francés y belga, el sistema fue desarrollado e instalado, y actualmente es operado, por el Departamento de Defensa de los Estados Unidos.”&lt;br /&gt;&lt;br /&gt;Como les decía en nuestro país esta el “boom” de los GPS, mas porque el gobierno sabe las grandes ventajas que da esta tecnología para fines de control y auditoria. El transporte interprovincial, la industria pesquera, la industria minera son algunos de los obligados a contar con estos sistemas. Por lo que diversidad de empresas han salido al mercado a ofrecer el servicio con mas o menos valores agregados en cada uno los ramos anteriormente mencionados.&lt;br /&gt;&lt;br /&gt;Se ofertan en el mercado local dos servicios:&lt;br /&gt;&lt;br /&gt;1. A través de tecnología celular GPRS; la conexión con los satélites GPS se hace por medio de conexiones celulares GPRS por lo que los proveedores no garantizan la cobertura en todo el territorio, solo en zonas donde llega la señal celular GPRS de cualquiera de las dos operadoras de telefonía celular en nuestro país (telefónica y claro), aunque la mayoría recomiendan usar una conexión de Claro porque tiene una mayor cobertura GPRS. Los equipos de este servicio oscilan entre unos US$300.00 y US$450.00 con un pago mensual aproximado por conexión de US$25.00 por equipo. Si ven el costo es relativamente barato, pero las zonas de cobertura son el problema, ya que por ejemplo para el caso de un viaje Cuzco – Lima habrá cerca de un 50% del recorrido donde no se tenga señal del equipo y si hablamos de la industria pesquera esto será mucho peor.&lt;br /&gt;&lt;br /&gt;2. A través de conexiones satelitales; en este caso la conexión con los satélites de GPS se hace directamente por una conexión satelital por lo que se asegura la conexión en casi cualquier lugar de nuestro planeta. Los equipos oscilan entre los US$1000.00 y US$2000.00 con costes de conexión mensual de aproximadamente US$125.00 por equipo. Aquí se ve que el costo es algo alto, pero para empresas u organizaciones que requieren tener un control permanente independiente del lugar donde se encuentren esta es la única solución.&lt;br /&gt;&lt;br /&gt;También hay sistemas híbridos (celular GPRS/satelital) pero son menos ofertados que los dos anteriores.&lt;br /&gt;&lt;br /&gt;Aplicaciones. Las aplicaciones que se le dan son diversas, mencionare primero algunas requeridas por temas gubernamentales:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Limites de Pesca&lt;/li&gt;&lt;li&gt;Limite de Velocidad del vehiculo&lt;/li&gt;&lt;li&gt;Número de viajes&lt;/li&gt;&lt;li&gt;Respeto de Rutas&lt;/li&gt;&lt;li&gt;Emergencias.. botón de pánico&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Y otros que también se pueden usar, en algunos casos requieren de algún accesorio adicional:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Estado de las puertas.&lt;/li&gt;&lt;li&gt;Robo con remolque.&lt;/li&gt;&lt;li&gt;Seguimiento de tiempo de salida y llegada.&lt;/li&gt;&lt;li&gt;Seguro de secuestro.&lt;/li&gt;&lt;li&gt;Comunicación de voz.&lt;/li&gt;&lt;li&gt;Envió y recepción de mensaje vía SMS.&lt;/li&gt;&lt;li&gt;Seguimiento del estado del motor.&lt;/li&gt;&lt;li&gt;Control de consumos de gasolina.&lt;/li&gt;&lt;li&gt;Conexión a Internet.&lt;/li&gt;&lt;li&gt;Etc, etc :o)&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;En cuanto a empresas que ofrecen el servicio hay muchas, demasiadas diría yo, por lo que solo nos queda evaluar bien al decidirnos por alguna, tal vez mediante su experiencia dando este servicio en el ramo que estamos nosotros, el precio, servicios adicionales y por supuesto el soporte y atención postventa.&lt;br /&gt;&lt;br /&gt;Nos vemos.. espero les sirva para algo esta aproximación a los GPS en el Perú.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5270376458858830117?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5270376458858830117/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/12/gps-una-tecnologa-de-moda-en-el.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5270376458858830117'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5270376458858830117'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/12/gps-una-tecnologa-de-moda-en-el.html' title='GPS, una tecnología de moda en el transporte peruano'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_RhPJJRySnYs/SU0vlspBmRI/AAAAAAAAAAw/k610ozcsd9o/s72-c/GPS.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-8471701162213245946</id><published>2008-11-19T17:22:00.002-05:00</published><updated>2008-11-19T17:26:29.122-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>IN-TECH scientific database</title><content type='html'>Excelente site con libros, periodicos, articulos, etc; mucha información cientifica sobre computación y tecnología.&lt;br /&gt;Copio el contenido de un mail que me llego. En un rato lo traduzco para los hispanohablantes jeje&lt;br /&gt;&lt;br /&gt;===============================&lt;br /&gt;Dear Sr,&lt;br /&gt;&lt;br /&gt;It is my pleasure to inform you that IN-TECH has started new open&lt;br /&gt;access database at &lt;a href="http://www.intechweb.org/" target="_blank"&gt;http://www.intechweb.org&lt;/a&gt;&lt;br /&gt;IN-TECH scientific database is FREE for everyone, everywhere in the&lt;br /&gt;world.&lt;br /&gt;At the moment IN-TECH database offers more then 2000 peer-reviewed&lt;br /&gt;book and journal articles covering the fields of Artificial&lt;br /&gt;Intelligence, Manufacturing, Robotics and Operations Research.&lt;br /&gt;&lt;br /&gt;To search IN-TECH database you do not even need to register. All IN-&lt;br /&gt;TECH articles are accessible in full length immediately on&lt;br /&gt;publication, free of charge.&lt;br /&gt;&lt;br /&gt;We hope that you will find IN-TECH database a valuable source for&lt;br /&gt;your scientific work.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-8471701162213245946?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.intechweb.org/' title='IN-TECH scientific database'/><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/8471701162213245946/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/11/in-tech-scientific-database.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8471701162213245946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8471701162213245946'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/11/in-tech-scientific-database.html' title='IN-TECH scientific database'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4878371766776116807</id><published>2008-11-07T14:57:00.000-05:00</published><updated>2008-11-07T14:58:01.283-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 5</title><content type='html'>Teoría de las Especies:&lt;br /&gt;"No sobrevive la más fuerte o la más inteligente sino aquella que mejor se adapta a los cambios"&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Charles Darwin (1809-1882) &lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4878371766776116807?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4878371766776116807/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/11/frase-5.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4878371766776116807'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4878371766776116807'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/11/frase-5.html' title='Frase 5'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-598468698626763348</id><published>2008-11-06T14:54:00.003-05:00</published><updated>2008-11-17T09:03:38.035-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Full Warez</title><content type='html'>&lt;a href="http://pordescargadirecta.com/"&gt;&lt;span style="font-weight: bold;"&gt;PorDescargaDirecta.com&lt;/span&gt;&lt;br /&gt;http://pordescargadirecta.com&lt;/a&gt;&lt;br /&gt;Foro para "compartir" Peliculas, Series, Musica, Juegos, Ebooks, Software, etc via rapidshare, megaupload o cualquiera parecido.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.esnips.com/"&gt;&lt;span style="font-weight: bold;"&gt;Snips&lt;/span&gt;&lt;br /&gt;http://www.esnips.com/&lt;/a&gt;&lt;br /&gt;Un lugar tambien para "almacenar" archivos, contiene un buen buscador; lo mejor que he encontrado son EBooks y documentos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.scribd.com/"&gt;&lt;span style="font-weight: bold;"&gt;Scribd&lt;/span&gt;&lt;br /&gt;http://www.scribd.com/&lt;br /&gt;&lt;/a&gt;Otro sitio para "almacenar" archivos.. mas enfocado a ebooks y documentos. Al igual que snips muy bueno para encontrar libros y documentos digitales diversos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-598468698626763348?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/598468698626763348/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/11/full-warez.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/598468698626763348'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/598468698626763348'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/11/full-warez.html' title='Full Warez'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-5693777727887712560</id><published>2008-11-06T09:37:00.004-05:00</published><updated>2008-11-06T10:01:49.781-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Ing. de Software'/><category scheme='http://www.blogger.com/atom/ns#' term='SCRUM'/><title type='text'>La importancia de una Metodologia de Gestión en el Desarrollo de Software</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://jorgesaavedra.files.wordpress.com/2007/04/tabla1.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 417px; height: 316px;" src="http://jorgesaavedra.files.wordpress.com/2007/04/tabla1.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Introducción&lt;/span&gt;&lt;br /&gt;Cuando empezamos a desarrollarnos dentro del perverso mundo del desarrollo de software algunos lo hacemos de la mano de un buen guía o mentor que nos enseña buenas practicas en el momento de desarrollar software, muchos otros solo siguen su instinto recordando en cada traspié palabras y consejos de algunos maestros o profesores que tuvimos en nuestra formación profesional, bueno eso si recordamos lo que dijeron alguna vez y si en verdad tuvieron algo que decirnos.&lt;br /&gt;Es así como luego de mucho sufrimiento y momentos traumáticos nos damos cuenta de la necesidad de ser "un poco organizados" :o) en el momento de desarrollar software, lo primero que hacemos en ese momento es seguir y aprender de alguien que ya la sufrió y en base a su experiencia estuvo dispuesto a dejarnos una propuesta de metodología de desarrollo de software.&lt;br /&gt;Por lo tanto actualmente tenemos muchas de ellas, unas mejores, peores, populares , queridas y no muy queridas pero propuestas metodologicas al fin y al cabo.. debo señalar casi obligado a las mas populares como:&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.acm.org/crossroads/xrds12-4/gfx/cartoon.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 300px; height: 375px;" src="http://www.acm.org/crossroads/xrds12-4/gfx/cartoon.jpg" alt="" border="0" /&gt;&lt;/a&gt; RUP, XP y MSF, pero no son las únicas ni las que yo he encontrado se ajusten mejor al momento de ponerme a hacer software. En algún articulo posterior les contare el porque de lo ultimo que digo, ahora nos centraremos en revisar el porque es importante tener alguna metodología para hacer gestión de nuestros proyectos de desarrollo de software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:130%;" &gt;Algunas metodologías de gestión&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Empezaremos creo preguntándonos que es “Gestión”, esa palabrita que tanto se usa y mal usa para justificar jefaturas, gerencias y demás cargos de dirección, muchas veces mal llevados por falta de no saber hacer justamente eso: “gestión”. Según la Real Academia de la Lengua Española (RAE) gestión es : &lt;a href="http://buscon.rae.es/draeI/SrvltGUIBusUsual?LEMA=gesti%C3%B3n&amp;amp;origen=RAE&amp;amp;TIPO_BUS=3"&gt;“Acción o efecto de gestionar o Administrar”&lt;/a&gt; :o) entonces que es administrar o gestionar algo.. vayamos al grano, gestionar es “el proceso mediante el cual se obtiene, despliega o utiliza una variedad de recursos básicos para apoyar los objetivos de la organización.”, para nuestro caso seria objetivos de un proyecto de software.&lt;br /&gt;Entonces ya sabemos que es y para que no ayudara… simplemente (si se le puede decir así) para llevar adelante un proyecto de desarrollo de software tratando de que el resultado de este sea de calidad cumpliendo con los plazos y recursos que nos hayamos planteado al inicio de nuestra titánica tarea de hacer un software.&lt;br /&gt;&lt;br /&gt;Bueno y que hago ahora entonces:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. Cuales hay?&lt;/span&gt; Daré una pequeña referencia a algunas, las mas populares a mi parecer (por favor si alguien considera que alguna otra mas debería estar, encantado de sus criticas)&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/T%C3%A9cnica_de_revisi%C3%B3n_y_evaluaci%C3%B3n_de_programas"&gt;PERT (Program Evaluation and Review Technique)&lt;/a&gt;. Inventado en 1958 por la Oficina de Proyectos Especiales de la Marina de Guerra del Departamento de Defensa de los EE. UU.  PERT es básicamente un método para analizar las tareas involucradas en completar un proyecto dado, especialmente el tiempo para completar cada tarea, e identificar el tiempo mínimo necesario para completar el proyecto total. &lt;/li&gt;&lt;br /&gt;La parte más famosa de PERT son las Redes PERT, diagramas de líneas de tiempo que se interconectan. PERT está diseñado para proyectos de gran escala, que se ejecutan de una vez, complejos y no rutinarios.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://www.presionblogosferica.com/2007/06/20/critical-chain-project-management-ccpm/"&gt;CCPM (Critical Chain Project Management) &lt;/a&gt;la Gestión de proyectos por Cadena Crítica (CCPM por sus siglas en inglés)  nace en el 97 a raiz del libro de Eliyahu M. Goldrat, padre putativo no solo de esta criatura sino de la famosa Teoría de las Limitaciones.&lt;/li&gt;&lt;br /&gt;En la gestión de proyectos, la cadena crítica es la secuencia de precedencias y elementos terminales dependientes de recursos que evitan que un proyecto, al que se le dan recursos limitados, pueda ser completado en un tiempo menor. Si los recursos de un proyecto estuviesen siempre disponibles en cantidades ilimitadas, entonces la cadena crítica de un proyecto sería igual a su ruta crítica.&lt;br /&gt;&lt;br /&gt;Se basa en dos principios bastante elementales (si obviamos las partes que no son específicas de CCPM sino generales de TOC):&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Empieza las cosas cuanto antes, no las dejes para el último momento (lo que Goldratt bautiza adecuadamente como el “síndrome del estudiante”).&lt;/li&gt;&lt;li&gt;Reservar una fracción de la duración estimada de cada tarea, intentando acabarla antes y posponiendo esa fracción al final del diagrama de Gantt para crear un denominado “buffer de proyecto”&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/Project_Management_Body_of_Knowledge"&gt;La Guía del PMBOK®&lt;/a&gt;, desarrollada por el Project Management Institute, contiene una descripción general de los fundamentos de la Gestión de Proyectos reconocidos como buenas prácticas. Actualmente en su tercera edición, es el único estándar ANSI para la gestión de proyectos. Todos los programas educativos y certificaciones brindadas por el PMI están estrechamente relacionadas con el PMBOK. El PMI ha publicado los borradores para revisión de la Cuarta Edición de la Guía del PMBOK®, que será publicada a fines del año 2008.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Todas las mencionadas anteriormente son metodologías de gestión de proyectos, que con algunos ajustes se pueden aplicar de manera muy efectiva y eficiente a proyectos de software.&lt;br /&gt;&lt;br /&gt;Veamos ahora algunas específicas para proyectos de software.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/M%C3%89TRICA"&gt;Métricas&lt;/a&gt;, es una metodología de planificación, desarrollo y mantenimiento de sistemas de información. Promovida por el Ministerio de Administraciones Públicas del Gobierno de España para la sistematización de actividades del ciclo de vida de los proyectos software en el ámbito de las administraciones públicas. Esta metodología propia está basada en el modelo de procesos del ciclo de vida de desarrollo ISO/IEC 12207 (Information Technology - Software Life Cycle Processes) así como en la norma ISO/IEC 15504 SPICE (Software Process Improvement And Assurance Standards Capability Determination).&lt;/li&gt;&lt;br /&gt;Al igual que ISO/IEC 12207, MÉTRICA está orientada al proceso y, en su versión 3, estos procesos son:&lt;ul&gt;&lt;li&gt;Planificación de Sistemas de Información (PSI).&lt;/li&gt;&lt;li&gt;Desarrollo de Sistemas de Información (DSI). Debido a su complejidad, está a su vez dividido en cinco procesos:&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Estudio de Viabilidad del Sistema (EVS).&lt;/li&gt;&lt;li&gt;Análisis del Sistema de Información (ASI).&lt;/li&gt;&lt;li&gt;Diseño del Sistema de Información (DSI).&lt;/li&gt;&lt;li&gt;Construcción del Sistema de Información (CSI).&lt;/li&gt;&lt;li&gt;Implantación y Aceptación del Sistema (IAS).&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Mantenimiento de Sistemas de Información (MSI).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/RUP"&gt;RUP (Rational Unified Process)&lt;/a&gt;, El Proceso Unificado de Rational es un proceso de desarrollo de software y junto con el Lenguaje Unificado de Modelado UML, constituye la metodología estándar más utilizada para el análisis, implementación y documentación de sistemas orientados a objetos. El RUP no es un sistema con pasos firmemente establecidos, sino un conjunto de metodologías adaptables al contexto y necesidades de cada organización.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://es.wikipedia.org/wiki/Scrum"&gt;SCRUM&lt;/a&gt;. Es un proceso de desarrollo de software iterativo e incremental utilizado comúnmente en entornos basado en la metodología Agile de desarrollo de software. Aunque Scrum estaba enfocado a la gestión de procesos de desarrollo de software, puede ser utilizado en equipos de mantenimiento de software, o en una aproximación de gestión de programas: Scrum de Scrums.&lt;/li&gt;&lt;br /&gt;La verdad es que SCRUM nació como una metodología de gestión de proyectos de uso general y ha sido adaptada con mucho éxito a proyectos de desarrollo de software. Por ello la considero como una metodología especifica para desarrollo de software pero se puede usar también y de una forma muy eficaz para cualquier tipo de proyecto.&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;2. Cual usar?&lt;/span&gt;  Mi pequeño consejo es que uses aquella con la que te sientas mas cómodo, todas y cada una de ellas tienen sus pros y sus contras, prueba en la medida de lo posible cada una, tal vez con pequeños proyectos donde puedas ver su agilidad en respuesta a cambios de requisitos y la que te brinde la mejor información que tu consideres necesaria al momento de tomar decisiones para poder gestionar tu proyecto. Si lo ves necesario apóyate en una de metodología de gestión general y usa herramientas de alguna orientada al desarrollo de software (eso es lo que yo siempre hago).&lt;br /&gt;&lt;br /&gt;Pero &lt;span style="font-weight: bold;"&gt;SIEMPRE APOYATE EN UNA METODOLOGIA DE GESTION&lt;/span&gt; sea cual sea, hará que logres proyectos de mejor calidad, cumpliendo tus tiempos y usando solo los recursos necesarios.&lt;br /&gt;&lt;br /&gt;Espero sirva de algo este pequeño articulo, en alguna otra entrega posterior hablare sobre la metodología que mas me gusta y con la que mejores resultados he tenido : SCRUM.&lt;br /&gt;Hasta otra oportunidad.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-5693777727887712560?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/5693777727887712560/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/11/la-importancia-de-una-metodologia-de.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5693777727887712560'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/5693777727887712560'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/11/la-importancia-de-una-metodologia-de.html' title='La importancia de una Metodologia de Gestión en el Desarrollo de Software'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-6529287061615610600</id><published>2008-10-31T10:19:00.002-05:00</published><updated>2008-10-31T10:21:33.637-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Drivers Windows XP para HP dv6426us</title><content type='html'>Aqui les dejo los links de un foro donde dan los drivers que sirven para mi HP dv6426us.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.topix.com/forum/computers/hp/T4E1C3AVFVG1DB1C9/p4"&gt;http://www.topix.com/forum/computers/hp/T4E1C3AVFVG1DB1C9/p4&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-6529287061615610600?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/6529287061615610600/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/drivers-windows-xp-para-hp-dv6426us.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6529287061615610600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/6529287061615610600'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/drivers-windows-xp-para-hp-dv6426us.html' title='Drivers Windows XP para HP dv6426us'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-1782011766939851140</id><published>2008-10-22T17:18:00.001-05:00</published><updated>2008-10-22T17:20:04.510-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Dinamicas</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Dinamicas en grupos&lt;/span&gt;&lt;br /&gt;&lt;a href="http://members.fortunecity.com/dinamico"&gt;http://members.fortunecity.com/dinamico&lt;/a&gt;&lt;br /&gt;Excelente coleecion de dinamicas para trabajar diferentes aspectos de grupos organizacionales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-1782011766939851140?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/1782011766939851140/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/dinamicas.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1782011766939851140'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1782011766939851140'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/dinamicas.html' title='Dinamicas'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-118733635765826981</id><published>2008-10-22T08:54:00.004-05:00</published><updated>2008-10-22T08:57:34.151-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Tecnicas de Creatividad</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Neuronilla.com&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.neuronilla.com/component/option,com_deeppockets/task,catShow/id,5/Itemid,70/"&gt;http://www.neuronilla.com/component/option,com_deeppockets/task,catShow/id,5/Itemid,70/&lt;/a&gt;&lt;br /&gt;Excelente sitio sobre diferentes recursos sobre creatividad.. un factor demasiado importante al momento de resolver problemas mediante la propuesta de soluciones. En el enlace de arriba encontraran una lista de técnicas que se usan para ayudar a desarrollar esa creatividad que todos llevamos dentro.. a mi personalmente me gusta mucho &lt;a href="http://www.neuronilla.com/content/view/84/70/"&gt;SCAMPER.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-118733635765826981?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/118733635765826981/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/tecnicas-de-creatividad.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/118733635765826981'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/118733635765826981'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/tecnicas-de-creatividad.html' title='Tecnicas de Creatividad'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-602925447994720165</id><published>2008-10-20T10:58:00.002-05:00</published><updated>2008-10-20T11:18:31.717-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_Swing'/><title type='text'>Centrar JFrame</title><content type='html'>Hola, haber algo sencillo de hacer pero q a veces me paro olvidando.. Netbeans nos ahorra el trabajo de hacer codigo con mucha utilidades visuales.. poco a poco ire publicando varias de las cosas que he podido encontrar..&lt;br /&gt;&lt;br /&gt;Centrar un JFrame (Netbeans 6.1)&lt;br /&gt;&lt;br /&gt;1. Seleccionar el JFrame que queremos aparezca centrado.&lt;br /&gt;2. En la ventana de propiedades seleccionar la ficha "Code".&lt;br /&gt;3. Cambiar el valor de "Form Size Policy" a "Generate Resize Code".&lt;br /&gt;4. Con lo anterior se activa la edicion de los valores de "Generate Size" y "Generate Center". Predeterminadamente ambas estan seleccionadas, por lo que no sera necesario hacer nada mas.&lt;br /&gt;&lt;br /&gt;Y listo con eso ya tus JFrames se mostraran centrados.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-602925447994720165?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/602925447994720165/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/centrar-jframe.html#comment-form' title='15 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/602925447994720165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/602925447994720165'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/centrar-jframe.html' title='Centrar JFrame'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>15</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7354750623883106095</id><published>2008-10-17T08:37:00.004-05:00</published><updated>2008-10-20T17:27:47.990-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><title type='text'>Software para Nokia N95</title><content type='html'>Holass!!!,  ahora que estoy con nuevo juguete.. mi nuevo Nokia N95-3 con 9GB :o) pues hay que buscar software para el hacking.. asi que aquí ire poniendo todos los sitios que encuentre con una descripción del tipo de programas que alli se encuentren.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;MyBloop&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.mybloop.com/n95"&gt;http://www.mybloop.com/n95&lt;/a&gt;&lt;br /&gt;Muchos juegos, pero casi nada de aplicaciones de oficina o para productividad diversas, pocos temas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Drakkarious 2.0 FP1 &amp;amp; PreFP1{INSTALA SIN FIRMAR}ADIOS AL CERTIFICADO CADUCADO&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.todonseries.es/foro/index.php?topic=72.0"&gt;http://www.todonseries.es/foro/index.php?topic=72.0&lt;/a&gt;&lt;br /&gt;Excelente utilitario para instalar aplicativos con certificado caducado, y deveras que funciona!!.. Mi primer Hack al N95.. jeje..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Freeware Symbian&lt;/span&gt;&lt;br /&gt;http://www.symbian-freeware.com/&lt;br /&gt;Buen sitio para descargar utilidades interesantes para el N95&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7354750623883106095?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7354750623883106095/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/software-para-nokia-n95.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7354750623883106095'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7354750623883106095'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/software-para-nokia-n95.html' title='Software para Nokia N95'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4241513131794422804</id><published>2008-10-14T17:22:00.001-05:00</published><updated>2008-10-14T17:24:15.752-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 4</title><content type='html'>"Si lloras porque perdiste el sol, las lagrimas no te dejaran ver las estrellas que estan cerca"&lt;br /&gt;Autor Desconocido&lt;br /&gt;&lt;br /&gt;Tambien pongo una versión en Italiano gracias a mi amiga Pamela, ya que a ella le gusta mas asi :o)&lt;br /&gt;"Se Piango perché hanno perso il sole, le lacrime non sarà in grado di vedere le stelle che sono circa"&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4241513131794422804?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4241513131794422804/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-4.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4241513131794422804'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4241513131794422804'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-4.html' title='Frase 4'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-562416331006704500</id><published>2008-10-14T08:28:00.002-05:00</published><updated>2008-10-14T08:34:08.435-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Enlaces'/><category scheme='http://www.blogger.com/atom/ns#' term='Ciencias_de_la_Computacion'/><title type='text'>Asociación Internacional para el Reconocimiento de Patrones</title><content type='html'>&lt;span style="font-weight: bold;"&gt;&lt;u&gt;International Association for Pattern Recognition&lt;/u&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.iapr.org/" target="_blank"&gt;http://www.iapr.org/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The goal was a web site that can support students, researchers and staff. Of course,  advances in pattern recognition and its subfields means that developing the site will be a never-ending process.&lt;br /&gt;However, we believe that the current site is now well developed enough for general use.&lt;br /&gt;What resources does the IAPR Education web site have?&lt;br /&gt;================&lt;br /&gt;&lt;br /&gt;The most important resources are for students, researchers and educators.&lt;br /&gt;These include lists with URLs to:&lt;br /&gt;- Tutorials and surveys&lt;br /&gt;- Explanatory text&lt;br /&gt;- Online demos&lt;br /&gt;- Datasets&lt;br /&gt;- Book lists&lt;br /&gt;- Free code&lt;br /&gt;- Course notes&lt;br /&gt;- Lecture slides&lt;br /&gt;- Course reading lists&lt;br /&gt;- Coursework/homework&lt;br /&gt;- A list of course web pages at many universities&lt;br /&gt;&lt;br /&gt;There are many areas for extension in the web pages, but they already link to more than 3000 resources.&lt;br /&gt;&lt;br /&gt;These resources are subdivided into five areas. Of course, the boundaries are never distinct and we undoubtedly will also provoke a few dissenting opinions. However, we have tried to address the main work done by the IAPR community, as clustered into 3 core technology areas and 2 broad families of application areas:&lt;br /&gt;&lt;br /&gt;1. Symbolic Pattern Recognition&lt;br /&gt;2. Statistical Pattern Recognition&lt;br /&gt;3. Machine Learning&lt;br /&gt;4. 1D Signal Analysis&lt;br /&gt;5. Computer vision/Image Processing/Machine Vision&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-562416331006704500?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/562416331006704500/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/asociacin-internacional-para-el.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/562416331006704500'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/562416331006704500'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/asociacin-internacional-para-el.html' title='Asociación Internacional para el Reconocimiento de Patrones'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-485241751809350034</id><published>2008-10-12T00:42:00.003-05:00</published><updated>2008-10-12T00:48:44.954-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBasic'/><title type='text'>Mi aporte OpenSource en VBasic</title><content type='html'>Lo unico que he podido aportar hasta ahora es un programita OPEN-SOURCE desarrollado por mi y para el uso del que lo desee, es una "Agenda Telefónica" con caracteristicas interesantes, bueno al menos para la época en que lo desarrolle :o). Pueden descargarlo de la página del proyecto en sourceforge.net&lt;br /&gt;&lt;br /&gt;&lt;a href="https://sourceforge.net/projects/diretel/"&gt;https://sourceforge.net/projects/diretel/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Espero alguien se anime a continuarlo, migrarlo a VBasic.NET o hacer con el lo que mejor les parezca jaja.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-485241751809350034?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/485241751809350034/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/mi-aporte-opensource-en-vbasic.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/485241751809350034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/485241751809350034'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/mi-aporte-opensource-en-vbasic.html' title='Mi aporte OpenSource en VBasic'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-8578327765349398926</id><published>2008-10-12T00:03:00.003-05:00</published><updated>2008-10-12T00:53:46.983-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='SCRUM'/><title type='text'>Iniciandome en SCRUM</title><content type='html'>Hola, bueno pongo iniciandome porque son los sitios o documentos que me han servido para interesarme muchisimo en esta metodología de gestión ágil. La cual a mi parecer no es ningún descubrimiento nuevo en sí, solo darle orden a una forma natural que tienen las personas de llevar adelante tareas. Como me dijo alguna vez un profesor de Administración: "La Administración es solo cosa de sentido común.."&lt;br /&gt;Bueno alli los links:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Explicando SCRUM a mi abuela&lt;/span&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/blogs/jorge/archive/2007/05/09/explicando-scrum-a-mi-abuela.aspx"&gt;http://geeks.ms/blogs/jorge/archive/2007/05/09/explicando-scrum-a-mi-abuela.aspx&lt;/a&gt;&lt;br /&gt;Excelentisima explicacion de SCRUM como para que cualquier persona pueda entenderlo, narrado en forma de cuento da a conocer las bases de esta excelente metodología. Gracias a Jorge Serrano.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://oeguzman.googlepages.com/"&gt;&lt;span style="font-weight: bold;"&gt;http://oeguzman.googlepages.com/&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;Otra excelente explicación de SCRUM muy clara y concisa, aun cuando quiero repasar algunos conceptos lo consulto. Gracias Oscar Guzman por la web.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Scrum y XP desde las trincheras&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.proyectalis.com/2008/02/26/scrum-y-xp-desde-las-trincheras/"&gt;http://www.proyectalis.com/2008/02/26/scrum-y-xp-desde-las-trincheras/&lt;/a&gt;&lt;br /&gt;Sitio web que nos proporciona una traducción al castellano del libro “Scrum&amp;amp;XP from the trenches” de Henrik Kniberg. Alli podran encontrar el enlace para descargar el libro traducido y tambien el enlace para ir al sitio original del Libro en ingles.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;Exprimiendo SCRUM&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;SCRUM y la documentación&lt;/span&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/blogs/rcorral/archive/2007/05/06/exprimiendo-scrum-scrum-y-la-documentaci-243-n.aspx"&gt;http://geeks.ms/blogs/rcorral/archive/2007/05/06/exprimiendo-scrum-scrum-y-la-documentaci-243-n.aspx&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;SCRUM y la gestión del riesgo&lt;/span&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/blogs/rcorral/archive/2007/06/28/exprimiendo-scrum-scrum-y-la-gesti-243-n-del-riesgo.aspx"&gt;http://geeks.ms/blogs/rcorral/archive/2007/06/28/exprimiendo-scrum-scrum-y-la-gesti-243-n-del-riesgo.aspx&lt;/a&gt;&lt;br /&gt;&lt;a href="http://geeks.ms/blogs/rcorral/archive/tags/Scrum/default.aspx"&gt;http://geeks.ms/blogs/rcorral/archive/tags/Scrum/default.aspx&lt;/a&gt;&lt;br /&gt;En fin esta web es tambien una muy buena fuente de documentos sobre SCRUM tratando de explicar muchas de las interrogantes que podemos hacernos los que estamos involucrados en gestión de proyectos de software y proyectos en general; y mas aun si ya previamente hemos trabajado con alguna otra metodología.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-8578327765349398926?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/8578327765349398926/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/iniciandome-en-scrum.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8578327765349398926'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/8578327765349398926'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/iniciandome-en-scrum.html' title='Iniciandome en SCRUM'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-4128538980424224325</id><published>2008-10-11T23:42:00.001-05:00</published><updated>2008-10-11T23:44:22.124-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 3</title><content type='html'>“Sin ambición uno no comienza nada. Sin trabajo uno no termina nada. Nadie te enviará el premio. Tendrás que ganarlo. La persona que sabe el cómo siempre tendrá trabajo. Quien, además, sepa el por qué será su propio jefe. En cuanto a los métodos, es posible que haya millones y aún más; pero principios hay pocos. El hombre que se aferra a los principios puede seleccionar con éxito sus propios métodos. Quien intente métodos, ignorando los principios, seguramente se meterá en problemas.”&lt;br /&gt;Emerson (1803-1882)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-4128538980424224325?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/4128538980424224325/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-3.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4128538980424224325'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/4128538980424224325'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-3.html' title='Frase 3'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-1017145201333436616</id><published>2008-10-10T14:49:00.002-05:00</published><updated>2008-10-10T14:53:23.029-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 2</title><content type='html'>"El progreso y el desarrollo son imposibles si uno sigue haciendo las cosas tal como siempre las ha hecho."&lt;br /&gt;Wayne W. Dyer&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-1017145201333436616?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/1017145201333436616/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-2.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1017145201333436616'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/1017145201333436616'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-2.html' title='Frase 2'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-3557327899450836353</id><published>2008-10-10T14:44:00.001-05:00</published><updated>2008-10-10T14:46:05.265-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Mis_Frases'/><title type='text'>Frase 1</title><content type='html'>"Si tú tienes una manzana y yo tengo una manzana y las intercambiamos, entonces ambos aún tendremos una manzana. Pero si tú tienes una idea y yo tengo una idea y las intercambiamos, entonces ambos tendremos dos ideas".&lt;br /&gt;George Bernard Shaw&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-3557327899450836353?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/3557327899450836353/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-1.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3557327899450836353'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3557327899450836353'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/frase-1.html' title='Frase 1'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-3556309078710168942</id><published>2008-10-10T14:15:00.000-05:00</published><updated>2008-10-10T14:29:16.019-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='VBasic'/><title type='text'>Impresión Draft</title><content type='html'>&lt;div class="cat"&gt; &lt;/div&gt;Holas, por cosas del destino aun estoy jugando con VBasic 6 y otra vez a lidear con la dichosa impresión en Draft para una impresora de matriz. Y lo peor es que con windows Xp y los nuevos modelos de Epson como la FX890 el tamaño personlizado de papel NO EXISTE.. asi que a imprimir en RAW MODE nomas usando la libreria winspool.drv. Alguien sabe si esto ya ha sido solucionado con VB2005 o VB2008??&lt;br /&gt;En fin, ahi dejo el codigo necesario para usar esta libreria. :&lt;br /&gt;&lt;br /&gt;' Esta parte pueden ponerla en un modulo Draft.bas o lo q quieran&lt;br /&gt;Option Explicit&lt;br /&gt;&lt;br /&gt;Public Type DOCINFO&lt;br /&gt;pDocName As String&lt;br /&gt;pOutputFile As String&lt;br /&gt;pDatatype As String&lt;br /&gt;End Type&lt;br /&gt;&lt;br /&gt;Public Declare Function ClosePrinter Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long) As Long&lt;br /&gt;Public Declare Function EndDocPrinter Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long) As Long&lt;br /&gt;Public Declare Function EndPagePrinter Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long) As Long&lt;br /&gt;Public Declare Function OpenPrinter Lib "winspool.drv" Alias _&lt;br /&gt;       "OpenPrinterA" (ByVal pPrinterName As String, phPrinter As Long, _&lt;br /&gt;       ByVal pDefault As Long) As Long&lt;br /&gt;Public Declare Function StartDocPrinter Lib "winspool.drv" Alias _&lt;br /&gt;       "StartDocPrinterA" (ByVal hPrinter As Long, ByVal Level As Long, _&lt;br /&gt;       pDocInfo As DOCINFO) As Long&lt;br /&gt;Public Declare Function StartPagePrinter Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long) As Long&lt;br /&gt;Public Declare Function WritePrinter Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long, pBuf As Any, ByVal cdBuf As Long, _&lt;br /&gt;       pcWritten As Long) As Long&lt;br /&gt;Public Declare Function EndPage Lib "winspool.drv" (ByVal _&lt;br /&gt;       hPrinter As Long) As Long&lt;br /&gt;&lt;br /&gt;Global lhPrinter As Long, lreturn As Long, lpcWritten As Long, lDoc As Long, sWrittenData As String, MyDocInfo As DOCINFO&lt;br /&gt;&lt;br /&gt;Public Sub Imprimir(Texto As String, Optional Ancho As Integer = 80, Optional Salto As Boolean = True)&lt;br /&gt;If Len(Texto) &gt; Ancho Then&lt;br /&gt;   Texto = Left(Texto, Ancho)&lt;br /&gt;End If&lt;br /&gt;If Salto Then Texto = Texto + vbCrLf&lt;br /&gt;lreturn = WritePrinter(lhPrinter, ByVal Texto, Len(Texto), lpcWritten)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub Iniciar_Impresion(DocName As String)&lt;br /&gt;lreturn = OpenPrinter(Printer.DeviceName, lhPrinter, 0)&lt;br /&gt;MyDocInfo.pDocName = DocName&lt;br /&gt;MyDocInfo.pOutputFile = vbNullString&lt;br /&gt;MyDocInfo.pDatatype = vbNullString&lt;br /&gt;lDoc = StartDocPrinter(lhPrinter, 1, MyDocInfo)&lt;br /&gt;Call StartPagePrinter(lhPrinter)&lt;br /&gt;'comprimido&lt;br /&gt;Rem lreturn = WritePrinter(lhPrinter, ByVal Chr$(15) + vbCrLf, Len(Chr$(15) + vbCrLf), lpcWritten)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;Public Sub Finalizar_Impresion()&lt;br /&gt;lreturn = EndPagePrinter(lhPrinter)&lt;br /&gt;lreturn = EndDocPrinter(lhPrinter)&lt;br /&gt;lreturn = ClosePrinter(lhPrinter)&lt;br /&gt;End Sub&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;'Y aqui el ejemplo de su uso en un form sencillo con un boton por default&lt;br /&gt;Private Sub Command1_Click()&lt;br /&gt;Dim Linea As String&lt;br /&gt;&lt;br /&gt; Iniciar_Impresion("TEST")&lt;br /&gt; Imprimir "HOLA MUNDO"&lt;br /&gt; Imprimir Chr$(15) + vbCrLf ' modo condensado&lt;br /&gt; Imprimir "HELLO WORLD"&lt;br /&gt; Finalizar_Impresion&lt;br /&gt;&lt;br /&gt;End Sub&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-3556309078710168942?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/3556309078710168942/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2008/10/impresin-draft.html#comment-form' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3556309078710168942'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/3556309078710168942'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2008/10/impresin-draft.html' title='Impresión Draft'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2477025624042505356.post-7292265370786414851</id><published>2007-10-26T16:54:00.001-05:00</published><updated>2008-10-10T14:43:42.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Netbeans_Swing'/><title type='text'>Generar una sola instancia de un JFrame</title><content type='html'>Cuando hacemos programas con formularios windows y los llamamos desde un menu, cada vez que hacemos click sobre la opcion del menu nos creara un nuevo form, lo que deseaba es tener una sola instancia de cada formulario, sin usar el modo modal claro esta.&lt;br /&gt;&lt;br /&gt;Encontre una forma.. usando el "Patrón Singleton", la verdad no lo entiendo muy iben pero como muchos de uds. solo queremos usarlo, y hacer rapidamnete nuestros programas; he aqui la forma:&lt;br /&gt;&lt;br /&gt;1. Diseña tu formulario(jframe, jdialog, jinternalframe, etc) en el IDE Netbeans.&lt;br /&gt;&lt;br /&gt;2. Cambia en el formulario la propiedad "defaultCloseOperation" a HIDE&lt;br /&gt;&lt;br /&gt;3. Agrega la propiedad "myInstance" a la clase de tu formulario, algo como:&lt;br /&gt;  private static myjFrame myInstance;&lt;br /&gt;&lt;br /&gt;4. Agrega el metodo getinstance() al formulario, algo como:&lt;br /&gt;&lt;br /&gt;  public static myjFrame getInstance()&lt;br /&gt; {     &lt;br /&gt;    if (myInstance == null)         &lt;br /&gt;   myInstance = new myjFrame();     &lt;br /&gt;   return myInstance; &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;5 Para usar el formulario desde un menu:&lt;br /&gt;&lt;br /&gt;  private void jMenuItem2MousePressed(java.awt.event.MouseEvent evt)&lt;br /&gt;  {&lt;br /&gt;    myjFrame myForm = myjFrame.getInstance();&lt;br /&gt;    myForm.setVisible(true); &lt;br /&gt;  }&lt;br /&gt;&lt;br /&gt;Espero les sirva.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2477025624042505356-7292265370786414851?l=inkahack.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://inkahack.blogspot.com/feeds/7292265370786414851/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://inkahack.blogspot.com/2007/10/generar-una-sola-instancia-de-un-jframe.html#comment-form' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7292265370786414851'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2477025624042505356/posts/default/7292265370786414851'/><link rel='alternate' type='text/html' href='http://inkahack.blogspot.com/2007/10/generar-una-sola-instancia-de-un-jframe.html' title='Generar una sola instancia de un JFrame'/><author><name>Jose A.P. (a.k.a. InkaHack)</name><uri>http://www.blogger.com/profile/12708055558739581438</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='24' height='32' src='http://4.bp.blogspot.com/_RhPJJRySnYs/SOvBPj002mI/AAAAAAAAAAM/2NGhIYACguQ/S220/217844iNPM_w.jpg'/></author><thr:total>1</thr:total></entry></feed>
