The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • My Flickr Stream

  • Pages

  • All categories

  • Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 1,839 other subscribers

Unless you write an installer with the right manifest, don’t include Installer, Update, Upgrade, Setup, … in your EXE name

Posted by jpluimers on 2015/09/28

I’ve seen this question coming up a few times, and bumped into this at a client recently: the UAC dialog coming up when debugging a 32-bit executable.

This is caused (more details below) by Installer Detection Technology introduced in Windows Vista (with UAC) and tightened in more modern Windows versions.

The solution is to either:

  • not include Installer, Patch, Update, Upgrade, Setup, … in your EXE name
  • provide a correct manifest to your EXE (getting this right can be hard)
  • don’t use x86 as platform target

For software you don’t have source code for, you can alter the manifest with a requestedExecutionLevel elementFixing the way Vista Auto-detects Installers – Ben’s Writing.

A few links on Installer Detection Technology in Windows:

Read the rest of this entry »

Posted in .NET, .NET 1.x, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, .NET CF, C#, C# 1.0, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Delphi, Delphi 10 Seattle, Delphi 2, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 3, Delphi 4, Delphi 5, Delphi 6, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, RemObjects C#, Software Development | 1 Comment »

A while ago Allen Bauer commented on the working theory of Nullable in Delphi

Posted by jpluimers on 2015/09/25

I missed this last May, but revisiting some old G+ posts I saw Allen Bauer commenting:

Current working theory of Nullable<T>.

Nullable<T> = record
...
property Value: T read FValue; default;
...
end;

Using the default directive to “hoist” the operators of “T”. Currently the default directive only works for array properties by “hoisting” the ‘[]’ operator. Marking a non-array property with default will make the containing type behave as that type.

This, coupled with some intrinsic compiler knowledge of the Nullable<T> type will make Nullable<T> work without any addition of keywords or other standard functions or procedures.

Using the “default” directive on a non-array property will work for any type, except for having the null-propagation semantics.

When considering language features, I try and not only make it work for the intended purpose, but also broaden reach of any supporting feature. In the above scenario, even user-defined operators on “T” will be properly hoisted and used.

So hopefully, one day there will me more than Nullable<T> in Spring.pas which has been around for quite a while now..

–jeroen

Source: Delphi’s New Feature Desired: Nullable Types and Null Propagation Nullable…

Posted in Delphi, Development, Software Development | 5 Comments »

Does anyone have a proper solution for message “content preparation progress” when opening a PDF file?

Posted by jpluimers on 2015/09/25

It drives me nuts as the below “content preparation progress” solution fails for me on a Windows 8 system having Adobe Reader XI.

Anyone that has a proper solution?

Solution

  1. Go to Edit > Preferences > Reading.
  2. Under “Screen Reader Options” select “Only read the currently visible pages”.

–jeroen

Source: Message “content preparation progress” when opening a PDF file

Posted in Adobe, Adobe Reader, Power User | 1 Comment »

windows – Find out whether an environment variable contains a substring – Stack Overflow

Posted by jpluimers on 2015/09/25

Very smart case insensitive way answered by jeb:

if NOT "%foo%"=="%foo:bar=%" echo FOUND

–jeroen

via windows – Find out whether an environment variable contains a substring – Stack Overflow.

Posted in Batch-Files, Console (command prompt window), Development, Power User, Scripting, Software Development, Windows | Leave a Comment »

Workaround for Delphi 2010 error Fatal : F2084 Internal Error: AV00434055-RA37CCB72-0

Posted by jpluimers on 2015/09/24

Often in Delphi 2010, you can get an error like this:

C:\Program Files (x86)\Embarcadero\RAD Studio\7.0\Bin\CodeGear.Delphi.Targets(136,3): error : C:\Users\Developer\Versioned\Spring4D\Source\Base\Reflection\Spring.Reflection.pas(1647) Fatal
: F2084 Internal Error: AV00434055-RA37CCB72-0

There is a very simple workaround:

  1. If you are in the IDE: quit the IDE
  2. Delete all .dcu files the project generates
  3. If you were in the IDE: restart the IDE and reload the project
  4. Compile the project again

Note:

Sometimes it pays off back-porting to Delphi 2010: the generated executables are a lot smaller than more recent Delphi versions which can make a huge differenec when uploading many versions of bootstrap binaries to a version control system.

–jeroen

Posted in Delphi, Delphi 2010, Development, F2084, Software Development | Leave a Comment »

Syntax highlighting

Posted by jpluimers on 2015/09/23

