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,862 other subscribers

Archive for the ‘QC’ Category

My initial thoughts on the new Community sites

Posted by jpluimers on 2014/04/06

(I just found out this post was marked “missed schedule” since April 6, 2014. It’s a [WayBack] known WordPress bug that on wordpress.com still raises it’s head every now and then. Sorry for that.)

The introduction of AppMethod wasn’t only introducing a new product based on the Object Pascal language and Firemonkey framework, it also shows which direction Embarcadero is taking with their community sites all hosted on community.embarcadero.com some of which replace parts of the EDN (Embarcadero Developer Network) sites.

These already saw the light:

Here is my initial impression on them. So below, phrasings like “it is” phrase how I feel about them.

The UI looks clean

Whereas most of the EDN sites look cluttered (some of which just look like a big landing page), the new sites look much cleaner. Less fuzz, more aimed towards their goal.

Existing EDN credentials are re-used

This is only part of the story. EDN has two credentials: a username and an email address. At the EDN sites, you can use either one. But not all community sites support that. I hope this means “not all community sites support that yet”.

So far, the Answers, Articles and Forums sections (which are hosted on the main site) understand authentication using either the username or email.

The Quality part

The community site is PHP based.

I have mixed feelings about this. On the plus side, PHP is used by many people, Embarcadero has a PHP based HTML5 Builder product (initially called Delphi for PHP, then RadPHP; well Delphi was almost called AppBuilder so that is still positive). On the negative side, even big PHP users like WordPress do horrible things with it (don’t get me started on their scheduling engine, or on breaking posts that contain source code).

Answers is new.

Answers does not have a predecessor within. It is a bit like a StackExchange site targeted at one product, but unlike StackOverflow, it feels more welcoming to new users. I hope that stays so, and that some people with capabilities like John Skeet will join it, and not the typical StackOverflow moderators  that think they can judge questions that are clearly out of their field of expertise.

I’m not yet sure how to maintain this in

Forums.

The forums server doesn’t keep articles forever: depending on the forum, the retention duration can be as little as a couple of months or less.

It means that valuable information gets lost as nobody puts this in the WayBack machine and the WayBack machine is not indexed by Google anyway.

Articles.

Currently there are the categories Tutorials, Technical Articles and Support.

Quality.

Quality is the future direction of QC. It is based on JIRA (from Atlassian). Whereas QC was developed in-house (initially bound to the then internal RAID) a long time before publicly accessible quality systems became widespread, JIRA is an external system.

QC is dated^w dead. Though [WayBack] it has a – for its age modern – WSDL API, the web interface is horrible as of nowadays standards, and even the [WayBack] Windows and [WayBack] Java clients mentioned on the [WayBack] QC home page are not a pleasant use (personally I still use the QC Plus client though it is not publicly available any more).

Embarcadero has used JIRA internally since at least 2009 (and presumably converted their internal RAID bug database to JIRA), so they have experience using it.

I love JIRA as it is the central piece in a lot of agile environments, has all its functionality on a web-based fashion backed with a publicly documented REST based  API so you can hook up native tools with ease and is in use by many closed and open source projects. There are options to host it yourself, or in the cloud or mix and match.

So I do welcome JIRA. But there are a few things that Embarcadero needs to fix:

  • Better integration with EDN login services (right now you can only login using the username you registered at EDN, but not with the email address you registered at EDN).
  • Making all reports of publicly available products also public just like on QC (I get it that bugs on products not publicly available are not visible to the public at large).

–jeroen

Posted in Appmethod, Delphi, Development, Missed Schedule, QC, SocialMedia, Software Development, WordPress | Leave a Comment »

Pre-build trick does not work to circumvent [BRCC32 Error] xxx.vrc(1): error creating xxx.res (via: Embarcadero Discussion Forums & StackOverflow)

Posted by jpluimers on 2014/01/10

Ever since around Delphi 2007, it started to use temporary .VRC files to re-build the project .RES file.

It confuses people, and with reason as the only public information about it on the dockwiki seems to be in the Version Info page (though there is more on the other embarcadero sites).

The reason is that parts of the .RES file are no more leading in the process of getting them from your project options to the final binary (EXE/DLL/BPL/…) of your project.

Delphi XE3 for instance can have these resource structures in the .VRC file:

Except for type 24, Delphi XE2 seems to have the same kinds of resource types.

All in all, most if not all of the .RES files are being auto-generated for at least a couple of years now so there is less and less need to put it under version control.

The problem is that if for one reason or the other, your project .RES file becomes readonly, and you get errors like mentioned in Why does a projects res file need to ….

[BRCC32 Error] xxx.vrc(1): error creating xxx.res

.RES in VCS or not?

