Feb 04, 2012

Francisco Luque

Francisco Luque
LMDE Cosillas feed

Viewnior ligero y práctico visor de imágenes


Viewnior es un minimalista visor de imágenes, compacto, rápido, elegante, de muy buena calidad y muy ligero.
Viewnior tiene todas las opciones más usuales y necesarias en este tipo de visores.Como sus autores dicen: "este visor esta inspirado en Eye of Gnome (visor normalmente por defecto econ Gnome), debido a su facilidad de uso y su calidad. Y basado en GPicView, debido a su diseño ligero y su minimalista interfaz". 

Viewnior viene a ser la suma de estos dos, pero mejorado de tal modo que es fácil verlo. Pongamos como prueba la siguiente captura. Viewnior a la izquierda y Eye a la derecha. Lo primero que sorprende es  lo parecidas que son estas dos herramienta, pero rápidamente y a simple vista ya se puede ver la diferencia en el tipo de encuadre de la imagen de cada una de ellas. Donde Viewnior se adapta perfectamente a ésta. En el caso de Eye no sucede igual. Pero donde realmente se ve diferencia es en la calidad de la imagen mostrada:


Las dos imágenes se encuentra al 14% y la diferencias es realmente asombrosa.  Clica en ella para verla ampliada.

Este programa está pensado para integrarse plenamente Gnome y ahora ya incluso viene preparado para Gnome 3.x.

Características:

  • Pantalla completa y presentación de diapositivas
  • Rotar y voltear
  • Guardar y borrar imágenes
  • Recortar imágenes
  • Soporte para animaciones
  • Explorar sólo imágene seleccionada
  • Ventana de navegación
  • Soporte para dejar las imágenes como fondos de pantalla (sólo Gnome)
  • Interfaz super sencilla
  • Acciones del ratón configurables
Una opción de lo más interesante por su prontitud, practicidad y calidad es la de recotar imágenes.Realmente practica la posibilitad de hacer recotes sin necesidad de abrir ningún tipo de editor.


Para LMDE añadimos el siguiente repositorio:
  • deb http://ppa.launchpad.net/xsisqox/ppa/ubuntu maverick main
  • deb-src http://ppa.launchpad.net/xsisqox/ppa/ubuntu maverick main
Key: 8279047A

Luego lo puedes instalar fácilmente desde el gestor de software, Synaptic o el Terminal. Para este último así:
  • sudo apt-get install viewnior
Web de Viewnior
Marcelo Fortino

Marcelo Fortino
Fortinux.com feed

Ubuntu en un USB stick

Un ordenador portátil, bueno, en realidad dos, uno con Ubuntu y el otro con Android dentro de un USB Stick. El artículo original en inglés:

FXI Cotton Candy Hands-On: USB Stick Computer Now Runs Ubuntu, Ice Cream Sandwich

FXI Cotton Candy Hands-On: USB Stick Computer Now Runs Ubuntu, Ice Cream Sandwich.

FORAT: Servidor Tracker Torrent con Linux Ubuntu Server
Gaspar Fernández

Gaspar Fernández
Poesía binaria feed

Coloreando código con GeSHi

geshiCuando queremos publicar código fuente por Internet (como en esta web), debemos hacer que los usuarios se sientan bien con el código y que sea agradable de leer. Además del indentado, es de agradecer la introducción de colores, que separen palabras clave, identifiquen cadenas, funciones de biblioteca, funciones propias, números y demás elementos que encontramos en un fragmento de código.

Por Internet, podemos encontrar una biblioteca muy útil para este propósito: GeSHi. Vamos a intentar hacer algo sencillo con ella.

Para instalarla simplemente tenemos que descargarla y descomprimirla en uno de los directorios de nuestra web (no tiene por qué ser el principal), a continuación vamos a hacer un pequeño programa que mostrará el código fuente de un fichero PHP. Suponemos que geshi.php está situado en el mismo directorio que este ejemplo:

1
2
3
4
5
6
7
8
9
10
<?php
// Basado en los ejemplos de la página oficial
require_once("geshi.php");

$codigo=file_get_contents('mi_programa.php');

$ges=new GeSHi($codigo, 'php');

echo $ges->parse_code();
?>

Con este pequeño ejemplo, se mostrará de forma coloreada el código seleccionado, aunque es conveniente el uso de cachés, es decir, es una buena idea almacenar el código coloreado, es decir, el contenido que devuelve $ges->parse_code() en un archivo aparte y cargar directamente este archivo en la siguiente petición de la página. Por ejemplo:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?php
include_once 'geshi.php';

function color_source_file($source_file, $language)
{
  $source_cache='cache/'.basename($source_file).'_'.$language.'.cache';
  if (@filemtime($source_cache)<filemtime($source_file))
    {
      $geshi= new GeSHi(file_get_contents($source_file), $language);
      $highlighted_source=$geshi->parse_code();
      file_put_contents($source_cache, $highlighted_source);
      return $highlighted_source;
    }
  return file_get_contents($source_cache);
}

$source = 'mi_programa.php';

echo color_source_file($source, 'php');
?>

Este código es capaz de guardar en un fichero el html generado por GeSHi en un archivo de caché (se guardará en un directorio llamado cache, el nombre del fichero será el mismo que el espeficado y su formato será [nombre]_[lenguaje].cache . La decisión se toma en base a las fechas de modificación de los archivos. Si el archivo de caché no existe (por eso la @ para que no devuelva fallos PHP) o su fecha de modificación es anterior a la fecha de modificación del archivo fuente, se generará un nuevo archivo de caché y se devolverá el código coloreado. Si no, se devolverá el código coloreado leyendo directamente del archivo de caché.

Activar números de línea

Lo podemos hacer así:

1
$ges->enable_line_numbers(GESHI_FANCY_LINE_NUMBERS);

Si ponemos GESHI_FANCY_LINE_NUMBERS cada 5 líneas saldrá el número en negrita, si ponemos GESHI_NORMAL_LINE_NUMBERS no sucederá así.

Resaltar líneas

Para resaltar líneas, debemos crear un array con los números de línea que queremos resaltar:

1
$lineas=array(5,6,7,43,53,54)

Y luego escribir:

1
$ges->hightlight_lines_extra($lineas);

Personalizando los estilos

Para ello podemos utilizar CSS. Por defecto GeSHi personaliza el style=”" de cada etiqueta, aunque genera mucho código html que podemos ahorrar. Para ello, podemos utilizar lo siguiente:

1
2
$ges->enable_classes();
file_put_contents('codigo.css', $ges->get_stylesheet(false));

Así crearemos un archivo .css que contendrá todos los estilos que puede tener un código fuente en un determinado lenguaje (en el cual hemos inicializado la clase), luego podemos incluir ese CSS ya generado en nuestro html resultante, y cambiar los colores, tipos de letra, etc.

GeSHi tiene muchísimas más opciones, para saber más, basta con un vistazo a la documentación oficial (en inglés) para descubrir todas las posibilidades de esta clase.

Eina, reproductor de música de lo más ligero!

Ya conocemos diferentes opciones en Linux para escuchar música, las hay de todos los colores y gustos, pero hoy os mostramos una alternativa para los que sólo quieran escuchar música, sin más. Eina es un reproductor de música ultraligero que reproduce música y ya está. ¿A qué nos referimos? Pues sencillamente a que Eina no tiene ecualizador, no soporta dispositivos extraíbles, no almacena ni
Miguel Parada

Miguel Parada
Ubuntizando.com feed

Debian GNU/Linux 7 “Wheezy” vendrá con el kernel linux 3.2


Debian GNU/Linux es ahora una de las distribuciones mas utilizadas en los servidores web, gracias a todo el testeo que se hace a los paquetes que este lleva antes de que sea lanzada la versión final para que sea completamente estable y no tenga ningún problema de seguridad, todo esto gracias al trabajo de los desarrolladores y los usuarios que utilizan las versiones testing y unstable (sid).

debian logo  300x225 Debian GNU/Linux 7 Wheezy vendrá con el kernel linux 3.2

Los que utilizamos Debian sabemos lo estable que es, pero muchas veces nos saltamos a la versión de pruebas ya que tiene software actualizado y podemos apoyar enviando estadísticas, esta vez es tiene el nombre de Wheezy.

Una de las características principales es que vendrá con el kernel 3.2 que tiene un gran soporte de hardware y podemos hacer la instalación en equipos de computo mas recientes, pero claro aun tenemos que esperar a que llegue a la versión final si queremos utilizarla como un servidor, pero para alguna computadora de escritorio o laptop está genial utilizar la testing.

Primero se ira compilando para que se pueda instalar en diferentes procesadores como 32 bits, 64 bits, PowerPC y todas las demás, solo es cuestión de esperar a que se hagan las pruebas, se empaqueten los .deb y listo.

En el anuncio oficial podemos obtener mas información sobre la compatibilidad, lanzamiento y otros cambios.

David González

David González
El blog de pico.dev feed

Recarga de clases (class reloading) en Apache Tapestry

Apache Tapestry
En el mundo Java de desarrollo de aplicaciones web hace no tanto tiempo un cambio en una clase implicaba reiniciar el servidor para ver los cambios. Dado que desarrollando una aplicación los cambios son pequeños, incrementales y numerosos esto implicaba tener que reiniciar constantemente el servidor que dependiendo de la aplicación esto podría llevar no mucho tiempo, desde 10-30, que ya es un tiempo considerable, pero podría llegar a llevar incluso algunos minutos. El tiempo de espera para cada reinicio normalmente es tiempo no productivo que acumulándolo a lo largo del día puede llegar a ser considerable y por ello los frameworks web están evolucionando a no tener que requerir reiniciar el servidor para detectar las modificaciones, esto es, cogiendo los cambios en caliente. Ello nos permite ser más productivos.

Apache Tapestry evlucionó y no se quedó atras. La recarga de clases o «class reloading» es una característica añadida en Tapestry en la versión 5 para las clases de las páginas y componentes al igual que los archivos .tml de las plantillas y los los archivos de catálogos de mensajes. En la versión 5.2 la recarga de clases se extendió a los servicios definidos en los módulos de Tapestry. El proceso de recarga que hace Tapestry cuando se detecta un cambio en una clase no afecta a los datos persistentes ya que estos se guardan aparte, normalmente en la sesión, con lo que el desarrollo nos será muy cómodo.

Si nuestra aplicación tiene como paquete base com.blogspot.elblogdepicodev.tapestry Tapestry recargará las clases de los siguientes paquetes cuando detecte algún cambio:
  • com.blogspot.elblogdepicodev.tapestry.pages
  • com.blogspot.elblogdepicodev.tapestry.components
  • com.blogspot.elblogdepicodev.tapestry.mixins
  • com.blogspot.elblogdepicodev.tapestry.base
Sim embargo, el proceso tiene algunas limitaciones. La recarga solo se aplica a clases y archivos que están en el sistema de archivos y no obtenidos desde archivos JAR. Aunque esta limitación no es importante en desarrollo ya que podemos desplegar la aplicación en nuestro servidor de desarrollo de forma expandida.

El coger los cambios en caliente es una característica deseable de todo framework actual pero también hay que tener en cuenta el tiempo de inicio del servidor ya que en algún momento tarde o temprano nos tocará hacerlo, si queremos ser ágiles en el desarrollo no es recomendable esperar varios minutos a que el servidor termine de iniciarse y en producción es necesario que el tiempo de interrupción sea mínimo.

Un Tomcat sin ninguna aplicación tarda en iniciarse unos 4 segundos, con una aplicación Tapestry desplegada de forma expandida con Hibernate, EhCache y Quartz de tamaño medio tarda unos 10 segundos y en servir la primera página unos 15-20 segundos.

Referencia:
Documentación sobre Apache Tapestry
Alejandro Castilla Quesada

Alejandro Castilla Quesada
El blog de alejandrocq feed

Mi escritorio (IV)

escritorio kde

Una vez más, me dispongo a presentaros mi escritorio KDE en Arch Linux. Este es quizá uno de los que más me ha gustado, puesto que los iconos, el tema de plasma y el fondo de pantalla encajan a la perfección para mi gusto. Os dejo unas cuantas capturas:

escritorio kde

dolphin preferencias del sistema kde

cerrar sesión kde

Ahora vayamos con los detalles:

Como véis, los iconos kAwOken quedan bastante bien con el tema Caledonia. Este pack de iconos incluye un script (kawoken-icon-theme-customization) con el que puedes colorear los iconos a tu gusto. Para instalar el pack de iconos kAwOken haremos lo siguiente:

    1. Descargamos el .zip desde deviantART y lo extraemos. Ahora tenemos tres archivos: kAwOken.tar.gzkAwOkenWhite.tar.gzkAwOkenDark.tar.gz. Para instalarlos, abrimos Preferencias del sistema -> Apariencia de las aplicaciones -> Iconos -> Instalar un archivo de tema… e instalamos los tres archivos.
    2. Ya podemos utilizar estos tres packs de iconos de diferente color, pero si queremos personalizar los iconos, abrimos una terminal y ejecutamos los siguientes comandos:

$ sudo cp -p kAwOken/kawoken-icon-theme-customization /usr/bin
$ sudo cp -p kAwOken/kawoken-icon-theme-customization-clear /usr/bin
$ sudo cp -p kAwOkenDark/kawoken-icon-theme-customization-clear /usr/bin
$ sudo cp -p kAwOkenWhite/kawoken-icon-theme-customization-white /usr/bin

3.   Por último, ejecutamos el script y seguimos los pasos:

$ kawoken-icon-theme-customization

Cuando elijamos el esquema de color correspondiente (en mi caso 99 30 00, el que usa el autor en la preview), el script nos generará automáticamente un nuevo pack de iconos con esa configuración. Sin duda un punto fuerte de este gran pack de iconos.

Eso es todo, espero que os guste tanto como a mí.


Filed under: Escritorios, KDE, Temas e iconos Tagged: caledonia, escritorios, iconos, kAwOken, KDE

Feb 03, 2012

Lorenzo Carbonell

Lorenzo Carbonell
El atareao feed

Sunflower o un gestor de archivos para Linux con dos paneles

Introducción

He probado otros gestores de archivos en Ubuntu, basta recordar el artículo “Marlin, un sustituto de Nautilus, ligero y con estilo“, y siempre termino volviendo a Nautilus, que pese a ser mas pesado, y no tan rápido como Marlin, me gusta las posibilidades que ofrece a la hora de extenderlo con complementos, que son fácilmente implementables.

Incialmente, cuando he leído sobre SunFlower, tampoco le he prestado mucho interés, ya que Nautilus, soporta dos paneles con solo pulsar F3. Sin embargo, no he podido resistir la curiosidad, y he terminado por probarlo, mas que nada, por aquello de estar completamente programado en Python, y tengo que reconocer, que tiene muchas posibilidades, es ligero (consume un 50% menos de recursos que Nautilus) y rápido, y eso que está implementado en Python (por aquello de ser un lenguaje de programación interpretado).

SunFlower

Sunflower

Sunflower es un sencillo y ligero gestor de archivos, de dos paneles, con muchas posibilidades de personalización, y que permite extenderlo mediante complementos. El principal objetivo de este gestor, es que sea a la vez fácil de usar y verdaderamente potente, y además que se integre a la perfección en el escritorio GNOME. Actualmente, Sunflower está en las primeras etapas de desarrollo, pero a pesar de ello, es completamente funcional.

Instalación

No existe (o yo no he encontrado ninguno que funcione), un repositorio en Launchpad, para instalar esta aplicación, pero el caso, es que me ha llamado tanto la atención, que he creado un repositorio y su correspondiente paquete para probarlo. He modificado ligeramente alguna parte del código fuente para poder empaquetarlo, y que no diera problemas, con la forma que utilizo yo para empaquetar, pero aún así no he conseguido que las traducciones funcionen, así que por ahora tendrás que utilizar la aplicación en inglés.

Lo primero añadimos el repositorio y actualizamos:

[bash]
sudo add-apt-repository ppa:atareao/sunflower && sudo apt-get update
[/bash]

Una vez añadido el repositorio y actualizado, podemos instalar Sunflower desde el Centro de Software de Ubuntu, haciendo clic en el siguiente botón:

instalar

o bien desde el terminal:

[bash]
sudo apt-get install sunflower
[/bash]

Uso

En el código original, no venía ningún lanzador, para poder iniciarlo desde el Dash o Tablero, así que he añadido un lanzador, lo que te permitirá iniciar la aplicación con solo escribir “sunflower” en el Dash. Una vez iniciado, verás una ventana como la siguiente:

sunflower

Lo primero es que añadas en la pestaña el botón para poder cerrarla, lo comento, porque no sabía como hacerlo, simplemente en el menú seleccionas Edit > Preferences > Display > Tabs y marcas la opción show close button. Solventado este incidente inicial, ahora toca jugar con el “animalito”. Lo primero que me llamó la atención, es que tienes la posibilidad de acceder al terminal directamente desde la ventana, lo que te da la clara ventaja de que no tienes que abrir una nueva aplicación, solo tienes que pulsar el botón con el icono de la aplicación.

Además te permite añadir accesos rápidos o bookmarks, a diferentes directorios, con lo que puedes acelerar considerablemente el trabajo. A esto hay que sumarle el renombrado de archivos, con varias posibilidades, utilizando contadores, o incluso, en el caso de renombrar archivos tipo mp3, te permite utilizar las etiquetas de los archivos.

sunflower

Otra potente herramienta es la búsqueda de archivos, que no solo busca por el nombre del archivo, sino que además te permite buscar en función del contenido del mismo, o en función del tamaño.

sunflower

Permite comparar fácilmente dos directorios, marcándote aquellos elementos diferentes en cada uno de los directorios, te permite seleccionar los archivos siguiendo un determinado patrón, o en función de la extensión, lo que además lo hace verdaderamente cómodo, porque te permite seleccionar todos los archivos con la misma extensión que el que tienes seleccionado en el momento. Y además te permite ver una vista preliminar, de los archivos de imagen con solo pulsar el atajo de teclado Alt+F3, para activarlo o desactivarlo.

Conclusiones

Este gestor de archivos me recuerda al Total Commander. Es realmente cómodo manejar dos paneles de forma simultánea, porque lo normal es copiar, o mover archivos entre directorios, o comparar ambos directorios. Te recomiendo que la pruebes, para que compruebes por ti mismo lo rápida y ligera que es, y el potencial que te ofrece desde todos los puntos de vista.

Más información | Sunflower

Artículos relacionados...

  1. Rebuscando archivos con un determinado contenido en Linux
  2. Pastie un gestor del portapapeles para Ubuntu
  3. Un servidor de archivos facil para Ubuntu
Miguel Parada

Miguel Parada
Ubuntizando.com feed

10 clientes BitTorrent y gestores de descargas para Ubuntu


bittorrent notebook screen 10 clientes BitTorrent y gestores de descargas para Ubuntu

Hace unas semanas recibimos una noticia que cambiaría por completo el panorama de las descargas online. Me refiere al cierre de Megaupload por parte del FBI (para el que ni siquiera necesitaron las leyes SOPA/PIPA). Lo que no entienden estas personas es que siempre Internet va más rápido. No tengo dudas que luego del cierre de Megaupload nacieron nuevos servidores, para convivir con los cientos de ya existentes y con alternativas libres que representan más la idea de ‘compartir’, como las redes P2P, entre las que se encuentran eDonkey o, mi favorita personal, BitTorrent.

Para facilitar la descarga en estos dos métodos -sean descargas directas o vía torrent- existen diferentes aplicaciones. A continuación, la lista de los clientes BitTorrent y gestores de descargas más destacados disponibles para Ubuntu.

Clientes BitTorrent para Ubuntu

  • Transmission. Seguramente el cliente BitTorrent más popular para Ubuntu, ya que viene instalado por defecto en las versiones del sistema operativo. Es multiplataforma, liviano, libre y sencillo a la hora de utilizarlo. En mi opinión, y en la de muchos más, el mejor cliente BitTorrent disponible para Linux. Click aquí para instalarlo en Ubuntu vía el Centro de software.
  • Vuze. Vuze, antes Azureus, es un cliente BitTorrent desarrollado en Java, por lo tanto multiplataforma pero también una bestia que se alimenta a base de nuestra memoria RAM. Cuenta con todas las opciones de configuración que se te ocurran e integra un reproductor de contenidos y un metabuscador de torrents. Se podría decir que es lo más similar a uTorrent y BitTorrent, los populares clientes disponibles para Windows y Mac. La aplicación cuenta con una versión de pago que incluye nuevas funcionalidades, como un antivirus y una herramienta para grabar DVDs. Instalalo desde el Centro de software.
  • Deluge. Otra alternativa es Deluge. Comparte varias de las características con Vuze, pero es más amigable a la hora de gestionar los recursos de nuestra computadora. Opción a considerar para usuarios con conocimientos que busquen un programa configurable y no tan pesado. Instalalo en tu Ubuntu.
  • BitTornado. BitTornado es un cliente BitTorrent flexible y configurable. Sin embargo, su interfaz está entre las más feas. Igualmente, si eres un usuario al que no le interesa tanto el aspecto, es una opción a considerar. Disponible en Centro de software, instalalo con un click.
  • Cliente BitTorrent de GNOME. El cliente BitTorrent de GNOME, una opción simple, pero demasiado. Si no utilizas torrents normalmente puede ser una alternativa a considerar, y tiene algunas ventajas, por ejemplo, que es muy liviano. Para cualquier otro tipo de usuario, no es recomendable, carece de muchas funciones básicas disponibles en cualquier otro cliente. Click para instalar en Ubuntu.
  • qBitTorrent. Desarrollado en C++ es un cliente bastante completo -integra buscador, compatibilidad con feed RSS, organización de torrents por etiquetas- y es considerado por algunos como el equivalente a uTorrent para Linux. qBitTorrent está disponible en el Centro de software Ubuntu, haz click aquí para instalarlo.

Para quienes no estén familiarizados con el protocolo BitTorrent, no es algo difícil de entender. Deben buscar sus torrents en los trackers, como The Pirate Bay, isoHunt o btjunkie. Desde ahí descargan el torrent o lo agregan a su cliente utilizando un enlace Magnet, donde luego comenzará su descarga. Otro concepto que deben conocer es el de los seeders y los leechers. que básicamente son los que tienen el archivo y los que están intentando conseguirlo. La velocidad de las descargas depende principalmente de la relación entre estos dos aspectos.

Gestores de descargas para Ubuntu

  • Tucan. Compatible con la gran mayoría de servidores de descargas directas (incluyendo Rapidshare, Gigasize, Hotfile) Tucan es como una versión más liviana del famoso jDownloader. Si bien hace uso de Java, es una aplicación mucho más liviana. Puedes pausar y reanudar tus descargas. Integra un reconocedor de captchas.  Click pora instalarlo de Ubuntu.
  • SteadyFlow. Una opción sencilla que soporta los protocolos HTTP, HTTPS, FTP y SMB. Cuenta con opciones para pausar y reanudar nuestras descargas, pero no es compatible con algunos sitios como Rapidshare. Disponible en los repositorios de Ubuntu, click para instalar.
  • FatRat. Basado en Qt, además de contar con el mejor icono de todos los gestores de descargas, FatRat tiene unas características bastante interesantes. Funciona con HTTP(S)/FTP y también con servidores de descarga directa. Pero no solo es un gestor de descargas, también incluye un cliente BitTorrent dentro. Igualmente la mayoría de las funciones son la de un gestor de descargas y es por eso que se encuentra en esta sección del artículo. Instalalo en Ubuntu.
  • jDownloader. Quizás el gestor de descargas más popular. Soporta tanto servidores de descarga directa como también bajar videos de sitios como Youtube. Integra un capturador de enlaces y un reconocedor de captchas. El mayor problema con este programa es que al estar desarrollado en Java consume un gran porcentaje de RAM y capacidad de procesamiento de nuestro sistema. Aprende a instalarlo en Ubuntu.

¿Tu favorito?

¿Utilizas algún cliente  BitTorrent o gestor de descargas? Beneficia a toda la comunidad ubuntera con tu conocimiento. Comparte en los comentarios tu programa favorito y las razones por las cuales lo es.

Foto por NrkBeta.

Miguel Parada

Miguel Parada
Ubuntizando.com feed

Ubuntu 12.04 Alpha 2 disponible


Canonical anuncia que ya podemos descargar y probar Ubuntu 12.04. Precise Pangolin (Alpha2), siguiendo con el calendario programado de lo que será la nueva LTS (Long Term Support) de Ubuntu. Cargada de novedades, lo primero que veremos tras la instalación es el nuevo tema por defecto del gestor de sesiones LightDM, Unity Greeter 0.2.0. Mucho más elegante y que permite personalizar el fondo de pantalla y tema a mostrar según el usuario elegido, además de seleccionar el idioma a usar.

unity2 273x300 Ubuntu 12.04 Alpha 2 disponiblePero no es el único cambio estético, Unity 5.0 ya es una realidad y podemos probarlo en esta Alpha. Destacan las nuevas opciones de personalización, como poder cambiar el color que se mostrara en el fondo del Dash integrado como un plugin mas en Compiz. El deslizador de las ventanas ahora es mas ancho (Ayatana Overlay Scrollbars 0.2.14) Han integrado un Quicklist en los botones de Ubuntu y Nautilus. A todo esto se añade nuevas opciones de personalización en configuración de la Interfaz de Usuario tomando algunas ideas que ya podíamos ver en MyUnity.

 Ubuntu 12.04 Alpha 2 disponiblePaypal se integra con el Centro de software. También podemos buscar e instalar Lenses con gran facilidad, como una aplicación mas. Destaca que ahora es mucho mas ágil, ya no perderemos el tiempo esperando a que podamos comenzar a instalar aplicaciones.

En cuanto al software incluido por defecto, contamos con LibreOffice 3.5beta, Firefox 10 beta 6 y Thunderbird 10, Rhythmbox se consolida como reproductor musical por defecto, Transmission Bittorrent Client 2.42, Deja Dup Backup Tool 21.2 y tanto Tomboy y gBrainy no estaran ausentes. Debo ser el único que le gustaba gBrainy :S

En Webupd8.org han creado un vídeo que muestra las novedades de Ubuntu 12.04 Alpha2. Antes de instalar esta versión, nuestra recomendación habitual. Ubuntu 12.04 no es una versión final, no recomendada para entornos de producción. Queda mucho camino por recorrer hasta el próximo 26 de abril de 2012, cuando Ubuntu 12.04 alcance su versión final.

Descarga: 32bits (torrent), 64bits (torrent). Kubuntu (descarga), Xubuntu, (descarga), Lubuntu, (descarga) y Edubuntu (descarga).


Fuente: http://www.webupd8.org/

Particionado GPT

Muchos de vosotros conocéis las limitaciones del sistema de particionado clásico, basado en un registro de arranque maestro (Master Boot Record o MBR); este método para gestionar/repartir el tamaño de nuestros discos duros se caracteriza por lo siguiente:



1) Se admite un máximo de 4 particiones primarias, o bien 3 particiones primarias y 1 extendida, pudiendo esta última albergar particiones lógicas.

