Jump to content

Joseph MItzen

  • Content Count

  • Joined

  • Last visited

  • Days Won


Everything posted by Joseph MItzen

  1. Joseph MItzen

    Do we have a spam problem?

    I've got some recommendations.
  2. Joseph MItzen

    Do we have a spam problem?

    Hey, you deal with the Delphi IDE long enough, you need a fistful of cheap unmarked pills of dubious provenance to get through the day!
  3. You're reminding me of something written by Dennis Ritchie about operator precedence in C. At one point early on they wanted to change it, but Ritchie said "We can't; there's almost a million lines of C code out there!" He wrote that in retrospect they should have made the change. Contrast this with the creator of Python, Guido Van Rossum, when talking about breaking compatibility to change how Unicode strings were handled. I don't have the exact quote, but it went something like "All the lines of Python ever written pale in comparison to the number of lines of Python yet to be written". This gets into the touchy subject of how many people are writing new code in Delphi versus how many are maintaining legacy code. Even with C++Builder they brought the 32bit compiler up to C++17 first, saying you'd be surprised how much 32bit code is being maintained by C++Builder users.
  4. Maybe the word you're looking for is "template"?
  5. Joseph MItzen

    [Firebird] What DB to use for a demo

    DBeaver is one of the premier open source/commercial database management tools.... https://github.com/dbeaver/dbeaver You might also want to look into the online dummy data generators, such as.... http://filldb.info/
  6. They don't make their own compilers anymore, do they?
  7. Embarcadero sold to Idera for $600 million. Idera was said to be about the same size as Embarcadero at the time of acquisition, putting the worth of the combined entity at approximately $1.2 billion dollars. For perspective, Embarcadero bought CodeGear for $30 million. As Jolyon Duranko-Smith once observed, if we're extremely generous and assume that the worth of Delphi doubled under its time with Embarcadero, that puts its contribution to the worth of Idera at 5%. It's not a particularly important asset for them.
  8. There's no "perhaps" about it. On the RemObjects forum a comment came up about perhaps RemObjects would buy Delphi if it was up for sale (this may have been around the time it became clear Idera was going to buy Embarcadero). Marc Hoffman then replied, asking what made the poster think they'd even want it. He went on to say that he wouldn't want anything to do with Embarcadero after his experiences with them. He also revealed that at one point during their discussions someone from Embarcadero said "We own Pascal".
  9. Don't worry; they don't have any more of those either so you're at least on equal footing.
  10. "We can't afford a faster computer because Delphi is so expensive".😞
  11. They never fixed that?!?!?!?
  12. Joseph MItzen

    With's the deal with "With"?

    Hmmm.... maybe you're both right! I think we need to be discussing other languages here because I can't recall a mainstream language with a "with" statement that does what Delphi's does (Python has a "with" keyword but for a different purpose). So perhaps the question should be asked... how do other languages address this problem? Joe Gregorio of Google once gave a talk in which he stated that design patterns were "language smell". He stated that when the same code is written over and over that's where a feature is needed. He talked about the lack of design patterns in Python and other languages like LISP and then went through how features like first class functions in those languages removed the need for the classic design patterns. Perhaps Delphi's "with" points to language smell and we can look at what features languages without that smell have that eliminate it. Why are people using with? To avoid writing code like this: someBigThing.x := 7; someBigThing.y := 8; someBigThing.z := 9; No one wants to write "someBigThing" over and over. We also see code in Delphi where an object is initialized, then lots of parameters are set one by one (creating a temptation to use "with") and then finally an "execute" method or similar is called. I once dubbed this "the Delphi pattern" and then discovered that it's also a problem/pattern in Java and they have a name for it. Unfortunately, I can't recall it right now. 😞 But how is this dealt with in languages other than Delphi and Java? It turns out there is a language feature which eliminates this pattern.... named parameters. The code above can become No ambiguity of the with statement, yet no redundancy of omitting it either! The "Delphi pattern" for object initialization can disappear too into one line of code. If Delphi introduced named arguments the with statement could be eliminated, removing the dangers, while at the same time preserving the benefits and brevity it granted. A simple fix that makes everyone happy and incidentally provides one of the modern language features needed to design some beautiful APIs. The funny thing is that the language actually does have named parameters, but only under very specific circumstances.... https://stackoverflow.com/questions/885942/named-optional-parameters-in-delphi Trivia note: The above is the only Delphi-related Stack Overflow question without a reply from David Heffernan.
  13. Joseph MItzen

    With's the deal with "With"?

    Well, maybe we should listen to what all those people have to say too. I'm sure there is a lot to learn from many different languages.
  14. Joseph MItzen

    With's the deal with "With"?

    Nobody bring this up with Rudy. I watched him argue voraciously in the distant past that namespace collision with imported units was a feature of the language and there shouldn't even be a warning because it's a feature. He couldn't recall who called it a feature or why, but that didn't shake his conviction in the least. 😭
  15. Joseph MItzen

    Parsing Google Search Results redux

    In that case, you want to check out goop.
  16. Joseph MItzen

    Parsing Google Search Results redux

    This is why there are embeddable web engines that process Javascript. You need this, for instance, to parse Amazon wish lists, since the pages use javascript to automatically load more items as you scroll down the page. There are also tools such as Selenium for driving web browsers. Or platforms like ScrapingHub, powered by the open source scrapy library and the Splash headless, scriptable javascript-enabled browser
  17. That's a helper method name worthy of Java! Also, what I took from the Woll2Woll article was a bit of a surprise that there's no built-in cross-platform way to send an email with FireMonkey.
  18. Joseph MItzen

    Passing back a string from an external program

    It's not so simple in Delphi though.
  19. Joseph MItzen

    Passing back a string from an external program

    Thank you; I'm reading this on a Linux box and thought I was missing something for a second. "Write programs to handle text streams, because that is a universal interface." - Peter H. Salus, "A Quarter-Century of Unix" Now, the question is how to handle this with Delphi... Delphi has never gained a simple solution for calling programs and getting the text results back, which is a weird and glaring omission in my mind. FreePascal has a handful of routines for doing so (some of which work across platforms), Qt has QProcess, etc. There's some information here on FreePascal's TProcess: https://wiki.freepascal.org/TProcess and there's a port of TProcess to Delphi (which I haven't tried): https://github.com/z505/TProcess-Delphi Otherwise, you're left with the somewhat complicated default Delphi way of doing this.... https://stackoverflow.com/questions/9119999/getting-output-from-a-shell-dos-app-into-a-delphi-app
  20. Embarcadero can't fire him; Idera purchased EMBT and he was the person Idera picked to oversee Delphi. I'm not sure this was his idea either. I heard it was Michael Swindell who came up with the Delphi Pro EULA change (as well as the bogus 3 million users figure) and he's not only still there, he's listed as "Senior Vice President of Marketing and Product Management". Let's not rule him out as a suspect.
  21. It also doesn't address the fact that Embarcadero service reps are simply outright refusing to do the bumps for those who aren't on current subscription. His "clarification" doesn't address what Embarcadero is actually doing. I'm starting to suspect that this is going to be like the resolution of the Delphi Pro EULA incident, where Embarcadero tried to convince everyone that they never actually made any change. In this case, his clarification is actually a policy reversal and now he's going to tell sales to stop refusing to do the bumps. Then we'll all be told it was never the policy and we just misunderstood. It'll be just like this:
  22. Oh boy, the things I've heard about Packt Publishing. You'd be better off publishing yourself. Their agents work on commission so they'll basically try to talk anyone into writing a book. They'll set impossible deadlines, their editors don't speak English as a first language and will often introduce errors, they ignore the corrections/suggestions of technical editors, etc. They don't do the promotion they promise. And they've been caught before "accidentally" not paying any commission on the book sales generated through a link one could add on one's own blog for readers to buy one's book. I've seen one successful author declare he sold more copies himself than through Packt and when they finally agreed to let him out of his contract due to his allegations they hadn't done what they promised, they still refused to stop selling his book themselves. He then made his book available for free on his webpage to stop them from profiting from his book. It's a horrible, horrible outfit that's little more than a self-publishing firm that takes a large percentage of your sales and does nothing in return.
  23. I asked the Embarcadero IDE team and they said "no". 😈
  24. Joseph MItzen

    RadStudio Roadmap 2019

    "...a single Language Server can be re-used in multiple development tools, which in turn can support multiple languages with minimal effort." In theory it would divorce the Delphi language from the Delphi IDE. This would allow for Delphi code completion and other features to be accessed from tools such as VS Code, Eclipse, Sublime Text and anything else implementing the protocol and enable supporting additional languages in the Delphi IDE. In theory. I can't shake the feeling that Embarcadero will find some way to lock things down. But the idea is really great and I've been advocating for this since the concept was first revealed by Microsoft and Red Hat.
  25. Bump Me Delphi One More Time (Sung to the tune of Baby One More Time) Oh Delphi, Delphi Oh Delphi, Delphi Oh Delphi, Delphi how was I supposed to know That something wasn't right here Oh Delphi, Delphi I shouldn't have nuked Windows And now you're out of sight, yeah Show me how to contact Team B Tell me Delphi 'cause I need to use Project Jedi Your installing is killing me (and I) I must confess I need a bump (need a bump) Using EDN I lose my mind I'm in a bind Bump me Delphi one more time Oh Delphi, Delphi The reason I reinstall? The IDE is locked up Oh 'spensive Delphi There's nothing that I wouldn't pay To get out of this cock-up Show me where to send the money Tell me Delphi 'cause I need to compile, all because Your policies are killing me (and I) I must confess I now believe (now believe) Dropping my subscription wasn't fine Here's dollar signs Bump me Delphi one more time Oh Delphi, Delphi Oh Delphi, Delphi Yeah, Oh Delphi, Delphi how was I supposed to know Oh 'spensive Delphi, that Popov needed the dough I must confess, that Oxygene is looking so good now Don't you know I still believe That I'm screwed and how EDN be kind Bump me Popov one more time Your Code Insight is killing me (and I) I must confess I still believe (still believe) One more squiggly line I'll lose my mind VS' looking fine Bump me Delphi one more time I must confess, that your buggy mess is killing me now Don't you know I'm still locked in I see with clarity Can't wait til FPC reaches feature parity Bump me Delphi one last time