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

Archive for the ‘Delphi’ Category

NTCore: interesting site about about system internals and software security

Posted by jpluimers on 2014/09/30

I recently bumped into the NTCore website by Daniel Pisti.

At a client without my own VMs, I wanted to create a DebugBreak like function in Delphi, which I remembered from my Turbo Pascal days to be something like Inline($CC). So searching for both Delphi and INT 3, I found an EXE injection page at NTCore.

In Delphi, you can do this with a procedure like this, which cannot be inlined because it has an asm block:

procedure DebugBreak();
asm
  int 3
end;

(Reminder to self: sort out what to do here to break on an iOS device; Xcode has an alternative)

The site has information about system internals and software security posted as articles until 2009,  when he switched to blog posts. Besides that, he has written a bunch of interesting articles at CodeProject. Read the rest of this entry »

Posted in Delphi, Development, Pascal, Power User, Software Development, Turbo Pascal, Windows, xCode/Mac/iPad/iPhone/iOS/cocoa | 3 Comments »

A few must watch videos on test driven development and unit testing

Posted by jpluimers on 2014/09/25

If you are going to do test driven development and unit testing, you should watch these videos and slide decks, most of them by Miško Hevery:

  1. Not a video, but a good starter: Guide: Writing Testable Code (or read the PDF version).
  2. 0:32:07 ▶ “The Clean Code Talks — Unit Testing” – YouTube.
  3. 0:37:56 ▶ The Clean Code Talks – Don’t Look For Things! – YouTube. Read the rest of this entry »

Posted in .NET, Agile, C#, Delphi, Development, Java, Java Platform, JavaScript/ECMAScript, Pascal, Scripting, Software Development, Unit Testing, VB.NET | 2 Comments »

Delphi poor mans debugging trick: approximate the source location of an exception address

Posted by jpluimers on 2014/09/24

A while ago, I had a client with an exception on a workstation.

There was no permission to run a debugger on their system, or use something like MadExcept or Exceptional Magic in their code base.

The exception looked like this:

---------------------------
Application Error
---------------------------
Exception EInOutError in module MyApplication.exe at 001656B1.File access denied.
---------------------------
OK
---------------------------

These are the steps to get at the source line in an x86 Delphi program (I still have to try the x64, but presume it works similarly): Read the rest of this entry »

Posted in Delphi, Delphi 2005, Delphi 2006, Delphi 2007, Delphi 2009, Delphi 2010, Delphi 7, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Development, Software Development | 3 Comments »

Abstract syntax tree builder for Delphi

Posted by jpluimers on 2014/09/20

So I won’t forget: Abstract syntax tree builder for Delphi.

Abstract syntax tree builder for Delphi
DelphiAST Announce
roman.yankovsky.me

Based on CastaliaDelphiParser. Published with MPL license.

–jeroen

via: Does anyone know of a way to get an AST of a Delphi unit? Out of the various….

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

ModelMaker Tools released Code Explorer v 11.1.0 with Delphi XE7 support (via: ModelMaker Code Explorer: Refactoring made Easy! – Class Explorer, Refactoring Browser for Delphi.)

Posted by jpluimers on 2014/09/18

Nice!

On September 17th 2014 ModelMaker Tools released Code Explorer v 11.1.0 This update includes Delphi XE7 support.

–jeroen

via ModelMaker Code Explorer: Refactoring made Easy! – Class Explorer, Refactoring Browser for Delphi..

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

Continua CI – v1.5.0.295 Released. Critical bug fix for Git; requires resetting your Git repositories

Posted by jpluimers on 2014/09/18

If you run Continua CI 1.5.x.y and use Git then make sure you upgrade to at least Continua CI 1.5.0.295 (get it from the Continua CI download page).

Click on the shield icon, followed by

Click on the shield icon, followed by “CI Server”

After that, reset all your Git repositories in ContinuaCI.

