¿Tabuladores o espacios?

Es una discusión recurrente sobre si se deben usar tabuladores o espacios para organizar (indentar) el código de los programas.

Personalmente siempre me han gustado más los tabuladores, pero hay ocasiones en que un tabulador (8 espacios) puede resultar excesivo. La mayoría de los editores de texto permiten “redefinir” la anchura del tabulador a, digamos, 4 espacios, pero la opción de que la anchura de la indentación sea variable me gusta menos todavía.

Estaba en estas disquisiciones cuando he encontrado un comentario antiguo en un foro de Java [1] a favor de usar espacios en vez de tabuladores que me parece muy acertado. Lo reproduzco aquí.

[1] https://coderanch.com/t/392682/java/tabs-spaces

Indents are not Tabs and Tabs are not Indents.
Indents in code should be done using spaces. Some style guides say 4, some 2, and I even know some who insist on 3. But the “implementation of an indent” uses some number of the SPACE character (ASCII 0x20 or “\u0020″ or just ” “).
A Tab is a single character (known as “HT” or ASCII 0x09 or “\u0009” or “\t”). Often when that character is displayed, it is rendered as some ammount of blank area. It has traditionally been rendered as the equivalent of 8 SPACE characters. More often, it is rendered as “enough SPACE characters to reach the next column that is a multiple of 8 (or N) spaces”. And sometimes it is some sort of arrow-like character.
Because of the ambiguity in rendering, these Tab characters are worthless for code indention.
However, there is a nice big key labeled “Tab” on your keyboard. It would be a shame to let a nice key like that go to waste, especially since it is easier to type than lots of spaces. For this reason, most code editors interpret your pressing of the Tab key as some sort of “Indent” signal. Good editors will take that tab and convert it into the correct number of initial spaces to make a proper indent.
PS –
Note that a Tab can also be used as a data delimiter (as in something to go between columns of a spreadsheet-to-text output or something.
PPS –
Tab is also a diet drink marketed by the Coca-Cola company. You might risk copyright/patent violations if you release code containing lots of Tab.
US$ 0.02,
Dave

Anuncios

Nuevo manual sobre migración a un nuevo disco copiando los datos a través de la red en Linux/Debian/Ubuntu.

He incluido un nuevo manual sobre una tarea que he hecho estos días: cambiar el antiguo disco de un Netbook por un nuevo disco SSD. Como no tenía un cable adecuando para conectar ambos discos al Netbook, he conectado el nuevo disco al PC de sobremesa y he copiado los datos por la red. He hecho una copia literal a nivel de bloques copiando directamente los archivos de dispositivo (como copiar una imagen).

La guía también trata aspectos generales sobre cómo redimensionar los sistemas de archivos y cómo reinstalar el gestor de arranque GRUB.

Podéis encontrar la guía en la sección de Manuales.

Saludos.

Yoigo, Phonehouse, Simyo y los Smartphones.

Os cuento mis peripecias de este año con la telefonía móvil:

Yo era de Yoigo, y estaba bastante contento (verdad verdadera): tarifas baratas (8 o 12 cent/min), bajo consumo mínimo mensual (6 euros) y conexión a Internet por 1,2 euros/día como máximo cuando me hacía falta.

Entonces se me antoja un smartphone de esos (un Samsung Galaxy S en concreto, y es que yo cuando me antojo…), y veo que Yoigo da este movil a nuevos clientes por unos 100 euros con una tarifa baratita. Llamo a Yoigo pero me dicen que esto es para nuevos clientes, que para los que somos clientes fieles no, aunque llevemos varios de años en Yoigo y aunque nunca hayamos pedido un movil nuevo. Les ofrezco contratar con permanencia la tarifa de datos del 8 (500MB/mes por 8 euros/mes), pero nada.

Así que me cambio a Simyo: tarifa más barata (6 cent/min), más o menos igual consumo mínimo (~7 euros), sin permanencia y ¡sorpresa! 300MB de datos incluidos (ellos dicen “gratis”). 300MB es de sobra para mi consumo mensual en el móvil, así que estoy contento, pero sigo antojado del Galaxy S.

Dos meses después veo que Phone House ofrece el Galaxy S por unos 120 euros con contrato con Yoigo e intento hacer una nueva portabilidad. La portabilidad es rechazada y me echan la bronca: que he usado la picaresca de darme de baja de Yoigo para luego darme de alta y beneficiarme de la oferta. Yo hacía años que agoté mi permanencia con Yoigo, y me di de baja antes de que Phonehouse sacara la oferta, por lo que me siento bastante mal tratado por Yoigo y por Phonehouse.

Entonces empiezo a echar cuentas y calcular cual sería el coste total más bajo durante un periodo de 18 meses (lo que suele durar una permanencia) consiguiendo un Galaxy S y una tarifa de datos básica, con diferentes compañías. Barajo varias opciones:

  • Movistar
  • Vodafone
  • Orange
  • Yoigo
  • Simyo, comprando el móvil de segunda mano por 250 euros

El resultado no es muy sorprendente: lo más barato con diferencia era comprar el móvil de segunda mano y quedarme en Simyo.

Comprando el móvil nuevo libre, no había mucha diferencia entre las opciones, salvo que en algunas compañías este móvil sólo lo ofrecían con las tarifas caras, que no me interesan. Aun así, con Simyo y un móvil nuevo o de segunda mano tienes la ventaja de no tener permanencia.

Finalmente me quedé con Simyo y me compré el Galaxy S por 220 euros, completamente nuevo, sin uso, comprado dos meses antes y con su factura y garantía de la fábrica. Los 300 MB gratis de Simyo me van sobrados para los ratos en que no estoy enganchado a una wifi. Si alguna vez me paso de los 300MB, el coste es 3 euros por cada 100 MB adicionales, lo cual no está mal: 500MB me saldrían más baratos que el bono 8 de Yoigo.

Se podría pensar que hago propaganda de Simyo, pero no es así, sólo doy una opinión favorable porque hoy por hoy es una tarifa que va muy bien a mis necesidades y es mucho más económica que las alternativas.

Por cierto, si esta información te resulta útil y quieres hacerte cliente de Simyo, mándame un mensaje con tu correo electrónico. Si te haces de Simyo por invitación obtendrás saldo gratis (y yo también).

Usar otras cuentas VoIP (SIP) con router Arcadyan 7518PW de ya.com

— ACTUALIZACIONES AL DOCUMENTO —

[2013-05-13]: Desde la actualización del router en marzo de 2012, tras la absorción de ya.com por Orange, el procedimiento aquí descrito no funciona. Con esta actualización han desaparecido muchas opciones avanzadas del router que ya no pueden ser controladas por el usuario. El firmware actual a la fecha es:

0.20.045 (Mar 17 2012 10:55:52)

Si tienes un firmware anterior puedes intentar este procedimiento.

— FIN DE LAS ACTUALIZACIONES —

ya.com enviaba este router a sus clientes antes de ser absorbida por ya.com. Alguna gente pregunta como configurar otras cuentas VoIP en el router, además de la cuenta de ya.com a través de la cual ofrecen su servicio de línea telefónica.

La configuración no tendrías mayores problemas ya que el router viene preparado para poder configurar múltiples cuentas, el problema es que ya.com ha modificado el firmware del router para que el único proxy SIP que puede configurarse en todas las cuentas sea el de ya.com (proxy.voip.ya.com) lo que dificulta o imposibilita la configuración de otras cuentas SIP desde la interfaz de configuración del router.

Aquí dejo un pequeño manual de como configurar otras cuentas SIP que funciona, al menos, para la versión 0.20.013b2 (Mar 2 2010 14:36:30) del firmware.

Se presupone que el usuario dispone de la clave de administración del router y que tiene experiencia modificando su configuración mediante el acceso a la interfaz web de configuración (Ej. http://192.168.2.1).

Me encontrado con 2 casos, según el proveedor: caso simple y caso complejo.

Caso simple: la cuenta del proveedor funciona con proxy de salida (Outbound proxy)

Probado con: diamondcard.us, terrasip.net

1. Configura la cuenta normalmente incluyendo “SIP Domain”. Ej: diamondcard.us

2. Selecciona “Use outbound proxy”.

3. Añade el proxy de salida en “Outbound proxy server”. Ej: diamondcard.us

4. No te preocupes por el “Proxy Server” de ya.com que no se puede cambiar.

Caso complejo: la cuenta del proveedor no funciona con proxy de salida y es necesario especificar un “Proxy Server”

El “Proxy Server” no se puede cambiar desde la web de configuración del router y viene fijado a “proxy.voip.ya.com”. Para resolver esto hay que hacer la configuración de la cuenta dejando este proxy y modificar el archivo de configuración con un editor hexadecimal.

Probado con: opensips.org

1. Añadir la cuenta normalmente incluyendo el “SIP Domain”. Ej: opensips.org

2. Salva la configuración del router en un archivo (ej: backup.bin). Tools -> Configuration tools.

3. Edita el archivo de configuración con un editor hexadecimal. Yo uso “bless” en Debian/Ubuntu. El proceso es:

a) Selecciona el archivo completo (todos los bytes) y aplica una operación XOR con el valor hexadecimal FF. Esto “decodifica” el contenido del archivo y te permitirá reconocer las cadenas de configuración.

b) Busca en el archivo la cadena con el SIP Domain de la cuenta que has configurado (ej. opensips.org). Verás que hay varios campos de texto próximos. Los 3 primeros son: 1) SIP Domain (ej. opensips.org), 2 y 3) Proxy Server (proxy.voip.ya.com).

