26 agosto 2012

La innovación de Apple

Desde MundoGeek, Barrapunto, Enrique Dans, Menéame, e incluso los propios informativos de ayer, sábado, he recibido la noticia de que un jurado de California ha condenado a Samsung a pagar unos $1000 millones por infringir patentes de Apple.

Leyendo los comentarios de algunas de esas páginas, veo como se tacha a Samsung de copiar descaradamente a Apple; eso seria como acusar a Apple de fusilarse el concepto de interfaz gráfica del Xerox Alto... ¡espera, si es lo que hicieron! En cualquier caso, acusarles de ello, a mi parecer, seria como acusar a la misma Samsung de que hace televisores con menú de opciones, o a Canon por hacer impresoras con bandeja de papel, o como si Opera denunciase a Google por hacer el navegador Chrome con pestañas.

Me parece grave que se demanden a empresas u organizaciones por crear productos o soluciones que ofrecen los mismos resultados o efectos, aunque la tecnología subyacente sea distinta. Es como si los arquitectos se denunciasen por hacer casas con forma cuadrada, aunque por dentro las estancias estén distribuidas de forma distinta y hechas con materiales distintos; o como si Nintendo denunciase a Sony por copiar con su PlayStation Move el mando de la Wii y su manera de interactuar con la consola. Para mí no tiene ni pies ni cabeza.

Ahora bien, esto no me enervaría tanto si Apple fuese coherente con su acusación, pero no es así. Vamos a ver algunas de las famosas innovaciones de Apple:

Esto sólo ha sido un pequeño repaso de las cosas que se les ha atribuido a la compañía de la serpiente; podéis encontrar otro pequeño repaso en la entrada de MundoGeek: 5 cosas que Apple no ha inventado.

Actualización 27/08/2012: Leyendo el siguiente artículo del blog de Enrique Dans, El valor de la innovación no está en evitar que te copien, sino en conseguir que todos te quieran copiar, no puedo más que decir que suscribo completamente esas palabras. Además, leyendo los comentarios, me encuentro con uno de Juan de lo más interesante:

Muy buen artículo Enrique, pero desde hace tiempo, gracias a ti, entendí la importancia de compartir contenidos y tú famosa frase: “Mientras más te copien, mejor.”

Hoy he leído la experiencia de un usuario y quería compartirla contigo y con todos los lectores. Antes de leerla, quiero decir que este texto es una traducción de la experiencia de una persona, a continuación la historia:


Estoy sentado en un Starbucks haciendo cosas con mi helado. Mientras esperaba mi copa, vi a un hombre con su amigo leer un periódico, y empezaron a hablar sobre el veredicto de Samsung y Apple.

Hombre: “Espera, ¿entonces lo que están diciendo es que Samsung es lo mismo que Apple?”
Amigo: “Lo sé, me hace pensar cuánto he pagado por mi MacBook”
Hombre: “En serio”

Ni 10 minutos más tarde, otro hombre y su esposa, leen el mismo periódico:

Esposo: “… el iPad de Samsung es el mismo que el iPad de Apple, ¿y he pagado más cantidad por el de Apple? Cariño, te dije que eran un timo”, dijo después de mirar la tableta de Samsung en su iPhone.
Esposa: “Oh wow,” mirando a la pantalla. “Eso es mucho más barato, ¿crees que lo podríamos devolver?”

Puse mi Portátil Samsung QX410 en mi mesa, y al encenderse, se inclina hacia mí el hombre diciendo: “Disculpa, no te importa si te pregunto, ¿cuánto pagaste por tu portátil de Samsung?”

“Oh, no se preocupe, fueron unos 700 $.” Le respondí.

Vi el choque en su rostro, como una descarga eléctrica. Él me miró, en blanco, durante un buen tiempo de forma incómoda “¿Te importa si echo un vistazo?” , me preguntó.

Así pues, obligado, le mostré un par de cosas mientras conversábamos… En el momento en que la conversación terminó, el hombre parecía estar dispuesto a darle una patada a Cupertino en las bolas, creo.

… Ahora, el remate:

Estoy escribiendo este post después de que el 4º grupo de clientes del Starbucks hayan relacionado que Samsung es ahora lo mismo que Apple. No conocen los detalles, no les importan, lo que saben es que Apple está diciendo que Samsung es lo mismo que Apple … y con una simple búsqueda en Google, obtienen precios que son básicamente la mitad de lo que parece ser el mismo producto – para casi todo.

