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 2019

Periodic Table of Motion

Posted by jpluimers on 2019/08/09

Cool [WayBack] motiontable showcasing many graphical transformation motions in a way similar to the Periodic Table of Elements.

More in depth information (in Japanese, but Google Translate performs a great job) at:

  • [WayBack] About (also explaining the similarity of both tables, for instance on how columns and rows are organised)
  • [WayBack] Work List showing the effects of many transformations applied to various graphic designs

Via [WayBack] Motion Periodic Table http://foxcodex.html.xdomain.jp/index.html #gamedev – Adrian Marius Popa – Google+

–jeroen

Posted in Graphic Design, Power User | Leave a Comment »

Dean Bubley’s Disruptive Wireless: Debunking the Network QoS myth

Posted by jpluimers on 2019/08/09

QoS doesn’t work, except for one specific scenario:

Where QoS works is where one organisation controls both ends of a connection AND also tightly-defines and controls the applications:

  • A fixed-broadband provider can protect IP telephony & IPTV on home broadband between central office & the home gateway.An enterprise can build a private network & prioritise its most important application(s), plus maybe a connection to a public cloud or UCaaS service.
  • Mobile operators can tune a 4G network to prioritise VoLTE.
  • Telco core and transport networks can apply differential QoS to particular wholesale customers, or to their own various retail requirements (eg enterprise users’ data vs. low-end consumers, or cell-site timing signals and backhaul vs. user data).
  • Industrial process & control systems use a variety of special realtime connection protocols and networks. Vendors of “OT” (operational technology) tend to view IT/telecoms and TCP/IP as quaint. The IT/OT boundary is the real “edge”.

