Archivo de la categoría Programación

Código fuente de XPlorer



A pesar de la buena acogida que obtuvo XPlorer en su día, y la relativa vigencia que tiene gracias a Windows Marketplace, es un hecho que el proyecto lleva bastante tiempo abandonado.

Las causas del abandono son principalmente que los Shell Controls de Plasmatech, a pesar de los hackeos a que les sometí, se acabaron quedando cortos. La nueva versión 2.0 incluye sustanciales mejoras, pero haría falta volver a analizar el código, y aplicar los parches de nuevo.

Además hay que contar con el trabajo extra que supondría actualizarlo a C++ Builder 2006, con la nueva versión de los componentes VCL de TMS Software.…

Continuar leyendo...

'80004005' Error no especificado



Utilizando ActiveX Data Objects (ADO) con una base de datos Access a la que se conecta con el motor Jet suele dar problemas.

La conectividad a la base de datos funcionará perfectamente hasta que deje de hacerlo. Típicamente se presentará el siguiente mensaje:

Microsoft JET Database Engine error '80004005' Error no especificado

Supongamos que tenemos un código en ASP 3 con VBScript que conecta a una base de datos Access en versión 2000/2003 (Jet 4.0), o Access 97 (Jet 3.51):

Dim cnnConexion
Set cnnConexion=Server.CreateObject("ADODB.Connection")
cnnConexion.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("datos.mdb")

Para evitar el error 80004005, de Jet, lo conveniente sería convertirlo para que usara el driver de Access en vez del motor Jet.…

Continuar leyendo...

Redirección anónima



Aunque ya lo había utilizado en el pasado, he decidido documentar el funcionamiento de mi redirector anónimo por si alguien más lo quiere utilizar.

A veces queremos enlazar a algún sitio, pero sin darle ventajas en cuanto a enlaces entrantes, y no podemos especificar el atributo nofollow.

Otras simplemente no queremos que nuestro sitio aparezca como referrer del destinatario.

Pues es tan sencillo como enlazar a:
http://guti.awardspace.com/redirect.php?sUrl=TU_URL

Por ejemplo, si quisiera hacer un enlace anónimo a Google, sería así:
http://guti.awardspace.com/redirect.php … .google.es

¡Que lo disfrutéis!…

Continuar leyendo...

SFX con WinRAR



El compresor RAR que desde sus inicios ha ofrecido ciertas opciones de personalización en sus archivos autoextraíbles (SelF eXtracting).

Ya en las antiguas versiones 1.5 para DOS, incluían un relativamente potente lenguaje procedural de scripting. En los módulos autoextraíbles para Windows, aquella potencia ha desaparecido, pero a cambio nos permite realizar operaciones muy habituales de manera sencilla.

En muchos casos, no es descartable utilizar el propio WinRAR para reemplazar a programas generadores de instalaciones como NSIS, InnoSetup, Wise o InstallShield; siempre y cuando los procesos a realizar consistan en descompresión y poco más.…

Continuar leyendo...

Insertar saltos de linea en ALT y TITLE



En todo el tiempo que llevo tocando HTML, nunca había tenido la necesidad de insertar saltos de carro en los atributos ALT y TITLE.

Tras probar lo evidente: <br>, \n, he visto que con un retorno de carro físico, la cosa funcionaba. Aunque claro, con algunos problemas en cuanto a validación.

En conclusión, de estas formas no funciona:
<a href="#" title="Linea 1<br>Linea 2">Enlace</a>
<a href="#" title="Linea 1\nLinea 2">Enlace</a>

Y de esta forma, a veces da problemas de validación:
<a href="#" title="Linea 1
Linea 2">Enlace</a>

Finalmente he encontrado la clave.…

Continuar leyendo...

Mala práctica 4



La sección de malas prácticas de programación, la había dejado abandonada desde hace algún tiempo.

Hoy la retomo con un fragmento de código muy simple, que habla de consistencia.

Como podéis ver, es un PHP que se encarga de ir concatenando un string, con el contenido del mensaje que se mandará por email.

La mala práctica está en la falta de coherencia del código. En ese caso, a veces el operador de concatenación (.), va precedidos de espacios, y en otros casos no.

Puede parecer algo tonto, pero ello dificulta la lectura, y lo que es más importante, puede introducir problemas al efectuar búsquedas y reemplazos masivos.…

Continuar leyendo...

GCC y OpenMP



Personalmente no me sorprendieron las limitaciones de OpenMP en Visual C++. De la misma manera tampoco puedo decir que me encaje que el código generado por G++ sea menos eficiente que el de Visual C++.

Lo que no entiendo en absoluto, es por qué la actual versión de 4.1.2 de GCC/GPP, no soporta OpenMP.

Realmente es incompresible que un compilador abierto como GCC, no apoye un estándar también abierto como OpenMP, haciéndonos tener que esperar hasta la revisión 4.2.

Una vez más se demuestra que aunque Microsoft no hace todas las cosas bien, los demás tampoco consiguen hacerlas mejor. En el caso que nos ocupa, siempre nos quedará la ayuda del compilador de C++ de Intel.…

Continuar leyendo...

VS 2005 no es compatible con Vista



A finales de diciembre de 2006 apareció el Service Pack 1 para Visual Studio 2005.

A pesar de la proximidad con el lanzamiento de Windows Vista, incluso con esa actualización daba algunos problemas, por lo que hace pocos días Microsoft lanzó Visual Studio 2005 Service Pack 1 Update for Windows Vista, un parche de 28 Mb para ser aplicado sobre el SP1, que soluciona estos problemas.

Muy mal por los chicos de Redmond… ¡Que la herramienta de desarrollo estrella para Windows, haya necesitado 2 parches para soportar el nuevo sistema operativo!



Continuar leyendo...

Acelerar BDS



Si hay algo que defina los productos de Borland (ahora CodeGear) desde hace mucho tiempo, es la calidad y facilidad de sus IDE, y el pobre rendimiento del código generado.

Tanto Delphi, como C++ Builder, o el nuevo Borland Developer Studio 2006, están programados con Delphi, lo que hace que a no ser que tengamos una máquina muy potente, acaben siendo poco ágiles.

Para solucionar esto tenemos DelphiSpeedUp, que se encarga de aprovechar el trabajo realizado por los proyectos FastCode y FastMove, reemplazando las funciones de Delphi más usadas por versiones optimizadas para nuestra CPU.

DelphiSpeedUp es capaz de acelerar el desempeño de nuestro Delphi/C++ Builder/Borland Developer Studio desde la versión 5 hasta la 2006.…

Continuar leyendo...

Explorer PC



Explorer PC es un gestor de archivos que visto de lejos, tiene un gran parecido con el Explorer de Windows 95 y NT.

Si se entra más en detalle, veremos que en realidad es una aplicación DOS, que imita la apariencia del de Windows. Hasta aquí debemos reconocer el mérito del programador, que ha conseguido (sin toolkits de terceros), darle un increíble parecido. Para mi sorpresa, está escrito enteramente en ensamblador (TASM), lo que explica que el ejecutable no llegue a 12 Kb sin ninguna dependencia externa, y tenga una velocidad de ejecución excelente.

Para funcionar requiere solamente un procesador 80188/80186 con memoria XMS y una tarjeta gráfica VESA.…

Continuar leyendo...