Jump to content

Joseph MItzen

  • Content Count

  • Joined

  • Last visited

  • Days Won


Joseph MItzen last won the day on March 25 2022

Joseph MItzen had the most liked content!

Community Reputation

225 Excellent

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Joseph MItzen

    Problems with Delphi class structure / visibility

    Python is more object-oriented than Delphi (EVERYTHING is an object - types, functions, classes, even numbers) and there is no enforced "private" setting. Privacy is only by naming convention as a guideline. And you don't even need to save its code to a cassette tape! 🙂 There's basically two schools of thought in programming language design - that you have to hide and control everything to "protect" users or developers or the system, and the other school is about giving power to the developers to do whatever they wish and put responsibility for doing it properly and safely on the developer, not the language/compiler. I believe Guido Van Rossum, the creator of Python, dubbed the latter design view the "we're all adults here" philosophy. Which view has more merit is up to designers and developers to decide for themselves, but it's clearly possible to design object-oriented features into languages using either approach. And on a marginally-related note, the Internet Archive had a great write-up recently about programs stored on cassette tape... 🙂 https://blog.archive.org/2023/05/02/the-easy-roll-and-slow-burn-of-cassette-based-software/
  2. Joseph MItzen

    C to Pascal

    My buddy Bing loves Delphi. When we have discussed it it defends its virtues quite strongly.
  3. Joseph MItzen

    String literals more then 255 chars

    Really? You've never needed a JSON literal, or an HTML literal, or an XML literal, or some template string literal? Heck, what about SQL queries? SELECT DATE_FORMAT(co.order_date, '%Y-%m') AS order_month, DATE_FORMAT(co.order_date, '%Y-%m-%d') AS order_day, COUNT(DISTINCT co.order_id) AS num_orders, COUNT(ol.book_id) AS num_books, SUM(ol.price) AS total_price, SUM(COUNT(ol.book_id)) OVER ( ORDER BY DATE_FORMAT(co.order_date, '%Y-%m-%d') ) AS running_total_num_books FROM cust_order co INNER JOIN order_line ol ON co.order_id = ol.order_id GROUP BY DATE_FORMAT(co.order_date, '%Y-%m'), DATE_FORMAT(co.order_date, '%Y-%m-%d') ORDER BY co.order_date ASC; This limitation has nothing to do with being readable. It has to do with ancient Turbo Pascal code still in the IDE (ultimate source: Allan Bauer via Mason Wheeler). C++, Java, Python, Swift, Javascript, Ruby, Rust (to name a few) all have long/multi-line string support in one form or another. Clearly it's useful.
  4. Joseph MItzen

    String literals more then 255 chars

    This is it. What I believe I heard when I complained about this in 2012 (!!!) from Mason Wheeler who got it from Allan Bauer was that it was due to legacy Turbo Pascal code in the IDE that they don't plan on touching. Splitting strings yourself is just ridiculous. It's 2023 and we've got Star Trek computer-grade AI with ChatGPT and BingBot and humanoid robots coming shortly. Way past time to join... well, the 20th century. Forget long strings... this needs to be fixed for multi-line strings to be feasible. This limitation drove me nuts in 2012 when I was trying to help someone parse some nasty HTML and I tried to enter the text into Delphi and realized the limitation was still there. Fine, I'll do it in Lazarus/FreePascal... guess what? They're limited to 255 characters too, which is bizarre. It's like they artificially limited themselves to match Delphi's limitations! It's long past time that one should be able to write HTML := "<!DOCTYPE html> <html lang="en-US"> <head> <meta charset="utf-8" /> <meta name="viewport" content="width=device-width" /> <title>My test page</title> </head> <body> <img src="images/firefox-icon.png" alt="My test image" /> </body> </html>"
  5. Joseph MItzen

    String literals more then 255 chars

    I first complained about that limitation in November of 2012. 😞 I think I heard it was due to legacy Borland Turbo Pascal code. 😞 The ridiculous thing is that FreePascal's Lazarus IDE has the same limitation, like they were striving for bug-for-bug compatibility or something.
  6. Joseph MItzen

    TSuperObjectIter ObjectFindFirst problem

    I know how to write a function that does this IF one can tell what the type is of a parsed element. But from the minimal "documentation" I see that the user can typecast an element but I don't see a way to check if something is an object or array. If there's no ability to do that, then I'm not sure if one can do this type of search with SuperObject... well, maybe with some ugly exception-handling.... I'll have to test this out later today.
  7. Joseph MItzen

    TSuperObjectIter ObjectFindFirst problem

    To be fair, that's precious little documentation. It's more like a few examples. I haven't used this library before and when checking I found that even the source code wasn't documented at all. 😞
  8. Joseph MItzen

    TSuperObjectIter ObjectFindFirst problem

    When you're parsing JSON, you should have some idea of what it is you're parsing. This SuperObject library is more of a low-level parsing library rather than a very high level one.
  9. Joseph MItzen

    TSuperObjectIter ObjectFindFirst problem

    There is only one key in the top level of the JSON string, "messageAnswers". Hence, iterating over the keys doesn't find "status". If you don't know what you're looking for, you're going to have to do a recursive search throughout the entire structure.
  10. Also sites like alternativeto.net.
  11. Where else am I going to get my copy of Bonzi Buddy???
  12. Joseph MItzen

    32bit vs 64bit

    Except the Amish.
  13. Joseph MItzen

    32bit vs 64bit

    Why does this seem to just be a Delphi thing, insisting we still use 32bit even though it's been about 19 years since the first 64bit x86 chip was announced? Why is embracing modernity a bad idea to you? You can't buy 32bit CPUs anymore, 32bit OSes are disappearing - even with Linux, etc. Just recompile your code and move on I say.
  14. Joseph MItzen

    Execute external program/command and capture output

    Delphi has always been inexplicably poor for calling external command line programs; FreePascal is actually much better at it (as is most everything else). This is the standard code every Delphi user seems to use to do what you want (because only @Remy Lebeau and @David Heffernan understand it): https://stackoverflow.com/questions/9119999/getting-output-from-a-shell-dos-app-into-a-delphi-app
  15. Joseph MItzen

    How do I update the sqlite dll in RAD Studio?

    The Visual Studio Live! Conference?