<?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-2086739885588520999</id><updated>2012-02-01T04:21:00.401-03:00</updated><category term='Seguridad Informática'/><category term='Java'/><category term='Linux'/><category term='Bases de Datos'/><category term='Open Source'/><title type='text'>Geek Linux. Networking y Seguridad Informática</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>31</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2483370464088862423</id><published>2011-10-10T00:38:00.011-03:00</published><updated>2011-10-10T00:57:31.498-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Instalar Metasploit Armitage en BackTrack 5R1</title><content type='html'>&lt;div style="text-align: center;"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:130%;"&gt;&lt;b&gt;Configurar Metasploit Armitage en BackTrack 5R1&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;/div&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Area: Explotation Tools&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; font-weight: normal" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;Requisitos&lt;/b&gt;:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Instalacion  de PostgreSQL&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Instalacion  de PGAdmin3&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Configuraciones&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Instalacion de PostgreSQL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;  &lt;p style="margin-bottom: 0cm" align="CENTER"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;apt-get install postgresql-8.4 libpq-dev postgresql-client-8.4 pgadmin3&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:100%;"&gt;&lt;b&gt;Configurar PostgreSQL&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;sudo su postgres -c psql&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;ALTER USER postgres WITH PASSWORD 'nueva_clave';&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;\q&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;sudo passwd -d postgres&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;sudo su postgres -c passwd&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;gem install pg&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;update-alternatives --config ruby &lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;(Seleccionar &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;0&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt; para  "auto-mode")&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;msfupdate&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Crear el siguiente script en &lt;/span&gt;&lt;b&gt;/root/.msfr/msfconsole.rc&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;db_driver postgresql &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;db_connect postgres:"clave_postgresql"@127.0.0.1/msf3db &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Finalmente ejecutamos el comando:&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;  &lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;msfconsole&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: normal"&gt;exit &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;(para salir)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: normal"&gt;Revisamos el PGAdmin3 si es que se ha creado la Base de datos &lt;/span&gt;&lt;b&gt;msf3db &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://1.bp.blogspot.com/--i4uDpDfYVY/TpJqfLLMWrI/AAAAAAAAKes/k7U30VRiZfM/s1600/pgadmin.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 254px;" src="http://1.bp.blogspot.com/--i4uDpDfYVY/TpJqfLLMWrI/AAAAAAAAKes/k7U30VRiZfM/s320/pgadmin.png" alt="" id="BLOGGER_PHOTO_ID_5661704765366360754" border="0" /&gt;&lt;/a&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Ejecutar el siguiente comando:&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="LEFT"&gt;&lt;span style="font-family:Courier New, monospace;"&gt;msfrpcd -f -U usuario_postgresql -P clave -a 127.0.0.1 -p 55554 -S&lt;br /&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;" align="LEFT"&gt;&lt;a href="http://1.bp.blogspot.com/-yeACv0c6_do/TpJqwl4WlnI/AAAAAAAAKe0/sLOSz0310CE/s1600/msfconsole_run.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 320px; height: 56px;" src="http://1.bp.blogspot.com/-yeACv0c6_do/TpJqwl4WlnI/AAAAAAAAKe0/sLOSz0310CE/s320/msfconsole_run.png" alt="" id="BLOGGER_PHOTO_ID_5661705064592873074" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;/p&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Luego de iniciado el script iremos a ejecurtar el armitage&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p&gt;&lt;/p&gt;&lt;a href="http://3.bp.blogspot.com/-zHOCcK0IPh0/TpJq9IsyxII/AAAAAAAAKe8/D8X81wnhKNs/s1600/Menu%2BArmitage.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 66px;" src="http://3.bp.blogspot.com/-zHOCcK0IPh0/TpJq9IsyxII/AAAAAAAAKe8/D8X81wnhKNs/s320/Menu%2BArmitage.png" alt="" id="BLOGGER_PHOTO_ID_5661705280098059394" border="0" /&gt;&lt;/a&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Una vez abierta la ventana principal realizamos clic en el&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt; botón  ? &lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;De la izquina inferior derecha&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;a href="http://2.bp.blogspot.com/-hT0782CzFgg/TpJraDiFcKI/AAAAAAAAKfU/YQftEBINdTI/s1600/conf%2Bacceso%2BBD%2Barmitage.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 249px;" src="http://2.bp.blogspot.com/-hT0782CzFgg/TpJraDiFcKI/AAAAAAAAKfU/YQftEBINdTI/s320/conf%2Bacceso%2BBD%2Barmitage.png" alt="" id="BLOGGER_PHOTO_ID_5661705776927174818" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;      &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Agregamos el usuario y contraseña de postgres (los creados anteriormente), dejamos el host 127.0.0.1 sin puerto asociado por último el nombre de la base de datos.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Por último  realizamos &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;click en  set&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt; y repetimos los datos de usuario y contraseña y agregamos el puerto creado en msfrpcd (55554) y luego &lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;b&gt;click en connect&lt;/b&gt;&lt;/span&gt;&lt;/span&gt; &lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;br /&gt;&lt;/p&gt;&lt;br /&gt;&lt;a href="http://4.bp.blogspot.com/-9xVycS555Xc/TpJrwE3P0DI/AAAAAAAAKfc/z4AdF5C5ZyY/s1600/conf%2Bacceso%2B2.png"&gt;&lt;img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 262px;" src="http://4.bp.blogspot.com/-9xVycS555Xc/TpJrwE3P0DI/AAAAAAAAKfc/z4AdF5C5ZyY/s320/conf%2Bacceso%2B2.png" alt="" id="BLOGGER_PHOTO_ID_5661706155241492530" border="0" /&gt;&lt;/a&gt;          &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm;" align="LEFT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;Estamos Listos para comenzar a utilizar esta poderosa herramienta&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm" align="LEFT"&gt;&lt;a href="http://3.bp.blogspot.com/-OiJDwQvsaRs/TpJr7phYYMI/AAAAAAAAKfk/G_lnMCKlrhc/s1600/Armitage.png"&gt;&lt;img style="display: block; margin: 0px auto 10px; text-align: center; cursor: pointer; width: 492px; height: 276px;" src="http://3.bp.blogspot.com/-OiJDwQvsaRs/TpJr7phYYMI/AAAAAAAAKfk/G_lnMCKlrhc/s320/Armitage.png" alt="" id="BLOGGER_PHOTO_ID_5661706354060452034" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;br /&gt;        &lt;style type="text/css"&gt;  &lt;!--   @page { margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;  &lt;p style="margin-bottom: 0cm" align="RIGHT"&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-family:Arial, sans-serif;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;Fuente:&lt;/span&gt; Jorge Lara Cravero (Adm. Linux  and Networking)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2483370464088862423?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2483370464088862423/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2483370464088862423' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2483370464088862423'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2483370464088862423'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2011/10/instalar-metasploit-armitage-en.html' title='Instalar Metasploit Armitage en BackTrack 5R1'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/--i4uDpDfYVY/TpJqfLLMWrI/AAAAAAAAKes/k7U30VRiZfM/s72-c/pgadmin.png' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-4214231833937566980</id><published>2010-05-23T23:15:00.002-04:00</published><updated>2010-05-23T23:19:34.367-04:00</updated><title type='text'>Google Chrome para Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com/chrome/intl/es/images/dlpage_linux.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 440px; height: 345px;" src="http://www.google.com/chrome/intl/es/images/dlpage_linux.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Asi es en beta y para varias distribuciones entre ellas Fedora Linux.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Nota:&lt;/strong&gt; al instalar Google Chrome, &lt;strong&gt;se añadirá el repositorio de Google&lt;/strong&gt;, por lo que el sistema mantendrá actualizado Google Chrome de forma automática. Si no quieres utilizar el repositorio de Google, ejecuta "sudo touch /etc/default/google-chrome" antes de instalar el paquete&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.google.com/chrome/eula.html?hl=es&amp;amp;brand=CHMA&amp;amp;utm_campaign=es&amp;amp;utm_source=es-ha-latam-ww-bk&amp;amp;utm_medium=ha"&gt;Descargar&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-4214231833937566980?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://www.google.com/chrome/index.html?hl=es&amp;brand=CHMA&amp;utm_campaign=es&amp;utm_source=es-ha-latam-ww-bk&amp;utm_medium=ha' title='Google Chrome para Linux'/><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/4214231833937566980/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=4214231833937566980' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/4214231833937566980'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/4214231833937566980'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2010/05/google-chrome-para-linux.html' title='Google Chrome para Linux'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-1271230503513383132</id><published>2008-12-02T22:57:00.010-03:00</published><updated>2011-10-10T00:38:01.659-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>Mozilla Songbird el reproductor de música abierto</title><content type='html'>Mozilla Songbird es un reproductor de música open source personalizable el cual se encuentra bajo desarrollo activo por Mozilla.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://getsongbird.com/images/screenshots/100/songbird-fullsize.jpg"&gt;&lt;img style="width: 532px; height: 384px;" src="data:image/png;base64,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nZVV9cJEDInciRUW76a++kbswIZHN2OgJbxWhujOfTsK38y7S/GYqobp9TiwQ4Tm9u2HoncXYFXon3DP3TeJ0N0FeFp8/t283+CCVd1x2bX5WHnzv5R8V9x/H+LF/zQ43WhsP8xCg9MPG4UikQAJkAAJkAAJkAAJkIAnCPQRBuPwibHoH/8XCLvSety5tFnxIi5d+JmSZhY6K9PmvDYEB575m1PGXzjikFg1BmMtBqwst16E7PYTKz2bKnKxUxitDShFSWW+9XPpzSFoxHGcPjsXV735O+CWf2HdP5d6QnWW4ScEaHD6SUNQDBIgARIgARIgARIgARLwNIFSbMcrjy7AK5aCrRv+GEJWjaGzqgF6AcqEsamt3XRGtnoRDpshNhPSeydlnakOMtdijTB81yhG77XLXsRV3XZhtTA89etKHWTnKT8nwNei+HkDUTwSIAESIAESIAESIAES8AaBEeeJ8Na5askydHbwgGM4IbyQ0kC881Xnjc3mvn2VENg64ams7D4N0yxlOitzd6Tj9wtTkI/P8MbCZcguTET/Cc7m5nX+ToAeTn9vIcpHAiRAAiRAAiRAAiRAAl4g0LCtFHELXkTGbPX1J3v+vUjxKl4ydwT61fZEv4UZmGKp12x9pzwld6z98euXlXWgU+SmQQvjxKZBLWXKDYDeuU8t354KMqQ27Lw/i5Bf3WtYTNaM2svPdP8mELJw0aLm29PTkZaW5t+SUjoSIAESIAESIAESIAESIIFOTYA2i381f1ZWll2BMsRDiPWffwWG1NpFxBMkQAIkQAIkQAIkQAIkQAIkQALtIUCDsz30mJcESIAESIAESIAESIAESIAESMAuARqcdtHwBAmQAAmQAAmQAAmQAAmQAAmQQHsI0OBsDz3mJQESIAESIAESIAESIAESIAESsEuAu9TaRcMTJEACJEACJEACJEACJEAC/kTA0SY1/iQnZWkhQA8newMJkAAJkAAJkAAJkAAJkAAJkIBXCNDg9ApWFkoCJEACJEACJEACJEACJEACJECDk32ABEiABEiABEiABEiABEiABEjAKwRocHoFKwslARIgARIgARIgARIgARIgARKgwck+QAIkQAIkQAIkQAIkQAIkQAIk4BUCNDi9gpWFkgAJkAAJkAAJkAAJkAAJkAAJ0OBkHyABEiABEiABEiABEiABEiABEvAKAet7ODMyMrxSAQslARIgARIgARIgARIgARIgARLonAQUg3P58uWdU3tqTQIkQAIkQAIkQAIkQAIkQAIk4DUC/x8jf0Gih+d6NAAAAABJRU5ErkJggg==" alt="" /&gt;&lt;br /&gt;&lt;/a&gt;&lt;strong&gt;Songbird es un reproductor multimedia &lt;/strong&gt; y es mil cosas más. &lt;p&gt;Las características novedosas de Songbird son:&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;strong&gt;GStreamer&lt;/strong&gt;: un framework multimedia libre multiplataforma escrito en el Lenguaje de programación C.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;mashTape&lt;/strong&gt;: Al escuchar música con Songbird podrás ver fotos de Flickr, vídeos de Youtube, biografías en last.fm, noticias en Google y muchas otras cosas relacionadas con el artista de la canción.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Last.fm Scrobbling&lt;/strong&gt;: Excelente integración con Last.fm.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Listas de reproducción inteligentes reutilizables&lt;/strong&gt;.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Entradas para conciertos&lt;/strong&gt;: Puedes ver los próximos eventos en tu localidad, basados en los artistas  de tu librería de música.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Add-ons a la carta&lt;/strong&gt; y muchas otras características y funciones más.&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;h3 class="editable"&gt;Descargar versión para Fedora Linux (&lt;a href="http://wiki.songbirdnest.com/Developer/Articles/Builds/Contributed_Builds"&gt;otras distribuciones&lt;/a&gt;)&lt;br /&gt;&lt;/h3&gt; &lt;p&gt;Provided by &lt;a title="http://www.digitalruin.net/" class="external" rel="external nofollow" target="_blank" href="http://www.digitalruin.net/"&gt;Auralvance&lt;/a&gt;&lt;br /&gt;Updated: 8/26/08 0.7.0 Rev 1&lt;/p&gt; &lt;ul&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.i386.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.i386.rpm"&gt;Songbird 0.7.0 FC9 i386 RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.x86_64.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.x86_64.rpm"&gt;Songbird 0.7.0 FC9 x86_64 RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.ppc.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.ppc.rpm"&gt;Songbird 0.7.0 FC9 ppc RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.ppc64.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.ppc64.rpm"&gt;Songbird 0.7.0 FC9 ppc64 RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.src.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.7.0-1.fc9.src.rpm"&gt;Songbird 0.7.0 FC9 source RPM&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt; &lt;ul&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.i386.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.i386.rpm"&gt;Songbird 0.6.1 FC9 i386 RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.x86_64.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.x86_64.rpm"&gt;Songbird 0.6.1 FC9 x86_64 RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.ppc.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.ppc.rpm"&gt;Songbird 0.6.1 FC9 ppc RPM&lt;/a&gt; &lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.ppc64.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.ppc64.rpm"&gt;Songbird 0.6.1 FC9 ppc64 RPM&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;li&gt;&lt;a title="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.src.rpm" class="external" rel="external nofollow" target="_blank" href="http://rpm.rutgers.edu/fedora/songbird-0.6.1-3.fc9.src.rpm"&gt;Songbird 0.6.1 FC9 source RPM&lt;/a&gt;&lt;/li&gt;&lt;/ul&gt;xJlara&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-1271230503513383132?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://getsongbird.com/' title='Mozilla Songbird el reproductor de música abierto'/><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/1271230503513383132/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=1271230503513383132' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1271230503513383132'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1271230503513383132'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/12/mozilla-songbird-el-reproductor-de.html' title='Mozilla Songbird el reproductor de música abierto'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-3023801893652954192</id><published>2008-11-26T21:37:00.004-03:00</published><updated>2008-11-26T21:44:11.229-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Bienvenido a Fedora 10</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://download.fedoraproject.org/pub/fedora/linux/releases/10/Fedora/i386/iso/Fedora-10-i386-DVD.iso"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 435px; height: 145px;" src="http://fedoraproject.org/static/images/f10launch.png" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Fedora es un sistema operativo basado en Linux que trae lo último en software libre y de código abierto. Fedora es siempre libre para que cualquiera lo use, modifique o distribuya. Lo construyen personas de todo el planeta que trabajan juntos como una comunidad: el Proyecto Fedora. El Proyecto Fedora es abierto y todos son bienvenidos a unirse. El Proyecto Fedora es lo más nuevo, con lo mejor en software y contenido libre y abierto.&lt;br /&gt;&lt;br /&gt;PD: Tengo un notebook Acer Aspire 5610z con tarjeta WIfi Atheros y Fedora 10 reconocio totalmente todo el hardware (incluida la webcam y tarjeta inalambrica)&lt;br /&gt;&lt;br /&gt;xJlara&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a href="http://download.fedoraproject.org/pub/fedora/linux/releases/10/Fedora/i386/iso/Fedora-10-i386-DVD.iso"&gt;Descargar la versiòn 10&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-3023801893652954192?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='related' href='http://docs.fedoraproject.org/release-notes/f10/es/index.html#Welcome_to_Fedora_10' title='Bienvenido a Fedora 10'/><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/3023801893652954192/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=3023801893652954192' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3023801893652954192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3023801893652954192'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/11/bienvenido-fedora-10.html' title='Bienvenido a Fedora 10'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-8398575293046644863</id><published>2008-11-25T21:12:00.004-03:00</published><updated>2008-11-25T21:30:13.093-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Comandos Peligrosos de Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://sonidolibre.files.wordpress.com/2008/05/consola.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 100px; height: 105px;" src="http://sonidolibre.files.wordpress.com/2008/05/consola.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Muchas veces al querer instalar algùn programa o al querer configurar algùn servicio en nuestro Linux recurrimos a internet para ver si encontramos algùn howto que nos ayude, muchos inclusive aveces copian y pegan directamente los comandos que salen en estas guias directamente en su equipo ejecutando esas instrucciones y comandos.&lt;span style="font-weight: bold;"&gt; Pero que sucede si este es un comando malicioso?&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vemos algunos comandos de estos :&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;mkfs.ext3 /dev/sda&lt;/span&gt;  Este comando formatea el disco duro.&lt;br /&gt;&lt;br /&gt;# &lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;:(){:|:&amp;amp;};:  &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Este comando ejecuta multiples procesos hasta bloquear el sistema en algunos lugares se le llama &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;forkbomb&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;#&lt;/span&gt; &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;cualquier comando &gt; /dev/sda&lt;/span&gt; Sobre escribe los bloques del disco seleccioando con el comando ejecutado lo que provocará la perdida total de los datos.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;# &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;mv /home/tu_usuario/* /dev/null&lt;/span&gt; Este comando movera todas las carpetas y archivos de /dev/null elimando de paso estos estos archivos definitivamente.&lt;br /&gt;&lt;br /&gt;Bueno espero que cada uno de ustedes analice lo que hace y revise bièn cuando recurrimos a estas guías, una recomendación es poseer alguna màquina virtual para probar antes.&lt;br /&gt;&lt;br /&gt;Los invito a comentar si conocen otros comandos ya que seguramente existen mas que estos 4 que hoy he comentado.&lt;br /&gt;xJlara&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&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/2086739885588520999-8398575293046644863?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/8398575293046644863/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=8398575293046644863' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/8398575293046644863'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/8398575293046644863'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/11/comandos-peligrosos-de-linux.html' title='Comandos Peligrosos de Linux'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2619580166592432700</id><published>2008-11-15T00:41:00.010-03:00</published><updated>2008-11-15T22:22:52.729-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Ejemplo con Vectores</title><content type='html'>Este ejemplo corresponde a 3 locales con diferente capacidad que registran ventas de 3 promociones distintas ($1000, $1500, $2000) lo que hace es vender y luego ver el informe de ventas por cada local.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;PD: Es un ejemplo bàsico ...&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6qdwobB8I/AAAAAAAAALI/8Sk4xk9ZVEs/s1600-h/Menu.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 290px; height: 153px;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6qdwobB8I/AAAAAAAAALI/8Sk4xk9ZVEs/s400/Menu.jpg" alt="" id="BLOGGER_PHOTO_ID_5268836042317432770" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;//Clase Locales.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;/span&gt;&lt;br /&gt;&lt;code&gt;import javax.swing.*;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author jorge&lt;br /&gt;*/&lt;br /&gt;public class Locales {&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;private int totalventa;&lt;br /&gt;&lt;br /&gt;Vector local1 = new Vector(this.capacidad_local1);&lt;br /&gt;Vector local2 = new Vector(this.capacidad_local2);&lt;br /&gt;Vector local3 = new Vector(this.capacidad_local3);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;// Cantidad de Elementos a Almacenar&lt;/span&gt;&lt;br /&gt;public int capacidad_local1= 20;&lt;br /&gt;public int capacidad_local2= 25;&lt;br /&gt;public int capacidad_local3= 33;&lt;br /&gt;&lt;br /&gt;// Gastos Fihjos Por Local&lt;br /&gt;public int gastos_local1= 5000;&lt;br /&gt;public int gastos_local2= 6000;&lt;br /&gt;public int gastos_local3= 7000;&lt;br /&gt;&lt;br /&gt;public Locales(){&lt;br /&gt;&lt;br /&gt;this.totalventa = 0;&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;public void  venderPromocion (){&lt;br /&gt;&lt;br /&gt;int combo1 = 1000;&lt;br /&gt;int combo2 = 1500;&lt;br /&gt;int combo3 = 2500;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;this.totalventa = 0;&lt;br /&gt;&lt;br /&gt;int  local= Integer.parseInt(JOptionPane.showInputDialog("Seleccione local de venta : \n" +&lt;br /&gt;  "1 - Local 1 \n" +&lt;br /&gt;  "2 - Local 2 \n" +&lt;br /&gt;  "3 - Local 3 "));&lt;br /&gt;if (local ==1)&lt;br /&gt;{&lt;br /&gt;int  compra= Integer.parseInt(JOptionPane.showInputDialog("Seleccione promocion : \n" +&lt;br /&gt;  "1 - Combo 1 $1000 \n" +&lt;br /&gt;  "2 - Combo 2 $1500 \n" +&lt;br /&gt;  "3 - Combo 3 $2500 "));&lt;br /&gt;if (compra == 1)&lt;br /&gt;compra = combo1;&lt;br /&gt;if (compra == 2)&lt;br /&gt;compra = combo2;&lt;br /&gt;if (compra == 3)&lt;br /&gt;compra = combo3;&lt;br /&gt;&lt;br /&gt;int  cant= Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;//El Limite de Compras no puede ser mayor a capacidad_local1&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;if(cant &gt; this.capacidad_local1) {&lt;br /&gt;JOptionPane.showMessageDialog( null, "Puede Comprar un Maximo  "+this.capacidad_local1 +&lt;br /&gt;" Promociones","ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;this.totalventa = cant * compra;&lt;br /&gt;local1.addElement(totalventa);&lt;br /&gt;JOptionPane.showMessageDialog( null, "Debe Cancelar $ "+totalventa,"ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;if (local ==2)   {&lt;br /&gt;int  compra= Integer.parseInt(JOptionPane.showInputDialog("Seleccione promocion : \n" +&lt;br /&gt;  "1 - Combo 1 $1000 \n" +&lt;br /&gt;  "2 - Combo 2 $1500 \n" +&lt;br /&gt;  "3 - Combo 3 $2500 "));&lt;br /&gt;if (compra == 1)&lt;br /&gt;compra = combo1;&lt;br /&gt;if (compra == 2)&lt;br /&gt;compra = combo2;&lt;br /&gt;if (compra == 3)&lt;br /&gt;compra = combo3;&lt;br /&gt;&lt;br /&gt;int  cant= Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;if(cant &gt; this.capacidad_local2)&lt;br /&gt;{&lt;br /&gt;JOptionPane.showMessageDialog( null, "Puede Comprar un Maximo  "+this.capacidad_local2 +&lt;br /&gt;" Promociones","ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;&lt;br /&gt;Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;this.totalventa = cant * compra;&lt;br /&gt;local2.addElement(totalventa);&lt;br /&gt;JOptionPane.showMessageDialog( null, "Debe Cancelar $ "+totalventa,"ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;if (local ==3)&lt;br /&gt;{&lt;br /&gt;int  compra= Integer.parseInt(JOptionPane.showInputDialog("Seleccione promocion : \n" +&lt;br /&gt;  "1 - Combo 1 $1000 \n" +&lt;br /&gt;  "2 - Combo 2 $1500 \n" +&lt;br /&gt;  "3 - Combo 3 $2500 "));&lt;br /&gt;if (compra == 1)&lt;br /&gt;compra = combo1;&lt;br /&gt;if (compra == 2)&lt;br /&gt;compra = combo2;&lt;br /&gt;if (compra == 3)&lt;br /&gt;compra = combo3;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;int  cant= Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;if(cant &gt; this.capacidad_local3) {&lt;br /&gt;JOptionPane.showMessageDialog( null, "Puede Comprar un Maximo  "+this.capacidad_local3 +&lt;br /&gt;" Promociones","ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;Integer.parseInt(JOptionPane.showInputDialog("Seleccione cantidad de promociones: "));&lt;br /&gt;}&lt;br /&gt;this.totalventa = cant * compra;&lt;br /&gt;local3.addElement(totalventa);&lt;br /&gt;JOptionPane.showMessageDialog( null, "Debe Cancelar $ "+totalventa,"ALERTA", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;public void verVentasTotales () {&lt;br /&gt;   &lt;br /&gt;// Informe Local 1&lt;br /&gt;&lt;br /&gt;  &lt;br /&gt; &lt;br /&gt;   &lt;br /&gt;   String Salida ="Indice\tValor\n";&lt;br /&gt;  &lt;br /&gt;   for(int i=0; i&lt;local1.size(); i++){&lt;br /&gt;   Salida += i + "\t" + local1.elementAt(i) + "\t" +  "\n";&lt;br /&gt;  &lt;br /&gt;  &lt;br /&gt;     }       &lt;br /&gt;&lt;br /&gt;JTextArea ventanaSalida = new JTextArea();&lt;br /&gt;ventanaSalida.setText(Salida);&lt;br /&gt; &lt;br /&gt;JOptionPane.showMessageDialog(null,ventanaSalida, "INFORME LOCAL 1", JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;&lt;br /&gt;// Informe Local 2&lt;br /&gt;&lt;br /&gt;   String Salida2 ="Indice\tValor\n";&lt;br /&gt;  &lt;br /&gt;   for(int i=0; i&lt;local2.size(); i++){&lt;br /&gt;   Salida2 += i + "\t" + local2.elementAt(i) + "\n";&lt;br /&gt;     }       &lt;br /&gt;&lt;br /&gt;JTextArea ventanaSalida2 = new JTextArea();&lt;br /&gt;ventanaSalida2.setText(Salida2);&lt;br /&gt;   &lt;br /&gt;JOptionPane.showMessageDialog(null,ventanaSalida2, "INFORME LOCAL 2", JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;// Informe Local 3&lt;br /&gt;&lt;br /&gt;   String Salida3 ="Indice\tValor\n";&lt;br /&gt;  &lt;br /&gt;   for(int i=0; i&lt;local3.size(); i++){&lt;br /&gt;   Salida3 += i + "\t" + local3.elementAt(i) + "\n";&lt;br /&gt;     }       &lt;br /&gt;&lt;br /&gt;JTextArea ventanaSalida3 = new JTextArea();&lt;br /&gt;ventanaSalida3.setText(Salida3);&lt;br /&gt;   &lt;br /&gt;JOptionPane.showMessageDialog(null,ventanaSalida3, "INFORME LOCAL 3", JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;}     &lt;br /&gt;}&lt;/span&gt;&lt;/code&gt;&lt;span style="font-family:courier new;"&gt;&lt;local1.size();&gt;&lt;span style="font-family:courier new;"&gt;&lt;local2.size();&gt;&lt;span style="font-family:courier new;"&gt;&lt;local3.size();&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;//Clase Main.java&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/local3.size();&gt;&lt;/span&gt;&lt;/local2.size();&gt;&lt;/span&gt;&lt;/local1.size();&gt;&lt;/span&gt;&lt;code&gt;import javax.swing.*;&lt;br /&gt;/**&lt;br /&gt;*&lt;br /&gt;* @author jorge&lt;br /&gt;*/&lt;br /&gt;public class Main {&lt;br /&gt;private static int x;&lt;br /&gt;private static boolean continuar = true;&lt;br /&gt;&lt;br /&gt;/**&lt;br /&gt;* @param args the command line arguments&lt;br /&gt;*/&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;// TODO code application logic here&lt;br /&gt;&lt;br /&gt;Locales milocal = new Locales();&lt;br /&gt;&lt;br /&gt;do&lt;br /&gt; {&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;// Menu Principal&lt;/span&gt;&lt;br /&gt;x = Integer.parseInt(JOptionPane.showInputDialog("Seleccione Opcion : \n" +&lt;br /&gt;"1 - Ventas \n" +&lt;br /&gt;"2 - Informe Ventas \n" +&lt;br /&gt;"3 - Salir "));&lt;br /&gt;&lt;br /&gt;switch (x)&lt;br /&gt;  {&lt;br /&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;// Ventas&lt;/span&gt;&lt;br /&gt; case 1: milocal.venderPromocion();&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;// Pregunto para realizar otra Operacion como calcular ventas o continuar vendiendo&lt;/span&gt;&lt;br /&gt; int b =  Integer.parseInt(JOptionPane.showInputDialog("Presione  : \n" +&lt;br /&gt; "1 - Continuar \n" +&lt;br /&gt; "2 - Salir \n"));&lt;br /&gt;&lt;br /&gt;if (b == 2)&lt;br /&gt; continuar = false;&lt;br /&gt;&lt;br /&gt; break;&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;// Informes , mostrar los informes de los 3 locales juntos&lt;/span&gt;&lt;br /&gt; case 2: milocal.verVentasTotales();&lt;br /&gt;&lt;br /&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;// Pregunto para realizar otra Operacion como calcular ventas o continuar vendiendo&lt;/span&gt;&lt;br /&gt; b =  Integer.parseInt(JOptionPane.showInputDialog("Presione  : \n" +&lt;br /&gt; "1 - Continuar \n" +&lt;br /&gt; "2 - Salir \n"));&lt;br /&gt; if (b == 2)&lt;br /&gt; continuar = false;&lt;br /&gt;&lt;br /&gt; break;&lt;br /&gt;&lt;br /&gt; // Salgo del siste&lt;br /&gt;  case 3: continuar = false;;&lt;br /&gt;&lt;br /&gt; default: break;&lt;br /&gt;&lt;br /&gt;   &lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;}while (continuar); &lt;span style="color: rgb(255, 0, 0);"&gt;//Saldra del Sistema&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;JOptionPane.showMessageDialog(null,"Que tenga buen dia", "Cerrar Sistema", JOptionPane.INFORMATION_MESSAGE);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;} &lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Veamos unas pantallas&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;span style="font-weight: bold;"&gt;Menu Locales&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SR6sRA48iJI/AAAAAAAAALQ/XY_eOhq3eOE/s1600-h/menu+loceles.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 290px; height: 152px;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SR6sRA48iJI/AAAAAAAAALQ/XY_eOhq3eOE/s400/menu+loceles.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838022366660754" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Menu Promociones&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6sg-SvycI/AAAAAAAAALY/61HyTcUkxug/s1600-h/Menu+promociones.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 286px; height: 152px;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6sg-SvycI/AAAAAAAAALY/61HyTcUkxug/s400/Menu+promociones.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838296547477954" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;Cantidad de Promociones a Comprar&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SR6suI0pVTI/AAAAAAAAALg/cTICtrw6Hyk/s1600-h/cantidad.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 289px; height: 95px;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SR6suI0pVTI/AAAAAAAAALg/cTICtrw6Hyk/s400/cantidad.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838522712315186" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Total a Pagar por la Compra&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SR6s-Qyzs1I/AAAAAAAAALo/ScvJJ5ZLzY0/s1600-h/aviso.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 259px; height: 89px;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SR6s-Qyzs1I/AAAAAAAAALo/ScvJJ5ZLzY0/s400/aviso.jpg" alt="" id="BLOGGER_PHOTO_ID_5268838799729996626" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Informe de las Ventas&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6tKaNxe-I/AAAAAAAAALw/SYNp068_bBA/s1600-h/Informe.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 259px; height: 138px;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6tKaNxe-I/AAAAAAAAALw/SYNp068_bBA/s400/Informe.jpg" alt="" id="BLOGGER_PHOTO_ID_5268839008417446882" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;xJlara&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2619580166592432700?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2619580166592432700/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2619580166592432700' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2619580166592432700'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2619580166592432700'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/11/ejemplo-con-vectores.html' title='Ejemplo con Vectores'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XpBh0uz0ZPw/SR6qdwobB8I/AAAAAAAAALI/8Sk4xk9ZVEs/s72-c/Menu.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-8510050306061481599</id><published>2008-10-22T08:09:00.003-03:00</published><updated>2008-10-22T08:17:00.459-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Encuentro Nacional Linux 2008 en la UdeC</title><content type='html'>Por fin ha llegado el día del Noveno Encuentro Linux en la UdeC, realmente me siento contento de participar en este evento.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SP8KMOi7K0I/AAAAAAAAAKQ/EuIp3Hn-Sqw/s1600-h/elinux2008.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SP8KMOi7K0I/AAAAAAAAAKQ/EuIp3Hn-Sqw/s400/elinux2008.jpg" alt="" id="BLOGGER_PHOTO_ID_5259934094971317058" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;El encuentro sera realizado los días 22, 23, 24 de Octubre (&lt;a href="http://2008.encuentrolinux.cl/"&gt;más información&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Para los rezagados o los que no pueden asistir por su trabajo ... pueden asistir el día Sábado 25  al Gnome Day  también en la UdeC&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SP8LU6DsGdI/AAAAAAAAAKY/GnulGZUxrwk/s1600-h/banner-dia-gnome-08.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SP8LU6DsGdI/AAAAAAAAAKY/GnulGZUxrwk/s400/banner-dia-gnome-08.png" alt="" id="BLOGGER_PHOTO_ID_5259935343602047442" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Para más información visitar http://live.gnome.org/DiaGNOME.&lt;br /&gt;&lt;br /&gt;x Jlara&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-8510050306061481599?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/8510050306061481599/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=8510050306061481599' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/8510050306061481599'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/8510050306061481599'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/encuentro-nacional-linux-2008-en-la.html' title='Encuentro Nacional Linux 2008 en la UdeC'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XpBh0uz0ZPw/SP8KMOi7K0I/AAAAAAAAAKQ/EuIp3Hn-Sqw/s72-c/elinux2008.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-3434820570684765261</id><published>2008-10-19T20:49:00.010-03:00</published><updated>2008-10-19T23:56:25.157-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Vectores, Arreglos, Arrays o como se llamen .... en JAVA</title><content type='html'>Siempre he pensado que uno de los conceptos que nos cuenta aprender en cualquier lenguaje de programación son los Arreglos o Vectores más aún cuando nosotros somos simples aprendices y no poseemos ninguna base de conocimientos solida en esto.&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;br /&gt;En java un arreglo es un conjunto de variables (llamados elementos o componentes) en el que se almacenan valores del mismo tipo.  (&lt;a href="http://es.wikipedia.org/wiki/Vector_%28programaci%C3%B3n%29"&gt;más&lt;/a&gt;).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SPvlg5V548I/AAAAAAAAAKA/w8F9ZQNHAUg/s1600-h/arreglo.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SPvlg5V548I/AAAAAAAAAKA/w8F9ZQNHAUg/s400/arreglo.png" alt="" id="BLOGGER_PHOTO_ID_5259049343196455874" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;El siguiente ejemplo es tomado y adaptado del libro &lt;span style="font-weight: bold;"&gt;"&lt;a href="http://www.antartica.cl/antartica/servlet/LibroServlet?action=fichaLibro&amp;amp;id_libro=25187"&gt;Como Programar JAVA&lt;/a&gt;"&lt;/span&gt; quinta edición de &lt;span style="font-weight: bold;"&gt;DEITEL&lt;/span&gt; he tenido la oportunidad de adquirir este grandioso libro y realmente es bueno (La editorial lo ha rebajado en un 40%).&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;//Creación de un arreglo&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt; // http://geekslinuxchile.blogspot.com/&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt; // Adaptado del libro "Como Programar JAVA" DEITEL&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;public class arreglo {&lt;br /&gt;&lt;br /&gt;public static void main ( String args[] )&lt;br /&gt;{&lt;br /&gt;int arreglo[];   &lt;span style="color: rgb(0, 153, 0);"&gt;// Declarar la referencia del arregl0&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;arreglo = new int[10]; &lt;span style="color: rgb(0, 153, 0);"&gt;// Crear arreglo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;String salida = "Indice\tValor\n";&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;// anexar de cada elemnto del arreglo al string salida&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;code&gt;for ( int contador = 0; contador &lt; arreglo.length; contador ++ )&lt;br /&gt;   salida += contador + "\t" + arreglo[contador] + "\n";&lt;br /&gt;&lt;br /&gt;  System.out.println (salida);&lt;br /&gt;&lt;br /&gt; }&lt;br /&gt;&lt;br /&gt;}&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;Como no le asignamos ningún valor a los elementos del arreglo se imprime cada elemento  con un valor por defecto (en este caso 0).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SPvwwlWMWJI/AAAAAAAAAKI/WYT3WkKwR6Y/s1600-h/arreglo2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SPvwwlWMWJI/AAAAAAAAAKI/WYT3WkKwR6Y/s400/arreglo2.png" alt="" id="BLOGGER_PHOTO_ID_5259061707334768786" border="0" /&gt;&lt;/a&gt;&lt;span style="font-size:130%;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;(Pronto continuare con el manual.... )&lt;br /&gt;&lt;br /&gt;x Jlara&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-3434820570684765261?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/3434820570684765261/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=3434820570684765261' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3434820570684765261'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3434820570684765261'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/vectores-arreglos-arrays-o-como-se.html' title='Vectores, Arreglos, Arrays o como se llamen .... en JAVA'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XpBh0uz0ZPw/SPvlg5V548I/AAAAAAAAAKA/w8F9ZQNHAUg/s72-c/arreglo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-3641800233190343385</id><published>2008-10-16T11:12:00.011-03:00</published><updated>2008-10-17T12:54:31.173-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Java'/><title type='text'>Aprendiendo a Programar en  JAVA</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://iphoneseries.com/wp-content/uploads/2008/03/java_starting.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 143px; height: 143px;" src="http://iphoneseries.com/wp-content/uploads/2008/03/java_starting.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Uno de los lenguajes de programación que siempre me ha llamado la atención es &lt;a href="http://www.java.com/es/"&gt;JAVA &lt;/a&gt;por su portabilidad y además es multi pltaforma.&lt;br /&gt;&lt;br /&gt;Es por esto que en esta sección ire subiendo todos mis avances en este lenguaje... no prometo mucho ya que estoy partiendo desde Cero.&lt;br /&gt;&lt;br /&gt;Utilizare Java en Ubuntu 8.04 en entorno gráfico Xface para ver como instalar java visitar el siguiente vinculo en este bloc (&lt;a href="http://geekslinuxchile.blogspot.com/2008/09/instalar-java-development-kit-jdk-y.html"&gt;Instalar JDK en Linux&lt;/a&gt;)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Creando nuestro primero programa (Hola Mundo)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA&lt;/span&gt;: Guardar archivo con el mismo nombre de la Class y con extensión .java (&lt;span style="font-weight: bold;"&gt;holaMundo.java&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Compilar&lt;span style="color: rgb(51, 51, 255);"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;javac holaMundo.java&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ejecutar &lt;/span&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;java holaMundo&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(siempre seguir esta secuencia con todos los ejemplos)&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(0, 153, 0);"&gt;/*Primer ejercicio de Java&lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;  http://geekslinuxchile.blogspot.com/ &lt;/span&gt; &lt;span style="color: rgb(0, 153, 0);"&gt;  Autor: Jorge Lara Cravero */&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;import javax.swing.*;&lt;br /&gt;public class holaMundo{&lt;br /&gt;public static void main(String[] args) {&lt;br /&gt;String mensaje = "Hola Mundo";&lt;br /&gt;&lt;br /&gt;JOptionPane.showMessageDialog( null, mensaje, "Hola, Mundo!", JOptionPane.INFORMATION_MESSAGE );&lt;br /&gt;System.exit( 0 );&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;} &lt;/code&gt;&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/_XpBh0uz0ZPw/SPdUUdylgyI/AAAAAAAAAJg/cjQU301unWs/s1600-h/hola+mundo.png"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SPdUUdylgyI/AAAAAAAAAJg/cjQU301unWs/s400/hola+mundo.png" alt="" id="BLOGGER_PHOTO_ID_5257763800549262114" border="0" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&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;Este segundo Script busca una letra o palabra dentro de una cadena&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;Incluir la clase Input&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code&gt;/* Jorge Lara Cravero&lt;br /&gt;http://geekslinuxchile.blogspot.com/ */&lt;br /&gt;&lt;br /&gt;public class buscar{&lt;br /&gt;&lt;br /&gt;public static void main( String args[] )&lt;br /&gt;{&lt;br /&gt;&lt;br /&gt;Input dato= new Input();&lt;br /&gt;System.out.println(".... Ingrese Cadena ....");&lt;br /&gt;   String letras = dato.getValue();&lt;br /&gt;&lt;br /&gt;System.out.println(".... Ingrese frase ....");&lt;br /&gt;String frase = dato.getValue();&lt;br /&gt;&lt;br /&gt;String salida = " se encuentra en el índice " + letras.indexOf( frase );&lt;br /&gt;&lt;br /&gt;System.out.println (salida);&lt;br /&gt;&lt;br /&gt;}&lt;br /&gt;}&lt;br /&gt;&lt;br /&gt;Código se ejecutará de la siguiente forma:&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SPixgwmxQlI/AAAAAAAAAJo/DOkKBo1Q6P8/s1600-h/cadena+1.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SPixgwmxQlI/AAAAAAAAAJo/DOkKBo1Q6P8/s400/cadena+1.png" alt="" id="BLOGGER_PHOTO_ID_5258147741316498002" 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/_XpBh0uz0ZPw/SPix2mDS6TI/AAAAAAAAAJw/jyEY7knAJFU/s1600-h/cadena2.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SPix2mDS6TI/AAAAAAAAAJw/jyEY7knAJFU/s400/cadena2.png" alt="" id="BLOGGER_PHOTO_ID_5258148116440475954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;Si observamos yo escribí &lt;span style="color: rgb(204, 0, 0); font-weight: bold;"&gt;Jorge Lara&lt;/span&gt; y quiero buscar la palabra &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;lara&lt;/span&gt; con minúsculas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SPiyKYE17JI/AAAAAAAAAJ4/WrQSYUv_ljM/s1600-h/cadena3.png"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SPiyKYE17JI/AAAAAAAAAJ4/WrQSYUv_ljM/s400/cadena3.png" alt="" id="BLOGGER_PHOTO_ID_5258148456286252178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Obviamente Lara !=  lara&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota&lt;/span&gt; :&lt;span style="font-style: italic;"&gt; las imágenes corresponden a un código mas completo ya que si ustedes revisan el ejemplo todo sera por consola&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Además si quieren que el sistema diga no se encuentra!!! deben realizar una condición if - else&lt;br /&gt;considerando que cuando no se encuentra la palabra el sistema les arrojará un -1&lt;br /&gt;&lt;br /&gt;Sería algo así&lt;br /&gt;&lt;br /&gt;&lt;code&gt;int a = letras.indexOf( frase );&lt;br /&gt;&lt;br /&gt;if (a == -1)&lt;br /&gt;adivinen que sucede&lt;br /&gt;&lt;br /&gt;else&lt;br /&gt;&lt;br /&gt;adivinen que sucede &lt;/code&gt;&lt;br /&gt;&lt;code&gt;&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;x Jlara&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-3641800233190343385?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/3641800233190343385/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=3641800233190343385' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3641800233190343385'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3641800233190343385'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/aprendiendo-progranmar-en-java.html' title='Aprendiendo a Programar en  JAVA'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XpBh0uz0ZPw/SPdUUdylgyI/AAAAAAAAAJg/cjQU301unWs/s72-c/hola+mundo.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2959290792347830274</id><published>2008-10-15T22:31:00.002-03:00</published><updated>2008-10-15T22:33:44.763-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Páginas falsas de YouTube para atacar ordenadores</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.que20.com/wp-content/uploads/2007/09/youtube_logo.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 200px;" src="http://www.que20.com/wp-content/uploads/2007/09/youtube_logo.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Piratas informáticos están aprovechando las redes sociales para enviar vínculos a supuestos vídeos de YouTube, donde el usuario tiene que actualizar el software para su visualización.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;Especialistas en seguridad informática advierten de que hackers están usando páginas falsas de &lt;a target="_blank" href="http://www.yotube.com/"&gt;YouTube&lt;/a&gt; para engañar a los internautas a que abran sus ordenadores a software malicioso.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Los hackers envían enlaces a supuestos vídeos del portal de Google y los vínculos conectan a réplicas realistas de páginas de YouTube, indicando que se necesita una actualización del programa para ver el vídeo requerido. Aceptar esta actualización permite al hacker instalar malware que podrían inutilizar teclas, robar datos o permitir que tomase el control del ordenador afectado. Lo más probable es que las víctimas no se den cuenta, ya que el programa pirata les enviará luego al sitio real de YouTube mostrando el vídeo prometido.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Este engaño a través de páginas de YouTube falsas, según la agencia &lt;a target="_blank" href="http://www.afp.com/espanol/home"&gt;AFP&lt;/a&gt;, es parte de una creciente tendencia de los hackers a hacer uso de los populares sitios de redes sociales donde los internautas comparten vínculos y programas.&lt;/p&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Fuente (&lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.vnunet.es/"&gt;http://www.vnunet.es&lt;/a&gt;&lt;span style="font-style: italic;"&gt;)&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2959290792347830274?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2959290792347830274/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2959290792347830274' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2959290792347830274'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2959290792347830274'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/pginas-falsas-de-youtube-para-atacar.html' title='Páginas falsas de YouTube para atacar ordenadores'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2537299001496427787</id><published>2008-10-14T20:57:00.004-03:00</published><updated>2008-10-15T01:31:52.517-03:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Creando un Trigger en MYSQL</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://dev.mysql.com/common/logos/logo_mysql_sun_a.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 175px; height: 104px;" src="http://dev.mysql.com/common/logos/logo_mysql_sun_a.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;En este pequeño articulo mostraré como crear un &lt;a href="http://es.wikipedia.org/wiki/Trigger_%28base_de_datos%29"&gt;trigger &lt;/a&gt;  (o disparador)  en MYSQL que nos indique que usuario a eliminado algún registro de una tabla fabricantes de nuestra base de datos informática (ver en el ítem bases de datos de este bloc).&lt;br /&gt;&lt;br /&gt;Aunque son las 1 de la mañana realizaré  este manual pues durante la tarde  estuve trabajando con un compañero en esto y me di cuenta que los triggers de mysql soportan fácilmente realizar insert con registros por defecto como:&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;- &lt;span style="font-weight: bold;"&gt;CURRENT_USER() &lt;/span&gt; =&gt; Inserta el usuario que realizo la operacción;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;CURRENT_DATE() &lt;/span&gt; =&gt; Inserta la fecha en que se realizo la operacción;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;CURRENT_TIME() &lt;/span&gt; =&gt; Inserta la hora en   que se realizo la operacción;&lt;br /&gt;- &lt;span style="font-weight: bold;"&gt;CURRENT_TIMESTAMP() &lt;/span&gt; =&gt; Inserta la fecha y hora en  que se  realizo la operacción;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Pero  insertar registros como por ejemplo el código o nombre del registro que se elimino (o actualizo) mediante un trigger requiere de una mayor habilidad que espero se aclare ahora.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(204, 0, 0);"&gt;NOTA&lt;/span&gt;: &lt;span style="font-style: italic;"&gt;MYSQL no soporta más de 1 trigger en la misma tabla;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Manos a ala obra&lt;br /&gt;&lt;br /&gt;Creando las tablas (nota: la base de datos pueden llamarla informática o el nombre que deseen)&lt;br /&gt;&lt;br /&gt;Código SQL&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;CREATE TABLE  `articulos` (&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;`CODIGOART` int(11) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;`NOMBRE` varchar(100) default NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;`PRECIO` int(11) default NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;`CODFRABICANTE` int(11) NOT NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;PRIMARY KEY  (`CODIGOART`,`CODFRABICANTE`),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;KEY `CODFRABICANTE` (`CODFRABICANTE`)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;)&lt;br /&gt;ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSERT INTO `articulos`&lt;br /&gt;(`CODIGOART`, `NOMBRE`, `PRECIO`, `CODFRABICANTE`)&lt;br /&gt;VALUES&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(100, 'MOUSE', 4230, 5),&lt;/span&gt;&lt;br /&gt; &lt;span style="font-family:courier new;"&gt;(101, 'Notebook DELL', 439223, 3),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(102, 'Torre 50 DVD +R', 7110, 1),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(104, 'Base para notebook', 22514, 8),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(105, 'Computador Ensamblado PIV', 178214, 10),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(106, 'Teclado Multimedia PS/2', 4491, 6),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;(107, 'Notebook Aspire 5610', 466223, 4),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(108, 'Impresora Laser', 12591, 7),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(109, 'Audifonos y microfono Gamer', 18923, 9),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(110, 'lampara USB notebook', 9000, 5),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(111, 'mouse pad', 891, 10),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(112, 'Key PAD', 2691, 1),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;(112, 'Limpiador de Pantallas', 4500, 8),&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;(113, 'Mochila de Notebook', 29723, 6);&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;CREATE TABLE  `fabricantes` (&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;`CODIGO` int(11) NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;`NOMBRE` varchar(100) default NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;PRIMARY KEY  (`CODIGO`)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;)&lt;br /&gt;ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSERT INTO `fabricantes` (`CODIGO`, `NOMBRE`)&lt;br /&gt;VALUES&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(1, 'Isumos Nacionales y cía.'),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(3, 'Dell Computer Inc.'),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(2, 'HP'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(4, 'Acer internacional'),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(5, 'Genius'),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(6, 'PC Tronix'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(7, 'Sony'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(8, 'Kensignton'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;(9, 'Logitech'),&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;(10, 'Importadora Nacional');&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;ALTER TABLE `articulos`&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;  ADD CONSTRAINT `articulos_ibfk_1` FOREIGN KEY (`CODFRABICANTE`) REFERENCES `fabricantes` (`CODIGO`) ON DELETE CASCADE ON UPDATE CASCADE;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Bien ya poseemos 2 tablas relacionadas (fabricantes y articulos) ahora crearemos una nueva tabla a la que llamaremos &lt;span style="font-weight: bold;"&gt;cambios&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CREATE TABLE  `cambios` (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;`id` int(11) NOT NULL,&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;&lt;br /&gt;`nombre_art` varchar(50) default NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;`usuario` varchar(50) default NULL,&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;`FECHA` TIMESTAMP(0) NOT NULL DEFAULT '0000-00-00 00:00:00',&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;PRIMARY KEY  (`id`)&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;)&lt;br /&gt;ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;En esta tabla guardaremos  el id de articulo, el nombre, el usuario, la fecha y hora en que se elimine un registro de la tabla fabricantes.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Creando el Trigger&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;CREATE TRIGGER `informatica`.`fabricantes_before_ins_tr` BEFORE DELETE ON `informatica`.`fabricantes`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;FOR EACH ROW&lt;br /&gt;BEGIN&lt;br /&gt;&lt;/span&gt; &lt;span style="font-family:courier new;"&gt;INSERT INTO cambios SET id = old.CODIGO, nombre_art = old.Nombre, usuario = CURRENT_USER(), fecha = CURRENT_TIMESTAMP;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;END&lt;/span&gt;;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En este caso he utilizado &lt;span style="color: rgb(255, 0, 0);"&gt;old &lt;/span&gt;pues se trata de un &lt;span style="color: rgb(255, 0, 0);"&gt;delete &lt;/span&gt;en la tabla pero si fuese un &lt;span style="color: rgb(255, 0, 0);"&gt;update o insert&lt;/span&gt;  se debe utilizar el alias &lt;span style="color: rgb(255, 0, 0);"&gt;New&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ahora solo nos queda eliminar algun registro de la tabla fabricantes y revisar en la tabla cambios como ha quedado almacenda la información.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; &lt;span style="font-style: italic; color: rgb(0, 153, 0);"&gt;Para la creación de trigger hay que poseer atributos de super usuario del motor de bases de datos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Si falla revisar los puntos y comas ya que blogger me elimina algunos caracteres especiales al subir la información).&lt;br /&gt;&lt;br /&gt;más informacion en &lt;a href="http://es.wikipedia.org/wiki/Trigger_%28base_de_datos%29"&gt;wikipedia&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;x Jlara.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2537299001496427787?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2537299001496427787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2537299001496427787' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2537299001496427787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2537299001496427787'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/creando-un-trigger-en-mysql.html' title='Creando un Trigger en MYSQL'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-3283709704045849256</id><published>2008-10-10T23:41:00.006-04:00</published><updated>2008-10-11T00:27:18.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Cambiando la MAC en Linux</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.alobbs.com/images/magic-bizcard-back.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 103px; height: 142px;" src="http://www.alobbs.com/images/magic-bizcard-back.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Hace mas o menos un mes tuve que instalar un servidor linux como Gateway, firewall y Proxi... en un hotel Conocido de la región.&lt;br /&gt;&lt;br /&gt;La situación era la siguiente :&lt;br /&gt;&lt;br /&gt;1. No existia una conexión de Internet dedicada y en su  lugar había una DHCP de  (VTR) empresa que se destaca por capturar la MAC Address de las tarjetas de red para asi solo entregar la conexión de Internet a un equipo.&lt;br /&gt;&lt;br /&gt;Bueno inicialmente existia un router con la opción Clone Mac para compartir la conexión un una solo red.&lt;br /&gt;&lt;br /&gt;Yo por mi Parte tenía que separar fisicamente  la red en 2 redes.. hasta ahi todo ok... pero como además tenia que configurar un cortafuegos y compartir Internet me encontre con la necesidad que clonar la dirección MAC del router a la tarjeta eth0 de Linux (Debian 4.0)...&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;La forma de hacerlo.&lt;br /&gt;&lt;br /&gt;1.- Instalar&lt;br /&gt;&lt;strong style="font-family: courier new;"&gt;aptitude install macchanger&lt;/strong&gt; (apt-get install)&lt;br /&gt;&lt;br /&gt;2.- Detener la red&lt;br /&gt;&lt;strong&gt; /etc/init.d/networking stop&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;3.- Clonar MAC&lt;br /&gt;&lt;/span&gt;&lt;/strong&gt;&lt;strong&gt;$macchanger -m XX:XX:XX:XX:XX:XX eth0&lt;/strong&gt;&lt;br /&gt;Con esto último he ingreso la direccion MAC personalizada&lt;br /&gt;&lt;br /&gt;4.- Iniciar la red&lt;br /&gt;&lt;strong&gt; /etc/init.d/networking start&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: normal;"&gt;Con eso ya logre tener la Salida a Internet por la eth0.&lt;br /&gt;&lt;br /&gt;Sin duda que se pueden hacer muchas cosas más y aunque machanger guada la MAC y las carga automaticamente, yo para asegurarme cree un pequeno script que se carga junto con el inicio de la red (para no perder la MAC).&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;ALGUNOS EJEMPLOS&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/strong&gt;&lt;pre&gt;# macchanger eth1&lt;br /&gt;Current MAC: 00:40:96:43:ef:9c [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   00:40:96:43:ef:9d [wireless] (Cisco/Aironet 4800/340)&lt;/pre&gt;  &lt;pre&gt;# macchanger --endding eth1&lt;br /&gt;Current MAC: 00:40:96:43:e8:ec [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   00:40:96:6f:0f:f2 [wireless] (Cisco/Aironet 4800/340)&lt;/pre&gt;  &lt;pre&gt;# macchanger --another eth1&lt;br /&gt;Current MAC: 00:40:96:43:87:1f [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   00:02:2d:ec:00:6f [wireless] (Lucent Wavelan IEEE)&lt;/pre&gt;  &lt;pre&gt;# macchanger -A eth1&lt;br /&gt;Current MAC: 00:40:96:43:39:a6 [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   00:10:5a:1e:06:93 (3Com, Fast Etherlink XL in a Gateway)&lt;/pre&gt;  &lt;pre&gt;# macchanger -r eth1&lt;br /&gt;Current MAC: 00:40:96:43:f1:fc [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   6b:fd:10:37:d2:34 (unknown)&lt;/pre&gt;  &lt;pre&gt;# macchanger --mac=01:23:45:67:89:AB eth1&lt;br /&gt;Current MAC: 00:40:96:43:87:65 [wireless] (Cisco/Aironet 4800/340)&lt;br /&gt;Faked MAC:   01:23:45:67:89:ab (unknown)&lt;/pre&gt;  &lt;pre&gt;# ./macchanger --list=Cray&lt;br /&gt;Misc MACs:&lt;br /&gt;Num   MAC        Vendor&lt;br /&gt;---   ---        ------&lt;br /&gt;065 - 00:00:7d - Cray Research Superservers,Inc&lt;br /&gt;068 - 00:00:80 - Cray Communications (formerly Dowty Network Services)&lt;br /&gt;317 - 00:40:a6 - Cray Research Inc.&lt;/pre&gt;&lt;br /&gt;Visitar el sitio del creador de &lt;a href="http://www.alobbs.com/macchanger/"&gt;macchanger&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Jlara&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-3283709704045849256?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/3283709704045849256/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=3283709704045849256' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3283709704045849256'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/3283709704045849256'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/10/cambiando-la-mac-en-linux.html' title='Cambiando la MAC en Linux'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-7160514049265771103</id><published>2008-09-27T23:00:00.002-04:00</published><updated>2008-09-29T23:45:10.201-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Eliminar archivos logs antiguos en Linux</title><content type='html'>Una tarea común de mantenimiento en los sistemas operativos Linux (y que es extensivo a la mayoría de los sistemas operativos basados o clones de Unix) es la de limpieza de archivos de logs. Tanto el sistema operativo, como algún motor de base de datos y unos cuantos procesos propios pueden generar grandes cantidades de archivos de logs. Al largo plazo, es menester quitar estos archivos pues nos ocupan espacio, ya son obsoletos y nos suelen complicar las búsqueda.&lt;br /&gt;Por tal motivo, basado en la publicación original “Listar/Eliminar archivos por fechas en Linux” veamos como podemos desde el shell hacer búsquedas de archivos antiguos y eliminarlos. Está de más decir, que los comandos que a continuación se mencionan son candidatos a formar parte de un shell script y que probablemente sea ejecutado por el cron.&lt;br /&gt;&lt;br /&gt;Bien, basta de palabras y veamos algunos ejemplos prácticos:&lt;br /&gt;&lt;br /&gt;Buscar archivos actualizados hasta tres días atrás en el directorio actual:&lt;br /&gt;&lt;br /&gt;cd /var/log&lt;br /&gt;find -name \*.log -mtime +3&lt;br /&gt;&lt;br /&gt;Buscar archivos actualizados hasta tres días atrás en el directorio actual y eliminarlos:&lt;br /&gt;find . -name \*.log -mtime +3 -exec rm {} \;&lt;br /&gt;&lt;br /&gt;Buscar los archivos actualizados hasta un día atrás y mostrar su ruta completa:&lt;br /&gt;find /var/log/[a-z]* \*.log -mtime +1&lt;br /&gt;&lt;br /&gt;Lo mismo que en el segundo caso, si queremos eliminar los archivos devueltos por el comando anterior:&lt;br /&gt;find /var/log/[a-z]* \*.log -mtime +1 -exec rm {} \;&lt;br /&gt;&lt;br /&gt;Además, podemos afinar algo más la búsqueda utilizando el argumento -mmin en vez de -mtime:&lt;br /&gt;&lt;br /&gt;* -mtime n, busca archivos modificados n*24 horas atrás (n días atrás)&lt;br /&gt;* -mmin n, para archivos modificado n minutos atrás.&lt;br /&gt;&lt;br /&gt;PD: Esta linea se puede utilizar para eliminar respaldos antiguos si tenemos programado un cron de backup de una Base de datos u otros archivos como tgz. etc,&lt;br /&gt;&lt;br /&gt;find  *.tgz -mtime +6 -exec rm {} \; (&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;eliminarias los que tienen una semana de antiguedad)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;fuente (http://www.luchoedu.org/)&lt;br /&gt;&lt;br /&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/2086739885588520999-7160514049265771103?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/7160514049265771103/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=7160514049265771103' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7160514049265771103'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7160514049265771103'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/eliminar-archivos-logs-antiguos-en.html' title='Eliminar archivos logs antiguos en Linux'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-556822540354980352</id><published>2008-09-27T21:54:00.006-04:00</published><updated>2008-09-29T21:23:55.997-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>¿Que son las transacciones SQL ?</title><content type='html'>&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.4  (Win32)"&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;" align="left"&gt;Son un conjunto de instrucciones SQL que tienen la cualidad de ejecutarse como una sola unidad, es decir o se ejecutan todas o no se ejecuta ninguna.&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;A las tablas capaces de soportar transacciones se les conoce como ACID &lt;b&gt;(Atomicidad, Consistencia, &lt;/b&gt;&lt;span style="font-weight: bold;"&gt;Aislamiento &lt;/span&gt;&lt;b&gt;, Durabilidad)&lt;/b&gt; en inglés (Atomicity, Consistency, Isolation &amp;amp; Durability)&lt;/p&gt;  &lt;ol&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;Atomicidad 	:=&gt; &lt;/b&gt;Algo que no puede dividirse, osea todas las consultas son 	tratadas como una sola y estas solo se ejecutan cuando todas son 	correctas en el caso de existir un error no se ejecuta nada.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;Consistencia&lt;/b&gt; 	:=&gt; Esto esta ligado a la integridad referencial, es decir solo 	se pueden escribir datos validos respetando los tipos de datos 	declarados y la integridad referencial.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="font-weight: bold;"&gt;Aislamiento &lt;/span&gt;:=&gt; Cada transacción es ejecutada independientemente 	de otra transacción o mejor dicho una tras otra, luego de que 	estas transacciones son ejecutadas (exitosas o incorrectas) los 	cambios son visibles para el resto de los usuarios.&lt;/p&gt; 	&lt;/li&gt;&lt;li&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;Durabilidad :=&gt; 	&lt;/b&gt;&lt;span style=""&gt;Cuando se completa una 	transacción con éxito  los cambios se vuelven 	permanentes.&lt;/span&gt;&lt;/p&gt; 	&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;/p&gt; &lt;/li&gt;&lt;/ol&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;u&gt;&lt;b&gt;Ejemplo&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Veamos con el siguiente ejemplo cuan importante puede ser una transacción.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Supongamos que dos vendedores de una tienda consultan las disponibilidad de televisores LCD y solo hay uno es stock  (como estos están de moda) para realizar una venta  y solo queda un televisor en Stock.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;u&gt;&lt;b&gt;Primero solo con SQL &lt;/b&gt;&lt;/u&gt; &lt;/p&gt;   &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 &lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;: SELECT stock FROM televisores;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 : &lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;SELECT stock FROM televisores;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; UPDATE televisores  SET stock  =   stock -1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; UPDATE televisores  SET stock  =   stock -1;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;   &lt;p style="margin-bottom: 0cm; color: rgb(0, 153, 0);" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Primero al hacer los SELECT cada vendedor vera en su pantalla que hay disponible 1 televisor.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; font-style: italic;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;El &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;vendedor 1&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; venderá el televisor dejando el stock en 0, luego el &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;vendedor 2&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; que no sabe que el televisor ya ha sido vendido venderá el televisor (pensando que hay stock) y el stock sera -1 ya que el último ha sido vendido por el &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;vendedor 1&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Si fuese la vida real habrá un cliente que deberá esperar mas de lo normal para que llegue su televisor.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;u&gt;&lt;b&gt;Ahora los mismo con Transacciones&lt;/b&gt;&lt;/u&gt;&lt;/p&gt;    &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 : START TRANSACTION;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 &lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;: SELECT stock FROM televisores;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; UPDATE televisores  SET stock  =   stock -1;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 1 : COMMIT&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;; (ejecuta)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;START TRANSACTION;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt; SELECT stock FROM televisores;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 : ROLLBACK; &lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;(sale de la transacción sin hacer nada mas)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm; font-style: italic;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Vendedor 2 :&lt;/span&gt;&lt;/b&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;  Avisa a cliente que no hay disponibilidad y pregunta si quiere comprarlo y esperar unos días hasta que nuevamente exista stock.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Como hemos visto las operaciones se hicieron ordenadamente permitiendo la consistencia de los datos una vez que el primer vendedor termino la operación el vendedor 2 realizo sus consultas.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;Ejemplo 2  (Algo Mas trabajado)&lt;/span&gt;&lt;/b&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;Este ejemplo muestra como realizar operaciones  en una transacción tenemos 1 una tabla llamada &lt;/span&gt;&lt;span style="text-decoration: none;"&gt;&lt;b&gt;departamentos&lt;/b&gt;&lt;/span&gt;&lt;span style="text-decoration: none;"&gt; con la siguiente estructura y registros&lt;/span&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;       &lt;p style="margin-bottom: 0cm; font-weight: bold; color: rgb(102, 0, 0);" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;CREATE TABLE `departamentos` (&lt;br /&gt;`CODIGODEP` INTEGER(11) NOT NULL DEFAULT '0',&lt;br /&gt;`NOMBREDEP` VARCHAR(100) ,&lt;br /&gt;`PRESUPUESTO` INTEGER(11) ,&lt;br /&gt;PRIMARY KEY (`CODIGODEP`)&lt;br /&gt;)ENGINE=InnoDB&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;        &lt;p style="margin-bottom: 0cm; font-weight: bold; color: rgb(0, 102, 0);" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;INSERT INTO `departamentos` (`CODIGODEP`, `NOMBREDEP`, `PRESUPUESTO`) VALUES&lt;br /&gt;(1, 'Informatica', 300000),&lt;br /&gt;(2, 'Personal', 200000),&lt;br /&gt;(11, 'Calidad', 150000),&lt;br /&gt;(13, 'Seguridad', 450000),&lt;br /&gt;(56, 'Recursos Humanos', 900000),&lt;br /&gt;(77, 'Administracion', 1500000);&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm; text-align: justify;"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;y ahora crearemos  una nueva tabla departamentos2 y asignaremos el 30% del dinero del presupuesto de cada departamento  a la tabla departamentos2 , es decir en presupuesto de departamentos restaremos el 30% de su presupuesto y los asignaremos a los departamentos de de la tabla departamentos2. (las estructuras serán iguales e incuso mantendremos los mismos códigos de y nombres de los departamentos)&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;       &lt;p style="margin-bottom: 0cm; font-weight: bold; color: rgb(102, 0, 0);" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;CREATE TABLE `departamentos2` (&lt;br /&gt;`CODIGODEP` INTEGER(11) NOT NULL DEFAULT '0',&lt;br /&gt;`NOMBREDEP` VARCHAR(100) ,&lt;br /&gt;`PRESUPUESTO` INTEGER(11) ,&lt;br /&gt;PRIMARY KEY (`CODIGODEP`)&lt;br /&gt;)ENGINE=InnoDB&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;b&gt;&lt;span style="text-decoration: none;"&gt;y ahora las transacciones&lt;/span&gt;&lt;/b&gt;&lt;/p&gt; &lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;br /&gt;&lt;/p&gt;     &lt;p style="margin-bottom: 0cm; font-weight: bold; color: rgb(0, 0, 153);" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;START TRANSACTION;&lt;br /&gt;insert into `departamentos2`&lt;br /&gt;select codigodep, nombredep,  presupuesto * 0.30 from `departamentos`;&lt;br /&gt;update departamentos set presupuesto =  presupuesto - (presupuesto * 0.30);&lt;br /&gt;COMMIT;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;br /&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;El resultado ha sido una tabla de posee todos los registros de departamentos 1 y los presupuestos de ambas tablas han sido modificados correctamente sumando y restando respectivamente un 30%.&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SN7nmBpiG5I/AAAAAAAAAJQ/JiQX28Tqv9U/s1600-h/tablas.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SN7nmBpiG5I/AAAAAAAAAJQ/JiQX28Tqv9U/s400/tablas.jpg" alt="" id="BLOGGER_PHOTO_ID_5250888856024259474" border="0" /&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="margin-bottom: 0cm;" align="left"&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;&lt;span style="text-decoration: none;"&gt;&lt;span style=""&gt;Con esto evitamos que algún otro usuario este modificando la tabla departamentos cuando realizamos la operación&lt;br /&gt;&lt;br /&gt;Jlara&lt;br /&gt;&lt;/span&gt;&lt;/span&gt; &lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-556822540354980352?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/556822540354980352/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=556822540354980352' title='2 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/556822540354980352'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/556822540354980352'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/que-son-las-transacciones-sql.html' title='¿Que son las transacciones SQL ?'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XpBh0uz0ZPw/SN7nmBpiG5I/AAAAAAAAAJQ/JiQX28Tqv9U/s72-c/tablas.jpg' height='72' width='72'/><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-1531788825074766327</id><published>2008-09-26T21:06:00.004-04:00</published><updated>2008-09-26T21:39:35.791-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Instalar Java Development Kit (JDK) y Java Runtime Environment (JRE) en  Ubuntu Linux</title><content type='html'>En este pequeño tutorial explicare como instalar el JRE correcto en esta versión de Linux, ya que cuando vamos a descargar los archivos desde la página de &lt;a href="http://www.sun.com/"&gt;Sun &lt;/a&gt;hay tantos que aveces no sabemos cual se debe instalar.&lt;br /&gt;&lt;br /&gt;Instalación probada en ubuntu 7.10 desktop, Ubuntu 8.04 desktop y server.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Paquetes necesarios:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;=&gt; &lt;strong&gt;sun-java6-bin&lt;/strong&gt; : Sun Java Runtime Environment (JRE) 6&lt;/li&gt;&lt;li&gt;=&gt; &lt;strong&gt;sun-java6-demo&lt;/strong&gt; : Sun Java Development Kit (JDK) 6 demos&lt;/li&gt;&lt;li&gt;=&gt; &lt;strong&gt;sun-java6-jdk&lt;/strong&gt;  : Sun Java Development Kit (JDK) 6&lt;/li&gt;&lt;li&gt;=&gt; &lt;strong&gt;sun-java6-jre&lt;/strong&gt; : Sun Java Runtime Environment (JRE) 6&lt;/li&gt;&lt;/ol&gt;&lt;span style="font-weight: bold;"&gt;Instalar  Sun Java 6&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;Abra un intérprete de comandos (terminal) y escriba lo siguiente para instalar JDK y JRE:&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ sudo apt-get install sun-java6-bin sun-java6-jre sun-java6-jdk&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Aqui aparecerá un mensaje donde indicara todas las dependencias de paquetes a instalar, presionamos S para aceptar.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Instalación por defecto la versión Java &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ubuntu Linux viene con update-java-alternatives utilidad para las actualizaciones de todas las alternativas que pertenecen a un  kit de desarrollo para el lenguaje Java. Para seleccionar, JVM de Sun a lo dispuesto escriba:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ sudo update-java-alternatives -s java-6-sun&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;También es necesario editar un archivo llamado &lt;span style="font-weight: bold;"&gt;/etc/jvm&lt;/span&gt; . Este archivo  define por defecto  el  orden de búsqueda de  sistema para jvm (java virtual machine) . Cada lista  de  JVM  en el directorio JAVA_HOME debe estar en este  archivo.  La JVM por defecto del sistema es el primero disponible de arriba a abajo.  Abrir &lt;span style="font-weight: bold;"&gt;/etc/jvm&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ sudo vi /etc/jvm&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;Asegúrate  de añadir &lt;span style="font-weight: bold;"&gt;/usr/lib/jvm/java-6-sun&lt;/span&gt; en la parte superior de la lista JVM.&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;El archivo debe decir lo siguiente:&lt;br /&gt;&lt;br /&gt;&lt;code&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;&lt;strong&gt;/usr/lib/jvm/java-6-sun&lt;/strong&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;/usr/lib/jvm/java-gcj&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;/usr/lib/jvm/ia32-java-1.5.0-sun&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;/usr/lib/jvm/java-1.5.0-sun&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;/usr&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/code&gt;Guardar y cierrar el archivo. (Esc :wq)&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: bold;" id="result_box" dir="ltr"&gt;Configuración de la variable de entorno&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: normal;" id="result_box" dir="ltr"&gt;También es necesario configurar y JAVA_HOME variable PATH (en todo el sistema) de configuración . Abre tu $ HOME / .bash_profile o /etc/profile  :&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ vi $HOME/.bash_profile&lt;/code&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;Agregar siguiente línea:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;export JAVA_HOME=/usr/lib/jvm/java-6-sun&lt;br /&gt;export PATH=$PATH:$JAVA_HOME/bin&lt;/code&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;Guardar y cierrar el archivo. (Esc :wq)&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: bold;" id="result_box" dir="ltr"&gt;Prueba tu nuevo JDK&lt;br /&gt;&lt;br /&gt;&lt;div style="font-weight: normal;" id="result_box" dir="ltr"&gt;Escriba el siguiente comando para mostrar la versión:&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(0, 0, 0);"&gt;$ java -version&lt;/code&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Debe mostrar un mensaje como este&lt;span style="font-weight: bold;"&gt;:&lt;br /&gt;&lt;/span&gt;&lt;pre&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;java version "1.6.0_03"&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;Java(TM) SE Runtime Environment (build 1.6.0_03-b05)&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(51, 0, 0);"&gt;Java HotSpot(TM) Server VM (build 1.6.0_03-b05, mixed mode)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Si ves esto felicidades ya tienes todo lo necesario instalado)&lt;br /&gt;&lt;/pre&gt;&lt;div id="result_box" dir="ltr"&gt;&lt;span style="font-weight: bold;"&gt;Primer programa (Java Hola Mundo)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ vi holaMundo.java&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;Escriba el siguiente código:&lt;br /&gt;&lt;br /&gt;&lt;pre class="java"&gt;&lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;class&lt;/span&gt; holaMundo&lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;  &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;public&lt;/span&gt; &lt;span style="color: rgb(0, 0, 0); font-weight: bold;"&gt;static&lt;/span&gt; &lt;span style="color: rgb(153, 51, 51);"&gt;void&lt;/span&gt; main&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(170, 170, 221); font-weight: bold;"&gt;String&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;[&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;]&lt;/span&gt; args&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt; &lt;span style="color: rgb(102, 204, 102);"&gt;{&lt;/span&gt;&lt;br /&gt;      &lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;System&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;.out.println&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;(&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;"Hola, Mundo!"&lt;/span&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;)&lt;/span&gt;;&lt;br /&gt;  &lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(102, 204, 102);"&gt;}&lt;/span&gt;&lt;/pre&gt;&lt;br /&gt;&lt;div id="result_box" dir="ltr"&gt;Guardar y cerrar el archivo. holaMundo.java compilar y ejecutar el programa escribiendo dos  instrucciones:&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;code style="color: rgb(51, 0, 0);"&gt;$ javac holaMundo.java&lt;br /&gt;$ java &lt;span style="font-family:Georgia,serif;"&gt;holaMundo&lt;/span&gt;&lt;/code&gt;&lt;br /&gt;&lt;br /&gt;Salida:&lt;br /&gt;&lt;br /&gt;&lt;pre style="font-weight: bold; color: rgb(0, 0, 0);" class="java"&gt;Hola, Mundo!&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre&gt;&lt;br /&gt;&lt;/pre&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/2086739885588520999-1531788825074766327?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/1531788825074766327/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=1531788825074766327' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1531788825074766327'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1531788825074766327'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/instalar-java-development-kit-jdk-y.html' title='Instalar Java Development Kit (JDK) y Java Runtime Environment (JRE) en  Ubuntu Linux'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-4223451262139753138</id><published>2008-09-26T12:50:00.004-04:00</published><updated>2008-09-26T13:15:13.260-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Linux'/><title type='text'>Personalizando nuestra consola con Linux Logo</title><content type='html'>Linux logo es un pequeño script que permite ver el logo de la distribuccion Linux (solo lo he usado con Debian) en la pantalla inicial de Linux.&lt;br /&gt;&lt;br /&gt;Por lo general utilizo debian para la instalación de servidores sin entorno grafico por lo que me resultó interesante tener esta aplicación cada vez que accedo al equipo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SN0Uh6w75VI/AAAAAAAAAJI/R_KuDkbOehs/s1600-h/linuxlogo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SN0Uh6w75VI/AAAAAAAAAJI/R_KuDkbOehs/s400/linuxlogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5250375313526613330" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Instalación:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;em style="font-weight: bold;"&gt;apt-get install linuxlogo&lt;/em&gt;  (También se puede utilizar aptitude)&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Una vez instalado editamos como superusuario el siguiente fichero &lt;span style="font-weight: bold;"&gt;etc/inittab &lt;/span&gt;y nos dirigimos a la siguiente linea&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;em style="font-weight: bold;"&gt;1:2345:respawn:/sbin/getty 38400 tty1&lt;/em&gt; donde tty1 es la primera terminal virtual (ejemplo presionando Alt + F2 se abrira la tty 2).&lt;br /&gt;&lt;br /&gt;Modificamos la  linea quedando de esta menera:&lt;br /&gt;&lt;br /&gt;&lt;em style="font-weight: bold;"&gt;1:2345:respawn:/sbin/getty &lt;span style="color: rgb(204, 0, 0);"&gt;-f /etc/issue.linuxlogo&lt;/span&gt; 38400 tty1&lt;/em&gt; (Se puede hacer lo mismo con cada terminal para que en todas nos aparezca el logo)&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;Ahora reiniciamos :&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;/etc/init.d/linuxlogo restart&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Ahora cada vez que entremos al equipo nos aparecera el Logo.&lt;br /&gt;&lt;br /&gt;Si queremos verlo también por putty para los que se conectan ssh desde windows a Linux&lt;br /&gt;&lt;br /&gt;&lt;em style="font-weight: bold;"&gt;linux_logo &gt; /etc/motd&lt;/em&gt;&lt;br /&gt;&lt;br /&gt;Existen logos para todas las distribucciones de linux (si lo instalan en redhat, fedora, centos o cuaquier deribado deben utilizar yum en lugar de apt)&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Jlara&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/2086739885588520999-4223451262139753138?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/4223451262139753138/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=4223451262139753138' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/4223451262139753138'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/4223451262139753138'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/personalizando-nuestra-consola-con.html' title='Personalizando nuestra consola con Linux Logo'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XpBh0uz0ZPw/SN0Uh6w75VI/AAAAAAAAAJI/R_KuDkbOehs/s72-c/linuxlogo.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-7289990384131983673</id><published>2008-09-26T12:03:00.002-04:00</published><updated>2008-09-26T12:15:23.288-04:00</updated><title type='text'>Redes sociales e información pública</title><content type='html'>Este post, aunque ya se ha hablado mucho sobre este tema, va a tratar sobre ese gran contenedor de información que es Internet y las &lt;a href="http://es.wikipedia.org/wiki/Redes_sociales"&gt;redes sociales&lt;/a&gt;.&lt;p class="MsoNormal"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0KTovSe0I/AAAAAAAAAIk/G2xCZPqDy7g/s1600-h/redes+Sociales.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0KTovSe0I/AAAAAAAAAIk/G2xCZPqDy7g/s400/redes+Sociales.jpg" alt="" id="BLOGGER_PHOTO_ID_5250364073053420354" border="0" /&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;Ahora bien, ¿qué pasa con la información de Internet?, generalmente el usuario da por buena cualquier información que encuentre sobre un tema determinado. Podría ser cierto, pero... ¿nos podemos fiar?, si somos un poco paranoicos… &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;&lt;u1:p&gt;&lt;/u1:p&gt;¿Qué pasa con las redes sociales?&lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;Si intentamos darnos de alta en una red social, sólo nos piden nombre y apellidos (cosa muy fácil de mentir) y una dirección de correo electrónico (siempre se pueden crear cuantas anónimas o con nombres falsos), y una fecha de nacimiento. Con estos datos, yo mismo podría hacerme pasar por cualquier persona y difundir datos falsos, despectivos o incluso &lt;span class="SpellE"&gt;incriminatorios&lt;/span&gt; de una persona pública o de una empresa. Porque… ¿por qué no hacerme pasar por &lt;a href="http://www.hi5.com/friend/270878032--George%2Bbush--Profile-html"&gt;George Bush&lt;/a&gt; o &lt;a href="http://www.tagged.com/mypage.html?uid=1725488035"&gt;&lt;span class="SpellE"&gt;Vladímir&lt;/span&gt; Putin&lt;/a&gt;?, o por ejemplo podría hacerme pasar por un ingeniero del CERN (que ahora está muy de moda) y lanzar rumores sobre el funcionamiento del mismo o incluso por qué no, del&lt;a href="http://www.adn.es/files/ADNFIL20080402_0016"&gt; fin del mundo&lt;/a&gt;&lt;span class="GramE"&gt;?&lt;/span&gt;&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;/p&gt;  &lt;p class="MsoNormal" style="text-align: justify;"&gt;¿Cuánto daño puede hacer una información falsa en Internet?, &lt;o:p&gt;&lt;/o:p&gt;&lt;/p&gt;  Depende, ya que influyen muchos factores: repetición, medio de publicación, etc. Por eso se hace cada vez más necesario el poder conocer y cuantificar la mayor cantidad de información que esté “circulando” por la red, para poder detectar y mitigar en la medida de lo posible estos riesgos.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;José María Arce Guillén&lt;/span&gt; &lt;span style="font-style: italic;"&gt;S21sec &lt;/span&gt;&lt;span style="font-style: italic;" class="SpellE"&gt;labs&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-7289990384131983673?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/7289990384131983673/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=7289990384131983673' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7289990384131983673'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7289990384131983673'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/redes-sociales-e-informacin-pblica.html' title='Redes sociales e información pública'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0KTovSe0I/AAAAAAAAAIk/G2xCZPqDy7g/s72-c/redes+Sociales.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-6252008644712884485</id><published>2008-09-26T11:55:00.003-04:00</published><updated>2008-09-26T11:59:36.884-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Linux también tiene virus</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0GqBg0hII/AAAAAAAAAIc/4lsfNThRJps/s1600-h/powerbygnulinux.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 240px; height: 360px;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0GqBg0hII/AAAAAAAAAIc/4lsfNThRJps/s400/powerbygnulinux.png" alt="" id="BLOGGER_PHOTO_ID_5250360059614233730" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;En los últimos años ha crecido el malware diseñado para Linux, infectando gran cantidad de ordenadores y servidores con este sistema operativo.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Aunque &lt;strong&gt;Linux &lt;/strong&gt;es utilizado por una minoría en comparación con el número de usuarios de Windows, &lt;a target="_blank" href="http://www.vnunet.es/es/vnunet/news/2008/07/29/mac_os_x_ya_es_un_objetivo_de_los_hackers"&gt;al igual que está pasando &lt;strong&gt;Mac OS X&lt;/strong&gt;&lt;/a&gt;, ambos sistemas operativos cada vez tienen &lt;strong&gt;más popularidad entre los usuarios&lt;/strong&gt;. Por este motivo, los cibercriminales están creando malware desarrollado para que afecte específicamente a los equipos Apple u ordenadores con Linux.&lt;br /&gt;&lt;p style="text-align: justify;"&gt;Como destaca Sophos en su &lt;a target="_blank" href="http://www.sophos.com/security/whitepapers/sophos-security-report-jul08-srna"&gt;Informe de Seguridad de julio de 2008 sobre cibercrimen&lt;/a&gt;, el problema del &lt;strong&gt;malware contra Apple es actualmente muy pequeño&lt;/strong&gt; si se compara con el lanzado contra Windows, pero esto no significa que no haya riesgo. Desde la aparición del primer malware contra Mac OS X a finales de 2007 -generado por motivos económicos- ha habido varias tentativas por parte de los hackers para infectar y robar desde ordenadores Mac.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;El mismo informe señala que desde hace 6 años &lt;strong&gt;el malware RST-B&lt;/strong&gt;, diseñado para Linux, &lt;strong&gt;ha infectado un gran número de ordenadores y servidores&lt;/strong&gt; que usan este sistema operativo. Según los datos de SophosLabs, el nivel más alto de infección de Linux/RST-B con ordenadores comprometidos está en EE.UU, seguido de China y Alemania.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Pese a que Linux se presenta en varias distribuciones, el kernel o núcleo sobre el que se desarrollan las diferentes versiones es siempre el mismo, y por esta razón los virus creados para Linux se ejecutan en cualquier distribución pero pueden no tener el mismo efecto.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;(fuente vnunet.es)&lt;/span&gt;&lt;br /&gt;&lt;/p&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/2086739885588520999-6252008644712884485?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/6252008644712884485/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=6252008644712884485' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6252008644712884485'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6252008644712884485'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/linux-tambin-tiene-virus.html' title='Linux también tiene virus'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://4.bp.blogspot.com/_XpBh0uz0ZPw/SN0GqBg0hII/AAAAAAAAAIc/4lsfNThRJps/s72-c/powerbygnulinux.png' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2917191443256203525</id><published>2008-09-26T11:08:00.009-04:00</published><updated>2008-09-26T16:20:27.642-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Transacciones  y  bloqueo de Tablas MySQL</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Por defecto, MySQL se ejecuta con el modo &lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;font-size:100%;"  &gt;autocommit &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;activado.         Esto significa que en cuanto ejecute un comando que actualice         (modifique) una tabla, MySQL almacena la actualización en         disco.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Esta modalidad de &lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;font-size:100%;"  &gt;autocommit &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;solo puede ser desactivada si se esta trabajando con tablas &lt;/span&gt;&lt;span style="font-weight: bold;font-family:georgia;font-size:100%;"  &gt;InnoDB &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;(Que además son las únicas que soportan la integridad referencial en Mysql).&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Para desactivar momentáneamente el autocomit ejecutamos el comando:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="programlisting"&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;SET AUTOCOMMIT=0;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 0);"&gt;Luego de deshabilitar el autocommit (set autocommit = 0;) obligadamente tendremos que utilizar&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;obligadamente COMMIT para guardar o ROLLBACK para deshacer.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;Si quiere deshabilitar el modo autocommit para una serie única&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;de comandos, puede usar el comando &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;code class="literal"  style="font-family:georgia;"&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;START   TRANSACTION &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;code class="literal" face="georgia"&gt;&lt;br /&gt;&lt;/code&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span style=";font-family:georgia;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;Ejemplo:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Creare una nueva tabla en la Base de datos Empresa&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;CREATE TABLE `departamentos2` (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; `CODIGODEP` INTEGER(11) NOT NULL DEFAULT '0',&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; `NOMBREDEP` VARCHAR(100),&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; `PRESUPUESTO` INTEGER(11) DEFAULT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt; PRIMARY KEY (`CODIGODEP`)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;)ENGINE=InnoDB&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;y Ahora  insertare registros de la tabla departamentos a departamentos2 mediante una transacción&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;START TRANSACTION;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;SELECT @A := presupuesto&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;FROM departamentos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;WHERE codigodep =11;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;INSERT INTO departamentos2( codigodep, nombredep, presupuesto )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;VALUES ( 11, 'prueba', @A );&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;COMMIT;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;" &gt;En el ejemplo anterior guarde el presupuesto del departamento 11 en la variable &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-family:georgia;" &gt;@A&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;" &gt; y luego asigne ese presupuesto en la tabla departamentos2&lt;br /&gt;&lt;br /&gt;Ahora un ejemplo donde replicare todos los datos de un departamento en la tabla departamentos2&lt;br /&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;START TRANSACTION;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT @A := presupuesto, @B := codigodep, @C := nombredep&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;FROM departamentos&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;WHERE codigodep =33;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO departamentos2( codigodep, nombredep, presupuesto )&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;VALUES (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;@B , @C , @A&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;COMMIT ;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;" &gt;En el ejemplo anterior se copio todo un departamento al la tabla departamentos 2....&lt;br /&gt;&lt;br /&gt;Se puede  sumar los presupuestos y asignarlos así:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;START TRANSACTION;&lt;br /&gt;SELECT @A:=PRESUPUESTO FROM departamentos WHERE codigodep=11;&lt;br /&gt;UPDATE departamentos2 SET PRESUPUESTO = PRESUPUESTO + @A WHERE codigodep=33;&lt;br /&gt;COMMIT;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;font-size:100%;"  &gt;En este último ejemplo actualizo el presupuesto del departamento 33 de la tabla&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;font-size:100%;"  &gt;departamentos2 sumandole todo el presupuesto de la departamento 11 de la tabla&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;font-size:100%;"  &gt;departamentos&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;font-size:100%;"  &gt;Al realizar una transacción SQL se debe tener en cuenta que la tabla se bloquea &lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 0);font-family:georgia;font-size:100%;"  &gt;quedando solo habilitada a lo que estamos realizando nosotros&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;pre class="programlisting"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2917191443256203525?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2917191443256203525/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2917191443256203525' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2917191443256203525'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2917191443256203525'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/transaccionales-y-de-bloqueo-de-tablas.html' title='Transacciones  y  bloqueo de Tablas MySQL'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-6034536382111092064</id><published>2008-09-09T09:59:00.000-04:00</published><updated>2008-09-09T10:03:03.282-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Aumenta la creatividad de los cibercriminales</title><content type='html'>&lt;div style="text-align: justify;"&gt;La media de páginas infectadas durante el primer semestre de 2008 es tres veces mayor que en el mismo periodo de 2007.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Once  millones de malware&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;Sophos acaba de presentar un nuevo informe de seguridad que examina las tendencias de seguridad existentes y emergentes y ha identificado que los cibercriminales están incrementando su creatividad para utilizar nuevas técnicas en sus tentativas de defraudar dinero de los usuarios de Internet.&lt;br /&gt;Se estima que el total del malware existente sobrepasa los once millones, de los que Sophos recibe aproximadamente 20.000 nuevas muestras de software sospechoso cada día, lo que supone un nuevo programa malicioso cada cuatro segundos&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;El &lt;a href="http://www.sophos.com/securityreportjul2008" target="_blank"&gt;informe de Sophos&lt;/a&gt; revela que la mayor parte de los ataques han sido diseñados para intentar engañar a los sistemas de seguridad tradicionales tales como el escaneo del correo electrónico. Durante la primera mitad de 2008 se ha visto una explosión de ataques vía web, la preferida por los hackers con motivos económicos. El 90 por ciento de estas páginas, que utilizan Caballos de Troya y programas espía, son sitios web legítimos. Algunos de ellos, pertenecientes a grandes y reconocidas compañías incluidas en Fortune 500, han sido hackeadas a través de ataques de Inyecciones SQL.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Según el informe de Sophos el sitio web que más malware aloja es Blogger (Blogspot.com), el sistema de publicación de blogs, propiedad de Google, que contabiliza el dos por ciento de todo el malware que reside en sitios web a nivel mundial.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Además, el Informe de Seguridad de Sophos detalla intentos de hackers y spammers de aprovecharse de sitios Web 2.0, tales como Facebook o LinkedIn, atacar dispositivos con sistemas operativos distintos a Windows, tales como Apple Macs y Linux, y la probabilidad de ataques emergentes contra usuarios del popular iPhone de Apple.&lt;/p&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-style: italic;"&gt;fuente (&lt;/span&gt;&lt;a style="font-style: italic;" href="http://www.vnunet.es"&gt;http://www.vnunet.es&lt;/a&gt;&lt;span style="font-style: italic;"&gt;)&lt;/span&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-6034536382111092064?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/6034536382111092064/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=6034536382111092064' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6034536382111092064'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6034536382111092064'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/aumenta-la-creatividad-de-los.html' title='Aumenta la creatividad de los cibercriminales'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-5218966124904339000</id><published>2008-09-05T09:06:00.000-04:00</published><updated>2008-09-07T17:16:15.053-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Aplicando SQL Parte 4</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;div style="text-align: justify;"&gt;  Comenzaremos con un set de 20 nuevos ejercicios para continuar nuestro tutorial de bases de datos (&lt;a href="http://geekslinuxchile.blogspot.com/2008/08/bases-de-datos-tercera-parte-ejercicios.html"&gt;ver tercera parte&lt;/a&gt;).&lt;br /&gt;&lt;br /&gt;Para comenzar esta parte tendremos que crear una nueva Base de datos a la cual le llamaremos &lt;span style="font-weight: bold;"&gt;empresa &lt;/span&gt;la que a su vez tendrá 2 tablas relacionadas &lt;span style="font-weight: bold;"&gt;empleados &lt;/span&gt;y &lt;span style="font-weight: bold;"&gt;departamentos&lt;/span&gt;.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;CREATE DATABASE `empresa`;&lt;br /&gt;&lt;br /&gt;USE `empresa`;  (para proceder a crear las tablas solo si estamos en modo consola)&lt;br /&gt;&lt;br /&gt;CREATE TABLE `departamentos` (&lt;br /&gt;`CODIGODEP` INTEGER(11) ,&lt;br /&gt;`NOMBREDEP` VARCHAR(100) ,&lt;br /&gt;`PRESUPUESTO` INTEGER(11) ,&lt;br /&gt;PRIMARY KEY (`CODIGODEP`))&lt;br /&gt;ENGINE=InnoDB&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;CREATE TABLE `empleados` (&lt;br /&gt;`RUT` VARCHAR(10) ,&lt;br /&gt;`NOMBRE` VARCHAR(100) ,&lt;br /&gt;`APELLIDO` VARCHAR(200) ,&lt;br /&gt;`DEPARTAMENTO` INTEGER(11) ,&lt;br /&gt;PRIMARY KEY (`RUT`),&lt;br /&gt;) ENGINE=InnoDB&lt;br /&gt;&lt;br /&gt;ALTER TABLE EMPLEADOS ADD FOREIGN KEY (`DEPARTAMENTO`) REFERENCES `departamentos` (`CODIGODEP`) ON DELETE CASCADE ON UPDATE CASCADE&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Ahora insertaremos registros en la tablas creadas&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;INSERT INTO `departamentos` (`CODIGODEP`, `NOMBREDEP`, `PRESUPUESTO`) VALUES&lt;br /&gt;(1,'Informatica',1000000),&lt;br /&gt;(2,'Personal',9000000),&lt;br /&gt;(13,'Seguridad',500000),&lt;br /&gt;(56,'Recursos Humanos',5000000),&lt;br /&gt;(77,'Administracion',2000000);&lt;br /&gt;COMMIT;&lt;br /&gt;&lt;br /&gt;INSERT INTO `empleados` (`RUT`, `NOMBRE`, `APELLIDO`, `DEPARTAMENTO`) VALUES&lt;br /&gt;('10333444-1','Sofia','quintana',13),&lt;br /&gt;('10352097-6','Maria','Contreras',77),&lt;br /&gt;('11111111-1','Pedro','Tapia',2),&lt;br /&gt;('12052097-0','Jorge','Lara',1),&lt;br /&gt;('13456789-2','Maria','Albornoz',13),&lt;br /&gt;('16152094-2','Jose','Perez',1),&lt;br /&gt;('21345678-7','Manuel','Rodriguez',56),&lt;br /&gt;('23567876-4','Ignacio','Carrera',2),&lt;br /&gt;('6435456-6','Pedro','Asnar',56),&lt;br /&gt;('7654231-9','Eliana','Soto',13);&lt;br /&gt;COMMIT;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Todos los datos son inventados y no poseen relación con personas de la vida real xD)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SME5fqIb5-I/AAAAAAAAAFs/3KZd0JuiKUM/s1600-h/empresa.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SME5fqIb5-I/AAAAAAAAAFs/3KZd0JuiKUM/s400/empresa.jpg" alt="" id="BLOGGER_PHOTO_ID_5242534657284368354" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Ejercicios:&lt;/span&gt;&lt;style type="text/css"&gt;!--   @page { size: 21cm 29.7cm; margin: 2cm }   P { margin-bottom: 0.21cm }  --&gt;  &lt;/style&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;1. Obtener los apellidos de los empleados&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT APELLIDO FROM EMPLEADOS;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME6fBx-frI/AAAAAAAAAF0/eLqcCyo1tOE/s1600-h/e1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME6fBx-frI/AAAAAAAAAF0/eLqcCyo1tOE/s400/e1.jpg" alt="" id="BLOGGER_PHOTO_ID_5242535745964375730" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;2. Obtener los apellidos de los empleados&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(51, 51, 0);"&gt;sin repeticiones&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota&lt;/span&gt;&lt;span style="font-style: italic;"&gt; tendremos que crear un nuevo trabajador con un apellido repetido en este caso sera Perez para ejecutar esta consulta (esto debido a que hasta el momento no tenemos ningún apellido repetido)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO empleados (RUT, NOMBRE, APELLIDO, DEPARTAMENTO) VALUES&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;('13987345-9', 'Miguel', 'Perez', 13);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT APELLIDO FROM EMPLEADOS GROUP BY APELLIDO;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt; (como vemos solo aparece un Perez, esto gracias al Group By)&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME6fBx-frI/AAAAAAAAAF0/eLqcCyo1tOE/s1600-h/e1.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME6fBx-frI/AAAAAAAAAF0/eLqcCyo1tOE/s400/e1.jpg" alt="" id="BLOGGER_PHOTO_ID_5242535745964375730" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;3. Obtener todos los datos de los empleados que se apellidan Perez&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT * FROM EMPLEADOS WHERE APELLIDO = 'Perez';&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME9X30_ReI/AAAAAAAAAF8/ydyBGXdw-3o/s1600-h/3e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SME9X30_ReI/AAAAAAAAAF8/ydyBGXdw-3o/s400/3e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242538921568454114" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;4. Obtener todos los datos de los empleados que se apellidan Perez&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;y los que se apellidan Contreras&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT * FROM EMPLEADOS WHERE APELLIDO = 'Perez' or APELLIDO = 'Contreras';&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SME-F-OIiEI/AAAAAAAAAGE/MCEhtOqIE-Y/s1600-h/4e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SME-F-OIiEI/AAAAAAAAAGE/MCEhtOqIE-Y/s400/4e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242539713558513730" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;5. Obtener todos los datos de los empleados que trabajan en el departamento 1&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT RUT, NOMBRE, APELLIDO, DEPARTAMENTO FROM EMPLEADOS&lt;br /&gt;INNER JOIN DEPARTAMENTOS&lt;br /&gt;ON DEPARTAMENTO = CODIGODEP WHERE DEPARTAMENTO = 1;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SME_cT4e4wI/AAAAAAAAAGM/Gd01jMOdUFg/s1600-h/5E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SME_cT4e4wI/AAAAAAAAAGM/Gd01jMOdUFg/s400/5E.jpg" alt="" id="BLOGGER_PHOTO_ID_5242541196842033922" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;6. Obtener todos los datos de los empleados que trabajan para el departamento 1&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt; y para el departamento 13&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota Importante:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Como el rut es una clave primaria no podemos repetir un trabajador en otro departamento ya que nos dará un error de llave primaria, la solución seria&lt;/span&gt; incluir un campo rut en la tabla departamento y con ello tendriamos mas o menos solucionado esto, pero como no lo hice al comienzo y para no crear confuciones de nuevas relaciones agregare un campo llamado departamento 2 en la tabla empleados.&lt;br /&gt;&lt;span style="color: rgb(153, 0, 0); font-weight: bold;"&gt;ALTER TABLE EMPLEADOS ADD DEPARTAMENTO2 INTEGER DEFAULT NULL;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMFCO77cEfI/AAAAAAAAAGU/J1GC7os97QA/s1600-h/6A.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMFCO77cEfI/AAAAAAAAAGU/J1GC7os97QA/s400/6A.jpg" alt="" id="BLOGGER_PHOTO_ID_5242544265608565234" border="0" /&gt;&lt;/a&gt;El valor por defecto de los campos es Null (esto es distinto a cero y a vacio) .&lt;br /&gt;Ahora Asignare trabajadores a otro departamento de la empresa. (Los que estan en el departamento 1 los llevare al 13 tambien)&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;UPDATE  EMPLEADOS SET DEPARTAMENTO2 = 13 WHERE departamento = 1;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFHwCddonI/AAAAAAAAAGc/cm8s5HX0xEQ/s1600-h/6b.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFHwCddonI/AAAAAAAAAGc/cm8s5HX0xEQ/s400/6b.jpg" alt="" id="BLOGGER_PHOTO_ID_5242550331855708786" border="0" /&gt;&lt;/a&gt;Y ahora a ejecutar la sentencia solicitada en el ejercicio&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT RUT, NOMBRE, APELLIDO, DEPARTAMENTO, DEPARTAMENTO2 FROM EMPLEADOS&lt;br /&gt;WHERE DEPARTAMENTO = 1 OR DEPARTAMENTO = 13&lt;br /&gt;AND DEPARTAMENTO2 = 1 OR DEPARTAMENTO2 = 13;&lt;br /&gt;&lt;br /&gt;Nota:&lt;/span&gt;&lt;span style="font-style: italic;"&gt; He preguntado 1 ó 13 en ambos campos para filtrar correctamete la consulta.&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMFJaLpSLgI/AAAAAAAAAGk/hk7v6Iv-rVc/s1600-h/6C.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMFJaLpSLgI/AAAAAAAAAGk/hk7v6Iv-rVc/s400/6C.jpg" alt="" id="BLOGGER_PHOTO_ID_5242552155387342338" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;7. Obtener todos los datos de los empleados cuyo apellido comience con P.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;br /&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;SELECT * FROM EMPLEADOS WHERE APELLIDO LIKE 'P%';&lt;br /&gt;Nota:&lt;/span&gt;&lt;/span&gt;&lt;span style="float: left; width: 350px;"&gt;&lt;/span&gt;&lt;span style="color:green;"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/span&gt; es otra palabra clave que se utiliza en la cláusula &lt;span style="color:green;"&gt;&lt;b&gt;WHERE&lt;/b&gt;&lt;/span&gt;. Básicamente, &lt;span style="color:green;"&gt;&lt;b&gt;LIKE&lt;/b&gt;&lt;/span&gt; le permite hacer una búsqueda basada en un patrón en vez de especificar exactamente lo que se desea (como en &lt;span style="color:green;"&gt;&lt;b&gt;IN&lt;/b&gt;&lt;/span&gt;) o determinar un rango (como en &lt;span style="color:green;"&gt;&lt;b&gt;BETWEEN&lt;/b&gt;&lt;/span&gt;).&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;En este caso &lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-style: italic; font-weight: bold;"&gt;LIKE 'P%'; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;entregará todos los apellidos que comienzan con P&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFLwZNUtmI/AAAAAAAAAGs/4348sFzCwD8/s1600-h/7e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFLwZNUtmI/AAAAAAAAAGs/4348sFzCwD8/s400/7e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242554736008541794" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;8. Obtener el presupuesto total de todos los departamentos.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT NOMBREDEP, PRESUPUESTO FROM DEPARTAMENTOS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMFMm7ZTBiI/AAAAAAAAAG0/4cTMpz18YhY/s1600-h/8E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMFMm7ZTBiI/AAAAAAAAAG0/4cTMpz18YhY/s400/8E.jpg" alt="" id="BLOGGER_PHOTO_ID_5242555672898504226" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;9. Obtener el número de empleados de cada departamento.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT COUNT(DEPARTAMENTO), NOMBREDEP&lt;br /&gt;FROM EMPLEADOS INNER JOIN DEPARTAMENTOS&lt;br /&gt;ON DEPARTAMENTO = CODIGODEP&lt;br /&gt;OR DEPARTAMENTO2 = CODIGODEP  GROUP BY NOMBREDEP;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;En esta consulta he debido considerar que hay empleados que trabajan en 2 departamentos a la vez por ello realice el count a departamento pero a su vez en el inner Join&lt;br /&gt;ingrese el departamento2&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFQhzWOTDI/AAAAAAAAAG8/cgOFVUF4LDs/s1600-h/8b.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMFQhzWOTDI/AAAAAAAAAG8/cgOFVUF4LDs/s400/8b.jpg" alt="" id="BLOGGER_PHOTO_ID_5242559982885293106" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;10. Obtener un listado completo de cada empleado incluyendo por cada empleado los datos de syu departamento.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT NOMBREDEP, NOMBRE, APELLIDO, RUT&lt;br /&gt;FROM DEPARTAMENTOS INNER JOIN EMPLEADOS&lt;br /&gt;ON CODIGODEP = DEPARTAMENTO&lt;br /&gt;OR CODIGODEP = DEPARTAMENTO2 ORDER BY NOMBREDEP;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;En esta consulta para lo mi lo mas optimo fue hacer el select a departamento y el enner join a empleados puesto que como ya vengo mencionando tengo empleados en 2 departamentos a la vez (es un ejemplo mas realista)&lt;/span&gt;&lt;span style="font-style: italic;"&gt;:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMFT4gkll_I/AAAAAAAAAHE/_lsmoBENSdY/s1600-h/10e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMFT4gkll_I/AAAAAAAAAHE/_lsmoBENSdY/s400/10e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242563671517140978" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;11. Obtener un listado completo de cada empleado incluyendo por cada empleado los nombres y apellidos junto al nombre y presupuesto de su departament0&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT NOMBRE, APELLIDO, RUT, NOMBREDEP, PRESUPUESTO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;FROM DEPARTAMENTOS INNER JOIN EMPLEADOS&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;ON CODIGODEP = DEPARTAMENTO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;OR CODIGODEP = DEPARTAMENTO2 ORDER BY NOMBREDEP;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Nota: Los usuarios que pertenecen a dos departamentos aparecen con su presupuesto en ambos departamentos).&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMGFUpYEsqI/AAAAAAAAAHM/gWfkz_0crZs/s1600-h/11e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMGFUpYEsqI/AAAAAAAAAHM/gWfkz_0crZs/s400/11e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242618030986670754" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;12. Obtener un los nombres y apellidos de empleados que trabajen en departamentos con un presupuesto mayor a $500000&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT NOMBRE, APELLIDO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;FROM DEPARTAMENTOS INNER JOIN EMPLEADOS&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;ON CODIGODEP = DEPARTAMENTO&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;OR CODIGODEP = DEPARTAMENTO2 WHERE PRESUPUESTO &gt; 500000 ORDER BY NOMBREDEP;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMGG1mBv80I/AAAAAAAAAHU/itlDI1a5jOM/s1600-h/12E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMGG1mBv80I/AAAAAAAAAHU/itlDI1a5jOM/s400/12E.jpg" alt="" id="BLOGGER_PHOTO_ID_5242619696535040834" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;13. Obtener un los datos de los departamentos cuyo presupuesto es mayor al precio medio de todos los departamentos.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT NOMBREDEP, PRESUPUESTO FROM DEPARTAMENTOS&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;WHERE PRESUPUESTO &gt; ( SELECT AVG(PRESUPUESTO) FROM DEPARTAMENTOS);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMGLVgtdPaI/AAAAAAAAAHc/6LT4QE2xYJ4/s1600-h/13E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMGLVgtdPaI/AAAAAAAAAHc/6LT4QE2xYJ4/s400/13E.jpg" alt="" id="BLOGGER_PHOTO_ID_5242624642910076322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;14. Obtener unicamente los nombres de los departamentos que poseen más de 2 empleados.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT  NOMBREDEP&lt;br /&gt;FROM EMPLEADOS INNER JOIN DEPARTAMENTOS&lt;br /&gt;ON DEPARTAMENTO = CODIGODEP&lt;br /&gt;OR DEPARTAMENTO2 = CODIGODEP&lt;br /&gt;GROUP BY NOMBREDEP HAVING COUNT(DEPARTAMENTO) &gt; 2;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMINEyBYIII/AAAAAAAAAHk/lziNuTIQOCY/s1600-h/14e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMINEyBYIII/AAAAAAAAAHk/lziNuTIQOCY/s400/14e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242767292010864770" border="0" /&gt;&lt;/a&gt;En lo personal considero que esta consulta es mas completa indicando además cuantos empleados posee el departamento mencionado.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;SELECT COUNT(*) As CANTIDAD, NOMBREDEP&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;FROM EMPLEADOS INNER JOIN DEPARTAMENTOS&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;ON DEPARTAMENTO = CODIGODEP&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;OR DEPARTAMENTO2 = CODIGODEP&lt;/span&gt; &lt;span style="font-weight: bold; color: rgb(153, 51, 0);"&gt;GROUP BY NOMBREDEP HAVING COUNT(DEPARTAMENTO) &gt; 2; &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMINrQUeC_I/AAAAAAAAAHs/BcqgYDXeTgI/s1600-h/14eb.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMINrQUeC_I/AAAAAAAAAHs/BcqgYDXeTgI/s400/14eb.jpg" alt="" id="BLOGGER_PHOTO_ID_5242767952979037170" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;15. Añadir un nuevo departamento Calidad con presupuesto $40000 y código 11..&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO DEPARTAMENTOS (CODIGODEP, NOMBREDEP, PRESUPUESTO)&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;VALUES (11, 'Calidad', 40000);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Select * from departamentos;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMIPMwz01UI/AAAAAAAAAH0/f6hpKb53_C8/s1600-h/15e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMIPMwz01UI/AAAAAAAAAH0/f6hpKb53_C8/s400/15e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242769628147799362" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;16. Añadir un nuevo empleado al departamento calidad (Esther Vazquez rut 23456789-9).&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;INSERT INTO EMPLEADOS (RUT, NOMBRE, APELLIDO, DEPARTAMENTO)&lt;br /&gt;VALUES (23456789-9, 'Esther', 'Vazquez', 11);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMIQu0T9vfI/AAAAAAAAAH8/I86ZP__DZcw/s1600-h/16e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SMIQu0T9vfI/AAAAAAAAAH8/I86ZP__DZcw/s400/16e.jpg" alt="" id="BLOGGER_PHOTO_ID_5242771312715087346" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;17. Aplicar un recorte presupuestario del 10% a todos los departamentos.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE DEPARTAMENTOS SET PRESUPUESTO = PRESUPUESTO * 0.9;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;18. Reasignar los trabajadores del departamento 11 (Calidad) al departamento 1 (informática).&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE EMPLEADOS SET DEPARTAMENTO = 1 WHERE DEPARTAMENTO =11;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;19. Eliminar a todos los trabajadores del departamento 1 (informática).&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Nota:&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;Como ya he indicado hay empleados que están en 2 departamentos y se los elimino de informática también serán eliminados del departamento2 aunque este no sea informatica por lo que este ejercicio lo resolvere en 3 pasos.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;Importante&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;: Siempre se debe tener mucho cuidado en realizar un delete directo a la Base de datos ya que si no se asigna una condición &lt;span style="font-weight: bold;"&gt;Where &lt;/span&gt;serán eliminados todos los registros. ( No es exagerado realizar un backup antes de hacer un delete)&lt;/span&gt; recuerden que aquí no existe el comando deshacer....&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;1.- Primero eliminar todos los empledos que trabajen en el departamento 1 y que no posean un trabajo en un segundo departamento (por defecto el departamento2 debe se NULL)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE FROM EMPLEADOS WHERE DEPARTAMENTO = 1 AND DEPARTAMENTO2 &lt;=&gt; NULL;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;2.- Como yo se por las consultas anteriores que en la columna departamento 2 solo están asignados empleados al departamento 13 actualizare la información de manera de que los que están en informática (que por defecto también están el el dpto 13) serán asignados solo al departamento 13, pero como su primer departamento.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE EMPLEADOS  SET DEPARTAMENTO =DEPARTAMENTO2 WHERE  DEPARTAMENTO2 = 13;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="color: rgb(51, 51, 255);"&gt;3.- Ahora que ya dispongo de mi información actualizada procederé a eliminar la información del depratamento2 dejando el campo en NULL (recordemos que la misma información ya esta en la columna departamento y esto es solo para no dejar repetida la información en departamento2)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt; &lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE EMPLEADOS SET DEPARTAMENTO2 = NULL  WHERE DEPARTAMENTO2 = 13;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Veamos como quedo nuestra tabla &lt;span style="font-weight: bold;"&gt;select * from empleados;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMQ8VWtCt-I/AAAAAAAAAIE/1nyV_exT1fI/s1600-h/19e.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMQ8VWtCt-I/AAAAAAAAAIE/1nyV_exT1fI/s400/19e.jpg" alt="" id="BLOGGER_PHOTO_ID_5243382203735521250" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;20. Eliminar a todos los empleados que trabajen en un departamento con un presupuesto mayor a $2000000.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE &lt;span style="color: rgb(255, 0, 0);"&gt;A&lt;/span&gt; FROM EMPLEADOS &lt;span style="color: rgb(255, 0, 0);"&gt;A&lt;/span&gt; INNER JOIN DEPARTAMENTOS&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;ON DEPARTAMENTO = CODIGODEP &lt;span style="color: rgb(255, 0, 0);"&gt;WHERE PRESUPUESTO &gt; 2000000&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Nota:&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt; Aquí he utilizado un inner join nuevamente para unir las tablas  pero para que el delete se realice correctamente se debe asignar un alias a la tabla empleados en este caso mi alias es &lt;span style="color: rgb(255, 0, 0);"&gt;A&lt;/span&gt; ( si nos fijamos mi sentencia dice &lt;span style="color: rgb(255, 0, 0);"&gt;DELETE A FROM.&lt;/span&gt;...).&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Veamos como quedo nuestra información .... ahora solo deberiamos poseer empleados en departamentos con presupuestos de hasta $2000000&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-weight: bold;"&gt;SELECT RUT, NOMBRE, APELLIDO, NOMBREDEP, DEPARTAMENTO, DEPARTAMENTO2&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;FROM EMPLEADOS  INNER JOIN DEPARTAMENTOS&lt;/span&gt; &lt;span style="font-weight: bold;"&gt;ON DEPARTAMENTO = CODIGODEP;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMRBidTHyfI/AAAAAAAAAIM/kB1f_H8KWo4/s1600-h/20E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMRBidTHyfI/AAAAAAAAAIM/kB1f_H8KWo4/s400/20E.jpg" alt="" id="BLOGGER_PHOTO_ID_5243387926402288114" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;21. Eliminar a todos los empleados.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;Nota:&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0);"&gt;&lt;span style="font-style: italic;"&gt;  esta sentencia es la mas fácil de todas&lt;/span&gt;&lt;/span&gt;, pero no se olviden realizar un &lt;span style="font-weight: bold;"&gt;backup &lt;/span&gt;antes ya que si sus jefe les dio la orden siempre cabe la posibilidad de que se arrepienta o de que necesitemos esa información.&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;DELETE FROM EMPLEADOS;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Vemos como quedo nuestra información (aunque ya lo se..... no habrá nada)&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;SELECT * FROM EMPLEADOS;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMRC3WaKOJI/AAAAAAAAAIU/rNWG6T5FCPU/s1600-h/21E.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMRC3WaKOJI/AAAAAAAAAIU/rNWG6T5FCPU/s400/21E.jpg" alt="" id="BLOGGER_PHOTO_ID_5243389384841640082" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;Ha sido todo por el momento....  cualquier consulta publicando sus comentarios.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 51, 0);"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-5218966124904339000?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/5218966124904339000/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=5218966124904339000' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5218966124904339000'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5218966124904339000'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/09/aplicando-sql-parte-4.html' title='Aplicando SQL Parte 4'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XpBh0uz0ZPw/SME5fqIb5-I/AAAAAAAAAFs/3KZd0JuiKUM/s72-c/empresa.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-5529767209552491404</id><published>2008-08-29T00:01:00.000-04:00</published><updated>2008-08-29T00:11:03.295-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Diez millones de zombies enviando malware</title><content type='html'>&lt;span style="font-weight: bold;"&gt;Botnet&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Un informe realizado por Commtouch y PandaLabs durante el segundo trimestre del año detecta un incremento de los ordenadores zombie en todo el mundo.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="%20http://www.idg.es/BBDD_IMAGEN/image/botnet.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px;" src="http://www.idg.es/BBDD_IMAGEN/image/botnet.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;Los ordenadores zombies son máquinas infectadas por “bots” y controladas remotamente por el ciberdelincuente&lt;/strong&gt;. ‘Bot es el diminutivo de la palabra robot. Son pequeños programas que son introducidos en los ordenadores con la intención de permitir al ciberdelincuente tomar el control remoto de los mismos. Las redes de bots o ‘Botnets’, son grupos de ordenadores infectados por bots unidos para actuar de manera conjunta. El ciberdelincuente da instrucciones a esos ordenadores para, por ejemplo, descargar una nueva amenaza en el equipo, mostrar publicidad al usuario, lanzar ataques de denegación de servicio o, sobre todo, el envío de spam.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;El &lt;a href="http://www.pandasecurity.com/emailhtml/oxygen/Q2_08%20Email_Threats%20-%20Panda.pdf"&gt;informe realizado por Commtouch y PandaLabs&lt;/a&gt; muestra que durante el segundo trimestre del año Turquía se ha convertido en el país con mayor número de ordenadores zombie del mundo, con un once por ciento del total, seguido de cerca por Brasil, con un 8,4 por ciento y Rusia con un 7,4 por ciento. Estados Unidos, que en el primer trimestre contaban con un cinco por ciento del total de zombies, ha caído hasta la novena plaza, representando sólo el 4,3 por ciento del total.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Este gran número de “zombies” continúa siendo el principal causante de la avalancha de spam vivida por usuarios y empresas; y es que entre abril y junio el 74 por ciento del correo recibido en los buzones de correo era spam.&lt;br /&gt;Luis Corrons, director técnico de &lt;a target="_blank" href="http://www.pandalabs.com/"&gt;PandaLabs &lt;/a&gt;ha hecho referencia al estudio de Nucleus Research, una consultora independiente, que ha cifrado en 712 dólares el coste por cada empleado que tras recibir un e-mail lo eliminaba inmediatamente, sin ni siquiera abrirlo.&lt;/p&gt;&lt;a href="http://es.wikipedia.org/wiki/Zombie_%28ordenador%29"&gt;investigar más&lt;/a&gt;  (En wikipedia)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-5529767209552491404?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/5529767209552491404/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=5529767209552491404' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5529767209552491404'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5529767209552491404'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/diez-millones-de-zombies-enviando.html' title='Diez millones de zombies enviando malware'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-7923793630513094264</id><published>2008-08-28T23:55:00.000-04:00</published><updated>2008-08-29T00:00:19.029-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Utilizan falsos programas de descargas para infectar al usuario</title><content type='html'>&lt;p style="text-align: justify;"&gt;Panda Software advierte que los programas BitRoll-5.0.0.0 y Torrent101-4.5.0.0 ser están utilizando para instalar malware en los ordenadores de los usuarios.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.enlacesonora.com/lsia/blogimg/btlogo"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.enlacesonora.com/lsia/blogimg/btlogo" alt="" border="0" /&gt;&lt;/a&gt;Este tipo de programas se utilizan para intercambiar ficheros entre usuarios remotos, punto a punto. Ambos instaladores están disponibles para su descarga desde Internet, de modo que cualquier usuario puede acceder a ellos y quedar infectado.&lt;br /&gt;Los ciberdelincuentes también están utilizando otras falsas aplicaciones, como un programa llamado wavesoftwarecreative.exe (y que se hace pasar por un software de sonido) u otro llamado bitdownloadsetup.exe para instalar este código malicioso.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;El adware Lop está diseñado para mostrar publicidad de distintos anunciantes al usuario durante la navegación mediante ventanas emergentes, banners, etc. &lt;/strong&gt;Además, cambia la página de inicio de Internet Explorer por la de un buscador propio. Si se realizan búsquedas en él, éste devolverá como resultado páginas de publicidad relacionadas con la palabra buscada.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;strong&gt;Para dificultar su detección, este adware se conecta cada cierto tiempo a una página web desde la que descarga nuevos ficheros que contienen nuevas variantes de sí mismo&lt;/strong&gt;, de modo que sea muy difícil eliminar todos los ficheros maliciosos activos en el sistema. Además, si el usuario intenta utilizar el programa instalado, le permitirá realizar búsquedas de archivos, pero no descargarlos.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Como destaca Luis Corrons, director técnico de PandaLabs, “en muchas ocasiones, la instalación del adware era ‘aprobada’ por el usuario, ya que ésta se incluía en el acuerdo de licencia de distintos programas y el usuario, de manera inconsciente, la aceptaba durante el proceso de instalación del programa principal”. Pero, como explica Corrons, “en este caso, sin embargo, en el acuerdo de licencia de los programas no se menciona en ningún momento la instalación del adware Lop”.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Puede comprobar gratuitamente si está infectado con este ejemplar de malware desde la página web &lt;a href="http://www.infectedornot.com/" target="_blank"&gt;Infected or Not&lt;/a&gt;.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;(Fuente www.vnunet.es)&lt;/span&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-7923793630513094264?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/7923793630513094264/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=7923793630513094264' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7923793630513094264'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/7923793630513094264'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/utilizan-falsos-programas-de-descargas.html' title='Utilizan falsos programas de descargas para infectar al usuario'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-683370698066955192</id><published>2008-08-28T23:43:00.000-04:00</published><updated>2008-08-28T23:47:29.728-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>8 millones de afectados en uno de los mayores ciber ataques de la historia</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://i36.tinypic.com/24g6iz8.jpg"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 165px; height: 150px;" src="http://i36.tinypic.com/24g6iz8.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;p style="text-align: justify;"&gt;Un hacker ha estado robando los datos personales y números de tarjetas de crédito de todos los clientes de la cadena hotelera Best Western en Europa desde 2007.&lt;span id="more-2976"&gt;&lt;/span&gt;&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Durante doce meses, todos los &lt;strong&gt;datos de cada uno de los clientes de los más de 1.300 hoteles que la cadena Best Western tiene distribuidos por Europ&lt;/strong&gt;a, han sido extraídos por un hacker indio, según ha revelado una investigación del diario &lt;a href="http://sundayherald.com/news/heraldnews/display.var.2432225.0.0.php" target="_blank"&gt;Sunday Herald&lt;/a&gt;.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;El ataque, &lt;strong&gt;uno de los más graves de la historia&lt;/strong&gt; en cuanto a magnitud y alcance, &lt;strong&gt;afecta a unas 8 millones de personas&lt;/strong&gt; que se han alojado en los hoteles de esa compañía a lo largo del año.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Un hacker indio consiguió desbloquear el sistema de reservas del hotel, accediendo remotamente a la base de datos del mismo y puso en venta la información de cómo acceder a este sistema a través de una red controlada por la mafia rusa. Los datos extraídos incluyen la&lt;strong&gt; información completa de los clientes, dirección personal, números de teléfono, detalles de la tarjeta de crédito y puesto de trabajo&lt;/strong&gt;.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Según explica Jacques Erasmus, un ex hacker que ahora trabaja para la firma de seguridad Prevx, se trata de un gran golpe. “Hay gran cantidad de bases de datos de varias compañías hackeadas y que están en venta online, pero el volumen y la calidad de información que ha sido robada de Best Western es excepcional”.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;Aunque el agujero de seguridad fue cerrado inmediatamente por los técnicos de Best Western cuando el diario alertó a la compañía el pasado viernes, los expertos temen que la información haya sido ya usada para ataques delictivos. “&lt;strong&gt;Best Western desactivó el sistema inmediatamente&lt;/strong&gt;. Por el momento estamos trabajando con nuestros socios que se encargan de las tarjetas de crédito para asegurar que todos los procedimientos relevantes se cumplan y que los intereses de nuestros clientes estén protegidos”, ha dicho un portavoz de la empresa.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;La publicación señala que el hacker indio consiguió &lt;strong&gt;infectar el sistema de reservas de Best Western con un virus troyano&lt;/strong&gt; que registró las claves para entrar. En cuanto un trabajador de la compañía utilizó su nombre de usuario y contraseña, el hacker consiguió la información para conectarse remotamente sin ser descubierto.&lt;/p&gt;&lt;div style="text-align: justify;"&gt; &lt;/div&gt;&lt;p style="text-align: justify;"&gt;“Las grandes compañías utilizan antivirus para proteger su infraestructura, pero el problema de este sistema es que estos productos sólo detectan alrededor del 60 por ciento de los ataques que hay. En las manos justas, los virus pueden atravesar los programas, y esto es lo que ha pasado aquí”, ha explicado Erasmus.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-683370698066955192?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/683370698066955192/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=683370698066955192' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/683370698066955192'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/683370698066955192'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/8-millones-de-afectados-en-uno-de-los.html' title='8 millones de afectados en uno de los mayores ciber ataques de la historia'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://i36.tinypic.com/24g6iz8_th.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2974489787359642552</id><published>2008-08-19T19:33:00.000-04:00</published><updated>2008-09-05T00:45:56.267-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Bases de Datos Tercera Parte (ejercicios)</title><content type='html'>Continuando con el tutorial de bases de datos (&lt;a href="http://geekslinuxchile.blogspot.com/2008/08/comprendiendo-la-integridad-referencial.html"&gt;ver parte 1&lt;/a&gt;,  &lt;a href="http://geekslinuxchile.blogspot.com/2008/08/lenguage-de-manupulacin-de-datos-lmd.html"&gt;ver parte 2&lt;/a&gt;) en esta tercera parte me enfocare solo a la creación de ejercicios con sus respectivos resultados para que puedan servir de ejemplo.&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;11.- Obtener un listado de artículos, incluyendo por cada articulo los datos de su nombre, precio y el nombre de su fabricante.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;SELECT  &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;NOMBRE, &lt;span style="color: rgb(204, 0, 0);"&gt;art.&lt;/span&gt;PRECIO, &lt;span style="color: rgb(204, 0, 0);"&gt;fab.&lt;/span&gt;NOMBRE &lt;span style="color: rgb(204, 0, 0);"&gt;Nombre_Fabricante&lt;/span&gt;  from ARTICULOS &lt;span style="color: rgb(255, 0, 0);"&gt;art,&lt;/span&gt; fabricantes &lt;span style="color: rgb(255, 0, 0);"&gt;fab&lt;/span&gt; where &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE = &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;CODIGO;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKtavhDWy7I/AAAAAAAAAEk/4Xz85neQ5kk/s1600-h/11.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKtavhDWy7I/AAAAAAAAAEk/4Xz85neQ5kk/s400/11.jpg" alt="" id="BLOGGER_PHOTO_ID_5236378764121131954" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;12.- Obtener el precio medio de los productos de cada fabricante, mostrando el Código del fabricante.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select CODFRABICANTE, &lt;span style="color: rgb(153, 0, 0);"&gt;AVG(PRECIO)&lt;/span&gt; as promedio  from ARTICULOS &lt;span style="color: rgb(102, 0, 0);"&gt;GROUP by&lt;/span&gt; CODFRABICANTE;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;NOTA:&lt;/span&gt; En esta sentencia se ha incluido un nuevo concepto &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;GROUP by &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;span style="color: rgb(102, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;que sirve&lt;/span&gt;&lt;/span&gt;&lt;/span&gt; para agrupar la información, es esta caso se agrupo por fabricantes los cuales son diferenciados por si ID  o codigo de fabricante.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKtd-koAijI/AAAAAAAAAEs/0hqgny0z4qM/s1600-h/12.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKtd-koAijI/AAAAAAAAAEs/0hqgny0z4qM/s400/12.jpg" alt="" id="BLOGGER_PHOTO_ID_5236382321313090098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;13.- Obtener el precio medio de los productos de cada fabricante, mostrando el nombre del fabricante.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select FABRICANTES.NOMBRE, AVG(PRECIO) as promedio  from ARTICULOS , FABRICANTES WHERE ARTICULOS.CODFRABICANTE = FABRICANTES.CODIGO GROUP by FABRICANTES.NOMBRE;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKtngnuAVwI/AAAAAAAAAE0/69puQDm4NlQ/s1600-h/13.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKtngnuAVwI/AAAAAAAAAE0/69puQDm4NlQ/s400/13.jpg" alt="" id="BLOGGER_PHOTO_ID_5236392801863751426" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;14.- Obtener el nombre de los fabricantes que ofrezcan productos cuyo precio medio sea  igual a $5445.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; He seleccionado la cantidad de $5445 porque la consulta anterior me devolvió los valores promedio y en consultas anteriores se que &lt;span style="font-weight: bold;"&gt;insumos nacionales &lt;/span&gt; posee mas de un articulo. De lo contrario no se reflejaría la sentencia si un fabricante posee un solo articulo puesto que su promedio seria el mismo valor del articulo&lt;br /&gt;&lt;/div&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;select  &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;NOMBRE &lt;span style="color: rgb(51, 204, 0);"&gt;as EMPRESA&lt;/span&gt;&lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;from fabricantes &lt;span style="color: rgb(255, 0, 0);"&gt;fab&lt;/span&gt; &lt;span style="color: rgb(153, 0, 0);"&gt;inner JOIN&lt;/span&gt; articulos&lt;span style="color: rgb(255, 0, 0);"&gt; art&lt;/span&gt; on &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;CODIGO = &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE &lt;/span&gt; &lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;GROUP BY&lt;/span&gt; EMPRESA &lt;span style="color: rgb(204, 0, 0);"&gt;HAVING&lt;/span&gt; &lt;span style="color: rgb(204, 0, 0);"&gt;AVG&lt;/span&gt;(precio) = 5445;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;&lt;span style="font-weight: bold;"&gt;Descripción ampliada:&lt;/span&gt; (Aqui he incluido nuevos comandos)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span&gt;* A la tabla Fabricantes le he asignado un alias &lt;/span&gt;&lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;fab&lt;/span&gt;&lt;span&gt; &lt;span&gt;(para no escribir fabrica.nombre)&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span&gt;* A la tabla Articulos le he asignado un alias &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102); font-weight: bold;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;art &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 102);"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(para no escribir articulos.codfrabicante)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;*&lt;span&gt; Al campo Fabrica.&lt;/span&gt;&lt;span&gt;NOMBRE &lt;/span&gt;&lt;span&gt;ó fab.NOMBRE&lt;/span&gt;  le asige un alias &lt;span style="font-weight: bold; color: rgb(0, 153, 0);"&gt;EMPRESA&lt;/span&gt;.&lt;br /&gt;* &lt;span&gt;&lt;span style="font-weight: bold;"&gt;INNER JOIN&lt;/span&gt; &lt;span style="color: rgb(0, 102, 0);"&gt;devuelve todas las filas de ambas tablas, donde hay un Claves en común&lt;/span&gt;.&lt;/span&gt;&lt;br /&gt;&lt;span&gt;(En las consultas anteriores he escrito todos los componetes de ambas tablas &lt;span style="font-weight: bold;"&gt;ejemplo:&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;Select &lt;span style="color: rgb(255, 0, 0);"&gt;articulos&lt;/span&gt;.nombre , &lt;span style="color: rgb(255, 0, 0);"&gt;articulos&lt;/span&gt;.codfrabicante, &lt;span style="color: rgb(255, 0, 0);"&gt;articulos&lt;/span&gt;.precio,  &lt;span style="color: rgb(255, 0, 0);"&gt;fabricantes&lt;/span&gt;.codigo, &lt;span style="color: rgb(255, 0, 0);"&gt;fabricantes&lt;/span&gt;.nombre from articulos, fabricantes where ........&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;* &lt;span style="font-weight: bold;"&gt;GROUP BAY&lt;/span&gt; agrupa los resultado por un nombre de campo.&lt;br /&gt;* &lt;span style="font-weight: bold;"&gt;HAVING&lt;/span&gt; similar al where pero es tratado como función.&lt;br /&gt;* &lt;span style="font-weight: bold;"&gt;AVG &lt;/span&gt;devuelve el promedio.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKuYJ6Z3evI/AAAAAAAAAE8/-iX2XSjgTN4/s1600-h/14.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKuYJ6Z3evI/AAAAAAAAAE8/-iX2XSjgTN4/s400/14.jpg" alt="" id="BLOGGER_PHOTO_ID_5236446287812328178" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;14.- Obtener el nombre y precio del producto mas barato.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;select nombre, precio from articulos  order by precio limit 1;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMCqUKiYFRI/AAAAAAAAAFE/HGylha28LLk/s1600-h/15.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SMCqUKiYFRI/AAAAAAAAAFE/HGylha28LLk/s400/15.jpg" alt="" id="BLOGGER_PHOTO_ID_5242377229661902098" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Podríamos haber hecho subconsultas en el where y enredarnos bastante pero aquí lo mejor es utilizar &lt;span style="font-weight: bold;"&gt;LIMIT &lt;/span&gt;&lt;span style="font-style: italic;"&gt;por defecto el ordenamiento es ascendente es por ello que nos entrega el precio mas bajo... si ordenamos descendente  &lt;span style="font-weight: bold;"&gt;"order by nombre desc" &lt;/span&gt;nos entregara el producto mas caro.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;16.- &lt;/span&gt;&lt;meta equiv="CONTENT-TYPE" content="text/html; charset=utf-8"&gt;&lt;title&gt;&lt;/title&gt;&lt;meta name="GENERATOR" content="OpenOffice.org 2.4  (Win32)"&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;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;Obtener una lista con los nombres y precio de los artículos mas caro de cada proveedor (Incluyendo el nombre del proveedor)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;select &lt;span style="color: rgb(255, 0, 0);"&gt;a&lt;/span&gt;.nombre, &lt;span style="color: rgb(255, 0, 0);"&gt;a&lt;/span&gt;.precio, &lt;span style="color: rgb(255, 0, 0);"&gt;f&lt;/span&gt;.NOMBRE as Fabricante from articulos &lt;span style="color: rgb(255, 0, 0);"&gt;a&lt;/span&gt; &lt;span style="color: rgb(51, 0, 0);"&gt;inner join&lt;/span&gt; fabricantes &lt;span style="color: rgb(255, 0, 0);"&gt;f &lt;/span&gt;on &lt;span style="color: rgb(255, 0, 0);"&gt;a&lt;/span&gt;.codfrabicante = codigo &lt;span style="color: rgb(102, 0, 0);"&gt;group by&lt;/span&gt; &lt;span style="color: rgb(255, 0, 0);"&gt;f&lt;/span&gt;.nombre &lt;span style="color: rgb(102, 0, 0);"&gt;order by precio desc&lt;/span&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMCvVIdX2GI/AAAAAAAAAFM/6vO71DYfa10/s1600-h/16.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMCvVIdX2GI/AAAAAAAAAFM/6vO71DYfa10/s400/16.jpg" alt="" id="BLOGGER_PHOTO_ID_5242382743842052194" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;Aquí nuevamente utilice el limit en orden descendente  &lt;span style="font-style: italic;"&gt;y además agrupe por fabricantes para mostrar sus productos mas caros.. el inner join me ayuda a traer los registros de la tabla relacionada (fabricantes) el as Fabricantes es solo para darle nombre a la columna.&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;17.-&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt; Añadir un nuevo producto del fabricante 2 lampara USB $7990.&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;insert into articulos (codigoart, nombre, precio, codfrabicante)&lt;br /&gt;values (114, 'Lampara USB', 7990, 2);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;Para ver el resultado ahora aremos un select del fabricante 2 con sus productos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;span style="font-weight: bold;"&gt;select f.codigo, f.nombre, a.nombre, a.precio from fabricantes f &lt;/span&gt; &lt;span style="font-weight: bold;"&gt;inner join articulos a on f.codigo = codfrabicante where f.codigo = 2;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-style: italic;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;(Este select es muy completo pero solo de referencia para mostrar el registro insertado)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMC0edbYI9I/AAAAAAAAAFU/dTlCC_I_ADA/s1600-h/17.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SMC0edbYI9I/AAAAAAAAAFU/dTlCC_I_ADA/s400/17.jpg" alt="" id="BLOGGER_PHOTO_ID_5242388401647789010" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;18.-&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt; Cambiar el nombre del articulo 108 a Impresora Láser.&lt;/span&gt;&lt;br /&gt;select * from articulos where codigoart = 108;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMC12EzXT1I/AAAAAAAAAFc/zqSMcmwcQv4/s1600-h/18a.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMC12EzXT1I/AAAAAAAAAFc/zqSMcmwcQv4/s400/18a.jpg" alt="" id="BLOGGER_PHOTO_ID_5242389906865999698" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;UPDATE  articulos  set nombre = 'Impresora Laser'  where codigoart = 8;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMC3PbGeKvI/AAAAAAAAAFk/UAL4qmvdKHo/s1600-h/18b.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SMC3PbGeKvI/AAAAAAAAAFk/UAL4qmvdKHo/s400/18b.jpg" alt="" id="BLOGGER_PHOTO_ID_5242391441860078322" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;19.-&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt; Aplicar un descuento de un 10% a todos los productos.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;update articulos set precio = precio * 0.9;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;No necesita explicación todos los productos fueron rebajados en un 10%&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;20.-&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt; Aplicar un descuento de un $1777 cuyo precio sea mayor o igual $20000.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;update articulos set precio = precio - 1777 where precio &gt;= 20000;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;&lt;br /&gt;Eso es todo&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;... &lt;/span&gt;&lt;span&gt;Pronto segundo set de 20  ejercicios mas&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/span&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/2086739885588520999-2974489787359642552?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2974489787359642552/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2974489787359642552' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2974489787359642552'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2974489787359642552'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/bases-de-datos-tercera-parte-ejercicios.html' title='Bases de Datos Tercera Parte (ejercicios)'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKtavhDWy7I/AAAAAAAAAEk/4Xz85neQ5kk/s72-c/11.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-6171970863635551258</id><published>2008-08-18T15:46:00.000-04:00</published><updated>2008-08-18T15:50:11.532-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Google busca más seguridad a través de la criptografía</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.google.com.co/logos/Logo_60wht.gif"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 202px; height: 88px;" src="http://www.google.com.co/logos/Logo_60wht.gif" alt="" border="0" /&gt;&lt;/a&gt;La compañía ha implementado KeyCzar, una herramienta de código abierto que permite a los desarrolladores utilizar la codificación en sus aplicaciones.&lt;div style="text-align: justify;"&gt;                                                  &lt;/div&gt;&lt;p style="text-align: justify;"&gt;El objetivo final de KeyCzar es ofrecer a los desarrolladores una herramienta segura y fiable que pueda insertarse fácilmente en su código. Como ha destacado Steve Weiss, ingeniero de software de seguridad de Google, que ha ayudado a desarrollar KeyCzar, “es difícil utilizar la criptografía y, de hacerse mal, puede crear serios agujeros de seguridad”.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Weiss ha explicado que los errores comunes, como utilizar algoritmos no actualizados o no ser capaz de alternar con nuevas claves de codificación pueden llevar a que las herramientas sean completamente inútiles.&lt;strong&gt; El objetivo de KeyCzar es simplificar estos actos y permitir que los desarrolladores no sólo coloquen las herramientas de codificación en su lugar, sino que gestionen y cambien las claves si fuera necesario&lt;/strong&gt;.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Es decir que KeyCzar facilita la rotación y suspensión de las claves sin que el desarrollador tenga que preocuparse por la compatibilidad o que los cambios afecten al código fuente.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;Google ha advertido, no obstante, que KeyCzar no debe verse como un completo sistema de codificación, ya que no contiene librerías ni ejecuta la mayoría de las tareas de codificación, pero es un primer paso.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;La primera versión de KeyCzar está disponible para su descarga desde el servicio &lt;a href="http://code.google.com/p/keyczar/"&gt;Google Code&lt;/a&gt; de la compañía. La herramienta está actualmente limitada a los lenguajes de programación Java y Python, pero Google ya está preparando una versión para C++.&lt;/p&gt;&lt;p style="text-align: justify;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: justify;"&gt;(&lt;span style="font-style: italic;"&gt;fuente www.vnunet.es&lt;/span&gt;)&lt;br /&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-6171970863635551258?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/6171970863635551258/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=6171970863635551258' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6171970863635551258'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/6171970863635551258'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/google-busca-ms-seguridad-travs-de-la.html' title='Google busca más seguridad a través de la criptografía'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-1716923434511407366</id><published>2008-08-17T21:44:00.000-04:00</published><updated>2008-08-19T19:59:34.871-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Lenguage de Manipulación de Datos (LMD) Parte 2 Tutorial Bases de Datos</title><content type='html'>Continuando con el tutorial de bases de datos  (&lt;a href="http://geekslinuxchile.blogspot.com/2008/08/comprendiendo-la-integridad-referencial.html"&gt;ver la primera parte&lt;/a&gt;) es esta segunda parte introduciremos registros a nuestras bases de datos para luego trabajar manipulando esos registros con los archi conocidos comandos SQL  INSERT, SELECT, UPDATE y DELETE..&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Paso 1: INSERT&lt;/span&gt; (estos datos  son de demostracción ).&lt;br /&gt;&lt;span style="font-style: italic;"&gt;ingresaremos 10 registros en la tabla &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;FABRICANTES&lt;/span&gt;&lt;span style="font-style: italic;"&gt;.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;INSERT INTO `FABRICANTES`&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (CODIGO, NOMBRE)&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;VALUES &lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (1, 'Isumos Nacionales y cía.'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (2, 'HP Computer'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (3, 'Dell Computer Inc.'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (4, 'Acer internacional'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (5, 'Genius'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (6, 'PC Tronix'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (7, 'Sony'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (8, 'Kensignton'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (9, 'Logitech'),&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;  (10, 'Importadora Nacional');&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;PASO 2&lt;/span&gt; INSERT a la tabla &lt;span style="font-weight: bold;"&gt;Articulos&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span&gt;INSERT INTO `ARTICULOS`&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;  (CODIGOART, NOMBRE, PRECIO, CODFRABICANTE)&lt;br /&gt;VALUES&lt;br /&gt;(100, 'Mouse USB', 4700, 5),&lt;br /&gt;(101, 'Notebook DELL', 490000, 3),&lt;br /&gt;(102, 'Torre 50 DVD +R', 7900, 1),&lt;br /&gt;(103, 'Impresora Laser Color', 157000, 2),&lt;br /&gt;(104, 'Base para notebook', 26990, 8),&lt;br /&gt;(105, 'Computador Ensamblado PIV', 199990, 10),&lt;br /&gt;(106, 'Teclado Multimedia PS/2', 4990, 6),&lt;br /&gt;(107, 'Notebook Aspire 5610', 520000, 4),&lt;br /&gt;(108, 'Webcam Sony', 13990, 7),&lt;br /&gt;(109, 'Audifonos y microfono Gamer', 23000, 9),&lt;br /&gt;(110, 'lampara USB notebook', 10000, 5),&lt;br /&gt;(111, 'mouse pad', 990, 10),&lt;br /&gt;(112, 'Key PAD', 2990, 1);&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-family:courier new;"&gt;Ahora si como ya podemos registros podremos comenzar a trabajar con el LMD.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;font-family:courier new;" &gt;Comenzando con los Ejercicios&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;1.- Obtener los nombres de los productos de la tabla artículos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE from ARTICULOS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKjdi7eRMSI/AAAAAAAAACI/jwNHO8VJqCc/s1600-h/nombre_articulos.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKjdi7eRMSI/AAAAAAAAACI/jwNHO8VJqCc/s400/nombre_articulos.jpg" alt="" id="BLOGGER_PHOTO_ID_5235678158968140066" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;2.- Obtener los nombres y los precios de los productos de la tabla artículos.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE, PRECIO from ARTICULOS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKjez4V3ZPI/AAAAAAAAACQ/uQ5Og1j43Ss/s1600-h/nombrePrecio_articulos.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKjez4V3ZPI/AAAAAAAAACQ/uQ5Og1j43Ss/s400/nombrePrecio_articulos.jpg" alt="" id="BLOGGER_PHOTO_ID_5235679549696992498" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;3.- Obtener los nombres y los precios de los productos de la tabla artículos cuyos precios sean mayores a $15000.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE, PRECIO from ARTICULOS where Precio &gt; 15000;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKjf9bdwnkI/AAAAAAAAACY/q6i1BMkeifw/s1600-h/mayor15000.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKjf9bdwnkI/AAAAAAAAACY/q6i1BMkeifw/s400/mayor15000.jpg" alt="" id="BLOGGER_PHOTO_ID_5235680813255794242" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;4.- Obtener los nombres y los precios de los productos de la tabla artículos cuyos precios esten entre $5000 y $35000 ambas cantidades incluidas. Realizar 2 Consultas una utilizando AND y la otra utilizando BETWEEN.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE, PRECIO from ARTICULOS where Precio &gt;= 5000 and  &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;Precio &lt;=35000&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Insertemos 2 nuevos registros con los precios mencionados para que al ejecutar el Select veamos si realmente considera los valores $5000 y $35000 (:-D .... jeje).&lt;br /&gt;&lt;br /&gt;&lt;span style="font-family:courier new;"&gt;&lt;span&gt;INSERT INTO `ARTICULOS`&lt;/span&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;  (CODIGOART, NOMBRE, PRECIO, CODFRABICANTE)&lt;br /&gt;VALUES&lt;br /&gt;(112, 'Limpiador de Pantallas', 5000, 8),&lt;br /&gt;(1113, 'Mochila de Notebook', 35000, 6);&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKjkOcCSq4I/AAAAAAAAACg/0HuAAoY4eiI/s1600-h/mayor5000-35000.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKjkOcCSq4I/AAAAAAAAACg/0HuAAoY4eiI/s400/mayor5000-35000.jpg" alt="" id="BLOGGER_PHOTO_ID_5235685503513308034" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;La segunda sentencia sería:&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE, PRECIO from ARTICULOS where Precio BETWEEN  5000 and  35000;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;(Esto devolverá el mismo resultado anterior.... compruébenlo)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;5.- Obtener los nombres y los precios de los productos de la tabla artículos aumentando los precios en un 33%.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select NOMBRE, PRECIO + (PRECIO * 0.33) from ARTICULOS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKjo7U-frNI/AAAAAAAAACo/YWZ4yhZTKDo/s1600-h/33%25.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKjo7U-frNI/AAAAAAAAACo/YWZ4yhZTKDo/s400/33%25.jpg" alt="" id="BLOGGER_PHOTO_ID_5235690672758959314" border="0" /&gt;&lt;/a&gt;Ahora a tomar la calculadora y comprobar el aumento de los precios en un 33%.&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Antes de seguir con el siguiente ejemplo explicare algo en pocas lineas, si nos fijamos en el ejemplo 4 la tabla correspondiente a precios dice &lt;span style="font-weight: bold;"&gt;ADD&lt;/span&gt; como encabezado, en otros motores de bases de datos como mysql pondría un encabezado como este &lt;span style="font-weight: bold; color: rgb(0, 0, 0);"&gt;PRECIO + (PRECIO * 0.33)&lt;/span&gt; o tal vez en SQL server diría &lt;span style="font-weight: bold;"&gt;default&lt;/span&gt;, aclarando el concepto es que el motor de bases de datos asume un nombre por defecto que obviamente ya no es &lt;span style="font-weight: bold;"&gt;PRECIO&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;Para mostrar un nombre personalizado debemos asignarle un nombre a la operación agregando la palabra &lt;span style="font-weight: bold;"&gt;AS&lt;/span&gt; en el select. (En el ejemplo pondré el nombre de aumentar_porcentaje al encabezado).&lt;br /&gt;&lt;/div&gt;&lt;span style="font-weight: bold;"&gt;SELECT&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt; NOMBRE, PRECIO + (PRECIO * 0.33) AS aumentar_porcentaje from ARTICULOS;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKoeu9fReiI/AAAAAAAAAC0/9GuDzYSAAE4/s1600-h/aumenta.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKoeu9fReiI/AAAAAAAAAC0/9GuDzYSAAE4/s400/aumenta.jpg" alt="" id="BLOGGER_PHOTO_ID_5236031308900170274" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;6.- Seleccionar el precio (promedio) de todos los artículos.&lt;/span&gt;&lt;br /&gt;Aquí entraremos a otros conceptos de SQL ya que existen diversas maneras para sacar el promedio considero que la mejor opcion  es utilizar la palabra &lt;span style="font-weight: bold;"&gt;AVERANGE&lt;/span&gt; (Devuelve el valor medio de una columna) al encabezado de la columna le pondremos promedio.&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select AVG(PRECIO) as promedio from ARTICULOS;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKojzVMqLQI/AAAAAAAAAC8/ALiKfcS11ro/s1600-h/promedio.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKojzVMqLQI/AAAAAAAAAC8/ALiKfcS11ro/s400/promedio.jpg" alt="" id="BLOGGER_PHOTO_ID_5236036881542163714" border="0" /&gt;&lt;/a&gt;(&lt;span style="font-style: italic;"&gt;Personalmente desconocida esta función sql... agradezco a mis colegas por su aporte&lt;/span&gt;)&lt;br /&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;7.- Seleccionar el precio (promedio) de todos los artículos cuyo codigo de fabricante sea 2.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;select AVG(PRECIO) as promedio_ID2 from ARTICULOS where CODFRABICANTES = 2;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKoqM7OEm3I/AAAAAAAAADE/gsdLexDHvO0/s1600-h/PROMEDIO2.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKoqM7OEm3I/AAAAAAAAADE/gsdLexDHvO0/s400/PROMEDIO2.jpg" alt="" id="BLOGGER_PHOTO_ID_5236043918315133810" border="0" /&gt;&lt;/a&gt;&lt;span style="font-weight: bold;"&gt;Nota&lt;/span&gt;:&lt;span style="color: rgb(255, 0, 0);"&gt; para los que siguen el tutorial desde la creación de las tablas, me acabo de dar cuenta que en lugar de escribir CODFABRICANTE escribí &lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(255, 0, 0);"&gt;CODFRABICANTE&lt;/span&gt;&lt;span style="color: rgb(255, 0, 0);"&gt; por lo que seguiré de esa forma en las consultas)&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;8.- Obtener el número de artículos cuyo precio sea menor o igual a $22000.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;SELECT COUNT(*) as total_articulos FROM articulos where precio &lt;= 22000;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;COUNT (*)&lt;/span&gt; función que  devuelve el número de filas seleccionadas en una consulta.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKosXnTlN3I/AAAAAAAAADM/eH4u06c8MBI/s1600-h/cantidad_articulos.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKosXnTlN3I/AAAAAAAAADM/eH4u06c8MBI/s400/cantidad_articulos.jpg" alt="" id="BLOGGER_PHOTO_ID_5236046300971349874" border="0" /&gt;&lt;/a&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;&lt;br /&gt;9.- Obtener el nombre y precio de los artículos cuyo precio sea mayor o igual a $22000 y ordenararlos descendente por precio, y luego ascendentemente por nombre .&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;SELECT NOMBRE, PRECIO from articulos where precio &gt;=22000 order by PRECIO DESC;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKoyNnj_wiI/AAAAAAAAADU/sARUJyqD1Os/s1600-h/descendente.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKoyNnj_wiI/AAAAAAAAADU/sARUJyqD1Os/s400/descendente.jpg" alt="" id="BLOGGER_PHOTO_ID_5236052726311272994" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Precios ordenados  de forma descendente&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt; &lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;SELECT NOMBRE, PRECIO from articulos where precio &gt;=22000 order by NOMBRE ASC;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKozRkX0hQI/AAAAAAAAADk/IUFWo_CvdBs/s1600-h/ascending.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKozRkX0hQI/AAAAAAAAADk/IUFWo_CvdBs/s400/ascending.jpg" alt="" id="BLOGGER_PHOTO_ID_5236053893686002946" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Nombres ordenados  de forma Ascendente&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="color: rgb(0, 51, 0); font-weight: bold;"&gt;10.- Obtener un listado completo de artículos, incluyendo por cada articulo todos los datos del artículo (todas las columnas) y de su fabricante.&lt;/span&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 102);"&gt;SELECT &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODIGOART, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;NOMBRE, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;PRECIO, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE, &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;CODIGO, &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;NOMBRE  from ARTICULOS &lt;span style="color: rgb(255, 0, 0);"&gt;art&lt;/span&gt;, fabricantes &lt;span style="color: rgb(255, 0, 0);"&gt;fab&lt;/span&gt; where &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE = &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;CODIGO;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Nota:&lt;/span&gt; &lt;span style="font-style: italic;"&gt;En esta sentencia he asignado los alias &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic;"&gt;&lt;span style="color: rgb(255, 0, 0);"&gt;art&lt;/span&gt; &lt;/span&gt;&lt;span style="font-style: italic;"&gt;y &lt;/span&gt;&lt;span style="font-weight: bold; font-style: italic; color: rgb(255, 0, 0);"&gt;fab&lt;/span&gt;&lt;span style="font-style: italic;"&gt; esto con el fin de evitar escribir los nombres completos de las tablas para cada campo.&lt;/span&gt; (ejemplo articulos.NOMBRE = &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;NOMBRE)&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Resultado de la consulta&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKo8r_lQ9lI/AAAAAAAAAD0/3kzQki9VsuQ/s1600-h/todo.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 428px; height: 203px;" src="http://4.bp.blogspot.com/_XpBh0uz0ZPw/SKo8r_lQ9lI/AAAAAAAAAD0/3kzQki9VsuQ/s400/todo.jpg" alt="" id="BLOGGER_PHOTO_ID_5236064243271398994" border="0" /&gt;&lt;span style="font-style: italic;"&gt;Clic sobre la imagen para ampliar&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;NOTA:&lt;/span&gt; Esta consulta nos devuelve toda la información almacenada en nuestras tablas aunque existe un pero.... (:-O)&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;Poseemos 2 campos llamado &lt;span style="font-weight: bold;"&gt;Nombre&lt;/span&gt; el de &lt;span style="font-weight: bold;"&gt;Fabricantes.Nombre&lt;/span&gt; y el &lt;span style="font-weight: bold;"&gt;Articulos.Nombre&lt;/span&gt; si ampliamos la imagen veremos a se le asigno automáticamente el encabezado &lt;span style="font-weight: bold;"&gt;NOMBRE1&lt;/span&gt; a los Fabricantes, si yo implemento esto tal cual en PHP o otro lenguaje de programación tal vez se nos genere un error por que el lenguaje no discriminara la diferencia de los campos, para ello crearmos un alias a ese nombre de campo.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Sentencia SQL: &lt;/span&gt;&lt;br /&gt;SELECT &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODIGOART, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;NOMBRE, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;PRECIO, &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE, &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;CODIGO, &lt;span style="color: rgb(255, 0, 0);"&gt;fab.&lt;/span&gt;NOMBRE &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Nombre_Fabricante&lt;/span&gt;  from ARTICULOS &lt;span style="color: rgb(255, 0, 0);"&gt;art&lt;/span&gt;, fabricantes &lt;span style="color: rgb(255, 0, 0);"&gt;fab &lt;/span&gt;where &lt;span style="color: rgb(255, 0, 0);"&gt;art.&lt;/span&gt;CODFRABICANTE =&lt;span style="color: rgb(255, 0, 0);"&gt; fab.&lt;/span&gt;CODIGO;&lt;br /&gt;&lt;br /&gt;Ahora nuestro campo Nombre.Fabricante se mostrara como &lt;span style="color: rgb(255, 0, 0); font-weight: bold;"&gt;Nombre_Fabricante.&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKpBJyw_q4I/AAAAAAAAAEY/oYjX-3soWWk/s1600-h/todoOK.jpg"&gt;&lt;img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKpBJyw_q4I/AAAAAAAAAEY/oYjX-3soWWk/s400/todoOK.jpg" alt="" id="BLOGGER_PHOTO_ID_5236069153273523074" border="0" /&gt;&lt;/a&gt;&lt;span style="font-style: italic;"&gt;Clic sobre imagen para ampliar&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;div style="text-align: left;"&gt;Ahora si he concluido esta segunda parte del tutorial ... espero les  sea de ayuda... publiquen sus comentarios.&lt;br /&gt;&lt;br /&gt;Próximamente la tercera parte con 10 ejemplos más.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geekslinuxchile.blogspot.com/2008/08/bases-de-datos-tercera-parte-ejercicios.html"&gt;ir a tercera parte&lt;/a&gt; (ánimo si no es tan complicado)&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&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/2086739885588520999-1716923434511407366?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/1716923434511407366/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=1716923434511407366' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1716923434511407366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1716923434511407366'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/lenguage-de-manupulacin-de-datos-lmd.html' title='Lenguage de Manipulación de Datos (LMD) Parte 2 Tutorial Bases de Datos'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_XpBh0uz0ZPw/SKjdi7eRMSI/AAAAAAAAACI/jwNHO8VJqCc/s72-c/nombre_articulos.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-5299482029171678530</id><published>2008-08-16T21:03:00.001-04:00</published><updated>2008-08-17T23:01:36.081-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Bases de Datos'/><title type='text'>Comprendiendo la Integridad Referencial</title><content type='html'>&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;En este pequeño tutorial tratare de explicar brevemente como funciona una integridad referencial (iremos de lo básico a lo más avanzado pero de apoco jeje)...&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Hace muy poco gracias a mis nuevos colegas descubrí un motor de base de datos relacionales llamado &lt;a href="http://www.firebird.com.mx/modules/news/"&gt;Firebird &lt;/a&gt;(es Open Source) y deriva de &lt;a href="http://es.wikipedia.org/wiki/InterBase"&gt;Interbase &lt;/a&gt;de Borland ... (avísenme si estoy equivocado) Veremos los ejemplos en &lt;a href="http://es.wikipedia.org/wiki/Mysql"&gt;Mysql &lt;/a&gt;y Firebird para ver las diferencias que se nos presentan.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;Este ejemplo (pertenece a mi profesor de taller de bases de datos y el código e complementación a mí). la idea es crear lo siguiente:&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold;"&gt;*- 1&lt;/span&gt; Base de Datos llamada &lt;span style="font-weight: bold;"&gt;informatica &lt;/span&gt;con 2 tablas &lt;span style="font-weight: bold;"&gt;fabricantes &lt;/span&gt;y &lt;span style="font-weight: bold;"&gt;articulos &lt;/span&gt;donde relacionaremos los articulos a un prove&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;e&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://upload.wikimedia.org/wikipedia/commons/3/30/Logo_Firebird.JPG"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 84px; height: 84px;" src="http://upload.wikimedia.org/wikipedia/commons/3/30/Logo_Firebird.JPG" alt="" border="0" /&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;dor.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;Primero en Firebrid (esto usando la versión 2.1)&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-style: italic;"&gt;Supongamos que ya hemos creado la base de datos informatica&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="font-weight: bold;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;br /&gt;&lt;br /&gt;CREATE TABLE FABRICANTES (&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;  CODIGO INTEGER NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;  NOMBRE VARCHAR(100) CHARACTER SET NONE COLLATE NONE);&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;ALTER TABLE FABRICANTES ADD CONSTRAINT PKFABRICANTES PRIMARY KEY (CODIGO);&lt;/span&gt;&lt;br /&gt;# Aquí Indico la llave Primaria &lt;/span&gt;&lt;br /&gt;______________________________________________________________________________________&lt;br /&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CREATE TABLE ARTICULOS (&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;CODIGOART INTEGER NOT NULL,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;NOMBRE VARCHAR(100) CHARACTER SET NONE NOT NULL COLLATE NONE,&lt;/span&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;PRECIO INTEGER,&lt;/span&gt;&lt;span style="font-weight: bold;"&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;br /&gt;CODFRABICANTE INTEGER NOT NULL);&lt;/span&gt;  &lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;&lt;br /&gt;ALTER TABLE ARTICULOS ADD CONSTRAINT PKARTICULOS PRIMARY KEY (CODIGOART,CODFRABICANTE);&lt;/span&gt;&lt;br /&gt;# Llave Primaria&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;ALTER TABLE ARTICULOS ADD CONSTRAINT FK_ARTICULOS FOREIGN KEY (CODFRABICANTE) REFERENCES FABRICANTES(CODIGO) ON DELETE CASCADE ON UPDATE CASCADE;&lt;/span&gt;&lt;br /&gt;# Genero la relación de Fabricantes a Artículos&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Nota 1:&lt;/span&gt; Siempre que relacionemos tablas debemos fijarnos que la tabla a la que haremos referencia exista.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Nota 2:&lt;/span&gt; En firebird todo es con mayúsculas.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;span style="font-weight: bold;"&gt;Nota 3&lt;/span&gt;: &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;ON DELETE CASCADE ON UPDATE CASCADE; &lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;quiere decir que cuando eliminemos un fabricante también eliminaremos los productos asociados a él en la tabla articulos. (los mismo al actualizar datos)... asi que cuidado con esto.&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;&lt;span style="font-weight: bold;"&gt;Nota 4&lt;/span&gt;:  &lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-family:arial;"&gt;La cláusula CONSTRAINT&lt;/span&gt; &lt;/span&gt;&lt;span style="color: rgb(0, 0, 0);font-size:100%;" &gt;, &lt;/span&gt;&lt;span style="font-size:100%;"&gt;Se utiliza en las instrucciones ALTER TABLE y CREATE TABLE para crear o eliminar índices.&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 0, 0);font-size:100%;" &gt;Nota 5&lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;:&lt;/span&gt;&lt;span style="font-size:100%;"&gt; &lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 153);"&gt;CHARACTER SET NONE COLLATE NONE&lt;span style="color: rgb(0, 0, 0);"&gt; Sirve para seleccionar la codificacion de caracteres en el ejemplo no seleccione ningún tipo.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(0, 0, 153);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div style="text-align: center;"&gt;&lt;center&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKeFAPozIqI/AAAAAAAAAB4/GW7Y5Rqm4hg/s1600-h/relaciones_firebird.jpg"&gt;&lt;img style="cursor: pointer; width: 418px; height: 174px;" src="http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKeFAPozIqI/AAAAAAAAAB4/GW7Y5Rqm4hg/s400/relaciones_firebird.jpg" alt="" id="BLOGGER_PHOTO_ID_5235299331085640354" border="0" /&gt;&lt;br /&gt;&lt;span style="font-size:78%;"&gt;Clic para agrandar Imagen&lt;/span&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;En la imagen se ve una pequeña leyenda  donde &lt;span style="font-weight: bold;"&gt;Parent&lt;/span&gt; es la tabla padre y &lt;span style="font-weight: bold;"&gt;Child&lt;/span&gt; la tabla hija.&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;/center&gt;&lt;/div&gt;&lt;br /&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;&lt;span style="color: rgb(102, 102, 102);"&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.mysql.com/common/logos/logo_mysql_sun.gif"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 169px; height: 56px;" src="http://www.mysql.com/common/logos/logo_mysql_sun.gif" alt="" border="0" /&gt;&lt;/a&gt;&lt;span style="font-family:arial;"&gt;&lt;span style="font-size:85%;"&gt;Ahora para que observemos que el código SQL es muy similar lo haremos en Mysql Server&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;(Forma de hacerlo Mysql)&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;CREATE TABLE `fabricantes` (&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;  `CODIGO` int(11) NOT NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;  `NOMBRE` varchar(100) default NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(0, 102, 0);"&gt;  PRIMARY KEY  (`CODIGO`)&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;CREATE TABLE  `articulos` (&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;br /&gt;`CODIGOART` int(11) NOT NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  `NOMBRE` varchar(100) default NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  `PRECIO` int(11) default NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  `CODFRABICANTE` int(11) NOT NULL,&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  PRIMARY KEY  (`CODIGOART`,`CODFRABICANTE`),&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  KEY `CODFRABICANTE` (`CODFRABICANTE`)&lt;br /&gt;&lt;/span&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;) ENGINE=InnoDB DEFAULT CHARSET=latin1;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;ALTER TABLE `articulos`&lt;/span&gt;&lt;br /&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;  ADD CONSTRAINT `articulos_ibfk_1` FOREIGN KEY (`CODFRABICANTE`) REFERENCES `fabricantes` (`CODIGO`) ON DELETE CASCADE ON UPDATE CASCADE;&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;(Forma estandar de codificar las tablas Mysql tambien reconocera este código como estandar SQL)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CREATE&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;FABRICANTES&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt;&lt;div class="syntax_indent1"&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODIGO&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;INTEGER&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NOT&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NULL&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;NOMBRE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;VARCHAR&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt; &lt;span class="syntax_digit syntax_digit_integer"&gt;100&lt;/span&gt;  &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;/div&gt;&lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;/span&gt;&lt;span class="syntax_comment syntax_comment_ansi"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;FABRICANTES&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ADD&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;PKFABRICANTES&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;PRIMARY&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;KEY&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODIGO&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="font-weight: bold;"&gt;    &lt;span style="font-size:85%;"&gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE &lt;/span&gt; fabricantes  &lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ENGINE&lt;/span&gt;  &lt;span class="syntax_punct"&gt;=&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnAttrib"&gt;InnoDB;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;    &lt;/div&gt; &lt;span style="font-size:85%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-family:arial;font-size:85%;"  &gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;/span&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CREATE&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;ARTICULOS&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt;&lt;div class="syntax_indent1"&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODIGOART&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;INTEGER&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NOT&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NULL&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;NOMBRE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;VARCHAR&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt; &lt;span class="syntax_digit syntax_digit_integer"&gt;100&lt;/span&gt;  &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;PRECIO&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;INTEGER&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODFRABICANTE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnType"&gt;INTEGER&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NOT&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;NULL&lt;/span&gt; &lt;/div&gt;&lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;/span&gt;&lt;span class="syntax_comment syntax_comment_ansi"&gt;&lt;/span&gt;&lt;br /&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt;&lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;ARTICULOS&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ADD&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CONSTRAINT&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;PKARTICULOS&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;PRIMARY&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;KEY&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODIGOART&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_listsep"&gt;,&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_identifier"&gt;CODFRABICANTE&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;div&gt;    &lt;span style="font-weight: bold;font-size:85%;" &gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE &lt;/span&gt; &lt;span class="syntax_quote syntax_quote_backtick"&gt;articulos &lt;/span&gt; &lt;span class="syntax_white syntax_white_newline"&gt;&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ENGINE&lt;/span&gt;  &lt;span class="syntax_punct"&gt;=&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_columnAttrib"&gt;InnoDB&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ALTER&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;TABLE&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_backtick"&gt;`articulos`&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ADD&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;FOREIGN&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;KEY&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_backtick"&gt;`CODFRABICANTE`&lt;/span&gt;  &lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;REFERENCES&lt;/span&gt;  &lt;span class="syntax_quote syntax_quote_backtick"&gt;`informatica`&lt;/span&gt;&lt;span class="syntax_punct syntax_punct_qualifier"&gt;.&lt;/span&gt;&lt;span class="syntax_quote syntax_quote_backtick"&gt;`articulos`&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_bracket_open_round"&gt;(&lt;/span&gt;&lt;div class="syntax_indent1"&gt; &lt;span class="syntax_quote syntax_quote_backtick"&gt;`CODFRABICANTE`&lt;/span&gt; &lt;/div&gt;&lt;span class="syntax_punct syntax_punct_bracket_close_round"&gt;)&lt;/span&gt; &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ON&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;DELETE&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CASCADE&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;ON&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;UPDATE&lt;/span&gt;  &lt;span class="syntax_alpha syntax_alpha_reservedWord"&gt;CASCADE&lt;/span&gt; &lt;span class="syntax_punct syntax_punct_queryend"&gt;;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class="syntax"&gt;&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: justify;"&gt;&lt;span class="syntax"  style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota 1:&lt;/span&gt;  Para trabajar con relaciones en Mysql siempre debemos utilizar &lt;/span&gt;&lt;span style="font-weight: bold;font-size:100%;" &gt;&lt;span class="syntax"&gt;&lt;span class="syntax_alpha syntax_alpha_columnAttrib"&gt;InnoDB&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt; para dar soporte a la integridad referencial.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota 2: &lt;/span&gt; Si nos fijamos vale lo mismo escribrir &lt;span style="font-weight: bold;"&gt;int &lt;/span&gt;o &lt;span style="font-weight: bold;"&gt;integer&lt;/span&gt; (recomiendo utilizar integer ya que otras bases de datos no soportan &lt;span style="font-weight: bold;"&gt;int&lt;/span&gt; abreviado y nos podemos mal acostumbrar)&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;&lt;span style="font-weight: bold;"&gt;Nota 3:&lt;/span&gt;  &lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="color: rgb(0, 0, 153); font-weight: bold;"&gt;A diferencia de Firebird (CHARACTER SET NONE NOT NULL COLLATE NONE&lt;/span&gt;&lt;/span&gt;&lt;span style="font-size:100%;"&gt;) en mysql utilizamos  &lt;/span&gt;&lt;span style=";font-family:arial;font-size:100%;"  &gt;&lt;span style="font-weight: bold; color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;DEFAULT CHARSET=latin1; &lt;/span&gt;&lt;/span&gt;&lt;span style="color: rgb(153, 0, 0);"&gt;&lt;span style="color: rgb(0, 102, 0);"&gt;&lt;span style="color: rgb(0, 0, 0);"&gt;(en ambos casos el motor asumio esa codificacion por defecto ya que yo no seleccione ningun tipo por lo que asumiremos que son sus valores por defecto.&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div style="text-align: center;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKeO8nESpkI/AAAAAAAAACA/3zA_BSoJQdk/s1600-h/relaciones_mysql.jpg"&gt;&lt;img style="cursor: pointer;" src="http://2.bp.blogspot.com/_XpBh0uz0ZPw/SKeO8nESpkI/AAAAAAAAACA/3zA_BSoJQdk/s400/relaciones_mysql.jpg" alt="" id="BLOGGER_PHOTO_ID_5235310263771768386" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;span style="font-size:85%;"&gt;Clic para ampliar&lt;/span&gt;&lt;br /&gt;&lt;span style="font-size:100%;"&gt;&lt;br /&gt;&lt;/span&gt;&lt;div style="text-align: left;"&gt;&lt;span style="font-size:100%;"&gt;En el siguiente tutorial  realizare los 4 operaciones básicas de Insert, Delete, Update y Select...&lt;/span&gt;.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://geekslinuxchile.blogspot.com/2008/08/lenguage-de-manupulacin-de-datos-lmd.html"&gt;ir a  la segunda Parte&lt;/a&gt;&lt;br /&gt;&lt;/div&gt;&lt;/div&gt;&lt;span style="font-family:arial;"&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/2086739885588520999-5299482029171678530?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/5299482029171678530/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=5299482029171678530' title='1 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5299482029171678530'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/5299482029171678530'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/comprendiendo-la-integridad-referencial.html' title='Comprendiendo la Integridad Referencial'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_XpBh0uz0ZPw/SKeFAPozIqI/AAAAAAAAAB4/GW7Y5Rqm4hg/s72-c/relaciones_firebird.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-1619101032843086523</id><published>2008-08-13T22:29:00.000-04:00</published><updated>2008-08-13T22:38:01.663-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>EspaBiblio Sistema de Gestión y Automatización de Bibliotecas</title><content type='html'>&lt;div style="text-align: justify;"&gt;&lt;a href="http://www.desem.cl/espabiblio/index.php"&gt;EspaBiblio&lt;/a&gt; es un sistema adaptado por mi (Se basa en &lt;a href="http://obiblio.sourceforge.net/"&gt;OpenBiblio&lt;/a&gt;)... comencé con este proyecto a  mediados del año 2005, luego el año 2007 estuvo congelado por falta de tiempo y recursos para mantener el proyecto, pero nuevamente esta online.... realmente he conseguido un buen proyecto.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div style="text-align: justify;"&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.desem.cl/espabiblio/img/llibro.png"&gt;&lt;img style="margin: 0pt 0pt 10px 10px; float: right; cursor: pointer; width: 180px; height: 180px;" src="http://www.desem.cl/espabiblio/img/llibro.png" alt="" border="0" /&gt;&lt;/a&gt;Espabiblio nace bajo el alero de un sistema para gestión de Bibliotecas desarrollado en PHP y MySQL por Dave Stevens (Código Libre y gratuitito) de EE.UU. llamado OpenBiblio, específicamente de la versión o Relace 0.5.1, proyecto que ya lleva más de 4 años.&lt;br /&gt;&lt;br /&gt;El nombre EspaBiblio quiere decir "Biblioteca En Español" y el desarrollo o la adaptación y continuación de OpenBiblio a espaBiblio la lleva a cabo Jorge Lara Cravero, Administrador de Linux y Web Master.&lt;br /&gt;&lt;br /&gt;EspaBiblio es un sistema automatizado de gestión de biblioteca, incluye las funcionalidades de Circulación, Catalogación, Administración de staff, permisos de funcionarios, OPAC, Informes, Estadísticas, Impresión de Cartas, etiquetas, soporta la Importación en Formato estándar Bibliotecológico MARC o USMARC y clasificación de estatus, como disponible, prestado, en reparación agrega soporte para reservas, etc..&lt;br /&gt;&lt;br /&gt;Entre las nuevas funcionalidades de EspaBiblio en Su versión 2.0 se agrega la funcionalidad de crear las etiquetas con códigos de barras automaticamente.&lt;br /&gt;&lt;br /&gt;Una vez catalogados los items solo es necesario ir a la pestaña reportes y generar las etiquetas (incluidos los codigos de barra).&lt;br /&gt;&lt;br /&gt;Otra funcionalidad importante es la habilitación de recuperar la información de la Library of Congress (Biblioteca del Congreso) utilizando SRU (Search Retrival URL), que devuelve un formulario XML y el resultado se exporta automaticamente a EspaBiblio.&lt;br /&gt;&lt;br /&gt;Como sus Bases de Datos están realizadas en MySQL soporta también exportación a formatos de Microsoft exel, word, SQL, LaTeX, CSV y XML.&lt;br /&gt;&lt;br /&gt;La administración de la Biblioteca ofrece una interfaz intuitiva con un diseño de pestañas y barra lateral.&lt;br /&gt;&lt;br /&gt;EspaBiblio puede ser instalado en Windows 98se, 2000, XP, 2003, Linux, Macintosh OS X, UNIX, en general cualquier sistema Operativo con soporte de Apache, PHP y MySQL.&lt;br /&gt;&lt;br /&gt;Todo esto le ofrece una solución de bajo costo para la automatización de Bibliotecas, ya sean privadas, para escuelas, bibliotecas públicas, colecciones, etc.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;¿Por qué EspaBiblio?&lt;br /&gt;&lt;br /&gt;  1. Es intuitiva y fácil de usar&lt;br /&gt;  2. Se Ajusta a los estándares&lt;br /&gt;  3. Requiere una sencilla administración y no se necesita experiencia&lt;br /&gt;  4. Está diseñado con las características requeridas por la mayoría de las bibliotecas, lo que la hace compatible con muchos flujos de trabajo&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-1619101032843086523?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/1619101032843086523/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=1619101032843086523' title='106 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1619101032843086523'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1619101032843086523'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/espabiblio-sistema-de-gestin-y.html' title='EspaBiblio Sistema de Gestión y Automatización de Bibliotecas'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>106</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-2302034978738728899</id><published>2008-08-13T22:20:00.000-04:00</published><updated>2008-08-13T22:26:45.398-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Open Source'/><title type='text'>El código abierto amenaza a Microsoft</title><content type='html'>&lt;span style="font-weight:bold;"&gt;En su informe anual la compañía de Redmond advierte de la creciente amenaza que el software de código abierto supone para su modelo de negocio.&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.ximep2008.org/newpage/microsoft-logo.jpg"&gt;&lt;img style="float:left; margin:0 10px 10px 0;cursor:pointer; cursor:hand;width: 200px;" src="http://www.ximep2008.org/newpage/microsoft-logo.jpg" border="0" alt="" /&gt;&lt;/a&gt;Micro$oft afirma que se enfrenta a una creciente presión por parte de los vendedores de código abierto, quienes, según Microsoft, roban sus ideas y se benefician de su propiedad intelectual.&lt;br /&gt;&lt;br /&gt;“Una serie de empresas compiten con nosotros utilizando un modelo de negocio de código abierto modificando y distribuyendo software a usuarios a un coste nominal para después ganar dinero con servicios y productos complementarios”, dice el informe.&lt;br /&gt;&lt;br /&gt;“Estas empresas no sostienen los costes de investigación y desarrollo del software. Algunas de estas compañías pueden aprovecharse de ideas de Microsoft que les ofrecemos de forma gratuita o con bajos royalties”.&lt;br /&gt;&lt;br /&gt;Microsoft también señala en su informe anual que la comunidad de fuente abierta ha perjudicado su negocio, desarrollando copias con menos funciones de sus aplicaciones para luego venderlas a menor precio, forzando una bajada de los mismos.&lt;br /&gt;&lt;br /&gt;Otras amenazas señaladas por la compañía incluyen copias ilegales, las relativas a la seguridad de su software y una intensa presión competitiva.&lt;br /&gt;&lt;br /&gt;(fuente &lt;span style="font-style:italic;"&gt;www.vnunet.es&lt;/span&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-2302034978738728899?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/2302034978738728899/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=2302034978738728899' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2302034978738728899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/2302034978738728899'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/el-cdigo-abierto-amenaza-microsoft.html' title='El código abierto amenaza a Microsoft'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2086739885588520999.post-1032581229190414787</id><published>2008-08-13T21:58:00.000-04:00</published><updated>2008-08-13T22:06:21.388-04:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Seguridad Informática'/><title type='text'>Nuevos ataques SQL (SQL Injection)</title><content type='html'>&lt;span style="font-weight:bold;"&gt;Las páginas web de China se han convertido en el objetivo de los hackers&lt;/span&gt;&lt;br /&gt;&lt;br /&gt;Investigadores de F-Secure informan de que los atacantes están utilizando una vulnerabilidad SQL para infectar de código malicioso a páginas web. Después el código redirige al usuario a una página que intenta explotar una serie de vulnerabilidades del propio sistema del usuario e instalar malware.&lt;br /&gt;&lt;br /&gt;“Con la mirada puesta en China estos días tiene sentido que los creadores de malware centren su atención en este tipo de páginas web”, dice F-Secure.&lt;br /&gt;&lt;br /&gt;Otras compañías de seguridad también han recibido informes de ataques SQL, aunque se estima que menos de 4000 páginas web están actualmente infectadas&lt;br /&gt;&lt;br /&gt;(Fuente &lt;span style="font-style:italic;"&gt;www.vnunet.es&lt;/span&gt;)&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/2086739885588520999-1032581229190414787?l=geekslinuxchile.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://geekslinuxchile.blogspot.com/feeds/1032581229190414787/comments/default' title='Enviar comentarios'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=2086739885588520999&amp;postID=1032581229190414787' title='0 comentarios'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1032581229190414787'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2086739885588520999/posts/default/1032581229190414787'/><link rel='alternate' type='text/html' href='http://geekslinuxchile.blogspot.com/2008/08/nuevos-ataques-sql-sql-injection.html' title='Nuevos ataques SQL (SQL Injection)'/><author><name>Jorge Lara Cravero</name><uri>http://www.blogger.com/profile/14610968280656573157</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='29' height='32' src='http://1.bp.blogspot.com/_XpBh0uz0ZPw/STCTN5CbUPI/AAAAAAAAAMY/dMGpRrM5xJg/S220/File0007.jpg'/></author><thr:total>0</thr:total></entry></feed>
