20 September 2010

Integer to Hexadecimal in Javascript. Industry versus Academia.


How would an average programmer working in industry convert an integer to hexadecimal in Javascript?

He would assume that he is not the first one in having the problem. He'd bet Javascript itself has a specific function or some standard library out there solves the problem.

Just googling around he would find a quick, clean and nice answer such as this one:

yourNum = yourNum.toString(16);



And, what about the average academician?

He would probably spend a whole day building and testing an impossible-to-understand, prone-to-error implementation.

Here is some Javascript I found at the website of some top-researchers in knowledge representation from a well-known university.

// *** Hexidecimal/Decimal Functions (needed to determine QuickTime version number from VBScript) ***
   
   function tohex(i) {
      a2 = ''
      ihex = hexQuot(i);
      idiff = eval(i + '-(' + ihex + '*16)')
      a2 = itohex(idiff) + a2;
      while( ihex > 16) {
         itmp = hexQuot(ihex);
         idiff = eval(ihex + '-(' + itmp + '*16)');
         a2 = itohex(idiff) + a2;
         ihex = itmp;
      } 
      a1 = itohex(ihex);
      return a1 + a2 ;
   }
   
   function hexQuot(i) {
      return Math.floor(eval(i +'/16'));
   }
   
   function itohex(i) {
      if( i == 0) {
         aa = '0' }
      else { if( i== 1) {
                aa = '1'}
         else {if( i== 2) {
                  aa = '2'}
            else {if( i == 3) {
                     aa = '3' }
               else {if( i== 4) {
                        aa = '4'}
                  else {if( i == 5) {
                           aa = '5' }
                     else {if( i== 6) {
                              aa = '6'}
                        else {if( i == 7) {
                                 aa = '7' }
                           else {if( i== 8) {
                                    aa = '8'}
                              else {if( i == 9) {
                                        aa = '9'}
                                 else {if( i==10) {
                                          aa = 'A'}
                                    else {if( i==11) {
                                             aa = 'B'}
                                       else {if( i==12) {
                                                aa = 'C'}
                                          else {if( i==13) {
                                                   aa = 'D'}
                                             else {if( i==14) {
                                                      aa = 'E'}
                                                else {if( i==15) {
                                                         aa = 'F'}

                                                }
                                             }
                                          }
                                       }
                                    }
                                 }
                              }
                           }
                        }
                     }
                  }
               }
            }
         }
      }
      return aa
   }


Weird.

16 September 2010

La vuelta al cole


Hace tiempo comentaba en "ánimos caldeados" que cada gestión en este país es un infierno, por mínima que sea. En "Equilibrio y progreso" se comentaba que cómo reaccionar a lo que nos curre o cómo organizarnos "es nuestra elección".

Esto es cierto, pero no lo es menos que hay una serie de trámites ineludibles que tenemos que hacer, y que son responsabilidad de otras personas. Así como servicios por los que pagamos religiosamente en los que, sin ser demasiado puntillosos e intentando ser comprensivos, es conveniente exigir un mínimo de seriedad.

Saber mantener la calma en estos casos es esencial para la salud, pero la pasividad, la excesiva calma o, en general, ignorar la realidad nos lleva a dos cuestiones. La primera, a que se aprovechen de nosotros: un "pequeño error" o incompetencia por parte de alguien puede suponerle dinero. La segunda, a privarnos de oportunidades: una carta envíada por procedimiento administrativo en Correos que llega tarde y no ha sido sellada puede suponer nuestra desalificación en un concurso de contratación, por ejemplo.

Pero, aparte de esos dos pequeños inconvenientes, que pueden llegar a ser superables, hay uno tercero que me parece gravísimo y se trata del tiempo.

Si hay algo que no se puede recuperar en la vida es el tiempo. No se puede comprar. No se puede volver atrás para hacer otra cosa. Y dedicar tiempo a cosas que uno no quiere (ni tiene porqué hacer) resulta realmente frustrante.

