Showing posts with label documentos. Show all posts
Showing posts with label documentos. Show all posts

Saturday, June 28, 2014

Reto de la programación lúdica: silabeo de un texto


Cuando fuimos a la primaria, quiero suponer que fue ahí, se nos enseñó a silabear un texto, es decir, separar en sílabas las palabras. Esto se hacía con mucha frecuencia en las publicaciones pero cuando la computadora llegó finalmente a la cotidianidad, nos encontramos con que los procesadores de palabras, la mayoría de origen estadounidense, no silabeaban, vamos, no separaban una palabra en sílabas por si no cabía en una línea, sino que en ese caso, toda la palabra se bajaba a la siguiente línea.  Programas como InDesign -de Adobe- tiene la opción de silabeo para no ajustar las líneas con espacios de más o separando las letras unos puntitos aquí y otros allá para poder justificar una línea completa.

El silabeo es pues quizás una especie de arte perdido. ¿Cómo se silabea una palabra? He aquí las reglas elementales:

1. Cuando una consonante está entre vocales se une a la vocal que la sigue.
* Ejemplo: a-ni-llo, mo-ne-da
2. Cuando hay dos consonantes entre vocales, la primera se une a la vocal precedente y la segunda, a la siguiente.
* Ejemplos: al-to, ar-tis-ta
3. De tres consonantes entre vocales, las dos primeras se unen a la vocal que las antecede y l aotra, a la que sigue.
* Ejemplos: ins-tar, abs-ten-ción, pers-pi-caz
* Excepciones: cuando hay grupos inseparables de consonantes: in-glés, am-pliar
4. Cuando hay cuatro consonantes entre vocales, entonces, las dos primeras se unen a la vocal anterior y las otras dos a la que sigue.
* Ejemplos: ins-truir, trans-gre-sión
5. Las consonantes forman grupos inseparables cuando se encuentran las letras “l” o “r” junto con alguna de las letras “b”, “c”, “d”, “f”, “g”, “p” o “t”.
* Ejemplos: a-brir, a-gra-da-ble, de-plo-ra-ble
6. Cuando dos vocales forman un diptongo, éstas no se separan al silabear.
* Ejemplos: ai (baile); au (pausa); ei (peine, ley); eu (feudo); ia (viaje); ie (pieza); io (odio); iu (ciudad); oi (oigo, hoy); ou (bou), ua(agua); ue (vuelta); ui (juicio); uo (arduo).
* La h colocada entre dos vocales que pueden formar diptongo no impide su formación: ahi-ja-do, ahu-yen-tar, prohi-bi-do, rehu-sar
7. Cuando dos vocales forman un adiptongo (hiato), éstas se separan al silabear.
* Ejemplos: po-e-ta, ma-re-o, a-ho-go, o-ír, ra-íz, ju-dí-o

Pues bien, el reto de esta semana de la programación lúdica  es silabear el siguiente texto (Prólogo “El Principito” de Saint Exupery), haciendo que el texto entre en una caja que contiene N líneas, con líneas de 40, 60 ó 75 caracteres por línea.

Prólogo “El Principito” de Saint Exupery

Pido perdón a los niños por haber dedicado este libro a una persona mayor.
Tengo una seria excusa: esta persona mayor es el mejor amigo que tengo en el mundo. Pero tengo otra excusa: esta persona mayor es capaz de comprenderlo todo, incluso los libros para niños.

Tengo una tercera excusa todavía: esta persona mayor vive en Francia, donde pasa hambre y frío. Tiene, por consiguiente, una gran necesidad de ser consolada. Si no fueran suficientes todas esas razones, quiero entonces dedicar este libro al niño que fue hace tiempo esta persona mayor. Todas las personas mayores antes han sido niños. (Pero pocas de ellas lo recuerdan).

Corrijo, por consiguiente, mi dedicatoria:

A LEÓN WERTH, cuando era un niño.

Por ejemplo, si tuviese una caja de 20 caracteres pondría:

Pido perdón a los ni-
ños por haber dedica-
do este libro a una 
persona mayor.
Tengo una seria excu-
sa: esta persona ma-
yor es el mejor ami-
go que tengo en el 
mundo. 
 
etcétera...

Así, el programa debe poderse generalizar a cualquier cantidad de columnas que se me ocurra (digamos de 10 a 80).

Este programa, probablemente puedan encontrarlo en la red. No se trata pues de copiarlo de algún sitio. Si descubro una copia o si tengo dudas, me tomo la libertad de preguntarle al autor directamente cómo hizo, para garantizar así que la solución fue escrita y no copiada por el autor del programa. Juguemos pues limpiamente y aprendamos todos de estos retos.

¿El premio? Una taza con el logotipo de la Morsa a la mejor solución. Esto solamente aplica a los programadores que vivan en el DF (mandar a provincia o a otros países una taza es estúpidamente costoso). En caso de que los concursantes sean de otros países o de la provincia mexicana, el premio será una memoria USB de 8 GBytes y se les enviará por correo certificado. Y sí, sé que no son los grandes premios pero mientras no tengamos patrocinadores, esto es lo que hay.

