Jump to content

Tommi Prami

Members
  • Content Count

    602
  • Joined

  • Last visited

  • Days Won

    7

Posts posted by Tommi Prami


  1. On 1/1/2024 at 4:10 PM, TurboMagic said:

    Now I wanted to migrate it to a newer version (currently 3.0, but at the end 4.x is planned).

     

    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.

     

    On 1/1/2024 at 4:10 PM, TurboMagic said:

    This is a problem already discussed in German DP:
    https://www.delphipraxis.net/214354-backup-problem-nach-umstellung-auf-v3-0-embedded.html
    but the hints I got from there weren't working yet or not exactly how I wanted things to work.

     

    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-


  2. 17 minutes ago, Clément said:

    How low is you range. Can you use a simple array?

     

    A[1]:=1;

    A[2]:=1;

    A[3]:=1;

    ...

    A[7]:=-1; // Non existing range

    ...

    A[102]:=2;

    A[103]:=2;

    ....

    A[149]:=2;

    A[150]:=2;

     

    All elements must have a value. 

     

     

     

    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-


  3. 26 minutes ago, Kas Ob. said:

    so to recap what i get you have non-overlapped integer ranges in a list, and want to implement the best solution to check for an integer to get its range if exist, right ?

    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;

     


  4. 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.


  5. On 12/29/2020 at 5:38 PM, Slappy said:

    Do you have any idea why the installation gets stuck on "Installing library Parnassus CodeEditor..." ?

     

    I tried install it like 10 times and never finished installation, it dow=es not matter whether I run IDE in admin mode or not, it is always the same.

    UAC lurking in the task bar, asking for installation permission? 

    Been hit by that few times....

     

    -Tee-


  6. 14 hours ago, Brandon Staggs said:

    The comments on that readme explicitly state it's not complete. However, it also says Argon2 is not fully documented and isn't as good as bcrypt, both of which are really odd things to say.

    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.


  7. 13 minutes ago, Kas Ob. said:

    Hi,

    Not sure what is your question is, but from what Arnaud wrote and where did he mentioned the salting, i can expand on this, 

    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-


  8. 13 minutes ago, Arnaud Bouchez said:

    - there is also a need for 16-bytes padding of the encoded output - here Pkcs7 seems the de-facto standard.

    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?


  9. Tried to add .NoWait to ForEach call, and did infinite loop processing messages after that it'll start more than one "task" parallel.

    IOmniParallelLoop does not contain flag that I could wait for, that would be nice... (As I saw in some demo maybe in future, IsDone etc...)

     

    -Tee-

×