c) Usa el editor hexadecimal para cambiar “proxy.voip.ya.com” por el proxy de tu proveedor (ej. opensips.org).

MUY IMPORTANTE: tienes que sobreescribir el nombre del proxy antiguo, no añadir texto (o bytes).

MUY IMPORTANTE: si la dirección de tu proveedor tiene menos caracteres que “proxy.voip.ya.com” tienes que borrar los caracteres que sobran con bytes a cero no con otra cosa, como espacios.

d) Vuelve a aplicar un XOR a todo el archivo como en a).

e) Salva el archivo (ej. backup-nuevo.bin)

4. Carga esta nueva configuración en tu router. Tools -> Configuration tools.

5. Reinicia el router si no lo hace automáticamente y SUERTE!

Respuesta sobre la “piratería” al programa El ojo crítico de Radio Nacional de España

Esta semana se plantea la siguiente pregunta en el programa El Ojo Crítico de Radio Nacional de España.

¿Es la piratería un robo o lo hemos asumido como una posibilidad sin repercusión?

Como ciudadano me siendo indignado por la pregunta. O sea, que si asumimos que la copia de contenidos afecta a la industria de medios (al menos eso dicen), entonces la copia es un robo. ¿Es que nadie controla la manipulación desde los medios públicos? ¿A qué intereses sirven los empleaduchos que hacen estas proposiciones y los jefes que las toleran?

