Gold Member!

Mientras web-eaba por la red, me di una vuelta por codeproject.com para hacer un par de consultas. Luego de poco rato me dí con la sorpresa que mi membresía subió de categoría a Gold. No se que criterios tomaron en cuenta para elevarme a uno de los rangos mas altos en este site dedicado a la programación. El rango maximo Platinum lo poseen 13 miembros. Esta comunidad tiene 1.9 millones de usuarios registrados.

Gold Level

Mi ficha de miembro esta ubicado en Ivan Cachicatari’s online profile.

Gracias Codeproject.com!

CodeProject

Fibonacci y el Código Davinci

El codigo Da VinciPara quienes estamos relacionados con la Programación y las Ciencias de la Computación, alguna vez nos hemos que tenido que topar opn la serie de Fibonacci, ya sea para programarla o para estudiar su comportamiento. Cada número de esta famosa serie se obtiene de la suma de los dos anteriores.

La serie de Fibonacci tiene muchas aplicaciones, no solo en la computación sino también en ciencias que en las cuales las matematicas aparentemente no tienen mucho que ver.

Me tomo por sorpresa leer acerca de ésta (y otras cosas mas) en el libro: El código da Vinci de Dan Brown, por que es utilizada para encriptar un mensaje. No solo se trata de la serie de Fibonacci sino también del numero Phi = 1.618 llamado también la divina proporción. Algunas cuestiones matematicas estan muy relacionadas con la naturaleza las cuales se debe tener en cuenta al momento de pintar un cuadro.

Escribiré un post acerca de este interesante libro cuado termine de leerlo. Mientras tanto…

Sabemos que generar estos números es sencillo de programar. Debido a que los valores de la serie se hacen grandes muy grandes, el reto es generar la mayor cantidad de numeros de Fibonacci. Los tipos de datos números en los lenguajes de programación (int, double, float) tienen sus límites y el asunto es romper esos límites.

El siguiente es un programa es la forma recursiva de obtener el numero N de la serie de Fibonacci:

unsigned long Fibonacci(unsigned int n)
{
    if ((n == 0) || (n == 1))
	{
        return 1;
	}
	else
	{
        return (Fibonacci(n -1 ) + Fibonacci(n - 2));
    }
}

Puede que el programa sea dañino para la salud del Sistema Operativo, por ello también les escribí una versión no recursiva.

unsigned long Fibonacci(unsigned int n)
{
    if ((n == 0) || (n == 1))
	{
        return 1;
	}

	unsigned long last = 1;
	unsigned long curr = 1;
	unsigned long tmp  = 0;

	while(n > 2)
	{
		tmp = curr;
		curr = curr + last;
		last = tmp;
		n--;
	}
	return curr;
}

Con la primera función el calculo del numero 30 de Fibonacci demorará a l rededor de 5 segundos, para el numero 40 demorará unos minutos dependiendo del procesador que tengan. Si utilizan una cray esto sucederá un unos cuantos milisegundos. Hay quienes dicen que una cray se sale de un bucle infinito en 6 segundos.

Con el segundo programa logré calcular el numero 47 (2971215073), a partir del numero 48 empieza el desbordamiento. Existen otras formas de obtener el esto de números.

El programa para probar cualquiera de las dos formas es:

int main(int argc, char* argv[])
{
	if(argc <= 1)
	{
		cout<<"Modo de uso :"<<endl;
		cout<<"\t"<<argv[0]<<" N "<<endl<<endl;
		return 1;
	}
	cout<<Fibonacci(atoi(argv[1]));
	cout<<endl;
	return 0;
}

Si tienen problemas para compilar no olviden agregar el parámetro –lstdc++ al gcc (linux)

EXPRESS OLE DB – Visual C++

Cuando uno empieza a desarrollar aplicaciones en Visual C++ y tiene la necesidad de acceder a datos, se presentan muchas alternativas para ello. Muchas de las alternativas no se llevan bien entre ellas mismas lo que hace que la migración o el cambio de tecnología sea doloroso (ADO, DAO, OLE DB, etc)

Sypram es una compañía que ha desarrollado una librería que permite realizar una conexión a una base de datos desde Visual C++: EXPRESS OLE DB es una librería completa que extiende el uso de OLE DB sin la complejidad de éste. Es de muy fácil utilización y una alternativa muy robusta para el acceso a base de datos en Visual C++.