Evidentemente quien gane será anunciado aquí y hasta tendrá sus quince minutos de fama. Sus programas me los pueden mandar a morsa@la-morsa.com y pueden escribirse en cualquier lenguaje. Es importante señalar que hay que mandar el código fuente, el ejecutable (si procede) y el archivo de resultados pedido. Igualmente, se pide una explicación breve de la estrategia usada. Código documentado tiene más posibilidades de ser considerado el ganador.

Cabe señalar que este concurso busca simplemente alentar el trabajo de la programación y mostrar que puede ser lúdica. Es un concurso de buena fe. Si hay, por ejemplo, dos o más respuestas satisfactorias, ganará quien la haya mandado primero. El ganador cede su código fuente a la comunidad. Es decir, se promueve el código abierto.

Referencias:

Buenas Tareas
Reglas silabeo

Saturday, March 15, 2014

Las dificultades del mundo digital


Hoy pareciese que todos son ventajas en el mundo digital. Se pueden transmitir a miles de kilómetros, casi instantáneamente, documentos completos en formato electrónico, PDF, EPub, etcétera. De a música ni hablar, que ya se ha digitalizado desde hace años y con los formatos de compresión, como mp3, y además, el acceso a banda ancha, pues tenemos que la música de todos los géneros está en muchísimos dispositivos móviles, teléfonos, ipods y tablets. Con respecto a las imágenes, evidentemente tenemos también gigantescos acervos digitales de fotografías.

Pero todo esto conlleva una dificultad: ¿cómo le vamos a hacer para guardar toda esta información en el transcurso de los siguientes años? Porque es claro que sí, cada vez se digitalizan más cosas, pues el manejo digital siempre es mucho más simple que el manejo de otros formatos, y por ende, la información crece y crece.

Pensemos en los años en donde había Apple //e, con discos flexibles, floppies, de 77K bytes por lado, es decir, uno podía almacenar programas en medios en los que hoy día no cabe siquiera una imagen de no muy alta resolución. Y es cierto que todos los días se están creando nuevos medios que  pueden almacenar cada vez más ceros y unos. El CD, hace unos años, podía guardar la generosa cantidad de 650 MBytes, aproximadamente. Ahora esto parece ridículo e insuficiente. De hecho, la siguiente tecnología nos trajo el DVD, el cual puede guardar a grosso modo, unos 5 GBytes. Y resulta que esto parece tampoco ser suficiente. Las necesidades del mundo digital nos obligan a requerir cada vez más de medios de almacenamiento y esto, aunque está bajando de precio, es una parte que finalmente tiene su costo.

Hoy podemos ver memorias USB con 2, 4, 8, 16 y 32 GBytes a precios relativamente sensatos, pero más almacenamiento requiere de más dinero en la cartera y todo parece indicar que la misma tecnología nos empuja a ir siempre por más capacidad para guardar los contenidos digitales. Pero el problema no es sólo guardar más información, sino saber que esa información la podamos recuperar cuando la necesitemos. Eso implica hacer respaldos. Por ejemplo, yo tenía un disco de un terabyte que estaba usando para respaldar mi información. Hasta el momento en que ocurrió un desastre, llevaba unos 250 GBytes respaldados, pero en ese momento el disco falló. Aparentemente podré arreglarlo yendo con un especialista para que rescate mis datos, pero ojo, el disco duro era sólo de respaldos, no lo usaba para ninguna otra cuestión y falló. La tecnología no tiene palabra de honor, ¿verdad?

Así pues, si hubiese querido respaldar ese disco duro tendría que haber comprado unos 50 DVD y empezar a copiar la información del disco de 1 Tbyte. Pero eso no es suficiente. Los discos grabables tienen una vida útil, pues el sustrato en donde uno escribe tiende a degradarse en el futuro. Así, puede pasar que nuestros respaldos no se puedan leer o bien, se lean con errores en algunos casos después de algunos años de haber hecho esos respaldos. De nuevo, respaldar -aunque protege- no es la solución final.

¿Qué debemos hacer entonces? Yo pienso que la solución es la nube, sí, en donde por una cuota al mes podré subir toda la información que quiera y en donde el proveedor de este servicio me garantizará que no la perderé. ¿Qué harán los que tengan este negocio? Buscarán procedimientos para minimizar la pérdida de daos y tendrán sistemas distribuidos que se pagarán (incluso con utilidades para la empresa) con las cuotas de los abonados.

La ventaja de la nube es clara: nuestros datos siempre podrán estar accesibles sin importar en qué máquina estemos. Si nuestra computadora se arruina, nuestros datos se podrán descargar en la nueva máquina sin problemas. Ésa parece ser la gran solución, pero hoy día un tema ensombrece esta posibilidad: la seguridad de nuestros datos.

La pregunta es ¿cómo los proveedores de la nube van a garantizar que nadie verá mis datos? La palabra del proveedor no parece ser suficiente pues ya en Estados Unidos, por ejemplo, la Agencia Nacional de Seguridad, NSA, probó que podía meter sus narices donde se le antojara. ¿Qué seguridad podrán tener los datos? Nadie lo sabe. Es claro que es un tema muy sensible para todos y pienso que mientras esto no se solucione, la nube estará dando saltos aquí y allá buscando posicionarse. ¿Lo logrará?