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

Archive for the ‘Delphi’ Category

Keep consistent formatting – via: The Oracle at Delphi: Code is the language, formatting is the dialect.

Posted by jpluimers on 2017/06/13

When this developer finally went to commit his/her changes, they had also reformatted most of the codebase into his/her preferred coding style/format. This was even for files for which no other changes had been made!Imagine the next developer coming along and pulling down the latest changes from the source control system and trying to merge them into their own local changes.

Because of all these code-format-only changes, it became nearly impossible to merge any changes without going through every conflicted file and painstakingly reconcile the changes.

I’ve seen this happen on a few projects where there have been sequential single developers some of which reformatted the whole code base within a few days of taking over.

It made it impossible to perform a “blame” or proper history tracking of feature changes.

That increased the cost of maintenance a lot.

I’ve been on several teams that enforced a pre-checkin standardised formatting of the code. Only rarely that causes problems, usually it’s a blessing to as it makes for a consistent formatting of the code-base where it is much easier to cut the crap and focus on what the real problem is.

–jeroen

Source: The Oracle at Delphi: Code is the language, formatting is the dialect.

Posted in .NET, C#, Delphi, Development, Software Development | 2 Comments »

QC overview

Posted by jpluimers on 2017/06/12

I wish I made WayBack copies when I drafted the below QC post last year sans [WayBack] links.

Edit 20171221: since QC is back up, I’ve archived the queries. I still have to archive the reports.

Some QC entries I forgot to archive:

Luckily I did archive most of the QC entries I posted about after november 2013.

About 11-thousand of 135-thousand entries are archived by now, in part of a script I tried to make early 2016 (but crashed after a few thousand entries):

https://web.archive.org/web//http://qc.embarcadero.com/wc/qcmain.aspx

About 5 thousand entries are here, but I’m not sure which ones are duplicate:

https://web.archive.org/web//http://qc.codegear.com/wc/

About 20 thousand entries are here, but I’m also not sure which ones are duplicate:

https://web.archive.org/web//http://qc.borland.com/wc/

–jeroen

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

QC does this logon call to http://qc.embarcadero.com/coBugCGI.exe/soap/ICDSReportPublicInterface

Posted by jpluimers on 2017/06/09

I drafted this in 2014 and given the recent QC news:

I was quite shocked to see that the Embarcadero QC client logs in over HTTP, not over HTTPS, especially since it passes the password in plain text.

QC does this logon call to http://qc.embarcadero.com/coBugCGI.exe/soap/ICDSReportPublicInterface:


POST http://qc.embarcadero.com/coBugCGI.exe/soap/ICDSReportPublicInterface HTTP/1.1
SOAPAction: "urn:CDSReportPublicInterfaceIntf-ICDSReportPublicInterface#Login"
Content-Type: text/xml; charset="utf-8"
User-Agent: Borland SOAP 1.1
Host: qc.embarcadero.com
Content-Length: 665
Proxy-Connection: Keep-Alive
Pragma: no-cache
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/&quot; xmlns:xsd="http://www.w3.org/2001/XMLSchema&quot; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&quot; xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"><SOAP-ENV:Body SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"><NS1:Login xmlns:NS1="urn:CDSReportPublicInterfaceIntf-ICDSReportPublicInterface"><EMail xsi:type="xsd:string">nobody@example.org</EMail><Passcode xsi:type="xsd:string">password</Passcode><ClientID xsi:type="xsd:string">QCWINCLNT</ClientID><BDN xsi:type="xsd:string">1</BDN></NS1:Login></SOAP-ENV:Body></SOAP-ENV:Envelope>

Time to cut down on my usage of QC.

–jeroen

via: QC does this logon call to http://qc.embarcadero.com/coBugCGI.exe/soap/ICDSReportPublicInterface.

Posted in Delphi, Development, QC, Security, Software Development | 3 Comments »

Why I care about QC and the Delphi community.

Posted by jpluimers on 2017/06/09

