Joseph MItzen
Members-
Content Count
283 -
Joined
-
Last visited
-
Days Won
7
Everything posted by Joseph MItzen
-
I'm reminded of an American expression "All hat and no cattle...."
-
That might be more than a story. Remember the good old days when the IDE home page was hacked to display pro-ISIS messages?
-
Routine to check if set of dates match
Joseph MItzen replied to david_navigator's topic in Algorithms, Data Structures and Class Design
How do you know this? How long is it taking? EDIT: Holy *$&# I just learned that you can't directly compare two lists with equals (and get the right answer): https://stackoverflow.com/questions/3368225/do-delphi-generic-collections-override-equals -
Problems with installing RAD Studio 11 in Wine
Joseph MItzen replied to AntiClasxson1958's topic in Delphi IDE and APIs
OK, just checking in to say that I've gotten a Access Violation error in rtl280.bpl when trying to install with the latest version of WINE. The fun thing is when one does a Google search on "rtl280.bpl" one gets back five pages of results, basically all of them about error messages from Delphi. I'm going to try fiddling with things some more. Not those workarounds. Those workarounds would have you setting up a 32bit prefix, which won't work for Delphi anymore. It also has other tricks like installing IE8 (which you can't readily do from a 64bit prefix) and installing .NET 3.5. I got to the point I'm at by using a 64bit prefix, installing corefonts and, per one error message, installing .NET 4.5. Now I need to proceed to bear it with a stick. I'm sure the IDE relies upon 76 ancient, proprietary bits of Microsoft software that aren't documented anywhere..... -
Problems with installing RAD Studio 11 in Wine
Joseph MItzen replied to AntiClasxson1958's topic in Delphi IDE and APIs
So it performed identically to running on Windows? I've got a cutting edge Linux desktop; tomorrow I'll give the trial of Rad Studio 11 a go with the latest version of WINE staging (a series of patches on top of WINE) and Valve's Proton fork of WINE if necessary and see if I can get working. I've got a reasonable amount of experience poking Windows software with a stick until it runs under Linux. -
Pascal syntax highlighter treats backslash as escape character
Joseph MItzen replied to Remy Lebeau's topic in Community Management
Good idea - I'll file an enhancement proposal that Pascal be fixed to treat backslash as an escape character. No more #13#10 in the era of Unicode... -
The Curiously Recurring Generic Pattern
Joseph MItzen replied to Erik@Grijjy's topic in Tips / Blogs / Tutorials / Videos
Doesn't using classes, abstract classes, generics, hidden properties, class constructors, and of course a typecast of sorts anyway for such a simple problem make you want to throw up your hands in despair and swear to never use static typing again? -
Delphi 6 all of a sudden wants to be activated
Joseph MItzen replied to dummzeuch's topic in Delphi IDE and APIs
I'm going to have nightmares about your VM tonight. This feels like a worthy goal and a horrible nightmare waiting to happen. Too much Delphi mixed all together can't be good. You know that old urban legend where you say "Bloody Mary" three times in a mirror in a dark room and a ghost appears in the mirror? I fear that if you add three more copies of Delphi to your VM and turn out the lights you'll see a faint image of David Intersimone burned into your monitor. -
Is it really complicated? SQLite can store datetimes as ISO8601 (string) , Julian day numbers (real), or Unix time (integer). It has functions for working with all three of these types. Most SQLite drivers I've seen in various languages automatically convert between one of these and the language's own datetime type, and some offer the user the choice of storing the native datetime in any of three types. For those who are interested, SQLite very recently added static type support, which may be of use to those for whom this was a dealbreaker.
-
Bah; now you've just replaced your Year 2038 Problem with a Year 292,277,026,596 Problem.
-
What, you don't want to be like me and walk out the door with nothing lined up a few weeks before the Great Recession hits? 🙂 Sorry that post came off a bit too negative... I was just about to go edit it and saw you'd already replied. You're right of course. On the other hand, several years ago one of the employees at EMBT's Romanian facility (back when they had one) showed up in the comments section of a Delphi blog entry about the Romanian unit. After establishing he really worked there, he explained that the wages EMBT were offering were low, even for Romania. He said that Chinese companies also off-shored there and they offered better pay. Because of this, the only people EMBT could get to work for them there were people who had just graduated college (and who studied C++ and Java but not Delphi). He said that these new programmers only took the job to get one year of experience on their resumes, which was enough to get a job with one of the Chinese firms. Hence the folks working on Delphi in Romania didn't care about poor code quality or bugs because they didn't expect to be around long enough to have to fix it. 😞 Another time two of EMBT's Delphi developers showed up in the old forums. Someone began explaining to them the details of some bug that was a complete showstopper for their company and that had no signs of being fixed anytime soon. One developer replied, "See, this is why we don't like to come here." A TeamB member took people to task for bombarding them with their issues but uncharacteristically also told the Delphi developers that their dismissive attitude towards users with problems wasn't appropriate either. The two developers never showed up again. So that's some of what informed my initial response; those working on Delphi haven't always been hard-working and singularly dedicated. On the other other hand 🙂 a source on the U.S. Delphi team at the time told tales of employees having substandard monitors and inadequate server power which led to exceedingly long build times when they wanted to test changes, so they do have a lot to put up with as well. Anyway, I apologize again for my tone; some of that came off targeted at you personally, which was inappropriate.
-
You criticize others for maintaining insight they don't really have, and then you do the same thing in the same sentence. What we do know about their parent company is that several times in the past after acquiring companies they fired most of the programmers and outsourced the development work to China and other countries with cheaper labor. They also tend to gain new products via acquisition rather than internal development. Embarcadero is privately owned and doesn't have to answer to shareholders. Again, you're being as clairvoyant as those you criticized, but if management doesn't even allow developers to say "this doesn't work" then things are even worse than feared. Things wouldn't even be fixable if people who see problems can't point them out. They can quit and keep their integrity. I've walked before rather than have my name associated with a doomed project when management ignored my concerns. If you don't quit, "I was just following orders" isn't an excuse if you knew better and went ahead and did it anyway.
-
It doesn't, unbelievably.
-
enable/disable the internet connection?
Joseph MItzen replied to David Schwartz's topic in Windows API
You have me confused with the original poster, @David Schwartz. -
Ooh thanks; this will be very interesting to check out. I sometimes use Cython or jitted Python (Numba) to speed up old Delphi or FreePascal code.
-
Threads are evil. Threading was never originally intended for general parallel processing. In Python, what you want is multiprocessing; performant and safe. Threading in Python will only improve IO-intensive tasks.
-
enable/disable the internet connection?
Joseph MItzen replied to David Schwartz's topic in Windows API
Thanks; as someone who has been using Linux as their primary OS since 2010, some of the things I've been reading here are horrifying. The OS is supposed to bend to your will, not the other way around! -
wuppdi Welcome Page for Delphi 11 Alexandria?
Joseph MItzen replied to PeterPanettone's topic in Delphi IDE and APIs
What unpardonable sin did you commit to cause this to happen? -
Using Expressions in the Group By Clause in Interbase
Joseph MItzen replied to MikeMon's topic in Databases
They added Common Table Expressions 8 years after PostgreSQL (although they still don't have the recursive option, which PostgreSQL has had for 11 years now), tablespaces 15 years after PostgreSQL... they still don't support partial indexes, functional indexes, window functions, UPSERT, full text search or even timestamp with timezone. No compression support, materialized views, partition support... Their marketing material still brags about being "SQL-92 compliant". It's only been in the last few years that Embarcadero has made any user-facing improvements at all to Interbase. I remember a blog post by MVP Warren Postma several years ago about the Interbase Developer Edition shutting down after four hours (I think it's up to 48 hours now) and how ridiculous that is given that SQL Server, Oracle, etc. give free developer editions without the forced shutdowns. David Intersimone appeared in the comments and said that four hours was plenty of time to test any code and they didn't want people stealing the database. Warren, MVP status be damned, asked David why anyone would go through all the trouble of stealing Interbase when there were much better databases they could have for free? David didn't respond to that. Even SQLite offers window functions, partial indexes, functional indexes, JSON support, full text search, UPSERT and common table expressions with recursion now. (It's actually a damn fine database for performing data analysis on the desktop now; I'd choose it for business intelligence or analytics work over Interbase in a heartbeat). I leave you with four more quotes to ponder.... -
Who won? Who won? Who won?
-
web scraping or web parsing for project?
Joseph MItzen replied to KeepTheHonesty's topic in I made this
It sounds like you hate web scraping. Meanwhile I've developed a new love of web scraping.. it unlocks all sorts of amazing possibilities. Delphi's really not the best tool for the job, though. But if you use selenium to control a headless browser and deal with the javascript for you, beautfiulsoup to scrape a page, and perhaps scrapy if you need to do web crawling... things become a lot simpler. My brother has a preexisting medical condition that made him quite vulnerable during the COVID lockdown. Food stores were offering a service where you could order online and they would shop for you and have contactless pickup but there were only so many time slots during each day available and high demand. The first time my brother managed to get an order in he had to do so at a store an hour away! I wrote a program that used selenium to log into my brother's local grocery store website and navigate to the time reservation page and then passed the HTML post-javascript to beautifulsoup to extract the time table and parse it. If there were new openings it would then email my brother to let him know. This was quite a big help to him and saved him two-hour round trips. I've scraped my Amazon wish lists and then used beautifulsoup and requests to search the online lending library at archive.org to find books I was interested in that were available to read for free through archive.org. I used some web scraping to create a script that checks if a piece of open source software I use has a new version available, and if so to download, compile and install it in one go for me. I'm competing in an online horse race handicapping contest and another script takes the races for the contest and scrapes the race track's YouTube page to let me know when the video is up from the relevant races (YouTube is an ugly JSON-filled mess to scrape unfortunately). I've been on the lookout for more things to scrape too! It can only take a line of code or two unless the website takes drastic measures to avoid it (*cough* Equibase *cough*) but then just a few more lines of code to bounce your page requests through TOR while resetting the connection each time to get a new output node at a different spot in the world will take care of that. -
web scraping or web parsing for project?
Joseph MItzen replied to KeepTheHonesty's topic in I made this
Performing open source intelligence on competitors' pricing isn't a copyright violation; depending upon how it's done it may be a violation of the site's terms of service though. Now if they're actually going to use the competitors' product descriptions and photos then yes, that would be a copyright violation as well. -
Crazy question, but why not just launch the system default PDF viewer? That's what every piece of software I have does.
-
why shortstring in Delphi cannot used in our Programs using New IDE?
Joseph MItzen replied to bravesofts's topic in Algorithms, Data Structures and Class Design
D has three types - string is UTF-8, wstring is UTF-16, and dstring is UTF-32. Rust has two types - string, and a type that is a slice into a string (it considers this to count as a second string type in the documentation). It still remains that Delphi is the only language to feel the need for so many different types. Heck, Python is the ultimate "glue" language to shove data around between OSes and APIs, and it has one string type and one bytes type and this is sufficient to interface with everything, deal with Windows and COM, wrap C code, etc. Don't get me started on that too! 😉 No complex number type, no fraction type, no arbitrary precision library, but so many integer types.... At least when I learned Turbo Pascal in Catholic high school I could declare all my types Cardinal.... -
why shortstring in Delphi cannot used in our Programs using New IDE?
Joseph MItzen replied to bravesofts's topic in Algorithms, Data Structures and Class Design
That was probably me. They even came up with a string type to address the problem of too many string types. Python first transitioned to Unicode in 2000 and ended up with two string types. It was a disaster, so they broke backward compatibility with 3.0 in 2010 to have a single string type again, the 2.x line had to be supported concurrently for a decade to get people to finally convert their codebases, and it was all a big mess. Delphi had the luxury of not switching to Unicode until ten years after Python, so they got to see all the problems with two string types. Then they decided to do a "hold my beer" and come up with about 256 different string types... and then get rid of them... and then bring them back on platforms there wasn't even legacy code for. C#, Javascript, Python, Ruby, Swift, Go, R, PHP (but still no native Unicode support!), Kotlin... you'd think if 29 string types were useful, more languages would have at least two...