<?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-5976545851119434553</id><updated>2012-02-16T20:51:17.122-05:00</updated><category term='maestria'/><category term='scrum'/><category term='PostgreSQL'/><category term='RUP'/><category term='tesis'/><category term='java'/><category term='python'/><category term='opinion'/><category term='php'/><category term='zend framework'/><category term='ajax'/><category term='OFF TOPIC'/><category term='congreso'/><category term='SQL Server 2005'/><category term='eventos ciencia'/><category term='UML'/><category term='Diseño'/><category term='ubuntu'/><category term='redes neuronales'/><category term='criptografia'/><category term='gprs'/><category term='google'/><title type='text'>&lt; hpfloresj /&gt;</title><subtitle type='html'>{PHP, Java, PostgreSQL y temas de Web Mapping}</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>70</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1975548474674653798</id><published>2012-02-13T22:36:00.002-05:00</published><updated>2012-02-13T22:51:23.170-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Replica de base de datos en PostgreSQL</title><content type='html'>Saludos, en esta oportunidad veremos el tema de replicación de datos en PostgreSQL, para ello definamos algunos conceptos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Nodo.- Base de datos que se encuentra envuelta en el proceso de replicación entre los principales tenemos: nodo origen y nodo suscriptor.&lt;/li&gt;&lt;li&gt;Replicación.- Proceso por el cual se desea mantener y copiar los datos de una base de datos de manera que estos datos son transportados y son almacenados.&lt;/li&gt;&lt;li&gt;Replicación maestro.- Se encarga de transferir las modificaciones de forma asíncrona a los nodos suscriptores.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;b&gt;Software&lt;/b&gt;&lt;/div&gt;&lt;div&gt;El software que utilizaremos en esta oportunidad es Slony-I para windows, el cual permite la replicación basada en triggers de forma asíncrona. Utiliza un simple master para múltipes esclavos (nodos suscriptores).&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Cada tabla o secuencia en el master podría ser replicada vía triggers remotos a los esclavos. Actulizaciones son realizadas en la base de datos y luegos son replicadas mediante eventos.&lt;br /&gt;&lt;br /&gt;Una replicación basada en triggers usa on insert, on update, on delete en las tablas para mantener la replicación entre el nodo master y esclavo.&lt;/div&gt;&lt;div&gt;&lt;ul&gt;&lt;li&gt;Limitaciones&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Tablas deben de ser primarias o únicas.&lt;/li&gt;&lt;li&gt;Solo tablas y secuencias son permitidas en replicación.&lt;/li&gt;&lt;li&gt;Base de datos esclavas no pueden ser modificadas.&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Ventajas&lt;/li&gt;&lt;ul&gt;&lt;li&gt;Usando Slony-I podemos actualizar postgres de una versión a otra sin tiempo muerto.&amp;nbsp;&lt;/li&gt;&lt;/ul&gt;&lt;li&gt;Desventajas&lt;/li&gt;&lt;ul&gt;&lt;li&gt;No detecta fallo en la red.&lt;/li&gt;&lt;li&gt;No se permiten usar cambios de DDL en la replicación de tablas mientras el servicio de Slony-I esta ejecutandose.&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;div&gt;A continuación se muestran otras opciones de replicación a tener en cuenta:&lt;/div&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-9kiKeLR2DsY/TzlFsrFxIrI/AAAAAAAAAUE/-uVt_S7FGag/s1600/rep1_002.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="247" src="http://1.bp.blogspot.com/-9kiKeLR2DsY/TzlFsrFxIrI/AAAAAAAAAUE/-uVt_S7FGag/s400/rep1_002.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Descargar slony desde:&amp;nbsp;&lt;a href="http://slony.info/"&gt;http://slony.info/&lt;/a&gt;&amp;nbsp;para windows, en linux tiene otro proceso que espero también ponerlo en otro post.&lt;br /&gt;&lt;br /&gt;Importante es siempre tener en cuenta la documentación:&amp;nbsp;&lt;a href="http://slony.info/documentation/2.0/index.html"&gt;http://slony.info/documentation/2.0/index.html&lt;/a&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Topología de red (ejemplo)&lt;/b&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;Nodo maestro (192.168.1.34)&lt;br /&gt;Nodo esclavo (192.168.1.63)&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;&lt;div&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;/div&gt;&lt;b&gt;Instalación y configuración&lt;/b&gt;&lt;br /&gt;1.&amp;nbsp;Instalar Slony-I en el nodo maestro y esclavo, para esto lo podemos hacer desde el Stack Builder de PostgreSQL.&lt;br /&gt;2. Configurar el fichero pg_hba.conf del nodo maestro y esclavo añadiendo la siguiente información:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;#maestro&lt;br /&gt;host    all         all         192.168.1.34/32          md5&lt;br /&gt;#esclavo&lt;br /&gt;host    all         all         192.168.1.63/32          md5&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;3. Seleccionar una base de datos de prueba yo utilizare la siguiente:&amp;nbsp;&lt;a href="https://skydrive.live.com/redir.aspx?cid=ff206111edcb45e7&amp;amp;resid=FF206111EDCB45E7!123&amp;amp;parid=FF206111EDCB45E7!116&amp;amp;authkey=!ABMds33riu1-tjI" target="_blank"&gt;HR.backup&lt;/a&gt;&lt;br /&gt;4. Indicamos al nodo maestro y esclavo la ruta del software Slony, En PgAddmin Click en menú Archivo-&amp;gt;Options, luego en la pestaña General, llenamos el campo Slony-I path con:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-SYjXAwdaTeg/Tzm9Otn_Q9I/AAAAAAAAAUU/v_ZZLLoOGtI/s1600/slony+path.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://2.bp.blogspot.com/-SYjXAwdaTeg/Tzm9Otn_Q9I/AAAAAAAAAUU/v_ZZLLoOGtI/s320/slony+path.png" width="296" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;5. Configurar los puertos habilitados en el firewall de windows excepciones a los puertos de base de datos 5432.&lt;br /&gt;6. En el nodo maestro crear un script que nos digan las tablas de la base de datos que queremos replicar:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;#--&lt;br /&gt;# define the namespace the replication system uses in our example it is&lt;br /&gt;# slony_example&lt;br /&gt;#--&lt;br /&gt;cluster name = slony_example;&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;# admin conninfo's are used by slonik to connect to the nodes one for each&lt;br /&gt;# node on each side of the cluster, the syntax is that of PQconnectdb in&lt;br /&gt;# the C-API - replace the parameters which are appropriate for your setup&lt;br /&gt;#&lt;br /&gt;# this section tells slonik how to connect to the various nodes when running&lt;br /&gt;# this script.&lt;br /&gt;# --&lt;br /&gt;&lt;br /&gt;node 1 admin conninfo = 'dbname=hr host=192.168.1.34 user=postgres password= admin';&lt;br /&gt;node 2 admin conninfo = 'dbname=hr host=192.168.1.63 user=postgres password= admin';&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;# init the first node. Its id MUST be 1. This creates the schema&lt;br /&gt;# _$CLUSTERNAME containing all replication system specific database&lt;br /&gt;# objects.&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;&lt;br /&gt;init cluster ( id=1, comment = 'Nodo Maestro');&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;# this is an example of how to work around a table that has no primary key&lt;br /&gt;# and is based on an example by Robert Treat. The history table referred to&lt;br /&gt;# is one of the tables being replicated.&lt;br /&gt;#&lt;br /&gt;# Because the history table does not have a primary key or other unique&lt;br /&gt;# constraint that could be used to identify a row, we need to add one.&lt;br /&gt;# The following command adds a bigint column named&lt;br /&gt;# _Slony-I_$CLUSTERNAME_rowID to the table. It will have a default value&lt;br /&gt;# of nextval('_$CLUSTERNAME.s1_rowid_seq'), and have UNIQUE and NOT NULL&lt;br /&gt;# constraints applied. All existing rows will be initialized with a&lt;br /&gt;# number&lt;br /&gt;#--&lt;br /&gt;# Traducción: Esto solo es necesario usarlo si tienes una tabla que no tenga una llave primaria, procura hacer un buen diseño en tu base de datos.&lt;br /&gt;&lt;br /&gt;#table add key (node id = 1, fully qualified name = 'public.mi_tabla_sin_llave_primaria');&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;# Slony-I organizes tables into sets. The smallest unit a node can&lt;br /&gt;# subscribe is a set. The following commands create one set containing&lt;br /&gt;# all tables to be replicated. Tables not named here will not be replicated.&lt;br /&gt;# The master or origin of the set is node 1. Note that the second id must be&lt;br /&gt;# incremented for each table added.&lt;br /&gt;#--&lt;br /&gt;&lt;br /&gt;create set (id=1, origin=1, comment='aqui van todas mis tablas');&lt;br /&gt;&lt;br /&gt;set add table (set id=1, origin=1, id=1, fully qualified name = 'public.employees',comment='mi tabla empleado');&lt;br /&gt;set add table (set id=1, origin=1, id=2, fully qualified name = 'public.departments',comment='mi tabla departamento');&lt;br /&gt;&lt;br /&gt;#--&lt;br /&gt;# Create the second node (the slave) tell the 2 nodes how to connect to&lt;br /&gt;# each other and how they should listen for events.&lt;br /&gt;# we have to repeat the conninfo detils here, because these details are written into&lt;br /&gt;# the slony database.&lt;br /&gt;#--&lt;br /&gt;&lt;br /&gt;store node (id=2, comment = 'Nodo Esclavo');&lt;br /&gt;store path (server = 1, client = 2, conninfo = 'dbname=hr host=192.168.1.34 user=postgres password= admin');&lt;br /&gt;store path (server = 2, client = 1, conninfo = 'dbname=hr host=192.168.1.63 user=postgres password= admin');&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;store listen (origin=1, provider = 1, receiver =2);&lt;br /&gt;store listen (origin=2, provider = 2, receiver =1);&lt;br /&gt;&lt;br /&gt;######################################################################################&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;7. Luego de creado copiar este scripts a c:\Program Files\PostgreSQL\8.3\bin con el nombre maestro.txt&lt;br /&gt;8. Crear el el nodo esclavo el siguiente script para luego guardarlo en c:\Program Files\PostgreSQL\8.3\bin con el nombre esclavo.txt como sigue:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;cluster name = slony_example;&lt;br /&gt;&lt;br /&gt;node 1 admin conninfo = 'dbname=hr host=192.168.1.34 user=postgres password= admin';&lt;br /&gt;node 2 admin conninfo = 'dbname=hr host=192.168.1.63 user=postgres password= admin';&lt;br /&gt;&lt;br /&gt;subscribe set (id=1, provider=1,receiver=2,forward=yes);&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;9. En el nodo maestro y en línea de comando estando en el directorio&amp;nbsp;c:\Program Files\PostgreSQL\8.3\bin ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# slonik maestro.txt&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si todo sale bien no deberás ningún mensaje de error en consola de windows como resultado de ejecutar la sentencia anterior y poder ver configurado slony en el nodo maestro.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-At6UoMCXqVA/TznN6HLEtAI/AAAAAAAAAUc/yeK3r6M_psI/s1600/slony+replica.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="320" src="http://1.bp.blogspot.com/-At6UoMCXqVA/TznN6HLEtAI/AAAAAAAAAUc/yeK3r6M_psI/s320/slony+replica.png" width="212" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Ahora el comando también debe de haber creado el cluster en el nodo esclavo, para ello verificamos:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-9bOR5bb6MzU/TznOqMnA-vI/AAAAAAAAAUk/HEPRHkny9I0/s1600/slony+replica2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" src="http://3.bp.blogspot.com/-9bOR5bb6MzU/TznOqMnA-vI/AAAAAAAAAUk/HEPRHkny9I0/s1600/slony+replica2.png" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;10.&amp;nbsp;Desde el nodo subscriptor (esclavo) y en el directorio&amp;nbsp;c:\Program Files\PostgreSQL\8.3\bin ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# slonik esclavo.txt&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Si hemos tenido éxito no deberemos tener ningún mensaje de error en pantalla.&lt;br /&gt;&lt;br /&gt;11. En el nodo maestro y en línea de comando estando en el directorio&amp;nbsp;c:\Program Files\PostgreSQL\8.3\bin ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# slon slony_example "dbname=hr user=postgres password= admin"&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esta línea me permite iniciar la replicación en el maestro.&lt;br /&gt;&lt;br /&gt;12.&amp;nbsp;En el nodo esclavo y en línea de comando estando en el directorio&amp;nbsp;c:\Program Files\PostgreSQL\8.3\bin ejecutar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family: 'Courier New', Courier, monospace; font-size: x-small;"&gt;# slon slony_example "dbname=hr user=postgres password= admin"&amp;nbsp;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esta línea me permite iniciar la replicación en el nodo esclavo.&lt;br /&gt;&lt;br /&gt;Nota: las consolas abiertas tanto en el paso 11 y 12 &amp;nbsp;no deberán cerrarse.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Pruebas&lt;/b&gt;&lt;/div&gt;&lt;div&gt;En el nodo maestro abrir la base de datos HR e ingresar un registro a la tabla employees como sigue:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/-SEWAtMLDni8/TznV6BdsGHI/AAAAAAAAAUs/8OC47afNsrg/s1600/slony_insert.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="175" src="http://1.bp.blogspot.com/-SEWAtMLDni8/TznV6BdsGHI/AAAAAAAAAUs/8OC47afNsrg/s400/slony_insert.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;Verificamos en el esclavo:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-dByS4BEe1SU/TznWTc45eeI/AAAAAAAAAU0/R-Gh71UTB30/s1600/slony_insert2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="226" src="http://4.bp.blogspot.com/-dByS4BEe1SU/TznWTc45eeI/AAAAAAAAAU0/R-Gh71UTB30/s400/slony_insert2.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Terminamos, espero que les sirva. &amp;nbsp;&amp;nbsp;;)&lt;br /&gt;&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/5976545851119434553-1975548474674653798?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1975548474674653798/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1975548474674653798' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1975548474674653798'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1975548474674653798'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2012/02/replica-de-base-de-datos-en-postgresql.html' title='Replica de base de datos en PostgreSQL'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-9kiKeLR2DsY/TzlFsrFxIrI/AAAAAAAAAUE/-uVt_S7FGag/s72-c/rep1_002.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6760036380587638710</id><published>2012-02-10T17:24:00.002-05:00</published><updated>2012-02-10T17:24:46.106-05:00</updated><title type='text'>PostgreSQL Restaurar 9.x a 8.x</title><content type='html'>Si usted tiene un archivo binario como file.backup creado de una versión 9.x y desea restaurar a una versión inferior pues tenga la noticia que no podrá realizarlo, para esto les comento algunos comandos para no tener problema en esta tarea:&lt;br /&gt;&lt;br /&gt;1. Desde Postgres9.x ejecutar el siguiente comando:&lt;br /&gt;&amp;nbsp; &amp;nbsp;&lt;br /&gt;&amp;nbsp;&amp;nbsp; # pg_restore -Fc file.backup -f file.sql (Linux)&lt;br /&gt;&amp;nbsp;&amp;nbsp; # pg_restore -Fc file.backup &amp;gt;&amp;gt;&amp;nbsp; file.sql (Windows)&lt;br /&gt; &lt;br /&gt;&lt;br /&gt;2.&amp;nbsp; Copiar file.sql al servidor PostgreSQL 8.x y ejecutar:&lt;br /&gt;&lt;br /&gt;&amp;nbsp;&amp;nbsp; # psql -U user_postgres -d database_restore -f file.sql&lt;br /&gt;&lt;br /&gt;Listo ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6760036380587638710?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6760036380587638710/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6760036380587638710' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6760036380587638710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6760036380587638710'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2012/02/postgresql-restaurar-9x-8x.html' title='PostgreSQL Restaurar 9.x a 8.x'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3100775448847255410</id><published>2012-02-08T17:19:00.003-05:00</published><updated>2012-02-08T17:36:17.576-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>ODBC PostgreSQL-Excel en Win7 64bits</title><content type='html'>Saludos el siguiente Post trata de como habilitar PostgreSQL para Exel, pero en un sistema windows de 64 bits, comencemos.&lt;br /&gt;&lt;br /&gt;En primer lugar eh buscado odbc postgres para 64 bits y solo encontre la siguiente documentación mas importante &lt;a href="http://code.google.com/p/visionmap/wiki/psqlODBC"&gt;http://code.google.com/p/visionmap/wiki/psqlODBC&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Seguido probe el driver para conectarme a un PostgreSQL 8.3 de 32 bits, pero no funcionó.&lt;br /&gt;&lt;br /&gt;Instalé el odbc para PostgresSQL 8.3 de 32 bits y cuando me dirigía a herramientas administrativas-&amp;gt;Origenes de datos me daba con la sorpresa que no esta el driver instalado.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-y_FjWV6MQ44/TzLxe_RxAdI/AAAAAAAAAS8/C8l61_jCNh4/s1600/PostgreSQL+64+bits.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://4.bp.blogspot.com/-y_FjWV6MQ44/TzLxe_RxAdI/AAAAAAAAAS8/C8l61_jCNh4/s320/PostgreSQL+64+bits.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Así que encontre esto: Inicio-&amp;gt;Ejecutar-&amp;gt;&lt;tt&gt;C:\WINDOWS\SysWOW64\odbcad32.exe&lt;/tt&gt;&lt;br /&gt;&lt;br /&gt;Recién con este comando pude crear mi origen de datos como pueden ver:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-bS-4UVGEyAY/TzLyHhbRvKI/AAAAAAAAATE/tqofVCFP3cE/s1600/PostgreSQL+32+bits.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="231" src="http://2.bp.blogspot.com/-bS-4UVGEyAY/TzLyHhbRvKI/AAAAAAAAATE/tqofVCFP3cE/s320/PostgreSQL+32+bits.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Luego para seguir con el trabajo selecciono PostgreSQL Unicode con los siguientes datos:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://3.bp.blogspot.com/-pdJGUHq26z0/TzLymYjp_VI/AAAAAAAAATM/Omg5g7YQrl0/s1600/odbc.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="181" src="http://3.bp.blogspot.com/-pdJGUHq26z0/TzLymYjp_VI/AAAAAAAAATM/Omg5g7YQrl0/s320/odbc.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Una vez creado mi conexión odbc paso a excel para hacer el vínculo de datos:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://4.bp.blogspot.com/-vLmCEkcrXJA/TzLzBE9zoNI/AAAAAAAAATU/k8IQEe5FFEs/s1600/excel1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="208" src="http://4.bp.blogspot.com/-vLmCEkcrXJA/TzLzBE9zoNI/AAAAAAAAATU/k8IQEe5FFEs/s320/excel1.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Selecciono DNS:&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-N3Ap4TaDFmQ/TzLzTHFk1xI/AAAAAAAAATc/I47oDCnDz1k/s1600/excel2.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://2.bp.blogspot.com/-N3Ap4TaDFmQ/TzLzTHFk1xI/AAAAAAAAATc/I47oDCnDz1k/s320/excel2.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Luego mi origen de datos:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://1.bp.blogspot.com/--PcRe2XnOFU/TzLzftQhaVI/AAAAAAAAATk/kZDRBHaSgxo/s1600/excel3.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="224" src="http://1.bp.blogspot.com/--PcRe2XnOFU/TzLzftQhaVI/AAAAAAAAATk/kZDRBHaSgxo/s320/excel3.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Luego selecciono la base de datos y la tabla, en este caso una vista de capitales del Perú:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-gWtSZt673-M/TzL0F2QdY4I/AAAAAAAAATs/GLc4MOQ1tQA/s1600/excel4.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="242" src="http://2.bp.blogspot.com/-gWtSZt673-M/TzL0F2QdY4I/AAAAAAAAATs/GLc4MOQ1tQA/s320/excel4.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Guardar el archivo de conexion de datos y finalizar.&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-GH6L3H7-KAc/TzL0SQ6eFuI/AAAAAAAAAT0/t5_Ey60BqKs/s1600/excel5.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="268" src="http://2.bp.blogspot.com/-GH6L3H7-KAc/TzL0SQ6eFuI/AAAAAAAAAT0/t5_Ey60BqKs/s320/excel5.png" width="320" /&gt;&lt;/a&gt;&lt;/div&gt;Casi para terminar seleccionamos el modo de ver los datos en el libro, lo dejamos por defecto, para finalmente poder ver lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;div class="separator" style="clear: both; text-align: center;"&gt;&lt;a href="http://2.bp.blogspot.com/-s-B_pRf8qVQ/TzL0yXM01LI/AAAAAAAAAT8/2Y8BNhTR2Sk/s1600/excel6.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"&gt;&lt;img border="0" height="245" src="http://2.bp.blogspot.com/-s-B_pRf8qVQ/TzL0yXM01LI/AAAAAAAAAT8/2Y8BNhTR2Sk/s400/excel6.png" width="400" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;Nos vemos ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3100775448847255410?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3100775448847255410/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3100775448847255410' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3100775448847255410'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3100775448847255410'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2012/02/odbc-postgresql-excel-en-win7-64bits.html' title='ODBC PostgreSQL-Excel en Win7 64bits'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/-y_FjWV6MQ44/TzLxe_RxAdI/AAAAAAAAAS8/C8l61_jCNh4/s72-c/PostgreSQL+64+bits.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5183444404137539179</id><published>2012-01-19T17:45:00.001-05:00</published><updated>2012-01-19T17:45:01.723-05:00</updated><title type='text'>A tener en cuenta... RIP Megaupload</title><content type='html'>&lt;a title="View Mega Indictment on Scribd" href="http://www.scribd.com/doc/78786408" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Mega Indictment&lt;/a&gt;&lt;iframe class="scribd_iframe_embed" src="http://www.scribd.com/embeds/78786408/content?start_page=1&amp;view_mode=list" data-auto-height="true" data-aspect-ratio="" scrolling="no" id="doc_58235" width="100%" height="600" frameborder="0"&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5183444404137539179?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5183444404137539179/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5183444404137539179' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5183444404137539179'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5183444404137539179'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2012/01/tener-en-cuenta-rip-megaupload.html' title='A tener en cuenta... RIP Megaupload'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3381642305556423530</id><published>2012-01-15T20:48:00.004-05:00</published><updated>2012-01-15T20:50:09.975-05:00</updated><title type='text'>Curso online de algoritmos</title><content type='html'>Para los interesados el siguiente curso &amp;nbsp;&lt;a href="http://www.algo-class.org/"&gt;http://www.algo-class.org/&lt;/a&gt;&amp;nbsp;totalmente gratis gracias a stanford university.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3381642305556423530?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3381642305556423530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3381642305556423530' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3381642305556423530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3381642305556423530'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2012/01/curso-online.html' title='Curso online de algoritmos'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2719888736511451519</id><published>2011-11-23T03:18:00.001-05:00</published><updated>2011-11-23T03:59:18.741-05:00</updated><title type='text'>Google's Search Algorithm Challenged</title><content type='html'>Saludos amigos visitantes, les escribo para poder informarles sobre un reciente anuncio del &lt;a href="http://www.w3.org/People/Massimo/" target="_blank"&gt;Dr. Massimo Marchiori&lt;/a&gt; uno de los veteranos investigadores italianos en el campo del Internet, los dejo con unos párrafos: &lt;span class="Apple-style-span" style="font-family: arial, verdana, helvetica, sans-serif; font-size: 15px; line-height: 24px;"&gt;"If I didn't think it was something big, capable of competing with the giants of online search, I would never have got involved,"....&lt;/span&gt;&lt;br /&gt;&lt;span class="Apple-style-span" style="font-family: arial, verdana, helvetica, sans-serif; font-size: 15px; line-height: 24px;"&gt;Artículo completo:&lt;/span&gt;&lt;br /&gt;&lt;a href="http://www.pcworld.com/article/244342/googles_search_algorithm_challenged.html"&gt;http://www.pcworld.com/article/244342/googles_search_algorithm_challenged.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2719888736511451519?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2719888736511451519/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2719888736511451519' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2719888736511451519'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2719888736511451519'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2011/11/googles-search-algorithm-challenged.html' title='Google&apos;s Search Algorithm Challenged'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-748503939762352507</id><published>2011-10-06T16:04:00.001-05:00</published><updated>2011-10-06T16:04:07.132-05:00</updated><title type='text'>RIP Steve Jobs</title><content type='html'>Tres cosas que me deja Steve Jobs. que pueden cambiar el mundo:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Perseverancia&lt;/i&gt;&lt;/b&gt;, para lograr los objetivos.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Pasión&lt;/i&gt;&lt;/b&gt;, para hacer las cosas mejor y con locura.&lt;/li&gt;&lt;li&gt;&lt;b&gt;&lt;i&gt;Inconformismo&lt;/i&gt;&lt;/b&gt;, para siempre estar hambrientos de hacer mas.&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;Gracias Steve por todo.&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-748503939762352507?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/748503939762352507/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=748503939762352507' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/748503939762352507'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/748503939762352507'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2011/10/rip-steve-jobs.html' title='RIP Steve Jobs'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-576733921797749977</id><published>2011-07-10T22:23:00.003-05:00</published><updated>2011-07-10T22:39:54.530-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='congreso'/><title type='text'>Congreso de Ciencias de la Computacion 2011 -Perú</title><content type='html'>Saludos estimados visitantes, bueno por ahora no tiempo de postear, e estado absorvido por algunos proyectos, pero pronto espero que pueda escribir algunas cosas.&lt;br /&gt;&lt;br /&gt;A continuacion les invito a participar a un evento muy importante que se dara del 8 al 13 de agosto en la ciudad de Pucallpa-Perú "El X Congreso Internacional de la Sociedad Peruana de Computación 2011"&lt;br /&gt;&lt;br /&gt;El &lt;strong&gt;CSPC&lt;/strong&gt; es el evento más  grande e importante de la Sociedad Peruana de Computación (SPC) y tiene  como objetivo principal reunir a investigadores, profesores,  estudiantes y profesionales del área de computación para presentar y  deliberar asuntos científicos, tecnológicos, educacionales,  empresariales y políticos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-nEwZTAn9Y2M/ThpvycM1LEI/AAAAAAAAAP0/w4dOUL4aiY8/s1600/afiche%2Bx%2Bcongreso%2Bspc%2B2011.jpg"&gt;&lt;img style="cursor: pointer; width: 227px; height: 320px;" src="http://3.bp.blogspot.com/-nEwZTAn9Y2M/ThpvycM1LEI/AAAAAAAAAP0/w4dOUL4aiY8/s320/afiche%2Bx%2Bcongreso%2Bspc%2B2011.jpg" alt="" id="BLOGGER_PHOTO_ID_5627933596707007554" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.cspc2011.org/index.php"&gt;http://www.cspc2011.org/index.php&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Los esperamos, ;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-576733921797749977?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/576733921797749977/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=576733921797749977' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/576733921797749977'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/576733921797749977'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2011/07/congreso-de-ciencias-de-la-computacion.html' title='Congreso de Ciencias de la Computacion 2011 -Perú'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-nEwZTAn9Y2M/ThpvycM1LEI/AAAAAAAAAP0/w4dOUL4aiY8/s72-c/afiche%2Bx%2Bcongreso%2Bspc%2B2011.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2378737540764334583</id><published>2010-12-22T22:50:00.002-05:00</published><updated>2010-12-22T22:53:46.515-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OFF TOPIC'/><title type='text'>Feliz navidad y prospero año nuevo</title><content type='html'>Son mis sinceros deseos para todos mis amigos y las personas que leen este humilde blog, pasandola con sus seres queridos, familias y amigos.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2378737540764334583?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2378737540764334583/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2378737540764334583' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2378737540764334583'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2378737540764334583'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2010/12/feliz-navidad-y-prospero-ano-nuevo.html' title='Feliz navidad y prospero año nuevo'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2397763838245812531</id><published>2010-12-06T22:21:00.001-05:00</published><updated>2010-12-06T22:21:47.869-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='gprs'/><title type='text'>Algo de GPRS</title><content type='html'>&lt;div style="width:477px" id="__ss_3309278"&gt;&lt;strong style="display:block;margin:12px 0 4px"&gt;&lt;a href="http://www.slideshare.net/ucsp/diseno-de-una-plataforma-para-monitorear-y-controlar-el-trafico-vehicular-usando-interfaces-inalambricas-y-gprs" title="Diseño de una plataforma para monitorear y controlar el tráfico vehicular usando interfaces inalámbricas y GPRS"&gt;Diseño de una plataforma para monitorear y controlar el tráfico vehicular usando interfaces inalámbricas y GPRS&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse3309278" width="477" height="510"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/doc_player.swf?doc=diseodeplataformaparamonitorearycontrolarvehiculos-100301133207-phpapp02&amp;amp;stripped_title=diseno-de-una-plataforma-para-monitorear-y-controlar-el-trafico-vehicular-usando-interfaces-inalambricas-y-gprs&amp;amp;userName=ucsp"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed name="__sse3309278" src="http://static.slidesharecdn.com/swf/doc_player.swf?doc=diseodeplataformaparamonitorearycontrolarvehiculos-100301133207-phpapp02&amp;amp;stripped_title=diseno-de-una-plataforma-para-monitorear-y-controlar-el-trafico-vehicular-usando-interfaces-inalambricas-y-gprs&amp;amp;userName=ucsp" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="477" height="510"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding:5px 0 12px"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ucsp"&gt;Universidad Católica San Pablo&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2397763838245812531?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2397763838245812531/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2397763838245812531' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2397763838245812531'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2397763838245812531'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2010/12/algo-de-gprs.html' title='Algo de GPRS'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3615917889389519956</id><published>2010-12-06T18:29:00.000-05:00</published><updated>2010-12-06T18:31:09.074-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='tesis'/><title type='text'>Un proyecto a tener en cuenta</title><content type='html'>&lt;div style="width: 477px;" id="__ss_3309042"&gt;&lt;strong style="display: block; margin: 12px 0pt 4px;"&gt;&lt;a href="http://www.slideshare.net/ucsp/proyecto-pibap-03295-contrato-040-informe-componente-1" title="Proyecto PIBAP 03-295 Contrato #040 Informe Componente 1"&gt;Proyecto PIBAP 03-295 Contrato #040 Informe Componente 1&lt;/a&gt;&lt;/strong&gt;&lt;object id="__sse3309042" height="510" width="477"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/doc_player.swf?doc=proyectopibap-100301131353-phpapp01&amp;amp;stripped_title=proyecto-pibap-03295-contrato-040-informe-componente-1&amp;amp;userName=ucsp"&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;param name="allowScriptAccess" value="always"&gt;&lt;embed name="__sse3309042" src="http://static.slidesharecdn.com/swf/doc_player.swf?doc=proyectopibap-100301131353-phpapp01&amp;amp;stripped_title=proyecto-pibap-03295-contrato-040-informe-componente-1&amp;amp;userName=ucsp" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" height="510" width="477"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="padding: 5px 0pt 12px;"&gt;View more &lt;a href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a href="http://www.slideshare.net/ucsp"&gt;Universidad Católica San Pablo&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3615917889389519956?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3615917889389519956/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3615917889389519956' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3615917889389519956'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3615917889389519956'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2010/12/un-proyecto-tener-en-cuenta.html' title='Un proyecto a tener en cuenta'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1454484990727846342</id><published>2010-03-03T09:45:00.007-05:00</published><updated>2010-03-03T10:45:13.180-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend framework'/><title type='text'>Error 500 Zend Framework</title><content type='html'>Hace un tiempo atras no tan lejano quise subir mi proyecto echo en PHP con Zend Framework a mi hosting de pago, pero me di con la ingrata sorpresa del siguiente error: 500 internal server error.&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;Bueno buscando el origen de este error encontre que se debia al archivo .htaccess ubicado en el directorio raiz de mi proyecto que era el siguiente:&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;RewriteEngine on&lt;br /&gt;RewriteRule .* index.php&lt;br /&gt;php_flag magic_quotes_gpc off&lt;br /&gt;php_flag register_globals off&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;Lo que sucedia es que este formato de mi htaccess no es el adecuado para mi hosting, claro que el local si corre bien, lo que opte es por cambiar estas líneas por estas otras:&lt;div&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;RewriteEngine on&lt;br /&gt;RewriteBase /&lt;br /&gt;RewriteRule !\.(js|ico|gif|jpg|png|css|flv|swf)$ index.php&lt;br /&gt;&lt;span class="Apple-style-span"   style=" white-space: normal;  font-family:Georgia, serif;font-size:-webkit-xxx-large;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;El segundo paso que tuve que hacer era configurar bien mi bootstrap para mi hosting, les muestro como quedo:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;?php&lt;br /&gt;//Configuración de manejo de error&lt;br /&gt;error_reporting(E_ALL|E_STRICT);&lt;br /&gt;date_default_timezone_set('America/Lima');&lt;br /&gt;&lt;br /&gt;//Configuración de Directorios&lt;br /&gt;$rootPath = dirname(dirname(__FILE__));&lt;br /&gt;set_include_path(get_include_path() . PATH_SEPARATOR .                 &lt;br /&gt;                 $rootPath . '/registracion/application/models' . PATH_SEPARATOR .                 &lt;br /&gt;                 $rootPath . '/registracion/library' . PATH_SEPARATOR .&lt;br /&gt;                 $rootPath . '/registracion/public');&lt;br /&gt; &lt;br /&gt;require_once 'Zend/Loader.php';&lt;br /&gt;//Zend_Loader::registerAutoload('Zend_Loader',true);&lt;br /&gt;&lt;br /&gt;Zend_Loader::loadClass('Zend_Controller_Front');&lt;br /&gt;Zend_Loader::loadClass('Zend_Registry');&lt;br /&gt;Zend_Loader::loadClass('Zend_Auth');&lt;br /&gt;Zend_Loader::loadClass('Zend_Config_Ini');&lt;br /&gt;Zend_Loader::loadClass('Zend_Db');&lt;br /&gt;Zend_Loader::loadClass('Zend_Db_Table');&lt;br /&gt;&lt;br /&gt;// load configuration&lt;br /&gt;$config = new Zend_Config_Ini($rootPath . '/registracion/application/config.ini', 'general');&lt;br /&gt;$registry = Zend_Registry::getInstance();&lt;br /&gt;$registry-&gt;set('config', $config);&lt;br /&gt;&lt;br /&gt;// setup database&lt;br /&gt;$db = Zend_Db::factory($config-&gt;db-&gt;adapter, $config-&gt;db-&gt;config-&gt;toArray());&lt;br /&gt;Zend_Db_Table::setDefaultAdapter($db);&lt;br /&gt;Zend_Registry::set('dbAdapter', $db);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Setup controller&lt;br /&gt;$frontController = Zend_Controller_Front::getInstance();&lt;br /&gt;$frontController-&gt;throwExceptions(true);&lt;br /&gt;$frontController-&gt;setControllerDirectory($rootPath . '/registracion/application/controllers');&lt;br /&gt;&lt;br /&gt;// run!&lt;br /&gt;try {&lt;br /&gt;    $frontController-&gt;dispatch();&lt;br /&gt;} catch (Zend_Exception $e) {&lt;br /&gt;    echo "Message: " . $e-&gt;getMessage() . "\n";&lt;br /&gt;}&lt;br /&gt;?&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://registracion.blutisac.com" target="_blank"&gt;ver ejemplo de mi proyecto en ejecución&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1454484990727846342?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1454484990727846342/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1454484990727846342' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1454484990727846342'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1454484990727846342'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2010/03/error-500-zend-framework.html' title='Error 500 Zend Framework'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6881364479306705838</id><published>2010-02-06T10:46:00.000-05:00</published><updated>2010-02-06T10:47:41.905-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='OFF TOPIC'/><title type='text'>Off topic</title><content type='html'>&lt;object width="425" height="344"&gt;&lt;param name="movie" value="http://www.youtube.com/v/MED9bSNtZpA&amp;hl=es_ES&amp;fs=1&amp;"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;param name="allowscriptaccess" value="always"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/MED9bSNtZpA&amp;hl=es_ES&amp;fs=1&amp;" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6881364479306705838?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6881364479306705838/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6881364479306705838' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6881364479306705838'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6881364479306705838'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2010/02/off-topic.html' title='Off topic'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2276031088384765264</id><published>2009-10-26T21:11:00.001-05:00</published><updated>2009-10-26T21:11:40.490-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='scrum'/><title type='text'>Por donde comenzar con Scrum</title><content type='html'>&lt;iframe id='xmindshare_embedviewer' src='http://share.xmind.net/_embed/modlost/where-do-you-start-first-steps-to-implement-agile-technique/' width='900px' height='300px' frameborder='0' scrolling='no'&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2276031088384765264?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2276031088384765264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2276031088384765264' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2276031088384765264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2276031088384765264'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/por-donde-comenzar-con-scrum.html' title='Por donde comenzar con Scrum'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1930673507067140992</id><published>2009-10-26T21:08:00.001-05:00</published><updated>2009-10-26T21:08:15.749-05:00</updated><title type='text'></title><content type='html'>&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/IMP/CXNID=2000002.0NXC/bHQ9MTI1NjYwOTE1MjI4NSZwdD*xMjU2NjA5MjkxNjM*JnA9MTAxOTEmZD1zc19lbWJlZCZuPWJsb2dnZXImZz*yJm89ZTVmYjdjMjEyOGI3NDM2ODkwOTFhNWVkZGU2Zjg*ZTkmb2Y9MA==.gif" /&gt;&lt;div style="width:425px;text-align:left" id="__ss_1338855"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/espejocosmico/scrummasterproductowner" title="ScrumMaster_ProductOwner"&gt;ScrumMaster_ProductOwner&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=scrummasterproductowner-3430&amp;stripped_title=scrummasterproductowner" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=scrummasterproductowner-3430&amp;stripped_title=scrummasterproductowner" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;documents&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/espejocosmico"&gt;espejocosmico&lt;/a&gt;.&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1930673507067140992?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1930673507067140992/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1930673507067140992' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1930673507067140992'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1930673507067140992'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/scrummasterproductowner-view-more.html' title=''/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4741948657985163768</id><published>2009-10-25T15:44:00.002-05:00</published><updated>2009-10-25T15:46:16.839-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>UML</title><content type='html'>&lt;a title="View Tema2 on Scribd" href="http://www.scribd.com/doc/1020498/Tema2" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Tema2&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_214816082657349" name="doc_214816082657349" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=1020498&amp;access_key=key-25czhct7hoggf20mblp8&amp;page=1&amp;version=1&amp;viewMode=slideshow"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;            &lt;param name="mode" value="slideshow"&gt;       &lt;embed src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=1020498&amp;access_key=key-25czhct7hoggf20mblp8&amp;page=1&amp;version=1&amp;viewMode=slideshow" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_214816082657349_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" mode="slideshow" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-4741948657985163768?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4741948657985163768/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4741948657985163768' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4741948657985163768'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4741948657985163768'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/uml.html' title='UML'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2523024975760582833</id><published>2009-10-25T15:40:00.001-05:00</published><updated>2009-10-25T15:40:55.628-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>Caso Practico UML</title><content type='html'>&lt;a title="View CasoPracticoVideoclubResuelto on Scribd" href="http://www.scribd.com/doc/1839847/CasoPracticoVideoclubResuelto" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;CasoPracticoVideoclubResuelto&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_670248016892936" name="doc_670248016892936" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=1839847&amp;access_key=key-gpteqg1ebl78d1g8rcl&amp;page=1&amp;version=1&amp;viewMode=list"&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;            &lt;param name="mode" value="list"&gt;       &lt;embed src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=1839847&amp;access_key=key-gpteqg1ebl78d1g8rcl&amp;page=1&amp;version=1&amp;viewMode=list" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_670248016892936_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" mode="list" height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2523024975760582833?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2523024975760582833/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2523024975760582833' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2523024975760582833'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2523024975760582833'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/caso-practico-uml.html' title='Caso Practico UML'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2244298310875626427</id><published>2009-10-25T15:36:00.000-05:00</published><updated>2009-10-25T15:37:27.452-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='UML'/><title type='text'>Diseño Orientado a Objetos con UML</title><content type='html'>&lt;a title="View Desarrollo Orientado a Objetos con UML [libro-book-español-spanish] on Scribd" href="http://www.scribd.com/doc/2458870/Desarrollo-Orientado-a-Objetos-con-UML-librobookespanolspanish" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Desarrollo Orientado a Objetos con UML [libro-book-español-spanish]&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_121875380682401" name="doc_121875380682401" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;height="500" width="100%" &gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="movie" class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;value="http://d1.scribdassets.com/ScribdViewer.swf?document_id=2458870&amp;amp;access_key=key-sjbj63aumlx2obn8rwa&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="quality" value="high"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="play" value="true"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="loop" value="true"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="scale" value="showall"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="wmode" value="opaque"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="devicefont" value="false"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="bgcolor" value="#ffffff"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="menu" value="true"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="allowFullScreen" value="true"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="allowScriptAccess" value="always"&gt; &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;param name="salign" value=""&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;			&lt;/span&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;param name="mode" value="list"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;    &lt;span class="Apple-tab-span" style="white-space:pre"&gt;		&lt;/span&gt;&lt;embed src="http://d1.scribdassets.com/ScribdViewer.swf?document_id=2458870&amp;amp;access_key=key-sjbj63aumlx2obn8rwa&amp;amp;page=1&amp;amp;version=1&amp;amp;viewMode=list" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_121875380682401_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle" mode="list" height="500" width="100%"&gt;&lt;/embed&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;/object&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt;	&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2244298310875626427?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2244298310875626427/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2244298310875626427' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2244298310875626427'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2244298310875626427'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/diseno-orientado-objetos-con-uml.html' title='Diseño Orientado a Objetos con UML'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1762086797210032873</id><published>2009-10-14T18:00:00.011-05:00</published><updated>2009-10-25T18:52:03.815-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Servidor vinculado SQL Server 2005 y PostgreSQL</title><content type='html'>Pasos:&lt;br /&gt;1. Descargarse e instalarse la version odbc mas actual para PostgreSQL de: &lt;a href="http://www.postgresql.org/ftp/odbc/versions/msi/psqlodbc_08_04_0100.zip"&gt;http://www.postgresql.org/ftp/odbc/versions/msi/psqlodbc_08_04_0100.zip&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;2. Crear un oriden de datos de tipo “System DNS” en Panel de control-&gt;Herramientas administrativas-&gt;Origenes de datos ODBC,  que conecte a su servidor PostgreSQL y nombrarlo por ejemplo “Pucallpa” (base de datos espacial con extensión PostGIS de ejemplo)&lt;div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bnVVd4mlDqE/StZYrfILuKI/AAAAAAAAAKw/udZb3-d_01w/s1600-h/odbcpostgresql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 182px;" src="http://1.bp.blogspot.com/_bnVVd4mlDqE/StZYrfILuKI/AAAAAAAAAKw/udZb3-d_01w/s320/odbcpostgresql.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392595107936188578" /&gt;&lt;/a&gt;&lt;p class="MsoListParagraphCxSpFirst" align="center" style="margin-left:0cm; mso-add-space:auto;text-align:center"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Figura 1: conexión ODBC a una base de datos PostgreSQL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" align="center" style="margin-left:0cm; mso-add-space:auto;text-align:center"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-align:justify;text-indent:-18.0pt; mso-list:l0 level1 lfo1"&gt;&lt;span style="font-size:12.0pt; mso-bidi-line-height:115%;mso-bidi- mso-bidi-theme-font:minor-latinfont-family:Calibri;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;       &lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;3. Correr el siguiente código en el SQL Server Management Studio Express:&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;EXEC master.dbo.sp_addlinkedserver @server = N'Pucallpa', @srvproduct=N'Microsoft OLE DB Provider for ODBC Driver', @provider=N'MSDASQL', @datasrc='Pucallpa', @location='localhost', @catalog='pucallpa'&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;p class="MsoListParagraphCxSpFirst" style="text-align:justify"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Este código es para añadir un servidor vinculado a SQL Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-align:justify"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;&lt;o:p&gt; 4. &lt;span class="Apple-style-span" style="line-height: normal; "&gt;&lt;span style="font-size:12.0pt; mso-bidi-line-height:115%;mso-bidi- mso-bidi-theme-font:minor-latinfont-family:Calibri;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Correr el siguiente código en el SQL Server Management Studio Express: para asociar el login al servidor vinculado.&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;pre&gt;&lt;code&gt;&lt;br /&gt;EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'Pucallpa', @useself=N'False', @locallogin=NULL, @rmtuser='postgres', @rmtpassword='xxx'&lt;/code&gt;&lt;/pre&gt;&lt;p class="MsoListParagraph" style="text-align:justify;text-indent:-18.0pt; mso-list:l0 level1 lfo1"&gt;&lt;span style="font-size:12.0pt; mso-bidi-line-height:115%;mso-bidi- mso-bidi-theme-font:minor-latinfont-family:Calibri;font-size:11.0pt;"&gt;&lt;span style="mso-list:Ignore"&gt;&lt;span class="Apple-tab-span" style="white-space:pre"&gt; &lt;/span&gt;5. &lt;span style="font:7.0pt &amp;quot;Times New Roman&amp;quot;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Ejecutar el siguiente código SQL desde SQL Server 2005:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:35.4pt;text-align:justify"&gt;&lt;span lang="EN-US"   style="font-size:12.0pt;mso-bidi-line-height:115%; Courier New&amp;quot;;mso-ansi-language:EN-USfont-family:&amp;quot;;font-size:11.0pt;"&gt;SELECT * FROM OpenQuery(Pucallpa, 'select cod_lote from lotes')&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="text-align:justify"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Algo que me pidieron hacer hace un tiempo como consulta fue: saber el numero de habitantes en los lotes que están a 500 metros de un mercado de la ciudad de Pucallpa (llamado Mercado Nro 02)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-align:justify"&gt;&lt;span&gt;&lt;o:p&gt; &lt;span class="Apple-style-span" style="  line-height: 14px; "&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;SELECT --a.codlote, a.radio, u.nro_habitantes&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-align:justify"&gt;&lt;span lang="EN-US" style="line-height:115%;Courier New&amp;quot;; mso-ansi-language:EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;sum(nro_habitantes) &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-align:justify"&gt;&lt;span lang="EN-US" style="line-height:115%;Courier New&amp;quot;; mso-ansi-language:EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;FROM OpenQuery(Pucallpa, 'select * from mercadolimit5001000') a &lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="text-align:justify"&gt;&lt;span lang="EN-US" style="line-height:115%;Courier New&amp;quot;; mso-ansi-language:EN-US"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;left join tb_unidad_catastral u on substring(u.ucnumero,7,8) = a.codlote&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-align:justify"&gt;&lt;span style="line-height:115%;Courier New&amp;quot;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;where a.radio = 500&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style="font-size:small;"&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/StZZTx8C3_I/AAAAAAAAAK4/yM1gxg65aBI/s1600-h/mapa.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 190px;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/StZZTx8C3_I/AAAAAAAAAK4/yM1gxg65aBI/s320/mapa.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392595800180318194" /&gt;&lt;/a&gt;&lt;p class="MsoListParagraph" align="center" style="margin-left:0cm;mso-add-space: auto;text-align:center"&gt;&lt;span style="font-size:12.0pt;mso-bidi- line-height:115%font-size:11.0pt;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Figura 2: Lotes a 500 mts del Mercado N° 2&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:35.4pt;text-align:justify"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%;Courier New&amp;quot;font-family:&amp;quot;;font-size:11.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraph" style="text-align:justify"&gt;&lt;span style="font-size: 12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;Para saber cuantos lotes estan a una distancia de otro lote (en este caso el mercado n° 2) hago la siguiente consulta en PostgreSQL con extensión espacial PostGIS:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraph" style="text-align:justify"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnVVd4mlDqE/StZaLI_6RQI/AAAAAAAAALA/FL_l0YsCJqY/s1600-h/sql.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 180px;" src="http://3.bp.blogspot.com/_bnVVd4mlDqE/StZaLI_6RQI/AAAAAAAAALA/FL_l0YsCJqY/s320/sql.png" border="0" alt="" id="BLOGGER_PHOTO_ID_5392596751263352066" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;/p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;p class="MsoListParagraphCxSpFirst" align="center" style="margin-left:0cm; mso-add-space:auto;text-align:center"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;Figura 3: Consulta espacial en la base de datos “pucallpa” de PostgreSQL&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpLast" style="text-align:justify"&gt;&lt;span style="font-size:12.0pt;mso-bidi-line-height:115%font-size:11.0pt;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-left:35.4pt;text-align:justify"&gt;&lt;span lang="EN-US" style="line-height:115%;Courier New&amp;quot;; mso-ansi-language:EN-US"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;select l.* from lotes l, lotes a where( st_distance(l.geometria, a.geometria)&lt;=1000 and a.cod_lote in ('01040001', '01040002', '01040003', '01040004', '01040005'))&lt;/span&gt;&lt;/span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpFirst" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;La tabla &lt;/span&gt;&lt;/span&gt;&lt;span style="line-height:115%;Courier New&amp;quot;font-family:&amp;quot;;"&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;mercadolimit5001000 &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;a sido creada con la finalidad de almacenar los datos de la consulta anterior, se ejecuto el sigueinte SQL en postgres:&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;&lt;/p&gt;  &lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span&gt;&lt;o:p&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt; &lt;/span&gt;&lt;span class="Apple-style-span" style="  line-height: 14px; "&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;insert into mercadolimit5001000 &lt;span class="Apple-style-span" style="line-height: 18px; "&gt;select l.cod_lote, 500 from lotes l, lotes a where( st_distance(l.geometria, a.geometria)&lt;=500 and a.cod_lote in ('01040001','01040002','01040003','01040004','01040005'&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span"   style="font-family:arial;color:#6600CC;"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span" style="color: rgb(0, 0, 0); "&gt;Si desean ver un poco mas a modo de consulta y capas sobre la base de datos espacial que se utilizo en este post esta alojada en el Servidor de Mapas de la &lt;a href="http://www.municportillo.gob.pe/"&gt;Municipalidad Provincial de Coronel Portillo&lt;/a&gt; en la que eh sido colaborador directo, ubicado en la siguiente direccion: &lt;span class="Apple-style-span"  style=" line-height: normal; font-family:Georgia, serif;"&gt;&lt;a href="http://201.230.96.134/pucallpa/mapa.phtml"&gt;http://201.230.96.134/pucallpa/mapa.phtml&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span" style="line-height: 18px; "&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;b&gt;Proximos Articulos:&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span" style="line-height: 18px;"&gt;&lt;span class="Apple-style-span"  style="font-family:arial;"&gt;&lt;span class="Apple-style-span"  style="color:#6600CC;"&gt;&lt;span class="Apple-style-span"  style="color: rgb(51, 51, 51);  line-height: normal; font-family:Georgia, serif;"&gt;- retomando PHP Zend Framework demo&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span" style="color: rgb(51, 51, 51); "&gt;- Google Maps con PHP aplicado a un Sistema de Posicionamiento Global&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style=" line-height: 18px;font-size:medium;"&gt;&lt;span class="Apple-style-span"   style=" line-height: normal;  font-family:Georgia, serif;font-size:16px;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;div&gt;&lt;span class="Apple-style-span"  style="font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;/span&gt;&lt;p&gt;&lt;/p&gt;&lt;p class="MsoListParagraphCxSpMiddle" style="margin-left:35.4pt;mso-add-space: auto"&gt;&lt;span class="Apple-style-span"  style="font-family:'courier new';"&gt;&lt;span class="Apple-style-span"  style=" line-height: 18px;font-size:medium;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1762086797210032873?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1762086797210032873/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1762086797210032873' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1762086797210032873'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1762086797210032873'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/10/servidor-vinculado-sql-servre-2005-y.html' title='Servidor vinculado SQL Server 2005 y PostgreSQL'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_bnVVd4mlDqE/StZYrfILuKI/AAAAAAAAAKw/udZb3-d_01w/s72-c/odbcpostgresql.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5195159594799256106</id><published>2009-08-11T22:50:00.001-05:00</published><updated>2009-08-11T22:50:39.195-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='redes neuronales'/><title type='text'>Libro de Redes Neuronales</title><content type='html'>&lt;iframe frameborder="0" scrolling="no" style="border:0px" src="http://books.google.com.pe/books?id=jUHGRXd5xU8C&amp;lpg=PA96&amp;ots=azVNkNQDvU&amp;dq=tasa%20aprendizaje%20por%20capa%20en%20una%20red%20MLP&amp;pg=PP1&amp;output=embed" width=500 height=500&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5195159594799256106?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5195159594799256106/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5195159594799256106' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5195159594799256106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5195159594799256106'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/08/libro-de-redes-neuronales.html' title='Libro de Redes Neuronales'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-360212187441315046</id><published>2009-07-31T18:50:00.002-05:00</published><updated>2009-08-09T07:22:49.869-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='criptografia'/><title type='text'>Ciiptografia con Curvas Elipticas</title><content type='html'>&lt;a title="View Criptografía con Curvas Elipticas on Scribd" href="http://www.scribd.com/doc/17943505/Criptografia-con-Curvas-Elipticas" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Criptografía con Curvas Elipticas&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_72975618967051" name="doc_72975618967051" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=17943505&amp;access_key=key-1wbwz6j3yu3t4c2rofil&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=17943505&amp;access_key=key-1wbwz6j3yu3t4c2rofil&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_72975618967051_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-360212187441315046?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/360212187441315046/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=360212187441315046' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/360212187441315046'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/360212187441315046'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/07/ciiptografia-con-curvas-elipticas.html' title='Ciiptografia con Curvas Elipticas'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-7521207087055335213</id><published>2009-07-27T12:10:00.001-05:00</published><updated>2009-08-09T07:23:45.073-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='criptografia'/><title type='text'>RSA y Firmas Digitales</title><content type='html'>&lt;a title="View work1_rsa on Scribd" href="http://www.scribd.com/doc/17718343/work1rsa" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;work1_rsa&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_830838285266509" name="doc_830838285266509" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=17718343&amp;access_key=key-xwgeq049k6i4uhhvvzg&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=17718343&amp;access_key=key-xwgeq049k6i4uhhvvzg&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_830838285266509_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-7521207087055335213?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/7521207087055335213/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=7521207087055335213' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7521207087055335213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7521207087055335213'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/07/articulo-rsa-y-firmas-digitales.html' title='RSA y Firmas Digitales'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5579103316688421776</id><published>2009-07-03T12:52:00.002-05:00</published><updated>2009-07-03T12:55:54.582-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Libro de Matematica discreta</title><content type='html'>Saludos, quisiera compartir con ustedes un libro estupendo sobre estructuras discretas, materia muy difundida en las ciencias de la computación.&lt;br /&gt;&lt;iframe frameborder="0" scrolling="no" style="border:0px" src="http://books.google.com.pe/books?id=7GJXRsNkglIC&amp;lpg=PP1&amp;ots=_FyrCV9A5y&amp;dq=Estructuras%20de%20Matem%C3%A1ticas%20Discretas%20para%20la%20Computaci%C3%B3n%E2%80%9D.&amp;pg=PA2&amp;output=embed" width=500 height=500&gt;&lt;/iframe&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5579103316688421776?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5579103316688421776/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5579103316688421776' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5579103316688421776'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5579103316688421776'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/07/libro-de-matematica-discreta.html' title='Libro de Matematica discreta'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3596890248806905001</id><published>2009-05-13T22:42:00.000-05:00</published><updated>2009-05-13T22:44:49.324-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='python'/><title type='text'>¿Python?</title><content type='html'>&lt;div&gt;&lt;object style="width:420px;height:276px" &gt;&lt;param name="movie" value="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;documentId=090503202724-2c191deb351946ee8f3af906a2ca1d96&amp;amp;docName=revistapython3&amp;amp;username=arcangelsombra&amp;amp;loadingInfoText=Revista%20Mundo%20Python%203%20Edicion&amp;amp;et=1242272427327&amp;amp;er=80" /&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;param name="menu" value="false"/&gt;&lt;embed src="http://static.issuu.com/webembed/viewers/style1/v1/IssuuViewer.swf" type="application/x-shockwave-flash" allowfullscreen="true" menu="false" style="width:420px;height:276px" flashvars="mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true&amp;amp;documentId=090503202724-2c191deb351946ee8f3af906a2ca1d96&amp;amp;docName=revistapython3&amp;amp;username=arcangelsombra&amp;amp;loadingInfoText=Revista%20Mundo%20Python%203%20Edicion&amp;amp;et=1242272427327&amp;amp;er=80" /&gt;&lt;/object&gt;&lt;div style="width:420px;text-align:left;"&gt;&lt;a href="http://issuu.com/arcangelsombra/docs/revistapython3?mode=embed&amp;amp;layout=http%3A%2F%2Fskin.issuu.com%2Fv%2Flight%2Flayout.xml&amp;amp;showFlipBtn=true" target="_blank"&gt;Open publication&lt;/a&gt; - Free &lt;a href="http://issuu.com" target="_blank"&gt;publishing&lt;/a&gt; - &lt;a href="http://issuu.com/search?q=revista%20python" target="_blank"&gt;More revista python&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3596890248806905001?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3596890248806905001/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3596890248806905001' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3596890248806905001'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3596890248806905001'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/05/python.html' title='¿Python?'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2666398054424556882</id><published>2009-05-03T22:35:00.001-05:00</published><updated>2009-05-04T07:43:32.019-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='eventos ciencia'/><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Alberto Mendelzon Workshop on Foundations of Data Management</title><content type='html'>Alberto Mendelzon Workshop on Foundations of Data Management (May 12--May14 of 2009, Arequipa-Peru)&lt;br /&gt;Tutorials&lt;br /&gt;&lt;br /&gt;    * Claudio Gutierrez (Universidad de Chile);&lt;br /&gt;      RDF Databases&lt;br /&gt;    * Leonid Libkin (University of Edinburgh);&lt;br /&gt;      Schema mappings and data exchange for XML&lt;br /&gt;    * Laks Lakshmanan (U. British Columbia);&lt;br /&gt;      Social Networks: Is there more in them for us Database Types than just Poking?&lt;br /&gt;    * Peter Wood (University of London, Birkbeck);&lt;br /&gt;      Query languages for graph databases &lt;br /&gt;&lt;br /&gt;Session1&lt;br /&gt;&lt;br /&gt;    * Andrea Cali, and Riccardo Torlone;&lt;br /&gt;      Checking Containment of Schema Mappings (Preliminary Report).&lt;br /&gt;    * Michael Meier, Michael Schmidt and Georg Lausen;&lt;br /&gt;      Stop the Chase.&lt;br /&gt;    * Ali Kiani and Nematollaah Shiri;&lt;br /&gt;      Using Patterns for Faster and Scalable Rewriting of Conjunctive Queries.&lt;br /&gt;    * Renzo Angles;&lt;br /&gt;      A Nested Graph Model for Visualizing RDF Data &lt;br /&gt;&lt;br /&gt;Session2&lt;br /&gt;&lt;br /&gt;    * Tao Yang and Dongwon Lee;&lt;br /&gt;      T^3: On Mapping Text to Time Series.&lt;br /&gt;    * Leticia Gomez, Bart Kuijpers and Alejandro Vaisman;&lt;br /&gt;      Temporal Support in Sequential Pattern Mining.&lt;br /&gt;    * Monica R P Ferreira, Agma Traina, Ires Dias, Richard Chbeir and Caetano Traina;&lt;br /&gt;      Identifying Algebraic Properties to Support Optimization of Unary Similarity Queries. &lt;br /&gt;&lt;br /&gt;Session3&lt;br /&gt;&lt;br /&gt;    * Anish Das Sarma, Jeffrey Ullman and Jennifer Widom;&lt;br /&gt;      Schema Design for Uncertain Databases.&lt;br /&gt;    * Leopoldo Bertossi;&lt;br /&gt;      From Database Repair Programs to Consistent Query Answering in Classical Logic (extended abstract).&lt;br /&gt;    * Leopoldo Bertossi, Loreto Bravo and Monica Caniupan;&lt;br /&gt;      Consistent Query Answering in Data Warehouses. &lt;br /&gt;&lt;br /&gt;Session4&lt;br /&gt;&lt;br /&gt;    * David Toman;&lt;br /&gt;      Data Expiration and Aggregate Queries.&lt;br /&gt;    * Loreto Bravo and M. Andrea Rodriguez;&lt;br /&gt;      Semantic Integrity Constraints for Spatial Databases&lt;br /&gt;    * Md. Anisur Rahman, Mehedi Masud, Iluju Kiringa and Abdul Motaleb El Saddik;&lt;br /&gt;      Bi-Level Mapping: Combining Schema and Data Level Heterogeneity in Peer Data Sharing Systems &lt;br /&gt;&lt;br /&gt;Graduate Student Workshop (May 15)&lt;br /&gt;Tutorial:&lt;br /&gt;&lt;br /&gt;    * Alberto Laender; Web Data Extraction: Methods and Tools &lt;br /&gt;&lt;br /&gt;Session 5&lt;br /&gt;&lt;br /&gt;    * Alejandro Mallea;&lt;br /&gt;      Understanding the structure of RDF data: a practical study (PDF)&lt;br /&gt;    * Juan Reutter;&lt;br /&gt;      Extending Query Languages for Data Exchange (PDF)&lt;br /&gt;    * Jorge Perez;&lt;br /&gt;      Metadata Management in Data Exchange Systems (PDF)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2666398054424556882?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2666398054424556882/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2666398054424556882' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2666398054424556882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2666398054424556882'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/05/alberto-mendelzon-workshop-on.html' title='Alberto Mendelzon Workshop on Foundations of Data Management'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4490430627650238083</id><published>2009-05-02T21:12:00.001-05:00</published><updated>2009-05-02T21:16:54.222-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='opinion'/><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Que es lo que opino de documento Lectura01?</title><content type='html'>&lt;a title="View Opinion Sobre El Articulo El to Computacional on Scribd" href="http://www.scribd.com/doc/14863837/Opinion-Sobre-El-Articulo-El-to-Computacional" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Opinion Sobre El Articulo El to Computacional&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_642536118921136" name="doc_642536118921136" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14863837&amp;access_key=key-19thz3gwlkmnr2p5sp47&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14863837&amp;access_key=key-19thz3gwlkmnr2p5sp47&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_642536118921136_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-4490430627650238083?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4490430627650238083/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4490430627650238083' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4490430627650238083'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4490430627650238083'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/05/que-es-lo-que-opino-de-documento.html' title='Que es lo que opino de documento Lectura01?'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5920690746770821004</id><published>2009-05-01T21:21:00.002-05:00</published><updated>2009-05-01T21:24:23.474-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Lectura 2: Mas allá del pensamiento computacional</title><content type='html'>&lt;a title="View Beyond Computational Thinking on Scribd" href="http://www.scribd.com/doc/14845430/Beyond-Computational-Thinking" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Beyond Computational Thinking&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_344688825937143" name="doc_344688825937143" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14845430&amp;access_key=key-kixzvtqzazd27zx8uhn&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14845430&amp;access_key=key-kixzvtqzazd27zx8uhn&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_344688825937143_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5920690746770821004?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5920690746770821004/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5920690746770821004' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5920690746770821004'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5920690746770821004'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/05/lectura-mas-alla-del-pensamiento.html' title='Lectura 2: Mas allá del pensamiento computacional'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1020356536391927650</id><published>2009-05-01T17:12:00.002-05:00</published><updated>2009-05-01T21:24:01.607-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Lectura 1: El pensamiento Computacional</title><content type='html'>&lt;a title="View Computational Thinking on Scribd" href="http://www.scribd.com/doc/14839804/Computational-Thinking" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Computational Thinking&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_536083873082882" name="doc_536083873082882" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14839804&amp;access_key=key-17k0p0zzuvnlrb7ms220&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14839804&amp;access_key=key-17k0p0zzuvnlrb7ms220&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_536083873082882_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:         &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1020356536391927650?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1020356536391927650/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1020356536391927650' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1020356536391927650'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1020356536391927650'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/05/lectura-el-pensamiento-computacional.html' title='Lectura 1: El pensamiento Computacional'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1159257760128936883</id><published>2009-04-21T20:56:00.002-05:00</published><updated>2009-04-21T21:05:30.666-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='RUP'/><title type='text'>Buenas practicas de utilizacion de casos de uso</title><content type='html'>Algo que al inicio no tenemos claro cuando estudiamos UML y RUP es ¿como escribir correctamente un caso de uso?, bien personalmente tenía ciertas dudas al comienzo, pero leyendo y encontrando el siguiente artículo, creo que nos hace notar los errores que pudimos incurrir en algunas ocaciones. :(&lt;br /&gt;&lt;br /&gt;&lt;a title="View Buenas Malas Practicas CU on Scribd" href="http://www.scribd.com/doc/14504728/Buenas-Malas-Practicas-CU" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Buenas Malas Practicas CU&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_844026738698853" name="doc_844026738698853" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%" &gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=14504728&amp;access_key=key-jtsb1lr4nlfi5jhrha7&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=14504728&amp;access_key=key-jtsb1lr4nlfi5jhrha7&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_844026738698853_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt;   &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/explore/Magazines-Newspapers/" style="text-decoration: underline;"&gt;Magazines &amp; Newspape&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/rup" style="text-decoration: underline;"&gt;rup&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1159257760128936883?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1159257760128936883/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1159257760128936883' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1159257760128936883'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1159257760128936883'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/04/buenas-practicas-de-utilizacion-de.html' title='Buenas practicas de utilizacion de casos de uso'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1427153156104594071</id><published>2009-04-21T17:49:00.006-05:00</published><updated>2009-04-21T20:53:29.135-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Material audio-visual lenguaje c</title><content type='html'>Hola a todos ;) , a los interesados en ver un curso de lenguaje c, dejo una url en &lt;a href="http://www.video-cursos.net/" target="_blank"&gt;z0neb1t&lt;/a&gt;, solo tenemos que registrarnos, dejo esto pensando en una forma de tener una ayuda audio-visual para un lenguaje muy usado en la enseñanza de algoritmos.&lt;br /&gt;&lt;br /&gt;Saludos cordiales.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1427153156104594071?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1427153156104594071/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1427153156104594071' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1427153156104594071'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1427153156104594071'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/04/material-audio-visual-lenguaje-c.html' title='Material audio-visual lenguaje c'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6081011444612812262</id><published>2009-04-18T09:17:00.005-05:00</published><updated>2009-04-21T17:54:09.235-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='maestria'/><title type='text'>Comienzo de la Maestria en Ciencias de la Compu</title><content type='html'>Hola, de tiempo estoy escribiendo algo, quisiera comenzar diciendo que se va a dar inicio de la maestria en ciencias de la computacion en la Universidad Nacional de Ucayali, el cual cursare y pienso publicar algunos articulos sobre el tema, me pidieron un tema para desarrollar y creo que ya tengo uno ;) se los contare en el transcurso.&lt;br /&gt;&lt;br /&gt;Saludos cordiales.&lt;br /&gt;Enlace: &lt;a href="http://mscunu.blogspot.com/"&gt;maestria ciencias computacion unu&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6081011444612812262?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6081011444612812262/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6081011444612812262' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6081011444612812262'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6081011444612812262'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/04/comienzo-de-la-maestria-en-ciencias-de.html' title='Comienzo de la Maestria en Ciencias de la Compu'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2098026302144282781</id><published>2009-02-14T10:10:00.001-05:00</published><updated>2009-02-14T10:10:47.841-05:00</updated><title type='text'>Introduccion a UML</title><content type='html'>&lt;a title="View UML document on Scribd" href="http://www.scribd.com/doc/2080534/UML" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;UML&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_342242159416845" name="doc_342242159416845" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2080534&amp;access_key=key-fxqsgk8w4omscwd89kn&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;      &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2080534&amp;access_key=key-fxqsgk8w4omscwd89kn&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_342242159416845_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt; &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:    &lt;a href="http://viewer.scribd.com/browse?c=34-academic-work" style="text-decoration: underline;"&gt;Academic Work&lt;/a&gt;      &lt;a href="http://viewer.scribd.com/browse?c=166-internet-technology" style="text-decoration: underline;"&gt;Internet &amp;amp; Technolog&lt;/a&gt;       &lt;a href="http://viewer.scribd.com/tag/ciencia" style="text-decoration: underline;"&gt;ciencia&lt;/a&gt;      &lt;a href="http://viewer.scribd.com/tag/sistemas" style="text-decoration: underline;"&gt;sistemas&lt;/a&gt;    &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2098026302144282781?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2098026302144282781/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2098026302144282781' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2098026302144282781'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2098026302144282781'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/02/introduccion-uml.html' title='Introduccion a UML'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-7137765489887033739</id><published>2009-02-12T22:59:00.000-05:00</published><updated>2009-02-12T23:01:07.542-05:00</updated><title type='text'>Desarrollo en Capas</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_398629"&gt;&lt;a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" href="http://www.slideshare.net/jercoli/desarrollo-en-capas-con-net?type=powerpoint" title="Desarrollo en Capas con .Net"&gt;Desarrollo en Capas con .Net&lt;/a&gt;&lt;object style="margin:0px" width="425" height="355"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=desarrollo-en-capas-con-net-1210513786895759-8&amp;stripped_title=desarrollo-en-capas-con-net" /&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=desarrollo-en-capas-con-net-1210513786895759-8&amp;stripped_title=desarrollo-en-capas-con-net" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;View more &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/"&gt;presentations&lt;/a&gt; from &lt;a style="text-decoration:underline;" href="http://www.slideshare.net/jercoli"&gt;jercoli&lt;/a&gt;. (tags: &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/componentes"&gt;componentes&lt;/a&gt; &lt;a style="text-decoration:underline;" href="http://slideshare.net/tag/active-record"&gt;active record&lt;/a&gt;)&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-7137765489887033739?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/7137765489887033739/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=7137765489887033739' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7137765489887033739'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7137765489887033739'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/02/desarrollo-en-capas.html' title='Desarrollo en Capas'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2761816357608827362</id><published>2009-01-16T16:49:00.001-05:00</published><updated>2009-01-16T16:49:40.798-05:00</updated><title type='text'>Funciones en PostgreSQL</title><content type='html'>&lt;a title="View Funciones en PostgreSQL on Scribd" href="http://www.scribd.com/doc/102830/Funciones-en-PostgreSQL" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Funciones en PostgreSQL&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_233691886778698" name="doc_233691886778698" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=102830&amp;access_key=aua6rvyiui687&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=102830&amp;access_key=aua6rvyiui687&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_233691886778698_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse/eBooks/Business?style=text-decoration%3A+underline%3B"&gt;Business&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse/eBooks/Language?style=text-decoration%3A+underline%3B"&gt;Language&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/spanish" style="text-decoration: underline;"&gt;spanish&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/funciones" style="text-decoration: underline;"&gt;funciones&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2761816357608827362?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2761816357608827362/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2761816357608827362' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2761816357608827362'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2761816357608827362'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/funciones-en-postgresql.html' title='Funciones en PostgreSQL'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8070827430336683924</id><published>2009-01-14T23:51:00.007-05:00</published><updated>2009-01-16T16:05:24.782-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>AjaxTags</title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: center;" align="center"&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size:6;"&gt;Ajax Tags&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;&lt;i&gt;Autor: Hugo Flores&lt;br /&gt;&lt;/i&gt;&lt;i&gt;&lt;a href="mailto:hpfloresj@gmail.com"&gt;hpfloresj@gmail.com&lt;/a&gt;&lt;br /&gt;&lt;/i&gt;&lt;i&gt;&lt;a href="http://hpfloresj.blogspot.com/"&gt;http://hpfloresj.blogspot.com&lt;/a&gt;&lt;/i&gt;&lt;br /&gt;&lt;i&gt;Fecha: 14-12-2008&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="text-align: left;"&gt;&lt;br /&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Introduccion&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Ajax Tags es una biblioteca de etiquetas JSP que nos simplifican el uso de AJAX.&lt;br /&gt;&lt;br /&gt;Esta biblioteca no necesita forzar al desarrollador J2EE a escribir codigo javascript para implementar una capacidad Ajax en un formulario web.&lt;br /&gt;&lt;br /&gt;Esta libreria proporciona soporte para los siguientes casos:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Autocomplete&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Callout&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;HTML Content replace&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Select/Dropdown&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Tab Panel&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Update field&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Area y Anchor&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Ajax DisplayTag&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Editor&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Tree&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Pros&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Fácil de usar.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Puede extender funcionalidades de manera facil con funciones post y pre condiciones&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Contras&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Moderadamento dificultoso extender core tags&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:85%;"&gt;Soporte y actualizaciones inciertos.&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;Para este articulo veremos la aplicación de Ajax con AjaxTags(Select/Dropdown), en un articulo anterior &lt;a title="Introduccion a Ajax" href="http://hpfloresj.blogspot.com/2009/01/intro-ajax.html" id="fa0-"&gt;Introduccion a Ajax&lt;/a&gt; vimos algunes funciones javascript ahora haremos algo mas rapido y sencillo.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;Recordaremos utilizar bibliotecas de etiquetas que ya vimos también.&lt;b&gt;&lt;br /&gt;&lt;br /&gt;&lt;/b&gt;&lt;b&gt;&lt;span style="font-size:130%;"&gt;Integrando AjaxTags en su aplicación caso: Select/Dropdown&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Requerimientos&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;JDK 1.5+&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Servlet container running Servlets 2.4+ and JSP 2.0+&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://ajaxtags.sourceforge.net/dependencies.html"&gt;AjaxTags dependencies&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Maven 2 (Si usted intenta construir desde el codigo)&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Download&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Descargar y descomprimir la ultima version de &lt;a target="_blank" title="AjaxTags" href="http://ajaxtags.sourceforge.net/" id="thh-"&gt;AjaxTags&lt;/a&gt;, nosotros trabajaremos con la version ajaxtags-1.3-beta-rc7-bin.zip que pueden descargar desde &lt;a target="_blank" title="aqui" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/ajaxtags-1.3-beta-rc7-bin.zip" id="l:.j"&gt;aqui&lt;/a&gt;, ademas de los &lt;a target="_blank" title="ejemplos" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/ajaxtags-1.3-beta-rc7.war" id="sew4"&gt;ejemplos&lt;/a&gt;.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Descargarse &lt;a target="_blank" title="Prototype JavaScript framework, version 1.5.0" href="http://www.prototypejs.org/assets/2007/1/18/prototype.js" id="t_nu"&gt;Prototype JavaScript framework, version 1.5.0&lt;/a&gt; y copiarlos a una carpeta script de nuestro proyecto.&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Descargarse &lt;a target="_blank" title="script.aculo.us scriptaculous.js v1.7.0" href="http://script.aculo.us/dist/scriptaculous-js-1.7.0.zip" id="pzp5"&gt;script.aculo.us scriptaculous.js v1.7.0&lt;/a&gt; y copiarlos a una carpeta script de nuestro proyecto.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;b&gt;Configuración&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Para la configuracion seguiremos los pasos vistos en item "Usando una biblioteca de etiquetas en su aplicación" del artículo &lt;a title="Tag Libreries" target="_blank" href="http://hpfloresj.blogspot.com/2008/12/tags-libraries.html" id="q32."&gt;Tag Libreries&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style="overflow:auto;"&gt;&lt;i&gt;&lt;code&gt;Copiar el fichero ajaxtags-1.3-beta-rc7.jar al directorio &lt;tt&gt;WEB-INF/lib&lt;/tt&gt;&lt;/code&gt;&lt;/i&gt;&lt;br /&gt;&lt;/pre&gt;&lt;ul&gt;&lt;li&gt;Copiar el fichero ajaxtags.tld al directorio WEB-INF/&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Agregar al descriptor de despliegue /WEB-INF/web.xml la siguiente entrada:&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;pre style="margin-left: 40px;"&gt;&lt;code&gt;&amp;lt;taglib&amp;gt;&lt;br /&gt;&amp;lt;uri&amp;gt;http://ajaxtags.org/tags/ajax&amp;lt;/uri&amp;gt;&lt;br /&gt;&amp;lt;location&amp;gt;/WEB-INF/ajaxtags.tld&amp;lt;/location&amp;gt;&lt;br /&gt;&amp;lt;/taglib&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Esto ya no es necesario para contenedores de Servlets 2.4&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Librerias jar dependientes que hay que tener en cuenta para poder hacer correr bien nuestros programas que            utilicen AjaxTags:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="margin-left: 40px;"&gt;&lt;i&gt;* Librerias comunes(obligatorias)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;ajaxtags-1.3-beta-rc7.jar&lt;br /&gt;commons-beanutils-1.7.0.jar &lt;br /&gt;commons-lang-2.3.jar&lt;br /&gt;commons-logging-1.1.1.jar&lt;br /&gt;// servelts&lt;br /&gt;jsp-api-2.0.jar&lt;br /&gt;servlet-api-2.4.jar&lt;br /&gt;//taglibs&lt;br /&gt;standard.jar&lt;br /&gt;jstl.jar&lt;br /&gt;&lt;br /&gt;&lt;i&gt;* Librerias comunes(opcionales segun requerimeinto)&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;commons-collections-3.2.jar&lt;br /&gt;jericho-html-2.4.jar&lt;br /&gt;displaytag-1.1.jar&lt;br /&gt;displaytag-export-poi-1.1.jar&lt;br /&gt;displaytag-portlet-1.1.jar&lt;br /&gt;itext-2.0.4.jar&lt;br /&gt;poi-scratchpad-3.0-rc4-20070503.jar&lt;br /&gt;poi-3.0-rc4-20070503.jar&lt;br /&gt;poi-contrib-3.0-rc4-20070503.jar&lt;/div&gt;&lt;br /&gt;Lo mejor para no tener problemas es copiar los ficheros jar que vienen en ajaxtags-1.3-beta-rc7-bin.zip dentro de lib.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Es necesario tener en nuestro proyecto otros frameworks javascript que se encuentran en ajaxtags-1.3-beta-rc7-bin.zip, copiar dichos ficheros desde ajaxtags-1.3-beta-rc7\web\js a {app_name}/public/js&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Copiar desde ajaxtags-1.3-beta-rc7-bin.zip el directorio web\css a {app_name}/public/css&lt;/li&gt;&lt;/ul&gt;Con todo esto tenemos configurado los ficheros que necesita AjaxTags, sigamos ;)&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Creando el Servlet que devuelve una respuesta XML&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;AjaxTags recibe XML que tenga el siguiente formato:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;UTF-8&amp;quot;?&amp;gt;&lt;br /&gt;&amp;lt;ajax-response&amp;gt;&lt;br /&gt;&amp;lt;response&amp;gt;&lt;br /&gt; &amp;lt;item&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;Registro 1&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;1&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;/item&amp;gt;&lt;br /&gt; &amp;lt;item&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;Registro 2&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;2&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;/item&amp;gt;&lt;br /&gt; &amp;lt;item&amp;gt;&lt;br /&gt;  &amp;lt;name&amp;gt;Registro 3&amp;lt;/name&amp;gt;&lt;br /&gt;  &amp;lt;value&amp;gt;3&amp;lt;/value&amp;gt;&lt;br /&gt; &amp;lt;/item&amp;gt;&lt;br /&gt;&amp;lt;/response&amp;gt;&lt;br /&gt;&amp;lt;/ajax-response&amp;gt;&lt;/code&gt;&lt;/pre&gt;Esta es la respuesta del Servidor a la peticion Ajax, AjaxTags tiene la capacidad de leer este XML, además AjaxTags tambien soporta contenido HTML.&lt;br /&gt;&lt;br /&gt;Pero de donde obtenemos estos datos XML? Creando las clases y metodos necesarios desde una base de datos. Usaremos la base Recursos Humanos de PostgreSQL.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Crearemos primero el método listEmployeesBySearchDepartment(int departmentID) de la clase Employees, metodo que lista todos los empleados segun el codigo de departamento que se le pasa. Hay que indicar que se tiene que añadir un atributo mas a esta clase del tipo  Departments department, agregar los getters y setters a los constructores y al metodo find() quedando de la siguiente forma:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;public Employees find( int employeeId ){&lt;br /&gt;        Employees objEmployees = null;&lt;br /&gt;&lt;br /&gt;        Connection con = null;&lt;br /&gt;        PreparedStatement ps = null;&lt;br /&gt;        ResultSet rs = null;&lt;br /&gt;&lt;br /&gt;        try{&lt;br /&gt;            con = cf.getConnection();&lt;br /&gt;            ps  = con.prepareStatement(&amp;quot;SELECT employee_id,first_name,last_name,email,phone_number, cast(to_char(hire_date,&amp;#039;DD-MM-YYYY&amp;#039;) as character varying),job_id,salary,commission_pct,manager_id,department_id FROM employees WHERE employee_id = ?&amp;quot; );&lt;br /&gt;            ps.setInt( 1, employeeId );&lt;br /&gt;            rs = ps.executeQuery();            &lt;br /&gt;            if( rs.next() ){&lt;br /&gt;                objEmployees = new Employees( rs.getInt(1),&lt;br /&gt;                                              rs.getString(2),&lt;br /&gt;                                              rs.getString(3),&lt;br /&gt;                                              rs.getString(4),&lt;br /&gt;                                              rs.getString(5),&lt;br /&gt;                                              rs.getString(6),&lt;br /&gt;                                              rs.getString(7),&lt;br /&gt;                                              rs.getInt(8),&lt;br /&gt;                                              rs.getDouble(9),&lt;br /&gt;                                              rs.getInt(10),&lt;br /&gt;                                              new Departments( rs.getInt(11), &amp;quot;&amp;quot; )&lt;br /&gt;                                             );&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }catch( SQLException sqle ){&lt;br /&gt;            sqle.printStackTrace();&lt;br /&gt;        }finally{&lt;br /&gt;             ConnectionFactory.closeAllConnections(con, ps, rs);&lt;br /&gt;        }&lt;br /&gt;        return objEmployees;&lt;br /&gt;    }&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;br /&gt;Veamos como se implementa el metodo listEmployeesBySearchDepartment().&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/div&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;public List&amp;lt;Employees&amp;gt; listEmployeesBySearchDepartment( int departmentId ){&lt;br /&gt;        List&amp;lt;Employees&amp;gt; listEmployees = null;&lt;br /&gt;&lt;br /&gt;        Connection con = null;&lt;br /&gt;        PreparedStatement ps = null;&lt;br /&gt;        ResultSet rs = null;&lt;br /&gt;&lt;br /&gt;        try{&lt;br /&gt;            con = cf.getConnection();&lt;br /&gt;            ps = con.prepareStatement(&amp;quot;select employee_id, first_name, last_name from employees where department_id = ? &amp;quot;);&lt;br /&gt;            ps.setInt( 1, departmentId );&lt;br /&gt;            rs = ps.executeQuery();&lt;br /&gt;            if( rs != null ) listEmployees = new ArrayList&amp;lt;Employees&amp;gt;();&lt;br /&gt;            while( rs.next() ){&lt;br /&gt;                listEmployees.add(  new Employees( rs.getInt(1),&lt;br /&gt;                                                   rs.getString(2),&lt;br /&gt;                                                   rs.getString(3),&lt;br /&gt;                                                   &amp;quot;&amp;quot;,&lt;br /&gt;                                                   &amp;quot;&amp;quot;,&lt;br /&gt;                                                   &amp;quot;&amp;quot;,&lt;br /&gt;                                                   &amp;quot;&amp;quot;,&lt;br /&gt;                                                   0,&lt;br /&gt;                                                   0.0,&lt;br /&gt;                                                   0,&lt;br /&gt;                                                   null )&lt;br /&gt;                                 );&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }catch( SQLException sqle ){&lt;br /&gt;            sqle.printStackTrace();&lt;br /&gt;        }finally{&lt;br /&gt;            ConnectionFactory.closeAllConnections(con, ps, rs);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;        return listEmployees;&lt;br /&gt;    }&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Ahora implementaremos la clase Departments, con su metodo listDepartments(),que lista todos los departamentos de la empresa.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div&gt;&lt;pre id="codigo"&gt;&lt;code&gt;package dominio;&lt;br /&gt;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.sql.Types;&lt;br /&gt;&lt;br /&gt;import com.hpfloresj.util.Keyboard;&lt;br /&gt;import com.hpfloresj.persistencia.ConnectionFactory;&lt;br /&gt;import com.hpfloresj.persistencia.DAOFactory;&lt;br /&gt;import com.hpfloresj.persistencia.ConfigDatabase;&lt;br /&gt;import com.hpfloresj.persistencia.TypeDB;&lt;br /&gt;import java.util.ArrayList;&lt;br /&gt;import java.util.List;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Hugo&lt;br /&gt; */&lt;br /&gt;public class Departments {&lt;br /&gt;    private int departmentId;&lt;br /&gt;    private String name;&lt;br /&gt;    private ConnectionFactory cf;&lt;br /&gt;&lt;br /&gt;    public Departments( ConfigDatabase conf ){&lt;br /&gt;        cf = DAOFactory.create( conf );&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    public Departments( int departmentId, String name ){&lt;br /&gt;        setDepartmentId(departmentId);&lt;br /&gt;        setName(name);&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;     public List&amp;lt;Departments&amp;gt; listDepartments(){&lt;br /&gt;        List&amp;lt;Departments&amp;gt; listDepartments = null;&lt;br /&gt;&lt;br /&gt;        Connection con = null;&lt;br /&gt;        PreparedStatement ps = null;&lt;br /&gt;        ResultSet rs = null;&lt;br /&gt;&lt;br /&gt;        try{&lt;br /&gt;            con = cf.getConnection();&lt;br /&gt;            ps = con.prepareStatement(&amp;quot;select department_id, department_name from departments&amp;quot;);&lt;br /&gt;            rs = ps.executeQuery();&lt;br /&gt;            if( rs != null ) listDepartments = new ArrayList&amp;lt;Departments&amp;gt;();&lt;br /&gt;            while( rs.next() ){&lt;br /&gt;                listDepartments.add(  new Departments( rs.getInt(1),&lt;br /&gt;                                                       rs.getString(2) )&lt;br /&gt;                                   );&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;        }catch( SQLException sqle ){&lt;br /&gt;            sqle.printStackTrace();&lt;br /&gt;        }finally{&lt;br /&gt;            ConnectionFactory.closeAllConnections(con, ps, rs);&lt;br /&gt;        }&lt;br /&gt;&lt;br /&gt;       return listDepartments;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * @return the departmentId&lt;br /&gt;     */&lt;br /&gt;    public int getDepartmentId() {&lt;br /&gt;        return departmentId;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * @param departmentId the departmentId to set&lt;br /&gt;     */&lt;br /&gt;    public void setDepartmentId(int departmentId) {&lt;br /&gt;        this.departmentId = departmentId;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * @return the name&lt;br /&gt;     */&lt;br /&gt;    public String getName() {&lt;br /&gt;        return name;&lt;br /&gt;    }&lt;br /&gt;&lt;br /&gt;    /**&lt;br /&gt;     * @param name the name to set&lt;br /&gt;     */&lt;br /&gt;    public void setName(String name) {&lt;br /&gt;        this.name = name;&lt;br /&gt;    }&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bien ahora que tenemos los métodos veamos como podemos contruir nuestro Servlet, pero con AjaxTags:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;package servlets;&lt;br /&gt;&lt;br /&gt;import com.hpfloresj.persistencia.ConfigDatabase;&lt;br /&gt;import com.hpfloresj.persistencia.TypeDB;&lt;br /&gt;import dominio.Employees;&lt;br /&gt;import java.util.List;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.ajaxtags.servlets.BaseAjaxServlet;&lt;br /&gt;import org.ajaxtags.xml.AjaxXmlBuilder;&lt;br /&gt;/**&lt;br /&gt; *&lt;br /&gt; * @author Hugo&lt;br /&gt; */&lt;br /&gt;public class DropSelectAjax extends BaseAjaxServlet {&lt;br /&gt;   &lt;br /&gt;&lt;br /&gt;   public String getXmlContent( HttpServletRequest request, HttpServletResponse response )&lt;br /&gt;   throws Exception&lt;br /&gt;   {&lt;br /&gt;       &lt;br /&gt;       int departmentId = 0;&lt;br /&gt;       ConfigDatabase conf = new ConfigDatabase(&amp;quot;127.0.0.1&amp;quot;, &amp;quot;hr&amp;quot;,5432,&lt;br /&gt;                                                 TypeDB.POSTGRE,&lt;br /&gt;                                                 &amp;quot;postgres&amp;quot;,&lt;br /&gt;                                                 &amp;quot;admin&amp;quot;);&lt;br /&gt;       try{&lt;br /&gt;           departmentId = Integer.parseInt( request.getParameter(&amp;quot;id&amp;quot;) );&lt;br /&gt;       }catch( NumberFormatException nfe ){&lt;br /&gt;           System.out.println( nfe.getMessage() );&lt;br /&gt;       }&lt;br /&gt;       Employees objEmployees = new Employees( conf );&lt;br /&gt;&lt;br /&gt;       List&amp;lt;Employees&amp;gt; lista = objEmployees.listEmployeesBySearchDepartment( departmentId );&lt;br /&gt;&lt;br /&gt;       AjaxXmlBuilder xml = new AjaxXmlBuilder();&lt;br /&gt;&lt;br /&gt;       for( Employees item : lista ){&lt;br /&gt;           xml.addItem( item.getFirstName()+ &amp;quot; &amp;quot; + item.getLastName(),String.valueOf( item.getEmployeeId() ) );&lt;br /&gt;       }&lt;br /&gt;       //xml.addItems(lista,&amp;quot;producto&amp;quot;, &amp;quot;id&amp;quot;);&lt;br /&gt;       System.out.println(xml.toString() + &amp;quot; -- &amp;quot;);&lt;br /&gt;       return xml.toString();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Añadimos el Servlet al descriptor de despliegue:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;servlet&amp;gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;DropSelectAjax&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;        &amp;lt;servlet-class&amp;gt;servlets.DropSelectAjax&amp;lt;/servlet-class&amp;gt;&lt;br /&gt;    &amp;lt;/servlet&amp;gt;&lt;br /&gt;    &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;        &amp;lt;servlet-name&amp;gt;DropSelectAjax&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;        &amp;lt;url-pattern&amp;gt;/DropSelectAjax&amp;lt;/url-pattern&amp;gt;&lt;br /&gt;    &amp;lt;/servlet-mapping&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;Si compilamos y ejecutamos el Servlet: http://localhost:8084/ajaxTags/DropSelectAjax?id=80&lt;br /&gt;&lt;br /&gt;&lt;div id="dhhl" style="padding: 1em 0pt; text-align: left;"&gt;&lt;br /&gt;&lt;div id="rr:t" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img src="http://docs.google.com/File?id=ddcrtxq5_50d7jmnjg7_b" width="531" height="364" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Vista accediendo a nuestro XML mediante AjaxTags&lt;/b&gt;&lt;br /&gt;&lt;/div&gt;En este ultimo paso diseñaremos la vista y los describiremos los metodos necesarios para llamar al Servlet mediante AjaxTags.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;1. Importamos las clases que utilizaremos&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;%@page import=&amp;quot;dominio.*&amp;quot; %&amp;gt;&lt;br /&gt;&amp;lt;%@page import=&amp;quot;com.hpfloresj.persistencia.*&amp;quot; %&amp;gt;&lt;br /&gt;&amp;lt;%@page import=&amp;quot;java.util.List&amp;quot; %&amp;gt;&lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;b&gt;2. creamos un fichero selectAjax.jsp y declaramos la biblioteca de etiquetas Ajax Tags&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;%@ taglib uri="http://ajaxtags.org/tags/ajax" prefix="ajax"%&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-family:Verdana;"&gt;3. Declaramos el TLD de la biblioteca de etiquetas JSP(JavaServer Page Stantard Tag Library)&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;span style="font-family:Verdana;"&gt;    JSTL encapsula etiquetas simples que proporcionan funcionalidad comunes a muchas aplicaciones Web. JSTL trabaja con estructura de tareas,&lt;br /&gt;iteraciones y condiciones, etiquetas para manipular documentos XML, internacionalizacion de etiquetas y etiquetas SQL.&lt;br /&gt;&lt;br /&gt;  Tambien proporciona un framework para integrar etiquetas personalizadas existentes con etiquetas JSTL.&lt;br /&gt;  JSTL 1.2 es parte de la plataforma Java EE 5.&lt;br /&gt;&lt;br /&gt;  Referencias:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="font-family:Verdana;"&gt;&lt;a title="API" href="http://java.sun.com/products/jsp/jstl/reference/api/index.html" id="zfg1"&gt;API&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;"&gt;&lt;a title="Tag Library Documentacion" href="http://java.sun.com/products/jsp/jstl/1.1/docs/tlddocs/index.html" id="jek6"&gt;Tag Library Documentacion&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;"&gt;&lt;a title="Documentacion y articulos" href="http://java.sun.com/products/jsp/jstl/reference/docs/index.html" id="s98h"&gt;Documentacion y articulos&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;"&gt;&lt;a title="JSP Standard Tag Library eases Webpage development" href="http://www.javaworld.com/javaworld/jw-02-2003/jw-0228-jstl.html" id="d5tz"&gt;JSP Standard Tag Library eases Webpage development&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-family:Verdana;"&gt;&lt;/span&gt;&lt;a title="Descargar jstl.jar" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/jstl.jar" id="dr-v"&gt;Descargar jstl.jar&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="Descargar standard.jar" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/standard.jar" id="voha"&gt;Descargar standard.jar&lt;/a&gt; &lt;/li&gt;&lt;/ul&gt;&lt;pre&gt;&lt;code&gt;&lt;span style="font-family:Georgia,serif;"&gt;&lt;br /&gt;&lt;/span&gt;&amp;lt;%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%&amp;gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;c:set var="contextPath"&amp;gt;&amp;lt;%=request.getContextPath() %&amp;gt;&amp;lt;/c:set&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;En esta ultima linea estamos declarando una variable etiqueta JSP que almacenara el contexto de nuestra aplicacion en "contextPath"&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;4. Importar los CSS y Javascripts&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;&amp;lt;html&amp;gt;&lt;br /&gt;    &amp;lt;head&amp;gt;&lt;br /&gt;        &amp;lt;meta http-equiv=&amp;quot;Content-Type&amp;quot; content=&amp;quot;text/html; charset=ISO-8859-1&amp;quot;&amp;gt;&lt;br /&gt;        &amp;lt;title&amp;gt;JSP Page&amp;lt;/title&amp;gt;&lt;br /&gt;        &amp;lt;%-- IMPORTAR LIBRERIAS JAVASCRIPT --%&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;${contextPath}/public/js/prototype.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;${contextPath}/public/js/scriptaculous/scriptaculous.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;${contextPath}/public/js/ajaxtags/ajaxtags.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;${contextPath}/public/js/ajaxtags/ajaxtags_parser.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot; src=&amp;quot;${contextPath}/public/js/ajaxtags/ajaxtags_controls.js&amp;quot;&amp;gt;&amp;lt;/script&amp;gt;&lt;br /&gt;        &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;        &amp;lt;%-- IMPORTAR HOJAS DE ESTILOS(OPCIONAL PARA AUTO-COMPLETES) --%&amp;gt;&lt;br /&gt;        &amp;lt;!--&amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;{contextPath}/public/css/ajaxtags.css&amp;quot; /&amp;gt;--&amp;gt;&lt;br /&gt;        &amp;lt;link type=&amp;quot;text/css&amp;quot; rel=&amp;quot;stylesheet&amp;quot; href=&amp;quot;${contextPath}/public/css/site.css&amp;quot; /&amp;gt;&lt;br /&gt;&lt;br /&gt;    &amp;lt;/head&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;br /&gt;5. El resto de nuestro JSP creamos nuestra etiqueta HTML Select y las etiquetas Ajax&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;&amp;lt;body&amp;gt;&lt;br /&gt;        &amp;lt;form action=&amp;quot;.&amp;quot; class=&amp;quot;basicForm&amp;quot;&amp;gt;            &lt;br /&gt;            &amp;lt;fieldset&amp;gt;&lt;br /&gt;                &amp;lt;legend&amp;gt;Escoger Departamento&amp;lt;/legend&amp;gt;&lt;br /&gt;                    &amp;lt;label for=&amp;quot;id&amp;quot;&amp;gt;Departamento:&amp;lt;/label&amp;gt;&lt;br /&gt;                    &amp;lt;select id=&amp;quot;id&amp;quot;&amp;gt;&lt;br /&gt;                        &amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Selecionar&amp;lt;/option&amp;gt;&lt;br /&gt;                        &amp;lt;%&lt;br /&gt;                        ConfigDatabase conf = new ConfigDatabase(&amp;quot;127.0.0.1&amp;quot;, &amp;quot;hr&amp;quot;,5432,&lt;br /&gt;                                                 TypeDB.POSTGRE,&lt;br /&gt;                                                 &amp;quot;postgres&amp;quot;,&lt;br /&gt;                                                 &amp;quot;admin&amp;quot;);&lt;br /&gt;                        Departments dep = new Departments(conf);&lt;br /&gt;                        List&amp;lt;Departments&amp;gt; lista = dep.listDepartments();&lt;br /&gt;                        for( Departments item : lista){&lt;br /&gt;                        %&amp;gt;&lt;br /&gt;                        &amp;lt;option value=&amp;quot;&amp;lt;%= item.getDepartmentId() %&amp;gt;&amp;quot;&amp;gt;&amp;lt;%= item.getName() %&amp;gt;&amp;lt;/option&amp;gt;&lt;br /&gt;                        &amp;lt;%&lt;br /&gt;                        }&lt;br /&gt;                        %&amp;gt;&lt;br /&gt;                    &amp;lt;/select&amp;gt;&lt;br /&gt;                    &amp;lt;span id=&amp;quot;progressMsg&amp;quot; style=&amp;quot;display:none;&amp;quot;&amp;gt;&amp;lt;img alt=&amp;quot;Indicator&amp;quot; src=&amp;quot;&amp;lt;%=request.getContextPath()%&amp;gt;/public/images/indicator.gif&amp;quot; /&amp;gt; Cargando...&amp;lt;/span&amp;gt;&lt;br /&gt;&lt;br /&gt;                    &amp;lt;label for=&amp;quot;empleados&amp;quot;&amp;gt;Empleados:&amp;lt;/label&amp;gt;&lt;br /&gt;                    &amp;lt;select id=&amp;quot;listaEmpleados&amp;quot; disabled=&amp;quot;disabled&amp;quot;&amp;gt;&lt;br /&gt;                        &amp;lt;option value=&amp;quot;&amp;quot;&amp;gt;Seleccionar Empleado&amp;lt;/option&amp;gt;&lt;br /&gt;                    &amp;lt;/select&amp;gt;&lt;br /&gt;            &amp;lt;/fieldset&amp;gt;&lt;br /&gt;        &amp;lt;/form&amp;gt;&lt;br /&gt;        &amp;lt;div id=&amp;quot;errorMsg&amp;quot; style=&amp;quot;display:none;border:1px solid #e00;background-color:#fee;padding:2px;margin-top:8px;width:300px;font:normal 12px Arial;color:#900&amp;quot;&amp;gt;&amp;lt;/div&amp;gt;&lt;br /&gt;        &amp;lt;script type=&amp;quot;text/javascript&amp;quot;&amp;gt;&lt;br /&gt;            /*&lt;br /&gt;             * USER DEFINED FUNCTIONS&lt;br /&gt;             */&lt;br /&gt;            function initProgress() {&lt;br /&gt;              Element.show(&amp;#039;progressMsg&amp;#039;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            function resetProgress() {&lt;br /&gt;              // show marker emblem&lt;br /&gt;              //var index = $(&amp;#039;tipo&amp;#039;).selectedIndex;&lt;br /&gt;              //var automaker = $(&amp;#039;tipo&amp;#039;).options[index].text;&lt;br /&gt;              Effect.Fade(&amp;#039;progressMsg&amp;#039;);&lt;br /&gt;            }&lt;br /&gt;&lt;br /&gt;            function reportError() {&lt;br /&gt;              if ($(&amp;#039;listaEmpleados&amp;#039;).options.length == 0) {&lt;br /&gt;                $(&amp;#039;errorMsg&amp;#039;).innerHTML = &amp;quot;Dropdown busted!&amp;quot;;&lt;br /&gt;              }&lt;br /&gt;              Element.show(&amp;#039;errorMsg&amp;#039;);&lt;br /&gt;              setTimeout(&amp;quot;Effect.DropOut(&amp;#039;errorMsg&amp;#039;)&amp;quot;, 2500);&lt;br /&gt;            }&lt;br /&gt;        &amp;lt;/script&amp;gt;&lt;br /&gt;        &amp;lt;ajax:select&lt;br /&gt;            baseUrl=&amp;quot;${contextPath}/DropSelectAjax&amp;quot;&lt;br /&gt;            source=&amp;quot;id&amp;quot;&lt;br /&gt;            target=&amp;quot;listaEmpleados&amp;quot;&lt;br /&gt;            parameters=&amp;quot;id={id}&amp;quot;&lt;br /&gt;            preFunction=&amp;quot;initProgress&amp;quot;&lt;br /&gt;            postFunction=&amp;quot;resetProgress&amp;quot;&lt;br /&gt;            emptyOptionName=&amp;quot;Selecionar empleado&amp;quot;&lt;br /&gt;            errorFunction=&amp;quot;reportError&amp;quot;&lt;br /&gt;            parser=&amp;quot;new ResponseXmlParser()&amp;quot;/&amp;gt;&lt;br /&gt;    &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;b&gt;Funcionamiento&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En primer lugar cargamos el select que contendra un listado de todos los departamentos que existe en nuestra "empresa"&lt;br /&gt;&lt;br /&gt;La etiqueta más importante aqui es &amp;lt;ajax:select /&amp;gt;, etiqueta hace referencia al evento de seleccionar datos que estan relacionados si.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;baseURL:&lt;/b&gt; contiene el Servlet que procesara la petición Ajax y que devuelve una respuesta en formato XML.&lt;br /&gt;&lt;b&gt;source&lt;/b&gt;: Campo Select inicial que manda la peticion Ajax&lt;br /&gt;&lt;b&gt;target:&lt;/b&gt; Campo Select donde el valor retornado mediante Ajax se mostrara.&lt;br /&gt;&lt;b&gt;parameters:&lt;/b&gt; Lista de parametos separados por coma que se pasan al Servlet.&lt;br /&gt;                 Notar que tiene corchetes parameters = "id={id}"&lt;br /&gt;                 Esta sintaxis tiene la siguiente forma si no utilizariamos Ajax:&lt;br /&gt;                 http://localhost:8084/ajaxTags/DropSelectAjax?id=80&lt;br /&gt;                 donde {id} es el identificador HTML de la etiqueta Select&lt;br /&gt;&lt;b&gt;preFunction:&lt;/b&gt; Funcion que se ejecuta antes de usar Ajax.(Mostramos un inidicar "Cargando...")&lt;br /&gt;&lt;b&gt;postFunction&lt;/b&gt;: Funcion que se ejecuta después de finalizado Ajax.(Ocultamos el mensaje indicador)&lt;br /&gt;&lt;b&gt;emtyOptionName: &lt;/b&gt;Si no existe datos mostramos un mensaje en el segundo Select&lt;br /&gt;&lt;b&gt;errorFunction:&lt;/b&gt; Funcion que nos muestra un error si en caso el Server no puede devolvernos una respuesta.                &lt;br /&gt;&lt;b&gt;parser&lt;/b&gt;  &lt;sup&gt;&lt;/sup&gt;: Tipo de respuesta a nuestra peticion (Por defecto: ResponseHtmlParser)                 &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Ejecutemos nuestro ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="qcc0" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 478px; height: 272px;" src="http://docs.google.com/File?id=ddcrtxq5_5173zbwfhj_b" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div id="mk.o" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 457px; height: 526px;" src="http://docs.google.com/File?id=ddcrtxq5_52hs9prhg8_b" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="jhb9" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 489px; height: 265px;" src="http://docs.google.com/File?id=ddcrtxq5_53hc9k8td2_b" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="dntq" style="padding: 1em 0pt; text-align: left;"&gt;&lt;img style="width: 454px; height: 572px;" src="http://docs.google.com/File?id=ddcrtxq5_54g8txjvdf_b" /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;Bien, hemos llegado al final del articulo, espero que les sea de utilidad.&lt;br /&gt;&lt;br /&gt;Un saludo ;).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;A continuacion anexo el código fuente.&lt;br /&gt;&lt;br /&gt;&lt;a title="Download source code" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/ajaxTags2.rar" id="pq70"&gt;Download source code&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a title="Download source code" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/hr.backup?ccr=1171" id="pq70"&gt;Download database example&lt;/a&gt;&lt;br&gt;&lt;br /&gt;&lt;a title="Download source code" href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/dbconnect-1.jar" id="pq70"&gt;JAR Connection Library&lt;/a&gt;&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/5976545851119434553-8070827430336683924?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8070827430336683924/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8070827430336683924' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8070827430336683924'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8070827430336683924'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/ajaxtags.html' title='AjaxTags'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2679777929240589164</id><published>2009-01-13T12:28:00.000-05:00</published><updated>2009-01-13T12:29:15.600-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Diseño'/><title type='text'>Algo de buen diseño para quienes les gusta</title><content type='html'>&lt;a title="View The Woork Papers N1 | Structured process you must know to develop a web application on Scribd" href="http://www.scribd.com/doc/10042348/The-Woork-Papers-N1-Structured-process-you-must-know-to-develop-a-web-application" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;The Woork Papers N1 | Structured process you must know to develop a web application&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_621045385700934" name="doc_621045385700934" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=10042348&amp;access_key=key-136osdj92y5av95swfuz&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=10042348&amp;access_key=key-136osdj92y5av95swfuz&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_621045385700934_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse?c=119-internet" style="text-decoration: underline;"&gt;Internet&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse?c=114-technology" style="text-decoration: underline;"&gt;Technology&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/web%20design" style="text-decoration: underline;"&gt;web design&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/project%20management" style="text-decoration: underline;"&gt;project management&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2679777929240589164?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2679777929240589164/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2679777929240589164' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2679777929240589164'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2679777929240589164'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/algo-de-buen-diseo-para-quienes-les.html' title='Algo de buen diseño para quienes les gusta'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1214467601654764221</id><published>2009-01-13T08:17:00.002-05:00</published><updated>2009-01-13T08:19:34.630-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Triggers en PostgreSQL</title><content type='html'>&lt;a title="View Triggers en PostgreSQL on Scribd" href="http://www.scribd.com/doc/102837/Triggers-en-PostgreSQL" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Triggers en PostgreSQL&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_767734112025599" name="doc_767734112025599" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://d.scribd.com/ScribdViewer.swf?document_id=102837&amp;access_key=2ha2we9o9yywn&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://d.scribd.com/ScribdViewer.swf?document_id=102837&amp;access_key=2ha2we9o9yywn&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_767734112025599_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse?c=10-tutorial" style="text-decoration: underline;"&gt;Tutorial&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse?c=115-general" style="text-decoration: underline;"&gt;General&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/spanish" style="text-decoration: underline;"&gt;spanish&lt;/a&gt;              &lt;a href="http://www.scribd.com/tag/triggers" style="text-decoration: underline;"&gt;triggers&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1214467601654764221?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1214467601654764221/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1214467601654764221' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1214467601654764221'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1214467601654764221'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/triggers-en-postgresql.html' title='Triggers en PostgreSQL'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1574222382576589694</id><published>2009-01-05T20:32:00.001-05:00</published><updated>2009-01-05T20:32:58.252-05:00</updated><title type='text'>SEO3</title><content type='html'>&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2729035&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2729035&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2729035"&gt;SEO usando PHP: Expresiones regulares. Video 3&lt;/a&gt; from &lt;a href="http://vimeo.com/user980560"&gt;Deyby Vasquez&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1574222382576589694?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1574222382576589694/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1574222382576589694' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1574222382576589694'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1574222382576589694'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/seo3_05.html' title='SEO3'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5529148227568636655</id><published>2009-01-05T20:31:00.000-05:00</published><updated>2009-01-05T20:32:22.706-05:00</updated><title type='text'>SEO2</title><content type='html'>&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2673643&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2673643&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2673643"&gt;SEO usando PHP video 2 http://loquenecesita.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user980560"&gt;Deyby Vasquez&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5529148227568636655?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5529148227568636655/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5529148227568636655' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5529148227568636655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5529148227568636655'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/seo2.html' title='SEO2'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3118477526945393317</id><published>2009-01-05T16:02:00.002-05:00</published><updated>2009-01-05T20:31:40.322-05:00</updated><title type='text'>SEO1</title><content type='html'>&lt;object width="400" height="302"&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=2614864&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" /&gt;&lt;embed src="http://vimeo.com/moogaloop.swf?clip_id=2614864&amp;amp;server=vimeo.com&amp;amp;show_title=1&amp;amp;show_byline=1&amp;amp;show_portrait=0&amp;amp;color=&amp;amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="302"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;a href="http://vimeo.com/2614864"&gt;SEO usando PHP video 1 http://loquenecesita.com&lt;/a&gt; from &lt;a href="http://vimeo.com/user980560"&gt;Deyby Vasquez&lt;/a&gt; on &lt;a href="http://vimeo.com"&gt;Vimeo&lt;/a&gt;.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3118477526945393317?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3118477526945393317/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3118477526945393317' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3118477526945393317'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3118477526945393317'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/seo3.html' title='SEO1'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5793648236574204930</id><published>2009-01-02T21:53:00.005-05:00</published><updated>2009-01-03T20:34:52.577-05:00</updated><title type='text'>Entorno de Desarrollo Java y Gis Parte1</title><content type='html'>&lt;iframe type="text/html" width="500px" height="400px" src="http://vuzit.com/view/?url=http://storage.vuzit.com/public/e3z/GUIA INSTALACION Y CONFIGURACION DE HERRAMIENTAS DE DESARROLLO  JAVA Y SOFTWARE DE EDICION GIS .pdf&amp;key=40e8d6d1-fd23-5054-a79f-8298a8ba4f6e&amp;output=embed&amp;z=0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/tomcat" target="_blank"&gt;Download script tomcat&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;En la segunda, parte instalaremos PostgreSQL, PostGIS, MapServer y sus librerias dependientes, PMapper framework MapScript escrito para trabajar con MapServer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5793648236574204930?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5793648236574204930/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5793648236574204930' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5793648236574204930'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5793648236574204930'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/entorno-de-desarrollo-java-y-gis-parte1.html' title='Entorno de Desarrollo Java y Gis Parte1'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6569886610800039747</id><published>2009-01-01T11:39:00.010-05:00</published><updated>2009-01-03T20:06:29.434-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Intro a Ajax</title><content type='html'>&lt;iframe type="text/html" width="500px" height="400px" src="http://vuzit.com/view/?url=http://storage.vuzit.com/public/ebc/IntroAjax.pdf&amp;key=40e8d6d1-fd23-5054-a79f-8298a8ba4f6e&amp;output=embed&amp;z=0" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/hr.backup?ccr=1171" target="_blank"&gt;Download example HR database&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;a href="http://cid-daf5351f2bc48ccc.skydrive.live.com/self.aspx/.Public/dbconnect-1.jar" target="_blank"&gt;Download Connection library&lt;/a&gt;&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6569886610800039747?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6569886610800039747/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6569886610800039747' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6569886610800039747'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6569886610800039747'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2009/01/intro-ajax.html' title='Intro a Ajax'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4391042710904200070</id><published>2008-12-30T11:54:00.001-05:00</published><updated>2009-01-01T12:05:58.778-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='ajax'/><title type='text'>Tags Libraries</title><content type='html'>&lt;a title="View Biblioteca de Etiquetas en Java on Scribd" href="http://www.scribd.com/doc/9635078/Biblioteca-de-Etiquetas-en-Java" style="margin: 12px auto 6px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 14px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block; text-decoration: underline;"&gt;Biblioteca de Etiquetas en Java&lt;/a&gt; &lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_458391371730380" name="doc_458391371730380" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=9635078&amp;access_key=key-t4useise37g2jv49x82&amp;page=1&amp;version=1&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;        &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=9635078&amp;access_key=key-t4useise37g2jv49x82&amp;page=1&amp;version=1&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_458391371730380_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt; &lt;div style="margin: 6px auto 3px auto; font-family: Helvetica,Arial,Sans-serif; font-style: normal; font-variant: normal; font-weight: normal; font-size: 12px; line-height: normal; font-size-adjust: none; font-stretch: normal; -x-system-font: none; display: block;"&gt;    &lt;a href="http://www.scribd.com/upload" style="text-decoration: underline;"&gt;Publish at Scribd&lt;/a&gt; or &lt;a href="http://www.scribd.com/browse" style="text-decoration: underline;"&gt;explore&lt;/a&gt; others:            &lt;a href="http://www.scribd.com/browse?c=115-general" style="text-decoration: underline;"&gt;General&lt;/a&gt;              &lt;a href="http://www.scribd.com/browse?c=114-technology" style="text-decoration: underline;"&gt;Technology&lt;/a&gt;                  &lt;a href="http://www.scribd.com/tag/java" style="text-decoration: underline;"&gt;java&lt;/a&gt;       &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-4391042710904200070?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4391042710904200070/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4391042710904200070' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4391042710904200070'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4391042710904200070'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/12/tags-libraries.html' title='Tags Libraries'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1672640110985640692</id><published>2008-09-25T14:38:00.004-05:00</published><updated>2009-01-13T08:20:34.431-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='PostgreSQL'/><title type='text'>Postgis la extension espacial de postgres</title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_436481075581131" name="doc_436481075581131" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=3728733&amp;access_key=key-1mbxwsgqzk0mbdzi98gm&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;      &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=3728733&amp;access_key=key-1mbxwsgqzk0mbdzi98gm&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_436481075581131_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:100%"&gt;&lt;a href="http://www.scribd.com/doc/3728733/Post-Gis"&gt;Post Gis&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1672640110985640692?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1672640110985640692/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1672640110985640692' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1672640110985640692'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1672640110985640692'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/09/postgis.html' title='Postgis la extension espacial de postgres'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6267374182118700598</id><published>2008-09-24T23:32:00.006-05:00</published><updated>2008-09-24T23:46:42.943-05:00</updated><title type='text'>Validar login de usuario de base de datos Postgres</title><content type='html'>Tratando validar el ingreso a mi aplicación mediante un script sql en postgre, publico lo siguiente&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;&lt;br /&gt;CREATE OR REPLACE FUNCTION sp_validloginpostgres&lt;br /&gt;(&lt;br /&gt;    username character varying, &lt;br /&gt;    userpass character varying&lt;br /&gt;)&lt;br /&gt;  RETURNS refcursor AS&lt;br /&gt;$BODY$&lt;br /&gt;/****************&lt;br /&gt; * Descripcion  : Obtiene un registro de la tabla pg_shadow, permitiendo validar la existencia de&lt;br /&gt; *                inicio de sesion valido de la base de datos de postgres.&lt;br /&gt; * Fecha_Crea   : -*-&lt;br /&gt; * Fecha_Mod    : -*-&lt;br /&gt; * Parametros   : userName : nombre de usuario de la base de datos de postgres.&lt;br /&gt; *                userPass : contraseña de usuario de la base de datos de postgres.  &lt;br /&gt; * Autor        : Hugo P. Flores J.&lt;br /&gt; * Version      : Desarrollo.&lt;br /&gt; ****************/&lt;br /&gt;DECLARE &lt;br /&gt; p_userName ALIAS FOR $1;&lt;br /&gt; p_userPass ALIAS FOR $2;&lt;br /&gt; cursorLogin refcursor;&lt;br /&gt;BEGIN &lt;br /&gt; OPEN cursorLogin FOR SELECT usename, &lt;br /&gt;                             passwd &lt;br /&gt;                        FROM pg_shadow &lt;br /&gt;                       WHERE( usename = p_userName AND &lt;br /&gt;                              passwd = ( 'md5' || md5( p_userPass || p_userName ) )&lt;br /&gt;                            );&lt;br /&gt; RETURN cursorLogin;                          &lt;br /&gt;END;$BODY$&lt;br /&gt;  LANGUAGE 'plpgsql' VOLATILE&lt;br /&gt;  COST 100;&lt;br /&gt;ALTER FUNCTION sp_validloginpostgres(character varying, character varying) OWNER TO postgres;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6267374182118700598?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6267374182118700598/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6267374182118700598' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6267374182118700598'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6267374182118700598'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/09/script-para-validar-un-login-de-usuario.html' title='Validar login de usuario de base de datos Postgres'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4884618569961015925</id><published>2008-09-24T23:27:00.002-05:00</published><updated>2008-09-24T23:31:48.422-05:00</updated><title type='text'>Como crear una Base de Datos en Postgres</title><content type='html'>Publico este manual para aquellos que les interese un poco sobre este motor de base de datos.&lt;br /&gt;&lt;br /&gt;&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_943202469353249" name="doc_943202469353249" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=4620853&amp;access_key=key-1tz7edw8tgwrmp6j2rr&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;      &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=4620853&amp;access_key=key-1tz7edw8tgwrmp6j2rr&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_943202469353249_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:100%"&gt;&lt;a href="http://www.scribd.com/doc/4620853/Crear-Base-de-Datos-En-Postgress-8-2"&gt;Crear Base de Datos En Postgress 8 2&lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-4884618569961015925?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4884618569961015925/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4884618569961015925' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4884618569961015925'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4884618569961015925'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/09/como-crear-una-base-de-datos-en.html' title='Como crear una Base de Datos en Postgres'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-5961006449765666841</id><published>2008-09-15T10:05:00.000-05:00</published><updated>2008-09-15T10:06:03.970-05:00</updated><title type='text'>Servidor J2EE en Ubuntu</title><content type='html'>&lt;object codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" id="doc_680007147777860" name="doc_680007147777860" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" align="middle" height="500" width="100%"&gt;  &lt;param name="movie" value="http://documents.scribd.com/ScribdViewer.swf?document_id=2290277&amp;access_key=key-1snzj7ibkd1s13qeij3w&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode="&gt;   &lt;param name="quality" value="high"&gt;   &lt;param name="play" value="true"&gt;  &lt;param name="loop" value="true"&gt;   &lt;param name="scale" value="showall"&gt;  &lt;param name="wmode" value="opaque"&gt;   &lt;param name="devicefont" value="false"&gt;  &lt;param name="bgcolor" value="#ffffff"&gt;   &lt;param name="menu" value="true"&gt;  &lt;param name="allowFullScreen" value="true"&gt;   &lt;param name="allowScriptAccess" value="always"&gt;   &lt;param name="salign" value=""&gt;      &lt;embed src="http://documents.scribd.com/ScribdViewer.swf?document_id=2290277&amp;access_key=key-1snzj7ibkd1s13qeij3w&amp;page=&amp;version=1&amp;auto_size=true&amp;viewMode=" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" play="true" loop="true" scale="showall" wmode="opaque" devicefont="false" bgcolor="#ffffff" name="doc_680007147777860_object" menu="true" allowfullscreen="true" allowscriptaccess="always" salign="" type="application/x-shockwave-flash" align="middle"  height="500" width="100%"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div style="font-size:10px;text-align:center;width:100%"&gt;&lt;a href="http://www.scribd.com/doc/2290277/Instalacion-de-un-Servidor-de-Base-de-Datos-PostgreSQL-Apache-JBOSS-para-trabajo-en-un-entorno-de-desarrollo-J2EE-con-Netbeans-y-UML-"&gt;Instalación de un Servidor de Base de Datos PostgreSQL, Apache + JBOSS para trabajo en un entorno de desarrollo J2EE con Netbeans y UML &lt;/a&gt; - &lt;a href="http://www.scribd.com/upload"&gt;Upload a Document to Scribd&lt;/a&gt;&lt;/div&gt;&lt;div style="display:none"&gt; Read this document on Scribd: &lt;a href="http://www.scribd.com/doc/2290277/Instalacion-de-un-Servidor-de-Base-de-Datos-PostgreSQL-Apache-JBOSS-para-trabajo-en-un-entorno-de-desarrollo-J2EE-con-Netbeans-y-UML-"&gt;Instalación de un Servidor de Base de Datos PostgreSQL, Apache + JBOSS para trabajo en un entorno de desarrollo J2EE con Netbeans y UML &lt;/a&gt; &lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-5961006449765666841?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/5961006449765666841/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=5961006449765666841' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5961006449765666841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/5961006449765666841'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/09/servidor-j2ee-en-ubuntu.html' title='Servidor J2EE en Ubuntu'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3950530477163277130</id><published>2008-07-16T06:54:00.000-05:00</published><updated>2008-07-16T06:55:44.739-05:00</updated><title type='text'>Un poco de POO en PHP</title><content type='html'>&lt;div style="width:425px;text-align:left" id="__ss_423889"&gt;&lt;object style="margin:0px" height="355" width="425"&gt;&lt;param name="movie" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=20080522phptek-1211544400120012-8"/&gt;&lt;param name="allowFullScreen" value="true"/&gt;&lt;param name="allowScriptAccess" value="always"/&gt;&lt;embed src="http://static.slideshare.net/swf/ssplayer2.swf?doc=20080522phptek-1211544400120012-8" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="355"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div style="font-size:11px;font-family:tahoma,arial;height:26px;padding-top:2px;"&gt;&lt;a href="http://www.slideshare.net/?src=embed"&gt;&lt;img src="http://static.slideshare.net/swf/logo_embd.png" style="border:0px none;margin-bottom:-5px" alt="SlideShare"/&gt;&lt;/a&gt; | &lt;a href="http://www.slideshare.net/sebastian_bergmann/understanding-the-php-object-model" title="View this slideshow on SlideShare"&gt;View&lt;/a&gt; | &lt;a href="http://www.slideshare.net/upload"&gt;Upload your own&lt;/a&gt;&lt;/div&gt;&lt;/div&gt;&lt;img style="visibility:hidden;width:0px;height:0px;" border=0 width=0 height=0 src="http://counters.gigya.com/wildfire/CIMP/bT*xJmx*PTEyMTYyMDk*MDgxNzEmcHQ9MTIxNjIwOTUwNTE4NyZwPTEwMTkxJmQ9Jm49Jmc9Mg==.jpg" /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3950530477163277130?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3950530477163277130/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3950530477163277130' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3950530477163277130'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3950530477163277130'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/07/un-poco-de-poo-en-php.html' title='Un poco de POO en PHP'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8037789340858046946</id><published>2008-04-02T08:59:00.003-05:00</published><updated>2008-04-02T09:08:24.252-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Edicion 11 esta listo Full Circle</title><content type='html'>Una de las revistas interesantes que teratan temas sobre desarrollo, miscelanias, etc en Ubuntu.&lt;br /&gt;&lt;p&gt;Este mes:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;Linux Mint versus Ubuntu.&lt;/li&gt;&lt;li&gt;How-To: TrueCrypt en Ubuntu, iPod Classic &amp;amp; Amarok, Introduccion a LaTeX y mas!&lt;/li&gt;&lt;li&gt;Revision de Lenovo 3000 C200 laptop ejecutando Ubuntu.&lt;/li&gt;&lt;li&gt;Cartas, Preguntas y respuestas, Mi Escritorio, Top 5 y mas!&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://fullcirclemagazine.org/wp-content/uploads/2008/03/issue11_en-cover.png"&gt;&lt;img style="cursor: pointer; width: 320px;" src="http://fullcirclemagazine.org/wp-content/uploads/2008/03/issue11_en-cover.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://fullcirclemagazine.org/downloads/"&gt;Descargar versiones anteriores&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8037789340858046946?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8037789340858046946/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8037789340858046946' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8037789340858046946'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8037789340858046946'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/04/edicion-11-esta-listo-full-circle.html' title='Edicion 11 esta listo Full Circle'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4352333992091410506</id><published>2008-03-31T11:13:00.003-05:00</published><updated>2008-03-31T11:22:02.308-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='google'/><title type='text'>Visita a la Sede de Google</title><content type='html'>Navegando por internet encontre este interesante informe de un canal argentino donde se muestra como es que viven la gente de google.&lt;br /&gt;&lt;br /&gt;Primer informe:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://blogs.tn.com.ar/internet/archives/2007/12/planeta_google_primera_parte_en_169.html"&gt;Planeta Google - Primera Parte&lt;/a&gt;&lt;/li&gt;&lt;li&gt;&lt;a href="http://blogs.tn.com.ar/internet/archives/2007/12/planeta_google_segunda_parte.html"&gt;Planeta Google - Segunda Parte&lt;/a&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/5976545851119434553-4352333992091410506?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4352333992091410506/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4352333992091410506' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4352333992091410506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4352333992091410506'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/03/visita-la-sede-de-google.html' title='Visita a la Sede de Google'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-7577819164406986114</id><published>2008-03-30T15:46:00.006-05:00</published><updated>2008-03-30T16:03:48.478-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Insertar un objeto java.sql.Date en SQL Server 2000</title><content type='html'>En ocasiones queremos saber como insertar un tipo de dato Date del paquete java.sql, normalmente para hacerlo realizamos una conversión CASTING en la sentencia SQL que se le manda a la base de datos, p.e&lt;br /&gt;&lt;br /&gt;INSERT INTO ... VALUES(..., &lt;span name="intelliTxt" id="intelliTxt"&gt;&lt;span id="_ctl0_ArticleText"&gt;convert(varchar,DateColumn,103)...)&lt;br /&gt;&lt;br /&gt;En el caso de que no deseamos realizar esa conversion, tenemos el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;USE pubs&lt;br /&gt;GO&lt;br /&gt;CREATE TABLE test(test_varchar VARCHAR(255), test_date DATETIME)&lt;br /&gt;GO&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;/*&lt;br /&gt;* Main.java&lt;br /&gt;*/&lt;br /&gt;&lt;br /&gt;package testinsertdate;&lt;br /&gt;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;import java.sql.Date;&lt;br /&gt;import java.text.ParseException;&lt;br /&gt;import java.text.SimpleDateFormat;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author hugo&lt;br /&gt;*/&lt;br /&gt;public class Main {&lt;br /&gt;  &lt;br /&gt;   /** Creates a new instance of Main */&lt;br /&gt;   public Main() {&lt;br /&gt;   }&lt;br /&gt;  &lt;br /&gt;   /**&lt;br /&gt;    * @param args the command line arguments&lt;br /&gt;    */&lt;br /&gt;   public static void main(String[] args) throws ParseException {&lt;br /&gt;       int result = 0;&lt;br /&gt;       Connection con = null;&lt;br /&gt;       PreparedStatement ps = null;&lt;br /&gt;      &lt;br /&gt;       SimpleDateFormat fecha = new SimpleDateFormat( "dd/MM/yyyy" );&lt;br /&gt;      &lt;br /&gt;       try{&lt;br /&gt;           ConnectionFactory cf = new ConnectionFactory( ConnectionFactory.TYPE_MSSQL,&lt;br /&gt;                                                         "localhost", "pubs"  );&lt;br /&gt;           con = cf.getConnection( "sa", "sa" );           &lt;br /&gt;           ps = con.prepareStatement( "INSERT INTO test VALUES( ?, ? )" );&lt;br /&gt;           ps.setString( 1, "test2" );&lt;br /&gt;           ps.setDate( 2, new Date( fecha.parse( "15/02/1982" ).getTime() ) );&lt;br /&gt;          &lt;br /&gt;           ps.executeUpdate();&lt;br /&gt;           System.out.println( "Conversion sin excepcion!" );&lt;br /&gt;       }catch( SQLException sqle ){&lt;br /&gt;           sqle.printStackTrace();&lt;br /&gt;       }catch( ParseException pe){&lt;br /&gt;           pe.printStackTrace();&lt;br /&gt;       }finally{&lt;br /&gt;           if( ps != null  ) ConnectionFactory.close(ps);&lt;br /&gt;           if( con != null  ) ConnectionFactory.close(con);&lt;br /&gt;       }       &lt;br /&gt;   }   &lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;span style="font-weight: bold;"&gt;Enlaces de interes:&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.sqljunkies.com/HowTo/6676BEAE-1967-402D-9578-9A1C7FD826E5.scuk"&gt;&lt;span id="intelliTxt"&gt;&lt;span id="_ctl0_ContentTitle" class="PageTitle"&gt;Date and Time Manipulation in SQL Server 2000&lt;/span&gt;&lt;/span&gt;&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span name="intelliTxt" id="intelliTxt"&gt;&lt;span id="_ctl0_ArticleText"&gt;La clase ConnectionFactory ya lo vimos en el el Post de Conexión con SQL Server 2005&lt;br /&gt;Saludos a todos ;)&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-7577819164406986114?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/7577819164406986114/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=7577819164406986114' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7577819164406986114'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7577819164406986114'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/03/insertar-un-objeto-javasqldate-en-sql.html' title='Insertar un objeto java.sql.Date en SQL Server 2000'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-7546383084893512845</id><published>2008-03-30T11:59:00.001-05:00</published><updated>2008-03-30T12:00:48.343-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>VT de PHP y MySQL</title><content type='html'>Esta es una de las primeros videos tutoriales que iré introduciendo en este blog sobre php y otras tecnologías :)&lt;br /&gt;&lt;br /&gt;&lt;script src="http://flash.revver.com/player/1.0/player.js?mediaId:602594;width:480;height:392;" type="text/javascript"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-7546383084893512845?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/7546383084893512845/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=7546383084893512845' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7546383084893512845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/7546383084893512845'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/03/vt-de-php-y-mysql.html' title='VT de PHP y MySQL'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8861906442457746944</id><published>2008-03-30T00:30:00.033-05:00</published><updated>2008-03-31T08:17:43.663-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>FileUpload Subida de ficheros al servidor</title><content type='html'>&lt;span style=";font-family:lucida grande;font-size:100%;"  &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;Descargar ficheros es sumamente sencillo desde el servidor, el problema surge cuando queremos subirlos, los JSP y Servlets de Java no tienen mecanismos para poder manejar la subida de ficheros desde formularios, siendo un problema tratar de extraer el contenido desde HTTP request. Una mejor opcion que nos puede ayudar es utilizar librerias de terceros.&lt;br /&gt;&lt;br /&gt;Existe una robusta libreria open-source diseñada para este propósito del paquete &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:lucida grande;font-size:100%;"  &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:trebuchet ms;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:lucida grande;"&gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;a href="http://commons.apache.org/fileupload/"&gt;&lt;span style="font-size:100%;"&gt;Apache Jakarta Commons FileUpload.&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;Requerimientos&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style=";font-family:lucida grande;font-size:100%;"  &gt;&lt;span style="font-family:courier new;"&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-family:times new roman;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;D&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;escargar la libreria &lt;span style="color: rgb(0, 0, 153);"&gt;Jakarta &lt;/span&gt;&lt;span class="mainText"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Commons FileUpload&lt;/span&gt; 1.2.1: &lt;a href="http://commons.apache.org/downloads/download_fileupload.cgi"&gt;commons-fileupload-1.2.1.jar&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:trebuchet ms;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span class="mainText"&gt;Ademas de esta libreria necesitaremos otra de complemento interno de Commons FileUpload llamada &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 128);font-family:Arial,Helvetica,Times;font-size:100%;"  &gt;Jakarta Commons IO librarie: &lt;a href="http://commons.apache.org/io/"&gt;commons-io-1.4.jar&lt;/a&gt;. &lt;/span&gt;&lt;span style="font-size:100%;"&gt;En este articulo se asume que usted esta utilizando estas librerias.&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Software de prueba&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El código ha sido probado en un entorno de Java EE5 con Tomcat 5.5.17.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalando Apache Jakarta Commons FileUpload y IO en el contenedor como Tomcat&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: normal;font-family:trebuchet ms;font-size:100%;"  &gt;&lt;br /&gt;El proximo paso es copiar los archivos jar en el directorio $CATALINA_HOME/webapps/NameProyect/WEB-INF/lib de su aplicación.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;Diseñar el formulario&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Para subir los ficheros al servidor debemos de crear un formulario un poco especial de tipo POST y MultiPart y que la peticion la dirija a un Servlet: subir.jsp&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;form method="POST" enctype="multipart/form-data"&lt;br /&gt;action="&amp;lt;%= request.getContextPath()%&amp;gt;/UploadFile"&amp;gt;&lt;br /&gt;Por favor, seleccione el trayecto del fichero a cargar&lt;br /&gt;&amp;lt;br&amp;gt;&amp;lt;input type="file" name="fichero"&amp;gt;&lt;br /&gt;&amp;lt;input type="submit"&amp;gt;&lt;br /&gt;&amp;lt;/form&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;getContextPatch() obtiene la ruta de su aplicación es este caso "/NameProyect"&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnVVd4mlDqE/R-81zbOp5PI/AAAAAAAAAGI/nssMDK3S34U/s1600-h/frmSubir.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_bnVVd4mlDqE/R-81zbOp5PI/AAAAAAAAAGI/nssMDK3S34U/s320/frmSubir.PNG" alt="" id="BLOGGER_PHOTO_ID_5183420853725553906" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Figura 1&lt;/span&gt;: formulario JSP para subir un archivo al servidor&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creando nuestro Servlet&lt;/span&gt;&lt;br /&gt;Ahora hay que crear el Servlet bajo el nombre de UploadFile.java donde se mostará la forma básica de subir ficheros y como configurar algunos aspectos de la subida para un mejor control, como p.e el limitar el tamaño del fichero:&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;package servlets;&lt;br /&gt;&lt;br /&gt;import java.io.IOException;&lt;br /&gt;import java.io.PrintWriter;&lt;br /&gt;import java.io.File;&lt;br /&gt;&lt;br /&gt;import java.util.List;&lt;br /&gt;import java.util.Iterator;&lt;br /&gt;&lt;br /&gt;import javax.servlet.ServletException;&lt;br /&gt;import javax.servlet.http.HttpServlet;&lt;br /&gt;import javax.servlet.http.HttpServletRequest;&lt;br /&gt;import javax.servlet.http.HttpServletResponse;&lt;br /&gt;&lt;br /&gt;import org.apache.commons.fileupload.FileItem;&lt;br /&gt;import org.apache.commons.fileupload.FileItemFactory;&lt;br /&gt;import org.apache.commons.fileupload.FileUploadException;&lt;br /&gt;import org.apache.commons.fileupload.disk.DiskFileItemFactory;&lt;br /&gt;import org.apache.commons.fileupload.servlet.ServletFileUpload;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author hugo&lt;br /&gt;* @version&lt;br /&gt;*/&lt;br /&gt;public class UploadFile extends HttpServlet {&lt;br /&gt;&lt;br /&gt;private String dirUploadFiles; //directorio donde se guardara los archivos&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;protected void processRequest(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;throws ServletException, IOException {&lt;br /&gt;response.setContentType("text/html;charset=UTF-8");&lt;br /&gt;PrintWriter out = response.getWriter();&lt;br /&gt;&lt;br /&gt;// 1. obtengo el directorio donde guardare los archivos, desde un parametro de&lt;br /&gt;// contexto en el archivo web.xml&lt;br /&gt;dirUploadFiles = getServletContext().getRealPath( getServletContext().getInitParameter( "dirUploadFiles" ) );&lt;br /&gt;&lt;br /&gt;// 2. Si la peticion es de tipo multi-part,&lt;br /&gt;// static boolean isMultipartContent() devuelve true/false&lt;br /&gt;if( ServletFileUpload.isMultipartContent( request ) ){&lt;br /&gt;&lt;br /&gt; // 3. crear el arhivo factory&lt;br /&gt; // DiskFileItemfactory es una implementacion de FileItemfactory&lt;br /&gt; // esta implementacion crea una instacia de FileItem que guarda su&lt;br /&gt; // contenido ya sea en la memoria, para elementos pequeños,&lt;br /&gt; // o en un archivo temporal en el disco, para los&lt;br /&gt; // elementos de mayor tamaño&lt;br /&gt; FileItemFactory factory = new DiskFileItemFactory();&lt;br /&gt;&lt;br /&gt;&lt;br /&gt; // 4. crear el servlet upload&lt;br /&gt; // es un API de alto nivel para procesar subida de archivos&lt;br /&gt; // Por defecto la instancia de ServletFileUpload tiene los siguientes valores:&lt;br /&gt; // * Size threshold = 10,240 bytes. Si el tamaño del archivo está por debajo del umbral,&lt;br /&gt; //   se almacenará en memoria. En otro caso se almacenara en un archivo temporal en disco.&lt;br /&gt; // * Tamaño Maximo del cuerpo de la request HTTP = -1.&lt;br /&gt; //   El servidor aceptará cuerpos de request de cualquier tamaño.&lt;br /&gt; // * Repository = Directorio que el sistema usa para archivos temporales.&lt;br /&gt; //   Se puede recuperar llamando a System.getProperty("java.io.tmpdir").&lt;br /&gt; ServletFileUpload upload = new ServletFileUpload( factory );&lt;br /&gt; /* 5. declaro listUploadFiles&lt;br /&gt;  * Contendrá una lista de items de archivo que son instancias de FileItem&lt;br /&gt;* Un item de archivo puede contener un archivo para upload o un&lt;br /&gt;  * campo del formulario con la estructura simple nombre-valor&lt;br /&gt;  * (ejemplo: &amp;lt;input name="text_field" type="text" /&amp;gt;)&lt;br /&gt;  *&lt;br /&gt;  * Podemos cambiar las opciones mediante setSizeThreshold() y setRespository()&lt;br /&gt;    de la clase DiskFileItemFactory y el&lt;br /&gt;    método setSizeMax() de la clase ServletFileUpload, por ejemplo:&lt;br /&gt;&lt;br /&gt;         DiskFileItemFactory diskFileItemFactory = new DiskFileItemFactory();&lt;br /&gt;         diskFileItemFactory.setSizeThreshold(40960); // bytes&lt;br /&gt;&lt;br /&gt;         File repositoryPath = new File("/temp");&lt;br /&gt;         diskFileItemFactory.setRepository(repositoryPath);&lt;br /&gt;&lt;br /&gt;         ServletFileUpload servletFileUpload = new ServletFileUpload(diskFileItemFactory);&lt;br /&gt;         servletFileUpload.setSizeMax(81920); // bytes&lt;br /&gt;&lt;br /&gt;  *&lt;br /&gt;  */&lt;br /&gt; // limito a 300 Kb el humbral del tamaño del archivo a subir&lt;br /&gt; // Long.parseLong( getServletContext().getInitParameter( "maxFileSize" ) )&lt;br /&gt; upload.setSizeMax( new Long( getServletContext().getInitParameter( "maxFileSize" ) ).longValue() ); // 1024 x 300 = 307200 bytes = 300 Kb&lt;br /&gt;&lt;br /&gt; List listUploadFiles = null;&lt;br /&gt; FileItem item = null;&lt;br /&gt;&lt;br /&gt; try{&lt;br /&gt;     // 6. adquiere la lista de FileItem asociados a la peticion&lt;br /&gt;     listUploadFiles = upload.parseRequest( request );&lt;br /&gt;&lt;br /&gt;     /* 7. Iterar para obtener todos los FileItem&lt;br /&gt;      * vamos a trabajar con generalidad&lt;br /&gt;      * programaremos como si quisieramos leer todos los&lt;br /&gt;      * campos sean 'simples' o 'file'. Por ello iteramos&lt;br /&gt;      * sobre todos los FileItem que recibimos:&lt;br /&gt;      * Los parámetros simples los diferenciaremos de los parámetros 'file'&lt;br /&gt;      * por medio del método isFormField()&lt;br /&gt;      */&lt;br /&gt;     Iterator it = listUploadFiles.iterator();&lt;br /&gt;     while( it.hasNext() ){&lt;br /&gt;         item = ( FileItem ) it.next();&lt;br /&gt;         // 8. evaluamos si el campo es de tipo file, para subir al servidor&lt;br /&gt;         if( !item.isFormField() ){&lt;br /&gt;             //9. verificamos si el archivo es &amp;gt; 0&lt;br /&gt;             if( item.getSize() &amp;gt; 0 ){&lt;br /&gt;                 // 10. obtener el nombre del archivo&lt;br /&gt;                 String nombre   = item.getName();                 &lt;br /&gt;                 // 11. obtener el tipo de archivo&lt;br /&gt;                 // e. .jpg = "image/jpeg", .txt = "text/plain"&lt;br /&gt;                 String tipo     = item.getContentType();&lt;br /&gt;                 // 12. obtener el tamaño del archivo&lt;br /&gt;                 long tamanio    = item.getSize();&lt;br /&gt;                 // 13. obtener la extension&lt;br /&gt;                 String extension = nombre.substring( nombre.lastIndexOf( "." ) );&lt;br /&gt;      &lt;br /&gt;                 out.println( "Nombre: " + nombre + "&amp;lt;br&amp;gt;");&lt;br /&gt;                 out.println( "Tipo: " + tipo + "&amp;lt;br&amp;gt;");&lt;br /&gt;                 out.println( "Extension: " + extension + "&amp;lt;br&amp;gt;");&lt;br /&gt;                 // 14. determinar si el caracter slash es de linux, o windows&lt;br /&gt;                 //String slashType = ( nombre.lastIndexOf( "\\" ) &amp;gt; 0 ) ?  "\\" : "/"; // Windows o Linux&lt;br /&gt;                 // 15. obtener la ultima posicion del slash en el nombre del archivo&lt;br /&gt;                 //int startIndex = nombre.lastIndexOf( slashType );&lt;br /&gt;                 // 16. obtener el nombre del archivo ignorando la ruta completa&lt;br /&gt;                 //String myArchivo = nombre.substring( startIndex + 1, nombre.length() );&lt;br /&gt;                 // 17. Guardo archivo del cliente en servidor, con un nombre 'fijo' y la&lt;br /&gt;// extensión que me manda el cliente,&lt;br /&gt;                 // Create new File object&lt;br /&gt;                 File archivo = new File( dirUploadFiles, nombre );&lt;br /&gt;      &lt;br /&gt;                 // 18. Write the uploaded file to the system&lt;br /&gt;                 item.write( archivo );&lt;br /&gt;                 if ( archivo.exists() ){&lt;br /&gt;out.println( "GUARDADO " + archivo.getAbsolutePath() + "&amp;lt;/p&amp;gt;");&lt;br /&gt;                 }else{&lt;br /&gt;                     // nunca se llega a ejecutar&lt;br /&gt;                     out.println( "FALLO AL GUARDAR. NO EXISTE " + archivo.getAbsolutePath() + "&amp;lt;/p&amp;gt;");&lt;br /&gt;                 }&lt;br /&gt;&lt;br /&gt;             }&lt;br /&gt;         }&lt;br /&gt;     }&lt;br /&gt;&lt;br /&gt; }catch( FileUploadException e ){&lt;br /&gt;     e.printStackTrace(); &lt;br /&gt; }catch (Exception e){&lt;br /&gt;     // poner respuesta = false; si existe alguna problema&lt;br /&gt;     e.printStackTrace();&lt;br /&gt; } &lt;br /&gt;}&lt;br /&gt;out.println( "Fin de la operacion! ;)");&lt;br /&gt;out.close();&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void doGet(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;throws ServletException, IOException {&lt;br /&gt;processRequest(request, response);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;protected void doPost(HttpServletRequest request, HttpServletResponse response)&lt;br /&gt;throws ServletException, IOException {&lt;br /&gt;processRequest(request, response);&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;Agreue la siguiente configuración al archivo web.xml:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;&lt;code&gt;&amp;lt;servlet&amp;gt;&lt;br /&gt;     &amp;lt;servlet-name&amp;gt;UploadFile&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;     &amp;lt;servlet-class&amp;gt;servlets.UploadFile&amp;lt;/servlet-class&amp;gt;&lt;br /&gt; &amp;lt;/servlet&amp;gt;&lt;br /&gt; &amp;lt;servlet-mapping&amp;gt;&lt;br /&gt;     &amp;lt;servlet-name&amp;gt;UploadFile&amp;lt;/servlet-name&amp;gt;&lt;br /&gt;     &amp;lt;url-pattern&amp;gt;/UploadFile&amp;lt;/url-pattern&amp;gt;&lt;br /&gt; &amp;lt;/servlet-mapping&amp;gt;&lt;br /&gt; &amp;lt;context-param&amp;gt;&lt;br /&gt;     &amp;lt;param-name&amp;gt;dirUploadFiles&amp;lt;/param-name&amp;gt;&lt;br /&gt;     &amp;lt;param-value&amp;gt;/public/images/avatar&amp;lt;/param-value&amp;gt;&lt;br /&gt; &amp;lt;/context-param&amp;gt;&lt;br /&gt; &amp;lt;context-param&amp;gt;&lt;br /&gt;     &amp;lt;param-name&amp;gt;maxFileSize&amp;lt;/param-name&amp;gt;&lt;br /&gt;     &amp;lt;param-value&amp;gt;307200&amp;lt;/param-value&amp;gt;        &lt;br /&gt; &amp;lt;/context-param&amp;gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Testeando:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R-8_O7Op5QI/AAAAAAAAAGQ/DeASkcV1Crs/s1600-h/FileUpload.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R-8_O7Op5QI/AAAAAAAAAGQ/DeASkcV1Crs/s320/FileUpload.PNG" alt="" id="BLOGGER_PHOTO_ID_5183431221776606466" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Figura 2&lt;/span&gt;: Procesamiento de la subida de un fichero al servidor&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notas finales:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Si el tamaño del fichero subido excede los 300 Kb, parametro que hemos configurado dentro de web.xml con el nombre de maxFileSize, no se mostrará ningun mensaje en pantalla luego de que el Servlet proceso la petición de subir el fichero, esto es debido a que detro del bloque try/catch del Servlet UploadFile.java se lanza una excepción  del tipo &lt;span style="font-size:100%;"&gt;FileUploadBase.&lt;span style="font-weight: bold;"&gt;FileSizeLimitExceededException&lt;/span&gt; por el método &lt;span style="font-weight: bold;"&gt;parseRequest()&lt;/span&gt;, para poder mejorar este comportamiento deberiamos crear un método por ejemplo processFormFiled() que procese la subida de un fichero desde un formulario y que devuelva true/flase como respuesta.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;Se puede mejorar la presentación del procesamiento de la subida del fichero mediante un progress bar utilizando Ajax.&lt;br /&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:trebuchet ms;"&gt;&lt;a href="http://www.box.net/shared/398s0z54oc"&gt;&lt;img style="cursor: pointer;" src="http://1.bp.blogspot.com/_bnVVd4mlDqE/R-9EarOp5RI/AAAAAAAAAGY/fIqvHb854_o/s320/page_white_code_red.png" alt="" id="BLOGGER_PHOTO_ID_5183436921198208274" border="0" /&gt;Download source code&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8861906442457746944?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8861906442457746944/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8861906442457746944' title='23 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8861906442457746944'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8861906442457746944'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/03/fileupload-subida-de-ficheros-al.html' title='FileUpload Subida de ficheros al servidor'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bnVVd4mlDqE/R-81zbOp5PI/AAAAAAAAAGI/nssMDK3S34U/s72-c/frmSubir.PNG' height='72' width='72'/><thr:total>23</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-694898746581194171</id><published>2008-02-28T08:29:00.006-05:00</published><updated>2008-03-30T00:16:32.905-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Accediendo a SQLServer2005 Express con JDBC - Parte 2 Configuraciones en Netbeans y creación de una clase ConnectionFactory para acceso a base de dato</title><content type='html'>En esta segunda entrega veremos en primer lugar la implementación de una clase que nos permitirá manejar las operaciones de conexiíon con SQL Server 2005 ( y con otras más):&lt;br /&gt;&lt;br /&gt;&lt;pre id="codigo"&gt;&lt;code&gt;package sqlserver2005;&lt;br /&gt;import java.sql.DriverManager;&lt;br /&gt;import java.sql.Connection;&lt;br /&gt;import java.sql.Statement;&lt;br /&gt;import java.sql.PreparedStatement;&lt;br /&gt;import java.sql.CallableStatement;&lt;br /&gt;import java.sql.ResultSet;&lt;br /&gt;import java.sql.SQLException;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public class ConnectionFactory {&lt;br /&gt;    public final static int TYPE_MSSQL = 10;&lt;br /&gt;    public final static int TYPE_MYSQL = 20;   &lt;br /&gt;    public final static int TYPE_ORACLE_10G_EX = 30;&lt;br /&gt;    public final static int TYPE_MSSQL2005 = 40;&lt;br /&gt;    private String driver;&lt;br /&gt;    private String url;&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Constructor que carga el driver jdbc para poder trabajar con la base de datos&lt;br /&gt;     * &lt;br /&gt;     * @param typeDBMS        tipo de base de datos a utilizar&lt;br /&gt;     * @param hostName        IP o nombre del servidor de base de datos&lt;br /&gt;     * @param databaseName    nombre de la base de datos con la que deseamos trabajar&lt;br /&gt;     */&lt;br /&gt;    public ConnectionFactory( int typeDBMS, String hostName, String databaseName ) {        &lt;br /&gt;        switch( typeDBMS ){&lt;br /&gt;            case 10:{ // Para SQL Server 2000&lt;br /&gt;                driver = &amp;quot;com.microsoft.jdbc.sqlserver.SQLServerDriver&amp;quot;;&lt;br /&gt;                url = &amp;quot;jdbc:microsoft:sqlserver://&amp;quot; + hostName + &amp;quot;:1433;DatabaseName=&amp;quot; + &lt;br /&gt;                      databaseName;&lt;br /&gt;                break;&lt;br /&gt;            }&lt;br /&gt;            case 20:{ // Para MySQL 5.0&lt;br /&gt;                driver = &amp;quot;com.mysql.jdbc.Driver&amp;quot;;&lt;br /&gt;                url = &amp;quot;jdbc:mysql://&amp;quot; + hostName + &amp;quot;:3306/&amp;quot; +&lt;br /&gt;                      databaseName;&lt;br /&gt;                break;&lt;br /&gt;            }&lt;br /&gt;            case 30:{ // Para en Oracle 10g Express Edition&lt;br /&gt;                if( databaseName.equals( &amp;quot;&amp;quot; ) )&lt;br /&gt;                    databaseName = &amp;quot;XE&amp;quot;;&lt;br /&gt;                else&lt;br /&gt;                    databaseName = &amp;quot;XE&amp;quot;;&lt;br /&gt;                driver = &amp;quot;oracle.jdbc.driver.OracleDriver&amp;quot;;&lt;br /&gt;                url = &amp;quot;jdbc:oracle:thin:@//&amp;quot; + hostName + &amp;quot;:1521/&amp;quot; + databaseName;&lt;br /&gt;                break;&lt;br /&gt;            }&lt;br /&gt;            case 40:{ // Para SQL Server 2005 Express Edition&lt;br /&gt;                driver = &amp;quot;com.microsoft.sqlserver.jdbc.SQLServerDriver&amp;quot;;&lt;br /&gt;                url = &amp;quot;jdbc:sqlserver://&amp;quot; + hostName + &amp;quot;:1433;DatabaseName=&amp;quot; + &lt;br /&gt;                      databaseName;&lt;br /&gt;                break;&lt;br /&gt;            }&lt;br /&gt;        }  &lt;br /&gt;        try{&lt;br /&gt;            // cargar la clase Driver&lt;br /&gt;            Class.forName( driver );&lt;br /&gt;        }catch( ClassNotFoundException cnfe ){&lt;br /&gt;            System.out.println( &amp;quot;Error: exception loading driver class&amp;quot; );&lt;br /&gt;        }&lt;br /&gt;    }&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Devuelve un objeto de tipo Connection v&amp;aacute;lido&lt;br /&gt;     *&lt;br /&gt;     * @param user      usuario de la base de datos&lt;br /&gt;     * @param password  clave del usuario de la base de datos&lt;br /&gt;     * @return Connection&lt;br /&gt;     */&lt;br /&gt;    public Connection getConnection( String user, String password ) throws SQLException&lt;br /&gt;    {        &lt;br /&gt;        return DriverManager.getConnection( url, user, password );        &lt;br /&gt;    }// fin del metodo getConnection&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Metodo para liberar recursos de memoria, cerrando la conextion con la base&lt;br /&gt;     * de datos&lt;br /&gt;     *&lt;br /&gt;     * @param con   parametro de tipo Connection&lt;br /&gt;     */&lt;br /&gt;    public static void close( Connection con ){&lt;br /&gt;        try{&lt;br /&gt;            con.close();&lt;br /&gt;        }catch( SQLException sqle ){            &lt;br /&gt;            showMessageError( sqle );&lt;br /&gt;        }&lt;br /&gt;    }// fin del m&amp;eacute;todo closeConnection&lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Cierra un objeto ResultSet (Registros)&lt;br /&gt;     * @param con   parametro de tipo ResultSet&lt;br /&gt;     */    &lt;br /&gt;    public static void close( ResultSet rs ){&lt;br /&gt;        try{&lt;br /&gt;            rs.close();&lt;br /&gt;        }catch( SQLException sqle ){            &lt;br /&gt;            showMessageError( sqle );&lt;br /&gt;        }&lt;br /&gt;    }// fin del m&amp;eacute;todo closeConnection&lt;br /&gt;    &lt;br /&gt;    &lt;br /&gt;    /**&lt;br /&gt;     * Cierra un objeto Statement (Consulta)&lt;br /&gt;     * @param con   parametro de tipo Statement&lt;br /&gt;     */        &lt;br /&gt;    public static void close( Statement stmt ){        &lt;br /&gt;        try{&lt;br /&gt;            stmt.close();&lt;br /&gt;        }catch( SQLException sqle ){            &lt;br /&gt;            showMessageError( sqle );&lt;br /&gt;        }&lt;br /&gt;    }// fin del m&amp;eacute;todo close&lt;br /&gt;    &lt;br /&gt;     /**&lt;br /&gt;     * Cierra un objeto Statement (Consulta)&lt;br /&gt;     * @param con   parametro de tipo Statement&lt;br /&gt;     */        &lt;br /&gt;    public static void close( PreparedStatement ps ){        &lt;br /&gt;        try{&lt;br /&gt;            ps.close();&lt;br /&gt;        }catch( SQLException sqle ){            &lt;br /&gt;            showMessageError( sqle );&lt;br /&gt;        }&lt;br /&gt;    }// fin del m&amp;eacute;todo close&lt;br /&gt;    &lt;br /&gt;      /**&lt;br /&gt;     * Cierra un objeto Statement (Consulta)&lt;br /&gt;     * @param con   parametro de tipo Statement&lt;br /&gt;     */        &lt;br /&gt;    public static void close( CallableStatement cs ){        &lt;br /&gt;        try{&lt;br /&gt;            cs.close();&lt;br /&gt;        }catch( SQLException sqle ){            &lt;br /&gt;            showMessageError( sqle );&lt;br /&gt;        }&lt;br /&gt;    }// fin del m&amp;eacute;todo close&lt;br /&gt;    &lt;br /&gt;    /** muestra un mensaje de error en consolo, seg&amp;uacute;n sea el caso */&lt;br /&gt;    private static void showMessageError( SQLException sqle ){&lt;br /&gt;        System.out.println( &amp;quot;Error:&amp;quot; + &lt;br /&gt;                            &amp;quot;\nmensaje: &amp;quot; + sqle.getMessage() +&lt;br /&gt;                            &amp;quot;\nSQLState: &amp;quot; + sqle.getSQLState() + &lt;br /&gt;                            &amp;quot;\nVencorCode: &amp;quot; + sqle.getErrorCode() + &amp;quot;\n&amp;quot; );&lt;br /&gt;    }// fin del m&amp;eacute;todo showMessageError    &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;  &lt;/code&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-694898746581194171?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/694898746581194171/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=694898746581194171' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/694898746581194171'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/694898746581194171'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/02/accediendo-sqlserver2005-express-con_28.html' title='Accediendo a SQLServer2005 Express con JDBC - Parte 2 Configuraciones en Netbeans y creación de una clase ConnectionFactory para acceso a base de dato'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8880437486250488055</id><published>2008-02-26T12:34:00.016-05:00</published><updated>2008-02-28T08:52:30.470-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><category scheme='http://www.blogger.com/atom/ns#' term='SQL Server 2005'/><title type='text'>Accediendo a SQLServer2005 Express con JDBC - Parte 1 Configuracion de SQL Server 2005 Express</title><content type='html'>&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;Introduccion&lt;/span&gt;&lt;br /&gt;En este tutorial veremos como conectarnos y mostrar datos de SQL Server 2005 Express con JDBC.&lt;br /&gt;&lt;br /&gt;Todo esta dividido en 4 partes:&lt;ol&gt;&lt;li&gt;Configuracion de SQL Server 2005 Express&lt;/li&gt;&lt;li&gt;Configuraciones en Netbeans y creación de una clase ConnectionFactory para acceso a base de datos.&lt;/li&gt;&lt;li&gt;Operaciones SQL&lt;/li&gt;&lt;li&gt;Posibles problemas&lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 153, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Requerimientos:&lt;/span&gt;&lt;/span&gt;&lt;ol&gt;&lt;li&gt;Microsoft SQL Server JDBC Driver&lt;br /&gt;La última version, visite &lt;a href="http://msdn2.microsoft.com/en-us/data/aa937724.aspx" target="_blank"&gt;Microsoft SQL Server 2005 JDBC Driver&lt;/a&gt;. &lt;/li&gt;&lt;li&gt;NetBeans con JRE (Java Runtime Environment) version 1.5 o superior&lt;br /&gt;Puede encontrar en &lt;a href="http://www.netbeans.org/" target="_blank"&gt;NetBeans.org&lt;/a&gt;. &lt;/li&gt;&lt;/ol&gt;&lt;span style="color: rgb(153, 153, 0); font-weight: bold;"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Configuración paso a paso:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(153, 153, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;SQL Server 2005 Express&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;div style="text-align: justify;"&gt;         Por defecto SQL Server 2005 no permite conexiones remotas y esta deshabilitado ls  cuenta          sa, asi que nosotros tenemos  que hacer los cambios respectivos de forma manual, si usted             trata de conectarse se le mostrará un mensaje de error por ejemplo sea cual sea el nombre          de su servidor:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8RZQzSyvAI/AAAAAAAAAEI/Hk0GV49MKyg/s1600-h/connectionFallida.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8RZQzSyvAI/AAAAAAAAAEI/Hk0GV49MKyg/s320/connectionFallida.png" alt="" id="BLOGGER_PHOTO_ID_5171356417309981698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Otro problema por defecto que puede surgir cuando queremos conectarnos es que las               conexiones TCP/IP están deshabilidatas en SQL Server 2005 Express. Asi que JDBC no se           puede conectar y usted puede recibir la siguiente exception …  &lt;pre&gt;     Network error IOException: Connection refused: connec&lt;/pre&gt;&lt;br /&gt;Ahora vamos a configurar estas dos opciones:           &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;                1.    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Habilitar TCP/IP&lt;/span&gt;&lt;ol style="margin-left: 80px;" type="a"&gt;&lt;li&gt;&lt;span&gt;Click &lt;span class="menucascade"&gt;&lt;span class="uicontrol"&gt;Inicio&lt;/span&gt; &gt; &lt;span class="uicontrol"&gt;Todos los programa&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="menucascade"&gt;&lt;span class="uicontrol"&gt;s&lt;/span&gt; &gt; &lt;span class="uicontrol"&gt;Mic&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="menucascade"&gt;&lt;span class="uicontrol"&gt;rosoft SQL Server 2005&lt;/span&gt; &gt; &lt;span class="uicontrol"&gt;Herramientas de configuracion&lt;/span&gt; &gt; &lt;span class="uicontrol"&gt;SQ&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="menucascade"&gt;&lt;span class="uicontrol"&gt;L Server Configuration Manager&lt;/span&gt;&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;En el panel izquierdo de la ventana &lt;span class="wintitle"&gt;d&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span class="wintitle"&gt;e SQL Server Configuration Manager&lt;/span&gt;, expandir Configuracion de red de &lt;span class="uicontrol"&gt;SQL Server 200&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="uicontrol"&gt;5&lt;/span&gt; y click en Protocolos&lt;span class="uicontrol"&gt; de SQLEXPRESS&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;En el panel derecho de la ventana de &lt;span class="wintitle"&gt;SQ&lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="wintitle"&gt;L Server Configuration Manager&lt;/span&gt;,Click derecho en &lt;span class="uicontrol"&gt;TCP/IP&lt;/span&gt; &lt;span class="uicontrol"&gt;y click para habilit&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span class="uicontrol"&gt;ar&lt;/span&gt;.&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span&gt;O través click derecho en &lt;span class="uicontrol"&gt;TCP/IP&lt;/span&gt; &lt;span class="uicontrol"&gt;y c&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span class="uicontrol"&gt;lick en propiedades&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;En la ventana de propiedades de&lt;span class="wintitle"&gt;TCP/IP&lt;/span&gt;, click en el panel direcciones ip, y expanda &lt;span class="uicontrol"&gt;IPALL&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;li&gt;&lt;span&gt;Debajo de &lt;span class="uicontrol"&gt;IPALL&lt;/span&gt;, borrar el campo d&lt;/span&gt;&lt;span&gt;e &lt;span class="uicontrol"&gt;TCP Dynamic Ports&lt;/span&gt; y entonces ingrese un numero de puerto en el campo &lt;span class="uicontrol"&gt;TCP Port&lt;/span&gt;.&lt;/span&gt; Usualmente, tiene el valor por defecto de 1433. &lt;/li&gt;&lt;li&gt;&lt;span&gt;En la ventana de propiedades &lt;span class="wintitle"&gt;TCP/IP&lt;/span&gt;, click &lt;span class="uicontrol"&gt;OK&lt;/span&gt;.&lt;/span&gt; &lt;/li&gt;&lt;li&gt;&lt;span&gt;En el panel izquierdo de la ventana &lt;span class="wintitle"&gt;SQL Server Configuration Manager&lt;/span&gt;, click en &lt;span class="uicontrol"&gt;Servicios de SQL Server 2005&lt;/span&gt;.&lt;/span&gt;  &lt;/li&gt;&lt;li&gt;&lt;span&gt;En el panel derecho de la ventana de &lt;span class="wintitle"&gt;SQL &lt;/span&gt;&lt;/span&gt;&lt;span&gt;&lt;span class="wintitle"&gt;Server Co&lt;/span&gt;&lt;/span&gt; &lt;span&gt;&lt;span class="wintitle"&gt;nfiguration Manager&lt;/span&gt;,click derecho en &lt;span class="uicontrol"&gt;SQL Server (SQLEXPRESS)&lt;/span&gt; &lt;span class="uicontrol"&gt;y click en reinicar&lt;/span&gt;.&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;                2.    &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;Habilitar la autenticación por conexión remota&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;       Para resolver este problema. Uno es habilitar el modo  de autenticación ambos SQL Server y Windows en el servidor y la otra es habilitar la conexión remota en el nave gador de SQL Server.&lt;br /&gt;&lt;ul style="color: rgb(0, 0, 153);"&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;Chekear que usted tenga permitido el modo bo th SQL Server and Windows Authentication mode (Si usted no usa el modo Windows Authentication). Para la instancia del usuario ‘sa’. &lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;                                1. Iniciar sesion usando SQL Server Management Studio Express al Servidor                                                                                                             SQL y en modo Windows Authentication. Esto podría usar su cuenta de                                                                                                                                      Windows para autenticarse con SQL Server.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8Rr4TSyvBI/AAAAAAAAAEQ/Q4E7_uDqQ80/s1600-h/WindowsAutenticate.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8Rr4TSyvBI/AAAAAAAAAEQ/Q4E7_uDqQ80/s320/WindowsAutenticate.PNG" alt="" id="BLOGGER_PHOTO_ID_5171376887124114450" border="0" /&gt;&lt;/a&gt;                                                                                                          2. En el objeto Explorador, click derecho en el nombre de instancia y                                                                                                                                                               seleccionar propiedades.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_bnVVd4mlDqE/R8RuZDSyvCI/AAAAAAAAAEY/oSMMXmhNEfM/s1600-h/objetoExplorer.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_bnVVd4mlDqE/R8RuZDSyvCI/AAAAAAAAAEY/oSMMXmhNEfM/s320/objetoExplorer.PNG" alt="" id="BLOGGER_PHOTO_ID_5171379648788085794" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;                 3. Seleccionar la página Security y cambiar la autenticación del servidor al                                                                                         modo SQL Server and Windows Authentication mode y presionar el boton                                         Ok.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8RvpzSyvDI/AAAAAAAAAEg/Tfl-Fy6WyDI/s1600-h/modeAutentication.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8RvpzSyvDI/AAAAAAAAAEg/Tfl-Fy6WyDI/s320/modeAutentication.PNG" alt="" id="BLOGGER_PHOTO_ID_5171381036062522418" border="0" /&gt;&lt;/a&gt;   4. Click derecho otravés en el nombre de la instancia, seleccionar Restart para reiniciar el Servicio de SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnVVd4mlDqE/R8RxqjSyvEI/AAAAAAAAAEo/-hZup8pp5Rw/s1600-h/RestartService.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_bnVVd4mlDqE/R8RxqjSyvEI/AAAAAAAAAEo/-hZup8pp5Rw/s320/RestartService.PNG" alt="" id="BLOGGER_PHOTO_ID_5171383247970679874" border="0" /&gt;&lt;/a&gt; 5. Esto es todo. Tienes habilitado el modoSQL Server and Windows authenticat ion, ahora usted puede iniciar sesion en SQL Server con su cuenta de Windows o su cuenta creada.&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;ul&gt;&lt;ul&gt;&lt;li&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;Chekear que usted tenga habilitado la conexión remota en Configuración de superficie de SQL Server&lt;/span&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;/ul&gt;&lt;/ul&gt;1. Abrir  Configuración de superficie de SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8RzFTSyvFI/AAAAAAAAAEw/qVxmawOr1sk/s1600-h/ConfigSuperSQLServer.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8RzFTSyvFI/AAAAAAAAAEw/qVxmawOr1sk/s320/ConfigSuperSQLServer.PNG" alt="" id="BLOGGER_PHOTO_ID_5171384807043808338" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;2. Seleccioar Configuracion de superficie para Servicios y Conexiones.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R15TSyvGI/AAAAAAAAAE4/_3JzCmu6JDg/s1600-h/ConfigSuperConections.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R15TSyvGI/AAAAAAAAAE4/_3JzCmu6JDg/s320/ConfigSuperConections.PNG" alt="" id="BLOGGER_PHOTO_ID_5171387899420261474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;3. En el lado izquierdo, expandir su instancia de SQL Server -&gt; Motor de base de datos -&gt; Conexiones Remotas. En el lado derecho, seleccionar Conexiones locales y remotas -&gt; Usar TCP/IP y canalizaciones con nombre.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R3WTSyvHI/AAAAAAAAAFA/k3CTaLeuGNE/s1600-h/ConfigRemote.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R3WTSyvHI/AAAAAAAAAFA/k3CTaLeuGNE/s320/ConfigRemote.PNG" alt="" id="BLOGGER_PHOTO_ID_5171389497148095602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;4. En el lado izquierdo, seleccionar Explorador de SQL Server -&gt; Servicio.&lt;br /&gt;En el lado derecho, si el tipo de inicio esta Deshabilitado, usted necesita cambiarlo a Automatico. Clik en Aceptar.&lt;br /&gt;&lt;br /&gt;5.  Iniciar sesion usando SQL Server Management Studio Express al Servidor SQL y en modo Windows Authentication.&lt;br /&gt;&lt;br /&gt;6. En el panel &lt;var&gt;Object Explorer&lt;/var&gt; , expandir &lt;var&gt;Security / nodo Logins&lt;/var&gt;.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8R57zSyvII/AAAAAAAAAFI/t9RW6id2New/s1600-h/Login.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8R57zSyvII/AAAAAAAAAFI/t9RW6id2New/s320/Login.PNG" alt="" id="BLOGGER_PHOTO_ID_5171392340416445570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;7. Seleccionar el usuario "&lt;var&gt;sa"&lt;/var&gt;.&lt;br /&gt;&lt;br /&gt;8. Click derecho en el usuario "sa"-&gt;propiedades e ingresar password para este usuario.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R7ITSyvJI/AAAAAAAAAFQ/idYgTY6a2X0/s1600-h/propiedadesUser.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R7ITSyvJI/AAAAAAAAAFQ/idYgTY6a2X0/s320/propiedadesUser.PNG" alt="" id="BLOGGER_PHOTO_ID_5171393654676438162" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;9. Luego seleccione la página &lt;var&gt;Status&lt;/var&gt; y dele Click en la opcion enable de Login, Click en Ok&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R79TSyvKI/AAAAAAAAAFY/_ihUIGGYn6Q/s1600-h/habilitarUser.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R79TSyvKI/AAAAAAAAAFY/_ihUIGGYn6Q/s320/habilitarUser.PNG" alt="" id="BLOGGER_PHOTO_ID_5171394565209504930" border="0" /&gt;&lt;/a&gt;10. Click derecho otravés en el nombre de la instancia, seleccionar Restart para reiniciar el Servicio de SQL Server.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8R8pzSyvLI/AAAAAAAAAFg/gnE21IozhUk/s1600-h/restartServiceDialog.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_bnVVd4mlDqE/R8R8pzSyvLI/AAAAAAAAAFg/gnE21IozhUk/s320/restartServiceDialog.PNG" alt="" id="BLOGGER_PHOTO_ID_5171395329713683634" border="0" /&gt;&lt;/a&gt;Probando lo hecho:&lt;br /&gt;&lt;br /&gt;Usted ha finalizado la configuracion. Ahora intente iniciar sesion en su Servidor SQL de forma remota o en su computadora usando el modo SQL Server authentication.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R9bTSyvMI/AAAAAAAAAFo/iflNdFeiG9w/s1600-h/ModeSQLServerAutentication.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/R8R9bTSyvMI/AAAAAAAAAFo/iflNdFeiG9w/s320/ModeSQLServerAutentication.PNG" alt="" id="BLOGGER_PHOTO_ID_5171396180117208258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Inicio de sesion a SQL Server con éxito.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnVVd4mlDqE/R8R94jSyvNI/AAAAAAAAAFw/TEwNra4TBdY/s1600-h/ExitoAutenticationModeSQLServer.PNG"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_bnVVd4mlDqE/R8R94jSyvNI/AAAAAAAAAFw/TEwNra4TBdY/s320/ExitoAutenticationModeSQLServer.PNG" alt="" id="BLOGGER_PHOTO_ID_5171396682628381906" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8880437486250488055?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8880437486250488055/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8880437486250488055' title='19 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8880437486250488055'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8880437486250488055'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/02/accediendo-sqlserver2005-express-con.html' title='Accediendo a SQLServer2005 Express con JDBC - Parte 1 Configuracion de SQL Server 2005 Express'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_bnVVd4mlDqE/R8RZQzSyvAI/AAAAAAAAAEI/Hk0GV49MKyg/s72-c/connectionFallida.png' height='72' width='72'/><thr:total>19</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8763178966309753024</id><published>2008-02-09T12:05:00.000-05:00</published><updated>2008-02-09T12:07:46.437-05:00</updated><title type='text'>Card PHP Cheat Sheet</title><content type='html'>Emezeta a realizado un resumen muy bueno de las funciones de php añadiendo pequeñas descripciones muy útiles al momento de buscar alguna información rápida.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.emezeta.com/articulos/emezeta-card-php-cheat-sheet"&gt;Chuleta completa de PHP&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8763178966309753024?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8763178966309753024/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8763178966309753024' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8763178966309753024'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8763178966309753024'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/02/card-php-cheat-sheet.html' title='Card PHP Cheat Sheet'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-1168582639443671614</id><published>2008-01-19T06:47:00.000-05:00</published><updated>2008-01-19T06:50:54.257-05:00</updated><title type='text'>Curso de Ajax por el Dr. Diego de Ipiña</title><content type='html'>&lt;object width="450" height="500"&gt;&lt;param name="allowScriptAccess" value="SameDomain" /&gt;&lt;param name="movie" value="http://static.scribd.com/FlashPaperS3_7.swf?guid=fwn64luw26emk&amp;document_id=1041952&amp;INITIAL_VIEW=width" /&gt;&lt;embed width="450" height="500" src="http://static.scribd.com/FlashPaperS3_7.swf?guid=fwn64luw26emk&amp;document_id=1041952&amp;INITIAL_VIEW=width" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-1168582639443671614?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/1168582639443671614/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=1168582639443671614' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1168582639443671614'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/1168582639443671614'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/01/curso-de-ajax-por-el-dr-diego-de-ipia.html' title='Curso de Ajax por el Dr. Diego de Ipiña'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-524271062632267763</id><published>2008-01-13T11:45:00.001-05:00</published><updated>2008-01-13T11:46:44.555-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Listas Genericas: Novedad en J2SE 5.0</title><content type='html'>&lt;object width="450" height="500"&gt;&lt;param name="allowScriptAccess" value="SameDomain" /&gt;&lt;param name="movie" value="http://static.scribd.com/FlashPaperS3_7.swf?guid=24uysfavu20ez&amp;document_id=258014&amp;INITIAL_VIEW=width" /&gt;&lt;embed width="450" height="500" src="http://static.scribd.com/FlashPaperS3_7.swf?guid=24uysfavu20ez&amp;document_id=258014&amp;INITIAL_VIEW=width" type="application/x-shockwave-flash"&gt;&lt;/embed&gt; &lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-524271062632267763?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/524271062632267763/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=524271062632267763' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/524271062632267763'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/524271062632267763'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/01/listas-genericas-novedad-en-j2se-50_13.html' title='Listas Genericas: Novedad en J2SE 5.0'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2395928009822793209</id><published>2008-01-12T01:21:00.001-05:00</published><updated>2008-01-26T07:21:39.455-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='zend framework'/><title type='text'>Zend Framework: Paginado (parte I)</title><content type='html'>Como sabran PHP esta evolucionando, gracias al aporte de todas las personas que comparten algo en común una pasion.&lt;br /&gt;&lt;br /&gt;Desde que Ruby on Rails salio, PHP ha tenido que adaptarse al cambio, utilizar el patron modelo vista controlador, a partir de ese momento salieron a la luz muchos frameworks como prado, cakePHP entre otros, pero tambien se creo uno llamado zend framework que es el que utilizaremos para este ejemplo, que consiste en mostrar los resultados en un datagrid paginado, utilizando POO con PHP.&lt;br /&gt;&lt;br /&gt;Software utilizado:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;&lt;a href="http://www.apachefriends.org/en/xampp-windows.html"&gt;XAMPP&lt;/a&gt; para windows&lt;/li&gt;&lt;li&gt;EasyEclipse para PHP&lt;/li&gt;&lt;li&gt;&lt;a href="http://framework.zend.com/"&gt;Zend Framework&lt;/a&gt; 1.0.0&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Comenzamos ... :$&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Clases de utilidad&lt;/span&gt;&lt;br /&gt;en primer lugar tengo que mostrar dos clases de persistencia que utilizo:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 102, 255);"&gt;la clase DBManager.class.php&lt;/span&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; line-height: 14px; width: 100%; height: 250px;"&gt;&lt;code&gt;&amp;lt;?&lt;br /&gt;/********************************************/&lt;br /&gt;/*   Clase DBManager     */&lt;br /&gt;/*Clase que administra las conexiones con */&lt;br /&gt;/*la base de datos.       */&lt;br /&gt;/*Autor: Hugo Flores Joseph 2006   */&lt;br /&gt;/*Copyright (c)        */&lt;br /&gt;/********************************************/&lt;br /&gt;require_once('Recordset.class.php');&lt;br /&gt;&lt;br /&gt;class DBManager{&lt;br /&gt;&lt;br /&gt;private $host='localhost';&lt;br /&gt;private $db  ='agenda';&lt;br /&gt;private $user='';&lt;br /&gt;private $pass='';&lt;br /&gt;private $connectionID;// Retorna un enlace identificador de la conexion hecha con la base de datos&lt;br /&gt;private $queryID = -1;// Esta variable guarda elúltimo resultado creado por link identifier de una consultra (almacena un entero&amp;lt;true=1,false=0&amp;gt;)&lt;br /&gt;private $tempResultObj = '';// Almacena el resultado del Objeto Recientemente creado via el método execute()&lt;br /&gt;private $error="";&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;//----------------Métodos Públicos--------------------//&lt;br /&gt;&lt;br /&gt;public function DBManager($user='',$pass='')&lt;br /&gt;{&lt;br /&gt;if(!empty($user))$this-&amp;gt;user=$user;&lt;br /&gt;if(!empty($pass))$this-&amp;gt;pass=$pass;&lt;br /&gt;&lt;br /&gt;try{&lt;br /&gt;$this-&amp;gt;connectionID=@mysqli_connect($this-&amp;gt;host,$this-&amp;gt;user,$this-&amp;gt;pass,$this-&amp;gt;db);&lt;br /&gt;if(!$this-&amp;gt;connectionID) throw new Exception(mysqli_connect_error());&lt;br /&gt;}&lt;br /&gt;catch(Exception $e)&lt;br /&gt;{&lt;br /&gt;echo "A ocurrido un error: ".$e-&amp;gt;getMessage();&lt;br /&gt;exit();//termina la ejecucion del script&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;//funcion ADHOC utilizada con SELECT&lt;br /&gt;public function executeQuery($sql = "")&lt;br /&gt;{&lt;br /&gt;$this-&amp;gt;queryID = mysqli_query($this-&amp;gt;connectionID,$sql);&lt;br /&gt;$this-&amp;gt;tempResultObj = new Recordset($this-&amp;gt;queryID);//Inicializa un objeto sin considerar si la consulta retorna algun resultado o no.&lt;br /&gt;return $this-&amp;gt;tempResultObj;&lt;br /&gt;}&lt;br /&gt;//funcion ADHOC utilizada con INSERT, UPDATE, DELETE&lt;br /&gt;public function executeUpdate($sql = "")//devuelve falso si la consulta tuvo exito&lt;br /&gt;{&lt;br /&gt;$resp=false;&lt;br /&gt;$this-&amp;gt;queryID = @mysqli_query($this-&amp;gt;connectionID,$sql); //Inicializa un objeto sin considerar si la consulta retorna algun resultado o no.&lt;br /&gt;if($this-&amp;gt;queryID) $resp=true;&lt;br /&gt;return $resp;&lt;br /&gt;}&lt;br /&gt;public function getConnection()  { return $this-&amp;gt;connectionID;}&lt;br /&gt;public function closeConnection(){ mysqli_close($this-&amp;gt;connectionID);}&lt;br /&gt;}&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;La segunda clase que utilizaremos es &lt;span style="color: rgb(51, 102, 255);"&gt;Recordset.class.php&lt;/span&gt;, esta clase tiene un comportamiento similar a java.sql.ResultSet de Java:&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; line-height: 14px; width: 100%; height: 250px;"&gt;&lt;code&gt;&amp;lt;?&lt;br /&gt;/********************************************/&lt;br /&gt;/*   Clase Recordset    */&lt;br /&gt;/* clase que me permite manejar un conjunto */&lt;br /&gt;/* de registros de una base de datos    */&lt;br /&gt;/* MySQL.        */&lt;br /&gt;/* Autor: Hugo Flores Joseph 2006    */&lt;br /&gt;/* Copyright (c)       */&lt;br /&gt;/********************************************/&lt;br /&gt;&lt;br /&gt;class Recordset{&lt;br /&gt;//------Variables Públicas---------//&lt;br /&gt;public $fields;&lt;br /&gt;public $BOF = null;// indica que la posición actual del registro esta antes del primer registrp en un Objeto Recordset.&lt;br /&gt;public $EOF = null;// indica que la posición actual del registro esta después del último registro en un Objeto Recordset.&lt;br /&gt;&lt;br /&gt;//------Variables Privadas---------//&lt;br /&gt;private $_numOfRows = -1; // No Cambie este valor!  SOLO LECTURA!&lt;br /&gt;private $_numOfFields = -1; // No Cambie este valor!  SOLO LECTURA!&lt;br /&gt;private $_tempResult = '';// Almacena un valor que fue retornado desde una función específica de la Base de Datos&lt;br /&gt;private $_queryID = -1;// Esta variable guarda el resultado de un link identifier&lt;br /&gt;private $_currentRow = -1;// Esta variable guarda la actual fila en un Recordset.&lt;br /&gt;&lt;br /&gt;//------Métodos--------------------//&lt;br /&gt;// Devuelve: query id exitoso o falso si&lt;br /&gt;// la función Constructor ha fallado&lt;br /&gt;public function Recordset($queryID)&lt;br /&gt;{&lt;br /&gt;$this-&amp;gt;_queryID = $queryID;&lt;br /&gt;if ($queryID) {&lt;br /&gt;$this-&amp;gt;_numOfRows = @mysqli_num_rows($this-&amp;gt;_queryID);&lt;br /&gt;$this-&amp;gt;_numOfFields = @mysqli_num_fields($this-&amp;gt;_queryID);//devuelve el número de campos de la consulta o result set&lt;br /&gt;}&lt;br /&gt;else {&lt;br /&gt;  $this-&amp;gt;_numOfRows = 0;&lt;br /&gt;  $this-&amp;gt;_numOfFields = 0;&lt;br /&gt;}&lt;br /&gt;// Si el resultado contiene filas&lt;br /&gt;if ($this-&amp;gt;_numOfRows &amp;gt; 0 &amp;amp;&amp;amp; $this-&amp;gt;_currentRow == -1) {&lt;br /&gt;$this-&amp;gt;_currentRow = 0;&lt;br /&gt;$this-&amp;gt;fields = mysqli_fetch_array($this-&amp;gt;_queryID);//captura la fila en un array mssql_fetch_aaray(Devuelve: Un array que corresponde a la fila capturada, o FALSE si no hay más filas)&lt;br /&gt;$this-&amp;gt;EOF = false;&lt;br /&gt;$this-&amp;gt;BOF = false;&lt;br /&gt;}&lt;br /&gt;return $this-&amp;gt;_queryID;&lt;br /&gt;}//fin de método Recordset&lt;br /&gt;&lt;br /&gt;// Devuelve: True si hay todavía filas disponibles, o False&lt;br /&gt;// si no hay mas filas.  Mueve a la proxima fila en un&lt;br /&gt;// Objeto Recordset Especifico y hace que el registro de la fila actual&lt;br /&gt;// y la correspondiente informaciónde la fila se recupere&lt;br /&gt;// en la colección de los campos.  Note: Al contrario del método moveRow(),&lt;br /&gt;// cuando _currentRow esta getNumOfRows() - 1, EOF podria inmediatamente ser&lt;br /&gt;// True.  Si el número de fila no es proporcionado, la funcion podria posicionarse&lt;br /&gt;//automáticamente en la primera fila.&lt;br /&gt;public function nextRow()&lt;br /&gt;{&lt;br /&gt;if ($this-&amp;gt;getNumOfRows() &amp;gt; 0)&lt;br /&gt;{         &lt;br /&gt;$this-&amp;gt;fields = array();&lt;br /&gt;$this-&amp;gt;_currentRow++;&lt;br /&gt;$this-&amp;gt;fields = @mysqli_fetch_array($this-&amp;gt;_queryID);&lt;br /&gt;// Esto esta no trabajando.  True todo el tiempo&lt;br /&gt;if ($this-&amp;gt;fields)&lt;br /&gt;{&lt;br /&gt;   $this-&amp;gt;_checkAndChangeEOF($this-&amp;gt;_currentRow - 1);&lt;br /&gt;   return true;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;$this-&amp;gt;EOF = true;&lt;br /&gt;return false;&lt;br /&gt;}//fin de método nextRow()&lt;br /&gt;&lt;br /&gt;// Devuelve: true si es exitoso, false si ha fallado moveRow()&lt;br /&gt;// moueve el puntero interno de una fila de el Objeto Recordset&lt;br /&gt;// hacia un puntero de una fila especifico y  la correspondiente&lt;br /&gt;// información de la fila que podria recuperarse de la colección de&lt;br /&gt;// campos.  Si el número de fila no es proporcionado, la funcion podria posicionarse&lt;br /&gt;// automáticamente en la primera fila.&lt;br /&gt;public function moveRow($rowNumber = 0)&lt;br /&gt;{&lt;br /&gt; if ($rowNumber == 0) {&lt;br /&gt;         return $this-&amp;gt;firstRow();&lt;br /&gt; }&lt;br /&gt; else if ($rowNumber == ($this-&amp;gt;getNumOfRows() - 1)) {&lt;br /&gt;         return $this-&amp;gt;lastRow();&lt;br /&gt; }&lt;br /&gt; if ($this-&amp;gt;getNumOfRows() &amp;gt; 0 &amp;amp;&amp;amp; $rowNumber &amp;lt; $this-&amp;gt;getNumOfRows()) {&lt;br /&gt;         $this-&amp;gt;fields = null;&lt;br /&gt;         $this-&amp;gt;_currentRow = $rowNumber;&lt;br /&gt;         if(@mysqli_data_seek($this-&amp;gt;_queryID, $this-&amp;gt;_currentRow)) {//mueve el puntero interno de las filas Devuelve: TRUE si se ejecuta con éxito, FALSE si falla&lt;br /&gt;                 $this-&amp;gt;fields = @mysqli_fetch_array($this-&amp;gt;_queryID);&lt;br /&gt;                 /*      This is not working.  True all the time */&lt;br /&gt;                 if ($this-&amp;gt;fields) {&lt;br /&gt;                         // No necesita llamar a _checkAndChangeEOF() por que&lt;br /&gt;                         // la posibilidad de mover hacia la última fila ha&lt;br /&gt;                         // sido manejada por el código de arriba&lt;br /&gt;                         $this-&amp;gt;EOF = false;&lt;br /&gt;                         return true;&lt;br /&gt;                 }&lt;br /&gt;         }&lt;br /&gt; }&lt;br /&gt; $this-&amp;gt;EOF = true;&lt;br /&gt; return false;&lt;br /&gt;}//fin de moveRow()&lt;br /&gt;&lt;br /&gt;// Devuelve: true en caso de exito, false en caso de fallo de lastRow() moueve&lt;br /&gt;// el puntero interno de la fila de un Objeto Recordset hacia la última fila&lt;br /&gt;// y recupera la correspondiente información de la fila&lt;br /&gt;// de la collecion de campos.&lt;br /&gt;public function lastRow()&lt;br /&gt;{&lt;br /&gt; if ($this-&amp;gt;getNumOfRows() &amp;gt; 0) {&lt;br /&gt;         $this-&amp;gt;fields = array();&lt;br /&gt;         $num_of_rows = $this-&amp;gt;getNumOfRows();&lt;br /&gt;         $this-&amp;gt;_tempResult = @mysqli_data_seek($this-&amp;gt;_queryID, --$num_of_rows);//Devuelve: TRUE si se ejecuta con éxito, FALSE si falla y es --$num_of_rows por que en sql&lt;br /&gt;         if ($this-&amp;gt;_tempResult) {              //existe un ultimo registro en blanco entonces tengo que posicionarme en el&lt;br /&gt;                 /*      $num_of_rows decrementado anterioemente        */      //penultimo registro.&lt;br /&gt;                 $this-&amp;gt;_currentRow = $num_of_rows;&lt;br /&gt;                 $this-&amp;gt;fields = @mysqli_fetch_array($this-&amp;gt;_queryID);&lt;br /&gt;                 /*      Esto no esta trabajando.  Verdadero todo el tiempo   */&lt;br /&gt;                 if ($this-&amp;gt;fields) {&lt;br /&gt;                         /*      Caso Especial para hacer EOF=fallse.     */&lt;br /&gt;                         $this-&amp;gt;EOF = false;&lt;br /&gt;                         return true;&lt;br /&gt;                 }&lt;br /&gt;         }&lt;br /&gt; }&lt;br /&gt; $this-&amp;gt;EOF = true;&lt;br /&gt; return false;&lt;br /&gt;}//fin de método lastRow()&lt;br /&gt;&lt;br /&gt;// Devuelve: true en caso de éxito, false en caso de fallo, firstRow() mueve&lt;br /&gt;// el puntero interno de la fila de un Objeto Recordset hacia la primera fila&lt;br /&gt;// y recupera la correspondiente información de la fila&lt;br /&gt;// de la collecion de campos.&lt;br /&gt;&lt;br /&gt;public function firstRow()&lt;br /&gt;{&lt;br /&gt; if ($this-&amp;gt;getNumOfRows() &amp;gt; 0) {&lt;br /&gt;         $this-&amp;gt;fields = array();&lt;br /&gt;         $this-&amp;gt;_currentRow = 0;&lt;br /&gt;         if (@mysqli_data_seek($this-&amp;gt;_queryID, $this-&amp;gt;_currentRow)) {&lt;br /&gt;                 $this-&amp;gt;fields = @mysqli_fetch_array($this-&amp;gt;_queryID);&lt;br /&gt;                 $this-&amp;gt;EOF = false;&lt;br /&gt;                  /*      Esto no esta trabajando.  Verdadero todo el tiempo   */&lt;br /&gt;                 if ($this-&amp;gt;fields) {&lt;br /&gt;                         return true;&lt;br /&gt;                 }&lt;br /&gt;         }&lt;br /&gt; }&lt;br /&gt; $this-&amp;gt;EOF = true;&lt;br /&gt; return false;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Retorna: El número de filas de un resultado.&lt;br /&gt;public function getNumOfRows(){return $this-&amp;gt;_numOfRows;}&lt;br /&gt;&lt;br /&gt;/*      Chequea y Cambia el Estado de EOF.     */&lt;br /&gt;public function _checkAndChangeEOF($currentRow)&lt;br /&gt;{&lt;br /&gt;if ($currentRow &amp;gt;= ($this-&amp;gt;_numOfRows - 1))&lt;br /&gt;{&lt;br /&gt;$this-&amp;gt;EOF = true;&lt;br /&gt;}else{&lt;br /&gt;$this-&amp;gt;EOF = false;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;// close() solo necesita ser llamado si esta usando mucha memoria&lt;br /&gt;// al correr su script. libera la memoria.&lt;br /&gt;&lt;br /&gt;public function close()&lt;br /&gt;{&lt;br /&gt;$this-&amp;gt;_tempResult = @mysqli_free_result($this-&amp;gt;_queryID);&lt;br /&gt;return $this-&amp;gt;_tempResult;&lt;br /&gt;}&lt;br /&gt;}//fin de la clase&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;Configurando nuestro proyecto&lt;/span&gt;&lt;br /&gt;Una vez que tenemos estas dos clases procederemos a organizar nuestro proyecto siguiendo la estructura de directorio recomendada por el framework dentro del directorio htdocs de Apache, creamos una carpeta llamada zfpaging y los subdirectorios lo siguientes:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; line-height: 14px; width: 100%;"&gt;&lt;code&gt;&lt;br /&gt;application/&lt;br /&gt;  controllers/&lt;br /&gt;    IndexController.php&lt;br /&gt;  models/&lt;br /&gt;  views/&lt;br /&gt;     scripts/&lt;br /&gt;         index/&lt;br /&gt;            index.phtml&lt;br /&gt;     helpers/&lt;br /&gt;     filters/&lt;br /&gt;html/&lt;br /&gt;.htaccess&lt;br /&gt;index.php&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;La estructura que se muestra es la configuracion por defecto de un proyecto con zend framework, pero lo vamos  a adaptar a lo que nostros utilizaremos:&lt;br /&gt;&lt;br /&gt;&lt;pre style="border: 1px dashed rgb(153, 153, 153); padding: 5px; overflow: auto; line-height: 14px; width: 100%;"&gt;&lt;code&gt;application/&lt;br /&gt;   controllers/&lt;br /&gt;      IndexController.php&lt;br /&gt;   models/&lt;br /&gt;   views/&lt;br /&gt;      scripts/&lt;br /&gt;          index/&lt;br /&gt;             index.phtml&lt;br /&gt;      helpers/&lt;br /&gt;      filters/&lt;br /&gt;   .htaccess&lt;br /&gt;library/&lt;br /&gt;   paging/&lt;br /&gt;   sql/&lt;br /&gt;   zend/&lt;br /&gt;   .htaccess&lt;br /&gt;public/&lt;br /&gt;   images/&lt;br /&gt;   scripts/&lt;br /&gt;   styles/&lt;br /&gt;   .htaccess&lt;br /&gt;.htaccess&lt;br /&gt;index.php&lt;br /&gt;&lt;/code&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2395928009822793209?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2395928009822793209/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2395928009822793209' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2395928009822793209'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2395928009822793209'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2008/01/asdasd.html' title='Zend Framework: Paginado (parte I)'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-6555501161668254250</id><published>2007-12-24T09:22:00.001-05:00</published><updated>2007-12-24T09:22:47.243-05:00</updated><title type='text'>Diseño de blogs y usabilidad : Franco Gimenez y Leo Prieto</title><content type='html'>&lt;center&gt;&lt;object width="320" height="240"&gt;&lt;param name="flashvars" value=""/&gt;&lt;param name="movie" value="http://vpod.tv/uberbin/369092/flash/nVideoPlayer"/&gt;&lt;param name="allowfullscreen" value="true"/&gt;&lt;embed src="http://vpod.tv/uberbin/369092/flash/nVideoPlayer" type="application/x-shockwave-flash" width="320" height="240" allowfullscreen="true" flashvars=""&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-6555501161668254250?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/6555501161668254250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=6555501161668254250' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6555501161668254250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/6555501161668254250'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/12/diseo-de-blogs-y-usabilidad-franco.html' title='Diseño de blogs y usabilidad : Franco Gimenez y Leo Prieto'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-912828202084515371</id><published>2007-12-24T09:12:00.000-05:00</published><updated>2007-12-24T09:13:59.528-05:00</updated><title type='text'>Monetizando Blogs: Ismael hablando de otras opciones ademas de Adsense</title><content type='html'>&lt;center&gt;&lt;object height="240" width="320"&gt;&lt;param name="flashvars" value=""&gt;&lt;param name="movie" value="http://vpod.tv/uberbin/369095/flash/nVideoPlayer"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;embed src="http://vpod.tv/uberbin/369095/flash/nVideoPlayer" type="application/x-shockwave-flash" allowfullscreen="true" flashvars="" height="240" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-912828202084515371?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/912828202084515371/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=912828202084515371' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/912828202084515371'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/912828202084515371'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/12/monetizando-blogs-ismael-hablando-de.html' title='Monetizando Blogs: Ismael hablando de otras opciones ademas de Adsense'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-13006511078011013</id><published>2007-12-24T08:29:00.000-05:00</published><updated>2007-12-24T08:30:41.803-05:00</updated><title type='text'>La web 2.0 y la importancia de los blogs</title><content type='html'>&lt;center&gt;&lt;object height="240" width="320"&gt;&lt;param name="flashvars" value=""&gt;&lt;param name="movie" value="http://vpod.tv/uberbin/366769/flash/nVideoPlayer"&gt;&lt;param name="allowfullscreen" value="true"&gt;&lt;embed src="http://vpod.tv/uberbin/366769/flash/nVideoPlayer" type="application/x-shockwave-flash" allowfullscreen="true" flashvars="" height="240" width="320"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;/center&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-13006511078011013?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/13006511078011013/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=13006511078011013' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/13006511078011013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/13006511078011013'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/12/la-web-20-y-la-importancia-de-los-blogs.html' title='La web 2.0 y la importancia de los blogs'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-4078295624867704600</id><published>2007-12-19T08:03:00.000-05:00</published><updated>2007-12-19T08:12:12.532-05:00</updated><title type='text'>Java: conceptos básicos de JDBC - Parte 2 Acceder a una base de datos</title><content type='html'>Ve&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;amos una descripción breve de las principales clases JDBC:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;ul style="color: rgb(0, 0, 153);"&gt;&lt;li style="font-weight: bold;"&gt;java.sql.DriverManager&lt;/li&gt;&lt;/ul&gt;Clase encargada de realizar las conexiones con la base de datos.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Antes de realizar la conexion, debemos cargar la clase Driver del proveedor de base de               datos y esto lo hacemos de la siguiente manera:&lt;br /&gt;&lt;br /&gt;     &lt;br /&gt;&lt;/div&gt;&lt;br /&gt; &lt;br /&gt;&lt;ul style="color: rgb(0, 0, 153);"&gt;&lt;li style="font-weight: bold;"&gt;java.sql.Connection&lt;/li&gt;&lt;li style="font-weight: bold;"&gt;java.sql.Statement&lt;/li&gt;&lt;li&gt;&lt;span style="font-weight: bold;"&gt;java.sql.ResultSet&lt;/span&gt;&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/5976545851119434553-4078295624867704600?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/4078295624867704600/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=4078295624867704600' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4078295624867704600'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/4078295624867704600'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/12/java-conceptos-bsicos-de-jdbc-parte1_19.html' title='Java: conceptos básicos de JDBC - Parte 2 Acceder a una base de datos'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3551587279777292359</id><published>2007-12-18T14:36:00.000-05:00</published><updated>2007-12-19T08:02:47.062-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Java: conceptos básicos de JDBC - Parte1 Introduccion</title><content type='html'>&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 153);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Hola a todos,  bueno ahora me dio por escribir sobre conectividad de base de datos con Java un tema de caracter obligatorio que se enseña en las instituciones superiores. comenzamos con lo basico hasta lograr algo mas elaborado. comenzamos :).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:verdana;"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;font-family:arial;" &gt;JDBC (Java Database Connectivity)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153);font-family:arial;" &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Es una  tecnologia de Java que nos permite conectarnos con cualquier motor de base de datos, proporciona una capa de persistencia uniforme para todo driver de base de datos.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Caracteristicas:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;  &lt;ul&gt;&lt;li&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="" lang="ES"&gt;JDBC es una biblioteca de clases e interfaces que permite la conexión con base de datos utilizando Java.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="" lang="ES"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="ES"&gt;La biblioteca JDBC dispone de una interfaz para ejecutar instrucciones SQL que ofrece una funcionalidad básica para el acceso a datos. las clases e interfaces que componen el API de JDBC son conceptos comunes de acceso a base de datos para todas las bases de datos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/li&gt;&lt;li  style="font-family:arial;"&gt;&lt;!--[if !supportLists]--&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="" lang="ES"&gt;&lt;span style=""&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="" lang="ES"&gt;JDBC se diseño como una interfaz de programación de aplicaciones (API) orientado a objetos para acceder (consultas) a bases de datos y es un estándar.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;!--[endif]--&gt;&lt;/li&gt;&lt;li&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:Arial;font-size:10;"  lang="ES" &gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;El API JDBC se disño como una interfaz para ejecutar consultas SQL y admite todos los dialectos de SQL.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Como funciona:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_bnVVd4mlDqE/R2gnQKAo9xI/AAAAAAAAADA/Ai3qBpUOpCA/s1600-h/jdbcdiagrama.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://3.bp.blogspot.com/_bnVVd4mlDqE/R2gnQKAo9xI/AAAAAAAAADA/Ai3qBpUOpCA/s320/jdbcdiagrama.JPG" alt="" id="BLOGGER_PHOTO_ID_5145405732789221138" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;DriverManager, Connection, Statement y ResultSet son las clases JDBC del paquete java.sql que utilizaremos para realizar nuestros ejercicios. Si os fijais cada instancia de cada clase se crea por medio de otra. Por ejemplo: un objeto de tipo Connection se crea mediante la clase DriverManager, un objeto Statement se crea mediante un objeto de tipo Connection y un objeto ResultSet se crea mediante un objeto Statement.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 102, 0); font-weight: bold;"&gt;Driver:&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:Arial;font-size:100%;"  &gt;Un &lt;b style=""&gt;controlador&lt;/b&gt; es la implementación&lt;span style=""&gt;  &lt;/span&gt;de la interfaz JDBC adecuada a una base de datos concreta. Se trata del nivel intermedio que traduce el método Java en llamadas API a una base de datos propietaria que sirven para manipular la base de datos.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Existen 4 tipos de drivers JDBC, pero nos centraremos en el tipo 4 que es de conexion nativa. por ser mas eficiente que los demas, por que realiza una conexion directa con el motor de base de datos, sin puntes ODBC, sin protocolos de red intermedios que relentizan nuestra aplicacion.&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;a href="http://developers.sun.com/product/jdbc/drivers2"&gt;&lt;span style=";font-family:Arial;font-size:10;"  &gt;http://developers.sun.com/product/jdbc/drivers2&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;p class="MsoNormal" style="margin-left: 36pt; text-align: justify; text-indent: -18pt; line-height: 14pt;"&gt;&lt;!--[if !supportLists]--&gt;&lt;!--[endif]--&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3551587279777292359?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3551587279777292359/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3551587279777292359' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3551587279777292359'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3551587279777292359'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/12/java-conceptos-bsicos-de-jdbc-parte1.html' title='Java: conceptos básicos de JDBC - Parte1 Introduccion'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_bnVVd4mlDqE/R2gnQKAo9xI/AAAAAAAAADA/Ai3qBpUOpCA/s72-c/jdbcdiagrama.JPG' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2095201737050546106</id><published>2007-08-08T08:51:00.001-05:00</published><updated>2007-12-18T16:33:29.707-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Presentacion: Struts</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=52253&amp;amp;doc=struts-mvc-e-java-20481" height="348" width="425"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=52253&amp;amp;doc=struts-mvc-e-java-20481"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2095201737050546106?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2095201737050546106/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2095201737050546106' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2095201737050546106'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2095201737050546106'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/08/presentacion-struts.html' title='Presentacion: Struts'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8157752157744613543</id><published>2007-08-08T08:48:00.001-05:00</published><updated>2007-12-18T16:35:50.969-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='java'/><title type='text'>Presentacion: Java Collections</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=21600&amp;doc=java-collections-7753" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=21600&amp;amp;doc=java-collections-7753"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8157752157744613543?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8157752157744613543/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8157752157744613543' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8157752157744613543'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8157752157744613543'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/08/presentacion-java-collections.html' title='Presentacion: Java Collections'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3843186946290419693</id><published>2007-08-08T08:17:00.001-05:00</published><updated>2007-12-18T16:37:13.896-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Presentacion: Intro to Php Security</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=88598&amp;doc=intro-to-php-security3411" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=88598&amp;amp;doc=intro-to-php-security3411"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3843186946290419693?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3843186946290419693/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3843186946290419693' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3843186946290419693'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3843186946290419693'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/08/presentacion-intro-to-php-security.html' title='Presentacion: Intro to Php Security'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-3850946546559254997</id><published>2007-08-08T08:16:00.001-05:00</published><updated>2007-12-18T16:36:52.201-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Presentacion: Seguridad en PHP</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=81692&amp;doc=security3792" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=81692&amp;amp;doc=security3792"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-3850946546559254997?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/3850946546559254997/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=3850946546559254997' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3850946546559254997'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/3850946546559254997'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/08/presentacion-seguridad-en-php.html' title='Presentacion: Seguridad en PHP'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-8113360683779176174</id><published>2007-08-08T07:37:00.000-05:00</published><updated>2007-12-18T16:34:02.073-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='php'/><title type='text'>Presentacion: Object-Oriented Programming for PHP Application Servers</title><content type='html'>&lt;object type="application/x-shockwave-flash" data="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=3696&amp;doc=objectoriented-programming-for-php-application-servers-4073" width="425" height="348"&gt;&lt;param name="movie" value="https://s3.amazonaws.com:443/slideshare/ssplayer.swf?id=3696&amp;amp;doc=objectoriented-programming-for-php-application-servers-4073"&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-8113360683779176174?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/8113360683779176174/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=8113360683779176174' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8113360683779176174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/8113360683779176174'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/08/presentacion-object-oriented.html' title='Presentacion: Object-Oriented Programming for PHP Application Servers'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5976545851119434553.post-2292824372291693657</id><published>2007-07-26T13:14:00.000-05:00</published><updated>2007-12-18T16:32:28.486-05:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='ubuntu'/><title type='text'>Linux Ubuntu para seres humanos</title><content type='html'>&lt;div style="text-align: left;"&gt;&lt;div style="text-align: justify;"&gt;He comenzado una nueva experiencia con linux, especificamente con &lt;a href="http://www.ubuntu-es.org/index.php?q=ubuntu/conseguir"&gt;ubuntu&lt;/a&gt; un excelente sistema operativo  que realmente me a cautivado con la sencillez, robustez y  facilidad de  uso de sus herramientas, actualmente existe  la versión  7.04 que lo  puedes  descargar  gratuitamente o  pedir tus cd's, actualmente se esta dando un curso en videos tutoriales en el portal de &lt;a href="http://www.illasaron.com/html/"&gt; &lt;/a&gt;&lt;a href="http://www.illasaron.com/html/"&gt;illasaron&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: justify;"&gt;con guia del tutor Sr. Jesus Conde al que debo rendir una mensión especial por sus aportes a la enseñanza virtual. les recomiendo el curso de ubuntu es muy bueno.     &lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://2.bp.blogspot.com/_bnVVd4mlDqE/RqjlYtd5XyI/AAAAAAAAAAM/_92fPWt7iEA/s320/ubuntuservidores.png" alt="" id="BLOGGER_PHOTO_ID_5091571591426957090" border="0" /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5976545851119434553-2292824372291693657?l=hpfloresj.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://hpfloresj.blogspot.com/feeds/2292824372291693657/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5976545851119434553&amp;postID=2292824372291693657' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2292824372291693657'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5976545851119434553/posts/default/2292824372291693657'/><link rel='alternate' type='text/html' href='http://hpfloresj.blogspot.com/2007/07/linux-ubuntu-para-seres-humanos.html' title='Linux Ubuntu para seres humanos'/><author><name>Hugo Flores J.</name><uri>http://www.blogger.com/profile/06480298322565924769</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='30' height='32' src='http://1.bp.blogspot.com/_bnVVd4mlDqE/S4vrv51s7UI/AAAAAAAAANU/6kHEtfNfZXc/S220/hugo_bin01032010.png'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_bnVVd4mlDqE/RqjlYtd5XyI/AAAAAAAAAAM/_92fPWt7iEA/s72-c/ubuntuservidores.png' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
