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

  • Email Subscription

    Enter your email address to subscribe to this blog and receive notifications of new posts by email.

    Join 717 other subscribers

Archive for February 25th, 2020

Delphi Conference 2018 – Barnsten.com

Posted by jpluimers on 2020/02/25

I missed this one, so I was glad I archived it because I was curious for Daan van der Werf – Delphi op de werkvloer “Groothandel & Magazijn”.

So here it is: [WayBack] Delphi Conference 2018 – Barnsten.com, with fixed and archived links where possible.

Presentations and code from the Delphi Conference 2018

…

–jeroen

Posted in Conferences, Delphi, Development, Event, Software Development | 2 Comments »

One Story Per “Sprint” – John Cutler – Medium

Posted by jpluimers on 2020/02/25

Food for thought: what is the hardest thing in your sprints, why, can you make it less hard?

[WayBack] One Story Per “Sprint” – John Cutler – Medium:

Delivering a “potentially releasable increment” after N days is not “hard”. It is not rocket science. (Almost) any team can do it.

Via: [WayBack] One Story Per “Sprint” – John Cutler – Medium – Marjan Venema – Google+

it is not funny to always feel behind; that it actually is detrimental to productivity to focus solely on efficiency, working hard and being hero’s; that it might be a good idea to start with changing your perspective and doing something which has a chance of being successful (doing a single story) and build from there.

It is not about looking busy, but it is about getting things done without having any fears.

–jeroen

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

TInterlockedHelper for Delphi interfaces: Spring.Reactive.pas

Posted by jpluimers on 2020/02/25

Reminder so self: [WayBack] sglienke / Spring4D / source / Source / Reactive / Spring.Reactive.pas — Bitbucket fragments:

type
  TInterlocked = SyncObjs.TInterlocked;
  TInterlockedHelper = class helper for TInterlocked // TODO: move to Spring.pas
    class function CompareExchange<T: IInterface>(var Target: T; const Value, Comparand: T): T; overload; static;
    class function Exchange<T: IInterface>(var Target: T; const Value: T): T; overload; static;
  end;

{$REGION 'TInterlockedHelper'}

class function TInterlockedHelper.CompareExchange<T>(var Target: T;
  const Value, Comparand: T): T;
begin
  Result := Default(T);
  PPointer(@Result)^ := CompareExchange(PPointer(@Target)^, PPointer(@Value)^, PPointer(@Comparand)^);
  if PPointer(@Result)^ = PPointer(@Comparand)^ then
  begin
    if Assigned(Value) then
      Value._AddRef;
  end
  else
    if Assigned(Result) then
      Result._AddRef;
end;

class function TInterlockedHelper.Exchange<T>(var Target: T;
  const Value: T): T;
begin
  Result := Default(T);
  PPointer(@Result)^ := Exchange(PPointer(@Target)^, PPointer(@Value)^);
  if Assigned(Value) then
    Value._AddRef;
end;

{$ENDREGION}a

–jeroen

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