Joseph MItzen
Members-
Content Count
283 -
Joined
-
Last visited
-
Days Won
7
Everything posted by Joseph MItzen
-
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.
-
I hope not, because there's a Smoothless In Delphi Seattle joke in there somewhere.
-
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.
-
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.
-
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.
-
Handling Python indented blocks with ExecString()
Joseph MItzen replied to RSG's topic in Python4Delphi
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. -
Problems with Delphi class structure / visibility
Joseph MItzen replied to Willicious's topic in Delphi IDE and APIs
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/ -
My buddy Bing loves Delphi. When we have discussed it it defends its virtues quite strongly.
-
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.
-
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>"
-
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.
-
TSuperObjectIter ObjectFindFirst problem
Joseph MItzen replied to PizzaProgram's topic in ICS - Internet Component Suite
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. -
TSuperObjectIter ObjectFindFirst problem
Joseph MItzen replied to PizzaProgram's topic in ICS - Internet Component Suite
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. 😞 -
TSuperObjectIter ObjectFindFirst problem
Joseph MItzen replied to PizzaProgram's topic in ICS - Internet Component Suite
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. -
TSuperObjectIter ObjectFindFirst problem
Joseph MItzen replied to PizzaProgram's topic in ICS - Internet Component Suite
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. -
Association of Software Professionals & PAD files
Joseph MItzen replied to Incus J's topic in Project Planning and -Management
Also sites like alternativeto.net. -
Association of Software Professionals & PAD files
Joseph MItzen replied to Incus J's topic in Project Planning and -Management
Where else am I going to get my copy of Bonzi Buddy??? -
Except the Amish.
-
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.
-
Execute external program/command and capture output
Joseph MItzen replied to softtouch's topic in Cross-platform
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 -
How do I update the sqlite dll in RAD Studio?
Joseph MItzen replied to Der schöne Günther's topic in Databases
The Visual Studio Live! Conference? -
How do I update the sqlite dll in RAD Studio?
Joseph MItzen replied to Der schöne Günther's topic in Databases
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. 🙂 -
FreeAndNil() - The Great Delphi Developer Debate
Joseph MItzen replied to AlexBelo's topic in Tips / Blogs / Tutorials / Videos
Reading this thread, I've now decided that you all personally are the reason Rust exists. -
FreeAndNil() - The Great Delphi Developer Debate
Joseph MItzen replied to AlexBelo's topic in Tips / Blogs / Tutorials / Videos
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)? -
MIT researchers uncover ‘unpatchable’ flaw in Apple M1 chips
Joseph MItzen replied to PeterPanettone's topic in General Help
But is it unpatchable?