Dos de estos grupos me preguntaron acerca de mi laptop de Samsung, el segundo grupo se dio cuenta de que tenía un Galaxy (también de Samsung) … Son los mil millones de dólares mejor invertidos de campaña de publicidad que ha tenido Samsung.

Fuente | https://plus.google.com/u/0/114476892281222708332/posts/246srfbqg6G

Un saludo,
Morpheus

03 abril 2012

Reflexionando sobre la introversión

Hoy, repasando el lector de noticias, doy con este interesante post de Loretahur, en el que habla sobre como, poco a poco, y en parte gracias a la red, cada vez prestamos menos tiempo a nuestros pensamientos y nos dedicamos menos momentos de soledad. Ello me ha hecho reflexionar.

No creo tener miedo a pensar en sí mismo, o al menos eso creo. Lo que sí que me preocupa es pensar en multitud de proyectos, ideas o pensamientos que quiero compartir y que luego no tengo tiempo de hacerlo, bien por pereza, falta de tiempo o desgana.

Y pienso, ¿porqué desgana? Creo que es por infravalorarme, o bien porque lo poco que consigo llevar adelante no es tan reconocido o valorado como esperaba.

Quizás sea una actitud infantil o incluso egoísta, pero no puedo evitar pensar a veces cosas como ¿para qué hacerlo, si luego no lo voy a acabar, o no lo va a apreciar nadie o se va a quedar en un rincón?.

Imagino que es por estos motivos, entre otros, por los que a veces prefiero pasar el rato haciendo algo que me tenga la cabeza ocupada y que me haga pasármelo bien.

En cuanto al vídeo, la verdad es que no sé como calificarme; desde luego, tengo claro que no soy una persona extrovertida, o al menos no me considero así actualmente; pero tampoco creo que sea una persona introvertida como expone Susan Cain en el vídeo; queda descartado también la posibilidad de que sea ambivertido. Creo que lo que más se acerca a describirme es ligeramente introvertido, aunque quizás eso deban valorarlo más quienes me conocen.

El vídeo que os comento, muy interesante, por cierto, es el siguiente:

Dejando de lado mis reflexiones, estoy de acuerdo en que la mejor manera para que fluyan las ideas es en soledad y en calma, y que eso, hoy en día, es cada vez más difícil.

Un saludo,
Morpheus

02 abril 2012

Programando tareas en Lignux con at, batch, cron y anacron

Si queremos programar tareas en Lignux, contamos con diversas herramientas que permiten automatizarlas. Podemos dividirlas en estas categorías: herramientas para ejecutar tareas regularmente, en un momento concreto o cuando el sistema tenga un nivel de carga bajo.

Para ejecutar tareas en un momento concreto, contamos con el comando at; para ejecutarlas cuando nos encontramos con un nivel de carga bajo, podemos utilizar también at o batch, siendo ambos comandos del mismo paquete; y para ejecutarlas de forma regular, utilizaremos cron. Los tres comandos se instalarán, al menos en Debian, si instaláis el paquete lsb-core.

Programando tareas con at

Para programar tareas ejecutaremos el comando at con una fecha del estilo HH:MM [DD.MM.AAAA] [ + desfase], donde el desfase puede ser un número y una unidad (minute, hour, day, week, month, year); los [ ] indican que el parámetro es opcional. También podemos usar horas con formato HH AM/PM.

Tras ejecutar el comando, se nos mostrará un prompt donde podremos introducir los comandos; para finalizar, pulsamos Ctrl+D. También es posible almacenar los comandos a ejecutar, separados por saltos de línea, en un fichero de texto y pasárselo al at con la opción -f archivo.

También es posible añadir los tareas a colas de prioridades con la opción -q letra, donde la letra puede ser una letra de la a a la z, mayúscula o minúscula; nos centraremos en la minúsculas. Con las letras minúsculas podemos establecer la prioridad (nice) que tendrá el proceso cuando se ejecute. Así, los procesos en la cola a (por defecto), se ejecutarán con un valor nice 2, mientras que los de la cola b, c, d... se ejecutarán con un valor nice de 4, 6, 8, etc. respectivamente, obteniendo una prioridad inferior. Cabe decir que la cola b es una cola especial de batch que explicaremos más adelante.

