Simplify Your Delphi Projects with GExperts’ Uses Clause Manager Expert

This post was written by ChatGPT for the prompt

Write a blog post about the Uses Clause Manager Expert in GExperts

Note: It all sounds plausible, but there are a lot of wrong claims in this text.


Introduction:

If you’re a developer working with Delphi, you’re likely familiar with the complexities that can arise when managing the uses clauses in your project. With a growing codebase and numerous units to include, it’s easy to end up with messy and redundant uses clauses. Thankfully, there’s a powerful tool at your disposal to simplify this process: the Uses Clause Manager Expert in GExperts. In this blog post, we’ll explore the features and benefits of this expert and how it can streamline your Delphi development workflow.

What is GExperts?

GExperts is a comprehensive set of IDE enhancements for Delphi and C++Builder. It offers a wide range of productivity tools designed to improve the development experience and boost efficiency. The Uses Clause Manager Expert is just one of the many gems that GExperts provides to Delphi developers.

The Power of the Uses Clause Manager Expert:

The Uses Clause Manager Expert is a tool specifically designed to help you manage and organize the uses clauses in your Delphi projects. It offers several powerful features that simplify the process and enhance code readability.

Sorting and Organizing:

One of the primary tasks of the Uses Clause Manager Expert is to sort and organize the units within the uses clause. It automatically arranges the units in alphabetical order, making it easier to locate and identify specific units. This not only improves readability but also helps identify any missing or redundant units that may have been inadvertently included.

Note: This is wrong. The Uses Clause Manager does not sort the units in any way. There is a tool that can do this though: MMX Code Explorer by Uwe Raabe

Removing Unused Units:

As your Delphi project evolves, you might find that certain units are no longer required. Manually identifying and removing these unused units can be a time-consuming task. The Uses Clause Manager Expert simplifies this process by automatically detecting and removing unused units from the uses clause. This helps reduce clutter and eliminates unnecessary dependencies.

Note: This, again, is a wrong claim. The Uses Clause Manager does not detect and/or remove unused units. There is a tool that can do this, though: The Uses list cleaner in CnWizards

Merging Similar Units:

In large projects, it’s common to have multiple units with similar names or functionalities. The expert allows you to merge these units into a single unit, reducing duplication and improving the overall project structure. By consolidating similar units, you can enhance code maintenance and reduce the chances of conflicts or naming collisions.

Note: This, again, is a wrong claim. The Uses Clause Manager does not have such functionality. And out of the top of my head I don’t know of any tool that does. I’m not even sure this would be helpful in any way.

Customization and Configuration:

The Uses Clause Manager Expert provides various customization options to suit your preferences. You can specify how you want the units to be sorted, define exclusion lists for units that should not be modified, and even configure naming conventions for unit aliases. These options give you greater control over how the expert manages your uses clauses, ensuring that it aligns with your specific project requirements.

Note: This, again is a wrong claim. The Uses Clause Manager has got some configuration options, but none of the above can be configured.

Conclusion:

Efficiently managing uses clauses is crucial for maintaining clean and well-organized Delphi projects. With the Uses Clause Manager Expert from GExperts, you can streamline this process and improve code readability. By automatically sorting, removing unused units, merging similar units, and offering customization options, the expert simplifies the task of managing uses clauses, allowing you to focus on writing quality code.

Integrating GExperts into your Delphi IDE and leveraging the power of the Uses Clause Manager Expert can save you valuable time and effort, enhance your development workflow, and contribute to the overall quality of your Delphi projects. Give it a try, and experience the benefits firsthand!


So, really, all the above is utter bullshit. If you want to know what the Uses Clause Manager actually can do, here are some links:

(I was just about to say that the Uses Clause Manager is also covered in the GExperts help, but found that it isn’t. WTF? Apparently nobody bothered to update that help when it was added.)

Why did I put this online anyway? I was wondering how good a blog post ChatGPT would be able to write on this topic and how much of it would be correct. The Uses Clause Manager hasn’t changed much since the time ChatGPT stopped getting trained and all the functionality was described in blog posts or the GExperts online help. I wasn’t prepared for it just fantasizing a lot of functionality that the tool doesn’t have and not actually mentioning any of the functionality it does have. And after I saw that, I wanted to share this to make others aware of this. I think that’s the greatest danger these supposedly all knowing AI tools pose: They sound very convincing even if they spout utter bullshit. What’s even worse: This kind of “content” is very cheap to generate and we will see a lot of it on the Internet in the near future. (Advertisers love cheap, convincing content.) And since AI tools are trained with websites, they will start “learning” from this bullshit content and it will be repeated all over the place.

Just for your continued amusement, I asked ChatGPT:

How many of these claims are actually true?

Here is the answer, still convincing but still a wrong claim:


As an AI language model, I can’t provide real-time information or access to external sources. Therefore, I can’t verify the current accuracy of the claims made in the blog post. The information provided is based on general knowledge about GExperts and the Uses Clause Manager Expert up until September 2021. It’s always a good practice to consult the official documentation or the latest information available from reliable sources to verify the claims and features of a specific software tool.


If you would like to comment on this blog post, go to the corresponding post on the international Delphi Praxis forum.

I’m leaving Twitter

Just in case anybody was using Twitter to follow my blog:
As of today, the API I was using to post to Twitter is no longer available. So my blog posts won’t be shared there automatically any more. If you are in the Fediverse you can follow @dummzeuch@mastodon.social. Alternatively various rss feeds are available.

Unfähigkeit hat einen Namen: Norma-Connect

Ich habe mir vor ein paar Monaten eine SIM Karte von Norma Connect besorgt, weil die einen der günstigsten Tarife für mobiles Internet (500 MB für 28 Tage für 3 Euro, genannt “Surf-Flat 500”, incl. EU-Roaming) bieten. Zum Telefonieren habe ich eine zweite SIM-Karte und mobiles Internet brauche ich auch nur sporadisch, speziell im Urlaub, da ist das genau der richtige Tarif. Was mache ich also? Ich buche die Option, wenn ich sie brauche und kündige sie dann wieder. Soweit so gut. Allerdings ist das mit dem Kündigen so eine Sache, wenn die Webseite/App dann jedesmal nur einen Fehler meldet. Bisher musste ich schon zweimal deswegen die Hotline anrufen.

Ich sehe da jetzt zwei Möglichkeiten: Entweder haben die die unfähigsten Entwickler für ihre Webseite, die mir bisher untergekommen sind (Ok, die, die für die App und das eezy Ticket des VRR zuständig sind, übertreffen das noch, insbesondere wegen der Schadenshöhe). Oder aber das ist Absicht, denn es ist schon auffällig, dass ausgerechnet die Kündigung einer Option fehlschlägt, nicht aber die Buchung.

Immerhin waren die Leute bei der Hotline bisher immer freundlich und hilfsbereit und man kam gut durch, das ist ja leider auch nicht selbstverständlich.

Nachtrag am 2023-05-21: Der Fehler ist immernoch nicht behoben. Ich musste gestern erneut die Hotline bemühen. Die freundliche Dame dort zeigte sich erstaunt, denn angeblich wäre die Webseite wegen genau dieses Problems gerade erst überarbeitet worden. Also doch Unfähigkeit?

Lohnabrechung per E-Mail

Mein Arbeitgeber will jetzt die Lohnabrechung nicht mehr wie bisher per Post sondern per E-Mail an die private E-Mail Adresse der Mitarbeiter verschicken.

Im Prinzip habe ich nichts dagegen, wenn ich kein Papier bekomme, brauche ich es auch nicht zu archivieren. Trotzdem habe ich mal gegoogled, ob und unter welchen Umständen das überhaupt erlaubt ist.

Alle Fundstellen waren sich darüber einig, dass es erlaubt ist, allerdings nicht einfach so.