Llevo pocas semanas desde la vuelta al cole y necesito que conste por escrito para poder creer a qué he dedicado mi tiempo recientemente:

  • Cartero: Muchas veces me llegan paquetes a casa vía Correos. La penúltima vez que me llegó uno, me encontraba en casa (yo fui quien abrió la puerta al cartero). Cuando bajé, encontré un aviso para que recogiera un paquete por estar "ausente del domicilio", con lo cual tuve que acudir a la oficina a buscarlo. La última vez me ocurrió todo lo contrario: entré al portal y me encontré dos enormes paquetes dejados encima de los buzones al alcance de cualquiera, que tuve que subir yo mismo.
  • Banco: Una campaña prometía una devolución de un 3% en unas gestiones. Cuando llega la devolución, es errónea: han calculado un 2%. Llamada (a mi cargo) que tuve que colgar por la larga espera. Correo electrónico con la explicación detallada. Efectivamente se habían "equivocado" (¿sólo conmigo o con todos los clientes?).
  • Conexión a Internet: Mi conexión está limitada a un máximo de descargas al mes, tras lo cual se reduce la velocidad hasta hacerla casi inútil. Este mes llevo el 10% de lo permitido según la facturación online, y ya tengo la velocidad reducida. Tras una llamada de casi 30 minutos y miles de comprobaciones absurdas, no saben informarme de cuál el problema, pero acabo por descubrirlo yo: en la factura online te muestran el periodo correspondiente al mes natural (del 1 al 31), lo cual incita a gastar toda la cuota de descarga sobrante los últimos días del mes (del 20 al 30). Ahora bien, en realidad facturan (y contabilizan las descargas) de día 20 a día 19 del mes siguiente, cuando se resetea el límite. Hasta el día 19 sin Internet.
  • Correo electrónico: El correo electrónico de mi institución, al que llegan todas las comunicaciones oficiales (fundamentales en estas fechas) ha dejado de funcionar sin previo aviso. No se reciben correos y tampoco se informa al remitente de ningún error. Correo más llamada de teléfono para solucionar el problema, que tengo que explicar varias veces. Al poco tiempo se soluciona. Semanas después me llaman para decirme si ya "había configurado bien mi correo".
  • Seguro del coche: Hace un tiempo leí que muchas compañías de seguros subían ligeramente el seguro del coche aunque no hubieras dado partes durante el período anterior (cuando deberían bajarlo), por "si colaba". Efectivamente, soy uno de los afectados. Llamada de teléfono: efectivamente, había una subida. No supieron explicarme a qué se correspondía y no "pueden hacer nada" hasta la próxima renovación. Que vuelva a llamarles un poco antes de vencer el contrarto para ver "qué se puede hacer".
  • Cotización Seguridad Social: Consultando mi historial, descubro nada menos que un hueco de un mes sin cotizar por mi institución. Llevo aproximadamente unos 8 correos electrónicos (todos ignorados) y 1 llamada de teléfono. Me informan de que, de ser cierto, ha debido ocurrir con todos los trabajadores. Lo comunicará y revisará en breve. Del último contacto hace más de tres meses.
  • Solicitud administración: Necesito hacer una solicitud a una institución que se encuentra fuera de mi ciudad. Dos correos electrónicos acerca de cómo solicitarla son ignorados. Envío un fax y solicito la confirmación de su recepción y soy nuevamente ignorado. Supongo que toca la llamada (ya van cuatro contactos para una sola gestión).
  • Secretaría: Necesito hacer unas gestiones en un lugar y, oh sorpresa, la secretaria se ha cogido vacaciones el único periodo del año que hay trabajo (septiembre, debido a solicitudes, renovaciones, etc...). Por tanto, tendremos que hacerlas nosotros mismos. Desde comprar sobres, realizar llamadas de teléfono, hasta enviar faxes y echar las cartas.
Y me dejo otras muchas en el tintero. Pero éste es un breve ejemplo

Una cosa es ser un quejica. Otra cosa es que cada trámite sea un infierno y haya que estar encima constantemente o hacerlo tú mismo si quieres que tenga éxito.

¿Cómo va a prosperar un país así?

Desde aquí un cordial agradecimiento a todas las personas eficientes y trabajadoras que nos hacen la vida más fácil. He conocido pocas, pero las hay.

Desafortunadamente varias de ellas ya han dejado sus puestos. Supongo que se cansaban de hacer el trabajo de todos los demás.

Saludos.

Ley de Educación de Cataluña (en vigor) y lenguas


Casi por casualidad me llegó una noticia acerca de la nueva Ley de Educación de Cataluña. Al parecer, quería incluir ciertos pasajes que recordaban demasiado a tiempos pasados de formación del espíritu nacional. Una copia en versión catalana, por supuesto.

Esta ley ya fue aprobada y, aunque recurrida por algunos grupos, está en vigor mientras no se gane el recurso. Está publicada en el BOE.

No encontré la peligrosa frase de "cultivar el sentimiento de pertenencia como miembros de la nación catalana" que se quería incluir como objetivo pedagógico. Aun así, el preámbulo, para ser una ley del siglo XXI y que versa sobre educación, es bastante espectacular.

He aquí algunos extractos:

"Esta aspiración se corresponde con la voluntad colectiva de hacer de Cataluña un país próspero".
"Las razones culturales y cívicas están impulsadas por la voluntad de configurar una ciudadanía catalana identificada con una cultura común, en la cual la lengua catalana resulte un factor básico de integración social."
"La presente ley quiere reforzar la importancia del catalán y su aprendizaje en cuanto lengua propia de Cataluña y factor de inclusión social."
"Cataluña es un país con una cultura y una lengua que configuran una identidad propia. El sistema educativo catalán debe permitir despertar y potenciar el arraigo en Cataluña."
"Cuando Cataluña ha dispuesto de instituciones propias de gobierno, la educación ha experimentado avances muy notables."
"Por otra parte, la institución escolar ha mantenido vivas la lengua y las tradiciones del país, muy especialmente en momentos de falta de libertades democráticas."
"Sólo desde el conocimiento de lo propio es posible abrirse a otras realidades y reconocer su singularidades".

Y pregunto... ¿cómo entendemos esto los ciudadanos? ¿No es para volverse loco?

Algunas preguntas que surgen de manera natural son:
  • ¿Por qué una ley de educación centra sus esfuerzos en la concienciación de sus ciudadanos y en qué lengua deben hablar para integrarse socialmente, en vez de en sus competencias para llevar una vida rica y próspera, así como para desempeñar un buen trabajo en una sociedad cada vez más global?
  • ¿Por qué en el propio BOE se habla de Cataluña como país, y luego el Estado expide un DNI y un pasaporte a sus ciudadanos en el que pone "País: España"?
  • ¿Por qué, en toda la ley, no se mencionan objetivos de integración y conocimiento cultural sobre España, Europa o el resto del mundo y se pasa de refilón sobre las competencias lingüísticas del castellano y de las lenguas extranjeras?
  • Si, también según la ley, el alumno debe salir con un perfecto conocimiento del idioma catalán y castellano, ¿por qué no existe la posibilidad de estudiar de manera bilingüe, sino sólo en catalán?
  • ¿Por qué dos horas semanales de castellano estudiadas en el "país catalán" otorgan derecho a presentarse a oposiciones en comunidades castellanoparlantes sin prueba de conocimiento del idioma castellano?
  • ¿Por qué el discurso político insiste en que durante épocas pasadas la escuela prohibía y castigaba el uso de la lengua catalana y su cultura, para en esta ley constar por escrito que era la institución escolar "la que mantuvo la lengua y las tradiciones en momentos de falta de libertades democráticas"?
  • Es más, sin en los peores momentos la escuela fue capaz de mantener la lengua y la tradición del país, ¿por qué ahora, que se han reinstaurado las libertades en su máxima expresión, se aprueban leyes tan restrictivas,  proteccionistas, políticas y moralistas?
  • ¿Desde cuando el conocimiento de lo propio es lo que permite abrirse (opcionalmente) a "otras realidades"? ¿No ha sido siempre la curiosidad y la comparación con las demás realidades, lo que acaba haciendo valorar lo propio?


Aunque en el País Vasco se han superado en contradicciones. Con el objetivo de que el euskera se propague "de generación en generación", el Ayuntamiento de Bilbao envía folletos periódicamente recomendando que se hable euskera en casa.

Si los padres no lo hablan, no hay problema, ya que lo subvencionan gratuitamente para que lo aprendan en un euskaltegi. Enseñarte una lengua de adulto, que no has hablado jamás (las ayudas están, por supuesto, abiertas a inmigrantes tanto de otras provincias como del extranjero, con la única condición de que un hijo esté matriculado en enseñanza en euskera o bilingüe), es una manera, cuanto menos curiosa, de que una lengua se transmita de generación en generación.

Esta campaña (con su correspondiente financiación) se ha repetido este año. Paradójicamente, los ayuntamientos siguen con la contención del gasto municipal y se han se han recortado becas de investigación en el Gobierno Vasco. También este año ha sido el que se han bajado los salarios a todos los funcionarios (e incluso becarios).

Y, mientras la ciudadanía discute sobre las chorradas lingüísticas, los países y nacionalidades, los políticos que las han impuesto envían a sus hijos a colegios privados donde no se estudia vehicularmente en catalán.

Y, todavía ostentan hacer declaraciones como éstas:

"Los niños saldrán de allí dominando perfectamente el alemán y el inglés. Es una maravilla. Sólo por saber alemán ya encontrarán trabajo. Es como tener una carrera".

"En el centro todo se hace en alemán, incluso las reuniones de padres, y en inglés que se estudia a través del alemán".

"Hernández aseguró que sus dos hijos reciben clase de catalán una hora a la semana".