Thursday, December 21, 2023

Dear Santa: My 2023 Delphi Christmas Wishlist

 Dear Santa,

I have been a very good Delphi Developer this year, and I would like the following Delphi related items in my Festive Non Denominational Holiday Hoisery. 

1.  I would like Delphi to be able to work on my high DPI two monitor system without driving me crazy.  That means having the Property Inspector draw its editor items where they belong instead of in some place that makes it impossible to use the property inspector, to alter components on forms.

2.  I would like Delphi's IDE layout management system to be able to organize only the contents of the IDE window, not the top/left position of the IDE, nor which window it's visible on, because having the IDE jump around randomly among several profiles (startup, another one after projects are open, a third one after a project is running) drives me nuts.  

3. I would like the IDE to be as stable as Delphi 7 was on large codebases.  It's been decades and every few years, claims are made that this year's delphi is stable, finally.   We were told that about every XE* release, Delphi 10, Delphi 10.4, Delphi 11, and now, Delphi 12.  Still, working on large codebases means crashes, hangs and freezes.


Thank you very much Santa Claus,

Yours sincerely

Delphi Code Monkey


Thursday, July 6, 2023

In Search of: The Ultimate Git GUI Client

You might thing that because of a post where I rant about Git's glitchiness that I hate git. I'm actually a pretty happy Git user, except when Git is having one of its moods.

 I have been a long time TortoiseGIT user, and before that, I was a tortoise HG user, and before that, a TortoiseSVN user.    In brief, the Tortoise family of version control GUIs main design philosophy is that Tortoise hooks itself deeply into the Windows Explorer.   This has been both a source of its power, and a source of pain, since this original decision.   The caching mechanisms it uses are part of the speed, and also part of the pain and bugs.   Having Tortoise on your system means that Windows explorer (and your computer) is almost always doing work in the background to index your entire hard drive  to find which folders are Git repositories and what the status of every working file in every folder is.

The good part is that once you accept the overall system issues, and perhaps slowness of your entire computer, and that you will periodically have to manage issues like the tortoise Cache needing a reset,  you get always on "friction free" awareness that a file has been modified, just by looking at the icon decorations in windows explorer.   This really is great.  Except when it's not.

Recently, Windows 11 (my main developer workstation) started locking up when I log into my desktop, and I had to create a new user account and log into it in order to get to my desktop, which was hard to do, since Windows profile corruption was also preventing me getting to the windows desktop.   I was eventually able to get a Task Manager up and to run a command prompt and launch other things, even though the Windows Explorer itself was refusing to initialize, open the start menu and taskbar, etc.    The best I was able to do was figure out that this problem went away when I uninstalled Tortoise.  I can't prove that Microsoft changed anything but I can say that I doubt a lot of the Explorer Shell team at MIcrosoft are checking for regressions for all the thousands of shell explorer extension API products out there that hook into Windows explorer.  

While I think the folks who make Tortoise are wonderful, I can on longer trust that Microsoft will avoid touching things that have "always worked" and in Windows 11, breaking things wholesale, seems acceptable.   Hiding most of the right click context menu content under a second level of right click menus, fine.  If it makes some top level program manager at Microsoft happy; Hey look we simplified your Windows Experiences and made all those shell extensions (like 7Zip's one, and Tortoise, and others) just GO AWAY.

Right now the number one candidate to replace Tortoise Git as a GUI is Git Tower or Git Kraken.  I'd be happy to hear comments from other people with suggestions.