The ToolsAPI interface IOTAComponent declares two methods for getting property values: [delphi] IOTAComponent = interface(IUnknown) // [...] { Given the index or name, returns the property value. The untyped var must be large enough to hold the returned value. If the property is a descendant of TPersistent, the return value is a IOTAComponent. For properties … Continue reading Beware: IOTAComponent.GetPropValue needs 4 bytes for an enum
Clone a Linux system without imaging it
When I want to clone a Linux system (or the boot partition/drive of any operating system), I usually use Clonezilla and make a image of the boot disk or boot partition. Unfortunately those image files can become quite large and it is a pain in the lower back to restore them on a smaller hard … Continue reading Clone a Linux system without imaging it
Installing Webmin on Ubuntu 16.04 LTS (Xenial Xerus)
The instructions how to install Webmin on Debian (and thereby also Ubuntu) seem a bit outdated because edits to the file /etc/apt/sources.list should be replaced by adding a file to the directory /etc/apt/sources.list.d/. So, instead of adding deb https://download.webmin.com/download/repository sarge contrib to the file /etc/apt/sources.list create a new file /etc/apt/sources.list.d/webmin.list with that content and possibly … Continue reading Installing Webmin on Ubuntu 16.04 LTS (Xenial Xerus)
Switching a XenServer VM from PVM back to HVM
(Disclaimer: I am by no means an expert with XenServer. So please don’t take anything you read here for granted. It’s my own experience and what I found in documentation and online.) If switching a XenServer Linux VM to paravirtualization fails, you usually end up with a non booting VM which is quite annoying. Switching … Continue reading Switching a XenServer VM from PVM back to HVM
How to shrink a Windows VM in XenServer
Apparently shrinking a Windows VM (actually any kind of VM) cannot be done with XenServer and XenCenter. You need to create an image of the original volume to a smaller virtual disk in order to do that. On top of that, the tool that used to work fine for this, Citrix XenConvert, has been deprecated … Continue reading How to shrink a Windows VM in XenServer
System wide mouse gestures with dzMouseGestures
When Mozilla released their last big update, they deprecated quite a few APIs for plugins. One of these plugins was FireGestures which I used to get some of the mouse gestures of Opera in Firefox. There are a few new plugins that try to replace FireGestures but none of them really seemed to work quite … Continue reading System wide mouse gestures with dzMouseGestures
Deleting a XenServer Storage Repository
(Disclaimer: I am by no means an expert with XenServer. So please don’t take anything you read here for granted. It’s my own experience and what I found in documentation and online.) In my previous post, I described how to add a Storage Repository to a XenServer using the xe command line tool. Now, since … Continue reading Deleting a XenServer Storage Repository
Installing XenServer updates via XenCenter fails
(Disclaimer: I am by no means an expert with XenServer. So please don't take anything you read here for granted. It's my own experience and what I found in documentation and online.) There is at least one reason why installing updates for XenServer via XenCenter may fail (with unhelpful error messages of course): You haven't … Continue reading Installing XenServer updates via XenCenter fails
Getting a good night’s sleep is important
Today, I finally found the time to read up on some rather ancient e-mails. One was from Paolo in the dxgettext mailing list about a bug in gnugettext.pas: With SVN revision 75 and the following, AddDomainForResourceString() has no effect, additional translations are not used. Suggested patch: original code from SVN revision 79: [delphi] function TGnuGettextInstance.LoadResString( … Continue reading Getting a good night’s sleep is important
GExperts Bugfixes
The Unicode issues in GExperts just don't end. Today I fixed three of them: [delphi] procedure bla; begin SomeVar := 3245; // german description with some äöüß to SomeVar SomeVar := 123; SomeQuery.FieldByName('GermanWordWithäöüß').AsString := 'some value'; end; [/delphi] (Yes, I know, this doesn't compile.) Move the cursor to the first occurrence of SomeVar and press … Continue reading GExperts Bugfixes