martes, 16 de marzo de 2010

Emacs: SQL-mode

Últimamente estoy volviendo a jugar con Emacs. La verdad que es una herramienta fantástica ;-)
Hoy os voy a hablar del modo SQL (sql-mode), que nos permite realizar consultas a base de datos desde Emacs.

Lo primero que tenemos que hacer es conectarnos con nuestra base de datos. Para ello ejecutamos sql-<rdbms>, donde rdbms es el nombre de nuestra base de datos. Tenemos disponible: postgres, oracle, mysql, etc. En mi caso utilizaré Postgres (M-x sql-postgres)

Ahora Emacs nos pide el nombre de usuario, contraseña y servidor donde se encuentra la base de datos.
Una vez introducidos, veremos el programa psql embebido en un buffer de Emacs (por supuesto, será necesario haber instalado este programa previamente).

Ahora podemos ejecutar las consultas directamente desde la interfaz de psql. Sin embargo, también tenemos la posibilidad de crear un nuevo buffer (C-x b), asignarle el modo SQL (M-x sql-mode) y en él escribir nuestras consultas.
Recuerda echarle un vistazo a la ayuda de este modo (C-h m), pero a modo de avance, aquí muestro un par de comandos muy útiles:

C-c C-c Envía la consulta en el párrafo actual
C-c C-r Envía la consulta de la región actual

domingo, 14 de marzo de 2010

Emacs shell: eliminar caracteres extraños

Si utilizas Emacs seguramente conocerás el modo mayor Shell (M-x shell), que nos permite utilizar un shell embebido dentro de Emacs, algo muy útil especialmente si estás programando scripts de shell.