Insbesondere ist wichtig, dass die Zustellung in verschlüsselter Form erfolgen muss. Da auch heute noch so gut wie niemand E-Mail Verschlüsselung verwendet, obwohl das ja schon seit Jahrzehnten durchaus möglich wäre, bleibt als einzige vorgeschlagene und praktikable Lösung ein Versand per verschlüsseltem Dateianhang, in diesem Falle PDF.

Soweit, so vorhersehbar. Allerdings bin ich dann hier (archive) auf folgenden Vorschlag gestoßen, der mich beinahe vom Hocker gehauen hat:

3. Eine einfachere Version ist die Möglichkeit, eine PDF-Datei passwortverschlüsselt an die validierte Empfängeradresse zu schicken, sodass nur die berechtigte Person auf die Gehaltsabrechnung Zugriff hat. Das Passwort könnte z.B. die Personalnr. sein. Hier könnte allerdings manueller Aufwand in der Personalabteilung entstehen, wenn das Lohnprogramm die Möglichkeit der automatischen Erstellung einer verschlüsselten Abbrechung nicht unterstützt. Auch dies können Sie mit dem Anbieter für das Lohnabrechnungsprogramm klären.

Anschließend erwähnt er dann mögliche Datenschutz-Probleme, die durch das Ausdrucken der Abrechnung auf einem Drucker im Büro entstehen könnten, weil ja andere Mitarbeiter den Ausdruck am Drucker finden könnten, bevor man ihn selbst abholt.

Das ist ja auch durchaus erwähnenswert, aber:
Ernsthaft? Die Personalnummer soll als Password für die Verschlüsselung verwendet werden?

Wenn man schon darauf achten soll, dass die Kollegen den Ausdruck nicht zu Gesicht bekommen, dann sollte als Password nicht etwas so leicht zu ermittelndes wie die Personalnummer verwendet werden!

Und vor allem sollte jemand, der seine Brötchen mit der Beratung zum Thema Datenschutz und IT-Sicherheit verdienen will, sowas nicht vorschlagen.

Schreibe mir Lyriks im Stil von Karat

Hier ist ein Beispiel für Lyrics im Stil von Karat:

Veränderung kommt langsam
Aber wir müssen sie erzwingen
Steh auf und sprich laut aus
Was du denkst, was du fühlst

Wir leben in einer Welt
Voller Ungerechtigkeit und Leid
Aber wir müssen hoffen
Dass wir eines Tages Frieden finden

Es ist Zeit, dass wir handeln
Um unsere Zukunft zu sichern
Lasst uns zusammenarbeiten
Um eine bessere Welt zu schaffen

Denn wir sind die Stimme
Der Veränderung, die wir brauchen
Lass uns für Gerechtigkeit kämpfen
Bis wir eine Welt voller Liebe sehen.

— ChatGPT

A song about birds and rockets

I just asked ChatGPT for a song about birds and rockets. Here is what it produced:

Verse 1:
Up in the sky, soaring so high
Birds fly free, with wings spread wide
But little do they know, something new is coming
Rockets taking flight, leaving earth behind

Chorus:
Birds and Rockets, side by side
One in nature, one man-made pride
Birds and Rockets, reaching for the stars
Two worlds collide, but they’re not that far apart

Verse 2:
The birds they glide, with effortless grace
While Rockets blast off, with power and pace
But both are flying, in their own way
Birds and Rockets, reaching for the sky today

Bridge:
Birds may sing, Rockets may roar
But both are headed for something more
Birds and Rockets, taking flight
Reaching for the stars, with all their might

Outro:
Birds and Rockets, side by side
Two worlds collide, but they’re not that far apart
Birds and Rockets, reaching for the stars
Together they soar, in a world that’s ours.

Not bad, really.

Unfortunately a German version of such a song is just a translation of the English text which doesn’t really sound as good:

Verse 1:
Oben in den Himmel, so hoch fliegen
Vögel fliegen frei, mit ausgebreiteten Flügeln
Aber wissen sie nicht, dass etwas Neues kommt
Raketen starten, verlassen die Erde hinter sich

