12.2.09

En defensa de los derechos de los ciudadanos en Internet

Ante la inclusión en el Anteproyecto de Ley de Economía Sostenible de modificaciones legislativas que afectan al libre ejercicio de las libertades de expresión, información y el derecho de acceso a la cultura a través de Internet, los periodistas, bloggers, usuarios, profesionales y creadores de internet manifestamos nuestra firme oposición al proyecto, y declaramos que…

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

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

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

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

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

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

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

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

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

10.- En democracia las leyes y sus modificaciones deben aprobarse tras el oportuno debate público y habiendo consultado previamente a todas las partes implicadas. No es de recibo que se realicen cambios legislativos que afectan a derechos fundamentales en una ley no orgánica y que versa sobre otra materia.

11.11.09

Google’s “go” simple & stupid benchmark (1st round: I/O)

Systems programming language? They gotta be kiddin…

$ cat hello.cpp && g++ hello.cpp &&
> time for i in $(seq 100); do ./a.out >/dev/null; done

#include <stdio.h>
int main (int argc, char** argv)
{
    for (int i=10000;i--;)
    {
        printf("hello, world\n");
    }
}

real 0m0.427s
user 0m0.220s
sys 0m0.164s

$ cat hello.py &&
> time for i in $(seq 100); do python hello.py >/dev/null; done

for i in range(1,10001):
    print "hello, world"

real 0m3.809s
user 0m2.800s
sys 0m0.724s

$ cat hello.go && 8g hello.go && 8l hello.8 &&
> time for i in $(seq 100); do ./8.out >/dev/null; done

package main
import "fmt"
func main()
{
    for i:=10000;i>0;i--
    {
        fmt.Printf("hello, world\n")
    }
}

real 0m7.528s
user 0m6.388s
sys 0m0.664s

Continued in Round 2: memspeed

02.24.09

Bash 4.0 on the loose!

Parece que hay una nueva version del omnipresente y monopólico shell default en casi cualquier distribución GNU/Linux:

Bourne-again Shell

El changelog de la nueva 4.0 no parece sugerir grandes cambios a primera vista, sino más bien pequeños tweaks por aki y por allá, pero son bienvenidos de todas formas. Al fin y al cabo, existen mil y una shells alternativas en caso de que no nos mole mucho la forma a veces warra de implementar funcionalidades en bash ;-)

Happy bashacking!

01.20.09

Consistent Desktop UI proposal

I’ve always been a bit particular with my desktop preferences. After using WindowMaker, Gnome+Sawfish, Ion2, WMII, Kde+Kwin, Gnome+Metacity, Compiz Fusion+AWN and testing out some more, I’ve yet to see one that fully addresses my needs.

One of my main complaints is the waste of screen real estate. Both window managers and applications themselves are at fault for this. The influence of Windows UI style in panels and windows has prevented most designers from getting the most out of the users’ screens. Ion2 is the window manager i’m currently most happy with, but it’s still not perfect if applications don’t properly cooperate, which is only possible if they follow some sort of guidelines (such as those discussed and published by the FreeDesktop project).

This blog post shows a suggestion that could, IMHO, improve the desktop experience, although maybe at the cost of reduced usability for computer illiterates.

As an introduction, here’s a quickly gimped draft of the idea I had some months ago:

simple UI draft

The increase in usable space is obvious (well, at least to power users). The famous and ancient “title bar” is gone. We already have the window title in the so-called task bar, so why repeat it again using a whole horizontal bar for it? And what’s with the habit of dedicating another whole bar for 5 tiny application menues? Furthermore, the old status bar can be set to automatically hide for additional real estate (with a behaviour similar to that of Google browser Chrome).

Most interactive widgets have been moved to the top of screen (but they might as well have been placed on the bottom or aside). Personally, I see no reason for spreading buttons all over the screen, other than following the current desktop environment trends. Having them all close together greatly reduces the need to move the mouse.

Keep in mind that the tabs depicted in that draft are not supposed to be fullscreen-only, but have a mixed TDI & MDI behaviour (similar to Opera but, instead, leaving the management of those document windows to… well, the window manager :roll: ).

But it doesn’t stop there. While we’re at it, why not merge the ideas behind desktops and apps? Here’s the natural evolution of the original idea:

evolved draft

There, the concept of virtual desktops is applied as a way to organize tabs (instead of using yet more windows for the same application instance).