QC now forwards to QP and it is no longer possible to see your older open QC posts. Since the RAD Studio IDE still appear to report issues to QC – how can we now keep track of our submitted issues?

When will the internal error reporting in RAD Studio file reports to QP instead of QC?

[WayBack] – Lars Fosdal – Google+

in a response to

[WayBackQuality Keeps Moving Forward – Community Blogs – Embarcadero Community

A few people wondered about my (QC) criticism and some mistakenly see this as frustration.

Not being an MVP any more allows me to continue voicing these, as I get these from fellow other Delphi developers and clients.

I’m not frustrated. I voice criticism on social media as I still deeply care about the Delphi community. They are entitled to excellent products and easily searched/obtained information, especially for less than current products as these are the ones that are still widely used and made Delphi great and Borland/Inprise/Embarcadero/Idera earn a lot of money. QC is an important part of that as it has input from a lot of knowledgeable people inside the Delphi community.

Of course I know that the Delphi team has lost a lot of valuable people and resources, their infrastructure is having difficulties (hence deleting forum posts, shutting down services and even suffer from outages every now and then for which I usually warned them shortly after they happened) and they have a truckload of things on their hands. But I hardly see them reach out to the community for any help, so there is not much I can guess on how they want to be helped.

Criticism that canalizes sentiments from parts of the community at least gives them a place to respond and help set things straight.

The reason I care about the Delphi community is that they still give me a big feeling of a kind of family helping each other.

Even being in the field for well over 20 years, I still find that there are lots of Delphi things I do not know or have forgotten. Asking around in the community in a proper way usually gets me going very quickly for the former. For the latter, I have wiert.me/category/development/software-development/delphi/ and Google Search.

I spent almost a day investigating which QC links I had already archived and which I didn’t. That’s the dedication I expect from the Delphi team as well.

BTW:

This is yet another reason to keep QC: even the Tokyo release notes refer to them: [WayBackList of new features and customer reported issues fixed in RAD Studio 10.2 Tokyo.

–jeroen

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

Functions over read-only properties: you cannot mark a property as deprecated in delphi – via Stack Overflow

Posted by jpluimers on 2017/06/07

I learned one of the reasons you might want to use functions instead of read-only properties from properties – How can I mark a property as deprecated in delphi? – Stack Overflow [WayBack]:

Delphi hinting directives: deprecated, experimental, library and platform cannot be used on properties but can be on other members (like fields, procedures and functions).

Since a read-only property is very much like a read-only field, but fields cannot be read-only it can make sense to replace the read-only property with a function. Then on the function you can place hint directives.

This can help enormously refactoring large code bases where – because of size – you cannot perform a certain replacement in one step.

–jeroen

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

Embarcadero QualityCentral is dead; man-decades of customer work down the drain

Posted by jpluimers on 2017/06/05

Without announcing an actual date, right before the weekend Embarcadero killed their [WayBack] QualityCentral publicly accessible and search engine indexed issue database.

So I wrote this on Google Plus:

Embarcadero just flushed down the drain man-decades of work and useful information. Mainly nilling the work done by their customers to document and inform about known issues, knowing search engines indexed it well and having some hope it would assist into maybe some getting resolved.

The documentation has not been updated and still references qc.embarcadero.com, for instance from [WayBackdocwiki.embarcadero.com/RADStudio/Tokyo/en/Quality_Central

They say the web service is still up, but that likely will die at the snap of a finger as well. Besides, these links mentioned in QualityCentral web services guide are dead too:

These still work though:

So all is left are memories from the past. And dead links from Stack Overflow, blogs and other sites to a defunct repository.

Dead links: q=-site%3Aqc.embarcadero.com+qc.embarcadero.com%2Fwc%2Fqcmain.aspx even from for instance EDN: q=”qc.embarcadero.com”+site%3Aedn.embarcadero.com

Luckily some of the links have been saved in the WayBack machine: https://web.archive.org/web//http://qc.embarcadero.com/

It would have been better if Embarcadero had put some time to archive everything there.

I doubt they will. There was a habit of reclassifying bugs in QC as “feature requests” which continues in Quality Portal (which requires login and is not indexed by search engines so has way less value).

[WayBack] And here is why I think twice before spending time to report feature requests to QP. And even bugs/unexpected behavior are regularly being sweeped under the carpet reclassified as new feature… – Stefan Glienke – Google+

Memories:

Oh well, life goes on and relying on one development tool or vendor is never a good idea.

–jeroen

 

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

delphi – How do I parse a web URL? – Stack Overflow

Posted by jpluimers on 2017/06/01

It looks like the platform-neutral TIdURI from Indy solves some corner cases that WinInet.InternetCrackUrl doesn’t.

Someday I’ll check it against the .NET Uri class and report back about this.

An addition, you might want to extend it as it lacks some features: Indy, TIdURI.PathEncode, URLEncode and ParamsEncode and more | Marc Durdin’s Blog [WayBack]

–jeroen

Source: delphi – How do I parse a web URL? – Stack Overflow

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

Working around “[dcc32 Fatal Error] F2084 Internal Error: DBG3133” or “[dcc32 Fatal Error] F2084 Internal Error: MA1243

Posted by jpluimers on 2017/05/30

Since Google has a hard time searching G+: [WayBackAnyone ever encountered a “[dcc32 Fatal Error] F2084 Internal Error: DBG3133″… – G+ – Jeroen Wiert Pluimers:

Anyone ever encountered a [dcc32 Fatal Error] F2084 Internal Error: DBG3133 in XE8 or newer?

I get it in XE8 version 22.0.19908.869 intermittently on a huge* project when compiling or building.

If it occurs, I have to:

  1. restart the IDE
  2. delete all DCU files
  3. build

Without deleting the DCU files, even a build throws the error after restarting the IDE.

The project never throws an AV while compiling as described in [WayBackQC #127380: F2084 Internal error AV0B8A47D2-R3E1D3CF8-0 when compiling project unless the IDE runs out of memory (which I now resolved with DDevExtensions).

Every now and then on compile it also throws [dcc32 Fatal Error] F2084 Internal Error: MA1243.

For the other error, the same solution applies: if you don’t, then the next one is a [dcc32 Fatal Error] F2084 Internal Error: DBG3133.

Both errors occur during the Linking stage.

–jeroen

*huge as in that I needed DDevExtensions to work around [WayBack] Is there any tool that clears the Delphi memory overhead when a “build all” switches to the next project in a project group? XE8 constantly runs out of memory… – Jeroen Wiert Pluimers – Google+

 

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

UsesHelperSetup.zip by Stefan Glienke for Delphi 10.0/1/2

Posted by jpluimers on 2017/05/25

[WayBack] Some while ago I started a plugin to easily add units to the uses clause just like you can do via quickfix in VisualStudio.I never actually polished it… – Stefan Glienke – Google+

UsesHelperSetup.zip download: https://1drv.ms/u/s!ArjIoB43KhwDg3Ju1tkHlJniN2WS (for now Delphi 10, 10.1 and 10.2: Seattle/Atlanta, Berlin/Big-Ben, Tokyo/Godzilla)

jeroen

 

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi 10.2 Tokyo (Godzilla), Development, Software Development | Leave a Comment »

Delphi 10.2 Tokyo Godzilla ISO and other download links including hashes

Posted by jpluimers on 2017/05/24

I thought I already posted this, but since hashes were mentioned at [WayBack] Still can’t get Rad Studio 10.2 to install on my laptop. It’ll install now, but then it can’t load several BPLs and then it crashes before the IDE gets … – Phillip Woon – Google+

From [WayBackcc.embarcadero.com/reg/delphi and [WayBackRad Studio Tokyo 10.2 | Board4All:

Read the rest of this entry »

Posted in Delphi, Delphi 10.2 Tokyo (Godzilla), Development, Software Development | 4 Comments »