Archivo de la categoría Software

Tu teléfono no tiene las apps de Google más recientes



Estaba disfrutando de unas placenteras vacaciones, cuando un email de Google ha venido a importunarme.

Se trata de un correo electrónico enviado a uno de mis buzones de gmail. Digo enviado a uno de mis buzones porque tengo varias. El contenido del correo es indicativo, saben la marca y modelo de mi móvil, lo cual es técnicamente sencillo de obtener, pero además saben que no tengo instalado Google Drive, ni Google Photos ni Chrome. Viene a decirme lo siguiente:

Javier, tu teléfono Samsung Galaxy S8, no tiene las apps de Google más recientes.

(adsbygoogle = window.adsbygoogle || []).push({});

No tengo porque ocultar que sigo prefiriendo Opera a Chrome o Chromium; que no me gusta Google Drive, o que Google Photos no me aporta nada.…

Continuar leyendo...

Análisis estático de FileOptimizer



Después de haberme centrado en el rendimiento de FileOptimizer, con análisis, limpiezas y optimizaciones regulares había llegado el momento de centrarse en su estabilidad y su seguridad.

Al igual que en cuanto a la eficiencia podemos guiarnos por nuestro “saber hacer”, apoyarse en herramientas es algo de gran ayuda. Además de las advertencias del compilador, AQTime fue de gran ayuda.

En el caso de la detección de leaks (fugas), las herramientas de análisis estático como CppCheck pese a ser en general demasiado estrictas y poco concluyentes, admito que me ayudaron a escribir un código mejor.…

Continuar leyendo...

DEP Terry Colligan



Muchos ya no recordaréis a Terrance “Terry” Colligan, el fundador de Rational Systems luego renombrada a Tenberry Software y que entre otras cosas desarrolló el extensor DOS DOS/4G que se recordaría por su versión recortada DOS/4GW incluida con Watcom C.

Doom, Descent, Duke Nukem 3D, Mortal Kombat o Rise of the Robots entre otros fueron los títulos que explotaron toda la potencia de los 32 bits gracias al trabajo de Terry.

Nacido un 25 de julio de 1947 en Arizona, había cumplido 70 años en el momento de fallecer a la edad de 70 años el pasado 18 de mayo de 2018. Extrañamente he tenido que ser yo, junto con Rugxulo el que nos hayamos percatado del triste acontecimiento 3 meses después.…

Continuar leyendo...

Visual C++ 2008 vs Visual C++ 2017



Tal vez recordéis Sieve en PowerBASIC Console Compiler 6 donde comparaba la última versión de PowerBasic Console Compiler (6.04) de 2011, con la anterior (5.0) de 2008.

Continuando con el artículo de WinAPI contra C, intrínsecas, C++ y ensamblador donde evaluábamos diferentes mecanismos de hacer lo mismo sobre Windows, hoy compararemos la evolución que ha tenido Microsoft Visual C++ en estos 11 años.

Pues aprovechando que me he encontrado de casualidad con los ejecutables de Visual C++ 2008 que publiqué en x86 vs x64 he procedido a comparar el rendimiento con el último Visual C++ 2017.…

Continuar leyendo...

UnQlite compilado para Windows (32 y 64 bits)



Han pasado unos años desde que compilara SQLite para Windows x64. Hoy ocurre algo parecido, y es que gracias al nuevo Take Command he descubierto esta nueva base de datos NoSQL.

A diferencia de MongoDB o Redis, UnQlite se ha diseñado para ser standalone, o serverless como ellos lo llaman. Es decir, funciona embebido sin necesidad de ningún servidor, lo que en ese sentido la hace muy parecida a SQLite. Es además código C portable.

El caso es que aunque su código es libre, y está disponible en GitHub, su licencia para entornos de producción es comercial.

Ofrecen binarios disponibles para Windows, pero sólo de 32 bits.…

Continuar leyendo...

WinAPI contra C, intrínsecas, C++ y ensamblador



Vamos a proseguir con las comparativas que iniciamos en WinAPI vs C en donde si recordáis comparábamos las funciones de la RTL de los compiladores de Visual C++ 2017 y C++ Builder 10.2.3 contra las funciones de la API de Windows.

Hoy vamos a centrarnos en Visual C++, y lo que procederemos será a comparar el rendimiento de las diferentes formas que permiten rellenar un bloque de memoria con un valor determinado. Vamos a usar FillMemory (API de Windows); memset (RTL de C/C++); __stosd (intrínseca de Visual C++); implementación en C puro, e implementación en ensamblador puro.

Los resultados inicialmente han sido previsibles, la implementación en C++, pese a usar 32 bits se ha mostrado notablemente más lenta.…

Continuar leyendo...

Improve, ingenuity, support, resume, designed y location



Continuamos con Remover, resumir y otros términos, en esta ocasión incorporando las sugerencias de nuestros lectores: Kabe, bianamaran y las mías propias.

Para aportar algo de variedad al asunto, nos centraremos en anglicismos, muchos de ellos provenientes del entorno tecnológico, en esta ocasión, partiendo de sus términos en inglés, que se adaptan equivocadamente al español.

Improve

No significa improvisar, sino mejorar.

verb
1. mejorar
2. aumentar

Ingenuity

No quiere decir ingenuidad, sino ingenio. Naivety o naiveté son los términos correctos para ingenuidad.

noun
1.…

Continuar leyendo...

RAD Studio Community Edition (gratis)



Os traigo un anuncio muy interesante, puesto que como muchos sugeríamos y deseábamos, finalmente Embarcadero ha decidido liberar una versión gratuita y verdaderamente funcional de RAD Studio, es decir, tanto de C++ Builder como de Delphi. Se trata de RAD Studio Community Edition, o dicho de otro modo, de Delphi Community Edition y C++ Builder Community Edition.

Si bien actualmente teníamos las ediciones Starter que solían ser gratuitas (aunque puntualmente se vendieron a 99€), Starter era una edición tan recortada del producto que no servía para casi nada. Esta nueva edición Community es similar en concepto a Microsoft Visual Studio Community, es decir, tiene las mismas funcionalidades que la edición profesional (RAD Studio Pro), pero con una licencia parecida a la Starter que conocíamos.…

Continuar leyendo...

WinAPI contra C



Muchas veces tiendo a usar funciones implementadas en la API de Windows en vez de las nativas de C/C++. El motivo es que al estar disponibles en el propio sistema evitamos que se enlacen en nuestra aplicación, y así el ejecutable resultante sea más compacto. El inconveniente es que probablemente sean más lentas, particularmente porque nunca generarán código en linea (inline).

Nada mejor que hacer una pequeña comparativa de Windows API (WinAPI) vs la librería de funciones de C (C RTL), comparando sus equivalente. A saber:

ZeroMemory contra memset.
FillMemory contra memset.…

Continuar leyendo...

C++ Builder in the requirements



Como integrante del programa MVP de Embarcadero fui invitado para confeccionar a un call for papers acerca de C++ Builder.

El tiempo apremiaba, así que opté por desarrollar con mayor formalisto, que no rigurosidad, lo que os explicaba en ¿Por qué C++ Builder. De esa manera es como surgió mi autoría en el memorando (whitepaper) C++ Builder in the requirements, y que fue sometida el pasado 13 de abril de 2018.

C++ Builder in the requirements

April 13th 2018. Javier Gutiérrez Chamorro

Abstract

One of the key factors for successful development projects starts in its roots. The development technology you use.…

Continuar leyendo...