The Wiert Corner – irregular stream of stuff

Jeroen W. Pluimers on .NET, C#, Delphi, databases, and personal interests

  • My badges

  • Twitter Updates

  • Pages

  • All categories

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

    Join 1,839 other subscribers

Archive for the ‘Software Development’ Category

Maybe one day the Object Inspector gets a real overhaul

Posted by jpluimers on 2018/01/23

Maybe one day the Object Inspector gets a real overhaul and hopefully the first thing is someone fixing the F11 behaviour that – in the early days of real Delphi productivity – toggled between designer and object inspector.

Lets digress to that one first as it’s much related to Object Inspector productivity.

F11 four way toggle UX nightmare

Like F12 (that toggles between designer and code editor) it was a predictive two way toggle that never lost it’s state (since around Delphi 7 it’s a four stage toggle: designer -> object inspector -> code editor -> object inspector -> designer) but:

  • it’s hard to remember the current state (especially when switching between editor files or designer targets)
  • the sequence sometimes it forgets state
  • the sequence is unlike all other toggles such as F12 (designer/code editor) and Alt+F12 (view-as-designer/view-as-text) that are two-way.
  • it does not update the menu (that always shows “Object Inspector F11”, not the next phase in the stage)
  • makes it impossible to predictively and immediately go on one step to:
    • Object Inspector
    • Designer
    • Code editor

Quickly selecting a property or event by name

A long time before that (I forgot in which time frame, as in the beta-D1..D3 era, productivity enhancements were rapidly succeeding each other): when you start to type in the name column, it will select the property or event (depending on the tab you’re on).

