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,854 other subscribers

Archive for the ‘Development’ Category

Aaron Tay on Twitter: “trying experimental Wayback Machine Chrome ext from @internetarchive . There’s usual find latest/earliest archived versions and “context”, which just checks whois, annotations from https://t.co/qlqDUJNkIa, tweets etc but “find cited books and papers” is only on wikipedia pages… https://t.co/QqFSQ2HJ3e”

Posted by jpluimers on 2020/11/27

On my list of things to try:

Source: Aaron Tay on Twitter: “trying experimental Wayback Machine Chrome ext from @internetarchive . There’s usual find latest/earliest archived versions and “context”, which just checks whois, annotations from Hypothes.is, tweets etc but “find cited books and papers” is only on wikipedia pages”

–jeroen

Read the rest of this entry »

Posted in Chrome, Chrome, Development, Google, Power User, Software Development, Web Browsers | Leave a Comment »

SEP92: A VIDEO COMPATIBILITY INTERFACE FOR TURBO DEBUGGER

Posted by jpluimers on 2020/11/26

[WayBack/Archive] SEP92: A VIDEO COMPATIBILITY INTERFACE FOR TURBO DEBUGGER

Blast from the past, which reminds me of the days that Peter Sawatzki used this interface to write a DLL that allowed Turbo Debugger for Windows (TDW) run on a secondary monochrome screen using a special TDVIDEO.DLL.

That way you could debug Windows applications without distorting the screens, highly speeding up the debugging process.

Lot’s of stuff from that era got never archived, so I wish I could have found it in my archive, but I seem to have lost it.

Found via:

–jeroen

Posted in Debugging, Development, Pascal, Software Development, Turbo Debugger, Turbo Pascal | Leave a Comment »

Git Mergetool and difftool with Beyond Compare 4 · GitHub

Posted by jpluimers on 2020/11/26

For my archive: [WayBack] Git Mergetool and difftool with Beyond Compare 4 · GitHub

jpluimers commented

I stuck to this as I:

  • do not run git bash
  • have Beyond Compared installed in the default directory (not the x86 one)
  • do not want a new UI instance, so use the recommended BComp.exe
git config --global merge.tool bc4
git config --global mergetool.bc4.cmd "'C:/Program Files/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\" \"$BASE\" \"$MERGED\""
git config --global mergetool.bc4.trustExitCode true

This works splendid with git mergetool: it starts a merge in the already open BCompare.exe instance.

I only do merge from Beyond Compare, so no need for me to do a similar Beyond Compare setup for diff.tool, but if anyone wants it, it would be this:

git config --global diff.tool bc4
git config --global difftool.bc4.cmd "'C:/Program Files/Beyond Compare 4/BComp.exe' \"$LOCAL\" \"$REMOTE\""
git config --global difftool.bc4.prompt false

This works fine for any git versoin > 2.2.0.

Related:

What I need to find out is if it is possible to open all merges at once in Beyond Compare. Maybe these help:

This did help getting rid of .orig files: [WayBack] version control – Git mergetool generates unwanted .orig files – Stack Overflow

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »

Delphi revelations #3 – kbmMW Smart client – DispInvoke leak – Components4Developers

Posted by jpluimers on 2020/11/26

For my archive, as one day I will run into this Variant/DispInvoke issue myself:[WayBack] Delphi revelations #3 – kbmMW Smart client – DispInvoke leak – Components4Developers:

Delphi revelations, now about investigating a pesky DispInvoke bug in all versions of Delphi supported by kbmMW, including 10.3 Rio, that results in leaks, and how kbmMW now ends up not being affected by it.

Via: [WayBack] Next Delphi revelations, now about investigating a pesky DispInvoke bug in all versions of Delphi supported by kbmMW, including 10.3 Rio, that results i… – Kim Madsen – Google+

–jeroen

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

`exit /b #`: set `errorlevel` to `#`, then exit batch file or subroutine – via: Errorlevel – Windows CMD – SS64.com

Posted by jpluimers on 2020/11/25

