Jump to content

Leaderboard


Popular Content

Showing content with the highest reputation on 08/25/19 in all areas

  1. David Heffernan

    madSecurity, Are There Any Alternatives?

    In defence of Mathias his madExcept library is superb and very actively maintained. And his response to your comments in the thread seem reasonable. Why expect him to work on freeware? Anything he does is a bonus. It looks like your frustration is getting the better of you.
  2. David Hoyle

    Resolve a uses clause unit path?

    No flame was inferred 😀. The point I was trying to make was that Dave suggested using iOTABuildConfiguration with constants. This would not work for me.
  3. David Schwartz

    Running the IDE in a VM on Mac Book Pro?

    Ok, Mac vs. PC.... I don't understand why people think Apple's are "too expensive". If you had a car that broke down as often as PCs do but it was 1/3 the cost of one that NEVER breaks down, but the TCO of the cheaper one exceeded the TCO of the more expensive one, you think you're saving money??? Maybe it can't start every 3rd say, or it locks up while updating itself and doesn't give you an option. What if you were on your way to a big meeting and it locked up? Just stopped in the middle of the road for 15 minutes while it updated its firmware? You'd say, "oh, but it was so much cheaper than the ones that DON'T lock up or need to be fixed regularly!" TCO. You need to look at TCO, not just what you paid for it originally. The hardware is functionally equivalent for most intents and purposes between the two. But everybody knows a new Mac will cost 2x-3x what an equivalent PC will cost. Over their lifetime, the Mac will give you fewer problems and cost you less after factoring in the wasted time and expenses that PCs incur. Anyway, I don't buy Mac hardware NEW. I get it either from the Apple Refurbished Store, or on eBay. I don't worry about the price differential for a couple of reasons: (1) Apple HW holds its value over time, PCs don't; (2) with one exception, the Apple HW I've had has outlasted every PC I've ever had. The exception was an original 24" iMac with Intel CPU from 2005ish -- it's graphics card died not long after the AppleCare expired and they wanted more to replace it than the unit was worth. I was able to sell it without HDD and RAM for nearly $400 anyway. Their LCD panels (removed from the case) were selling used on eBay for nearly $300 all by themselves! In 2013 or so, I got a fully-loaded 2012 MBP at the refurb store for $2600 ($3300 MSRP), used it daily, and sold it 2 years later for $2300. You could say it cost me $300 for 2 years of use! How is that "more expensive" than a similar PC that would have cost me closer to $1000 over the same time period because it lost its value so fast? After that, I picked up a 2014 MBP that was a little beefier for $2400. I've still got it today, and I could sell it on eBay for $1200-$1400. That's like $200/yr. (I got the battery replaced earlier in the year for $179. That's all it has cost me since I got it, other than AppleCare, which I never needed to use.) Every PC laptop I've owned has had batteries die within 18 months. The only problem I've had with my MBP was earlier this year -- the battery started bloating up, and as I said, it cost me $179 to get it replaced. They actually removed the logic board and display from my laptop and swapped-in an entire bottom half. So it's "half-new". 🙂 I could probably get my $179 back with a higher selling price selling on eBay! I've never seen a PC that didn't lose 70% of it's value in 2 years. When I need one, I only buy them from Best Buy, and I get the ones that customers return after big holiday sales that are marked down another 25%. As for the software -- MacOS vs. Windows -- I'm fed up with Microsoft's attitude that they've turned Windows into a "subscription-driven" model. I'll open up a laptop and it will start installing who-knows-what. It starts without asking me, locks me out of the machine for 5-30 minutes, and usually resets things that take me days to fix. Also, you pretty much need to run some kind of anti-virus on PCs, and I regularly deal with Windows popping-up asking about this or that threat. This isn't needed on Macs, as far as I'm concerned. I do my personal Delphi development inside of a VM on my Mac -- either my MBP or a Mac Mini. I don't run AV or anything in the VM, and it runs faster than on any Windows laptop I've had. PCs w/Windows are cheaper out the door, but over time they depreciate to the point of being worthless in 18-24 months, and they waste a HUGE amount of time. They also seem to need batteries replaced pretty regularly. Macs are cheaper in the long-run, mostly because they do NOT depreciate the way PCs do, and I've had very few problems with them. But I'm aware there are people in the world who buy one car after another and every one is a lemon, just like there are people who buy anything from Apple, say, and they think they're lemons as well. I can't help that. I don't think dying batteries in PCs means they're lemons, but the fact that they lose their value so damn quickly is a good indicator that they're Really Poor Investments. But as they say, YMMV. I regard Macs as simply a far better investment than PCs. And since I can use either one to do whatever I need, I prefer to buy the one with lower TCO. I know some folks claim that's some kind of "blind religion", but I guess they'd also call Warren Buffett a religious zealot because this is how he buys things as well.
  4. Angus Robertson

    Mustangpeak UltraExplorer

    Good news, build UltraExplorer 2.5 OK and it runs. Immediately found the bug that has stopped me running 2.0.3.1 on my main development PC for a year, if UltraOptions.cfg is blank you get a silly start-up error without that filename being mentioned. Now just need to go back and try and put back code I commented out, party it seems because defines in project options and include files are sometimes ignored so certain code never gets built. Then I'll make it all more widely available, somehow. Angus
  5. David Heffernan

    madSecurity, Are There Any Alternatives?

    I am defending a very important, and very well respected, member of the Delphi community. That's all.
  6. The original code in QualityToInt causes a System.LoadResString for each "case" it checks every time you call that method and System._UStrEqual for the equals check. Neither of those two methods have changed between those versions according to the diff I just did. However LoadResString calls quite a number of other functions that I did not check for changes. I would say a dictionary is pretty much overkill here for those 3 strings - it only is faster because you eliminated the (as I assume) LoadResString calls every time. Try initializing values you compare to only once instead of comparing against the resource strings. I am pretty sure that will beat the dictionary.
  7. OK, I finally got around to finding out what the problem is. turns out string comparisons got massively slower from 10.3.1 to 10.3.3 for iOS. Here is what I did approximately 6000 times: function QualityToInt(aQuality: string): ShortInt; begin if aQuality = rsPoor then Result := 0 else if aQuality = rsAcceptable then Result := 1 else if aQuality = rsGood then Result := 2 else Result := 0; end; Where rsPoor etc. are defined as resourcestring. This (plus some other stuff) took 100 seconds. Changing that to filling a TDictionary with the appropriate pairs once and doing a if not QualityDict.TryGetValue(aQuality, Result) then Result := 0; instead not only improved iOS performance (now 20 seconds) but the Windows version is noticeably faster too. So...granted the latter is better code. But still: What got broken along the way?
  8. John Kouraklis

    IDE adds {$R} between units

    The version is 10.3.2 and it looks like the dproj had a few entries like this: <Form>$R *.res</Form> as described in a link Dave shared. There were, also, some {$R *.res} at the end of the lines with the units. I hadn't seen them because the file names and the paths are very long going outside the window. Hope now all is good. Thanks
  9. Markus Kinzler

    cocos2d multiplatform

    https://discuss.cocos2d-x.org/t/opengl-deprecation-what-it-means-for-the-future-of-cocos2d-x/42746/37
  10. Markus Kinzler

    cocos2d multiplatform

    OpenGL/OpenGL ES are being deprecated by Apple and will be removed shortly. If you want to use it you need an wrapper to Metal. (MoltenGL for instance; not free!)
  11. Dave Nottage

    Running the IDE in a VM on Mac Book Pro?

    Correct, however I did specify that I have a Mac. For a while I thought "well, that's ridiculous.. I have the Mac already, why would I want to run it in a VM?" 😉
  12. Markus Kinzler

    Running the IDE in a VM on Mac Book Pro?

    It's allowed only on macOS hw with a macOS host.
  13. Markus Kinzler

    cocos2d multiplatform

    Or Vulkan being available on all platforms ( on macOS and iOS via MoltenVK, which is part of the official Vulkan SDK). https://vulkan.lunarg.com/sdk/home https://github.com/BeRo1985/pasvulkan
  14. Dave Nottage

    cocos2d multiplatform

    I don't have time to help with this particular project, however for iOS and macOS you should be using Metal: https://developer.apple.com/documentation/metal?language=objc Which is what Delphi is moving towards (from 10.4, apparently)
  15. Ondrej Kelle

    Resolve a uses clause unit path?

    Some pointers can also be found here.
  16. Lars Fosdal

    Resolve a uses clause unit path?

    I sometimes miss the output from the old compilers which showed the path and name of the units being compiled in the sequence they were built, in a complete log.
  17. Dave Nottage

    Resolve a uses clause unit path?

    "Easy" can be subjective 🙂 You'd need to have both the IDE search paths *and* the project paths. For the first, you could read the values from Search Path value for the appropriate platform in the Library subkey in the registry. For the second, you could obtain an IOTABuildConfiguration (for the relevant config) from the IOTAProjectOptionsConfigurations for the active project, and call GetValues for sUnitSearchPath (from DCCStrs). You'd also need to expand any macros in the paths. Then, starting from the project paths first, check each path (in order) for existence of the file. I think they have code for retrieving the paths somewhere inside CnWizards: https://github.com/cnpack/cnwizards
  18. 😄 Nice eastern Frisia diagram. Similar to their national flag (white eagle on white background).
  19. While working on a tool for cleaning up uses clauses I stumbled upon this beast (slightly changed to protect the innocent): {$if defined(DEBUG) or defined(DEBUG_SPECIAL)} uses {$ifend} {$IFDEF DEBUG} dialogs {$ENDIF} //<some comment about the following ifdef> {$IFDEF DEBUG_SPECIAL} mmsystem, // timeGetTime() messages {$ENDIF} {$if defined(DEBUG) or defined(DEBUG_SPECIAL)} ; {$ifend} If you are only looking for uses clauses inside some Delphi sources and try to avoid a full featured parser, you will have a pretty hard job to detect, parse and interpret that one correctly. So, if you are interested to make any use of such a tool, please do me a favor: Don't write your code that way! It is hard to read for humans anyway.
  20. Dave Nottage

    IDE adds {$R} between units

    When you say this, do you mean for a particular project, or for any? The IDE is known to "mess up" the .dpr if you modify certain parts of it. Examples of what can happen: https://stackoverflow.com/questions/758047/how-do-you-deal-with-ifdefs-in-dpr-uses-section https://stackoverflow.com/questions/6762194/how-to-prevent-delphi-modifying-its-dpr-project-source-unexpectedly https://stackoverflow.com/questions/317997/delphi-adding-r-res-in-the-dpr-file https://wiert.me/2018/12/20/do-not-put-ifdef-with-relative-paths-in-your-dpr-as-the-delphi-ide-cannot-match-them-in-the-dproj/
  21. I had one GExperts user who told me that he won't register to en.delphipraxis.net because he didn't like the Terms of Service. He's probably not the only one. This is the part he didn't like: > You grant Delphi-PRAXiS the non-exclusive irrevocable, unrestricted, and geographically unlimited, permanent right to use and commercialize the contents you make available in chats and forums in the Delphi-PRAXiS Internet presence, free of charge and license-free. In particular, you grant Delphi-PRAXiS the right to duplicate, distribute, communicate, amend, edit, modify or translate the contents, to publish modifications, amendments or translations of the contents, as well as to transmit the contents electronically or non-electronically to interactive areas, to lease the contents or grant sub-licenses to third parties in any way. < He said that this would allow DP admins to modify his posts to make them say something he never meant to say.
×