2) Cada partición no puede sobrepasar los 2,2 TB o terabytes de tamaño, por lo que con 4 particiones primarias, o 3 primarias y 1 extendida, nunca podríamos gestionar más de 8,8 TB.

Gracias a Intel y a su proyecto EFI (Extensible Firmware Interface) estas “limitaciones” han pasado a la historia, y escribo limitaciones entre comillas porque, a día de hoy, supongo que pocos usuarios medios necesitan un elevado número de particiones o un disco de 8,8 TB. Este proyecto no es ni mucho menos reciente, pues Intel comenzó a trabajar en él a mediados de los 90, y en el 2005 ya tenían fundación propia, conocida como UEFI (Wikipedia).

Para comprobar si nuestro equipo permite el uso de EFI, haciendo:

(para Ubuntu <= 10.10) zcat /proc/config.gz | grep CONFIG_EFI=
(para Ubuntu > 10.10) cat /boot/config-`uname -r` | grep CONFIG_EFI=

deberíamos encontrar una línea CONFIG_EFI=y.

Con el estándar EFI disponemos de un nuevo método de particionado que nos libera del viejo sistema MBR. Este método se denomina GPT (GUID Partition Table) y, a grandes rasgos, nos aporta las siguientes ventajas:

1) Se admite un máximo de 128 particiones primarias.

2) Cada partición puede llegar a un tamaño de 9,3 ZB o zettabytes (1 zettabyte = 1 billón de terabytes).

Como todavía no dispongo de un disco duro de 10 ZB (ni de 10 TB), vamos a ver un ejemplo de particionado GPT en un disco
de 160 GB, donde sobrepasaremos el límite de 4 particiones primarias propio de MBR; para llevar esto a cabo no nos sirve el mítico fdisk, si no que tendremos que recurrir a su pariente cercano gdisk. Instalarlo es tan sencillo como hacer un sudo apt-get install gdisk.

Empecemos:

En este caso, el disco duro es /dev/sdc, así que:


Antes de continuar, es necesario conocer los códigos para cada tipo de partición; para visualizar dichos códigos, pulsamos l + Enter:


El código correspondiente a una partición Linux es 0700, y el perteneciente a una partición Linux Swap es 8200.
Vamos a crear 5 particiones primarias de 10 GB cada una; 4 de ellas van a ser particiones Linux, y la última será una Linux Swap:


Como podéis adivinar, para crear una nueva partición basta con pulsar n + Enter. Sólo necesitamos introducir el tamaño (+10G) y el tipo de partición (0700 ó 8200). Pulsando p + Enter se nos muestran las particiones recién creadas:


Ahí están nuestras 5 particiones primarias. Bastará con teclear w + Enter para salir de gdisk guardando los cambios realizados.

Nota: Sólo he verificado el reconocimiento de particiones GPT en Trisquel 4.0.1, Ubuntu 11.10, Fedora 16, openSUSE 12.1 y BackTrack 5. Para otras distribuciones de Linux, consultad las documentaciones o manuales correspondientes.

Un saludo.

Pinta, porque muchas veces lo más simple es lo más efectivo

Así es, en ocasiones nos complicamos la vida con programas sofisticados y no nos percatamos de que tenemos una solución más sencilla que nos la puede proporcionar una aplicación de lo más básica. En este caso hablamos de diseño gráfico y edición de imágenes. Pinta es un editor gráfico para Linux muy básico, se podría decir que es el equivalente al Paint de Windows, aunque ya veremos que es mucho

Feb 02, 2012

Lorenzo Carbonell

Lorenzo Carbonell
El atareao feed

Bleeding Edge o instalar Acrobat, Google Earth,.. a lo fácil

Introducción

Como he comentado en alguna ocasión, cada vez que instalo una nueva versión de Ubuntu, lo hago desde cero. Las veces que he hecho un “Upgrade”, no he tenido buenas experiencias, y estoy convencido de que es consecuencia directa de la cantidad y variedad de repositorios instalados, y de la cantidad de aplicaciones que instalo y desinstalo para probar. Aunque esto es una suposición mía, lo que es seguro es que en todas las ocasiones en las que he actualizado la versión de Ubuntu, sin hacerlo desde cero, he tenido problemas.

En estos casos, siempre resulta una operación verdaderamente tediosas, reinstalar todas las aplicaciones, repositorios, etc, que teníamos instalados previamente, con lo que siempre es de agradecer herramientas que te ayuden a simplificar este proceso. Aunque, cada vez instalo menos aplicaciones del tipo de Acrobat Reader, Google Earth, Google Picasa, etc, eso si, no tengo si es porque no los suelo utilizar, o por la pereza de instalarlos una y otra vez. Desde luego, herramientas como Bleeding Edge facilitan mucho el trabajo.

2012-01-29_12-47-50

Bleeding Edge

Bleefing Edge es un sencillo script diseñado e implementado para Ubuntu 32 y 64 bits, que se encarga de instalar repositorios, claves GPG y software, tales como reproductores, codecs, fuentes MS, drivers, y otras aplicaciones como Acrobat Reader, Boxee, Cinelerra, Dropbox, Flash Player, Google Chrome, Google Earth, Google Picasa, Lucidor, Virtual Box, y un largo etc.

Instalación

Para la instalación tienes que ir a la página de Bleeding Edge, y descargarte la última versión del script correspondiente a la versión de Ubuntu que tienes instalada. Una vez descargada, le das permisos de ejecución, o bien, con el botón secundario del ratón, o bien, directamente desde el terminal:

[bash]
chmod +x BleedingEdge11_10_6.sh
[/bash]

Una vez con permisos de ejecución, lo inicias desde el terminal:

[bash]
./BleedingEdge11_10_6.sh
[/bash]

Lo primero que hace el script, es comprobar que tienes instalada la última versión para tu versión de Ubuntu, y luego te muestra la siguiente pantalla:

2012-01-29_12-57-06

Donde te indica que es una aplicación de código abierto, liberada bajo licencia GPLv3, que tienes que ejecutar el script desde el terminal, y no utilizando Alt+F2, mas que nada para responder algunas preguntas que en ocasiones aparecen, y que ejecutes el script bajo tu propio riesgo, vamos que no le reclames nada al autor en caso de problemas. Si pulsas el botón de Si, verás la siguiente pantalla. En esta lo que te indica es que tengas el sistema actualizado antes de continuar, en caso de que lo quieras actualizar en el momento, pulsas el botón Si, y procederás a actualizar, en caso de que pulses No, saltarás este proceso, e irás directamente a la ventana principal del script:

2012-01-29_12-57-19

En la ventana principal del script, verás todas las posibilidades (y muchas mas) que he comentado

2012-01-29_12-47-50

También hay otras opciones mas que interesantes, como una opción para desinstalar Mono, quitar la sesión de invitado, mover los botones de la ventana a la derecha, etc.

Conclusiones

Al final, Bleeding Edge es una sencilla herramienta para dejar tu instalación de Ubuntu, con las aplicaciones que normalmente usas, y que no se encuentran en los repositorios de Ubuntu, de un solo golpe de ratón, sin tener que estar rebuscando en Google, ni en los sitios Web, que normalmente consultas, como se instalaba una determinada aplicación, o como se quitaba Mono de tu equipo. Lo que siempre buscamos es simplificar los procedimientos, sobre todos los que son mas tediosos, para ser mas productivos, o para simplemente dedicar nuestro tiempo a otras actividades que nos resultan mas agradables, pues, Bleeding Edge, cumple perfectamente con su cometido.

Vía | addictivetips.com
Más información | Bleeding Edge

Artículos relacionados...

  1. Instalar Google Earth 6 en Ubuntu
  2. Instalar Google Earth en Ubuntu 10.10 Maverick Meerkat
  3. El Gps, Google-Earth y Ubuntu
Rosa Guillén

Rosa Guillén
novatillasku.com feed

Ubuntu 12.04 LTS Precise Pangolín Alpha 2 disponible


Ya está disponible para su descarga la Alpha 2 de Ubuntu 12.04 Precise Pangolín.

Desde la Alpha 1 ha habido ya bastantes cambios que os comento a continuación.

NOVEDADES DE LA ALPHA 2

Unity Greeter 0.2.0: La nueva versión del tema por defecto del gestor de sesiones LightDM, muestra ahora el fondo de pantalla seleccionado para su escritorio por cada usuario.Además incorpora selección de idiomas.

UNITY 5.0

Color del Dash: Ahora podemos elegir el color a nuestro gusto, configurandolo en el pluguin de Compiz.Además el Menu de la aplicación, se mantiene por más tiempo, recordad que antes sólo aparecía al acercar el cursor a la barra superior.

Imagen de Omg!Ubuntu

Quicklist botón Ubuntu: Facilitándonos el acceso directo a los sitios que contiene el dash.

