macOS Printing to an Unsupported Windows Printer

I have an old Canon MF5650 printer connected to a Windows Server 2016 as a network printer. It was already a challenge to find a working x64 Windows driver, let alone a driver for macOS.

Fortunately, macOS supports printing to PDF file natively, and copying that PDF file to a Windows computer and printing it from there can be automated.
Continue reading “macOS Printing to an Unsupported Windows Printer”

How to reset machine password without re-joining computer to a domain

Every computer joined to an Active Directory domain has its own special account in AD, meaning each computer actually has a “username” and a password of its own. The username is the computer name followed by a dollar sign ($). The password is automatically negotiated between computer and domain controller when you join the computer to AD and is renegotiated on a periodic basis thereafter. This password is called machine password.

For this or other reason, sometimes one needs to revert a member computer (or an AD) to a previous state in time. If computer and AD changed machine password meanwhile, and you restored only one of them to the state before that, passwords are out of sync. Users can no longer log in on that computer.
Continue reading “How to reset machine password without re-joining computer to a domain”

A wxWidgets dialog in a DLL plugin

One of my recent projects was a DLL plugin for another software. I decided to implement plugin’s configuration dialog in wxWidgets.

The plugin functions showing user interface usually get the HWND of the host window, so the plugin window can act as a child of the host window.

Though the task seemed simple and straightforward in the beginning, it turned out to comprise of many different problems to solve, before I got it working as it should.
Continue reading “A wxWidgets dialog in a DLL plugin”

QR Generator for Internet Explorer

Each time while browsing the web I came along a phone number I’d like to call, I had to type it on my phone number-by-number carefully.
Therefore, I went for a search to find a working IE Search Provider (Accelerator) for generating QR codes to no avail.
So, I’ve decided to put together useful pieces I did found, and make my own.
Continue reading “QR Generator for Internet Explorer”

AD Authentication Failure after Reverting to Previous Snapshot

A successful configuration of Samba and Winbind allowing users to login to a Linux virtual computer using ones Active Directory credentials might stop working after a few weeks. If the virtual computer was reverted to previous snapshot between machine password changes in AD, the AD controllers will not let the computer authenticate again due to machine password mismatch.
Continue reading “AD Authentication Failure after Reverting to Previous Snapshot”

Computing Block-wise Cross Correlation

The cross correlation of two vectors using discrete Fourier transform (DFT) is a popular method of searching the occurrences of one pattern inside another. It provides simple mean to detect echoes, specific patterns inside digital signals, signal comparison etc.

In some applications, one of the input vectors (signals) is much longer than another, or even of infinite length. For example: searching a transmitted signal’s echo in the received input stream in radar or sonar, or detecting an RDS signal inside a continuous radio transmission. In such applications one must compute the cross correlation of searched pattern and input stream in a block-by-block manner.

In this article I shall present a short MATLAB template to compute a block-wise cross correlation appropriate for searching a specific pattern vector inside a continuous input vector of indefinite size. Furthermore, I shall extend the algorithm to search for more pattern vectors simultaneously.
Continue reading “Computing Block-wise Cross Correlation”

Computing DFT of real signals in MATLAB

The discrete Fourier transform (DFT) calculates a spectrum of a complex input vector. However, the input vector is usually real, representing a sampled real signal. For real vectors (the imaginary part of all vector components is zero) the upper half of the resulting DFT spectrum is a conjugate mirror of the lower half. Could therefore the computation of the DFT of the real vectors be made with almost half the effort? Fortunately, yes [1]!

Since MATLAB does not provide a function for computation of DFT spectra of real signals out of the box, I developed my own to save time and space in my computations.
Continue reading “Computing DFT of real signals in MATLAB”

How to install VMware Tools on Linux

VMware Tools is a set of drivers and utilities to make a virtual computer perform better and faster inside a virtual hosted environment. It makes a virtual computer aware of its host at least to some degree.

Once I managed to install the VMware Tools on a Linux based virtual computer properly, I have decided to write it down for good.
Continue reading “How to install VMware Tools on Linux”