Category: Tips and Tricks

  • openSSL vs. vcpkg – some strange experiences

    openSSL vs. vcpkg – some strange experiences

    Some unexpected experiences caused by the fact the vcpkg C++ package manager is still based on OpenSSL 1.0.2.

  • Process Status Analysis – the first steps

    Process Status Analysis – the first steps

    I am pleased to announce my first cross-platform and open source project, the Process Status Analysis tool, available on GitHub. The Process Status Analysis (psa) is a command line tool that offer some Operating System processes analysis features: – Get all processes loaded in memory information – Get process only used memory – Print processes tree – Top most “expensive” processes – Redirect output to a file

  • Finally, I got Windows 10

    This is a story of how I got over a blocking situation within some Windows 10 OS installs on my Samsung laptop.

  • Experiences with Adobe Acrobat/Reader Plug-ins

    I wrote this document after a challenging experience I had recently within an Adobe Acrobat/Reader plugin creation. Even if the Adobe’s SDK it’s nicely documented within PDF files, one of the major reason that determined me to write this article was the frustration I got sometimes when, for instance, trying to see “why the plugin […]

  • Getting Table’s indexes experiences – workaround

    Trying to get table indexes information in SQL Server 2012 I identified a strange situation within a specific method that I was using so long but it was not acting as expected in one situation. Usually, I got the right information about indexes but in one situation I encounter a strange behavior. It’s about having a clustered index into a scenario. I have a table that contains two indexes referenced to some fields: IndexField_1 and IndexField_3 mapped over int, NULL fields. When IndexField_1 is Non-Unique, Non-Clustered and IndexField_3 is Clustered index I get the right information. But if the index IndexField_1 is Clustered and the IndexField_3 is Non-Unique, Non-Clustered I get no information about IndexField_1 index (eg. szIdxName and szIdxColName are “” and their length is -1 that means SQL_NULL_DATA). Within while loop, with the next iteration I get correct information about the second index IndexField_3.

  • HTML files generation using XML and XSLT with Microsoft XML DOM API

    This short tutorial shows how easy it’s to generate reports in HTML pages using Microsoft XML DOM API together XML and XSLT. XML (Extensible Markup Language) became a universal standard of encoding data in a format that is both human-readable and machine-readable. It’s widely used in business applications and even Microsoft Office uses it into […]

  • Some experiences with the last world-wide WordPress brute force attack

    As you most probably know, this website uses WordPress. Last Saturday, trying to access the site admin area I was faced with an error generated by too many redirects. Having other things to do, I ignored it for that moment. Later a friend of mine published on his website some information about an existing world-wide […]

  • SubclassWindow() method issues in projects base on MFC Feature Pack

    The Problem Trying to paint a background image into client area of a MDI application build in VC++ 6.0 to VC++ 2005 IDE it’s not a difficult task. In case you need, you can find easily good references. For instance, there are two references from Microsoft (KB129471 and KB103786) and one I prefer: a FAQ […]

  • Several C++ singleton implementations

    This article offers some insight into singleton design-pattern. The singleton pattern is a design pattern used to implement the mathematical concept of a singleton, by restricting the instantiation of a class to one object. The GoF book describes the singleton as: “Ensure a class only has one instance, and provide a global point of access […]

  • Ubuntu – How to fix update errors for a server behind of a proxy

    If you’re behind of a proxy server and the IP address has changed (or proxy it’s a new node in your network topology) then probably when you’re trying to update your binaries then you’ll get a list of errors. [bash] W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/multiverse/i18n/Translation-en_US Unable to connect to 192.168.120.240:3128: W: Failed to fetch http://security.ubuntu.com/ubuntu/dists/oneiric-security/multiverse/i18n/Translation-en Unable to connect to 192.168.120.240:3128: [/bash] This happens because you’re unable to connect to Ubuntu mirrors. In order to fix this issue you have to edit apt.conf file settings. [bash] root@my-server:~# vi /etc/apt/apt.conf Acquire::http::Proxy “http://192.168.230.99:3128”; [/bash]

  • Adventures with _chkstk

    Called by the compiler when you have more than one page of local variables in your function. _chkstk Routine is a helper routine for the C compiler. For x86 compilers, _chkstk Routine is called when the local variables exceed 4K bytes; for x64 compilers it is 8K. That’s all that you get from _chkstk()’s msdn web page. Nothing more…

  • Flexible changes for product version properties – Visual C++ binaries

    Manually editing of binaries version in the resource editor of Visual Studio IDE is not a viable solution. If we have dozens of projects in our solution, then for each kit building we should need manual resources file edit. Otherwise, we can use a special tool that does this thing for us. Unfortunately this approach is not the most flexible and could fail. For our flexible binaries properties changes and in order to avoid manual edit for each rebuild we can create and include a header file (version.h) that contains some constants of product version and file version of our project (.rc files). We have to include only these constants into this file (version.h): #define PRODUCT_VERSION 4.3.2.198 #define PRODUCT_VERSION_STR “4.3.2.198” Then, for each .rc file wherever we have FileVersion and ProductVersion we have to use this constants. When we will build a new kit, we have to change only these constants and then to start the kit building process. Everything is fine until we add new controls in our projects resource files. Then, because of Visual Studio IDE automation we can get an unlikely surprise: the FileVersion and the ProductVersion properties could be reset to 1.0.0.0. In order to avoid this issue and edit the version only in a single place I propose the following workaround.