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

Archive for the ‘Software Development’ Category

C#, XSD.exe, xsd2code and generating nullable fields+properties from an XSD with and without Specified fields/properties

Posted by jpluimers on 2016/07/27

It comes down to these cases for XML elements having maxOccurs="1" (which the default for maxOccurs):

  1. adding nillable="true" will convert from a regular type to a nullable type.
  2. adding minOccurs="0" will add boolean …Specified properties in the generated C# for each element.
  3. you can have both nillable="true" and minOccurs="0" in an element which gets you a nullable type and a …Specified property.

Note I’m not considering fixed or default here, nor attributes (that have use instead of minOccurs/maxOccurs, but do not allow for nillable) nor larger values of maxOccurs (which both xsd.exe and xsd2code regard as unbounded).

From the above, XML has a richer type system than C#, so in XML there are subtle a differences between:

  1. an explicit nil in the XML element
  2. the XML element being absent
  3. the XML element being empty.

Hopefully later more text and examples to show how to actually work with this.

Delphi related to minOccurs:

Note that xsd2code.codeplex.com (unlike XmlGen#) has at least two forks at github:

From the specs:

–jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Conference Topics, Conferences, Development, Event, Software Development, XML, XML/XSD, XSD | Leave a Comment »

Canonical overview on Writing to the Windows Event Log using Delphi – Stack Overflow

Posted by jpluimers on 2016/07/26

A while ago, StackOverflow user Kobus Smit did some brilliant editorial work that – due to current state of StackOverflow – sort of fired backwards: his question got marked as duplicate before he could post his excellent answer. After that answer was posted, the oh-so pride SO-demi gods never took any energy to revisit to see which answers were best.

His simple question:

How can my Delphi app easily write to the Windows Event Log?What is the difference between TEventLogger and ReportEvent? How do I use the ReportEvent function?

Which somehow should be encompassed by this Delphi 5 question (apparently that 15+ year old Delphi version is still considered current by the SO demi-gods).

The answer summarises and extends existing answers spread out over StackOverflow and adds an EventLog git repository wrapping the ReportEvent and RegisterEventSource (which somehow is always a pain: Delphi services for instance often forget that).

Lesson learned when doing editorial work:

  1. prepare both the answer and question in markdown off-line
  2. ensure you mention in the question that the answer is meant as collection of “best of” answers found elsewhere
  3. post the question and answer in rapid succession
  4. cross your fingers for the StackOverflow demi-gods being in a good mood

–jeroen

via: Writing to the Windows Event Log using Delphi – Stack Overflow

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 5, Delphi 6, Delphi 7, Delphi 8, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 1 Comment »

The five key phases of software development…

Posted by jpluimers on 2016/07/26

Every methodology has their own. I like the ones in the picture, of which the teacher obviously didn’t get them at all. Maybe because COP 3331 is about Object Oriented Design?

  1. Denial
  2. Bargaining
  3. Anger
  4. Depression
  5. Acceptance

Sounds familiar?

–jeroen

via: Name and describe the five key phases of software development….

COP 3331

COP 3331

 

Posted in Development, Software Development | Leave a Comment »

Powershell 4.0 hates Lucida Console and switches to raster fonts

Posted by jpluimers on 2016/07/25

PowerShell 4.0 is madly in love with "English (United States)"

PowerShell 4.0 is madly in love with “English (United States)”

A long time ago I started writing up my blog post like this in March 2015 when I bumped into this the first time when upgrading from PowerShell 2 to PowerShell 4:

It seems there is no real workaround:

Good and not so good news: after reading the below linked posts, this is what works:

  • PowerShell 4 and up works fine with any [WaybackLucida Console size (including 12) and boldness
    • only when the “Language for non-Unicode programs” is set to “English (United States)”.
  • PowerShell 4 works fine with [WaybackConsolas on any size and boldness
    • for any “Language for non-Unicode programs”

So if you’re like me and switch between “Dutch (Netherlands)” and “English (Ireland)” a lot (both use the EURO as currency, but have distinct enough other locale settings to cover a lot of European stuff) then you need to get used to the Consolas font.

Source:

Edit 20210930: a possible solution

I need to fire up some old systems having PowerShell v3 or v4 on them to test the below possible solution.

Read the rest of this entry »

Posted in CommandLine, Development, Font, Lucida Console, Power User, PowerShell, PowerShell, Scripting, Software Development, Windows, Windows 10, Windows 7, Windows 8, Windows 8.1, Windows 9 | Leave a Comment »

delphi – Building Multi threaded TCP/IP Server – Stack Overflow

Posted by jpluimers on 2016/07/21

On the research list: TIdSchedulerOfThreadPool (now that TIdThreadMgrPool is gone).

Need to manage the lifetime of these as I don’t want the threads to live forever, but also don’t want to make the instantiation cost too high.

Most likely I want to wait for them to finish as well upon process exit, so this might be worth a look as well:

–jeroen

Source: delphi – Building Multi threaded TCP/IP Server – Stack Overflow

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

the curse of tooling replacing double quotation marks with left double quotation marks and right double quotation marks – via StackOverflow

Posted by jpluimers on 2016/07/21

Most developers I speak to have trapped into a case of copy/pasting some source code containing quotation marks from documentation or post immediately failing on curly quotes like left double quotation marks () and right double quotation marks () that should have been regular double quotation marks (").

I’ve tried to search for a way to automate the replacement process to “ASCII quotation marks”, but not found an on-line engine yet. The best I could find was this post: java – Replacing unicode punctuation with ASCII approximations – Stack Overflow.

Note it’s not only the auto-correct of office applications. For instance “blog engines” like WordPress do that too, unless you add a code or pre around them:

  • code: "blog engines"
  • pre:
    "blog engines"

Very irritating, but apparently nowadays beauty trumps accuracy.

–jeroen

via: xampp – Apache Prefixing Path to Virtual Hosts Path – Stack Overflow.

Posted in Development, Software Development, Source Code Management | Leave a Comment »

Workaround for “Visual Studio 2015 C++ Compiler Secretly Inserts Telemetry Code Into Binaries” – Slashdot

Posted by jpluimers on 2016/07/20

Reader edxwelch writes:

Reddit user sammiesdog discovered recently that Visual Studio 2015 C++ compiler was inserting calls to a Microsoft telemetry function into binaries. “I compiled a simple program with only main(). When looking at the compiled binary in IDA, I see a call fortelemetry_main_invoke_trigger and telemetry_main_return_trigger. I cannot find documentation for these calls, either on the web or in the options page,” he wrote. Only after the discovery did Steve Carroll, the dev manager for Visual C++ admit to the “feature” and posted a workaround to remove it.

A Microsoft spokesperson confirmed the existence of this behavior to InfoQ, adding that the company wil be removing it in a future preview build. For those who wish to get rid of it, the blog writes:

Users who have a copy of VS2015 Update 2 and wish to turn off the telemetry functionality currently being compiled into their code should add notelemetry.obj to their linker command line.

Quoted in full as I’m baffled.

Source: Visual Studio 2015 C++ Compiler Secretly Inserts Telemetry Code Into Binaries – Slashdot

via: Dear developers, I thought you should know. Yours, privacy. http://m.slashdot.org/story/312289Jan Wildeboer – Google+

–jeroen

Posted in C++, Development, Software Development, Visual Studio C++ | 1 Comment »

Diffie-Hellman Key Exchange – YouTube

Posted by jpluimers on 2016/07/20

Great explanation of Diffie-Hellman Key Exchange – YouTube.

It is based on mixing colors and some colors of the mix being private.

Brilliant!

–jeroen

Posted in Algorithms, Development, Encryption, Hashing, https, OpenSSL, Power User, Public Key Cryptography, Security, Software Development | Leave a Comment »

Delphi packages I have disabled by prefixing their description with an underscore (and why)

Posted by jpluimers on 2016/07/19

There is a little trick to disable “Known IDE Packages”: you can stop Delphi from loading one by either making “Value data” of the registry blank, or prepending it with an underscore:

packages that might have been disabled, by checking any string entries where the data has been pre-pended with an underscore OR is blank

[WayBackAccess violation at address 00000000 read of address 00000000, when starting the IDE or opening a project after installing the updates

I’ve pre-pended underscores to some packages in the registry key [HKEY_CURRENT_USER\Software\Borland|Codegear|Embarcadero\BDS|Delphi\#.0\Known IDE Packages] and intend to keep the list below updated over time.

Note that you have to prepend the description with an underscore: it is not sufficient to add these to [HKEY_CURRENT_USER\Software\Borland|Codegear|Embarcadero\BDS\#.0\Disabled Packages].

Empirically, the Disabled Packages seem to work only for packages starting with dcl in their filename.

Read the rest of this entry »

Posted in Castalia, Conference Topics, Conferences, Delphi, Delphi XE8, Development, Event, Keyboards and Keyboard Shortcuts, Power User, Software Development | 5 Comments »

A New Parser Generator for C# – CodeProject

Posted by jpluimers on 2016/07/19

A while ago I bumped into this interesting bit: LLLPG (Loyc LL(k) Parser Generator) is a new recursive-decent parser generator for C#, with a feature set better than ANTLR version 2.

–jeroen

via:

Posted in .NET, C#, Development, Software Development | Leave a Comment »