Visual Studio 2013 syntax highlighting: watch the closing curly brace.

 Console.WriteLine(“URL IS : http://localhost/:{0}”, portnumber);

–jeroen

20141211-Syntax-Highlighting

Posted in .NET, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, Development, Software Development, Visual Studio 2013, Visual Studio and tools | Leave a Comment »

Do publish your .dproj/.groupproj in your version control systems (via: DelphiTools)

Posted by jpluimers on 2015/09/22

But I partially agree with the statement that Eric Grange made at DelphiTools as part of his post via Don’t publish your .dproj/.groupproj a few years ago:

Ad interim, .dproj are just a kludge by design

I completely disagree with hist blog post title: in my opinion “Do publish your .dproj/.groupproj in version control systems”

The discussion that followed in the comments was quite interesting: to bad I missed it back then.

Both .dproj and .groupproj are indeed a bit of a kludge. The main reason is that there is little documentation about them on the Embarcadero sites: most of it are threads on the forums.

msbuild

If you remember that basically they are just msbuild XML files, which is part of the .NET 2.0 framework and higher, and both extensively documented and extendable, then it gets much easier. Read the rest of this entry »

Posted in Delphi, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 8 Comments »

Too many WLANs…

Posted by jpluimers on 2015/09/21

32 WLANs just on the ground floor…

Name (SSID) Channel MAC Address
ASUS-RT-N66U-PSO-1-2.4 6 10:BF:48:D3:3D:20
ASUS-RT-N66U-PSO-1-5 44 10:BF:48:D3:3D:24
UPC0053284 1 80:C6:AB:08:89:88
Ziggo 1 82:C6:AB:08:89:8A
WLAE-AG300N-PSO-2 11 4C:E6:76:0F:50:42
FRITZ!Box 7490 13 34:31:C4:CE:CE:AE
ASUS-RT-N66U-PSO-2-Tomato24 6 10:BF:48:D2:F5:E8
FRITZ!Box 7490 36 34:31:C4:CE:CE:AF
H368N8D6382 8 34:4D:EA:8D:63:82
Sitecom303E5E 11 64:D1:A3:30:3E:5E
KPN Fon 8 62:4D:EA:8D:63:83
VGV75198FB7F6 11 84:9C:A6:8F:B7:F6
Sitecom2eb939 6 64:D1:A3:2E:B9:3B
Sitecom_ee8c98 11 00:0C:F6:EE:8C:98
UPC515789 1 E8:40:F2:80:68:CF
dLAN Netwerk 11 BC:F2:AF:B5:C9:4A
ASUS-RT-N66U-PSO-2-Tomato50 36 10:BF:48:D2:F5:EC
Sitecom327664 3 64:D1:A3:32:76:64
Prins Maurits Experia 1 4C:09:D4:20:CC:55
VGV7519FC7C1C 3 4C:09:D4:FC:7C:1C
Ziggo 1 EA:40:F2:80:68:C1
UPC245262667 1 DC:71:44:80:6D:48
Sitecom0DDDD0 9 64:D1:A3:0D:DD:D0
VGV7519BD731C 13 88:03:55:BD:73:1C
Ziggo 13 82:C6:AB:2A:5A:A2
UPC0041308 13 80:C6:AB:2A:5A:A0
UPC0053284 1 84:1B:5E:39:B9:68
UPC738371 1 E8:40:F2:94:35:87
Miami Beach 1 9C:C7:A6:AA:CA:59
Ziggo 1 EA:40:F2:94:35:89
UPC2612067 6 88:F7:C7:4F:27:12


view raw

WLANs.md

hosted with ❤ by GitHub

The top floors are even worse. Some of them are mine, so I want to find a seamless handover for that. Which I only can do if I’ve merged my various networks that connect to the WiFi devices into a big one.

That requires a good but competitively priced multi-WAN router which I’m still searching for: any hints for such a device are welcome as well as configuration tips.

Some people seem to love Ubiquity, even for seamless. Are those straightforward to configure?

–jeroen

PS: Converted from my Fritz!Box copied Wireless Radio Networks table

Easily create tables in extended Markdown format supported by Markdown Here and GFM.

Source: Markdown Tables generator – TablesGenerator.com

Posted in Power User, Ubiquiti, WiFi | Leave a Comment »

How to automate Adobe Acrobat XI Standard to re-compress a lot of PDFs? – via: Super User

Posted by jpluimers on 2015/09/21

A while ago I asked compression – How to automate Adobe Acrobat XI Standard to re-compress a lot of PDFs? – Super User.

Back then it saved about 80% of the total file size. Very substantial.

Recently I needed to convert another (smaller, but still substantial) bunch of PDF documents and saw I forgot to post the solution here:
Read the rest of this entry »

Posted in Adobe, Adobe Acrobat, Everything by VoidTools, Power User, Windows, Windows 7, Windows 8, Windows 8.1 | Leave a Comment »

Can a Raspberry Pi do NAT port forwarding to a non LAN address? If so, what…

Posted by jpluimers on 2015/09/19

Can a Raspberry Pi do NAT port forwarding to a non LAN address? If so, what distribution would be the easiest one?

Johannes Self added some nice comments for generic Linux distributions in the G+ thread, but just in case my blog readers have even more concrete answers…

–jeroen

Posted in *nix, Development, Hardware Development, Internet protocol suite, Power User, Raspberry Pi, TCP | Leave a Comment »