Read the rest of this entry »

Posted in Conference Topics, Conferences, Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Development, Event, QC, Resource Files and Scripts (.res/.rc), Software Development | Leave a Comment »

Delphi XE3/XE4: removing empty .VLB files; XE5 update 2 and special offers are out. #codingindelphi

Posted by jpluimers on 2013/12/19

Even when not using Visual Live Binding, Delphi generates empty .VLB files in both Delphi XE3 (virtually always) and Delphi XE4 (most of the time).

Visual Live Binding is one way of binding data to UI in FireMonkey and can also be used in VCL, but does not have to (Alister Christie made a nice video ▶ Delphi Training Tutorial #77 – Visual Live Bindings – YouTube about it).

Empty VLB files, and a batch file to delete them

The “empty” VLB files are almost empty, as they are exactly 3 bytes long and contain the byte sequence EF BB BF which is the Unicode BOM (byte order mark) for the UTF-8 encoding. Read the rest of this entry »

Posted in Delphi, Delphi XE3, Delphi XE4, Delphi XE5, Development, Encoding, QC, Software Development, Unicode, UTF-8, UTF8 | Tagged: , | Leave a Comment »

Funny Delphi code of the day: on literals

Posted by jpluimers on 2013/12/09

The fact that the [WayBack] 31-character limit on ClientDataSet field and index names is worse, but I just encountered this GetParamNameWODog function in a Delphi 3rd party library:


function GetParamNameWODog(const ParamName: _string): _string;
begin
if (ParamName <> '') and (ParamName[1] = '@') then
Result := Copy(ParamName, 2, 1000)
else
Result := ParamName;
end;

What’s wrong with using the Length function here?

Yes, SQL Parameter names will probably less than 1000 characters, but then the 1000 literal should be a constant with a meaningful name, and the '@' literal should be too. Read the rest of this entry »

Posted in Delphi, Delphi XE3, Development, QC, Software Development | Tagged: , , | 12 Comments »

x64 debugging on Windows: usually not directly by the IDE, but trough a debug helper process (msvsmon / PAServer / dbkw64_16_0)

Posted by jpluimers on 2012/12/07

While developing x64 applications, most Windows development tools are actually running in x86 mode, and use an intermediate x64 layer to debug the x64 process even for local debugging.

For Visual Studio 2008 and up, this is msvsmon.exe (for Delphi XE2 and up it is PAServer.exe for remote debugging or [WayBack] dbkw64_16_0.exe for local debugging, other tools use a similar mechanism).

The fun thing with Visual Studio is that when msvsmon.exe fails to load locally, you get a misleading error message:

[Microsoft Visual Studio]
Error while trying to run project: Unable to start debugging.
The Microsoft Visual Studio Remote Debugging Monitor has been closed on the remote machine.
[OK]

I found two workarounds myself :

  1. Kill msvsmon.exe if it is running but Visual Studio cannot talk to it
  2. Restart Visual Studio if it cannot start msvsmon.exe

I learned the why from Steve Steiner: he posted the StackOverflow answer explaining msvsmon.exe is also used for local x64 debugging.

Delphi XE2 and up sometimes have a similar cryptic message (I forgot to jolt it down, next time I come across it, I will edit this blog post) and usually killing PAServer.exe or dbkw63*.exe or restarting the IDE solves it.

–jeroen

via:

Posted in .NET, Debugging, Delphi, Delphi x64, Development, QC, Remote Debugging, Software Development, Visual Studio 11, Visual Studio 2008, Visual Studio 2010, Visual Studio and tools | Leave a Comment »

Delphi 2007: reproduction and workaround for “[DCC Error] ….pas(26): F2084 Internal Error: AV21BCE0AC-R00000000-0”

Posted by jpluimers on 2012/07/31

Just in case you come across this error ([WayBackQC 108189):

[DCC Error] CompilerAVUnit.pas(26): F2084 Internal Error: AV21BCE0AC-R00000000-0

I had this error in a really complicated unit that I tried to backport from Delphi XE2 to Delphi 2007 (as there was some non-unicode compliant app that needed this).

I could not find it searching for F2084 Internal Error, so I sat down and trimmed it down to the CompilerAVUnit below.

The workaround is simple: remove the static; from method Outer and it compiles fine.

I will post more details on the static keyword in Delphi in a future blog post. For now I’ll keep it at this: Read the rest of this entry »

Posted in Delphi, Delphi 2007, Development, F2084, QC, Software Development | 8 Comments »

Applying XE2 Update 3: uninstall IDE Fix Pack first, then apply, then install updated IDE Fix Pack. Also update EurekaLog.

Posted by jpluimers on 2011/12/22

Before installing updates, it is always wise to read the release notes.

In this case, the below quote from the Release Notes for XE2 Update 3 was very important for me, as I use the IDE Fix Pack:

IDE Fix Pack Is Not Compatible with Update 3

The IDE Fix Pack for XE2 is incompatible with XE2 Update 3. If you have the IDE Fix Pack for XE2, you should uninstall the IDE Fix Pack for XE2 before installing Update 3. A revised version of the IDE Fix Pack for XE2 will be made available at http://andy.jgknet.de/fixpack/ .

The cool thing is, on the same day that Delphi XE2 Update 3 got releasedAndy also released the new FixPack 4.6 last week and also explained the cause of the incompatibility.

Note that because of the same reason, more products will need to be updated. EurekaLog also released an update, and I expect more vendors to release updates soon.

Update 3 breaks the monthly release cycle, but for a reason. This update contains way more fixes than the previous ones, in a much wider area and with short turnarounds between reporting and fixing (yes, it does pay to [WayBack] report bugs through QualityCentral). Just [WayBack] read the list of fixes. It is similar to the big updates we used to have for previous Delphi versions.

It also requires a lot more disk space, so make sure you have at least 5 gigabytes of free disk space.

Not related to Update 3, but still nice is that Thomas Müller made available for download the Expertimental GExperts version 1.35-2011-12-18 that is compatible with Delphi XE2. It includes a code formatter that has different bugs than the Delphi XE2 one, but for me usually works better.

–jeroen

via: Release Notes for XE2 Update 3 – RAD Studio XE2.

Posted in Delphi, Delphi x64, Delphi XE2, Development, QC, Software Development | 1 Comment »

EditorLineEnds.ttr – what is it?

Posted by jpluimers on 2011/09/29

Sometimes when you start Delphi 2005..2010 multiple times, you get an error message similar to this:

[Error]
Cannot create file "C:\DOCUME~1\username\LOCALS~1\Temp\EditorLineEnds.ttr". The process cannot access the file because it is being used by another process.
[OK]

Edit: It looks like some people have issues with Delphi 2006 and higher in combination with Windows 7  and higher and KB2982791 or KB2993651 installed. I only do for Delphi 2006 (for 2007 and higher I use the IdeFixPack from Andreas Hausladen). Thomas Mueller wrote a workaround which works in Delphi 2006 and up: Delphi 2007 error: “Cannot create file C:\Users\Admin\AppData\Local\Temp\EditorLineEnds.ttr” – Stack Overflow.

Since there are [WayBack] are [WayBack] a [WayBack] few [WayBack] QC [WayBack] entries on the EditorLineEnds.ttr file: what is it?

In fact, there are two files in that %TEMP% directory: EditorLineEnds.ttr and EditorLineEnds.for

EditorLineEnds.ttr is a TrueType font (you can copy it to EditorLineEnds.ttf and view it using the font viewer that Windows has built-in). Read the rest of this entry »

Posted in Delphi, Development, Power User, QC, Software Development | 2 Comments »

delphi has TTransparentCustomControl in the Controls unit

Posted by jpluimers on 2011/08/23

Wow, I never noticed that Delphi 2006 introduced the TTransparentCustomControl.

I spotted it a while ago from the delphi – Transparent TCustomControl? answer on StackOverflow.

It is not used in the Delphi VCL itself, but a google search reveals that a few people have actually used it, and Steve Trefethen (former member of the VCL team) mentioned it too.

Note that it contains a [WayBack] mouse interception bug that is still open.

–jeroen

Posted in Delphi, Development, QC, Software Development | Leave a Comment »

Delphi refactoring bugs – need input

Posted by jpluimers on 2010/11/04

One of the reasons that people are wary of using Delphi refactorings, is that some of them are not always reliable.

The only way to get them resolved is filing good bug reports.
But filing a good bug report is difficult: you need reproducible cases, and finding those can be tough.

Some of the refactorings can only be done by tools that have access to the complete compiler.
Which means that 3rd party tools like Model Maker Code Explorer, Castalia, cnPack and others cannot provide.

So I need some help in filing bugs centered around the refactoring topic:

  • Indicate weak points of the various refactorings
  • Help finding reproducible steps

Here are a few examples I filed recently:

  1. [WayBack] “No statements are selected” when performing “Extract Method” refactoring from case statement
  2. [WayBack] Complete case statement extracted when performing “Extract Method” refactoring from case statement
  3. [WayBack] Refactoring “Find Unit” often does not work any more

Please put your suggestions in the comments!

–jeroen

Some notes:

  1. Set Delphi “Block Indent” to 3
  2. Refactor – Extract method: it uses a Block Indent of 2.

Posted in Delphi, Development, QC, Software Development | 6 Comments »