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,365 other followers

Archive for April, 2018

4 of the Best Critical Thinking Resources for Learners to Have

Posted by jpluimers on 2018/04/20

Critical thinking resources like these are some of the best ones for learners to have. Share them so they can use them as references and tools for development every day.

Source: [WayBack4 of the Best Critical Thinking Resources for Learners to Have.

Via: [WayBack] have to print it and put it on my desk, been trying to do this for a long time, but this is a really good list to have handy – Lars Fosdal – Google+

Sharing them and the pictures below.

–jeroen

Read the rest of this entry »

Posted in LifeHacker, Opinions, Power User | Leave a Comment »

Fixing a broken mirrored Intel Matrix RAID-1 machine

Posted by jpluimers on 2018/04/20

A while ago I had an Intel Matrix RAID-1 pair of drives that got broken. One of them turned “red” and – since both drives were only a few serial numbers apart – the other was giving issues the moment I tried fiddling with it.

These actions failed:

  1. Windows image backup – would end up with a “blue” screen indicating Windows 10 had a problem and was trying to collect data
  2. Paragon HDM
    1. Migrating the OS to a brand new RAID-1 set
    2. P2V
  3. Disk2vhd would hang at the 100% completion mark

What had succeeded was a regular Windows backup (a non-image one).

This is what I finally did to get it working again:

  1. Kill disk2vhd after it hung a few hours at the 100% completion mark
  2. Verify with
  3. Mark the VHD file as online using diskpart (first atach the vdisk, select disk, then mark it online)
  4. Verify with chkdsk that the image was in fact without problems
  5. Detach the VHD file using diskpart
  6. Copy the VHD file to a HDD that Paragon HDM would recognise
  7. Use Paragon HDM to perform a V2P copy
    • Paragon expects a .VD file, but if you ask it to use all file types, it does recognise that VHD files contain disk images

–jeroen

References:

Posted in NTFS, Power User, Windows, Windows 10 | Leave a Comment »

How to switch off the sound on the desktop Hangout? – Google Product Forums

Posted by jpluimers on 2018/04/20

For a long time, this was hard: [Archive.isHow to switch off the sound on the desktop Hangout? – Google Product Forums.

A lot of people complained, often in a not so nice way.

The solution – that took years to appear – however now is very simple:

Click the options hamburger on the top left, then remove the checkmark for “Sounds for incoming messages”

Posted in Google, GoogleHangouts, Hangouts, Power User | Leave a Comment »

Tip for the doc team: make TMonitor.Enter docs more clear on non-blocking re-entry from the same thread

Posted by jpluimers on 2018/04/19

Even when the Delphi team was large, the documentation was lacking, so with the reduced Delphi team size, I don’t have high expectations of the below to get fixed.

But since much of the post Delphi 7 run-time library looks a lot like the .NET core, you can usually fallback to the Microsoft documentation.

Tip for the doc team: make http://docwiki.embarcadero.com/Libraries/en/System.TMonitor.Enter more clear. Especially that if the same thread calls TMonitor.Enter more than one time, it will allow entry without blocking as per System.Threading.Monitor.Enter Method (Object) documentation https://msdn.microsoft.com/en-us/library/de0542zz

(note that this got introduced in Delphi XE3: http://docwiki.embarcadero.com/Libraries/XE3/en/System.TMonitor.Enter)

–jeroen

via: [WayBack] Tip for the doc team: make http://docwiki.embarcadero.com/Libraries/Seattle/e…

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | 2 Comments »

Reminder to Self: `TProc` is incompatible with parameterless procedures on interfaces

Posted by jpluimers on 2018/04/19

I knew that methods on interfaces were not compatible with the procedure of object (like [WayBack] TProc)or function of object construct, but they are also not compatible with the reference to procedure or reference to function construct.

Via: [WayBack] I try to call an Interface method from TThread.Syncrhonize()…and Berlin don’t accept that… – Paul TOTH – Google+

If you want it fixed, vote for [RSP-13007] Interface methods are not assignable to anonymous method variable – Embarcadero Technologies (Thanks Stefan Glienke).

You can work around it with an anonymous method.

This won’t work:

program Project1;
{$APPTYPE CONSOLE}
uses
  SysUtils;
 
type
  ITest = interface
    ['{B5AD87E8-A3DF-4B83-BE14-997C2E76A06C}']
    procedure Run;
  end;
 
  TTest = class(TInterfacedObject, ITest)
    procedure Run;
  end;
 
procedure TTest.Run;
begin
  Writeln('PASS')
end;
 
var
  test: ITest; // <- change this to TTest and it compiles
  proc: TProc;
begin
  test := TTest.Create;
  proc := procedure begin test.Run; end; // <- this compiles
  proc := test.Run; // E2010 Incompatible types: 'TProc' and 'procedure, untyped pointer or untyped parameter'
  proc();
  Readln;
end.

–jeroen

 

Posted in Delphi, Delphi 10 Seattle, Delphi 10.1 Berlin (BigBen), Delphi XE, Delphi XE2, Delphi XE3, Delphi XE4, Delphi XE5, Delphi XE6, Delphi XE7, Delphi XE8, Development, Software Development | Leave a Comment »

 
%d bloggers like this: