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

RAD Studio 10 next stop: Berlin (via: The inheritance tree of all Fire Monkey objects) but would you really trust it?

Posted by jpluimers on 2016/03/22

Apart from the very interesting poster: the next stop is RAD Studio 10.1 Berlin Version 24.0.22718.6766.

Apparently, I missed the previous RAD Studio 101. Berlin rumour and Tim Anderson mentioning Berlin in New Delphi and C++ Builder Roadmap promises Linux server support « Tim Anderson’s ITWriting as in the Delphi roadmap for 2016 it’s still called BigBen.

The docwiki start page is there, just not open for the public yet: http://docwiki.embarcadero.com/RADStudio/Berlin/en/Main_Page. Like right before Delphi 10 Seattle, it’s only available for writer, l10n, RADBeta, ConnectBeta, Employee.

Similarly, https://sourceforge.net/p/radstudiodemos/code/HEAD/tree/branches/RADStudio_Berlin/ is not there: it was added 20160311.

Still the TLS issues have not been solved, so the very bad SSLLabs rating of F stays stays the same as at before the start the 10 Seattle era.

Also apart from some comments, there still is no central official statement of the recent web-site breaches.

I’m not sure what an eminent new Delphi version can be of use when you can’t be sure your account data is secure and the product download is valid (i.e. not tampered with).

In other words: would you really trust a new Delphi version? I won’t yet, at least not for now.

–jeroen

Source: The inheritance tree of all Fire Monkey objects.

RAD Studio 10 Berlin FMX hierarchy

RAD Studio 10 Berlin FMX hierarchy

Posted in Delphi, Delphi 10 Seattle, Development, Software Development | 1 Comment »

NHibernate, LINQ, Oracle and the placement of Take: avoid “Specified method is not supported.”

Posted by jpluimers on 2016/03/22

Even though as of 12c R1, Oracle supports a row limiting clause, NHibernate 4.2 with Oracle.DataAccess.dll 2.112.3.0 does not support that.

When you let it generate the SQL for a LINQ Take call to limit the number of results, you get an exception like this (full exception and stack trace are below):

System.NotSupportedException was unhandled by user code
  HResult=-2146233067
  Message=Specified method is not supported.

The place where you Take is important, as this does fail:
Read the rest of this entry »

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, .NET ORM, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Database Development, Development, NHibernate, OracleDB, Software Development | Leave a Comment »

The Default magic function in Delphi

Posted by jpluimers on 2016/03/17

Stefan Glienke worded it perfectly: Default(typeIdentifier) is a “magic” function that is implemented into the compiler and causes it to generate the correct code – like for records with managed fields it generates a call to FinalizeRecord and some instructions to zero the remaining fields.

Source: I know I can write MyRecordVar := Default(TMyRecordType) because I asked a qu…

–jeroen

Posted in Delphi, Delphi 10 Seattle, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

Reminder to self: app.config and “ORA-12154: TNS:could not resolve the connect identifier specified”

Posted by jpluimers on 2016/03/17

When you have one app.config for your whole set of DTAP environments (develop/test/acceptance production), every once in a while you get this error:

ORA-12154: TNS:could not resolve the connect identifier specified

For this particular setup, it means the replacement of parameters in the app.config with actual values from the DTAP went wrong (or was missing). For that we’ve some steps in both the PreBuildEvent and PostBuildEvent of the .csproj file:

PreBuildEvent:

del "$(ProjectDir)$(TargetFileName).config"
copy "$(ProjectDir)app.config" "$(ProjectDir)$(TargetFileName).config"

PostBuildEvent:

powershell -noprofile -file Replace-Parameter.ps1 -Path "$(TargetDir)$(TargetFileName).config"

The PreBuildEvent looks like it is not needed, but sometimes Visual Studio forgets to perform the copy action.

–jeroen

Posted in .NET, .NET 2.0, .NET 3.0, .NET 3.5, .NET 4.0, .NET 4.5, .NET ORM, C#, C# 2.0, C# 3.0, C# 4.0, C# 5.0, C# 6 (Roslyn), Database Development, Development, NHibernate, OracleDB, Software Development | Leave a Comment »

assembly:InternalsVisibleTo: .net – C# “internal” access modifier when doing unit testing – Stack Overflow

Posted by jpluimers on 2016/03/16

It seems I always forget about the InternalsVisibleTo attribute which allows you to specify which external assembly can see your internal types and type members:

Internal classes need to be tested and there is an assembly attribute:

using System.Runtime.CompilerServices;
[assembly:InternalsVisibleTo("MyTests")]

Add this to the project info file, e.g. Properties\AssemblyInfo.cs.

Thanks Eric Schaefer for that answer.

–jeroen