The key is what I’ve just decided to name generic-bar. This bar contains an “app” icon (gnome icon, firefox icon, favicon…), abstracted pager, “tabs” and applets (menues, buttons, traditional applets…) in any desired number and order. For example, in the last draft there are two generic bars: the first one contains “applications”, while the second one contains what we currently know as “tabs”. In essence, both applications and tabs would be handled the same way by the proposed desktop environment. Furthermore, this hypothetical desktop environment could handle generic-bar nesting of any depth.

The good thing is that this desktop proposal does not remove any functionality currently found on most desktop environment UIs, but actually adds more while freeing up even more space for your valuable applications to use.

10.29.08

Cómo “arreglar” Ubuntu

Soy de los que opinan que Ubuntu por defecto apesta un buen rato (y cuando digo Ubuntu, también quiero decir Kubuntu, Xubuntu, Edubuntu…). Le salva que es facilísima de instalar. Con este minitutorial espero conseguir que Ubuntu sea usable para alguien más que Joe Sixpack.

Supongo que la mayoría de pegas que tengo son respecto a la filosofía de Ubuntu, pero como es mucho más facil quejarse y escribir en blogs que hacer mi propio fork de Ubuntu, prosigo con mis pataleos. :-D

Lo primero, no sé para qué diablos deshabilitan la cuenta de root, si cualquiera puede hacer un sudo -s o un sudo bash. Por tanto, vamos a ahorrarnos teclear chorradas redundantes, que con el su de toda la vida vale y sobra:

sudo passwd

Por supuesto, nos metemos como root para los siguientes pasos. Hay dos formas:

su    #para la gente normal

su -c bash   #para la gente acostumbrada a sudo

Lo siguiente, no sé a quién se le ocurrió que para tener permisos de administrador, vale con saberte tu propia clave. Así que vamos a evitar que cualquier luser con una cuenta en el sistema pueda ganar permisos de root:

perl -pi -e ’s/env_reset/env_reset, rootpw/g’ /etc/sudoers

Otra tema que me enerva bastante es ese asqueroso feto de engendro abortado llamado vim-tiny. No podían poner vi, qué va. Tenian que coger vim, partirle las piernas, extirparle el lóbulo frontal, y ponerle de nombre vim-tiny. Y al vim normal, ya puestos a liarla, le renombramos como vim-full, qué leches…
Después diran que la gestión de paquetes de Gentoo y de BSD son un coñazo, pero por lo menos no necesitamos recurrir a semejantes warrohacks para bastardizar un simple paquete!

apt-get remove vim-tiny

apt-get install vim-full

perl -pi -e ’s/”syntax on/syntax on/g’ /etc/vim/vimrc   #démosle un poco de color a las tareas de sysadmin, en honor al difunto Tiny

SSH, absolutamente imprescindible, pero capándolo a solo quien lo necesite.

apt-get install ssh

usuarios=”root hombreman lusuario”

addgroup sshlogin

for i in $usuarios; do adduser “$i” sshlogin; done

echo “AllowGroups sshlogin” >> /etc/ssh/sshd_config

Lógicamente, esta gentucilla debería tener una política de contraseñas mínimamente digna:

for i in $usuarios; do chage -m 50 -M 60 -W 10 “$i”; done

También queda el tema de que cualquier usuario puede apagar el ordenador cuando quiera, incluso si otro luser tiene abierto un openoffice sin guardar en su sesión.

El equipo donde he metido Ubuntu ha quedado un poco más severo, pudiendo solamente el usuario root reiniciar/apagar/hibernar/suspender el equipo. Por desgracia, debido a las sabias decisiones del equipo de Gnome, uno se ve obligado a elegir entre:

a) Hacer clicks en noséqué clon de regedit.exe.

b) Editar archivos XML a pelo.

c) Dar palos de ciego con gconf-tool desde consola.

Por supuesto, si estais en remoto (como yo), existe otra opción igualmente agradable:

d) Averiguar uno mismo si es solamente una leyenda urbana, o si realmente el ser humano es capaz de meterse su propia cabeza por el weeeeno, como ibamos diciendo, que se puede configurar con algo de paciencia.

Nuestra Ubuntu ya pinta un poco mejor, no os parece?


Esto es otra cosa. 8-)

Otro día más y mejor!

P.S.: Antes de que se enciendan las llamas, comentar unos pares de cosas:
- Respeto la libertad de cada uno de tener su propia opinión sobre el software mencionado.
- De hecho, estoy seguro de que a alguien le puede gustar semejantes fustañas como Gnome y Gconf.
- Odio casi por igual a Gnome y a KDE.
- La mayor parte de este post la he escrito de coña, incluído este comentario, pero podéis flamearme igualmente ;-)