Nautilus tiene ahora Quicklist en el icono del lanzador que podremos personalizar, añadiendo nuestros favoritos o más usados.

Ubuntu Software Center 5.1.17. Además de poder pagar las aplicaciones a través de Paypal, se incorporaron novedades como anclar la aplicación descargada al lanzador por defecto o encontrar lenses como Ask Ubuntu entre sus aplicaciones.

Ayatana Overlay Scrollbars 0.2.14, muestra ahora el deslizador más ancho.

Gnome Control Center, cambió Apariencia por Interfaz de Usuario, el cual nos ofrece ahora la posibilidad de cambiar el tamaño de los iconos del lanzador y personalizar la forma en que nos aparezca éste.

Firefox 10 beta 6 y Thunderbird 10

Ahora en Firefox el botón Adelante está oculto hasta que es necesario.

Esta Alpha 2 cuenta también con LibreOffice 3.5 beta 2, el Kernel 3.2.0-12.21 y ya no cuenta con sonido de inicio.

Recordar como siempre, que no intentéis probarlo en el ordenador de trabajo, sino en alguno para pruebas, ya que os arriesgáis a que un fallo os lo pueda estropear.

Las siguientes liberaciones quedarían así:

  • 1 de Marzo Beta 1
  • 29 de Marzo Beta 2
  • 26 de Abril Ubuntu 12.04 LTS Final

DESCARGAS

http://cdimage.ubuntu.com/releases/precise/alpha-2/ (Ubuntu Desktop y Server)
http://uec-images.ubuntu.com/releases/precise/alpha-2/ (Ubuntu Cloud Server)
http://cdimage.ubuntu.com/netboot/precise/ (Ubuntu Netboot)
http://cdimage.ubuntu.com/xubuntu/releases/precise/alpha-2/ (Xubuntu)
http://cdimage.ubuntu.com/lubuntu/releases/precise/alpha-2/ (Lubuntu)
http://cdimage.ubuntu.com/edubuntu/releases/precise/alpha-2/ (Edubuntu DVD)
http://cdimage.ubuntu.com/ubuntustudio/releases/precise/alpha-2/ (Ubuntu Studio)
http://cdimage.ubuntu.com/mythbuntu/releases/precise/alpha-2/ (Mythbuntu)
http://cdimage.ubuntu.com/kubuntu/releases/precise/alpha-2/ (Kubuntu)

Gaspar Fernández

Gaspar Fernández
Poesía binaria feed

Linux en “Conspiración en la Red”

linux_antitrust1

En España, se la conoce como “Hackers 3: Conspiración en la red”, aunque no tiene mucho de tercera parte; o sólo “Conspiración en la red”, en Europa también se llama “Conspiracy.com” y en EEUU, su título original es “Antitrust“. Es una de esas películas que hace varios guiños linuxeros, aunque aparezca un Tim Robins disfrazado de Bill Gates.

En el fotograma que vemos al principio del post, podemos ver claramente un escritorio Gnome, con sus iconos característicos justo en el minuto 2:15; además de muchas pantallas de Gnome y mucho código HTML en los títulos de crédito podemos encontrar una terminal donde ejecutan “ps”:

