-
Content Count
502 -
Joined
-
Last visited
-
Days Won
6
Everything posted by Tommi Prami
-
Weird error on latest SVN source release build with D12 (fix versio)
Tommi Prami posted a topic in GExperts
[dcc32 Fatal Error] GX_About.pas(8): E2213 Bad packaged unit format: c:\program files (x86)\embarcadero\studio\23.0\lib\Win32\release\rtl.dcp.Winapi.Windows - Expected version: 36.0, Windows Unicode(x86) Found version: 95.84, Unk(CIL) I think I've never seen this error. Debug version builds just fine. -Tee- -
Weird error on latest SVN source release build with D12 (fix versio)
Tommi Prami replied to Tommi Prami's topic in GExperts
Seems that my problem is not affecting all then... -Tee- -
Weird error on latest SVN source release build with D12 (fix versio)
Tommi Prami replied to Tommi Prami's topic in GExperts
Can someone build release version of GExperts with patched D12, with current sources? If can, could you share it for testing. -
Weird error on latest SVN source release build with D12 (fix versio)
Tommi Prami replied to Tommi Prami's topic in GExperts
Please all vote for this. Vote seems up still... -Tee- -
Weird error on latest SVN source release build with D12 (fix versio)
Tommi Prami replied to Tommi Prami's topic in GExperts
Updated D12, did not check is this 12.1 or 12.0 Fix1 But update is installed. -Tee- -
Access violation when creating thread
Tommi Prami replied to ErikT's topic in Algorithms, Data Structures and Class Design
-
Skip 4.x, and go directly to the FB5. From point of your app, FB4.x and FB5 are more than less the same, only minor ODS version change, form 13.0 to 13.1, so no new data types etc. If scared of new release, wait for couple of weeks/months to see is there something needed to fix (that you care about). If there is valid reason not to go to the FB5, I would for sure to skip FB3 at least, would jump directly to the FB 4.0.4.. Also I would try to avoid setting data type compatibility mode to some to the old version, I would just fix DB and code, should not take too long. Embedded needs exclusive access to the DB, so you need to close all connections to the DB, at the App and external Db tools etc. Not sure that is this the problem tough, because I saw no error message, and did not go through the german forum thoroughly. -Tee-
-
https://ib-aid.com/en/articles/detailed-new-features-of-firebird-5-part-1-improvements-in-optimizer My preliminary tests on our product(s) show that FB5 is clearly faster than FB4. Did not need to measure result, because you could see/feel it very easily. When you saw Vista Wheel with FB4, on top of FB5 you can't even see it, form just opens faster. For sure there will be some corner cases when some query, very carefully optimized for older version of FB will perform worse in FB5. At least always there had been some "regressions". But for every new Firebird release, there has been performance increase. FB5 is close to the release, so please evaluate is best as you can, and report any bugs or regressions ASAP, so they could be addressed before release. -Tee-
-
Not sure. maybe better to ask at Firebird mailing list. -Tee-
-
And Firebird 5.0 is out... https://firebirdsql.org/en/news/firebird-5-0-0-is-released/ Release notes: https://firebirdsql.org/file/documentation/release_notes/html/en/5_0/rlsnotes50.html Firebird 5.0 Language Reference: https://firebirdsql.org/file/documentation/html/en/refdocs/fblangref50/firebird-50-language-reference.html Download: https://firebirdsql.org/en/firebird-5-0/ -Tee-
-
Data structure for Integer ranges
Tommi Prami posted a topic in Algorithms, Data Structures and Class Design
Hello, Was looking for what is out there and Interval tree etc has too much functionality than I need, but still might be way to go, not sure. I have ranges of integer, which do not overlap, and are inherently in right order while adding. In which I need to search if the given more than less random integer falls in any of those ranges, and retrive what type of the range is (Currently there is only two distinct types, and of course the state when integer value is not found in any of the ranges.) List would have 0-couple hundred of ranges at max, usually low numbers. That's why I was thinking that balancing of the tree structures while adding might be unwanted overhead. Was thinking using list that could use list, adn starts are in ascending order, and binary search, but was thinking how to binary search something that most likely is not in the list. Now that I write it out, have to just compare two items and/or is it first/last at the list, quite complex compare but nothing too bad, I think). For the list I was thinking that is there list implementation that can be marked as sorted without doing actual sort operation and would have binary search that could have custom compare that I could find the start of the range, maybe end of the range in the dictionary with start as a key. As you can see, I am not sure how this would be smart to implement. -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
I don't quite follow, could you elaborate a bit? -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Most likely. -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
It sure would be handy and easy, with more than all features needed. I am afraid that it also would be too slow and too much resource overhead, There will be easily thousands of data structure populations and searches can raise millions even more. -Tee- -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Very small ranges that would be simple lookup. I think I have to realistically be mentally prepared upper bounds of few hundreds of thousands, Maybe even millions. Most case it will be 100k or less.. But anyhow, interesting take on this. Thanks... -Tee- -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Just to point it out: I am looking for ideas how to make it fast and simple etc... I made simple proof of concept. Make some Unit Tests for it some point- If there is better idea, easy to test that then. @Uwe Raabe made very simple implementation indeed. -Tee- -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
Meaning "No value given to the Container". If not added value, there can't be any it has... Most likely I'll return defined value, but that is just implementation detail. -Tee- -
Data structure for Integer ranges
Tommi Prami replied to Tommi Prami's topic in Algorithms, Data Structures and Class Design
I think exactly that. integer ranges like 1-5: 1 15-40: 1 102-150: 2 and if I search for: 1 -> I'll get that range exists and get also associated value 1 7 -> No range, and no value 149 -> Range exists and associated value 2 returned code could be something like: if FRanges.Contains(1, LRangeValue) then begin case LRangeValue of 1: HandleRangeType1; 2: HandleRangeType2; end; end; -
ANN: Parnassus Parallel Debugger
Tommi Prami replied to Dave Millington (personal)'s topic in Delphi Third-Party
UAC lurking in the task bar, asking for installation permission? Been hit by that few times.... -Tee- -
I take it as the BCrypt is better if run it one second or shoter period. . Whats actually the point of Argon2 that you run it long, and use much resources, to make it hard for brute force attack, even with GPU farms.
-
There is couple implementations. like: https://github.com/JackTrapper/argon2-for-delphi Have not tested them tough... -Tee-
-
Used word Salt as to ask in different words. But your explanation, I think answered question. It is not about adding "salt" to beginning but padding to end. I would think that is the job for the AES library, not for individual programmer using the library. Kind would hope that best practices would be used as default, and if need something else, lets say receive data from 3rd party system, then you can change behavior. -Tee-
-
What do you mean here actually. Add "salt" to the data to be crypted or to the crypted it result data? and why is 16 bytes important, or it is 16 bytes or more, or any multiple of n bytes?
-
Code is basically this: LFiles.AddStrings(TDirectory.GetFiles(LRootFolder, LSearchPattern, TSearchOption.soTopDirectoryOnly)); if LFiles.Count > 0 then begin Parallel.ForEach(LFiles).Execute( procedure(const AFileName: TOmniValue) var LCurrentFile: string; begin LCurrentFile := AFileName; CompressFile(LRootFolder, ExtractFileName(LCurrentFile)); end ); end LFiles is TStringList; This is in CommandLine app, so maybe it could not even work this way, and I should use some other coding pattern here than ForEach. I could not find way to wait the ForEach loop, If I put .NoWait in there. -Tee-
-
ForEach runs only one "thread" at time
Tommi Prami replied to Tommi Prami's topic in OmniThreadLibrary
Thank you all, Now I've ported the code from PPL to OTL, and next I'll polish it a bit and just use it, or maybe tune it a bit,. As is, it's good enough what it does... -Tee-