To view all the repositories on the server, follow either of these steps:

  • A:
    1. Logon as an administrator with the rights to view all repositories on the Continua CI server.
    2. Click on the shield icon in the top bar.
    3. Then click on “CI Server”.
    4. In the list on the left, scroll down and click “Repositories”.
  • B:
    1. Logon as an administrator with the rights to view all repositories on the Continua CI server.
    2. Note the URL in the address bar of your browser (for instance http://localhost:8080/ci).
    3. Replace the /ci part of your URL with /administration/ci/repositories (so you end up at something like http://localhost:8080/administration/ci/repositories).
    4. Go to that URL.

Now you are in the repositories section, where you see all the repositories configured on the Continua CI. Each repository has a [Reset] link in the right most column.

Then follow these steps: Read the rest of this entry »

Posted in .NET, Continua CI, Continuous Integration, Delphi, Development, Software Development | Leave a Comment »

Delphi: considerations regarding rendering performance improvements for FireMonkey applications (via: +Simon Stuart)

Posted by jpluimers on 2014/09/15

Simon Stuart yesterday posted a very interesting post on G+ that explains on this (edited) topic:

#Rendering   I was having a conversation last night … with +David Berneda regarding rendering performance improvements for FireMonkey applications.
Specifically, custom drawing/rendering on a FireMonkey Canvas.

I just want to summarize the points I raised, and some of the conclusions I’ve come to having been working with rendering in FireMonkey since the end of June this year.

–jeroen

via: Simon Stuart rendering performance improvements for FireMonkey applications. Specifically, custom drawing/rendering on a FireMonkey Canvas.

Posted in Delphi, Delphi XE5, Delphi XE6, Delphi XE7, Development, FireMonkey, OS X FMX, Software Development | 3 Comments »

Continua CI Update 1.5.0.278 for breaking change (via: Version 1.5 History | Continua CI)

Posted by jpluimers on 2014/09/11

For a breaking issue, there has been an important bug fix to Coninua CI. From the downloads page:

From the change log:

Read the rest of this entry »

Posted in .NET, Continua CI, Continuous Integration, Delphi, Development, DVCS - Distributed Version Control, git, Mercurial/Hg, Software Development, Subversion/SVN | Leave a Comment »

Reminder to Self: write Eurekalog article about finding cause for hard to catch Access Violations in Delphi

Posted by jpluimers on 2014/09/11

Reminder to Self: write Eurekalog article about finding cause for hard to catch Access Violations in Delphi

–jeroen

via: web services – Access Violation (Delphi) – except the first run – Stack Overflow.

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

Continua CI Version 1.5 has been released (build 1.5.0.268); smaller, faster, loads of new features; Spring4D XE7 builds automated

Posted by jpluimers on 2014/09/10

I’m really happy that Continua CI Version 1.5 got released a few hours ago as per the Continua 1.5 released announcement.

It means that my Build Automation Session during the Dutch Delphi 2014 conference tomorrow can range from:

  • build using MSbuild from the command-line
  • build batch files
  • build using a custom front-end
  • build using Continuous Integration front-end

The session will explain lots of details about what various Delphi versions do, how to cope with dependencies, etc.

In the mean time, the preliminary Spring4D work on build automation is visible to guest users. Those include building for Delphi XE7 for the Win32, Win64 and OSX32 targets (in Debug and Release mode).

There is a huge list of Version 1.5 History @ Continua CI changes, which is partially quoted below.

For me these are the most important:

  • in-place upgrade without having to do any changes on my part
  • truckload of new features (including Delphi XE7, NuGet and Fake F# support)
  • smaller
  • faster

(as a side note: also FinalBuilder 7 was recently updated to support Delphi XE7)

In general, I like Continua CI a lot, most importantly because:

  • it is very stable
  • it has native support for a wide range of software development tools (including Delphi, Visual Studio and much more)
  • supports DVCS (like Git/Mercurial) just as you expect it to
  • if something breaks, you get a response and fix very very soon

You can download the new version through the Downloads @ Continua CI. These are the direct links:

For a breaking issue, there has been an important bug fix, so the new downloads are:

I created an RSS feed through Page2RSS to watch any new releases of Continua CI.

Parts of the changes in 1.5.0.268 1.5.0.278

The full list of changes are at Version 1.5 History @ Continua CI.

Be sure to also look at the official Continua 1.5 released announcement.

Read the rest of this entry »

Posted in .NET, Continua CI, Continuous Integration, Delphi, Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Development, Software Development, Spring4D | 5 Comments »