I seem to always forget how to set an error leve in side a batch file, but [WayBack] Errorlevel – Windows CMD – SS64.com tells how:

  • When ending a [WayBacksubroutine, you can use EXIT /b N to set a specific ERRORLEVEL N.
  • You can make a [WayBackbatch file return a non-zero exit code by using the [WayBackEXIT command.

    Exit 0
    Exit /B 5

    To force an ERRORLEVEL of 1 to be set without exiting, run a small but invalid command like [WayBack]COLOR 00 

    There is a key difference between the way .CMD and .BAT batch files set errorlevels:

    An old .BAT batch script running the ‘new’ internal commands: APPEND, ASSOC, PATH, PROMPT, FTYPE and SET will only set ERRORLEVEL if an error occurs. So if you have two commands in the batch script and the first fails, the ERRORLEVEL will remain set even after the second command succeeds.

    This can make debugging a problem BAT script more difficult, a CMD batch script is more consistent and will set ERRORLEVEL after every command that you run [[archive.is]source].

It looks like I already used a bare EXIT /B without explaining it in Source: stop/start IIS.

Further reading, including the difference between subroutines, blocks and batch files:

Finally saving Google Groups messages in the way back machine:

  1. Convert the URL
  2. Save the latter in archive.is

–jeroen

Posted in Batch-Files, Development, Software Development | Leave a Comment »

git – I ran into a merge conflict. How can I abort the merge? – Stack Overflow

Posted by jpluimers on 2020/11/25

Since I keep forgetting how simple it is: [WayBack] git – I ran into a merge conflict. How can I abort the merge? – Stack Overflow

If your git version is >= 1.6.1, you can use git reset --merge.

Also, as @Michael Johnson mentions, if your git version is >= 1.7.4, you can also use git merge --abort.

As always, make sure you have no uncommitted changes before you start a merge.

From the git merge man page:

git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.

MERGE_HEAD is present when a merge is in progress.

Also, regarding uncommitted changes when starting a merge:

If you have changes you don’t want to commit before starting a merge, just git stash them before the merge and git stash pop after finishing the merge or aborting it.

–jeroen

Posted in Development, DVCS - Distributed Version Control, git, Software Development, Source Code Management | Leave a Comment »

Delphi: why breakpoints from time to time are not usable (green highlighted line on IDE)? – Stack Overflow

Posted by jpluimers on 2020/11/25

I still have not figured out the circumstances, but ever since either the Unicode Delphi versions (2009 and up) or BDS (8 and up), I have this every now and then: [WayBack] Delphi: why breakpoints from time to time are not usable (green highlighted line on IDE)? – Stack Overflow

So far this is consistent, limiting it to:

  • large projects (100+ kilo-lines-of-code)
  • for those projects, either as single .dproj file or as part of a .groupproj
  • debugging works the first time, but fails consistently with these symptoms:
    • break-points fail
    • blue dots in the gutter disappear; red-dots become green
    • exceptions cause a stack-trace with only hex-addresses
  • other projects in the same project group still debug fine

To get it working (one time per try) again:

  • restart the IDE
  • close the project, then re-open it in the same IDE instance

What does not help getting it to work:

  • clean build from the IDE
  • deleting DCU files

–jeroen

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

When CCP is not about clearing financial transactions

Posted by jpluimers on 2020/11/24

Using abbreviations is always context sensitive, so when I first heard about CCP for Waze, I was thinking about some form of Central Counter Party clearing system, but the (wrongly titled page) at [WayBack] Free Driving Directions, Traffic Reports & GPS Navigation App by Waze as it is about

Connected Citizens Program

The Waze Way of free data exchange, yielding actionable insights and improved mobility on a local and global scale

It is a kind of clearing system after all, as it facilitates exchange, in this case of traffic related information.

But it is not really a Citizens Program, as individuals cannot apply: only organisations can.

Those organisations can obtain from or send information to Waze using various APIs, or do both.

I will try to apply as a individual or company to learn more about the Waze APIs involved.

–jeroen

Posted in DDD Domain Driven Development, Development, Software Development | Leave a Comment »

About Event Tracing – Windows applications | Microsoft Docs

Posted by jpluimers on 2020/11/24

On my list of things to look into: [WayBack] About Event Tracing – Windows applications | Microsoft Docs.

It is so much better than OutputDebugString!

Via Kent Morwath commenting at Never ever put OutpugDebugString in code that is meant to run on production systems « The Wiert Corner – irregular stream of stuff

–jeroen

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

Kristian Köhntopp had an interesting JOINs go when moving from monolithic to microservicecs (i.e. when customers and orders are in separate services)

Posted by jpluimers on 2020/11/19

https://twitter.com/isotopp/status/1270824610469208072

is a summary of:

[WayBack] Thread by @isotopp: Are you a Developer and understand (Micro-) Services? I am a database person and a bit simple, and I have a genuine Question: When moving to…

Are you a Developer and understand (Micro-) Services? I am a database person and a bit simple, and I have a genuine Question:

When moving to a services architecture, where do the JOINs go?

So you sell stuff, that is you have an orders table o, with an oid, which stores a customer id cid from a customers c table, and an article id aid, from an articles table and a count cnt.
customer 17 ordered 3 45’s:
? SELECT cnt
> FROM o JOIN c ON o.cid = c.cid
> AND o.aid = a.aid
> WHERE c.cid = 17;= 3
When moving to services, because you are multibillion dollar enterprise, your customers, orders and articles can no longer fit into a single database, and there are other reasons to have an OrderService, CustomerService and ArticleService.

You still want to ask something (OrderService?) about the number of 45’s that 17 ordered.

Who do you ask? What does this do to connect the dots? How do you do reporting (“Show me all top 10 articles by country, zipcode digit 1 by week over the last 52w”)?

Do you reimplement join algorithms by hand in application code? Are there supporting tools? Do you reimplement data warehousing aggregations, too?
If so, what tooling for reporting does exist, and how does that compare to eg existing tooling for data warehousing?

Some of the reactions on Twitter are below

–jeroen

Read the rest of this entry »

Posted in Database Development, Development, Software Development, Systems Architecture | Leave a Comment »