Actualmente utilizo esta librería en mis aplicaciones, pero aun sigo utilizando DAO como segunda alternativa.

Lo mejor de todo es que esta librería es de de distribución LIBRE. Puede ser descargada desde:
http://sypram.com/Download.htm

TLC y las patentes de software

Por: Dr. Ernesto Cuadros


Estimados amigos,

Hace tiempo que se vienen ventilando en nuestra sociedad los
posibles beneficios que traeria firmar el TLC con USA. Casi todos los
dias escucho propaganda de todo tipo al respecto tratando de
concientizar a los peruanos de los beneficios que tendriamos. El
Colegio de Ingenieros tambien sera consultado, etc.
No dudo que podrianm haber beneficios al expandir nuestros mercados
pero debemos tener cuidado con ser victimas en esto tambien.

Una de las cosas que muchos ignoramos es que el TLC impone una
seria de patentes entre ellas las de software. Para muestra un boton:
sabian que Microsoft ha patentado el concepto del doble click del
mouse? Eso significa que nadie puede usar ese concepto sin estar
obligado a pagarles o a negociar con ellos.

Entremos a google al siguiente link:
double-click patent

y entremos al primer link que aparece en la lista y que pertenece a
la Oficina de Patentes de los Estados Unidos y donde vemos la patente
numero 6,727,830 a nombre de Microsoft Corporation. Lean lo qeu ellos
reclaman en la seccion de *Claims.*

Analizando con calma este asunto significa que ningun otro sistema
operativo esta libre de usar el doble click para iniciar una
aplicacion. Que les parece?

En la practica significa que el estado peruano estaria sepultando
todo tipo de iniciativa de desarrollo de software peruano sin
depender de la voluntad de Microsoft.

Les agradeceria que le hagan llegar este email al embajador de USA en
Lima, congresistas involucrados, ministros y medios de prensa. Las
patentes de software no pueden estar incluidas en el TLC de ninguna
forma.

Puede ser que el TLC traiga beneficios pero este asunto de las
patentes de software es algo altamente cuestionable. Me parece tan
absurdo como si yo patentase que mi modo de caminar es intercalar los
pies para dar un paso (primero el izquierdo, luego el derecho, luego
el izquierdo de nuevo, etc.) Con esa patente podria salir a la calle
a exigir que nadie camine de esa forma y todos tendrian que saltar
dos veces con el pie derecho y despues recien poder cambiar al
izquierdo y podria enjuiciarlos o pedirles que me paguen si usan mi
patente.

Asi de absurdo como esta patente hay muchisimas mas que podrian
entrar en el TLC si no se tienen las cosas claras.

Saludos cordiales,

Dr. Ernesto Cuadros-Vargas
Sociedad Peruana de Computacion, Presidente

ASCII Art

ASCII Art es una forma arte basado en caracteres ASCII (American Standart
Code for Information Interchange), el lienzo es un archivo de texto plano, y la herramienta cualquier editor de archivos de texto.

Encontré miles de paginas relacionadas con éste arte. Pero con un solo link basta, Google tiene en su directorio un completo repertorio de enlaces a páginas que contienen ASCII Art:

http://directory.google.com/Top/Arts/Visual_Arts/ASCII_Art/


 .'/,-Y"     "~-.
 l.Y             ^.
 /\               _\_
