For my link archive: [WayBack] Does anyone knows a existing implementation of bcrypt or scrypt for delphi? – Fabian S. Biehn – Google+:
–jeroen
Posted by jpluimers on 2020/02/19
For my link archive: [WayBack] Does anyone knows a existing implementation of bcrypt or scrypt for delphi? – Fabian S. Biehn – Google+:
–jeroen
Posted in Delphi, Development, Encryption, Power User, Security, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/18
Via [WayBack] We kick off a week of MVVM with an introduction of the Model-View-ViewModel pattern and how data binding is used to realize it. – Erik van Bilsen – Google+:
I wrote (and gave a few conference talks) about DSharp before, so the above is very interesting.
–jeroen
References:
Posted in Delphi, Development, Software Development | 2 Comments »
Posted by jpluimers on 2020/02/14
I wish I could have prepared something more substantial for the 25th Delphi birthday.
Alas: life has been tough (see below), so please keep an eye on these search terms, hash tags and start posts from past Delphi team key members:
Search term: “Interview with Anders Hejlsberg and Chuck Jazdzewski #Delphi25th”; highlights from it:
A few of my recent tweets:
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/13
If a part of a method requires implicit setup/tear-down code (for instance when using managed types like arrays, strings, etc), especially in rarely taken execution paths, then consider putting that code in a separate method.
I bumped into this recently, and found out it does not just hold for Delphi, it can happen in other languages too.
A Delphi example I found back is this one: [WayBack] Delphi Corner Weblog: Speed problems caused by code that never ran.
The problem with Delphi is that the language does not have local scope (variables are at the start of the method) which means the penalty is for the full method.
I bumped into this in C# where a piece of legacy code had the variables declared away from the block where they finally were used.
This historically grew, because originally they were used in more placed of the code.
The refactoring limiting the scope just never put the declaration close to the usage hence violating the proximity principle.
Via: [WayBack] Ouch! Code that doesn’t get executed can still cause other code in the same procedure to become much slower. Of course, in retrospect, once you know the… – Thomas Mueller (dummzeuch) – Google+
–jeroen
Posted in .NET, Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/12
Based on [WayBack] Bummer, cannot save a Delphi desktop named “Default Layout – right 3/4” – at load this one seems to be restored, but the list does not contain that entry. – Jeroen Wiert Pluimers – Google+:
[Main Window]) of a .DSK file omitting the final [ActiveProject] part of the .DSK–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/11
[WayBack] Catch Me If You Can:
the LLVM backend cannot return from a hardware exception (like AV) if the hardware exception is raised directly within a
try...exceptblock. It can only safely return if there is a function (method) call within thetry...exceptblock.
Via and by [WayBack] Dalija Prasnikar – Google+
–jeroen
Posted in Delphi, Development, Software Development | 1 Comment »
Posted by jpluimers on 2020/02/11
Via: [WayBack] Is there a keyboard shortcut to go to the next compiler error in the current source file? – Jeroen Wiert Pluimers – Google+:
Primož Gabrijelčič:
Alt-F7, Alt-F8 IIRC
And indeed, it is sort of documented as of Delphi 2007 for “Message View”, but appears to be a much older shortcut:
|
Shortcut
|
Action
|
|---|---|
|
…
|
…
|
|
Alt+F7
|
Go to previous error or message in Message View.
|
|
Alt+F8
|
Go to next error / message in Message View.
|
|
…
|
…
|
| Shortcut | Description | IDE Version |
|---|---|---|
| … | … | … |
| Alt + F7/F8 | Previous/next result (for Find in Files and Build Error Messages) | Delphi 7 and up |
I also completely forgot the compiler output is indeed a “Message View”.
–jeroen
Posted in Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/06
If you have enough guts to keep Castalia enabled and have Delphi Berlin or higher, then you can use this shortcut:
[WayBack] Tip: Use Ctrl+W to select content in the IDE code editor. Place your cursor some random piece of code, preferably deep in code that have nested block… – Lars Fosdal – Google+
–jeroen
Posted in Castalia, Delphi, Development, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/05
I could not find any official place where ReturnAddress is documented even though it is used at quite a few places in the RTL, VCL, FMX and 3rd party libraries like DUnitX, Spring4D, JCL, ReportBuilder, TeeChart.
I tried searching it in the contexts of Delphi 2007, Delphi 2009, but there is only a [Archive.is] different System.ObjAuto.TParameters.ReturnAddress documented in XE2 and higher.
procedure Abort; begin raise EAbort.CreateRes(@SOperationAborted) at ReturnAddress; end;
There is a (usually broken*) ReturnAddr function used in various places of the RTL/VCL/FMX and (therefore wrongfully copied) in many other peoples code.
function ReturnAddr: Pointer; // From classes.pas asm MOV EAX,[EBP+4] // sysutils.pas says [EBP-4], but this works ! end;
Related to the above is the documented ExceptAddr.
I’ve used this in my ExceptionHelperUnit to build a GetStackTrace function in the example gist below.
I found these posts documenting the behaviour of the above intrinsic functions and more:
–jeroen
Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »
Posted by jpluimers on 2020/02/04
In case I ever need to do some Bezier curve coding in Delphi: [WayBack] GitHub – zhaoyipeng/FMXComponents: Firemonkey Opensource Components
Via: [WayBack] Interesting set of components for FireMonkey – Christen Blom-Dahl – Google+
–jeroen
Posted in Delphi, Development, FireMonkey, Software Development | Leave a Comment »