Sometimes it happens we have to analyze dumps of our application: it’s a mixed .NET/C/C++ software, so the legacy libraries can trigger unhandled exceptions that cause the process to crash. In most of these cases either through the internal minidumper or thanks to the WER, the user is able to send us the core dump, […]
When writing software (in particular applications that can make intense use of the system resources, such as CPU, GPU, memory) it can be helpful to have a way to monitor how things are going, and this includes not only how the application is behaving but also if the entire system is sane and responsive. In […]
Whoever has used advanced audio apparels knows that the most used driver is the ASIO one: quite commonly, each audio interface is provided with a proprietary implementation of the ASIO specifications and the driver is generally used from within the Digital Audio Workstation or other applications that are able to stream through this protocol. ASIO […]
As a developer, one of the many concerns I have when I write and test software is “how much CPU does this thing use?” – and in Windows there are some ways to keep an eye on this, depending on the level of details you’re interested in. For example, the GetProcessTimes function is useful to […]
Kerberos is an authentication protocol originally developed by MIT and implemented by various vendors and systems; probably its best description is in the first paragraph that can be found in the MIT Kerberos site: Kerberos is a network authentication protocol. It is designed to provide strong authentication for client/server applications by using secret-key cryptography. A […]
There’s a famous article from Microsoft that says “Give me an handle, and I”ll show you an object“, dated July 15, 1993. There are a lot of Windows objects that can be retrieved using a handle, mainly GDI and USER objects but also Kernel objects are identified by handles – for example, the HeapCreate function, used […]
For the first time, this year, me and three colleagues of mine participated to the Google Hash Code challenge; this year the problem was open to Europe, Middle East and Africa: in the end 4856 teams has participated to the game. We knew we didn’t have too many chances to get a good result due […]
It’s quite common and easy to use legacy code from within a piece of managed code but sometimes it comes in handy to call managed code from legacy code. To do so, we’ll write a C++ class which will actually use a managed object but that has a plain, legacy interface. The first thing to do is to […]
The easiest, fastest and painless solution is using a pre-compiled package: some apt-get install stuff after added the proper repo of the distro generally does the trick. But fortunately GCC/G++ are always in progress tools and it is useful to be able to align to the most recent version autonomously.
For my Odroid U3 I wanted a default startup into a console login session to have the maximum amount of resources available but I also wanted a VNC Server configured so that I can start (and stop) a graphical session whenever I want.