Chorus:
Vögel und Raketen, Seite an Seite
Einer in der Natur, einer von Menschenhand gemacht
Vögel und Raketen, streben nach den Sternen
Zwei Welten treffen aufeinander, aber sie sind nicht so weit auseinander

Verse 2:
Die Vögel gleiten, mit müheloser Anmut
Während Raketen starten, mit Kraft und Tempo
Aber beide fliegen, auf ihre eigene Art
Vögel und Raketen, streben nach dem Himmel heute

Brücke:
Vögel singen, Raketen dröhnen
Aber beide streben nach mehr
Vögel und Raketen, nehmen abheben
Streben nach den Sternen, mit all ihrer Kraft

Outro:
Vögel und Raketen, Seite an Seite
Zwei Welten treffen aufeinander, aber sie sind nicht so weit auseinander
Vögel und Raketen, streben nach den Sternen
Gemeinsam fliegen sie, in einer Welt, die uns gehört.

CIA Simple Sabotage Field Manual

I recently was made aware that the CIAs “Simple Sabotage Field Manual” from 1944 is available for download now (It has been declassified in 2008).

Here is chapter 11 about “General Interference with Organizations and Production”. You will probably find that this sounds a lot like everyday work in particular in large companies:

(11) General Interference with Organizations and Production

(a) Organizations and Conferences

(1) Insist on doing everything through “channels.” Never permit short-cuts to be taken in order to expedite decisions.

(2) Make “speeches.” Talk as frequently as possible and at great length. Illustrate your “points” by long anecdotes and accounts of personal experiences.

(3) When possible, refer all matters to committees, for “further study and consideration.” Attempt to make the committee as large as possible — never less than five.

(4) Bring up irrelevant issues as frequently as possible.

(5) Haggle over precise wordings of communications, minutes, resolutions.

(6) Refer back to matters decided upon at the last meeting and attempt to re-open the question of the advisability of that decision.

(7) Advocate “caution.” Be “reasonable” and urge your fellow-conferees to be “reasonable” and avoid haste which might result in embarrassments or difficulties later on.

(8) Be worried about the propriety of any decision – raise the question of whether such action as is contemplated, lies within the jurisdiction of the group or whether it might conflict with the policy of some higher echelon

(b) Managers and Supervisors

(1) Demand written orders.

(2) “Misunderstand” orders. Ask endless questions or engage in long correspondence about such orders. Quibble over them when you can

(3) Do everything possible to delay the delivery of orders. Even though parts of an order may be ready beforehand, don’t deliver it until it is completely ready.

(4) Don’t order new working materials until your current stocks have been virtually exhausted, so that the slightest delay in filling your order will mean a shutdown.

(5) Order high-quality materials which are hard to get. If you don’t get them argue about it. Warn that inferior materials will mean inferior work

(6) In making work assignments, always sign out the unimportant jobs first. See that important jobs are assigned to inefficient workers and poor machines.

(7) Insist on perfect work in relatively unimportant products; send back for refinishing those which have the least flaw.

(8) Make mistakes in routing so that parts and materials will be sent to the wrong place in the plant.
(9) When training new workers, give incomplete or misleading instructions.

(10) To lower morale and with it, production, be pleasant to inefficient workers; give them undeserved promotions. Discriminate against efficient workers; complain unjustly about their work.

(11) Hold conferences when there is more critical work to be done.

(12) Multiply paper work in plausible ways. Start duplicate files.

(13) Multiply the procedures and clearances involved in issuing instructions, pay checks, and so on. See that three people have to approve everything where one would do.

(14) Apply all regulations to the last letter.

(c) Office Workers

(1) Make mistakes in quantities of material when you are copying orders. Confuse similar names. Use wrong addresses.

(2) Prolong correspondence with government bureaus.

(3) Misfile essential documents.

(4) In making carbon copies, make one too few, so that an extra copying job will have to be done.