linux_antitrust11En el minuto 51:42 y pocos segundos después, podemos ver en una imagen de una cámara (que sale en un tono azulado, excepto un sombrero rojo (Red Hat), y un minuto más tarde se ve cómo verifica los dispositivos de almacenamiento montados con mount:

linux_antitrust2

En general, la película tiene muchos guiños al software libre, como dicen en FayerWayer, podemos ver entre otras cosas:

  • A Miguel de Icaza, fundador del proyecto Gnome, entregando un premio a uno de los protagonistas.
  • Scott McNealy, CEO de Sun en 2001, entregando otro premio.
  • y muchas cosas más.
Samuel Arroyo

Samuel Arroyo
La Ventana Muerta feed

Curso de Especialización Superior en GNU/Linux

¿Estás buscando material para aprender sobre GNU/Linux? ¿Sabes un poco pero quieres saber más? Entonces este curso seguro que te es de mucha ayuda icon wink Curso de Especialización Superior en GNU/Linux

Curso 500x141 Curso de Especialización Superior en GNU/Linux
En el Curso de Especialización Superior en GNU/Linux de la Facultad Regional Avellaneda, Universidad Tecnológica Nacional (Argentina) el objetivo es que los alumnos aprendan GNU/Linux de forma global, permitiéndoles reconocer las diferencias, ventajas y desventajas que existen entre las distribuciones más populares.

Esta especialización apunta a profesionales y a estudiantes de temáticas afines que estén interesados en conocer en profundidad el funcionamiento del sistema GNU/Linux tanto para uso profesional como personal y que deseen incorporar a sus conocimientos de informática este sistema operativo.

Descargar todo el material gratis

Material de los cursos dictados

Curso Parte 1:

Curso Parte 2:

Clases Especiales

Programación

Sobre VIM

Diagramas

Red

Material Extra.

Fuente | UTN FRA

PokerTH, toda la experiencia del Texas Hold'em en tu Linux

PokerTH es un juego de Poker para Linux libre, gratuito y multiplataforma, y como podemos intuir por su nombre (TH) se trata de la modalidad “Texas Hold'em”, actualmente la más popular y la que cuenta con más usuarios activos en todo el mundo.El juego permite jugar partidas de forma individual contra la máquina, pero -y aquí viene lo bueno- cuenta con un modo online para que podamos enfrentarnos
Francisco Luque

Francisco Luque
LMDE Cosillas feed

Añadir repositorios en LMDE igual que en Ubuntu

No hace más de 24 horas el usuario Simnandez nos preguntaba y se preguntaba extrañado si nadie sabia de este Script que permite añadir los repositorios de Ubuntu en LMDE o en sistemas Debian prácticamente igual que en éste.
Igual que le dije a él, os comento que hace tiempo que lo conozco (incluso usé ese script) y que deseche rápidamente. No por que fuese malo o funcionara mal. Todo lo contrario va fenomenal y se comporta como debiera. La cosa es que no lo vi practico para Debian y por extensión para LMDE. Al menos para mi forma de hacer las cosas.

El motivo principal es que al ser LMDE hay que tener más cuidado con los repositorios que se usan. En unas ocasiones los repositorios serán totalmente inadecuados, en otras muchas podemos utilizar repositorios con ramas muchos más elevadas que los añadidas por defecto para nuestra distribución (en este caso Lucid), otras puede ser necesario bajar esa rama aún más si cabe por incompatibilidad con vete a saber que paquetes. 

Está claro que todo esto no se puede conseguir haciéndolo de una forma desatendida tal y como se hace en Ubuntu. Para tener un sistema sobre todo estable y al gusto de cada uno hay que saber lo que se mete y como se mete. Ubuntu está preparado y hecho para esto, para trabajar así, los otros no. Simplemente esto es debido a que lo repositorios son de Ubuntu y están creados y enfocados exclusivamente a él. Aunque nosotros podamos aprovecharnos de ellos gracias a que la base es Debian no siempre nos irán del todo bien.

La mejor forma de añadir los repositorios y tener un cierto control sobre ellos es saber más o menos como funcionan y como se añaden de forma manual. Luego comprobar que repercusión puede tener sobre el sistema. A veces un cierto repositorio de una determinada rama puede hacer estragos y bajando esta rama simplemente un poco, nos puede ir todo de maravilla.
Claro está, esto no se consigue si añadimos los repositorios de forma desatendida como es el caso que nos ocupa.
Otra de las razones es que me gusta tener mis repositorios bien ordenados y etiquetados  para saber en todo momento a quien pertenece cada uno ya que no siempre las PPAs identifican a simple vista el programa o paquetes repositados. Muchas veces identifica a su autor y otras tantas ni se sabe.  
Ejemplo de mi sources.list tal y como me gusta tenerlo:

#Orta Tema
deb http://ppa.launchpad.net/nikount/orta-desktop/ubuntu lucid main
deb-src http://ppa.launchpad.net/nikount/orta-desktop/ubuntu lucid main
#qBittorrent
deb http://ppa.launchpad.net/hydr0g3n/ppa/ubuntu oneiric main
deb-src http://ppa.launchpad.net/hydr0g3n/ppa/ubuntu oneiric main
#AWN
deb http://ppa.launchpad.net/awn-testing/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/awn-testing/ppa/ubuntu lucid main
#DamnVid
deb http://ppa.launchpad.net/damnvid/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/damnvid/ppa/ubuntu lucid main
#Boot Repair
deb http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu lucid main
deb-src http://ppa.launchpad.net/yannubuntu/boot-repair/ubuntu lucid main
#Ailurus
deb http://ppa.launchpad.net/ailurus/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/ailurus/ppa/ubuntu lucid main
#Libre Office
deb http://ppa.launchpad.net/libreoffice/ppa/ubuntu maverick main
deb-src http://ppa.launchpad.net/libreoffice/ppa/ubuntu maverick main
#onBOARD (teclado virtual)
deb http://ppa.launchpad.net/frafu/ppa/ubuntu maverick main
deb-src http://ppa.launchpad.net/frafu/ppa/ubuntu maverick main
#LuckyBackup
deb http://ppa.launchpad.net/luckybackup-maintainers/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/luckybackup-maintainers/ppa/ubuntu lucid main
#Wine
deb http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu lucid main
deb-src http://ppa.launchpad.net/ubuntu-wine/ppa/ubuntu lucid main
#Gnome Baker
deb http://ppa.launchpad.net/gnomebaker/stable/ubuntu oneiric main
deb-src http://ppa.launchpad.net/gnomebaker/stable/ubuntu oneiric main
#Nautilus Terminal
deb http://ppa.launchpad.net/flozz/flozz/ubuntu natty main
deb-src http://ppa.launchpad.net/flozz/flozz/ubuntu natty main
#SMPlayer
deb http://ppa.launchpad.net/rvm/smplayer/ubuntu oneiric main
deb-src http://ppa.launchpad.net/rvm/smplayer/ubuntu oneiric main
#Viewnior
deb http://ppa.launchpad.net/xsisqox/ppa/ubuntu maverick main
deb-src http://ppa.launchpad.net/xsisqox/ppa/ubuntu maverick main


Como se puede apreciar en los repositorios anteriores las ramas de estos varía notablemente de unas a otras ya que la ido adecuando los repositorios a la estabilidad del sistema.
Por todos estos motivos y algunos más, deseché desde un primer memento la introducción de los repositorios de forma desatendida. La verdad es que no me había vuelto acordar de este Script y ha sido gracias al usuario Simnandez que lo ha traído a colación.
Si te habías preguntado como él, por qué aún no había hablado de este Script (a parte de por que no me acordaba ya que lo deseché en un primer momento) ya sabes la razón principal.
De todas formas la introducción de repositorios manualmente viene a ser muy simple y en dos pasos de nada. También (ya que a muchos al utilizar Ubuntu se nos olvida) recordamos como se hacía y se hace originalmente. Y los usuarios nuevo serán más conscientes del funcionamiento de estos.

De cualquier modo uno decide que modo quiere utilizar para añadir los repositorio.
Yo expongo mi razones y como prefiero hacerlo. Tú, verás cual utilizas o te gusta más...y es que entre gustos...no hay nada escrito.
Aquí te dejo el Script al que estamos haciendo referencia para el que quiera probarlo: 
Add Apt Repository

Web de su autor
Este archivo (script) para que funcione correctamente lo debes introducir en la siguiente ruta:
  • /usr/sbin/
Luego ya podrás añadir exactamente igual que en Ubuntu los repositorios que desees.

Feb 01, 2012

Lorenzo Carbonell

Lorenzo Carbonell
El atareao feed

Lo más leído en el atareao sobre Ubuntu en Enero de 2012

Introducción

Tengo que reconocer mientras estaba preparando este artículo, me he quedado verdaderamente sorprendido al comprobar cuales eran los artículos más leídos. Por un lado están los ya clásicos de comprobar y reparar un disco duro, pero por otro está todo lo relacionado con los libros electrónicos, y es que por lo que se puede deducir, parece, que la población de los lectores de libros electrónicos, ya sea el Kindle (como es mi caso), como otros, ha crecido de manera desmesurada, supongo que unido a la población de iPads y tabletas. He leído libros tanto en tableta como en el Kindle, y para mi, es mucho mas cómoda la tinta electrónica, es realmente cierto, esto que aseguran que es como leer un libro.

Por otro lado, lo que parece que se ha convertido también en un clásico, son los artículos relacionados con las redes Wifi, y no creo que aquellos que entran en la página buscando estas entradas, lo hagan para obtener información para que su red sea mas segura, de esto si que estoy yo seguro.

Pero sobre todo, lo que mas me ha llamado la atención ha sido la repercusión del artículo sobre la ley SOPA, y es que parece que hay una concienciación generalizada en torno a este aspecto. Espero que en un momento determinado, los gobiernos, y los gobernantes, se den cuenta que están pegando palos de ciego en relación a este tema, pero, sinceramente, creo que deben ser tanto la industria cinematográfica, como la industria de la música, la que se deben replantear cuanto antes su modelo de negocio, y orientarlo de forma que todos ganen. En fin tiempo al tiempo…

Lo más leído en Enero de 2012

Al grano, a continuación lo más leído aquí sobre Ubuntu, durante este primer mes del año 2012:

Lo que tiene que venir

Este mes, estoy muy animado con la nueva versión de Ubuntu Precise Pangolin. Espero durante los próximos días instalarlo en el equipo, y migrar todas las aplicaciones a esta nueva versión, incluidas las Lenses ó Lentes. En este, además tengo especial interés por dos razones. La primera, por actualizar a la nueva versión de Unity, a ver como se comporta, y la respuesta en tiempo. Por otro lado, quiero terminar dos Scopes que estoy desarrollando, una para para Lens-Video, que permitirá ver videos de Vimeo, al estilo del Scope para YouTube, y la segunda es una Lens, y uno o varios Scopes, para poder acceder a la agenda de Google (calendario, tareas, etc) directamente desde el Dash.

A la vez, tengo en mente realizar algunos cambios tanto en Touchpad-Indicator, como en My-Weather-Indicator, así como en los Lenses, para remitirlos a aprobación para el Centro de Software de Ubuntu. Esto va a llevar, ligeros cambio en la aplicación, que apenas se van a notar, aunque también realizará algunos cambios en el interfaz para dejarlo algo más “aseado”.

También me gustaría implementar algunas extensiones adicionales para Nautilus, que actualmente, tengo desarrolladas para su instalación local, pero que quiero que se puedan instalar directamente desde el repositorio, sin tener que hacer operaciones extrañas. Entre las extensiones que tengo en mente, está un kit de herramientas para realizar trabajos con PDF, girar, separar, juntar, etc. Además, está la aplicación para firmar PDF, que tengo en mente desde hace un tiempo, pero que siempre pospongo. Soy consciente, de que existen aplicaciones que ya realizan estas operaciones, pero, me parece más cómodo realizarlas directamente desde el menú contextual de Nautilus.

Por último, y para colmar el vaso, dado que he comenzado con el Kindle, estoy desarrollando una sencilla aplicación para hacer libros electrónicos, en particular, con formato mobi, para poder leerlas directamente desde Kindle.

En fin, como puedes ver, son muchos los proyectos los que llevo en mente, ya veremos cuales se pueden materializar, y cuales se quedan por el camino.

Artículos relacionados...

  1. Lo más leído en enero sobre Ubuntu, en el atareao
  2. Lo mas leído en 2010 sobre Ubuntu, en el atareao
  3. Lo más leído en mayo sobre Ubuntu, en el atareao

Leyendo servicios web desde Android: JSON

Buenas, estas dos semanas anteriores vimos como instalar en Ubuntu un entorno de desarrollo para PHP y MySQL y luego creamos nuestro primer servicio web para poder leerlo desde cualquier dispositivo (Android, IPhone, otro sitio web...). La semana pasada nos quedó pendiente ver como utilizar este servicio web en una aplicación Android, así que vamos allá.


En el ejercicio de esta semana lo que vamos a hacer es conectarnos a nuestro servidor, leeremos y parsearemos el JSON que nos devuelva y por último lo guardaremos en base de datos en nuestro dispositivo.


Para los que no tenéis un servidor donde realizar las pruebas no os preocupéis, con vuestro dispositivo y un router wifi podéis probarlo sin problema.

Empezamos. Lo primero que haremos es abrir Eclipse. En un proyecto nuevo crearemos una nueva clase llamada JSONManager la cual va a tener el siguiente método static y public:



public static JSONObject getJSONfromURL(String url){
InputStream is = null;
String result = "";
JSONObject json = null;
try{
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost(url);
HttpResponse response = httpclient.execute(httppost);
HttpEntity entity = response.getEntity();
is = entity.getContent();
}catch(Exception e){}

try{
BufferedReader reader = new BufferedReader(new InputStreamReader(is,"iso-8859-1"),8);
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result=sb.toString();
} catch(Exception e){}

try{
json = new JSONObject(result);
}catch(JSONException e){}

return json;
}


El método se conectará a la URL que le indiquemos y tratará de leer y parsear la respuesta en un objeto JSONObject. La primera parte del método abre la conexión http y obtiene la respuesta en un InputStream. La segunda parte, lee la respuesta y la parsea con un objeto BufferedReader para poder finalmente pasarla a un String. Este String es necesario en la tercera parte para crear un nuevo objeto JSONObject que será lo que vamos a devolver finalmente.


Para la siguiente parte creamos una nueva clase, la cual voy a llamar JSONParserLibros. Esta clase se va a encargar de leer el servicio ayudado del método anterior y guardar en base de datos. Veamos que es lo que hace.



private Activity activity;
private JSONObject jObject;
private ProgressDialog progressDialog = null;
private Runnable runReadAndParseJSON;

public JSONParserLibros(Activity a){
activity = a;
}

public void readAndParseJSONLibros() throws JSONException{
runReadAndParseJSON = new Runnable() {
@Override
public void run() {
try{
readJSONLibros();
} catch(Exception e){}
}
};
Thread thread = new Thread(null, runReadAndParseJSON,"bgReadJSONLibros");
thread.start();
progressDialog = ProgressDialog.show(activity, "Descargando información", "Por favor espere",true);
}

private void readJSONLibros() throws JSONException{
jObject = JSONManager.getJSONfromURL("http://192.168.1.87/android/service.libros.php");
if(jObject != null)
parseJSONLibros(jObject.getJSONArray("libros"));
activity.runOnUiThread(returnRes);
}

private void parseJSONLibros(JSONArray librosArray) throws JSONException{
for(int i = 0; i < librosArray.length(); i++){
Libro l = new Libro();
l.setIdLibro(librosArray.getJSONObject(i).getInt("id"));
l.setTitulo(librosArray.getJSONObject(i).getString("libro"));
l.setISBN(librosArray.getJSONObject(i).getString("isbn"));
l.save(activity);
}
}

private Runnable returnRes = new Runnable(){
@Override
public void run() {
progressDialog.dismiss();
}
};


Como veis, tiene bastantes métodos, vamos a ver que hace cada uno. Lo primero que nos encontramos son variables y el contructor de la clase.

A continuación tenemos el método público que utilizaremos para llamar a nuestro servicio readAndParseJsonLibros. Este método crea un nuevo hilo de ejecución dentro del cual se va a hacer la llamada al servicio web, además se inicia una ventana de dialogo que avisará al usuario que se está haciendo una descarga.

La razón de hacerlo en un hilo de ejecución diferente es porque este es un proceso asíncrono que va a depender de diferentes factores como la velocidad de la conexión o de lo que tarde en responder el servidor.

El siguiente método readJsonLibros es private, y va a obtener el objeto JSON resultante de la llamada a nuestro servicio web mediante el método de la clase JSONMananger. Lo que hacemos a continuación es buscar el array de objetos json incluido dentro de libros. Aquí lo que vamos a tener es cada uno de los objetos json libro. Por último, se llama a un objeto Runnable definido al final de la clase que lo que va a hacer es cerrar la ventana de diálogo.


Como veis, he puesto una IP de una red local para hacer la llamada al servicio, esta corresponde al equipo donde he desarrollado el servicio web. En el momento de probar esto, si teneis un router wifi, deberéis activar la conexión wifi en vuestro dispositivo Android y conectaros a vuestra red local para que podáis tener acceso al servicio. En caso de no tener wifi teneis otras opciones como montar el servicio web en un servidor en internet, los datos se descargarán echando mano de vuestra conexión 3G , o también lo podeis probar con el emulador de Android.


Por último está el método parseJSONLibros, este simplemente recorre el array que obtuvimos antes, en cada una de las vueltas se a tener acceso a un objeto json libro, el cual tiene las propiedades: id, libro e isbn. Podemos acceder al objeto mediante librosArray.getJSONObject(i), donde i es la posición que queremos recuperar, y para acceder a las propiedades simplemente con getInt("nombre") o getString("nombre") dependiendo del tipo de dato que tengamos que recuperar.


Por último, en mi caso me he creado un objeto Libro, al cual seteo las propiedades correspondientes y llamo al método save para guardar en la base de datos de la aplicación. No os pongo como sería esta parte porque ya hemos tratado cómo guardar datos en base de datos SQLite también podéis ver el resultado de lo que habéis descargado leyendo los datos de la base de datos.


Para utilizar esta clase simplemente debereis crear una instancia del objeto JSONParserLibros y llamar al método readAndParseJSONLibros en la parte de vuestra aplicación que más os interese. Utilizada en el método OnCreate de una Activity quedaría de la siguiente forma:



JSONParserLibros json = new JSONParserLibros(this);
json.readAndParseJSONLibros();

Uno de los aspectos que debeis tener en cuenta también es la frecuencia con la que se actualizan vuestros contenidos, si los libros se actualizan de media cada 2 días lo que podeis hacer es guardar en las SharedPreferences la última fecha de actualización y en el método público readAndParseJsonLibros verificar que hayan pasado 2 días o más para llamar a vuestro servicio. Cada vez que hagais lectura reescribis esta fecha con la fecha actual.

Bueno, hasta aquí la última parte de esta serie de capítulos dedicados a los servicios web. Espero os sean de ayuda. Por último, os voy adelantando el tema de la semana que viene, como registrar visitas con Google Analytics en nuestra aplicación Android.
Marcelo Fortino

Marcelo Fortino
Fortinux.com feed

Privacidad y precios

The Next Web

De cómo afecta nuestro comportamiento en las redes sociales a los precios que pagamos por nuestros productos:

Privacidad y precios.

(Artículo original en TheNextWeb )

Jan 31, 2012

DHCP, El asignador de IP

Continuamos en nuestro camino, y tras ya saber qué es una IP, y para qué sirve en el anterior artículo, hoy vamos a dar un paso hacia más y saber qué es un servidor DHCP y cuáles son sus funciones dentro de una red. Y  descubriremos que está basado en el protocolo IP, y que es un servicio muy confortable.



¿Que significan las siglas DHCP?

Las siglas en inglés: "Dynamic Host Configuration Protocol", en español vendría a ser algo así como: Protocolo de configuración dinámica de host. Esto significa en primera instancia, que es un protocolo, un método estándar para que cualquier dispositivo pueda interactuar con este tipo de servicio. También gracias a su denominación, podemos observar que sirve para configurar un host, ya sea éste un ordenador, un móvil o cualquier dispositivo que pueda conectarse a la red. Y la última palabra es "dinámica", esto significa que no es necesario hacerlo de forma manual, que es un proceso automático.


¿Para qué sirve el servicio DHCP?

Este protocolo, permite que haya una comunicación entre un dispositivo conectado a una red y el propio servidor DHCP. Esta comunicación se basa en el formato cliente-servidor mediante el cual un cliente, como puede ser un ordenador, pide cierta información al servidor, que se la asigna mediante unos parámetros previamente asignados.


¿Qué información puede asignar un servidor DHCP a un cliente?

Como ya hemos visto, los servidores brindan información a un cliente (host), con el fin de simplificar las configuraciones de red. Esta puede ser:

  • Dirección IP
  • Dirección IP del servidor DNS
  • Dirección IP de la puerta de enlace
  • Dirección de Broadcast
  • Máscara de subred
  • Tiempo máximo de asignación de IP (en caso de que ésta sea dinámica)

Direcciones IP mediante DHCP

Una de las principales características del servicio de DHCP es asignar las direcciones IP a cada host de la red. Esto se consigue mediante un intercambio de mensajes entre el cliente y el servidor.
El cliente se conecta a la red, y envía un paquete, llamado DHCPDiscovery , el cual se difunde para toda la red, y todos los nodos de la red lo reciben, pero el único que lo procesará, será el servidor DHCP, el resto de los nodos lo ignorarán. Este paquete se manda a toda la red, porque el cliente no tiene porque saber si hay servidor DHCP o no, y si lo hay, tampoco debe saber la dirección IP.
Cuando el Servidor recibe este paquete, éste le responde un DHCPOffer, el cual le sirve unos parámetros iniciales para la configuración.
Al recibir este último paquete, el cliente, emite otro paquete, el DHCPResquest, donde confirma que recibió los parámetros iniciales, y pide al DHCP una dirección IP libre.
El servidor recibe la petición del cliente, y el servidor le asigna toda la configuración de red restante mediante un DHCPACK. Y ya tendrá la configuración de red completada y lista para el uso.
Existen muchos otros paquetes de comunicación DHCP, pero los básicos son estos.


Configurabilidad del DHCP

En este servicio se pueden configurar varias opciones, pero la más configurable sin duda es la dirección IP.


Formas de asignar una IP

  1.  Asignación estática: El servidor asigna una dirección IP a una tarjeta de red, mediante su dirección MAC, que es única en el mundo.
  2. Asignación automática: El servidor asigna una dirección IP a un equipo, y éste la mantiene hasta que no la libere el propio cliente.
  3. Asignación dinámica: El servidor asigna las IP aleatoriamente, (entre un rango previamente asignado) y esta asignación tiene un tiempo límite para que la IP se libere y se asigne a otro equipo.

Alternativas al DHCP

Cuando este intercambio de paquetes no llega a buen puerto, el ordenador coge una IP alternativa, pero viene dada por el Sistema Operativo, y no por el servicio DHCP. Esto significa que la IP asignada no va a coincidir con la red.

La próxima semana comenzamos la práctica de Crear un servidor DHCP en Ubuntu, así que tenéis que tener esto claro para entenderlo mejor.
Samuel Arroyo

Samuel Arroyo
La Ventana Muerta feed

Evolución de las distribuciones GNU/Linux a través del tiempo

Uno de los aspectos más importantes del sistema operativo GNU/Linux es la variedad de distribuciones que existen actualmente. Pero no siempre ha habido tantas. Hace años se podían contar con los dedos de una mano. ¿Cómo han ido apareciendo el resto?

Gracias a esta web, podemos ver gráficamente las líneas de evolución de las diferentes distribuciones. He aquí cómo quedó el panorama al comienzo del año 2012.

gldt1201.redimensionado Evolución de las distribuciones GNU/Linux a través del tiempo

Jan 30, 2012

Gaspar Fernández

Gaspar Fernández
Poesía binaria feed

Publicando en Facebook como página para mantener a nuestros fans

poesiabinaria

Si administras una página de Facebook, esto te interesa, ya que puedes gestionar las publicaciones de forma automática, por ejemplo, si tienes muchas cosas que publicar y quieres hacerlo de manera escalonada, para no hacerlo todo seguido y mantener alerta a tus seguidores.

Para poder poner en práctica todo esto, te recomiendo leer estos artículos anteriores:

Estudiando el tema

El problema de administrar páginas, es que tienes que estar identificado como estas, y además, hacerlo en modo offline. Por otra parte, las páginas tienen sus administradores y éstos son los usuarios que se pueden identificar en aplicaciones.
Facebook hace todo esto a través de palabras de acceso (access tokens), cuando un usuario se identifica en una aplicación se genera un token único para ese usuario y éste durará un tiempo, durante ese tiempo, la aplicación podrá realizar las acciones que el usuario le ha dado permiso para hacer.

En el caso de las páginas, debemos generar un access token que valga para la página en cuestión que queremos manejar. Ese access token debemos pasárselo a la llamada a la API para publicar.

Obteniendo los access tokens de las páginas que administro

Para ello hay que hacer la llamada a la API /me/accounts, con lo que obtendremos un listado completo de las páginas que administramos, ID de páginas (para poder realizar las publicaciones) y los access tokens necesarios para publicar en nombre de esas páginas.

Podemos modificar el programa que teníamos para identificarnos (index.php) de la siguiente manera (facebook_ext está para descarga en un post anterior):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
<?php

$api_key = 'xxxxxxxxxxx';
$api_sec = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

require_once('facebook_ext.php');
// Definimos constantes
define(NEEDED_PERMISSIONS,  'publish_stream,offline_access,manage_pages');

// Definimos códigos de error
define(NOT_INSTALLED,      1);
define(NO_PERMISSIONS,     2);

$facebook = new FacebookExtended(array(  
                       'appId'  => $api_key,
                       'secret' => $api_sec,
                       'cookie' => true ,
                     ));

try
{
 
  $sesion = $facebook->getUser();
  if (!$sesion)
    throw new Exception('Aplicación no instalada', NOT_INSTALLED);

  echo "Estamos identificados en Facebook<br/>";
  echo "Usuario: ".$sesion."<br/>";

  $permissions = $facebook->askForPermissions(NEEDED_PERMISSIONS);
   
  if (!$permissions)
    throw new Exception('No tengo permisos suficientes', NO_PERMISSIONS);
 
  print_r($facebook->api('/me/accounts'));
}
catch (FacebookException $e)
{
  echo "Error de Facebook: ".$e->getCode().": ".$e->getMessage();
}
catch (Exception $e)
{
  switch ($e->getCode())
    {
    case NOT_INSTALLED:
      $facebook->loginUser();
      break;
    case NO_PERMISSIONS:
      $facebook->loginUser(NEEDED_PERMISSIONS);
      break;

    case MALFORMED_ARRAY:
      echo $e->getMessage();
      break;

    default:
      echo "Ocurrió un error no identificado";
    }
}
?>

Con este código, pediremos permiso para administrar páginas, para uso offline y para publicar mensajes en nombre del usuario. Cuando estemos identificados, nos devolverá un array con los nombres de las páginas, los ID y los access tokens. El array dentrá la siguiente forma:

Array
(
[data] => Array
(
[0] => Array
(
[name] => Nombre de página 1
[access_token] => xxxxxxx
[category] => Website
[id] => 123456789
)

[1] => Array
(
[name] => Nombre de página 2
[access_token] => xxxxxxx2
[category] => Website
[id] => 987654321
)
………………..
[n] => Array
(
[name] => Nombre de página N
[access_token] => xxxxxxxn
[category] => Website
[id] => 918273645
)
)
)

Se mostrarán todas las páginas que administramos. Ahora tendremos que anotar el ID de la página con la que queremos publicar y el access token para copiarlos en el código del programa encargado de publicar.

Publicando como si fuéramos una página de Facebook

Para hacer la publicación tenemos que hacer una llamada a /ID_de_página/feed especificando el access token con el que queremos publicar:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
<?php

$api_key = 'xxxxxxxxxxx';
$api_sec = 'xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';

require_once('facebook_ext.php');

$facebook = new FacebookExtended(array(  
                       'appId'  => $api_key,
                       'secret' => $api_sec,
                       'cookie' => true ,
                     ));

try
{
  // ID de la página que queremos editar. La podemos ver en la URL de Facebook de la página
  $destino=189639191053576;
  $access_token='XXXxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx';
  $public='Probando mensajes automáticos con el modo offline';

  print_r( $facebook->api('/'.$destino.'/feed', 'post', array('access_token' => $access_token,
                                  'message' => $public)));  
} catch (Exception $e)
{
  echo "Ocurrió un error";
}
?>

Facil, ¿no? Si trabajamos un poco con todo esto podemos conseguir automatizar los mensajes que se van a publicar en Facebook desde las páginas que gestionamos.

BlogDRAKE: Buenas y malas noticias sobre Mandriva

Jan 29, 2012

Luis Vilchez

Luis Vilchez
El blog de Jabba feed

Difuminar el fondo o parte de una fotografía con GIMP

En este tutorial os voy a enseñar cómo aplicar un efecto de difuminado o degradado a una sección de una fotografía usando GIMP en cualquiera de sus versiones (es igualmente válido para Linux, Mac OS y Windows). La intención será resaltar algo de nuestra imagen, ya sea un objeto, una persona o, como en este ejemplo, un edificio.

Como imagino que ya sabréis, GIMP (GNU Image Manipulation Program) es un programa libre y gratuito de edición de imágenes que vendría a ser el equivalente libre de Adobe Photoshop.

Si no lo tenéis lo podéis descargar desde la propia web del proyecto:

Descargar GIMP (todas las versiones)

Una de las cosas que me encanta de GIMP es la gran cantidad de filtros que trae de serie el programa. Además contamos con la ventaja de poder complementar esos filtros con tantos scripts y plugins adicionales como queramos, como el que ya os conté que usaba para insertar un marco con firma a una fotografía.

Para este ejemplo se me ha ocurrido usar la siguiente fotografía nocturna de la Catedral de Santa María que tomé en mi último viaje a Teruel.

El original:


El resultado final al que llegaremos:


En primer lugar abrimos la imagen con GIMP:


En la caja de herramientas seleccionamos las "tijeras de selección" bien pinchando sobre su icono o sencillamente pulsando la tecla "i" de nuestro teclado (que corresponde a su acceso rápido).


Ahora simplemente es ir marcando puntos (haciendo click) rodeando el contorno de lo que queremos resaltar. En este caso la Catedral:


Cuanto terminamos volvemos a pinchar con el ratón sobre el primer punto que hemos marcado (con el que hemos empezado a rodear) y se cerrará el contorno:


Si ahora hacemos click en el centro de lo que hemos seleccionado, los puntos verdes de la herramienta de "tijeras de selección" desaparecerán y nos quedará punteado el contorno del área que queremos:


Una vez tenemos marcada la zona que queremos resaltar, podemos ir en la barra de menús de GIMP al menú "Seleccionar" para invertir la selección si fuera necesario. Para entendernos, en este caso lo que queremos difuminar no es la Catedral si no el resto de la imagen, por lo que hacemos click en invertir para cambiar el área sobre el que vamos a aplicar el efecto:


Ya casi lo tenemos. Ahora vamos al menú "Filtros" y seleccionamos Desenfocar [Blur] > Desenfoque gaussiano:


En la ventana que se abre tenemos que jugar un poco con los distintos radios de desenfoque hasta encontrar el idóneo (cuanto más alto sea el valor que le asignemos al radio más desenfocada estará la imagen). Podemos ir probando hasta dar con el que más nos guste:


Cuando nos decidamos por uno (en este ejemplo he usado un valor de 10 en ambas casillas para resaltar el efecto, aunque seguramente sea algo excesivo) hacemos click en "Aceptar" y listo:


Ya tenemos nuestra fotografía con el efecto difuminado a la parte que queríamos, en este caso a los edificios colindantes para resaltar la Catedral de Teruel en el centro de la fotografía:


Fácil ¿verdad?
Francisco Luque

Francisco Luque
LMDE Cosillas feed

PubKey revisión 6

PubKey es un script GUI que hice para facilitar la inclusión de las Keys de los repositorios que vayamos añadiendo en nuestro sistema. Éste lo que hace (vía los 8 dígitos de rigor) es añadir la Key completa a nuestra base de éstas. No tienes por que saber ni tan siquiera en un principio cuales son esos 8 dígitos ya que cuando hallas añadido el repositorio deseado, al no encontrar la clave el sistema te lo dirá. Ejemplo del error en un Terminal:
"Error de GPG: http://packages.medibuntu.org intrepid Release Las firmas siguientes no se pudieron verificar porque su llave pública no está disponible: NO_PUBKEY 1A0771178279047A"

O desde el Synaptic:


Lo dígitos importantes y a recoger en los casos anteriores son los 8 últimos de la cifra anterior: 8279047A
Estos 8 dígitos son lo que debemos introducir en el script para que nos añada la firma correspondiente. Este proceso viene a ser lo más parecido al que se utiliza con Ubuntu ya que con dos clic de ratón añadiremos la clave y actualizaremos el sistema.

Subo la nueva revisión de este script ya que he observado que alguno usuarios les da error en dicha importación.
La razón principal de este error es debido que al copiar la llave y pegarla en el cuadro requerido, sin querer, a veces se añade un espacio al final, al principio o ambos lados de la llave.
La presente revisión pretende subsanar esto, eliminado esos espacios de la llave aunque hallan sido introducidos sin darnos cuenta.

Como ejemplo pongamos un caso extremo donde alguien (harto de sueño) introduzca la llave 8279047A de la siguiente forma: "  8 279 04 7A  " (las comillas no se ponen pero lo hago para que se visualice la cadena real introducida en el cuadro correspondiente como se puede ver en la imagen)
A partir de ahora, el resultado será correcto ya que esos espacios serán eliminados:



Tienes más información de como usar e instalar este script: Aquí

Nota: A veces por lo motivos que sea el servidor subkeys-ppp.net de las Key  no responde y nos da error de key no válida. En este caso (si la key es la correcta) repetir la introducción de la key varias veces seguidas hasta que el resultado sea el correcto.
Samuel Arroyo

Samuel Arroyo
La Ventana Muerta feed

¿Hay descargas directas más allá de Megaupload?

¡Hola a todos! ¡Feliz año!

Después de unas vacaciones de algo más de un mes, es hora de volver a la carga con el blog icon biggrin ¿Hay descargas directas más allá de Megaupload? Es tiempo para ponerse al día con las noticias linuxeras de actualidad y compartir con vosotros todo lo que me sea posible.

Para empezar, quiero compartir una currada infografía que han publicado en PortalProgramas, acerca del revuelo que hay en cuanto a Megaupload (servicio que era muy importante para mí), y qué es lo que nos puede deparar el futuro en cuanto a las formas de compartir archivos.

Yo, por mi parte, ya me he instalado aMule y he vuelto a usar torrents después de siglos sin hacerlo icon lol ¿Hay descargas directas más allá de Megaupload?

futuro compartir archivos tras megaupload ¿Hay descargas directas más allá de Megaupload?

Jan 28, 2012

Alberto Ruiz

Alberto Ruiz
Silicon Island feed

Planet GNOME: Changes in planet membership policy

Hello Planet GNOME readers and GNOME community members,

The board of directors has agreed that from now on, to be part of Planet GNOME, it is mandatory to be a member of the GNOME Foundation. In three weeks we will proceed to remove all blogs from people that are not foundation members. This policy change means a few things:

  • If your blog is in Planet GNOME and you are not a member of the GNOME Foundation, you have three weeks to become a member!
  • New planets additions from now on will take this policy into account.
  • This doesn't mean that your blog automatically gets into Planet GNOME if you are a member, the same blog review process will be applied to requests for addition.
  • There will be a slight exception with GSoC/GOPW members we will encourage them to join in the meantime, but being able to use the planet to report progress to the community is an important part of their work as interns.
  • We will delete the feed syndication from the planet if your membership expires.

The rationale behind this new policy is simple, we want to increase the value of becoming a foundation member. Think of this as the blogging equivalent of rocking an @gnome.org e-mail address.

Update:  I have clarified the language behind the deletion of the feed. Someone in the comments thought I was talking about removing their blogs from blogs.gnome.org. This is not the case, if your membership expires your feed won't show up in the Planet, but that's it, if you have a blog in blogs.gnome.org none of your posts will be deleted.

Foundationally yours,
the Planet GNOME editors team. 

Jan 27, 2012

David González

David González
El blog de pico.dev feed

last, como obtener los últimos inicios de sesión

Linux
El comando last es una pequeña utilidad que nos permite conocer cuando se inició la sesión y cuando finalizó, con que usuario y desde que dirección IP se realizaron los últimos inicios de sesión a un sistema. Quizá esta información no sea de utilidad en alguna situación o para detectar intrusiones a un sistema. Su uso es muy simple:

$ last -F -10

Este comando nos permite conocer los ultimos 10 inicios de sesión en el sistema. Si queremos conocer los inicio de sesión realizados por un determinado usuario lo haríamos con:

$ last -F -10 root

Este comando tiene unos cuantos parámetros más que pueden consultarse en la página man del comando.

last

2 tarjetas de red en Archlinux

Hace algunas semanas, en mi instalación de Arch Linux os comentaba que tenía algunos problemas con la conexión a internet debido a que tengo 2 tarjetas de red, la que viene integrada en la placa base y otra que le pinché yo hace algunos años, supongo que agregé la segunda porque en su momento la de la placa me daría problemas o algo similar.

Parece ser que es un problema bastante común en Archlinux cuando tienes 2 tarjetas de red, la mayoría de las veces no tengo conexión a internet y si ejecuto el comando dhcpcd sin especificar nada más, automática y aleatoriamente elige con que interfaz conectarse, unos días eth0 y otros eth1. Incluso especificándolo en la sección Networking del archivo rc.conf va a su aire.

Pero encontré la solución en el wiki de Archlinux, bendito wiki ¡lo tiene todo!

Una de las soluciones posibles es agregar el módulo de nuestra tarjeta de red en la sección Modules del rc.conf y la otra es crear unas reglas para udev.

La primera opción es la que probé y la que me ha funcionado.

Si hacemos:

lspci | grep Ethernet

Obtendremos un listado de las tarjetas de red que tenemos conectadas en nuestro equipo (en mi caso):

lspci | grep Ethernet
03:00.0 Ethernet controller: Marvell Technology Group Ltd. 88E8056 PCI-E Gigabit Ethernet Controller (rev 12)
05:00.0 Ethernet controller: Realtek Semiconductor Co., Ltd. RTL-8139/8139C/8139C+ (rev 10)

La que utilizo siempre es la Realtek y es la que quiero seguir utilizando, pero cómo saber ¿quién es quién?

Para conseguir esta información voy a averiguar primero quién es eth0:

dmesg | grep eth0

 8139too 0000:05:00.0: eth0: RealTek RTL8139 

Y para saber quien es eth1:

dmesg | grep eth1

sky2 0000:03:00.0: eth1:

Bien, con estas primeras líneas ya me es más que suficiente para saber cual es la quiero.

Editamos el archivo rc.conf:

nano /etc/rc.conf

Y en la sección Hardware – Modules, agregamos el módulo de la tarjeta de red que quiero que se inicie siempre y tenga conexión a internet sin intervención mía:

MODULES=(8139too)

Obviamente si existen otros módulos dentro de estos paréntesis no hay que eliminarlo, hay que agregarlo a continuación o como indica en el wiki, si se quieren añadir las 2 tarjetas de red poner primero el módulo de la que nos interesa, esto es para que cuando cargue siga un orden. Antes, al no tener nada añadido en ningún orden parece ser que las dos peleaban por cargarse primero y de ahí imagino que venía el lío.

Revisad también que la interfaz de red que hay especificada en la sección Networking del archivo rc.conf coincida.

Y listo ya funciona :-)

Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux feed

