Archivo de la categoría Programación

C+



Comunmente llamamos C+ o C+-, a aquellos desarrollos que se escriben en C++, pero sin utilizar paradigmas de orientación a objetos.

Estos programas, aprovechan la disponibilidad de compiladores de C++ en general más modernos que los de C puro, junto a ciertas características del lenguaje:
– Comprobación de tipos más estricta (sin conversiones implícitas).
– Obligatoriedad de prototipos de función.
– Argumentos de funciones por defecto.
– Tipo de datos bool para números booleanos.
– Excepciones.
– …

En cambio no requieren un diseño complicado en cuanto a la estructura y descendencia de las clases, ya que se evita su uso a toda costa.…

Continuar leyendo...

La potencia de TakeCommand y 4NT



Desde hace muchos años que me acostumbré a los archivos por lotes (BATch) mejorados de 4DOS (BTM). Hoy día, sigo confiando en ellos para realizar tareas comunes, aunque esta vez, debidamente puesto al día con Take Command y 4NT.

Como muestra, un botón:

@for /r %1 in (*.php; *.htm*; *.css; *.js; *.sql; *.txt) do (echo %1>>c:\report.txt & type /l "%1">>c:\report.txt & echo.>>c:\report.txt & echo.>>c:\report.txt & echo.>>c:\report.txt)

Lo anterior, recorre recursivamente todos los archivos de un proyecto web (HTML, CSS, Javascript, PHP, …) contenidos en una carpeta, y genera un listado de todos ellos, incluyendo nombre de archivo, números de linea y contenido.…

Continuar leyendo...

Visual Basic .NET no es Basic



Mucho se ha hablado de la revolución de Visual Basic .NET comparado con Visual Basic.

A punto está de aparecer Visual Basic .NET 2005, y ahora Visual Basic está totalmente orientado a objetos.

Lo que ocurre es que mientras que Visual Basic, era una extensión de BASIC (Beginner’s All-purpose Symbolic Instruction Code), Visual Basic .NET, no es una extensión de BASIC ni de Visual Basic. Es otra cosa.

¿Por qué? Muy sencillo:

1) BASIC nunca ha tenido operadores de incremento (++) ni decremento (–). A lo sumo algunos dialectos incluían funciones para tal menester (PowerBasic con su INCR y DECR).…

Continuar leyendo...

Composición de cadenas



Muchas veces componemos cadenas de texto estático en nuestras aplicaciones.

Si son largas, es una buena práctica dividirla en varias lineas de código fuente, haciendo más legible el contenido de la variable.

El problema es que solemos utilizar el operador de concatenación para unir las diferentes lineas en una sola cadena, y esto obliga a que la máquina deba ejecutar la concatenación, lo que hace que sea poco eficiente.

Es lógico, la concatenación de cadenas está pensada para realizar esta operación en tiempo de ejecución; por eso la mayoría de lenguajes permiten unir trozos de cadenas estáticas en tiempo de compilación.…

Continuar leyendo...

Presentación en Planeta Código



Juanjo Navarro de Planeta Código, ha tenido la gentileza de publicar en la Trastienda, mi presentación y la de mi bitácora.

Podéis encontrarla aquí.



Continuar leyendo...

Borland DeXter



Acabo de recibir el NDA (Non-disclosure agreement), es decir el contrato de confidencialidad, para formar parte del grupo de betatesters de la siguiente versión de C++ Builder por parte de Borland.

Por prohibición explícita, si soy aceptado, no se me permitirá revelar ningún detalle al respecto, por lo que posiblemente este artículo sea el único y último relacionado con el asunto.

DeXter es el nombre en clave de la próxima versión del Borland Development Studio, que incluirá en un mismo IDE (Integrated Development Enviroment), entorno de desarrollo integrado, a Delphi y a C++ Builder.…

Continuar leyendo...

V12 Database Engine



V12 Database Engine (V12-DBE), de Integration New Media, es con toda seguridad la peor base de datos que he visto hasta el momento.

Lo que más me gusta de V12, es el nombre que le han dado, muy racing.

Es de justicia reconocer, que escribir una base de datos con Director, tiene su mérito, igual que lo tendría hacer una web con Visual Basic; pero no es la tecnología más apropiada.

El motor, es lento, utiliza archivos binarios propietarios, y apenas aporta funcionalidades.

El cliente de gestión de bases de datos, está incompleto, contiene bastantes errores, y algunas decisiones de diseño incorrectas.…

Continuar leyendo...

Mala práctica 1



Ya adelanté hace algunos meses, que la mejor forma de aprender bien a programar es sabiendo que es lo que no se debe hacer.

Hoy inaguro la primera entrega, de lo que serán varios artículos comentando código que encuentro, y que me parece un mal ejemplo en algún sentido

El código, al ir detrás de la funcionalidad, es algo en lo que el cliente no se fija, y suele ser un aspecto descuidado por los programadores.

Una aplicación puede funcionar a las mil maravillas estando mal escrita, y no dará mayores problemas hasta que tenga que ser modificada, ya sea para añadir nuevas funcionalidades, mejorar procesos, o para corregir algún problema que se ha encontrado.…

Continuar leyendo...

Feeds temáticos



He implementado el soporte de categorías en los feeds de Simple PHP Blog.

Ahora es posible sindicar únicamente los contenidos que pertenezcan a la(s) categoría(s) especificadas utilizando el parámetro c.

Por ejemplo www.javiergutierrezchamorro.com/rss.php?c=5,3, lleva los contenidos de informática y coches.

El parámetro n con la cantidad de elementos a obtener sigue funcionando como anteriormente, pero lógicamente, trabaja en combinación con el anterior.

Poniendo www.javiergutierrezchamorro.com/rss.php?c=7&n=50, tendríamos acceso a los 50 últimos artículos de música.…

Continuar leyendo...

Camiseta Flash Lite



Hoy he recibido la camiseta de Macromedia por haber participado en el concurso de desarrollo para Flash Lite.

Como era de esperar, no me he llevado ningún premio, ni siquiera estuve en la short list.

Debo reconocer, que la camiseta es bastante chula, y lo mejor de todo, discreta, lo que me permitirá aprovecharla con más facilidad.…

Continuar leyendo...