lunes, 15 de marzo de 2010

Scroll horizontal en Internet Explorer

Hay ocasiones en las que necesitamos un scroll horizontal para poder visualizar bien los elementos de un objeto html select.

Pues bien, el truquito para que la mosca cojonera de Internet Explorer no os deje en evidencia y funcione también en Mozilla, es meter el select en un contenedor, con los siguientes estilos definidos:

  • overflow-x:scroll;
  • overflow: -moz-scrollbars-horizontal;
Aquí os dejo un ejemplo:

<div style="overflow-x:scroll; width:XXXpx; overflow: -moz-scrollbars-horizontal;">
Aquí el select ---> <select....> </select>
</div>

martes, 19 de enero de 2010

Evitar conexiones lentas con MySQL

Recientemente estabamos desarrollando un software en Java, que tiraba de una base de datos MySQL, bajo un servidor de aplicaciones Apache Tomcat.

Resulta que las conexiones a base de datos, iban descaradamente lentas, y se debía a que MySQL no resolvía los DNS, incluso en una red local como la que teníamos en el trabajo. Algunas veces se demoraba entre 2 y 30 segundos en completar las consultas a la base de datos... después de hacer cambios en el equipo servidor, programa, red, equipos cliente el problema continuaba.

El tema es que cuando un usuario se conecta, MySQL además de comprobar el nombre de usuario y la contraseña también comprueba el host, osea, resuelve a través del servicio DNS (ya sea local o remoto) la IP y/o dominio desde donde se realiza la conexión... es aquí donde se produce el problema: si el servicio DNS no responde con la rapidez necesaria (algo muy común) se retrasa el login y todo lo demás (consulta, ejecución o lo que sea que se quiera hacer en el servidor).

Para evitar este problema (la "incompetencia" del servicio DNS) simplemente le decimos a MySQL que NO intente resolver IP y/o dominio, para esto agregamos "skip-name-resolve" al archivo de configuración de MySQL (/etc/mysql/my.cnf) o lanzamos el servicio mysqld con la opción --skip-name-resolve.

Y listo, ya tenemos nuestro MySQL listo.

Ésta información está sacada de "hodavame.blogspot.com".

Os dejo también algunos enlaces interesantes:

viernes, 8 de enero de 2010

La chuleta del vim ¡¡

jueves, 3 de diciembre de 2009

Manifiesto ‘En defensa de los derechos fundamentales en Internet’

En éste blog sin ánimo de lucro hemos tomado una determinación ante la inclusión en el Anteproyecto de Ley de Economía sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

1.- Los derechos de autor no pueden situarse por encima de los derechos fundamentales de los ciudadanos, como el derecho a la privacidad, a la seguridad, a la presunción de inocencia, a la tutela judicial efectiva y a la libertad de expresión.

2.- La suspensión de derechos fundamentales es y debe seguir siendo competencia exclusiva del poder judicial. Ni un cierre sin sentencia. Este anteproyecto, en contra de lo establecido en el artículo 20.5 de la Constitución, pone en manos de un órgano no judicial -un organismo dependiente del ministerio de Cultura-, la potestad de impedir a los ciudadanos españoles el acceso a cualquier página web.

3.- La nueva legislación creará inseguridad jurídica en todo el sector tecnológico español, perjudicando uno de los pocos campos de desarrollo y futuro de nuestra economía, entorpeciendo la creación de empresas, introduciendo trabas a la libre competencia y ralentizando su proyección internacional.

4.- La nueva legislación propuesta amenaza a los nuevos creadores y entorpece la creación cultural. Con Internet y los sucesivos avances tecnológicos se ha democratizado extraordinariamente la creación y emisión de contenidos de todo tipo, que ya no provienen prevalentemente de las industrias culturales tradicionales, sino de multitud de fuentes diferentes.

5.- Los autores, como todos los trabajadores, tienen derecho a vivir de su trabajo con nuevas ideas creativas, modelos de negocio y actividades asociadas a sus creaciones. Intentar sostener con cambios legislativos a una industria obsoleta que no sabe adaptarse a este nuevo entorno no es ni justo ni realista. Si su modelo de negocio se basaba en el control de las copias de las obras y en Internet no es posible sin vulnerar derechos fundamentales, deberían buscar otro modelo.

6.- Consideramos que las industrias culturales necesitan para sobrevivir alternativas modernas, eficaces, creíbles y asequibles y que se adecuen a los nuevos usos sociales, en lugar de limitaciones tan desproporcionadas como ineficaces para el fin que dicen perseguir.

7.- Internet debe funcionar de forma libre y sin interferencias políticas auspiciadas por sectores que pretenden perpetuar obsoletos modelos de negocio e imposibilitar que el saber humano siga siendo libre.

8.- Exigimos que el Gobierno garantice por ley la neutralidad de la Red en España, ante cualquier presión que pueda producirse, como marco para el desarrollo de una economía sostenible y realista de cara al futuro.