La entrada tiene otras perlas como: “Más allá de si el P2P, el famoso Peer to Peer, o lo que es lo mismo, el intercambio de archivos entre tu ordenador y el de otro particular, es o no ilegal…”. Pero ¿es que esto está en cuestión? ¿O es que se trata de ponerlo en cuestión para propiciar los cambios en la ley que quiere la industria de medios?

La realidad es que la industria de medios intenta mantener un negocio obsoleto (la de la venta de copias) a costa de la libertad de las personas. Esto es lo que no cuentan ni nunca contarán los medios de comunicación de masas porque pertenecen a la misma industria. Lo indignante es que los medios públicos, haciendo gala de una total dependencia del gobierno de turno, se pongan a la cabeza de la tergiversación para coartar la libertad de las personas.

El hecho de que salga agua potable del grifo seguramente afecta a las ventas de agua mineral. ¿Debemos cortar el suministro de agua potable por el bien de los distribuidores de agua envasada?

He pensado montar una empresa de venta de aire embotellado. Voy a pedir al gobierno que prohíba la respiración del aire libre de la atmósfera para apoyar esta gran idea que sin duda dará montones de puestos de trabajo como envasadores de aire.

¿Y los pobres de forum filatélico? Voy a pedir al gobierno que incluya en la ley de economía sostenible la prohibición del correo electrónico para ver si se revalorizan los sellos postales.

“Piratería” tiene que ver con atacar, robar, asesinar… La copia privada de obras no tiene nada que ver con eso. La copia privada de obras no es ilegal. Nunca ha sido ilegal. Ningún tribunal ha dicho que sea ilegal. ¿Por qué los medios de comunicación, muy destacadamente los medios públicos, hablan constantemente de “copias ilegales” y “descargas ilegales”?

