Delphi is still in Top 20... but barely. It is the last one. It may fall any time.
Too sad....
You want to do amateur or power-level computing? Then there is no other choice than Windows! Period. As a Windows user you don't have to spend tons of a money for a Mac PC (sorry Mac guys but Mac is nothing else than an expensive PC now) and you don't have to waste time on forums to learn how install stuff. All that Linux/Mac can offer you can get on Windows and get is better. I spent many years working with Linux but it was always only my second choice. Sorry Linux friends, but I said it.
Showing posts with label programming. Show all posts
Showing posts with label programming. Show all posts
Tuesday, August 16, 2016
Wednesday, February 25, 2015
How difficult is to write a solid software protection (licensing) scheme?
Extracting unique identification numbers from hardware and using them for software protection scheme
I had customers that are purchasing a single software license but using it on multiple computers so I wanted to prevent them from doing so. The solution I have found was to generate a license key that is unique for each computer.
How? Using a DLL called Hardware ID Extractor, I can read the unique hardware ID of each computer. The DLL is easy to use. To get the CPU ID for example you simply call: GetCPUID.
The first thing you will ask yourself is: does the ID persist after the user formats the PC and reinstalls Windows. The answer is YES (hooray!). It works because this neat DLL reads the ID that is written (permanently) in hardware, not from Windows registry key.
And yes, it is compatible with all programming languages.
Link: Hardware ID Extractor library
Supported IDs:
Hard drive ID (unique hardware serial number written in drive's IDE electronic chip)
Partition ID (volume serial number)
CPU ID (unique hardware ID)
CPU vendor
CPU current running speed
CPU theoretic speed (CPU rated speed)
Memory Load ( Total memory used in percentage (%) )
Total Physical ( Total physical memory in bytes )
Avail Physical ( Physical memory left in bytes )
Total PageFile ( Total page file in bytes )
Available PageFile( Page file left in bytes )
Total Virtual( Total virtual memory in bytes )
Available Virtual ( Virtual memory left in bytes )
BiosDate
BiosVersion
BiosProductID
BiosVideo
I had customers that are purchasing a single software license but using it on multiple computers so I wanted to prevent them from doing so. The solution I have found was to generate a license key that is unique for each computer.
How? Using a DLL called Hardware ID Extractor, I can read the unique hardware ID of each computer. The DLL is easy to use. To get the CPU ID for example you simply call: GetCPUID.
The first thing you will ask yourself is: does the ID persist after the user formats the PC and reinstalls Windows. The answer is YES (hooray!). It works because this neat DLL reads the ID that is written (permanently) in hardware, not from Windows registry key.
And yes, it is compatible with all programming languages.
Link: Hardware ID Extractor library
Supported IDs:
Hard disk:
CPU:
Physical memory:
BIOS (NEW!):
Delphi developers are now charged for bug fixes [via Update Subscription]
Starting this year Embarcadero has a new plan to milk money from its customers. With the new 'Update Subscription' plan, Embarcadero wants to charge 30% from original purchase price, each year, each customer that wants access to product bug fixes (that were not supposed to be there anyway).
Eve more, there is no warranty that the customer will actually get the bug fixes. Embarcadero clearly states that: "All fixes, updates and hotfixes are purely at Embarcadero's discretion."
Actually it states that twice. So, don't miss to read it :)
Link
Some stores are already selling upgrade subscriptions for 2000 pounds + VAT.
There is another way to get updates?
No. The FAQ clearly states it:
Can I obtain updates and hotfixes without a subscription?
An active update subscription is the only way to obtain updates and hotfixes for current and prior (up to 2 years) releases.
I see a big incoming wave of programming towards Lazarus.
Eve more, there is no warranty that the customer will actually get the bug fixes. Embarcadero clearly states that: "All fixes, updates and hotfixes are purely at Embarcadero's discretion."
Actually it states that twice. So, don't miss to read it :)
Ongoing Maintenance and Hot-Fixes for Previous Versions*
In the middle of a development cycle on an older IDE version? The RAD Studio team will now continue to release critical updates and hotfixes for up to two (2) years and three (3) major versions, improving your investment and enabling you to upgrade to the latest version on your schedule. All maintenance updates and hotfixes will only be available to users on an active Subscription and cannot be downloaded or purchased separately. Versions currently under Ongoing maintenance include XE7, XE6, and XE5 versions. Active subscribers will also have immediate access to beta hotfixes, providing the most timely access to critical fixes. All fixes, updates and hotfixes are purely at Embarcadero's discretion.Link
Some stores are already selling upgrade subscriptions for 2000 pounds + VAT.
There is another way to get updates?
No. The FAQ clearly states it:
Can I obtain updates and hotfixes without a subscription?
An active update subscription is the only way to obtain updates and hotfixes for current and prior (up to 2 years) releases.
I see a big incoming wave of programming towards Lazarus.
Labels:
bug,
bug fix,
delphi,
delphi xe7,
embarcadero,
ide,
price,
programming,
upgrade
Monday, March 11, 2013
More nasty bugs related to Delphi packages
The problem
My Delphi XE started to act strange lately. I have unit Unit2.pas that uses 'FormatBytes' declared in Unit1.pas. When I try to compile Unit2 Delphi says that it cannot find FormatBytes. But FormatBytes is there, in Unit1 !!
Unit1 belongs to Package1 and Unit2 to Package2 (Package2 depends on Package1).
Even more strange: if I delete Unit1 (pas and dcu) Delphi doesn't complain that it cannot find the unit! Its like Unit1 has been cached somewhere. However, if I try to open Unit1, obviously it cannot be found and Delphi popups a OpenDialog to let me show there Unit1 is located.
I know there is already a bug in the caching system for VCL. I guess this is a similar bug.
Update
Solution: I deleted all files related to all my packages:
(Note: Initially I tried deleting files specified above except Dproj and paths and it didn't worked)
My Delphi XE started to act strange lately. I have unit Unit2.pas that uses 'FormatBytes' declared in Unit1.pas. When I try to compile Unit2 Delphi says that it cannot find FormatBytes. But FormatBytes is there, in Unit1 !!
Unit1 belongs to Package1 and Unit2 to Package2 (Package2 depends on Package1).
Even more strange: if I delete Unit1 (pas and dcu) Delphi doesn't complain that it cannot find the unit! Its like Unit1 has been cached somewhere. However, if I try to open Unit1, obviously it cannot be found and Delphi popups a OpenDialog to let me show there Unit1 is located.
I know there is already a bug in the caching system for VCL. I guess this is a similar bug.
Update
Solution: I deleted all files related to all my packages:
- DCP
- BPL
- DCU
- DSK
- DPROJ
- paths from 'Library'
(Note: Initially I tried deleting files specified above except Dproj and paths and it didn't worked)
Sunday, January 16, 2011
Those sundried-brain old school PHP programmers
Those sundried-brain old school PHP programmers
It is a shame that in these modern days some people are still coding in Notepad. Many of them as still far away from advanced concepts such as IDE. RAD? Well, they never heard of it. Framework? What’s that? (or, as one of them said “why use a framework… I can do all that code by had”).
Some days ago I had to share a PHP project with some other coders. It looks like some of them have problems to understand what RadPhp is and keep telling me that the package of source code files I send to them is incomplete - and of course then they were asking for the "missing" files. RadPhp is a RAD, a IDE and a framework. The files that they THINK I forgot to distribute were part of this framework. There are 6285 of PHP/JS (and other) files in this framework. I believe at that moment that it was pointless to email them all those files since they already have them on their hard drive. But it looks like that even if I told them that the project was made in RadPhp AND it requires RadPhp, they decided to do the development in their old Notepad (nothing like a good old plain text editor, right boys? He-he). No matter as magnificent Notepad is, it cannot replace those 6285 files framework. So obviously my script was kept crying for the “missing” files. I hope I can convice those guys that the script will not work until they install the framework. What? “Framework”? I used that nasty word again? Sorry. I promise I will not do it again.
---------------
For all other PHP people that already know what a framework is, I deeply really apologize for this lemon-acid rant. For rest of them: Guys take a fucking dictionary and look for IDE,RAD and framework, or just download the damn thing and you will understand!
Friday, September 10, 2010
We all know DotNet sucks
We all know DotNet sucks. But how bad it sucks?
James S. Gibbons put this to the test. And the results are impressive. DotNet is 'coding horrors' came to life.
I cannot image the person that really chooses to use in interpreted language like DotNet.
James S. Gibbons put this to the test. And the results are impressive. DotNet is 'coding horrors' came to life.
I cannot image the person that really chooses to use in interpreted language like DotNet.
Subscribe to:
Posts (Atom)