Chequeando fallos en sistemas de ficheros FAT

Los pendrives y algunos discos duros externos están formateados en formato FAT. Cuando se producen fallos en estos sistemas de ficheros, podemos intentar repararlos desde Linux. Para ello:

  1. Insertamos el disco y dejamos que el sistema lo reconozca.
  2. Tecleamos el comando “mount” en un terminal y buscamos el nombre del dispositivo. Normalmente suele ser algo de la forma “/dev/sdX” donde X es una letra y un número.
  3. Ahora se teclea en el terminal “sudo umount /dev/sdX” donde /dev/sdX es el nombre del dispositivo.
  4. Lo chequeamos con “sudo dosfsck -atv /dev/sdX” donde /dev/sdX es el nombre del dispositivo. Le llevará su tiempo.
  5. Se reza para no haber perdido muchos datos… :)

Rosa Guillén

Rosa Guillén
novatillasku.com feed

Interfaz de usuario con nuevas opciones en Precise Pangolín


Ayer se incorporaron nuevas opciones en la configuración de la Interfaz de Usuario en Ubuntu 12.o4.

Siguiendo con los cambios propuestos para Herramientas del Sistema, ahora podemos configurar tanto el tamaño de los iconos del lanzador desde ahí mismo.También en la pestaña Behavior, podemos elegir el comportamiento del lanzador.

Todas éstas configuraciones, que se obtienen ya tanto a través de los quicklist o en otras aplicaciones como MyUnity, han desatado un debate en Ubuntu Desktop sobre si se deberia quitar de los los repositorios CCSM (compiz-config-settings-manager),





Jan 26, 2012

Rosa Guillén

Rosa Guillén
novatillasku.com feed

Ubuntu Weekly Newsletter Issue 249


Nuevo número de Ubuntu Weekly Newsletter, el 249, perteneciente a la semana del 16 al 22 de Enero de 2012.

Si quieres leer la versión completa puedes hacerlo en la Wiki.

Estos son algunos de los temas que contiene:

Todo ello posible gracias a:

  • Elizabeth Krumbach
  • Benjamin Kerensa
  • Chris Druif
  • Amber Graner
  • Y muchos más…
David González

David González
El blog de pico.dev feed

Motivos para elegir el framework Apache Tapestry

Apache Tapestry
En el mundo del desarrollo web en el entorno Java hay muchos frameworks disponibles en los que elegir (JSP/Servlets, Struts, Grails, Wicket, Play, Seam, ... Tapestry y varios más), a veces la elección del framework más adecuado para el desarrollo del proyecto que tenemos por delante no suele ser una decisión sencilla y no solo intervienen decisiones técnicas sino también los conocimientos y predisposición de aprender que tenga el equipo que vaya a desarrollarlo. Lo que está claro es que si el proyecto es más o menos complejo o va a necesitar mantenimiento nadie se plantea desarrollarlo directamente con JSP y Servlets.

En la siguiente entrada voy a tratar de explicar algunas características y dar algunos motivos y razones por los que deberías tener en cuenta el framework Apache Tapestry.

Componentes
La característica estrella para mi de este framework es la alta productividad y la reutilización de código que se puede conseguir con los componentes que se desarrollan en el framework ya que una vez desarrollados pueden ser usados tantas veces como se quiera a lo largo de todo el proyecto sin tener que conocer los detalles de como y que necesitan para funcionar salvo por los parámetros que recibe. Esta abstracción incluye los estilos y el javascript y Tapestry se encargará de agregar e incluir únicamente los necesarios en la página según la definición de los mismos.

Prácticamente en todos los proyectos hay necesidad de desarrollar una serie de funcionalidades o componentes comunes que son usados repetidas veces en el mismo o en diferentes proyectos. ¿Cuantas veces en un mismo proyecto has tenido que implementar la misma funcionalidad en páginas diferentes? ¿y cuantas veces te has tenido que pelear con sus parámetros que hay que recoger de la request en forma cruda (String) necesitando convertir su tipo correcto o transformarlo a las entidades de dominio? ¿y si tienes que hacer la misma funcionalidad en varios sitios de la misma aplicación, copias y pegas? ¿y si tienes que cambiar algo común lo tienes que hacer en todos los sitios? ¿cuanto código duplicado tienes? Está claro que tener código duplicado desperdigado en nuestra aplicación a la larga será un gran problema en el mantenimiento, pues bien, en con este framework el componente será solo uno y si tienes que hacer un cambio solo necesitarás modificarlo en un sitio. Solo tienes que pensar en cual es la funcionalidad que quieres reutilizar (en la misma o diferentes páginas) y meterla en un componente. El desarrollo orientado a componentes predispone para reutilizar código.

En frameworks como Struts y Grails se trabaja en términos de URL y parámetros en Tapestry en términos de componentes y objetos. Tapestry se encarga de convertir los parmámetros de la URL al tipo adecuado y de dejarlo en una propiedad del componente de ese tipo. Tapestry puede transformar un String a un tipo de objeto en concreto (por ejemplo una clase de dominio) y viceversa, esto es necesario ya que todo lo que se envía al navegador del usuario ha de ser un String ¿quien realiza esa transformación del objeto a String? ¿y de String al objeto cuando se vuelvan a enviar los datos al servidor? Todo esto lo hace a través de una clase que implementa la interfaz Translator o ValueEncoder.

También, cuando pasamos un parámetro a un componente es capaz de hacer las conversiones necesarias para transformar el tipo del parámetro que pasamos al tipo de parámetro del componente. En el gráfico de la documentación de conversiones se pueden ver las que hace se hacer por defecto aunque podríamos implementar una nueva si tuviesemos necesidad.

Además los componentes pueden ser empaquetados en una librería (un archivo .jar) y ser reutilizados en varios proyectos cosa que hará que el tiempo de desarrollo de los siguientes proyectos se reduzca bastante si las necesidades son parecidas. También a medida que vayamos tienendo una librería de componentes seremos más productivos en el mismo proyecto si es de larga duración o tiene mucho mantenimiento.

Pero tampoco hay que desarrollar los componentes desde cero, Tapestry ya proporciona una amplia colección de ellos listos para usar directamente o agregándolos en los nuevos que creemos y hay varias librerías de ellos desarrolladas en otros proyectos. Hay componentes para tratar campos de formularios, que permiten evaluar una condición, para recorrer una colección de elementos, para crear enlaces, para mostrar errores... también hay otros tan complejos como un grid para mostrar datos en una tabla paginada, para editar un bean o para cargar contenido en las páginas a través de AJAX y algunos otros para otras tareas.

En el componente grid que proporciona unicamente tendrás que implementar el método que será el que recupere los objetos de la base de datos ya que del resto se encargará el componente llamando a nuestro método de búsqueda con los parámetros necesarios para realizarla, como la página a mostrar. Pero hacer un nuevo componente no es nada complejo, cada componente está formado de un controlador (que es una simple clase Java POJO) y normalmente una platilla que es XHTML válido.

Otra características importante es que los componentes pueden lanzar eventos que pueden ser procesados por aquellos que los contienen, pudiendo de esta forma realizar diferentes acciones y comportamientos dependiendo del componente en el que está contenido. Esto añade más posibilidades de reutilización de los componentes.

Si desarrollamos muchos proyectos pequeños y que no tienen mucho mantenimiento podemos reutilizar los componentes que desarrollamos en un proyecto en otro, si desarrollamos uno, dos o pocos proyectos pero que tienen un gran mantenimiento podemos reutilizarlos igualmente en las funcionalidades comunes. En ambos casos de tipos de proyectos nos beneficiaremos enormemente de los componentes.

Modular y contenedor IOC integrado
Práctiamente cada funcionalidad de Tapestry puede ser modificada o extendida a través de su contenedor de inversión de control, solo hace falta hacer la contribución adecuada en el contenedor. Además, esas contribuciones no se hace en un XML sino que se hace a través de código Java con las ventajas que ello conlleva como la asistencia del compilador y la refactorización del IDE. El contenedor IOC implementa usa y pone a nuestra disposición varios de los patrones más usados como Chain of Command, Strategy Builder, Chain Builder, Shadow Builder, Pipelines, etc... Finalmente no impone un determinado framework de persistencia, de testing, de seguridad u otra cosa por lo que tendremos libertad de elegir la que más adecuado nos parezca en cada ámbito a resolver. En un mundo tan cambiante como la tecnología cuando surja esa otra nueva y brillante forma de hacer las cosas no nos veremos encadenados a una en concreto porque Tapestry nos lo exija y eso tarde o temprano pasará. ¿Quizá dentro de poco pase con hibernate y activejdbc? ¿Te gustaría estar encadenado a un framework que te imponga un modelo o framework de persistencia en concreto?

Hay plugins para las herramentas más habituales como Hibernate, String, Quartz, JFreeChart, Lucene, ... y si no existe siempre se puede hacer una integración definiendo un nuevo servicio. Como he dicho prácticamente cualquier apartado puede ser extendido o adaptado a nuestras necesidades. ¿Necesitas un validador o un objeto que convieta de un tipo a otro? No hay problema, implementa en un objeto la interfaz adecuada, configuralo en la aplicación y él se encarga de usarlo cuando sea necesario.

Tapestry no es un framework «full stack» pero eso... ¿es un defecto o una ventaja? Dependiendo del tipo de proyecto, nuestras preferencias o necesidades puede ser una cosa u otra.

Exception reporting
Otra buena característica de Tapestry es que cuando algo va mal no solo nos da la traza de la excepción que se ha producido en la consola del servidor sino que nos muestra una página con toda la información de la aplicación y de la petición realizada y que ha fallado, con lo que descubrir la causa de la excepción nos será más sencillo. ¿Te has exasperado alguna vez porque la línea que se indica en un error no se corresponde con la realidad? En el informe verás la linea exacta que ha producido la excepción y un extracto del código fuente de los componentes y los usos de unos a otros hasta llegar a la excepción, además en la traza el informe te marcará en otro color las clases que se han usado de tu aplicación. Por supuesto está pagina puede ser personalizada en un entorno de producción. En Tapestry 5.3 se ha incorporado un informe incluso para las peticiones AJAX y el autor del framework ha publicado un screencast en el que se pueden ver los informes de errores en acción.

Productividad
En caso de hacer modificaciones en las clases de los componentes, páginas y servicios o a las plantillas de los mismos los cambios se hacen efectivos inmediatamente sin tener que realizar un redespliegue de la aplicación aunque en algunos casos no nos quede más remedio que hacerlo. Aún en ese caso la aplicación tarda poco en arrancar comparado con otros frameworks. Si desarrollamos en Java podemos aprovecharnos del soporte de refactor que ofrecen los IDE. La productividad se consigue reutilizando componentes ya desarrollados y probados.

