tag:blogger.com,1999:blog-45909767120151995152024-03-05T12:17:47.126+01:00Inet Survival GuideResoluciones a problemas informáticos "raros" y cosas que me sacan de quicio.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.comBlogger27125tag:blogger.com,1999:blog-4590976712015199515.post-15312935172545177302019-11-22T16:51:00.001+01:002019-11-22T16:51:19.017+01:00Copiando ficheros del movil android al pc mediante cableSe puede hacer con adb<br />Se puede hacer por wifi<br />
<br />
Pero para hacerlo sin wifi (por cable) y de una manera un poco más rápida y fiable que adb, podemos usar:<br /><br />SSHelper en el movil (<a href="https://arachnoid.com/android/SSHelper/index.html">https://arachnoid.com/android/SSHelper/index.html</a>)<br />
ADBSync en el pc (<a href="https://github.com/google/adb-sync">https://github.com/google/adb-sync</a>)Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-23176201466358216542017-06-22T13:37:00.002+02:002017-06-22T13:38:18.468+02:00Limpieza de sistemas debian con aptitude<h2>
Primera aproximación</h2>
<div>
Revisamos los paquetes instalados [~i] que no están marcados como automáticos ni sean esenciales ni tengan prorisdad important, required ni estandard [?not(~M|~E|~pimportant|~prequired|~pstandard)]</div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">$ aptitude search "~i ?not(~M|~E|~pimportant|~prequired|~pstandard)"</span></blockquote>
<div>
De la lista resultante, todas las librerías deberíamos de marcarlas automáticas (sudo aptitude markauto ...) Además, esta lista deberíamos de revisarla y marcar automático aquellos paquetes que no sepamos para que sirven.</div>
<div>
De paso que recorremos la lista, podemos aprobechar para hacer limpieza de cosas que sepamos que ya no queremos.</div>
<h2>
Segundo paso</h2>
<div>
Revisamos los paquetes obsoletos </div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">$ aptitude search ~o</span></blockquote>
<div>
Estos paquetes ya no están en los repositorios ya sea porque los hemos instalado de un .deb por ahí perdido o porque realmente son obsoletos. Todos los que no hayamos instalado manualmente, serán obsoletos y por lo tanto deberemos de desinstalarlos. La recomendación es hacerlo con </div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"># aptitude remove <nombrepaquete> </nombrepaquete></span></blockquote>
<div>
ya que una de las opciones que nos presentará aptitude (la segunda opción normalmente) es sustituir este paquete obsoleto por su equivalente actual.</div>
<h2>
Purgando la configuración</h2>
<div>
Podemos ver los paquetes configurados pero no instalados con </div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">$ aptitude search ~c</span></blockquote>
<div>
Revisa todo eso, pero seguramente puedas eliminar toda esa configuración residual con </div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"># aptitude purge ~c</span></blockquote>
<h2>
Marcando lo importante como no automático</h2>
<div>
Con el filtro negado del primer paso (añadiendo la arquitectura [~ramd64])</div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">$ aptitude search "~ramd64 (~E|~pimportant|~prequired|~pstandard)"</span></blockquote>
<div>
Podemos ver los paquetes que son esenciales o tienen prioridad important, required o standard. Ahora se pueden marcar todos estos paquetes como no automáticos con </div>
<div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;"># aptitude unmarkauto "~ramd64 (~E|~pimportant|~prequired|~pstandard)"</span></blockquote>
<h2>
Revisando la basura </h2>
</div>
<div>
Con la opción ~g de aptitude podemos ver los paquetes marcados como basura</div>
<blockquote class="tr_bq">
<span style="font-family: "courier new" , "courier" , monospace;">$ aptitude search ~g</span></blockquote>
<div>
No debería de salir nada, y si sale es firme candidato a un purge</div>
<div>
<br /></div>
<div>
<b>Con esto deberíamos de haber liberado bastante espacio de disco y haber dejado el sistema empatenado.</b></div>
Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-25052577907770730382017-06-14T12:15:00.002+02:002017-06-22T12:38:21.401+02:00Activar tmpfs para /tmp en debian stretchEsta opción viene desactivada por defecto porque en algunos sistemas da problemas. Para activarla: <br />
# mv /usr/share/systemd/tmp.mount /etc/systemd/system/ <br />
# systemctl enable tmp.mountIagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-52682488201055495872015-11-14T19:24:00.000+01:002015-11-14T19:26:10.432+01:00Si el interfaz de chrome está sobredimesionadoSuponiendo que tengas chrome instalado en /opt (donde se instala con los paquetes .deb que proporciona google).<br />
<br />
<span style="font-family: "courier new" , "courier" , monospace;">sudo sed -i 's/\"\$@\"/--high-dpi-support=1 --force-device-scale-factor=1 \"\$@\"/g' /opt/google/chrome/google-chrome</span><br />
<span style="font-family: "courier new" , "courier" , monospace;"><br /></span>
<span style="font-family: inherit;">La idea es añadir siempre que se lanza chrome las opciones "--high-dpi-support=1" y "--force-device-scale-factor=1" que fuerzan a chrome a pintar el interfaz de manera adecuada.</span><br />
<div>
<br /></div>
Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-21862805746554181732013-07-02T16:41:00.001+02:002013-07-02T16:41:40.312+02:00Review 3GO GEOTAB 10K-BT (en serio?)<p>Por circunstancias de la vida me he visto en la situación de probar tres modelos de tablets android de gama media baja. Las tres de precios similares y características similares:</p>
<ul>
<li>Android ICS o superior</li>
<li>Pantalla de 10"</li>
<li>Resolución de 1024x600</li>
<li>1GB de ram</li>
<li>Compradas a un proveedor español.</li>
<li>Baratas.</li>
</ul>
<p>
No voy a ponerme aquí a hacer tests de antutu ni historias. Son tablets de gama media/baja, y no están pensadas para juegos en 3D ni grandes alardes (no quiero decir con esto que no se defiendan en este campo). Pero lo que es impensable es que una de ellas sea <b>TAN MALA</b> como lo es la <a href="http://www.3go.es/?p=7114">3GO GEOTAB 10K-BT</a>:</p>
<p>
<b>La calidad de construcción</b> es esperpéntica. La estructura es tan "blanda" que la tablet flexa de manera exagerada. Además detrás del panel tft los componentes de la placa están muy pegados, y cuando se toca la pantalla táctil en alguna zona, esta se comba ligeramente, y en las partes en las que los componentes internos están mas cerca se forman las típicas hondas de los tft (como si fuesen de agua).</p>
<p>
La <b>pantalla táctil</b> tiene un <b>fallo muy grave</b>, (repito, <b>MUY GRAVE!)</b>. Resulta que no detecta una pulsación larga de la pantalla. Después de llamar al servicio técnico (a un 902) y conseguir hablar con alguien, su respuesta es: "Sí, sólo pasa en este modelo porque hemos cambiado de panel táctil". La solución que nos proponen es: "Para hacer pulsación larga usa toda la yema del dedo".</p>
<p>Lo que viene a ser lo mismo que pulsa, desplaza ligeramente, y mantén pulsado. Me parece impresentable que se siga vendiendo un producto que tiene un fallo de este calibre.</p>
<p>La <b>pantalla</b> se ve, y dejémoslo ahí. Siempre que no estés en penumbra, más te vale tener el brillo al máximo, y olvídate de usarla en el exterior.</p>
<p>En cuanto al tema root, esta tablet viene rooteada de serie, pero no de manera "sana". Es decir, no tiene superuser ni ninguna aplicación similar, si no que directamente se ejecutan las cosas como root. Además todos los sistemas de ficheros están montados en modo lectura/escritura de serie. (Esto tiene muchas implicaciones de -falta de- seguridad, de las que no me voy a poner a hablar aquí)</p>
<p>Las otras dos por mencionarlas, son :</p>
<ul>
<li><a href="http://www.nvsbl.es/foros/viewforum.php?f=91">Unusual Phoenix Dual</a>: Desaparecida de la web de <a href="http://www.nvsbl.es/">NVSBL</a>. En general bastante decente. Mucho más robusta que la 3GO y con soporte al rooteo y cambio de rom desde el foro alojado en la web de NVSBL. Como bola extra con respecto a la 3GO, procesador cortex A9 dual.</li>
<li><a href="http://www.bulltech.es/">Bulltech</a> Szenio 2000 (v2): Tampoco aparece en la web de Szenio (a día de hoy aparece la v1). La de construcción más robusta. No es rooteable de manera oficial, pero entre el firmware oficial (que proporciona el SAT si se lo pides) y el Universal Uberoid, no es difícil rootearla. Ésta, también tiene un cortex A9 dual.</li>
</ul>
Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-91056819254045498642010-01-26T18:47:00.004+01:002010-01-26T19:06:05.323+01:00Debian Squeeze (testing) y xvidcapxvidcap no está en los repositorios de Squeeze pero podemos descargarnos un .deb desde <a href="http://sourceforge.net/projects/xvidcap/files/xvidcap/1.1.7/xvidcap_1.1.7_i386.deb/downloadhttp://sourceforge.net/projects/xvidcap/files/xvidcap/1.1.7/xvidcap_1.1.7_i386.deb/download">su página en sourceforge</a>.<br />El problema es que este paquete contiene una dependencia al paquete liblame0 que en Squeeze se llama libmp3lame0, con lo que para poder instalarlo, no tenemos más que seguir el <a href="http://inetsurvivalguide.blogspot.com/2007/04/como-cambiar-las-dependencias-de-un.html">método que explico en esta entrada</a> y cambiar la dependencia de liblame0 a libmp3lame0.<br /><br />Para quien sea perezoso dejo un paquete ya preparado <a href="http://sites.google.com/site/inetsurvivalguide/xvidcap_1.1.7_i386.deb">aquí</a>.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-45827939630688091172009-09-17T09:41:00.000+02:002009-09-17T09:41:52.176+02:00Algo de Linux: WBFS: Wii Backup File System<a href="http://enavas.blogspot.com/2009/06/wbfs-wii-backup-file-system.html">Algo de Linux: WBFS: Wii Backup File System</a>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-18712922846172759892009-05-04T23:25:00.030+02:002009-05-04T23:59:45.377+02:00Review del Toshiba Journe M400<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://2.bp.blogspot.com/_j9ZJb-XFKwA/Sf9kyanbFRI/AAAAAAAAAd4/2NYxrepHqHA/s1600-h/journe_m400.jpg"><img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 180px; height: 161px;" src="http://2.bp.blogspot.com/_j9ZJb-XFKwA/Sf9kyanbFRI/AAAAAAAAAd4/2NYxrepHqHA/s320/journe_m400.jpg" alt="" id="BLOGGER_PHOTO_ID_5332091301130867986" border="0" /></a><br />Unos lo definen como el televisor con tdt más pequeño del mundo, otros como un marco digital con tdt, y algunos incluso como reproductor multimedia multiformato.<br /><br />Sea como sea, este hibrido es un gadget que merece la pena revisar, pero no me voy a extender con la típica descripción que se puede encontrar por infinidad de webs. Al grano:<br /><br /><span style="font-weight: bold;">Cosas positivas</span><br /><ul><li>Pese a su reducido tamaño (solo 160g y 4.3" con una resolución de 480 x 272) la calidad de imagen tanto en reproducción de imágenes como de TV digital es sorprendente.</li><li>Pese a lo que se dice por ahí y sin esperar milagros (Donde una antena comunitaria no tiene suficiente señal no esperes que este gadget te permita ver la television) la recepción de la televisión digital es bastante decente si desplegamos por completo su antena integrada.</li><li>Reproduce bastantes formatos multimedia (Segun Optize: BMP, GIF, JPEG,WMA, AAC, AMR, MP3,MPEG-4 SP, MPEG-4, DivX, XviD, VOB. Yo no he probado tantos). La calidad del audio con cascos es muy correcta<br /></li><li>Su pantalla con un brillo muy potente permite su visualización en exteriores sin problemas</li><li>Su control táctil está bastante logrado y es muy sencillo de manejar<br /></li></ul><span style="font-weight: bold;"><br />Cosas negativas</span><br /><ul><li>Es eminentemente una TV con tdt. Las limitaciones a la hora de manejar archivos son muy grandes, llegando al punto de no ordenar los archivos de audio por ningun criterio que yo haya encontrado o impidiendo mover archivos entre carpetas sin conectarlo al PC</li><li>No tiene opción de apagado automático (lo cual sería muy util para ver la tele antes de dormir) ni permite escuchar las canciones de una carpeta solo una vez (solo se puede poner en modo bucle o shuffle)</li><li>En general falta de opciones de personalización o ahorro de batería.</li></ul>Cabe decir a los "señores" de Toshiba (no vaya a ser q alguno caiga perdido por aquí) que si liberasen el firmware del aparato todas estas limitaciones estupidas (me parece increible lo del orden de los archivos en reproduccion) se solucionarían con el aporte de la comunidad dando un valor añadido a su producto.<br /><br /><span style="font-weight: bold;">Ni fu ni fa</span><br /><ul><li>No tiene memoria interna pero viene con una tarjeta SD de 1 GB y admite targetas de hasta 4 GB</li><li>Su batería dura en torno a 2 horas (Un poco justo si te has comprimido una peli y quieres verla en el aparato) pero biene con un cargador/adaptador de corriente normal a clavija miniUSB<br /></li><li>Precio recomendado exagerado (160€), pero se puede encontrar por 80-90 € en tiendas online.</li></ul><span style="font-weight: bold;">Conclusión</span><br />Por 80-90€ es una buena compra. 160€ es muy muy muy exagerado.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com4tag:blogger.com,1999:blog-4590976712015199515.post-53547985732628579442009-04-07T15:47:00.011+02:002009-04-08T14:17:38.184+02:00Usando exim4 con gmail y logwatch para monitorizar nuestro servidor caseroComo dice el título, si se tiene un servidor caserillo, y queremos mantener cierto control sobre el, podemos utilizar exim4 para que nos mande unos completos reportes de logs al correo.<br /><br /><span style="font-weight: bold;font-size:130%;" >Paso1: Configurar Exim4 con gmail (gracias a <a href="http://www.manu-j.com/blog/wordpress-exim4-ubuntu-gmail-smtp/75/">Manu</a>)</span><br /><br />Reconfiguramos exim4<br /><blockquote>$dpkg-reconfigure exim4-config</blockquote>y contestamos las preguntas de la siguiente manera:<br /><ul><li> Escoger mail sent by smarthost; received via SMTP or fetchmail</li><li>System Mail Name: company.com ó nombre.no-ip.org<br /></li><li>IP Adresses to listen on for incoming SMTP connections: 127.0.0.1</li><li>Other destinations for which mail is accepted: en blanco<br /></li><li>Machines to relay mail for: En blanco<br /></li><li>Machine handling outgoing mail for this host (smarthost): smtp.gmail.com::587</li><li>Escoger NO, don’t hide local mail name in outgoing mail.</li><li>Escoger NO, don’t keep number of DNS-queries minimal (Dial-on-Demand).</li><li>Escoger mbox</li><li>Escoger NO, split configuration into small files</li></ul>Ahora editamos la configuración de exim4 en el fichero <span style="font-style: italic;">/etc/exim4/exim4.conf.template</span> poniendo lo siguiente:<br /><br />En la sección DCconfig_smarthost DCconfig_satellite añadir:<br /><blockquote> send_via_gmail:<br /> driver = manualroute<br /> domains = ! +local_domains<br /> transport = gmail_smtp<br /> route_list = * smtp.gmail.com<br /></blockquote><span style="font-weight: bold;">Si tienes otro smathost definido con “domains = ! +local_domains” comenta o elimina ese smarthost.</span><br /><br />En la seccion “begin authenticators” añadir:<br /><blockquote> gmail_login:<br /> driver = plaintext<br /> public_name = LOGIN<br /> client_send = : usuarioGmail@gmail.com : password</blockquote><br /><span style="font-weight: bold;">De nuevo asegurate que no hay mas "authenticators" con el mismo "public_name" (LOGIN). Si los hay eliminalos o comentalos<br /><br /></span>En la seccion “transport/30_exim4-config_remote_smtp_smarthost”. Añadir<blockquote><br />gmail_smtp:<br /> driver = smtp<br /> port = 587<br /> hosts_require_auth = $host_address<br /> hosts_require_tls = $host_address</blockquote>Ahora actualizamos la configuracion de exim ejecutando:<br /><blockquote>$update-exim4.conf<br />$/etc/init.d/exim4 restart<br /></blockquote>Para comprobar que todo ha ido bien testeamos mandando un email con el comando mail:<br /><blockquote>$mail user@example.com<br /></blockquote>Le damos un asunto al mensaje y pulsamos enter, le metemos algun contenido al email e intro de nuevo. introducimos una linea con un punto (.) enter de nuevo y por último dejamos el campo cc en blanco. Si el mensaje nos llega es que todo ha ido bien.<br /><br /><span style="font-weight: bold;font-size:130%;" >Paso2: Configurar Logwatch (gracias a Christer Edwards de <a href="http://ubuntu-tutorials.com/2008/11/13/monitor-system-logs-with-logwatch/">Ubuntu Tutorials</a>)</span><br />Logwatch es una herramienta que nos proporciona un reporte diario del estado de nuestro sistema en base a los logs de este; desde los paquetes nuevos instalados hasta los intentos de login fallidos pasando por informacion SMART de los discos.<br />Para configurar logwatch, primero lo instalamos<br /><blockquote>$aptitude install logwatch</blockquote><br />Despues copiamos el archivo de configuración que trae de ejemplo a etc<br /><blockquote>cp /usr/share/logwatch/default.conf/logwatch.conf /etc/logwatch/conf/logwatch.conf</blockquote><br />luego en este fichero de configuración localizado en cambiamos<br /><blockquote>MailTo = root</blockquote>por<blockquote>MailTo = correo@electronico.destino</blockquote> y<br /><blockquote>Output = stdout</blockquote>por<blockquote>Output = mail</blockquote>Con esto recibirás un correo todas las noches con lo más interesante de los logs del sistema.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-14400973027391501422008-12-10T16:20:00.006+01:002008-12-10T17:27:26.517+01:00Postprocesado con interceptors en struts2<span style="font-weight: bold;">Introducción:</span><br />En struts 2 cada acción al ser procesada pasa por una cadena de procesado. En esta cadena se ejecutan una serie de interceptors, posteriormente la acción (si ningun interceptor interrumpe la cadena) y de nuevo los interceptors en orden inverso.<br />Para quien le suene algo, esto actua como un patron cadena de responsabilidades (Chain of Responsibility)<br /><br /><span style="font-weight: bold;">Situación:</span><br />Tenemos un action de nuestra aplicación que despues de ejecutarse y dependiendo de una elección del usuario, ha de comportarse de forma diferente (incluso modificar su result-type).<br /><br /><span style="font-weight: bold;">Posible solución:</span><br /><ul><li>Creamos un interceptor que se colocará en la interceptors stack en ultimo lugar (de tal manera que se ejecute el ultimo en preprocesado y el primero en postprocesado)</li><li>Este interceptor en lugar de llamar al metodo invoke() de ActionInvocation, llamará directamente al método execute() de la acción a ejecutar, y si todo ha ido correctamente, hace el postprocesado que necesita hacer y devuelve el result que le corresponde.<br /></li></ul><br /><span style="font-weight: bold;">Ejemplo:</span><br />Este interceptor permite que un action que mostraba por pantalla una lista de VOs, genere un fichero en excel y se lo envie al usuario si este así lo ha marcado:<br /><br /><pre><br /><span style="font-weight: bold; color: rgb(0, 0, 0);">package</span><span style="color: rgb(128, 128, 0);"> es.acore....;</span><br /><br /><span style="font-weight: bold; color: rgb(0, 0, 0);">import</span><span style="color: rgb(0, 0, 0);"> ...</span><br /><br /><span style="font-style: italic; color: rgb(128, 128, 128);">/*</span><br /><span style="font-style: italic; color: rgb(128, 128, 128);"> * This interceptor generates a excel file containing a list of VOs </span><br /><span style="font-style: italic; color: rgb(128, 128, 128);"> */</span><br /><br /><span style="font-weight: bold; color: rgb(0, 0, 0);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">class</span><span style="color: rgb(0, 0, 0);"> ExcelInterceptor </span><span style="font-weight: bold; color: rgb(0, 0, 0);">implements</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">Interceptor</span><span style="color: rgb(0, 0, 0);"> {</span><br /><br /><span style="color: rgb(0, 0, 0);"> ...</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">public</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">String</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 128);">intercept</span><span style="color: rgb(0, 0, 0);">( ActionInvocation actionInvocation ) </span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">throws</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">Exception</span><span style="color: rgb(0, 0, 0);"> {</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">Action</span><span style="color: rgb(0, 0, 0);"> action = ( </span><span style="font-weight: bold; color: rgb(0, 149, 255);">Action</span><span style="color: rgb(0, 0, 0);"> ) actionInvocation.</span><span style="color: rgb(0, 0, 128);">getAction</span><span style="color: rgb(0, 0, 0);">();</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">if</span><span style="color: rgb(0, 0, 0);"> (action </span><span style="font-weight: bold; color: rgb(0, 0, 0);">instanceof</span><span style="color: rgb(0, 0, 0);"> ExcelAware) {</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">System</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 128);">out</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 128);">println</span><span style="color: rgb(0, 0, 0);">(</span><span style="color: rgb(221, 0, 0);">"Logged in: ExcelInterceptor.java"</span><span style="color: rgb(0, 0, 0);">);</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">if</span><span style="color: rgb(0, 0, 0);"> ((((ExcelAware)action).</span><span style="color: rgb(0, 0, 128);">getGenerarExcel</span><span style="color: rgb(0, 0, 0);">() != </span><span style="font-weight: bold; color: rgb(0, 0, 0);">null</span><span style="color: rgb(0, 0, 0);">) </span><br /><span style="color: rgb(0, 0, 0);"> && ((ExcelAware)action).</span><span style="color: rgb(0, 0, 128);">getGenerarExcel</span><span style="color: rgb(0, 0, 0);">()){</span><br /><span style="color: rgb(0, 0, 0);"> </span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">String</span><span style="color: rgb(0, 0, 0);"> result = action.</span><span style="color: rgb(0, 0, 128);">execute</span><span style="color: rgb(0, 0, 0);">();</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">if</span><span style="color: rgb(0, 0, 0);"> (result.</span><span style="color: rgb(0, 0, 128);">equals</span><span style="color: rgb(0, 0, 0);">(</span><span style="font-weight: bold; color: rgb(0, 149, 255);">Action</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 128);">ERROR</span><span style="color: rgb(0, 0, 0);">))</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">return</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">Action</span><span style="color: rgb(0, 0, 0);">.</span><span style="color: rgb(0, 0, 128);">ERROR</span><span style="color: rgb(0, 0, 0);">;</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">List</span><span style="color: rgb(0, 0, 0);"> vos = ((ExcelAware)action).</span><span style="color: rgb(0, 0, 128);">getListaVOs</span><span style="color: rgb(0, 0, 0);">();</span><br /><br /><span style="color: rgb(0, 0, 0);"> ...</span><br /><br /><span style="color: rgb(0, 0, 0);"> XlsTable generadorExcel = </span><span style="font-weight: bold; color: rgb(0, 0, 0);">new</span><span style="color: rgb(0, 0, 0);"> </span><span style="color: rgb(0, 0, 128);">XlsTable</span><span style="color: rgb(0, 0, 0);">();</span><br /><span style="color: rgb(0, 0, 0);"> generadorExcel.</span><span style="color: rgb(0, 0, 128);">addTableToSheet</span><span style="color: rgb(0, 0, 0);">(vos,...);</span><br /><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">ByteArrayOutputStream</span><span style="color: rgb(0, 0, 0);"> out = </span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">new</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">ByteArrayOutputStream</span><span style="color: rgb(0, 0, 0);">();</span><br /><span style="color: rgb(0, 0, 0);"> wb.</span><span style="color: rgb(0, 0, 128);">write</span><span style="color: rgb(0, 0, 0);">(out);</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">InputStream</span><span style="color: rgb(0, 0, 0);"> inputStream = </span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">new</span><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 149, 255);">ByteArrayInputStream</span><span style="color: rgb(0, 0, 0);">(out.</span><span style="color: rgb(0, 0, 128);">toByteArray</span><span style="color: rgb(0, 0, 0);">());</span><br /><br /><span style="color: rgb(0, 0, 0);"> ((ExcelAware)action).</span><span style="color: rgb(0, 0, 128);">setInputStream</span><span style="color: rgb(0, 0, 0);">(inputStream);</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">return</span><span style="color: rgb(0, 0, 0);"> COINConstants.</span><span style="color: rgb(0, 0, 128);">EXCELRESULTCODE</span><span style="color: rgb(0, 0, 0);">;</span><span style="font-style: italic; color: rgb(128, 128, 128);">//"excel"</span><br /><span style="color: rgb(0, 0, 0);"> }</span><br /><span style="color: rgb(0, 0, 0);"> }</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-style: italic; color: rgb(128, 128, 128);">//if there is nothing to do with excel </span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-style: italic; color: rgb(128, 128, 128);">//we continue de execution stack as usuall</span><br /><span style="color: rgb(0, 0, 0);"> </span><span style="font-weight: bold; color: rgb(0, 0, 0);">return</span><span style="color: rgb(0, 0, 0);"> actionInvocation.</span><span style="color: rgb(0, 0, 128);">invoke</span><span style="color: rgb(0, 0, 0);">();</span><br /><span style="color: rgb(0, 0, 0);"> }</span><br /><span style="color: rgb(0, 0, 0);">}</span><br /></pre>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-65394605555131208112008-10-29T21:20:00.012+01:002008-10-29T21:40:21.922+01:00Autocompleter y struts2Esta vez una receta rápida y una pregunta a la comunidad:<br /><br />Para <span style="font-weight: bold;">cambiar el aspecto de un desplegable "autocompleter"</span> de struts2, en las css que se hayan definido para la aplicacion web que se esté haciendo hay que utilizar la class .dojoComboBoxOptions<br /><br />En concreto si se quiere poner la letra a tamaño 11, se pondría:<br /><div style="margin: auto; width: 60%;"><br /><span style="font-family:mono new;">.dojoComboBoxOptions {</span><br /><span style="font-family:mono new;"> font-size: 11px;</span><br /><span style="font-family:mono new;">}</span><br /></div><br />Ahora la <span style="font-weight: bold;">pregunta</span>:<br />¿Como hacer para que aparezca un valor por defecto en un autocompleter de struts2?Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-67274470249680749092008-09-21T02:44:00.003+02:002008-09-21T03:24:20.779+02:00vandalismoCuando era (mas) joven, no entendia que a nadie se le pudiese aplicar el adjetivo de misantropo. No entendia como nadie podia tener odio a la humanidad.<br /><br />Sin embargo tengo un amigo que es un misantropo reconocido. El no profesa un odio a la humanidad en si, si no que detesta la sociedad en la que vivimos.<br /><br />El lo explica, y tiene argumentos mas que validos, aunque tambien se pueden encontrar argumentos en contra de sus opiniones y estos eran los mios hasta ahora.<br />Sin embargo hoy al llegar a casa, acabo de encontrarme con que el pequeño arbol que hay en la acera esta serrado por la mitad, y la copa del arbol tirada sobre los contenedores. Alguien ha decidido que un ser vivo que llevaba mas de 15 años luchando por vivir, habia que matarlo por diversion. Su madera no va a servir de nada, seguramente se secara ahi, y quien lo ha hecho ni siquiera vuelva a pasar por delante. Eso por no hablar del esfuerzo de quien lo ha plantado y podado durante 5 años, y de el dinero que nos ha costado a todos.<br /><br />Y todo esto sin ninguna razon de ser, no es una cueston de ideologia, ni de moral, ni el individuo ha ganado nada con ello; es ineptiud y maldad humana en estado puro.<br /><br />Todo esto me ha hecho reflexionar y si, creo que la sociedad actual es demasiado permisiva con estas cosas. Si creo que el castigo a algo como esto deberia ser ejemplar, y si creo que a este tipo de gente deberia de expulsarsele de la sociedad.<br /><br />Creo que voy a empezar a ser un poco mas radical e intransijente, y es una pena...<br /><br />(Perdon por los tildes y erratas, pero esto escribiendo esto desde la DS.)Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-23631120342900099732008-01-31T15:37:00.001+01:002008-01-31T15:44:00.469+01:00El movimiento lalala ¡Únete!<span style="font-weight: bold;">Copio y pego éste post del blog </span><a style="font-weight: bold;" href="http://servigratis.wordpress.com/category/e-mail/e-mail-temporal/">Servigratis</a><span style="font-weight: bold;"> que a su vez fue copiado de... y que me parece muy interesante y útil:<br /><br /></span>Seguro que os ha pasado más de una vez. Después de un buen rato buscando algo en Google, llegas por fin a una web que parece tener exactamente lo que buscas: un fondo de pantalla, una fotografía en alta resolución… pero ¡oh sorpresa! ¡sólo está disponible la descarga para usuarios registrados! Sin embargo, en la web nos animan diciendo “el registro es gratuito y sólo te llevará unos minutos”.<br /><br />La pregunta es: si es gratuito, y por tanto todo el mundo tiene acceso al mismo, ¿para qué me haces perder unos minutos de mi tiempo rellenando un estúpido formulario? ¿para recopilar direcciones de email?<br /><br />Tengo un amigo que suele registrarse en este tipo de webs utilizando siempre el mismo nombre de usuario y la misma contraseña: “lalala”. Gracias a esto, cada vez que llego a alguna web que exige registro, pruebo a usar dichas claves para ver si mi amigo ha creado una cuenta antes, con el consiguiente ahorro de tiempo que esto me supone. Con el tiempo hemos convertido este uso de una cuenta compartida en una practica habitual.<br /><br />La sorpresa vino cuando ambos descubrimos que esta practica también funciona en webs en la que ninguno nos habíamos registrado previamente (por lo tanto, hay más gente que usa dicho nombre de usuario). Así que me pregunto ¿por qué no, aprovechando las posibilidades virales de internet, convertir esta practica en algo global?<br /><br />Con este pensamiento en mente, nace el movimiento que he bautizado como “usuario lalala”. Dicho movimiento pretende extender el uso de este nombre de usuario y contraseña en todas las webs donde haga falta registro. Así, si llegas a una web que solicite registro, podrás probar a usar dicha cuenta. Y si no funciona, lo que debes hacer es registrar tú mismo dicho nombre de usuario y contraseña para que, la próxima vez que alguien llegue a la web y se tenga con el mismo problema, lo encuentre resuelto.<br /><br />¿Por qué usamos “lalala”? Por dos razones. La primera y fundamental, porque es fácil de recordar. La segunda es porqueque tiene seis caracteres, que es la longitud mínima necesaria que exigen muchos formularios de inscripción. Para ello estableceremos una serie de…<br /><br /><span style="font-weight: bold;">Pautas del movimiento:</span><br /><ul><li>Promover la creación de una cuenta con los siguientes datos:nombre de <span style="font-weight: bold;">usuario:</span> lalala <span style="font-weight: bold;">contraseña:</span> lalalaen todas las webs y foros de registro gratuito, de manera que, al ser conocidas por todo el mundo, dicha cuenta pueda ser usada por cualquier usuario que no desee perder el tiempo en registrarse.</li></ul><ul><li>En caso de que la contraseña deba ser distinta del nombre, o tenga que contener números por seguridad, utilizaremos:nombre de <span style="font-weight: bold;">usuario:</span> lalala <span style="font-weight: bold;">contraseña: </span>lalala99</li></ul>Y ya está. Recordando esta dos combinaciones, deberíamos poder acceder a cualquier web de registro gratuito (si alguien ha creado la cuenta antes) y si no, como ya he dicho, debemos crearla nosotros, contribuyendo así al movimiento. ¿Sencillo, verdad? ¡pues anímate a difundirlo!<br />¡Pasa esta iniciativa a todos tus contactos! ¡Publícala en tu blog! ¡Envíala por email! ¡Coméntaselo a todos tus amigos! ¡Acabemos de una vez por todas con el engorro de registrarnos en tropecientas webs en las que solo vamos a entrar una vez en la vida!Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com5tag:blogger.com,1999:blog-4590976712015199515.post-31552569950268370322008-01-10T00:07:00.000+01:002008-01-10T00:36:30.424+01:00Kmobiletools y sharp gx15Sí, ya lo sé el sharp gx15 es un teléfono más que añejo, pero quizá utilice el mismo método de comunicación que sus predecesores y esto sirva también para el gx17, gx25, ...<br /><br />Vamos a configurar un debian (también vale para kubuntu) con kde y el programa kmobiletools para poder acceder a los datos de nuestro teléfono sharp. Para instalar kmobiletools como siempre:<br /><div style="text-align: left;"><span style="font-family: courier new;"><blockquote>$ sudo apt-get install kmobiletools</blockquote></span>Lo primero es conseguir un bluetooth, en mi caso me sirvo de un bluetooth por USB de los más genéricos, y hacerlo funcionar con tu teléfono.<br /></div>El teléfono lo ponemos en modo conexión con software de PC (el mismo modo que se usa para conectar con la "cutreaplicación" que nos da Sharp)<br /><br />Ahora para conectar el PC al teléfono móvil, seguimos estos pasos:<br /><ol><li>Para encontrar el móvil y su dirección física en la red de bluetooth:<br /><div style="text-align: center;"><div style="text-align: left;"><span style="font-family: courier new;"><blockquote>$ hcidtool scan</blockquote></span><span style="font-family: courier new;"></span></div><div style="text-align: left;"><span style="font-family: courier new;"></span>Esto nos mostrará una salida parecida a esta:<br /><div style="text-align: center;"><div style="text-align: left;"></div><blockquote><div style="text-align: left;">Scanning ...<br /></div><div style="text-align: left;"> 08:00:1F:93:29:CE ApodoDelMovil</div></blockquote></div><span style="font-family: courier new;"></span></div></div></li><li>Si no existe /dev/rfcomm0 , lo creamos con:<br /><blockquote>$ mknod /dev/rfcomm0 c 216 0</blockquote></li><li>Asociamos /dev/rfcomm0 con el móvil con el comando:<br /><blockquote>rfcomm connect 0 08:00:1F:93:29:CE 3</blockquote>Donde el primer 0 indica que nos conectaremos utilizando rfcomm0, 08:00:1F:93:29:CE es la dirección física que hemos sacado en el punto 1, y el 3 indica el canal utilizado para comunicarse con el móvil (el 1 y el 2 no funcionan) </li><li>Abrimos kmobiletools y ponemos en la configuración en "Mobile phone device" <span style="font-style: italic;">/dev/rfcomm0</span></li><li>Para poder acceder a los mensajes tenemos que marcar la casilla que pone "Enable 'Mode 2' setting"</li></ol>Y listo. ya tenemos acceso a todos los contactos de la agenda y a todos los mensajes guardados en el móvil. Las demás funciones del kmobiletools no las he investigado, pero me da que no van a funcionar.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-36167895166670720192007-11-25T23:04:00.000+01:002007-11-25T23:25:50.193+01:00Desinstalar un paquete que no se deja desinstalar<span style="font-size:130%;"><span style="font-weight: bold;">Aplicable a:</span></span><br />Toda distribución linux basada en Debian<br /><span style="font-size:130%;"><span style="font-weight: bold;">Situación: </span></span><br />Se ha instalado un paquete "extraño" como puede ser un paquete hecho por uno mismo, un paquete "alien-ado" o un paquete en el que se fuerza la instalación.<br /><span style="font-weight: bold;font-size:130%;" >Receta: </span><br /><span style="color: rgb(153, 153, 153);font-size:78%;" >NOTA:Lo que se va a hacer no esta exento de riesgos. Hazlo bajo tu propia responsabilidad. Además es una cosa relativamente drástica, así que intenta desinstalar primero por todos los medios a tu alcance.</span><br /><span style="font-weight: bold;">Paso 1:</span><br />Localizar el/los paquete/s conflictivos y ejecutar para cada uno<br /><div style="text-align: center;"><span style="font-family: courier new; color: rgb(153, 153, 153);">dpkg -L nombre_de_paquete</span><br /></div>Esto nos dará la lsita de archivos instalados por dicho paquete. Ahora los iremos borrando uno por uno o en grupo, siempre teniendo e cuenta que los directorios básicos de linux no deberán de ser borrados. Por ejemplo en una lista de archivos instalados por un paquete seguramente aparezcan: /etc /usr /usr/share /usr/share/nombrepaquete ...<br />De todos los anteriores solo deberiamos de borrar el ultimo.<br /><br />Una forma segura de ir borrando es primero hacer una lista (en una sola linea con un editor de textos) detodos los archivos (y directorios) instalados por un paquete y en linea de comandos poner rm listadearchivospegada. Esto eliminará solo los archivos, pero ningun directorio. Acto seguido se pondra en linea de comandos rmdir listadearchivospegada. En este segundo paso eliminaremos solo los directorios que estén completamente vacíos, que presumiblemente serán los del paquete conflictivo.<br /><br /><span style="font-weight: bold;">Paso 2: </span><br />Crear una copia del archivo /var/lib/dpkg/status<br /><div style="text-align: center;"><span style="font-family: courier new; color: rgb(153, 153, 153);">cp /var/lib/dpkg/status /var/lib/dpkg/status.back</span><br /></div><br /><span style="font-weight: bold;">Paso 3: </span><br />Editar el archivo /var/lib/dpkg/status y buscar en él las palabras "Package: nombre_paquete_conflictivo"<br />Para cada uno de los paquetes problematicos borramos las lineas desde "Package: nombre_paquete_conflictivo"<span style="font-style: italic; color: rgb(255, 0, 0);">(esta linea incluida)</span> a "Package: nombre_otro_paquete" <span style="font-style: italic; color: rgb(255, 0, 0);">(esta linea <span style="font-weight: bold;">NO</span> incluida)</span><br />Hay que tener cuidado de dejar una línea en blanco entre la información de un paquete y otro paquete.<br /><br />Gracias a <a href="http://www.esdebian.org/">http://www.esdebian.org/</a>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-22847700399186812172007-08-14T01:10:00.000+02:002007-08-14T01:55:25.297+02:00Como bajarse una página web entera (con enlaces)Primero y antes de que sigas leyendo esto es para Linux. Si usas Window$ cambiate y usa este minicomo<br />Para hacer esto solo necesitamos el potente y muchas veces infravalorado wget.<br />La linea mágica será:<br /><br /><div style="text-align: center;"><span style="font-size:85%;"><span style="font-family: times new roman;">wget -t5 -r -l2 -k -p http://www.direccionweb.com</span></span><br /></div><br /><ul><li>-t5 indica que se probará 5 veces cada descarga.</li><li>-r indica que se descargarán recursivamente los enlaces.</li><li>-l2 indica el nivel en la recursividad de descarga de los enlaces. Esto es, se descargaran las páginas que esten enlazadas por las páginas enlazadas por la página que quiero descargar. Normalmente en 2 niveles es mas que suficiente ( y ya lleva su tiempo) pero si quieres mas amplitud y tines paciencia puedes usar numeros mayores (ten en cuenta que las descargas aumentan de manera exponencial)<br /></li><li>-k convertirá los enlaces para que sea posible navegar en local.</li><li>-p se descargarán tambien los elementos externos a la página, pero que son útiles para su visualizacion, como fotos, hojas de estilo...</li></ul>Si ya quieres ser muy perfeccionista y usas kde, sabras que konqueror hace algo parecido y lo guarda en archivos con extension war (que no es nada mas ni nada menos que un tar).<br />Para empaquetar todo lo que has bajado en un bonito war puedes:<br /><ul><li>Renombrar la página que queremos q sea nuestra principal como "index.html" (espero que sepas hacer esto)</li><li>Meterlo todo en un tar con extension .tar; pra ello:</li></ul><div style="text-align: center;"><span style="font-size:85%;"><span style="font-family: times new roman;">cd directorioCreadoPorWGET;</span><br /><span style="font-family: times new roman;">tar -cvf nombreArchivo.war *;</span><br /><span style="font-family: times new roman;">mv nombreArchivo.war ../;</span><br /><span style="font-family: times new roman;">cd ..;</span></span><br /><div style="text-align: left;">Ahora en el directorio en el que estais habrá una carpeta que es la que creo el wget y un archivo empaquetado .war que el konqueror podrá leer.<br /></div></div>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-53184375090089506032007-07-27T01:09:00.000+02:002008-12-13T07:09:24.828+01:00Alimentando la leyendaCuentan que una vez un hombre llamado Hisparko, departiendo animadamente con sus compañeros de jornal, llegó a la conclusión de que él era el único de todos ellos que utilizaba <a href="http://www.kde.org/">KDE</a>. Todos ellos preferían la austeridad y simplicidad de <a href="http://www.gnome.org/">GNOME</a> mientras que Hisparco se sentía más cómodo con las posibilidades de personalización y configuración que ofrecía <a href="http://www.kde.org/">KDE</a>.<br /><br />Cuando Hisparko llegó a su morada, y sintiéndose extrañado por tal mayoría de gnomeros, se acordó de cierto dicho sobre cierta bebida refrescante ("Yo soy de *** naranja" Vs "Yo soy de *** limón"). Dirijiose presto al <a href="http://www.google.com/">Oragooglo</a> y busco "Yo soy de KDE", viendo que el <a href="http://www.google.com/search?hl=es&q=yo+soy+de+kde&btnG=Buscar&lr=">Oragooglo</a> le daba ingente número de resultados, optó por restringir su búsqueda a las imágenes, esperando encontrar alguna prenda (camiseta) con estas palabras, y cual no fue su sorpresa cuando entre las imágenes que el <a href="http://images.google.com/images?hl=es&q=yo%20soy%20de%20kde&lr=&ie=UTF-8&oe=UTF-8&um=1&sa=N&tab=wi">Oragooglo</a> le mostró aparecía la foto de un compañero de fatigas.<br /><br /><a href="http://3.bp.blogspot.com/_j9ZJb-XFKwA/Rqkvp-C4N2I/AAAAAAAAAKM/1qnXf68n0p8/s1600-h/yo+soy+de+KDE.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://3.bp.blogspot.com/_j9ZJb-XFKwA/Rqkvp-C4N2I/AAAAAAAAAKM/1qnXf68n0p8/s320/yo+soy+de+KDE.jpg" alt="" id="BLOGGER_PHOTO_ID_5091653251795269474" border="0" /></a><br />Como ya habreis notado ese compañero de fatigas, es quien ahora está escribiendo estas lineas, y al haber quedado tanto o más sorprendido que él, ahora alimento la leyenda. Yo soy de KDE.<br /><br />Un saludo Hisparko.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com2tag:blogger.com,1999:blog-4590976712015199515.post-82047147960158462862007-04-06T12:37:00.000+02:002007-04-06T13:17:07.976+02:00Como cambiar las dependencias de un paquete (.deb)Hay veces que las dependencias de los paquetes en debian o ubuntu están mal, otras veces simplemente sabemos que con lo que tenemos en el sistema debería de legar, y simplemente por convenciones de nombres en ubuntu o debian, los paquetes se <span style="font-style: italic;">niegan</span> a ser instalados.<br /><br />Para solucionar eso a nuestra cuenta y riesgo podemos modificar las dependencias de los paquetes. Para hacer esto seguiremos los siguientes pasos:<br /><br /><ol><li>Descargamos el .deb en cuestión.<br /><br /></li><li>Desempaquetamos el .deb con la siguiente línea<br /><div style="text-align: center;"><span style="font-family:times new roman;">mkdir temporal ; dpkg-deb --extract paquete.deb temporal</span><br /></div><br />Lo que se está haciendo a la izquierda de el ; es crear un directorio temporal donde se desempaquetará el deb. A la derecha del ; se especifica que se desempaquete el deb en el directorio creado anteriormente.<br /><br /></li><li>Ahora se indica que además se extraiga la parte de control del paquete a temporal/DEBIAN con la siguiente línea<br /><div style="text-align: center;"><span style="font-family:times new roman;">dpkg-deb --control paquete.deb temporal/DEBIAN</span><br /></div><br /></li><li>Ahora hay que editar el fichero temporal/DEBIAN/control cambiando las dependencias a las que nosotros queramos.<br /><br /></li><li>Volvemos a empaquetar el .deb con la siguiente línea:<br /><div style="text-align: center;"><span style="font-family:times new roman;">dpkg --build temporal ; mv temporal.deb paquete.deb</span><br /><br /></div></li><li>Ahora solo nos queda instalar nuestro nuevo paquete con el comando<br /><div style="text-align: center;"><span style="font-family:times new roman;">sudo dpkg -i skype_1.2.0.18-1_i386.deb</span><br /></div></li></ol>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com3tag:blogger.com,1999:blog-4590976712015199515.post-12288766239418904272007-02-24T16:12:00.000+01:002008-12-13T07:09:25.996+01:00Compartir fotos con picasa<span style="font-size:180%;"><span style="font-weight: bold;">Para la gente que haya llegado aqui por casualidad:</span></span><br /><br />Este tutorial surge como una forma de intentar poder compartir las fotos con mi grupo de amigos, sin tener que estar pendientes de darnos CDs, DVDs o cualquier otro soporte físico.<br />La forma de hacer esto que se me ha ocurrido, pretende ser lo más sencilla posible, sin dejar por ello de mantener nuestras fotografías privadas.<br /><br /><span style="font-weight: bold;"><span style="font-size:180%;">Como compartir fotos y no morir en el intento:</span></span><br /><br /><span style="font-size:100%;"><br />Para conseguir esto, utilizaremos un servicio que proporciona <a href="http://www.google.es/">Google</a>, mediante su programa de fotografía Picasa2. Aunque todo lo que v</span><span style="font-size:100%;">oy </span><span style="font-size:100%;">a hacer aqui se puede hacer de manera manual, voy a usar para ello el <a href="http://picasa.google.com/">Picasa2</a>. Este programa es <a href="http://es.wikipedia.org/wiki/Freeware">gratuito</a> y se puede utilizar ademas de en Window$, en <a href="http://es.wikipedia.org/wiki/Linux">Linux</a> mediante <a href="http://www.winehq.com/">Wine</a>)</span><br /><br /><br /><ol><li>Bajarse picasa desde <a href="http://dl.google.com/picasa/picasaweb-current-setup.exe">aqui</a></li><li>Instalamos picasa, y a la hora de abrirlo por primera vez nos preguntará si debe explorar el disco duro entero o solo el escritorio (Desktop) y mis documentos del usuario. Recomiendo que le deis solo a explorar el escritorio y mis documentos para no tener que esperar demasiado (Luego añadiremos o quitaremos los directorios donde tengais las fotos. El aspecto que tendrá tras la exploración será el siguiente.<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBnBKl1pV3bpNaucZNH5shHIjnaLzcT6JJVOPYr5C4lG61GbN9il7Y_6Snr42YH-kv6qcmB1cVE68RpULPoiHo1KN4kmDXoKY8Jr53EMleNpRukl7frcL5ew7cp3_lzuimBpmeJ_85ChJw/s1600-h/escaneando.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 171px; height: 130px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgBnBKl1pV3bpNaucZNH5shHIjnaLzcT6JJVOPYr5C4lG61GbN9il7Y_6Snr42YH-kv6qcmB1cVE68RpULPoiHo1KN4kmDXoKY8Jr53EMleNpRukl7frcL5ew7cp3_lzuimBpmeJ_85ChJw/s320/escaneando.jpg" alt="" id="BLOGGER_PHOTO_ID_5035266922428535474" border="0" /></a></li><li>Ahora especificaremos que carpetas son las que Picasa debe de explorar, ya que es posible que las fotos que tengais no esten en <span style="font-style: italic;">el escritorio</span> ni en <span style="font-style: italic;">mis documentos</span>. Para eso vamos a Herramientas -> Administrador de carpetas. Entonces nos saldrá un menú como este<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheLAHn3a6R0kNexewl4nEjM59LnOqmul7Qmft3rlBJYj7ErUMYU6-sHPB4KTA-ha8-cEJ9_mXpEUEhI4MT669qgjg7HUmfXsBqtk-ifqIgp3-4C1Wg0LK2H9pKsBApPllLevmV1PlDOFZn/s1600-h/selectorCarpetas.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 221px; height: 190px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEheLAHn3a6R0kNexewl4nEjM59LnOqmul7Qmft3rlBJYj7ErUMYU6-sHPB4KTA-ha8-cEJ9_mXpEUEhI4MT669qgjg7HUmfXsBqtk-ifqIgp3-4C1Wg0LK2H9pKsBApPllLevmV1PlDOFZn/s320/selectorCarpetas.jpg" alt="" id="BLOGGER_PHOTO_ID_5035273532383204034" border="0" /></a><br />En el localizamos las carpetas que contienen las fotos con el navegador de la parte izquierda de la imagen, y cuando esten seleccionadas marcamos la casilla de la derecha que pone Explorar siempre. (Marcando una carpeta, se marcan todas sus subcarpetas)<br /><br /></li><li>Con esto ya deberiamos de ver en la pantalla principal del picasa un monton de fotos. El siguiente paso es darse de alta en el servicio de albums web de google. Primero deberiais tener un correo de gmail (Si no lo usais como vuestro correo habitual, os recomiendo que lo probeis) .Una vez conseguido uno, pulsamos en este <a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWQStiBYTdq0p7TXOcXXSOY8LOjKjArklHbCw2V-2EU9ACawwchNdL5gq2kmjoLV-hLetXZHZ0xYukKvT20nx_6t7WHNL_v2yW3DmZGdEZ1VZmAXOKgDHFwySZzNqBM0DxVSodTAxWYM3v/s1600-h/boton.jpg"><img style="cursor: pointer; width: 69px; height: 58px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgWQStiBYTdq0p7TXOcXXSOY8LOjKjArklHbCw2V-2EU9ACawwchNdL5gq2kmjoLV-hLetXZHZ0xYukKvT20nx_6t7WHNL_v2yW3DmZGdEZ1VZmAXOKgDHFwySZzNqBM0DxVSodTAxWYM3v/s320/boton.jpg" alt="" id="BLOGGER_PHOTO_ID_5035275533837963986" border="0" /></a> botón.<br />Ahora nos pedirá que nos demos de alta en el servicio de albumes web de picasa, como ya tenemos cuenta de gmail, se lo indicamos cuando lo pida y listo.<br /><br /></li><li>Ahora, seleccionamos (para quien no lo sepa se puede seleccionar multiples fotos diferentes usando ctrl y pinchando en cada una) las fotos que queramos compartir (hacedlo de pocas en pocas, sobre todo si son fotos de mucha calidad, ya que subirlas lleva su tiempo). Pulsamos con el boton derecho del ratón sobre una de las fotos seleccionadas y le damos a Subir a album web. Entonces os aparecerá un dialogo como este<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwHUXWP6hF-8TjRHwPsWrA3MydEamvxpu3bhVUazpn-JENQ2dw5wZlZEY4r4FaLwSKvzpIuprsOjmm3b6q0FFKePYNpQqvxXFDG64BfUpL2B-S5_2tCwr70X3CyZnvF3EqBUM86QxAMbLr/s1600-h/configurando.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhwHUXWP6hF-8TjRHwPsWrA3MydEamvxpu3bhVUazpn-JENQ2dw5wZlZEY4r4FaLwSKvzpIuprsOjmm3b6q0FFKePYNpQqvxXFDG64BfUpL2B-S5_2tCwr70X3CyZnvF3EqBUM86QxAMbLr/s320/configurando.jpg" alt="" id="BLOGGER_PHOTO_ID_5035277376378933986" border="0" /></a>Ahi le damos nombre, y descripcion si queremos, al album.<br /><span style="font-size:180%;"><span style="font-weight: bold;">IMPORTANTE!! </span></span>Como lo que queremos es compartir las fotos en la mejor calidad posible le damos a <span style="font-style: italic;">Subida más lenta, tamaño mas grande</span>.<br /><span style="font-size:180%;"><span style="font-weight: bold;">IMPORTANTE!!</span></span> Como queremos que las fotos no sean publicas, marcamos la opción <span style="font-style: italic;">No se encuentra en la lista (para albumes que solo quieres compartir con usuarios seleccionados)</span>.<br /><br /></li><li>Para ver ahora nuestros albums web, podemos utilizar el link que hay en la esquina superior derecha del picasa, o ir con el firefox (espero que nadie siga utilizando el explorer) a la direccion <a href="http://www.picasaweb.google.com/">www.picasaweb.google.com</a><span style=""><span class="a"> que será a</span></span><span style=""><span class="a">lgo así:<br /><br /></span></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJbLZDXiKkoREaDuhACVJUu38uM94eTUi_DL9b1Il1Bo0DoAwMsT_depFsktSO7VScDfuoAaCINp2Ix_82eWvISbB5leO2Tx01Eg2UZaVf9ggYmG46pziPqoX29zLbNF0RuS0HNVFLM-3j/s1600-h/entradaAlbumWeb.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 245px; height: 256px;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJbLZDXiKkoREaDuhACVJUu38uM94eTUi_DL9b1Il1Bo0DoAwMsT_depFsktSO7VScDfuoAaCINp2Ix_82eWvISbB5leO2Tx01Eg2UZaVf9ggYmG46pziPqoX29zLbNF0RuS0HNVFLM-3j/s320/entradaAlbumWeb.jpg" alt="" id="BLOGGER_PHOTO_ID_5035280503115125490" border="0" /></a></li><li><span style=""><span class="a">Ponemos ahi nuestro nombre de cuenta de gmail (no hace falta poner @gmail.com) y nuestro password, y llegamos a la pantalla principal de de los albums web. seleccionamos uno de los albums que tengamos y entramos en el para ver las fotos, en una pantalla como esta<br /><br /><br /></span></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwp3HL3nd1RAjbqQIhMtEeZ-BP4JBpuY8OqZpNkwrZ7SV6pe2BwgFmLFQUV2VeUfCANVPCv6PBgPvjqRP9lylmEoA32G9vRr7dt1mCaADgXJmKaamBWKbYKVzv8C-mMSixE2AbyIUVpjLe/s1600-h/compartir.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiwp3HL3nd1RAjbqQIhMtEeZ-BP4JBpuY8OqZpNkwrZ7SV6pe2BwgFmLFQUV2VeUfCANVPCv6PBgPvjqRP9lylmEoA32G9vRr7dt1mCaADgXJmKaamBWKbYKVzv8C-mMSixE2AbyIUVpjLe/s320/compartir.jpg" alt="" id="BLOGGER_PHOTO_ID_5035282770857857810" border="0" /></a><br /><span style=""><span class="a">Aqui pulsamos en el boton compartir album (el que esta rodeado por un circulo verde) y en la pantalla que nos sale, ponemos como destinatarios los correos de las personas con las que queremos compartir las fotos (si usamos los correos de gmail como destino de las invitaciones, éstas quedaran registradas pudiendo acceder a los albumes a los que te han invitado desde la página de webalbums.<br /><br /></span></span></li><li><span style=""><span class="a">Una vez te han invitado a un album, éste se puede bajar entero (si tienes el picasa abierto o en la bandeja del sistema), desde un botón que aparece debajo de la portada del album en la pagina de la que te ha llegado el link en el correo.</span></span></li></ol><span style="font-size:180%;"><span style="font-weight: bold;">IMPORTANTE!!</span></span> No debemos compartir la dirección (link) de esa invitación con nadie que no queramos, pues desde este momento el album dejará de ser privado, ya que su único sistema de privacidad, es el desconocimiento de esa dirección.<br /><br />Creo que con esto queda todo más o menos claro. Para cualquier duda, dejad vuestros comentarios.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com3tag:blogger.com,1999:blog-4590976712015199515.post-42691693931708207012007-02-16T14:30:00.000+01:002007-02-16T16:01:36.051+01:00Perder privilegios de administración en ubuntu<span style="font-weight: bold;font-size:130%;" >O de como un buen <span class="blsp-spelling-corrected" id="SPELLING_ERROR_0">día</span> me encontré que mi ordenador pasaba de mi.</span><br /><br /><span style="font-size:100%;">Resulta que estaba yo instalando una nueva máquina <span class="blsp-spelling-error" id="SPELLING_ERROR_1">virtualizadora</span> (</span><span style="font-size:100%;"><a href="http://virtualbox.org/"><span class="blsp-spelling-error" id="SPELLING_ERROR_2">VirtualBox</span></a>), de la cual no puedo decir nada más que buenas cosas (es libre y se come a <a href="http://es.wikipedia.org/wiki/VMware"><span class="blsp-spelling-error" id="SPELLING_ERROR_3">vmware</span></a>... pero esto es tema de otro post).<br /><br />Tras instalarla, para poder usarla (como medida de seguridad) hay que añadir al grupo <span class="blsp-spelling-error" id="SPELLING_ERROR_4">vboxusers</span> a los usuarios que se desee. Bien, pues en estas me encontraba yo, y en un alarde de impulsividad, busque en <span class="blsp-spelling-corrected" id="SPELLING_ERROR_5">Internet</span> como añadir un usuario a un grupo. Fallo de novato, ya que siempre se debe de buscar primero con <span class="blsp-spelling-error" id="SPELLING_ERROR_6">man</span>, el ayuda en linea de <span class="blsp-spelling-corrected" id="SPELLING_ERROR_7">Linux</span>.<br /><br />En un alarde de genialidad<span style="font-style: italic;"> <span class="blsp-spelling-error" id="SPELLING_ERROR_8">copy</span>-<span class="blsp-spelling-error" id="SPELLING_ERROR_9">pasteé</span></span> la linea de la página, y cual fue mi sorpresa <span class="blsp-spelling-corrected" id="SPELLING_ERROR_10">cuando</span> me doy cuenta que en lugar de añadirme al grupo nuevo, manteniendo los anteriores, simplemente me eliminó de los <span class="blsp-spelling-corrected" id="SPELLING_ERROR_11">demás</span> grupos y me dejo solo en el grupo nuevo.<br /><br />Esto me dejó en una situación un tanto complicada, ya que no podía hacer sudo (no estoy en el grupo adecuado), y como en <span class="blsp-spelling-error" id="SPELLING_ERROR_12">Ubuntu</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_13">root</span> viene desactivado, no puedo <span class="blsp-spelling-error" id="SPELLING_ERROR_14">logearme</span> como <span class="blsp-spelling-error" id="SPELLING_ERROR_15">root</span>.<br />Ya tenía el <span class="blsp-spelling-error" id="SPELLING_ERROR_16">livecd</span> en la mano (aunque me daba una pereza infinita) cuando al reiniciar, me acordé que <span class="blsp-spelling-error" id="SPELLING_ERROR_17">grub</span> daba una opción de recuperación... MI SALVACIÓN !!!. Al entrar en el sistema en modo de recuperación, se consigue entrar como <span class="blsp-spelling-error" id="SPELLING_ERROR_18">root</span>, con lo cual solo ha que utilizar el comando <span class="blsp-spelling-error" id="SPELLING_ERROR_19">usermod</span><br /><span style="font-weight: bold;font-size:75%;" >(NOTA: antes de copiar y pegar algo de <span class="blsp-spelling-corrected" id="SPELLING_ERROR_20">Internet</span> en consola, asegurarse de que sabemos lo que hace.)</span><br /><br />Como lo que quiero es restaurar el estado anterior (dejar los grupos que por defecto tenia <span class="blsp-spelling-error" id="SPELLING_ERROR_21">Ubuntu</span> para los usuarios) ejecuto:<br /><br /></span><span style="font-size:75%;"><span class="blsp-spelling-error" id="SPELLING_ERROR_22">usermod</span> -G sudo,<span class="blsp-spelling-error" id="SPELLING_ERROR_23">adm</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_24">dialout</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_25">cdrom</span>,floppy,audio,<span class="blsp-spelling-error" id="SPELLING_ERROR_26">dip</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_27">video</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_28">plugdev</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_29">lpadmin</span>,<span class="blsp-spelling-error" id="SPELLING_ERROR_30">admin</span> <span class="blsp-spelling-error" id="SPELLING_ERROR_31">nombreDeUsuario</span></span><br /><span style="font-size:100%;"><br />donde <span class="blsp-spelling-error" id="SPELLING_ERROR_32">nombreDeUsuario</span> es el usuario al que queremos restablecer los grupos (y en consecuencia los permisos).</span>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-50393198416745683282007-02-08T00:33:00.000+01:002007-02-08T01:52:45.607+01:00Problema ODBC - locale (y anti-soporte gratuíto a MS)Segundo y como explicaré más adelante último artículo de cómo sacarle las castañas del fuego a <span style="font-style: italic;">Mr Gates.</span><br /><br />Primero decir que este artículo es <span style="font-weight: bold;">gracias a Yortx</span>. No puedo decir de el nada más que es un autentico crack. Mi compañero en la mayoría de fatigosas prácticas en la facultad, y un amigo.<br /><br /><span style="font-weight: bold;"><br /><span style="font-size:130%;">Problemas con el acceso a bases de datos mediante ODBC y los paquetes de interfaz en idiomas locales en Windows XP</span></span><br /><br />Hace ya un año, me había encontrado con este problema, intentando hacer una pequeña aplicación que accedía a una base de datos de MS Access. Los <span style="font-weight: bold;">síntomas</span> son, en algunas cuentas de usuario y en otras no, errores extraños al intentar ejecutar sentencias SQL: No encuentra la tabla que has pedido (que evidentemente existe), o que no encuentras los campos que has pedido (aunque hagas un SELECT * FROM tabla, te dirá que no encuentra el campo 'nombre', que está en la tabla y aunque te dice que no lo encuentra, el ha encontrado en nombre...).<br />El problema afecta a todas las aplicaciones que usen el mismo método de acceso a base de datos, que son muchas, como por ejemplo, el programa <span style="font-style: italic;">PADRE</span> de ayuda a realizar la declaración de la renta. Estos programas dan errores del estilo: No se encuentra el módulo DAO, o similares (en el mejor de los casos, en el peor nos dará errores que nos despistan más que ayudan).<br />En su momento no encontré solución alguna, ni reinstalar ADO, ni DAO ni MS Jet ni nada. Solo el formateo y reinstalación ha dado resultado. Pero recientemente me ha vuelto a pasar, y esta vez me decidí a dar con el problema y solucionarlo de verdad. No voy a describir la odisea de rebuscar en las tripas del windows XP, solo diré que he perdido todo un fin de semana para dar con esto -<span style="font-style: italic;"> y yo doy fé de que Yortx es un tio eficiente haciendo las cosas </span>- . Así que voy directamente al grano.<br /><br />El <span style="font-weight: bold;">problema surge</span> al instalar el paquete de interfaz en gallego para el windows XP (desconozco si el problema se da en otros idiomas con paquetes similares, supongo que en algunos sí se dará, el que pueda confirmarlo, si me lo dice lo agradeceré). Al instalar el paquete de idioma en gallego, además de ponernos todos los textos del sistema en gallego, hace que la "locale" por defecto del sistema sea también la gallega. Y por alguna razón, tener la "locale" con el valor "gallego" hace que el acceso a bases de datos mediante ODBC no sea posible.<br />Pero la instalación no cambia la "locale" de las actuales cuentas del sistema, con lo que en estas no habrá ningún problema, si no que cambia la configuración por defecto. Es decir, los usuarios nuevos, creados tras la instalación del paquete de idiomas, tendrán como "locale" el valor "Gallego" y son los que tendrán el problema de acceso a base de datos. Ésto es lo que hace de éste un problema bastante complicado de detectar.<br /><br />Y ahora <span style="font-weight: bold;">la solución</span>: para las cuentas que ya tengan este problema, simplemente cambiaremos de nuevo la locale a "español". Para esto vamos al panel de control y en la "Configuración regional y de idioma" comprobamos que está elegido el valor "Gallego", y lo cambiaremos con el desplegable a "Español". Ésto no nos cambiará el idioma, sólo se refiere a la forma de representar los números, la moneda y la fecha. Sí nos pondrá el nombre de los días de la semana y los meses en español al mostrarnos la fecha. Ahora nuestras aplicaciones de bases de datos deberían funcionar correctamente.<br /><br />Para que los usuarios creados a partir de este momento no tengan por defecto la locale en "Gallego" si no en "Español", el proceso es un tanto más complicado e igual para la mayoría no les compensa. Puede resultar más fácil cambiar la opción en cada usuario creado. Aún así, ahí van los pasos:<br /><span style="font-size:85%;"><br /></span><span style="font-weight: bold; font-style: italic;font-size:85%;" >NOTA!</span><span style="font-size:85%;"><span style="font-style: italic;"> - Vamos a modificar el registro de windows. Modificar el registro puede causar que el sistema deje de funcionar o empiece a funcionar mal (mirad si no lo que ha montado la instalación del paquete de idiomas por tocarlo). Seguir los pasos que describo a continuación no debería suponer ningún riesgo, pero aún así no me hago responsable de nada.</span></span><br /><ol><li>Abriremos una cuenta con privilegios de administrador, asegurándonos de que es la única cuenta abierta en el sistema.</li><li>Desocultar carpetas y archivos ocultos y de sistema: Abrir el explorador de windows (abriendo MiPC o MisDocumentos) e ir a Herramientas->Opciones de carpeta. Nos vamos en la pestaña "Ver" y en la lista de opciones seleccionamos: "Mostrar todos los archivos y carpetas ocultos" y desseleccionamos "Ocultar archivos protegidos del sistema operativo" y "Ocultar las extensiones de archivos para tipos de archivos conocidos". Aceptamos.<br /><div style="margin-left: 40px;"><span style="font-style: italic;font-size:85%;" >Ocultar los archivos ocultos y de sistema es buena idea en cuentas de usuario, pero si entramos como el Administrador, estas opciones no nos dejaran "administrar" muchas cosas.</span><br /></div></li><li>Abrir el editor de registro (el de XP): Pulsamos Inicio->Ejecutar e introducimos "regedt32" (sin las comillas)</li><li>En el árbol de la izquierda, seleccionamos la clave "HKEY_USERS" (sólo la seleccionamos) y vamos a Archivo->Cargar Subárbol.</li><li>Nos pide un archivo. Seleccionaremos el archivo "C:/Documents and Settings/Default User/NTUSER.DAT", suponiendo que tenemos instalado windows en la unidad C.</li><li>Pinchamos abrir y nos pedirá un nombre. Podemos poner cualquiera, por ejemplo: "ConfPorDefecto".</li><li>Veremos que se ha creado la subclave "ConfPorDefecto" bajo la clave "HKEY_USERS". Ahora nos moveremos por el árbol hasta la clave: "HKEY_USERS/ConfPorDefecto/Control Panel/International".</li><li>A la derecha veremos una lista de valores. El que nos interesa es el que tiene de nombre "Locale". Si teníamos la locale como "Gallego", aparecerá como valor: 00000456. Es el valor asociado a la locale "Gallego". Si hacemos doble click nos permitirá cambiar este valor. Lo sustituiremos por 00000C0A, que es el valor asociado a la locale "Español".</li><li>Volvemos a seleccionar la clave "HKEY_USERS/ConfPorDefecto" y vamos a Archivo->Descargar subárbol. Confirmamos que sí queremos hacer lo que le hemos dicho, cerramos el editor del registro y salimos de la cuenta de administrador.<br /></li></ol><br />Y ya está, los usuarios que se creen a partir de ahora tendrán por defecto la locale "Español". Este método vale para establecer cualquier configuración para los usuarios que se creen nuevos. Sólo necesitamos saber qué clave del registro modificar y qué valor darle.<br /><br /><br /><span style="font-weight: bold;font-size:130%;" >Anti-soporte gratuíto a MS</span><br /><br />Ahora pasemos con la segunda parte de este post, explicando el por qué de que este sea el último post que pongo sobre M$.<br />Grácias también a Yortx he visto este <span style="text-decoration: underline;"><a href="http://aceitunassinhueso.com/2007/01/30/plataforma-anti-soporte-gratuito-a-microsoft/">post</a></span>, cuya lectura recomiendo a todo el mundo, y que plantea una idea muy coherente: ya que no estoy de acuerdo con las políticas que tiene M$, vamos a acabar con el cliché de que <span style="font-style: italic;">Windows es fácil. </span><span>(Ahora es cuando me pongo serio y os trato de usted XD)</span><br />A partir de ahora señores, los cuelgues bloqueos pantallazos y demas problemas que tengan con el Sistema Operativo de Bill, comentenselos al servicio técnico de M$, y que ellos paguen a quien se los resuelva. Eso sí. Cualquier duda que tengan con Linux/Unix/BSD/Solaris sólo pregunten<br /><br />Saludos y hasta la próxima <span style="font-size:35%;">(Mensaje subliminal: Usa SW libre, debian, kubuntu, suse,...)</span>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-34014089519363598472007-01-23T23:17:00.000+01:002008-12-13T07:09:26.554+01:00Programas al inicio de windowsHoy vamos a hacerle una <span id="misp_compose_1" class="hm">ñapa</span> a nuestro M$ <span id="misp_compose_2" class="hm">WindowsXP</span> (también vale para <span id="misp_compose_4" class="hm">Windows</span> 2000). Alguien me ha preguntado, como ver los programas que se le ejecutan al inicio en su máquina con <span id="misp_compose_5" class="hm">XP</span>. Es una pregunta bastante normal, que puede ser la clave de un equipo mas optimizado y seguro.<br /><br /><span style="font-weight: bold;">¿Cuando debo de mirar que programas se ejecutan al inicio?</span><br />Siempre deberíamos tenerlos controlados, no es sano que se inicien demasiados programas automáticamente, de hecho lo mejor es que se inicien solo los estrictamente necesarios.<br /><br /><span style="font-weight: bold;">¿Que síntomas se presentan cuando hay demasiados programas iniciándose al encender?</span><br /><ul><li>El ordenador tarda mucho desde que aparece el escritorio hasta que es utilizable (mucho es mas de un minuto)</li><li>Antes el ordenador iba fluido, pero ahora se arrastra</li><li>Aparecen <span id="misp_compose_9" class="hm">pop</span>-<span id="misp_compose_10" class="hm">ups</span> en el escritorio</li><li>Se ejecutan programas que tu no querías ejecutar</li><li>...</li></ul> <span style="font-size:130%;"><span style="font-weight: bold;">Pasos a seguir para limpiar el inicio:</span></span> <ol><li>Dentro del menú de Inicio vamos a Programas y de nuevo a Inicio. Ahí dentro estarán accesos directos a programas que se ejecutan al inicio (para quitar eliminar y listo)<a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuTWHDcEzAd7g8_j8mHgBvcYOI2Ht52qAscMC64kiqG235FmDks09cXAq53EvWi8ZwQYOOJyMc38KU5JBazlu862hGFqVo9Z6g4kvhmEfx74JrFpTXMYg1Ha8cstpzpRYxUrRf3yvMPBg0/s1600-h/Inicio.jpg"><br /><br /><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhuTWHDcEzAd7g8_j8mHgBvcYOI2Ht52qAscMC64kiqG235FmDks09cXAq53EvWi8ZwQYOOJyMc38KU5JBazlu862hGFqVo9Z6g4kvhmEfx74JrFpTXMYg1Ha8cstpzpRYxUrRf3yvMPBg0/s320/Inicio.jpg" alt="" id="BLOGGER_PHOTO_ID_5023365663192514930" border="0" /></a></li><li>Otra vez en el menú de Inicio nos vamos a Ejecutar y ponemos <span style="font-style: italic;"><span id="misp_compose_14" class="hm">msconfig</span></span><span>, y nos saldrá la siguiente ventana:<br /><br /></span><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjO6evw6-pFt85viiJuQmBi4T_32gPmLFRhTBePfx5GjezLOh4dRhfV2rsjKKL-ACC3ceszY2fLwxfMJdjCkbYaxycBlJCSee4gh352w61x7TI1yAyiBQ5XIKZ5pbh0kVch_NjtnEcgWE/s1600-h/msconfig.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjTjO6evw6-pFt85viiJuQmBi4T_32gPmLFRhTBePfx5GjezLOh4dRhfV2rsjKKL-ACC3ceszY2fLwxfMJdjCkbYaxycBlJCSee4gh352w61x7TI1yAyiBQ5XIKZ5pbh0kVch_NjtnEcgWE/s320/msconfig.jpg" alt="" id="BLOGGER_PHOTO_ID_5023368162863481218" border="0" /></a><span><br />Aquí marcamos la pestaña</span><span style="font-style: italic;"> </span><span>inicio y nos aparece una lista con <span id="misp_compose_16" class="hm">checkboxes</span>. Las que estén con <span id="misp_compose_18" class="hm">marquita</span>, son las de los programas que se ejecutan al iniciarse <span id="misp_compose_20" class="hm">windows</span>.<br />Ahora solo os queda investigar que es cada uno de los elementos de la lista y desmarcar los que no queráis que se inicien con <span id="misp_compose_22" class="hm">windows</span>.<br />Luego nos dará un aviso y la próxima vez que lo reiniciemos nos dará otro. Le decimos entonces que no vuelva a mostrar el aviso y listo.</span></li></ol> <span>Como curiosidad, debéis de saber que en un ordenador de una amiga, el tiempo de inicio se redujo de 7 minutos a un minuto solo a base de "podar" el inicio.<br /><br />Espero que esto haya servido a alguien además de a James.</span><span></span>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-61098354434933554452006-11-04T03:27:00.000+01:002006-11-04T04:12:28.865+01:00Cascos, audio y alsa en ubuntu dapperHace ya que no escribía, esto es bueno porque significa que hace tiempo que no me encontraba con problemas (^_^). Al grano que se me hace de día.<br /><br />El tema es que el otro día me dí cuenta de que lo único que mi kubuntu dapper no había configurado correctamente en mi portátil (oki anima 4200) era el sonido (obviamente no todo el sonido; me daría cuenta antes) de los auriculares; se oye todo perfecto excepto por los cascos, que emiten un silencio perfecto.<br /><br />Manos a la obra me puse a rebuscar por el hal-device-manager para ver que tarjeta de audio tenia el bicho y por inet para ver lo que se podía hacer. Resulta que mi tarjeta de sonido es una 82801FB/FBM/FR/FW/FRW High Definition Audio Controller hecha en parte por Intel y en parte por<a href="http://es.asus.com/">ASUSTeK</a><a href="http://es.asus.com/"> Computer Inc.</a> (sus amigos la llaman <span style="font-weight: bold;">HDA de intel</span>).<br /><br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://photos1.blogger.com/blogger2/7451/560421961915917/1600/halDeviceManager.jpg"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer;" src="http://photos1.blogger.com/blogger2/7451/560421961915917/320/halDeviceManager.jpg" alt="" border="0" /></a><br /><br />Buceando por internet me he encontrado <a href="http://ubuntuforums.org/showthread.php?t=76307">este</a> post en los magnificos foros de ubuntu.<br />En el se siguen los siguientes pasos, que a mi me solucionaron el problema:<br /><ol><li>Bajarse los drivers nuevos de esta tarjeta de sonido desde <a href="http://www.realtek.com.tw/downloads/downloadsView.aspx?Langid=1&PNid=14&amp;amp;amp;amp;amp;amp;PFid=24&Level=4&Conn=3&DownTypeID=3&GetDown=false">aqui</a> (Son los que ponen Public)</li><li>Lo tipico, descomprimir, y dentro de lo descomprimido descomprimir a su vez alsa-driver-XXX, entrar en este directorio y<br /><span style=";font-family:times new roman;font-size:85%;" >./configure ; make; sudo make install<br />(lo se; no es muy limpio, pero es lo mejor que he encontrado)</span></li><li>Parchear unos cuantos archivos de configuracion con las siguientes lineas<span style=";font-family:times new roman;font-size:85%;" ><br />options snd-hda-intel model=z71v position_fix=1<br />alias snd-card-0 snd-hda-intel<br />alias sound-slot-0 snd-hda-intel<br />alias sound-slot-0 snd-card-0<br />alias sound-service-0-0 snd-mixer-oss<br />alias sound-service-0-1 snd-seq-oss<br />alias sound-service-0-3 snd-pcm-oss<br />alias sound-service-0-8 snd-seq-oss<br />alias sound-service-0-12 snd-pcm-oss</span><br />En los archivos (creandolos si no existen):<span style=";font-family:times new roman;font-size:85%;" ><br />/etc/modutils/alsa-base<br />/etc/modprobe.d/alsa-base<br />/etc/modprobe.d/aliases<br />/etc/modprobe.d/sound</span><br />Añadir en /etc/modules las siguientes lineas<span style=";font-family:times new roman;font-size:85%;" ><br />snd-hda-intel<br />snd-ALC880</span></li><li>Reiniciar y retocar el volumen con alsamixer o kmixer o lo q tu quieras y a escuchar por los cascos!!<span style=";font-family:times new roman;font-size:85%;" ><br /></span></li></ol><span style="font-weight: bold;">NOTA: </span>Para mi ha funcionado, y aunque considero el método extremadamente chapuzas, es rápido y facil. De todas formas probaré a quitar lineas de archivos y demas para limpiar todo lo que pueda este método<br /><br />Un saludo, espero que esto sirva a alguien y hasta la próxima.Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1tag:blogger.com,1999:blog-4590976712015199515.post-1674872702907314792006-10-12T03:34:00.000+02:002006-10-12T04:56:37.105+02:00Kickoff (y no es el de la ness)Hace unos días me encontré <a href="http://www.albianlinux.com/kubuntu/?q=node/837" target="_blank">esto</a> naufragando por inet; kicker-kickoff.<br />Se supone que es un rediseño del menú de kde (esa k con fondo azul que aparece a la izquierda abajo en kde, como el inicio de window$).<br />Pues bien, yo soy bastante reacio a cambiar los <span style="font-style: italic;">menuses</span> ya que suelo estar acostumbrado a los tradicionales y los nuevos no me aportan nada; pero en este caso, me tengo que tragar mi orgullo y he de decir que no solo es más bonito, si no que además es más comodo. Le he pillado el tranquillo en un par de minutos, y aunque está en fase de desarrollo ya es suficientemente usable.<br />La capacidad de personalizar las diferentes secciones en las que divide el menú es increible, estas secciones estan muy bien ordenadas y son intuitivas, y aún por encima... ¡Es rápido!<br /><br />Os dejo unos cuantos links con fotos y videos<br /><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://home.kde.org/%7Ebinner/kickoff/sneak_preview.png"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://home.kde.org/%7Ebinner/kickoff/sneak_preview.png" alt="" border="0" /></a><a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://home.kde.org/%7Ebinner/kickoff/sneak_preview.html"><img style="margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 320px;" src="http://home.kde.org/%7Ebinner/kickoff/sneak_preview.html" alt="" border="0" /></a><a href="http://home.kde.org/%7Ebinner/kickoff/sneak_preview.mpg">http://home.kde.org/~binner/kickoff/sneak_preview.mpg</a>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com0tag:blogger.com,1999:blog-4590976712015199515.post-18703140003442195792006-10-03T00:10:00.000+02:002006-10-03T00:24:33.652+02:00Me joden los privilegios<style type="text/css"> @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } --> </style> <p style="margin-bottom: 0cm;">Hoy he ido a buscar a mi novia para llevarla a la facultad. Delante de su casa hay como 40 o 50 plazas de aparcamiento en batería, que además están separadas de la calzada espacio suficiente como para que si vas a recoger a alguien, puedas parar allí unos segundos en doble fila.<br />Pues cuando he llegado a su casa me encuentro con un panorama por lo menos curioso. Resulta que 25 de las plazas estaban valladas, y las restantes estaban ocupadas por coches de la policía nacional, militar, local... vamos lo mejor de cada casa. Se que no exagero si digo que habría unos 30 coches en total. Pues bueno... visto el percal, me dispongo a apartarme a un lado para esperar a mi novia, cuando un policía nacional, con su uniforme de <i>hombre de Harrelson </i>y esa chulería española que tanto me jode, me dice que nanai, que ahí no me pare ni un segundo, así que al final me he tenido que parar en medio de la calle ocupando un carril, para dejar q mi novia se subiera.<br /><br />Indignado, por la tarde, me he informado de que tal pasaba para que hubiese semejante despliegue, y me he enterado de que resulta que había una reunión de altos cargos militares...<br /><br />Y ahora me pregunto yo, ¿porque a estas alturas del siglo XXI, sigue habiendo personas con semejantes privilegios? ¿Me afectaría más a mi y a todos que atentasen contra un general que contra nuestros padres o hermanos (o hijos para quien lo tenga)? Y no es que yo sea antimilitar, lo mismo me pasa con la Iglesia o con los políticos. Todos viven tan entre algodones, tan en su burbuja, que al final no saben como piensa y actúa la gente de la calle; <b>al final no valen para nada</b>.</p>Iagohttp://www.blogger.com/profile/11230816147938018683noreply@blogger.com1