-
Content Count
2637 -
Joined
-
Last visited
-
Days Won
91
Everything posted by dummzeuch
-
I don't quite agree that it's useless, but it could definitely be much more useful if it did get restored on an IDE restart.
-
Because I could. It started out as a simple test whether it was possible to create additional dock windows which were themselves not docked in the IDE. When it turned out that it's possible, I added it as an expert in the hope that it might be useful to somebody.
-
It's not very high on my to-do list, as I only know of only two people who use this feature, and I'm not one of them. But as always, I'll accept patches.
-
Yes, but the IDE doesn't know anything about these additional docking windows and there seems to be no way to make it aware of them.
-
There are also several firewall apps for Android which should allow checking for this, but I have never actually used one. Given, that Google knows about everything about me due to me using an Android phone, GMail and being constantly logged into my Google account while surfing the web, I don't really see a need to check whether any of the other Google tools submits any more information. If I ever find a usable replacement for GMail, I might make an effort though.
-
The additional Dock Window implementation does not support saving and restoring for now.
-
Google Authenticator is a One Time Password Generator. There are several alternatives that work the same way and are open source, e.g. FreeOTP is the one I use. These apps use the current time and a shared secret (with the server) to generate a 6 digit number. They all generate the same number given the same input, so you could use it to authenticate with your own app. The number is only valid for login for about 30 seconds. Of course Google Authenticator could use the data you add into it and the information about when you use it to log into which service for Googles purposes. But since it does not need an internet connection to fulfill its purpose, you could simply check whether it phones home or not. If it does, it's doing something it doesn't need to do and probably shouldn't do. Or, if you want to be 100% sure, use an open source solution and compile it yourself. (There are other methods to generate One Time Passwords, see e.g. Wikipedia for that.)
-
Blogged : Advice for Delphi library authors
dummzeuch replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
I offered to help out and even submitted pull requests with updates for them, but they were ignored for several months. Then I gave up. -
Blogged : Advice for Delphi library authors
dummzeuch replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
If I remember correctly, it was added in Delphi 10.4, so it won't help much if you develop for multiple Delphi versions. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
re 1: Then I probably need to repeat these tests on a system where the Delphi IDE hasn't run (yet), because I am not sure whether it had been running before the tests or not. re 2/3: There are lots of discussions on the web about Sleep(0) vs. Sleep(1) vs. SwitchToThread and there seems to be no definite answer which one to use in a spin lock. It all depends on the circumstances. re 4: Again, this depends on the circumstances. With a small protected section and low contention a spin lock might be way faster than a critical section. I was trying to find out whether that might solve some issues I had with a particular program. It turned out that it didn't (but again, I need to repeat the test taking into account what I have learned in the meantime), but this had started me into the topic. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
Hm, shouldn't the assertion go into a constructor? -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
I read somewhere (when I was searching for 'Yield'), that Yield doesn't exist on Arm processors and there simply translates to NOP. Not sure whether I understood that correctly because at the time I wasn't really interested in Arm. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
Yeah, right. Think again, Thomas. I did some tests and it turned out that in these tests(!) on my computer(!) Sleep(1) increased the throughput by more than 50% over Sleep(0), even though all threads were running in the same application and with the same priority: Sleep(0) 5 Writers 5 Readers Run1: Writes: 5738 Reads: 4683 [avg. per ms] Run2: Writes: 5662 Reads: 4716 [avg. per ms] Sleep(1) 5 Writers 5 Readers Run1: Writes: 10444 Reads: 7528 [avg. per ms] Run2: Writes: 8587 Reads: 9411 [avg. per ms] Note that it is quite possible that I bungled the tests. They are not as consistent as I would have expected. -
Blogged : Advice for Delphi library authors
dummzeuch replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
Actually I did less than a year ago: Compiling TeeChart 2020 for Delphi 2007 It won't help, of course. -
Blogged : Advice for Delphi library authors
dummzeuch replied to Vincent Parrett's topic in Tips / Blogs / Tutorials / Videos
Unfortunately many well known commercial and open source libraries don't adhere to these. It's a major pain in the lower back every time I want to install Delphi on a new computer (which happens quite regularly, at least several times per year). -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
... or simply assume a multi core system. When was the last time you saw a single core (Windows-) system in the wild? OK, a program could be restricted to a single core by the user or the OS, so there is that. And there are VMs which can also be configured to run on a single core even on a multi core system. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
I'm writing my own spinlock to get a feel for what can be done. One of my programs shows some odd behavior when using a critical section so I tried to see whether this changes when switching to a spin lock. It seemed to work at first, but my last test failed miserably so I'm "going home" now. Quite possible, but since these require API calls, they have a significant overhead in the best case (no spinning required). I knew about Sleep(0) vs. Sleep(1), but wasn't that supposed to be changed in Windows Vista and later? (reading the second link) OK, apparently not. But since the threads in question are running with the same priority, Sleep(0) should work fine. Apart from that: the above code was just an example, how to prevent running a single CPU system at 100%. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
You mean instead of Sleep()? I haven't thought much about that case yet. Using doTryLock it with sleep which gives a much higher throughput than doLock or a Critical Section in my tests on my computer. But I am not yet sure whether this makes any difference in a real world scenario. Apparently there the is the Pause instruction on Intel CPUs: https://stackoverflow.com/questions/4725676/how-does-x86-pause-instruction-work-in-spinlock-and-can-it-be-used-in-other-sc I'll have to look into it. -
spinlock primitives
dummzeuch replied to dummzeuch's topic in Algorithms, Data Structures and Class Design
Yes, thats how a SpinLock is supposed to work, isn't it? That's why I added the doTryLock function which could be used like this: while not doTryLock(Lck) do Sleep(0); -
GExperts 1.3.18 experimental twm 2021-02-21 released
dummzeuch replied to dummzeuch's topic in GExperts
Does anybody else have this compile error? -
GExperts 1.3.18 experimental twm 2021-02-21 released
dummzeuch replied to dummzeuch's topic in GExperts
Hm, that's odd: I just checked out the sources to a new directory and run the build script. Compiled fine. (Bloody license server is acting up again, so I can't load it into the IDE right now.) -
GExperts 1.3.18 experimental twm 2021-02-21 released
dummzeuch replied to dummzeuch's topic in GExperts
Oddly enough, the file is right there: In Directory Source\UsesExpert: (Maybe it doesn't really belong in this directory because it's used by a unit in framework) I'm not sure what causes the compile error, but I will investigate. Did you compile in the IDE or via the build script? -
GExperts 1.3.18 experimental twm 2021-02-21 released
dummzeuch replied to dummzeuch's topic in GExperts
Not the genie, the GExpert 😉 -
GExperts 1.3.18 experimental twm 2021-02-21 released
dummzeuch replied to dummzeuch's topic in GExperts
Please no discussion about Covid here. -
I just committed a dproj file for Delphi 10.4 (GExpertsGrep.10-4.dproj) This works for me. The automatically converted Delphi 2007 dproj file didn't work for me either.