9.- Proponemos una verdadera reforma del derecho de propiedad intelectual orientada a su fin: devolver a la sociedad el conocimiento, promover el dominio público y limitar los abusos de las entidades gestoras.

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia. NOTA: Este manifiesto fue redactado conjuntamente por periodistas, bloggers e internautas, en una maratoniana sesión durante la tarde-noche de ayer. Si estás de acuerdo, difúndelo por todas las vías que puedas.

viernes, 1 de mayo de 2009

¿Qué pasa si se nos cuelga un programa en linux?

Linux, como todos los sistemas operativos, puede cerrar programas que se hayan quedado como comunmente se dice "colgados", el proceso es simple.

Tenemos dos opciones, usar alguna herramienta del entorno grafico para ello o el terminal, a continuación explicaré los dos:

  • Usando aplicaciones gráficas:
    En el caso de Ubuntu, con el gestor de ventanas GNOME, existe una aplicación para ello, se encuentra en Sistema->Administracion->Monitor del sistema.
    Simplemente seleccionando el proceso en cuestión y presionando en finalizar proceso, lo mataremos.

    He usado dos terminos que a partir de ahora os serán muy familiares, "proceso", asi se llama a cada uno de los programas, demonios, o scripts en ejecucion dentro de un sistema Unix, toda aplicación tiene uno o más procesos ejecutados. El otro término es "matar" un proceso, se le llama así ya que la instrucción que se ejecuta para ello se llama "kill".
  • Usando el terminal:
    Es la más fiable, no falla, para ello abrimos un terminal y ejecutamos la siguiente instrucción:
    sudo ps -ef
    Esto nos mostrará una lista con todos los procesos que están corriendo en el sistema:
    Solo debemos mirar el número de proceso (PID), y ejecutar el kill, con la siguiente instrucción:

    sudo kill -9 (PID del proceso)

    Hay una instrucción que nos puede ayudar a buscar entre los procesos, el que queremos "matar" en concreto, si por ejemplo queremos cerrar el navegador Mozilla Firefox, ejecutaremos la siguiente instrucción:

    ps -ef | grep firefox

    Esto filtrará los resultados mostrandonos solamente los procesos asociados a firefox, o con nombre similar a éste.

    Sin más espero os ayude, un saludo ¡¡

martes, 17 de marzo de 2009

Lista de comandos básicos