Source: [WayBackDean Bubley’s Disruptive Wireless: Debunking the Network QoS myth

Via: [WayBack] This is not news, but it’s worthwhile repeating… – Kristian Köhntopp – Google+:

This is not news, but it’s worthwhile repeating: it is actually cheaper to build a network that can carry the traffic than building a network that keeps quality promises on a backbone that is undersized or close to capacity. Overprovisioning works, everything else does not, economically as well as technically.

–jeroen

Posted in Network-and-equipment, Power User, QoS | Leave a Comment »

NativeInt / NativeUInt type in various Delphi versions – twm’s blog

Posted by jpluimers on 2019/08/08

Reminder to Self (and note that Delphi <= 2007 does not reference NativeInt/NativeUInt in System.pas): [WayBack] NativeInt / NativeUInt type in various Delphi versions – twm’s blog

Just in case you are maintaining Delphi code for several older versions of Delphi: Be aware that the declarations of NativeInt and NativeUInt are wrong in some of them.

Delphi version SizeOf(Native(U)Int) Win32 SizeOf(Native(U)Int) Win64
1 to 6 not available not available
7 to 2007
8 ← this is wrong
not available
2009 to XE 4 not available
XE2 to XE8 4 8
10.x 4 8

Relevant GExperts commit: [WayBack] GExperts / Code / Commit [r2399]

Via  [WayBack] Just in case you are maintaining Delphi code for several older versions of Delphi: Be aware that the declarations of NativeInt and NativeUInt are wrong … – Thomas Mueller (dummzeuch) – Google+

–jeroen

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

Using PE Flags in Delphi – twm’s blog

Posted by jpluimers on 2019/08/08

For my link archive: [WayBackUsing PE Flags in Delphi – twm’s blog with information about and links to:

The flags themselves are documented at [WayBack] IMAGE_FILE_HEADER structure (Windows)

–jeroen

Via: [WayBack] There was a discussion about using the PE flag IMAGE_FILE_LARGE_ADDRESS_AWARE… – Thomas Mueller (dummzeuch) – Google+

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

The 14 JavaScript debugging tips you probably didn’t know | Raygun

Posted by jpluimers on 2019/08/08

For my link archive: [WayBackThe 14 JavaScript debugging tips you probably didn’t know | Raygun

–jeroen

Posted in Development, JavaScript/ECMAScript, Scripting, Software Development | Leave a Comment »

Inactive GUI applications: click once or twice to perform an action within the application

Posted by jpluimers on 2019/08/07

When an application is inactive, you have to click it at least once to activate it, but sometimes click twice to actually perform an action.

In the past, there were more applications requiring it, even User Interface or Human Interface guidelines explaining the difference.

Nowadays, most of these guidelines have become hard to find, but luckily some of them have been archived in the WayBack machine.

They all come down to this:

An action in an application can be disruptive, especially when there is no confirmation step for it.

Clicking an application over the area that invokes such a disruptive action, without the user realising it can have adverse consequences.

Some links for further reading:

 

Enabling Click-Through

An item that provides click-through is one that a user can activate with one click, even though the item is in an inactive window. (To activate an item that does not support click-through, the user must first make the containing window active and then click the item.) Although click-through can make some user tasks easier, it can also confuse users if they click items unintentionally.

Click-through is not a property of a class of controls; any control, including toolbar items, can support click-through. This also means that you can support click-through for any subset of items; you don’t have to choose between supporting click-through for all items in a window or none. Follow the guidelines in this section so that you can support click-through when it’s appropriate.

Avoid providing click-through for an item or action whose result might be dangerous or undesirable. Specifically, avoid enabling click-through for an item that:

  • Performs a potentially harmful action that users can’t cancel (for example, the Delete button in Mail)
  • Performs an action that is difficult or impossible to cancel (such as the Send button in Mail)
  • Dismisses a dialog without telling the user what action was taken (for example, the Save button in a Save dialog that overwrites an existing file and automatically dismisses the dialog)
  • Removes the user from the current context (for example, selecting a new item in a Finder column that changes the target of the Finder window)

Clicking in any one of these situations should cause the window that contains the item to be brought forward, but no other action to be taken.

In general, it’s safe to provide click-through for an item that asks the user for confirmation before executing, even if the command ultimately results in destruction of data. For example, you can provide click-through for a delete button if you also make sure to give users the opportunity to cancel or confirm the action before it proceeds.

Think twice before supporting click-through for items that don’t provide confirmation feedback. Specifically, consider how dangerous the action might be, and determine how difficult it will be for the user to undo the action after it’s performed. For example, the Mail Delete button does not provide click-through because it deletes a message without asking for confirmation, which is a potentially harmful action that can be difficult to undo. On the other hand, click-through for the New button in Mail is fine because its resulting action is not harmful and is easy to undo.

Ensure that items that don’t support click-through appear disabled when their window is inactive. The disabled appearance helps users understand that these controls are unavailable. For example, the Delete and Mark as Junk buttons in the inactive Mail window shown below don’t support click-through.

An inactive window with controls that support click-through

–jeroen

Posted in Apple, Classic Macintosh, Development, Mac, Mac OS X / OS X / MacOS, Power User, Software Development, Usability, User Experience (ux), Windows | Leave a Comment »

This is why I try to avoid C, as it means handling code from others that shoot in foots

Posted by jpluimers on 2019/08/07

Via [WayBack] Hello, I’m translating some C code to Delphi and found something that surprise me…is it logical that this code compiles ? – Paul TOTH – Google+

Maintaining C means you need to be aware that other people like shooting at foots (yes, that is a grammar error by intent):

#include 
#include 

void test();

void test2() {
  test();
}

void test(char *msg) {
  printf("test called '%s' (%d)\n", msg, strlen(msg));
}

void main() {
  test2();
}

Of course!? with gcc under Ubuntu the result is

test called 'test' (4)

Code is derived from [Archive.isgit hub user fogleman project Craft search db_worker_start

The thread has some nice comments.

–jeroen

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

More on new .NET path handling – Jeremy Kuhne’s Blog

Posted by jpluimers on 2019/08/07

When it was at the age natural people are allowed to drive in the USA, the .NET framework behaved far less brain dead handling various (especially long or strange) paths: [WayBackMore on new .NET path handling – Jeremy Kuhne’s Blog.

Path handling has frustrated me in many development environments, so I wonder if ones that are beyond the (USA) legal age of drinking follow.

–jeroen

via: [WayBack] Some time ago, the .net developers finally saw sense and removed path normalization and long path limit code in System.IO… Does anybody know if Embarcadero have come to their senses… – David Heffernan – Google+

Posted in .NET, Delphi, Development, Java, Java Platform, Software Development | Leave a Comment »

GitHub – Purik/AIO: Coroutine-based multithreading library for Delphi

Posted by jpluimers on 2019/08/06

On my list of things to try: [WayBack] GitHub – Purik/AIO: Coroutine-based multithreading library for Delphi which are similar to what golang does.

Coroutine-based multithreading library for Delphi. Contribute to Purik/AIO development by creating an account on GitHub.

Via [WayBack] What you think about coroutine-based multithreading concurrency in Delphi like GoLang https://github.com/Purik/AIO Probably evolution paths, actuality… – Павел Миненков – Google+

–jeroen

Posted in Delphi, Development, Go (golang), Software Development | Leave a Comment »

28800 Embarcadero DBX ADO.NET 2.0 driver for InterBase (version 17.0)

Posted by jpluimers on 2019/08/06

For my link archive in case of link rot: [WayBack/Archive.is28800 Embarcadero DBX ADO.NET 2.0 driver for InterBase (version 17.0)

Note these are the same as the ones shipping with the Interbase XE7 developer edition.

The less old alternative from Embarcadero alternative is the ODBC driver: [WayBack/Archive.is28975 Embarcadero InterBase ODBC Driver for Windows, 32-bit and 64-bit

Maybe it is a good idea to look into [WayBack] All IBProvider news Firebird and InterBase driver for OLE DB and ADO.NET

–jeroen 

Posted in .NET, Database Development, Development, InterBase, Software Development | Leave a Comment »