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 the ‘Software Development’ Category

The Oxymoron of “Data-Driven Innovation” – Chelsea Troy

Posted by jpluimers on 2022/10/11

Must read: [Wayback/Archive.is] The Oxymoron of “Data-Driven Innovation” – Chelsea Troy

My summary retweet:

[Archive.is] Jeroen Wiert Pluimers on Twitter: “Building for marginalised groups not only broadens your user base, but actually makes your product better for majority groups as well and increases the value of your product and your profits.… “

Do go read it, as there are so many insights in it. Basically data-driven innovation will get you on the wrong side of the 80/20 rule. Better optimise for the 20% of the Pareto Principle.

This goes for any product development, be it software, hardware, services or otherwise.

Via: [Archive.is] Kristian Köhntopp on Twitter: “The Oxymoron of Data Driven Innovation”

–jeroen

Posted in accessibility (a11y), Development, Software Development | Leave a Comment »

Type safe versus interpreted languages: which ones are safer?

Posted by jpluimers on 2022/10/06

An interesting thread by Kristian Köhntopp last year:

[Archive.is] Kristian Köhntopp on Twitter: “Python: >>> print(1+2+” = “+2+1) Traceback (most recent call last): File “”, line 1, in TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’ Java: System.out.println(1+2+” = “+1+2); 3=12”

The examples from him and others in the thread:

Python:
>>> print(1+2+" = "+2+1)
Traceback (most recent call last):
  File "", line 1, in 
TypeError: unsupported operand type(s) for +: 'int' and 'str'

Java:
System.out.println(1+2+" = "+1+2);
3=12

php8.1  -r 'print 1+2+" = "+2+1;'
PHP Fatal error:  Uncaught TypeError: Unsupported operand types: int + string in Command line code:1
Stack trace:
#0 {main}
  thrown in Command line code on line 1

php7.3  -r 'print 1+2+" = "+2+1;'
PHP Warning:  A non-numeric value encountered in Command line code on line 1

Node?
Chrome & FF dev console:
window.alert(1+2+" = "+1+2)
3 = 12

Sind ja immerhin verschiedene Sprachen.

SELECT Wert1 
FROM table1
WHERE Wert1 < AVG(Wert1);

DB2 vs. Oracle vs. MSSQL vs. ....

The joke is that Python actually does better than Java.

But in practice, this is a problem on many platforms, so it deserves constant attention, that’s why Kristian pointed to [Archive] Anna “Legacy Archaeologist” Filina on Twitter: “My annotated slides “Fantastic Bugs and How to Avoid Them” from @LonghornPHP:  #LonghornPHP”

[Wayback/Archive] Fantastic Bugs and How to Avoid Them – Speaker Deck

I’ve expanded the examples from the thread below. The results are interesting and consistent over versions of the various languages.

–jeroen

Read the rest of this entry »

Posted in Development, Java, Java Platform, JavaScript/ECMAScript, Node.js, PHP, Python, Scripting, Software Development | Leave a Comment »

viatsko/awesome-vscode: 🎨 A curated list of delightful VS Code packages and resources.

Posted by jpluimers on 2022/10/05

[Wayback/Archive.is] viatsko/awesome-vscode: 🎨 A curated list of delightful VS Code packages and resources.

It is a long and very readable categorised list of Visual Studio extensions and resourced often with small screencasts or screenshots.

The README in the repository is easier to read than the official site a [Wayback/Archive.is] awesome-vscode | 🎨 A curated list of delightful VS Code packages and resources. (as somehow there not all markdown rendered nicely).

Many other awesome lists can be found via [Wayback/Archive.is] sindresorhus/awesome: 😎 Awesome lists about all kinds of interesting topics.

Via [Wayback/Archive.is] html table editor vscode – Google Search.

–jeroen

Posted in Development, Software Development, vscode Visual Studio Code | Leave a Comment »

HTML / XML / RSS link checker – Visual Studio Marketplace

Posted by jpluimers on 2022/10/04

On my list of Visual Studio Code extensions to try (after I change the shortcuts, as direct Alt shortcuts are not a good idea, luckily those are configurable)

[Wayback/Archive.is] HTML / XML / RSS link checker – Visual Studio Marketplace (partly paraphrased):

VSCode extension that checks for broken links in an HTML, XML, RSS, PHP, or Markdown file.

Checks currently open file:

  • for broken links in anchor-href, link-href, img-src, and script-src tags in currently-open HTML or PHP file
  • both clearnet and onion (Tor) links
  • for badly-formatted mailto links, and duplicate local anchors (anchor-name, anchor-id)
  • for working HTTPS equivalents of HTTP links

Optionally checks for invalid characters and common mistakes (missing tag content, empty attribute value, more).

