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

Archive for June, 2021

List views in Oracle database – Oracle Query Toolbox

Posted by jpluimers on 2021/06/03

[WayBack] List views in Oracle database – Oracle Query Toolbox

A. All views accessible to the current user

select owner as schema_name, 
       view_name
from sys.all_views
order by owner, 
         view_name;

B. If you have privilege on dba_views

select owner as schema_name, 
       view_name
from sys.dba_views
order by owner, 
         view_name;

(more details in the above post)

–jeroen

Posted in Database Development, Development, OracleDB | Leave a Comment »

Thread by BiancaPrins: 8 simple steps to improve your site accessibility

Posted by jpluimers on 2021/06/03

[WayBack] Thread by @BiancaPrins: “@jpluimers @rulesbyrosita in begint met simpele dingen: 1) plaats alternatieve tekst bij foto’s (of duidelijke omschri […]” #toegankelijkheid #IT #a11y.

I need to translate it:

#toegankelijkheid in #IT begint met simpele dingen:

1) plaats alternatieve tekst bij foto’s (of duidelijke omschrijving eronder)
2) Voorzie filmpjes van ondertiteling en audiodiscriptie
3) gebruik standaard headers altijd in de juiste volgorde

#a11y 1/2

4) bij laag contrast ‘merk kleuren’ groter lettertype en bold font
5) bij voorkeur geen Italic font gebruiken
6) zorg dat alleen links underlined zijn en hyperlink met ‘weer te geven tekst’
7) duidelijke structuur
8) ‘knoppen’ voorzien van label

Via: [WayBack] Jeroen Pluimers on Twitter: “Wat kan ik beter doen op https://wiert.me ? Hoewel eigenlijk bedoeld voor mezelf als offline geheugen, trekt het dagelijks een berg bezoekers, dus het kan vast beter toegankelijk worden…”

Related:

–jeroen

Posted in accessibility (a11y), Development, Software Development, Usability, User Experience (ux) | Leave a Comment »

Who maintains GExperts · GitHub?

Posted by jpluimers on 2021/06/03

I wnder who maintains [WayBack] GExperts · GitHub:

GExperts has 4 repositories available. Follow their code on GitHub.

It has not been updated for about 5 years, but contains some important bits.

–jeroen

 

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

Microsoft subdomains

Posted by jpluimers on 2021/06/02

Almost every company I know has more than one subdomain, but while researching why support.microsoft.com could not be archived in the WayBack machine, I realised how many they have and bumped into a few sites listing most of them:

All via microsoft.com subdomains – Google Search.

–jeroen

Posted in Development, DNS, Internet, Power User, Software Development, Web Development | Leave a Comment »

Every site should have a script like web.archive.org/__cleancookies__.html

Posted by jpluimers on 2021/06/02

I run in too many sites that keep creating new cookies, but never delete the old ones, ultimately leading to 5xx errors.

Every site should have a page like [WayBack] web.archive.org/cleancookies.html that cleans non-current cookies.

So I copied toe source to [WayBack] Copy of https://web.archive.org/cleancookies.html · GitHub for inspiration to look at.

–jeroen

Read the rest of this entry »

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

Delphi: Passing build variables to batch files; I think the easiest is to use environment variables

Posted by jpluimers on 2021/06/02

A long time ago, I wrote about Delphi prebuild/prelink/postbuild events.

In practice, especially that you cannot inherit build events, then add new ones (), it is convenient to put all you need in a script, for instance a batch file.

Passing parameters to that script, then in my experience, is easiest to do as environment variables.

That way you can do this in a script:

> %temp%\build.txt echo ~dp0=%~dp0
>> %temp%\build.txt echo $(BDS)=%BDS%
>> %temp%\build.txt echo $(INPUTDIR)=%INPUTDIR%
>> %temp%\build.txt echo $(PROJECTDIR)=%PROJECTDIR%
>> %temp%\build.txt echo $(OUTPUTDIR)=%OUTPUTDIR%
>> %temp%\build.txt echo $(Platform)=%Platform%

if "%OUTPUTDIR:~0,2%"==".." set OUTPUTDIR=%INPUTDIR%%OUTPUTDIR%
>> %temp%\build.txt echo $(OUTPUTDIR)=%OUTPUTDIR%

