Archive for May, 2014

Delphi: Unit X was compiled with a different version of Y

Thursday, May 29th, 2014

The dreaded message everybody gets every now and then.

The classic solution is:
– find all related pas and dcu files on your HDD and make sure there is only 1 copy of each.

However, sometimes this is not sufficient and that is because there is also a DCP and/or a BPL that was built with that unit somewhere on the IDE searchPath found before the one you are building. So you delete all pas/dcu, build the package and still get the error. This happens when you build a package which depends on the package in which the unit resides. And that is because when building packages, delphi will look at the DCP, not the DCUs (when the DCP is linked of course).
So basically the same problem as with the DCU.

In conclusion, the actual complete solution is to
– search and remove all affected DCUs
– make sure there is only 1 version of the PAS
– search and remove all affected BPLs and DCPs

Sometimes, you will need to close the IDE, and then when you start it again you may receive the other dreaded message: “Cannot load package”.

Now, it’s time to search for that package in the registry, specifically in the
– “Disabled Packages” key
– “Known Packages” key
– “Package Cache” key
Best is to remove it from everywhere. Then you re-install it once you manage to compile everything.

Related posts

Permanent Disposable Email Addresses to counter spam (notsharingmy.info alternatives)

Saturday, May 3rd, 2014

As I’ve been writing about this topic not long ago here, I’m using for some time now the services of notsharingmy.info.
Problem is, lately it has become unreliable. Emails that I’ve been told have been sent, never arrived, others arrived with 1 or 2 days delays.
So it’s unusable now.

I spent quite some time yesterday and today to find an alternative. That is a free service, that provides permanent disposable email addresses in he form of forwarding. I couldn’t find any. Not a single one.

And since I don’t want to pay, nor do I want to use the providers interface to access my mail, I re-considered google and yahoo as possible solutions.
Now the main reason against these free and pretty reliable services is that people complain your actual account name is known (anybody can remove the “+garbe” or the “dots” and know what your real account is.

But this is the catch. You are creating another email address, specially for disposable use. You don’t use your main account (EVER) and all email that goes to that account,m via filter, can be sent directly to trash as that is pretty sure spam. After all, you didn’t give out that address to anyone.

So,. since I’m still pissed at yahoo plus their filtering sucks (as in the amount of filter you can set up), however I’m not sure if there are limitations to the disposable addresses that you can create, someone can look into it and let me know, I will talk about the gmail solution.

Now, gmail allows a maximum of 30 characters in the user name. That includes dots when you register. So you register with an account of 30 character, letters and digits.
I used keepass random password generator to generate one for myself.

Then I tested the dots. I added dot between each and every letter/digit and sent an email to that address resulting in an address with 30 characters and 29 dots, form several different email providers. It worked like a charm.

So this gives you a total of (God I hope my math is right ๐Ÿ™‚ please correct me if it’s not):
– 0 dot addresses: 1
– 1 dot addresses: 29 = 29! / 1! * (29-1)!
– 2 dot addresses: 29! / 2! * (29-2)! (combinations of 29 taken by 2)
– 3 dot addresses: 29! / 3! * (29-3)!
….
– 28 dot addresses: 29! / 28! * (29-28)!
– 29 dot addresses: 1

Adding those up resulting in what is described here: http://en.wikipedia.org/wiki/Binomial_coefficient#Series_involving_binomial_coefficients

so eventually we end up with a combination of 2^29-1 = 536.870.911 aliases = disposable email addresses.

I think that covers my needs pretty well.

For your more regular 8-10 character addresses, you can have about to 255-1023 dotted aliases. That should normally be sufficient. So there is no real need to go the length of a 30 character address for this purpose.

Next step is to create a catch-all filter on the base (non-dot) alias, and have those emails dealt with some how. I’ll just apply a label for now and move them out of my inbox. If and when I’ll have time and desire to deal with them, I will have them handy.
Once the system is proven to work fine, I will change this filter to “delete”.

The reason for not moving it to spam is that you may get valid email sent to spam by mistake. No spam filter is perfect.

Next step is to have some more easy way of managing these disposable aliases, not using a spreadsheet…

So I’m thinking about a GreaseMonkey script by itself or with a web-service (somewhere to store the information), a dedicated application (written in Delphi and maybe for windows and android/ios (I don’t have anything to test these though)).

My preferred way would probably be a GreaseMonkey script as then I can use the GMail API directly and without hassles. I’ll have to do some research on this.

But for now, the traditional spreadsheet it is ๐Ÿ™‚

Later note: One more thing to keep in mind when settings things up:
– you need to add another email address for each dot-alias if you plan on replying to emails received by that alias. You do that by going to settings-accounts and import and “Add another email address you own”.
– make sure to uncheck the “Treat as an alias”
– make sure to select “Reply from the same address the message was sent to” the first time you set up such an alias, otherwise your main, non-dotted account will be used in replies and we really don’t want that

Related posts