via .net – C# “internal” access modifier when doing unit testing – Stack Overflow.

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), Development, Software Development | Leave a Comment »

Bug squasing: A heisenbug is not your average bug.

Posted by jpluimers on 2016/03/15

I took the liberty to make an English translation of this very interesting German story about squasing an Heisenbug from Kristian KöhntoppHeisenbugsquashing bei +SysEleven: Sechs Monate Kernels crashen, aber jetzt isser tot….

Don’t forget to read (translated) comments in the original thread. Very interesting read!

I agree it’s in the Heisenbug category given “Time can also be a factor in heisenbugs, particularly with multi-threaded applications.”.

Anyway, the translation and original:

English:

Read the rest of this entry »

Posted in Debugging, Development, Software Development | Leave a Comment »

git-extras/Commands.md at master · tj/git-extras

Posted by jpluimers on 2016/03/15

[WayBack] git-extras is awesome: it adds many [WayBack] useful commands to git. Like [WayBack] git ignore and [WayBack] git-info.

For instance, this adds README.md~ to the .gitignore file:

git ignore README.md~

It makes command-line git much more usable, even so much that it lessens the needs of SourceTree and other UIs tools.

You can get it at the GitHub repository [WayBack] tj/git-extras.

Lots of help is at [WayBack] git-extras/Commands.md: it explains all the commands that git-extras adds.

Thanks [WayBack] nifr for posting about git-extras at [WayBack] Is there an ignore command for git like there is for svn? – Stack Overflow.

–jeroen

 

Posted in Development, DVCS - Distributed Version Control, git, GitHub, Software Development, Source Code Management, SourceTree | Leave a Comment »

Delphi: disable or change your welcome page to not use the Embarcadero site (as that site has been hacked twice this weekend)

Posted by jpluimers on 2016/03/14

Initial hack

Initial hack – image via the forums server.

This weekend, the Embarcadero web site was hacked by AnonCoders. Not once (see also [WayBack] G+ link and [WayBackDelphiPraxis link and [WayBackimage) but at least twice (see also [WayBackG+ link and [WayBackimage and [WayBackDelphi Praxis link and [WayBackimage) where the initial hacked simple text “Hacked By AnonCoders ~ Cyber Caliphate” after having been reverted back to the site – hopefully by Embarcadero staff – was replaced with [WayBack] more graphical content later on.

Hack presenting itself in the IDE

Hack presenting itself in the IDE – image via the forums server.

The Welcome Page inside the Delphi IDE uses the Embarcadero web site, so the Delphi IDE Welcome Page was also affected (see also [WayBackthis G+ link).

Because the IDE uses this on-line content, potentially any code could be executed inside the IDE (apart from that page being loaded over http, so any man-in-the-middle could abuse this, but I digress). This imposes a security risk as many developers run the IDE from accounts having more rights than the average user.

Read the rest of this entry »

Posted in Delphi, Delphi 10 Seattle, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, QC, Software Development | 13 Comments »

Yay. My first homebrew contribution got merged. https://github.com/Homebrew/h…

Posted by jpluimers on 2016/03/10

Yay. My first homebrew contribution got merged. [WayBackhttps://github.com/Homebrew/homebrew/pull/49928 – Jeroen Wiert Pluimers – Google+

Source: [WayBackYay. My first homebrew contribution got merged.

–jeroen

(somehow this was still stuck in the drafts of my plpost queue)

Posted in Apple, Development, Home brew / homebrew, PlantUML, Power User, Software Development, UML | Leave a Comment »

The huge Borland C++ Box

Posted by jpluimers on 2016/03/09

I never had the box, but someone is selling the [Wayback] 10+ kg Borland C++ 3.0 box:

The 10+ kg Borland C++ 3.0 box

image

Edit 2022-02-04: the above went away because of link rot, so I replaced it with an Archive.is version as it was copied at [Wayback/Archive.is] My First Windows C++ Application in Ages: Hello World in Win32 with Visual C++ 2010 – Pete Brown’s 10rem.net.

I did a bit of digging ([Wayback/Archive.is] borland c++ box – Google Search) and found [Wayback/Archive.is] Version information for older Borland/Inprise C Compilers has all the product box photos of these products:

Borland C++ 3.1 through 4.5 shipped in huge boxes, each even larger than the before it.

The box with the 1994 Borland C++ 4.5 and Database Tools supported DOS, Windows, and Win32. It had either a CD or 28 3.5″ HD diskettes.

The last version with 5.25″ diskettes was the 1991 Borland C++ 3.1: 15-5.25″ 1.2 Meg. Diskettes or 15 3.5″ 1.44MB disks.

Borland C++ 3.1 and Application Frameworks

–jeroen

Posted in Borland C++, C++, Development, Software Development | 2 Comments »