Consultorio NSL: Enlazar el Apple Remote

El Apple Remote es esta simpática criatura que viene con cada Mac, y que sirve básicamente como mando a distancia para controlar la reproducción de música y otro montón de cosas:

remote.jpg

Sólo tiene un problema, y es que por defecto, todos los Apple Remote funcionan con todos los Mac, y esto hace las delicias de los bromistas (cuando trabajaba, en la oficina nos hacíamos mobbing del bueno con esto). Por cierto, esto me recuerda que tengo pendiente pasarme con el mando por la sala de Macs de la facultad y sembrar el caos…

El caso es que algunos maqueros que conozco me han preguntado cómo se puede hacer que su equipo sólo responda a su mando a distancia (pretensión bastante lógica por otro lado). Bien, lo que tenemos que hacer es enlazar nuestro Apple Remote con nuestro Mac, para lo cual apuntaremos al ordenador con el mando y presionaremos «siguiente» y «menú» durante un rato, hasta que se oscurezca la pantalla y aparezca algo así:

remote.png

Esto quiere decir que este mando y nuestro equipo han sellado un bello enlace. Como en toda relación puede haber problemas, así que podremos divorciar a nuestro Apple Remote del Mac desde la opción «Seguridad» del panel de control, donde hay un botón tal que así:

eliminar.png

Creo que no hace falta explicar para qué sirve… ¿dudas?

Virtualizando

La virtualización (en concreto la paravirtualizacion) nos permite ejecutar varios sistemas operativos de manera simultánea en una misma máquina. La idea base de esto es crear sobre nuestro ordenador otro virtual, que se comporta igual que una computadora independiente, sobre la que podemos, por ejemplo, instalar un sistema operativo.

Desde luego, se trata de una opción atractiva porque nos permitiría ejecutar cualquier sistema desde otro sistema, siempre que dispongamos de un programa que nos permita crear máquinas virtuales, o dicho de otro modo, ordenadores en nuestro ordenador.

El programa que conozco y utilizo con este propósito es Parallels Desktop, del que poseo la beta 2 y con el que estoy muy satisfecho. He pensado que debía compartirlo porque quizá haya algún maquero pensando en cómo rescatar aquel programa que sólo está disponible para Windows, o bien alguien que tema pasarse a Mac por el cambio de sistema operativo. Con la virtualización no hay excusa…

Bueno, como muestra dejo un par de capturas de mi Mac. La primera presenta, con MacOS X de fondo, un Suse Linux 10.1 y un Windows 2000 funcionando simultáneamente. En total, la máquina soporta tres sistemas al mismo tiempo, y la verdad es que funciona bastante bien y apenas se ralentiza.

virtual1.jpg

Clic en la imagen para ampliarla

Y esta otra muestra el modo coherente sobre MacOS, en el que las ventanas de Windows 2000 se muestran mezcladas con las del sistema «anfitrión»: en este caso, se muestra Matlab en Windows y el Safari. La barra de Windows se coloca sobre el dock.

virtual2.jpg

Clic en la imagen para ampliarla

Creo que se trata de una opción muy interesante para el mundo maquero. Personalmente, no necesito nada que pueda tener en Windows, aunque hay algún programa que sólo funciona sobre este sistema y esto nos permite utilizarlo. Lo que sí que está bien es tener el Linux a mano para no perder los buenos hábitos…

Curso de ética ingenieril (IV)

Esto se está poniendo en modo experto… No se imaginan lo que les espera, pero adelanto que esta entrega está al más alto nivel… Bueno, al lío. Resulta que estaba yo mirando unos apuntes del año pasado, en concreto de Programación Orientada a Objetos, cuando llegué a un apartado dedicado a las clases amigas.

Se trata de un tema algo complicado, así que creo que no es razonable que intente explicar aquí qué son esas clases amigas, sobre todo porque quienes no lo sepan se van a quedar igual y quienes lo sepan se van a tirar de los pelos. De todas formas, si a alguien le interesa el tema, puedo dedicarle una entrada.

