/* PERSONALIZACION DE LUIS

30/7/08

Ejercicios introspectivos


En breve empezaré mis vacaciones. Tendré poco tiempo para mi (suena a paradoja pero los que tengáis niños pequeños me entenderéis) por lo que probablemente actualizaré poco este blog (también dependerá de como se comporte la cobertura 3G de donde voy).

En estas (sus) vacaciones me he puesto un reto ambicioso: pensar. En mi día a día no tengo tiempo de ello, sólo de ir reaccionando a lo que va saliendo, y eso es un error grave - hay que tener un esquema que te guíe en tu día a día - no puedes dejarlo al instinto, cortoplacista por definición siempre - es como el que va en un barco y no marca el rumbo o no tensa la mayor, dejando que flamee o se bambolee dando bandazos.

Como soy un tipo un poco (¡mucho!) cuadriculado no creo que me vaya a sentar y, por arte de magia, vayan a salir miles de grandes ideas y pensamientos inspirados. Necesito un método. un disparador y/o una metodología - y voy a utilizar algo que se me ha ocurrido, que raro, de forma espontánea: analizar todos los momentos de mi vida, no sólo profesional, donde se haya producido algo clave - un error, una decisión, una actitud, una reacción, ... esos momentos los reconoceréis porque vistos en perspectiva te hacen decir cosas como "menos mal que hice...", "en mala hora se me ocurrió decir ...", "¿cómo no se me ocurrió en ese momento...?, "pero qué burro que fui..."

Lo que salga de ese ejercicio introspectivo será mayoritariamente de consumo interno, por lo que será difícil que se vea reflejado en este blog (lo siento pero soy muy pudoroso en lo que respecta a mí) aunque estoy seguro de que va a inspirar, como "daño colateral", material aprovechable y que compartiré.

Y vosotros, .... ¿tenéis otros métodos para pensar?


29/7/08

fartlek



En mi juventud, cuando practicaba deporte en serio, el tipo de entrenamiento que más me gustaba era el fartlek, técnica de entrenamiento de origen sueco que consiste en correr de forma más o menos anárquica, sin un plan cerrado preestablecido, con cambios de ritmo tal como te va pidiendo el cuerpo más o menos, y no menos importante, por terrenos variados - la hierba de un campo de golf es lo ideal, yo lo llegué a hacer alguna vez (arriesgándome a alguna buena bronca) y hay pocas cosas comparables (si estás en forma y ya disfrutas corriendo).

Otras técnicas como las series, la carrera continua, cuestas, pesas, vallas, isometricos, etc. te marcan distancias, ritmos, número de repeticiones, kilos, tipo de terreno, ... están más regladas y su efectividad depende en gran medida de cumplir las pautas que las definen.

En mi vida laboral, aquí doy el triple salto mortal de un tema a otro, siento que hago poco fartlek y mucho de las otras técnicas. Mi carrera (toma doble sentido) está demasiado marcada por un plan. Demasiado sujeta a tablas de entrenamiento donde las distancias, pesos, tiempos y número de repeticiones me marcan el paso y la intensidad del entrenamiento.

Ahora ya no practico deporte en serio (un poco en broma sí) pero siento que tengo que volver a correr por la hierba... aunque me gane una bronca

28/7/08

Palabras


Por algo que no viene a cuento me acordé el otro día de una frase que siempre decía un socio de la megaconsultora donde trabajé más de 10 años:

Cuando lleguéis a un proyecto que empieza, lo primero que tenéis que hacer es cambiarle el nombre a todo.


¿Táctica para despistar?, ¿para que no se notara que al llegar no teníamos ni p#*! idea?, ¿para ganar tiempo hasta que consigues tenerla?... nunca se lo pregunté y bien que me arrepiento.

20/7/08

Mis cinco de la semana - 200829

  • El navegador normal no es conveniente para el modelo de negocio SaaS
    Vaya por donde, siempre pensando que una de las ventajas de los modelos SaaS era que no te tienes que instalar nada en la estación de trabajo, que con un navegador normal era bastante y vienen los de Entellium, un proveedor de CRM SaaS, diciendo que les va mejor usar una aplicación cliente - por lo visto venden más (tres veces más para ser exactos). En mi humilde opinión no creo que vayan desencaminados ya que un navegador normal será difícil que pueda competir en usabilidad - no obstante creo que se puede llegar a un punto medio si se utiliza Microsoft Silverlight, Adobe Air o Adobe Flex, los entornos RIA que parece que se están imponiendo.
  • La tribu de Immelman
    Última entrega de la serie de la tribu de Immelman de Mario López de Ávila. Una estupenda explicación del concepto y su aplicación al mundo laboral. Como siempre con Mario, riguros y ameno, con ese barniz metodológico que le caracteriza.
  • Cloud Computing Vs SaaS
    Interesante reflexión que ayuda a aclarar conceptos que frecuentemente se presentan mezclados confusamente. Put simply cloud computing is the infrastructural paradigm shift that enables the ascension of SaaS

17/7/08

Decisiones condicionadas


Lo sabemos, pero por mucho que sea así no deja de sublevarme (y sí, confieso que yo fuí cómplice durante un tiempo). Las consultoras industriales, en las implantaciones de sistemas de información, están totalmente condicionadas por básicamente dos factores:

  • Los acuerdos marco que tienen con los fabricantes de software. Os lo podéis imaginar más o menos así, a final de periodo se reunen fabricante e implantador y pasan cuentas - cuántas licencias he vendido en tus proyectos,... toma tanto de comisión.
  • Los recursos propios con conocimiento que estén parados. En la pradera que diría aquel. Lo visualizáis, ¿no?, el gerente vendiendo el proyecto de implantación del ERP de turno y el socio con el aliento en su nuca presionándole para que lo venda con el producto X porque tiene a un ejército de consultores que se le van a quedar parados. Además, el gerente, que si no han cambiado mucho las cosas llevará el proyecto luego, se asegura de que pueda tener recursos competentes para hacer el proyecto y no se tenga que pelear con otro gerente por pepito que es el que sabe de X

Esta anotación me viene al blog porque en un proyecto de selección de ERP, un implantador candidato - consultora industrial por excelencia - que inicialmente se presentaba con productos X e Y, al final sólo se va a presentar con X. La razón oficial es que Y no lo ven como la solución para nuestro cliente, cuando sabemos que están trabajando en la competencia de nuestro cliente con la solución Y precisamente.

Para mí tengo clara la razón: no tienen recursos competentes y es una pena porque funcionalmente el producto Y está muy bien.

16/7/08

C++. Crónica de una burla

Me he encontrado esta perla en el blog de Manel Aljama.

Es la entrevista que le hicieron a Bjarne Stroustrup (el creador del lenguaje de programación C++) para una de los journals del IEEE, y es para partirse de risa y reflexionar sobre muchos de los puntos que revela, aunque no esté comprobado que sea verídica. De todas formas es divertido especular con que sí pudo ocurrir.

Me quedo con ¿No has visto Windows '95? Creo que es mi mayor éxito. Casi acaba con la partida antes de que estuviese preparado

Esta es la entrevista:

Int: Bien, hace unos pocos años que cambió el mundo del diseno de software. ¿Cómo se siente mirando atrás?

BS: En este momento estaba pensando en aquellos días, justo antes de que llegases. ¿Los recuerdas? Todo el mundo escribía en C y el problema era que eran demasiado buenos... Las Universidades eran demasiado buenas enseñándolo también. Se estaban graduando programadores competentes a una velocidad de vértigo. Esa era la causa del problema.

Int: Problema?

BS: Sí, problema. ¿Recuerdas cuando todos programaban en Cobol?

Int: Desde luego. Yo también lo hice.

BS: Bien, al principio, esos tipos eran como semidioses. Sus salarios eran altos, y eran tratados como la realeza...

Int: Aquellos fueron buenos tiempos, ¿eh?

BS: Exacto. Pero, ¿qué paso?. IBM se cansó de ello, e invirtió millones en entrenar a programadores, hasta el punto que podías comprar una docena por medio dolar...

Int: Eso es por lo que me fuí. Los salarios bajaron en un año hasta el punto de que el trabajo de periodista está mejor pagado.

BS: Exactamente. Bien, lo mismo paso con los programadores de C...

Int: Ya veo, pero ¿adonde quiere llegar?

BS: Bien, un día, mientras estaba sentado en la oficina, pensaba en este pequeño esquema, que podría inclinar la balanza un poquito. Pense '¿Qué ocurriría si existiese un lenguaje tan complicado, tan difícil de aprender, que nadie fuese capaz de inundar el mercado de programadores?'. Empecé cogiendo varias ideas del X10, ya sabes, X window. Es una auténtica pesadilla de sistemas gráficos, que sólo se ejecutaba en aquellas cosas Sun 3/60... tenía todos los ingredientes que yo buscaba. Una sintaxis ridículamente compleja, funciones oscuras y estructuras pseudo-OO (Orientada a Objetos). Incluso ahora nadie escribe en codigo nativo para las X-Window. Motif es el único camino a seguir si quieres mantener la cordura.

Int: ¿Está bromeando?

BS: Ni un pelo. De hecho, existe otro problema... Unix está escrito en C, Lo que significa que un programador en C puede convertirse fácilmente en un programador de sistemas. ¿Recuerdas el dinero que un programador de sistemas solía conseguir?

Int: Puede apostar por ello. Es lo que solía hacer yo...

BS: Ok, por lo tanto, este nuevo lenguaje tenía que divorciarse por si mismo de Unix, ocultando las llamadas al sistema. Esto podría permitir a tipos que sólo conocían el DOS ganarse la vida decentemente...

Int: No me puedo creer que haya dicho eso...

BS: Bueno, ha llovido mucho desde entonces. Ahora creo que la mayoría de la gente se habrá figurado que C++ es una pérdida de tiempo, pero debo decir que han tardado más en darse cuenta de lo que pensaba.

Int: Entonces, ¿qué hizo exactamente?

BS: Se suponía que tenía que ser una broma, nunca pensé que la gente se tomase el libro en serio. Cualquiera con dos dedos de frente puede ver que la programación orientada a objetos es anti intuitiva, ilógica e ineficiente...

Int: ¡¿¡¿Qué?!?!

BS: Y como el código reutilizable... ¿Cuando has oido de una compañía que reutilice su código?

Int: Bien, nunca, pero...

BS: Entonces estás de acuerdo. Recuerda, algunos lo intentaron al principio. Había esa compañía de Oregón, creo que se llamaba Mentor Graphics, que reventó intentando reescribir todo en C++ en el 90 o 91. Lo siento realmente por ellos, pero pensé que los demás aprenderían de sus errores.

Int: Obviamente no lo hicieron, ¿verdad?

BS: Ni lo más mínimo. El problema es que la mayoría de las empresas se callaron sus mayores disparates, y explicar 30 millones de dólares de perdidas a los accionistas podría haber sido difícil... Démosles el reconocimiento que merecen, finalmente consiguieron hacer que funcionase.

Int: ¿Lo hicieron?. Bien eso demuestra que la OO funciona...

BS: Casi. El ejecutable era tan gigantesco que tardaba unos cinco minutos en cargar en una estación de trabajo de HP con 128 MB de RAM. Iba tan rápido como un triciclo. Creí que sería un escollo insalvable pero nadie se preocupó. SUN y HP estaban demasiado alegres de vender enormes y poderosas máquinas con gigantescos recursos para ejecutar programas triviales. Ya sabes, cuando hicimos nuestro primer compilador de C++, en AT&T, compilé el clásico 'Hello World', y no me podía creer el tamaño del ejecutable: 2.1 MB.

Int: ¡¿¡¿Qué?!?!. Bueno, los compiladores han mejorado mucho desde entonces...

BS: ¿Lo han hecho? Inténtalo en la última verision de g++, la diferencia no será mayor que medio mega. Además existen multitud de ejemplos actuales en todo el mundo. British Telecom tuvo un desastre mayor en sus manos, pero, afortunadamente, se deshicieron de ello y comenzaron de nuevo. Tuvieron más suerte que Australian Telecom. Ahora he oido que Siemens está construyendo un dinosaurio y se empiezan a preocupar porque los recursos hardware no hacen más que crecer para hacer funcionar ejecutables típicos. ¿No es una delicia la herencia múltiple?

Int: Bien, pero C++ es un lenguaje avanzado ...

BS: ¡¿¡¿¡¿Realmente crees eso?!?!?!. ¿Te has sentado alguna vez y te has puesto a trabajar en un proyecto C++? Esto es lo que sucede: Primero he puesto las suficientes trampas para asegurarme de que sólo los proyectos más triviales funcionen a la primera. Coge la sobrecarga de operadores. Al final del proyecto casi todos los módulos lo tienen, normalmente los programadores sienten que deberían hacerlo así porque es como les enseñaron en sus cursos de aprendizaje. El mismo operador entonces significa cosas diferentes en cada módulo. Intenta poner unos cuantos juntos, cuando tengas unos cientos de módulos. Y para la ocultación de datos. Dios, a veces no puedo parar de reirme cuando oigo los problemas que algunas empresas han tenido al hacer a sus modulos comunicarse entre sí. Creo que el término 'sinergético' fué especialmente creado para retorcer un cuchillo en las costillas del director de proyecto...

Int: Tengo que decir que me siento bastante pasmado por todo esto. ¿Dice que consiguió subir el salario de los programadores? Eso es inmoral.

BS: No del todo. Cada uno tiene su opción. Yo no esperaba que la cosa se me fuese tanto de las manos. De cualquier forma acerté. C++ se está muriendo ahora, pero los programadores todavía conservan sus sueldos altos. Especialmente esos pobres diablos que tienen que mantener toda esta majadería. ¿Comprendes que es imposible mantener un gran módulo en C++ si no lo has escrito tú mismo?

Int: ¿Cómo?

BS: Estás fuera de juego, ¿verdad?. ¿Recuerdas 'typedef'?

Int: Sí, desde luego.

BS: ¿Recuerdas cuanto tiempo se perdía buscando a tientas en las cabeceras sólo para darse cuenta de que 'RoofRaised' era un número de doble precisión?. Bien, imagina el tiempo que te puedes tirar para encontrar todos los typedefs implícitos en todas las clases en un gran proyecto.

Int: ¿En qué se basa para creer que ha tenido éxito?

BS: ¿Te acuerdas de la duración media de un proyecto en C?. Unos 6 meses. No mucho para que un tipo con una mujer e hijos pueda conseguir un nivel de vida decente. Coge el mismo proyecto, realízalo en C++ y ¿qué obtienes?. Te lo diré. Uno o dos años. ¿No es grandioso? Mucha más seguridad laboral sólo por un error de juicio. Y una cosa más. Las universidades no han estado enseñando C desde hace mucho tiempo, lo que produce un descenso del numero de buenos programadores en C. Especialmente de los que saben acerca de la programación en sistemas Unix. ¿Cuantos tipos sabrían qué hacer con un 'malloc', cuando han estado usando 'new' durante estos años y nunca se han preocupado de chequear el código de retorno?. De hecho la mayoría de los programadores en C++ pasan de los códigos que les devuelven las funciones. ¿Qué pasó con el '-1'?. Al menos sabías que tenías un error, sin enredarte
con 'throw', 'catch', 'try'...

Int: Pero seguramente la herencia salve un monton de tiempo.

BS: ¿Lo hace?. ¿Te has fijado en la diferencia entre un proyecto en C y el mismo en C++? La etapa en la que se desarrolla un plan en un proyecto en C++ es tres veces superior. Precisamente para asegurarse de que todo lo que deba heredarse, lo hace, lo que no, no. Y aun así sigue dando fallos. Quien ha oido hablar de la pérdida de memoria en un programa en C? Ahora se ha creado una autentica industria especializada en encontrarlas. Muchas empresas se rinden y sacan el producto, sabiendo que pierde como un colador, simplemente para reducir el gasto de buscar todas esas fugas de memoria.

Int: Hay herramientas...

BS: La mayoría escritas en C++.

Int: Si publicamos esto, probablemente le lincharán. ¿Se da cuenta?

BS: Lo dudo. Como dije, C++ está en su fase descendente ahora y ninguna compañía en su sano juicio comenzaría un proyecto en C++ sin una prueba piloto. Eso debería convencerles de que es un camino al desastre. Si no lo hace, entonces se merecen todo lo que les pase. ¿Ya sabes?, yo intente convencer a Dennis Ritchie a reescribir Unix en C++...

Int: Oh Dios. ¿Qué dijo?

BS: Afortunadamente tiene un buen sentido del humor. Creo que tanto el como Brian se figuraban lo que estaba haciendo en aquellos dias, y nunca empezaron el proyecto. Me dijo que me ayudaría a escribir una version en C++ de DOS, si estaba interesado...

Int: ¿Lo estaba?

BS: De hecho ya he escrito DOS en C++, te pasaré una demo cuando pueda. Lo tengo ejecutandose en una Sparc 20 en la sala de ordenadores. Va como un cohete en 4 CPUs, y solo ocupa 70 megas de disco...

Int: ¿Cómo se comporta en un PC?

BS: Ahora estás bromeando. ¿No has visto Windows '95? Creo que es mi mayor éxito. Casi acaba con la partida antes de que estuviese preparado.

Int: La idea de Unix++ me ha hecho pensar. Quizás haya alguien ahí fuera intentándolo.

BS: No después de leer esta entrevista.

Int: Lo siento, pero no nos veo capaces de publicar esto.

BS: Pero es la historia del siglo. Sólo quiero ser recordado por mis compañeros programadores, por lo que he hecho por ellos. ¿Sabes cuanto puede conseguir un programador de C++ hoy día?

Int: Lo último que oí fué algo como unos $70 - $80 la hora para uno realmente bueno...

BS: ¿Lo ves?. Y se los gana a pulso. Seguir la pista de todo lo que he puesto en C++ no es fácil. Y como dije anteriormente, todo programador en C++ se siente impulsado por alguna promesa mística a usar todos los elementos del lenguaje en cada proyecto. Eso ciertamente me molesta a veces, aunque sirva a mi proposito original. Casi me ha acabado gustando el lenguaje tras todo este tiempo.

Int: ¿Quiere decir que no era así antes?

BS: Lo odiaba. Parece extraño, ¿no estás de acuerdo?. Pero cuando los beneficios del libro empezaron a llegar... bien, te haces una idea...

Int: Sólo un minuto. ¿Que hay de las referencias?. Debe admitir que mejoró los punteros de C...

BS: Hmm. Siempre me he preguntado por eso. Originalmente creí que lo habia hecho. Entonces, un día estaba discutiendo esto con un tipo que escribe en C++ desde el principio. Dijo que no podía recordar cuales de sus variables estaban o no referenciadas, por lo que siempre usaba punteros. Dijo que el pequeño asterisco se lo recordaba.

Int: Bien, llegados a este punto suelo decir 'muchas gracias', pero hoy no parece muy adecuado.

BS: Prométeme que publicarás ésto. Mi conciencia está dando lo mejor de mí mismo estos días.

Int: Se lo haré saber, pero creo que se lo que dirá mi editor...

BS: ¿Quién se lo creería de todas formas?... De todos modos, ¿puedes enviarme una copia de la cinta.?

Int: Descuide, lo haré.


Impagable




15/7/08

Que quede escrito


No aplicaremos restricción ni regulación alguna que impida la expansión o desincentive el uso de Internet ni estableceremos límites a las herramientas de libre circulación de información

Esa libertad ha sido y es la clave de la red de redes, de su crecimiento y de su popularidad

Miguel Sebastián, ministro de industria según el país


Os propongo que lo pongáis, tal cual, en vuestros blogs para que quede y poder recordárselo algún día.

14/7/08

por los pelos


Puede que alguien se acuerde del proyecto de la lagrimita. Es un proyecto que empezamos hace unos meses y que está yendo bien.

El otro día estábamos mi cliente y yo en una charla de café comentando la situación de crisis que se avecina y en un momento de la conversación mi cliente me confesó más o menos:

Si este proyecto lo tuviéramos que aprobar hoy, no hubiera podido ser.

Mi cliente opera en un sector donde pulsan muy bien las situaciones de crisis y ya se las ven venir. Yo soy más optimista, creo que crisis hay pero que está en parte amplificada. Aunque no puedo tener una visión tan directa como ellos, ya que nosotros vivimos de los presupuestos del año anterior. Supongo que en el último trimestre es cuando la empezaremos a percibir si realmente es tan grave.

Mientras tanto que no pare la rueda.


13/7/08

Mis cinco de la semana - 200828


  • Reacciones a la sentencia condenatoria para Julio Alonso
    La condena, en primera instancia y recurrible, de Julio Alonso ha levantado a la blogosfera. Ya se está hablando de crear un fondo de solidaridad para poder afrontar los gastos asociados a las previsibles primeras condenas que seguirán a ésta y que, confiemos (soy un optimista incorregible) irán cayéndose a medida que lleguen a instancias judiciales superiores. Lo importante es que nadie se autocensure por miedo a lo que hagan los innombrables y los políticos que les dejan hacerlo. En error500 ya están pidiendo la movilización del voto internauta. Al gobierno ya se le empieza a ver la patita con la uña sucia y lo que parecía una buena solución, encriptar las comunicaciones, parece que no es tan buena.
  • Artistas
    Emotivo, tierno y precioso post de Odilas. No todos se mueven por dinero en este mundo.
  • Decisiones TIC
    José M Peláez ha entrado muy fuerte como blogger. En este excelente post reflexiona sobre los factores que rodean a las decisiones sobre tecnología y sistemas de las empresas. Os invito a que lo leáis y a que entréis en el debate
  • Ahora resulta que XP va a quedarse para los Geeks
    El mundo al revés, Windows XP para los más techies y linux para los usuarios menos avezados. Esa es la predicción de ZDNet basándose en que los ultraportátiles equipados con linux van a popularizar de verdad la informática para todos los niveles de usuarios.

9/7/08

Estampitas


Tengo a un compañero desolado. Envió una propuesta y le han contestado que hay demasiadas "estampitas", que quieren una propuesta más rigurosa.

La cosa tiene guasa porque precisamente se pasó todo un día traduciendo a Word una presentación de Powerpoint, pasando información gráfica (como estadísticas en tarta a tablas) a puro texto, desarrollando listas de bullets, ... es cierto que algún gráfico quedó pero a efectos muy ilustrativos, nada que contuviera información troncal de la propuesta.

La respuesta que ha recibido mi compañero me ha parecido fuera de lugar. Demasiado fundamentalista, y eso que yo soy de los partidarios de que las propuestas siempre se hagan en formato carta, con los puntos importantes (enfoque, equipo, pasta, supuestos de partida, ...) bien desarrollados en texto, pero aún así siempre dejo algún gráfico pues creo que ayudan a transmitir mejor y más rápido algunos conceptos, como por ejemplo un calendario.

Clientes... mi compañero va a tener que rehacer la propuesta para hacerla más rigurosa (¿qué tendrá que ver el formato con la rigurosidad?) y no va a poner ningún gráfico, ¡ni el logo!

8/7/08

Ya bajarán los humos


Lo que me ha dicho hoy el socio de una conocida empresa que implanta un conocido ERP hablando de la crisis que se avecina:

Lo que es más preocupante es que hoy la gente no hace lo que se le dice. Asignas a alguien a un proyecto a 30 Kms de Madrid y te dicen que no, que ellos no viajan, y que si hace falta que se van. Esta crisis va a ir muy bien para que a muchos se les bajen los humos.


Esto es lo que hay compañeros.

6/7/08

Mis cinco de la semana - 200827

  • La larga cola del outsourcing
    No me lo puedo creer pero ya se están dando casos de estudiantes que hacen el outsourcing de sus trabajos de informática a programadores indios.
  • Se estudia para olvidar
    Se estudia para olvidar, los colegios preparan para el pasado y los más listos del cole no triunfan en la vida. Con este provocativo título empieza César Alonso Peña un post que recomiendo vivamente a los que os preocupa la educación, tengáis o no hijos.
  • Otro que se pasa a GMail
    Y este sin pasar por MS Outlook, directamente desde el viejo HP OpenMail. Una empresa de construcción de Gran Bretaña con 1.800 empleados empezando con un piloto de 200




3/7/08

La carrera de la rata... del hamster mejor dicho

Si te quieres sentir de la misma forma que un hamster y hacer la carrera de la rata, de verdad y no figuradamente, pues cómprate este trasto:






Encontrado, entre otras cosas curiosas, en Mira y Calla

2/7/08

Imbatible xls

Cómo se calcula la letra del NIF:


Con EXCEL:

=CONCATENAR(A1;EXTRAE("TRWAGMYFPDXBNJZSQVHLCKE";RESIDUO(A1;23)+1;1))

Siendo A1 la celda de origen del DNI sin letra.


Con SAP (ABAP):
FORM resultado USING VALUE(GV_NUMBER)
DATA GV_result(9) TYPE c.
DATA lt_letters(24) TYPE c VALUE 'TRWAGMYFPDXBNJZSQVHLCKE'.
DATA lv_num TYPE i.
DATA lv_number(8) type n.
lv_number = gv_number.
lv_num = gv_number MOD 23.
gv_character = lt_letters+lv_num(1).
CONCATENATE lv_number gv_character INTO gv_result.
ENDFORM. " resultado


Siendo gv_result el nº de nif con la letra.


Con Python:

DNI=12345678
NIF='TRWAGMYFPDXBNJZSQVHLCKE'
print "El NIF del DNI es", NIF[DNI%23]

Con Ruby:

DNI = 12345678
NIF = 'TRWAGMYFPDXBNJZSQVHLCKE'
puts "El NIF del DNI es #{NIF[DNI % 23].chr}"

Con C++:

  #include 
#include

const char letra[] = "TRWAGMYFPDXBNJZSQVHLCKE";
const int kTAM = 8; // numero de cifras para el DNI
using namespace std;
int main (int argc, char *argv[])
{
int dni;
if (argc != 2)
cout << "uso: " <<>\n\n";
else
{
if (strlen(argv[1]) != kTAM)
cout << "DNI no valido.\n\n"; else { dni = atoi (argv[1]); dni %= 23; cout <<>

No me extraña la proliferación de los Excel silvestres.


Chorrada encontrada en Wikilibros