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 2020

What are the size restrictions for the VCL controls like TPanel and TPaintBox…

Posted by jpluimers on 2020/02/27

Via [WayBack] What are the size restrictions for the VCL controls like TPanel and TPaintBox.? Are they documented anywhere? I’m talking about placing these on a TScro… – Thomas Mueller (dummzeuch) – Google+:

Some Windows messages use the LPARAM to carry width and height, which allows only 16 bit for each.

So 32k-1 (or decimal 32767) is the maximum size of a GDI based visual element in Windows.

–jeroen

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

Redirect Detective – A Free Tool To Trace Where Redirects End Up

Posted by jpluimers on 2020/02/27

Cool tool, but be aware it does aJavaScript:xmlhttpPost from , so your data can be logged [WayBackRedirect Detective – A Free Tool To Trace Where Redirects End Up.

For http://www.xs4all.nl/~jp, it shows these redirects (where in bold I’ve listed the changes):

Oh and it runs this call: JavaScript:xmlhttpPost("/linkdetect.px")?word=www.xs4all.nl%2F%7Ejp from [WayBackredirectdetective.com/ajax.js.

Note that this shows more redirects than the plain http ones, so wget from [WayBack] wget – How do I display all URLs in a redirect chain? – Unix & Linux Stack Exchange shows this:

$ wget http://www.xs4all.nl/~jp 2>&1 | grep Location:
Location: https://www.xs4all.nl/~jp [following]
Location: https://jp.home.xs4all.nl/ [following]

–jeroen

Posted in *nix, *nix-tools, Communications Development, Development, HTTP, Internet protocol suite, Power User, TCP, wget | Leave a Comment »

emulation – How to safely remove/uninstall Android Virtual Device .img files added by Visual Studio Emulator for Android – Stack Overflow

Posted by jpluimers on 2020/02/26

Me at [WayBack] emulation – How to safely remove/uninstall Android Virtual Device .img files added by Visual Studio Emulator for Android – Stack Overflow:

Since after uninstalling the “Visual Studio Emulator for Android” component, you cannot get to the “AVD Manager” any more, you have to manually delete this directory:

%LocalAppData%\Microsoft\VisualStudioEmulator

This works for both Visual Studio 2017 and Visual Studio 2015.

In addition, you might want to run “AppWiz.cpl“, then remove “Android SDK Tools”, which is also not automatically removed by the Visual Studio installer (at least not in Visual Studio 2015).

This will get rid of the multi-gigabyte folder %ProgramFiles(x86)%\Android\android-sdk\

If you still need Android emulation, read these:

–jeroen

Posted in .NET, Development, Software Development, Visual Studio 2015, Visual Studio 2017, Visual Studio and tools | Leave a Comment »

What is the easiest way of getting Delphi to accept a newly added file as a frame and to treat it as such? – Stack Overflow

Posted by jpluimers on 2020/02/26

As this is still an issue with current Delphi versions: every now and then it looses which designers are needed for a frame:

[WayBack] What is the easiest way of getting Delphi to accept a newly added file as a frame and to treat it as such? – Stack Overflow (by Brian Frost)

<DCCReference Include="x\y\z\myFrame.pas">
  <Form>frameMy</Form> 
  <FormType>dfm</FormType>
  <DesignClass>TFrame</DesignClass>
</DCCReference>

Then check your .dfm file to see if it starts with the correct inherited or object as per Delphi – TInterfacedDataModule revisted – use ‘inherited’ in your .dfm files when your datamodules look like forms in the designer.

Oh and at design time, be very careful embedding frames. Better not to do it at all and for certain: do not embed frames in a nested way: [WayBack] Frames in 10.2.2 Hi Has anyone else had issues with frames under 10.2.2? The project seems to have lost its links to the frames? If I went to the Too… – Vince Bartlett – Google+

–jeroen

Posted in Delphi, Development, Software Development | 1 Comment »

Not all XSD mappings to programming language constructs are possible

Posted by jpluimers on 2020/02/26

This post is a reminder to myself that not all mappings from XSD to programming languages are possible.

There are many impossible cases, so this is just a general reminder.

A Delphi specific case for instance is the mapping of enumerations: one reason is that XSD enumerations are case sensitive, but the Delphi language is not: [WayBackUsing XML Enumerations with Delphi XML Data Binding Wizard – Stack Overflow.

More generic examples from my answer to the above question:

  • In XSD you can derive from an existing type in two ways: extending it and limiting it. Object Oriented languages only allow you extend when deriving.
  • Delphi is not alone in these kinds of limitations. Generating wrappers from XSD schema’s is the field of specialized tools, even in the Java or .NET world.

I’ve seen horrible things with wildcards that are sort of mappable to Java, but not to C#. This could likely go on for much longer…

–jeroen

Posted in C#, Delphi, Development, Java, Java Platform, Software Development, XML, XML/XSD, XSD | 2 Comments »

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?

[WayBackOne 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: [WayBacksglienke / 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 »

When you have physical access to a machine, assume it is compromised

Posted by jpluimers on 2020/02/24

When you have physical access to a machine, assume it is compromised.

Sometimes the compromise can be as simple as a HID device access:

–jeroen

Read the rest of this entry »

Posted in Power User, Security | Leave a Comment »

Tomato by shibby – upgrade procedure and cfg backup | LinksysInfo.org

Posted by jpluimers on 2020/02/24

Reminder to self: [WayBackTomato by shibby – upgrade procedure and cfg backup | LinksysInfo.org:

I keep a text file with the changes I’ve made after a fresh install and I keep the file updated as I make changes.

Re-configuring the router after that takes a bit of time, but it is not that bad. Toastman’s method (here) noted above as well as the methods described here and here can also be used, but I haven’t tried them.

which references:

–jeroen

Posted in Internet, Power User, routers, TomatoUSB | Leave a Comment »