Rendimiento y escalabilidad
En las últimas versiones se han incorporado características para aumentar el rendimiento y su escalabilidad como la eliminación del pool de páginas, ahora solo hay una instancia para todas las peticiones de la aplicación, la eliminación de espacios en blanco innecesarios lo que reduce el tamaño del contenido a devolver, la compresión del contenido devuelto para reducirlo aún más y la agregación de javascripts y hojas de estilo para reducir el número de peticiones a realizar al servidor. Con estas características se consigue que la página carge más rápido en el cliente y disminuya la carga de trabajo en el servidor al realizarse menos peticiones.

Soporte localización
En otros frameworks es habitual que solo exista un bundle con las traducciones de toda la aplicación. Tapestry permite una granularidad mayor, los componentes pueden tener su propio bundle de propeties con las traducciones específicas de ese componente, además los componentes y páginas pueden tener una plantilla diferente según el locale (y a partir de la versión 5.3 podriamos tener una plantilla diferente si el cliente es un dispositivo movil u otras características que decidamos) e incluso las imágenes con textos son recursos que podrían localizarse eligiendo la adecuada según el lenguaje de la aplicación.

Validaciones
La validación de los datos de entrada de un usuario de la aplicación es una de las cosas importantes que como desarrolladores tenemos que tratar. La validaciones son muy simples de aplicar ya que se hace de forma declarativa dejando a Tapestry todo el trabajo de comprobarlas en el servidor. Además es capaz de presentar los errores al usuario en caso de que alguna haya producido algún error. Soporta la especificación JSR-303.

Políglota
¿Te gustan otros lenguajes que han aparecido recientemente y que se pueden ejecutar sobre la Java VM como Groovy o Scala? Pues con él puedes desarrollar tus componentes, páginas y servicios con el lenguaje que prefieras ya sea Java, Groovy, Scala o cualquier otro que se pueda ejecutar sobre la máquina virtual. Puedes ver un ejemplo en otra entrada que he escrito Usar Apache Tapestry 5 con Groovy (u otros lenguajes de la JVM).

Otras características
Tapestry implementa el patrón «redirect after post» que resuelve algunos problemas inherentes a las aplicaciones web o los botones atrás y adelante de los navegadores. En un artículo de theserverside, Redirect After Post, tienes una explicación más detallada de este patrón.

Además de las anteriores, y en mi opinión personal, otra es que con él realmente disfruto programando y quedo satisfecho de como queda el trabajo que realizo. ¿Se podría decir algo mejor de un framework de forma resumida?

Por supuesto no es perfecto y estas  son solo unas pocas de sus características pero creo que en los aspectos importantes como la reutilización de código en base a los componentes, su modularidad, adaptabilidad y gran rendimiento, productividad y su desarrollo sencillo una vez aprendidos sus conceptos básicos considero que gana por mucha diferencia respecto a otros frameworks. Una de sus deficiencias respecto a otros frameworks (o no) como Grails y otros parecidos en otros lenguajes (PHP, Ruby) es que no proporciona un entorno tan integrado («full stack») como la posibilidad de ejecutar los teses con grails test-app o de ejecutar la aplicación grails run-app, pero esto también tiene la ventaja de que no se nos impone uno y podemos usar el que queramos y tenemos mayor control sobre lo que hacemos.

La versión actual de Tapestry es la 5.2.6 estando al versión 5.3 en estos momentos en proceso de entrar en estado beta. Los cambios que incorporará 5.3 pueden consultarse en las notas de publicación de la versión.

Si tienes curiosidad de ver algo de código de una aplicación puedes ver estas entradas: Hola Mundo con Tapestry 5, Componentes lista paginada con Tapestry y si quieres ver una aplicación funcionando puedes acceder a este Hola Mundo con Tapestry 5 que se está ejecutando en el Google App Engine. También en la aplicación JumpStart tienes un montón de ejemplos  interesantes con el código fuente sobre diversas características de él, seguro te sorprende lo simple y «limpio» que es el código para las cosas que se hacen en esos ejemplos.

En la entrada Documentación sobre Tapestry puedes ver la documentación disponible que he ido recopilando por la red.

Espero que estos motivos os animen a echarle un vistazo, con que sólo uno lo hiciera ya me sentiría recompensado por haber escrito la entrada. Si es así pueden estar atentos a las entradas que escriba en mi blog ya que pretendo seguir escribiendo sobre Tapestry en él :).

Referencia:
http://mail-archives.apache.org/mod_mbox/tapestry-users/201201.mbox/%3C4F210FCA.3020801@ictjob.be%3E

Jan 24, 2012

Encuentra y selecciona rápidamente en Nautilus

Seguro que os ha pasado más de una vez, que tenéis una carpeta en vuestro ordenador llena de archivos de todo tipo: documentos, imágenes, música, vídeos… una especie de cajón desastre. Pero un día decidimos mandar esos archivos al lugar que le corresponde, a la carpeta de música, a la carpeta de fotos, a la papelera, etc…

La manera más habitual de hacerlo es apretar la tecla CTRL + click de ratón e ir archivo por archivo marcando cuales nos interesan, bien para copiar, mover, adjuntar o eliminar. Cuando tenemos una gran lista de archivos, se convierte en una tarea tediosa.

Hay una manera muy fácil de seleccionar varios archivos que cumplan el mismo criterio de búsqueda de una sola vez.

En Nautilus, en el menú Editar, hay una opción llamada Seleccionar archivos que coincidan con… o lo que es más rápido CTRL+S y se nos abrirá una ventanita donde deberemos indicar que es lo que estamos buscando, lo bueno es que se pueden utilizar comodines que nos harán mucho más sencilla esta tarea.

Es decir si por ejemplo queremos seleccionar todos los archivos que sean de un mismo formato o que incluyan una palabra concreta en su nombre, etc.

Recordad que estos comodines de búsqueda que nos van a ayudar son:

* El asterisco sustituye a uno o varios caracteres.
? Sustituye un caracter y una posición concreta.

Por ejemplo, si quisiéramos seleccionar todos los mp3:

*.mp3

He utilizado el asterisco para indicar que seleccione todos los nombres de archivo, que tengan la extensión mp3.

Si quisiéramos seleccionar todos los documentos que tenemos y que llevan linux en su nombre, ya sean txt, pdf, odt, una chuleta en formato png, etc:

*linux*.???

He utilizado los asteriscos entre la palabra linux porque no sé como empieza y como termina el nombre del archivo y los 3 interrogantes, porque las extensiones suelen ser de 3 caracteres. También podría haber hecho:

*linux*.*

Que sería todo lo que contenga la palabra linux y sea del formato que sea.

O por ejemplo todas las imágenes que sean jpg y png:

*.??g

Depende de como cada uno renombre sus archivos, en base a ello se jugará con unos comodines u otros en distintas posiciones.

Un tip rapidito, simple y muy útil.

Juan Manuel Méndez

Juan Manuel Méndez
Noticias feed

La obsolescencia de las universidades

 

El artículo que aparece Y Combinator: http://matt-welsh.blogspot.com/2012/01/making-universities-obsolete.html nos trae un interesante debate.

Haciendo obsoletas a las universidades.

Sebastian Thrun ha anunciado recientemente que deja Stanford para fundar una universidad libre y en línea llamada Udacity. Esta decisión se basa en sus experiencias enseñando en la famosa clase de Introducción a la Inteligencia Artificial, a 160.000 estudiantes que libre y gratuitamente podian acceder en línea.

El autor del artículo se plantea si esto es realmente una revolución en la manera en que se imparte Educación Superior, o es simplemente otra manera de distinguir entre los que pueden acceder a universidades y los que no.

Una de las cosas que plantea, y que tambien considero muy relevantes, son los fallos del modelo de educación superior convencional.

Fallo #1: Exclusividad.

En la brillante presentación en DLD Sebastian Thrun habla de como se sentia avergonzado de que solo pudiera enseñar a unas pocas docenas de estudiantes cada vez, y solo a aquellos que pudieran permitirse pagar los 30.000$ que cuesta atender a Stanford. El autor estima que el ha enseñado a menos de 500 estudiantes en total durante sus 8 años en la facultad de Harvard, algo que considera una trayectoria muy pobre.

Y la cosa se pone peor. Todos conocemos muchas facultades que disfrutan poniendo clases duras, en las cuales enseñan material verdaderamente duro al principio del semestre como método para filtrar a los estudiantes más débiiles, a veces, para dejar sólo a 2 o 3 estudiantes realmente comprometidos y realmente buenos dentro de la clase. Esto resulta muy satisfactorio como profesor, ya que no necesitas preocuparte por tutorizar a los estudiantes más débiles, y cuanto menos estudiantes tienes, menos trabajo hay que realizar a la hora de puntuar, etc... No hay ningún inconveniente para hacer esto, y raramente hay incentivos para enseñar un curso más grande y popular.

La exclusividad es necesaria cuando hay un espacio limitado de clase, y tantos dormitorios, y tantos comedores, de manera que hay que ser selectivo sobre quien entra tras las magníficas puertas de la universidad. Es una manera de mantener un renombre: incluso escuelas, como Harvard, con un componente de "educación a distancia", toma una atención especial en diferenciar la "verdadera" educación de Harvard del "certificado de enseñanza a distancia", no fuera a ser que esto alimentara la ira de los Viejos Chicos destrozando lo que significa obtener un título de Harvard (algo parecido a la reacción de cuando comenzaron a admitir mujeres, hace mucho tiempo en 1977).

Fallo #2: Puntuaciones.

Puede alguien recordarme por que todavía tenemos notas o puntuaciones? Me gusta lo que Sebastian dice (citando a Salman Khan) sobre aprender a montar en bicicleta: No es como si obtuvieras un suspenso al aprender a montar en bicicleta, y entonces paras y debes empezar a montar en monoiciclo. ¿No debería ser el objetivo de cada clase el que cada alumno obtuviera matrícula de honor?

Aparentemente no. El argumento más común es que necesitamos las notas para distinguir los estudiantes "buenos" de los "malos". La idea presupone que si no puedes pasar un curso en las 12 o 13 semanas que dura un semestre entonces mereces fallar, sin importar las circunstancias que suceden en tu vida o si podrias haberlo aprendido en un espacio de tiempo mayor, o con más apoyo, o con lo que sea. Y los estudiantes realmente inteligentes, aquellos que aciertan a la primera y sacan sobresaliente en todas las clases, necesitan subir a lo más alto de manera que reciban los primeros frutos de los buenos trabajos, o carreras judiciales o escuelas de medicina, o cualquiera que sea el premio por el que han estado trabajando durante sus jovenes vidas. "No sería justo" si todo el mundo consiguiera sobresaliente -- ¿Como conseguirian entonces los privilegiados o los chicos inteligentes ganar alguna ventaja sobre los menos privilegiados o menos inteligentes?

Me parece que todo esto es incompatible con la idea de educación.


Fallo #3: Clases

Como Sebastian dice, las universidades han estado usando el formato de clase por más de 1000 años. Yo solía decir a mis estudiantes que *requerían* venir a mis clases, y nunca proveía mis clases en video, no fuera a ser que los estudiantes se saltaran las cases y la vieran en YouTube desde sus habitaciones. Mayormente todo era por asegurar que todos en la clase obtuvieran el beneficio de mi estilo dinámico y entrenido de dar clases, el cual había perfeccionado a lo largo de los años (incluyendo una danza coreográfica interpretativa que demostraba el movimiento de los cabezales de los discos durante una operación de limpieza en un sistema de fichero estructurado en Logs). Pero mayormente esto era por aumentar mi ego y obtener alguna gratificación por trabajar tan duramente en mis clases a través de que mis estudiantes estuvieran fisicamente allí en mi clase como audiencia.



Implicaciones

No sabemos si Udacity, o Khan Academy y Universidad iTUnes son la solución a esos problemas. Sin embargo hay dos cosas importantes que las universidades online traen sobre la mesa: (1) Ampliar el acceso a una educación superior, y (2) Aprovechar la tecnología para explorar nuevos métodos de aprendizaje.

 

----------

El artículo original continua hablando de los riesgos de que la calidad de la educación online no alcance la de la presencial, o como no podría sustituir a la experiencia de estar presencialmente en la universidad y que los empleadores consideren dos categorías de títulos universitarios.

Sin embargo, mi opinión personal, es que esta iniciativa es solo el comienzo de algo más grande, el camino se hace andando y quedarnos parados sobre las valoraciones que se hagan al inicio no influyen en que esto realmente hará avanzar el sistema educativo en su conjunto.

La decisión de Stanford fué para mi admirable y la decisión de Sebastian de abandonar su plaza diciendo “No puedo volver a enseñar en Stanford” fundando Udacity lo es aún más. Quiere enrolar a 500.000 estudiantes para su primer curso sobre como construir un motor de busqueda, y por supuesto libremente y gratis.

http://www.udacity.com/

 

Jan 20, 2012

Pon fecha de caducidad a las contraseñas de usuario

Por defecto, cuando creamos un usuario y contraseña ésta son “para toda la vida” a no ser que un día decidamos cambiarla o que hagamos uso de la caducidad de contraseñas, es decir, que sean válidas durante un tiempo determinado y una vez transcurrido dejan de serlo y hay que modificarlas.

Uno de los comandos (no el único) que nos permiten hacer esto es chage, con el cual podremos definir y obligarnos u obligar a otros usuarios del sistema a cambiar su contraseña cada X tiempo.

Vamos a obtener información de un usuario cualquiera:

chage -l usuario

(Es una ele minúscula)

Último cambio de contraseña					:dic 30, 2011
La contraseña caduca					: nunca
Contraseña inactiva					: nunca
La cuenta caduca						: nunca
Número de días mínimo entre cambio de contraseña		: 0
Número de días máximo entre cambio de contraseñas		: 99999
Número de días de aviso antes de que expire la contraseña	: 7

Aquí podemos ver cuando fue la última vez que cambió su contraseña, cuando caduca, cuando la contraseña quedará inactiva, cuando caducará la cuenta, días mínimos que han de transcurrir para poder modificarla, el número de días que la contraseña es válida y con cuantos días de antelación nos avisará antes de que llegue la fecha de caducidad.

Así es como se mostraría por defecto tal cual creamos la cuenta, nunca caducará a no ser que indiquemos lo contrario y será válida durante muchos, muchos días.

El comando chage -l usuario lo podemos ejecutar sin ser root para visualizar nuestro propio usuario, pero no para ver las opciones de otros usuarios, esto sólo lo podrá hacer el administrador, igual que añadir cambios.

Vamos a realizar algunos ajustes, por ejemplo que el password caduque a los 60 días, o lo que es lo mismo que la contraseña sea válida durante 60 días, lo haremos con la opción:

-M número de días usuario

chage -M 60 usuario

Para deshacer los cambios:

chage -M99999 usuario

Si queremos que el aviso de cambio de contraseña sea 3 días antes, en lugar de 7, que es como estaba definido por defecto:

-W número de días usuario

chage -W 3 usuario

Y si además no queremos que los usuarios estén modificando su clave cada día vamos a establecer un mínimo de días que han de transcurrir antes de poder cambiarla, pongamos 10 como ejemplo:

-m número de días usuario

chage -m 10 usuario

Observad la diferencia entre las mayúsculas y las minúsculas, en este caso M y m no son lo mismo.

Para deshacer los cambios:

chage -m 0 usuario

Podemos hacerlo todo en una sola línea:

chage -M 60 -W 3 -m 10 usuario

Y vemos como ha cambiado:

Último cambio de contraseña					:dic 30, 2011
La contraseña caduca					: feb 28, 2012
Contraseña inactiva					: nunca
La cuenta caduca						: nunca
Número de días mínimo entre cambio de contraseña		: 10
Número de días máximo entre cambio de contraseñas		: 60
Número de días de aviso antes de que expire la contraseña	: 3

Otra opción que también podemos definir, es que una cuenta de usuario quede inactiva, si por ejemplo tenemos un usuario temporal, estableceremos la fecha en la cual su cuenta dejará de ser válida:

-E número de días usuario

o

-E YYYY-MM-DD usuario

Se puede especificar de dos maneras, por el número de días o la fecha exacta. Tenemos un usuario llamado Paco y su cuenta estará activa hasta el 30 de Marzo:

chage -E 2012-03-30 Paco

Para deshacer los cambios:

chage -E -1 Paco

Y por último nos quedan las contraseñas inactivas, si establecemos como días inactivos 5 desde que la contraseña caducó y el usuario no se loguea durante esos 5 días, y lo hace 10 días después la cuenta será bloqueada y será root quien tenga que desbloquearla, pero si llega la fecha de caducidad y nos logueamos dentro de esos 5 días sí podremos acceder pero deberemos cambiar la contraseña al momento. Si el valor es 0 la cuenta no caduca pero igualmente deberemos añadir un nuevo password. En resumen, el password hay que cambiarlo de todas maneras, la diferencia está en si la cuenta quedará inactiva o no.

-I 5 usuario

(es una i mayúscula)

chage -I 5 usuario

Para deshacer los cambios y volverlo a dejar tal cual estaba:

chage -I -1 usuario

Otra maneras aún más rápida de hacerlo en vez de ir definiendo las opciones es con:

chage usuario

Con esto el sistema nos va preguntando y sólo hemos de introducir los valores o presionar ENTER para que coja la configuración por defecto o los que ya estaban definidos:

Cambiando la información de la edad para pinkpanth
Introduzca el nuevo valor, o presione ENTER para el predeterminado

	Duración mínima de la contraseña [0]:
	Duración máxima de la contraseña [99999]:
	Último cambio de contraseña (AAAA-MM-DD) [2011-12-30]:
	Aviso de caducidad de la contraseña [7]:
	Contraseña inactiva [-1]:
	Fecha de caducidad de la cuenta (AAAA-MM-DD) [1969-12-31]:

Jan 19, 2012

BlogDRAKE: Fondo Pantalla para Cauldron ~ Mageia 2

Jan 18, 2012

BlogDRAKE: Contra la Censura: No a SOPA

Jan 17, 2012

The mad ones

“The only people for me are the mad ones, the ones who are mad to live, mad to talk, mad to be saved, desirous of everything at the same time, the ones who never yawn or say a commonplace thing, but burn, burn, burn, like fabulous yellow roman candles exploding like spiders across the starsand in the middle you see the blue centerlight pop and everybody goes “Awww!”

~Jack Kerouac

Jan 16, 2012

Catalanitzador per a Windows versió de proves 0.95

A finals de setembre del 2011 en Jordi Serratosa, en una trobada mensual de Softcatalà, va comentar que és realment feixuc i complex Catalanitzar un PC sota Windows, i que estaria bé poder-ho automatizar. A principis d'octubre vaig començar a plasmar la idea en una aplicació que vaig batejar com el Catalanitzador per a Windows.

Per fer-vos cinc cèntims de la complexitat que requereix per un usuari configurar-se el Windows en català:

  • Trobar el lloc web des d'on baixar els diferents paquets d'idioma (malauradament no tots estan llistats a can Microsoft)
  • Escollir correctament les versions de paquets d'idioma: de 32 o 64 bits, per la versió correcta versió correcta de Windows o Office, i inclús a nivell per un determinat service pack (com Office o Windows)
  • Alguns paquets d'idioma, com els d'Internet Explorer 9.0, requereixen prèviament tenir el Windows en català perquè funcionin.
  • Els paquets d'idioma de l'Office 2007 o superior després d'instal·lar-los cal anar a les preferències i escollir el català, sinó tens el paquet d'idioma del Windows en català.
  • etc

La idea de l'aplicació es ben senzilla que amb quatre passes l'usuari pugui catalanitzar totes les aplicacions que teu al seu PC i fer els canvis de configuració necessaris.

Ara mateix fa 5 accions, instal·la els següents paquets d'idioma:

  •  Microsoft Windows XP, Windows Vista i 7 (32 i 64 bits)
  •  Microsoft Office 2003, 2007 i 2010
  •  Internet Explorer 6, 7, 8 i 9

Addicionalment:

  •  Permet canviar la configuració del sistema a català
  •  Configura el català com a llengua de navegació a l'Internet Explorer 

A la pàgina del projecte Catalanitzador per a Windows trobareu tota la informació del projecte així com a la pàgina de baixades de la versió 1.0. El codi font es troba a github.

Aquesta és una versió de proves. Si teniu qualsevol versió del Windows i el podeu provar-la us ho agrairem. Si el proveu i trobeu qualsevol errada m'ho feu arribar a mi mateix a jmas@softcatala.org.

Tenim també una llista de correu anomenada desenvolupament on ens coordinem i on es podeu apuntar si voleu ajudar en el procés de desenvolupament, proves o donant idees. Tenim un bon recull de coses a fer futures versions.

Captura de pantalla de l'aplicació en el segon pas

Life update

I moved 600km away from Madrid, I quit my job because with all the coming and going I was barely making any money, and in order to keep a healthy, active mind, I'll keep working for Debian. I also started occasionally helping kandinski with sysadmin stuff for Barrapunto (the Spanish SlashDot), also for love, and because of incredible timing.

We also now have a new cat (an orange tabby named named gato, not very original nor practical as it's our fifth cat in the household). We also now have a small garden the cats love, even in bad, evil rain. I also now have a bright new horizon where a vegetable garden, civil marriage, quitting smoking, and motherhood will be slowly making it into my life as the dust settles down.

Last, but not least, I'll try to get back in touch with all the people I lost contact with because of, you know me, another one of my falls through the rabbithole I call depression. I missed two Debconfs in a row, this time it was bad. But I found the way out and I am back. So hurry up and drop me a line before three years (that's when i believe the rabbithole will eat me again). At least now I understand the cycles. It still sucks, but helps feel in control. Or something.

Anyway, if you ever show up close to Seville, I am up for keysigning, beers and rl spammer harassing, as always.

Jan 15, 2012

FORAT: Como montar un Servidor Cloud Computing con OwnCloud

Jan 13, 2012

Ivaylo Kuzev

Ivaylo Kuzev
feed

Mi tenedor personalizado de DWM-6.0

Movido en github DWM-HACK  Patches ------- * Bstack * Gridmodes * Fibonacci * Fancycoloredbarclickable * Menu-patch * Movestack * Moveresize * Autoresize * Attachaside * Pertag2 * Monocle_no_borders * Xbm_layout_icons * Bottom_padding * Uselessgap * Systray * Save_floats * Cycle * Cycle-layouts * Active-focus * Opacity * Togglefullscreen * Hide empty tags in tag [...]
Emiliano A. González Salgado

Emiliano A. González Salgado
El blog de Emi feed

Multifución Epson Stylus Office BX305FW en Fedora 16

Esta información sirve para muchas de las multifunciones Epson.

La Epson Stylus Office BX305FW es una multifunción con impresora, escáner y fax.

Tiene conexión via usb y wfi.

El equipo se puede configurar desde el panel de control o desde el ordenador con sistemas operativos Windows y Mac Os. Para Linux no se ofrece programa de configuración.

La forma más sencilla de preparar la red mediante Wifi es con el CD que se suministra. Para ello tenemos que conectarla por usb a un ordenador con Windows (por ejemplo) y ejecutar el asistente del CD, pues es mas cómodo esto que teclear en el panel de control, dónde introducir la clave del Wifi, como sea un poco complicada, es un lio.

Una vez que se ha conectado al router hay que darle ip fija en este para poder comunicarnos correctamente desde Linux. La forma de hacerlo depende del router que se tenga instalado. En mi caso le he asignado la i.p. 192.168.1.15.

Antes de conectarla por usb al PC con Fedora 16 deberemos instalar los drivers.

La página de descargas de drivers Epson para impresoras y escáner es:

http://avasys.jp/eng/linux_driver/

En ella se puede buscar el modelo de impresora y se descargan los controladores que correspondan. En el caso de la BX305FW sería:

para x86_64:

http://linux.avasys.jp/drivers/lsb/epson-inkjet/stable/RPMS/x86_64/epson-inkjet-printer-workforce-320-sx218-1.0.0-1lsb3.2.x86_64.rpm

para x86_32:

http://linux.avasys.jp/drivers/lsb/epson-inkjet/stable/RPMS/i486/epson-inkjet-printer-workforce-320-sx218-1.0.0-1lsb3.2.i486.rpm

Al descargarlo con el navegador se puede instalar directamente con Apper o PackageKit.

Caso contrario como root, posicionándose en el directorio de descarga, se ejecuta “yum -y install nombre del paquete.

A continuación se puede conectar la impresora por usb, caso que se quiera usar de esa manera, y el sistema operativo la configurara automáticamente.

Para conectarla por red, hay que ir a Impresoras – Impresora nueva – Impresora nueva – Seleccionar conexión – Protocolo de impresión de internet IPP (ipps) – En el recuadro de “introduzca el URL de dispositivo” poner: socket://192.168.1.15/ (dirección fija asignada) – se pincha en adelante, y la impresora está configurada.

Si queremos hacer las descargas directamente del sitio:

http://linux.avasys.jp/drivers/

SCANNER

Drivers x86_32:

http://linux.avasys.jp/drivers/iscan/2.28.1/iscan-2.28.1-3.i386.rpm

http://linux.avasys.jp/drivers/iscan-data/1.13.0/iscan-data-1.13.0-1.noarch.rpm

http://linux.avasys.jp/drivers/scanner-plugins/iscan-network-nt/1.1.0/iscan-network-nt-1.1.0-2.i386.rpm

Drivers x86_64:

http://linux.avasys.jp/drivers/iscan/2.28.1/iscan-2.28.1-3.x86_64.rpm

http://linux.avasys.jp/drivers/iscan-data/1.13.0/iscan-data-1.13.0-1.noarch.rpm

http://linux.avasys.jp/drivers/scanner-plugins/iscan-network-nt/1.1.0/iscan-network-nt-1.1.0-2.x86_64.rpm

Antes de instalar estos tres paquetes hay que que realizar lo siguiente, desde una consola y como root:

ln /usr/lib/libltdl.so.7 /usr/lib/libltdl.so.3           (para 32 bits)

ln /usr/lib64/libltdl.so.7 /usr/lib64/libltdl.so.3           (para 64 bit)

A continuación se pueden instalar los tres archivos.

Si hay problemas con la librería libltdl.so.3 habría que instalar primero el paquete iscan-2.28.1-3.x—–.rpm de la siguiente forma y como root:

rpm -i –nodeps iscan-2.28.1.3*.rpm”.

A continuación se puede proseguir con la instalación de los otros dos archivos.

Por ultimo vayamos al directorio “/etc/sane.d“, renombremos el fichero “epson2.conf” y editamos el archivo “epkowa.conf“.

Hay una línea sin “#” que pone usb. Tiene que quedar así “usb 0x04b8 0×0863”

Otra que está igual y pone net. Tiene que quedar asi “net 192.168.1.15”.

(Sin las comillas).

De esta forma se puede escanear tanto por usb como por wifi.

Para el escaneo se puede emplear Xsane (Scanner tool) o teclear en consola “iscan”.

El único problema hasta ahora ha sido configurar el fax, para enviar desde Fedora.

No he sido capaz de crear una impresora-fax, por mas que lo he intentado y a pesar de las búsquedas realizadas.

Un saludo,

Emiliano


Jan 11, 2012

Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux feed

Buscando bloques defectuosos en un disco y optimizando directorios

En muchas ocasiones se producen fallos en el disco. Ya pueden estar debidos a apagados incorrectos del sistema o a un fallo en el disco. Esto puede hacer que ciertas partes del disco dejen de funcionar correctamente. Afortunadamente existen formas de indicar que no se usen dichas partes defectuosas.

La información del disco se guarda en “bloques”. Los bloques son como “cajas” dentro del disco duro donde se guardan los datos. Un fichero de gran tamaño necesitará un gran número de bloques para almacenar toda su información. Si una de los bloques se daña, puede suceder que la información que almacena se pierda.

Existe la opción de marcar un bloque como defectuoso y que no se vuelva a usar. De esta forma se puede usar el disco duro sin miedo a perder la información.

Para ello se usa el comando e2fsck. Se necesitará un CD live o tener la partición desmontada, pues no se puede usar correctamente e2fsck con particiones en uso. Una vez que se ha arrancado con nuestro CD live, sólo hay que iniciar el programa gparted para localizar el nombre de la partición que se desea chequear y después escribir en un terminal:

e2fsck -cc /dev/sdaX

donde /dev/sdaX es el nombre de la partición. Normalmente se suelen llamar /dev/sda1, /dev/sda2,…

Con esto se chequeará la partición buscando los fallos.

El comando e2fsck también permite optimizar los directorios. Si el sistema de archivos lo soporta, usará indexación, o bien los reordenará para mejorar el rendimiento. Esto es útil si se hacen muchas lecturas en el disco y pocas escrituras. Por ejemplo, si se tiene una partición con ficheros de documentación que se consulta de forma frecuente, la optimización en los directorios hará que las búsquedas serán más rápidas.

Para aplicar esta optimización habrá que arrancar con un CD live, o bien, tener la partición desmontada. Después se escribirá:

e2fsck -D /dev/sdaX

donde /dev/sdaX es el nombre de la partición del disco duro. Como ya se ha comentado el nombre de la partición se puede obtener con el programa gparted.

Existe un problema con las memorias flash. Alguien podría intentar usar esto para corregir los fallos de la memoria flash que le corrompe la información. El mecanismo que usan las memorias flash no es tan intuitivo como el de los discos duros. Las escrituras sobres los bloques de las memorias flash, terminan por dañarlos. Para evitar este efecto, algunas memorias flash mueven la información de sitio para que las escrituras se repartan sobre todos los bloques por igual. Esto permite alargar la vida de la memoria flash. Si tenemos suerte e2fsck podrá marcar el bloque como defectuoso, pero si la información se mueve de sitio a otros bloques, se perderá la referencia de los bloques defectuosos. De todas formas, por probar suerte…


Jan 10, 2012

Lo más duro que he escrito en toda mi vida

Tras leer que Grecia gasta ahora que esta ahogada miles y miles de millones en armas en este artículo del que os paso el enlace, no creo que pueda uno faltar al deber cívico de denunciar esta violencia. Yo no he podido:

Grecia comprará armas a sus socios de la UE con el dinero del rescate

¡Es absolutamente inaceptable!

Si no sientes un absoluto rechazo a esto es que no tienes empatía. Por favor infórmame si eres amigo mio o cercano porque no quiero relacionarme con sicópatas.

Cualquier participación en esto por lejana que sea es mancharse las manos con el sufrimiento de la gente de la calle por intereses económicos. Ya no creo que se pueda decir que eso se pueda explicar como un error o un mal entendido.

La gente en la calle sufriendo los abusos y privilegios de unos gobernantes a los que llaman tecnócratas cuando son simples plutócratas o directamente corruptos y ENCIMA aprovechamos para obligarles a comprar armas.

Mi más profunda condena a todo el que participe.

Sí como a Bush, ni más, ni menos.

Estamos llegando a las más bajas niveles de hipocresía, falta de empatía y corrupción de todos los tiempos. Y están participando nuestros propios vecinos y familiares en las enormes redes de clientelismo globalizadas.

Ni honor, ni ideales, ni patriotismo, esto es pura y duramente violencia económica. Como cuando Estados unidos Amenazá con guerra comercial al que no imponga la ley Sinde pero aun un estrangulamiento o violación más brutal y descontrolado.

¡Dios! Esto es lo más duro que he escrito en toda mi vida.

Por favor, os lo ruego, en nombre de los que no pueden gritar más alto o sufrir más impotencia ante esta violenta corrupción, haced algo.

Comprometámonos en pequeñas decisiones, seguro que entendemos suficiente en algunos aspectos como el voto o las compras como para saber el efecto que producimos todos juntos.

El mundo que nos rodea está hecho de la suma de nuestras pequeñas decisiones de cada día.

Ramón Miranda

Ramón Miranda
Ramon Miranda feed

SLUN11. Pintura Digital + Video.

Recientemente se celebró en San Sebastián la SLUN11  donde fui invitado para dar una charla sobre "Pintura Digital con software libre".
El evento en sí fue de un altísimo nivel. Se trataron temas como la enseñanza Online mediante autograbación de clases,  KDE Edu, Kalgebra, etc.. Se explicó cual es la realidad empresarial sobre el software libre en Euskadi y cosas mucho más técnicas como Agile Open Tools donde se habló de buenos hábitos a la hora de programar y muchas más cosas.

En el programa también hablamos sobre "Pintura Digital", donde analicé los programas MyPaint, Gimp y Krita, con algunos ejemplos en video y en tiempo real. La verdad que lo pasé muy bien, y además conoci a personas con las que solo había hablado por mail. El trato fue muy bueno en todos los aspectos y para acabar, la cena que disfrutamos fue algo a recordar. Increiblemente, hablamos más de pintxos y gastronomía varia que de tecnología, aunque algo de Arduino ya quedó tambien en el aire. Creo que fue en general una muy buena experiencia personal y profesional. Esperamos que se repita.

Actualmente estoy disponible para dar servicios de orientacíon sobre arte digital.
Si estas interesado en que de una charla en tu universidad, instituto o empresa, pudes ponerte en contacto vía email o por mensaje en este mismo post.
Si la invitación proviene de un pais extranjero agradecería que fuera con tiempo ;)

mirandagraphic@gmail.com  indicando en el asunto: "Charla Ramón Miranda".


Ramón Miranda

Ramón Miranda
Ramon Miranda feed

La Guarida. Wip

A ver qué os sugiere. ;) lo acabaré un poco más y listo.



Jan 08, 2012

Luis Vilchez

Luis Vilchez
El blog de Jabba feed

Regala libertad por Navidad

¿No sabes qué regalar a tus amigos y familiares por Navidad? No es sencillo acertar y regalar algo que guste y sea útil. ¿Imaginas regalar "libertad"? ¿Hay algo más útil que la libertad? La Navidad puede ser una buena excusa para promover el software libre. ¿Por qué no regalar una copia de tu distribución Linux favorita?




Barato, útil y original. ¿Se puede pedir más? El regalo perfecto para esta Navidad :)
Ramón Miranda

Ramón Miranda
Ramon Miranda feed

¿Qué es eso de Gimp Painter? Parte 3. Mixbrush tool



v
amos ya con la 3ª parte de "¿qué es eso de gimp painter?"
En las dos primeras (parte 1, parte 2) introdujimos Gimp Painter y vimos cómo instalarlo. Ahora vamos a centrarnos en la herramienta ”Mixbrush” por las buenas características que tiene. Concretamente 2:
  • Nos permite mezclar colores directamente sobre el lienzo, al estilo “MyPaint” “open canvas”, “corel painter” o PS (solo a partir del CS5) entre otros..
  • Podemos trabajar con textura dentro del pincel mediante “patterns”
Importante! para cargar los presets de Gimp Painter haremos click en el boton “..restaurar opciones desde” situado en el diálogo de opciones de herramienta, y cuando se despliegue la lista de los presets disponibles, elegimos el preset haciendo click sobre él, pero pulsando la tecla “Shift” simultaneamente. De esta manera cargamos el preset con los colores por defecto del preset, la textura elegida, su degradado original y todo tal cual se salvó ese preset la ultima vez. Esta es sin duda, la mejor forma de ver cual es el comportamiento original del preset.

El aspecto de la herramienta “Mixbrush” con todos los parametros ampliados dentro de Gimp Painter es el siguiente:

Los paneles o partes han sido numerados para una mejor comprensión.(conviene no fijarse en cuales parametros están activos o no , ni a que valores están los sliders)