At first that feature wasn’t documented at all for a very long time, not even in the [WayBackDelphi 2007 Object Inspector documentation around 10 years after this feature was introduced. So it became part of a lot of “Delphi productivity” conference sessions (I think Delphi “conference” productivity shortcuts will find you some).

Around Delphi 2010, it got documented in [Archive.isObject Inspector Keyboard Shortcuts – RAD Studio:

Tab+<letter> Jumps directly to the first property or event beginning with the letter.

Five more years later, the documentation got finally changed to use the “incremental search” coined in [WayBackMalcolm Groves — Incremental Searching in the Delphi Object Inspector.

Delphi Seattle documentation [WayBackObject Inspector Keyboard Shortcuts – RAD Studio:

Tab+<letter> Starts an incremental search on the Name column of properties and events. Use the backspace key to delete characters of your search pattern.

Slow productivity increases

Early 2012 and later that year, Uwe Schuster wrote two blog posts that are now only in the WayBack machine as his site vanished:

The most important features were

  1. the implementation of a 2005 feature request: [WayBack] QualityCentral: Add property filtering to the Object Inspector.
  2. the addition of “Favourite” properties tab at the top

The cool thing on the filter implementation is that it search both the properties and sub properties. Which made it very easy to edit the Color sub-property of a Font by just typing “color” (the filtering was insensitive too).

Later I found there is also a beta 6 on DropBox downloads saved from his site via [WayBackWhat bugs me ;-) about the new Communities is that you first have to join in …: [WayBackDropbox – Uwe Schuster

Some screenshots are at [WayBackTDelphiBlog: Revised Object Inspector для Delphi 2010-XE3 от Uwe Schuster. Обзор.

Half baked Delphi Seattle reimplementation

Two and a half years ago, [WayBack and Archive.isComing Soon to RAD Studio … Enhanced Designer Experience! – Community Blogs – Embarcadero Community suggested improvements for the Object Inspector. I was hoping it would mach or improve the Object Inspector Expert – as hinted a [WayBack] Open Delphi, select a component, move to the Object Inspector, select the filter box, and start typing… (Coming soon, among other Object Inspector improvements… – Marco Cantù – Google+ –  but it didn’t:

Maybe David Hoyle comes up with a proper implementation

Slightly more a year ago there was an interesting thread [WayBack] I always wanted an object inspector where i can tell, first item always ‘name’ second to Xth, left, top, width, height, etc… then the rest, i wouldn’t… – Attila Kovacs – Google+

David Hoyle – of OTA fame – responded, so basically this post is a reminder to see if by now he or someone else has come up with something better than Embarcadero did.

–jeroen

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

How can I reset a PC if I forgot the administrator password? – The Old New Thing

Posted by jpluimers on 2018/01/22

What I reboot three times is true.

[WayBackHow can I reset a PC if I forgot the administrator password? – The Old New Thing:

There is an emergency reset button that you can activate like this:

  • Turn off the computer.
  • Turn on the computer, but while it is booting, turn off the power.
  • Turn on the computer, but while it is booting, turn off the power.
  • Turn on the computer, but while it is booting, turn off the power.
  • Turn on the computer and wait.

After three failed reboot attempts, Windows goes into recovery mode and one of the options there is to reset the computer. One of the reasons for that option is to address this specific problem of finding an old machine that you forgot the password to, and you want to just reset the PC and start over clean.

–jeroen

Posted in Development, Power User, Software Development, The Old New Thing, Windows, Windows Development | Leave a Comment »

Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.

Posted by jpluimers on 2018/01/18

On my list of things to try out when I need to use regular expressions again:

Test your regex by visualizing it with a live editor. JavaScript, Python, and PCRE.

Source: Debuggex: Online visual regex tester. JavaScript, Python, and PCRE.

Via: [WayBackSergiu Toarca answering [WayBackRegex lookahead with multiple negative conditions – Stack Overflow

Note: in January 2018, Debuggex was down for a few days (Thanks Uwe for bringing that up and giving the below alternative [WayBack]).

If you are on Windows and are OK with a small cost, try this instead: [WayBack] RegexBuddy: Learn, Create, Understand, Test, Use and Save Regular Expression

–jeroen

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

Poor mans C to Delphi converter by Wouter van Nifterick

Posted by jpluimers on 2018/01/18

Seems very OK for a first pass in a C to Delphi conversion:

[WayBack] Hi, I’ve created a C to Delphi converter.Because it’s been so useful to me that I’ve decided to share it.It converts C code as-you-type, and it keep… – Wouter van Nifterick – Google+

Source is on GitHub: https://github.com/WouterVanNifterick/C-To-Delphi

–jeroen

Read the rest of this entry »

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

Convert space indented text to markdown minus indented

Posted by jpluimers on 2018/01/17

Since I will never be good at regex, this are a few search/replace patterns I used in Atom.io to convert a plain text document space indented like this:

Version 1.23.4.15
First level indented text
Is also a first level indented text
Too a first level indented text
- First level indented text too
  Second level indented text
  Is also a second level indented text
  Too a second level indented text
  - Second level indented text too
    - A third level indented text
    Third level indented text
    Is also a third level indented text
    Too a third level indented text
98.4.32.1

to a Markdown indented one like this:

Version 1.23.4.15
- First level indented text
- Is also a first level indented text
- Too a first level indented text
- First level indented text too
 - Second level indented text
 - Is also a second level indented text
 - Too a second level indented text
 - Second level indented text too
 - A third level indented text
 - Third level indented text
 - Is also a third level indented text
 - Too a third level indented text
Version 98.4.32.1

Prepend Version when needed: https://regex101.com/r/CUhUbr/1

  • Search:
    • ^(\d+\.\d+\.\d+\.\d+)
  • Replace:
    • Version $1

Add markdown first level indentations to lines that don’t have a markdown first level indentation yet, nor start with Version nor start with a space: https://regex101.com/r/CUhUbr/2

  • Search:
    • ^(?!(Version )|(- )|( )|(\d+\.\d+\.\d+\.\d+))(.*)
  • Replace:
    • - $5

Add markdown second level indentations to lines that don’t have a markdown second level indentation yet but do have a regular second level indentation: https://regex101.com/r/CUhUbr/3

  • Search:
    • ^  (?!(- )|( ))(.*)
  • Replace:
    •   - $3

Add markdown third level indentations to lines that don’t have a markdown third level indentation yet but do have a regular third level indentation: https://regex101.com/r/CUhUbr/4

  • Search:
    • ^    (?!(- )|( ))(.*)
  • Replace:
    •     - $3

jeroen

https://regex101.com/r/CUhUbr/1

https://regex101.com/r/CUhUbr/2

https://regex101.com/r/CUhUbr/3

https://regex101.com/r/CUhUbr/4

 

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

Links to various Visual C++ Redistributable Packages for Visual Studio downloads (arm/x64/x86 when available)

Posted by jpluimers on 2018/01/17

Link archive so I know how to get the 64-bit ARM, 32-bit Win32/x86 and 64-bit Win64/x64 downloads for the Visual C++ Redistributable files.

Note the various names of pages and files Microsoft uses.

–jeroen

Posted in C++, Development, Software Development, Visual Studio C++ | Leave a Comment »

Changing component class at run-time on demand for older Delphi versions need a bit more magic than you’d expect

Posted by jpluimers on 2018/01/16

Just in case I ever need to do heavy Delphi 2007 magic to change the component class of an object instance:

[WayBack] Quite unusual compiler behaviour (for older compilers) as seen here:http://stackoverflow.com/questions/41181767/patching-instance-class-requires-base-… – David Heffernan – Google+

References:

–jeroen

Source: Quite unusual compiler behaviour (for older compilers) as seen here: http://…

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

What happens when a huge number of people share a single grocery store loyalty card? – The Old New Thing

Posted by jpluimers on 2018/01/12

[WayBack] What happens when a huge number of people share a single grocery store loyalty card? – The Old New Thing

An interesting discussion in the comments besides this interesting article observation:

What messes up their data analysis is when two people with different lifestyles swap cards. The system sees that somebody who used to buy yogurt and bulk brewer’s yeast is now buying potato chips and frozen pizzas, and it can’t figure out what is going on.

–jeroen

Posted in Cloud, Development, Fun, Infrastructure, LifeHacker, Software Development, The Old New Thing, Windows Development | Leave a Comment »

Is the era of management over? | World Economic Forum

Posted by jpluimers on 2018/01/12

Hopefully the next few years will finally show what the incremental software development and evolutionary management has been trying to advocate since the late 1950s and 1970s: hierarchies do not work and purpose works better for the vast majority than being in a triangle.

The first slide below is from Thoughtworks who has been doing these changes for several decades now.

Traditional hierarchies are giving way to more open and creative workplace cultures.

[WayBack] Is the era of management over? | World Economic Forum

That’s the only way to cope with complexity as talent dilutes in growing organisations.

Via:

–jeroen

Posted in Agile, Development, LifeHacker, Power User, Software Development | Leave a Comment »

badssl.com

Posted by jpluimers on 2018/01/11

I wish I had bumped into this when it got released in 2015: [WayBackbadssl.com hosted in the cloud and maintained by two people from Google and Mozilla.

Where ssllabs.com is for checking server-side certificates, this one is for checking clients against many, many (did I already write MANY?) server side configurations both good (with a varying set of security settings like cyphers and key exchanges) and bad.

One of the bad ones is expired.badssl.com which your clients should not be able to connect to without throwing a big error.

Sources are at [WayBack] GitHub – chromium/badssl.com: Memorable site for testing clients against bad SSL configs.

Before using, please read their

Disclaimer

badssl.com is meant for manual testing of security UI in web clients.

Most subdomains are likely to have stable functionality, but anything could change without notice. If you would like a documented guarantee for a particular use case, please file an issue. (Alternatively, you could make a fork and host your own copy.)

badssl.com is not an official Google product. It is offered “AS-IS” and without any warranties.

–jeroen

Posted in Communications Development, Development, HTTP, https, Internet protocol suite, Security, Software Development, TCP, TLS, Web Development | Leave a Comment »