Sin embargo, he observado que este modo muestra caracteres extraños (^[[0m^[[) si tu terminal tiene habilitado los colores (por ejemplo, en el fichero .bashrc). Ejemplo:




Para solucionar este problema, tan solo hay que añadir esta configuración a su fichero ~/.emacs:
;; Soluciona caracteres extraños en el modo Shell
(add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on)



miércoles, 2 de septiembre de 2009

Powertop: Ahorro de batería en GNU/Linux

Cada día aparecen nuevos portátiles que prometen una duración de la batería mayor de 5 horas. La verdad es que muchas veces dan tentaciones de comprar uno de esos portátiles, especialmente si viajamos mucho. Sin embargo, todavía podemos exprimir un poco la duración de la batería de nuestro portátil si optimizamos la configuración del sistema operativo GNU/Linux. La herramienta que nos puede ayudar en esta tarea es Powertop.

Powertop es una aplicación diseñada por Intel, de aspecto similar al comando top de GNU/Linux, y que nos proporciona información sobre el consumo eléctrico de los módulos del kernel o programas que se están ejecutando en ese momento. Pero además, Powertop nos ofrece valiosas sugerencias para intentar optimizar al máximo el consumo eléctrico del ordenador.


Hay varias consideraciones a tener en cuenta cuando intentamos mejorar la duración de la batería:
  • Dar el menor brillo posible al monitor
  • Desactivar todos los dispositivos de hardware que no estemos utilizando: bluetooth, tarjeta wireless, dispositivos USB, etc.
  • Para los procesadores que cambian de frecuencia al vuelo, es decir, practicamente todos los actuales, intentar que la frecuencia sea siempre la menor posible. La frecuencia del procesador se puede verificar en la parte superior derecha de Powertop o utilizando alguna aplicación específica como osdcpufreq. La mejor forma de asegurarnoslo es usando los "scaling governor" del procesador conservative u ondemand. Ejemplo:
# modprobe acpi-cpufreq cpufreq_conservative
# echo conservative > /sys/devices/system/cpu/cpu/cpufreq/scaling_governor
  • Habilitar el soporte HPET en la BIOS del portátil y/o forzar al kernel a usarlo. Para forzar al kernel a usar el HPET debemos modificar el fichero /boot/grub/menu.lst añadiendo la opción hpet=force a nuestro kernel (será necesario reiniciar para que los cambios tengan efecto):
kernel /boot/vmlinuz26 root=/dev/sda2 ro vga=0x317 hpet=force
  • Para comprobar que HPET está siendo utilizado, podemos ejecutar el siguiente comando:
# dmesg | grep -i hpet
Kernel command line: root=/dev/sda2 ro vga=0x317 hpet=force
pci 0000:00:1f.0: Force enabled HPET at 0xfed00000
hpet clockevent registered
HPET: 3 timers in total, 0 timers will be used for per-cpu timer
rtc0: alarms up to one month, y3k, 114 bytes nvram, hpet irqs
  • Añadir pequeñas optimizaciones que nos va sugiriendo Powertop. En mi caso he añadido estas modificaciones al fichero /etc/rc.local para asegurarme que siempre se ejecutan al inicio del sistema operativo:
ethtool -s eth0 wol d
echo 1500 > /proc/sys/vm/dirty_writeback_centisecs

  • Finalmente, debemos intentar ejecutar únicamente el software requerido en cada momento. Por ejemplo, en mi caso, cuando voy de viaje y estoy viendo una película, no necesito tener ejecutándose PostgreSQL (que consume mucha corriente), el servidor HTTP o FTP, o incluso la barra de tareas lxpanel, así que me he creado un sencillo script para dejar de ejecutar esos programas cuando no los necesito.
Una vez que el sistema operativo esté optimizado para ahorrar batería veréis como el valor Wakeups-from-idle per second en Powertop disminuye notablemente y, por lo tanto, aumenta la duración de la batería.

Para más información sobre cómo ahorrar batería, os dejo estos enlaces:

viernes, 3 de julio de 2009

División de String en palabras con Java

Una de las tareas habituales en el mundo de la programación es el manejo de cadenas de caracteres (String). En este post os muestro una forma muy fácil de dividir Strings en palabras gracias a la clase StringTokenizer del paquete java.util de Java.
Observa el siguiente fragmento de código:

public List<Period> getPeriods(String strPeriodIds) {
List
<Period> periods = new ArrayList<Period>();
StringTokenizer st = new StringTokenizer(StringUtils.deleteWhitespace(strPeriodIds), ",");
while (st.hasMoreTokens()) {
periods.add(this.getPeriod(st.nextToken()));
}
return periods;
}
el método getPeriods() recibe un String que contiene un listado separado por comas de "Identificadores de Periodo"; ejemplo: "primero,segundo,tercero". El objetivo del método es devolver un List con los objetos de todos esos identificadores de periodos.

Observa cómo se construye el objeto st de la clase StringTokenizer. Su constructor recibe como parámetros:
  • El String que queremos dividir (Al que se le eliminan previamente todos los espacios en blanco)
  • El String por el que dividiremos en palabras, en este caso una coma "," (pero en otros casos puede que sean espacios en blanco " ")
La forma en la que se recorren todos los "trozos" de String (Tokens) es muy parecida al conocido patrón del Iterador.

lunes, 8 de diciembre de 2008

Torre del Agua en "Yo, Robot"

Acabo de ver la película "Yo, Robot", y me he quedado sorprendido del parecido más que razonable entre la sede oficial de la empresa fabricante de robots USR y el icono por excelencia de la Expo Zaragoza 2008: La Torre del Agua (con permiso de Fluvi).

¿No se lo creen? Pues aquí dejo unas imágenes para que comparen. A la izquierda están las imágenes del edificio de la película, y a la derecha las fotografías de La Torre del Agua:








Ya digo, parecido más que razonable...

domingo, 7 de diciembre de 2008

MÁSmovil: una gran elección

En estos tiempos de crisis el ahorrar dinero se ha convertido en una obligación para casi todos nosotros. Una buena forma de hacerlo es reducir nuestra factura de teléfono móvil; y con MÁSmovil podemos lograrlo de forma sencilla.

Hace más de 5 meses que decidí apostar por esta compañía y la verdad es que no me ha podido salir mejor. A continuación voy a exponer mi experiencia con ellos durante este tiempo.

MÁSmovil es una compañía de telefonía móvil que opera en España a través de Internet utilizando la cobertura de la red Orange. A este tipo de compañías se les denomina OMV, que es el acrónimo de Operador Móvil Virtual, y se suelen caracterizar por tener tarifas más económicas que los operadores más conocidos por todos.

Y hablando de tarifas, aquí están las tarifas de MÁSmovil, realmente económicas y sencillas de entender:

8 céntimos (+IVA) el minuto/SMS a cualquier operador (fijo/móvil) y a cualquier hora, y 3 céntimos el Mb en Internet: un precio más que competitivo, especialmente el de Internet, con velocidades de hasta 3.6mbps, que según dicen ellos es la más rápida del mercado. A continuación os muestro un gráfico extraído de su página web en las que compara la tarificación en Internet de los diferentes operadores de telefonía móvil:



Para lograr ese precio de 8 cent en voz y SMS tienes que dar de alta lo que llaman Contrato MÁSlibre, que en realidad no es un contrato, sino una recarga automática periódica que se realizará:
  • cuando tu saldo alcance un límite prefijado por ti, por ejemplo 5 Euros,
  • o cada cierto periodo de tiempo, por ejemplo el día 10 de cada mes.
Yo personalmente tengo configurada la primera opción, porque es muy cómoda para mí: cada vez que me voy a quedar sin saldo se me recarga automáticamente el importe que tengo seleccionado por defecto (en mi caso 10€). El importe de la recarga se descuenta directamente desde la tarjeta de crédito que hayas configurado desde la página web.

Pues como ves el Contrato MÁSmovil es una combinación de las clásicas modalidades de tarjeta y contrato, pero con la importante diferencia de que en MÁSmovil no hay periodo de permanencia, es decir, te puedes ir cuando quieras, como si te vas al día siguiente de haberte dado de alta. Lo único que te exigen es que consumas al menos 1€ al mes (lo que es bastante fácil de hacer, especialmente si tienes novia, jeje). Si un mes no llegas al Euro de consumo te descontarán del saldo de tu tarjeta SIM el importe que falte; ejemplo: si has gastado 0.6€ te cargarán 0.4€ más a final de mes.

En MÁSmovil tienes dos posibilidades para darte de alta: si quieres puedes hacer una portabilidad de tu número desde otra compañía o directamente adquirir una tarjeta SIM con tu nuevo número. Si optas por la segunda opción, como yo hice, podrás elegir el número de teléfono entre los que estén disponibles en ese momento, lo que te permite escoger algún número fácil de recordar por ti. A mi esta opción me pareció muy curiosa en su momento y es algo que no he visto en ninguna otra compañía hasta el momento.

Además comentaros que actualmente tienen una promoción, denominada VAMOSAMÁS, por la que, si cuando vas a darte de alta en MÁSmovil introduces el número de teléfono de un cliente actual, os regalan 5 Euros a ambos.

Y hasta aquí este artículo sobre MÁSmovil, espero que os haya resultado útil... Por último me gustaría daros mi número de teléfono, por si decidís daros de alta y queréis aprovechar la promoción VAMOSAMÁS y ganar 5 Euros. El número del cliente actual que tenéis que indicar justo al comenzar el proceso de alta es 693778878, que como veís es muy fácil de recordar ;-)

sábado, 6 de diciembre de 2008

Baja en Ya.com


Bueno, pues aquí estoy, estrenando blog y de mala leche... Queridos lectores, otro blog más en Internet y otro artículo relacionado con estafas problemas con un ISP (Proveedor de Servicios de Internet), en este caso el afortunado es Ya.com.

Resulta que hace unos meses que cancelé mi ADSL de 1Mb con Ya.com. Antes de nada decir que durante los más de 5 años que he estado con ellos no he tenido ningún tipo de problema, todo lo contrario: un buen servicio, rapidez en la línea, facturación correcta, etc. (¿seré la excepción que confirme la regla?). Estaba tan contento con ellos que incluso recomendé a varias personas que contrataran Ya.com durante estos años.

Bueno, pues todo iba genial hasta que decidí darme de baja. Realicé todos los tramites necesarios para cursar la baja; un día antes de que terminase mi "ciclo de facturación" me cortaron el servicio y yo pagué religiosamente el último mes del contrato. Pensé que ya había terminado (exitosamente) con el temido proceso de darse de baja del ADSL en España...

Pero resulta que al mes siguiente me llega un cargo a mi maltrecha cuenta bancaria por importe de 11,60 Euros desde Ya.com... Y yo me pregunto de qué será... Tras darle muchas vueltas a la cabeza caigo en que puede ser que por tramitar la baja te cobren algún tipo de indemnización... ¡Premio al caballero! Resulta que por darte de baja en el servicio te cobran dinero, ¡me parece increíble!

Pero además de increíble me parece que no tiene mucha pinta de ser legal, así que decido investigar un poquito por el mundo de las leyes y me topo con la Ley 44/2006, de 29 de diciembre, de mejora de la protección de los consumidores y usuarios que tiene un par de puntos muy interesantes al respecto:

"El consumidor podrá ejercer su derecho a poner
fin al contrato en la misma forma en que lo celebró,
sin ningún tipo de sanción o de cargas onerosas..."

"En particular, en los contratos de prestación
de servicios o suministro de bienes de tracto sucesivo
o continuado se prohíben las cláusulas que
establezcan plazos de duración excesiva o limitaciones
que excluyan u obstaculicen el derecho del consumidor
a poner fin al contrato."


Así que, si mi capacidad de comprensión no me engaña, entiendo que no debo pagar cantidad alguna por darme de baja en el servicio y decido dar orden a mi banco para que devuelva todos los recibos que vengan de parte de Ya.com.

Durante los siguientes meses he recibido varias cartas y SMS por parte de Ya.com en los que se me amenaza con iniciar trámites jurídicos para saldar la deuda, que me van a incluir en la lista de morosos (que parece que acojona y todo), etc. Y yo, pese al acojonamiento inicial, decido que no voy a pagar; 11,60 Euros no van a ningún lado, pero no me da la gana, ¡qué quieres que te diga!


Y resulta que hace unos días recibo en mi buzón una bonita carta de Intrum Justicia en la que me cita un par de puntos de la "Ley 34/2002, de 11 de julio, de Servicios de la Sociedad de la Información y de Comercio Electrónico" y me vuelve a amenzar en nombre de Ya.com con incluirme en listas de morosos si no saldo la deuda.

¡Pues esto ya se está pasando de castaño oscuro! Me dicen que les llame por teléfono (a un 902) si tengo cualquier duda... Pues sí, tengo unas cuantas, para empezar que en ningún momento nadie me ha dicho en concepto de qué son esos 11,60 Euros (hasta el momento sólo tengo una intuición personal).

Pero el tema es que no me da la gana llamar por teléfono, ¿por qué me tengo que gastar dinero para demostrar que no es legal lo que me exigen? En un principio pienso en pasar de ellos, pero luego decidio hacer una búsqueda rápida por Internet sobre esta gente, y, por lo que parece, son bastante pesaditos y cada dos por tres te están enviando cartas y SMS para que pagues (al más puro estilo cobrador del frack).

Por este motivo decido mándarles un email (que es gratis) en el que les cito (como hacen ellos en su carta) los dos puntos anteriores de la Ley de mejora de la protección de los consumidores y les pido que desistan en continuar con este proceso y, por supuesto, con incluirme en cualquier tipo de lista de morosos. Finalmente termino amenazando (esta vez soy yo el que les amenaza, que ya tenía ganas) con denunciarlos al organismo competente (todavía me tengo que informar cuál es) si continúan con el proceso.


Y eso es todo, no sé que pasará en el futuro con este asunto. Personalmente creo que con el email que les he mandado se va a acabar todo, pero quién sabe...

Y hasta aquí mi primera entrada en el blog.
Seguiré informando.