Aquí os dejo una lista con los comandos más necesarios para la gestión y uso de nuestro sistema linux, y más concretamente para las “distros ubuntu-debian”.









  • 'hostname': Devuelve el nombre de la máquina.
  • 'uptime': Devuelve la cantidad de tiempo trascurrido desde la última vez que se arrancó el sistema, la cantidad de usuarios trabajando y la carga del mismo.
  • 'uname -a': Información sobre el sistema operativo de la máquina.
  • 'free -tm': Información sobre la cantidad de memoria disponible y usada.
  • 'df -h': Informacion sobre los discos montados en el sistema, nos indica la capacidad y el uso de los mismos.
  • 'du' : Muestra el espacio ocupado en un disco.
  • 'du -bh /|more': Información sobre el espacio ocupado por cada subdirectorio, comenzando en el directorio raiz /.
  • 'ps': Información sobre los procesos del actual usuario, que se están ejecutando. 'ps axu': Información sobre los procesos del actual usuario, que se están ejecutando en la máquina.
  • 'ps -ef | grep' “XXXX” : Muestra los procesos de sistema que coincidad con el filtro que apliquemos.
  • 'top': Información sobre el uso de la CPU y memoria y los procesos del sistema.
  • 'finger' “usuario”: Información sobre el usuario aplicado.
  • 'who': Lista los usuarios conectados al sistema.
  • 'id' “usuario”: Información sobre UID, GID y GROUPS del usuario.
  • 'last': Información sobre los últimos usuarios que han usado el sistema.
  • 'ping' “máquina”: Para comprobar si tenemos contacto con la máquina (máquina: nombre o IP).
  • 'route': Tabla de enrutamiento de nuestro sistema.
  • 'ifconfig': Información sobre los distintos dispositivos de red.
  • 'ls' o 'dir': Lista archivos y directorios.
  • 'cp': Copia archivos/directorios.
  • 'rm': Borra archiv os/directorios.
  • 'rmdir': Borra directorios (deben estar vacíos).
  • 'mv' : Renombrar o mover archivos/directorios.
  • 'date': Indica la fecha y hora del sistema.
  • 'pwd': Indica la ruta absoluta donde se está ubicado.
  • 'history': Muestra el historial de comandos introducidos por el usuario.
  • 'more': Muestra el contenido de un archivo con pausas cada 25 líneas.
  • 'grep': Filtra los contenidos de un archivo.
  • 'diff' : Compara archivos.
  • 'wc' “archivo”: Muestra el número de palabras, líneas y caracteres de un archivo.
  • 'wc -c' “archivo”: Muestra el tamaño en bytes de un archivo.
  • 'traceroute': Herramienta de red que nos muestra el camino que se necesita para llegar a otra máquina.
  • 'sniff it': Husmeador del tráfico de red.
  • 'su': Te conviertes en administrador(root) después de introducir la clave de acceso. Ideal para realizar alguna tarea de administración sin necesidad de salir del sistema y entrar de nuevo como root.
  • 'adduser' “nombre”: Añade un usuario al sistema, pidiendo una contraseña, y algunos datos para el perfil.
  • 'userdel' “nombre”: Elimina un usuario sin eliminar su directorio “home”.
  • 'passwd': Cambia la clave de acceso para el usuario actual. Root puede cambiar la clave de cualquier usuario.
  • 'groupadd' “grupo”: Crea un nuevo grupo.
  • 'groupdel' “grupo”: Borra un grupo.
  • 'chmod' “XXX” “f ichero/directorio”: Cambia los permisos de ficheros/directorios .
  • 'chown': Cambia los permisos de usuario: grupo de archivos/directorios.
  • 'chgrp': Cambia el grupo actual.
  • 'umask': Establece que permisos serán deshabilitados para los archivos nuevos.
  • 'lpr' “archivo”: Añade un documento a la cola de impresión.
  • 'lpq': Muestra los documentos en cola de impresión.
  • 'lprm': Cancela la impresión del documento activo.
  • 'tar': Archivador de ficheros.
  • 'gunzip': Descompresor compatible con ZIP.
  • 'whois': revela los datos de un dominio.
  • 'who': Muestra los usuarios de sistema que han iniciado una sesión.
  • 'tail': Muestra el final de un archivo.
  • 'cp' “f ichero1 fichero2”: Copia fichero1 como f ichero2 .
  • 'rm' “fichero”: Borra fichero.
  • 'rm -R' “directorio”: Borra el contenido completo (f icheros/subdirectorios) de directorio.
  • 'mv' “fichero1 fichero2”: Cambia el nombre de fichero1 a fichero2 .
  • 'mkdir' “directorio”: Crea un subdirectorio.
  • 'rmdir' “directorio”: Borra un subdirectorio .
  • 'shutdown -t3 -r now': Reinizializa el sistema (hay que hacerlo como root).
  • 'shutdown -t3 -h now': Apaga el sistema (hay que hacerlo como root).
  • 'reboot': Reinicia el sistema.
  • 'poweroff' : Apaga el sistema.
  • 'xwd -root -screen >' “pantalla.xwd”: Capturar la pantalla.
  • 'xwd >' “ventana.xwd”: Capturar la ventana.
Iré actualizando la lista poco a poco, y proximamente colgaré posts donde explicaré técnicas de copiado y traslado de directorios avanzadas, así como técnicas de configuradión de redes y demás virguerias desde consola.

Si tenéis alguna pregunta en concreto postead chic@s.

¿Cómo consigo una distribución de Linux?

En este post os quiero iniciar en el mundo de las distribuciones de Linux, y en cómo podemos hacernos con una... gratis sobretodo :D.

Lo primero que tenemos es que Linux, al ser de libre distribución, se encuentra disperso por la red, de forma que si lo deseáramos, podríamos coger “esto de aquí y esto de allá”, y así montarnos nuestro propio sistema, pero... para los que preferimos no ser tan osados :D, nacieron las distribuciones.

No son otra cosa que todos los ficheros, programas necesarios, instalaciones y configuraciones juntas, en un paquete de fácil acceso al usuario. Para esto nacieron... para facilitarnos el trabajo y el acceso a Linux.

Las “distros” se pueden conseguir a través de descargas, pidiendo los cd's o en algunos casos particulares, comprandolos. Estos contendrán todo lo necesario para instalar un sistema Linux bastante completo y en la mayoría de los casos un programa de instalación que nos ayudara en la tarea de una primera instalación.

Casi todos los principales distribuidores de Linux, ofrecen la posibilidad de bajarse sus distribuciones, asi que vamos a conocer algunas de las “distros” que podemos tener:



http://www.ubuntu.com/




http://www.debian.org/






http://www.redhat.es/

Hay muchisimas más, y que nadie se sienta ofendido si no he puesto la suya... :), yo sólo conozco unas cuantas más y todas tienen sus particularidades, como dije en el articulo anterior, “para gustos los colores”.

Os animo a hacer un pedido, por ejemplo a Ubuntu, os enviarán un paquete con el cd o dvd de la distribución original. Sólo tenéis que registraros en su web oficial y pedir los cd's.




¡¡Os aseguro sin duda que os gustará recibir el paquete y tener un linux original y gratuito con el que podreis hacer vuestros primeros pinitos!!.