Las clases son estructuras de datos en la Programación Orientada a Objetos, y resumiendo a lo bestia, una clase que es amiga de otra es una clase que tiene permisos para leer y modificar sus datos privados, realizando un tipo especial de comunicación entre objetos.

El caso es que en las prácticas nos lo mostraban con un ejemplo en C++ políticamente incorrecto. Lo que sigue es un programa que simula el comportamiento de dos vecinas: Pepi y Juani, y que reproduce cómo intercambian sus cotilleos. Progresismo puro, oiga.

Como poner código en WordPress, además de ser una gran experiencia es un coñazo algo complicado posteo sólo las mejores líneas… He dejado los comentarios originales (los comentarios son fragmentos que ayudan a entender el código y que van precedidos de «//»)

class Pepi{
char cotilleo[100];

[…]

Pepi() {
strncpy(cotilleo, «A Mary Flor la plantó su novio», 100);
}

[…]

Pepi(char *not) {
strncpy(cotilleo, not, 100);
}

friend class Juani; // Juani es una clase amiga de Pepi
};

Pero ojo, que lo mejor llega ahora. Los comentarios de la última sección son para llorar…

void main (void) {
Pepi P1, P3(«La vecina de arriba es rubia de bote»);
Juani J1(«Yo no soy nada cotilla»);

[…]

P3.leer(); // Sale lo de rubia de bote
J1.cambia(P3, «Es que realmente es calva»); // Sale este mensaje
J1.escucha(P3); // Sale lo de rubia de bote ya que P3 se ha pasado por valor: no se modifica
P3.leer(); // Sale lo de rubia de bote
J1.cambia(&P3, «Es porque no tienen pelo»); // Sale este mensaje
J1.escucha(P3); // Sale lo de que no tiene pelo ya que P3 se ha pasado por referencia: se modifica
P3.leer(); // Sale lo de que no tiene pelo
J1.cambiaR(P3, «O porque se le cae muy a menudo»); // Sale este mensaje
J1.escucha(P3); // Sale lo de que se le cae muy a menudo ya que P3 se ha pasado como una referencia: se modifica
P3.leer(); // Sale lo de que se le cae muy a menudo
}

Y no, no me lo he inventado… dejo el código fuente aquí, pero adelanto que no lo he probado, por si explota.

Un concierto inolvidable…

Al fin estoy en casa y puedo descargarme al ordenador las fotos del concierto de Iron Maiden… tengo que decir que todas las hice con el móvil, así que no se ven demasiado bien…

_dsc000311.JPG

No quiero aburrir a nadie con mi crónica del concierto, sólo decir que ha sido lo más alucinante que he visto en mi vida sobre un escenario. Personalmente, me gusta bastante el último disco y me gusta que se atrevan a defenderlo completo en directo, sin dejarse llevar por sus temas más clásicos…

La actuación de Iron Maiden duró algo más de dos horas, en las que interpretaron todo su último trabajo, A Matter Of Life And Death. No estoy seguro de que tocaran todos los temas, pero sí casi todos.

Todos estuvieron fantásticos. Me impresionó especialmente la voz de Bruce Dickinson, que no ha perdido absolutamente nada, y Nicko con la batería, que sigue tocando como si tuviera veinte años. Me encantó que fueran tan perfeccionistas y tan profesionales, realmente lo hicieron de maravilla.

Como broche, nos regalaron 2 Minutes to Midnight, The Evil That Men Do, Hallowed Be Thy Name, Fear Of The Dark y Iron Maiden, con lo que nos fuimos todos a casa sonrientes y felices de la vida. Bien por ellos :-)

En nada volveremos a la temática habitual, tras este paréntesis jevimetalero. Dicho esto, dejo las fotos más decentes que tengo del evento…

Continue reading

Scream for me Barcelona

Anoche tuvo lugar en el Palau Sant Jordi de Barcelona el concierto de Iron Maiden que comentaba el otro día.

Todavía tengo que recuperarme, pero tengo que decir que ha sido el espectáculo más alucinante que he visto en mi vida. Cuando vuelva a casa podré descargar las fotos del móvil y tal vez escriba algunos comentarios con más detalle. Pero ha sido impresionante.

Pienso repetir :-)