Finalmente, podemos gestionar las tareas con los siguientes comandos:

$ at -l # lista las tareas programadas, cuando se ejecutarán y en qué cola están
$ at -c id # muestra los comandos a ejecutar por la tarea con identificador id
$ at -r id # elimina la tarea con identificador id

Programando tareas con batch

Utilizaremos batch cuando queramos programar tareas para cuando el sistema se encuentre con un bajo nivel de carga. Funciona de la misma forma que at: ejecutamos batch y nos aparecerá un prompt donde podemos escribir los comandos a ejecutar. A diferencia de at, batch no acepta ninguna opción ni flag.

Gestionaremos las tareas programadas con los mismos comandos que hemos visto con at.

También es posible programar tareas en modo batch con at utilizando la cola b o las colas con letra mayúscula; de esta forma, las tareas encoladas en la cola A se ejecutarán a partir del momento que hayamos especificado con un valor nice 2, siguiendo el mismo mecanismo que hemos explicado antes.

Programando tareas con cron

Con cron podemos programar tareas que se tienen que ejecutar de forma periódica.

Dado que por defecto cron viene configurado para que sólo pueda ser ejecutado por el usuario root, debemos editar, o crear si fuese necesario, el archivo /etc/cron.allow y añadir los usuarios, uno por línea, que queremos que puedan programar tareas con cron.

Una vez habilitado el uso de cron, podemos editar las tareas a programar con el comando crontab -e que abrirá un editor en el que os mostrará información y una de sus últimos comentarios será así:

# m h  dom mon dow   command

Esta es una guía de cómo debemos introducir los parámetros que definen cuando se tiene que ejecutar un comando: la m y la h es el minuto y la hora en que se ejecutará el comando; un * indica en cualquier minuto u hora. Dom significa day of month, es decir, que día del mes se ejecutará el comando, del 1 al 31; mon se refiere a month, el mes, del 1 al 12; dow significa day of week, qué día de la semana se ejecutará, del 1 al 7; finalmente, command es el comando que se ejecutará. En cualquiera de los parámetros, exceptuando el parámetro de comando, soporta el asterisco (*), que viene a decir que es indiferente; sin embargo, podemos escribir */10, que si lo ponemos en el campo de minutos, significará que el comando se tiene que ejecutar cada 10 minutos. También podemos hacer una lista de números separados por comas (10, 20, 30, etc.), o un intervalo (1-5 en dow significaría de lunes a viernes).

Una vez acabada la edición, guardamos y salimos de crontab; a partir de este momento el comando se ejecutará siempre que la fecha y la hora coincida con la establecida.

Programando tareas con anacron

No lo he mencionado anteriormente, pues no es instala por defecto con el paquete lsb-core, además de tener una finalidad un tanto peculiar: anacron se utiliza para programar tareas que se tienen que ejecutar a partir de cierto periodo de tiempo, pero durante ese periodo de tiempo nuestro sistema no tiene porqué estar encendido. Por ejemplo, si yo quiero realizar una copia de seguridad como máximo cada 7 días, pero no puedo asegurar que mi PC esté siempre encendido a una hora concreta, no podría programarlo con cron, sino que debería hacerlo con anacron.

De esta manera, cada vez que ejecutemos anacron, comprobará la última ejecución de la tarea, y si es superior a los días indicados, volverá a ejecutarla.

Si queremos instalar anacron, ejecutaremos como root:

# aptitude install anacron

Por defecto, anacron sólo es ejecutado por el usuario root, y no tiene un sistema similar al de cron, que nos permita autorizar la ejecución periódica, entre otras cosas porque anacron no es un demonio que se mantenga comprobando el estado de las tareas, sino que se ejecuta al inicio del sistema o una vez al día mediante cron.

Sin embargo, es posible indicarle a anacron una configuración de usuario y un directorio donde almacenará la información sobre las tareas ejecutadas:

/usr/sbin/anacron -t anacrontab -S directorio

Tenemos que tener en cuenta que si ejecutamos anacron de esta manera, deberemos ejecutarlo de forma manual o bien programando una tarea con cron cada pocas horas o bien como una tarea al inicio de sesión con, por ejemplo, gnome-session-properties; o bien editar como usuario root el archivo /etc/anacrontab.