Passing the parameters and calling the script results in this build event contents:

set Platform=$(Platform)
set INPUTDIR=$(INPUTDIR)
set PROJECTDIR=$(PROJECTDIR)
set OUTPUTDIR=$(OUTPUTDIR)
call ..\post-build-event.bat

The IDE then shows this fragment in the project output:

Target PostBuildEvent:
    set Platform=Win32&&set INPUTDIR=D:\Versioned\TestRepostitory\Test Project With Spaces\&&set PROJECTDIR=D:\Versioned\TestRepostitory\Test Project With Spaces&&set OUTPUTDIR=..\EXE Output Directory With Spaces\&&call ..\post-build-event.bat

The above batch file also shows things:

  1. how to handle relative directories in the OUTPUTDIR build parameter: check if the first two characters are .. (trick via [WayBack] Check if Batch variable starts with “…” – Stack Overflow).
  2. spaces are handled fine without any need to double quote the set assignments
  3. build-event lines are concatenated using the && success operator
  4. Parameters INPUTDIR and OUTPUTDIR end with a backslash, but PROJECTDIR does not (Delphi prebuild/prelink/postbuild events explains more about the parameters).

Note:

  • environment variable BDS does not end in a backslash
  • expansion %~dp0 does end in a backslash

With this trick now you can copy BPL files for the right platform:

xcopy /y "%BDS%\Redist\%Platform%\rtl250.bpl" "%OUTPUTDIR%"

Note that the LibSuffix (with value 250 for Delphi 10.2 Tokyo) is not available as environment variable, nor build parameter. The environment variable ProductVersion however (with value 19.0 for Delphi 10.2 Tokyo) is. So technically, you could make a mapping.

–jeroen

Posted in Conference Topics, Conferences, Delphi, Development, Event, Software Development | Leave a Comment »

The two states of a programmer, a superposition

Posted by jpluimers on 2021/06/01

I have no idea how old it is, but it is still so true:

The two states of a programmer:

  • I am God.
  • I have no idea what I am doing.

Every programmer exists in a superposition of these two states. The exit code will determine which.

I saved the reddit thread of the image, and would love to know who to attribute the quote and image to.

[WayBack] Every programmer exists in a superposition of these two states. The exit code will determine which. : ProgrammerHumor.

[WayBack] Reddit image lno93dc8d5c21.jpg (600×450):

–jeroen

Read the rest of this entry »

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

c++ – DLL Load Library – Error Code 126 – Stack Overflow: use Process Monitor, search for the first NAME NOT FOUND

Posted by jpluimers on 2021/06/01

In addition to [WayBack] c++ – DLL Load Library – Error Code 126 – Stack Overflow while debugging LoadLibrary error 126

Windows dll error 126 can have many root causes. The most useful methods I have found to debug this are:

  1. Use dependency walker to look for any obvious problems (which you have already done)
  2. Use the sysinternals utility [WayBack] Process Monitor – Windows Sysinternals | Microsoft Docs from Microsoft to trace all file access while your dll is trying to load. With this utility, you will see everything that that dll is trying to pull in and usually the problem can be determined from there.

Search for the first entry NAME NOT FOUND after your library is being loaded.

It indicates the module that cannot be found which indirectly causes error number 126 (ERROR_MOD_NOT_FOUND in [WayBack] System Error Codes (0-499) – Windows applications | Microsoft Docs ) in [WayBack] LoadLibrary:

 

ERROR_MOD_NOT_FOUND

126 (0x7E)

The specified module could not be found.

 

This is why I upvoted the very relevant comment:

… when I looked at the rows surrounding my dll being loaded I saw MSVCP140D.dll was giving a result of NAME NOT FOUND. Turns out the machine that couldn’t load my dll doesn’t have the ‘D’ version of MSVCP140.dll. Everything worked when I built my dll for release! – [WayBack] Pakman.

–jeroen

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

Devart ODAC product versions (Oracle Data Access Components History)

Posted by jpluimers on 2021/06/01

ODAC version history is confusing wheres [WayBack] Oracle Data Access Components – FAQ talks about version 6.00, [WayBack] Oracle Data Access Components History talks about version 10.x.y.

The history page is correct.

–jeroen

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