Jump to content

Joseph MItzen

Members
  • Content Count

    283
  • Joined

  • Last visited

  • Days Won

    7

Everything posted by Joseph MItzen

  1. Joseph MItzen

    Current subscription required to download ?

    I've been doing some checking and Microsoft is working on their own package manager, WinGet. It would be nice if Embarcadero supported WinGet or chocolately in the future to assist in automated deploys on PCs or VMs. That's the simplest solution to alleviate users' complaints and remove any support burden Embarcadero feels around hosting install files.
  2. Joseph MItzen

    Current subscription required to download ?

    I hope not, because there's a Smoothless In Delphi Seattle joke in there somewhere.
  3. Joseph MItzen

    Current subscription required to download ?

    Is it really "just", or are they going to try to talk the caller into upgrading/renewing first? Has anyone ever tried it and reported what their experience was? I would imagine the whole point of routing the call through sales would be to try to treat the call as a sales lead rather than a support request. If not, this change doesn't make sense.
  4. Joseph MItzen

    Current subscription required to download ?

    I've not encountered this limited download period with software in recent times. If I buy a game from Steam, I can download it as many times as I want - even the new Baldur's Gate 3, which I hear is over 100GB! If I buy a game from Epic, I can download it again whenever I want - even if Epic no longer sells the game. The same applies to games I buy from GOG. If I buy an e-book from Amazon, I can re-download it whenever I want. Microsoft makes copies of Visual Studio and related tools available from 2013 onward. I can download a copy of the latest Windows ISO whenever I want, even from a non-Windows PC. I can re-download software from JetBrains whenever I want - in fact, they have a tool called Toolbox that handles (re)installation, and you can even download and install all the Jetbrains software you have purchased in one click! They also store your software settings in their cloud with five settings slots so you can even have the desired settings downloaded (say, one slot for PC, one for laptop, etc.). It's the old "like a book" rules too, so there's no installation counter. So I'd say across all different types of software, including development tools, as well as digital media it's not common to not be able to readily re-download something you've already purchased.
  5. Joseph MItzen

    Current subscription required to download ?

    That's an inappropriate comparison; digital and physical media are different in every way which matters for this comparison. Digital media doesn't cost money to produce extra copies; digital media doesn't take up warehouse space. How much software do you buy that has a maintenance subscription, or is this just a Delphi ecosystem thing? I've not encountered commercial development software that would refuse to let you re-download software you've already paid for. Why would you put up with that kind of treatment? You have to maintain a hard drive full of software setup packages; I can take a minimal net install ISO (220MB) and in short order (re)install a full OS and all software required, development and otherwise so long as an Internet connection is available. Heck, if ipxe support is available I don't even need the initial install medium! You might want to reevaluate your software tool chain.
  6. Joseph MItzen

    Handling Python indented blocks with ExecString()

    This would make Python users recoil in horror, but there are ways to turn Python code into single lines! https://jagt.github.io/python-single-line-convert/ I don't know anything about Python4Delphi, but see if exec("""\npi = 3.1415926\nprint(pi)\nif pi > 0.0:\n print('pi is positive')\nelse:\n print('pi is negative')\n""") runs. Maybe it could run without the exec if you turned the \n instances into #13s. I don't know what your app is, but being able to use Octave scripts in it is pretty cool.
  7. 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/
  8. Joseph MItzen

    C to Pascal

    My buddy Bing loves Delphi. When we have discussed it it defends its virtues quite strongly.
  9. 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.
  10. 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>"
  11. 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.
  12. 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.
  13. 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. 😞
  14. 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.
  15. 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.
  16. Also sites like alternativeto.net.
  17. Where else am I going to get my copy of Bonzi Buddy???
  18. Joseph MItzen

    32bit vs 64bit

    Except the Amish.
  19. 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.
  20. 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
  21. Joseph MItzen

    How do I update the sqlite dll in RAD Studio?

    The Visual Studio Live! Conference?
  22. Joseph MItzen

    How do I update the sqlite dll in RAD Studio?

    Wow, 3.31.1 was released in January of 2020. There's no reason that the SQLite version shouldn't be replaced with the current one for each Delphi update. It's not like the IDE is a single file where static linking might make sense either. The good news is that if I'm reading this correctly if you change your TFDPhysSQLiteDriverLink.EngineLinkage property you can use dynamic linking and then use a more recent SQLite DLL.... https://docwiki.embarcadero.com/RADStudio/Sydney/en/Connect_to_SQLite_database_(FireDAC) Lots of awesome changes since 3.31.1, such as DROP COLUMN, RIGHT and FULL JOIN, UPSERT, a STRICT option that finally makes static typing an option, the JSON support is now built in, etc. SQLite now has a lot of features missing from Interbase. 🙂
  23. Reading this thread, I've now decided that you all personally are the reason Rust exists.
  24. Wait, what? I thought y'all told me they put the memory management back in after taking it out (then doing the hokey pokey and dancing all about)?
  25. But is it unpatchable?
×