¡Iron Maiden!

Mañana miércoles vuelo a Barcelona para ver a Iron Maiden en concierto, presentando su último disco, A Matter Of Life And Death. La verdad es que tengo ganas de escucharles por fin en directo, de modo que si todo va bien, el jueves cumpliré uno de mis sueños (al menos en cuanto a música se refiere).

Tengo un montón de temas apuntados en decenas de papelitos repartidos por mi habitación, pero me falta tiempo para ponerlos por escrito como a mí me gustaría… No sé si seré capaz de escribir algo en todo el fin de semana, pero en todo caso, intentaré comentarles mis impresiones sobre el concierto :-)

¡Up the irons!

Curso de ética ingenieril (III)

(Música clásica de fondo)

Sean bienvenidos, queridos lectores, a esta nueva edición de nuestro Curso de Ética Ingenieril. En esta ocasión vamos a referirnos al libro «Programación en C», editado por el Departamento de Informática y Automática de la Universidad de Salamanca; en cuya página 164 se nos regalan estas líneas:

El resultado serán dos líneas con las dos primeras estrofas de la famosa poesía de Gustavo Adolfo Bécquer:
Con cien cañones por banda,
viento en popa a toda vela…

Se trata de hacer un programa muy sencillo que muestra esas dos líneas en pantalla. Pero si uno lo lee despacio comienza a sufrir un ataque de nervios que puede llevarle a arrancarse los ojos de inmediato.

En primer lugar, lo que muestra el programa no son dos estrofas sino dos versos. En segundo lugar, no son cien cañones sino diez. Con cien cañones por banda, el velero necesitaría propulsión por energía nuclear para surcar los siete mares. Y en tercer lugar, ese poema, llamado «La canción del pirata» no es de Bécquer sino de José de Espronceda.

El Curso de Ética Ingenieril, comprometido con la corrección y el rigor de los textos de informática, recomienda la adopción de la siguiente propuesta:

El resultado serán dos líneas con los dos primeros versos de la famosa poesía «La canción del pirata», de José de Espronceda:
Con diez cañones por banda,
viento en popa a toda vela…

Aunque si queremos rizar el rizo, siempre podemos escribir:

El resultado serán dos líneas con las siete primeras letras del famoso relato de Yola Berrocal:
Con 2 cañones por banda,
viento en popa a toda vela…

Recomendando encarecidamente la adopción de la primera propuesta, nos despedimos hasta la siguiente edición de nuestro Curso de Ética Ingenieril, no sin antes presentar, a modo de desagravio, las dos primeras estrofas de «La canción del pirata»:

Con diez cañones por banda,
viento en popa, a toda vela,
no corta el mar, sino vuela
un velero bergantín.
Bajel pirata que llaman,
por su bravura, El Temido,
en todo mar conocido
del uno al otro confín.

La luna en el mar riela
en la lona gime el viento,
y alza en blando movimiento
olas de plata y azul;
y va el capitán pirata,
cantando alegre en la popa,
Asia a un lado, al otro Europa,
y allá a su frente Istambul.

José de Espronceda

¡Y por fin es viernes!

La horda mongoliana

Vamos muy mal de tiempo. Hay que entregar un proyecto en quince días y el equipo está muy presionado, y es muy posible que el desarrollo no se concluya en el plazo previsto…

Los directivos no quieren correr el riesgo de perder a un cliente importante, e insisten en que el producto quede listo en el plazo previsto. Lo que no saben, o si lo saben no les importa, es que ese plazo era imposible de cumplir desde un primer momento… una vez más, las fechas las fijó un gestor en vez de un informático.

Los jefes se han reunido y han acordado que lo mejor es contratar a más personal para que se integre en el equipo… “si en vez de trabajar cinco personas, trabajan diez, lógicamente el proyecto se terminará en la mitad del tiempo previsto?. El equipo directivo sonríe satisfecho y cinco nuevos trabajadores se incorporan al equipo.

Dos semanas después, se cumple el plazo y el proyecto no está terminado… los directivos, confundidos, piden explicaciones al equipo técnico, que les dice que lejos de hacerles avanzar más rápido, las nuevas incorporaciones les hicieron ir aún más lentos…