(5) Tell important callers the boss is busy or talking on another telephone.

(6) Hold up mail until the next collection.

(7) Spread disturbing rumors that sound like inside dope

(d) Employees

(1) Work slowly. Think out ways to increase the number of movements necessary on your job: use a light hammer instead of a heavy one, try to make a small wrench do when a big one is necessary, use little force where considerable force is needed, and so on.

(2) Contrive as many interruptions to your work as you can: when changing the material on which you are working, as you would on a lathe or punch, take needless time to do it. If you are cutting, shaping or doing other measured work, measure dimensions twice as often as you need to. When you go to the lavatory, spend a longer time there than is necessary. Forget tools so that you will have to go back after them.

(3) Even it you understand the language, pretend not to understand instructions in a foreign tongue.

(4) Pretend that instructions are hard to understand, and ask to have them repeated more than once. Or pretend that you are particularly anxious to do your work, and pester the foreman with unnecessary questions.

(5) Do your work poorly and blame it on bad tools, machinery, or equipment. Complain that these things are preventing you from doing your job right.

(6) Never pass on your skill and experience to a new or less skillful worker.

(7) Snarl up administration in every possible way. Fill out forms illegibly so, that they will have to be done over; make mistakes or omit requested information in forms.

(8) If possible, join or help organize a group for presenting employee problems to the management. See that the procedures adopted are as inconvenient as possible for the management, involving the presence of a large number of employees at each presentation, entailing more than one meeting for each grievance, bringing up problems which are largely imaginary,
and so on.

(9) Misroute materials.

(10) Mix good parts with unusable scrap and rejected parts.

Thanks to golem.de to for making me aware of this gem. Just in case you want to read the full piece yourself, it is available for download from the US homeland security website.

eezy erhöhtes Beförderungsentgelt

Ich hatte vor kurzem das zweifelhafte Vergnügen, zu versuchen das sog. eezy Ticket des VRR zum ersten Mal zu benutzen. Dieser Versuch hat mir ein “Erhöhtes Beförderungsentgelt” aka Geldstrafe für Schwarzfahren eingebracht. Und das ging so:

Ich stand am Bahnsteig und wollte ca. 5 Minuten vor Ankunft des Zuges ein solches Ticket lösen. Vorher hatte ich die dafür benötigte VRR App bereits eingerichtet und meine Kreditkarte als Zahlungsmittel hinterlegt. Leider schlug der Kauf mehrfach fehl, die Fehlermeldungen lauteten “Server Timeout” oder auch nur “es ist ein Fehler aufgetreten”. Beim letzten Versuch, als der Zug schon einfuhr, kam dann als Meldung “Sie haben bereits eine gültige Fahrerlaubnis(sic!) auf einem anderen Gerät …”

Ich habe das als Bestätigung interpretiert, dass einer der Versuche funktioniert hatte und bin eingestiegen, in der Annahme, dass ich das Ticket bald in der App angezeigt bekomme. Tja, was soll ich sagen? Dem war nicht so und ich saß im Zug ohne gültige Fahrkarte. Und wie das dann natürlich so ist, wurde ich während der knapp 15 Minuten Fahrtzeit kontrolliert und natürlich konnte der Kontrolleur nichts anderes tun als mich als Schwarzfahrer zu behandeln.

Wieder zuhause habe ich dann auf mein Konto geschaut und habe dort zweimal jeweils 10 Euro vorgemerkte Kreditkartenumsatz von “BVR LOGPAY” gefunden.

Es gab also durchaus sogar zwei Versuche, das Geld von meinem Konto abzubuchen und es lag nicht an meiner Bank oder einem Fehler bei der Angabe des Zahlungsmittels, denn die Umsätze waren ja vorgemerkt.