Veamos ahora cómo se estructura un archivo de configuración de anacron, conocido como anacrontab, en un comentario:

# period  delay  job-identifier  command

Como se puede ver, el primer elemento es el periodo, en días, en el cual queremos que se repita la tarea; el periodo puede ser también la palabra @monthly, que hará que se ejecute una vez al mes, independientemente de los días que tenga ese mes. El delay indica el timepo de espera en minutos que tardará en ejecutarse la tarea; esto se usa para no ejecutar de golpe todos las tareas o para dar tiempo a que el sistema acabe de iniciarse. El job-identifier es una palabra que identifica la tarea de forma única, como podria ser mantenimiento.diario; anacron utiliza este identificador para gestionar la información que guarda en el directorio especificado por la opción -S, o /var/spool/anacron por defecto. Finalmente, el último parámetro es el comando a ejecutar.

Sobre la ejecución de los comandos

En todos los casos mencionados, se ejecutará como intérprete el shell en /bin/sh (se puede reasignar utilizando la variable SHELL) y puede que las variables de entorno no estén asignadas (en el caso de cron debes establecer la variable PATH si quieres asegurarte de que no tendrás problemas); se pueden utilizar scripts y se pueden asignar variables en los comandos introducidos en at y batch, de la misma forma que haríamos si escribiésemos un script, o bien en el mismo archivo de configuración con cron y anacron.

Un saludo,
Morpheus

06 febrero 2012

Generador de Mapas de Mazmorras

Repasando el grupo de rol en identi.ca, veo un dent con un enlace a Dave's mapper, generador de mapas de mazmorras.

Un saludo,
Morpheus

GIMP: Como crear la silueta de un mapa

Hace algún tiempo me puse a trabajar en una nueva partida de rol; quería generar para ella un mapa de una región de la ambientación que pareciese real, en lo que a la silueta de este se refiere. Para ello, traté de encontrar algún tutorial que me permitiese generarlo en GIMP de una manera más o menos sencilla; sin embargo, no conseguí encontrar nada parecido a lo que estaba buscando, más que este tutorial, pero que seguía sin ser lo que yo buscaba.

Así pues, basándome en el tutorial encontrado, traté de generar un mapa utilizando el GIMP, y creo que he encontrado una manera bastante aceptable de generar la silueta de un mapa, además de ser bastante sencilla. Os la explico a continuación:

  1. Abrimos un archivo nuevo en GIMP utilizando una resolución lo suficientemente alta, pues lo que generemos seguramente sea mucho más pequeño de lo que sea el lienzo.

  2. Llenamos el lienzo con Filtros/Renderizado/Ruido Sólido.

    Los parámetros que pondremos serán en función de lo que deseemos:

    • Detalle: Mientras más grande sea, más escarpada será la silueta que obtendremos.
    • Tamaño X/Y: Lo estableceremos en función de si queremos contar con más islas pequeñas o más islas/continentes grandes.
    • Semilla: Sirve para generar el ruido. Podemos ir generando semillas hasta que encontremos una que nos agrade.
  3. Utilizamos la herramienta Umbral (Herramientas/Herramientas de color/Umbral) para generar las partes o las islas que compondrán el mapa.

  4. Eliminamos el color de fondo (en mi caso, blanco), convirtiéndolo en transparente con la herramienta Colores/Color a Alfa.

  5. Recortamos las siluetas que nos gusten.

  6. Las escalamos, rotamos y superponemos como nosotros queramos para generar las islas o continentes.

  7. Repetimos tantas veces como queramos los pasos del 2 al 6 en distintas capas para generar el mapa que más nos guste.

De esta forma, te quedará algo así, que podrás utilizar para rellenar con los elementos que más te gusten (montañas, árboles, ríos, etc.).

Para rellenar los mapas puedes utilizar los pinceles para GIMP overland map brushes y Tolkien-Style Map Brushes o bien el conjunto de SVG rpg map.

Finalmente, os adjunto el archivo XFC del mapa que hemos creado en este tutorial.

Un saludo,
Morpheus

01 febrero 2012

Establecer distribución de teclado por consola

Si queréis cambiar la distribución de vuestro teclado por consola hay dos formas.

La primera es con una terminal que corre sobre el servidor gráfico, es decir, sobre las X con gnome-terminal, xterm, konsole, etc.:

setxkbmap cc

cc es el código del país, en mi caso, es para el teclado en español.

Para cambiarlo sin X, es decir, en una terminal virtual como tty1 (Ctrl+Alt+F1):

loadkeys es

En este caso, he puesto directamente es, pero podria ser el código de otro pais, como us para el teclado americano. Cabe decir que este comando se tiene que ejecutar con permisos de administrador o root.

Podéis ver los códigos de distribución de teclado disponibles para setxkbmap en los directorios bajo /usr/share/X11/xkb/keymap/ y para loadkeys en /usr/share/kbd/keymaps.

Un saludo,
Morpheus

10 enero 2012

Wizards prepara una nueva edición de D&D

Leo en Barrapunto que Wizards ha comenzado a desarrollar la siguiente edición de Dungeons&Dragons, que será la quinta.

Sobre la anterior edición, la cuarta, tengo que decir que no ha sido una edición que me hay gustado mucho, mientras que para algunos compañeros de juego sí que lo ha hecho. Por otra parte, también he oído tildar a la cuarta edición de D&D como la versión Vista de Dungeons.

¿Cuál es vuestra opinión sobre D&D4? ¿Creéis que han empezado demasiado pronto a desarrollar una nueva edición? ¿Es posible que hayan empezado tan pronto debido a algunas críticas o simplemente el ciclo de vida de la 4ª Ed. ya haya llegado a su fin? ¿Creéis que esta nueva edición superará a la anterior?

Por mi parte, espero que esta nueva edición vuelva un poco a las opciones que proporcionaba tercera edición, mi preferida y sobre la cual opino que es una evolución más que aceptable respecto a segunda, en cuanto a clases de prestigio, que ahora están un tanto restringidas en el ámbito de tu clase inicial (senda de parangón, destino épico). También espero que den una marcha atrás en lo que creo que ha sido una simplificación un tanto extrema.

Por cierto, si quieres estar atento a las novedades sobre la nueva edición, puedes suscribirte mediante correo electrónico.

Un saludo,
Morpheus

05 enero 2012

Ping usando NetBios y mDNS

Cuando usaba Ubuntu, o Mint basado en Ubuntu, podía administrar mi red local sin tener que preocuparme por si los PCs tenían asignadas direcciones IP estáticas o dinámicas asignadas por DHCP por el router, ya que podía acceder mediante las direcciones nombre.local; este formato es el Fully Qualified Domain Name o FQDN.

Cuando me cambié a Debian, por algún motivo el mismo sistema no funcionaba. Pero hoy, tras leer este enlace que habla sobre Samba (el sistema que implementa en Unix el protocolo utilizado para los grupos de trabajo de Windows), mencionaban una pista que me ha sido de ayuda.

La solución no estaba en utilizar el sistema NetBios (el utilizado por Samba), sino el sistema mDNS, que precisamente es el que utilizaba anteriormente. Sin embargo, he configurado ambos sistemas.

Para usar NetBios y mDNS es necesario instalar los siguientes paquetes:

aptitude install libpam-winbind libnss-winbind libnss-mdns

Actualización 1/06/2012: Parece que ahora, en Debian wheezy, la libnss_wins se encuentra en el paquete libnss-winbind, por tanto, ya no es necesario instalar el paquete libpam-winbind. En caso de que no estéis seguros de en qué paquete pueda estar la biblioteca, podéis instalar el paquete apt-file, que te permite buscar archivos incluso en aquellos paquetes que no tienes instalados.

Una vez instalados estos paquetes, que instalarán las bibliotecas libnss_wins y libnss_mdns, necesarias para poder configurar correctamente el sistema, editaremos el archivo /etc/nsswitch.conf y añadiremos, en orden de preferencia, a la línea hosts: los sistemas wins y mdns que queremos utilizar para resolver los nombres, quedando así:

hosts: files wins mdns dns

De esta forma, el sistema primero buscará en el archivo /etc/hosts, si no lo encuentra utilizará el sistema NetBios, el mDNS y, finalmente, si no lo encuentra recurrirá al servidor DNS configurado.

Con todo ello, podemos hacer ping utilizando el nombre de red del PC:

ping nombre

O bien nombre.local:

ping nombre.local

Un saludo,
Morpheus