¿Qué ha pasado?

Los directivos olvidaron que más personal no implica una mayor velocidad en el desarrollo, y han caído en la trampa conocida en la ingeniería del software como “La horda mongoliana?, que se resumen en “si no da tiempo, contrata a más gente?. Es posible que a primera vista esa forma de pensar parezca lógica, pero cuando uno lo piensa se da cuenta del grave error que supone.

horda.jpg

Imaginemos que tenemos que construir un muro de ladrillo de un metro de alto y disponemos de dos albañiles que tardarán, pongamos, un día en terminarlo. Nadie nos garantiza que 24 albañiles lo construirán en una hora… de hecho es posible que tarden hasta más del día inicial, porque tendrían que coordinarse muy bien para alcanzar cierto rendimiento.

El ejemplo del muro nos desvela uno de los dos fenómenos que intervienen en el problema de la horda mongoliana: más medios son más difíciles de coordinar. El otro fenómeno que concurre es muy interesante, y consiste en que las personas tardamos en rendir al 100% al incorporarnos a un equipo: tenemos que aprender cómo se trabaja en la empresa, ponernos al día de los procedimientos, entender lo que se está desarrollando y en menor medida, necesitamos tomar un poco de relación con nuestros compañeros.

Para evitar caer en estos fallos tan lamentables como frecuentes es necesario escuchar al equipo de desarrollo antes de fijar los plazos de entrega, y dentro de unos límites, llegar a un consenso con los trabajadores. Si la presión es grande, puede ser mejor idea incrementar la jornada de los técnicos y pagarles las horas extra (lo cual a veces no interesa, pero esa es otra historia).

Si no queda más remedio que contratar a personal ajeno, es donde nos ayudará el contar con procesos sistemáticos de ingeniería que nos permitirán que el nuevo equipo se adapte con rapidez al desarrollo existente.

Una de conclusiones descabelladas

Recientemente, y por romper con la tradición, dedicamos un par de artículos (1 y 2) a analizar una parte del panorama actual de la informática. Está claro que nos encontramos ante un escenario decisivo, y este escenario va a influir en gran medida en nuestro futuro inmediato.

Basándome en los delirios de estos dos artículos, he creído conveniente escribir algunas conclusiones que extraigo de todo esto, y que están relacionadas con la previsible evolución del mercado y de las grandes compañías.

Pues bien, a fecha 17 de octubre de 2006, y a las 8:15 de la mañana (esto tiene más mérito), yo predigo que… :-P

Microsoft abandonará progresivamente el desarrollo de sistemas para ordenadores personales convencionales. Así, dentro de unos años Microsoft basará su oferta en sistemas de telefonía, informática móvil, entretenimiento y respuestas empresariales (como hace ahora IBM, por ejemplo). En este marco, asistiremos a la firma de algún convenio de colaboración con empresas de comunicaciones.

Apple y Google firmarán un acuerdo a corto plazo, posiblemente en torno al acceso a contenidos en iTunes Store, o sobre las características de Safari (el navegador de Internet de los Mac). Los rumores lo confirman. La relación entre estas dos empresas se estrecha y nos hace soñar con un idilio…

Google y el software libre se llevarán cada día mejor. No parece del todo descabellado que el buscador termine desarrollando su propio sistema operativo, basado en Linux; pero en cualquier caso puede obtener un enorme beneficio de esta colaboración. Lo mismo pasará con Apple: una de sus mejores decisiones fue basar MacOS X en Unix, gracias a la cual estamos asistiendo a un enorme incremento del software libre diseñado para Mac. Esto beneficia muchísimo a la compañía de la manzanita, por cuanto suple la tradicional carencia de software para sus sistemas.

Todo esto responde a una idea muy clara: progresivamente, quizás de aquí a dos o tres años, las compañías de segunda línea de batalla comenzarán a unirse entre ellas como forma de hacer frente al monopolio de una sola. Cómo se desarrollará la informática en estas circunstancias es un misterio, pero en mi particular bola de cristal se asomaban algunas pistas que he querido compartir con ustedes :-)