Introducción
Los presets de GPS estan diseñados para trabajar en capas CON canal alfa , si trabajamos en el "fondo" o capa inicial podemos encontrar resultados no óptimos porque por defecto Gimp no añade el canal alfa a la capa de fondo. por lo tanto, nada mas comenzar crearemos una capa vacía encima del fondo y pintaremos allí. a partir de ahí podemos añadir más capas como de costumbre.
Esto tiene un inconveniente. Trabajar en capas con canal alfa relentiza un poco el brush, pero ofrece mejores resultados en la mezcla entre capas.
A continuación pasamos a la descripción de cada numero.
  1. Mixbrush. (opciones generales)
  2. Dinámicas de pincel.
  3. Fade out. (desvanecimiento)
  4. Apply Jitter. (Aplicar Esparcimiento)
  5. Use color from gradient (Usar color desde el degradado)
  6. Reduce update frequency (Reducir la frecuencia de actualización)
  7. Use texture (Usar Textura)
  8. Alpha channel mixing (mezclado de canal alfa)
  9. Main color ; Canvas color (color principal; Color de lienzo)
  10. Pick up (arrastre)
  11. Delay (retraso)

Nota: asumimos que incremental está siempre activado.. por eso no aparece numerado en la imagen. Si incremental no está activado, las opciones de mezcla de color en tiempo real no funcionarán bien. Activarlo hace que el parámetro Flow quede deshabilitado.Asumimos también, que el hidden color es siempre = normal
  
Gimp Painter .Explicación de los parámetros

1. Mixbrush. (opciones generales)
La siguiente figura muestra los parámetros generales de Mixbrush


Mode
Con la herramienta Mixbrush utilizamos el modo “Normal”. Modos como “superponer” o “luz suave”, por ejemplo, no dan buenos resultados con la configuración de los presets.

Opacity
Define la transparencia de la pincelada. Es similar al paramétro opacity de la herramienta PaintBrush. Pero funciona con niveles de opacidad muy bajos. El propio autor de Gimp Painter recomienda estos valores para evitar un incremento muy rápido de la opacidad. De 20 a 50 es un buen rango.

Flow
Este parametro queda desactivado cuando activamos incremental. Asi que no le prestamos atención.

Smoothing
No he conseguido entender aun qué es lo que hace exactamente.

Brush
Desde este cuadro seleccionamos la punta de pincel.

Scale
Controla el tamaño de la pincelada.

Minimum scale
Para que este parámetro funcione bien tenemos que tener activada la dinámica de pincel "size" “ Tamaño”
Minimum Scale Controla el tamaño mínimo al que puede llegar la pincelada. Se basa en el parámetro Scale para calcularlo. Si Scale por ejemplo es 2 y Min Scale esta en 50 , significa que el mínimo tamaño o diámetro al que puede llegar la pincelada es la mitad (50%). Si min Scale es 0, el diámetro de la pincelada sera el menor posible.

Power
Es uno de los parámetros más interesantes de Gimp Painter pues nos permite regular la forma en que administra la presión la tableta. Tiene en cuenta los valores Scale y Minimum Scale para determinar el aspecto final de la pincelada. Como resultado tenemos una transición mucho más suave o acentuada de tamaños grandes a pequeños. Valores mayores de 0.50 incrementan la cantidad de presión necesaria para llegar al máximo tamaño. Valores menores de 0.50 producen el efecto contrario.

2. Brush Dynamics (Dinámicas de pincel)
Nos permite controlar el comportamiento del pincel. Desde aqui controlamos como le afectan los valores de entrada como: la presion de nuestra tablet, la velocidad a la que hacemos las pinceladas o valores aleatorios.. a los parametros de salida como la opacidad, el tamaño, el color..


3. Fade out (desvanecimiento)
Nos permite controlar cuando termina el efecto de la pincelada sobre el lienzo. Idéntico al Desvanecimiento de la herramienta PaintBrush. Podemos ajustarlo a diferentes valores: Pixeles, Porcentaje, cm, etc...

 

4. Apply Jitter (Aplicar esparcimiento)
Crea una dispersión de la punta de pincel durante la pincelada de forma aleatoria en ejes X e Y. 

 

5. Use color from gradient (Usar color desde el degradado)
Permite controlar el color de la pincelada desde un gradiante. Idéntico a la herramienta Paintbrush de gimp

 

6. Reduce update frequency
(Reducir la frecuencia de actualización)
podemos usar el "reduce update frequency " si vemos que las pinceladas no van muy rápido pero no lo aconsejo porque produce un efecto de pintura a golpes. El autor menciona que esto lo puso para ordenadores poco potentes. O casos excepcionales.

 

7. Use texture (Usar textura)
Cuando vamos a mezclar colores podemos querer tener textura o no en el pincel. Esto es bueno porque enriquece la pintura añadiendo detalles creados al azar que de otra manera serían planos.

Un ejemplo de texturas podria ser el de la siguiente figura:




Si analizamos la siguiente imagen podemos ver varias cosas.



  • Cuando la presión es máxima, se obtiene una pincelada opaca. Es cuando disminuye la presión que se empieza a ver el dibujo de la textura.
  • Esta textura tiene el tamaño del pattern que la produce por lo que si queremos tener texturas mayores o menores deberemos crear el correspondiente pattern.
  • La textura es fija. Da igual donde comencemos la pincelada, o si volvemos a dar una pincelada por encima que el efecto sera el mismo.
  • Apply fringe lo dejaremos desactivado.
Los parámetros con los que podemos jugar son:
Grain
Cuanto mas pequeño es el valor "grain" hasta llegar a 0,más textura hará visible y menos parte visible de la pincela ya que esta es enmascarada por el pattern.

Contrast
Incrementa el contraste dentro de la propia textura de la pincelada.


8. Alpha channel mixing (Mezclado de canal alfa)
Permite la mezcla de color del sistema multicapa. No llego a entender muy bien la diferencia de que esté o no , pero los resultados son mejores si está activado.

Gráfica sacada de la web de Yamma-San
9. Main color ; Canvas color (Color Principal ; Color del lienzo)
Cuando estamos pintando es importante tener un buen control de la opacidad del Brush y de como se mezcla en cada momento con los colores de las capas inferiores y los colores que tiene mas cerca en la misma capa.
Para ello utilizamos los parametros de Main Color y Canvas color. Las curvas de ajuste definen si el pincel parece seco, liquido, si se mezcla o no ... y en qué grado lo hace a cada nivel de presión del lápiz.
Antes de empezar a ver los parametros necesitamos entender este gráfico y su significado.


Gráfica sacada de la web de Yamma-San

El eje vertical representa la salida (por ejemplo la opacidad, la cantidad de mezcla,..)
El eje horizontal representa la entrada que en el caso que nos aplica es el nivel de presion del pen tablet.
Para entenderlo de una manera sencilla pondré un ejemplo.
Imaginemos que estamos regulando la opacidad mediante la presion. In= presion ; Out = opacidad.
La lectura del gráfico sería la siguiente. Desde el primer momento que tocamos con el lápiz en la tableta, ya tendriamos una opacidad del 30% (0,3) no de 0% y según iriamos presionando más el pen contra la tableta hasta llegar a un nivel de presion del 25% no notariamos ningun cambio en la opacidad. Pero si seguimos presionando hasta superar el 25% de presión empezariamos a aumentar la opacidad llegando a una opacidad maxima del 90% (0,9) no del 100% como podria ser lo normal. Y a partir de este punto por más que presionemos la opacidad no aumentara. Esto es bastante útil porque podemos fijar limites. (clamping values)
Pues bien, este tipo de gráfica es el que manejamos para estos parámetros. El “density” y el “rate” de Main color y Canvas Color. Las siguientes figuras lo muestran según aparecen en el dialogo de opciones de pincel dentro de Gimp Painter 


Entonces si desplegamos por ejemplo solo las flechas de los parametros Density y Rate del Main Color, tenemos algo tal que así


Impresionante e?
Y ahora es cuando empezamos a entender la importancia de la gráfica anterior ,si? Pues todo esto, nos da un control tremendo sobre el resultado final.

Main Color.
El color en sí, no el modo en como se mezcla con otros colores subyacentes o de la capa de trabajo. Es el color que tenemos seleccionado en FG color.
Paint With pigment.
Ofrece mejores resultados en las pinceladas cuando esta desactivado, al menos en los presets que he creado para este set.
Density
Se refiere a la cantidad de pintura o pigmento que carga la herramienta.
Rate
La velocidad a la que llega a la densidad marcada como máxima.
Dryout.
Define si la pincelada se desvanece y en cuanto tiempo.

Canvas color
No es un color en si mismo. Lo entiendo como “el modo en el que se mezclan los colores”. Cuando el rate y density de main color son bajos y Aumentamos el valor de canvas color, se produce el efecto de mezclado de color tan caracteristico de mixbrush.
Density
Afecta a cuánto se mezclan los colores , si mucho ,que parece que la pintura esté liquida, o poco, cuando parece que esta seca.
RateLa velocidad a la que llega a la densidad marcada como máxima.

10. Pick up (Arrastre)
Se puede dar la situación de querer mezclar colores en la misma capa o en capas diferentes. El parámetro "Pick up" es importante para esto.
Algunos presets usan el parámetro "use merged color" que calcula el color que arrastra de la otra capa. relentiza un poco pero es bueno tenerlo activado si la pincelado no es muy grande y en casos concretos.
si está activado "Use merged color" el color resultante de la mezcla de dos colores que estan en capas diferentes se quedará en la capa que está por encima.

Si esta desactivado, no habra color resultante o intermedio, sino que el color de arriba se fundira con la misma capa, quedando una fusión más seca.pero más limpia, pues cada color quedaría separado por su capa.

 

11. Delay (Retraso)

Relentiza el comienzo de la pincelada.. Por el momento lo dejamos sin más.


Una vez explicados todos los parámetros conviene tener en cuenta unos últimos consejos

Color Picker
Cuando sampleamos colores de una imagen, es posible que la herramienta "gotero" esté configurada para coger el color solo de la capa activa, tendremos que buscar la opción "muestra combinada" y activarla.



podemos salvar las opciones de herramientas dentro de las preferencias yendo a Edit/preferences y así guardamos el estado de las herramientas.


Resumen general.
Incremental = on (perdemos la opción de poder controlar el flow pero por defecto tiene que estar a 1.)
Use texture = on si queremos tener textura producida por un pattern en la pincelada)
Grain (poco para que se vea la textura en la pincelada, y valores altos para disminuir el efecto de textura.)
Alpha channel mixing = on
Main color/ paint with pigment = off
Pick up / "Use merged color = on
Hidden color = normal.

Nota: Con esta configuración no podremos usar los modos de color como “superponer” o “luz suave” etc... SOLO funciona en normal.

Palabras finales

Pues esto es todo por ahora. Espero que os sirva de ayuda a todos los que usáis gimp-painter y le podáis sacar buen provecho. Si encontrais algo que no sea correcto o quereis ampliar alguna sección podeis contactarme por mail o vía comentariosy así ir actualizando el documento y tener una mejor comprensión de la herramienta mixbrush.
Si os gustó, podéis comentar y suscribiros a mi canal youtube. Estaré encantado de recibir vuestras sugerencias.


Un abrazo y cuídense..

The community is a so good source of knowledge...
Now the tutorial english translation is pendent to be online.

Can I help you? do you help me?
If you are interested to translate this tutorial into another language, please contact me. 
The tutorial is made ​​for that purpose, and would appreciate any help in this regard.

English  (pendent)









Jan 06, 2012

Gorka Urrutia

Gorka Urrutia
Nideaderedes feed

jQuery: añadir una línea a una tabla html

Vamos a ver con un sencillo ejemplo cómo añadir una nueva línea a una tabla. En primer lugar es importante que la tabla tenga el elemento TBODY como en este ejemplo:

<table id="tabla">
    <tbody>
        <tr id="primera">
            <td>Primera fila</td>
        </tr>
        <tr id="segunda">
            <td>Segunda fila</td>
        </tr>
    </tbody>
</table>

Para añadir una fila a la tabla basta con hacer:

$('#tabla > tbody:last').append('<tr id="ultima"><td>Ultima fila</td></tr>');

Es posible que lo que queramos hacer sea añadir una nueva línea en un lugar concreto. Supongamos que queremos insertar una fila después de la primera:

$("#primera" ).closest( "tr" ).after("<tr id="insertada"><td>Fila insertada</td></tr>);

Jan 02, 2012

FORAT: DaboBlog Podcast, especial fin de año 2011

Dec 29, 2011

gbrainy 2.1.0

Here we have gbrainy 2.1.0, a major release. gbrainy is a game that challenges your logic, verbal, calculation and memory abilities.

 

 

What's new in version 2.1.0 

  • Software improvements
    • Refactoring to break down responsibilities in classes and make code more modular
    • Automated “Assembly / package versioning”
  • Existing games improvements
    • Mouse support for Memorize figures and text
    • Show graphically the answer in square sheets puzzle
    • Add rationale to handshake puzzle
    • People at the table has a better graphic
    • Some controls in games handle better larger texts
  • Translations
    • Telugu translation
    • Many updated translations

Downwload

* http://gent.softcatala.org/jmas/gbrainy/gbrainy-2.1.0.tar.gz
    (md5sum 8190a5e39adbb0a4fc8d2e0b5b1bc5c9)

Additionally, gbrainy is available for all major Linux distributions.

On-line version

gbrainy is also available on-line. All games except memory games are available. This is far from ideal in terms of usability but is still a work in progress and I hope to make more progress during the summer.

Help Wanted!

You can contribute to gbrainy in many ways, but actually I'm specially looking forward help on these areas:

  • If you are a native English speaker and you see any English sentence that has broken grammar or it is difficult to understand please let me know
  • If you are playing the game and you see a bug in any of the games please also let me know

Report any issue by fill up a bug in gbrainy bug tracking, sending a message to the gbrainy public group or just dropping me a quick message (jmas at softcatala dot org). Your help is really appreciated.

Thanks

Finally I want to say thanks a lot to all the people that has participated in this release: translators, people reporting bugs, giving feedback, etc. You contribution has been key as usual!

Dec 27, 2011

Pedro L. Lucas

Pedro L. Lucas
Cartas de Linux feed

Desinstala un paquete y todas sus dependencias en Fedora o Mandriva

Alguna vez, hemos tenido que instalar un paquete en nuestro Linux. Con lo cual se instalan todas las dependencias de dicho paquete. Al desinstalar, muchas veces, no se desinstalan todas los paquetes que se tuvieron que instalar. Debido a esto el sistema queda con muchos paquetes inútiles que una vez se instalaron para cumplir alguna dependencia.

Hace algún tiempo, cuando usaba Mandriva, escribí un pequeño script que permite buscar los paquetes que se deberían desinstalar, si se desinstalara una determinada aplicación. También permite buscar los paquetes de los que nadie depende, los cuales son candidatos a haber sido instalados por necesidades de dependencias y ahora pueden que ya no sean necesarios.

El script se puede descargar desde este enlace. Funciona para Fedora, Mandriva, Mageia y aquellas distribuciones basadas en rpm.

¿Cómo funciona este script?

Una vez descargado, en un terminal se debe escribir:

python paquete.py

Y mostrará una ayuda de cómo usar el comando.

Con:

python paquete.py   -a

Mostralá una lista de todos los paquetes instalados en el sistema. De aquí hemos de copiar el nombre de la aplicación de la que se deseen conocer los paquetes que se podrían desinstalar. Para saber la lista de estos paquetes habría que ejecutar:

python paquete.py nombre-del-paquete

Habrá que tener algo de paciencia para que nos informe de lo que se puede desinstalar sin problemas al desintalar la aplicación que ya no deseamos en nuestro sistema.

Con la opción:

python paquete.py   -h

Muestra la lista de todos los paquetes que de los que no dependen otros.

Actualmente las distribuciones tienen mecanismos para buscar estos paquetes. He comprobado que a veces estos mecanismos no son lo suficientemente eficaces, por lo que este script puede ser de ayuda a la hora de limpiar nuestro sistema (aunque tarde un poco en realizar las búsquedas).


Dec 25, 2011

Luis Vilchez

Luis Vilchez
El blog de Jabba feed

El blog de Jabba en Planeta Linux

Es un placer anunciar que El blog de Jabba es desde hoy una de las fuentes consultadas por Planeta Linux, un portal de reunión de blogs de habla hispana en el que predomina el común interés por Linux y el software libre.

Esto significa que todos los artículos que publique con la etiqueta "GNU Linux" aquí en el blog, irán a parar también, a través del feed independiente de esa categoría, a la portada de Planeta Linux España.

Estoy encantado de formar parte de esta comunidad y me gustaría empezar dando la bienvenida a todos los que a partir de ahora me leáis a través de Planeta Linux así como al resto de bloggers que contribuyen aportando contenidos al portal.

Larga vida al software libre.

Dec 23, 2011

Alejandro Castilla Quesada

Alejandro Castilla Quesada
El blog de alejandrocq feed

¡Feliz Navidad!

navidad 2011

Ha pasado bastante tiempo. Este blog ya tiene un año y unos cuantos meses, y sin duda ha sido en el que más éxito he tenido desde que cree mi primer blog. Son pocas entradas, pero siempre trato de poner el mayor empeño en ellas, como en la Guía de post-instalación de Arch Linux. Espero seguir así durante el 2012, este ha sido un buen año para mí y seguro que para vosotros también, y 2012 será aún mejor :) .

¡Felices fiestas!


Filed under: Blog Tagged: 2011, 2012, Navidad

Dec 22, 2011

Ivaylo Kuzev

Ivaylo Kuzev
feed

Monsterwm

Monsterwm- windows manager que se trate de mantenerse lo más pequeño posible,actualmente menos de 700 líneas con el archivo de configuración incluido. Pagina Web- https://github.com/c00kiemon5ter/monsterwm Archlinux- https://aur.archlinux.org/packages.php?ID=55090 Forum- https://bbs.archlinux.org/viewtopic.php?id=132122