Also checks for errors in a small subset of semantic HTML tags (in HTML and PHP files): checks that each page has header, main, footer; checks that each heading is inside a section, article, or aside; checks that each section/article/aside has exactly one heading in it; checks that heading values are nested properly.

To see/change settings for this extension, open Settings (Ctrl+,) / Extensions / “HTML / XML / RSS link checker”.

To change the key-combinations for this extension, open File / Preferences / Keyboard Shortcuts and search for Alt+H or Alt+T or Alt+M or Alt+L.

–jeroen

Posted in .NET, Development, HTML, Lightweight markup language, MarkDown, Power User, RSS, Software Development, vscode Visual Studio Code, Web Development, XML, XML/XSD | Leave a Comment »

On my list of extensions to try in vscode: tab nine

Posted by jpluimers on 2022/10/03

I wrote about Visual Studio Code: blazingly fast text expansion with Emmet in september.

Another productivity extension that is on my list is [Wayback/Archive.is] Tabnine – Code Faster with the All-Language AI Assistant for Code Completion, autocomplete JavaScript, Python, TypeScript, PHP, Go, Java, node.js, Ruby, C/C++, HTML/CSS, C#, Rust, SQL, Bash, Kotlin, R – Visual Studio Marketplace.

The first thing I thought of when reading this is “oh, wasn’t this the GitHub open source AI code completion plugin controverse in mid 2021?”. It wasn’t. See links below.

Read the rest of this entry »

Posted in Development, Software Development, vscode Visual Studio Code | Leave a Comment »

Git (even recent versions) hanging after “Resolving deltas: 100%”

Posted by jpluimers on 2022/09/29

If you ever come across git hanging after completing “Resolving deltas: 100%“, then remember this can still happen with recent git versions; the below output was with git version 2.24.1.windows.2.

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 516.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.

or (after pressing Ctrl-C):

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 516.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.
fatal: index-pack failed

Retry after a while

Sometimes this is as easy as waiting until the remote system comes to its senses. In this case, waiting some 8 hours resolved it:

C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
C:\bin>git clone https://wiert@gitlab.com/wiert.me/private/Windows/bin.git
Cloning into 'bin'...
remote: Enumerating objects: 74, done.
remote: Counting objects: 100% (74/74), done.
remote: Compressing objects: 100% (54/54), done.
remote: Total 1063 (delta 30), reused 39 (delta 15)
Receiving objects: 100% (1063/1063), 26.74 MiB | 748.00 KiB/s, done.
Resolving deltas: 100% (385/385), done.

In my case this worked, even though GitLab did not show any problems in their status history: [WayBack] GitLab System Status History.

I waited (and succeeded) because of [WayBack] git – How to solve’fatal: index-pack failed’? – Stack Overflow.

Check the index and get the most recent

Some links that I want to check out later:

Searches

–jeroen

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

LPRng: RESOURCES – PostScript, Epson, HP, Xerox, PPD, etc

Posted by jpluimers on 2022/09/28

When writing Some links on PostScript books and online content, back from the days, I archived [Wayback] Index of /RESOURCES from the site hosting the [Wayback/Archive.is] LPRng Web Page (see also LPRng on Wikipedia):

The LPRng software is an enhanced, extended, and portable implementation of the Berkeley LPR print spooler functionality. While providing the same interface and meeting RFC1179 requirements, the implementation is completely new and provides support for the following features: lightweight (no databases needed) lpr, lpc, and lprm programs; dynamic redirection of print queues; automatic job holding; highly verbose diagnostics; multiple printers serving a single queue; client programs do not need to run SUID root; greatly enhanced security checks; and a greatly improved permission and authorization mechanism.

The source software compiles and runs on a wide variety of UNIX systems, and is compatible with other print spoolers and network printers that use the LPR interface and meet RFC1179 requirements.

Subdirectories (the PPD one goes one level deeper with both files and directories; XEROX just has a subdirectory with one file):

–jeroen

Posted in Development, EPS/PostScript, Hardware, HP Printer Drivers, Power User, Printer drivers, Printers, Software Development, Windows | Leave a Comment »

Using styles on just html tr to format the borders of table rows

Posted by jpluimers on 2022/09/22

A long time ago, I found out that by default, you could only format td elements in HTML tables: somehow doing that with just tr failed, and I never understood why.

Since I wasn’t doing a lot of html stuff back then, I just lived with the few occurrences and moved on.