Precisamente lo que intenta la industria es cambiar la ley para que algo perfectamente legal (desde hace siglos) pase a ser ilegal, en contra del interés general, en contra del derecho, de la historia y de la inmensa mayoría de los creadores.

No te sientas mal por distribuir información en el ámbito privado. Los derechos de autor no tienen que ver con esto. Lo que limitan los derechos de autor es:

  • La atribución de obras de otros autores.
  • La explotación de obras: distribución a cambio de dinero.

Creo que hay que apoyar a los autores: hay que librarlos de la industria de medios que los canibaliza, los explota y luego los tira como deshechos. Id a los conciertos, bajad su música, haced donativos… Ellos os lo agradecerán porque les daréis una vida más digna y justa.

Todo Internet se muda a Facebook(TM)

El titular parece exagerado pero se está convirtiendo en una realidad. Es difícil ver un programa de televisión o escuchar un programa de radio que no mencione su presencia en Facebook(TM). Parece que ya no importa indicar dónde está la aburrida página web del programa o cuál es el correo electrónico de contacto, y es normal, si todo eso se puede hacer mejor desde la muy práctica y eficiente página de Facebook.

De hecho, hace un rato intentaba ponerme en contacto con el programa “El Público” de Canal Sur, la radio pública de Andalucía y no he conseguido hallar su página web ni su dirección de correo sino tras varios minutos de navegación por la página de Canal Sur (su buscador no localiza el programa por “el público), pero rápidamente he hallado su página de Facebook, junto con la de muchos otros programas de radio y televisión e incluso la página general de Canal Sur en Facebook. Por eso parece que todo el mundo se muda a Facebook por conveniencia, moda o lo que sea.

El problema llega a la hora de participar, porque si no tienes cuenta en Facebook sólo se te permite mirar desde fuera, ver lo que otros han escrito. Para participar, o para que te cuenten como fan del programa, tienes que tener cuenta en Facebook. No sé a vosotros, pero a mi no me gusta que me obliguen a contratar un servicio, aunque sea gratuito, para acceder a una información que se supone que prestan al público en general, especialmente cuando esta información se oferta desde una radio o televisión públicas.

Cuando Facebook se convierte en el medio “preferente” de comunicación con un programa (la página de blogs de Canal Sur, por ejemplo,  sólo lista nueve blogs propios), creo que estamos ante un problema de respeto a la libertad del espectador. Sí, es cierto, a la mayoría de los espectadores les importa una mierda ceder un poco de su libertad cada vez para conseguir acceder a la información que quieren, pero si vamos cediendo poco a poco nuestra libertad al final esto tiene consecuencias: en este caso, acabar bajo el control de Facebook, que es una empresa independiente que no tiene ningún compromiso con sus usuarios.

Por este motivo no uso servicios que me hagan ceder parte de mi libertad o que me usen como vehículo para que mis amigos cedan la suya, como:

  • Redes sociales (como Facebook) porque obligaría a mis amigos a apuntarse a la misma red social que yo.
  • Redes de mensajería instantánea privadas (como MSN o Yahoo) porque sólo puedo hablar con usuarios de la misma red.
  • Servicios de videoconferencia privados como Skype, porque sólo puedo llamar a otros usuario de Skype.

Prefiero otras alternativas de comunicación más abiertas y respetuosas con la libertad como:

  • Blogs abiertos (como wordpress.com) donde cualquiera puede enviar comentarios.
  • Foros temáticos, donde te apuntas a un foro si te interesa el tema y te borras cuando ya no te interesa.
  • Listas de distribución de correo, a las que te apuntas o borras como en los foros.
  • El tradicional correo electrónico, que te permite enviar correos a cualquier usuario, independientemente de su proveedor de correo.
  • Los servicios de de audio y vídeo conferencia basados en SIP (como opensips.org) porque te permiten hacer llamadas de audio y vídeo a cualquier usuario independientemente de su proveedor (o incluso aunque no tenga proveedor).

Por esto ruego a los medios de comunicación públicos que se replanteen si realmente quieren poner en manos de empresas externas como Facebook su principal canal de comunicación con los espectadores, y les pido amablemente que publiciten adecuadamente mecanismos de participación alternativos como el tradicional teléfono, correo electrónico o blogs propios.