i            ___/"   "\
|          /"   "\   o !
l         ]     o !__./
 \ _  _    \.___./    "~\
  X \/ \            ___./
 ( \ ___.   _..--~~"   ~`-.
  ` Z,--   /               \
    \__.  (   /       ______)
      \   l  /-----~~" /      -Row
       Y   \          /
       |    "x______.^
       |           \
       j            Y

Este arte se ha extendido tanto que existen herramientas como Figlet para los tipos de letra, aqui una muestra:

 _          _   _           _                _
| |    __ _| |_(_)_ __   __| | _____   _____| | ___  _ __   ___ _ __
| |   / _` | __| | '_ \ / _` |/ _ \ \ / / _ \ |/ _ \| '_ \ / _ \ '__|
| |__| (_| | |_| | | | | (_| |  __/\ V /  __/ | (_) | |_) |  __/ |
|_____\__,_|\__|_|_| |_|\__,_|\___| \_/ \___|_|\___/| .__/ \___|_|

También se han desarrollado técnicas que convierten una imagen de mapa de bits en un ASCII Art, en este caso se utilizan técnicas y algoritmos avanzados que tienen que ver con la tonalidad y densidad de los caracteres.

ASCII Art

En este enlace pueden ver esta fotografía representada en formato ASCII:

http://www.latindevelopers.com/ivancp/images/picture.htm

un dia especial

Para el resto de personas con las que me tope ayer … (20 Abril) les parecio un dia cualquiera, pero no lo fue para mi… por que ayer cumplí un año mas. Muchos de mis amigos se acordaron de mi y me saludaron. Un primo (Fredy) me llamo desde Pucallpa para desearme lo mejor y mucha gente a la que le tengo que agradecer el que se haya acordado de ése dia.

El ritual de la torta y la cancion con mis amigos mas cercanos (desde hace un tiempo) hace que uno se sienta importante. Honestamente no esperaba esa ceremonia, lamentablemente era miercoles y todos tenemos cosas que hacer. Lo mejor de todo es que la pasé muy bien.

Gracias a todos.

de navisoft a latindeveloper

Muchos de nosotros adoptamos (o se nos denomina) con seudónimo esto sucede cuando empezamos nuestra vida en el ciberespacio o cuando nuestros amigos simplifican nuestros nombres, comportamiento o parecido con algo. Algunos toman especial atención a la forma o pronunciacióndel nick, en fin… Incluso se pueden encontrar nick’s sumamente raros o extravagantes (huachafos) aqui una muestra de algunos nick’s que pueden ser considerados dentro de esa clasificación:

– – –^[nick]^– – –

•·.·´¯`·.·• nick•·.·´¯`·.·•

`·.¸¸.·´´¯`··._.· nick`·.¸¸.·´´¯`··._.·

(¯`·._) nick(¯`·._)

¯¨’*·~-.¸¸,.-~*’ nick¯¨’*·~-.¸¸,.-~*’

Oº°‘¨ nick¨‘°ºO

Algunos adoptan nombres de personajes famosos como neo o morfeo (de Matrix) en combinación de caracteres extraños que adornen la espresión.

En realidad, depende de cada uno. Es como la tonada de los celulares.

En el caso del mio (navisoft) empezó gracias a que una gran amiga (Danitza) me empezo a decir «navi» (inversa de ivan) y como casi todos los fanaticos de la programación (y todo lo relacionado) hice una combinación este apodo con «soft» … algo huachafo hoy en dia… Me quedé con ese nick varios años hasta hoy.

Hoy decidí cambiar por muchas razones, entre ellas por que «navisoft» ya es una marca registrada y ya no me agrada. Por otro lado Latindevelopers.com ha crecido y no se ve bien que el admin tenga un nick infantil como navisoft.

De ahora en adelante cambio de nick pero seré el mismo… es mas trataré de mejorar en todo lo que pueda… por que nadie es perfecto.

Ahora mi nick es «latindeveloper».

MySQL cada vez mejor

MySQL esta con nosotros desde hace ya mucho tiempo. Hemos podido notar que este gestor esta evolucionando cada vez y se esta convirtiendo en el gestor de datos que todos desearíamos que fuese.

MySQL se ha convertido en una seria amenaza para los gestores de datos como Oracle o SQL Server.

Segun un artíulo que encontre por la red:

MySQL toma nuevo impulso y ya es una seria amenaza para Oracle, IBM y Microsoft
Según varios analistas, la base de datos de código abierto MySQL puede convertirse en una serie competencia para gigantes como Oracle, IBM y hasta Microsoft. La última versión de esta plataforma libre incluye nuevas características -como sub-búsquedas y un nuevo formato binario- que fortalecen aún más su posición como una alternativa a las grandes empresas.

Estas no son novedades para quienes utilizamos constantemente MySQL, pero el resto ya lo esta empezando a tomar en serio.

MySQL y Visual C++

MySQL es un gestor de base de datos en plena evolución, inicialmente captó mi atención (como muchos) por que es liviano, rapido, confiable. Tiene algunos problemas en situaciones extremas, aun asi sigo siendo su fiel seguidor.

Como programador debo comentarles que, como casi todos los gestores, MySQL provee unas API’s que estan escritas en C/C++ las cuales pueden incluirse para implementar aplicaciones de acceso a base de datos sin necesidad de ODBC y esas cosas.

Para ello escribí un articulo respecto a eso: Como acceder a una base de datos MySQL desde Visual C++. Seguramente los seguidores mas romanticos del movimiento de Software Libre (el cual apoyo) se escandalicen al ver tal combinación, pero quienes utilizamos Visual C++ sabemos que no existe mejor compilador para Windows.

Estoy escribiendo un programa con las librerías GTK para que pueda correr en Linux. Pronto lo tendré listo.

Mientras tanto pueden descargar el articulo incluyendo el codigo fuente del proyecto y algunos archivos necesarios en esta dirección:

https://www.latindevelopers.com/ivancp/articulos/mysqlapi.pdf

Para que puedan tener mas referencia respecto a las API’s de MySQL pueden visitar:

http://dev.mysql.com/doc/mysql/en/mysql-apis.html

ADSL de Telefonica Apesta

He aqui un mensaje escrito por un amigo a la lista de la Sociedad Peruana de Computación. Con el que estoy completamente de acuerdo ya que soy uno mas de los afectados.


Estimados amigos,

Les saluda un mortificado usuario del servicio Speedy de Telefonica, el dia de ayer hubo nuevamente una de las grandes caidas de este servicio a nivel sur del pais.

Ahora bien este tipo de fallas del servicio de Telefonica son inaceptables dado que este servicio es fundamental al desarrollo de nuestra sociedad paralizando tantos actividades academicas como empresariales; ahora bien no se entiende en realidad la naturaleza de estas fallas dado que telefonica nunca explica el porque de las fallas de los servicios y que hara para que en un futuro no se vuelva a presentar, lamentablemnte no tenemos la posibilidad de cambiarnos de servicio a otro dado que estamos con el mejor de los males.

He estado comunicandome con el 104 para poder saber el porque y me puedan dar un numero de reporte de averia para poder presentar un futuro reclamo ante la autoridad competente (INDECOPI) pero sinceramente fueron seis intentos que logre tomar linea cada uno de 15 minutos escuchando la odiosa musica de espera y el sistema de telefonica simplemente me colgo me imagino por timeout; no teniendo absolutamente nada para poder realizar este reclamo ya que las llamadas al 104 simplemente no se registran en el estracto de llamadas que tengo a la mano.

La comunicacion nunca debe interrumpida debiendo tener la misma continuidad que el servicio telefonico normal, y las consecuencias monetatrias que este tipo de corte puede ocacionar a todo el mundo que nadie asume, las cabinas de internet simplemente pierden dinero (porque nadie entra), se caen ventas (las empresas no se pueden comunicar con sus proveedores), o simplemente como mi caso que no puedo presentar un bendita declaracion a la SUNAT por lo cual ya me clavo una multa más, estoy seguro que existen miles de casos algunos mas tragicos que el mio.

Pero bueno, realmente quien hace algo al respecto. supuestamente fueron dos veces que me aumentaron de velocidad una de 200kpbs a 400kpbs y ahora a 600kpbs y sinceramente cada dia noto mi linea mas lenta, cada vez que llamo me dice que si esta mas raqpido del 10% osea 60kbps(ni gundbound corre con eso bien) todo esta dentro de los rangos normales, venden un servicio de 600 ALGUIEN POR FAVOR DIGAME SI PUEDEN DESARROLLAR ESTA VELOCIDAD CON REGULARIDAD esto es falsa publicidad venden gato por liebre simplemente, el soporte de telefonica no da respuestas satisfactorias y nosotros simplemente estamos ACOSTUMBRANDONOS A UNA CONDUCTA PASIVA ante este tipo de atropellamiento.

Si bien telefonica regresa cierta cantidad de dinero por este servicio por destajo en el recibo telefonico, en la vida va a regresar todo lo que los usuarios pierden por la ausencia de este servicio.

Bueno sigo escribiendo este correo electronico fuera de linea esperando pronto porderlo enviar a la lista dato que solo Dios sabe cuando restableceran el servicio nuevamente y tratar de recuperar el tiempo perdido.

Ahora bien si alguien sabe de algun metodo para poder ponerle el pare a este ABUSO porfavor comuniquelo con la lista para que ya no nos agarren como a tontos como lo bienen haciendo desde

Saludos Cordiales

Guillermo Paredes

PD si alguien pudiera pasar este mail a otras listas de nuestra rama se los agradecere en lo profundo