A while ago, I needed html tables again, and – since WordPress.com hosted blogs do not allow CSS style sheets – I had to use inline style attributes. That would bloat many td elements, so I did a [Wayback/Archive.is] html table border below row – Google Search, where the first few hits – all on StackOverflow – tremendously helped my to understand why this was the case and how to fix it:

  • In [Wayback/Archive.is] css – Giving a border to an HTML table row, – Stack Overflow, [Wayback/Archive.is] User Jukka K. Korpela – Stack Overflow explains about the various border models, but only shows a a solution having the CSS style sheet in a style element which WordPress.com disallows:
    You can set border properties on a tr element, but according to the CSS 2.1 specification, such properties have no effect in the separated borders model, which tends to be the default in browsers. Ref.: 17.6.1 The separated borders model. (The initial value of border-collapse is separate according to CSS 2.1, and some browsers also set it as default value for table. The net effect anyway is that you get separated border on almost all browsers unless you explicitly specifi collapse.)
    Thus, you need to use collapsing borders. Example:
    <style>
    table { border-collapse: collapse; }
    tr:nth-child(3) { border: solid thin; }
    </style>
    

    From that, I learned about these:

    • [Wayback/Archive.is] Tables: borders
      There are two distinct models for setting borders on table cells in CSS. One is most suitable for so-called separated borders around individual cells, the other is suitable for borders that are continuous from one end of the table to the other. Many border styles can be achieved with either model, so it is often a matter of taste which one is used.
      border-collapse
      Value: collapse | separateinherit
      Initial: separate
      Applies to: table‘ and ‘inline-table’ elements
      Inherited: yes
      Percentages: N/A
      Media: visual
      Computed value: as specified
      This property selects a table’s border model. The value ‘separate‘ selects the separated borders border model. The value ‘collapse‘ selects the collapsing borders model. The models are described below.
    • [Wayback/Archive.is] Tables: separated borders (default)
    • [Wayback/Archive.is] Tables: collapsing borders
  • In [Wayback/Archive.is] Create table with only bottom border in HTML – Stack Overflow, [Wayback/Archive.is] Martin2904 explains how to solve it with CSS style sheets and inline style attributes, but does not link to the “why”:
    Just use the following code-snippet and paste it in you style.css
    table {
      border-collapse: collapse;
    }
    tr{
      border-bottom: 1px solid black;
    }
    <table>
      <tbody>
        <tr>
          <td>Lorem</td>
          <td>Ipsum</td>
        </tr>
      </tbody>
    </table>
    Without using style.css
    <table style="border-collapse: collapse;">
      <tbody>
        <tr style="border-bottom: 1px solid black;">
          <td>Lorem</td>
          <td>Ipsum</td>
        </tr>
      </tbody>
    </table>

–jeroen

Posted in CSS, Development, HTML, Software Development, Web Development | Leave a Comment »

Select matching element/rename HTML tag in Visual Studio Code – Stack Overflow

Posted by jpluimers on 2022/09/21

I totally missed that in 2019, the F2 key was enabled to rename HTML tags, but it does: [Wayback/Archive.is] Select matching element/rename HTML tag in Visual Studio Code – Stack Overflow:

HTML rename tags
You can now use F2 to rename the opening/closing tag pairs in HTML.
F2 when the cursor is over one of the tags and you will get a little input box with the cursor to input the new tag name and the start/end tags will be replaced with whatever you type upon .
demo of HTML rename tags

[Wayback/Archive.is] Another answer indicates that even more recently, Linked Editing can do the same without even pressing F2. Too bad it is not enabled by default:

No need for extension, this is now cooked into VSCode.
"editor.linkedEditing": true

–jeroen

Posted in .NET, Development, HTML, Software Development, Visual Studio and tools, vscode Visual Studio Code, Web Development | Leave a Comment »

Python Breaking Distance calculator (includes the German DIN 1451 font for traffic signage)

Posted by jpluimers on 2022/09/20

If you ever want a good visual representation to compare the breaking distance for a car at two different speeds, and see at what speed you will hit the human “obstacle”, then use the Python script mkbremsweg.py.

Git repository: [Wayback/Archive.is] joschtl / bremsweg · GitLab.

The image is generated in the current directory

It probably won’t work on Windows as it dynamically builds a very long command-line calling ImageMagick tool [Wayback/Archive.is] convert once to do all the drawing.

The text in the picture for now is hardcoded in German, but would be easy to adopt.

The fonts used are and FreeSans and [Wayback/Archive.is] Alte DIN 1451 Mittelschrift Font Family · 1001 Fonts (which the Germans use for Traffic Signage and is very similar to fonts used in other countries).

Calculations are based on [Wayback/Archive.is] Bremsweg-Rechner für Anhalteweg & Bremsweg – Johannes Strommer.

Via:

–jeroen

Posted in *nix, *nix-tools, cars, Development, ImageMagick, LifeHacker, Power User, Python, Scripting, Software Development, Traffic, Windows | Leave a Comment »