How to Associate a licence key with my Software [closed] - licensing

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 7 years ago.
Improve this question
I wanted to know how can I associate a licence key along with the software I am creating similar to the one as used by most of the companies like Microsoft and other which ask for
key for their product to get installed . In this way how can I also prevent piracy of Software unless the license key is Comprised . I am a naive here and need some guidance from you guys so that I can look on those and proceed further .

To avoid key sharing you need to bind your key generation to some property of customer's computer - a 'hardware lock' or 'software lock'. As a 'hardware lock' the mac address, hard drive's id (etc) can be used. Sometimes 'software locks' are used that gives end user more freedom with hardware upgrades.
So the scheme is looking this way:
Software generates the 'request key' = f('hardware lock') which a customer sends to a software vendor. The vendor generates the 'authorization key' = F('request key') by keygen and gives it back to the customer. When the customer activates his software, it verifies the key if('authorization key' == F(f('hardware lock)) { okey, here we go } else { nope, key is invalid }
The drawback of this method is that a hacker tracks the flow of the key put to 'activation key' field and can find the F(f('hardware lock') then does some 'copy/paste' of F binary code, creates the keygen and shares it over the web.
A better approach is if a hacker can not reach the routine that performs actual 'auhorization key' generation. For instance if it is located on a remote server.
Anyway there is no need to re-invent the bicycle, you can use the solutions developed by others, check the https://activation-cloud.com
Sure thing there is no protection that can not be hacked. The question is how much effort it takes to do it.

Related

Which is better to use DynamoDB filter expression or filter in code? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 1 year ago.
Improve this question
In our application, we have to filter some data. we are using Dynamo DB. In our team, we have a different opinion to use filter expression at dynamo or application level. I want to know what has been following in the industry. Please let me know if you know about some good blogs?
Consider the scenario, we have to deal-template in the active state which can be deactivated by the user. In the get list call, we want to send only active templates.
Dynamo:
filterCondition := expression.Name(activeColumn).Equal(expression.Value(true))
Application:
List<DealTemplate> templates = getTemplate()
for templaes := range templates {
if template.isActive {
// process
}
}
May be getting close to the line regarding questions with opinion based answers..
But the best solution is to structure your data so you don't have to filter anything out at all. Use either a Local Secondary Index (LSI - no extra cost) or a Global Secondary Index (GSI - extra cost)
This way you don't have to pay to read data that gets thrown away.
Otherwise use a filter expression. You still have to pay to read the data, but you don't have to pay to transfer it back; in real $$ if out of AWS and in overhead regardless.

Is it possible to make a booking system using delphi/lazarus? [closed]

Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
I am programming a database(DB) in Lazarus as a project and for increased complexity have NOT downloaded any additional libraries. The software is intended to allow customers to check availability of hiring a villa and them make a booking if the villa is available.
Declaring records and writing them to a file acts as a table for my DB. Reading/Writing/Deleting the records in my files has been achieved successfully and I now move on to the point where I use this data to make bookings.
I have 3 tables:
Clients
Villas
Bookings
Now, my problem comes in with the bookings table. How do I make my application know that a villa has already been booked for the period in which a new booking wants to be made. (basically double booking shouldn't be allowed) So far as mentioned, I can only read/write and delete records in my tables and now move on to the booking stage. Please ask if further info is needed
I'm thinking of using the Tcalendar but have no idea how to program with it or even if that is the simple way of doing it. Any tips please?
You have to solve two distinct problems:
Implement logic (not visible to the user) that determines whether a requested booking is available or whether the villa is booked for some or all of the requested period.
Implement some kind of visual display for the user to see when a villa is booked.
TCalendar would only help you with the second part, which is the least interesting (because you don't really need a visual interface, you could simply pop up a message that says "Villa Not Available").
To write the logic that will tell you whether a booking is available, you will need to refine your data model (or, if you've done that already, explain it to us in more detail). Specific questions you need to address are:
Do you issue bookings against individual villas ("I want to book the Butterfly House for one week starting July 1") or against an inventory of identical villas ("I want to book one of your two-bedroom villas for one week starting July 1").
You need to decide how you're going to store the booking information. When I've tried a task like this in the past, I've found it easiest to store a record for each night of each reservation then, for a request, do a separate query to determine if I can satisfy that individual night. A request for which I can satisfy all nights is bookable.

Double entry accounting database design [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 9 years ago.
Improve this question
Simple question
See http://homepages.tcp.co.uk/~m-wigley/gc_wp_ded.html
Ok there are 3 tables ACCOUNT, JOURNAL, and POSTING
If you want to have a transaction status, where should the status column be?
Status should be in the Journal table
Status should be in the Posting table
please explain your choice, thanks.
Simple, but trick question? There is no requirement for a success/failure status because a JOURNAL is a logical unit of work, and all of its POSTINGs are part of that unit of work. Therefore the JOURNAL and its POSTINGS either exist, if the logical unit of work is successful, or they don't exist if the unit of work is unsuccessful.
This simple test (it's there because it worked or it's not there because it didn't) is a consequence of the fact that there is a business requirement to ensure that JOURNAL includes a candidate key comprised of an unbroken sequence of numbers, which is necessary because it gives auditors a false sense of security.
In a real-world system, there would be a second set of tables, along the lines of PENDING_BATCH, PENDING_JOURNAL and PENDING_POSTING which would contain transactions that haven't been completed yet. It would make sense to keep various kinds of status information here. The transaction status for pending transactions belongs on the PENDING_JOURNAL table because the whole journal and all of its postings must either succeed or fail as a unit, so the status of the unit should be normalized to the parent record (i.e. PENDING_JOURNAL).

Is this good design for multi-language of system text to support x number of langs? [closed]

Closed. This question is opinion-based. It is not currently accepting answers.
Want to improve this question? Update the question so it can be answered with facts and citations by editing this post.
Closed 8 years ago.
Improve this question
Does this implementation scale well:
Requirement is:
System must support x number of languages; where x will = as many languages as business can translate
All system maintained values (page content, email content, values stored in the hundreds of lookup tables which are user facing) need to support multi-language.
My implementation:
Tables: (sample names used)
local_text_table
language_lookup_table
Content_table_1
Content_table_2
Content_table_3
Content_table_4
....
Plan:
language_lookup_table has list of all possible languages
lang_id lang_name
local_text_table has list of all possible text used on system (emails, page content, menu labels, footer text etc) along with 1 colunm for each language that system will support - FK to the language_lookup_table.
text_id
eng_text
spanish_text
arabic_text
...
This way all translation is stored in 1 table for entire system. I can enable/disabled/update/edit/add/remove translations in 1 step. in the code all text is stored as a keyword referencing to (text_id). System detects what language the user's session is running and accordingly pulls the text from the column for that keyword. if a particular row is NULL (not translated) it will default to the English text column.
Is this good?
Of course this will not work for the lookup values stored in the hundreds of tables, for that I have no plan as yet apart from giving each table it's own colunms for each language. Then I have user content also to allow users to translate their user postings like blogs, comments etc for which I don't have a plan. But I want to fist focus on the system text and finalize that.
Your design is flawed in that you won't be able to add a new language without adding a column to local_text_table.
A better design for that table would be:
text_id
lang_id (foreign key to language_lookup_table)
translated_text
Now you can add a language to language_lookup_table and then start adding translations to local_text_table without making any changes to your relational model. If you have the means to enter this data via a UI (or even directly in the database), you should be able to add new languages directly in production.
Clearly you will need an intersection between every table you want to have support in multi language and language table. Also I recommend to use a flag in languages table with the meaning of "installed language" which means that in a particular implementation can be used only some useful languages. This flag will helps you to display in a list only interest languages, not all. Also, the language table you can find all LCID codes in Microsoft forums, already with LCID code which is already used and is common.

Good event calendaring / scheduling design guide? [closed]

Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 4 years ago.
Improve this question
In an application I'm designing, the user has to be able to specify rather complex event scheduling (continuous time-block vs. daily time-blocks, exception date/times, recurrence patterns etc.)
Does anyone know of a good design page for such a thing online? For example, I was highly impressed with this page's description of how to do database audit trails, and would love something similar.
Current thinking
My database would contain of the following tables: Events and ScheduleItems
The relationship would be Events {1 -- 0..*} ScheduleItems
Events would have the following columns: eventId, schedulePattern
ScheduleItems would have the following columns: eventId, startDateTime, endDateTime
The front end controls would allow the user to specify general rules (daily/continuous, includes/excludes weekends, start/end date/time etc.). If they are not satisfied with the existing controls, they could then opt to display and manually tweak the generated "time-blocks"
On saving the event schedule...
If only the provided controls were used (no tweaking) I would save their selections as a pattern in the Events table (i.e. "sd:2010-04-28;st:09:20:00;ed:2010-05-12;et:17:20:00;r:2w[M-Th];z:EST" etc.)
If the user manually tweaked the generated time-blocks, I would save each individual time-block within the the ScheduleItems table and have Events.schedulePattern be given a special code ("MANUAL" or something).
Pros
I should be able to save > 90% of the events through the pattern field directly, and be able to handle any other corner cases through the "brute-force" ScheduleItems table. Since some of the handled cases include events that can go on for months (which would otherwise result in a very large number of time-blocks), having it in one line is rather attractive.
Cons
This is a fairly complex solution; any other system requiring this data would need to be able to handle parsing the schedulePattern as well as knowing when to fetch ScheduleItems.
The "schedulePattern", in a mature way, uses Cron format to store the users' schedule is a good idea for running task.
This format is simple but sophisticated. In relational database, there would be some performance benefit if you seperate every "entry" of Cron to a column of table with suitable indexes.
The effort, however, is the translation between this format and user interface. And the raw data to which user input should be recorded originally.
I would design two kinds of table, one for raw data inputted by user, another for running task for schedule.

Resources