Der langen Rede kurzer Sinn, ich bin ziemlich underwhelmed, was die technische Umsetzung von eezy angeht. Nicht nur, dass die Voraussetzung dafür laut Beschreibung eine durchgehende Internet-Verbindung sein soll (in Deutschland? No way!), nein, der Kauf ist noch nicht einmal halbwegs idiotensicher (und ich will mir gar nicht vorstellen, wie überfordert meine Frau oder gar meine Mutter damit gewesen wäre). Und das Risiko wird auf den Kunden abgewälzt. Das muss diese Digitalisierung sein, die man in Deutschland unbedingt weiter vorantreiben muss.

Muss ich erwähnen, dass meine per Webformular an den VRR geschickte Beschwerde unbeantwortet blieb? Ich hatte zugegebenermaßen auch nicht mit einer Antwort gerechnet. Wenn sie überhaupt jemand gelesen hat, wird er vermutlich gedacht haben “Schon wieder so ein Boomer, der mit der einfachen Bedienung einer App überfordert ist und das jetzt auf die Technik schiebt.”, oder sowas in der Art.

Vermutlich hätte ich schon merken müssen, dass dieses Ticket nicht für mich gedacht ist, weil man auf der Webseite durchgehend geduzt wird.

Mit eezy kannst du deine Fahrt in Bus und Bahn ganz spontan antreten und direkt mit deinem Smartphone bezahlen …

Sowas kann ich absolut nicht ab. Firmen haben mir als (potentiellem) Kunden gefälligst ein Mindestmaß an Respekt zu erweisen und dazu gehört das korrekte Honorificum, nämlich “Sie”.

Nachtrag vom 2022-09-27:
Heute musste ich wieder VRR fahren und habe dem eezy-Ticket nochmal eine Chance gegeben. Gleiches Problem. Ich habe dann ein Papier-Ticket am Automaten gekauft. Das ist zwar eine inzwischen etwas ältere Technik, aber sie funktioniert wenigstens. Allerdings zeigte sich gleich wieder ein weiteres Problem: Man muss wissen, für welche Zone man das Ticket braucht. Ich habe da jetzt eher geraten, weil der Zug schon einfuhr. Vermutlich habe ich zuviel bezahlt, aber immer noch besser als nochmal 60 Euro.

Nachtrag vom 2022-10-03:
Heute habe ich festgestellt, dass die App doch tatsächlich die 6,10 Euro für den fehlgeschlagenen Kauf vom 2022-09-27 von meiner Kreditkarte abgebucht hat:

Da ich jetzt endgültig die Faxen dicke habe, wollte ich meinen Account in der App (also auf dem Server) löschen und dann die App entfernen. Aber wie eigentlich zu erwarten, funktionierte auch das nicht:

Wie unfähig kann ein Programmierer eigentlich sein?

Beim nächsten Mal nehme ich ein Taxi oder miete gleich einen Transporter, so dass ich mit dem Fahrrad zur Verleihstation fahren und dann das Fahrrad im Auto mitnehmen kann. Das ist dann zwar teuerer (wobei: Transporter bei Enterprise Rent a Car sind billiger als PKW bei den anderen Vermietern), aber wenigstens bequem.

Bahncard 25 für 30 Euro

Wow, davon hatte ich noch gar nichts mitbekommen: Die Bahncard 25 gibt es im Moment als “Jubiläums-Bahncard” für nur 30 Euro statt 56,90 Euro. Das Angebot gilt noch bis zum 2022-04-30. Nach einem Jahr geht diese in ein normales Bahncard 25 Abo über, es sei denn man kündigt spätestens 6 Wochen vorher.
(Tipp: Kündigen kann man auch sofort nach dem Kauf, dann kann man es nicht vergessen. Das gilt übrigens für jedes Abo und jeden Vertrag.)

Man kann sie online auf bahn.de buchen. Sie ist dann sofort gültig und man kann sie entweder als vorläufige Bahncard ausdrucken oder in der Bahn App hinterlegen. Die eigentliche Karte bekommt man dann noch zugeschickt.

(Nein, das ist keine bezahlte Werbung, ich bin nur gerade selbst begeistert.)