How to make Thunderbird stop during email download? - thunderbird

I finally moved my old Outlook Express stuff to Thunderbird, and am downloading all emails stored on POP3 server.
But I don't want Thunderbird to download them all at once. I want 20 at a time, so I can see them and delete junk ones and move remaining to their proper folders before downloading more.
I can't find a button to stop downloading. Once I make Thunderbird download emails, it just keeps downloading and the only way I found to stop it is closing it.
Is there a better way?

NOTE: while the specific counts are not possible, you can switch back and forth between offline/not offline, but it's a pain, requires confirm click.
Otherwise:
Download all emails. Use spam emails to train your thunderbird spam filters once all the emails have downloaded. Start at the beginning of the list. It's a one time operation, don't overthink it. As you assign 'junk' status to emails, you can rerun the spam filters on the inbox until it's properly trained, and most of the subsequent emails will get moved to the Junk folder automatically after you've created a decent set of spam samples. If you give the junk filter a few hundred samples it will be pretty accurate. Check junk folder for false positives, mark not junk, repeat until it's good. Much less work than doing it 20 emails at a time.
Thunderbird's builtin spam filters are quite good once properly trained.
When viewing (including preview mode) spam emails, make sure that third party image view is disabled, otherwise you will be validating your email address in the spammer email databases (they use often images or links with unique id's in them that when loaded or clicked simply validate your email address as current). Ideally disable all html viewing and view in text mode only, no html.
As with training your spam filters, the same applies to email rules/filters, which are even easier to create and run.
Create filters that move the emails to the desired folders after you make the folders, and after you create each filter, run the filters on the inbox again.
Because the user is fairly stubborn in this case, here's the basics when interacting with a new piece of software:
Check to see if the desired feature that another similar program has is supported. If it isn't, and you're sure you didn't just miss it, the developers don't care about that feature, or the feature is not technically possible due to how the software is constructed. The users in general also don't care about that feature, otherwise someone would have filed an issue, and others would have piled on over time, until the devs got tired of that issue and made it happen. In this case, we can assume none of that happened.
Check to see if the program supports extensions of some kind. Thunderbird does, so look for an extension that extends the features of the software to do what you want. If nobody wrote this extension, this means that no person capable of programming cares about that feature, in most cases, or, that the software itself doesn't support it internally.
check on a site like here to make sure you didn't miss anything, and that actually that feature does exist somewhere somehow. If your results are negative again, that's about the end of the road in the quest for that personal favorite feature.
Check to see if there is another way that sort of emulates what you want. In this case, for example, you can go offline/online though it takes a few steps each time, and certainly isn't a feature intended to do what the OP asked, but it can be used in this way crudely.
If neither 1 nor 2 show support for the desired feature, decide how important that feature was to you. If it is very important, research the core codebase and see if you can extend it via extension to support the feature, or hire someone to write the extension for you, and maintain it over years, or don't use the software.
Now, if after these checks, you find that not one single person in the world cared enough to add support for the feature, it means there's not a whole lot of demand for it, and certainly no demand from the free software developers who in the case of thunderbird, wrote it, and its extensions, and probably not from the users either, which is a lot of people globally in this case.
Once you determine that there was and is no demand for the feature, move on to something more productive, and stop complaining that the feature that apparently nobody ever was willing to take the time to implement isn't implemented, it means nobody cared enough to do it, that's all. Complaining here about that won't change that fact.
If you have decided to use the new software anyway, then adjust your workflow to the fact that the desired feature is not going to be part of your life anymore. This is also known as being an adult in some societies.
Other similar things that don't support everything that another similar software does:
gimp does not support everything photoshop does
windows does not support everything gnu/linux does
gnu/linux does not support everything that windows does
claws mail does not support everything thunderbird does
thunderbird and outlook express are different pieces of software that are similar in function but internally quite unrelated, they don't even use the same mail storage format, for example.
Mac OSX is different from GNU/Linux, FreeBSD (although internally it's got some similarities), and Windows.
Windows 98 is different from Windows 2000 which is different from Windows XP which is different from Vista which is different from Windows 7 which is different from 8 and 8.1 which is different from Windows 10.
Outlook is different from every email client known to man and woman alike. As is its mail storage format. Be very glad you are not trying to find software that is similar, you'd be out of luck, since nobody else is crazy enough to produce such a mess.
And so on. The software I write does similar things to other software, but is different, quite different, from all of them. This is why people use it and like it. If it were the same, there would be no reason to use it. If someone posts an issue asking for a feature a similar but different piece of software has, I'd think: Ok, is it a good idea? Does it meet a valid need? If so, is it hard? Is it possible at all (the other software may not even be right for example)? Is it possible within my software's framework? Did I receive a patch (always a great way to motive a developer)? If the first condition, it being a good idea, was never met, then you can forget about the rest, they are irrelevant.
I agree this isn't a great stackoverflow question.

Related

Password protection of autocad dvb files

I work in a construction projects company developing autocad tools, mostly with the integrated vba editor.
The company wants to keep the developed dvb files stay inside the company, or somehow make them useless when they are carried outside.
So, I know that be password protecting the created dvb files, the code can be hidden (Although after 5 min of google search I discovered that it is trivial to unlock them.) I am trying to find a way that the developed vba files will be used and executed in office, however their codes will be hidden and the employees would not be able to use them out of office.
I am not sure if this is possible though. I know that if I develop external exe files I can use several methods(Connect to local server before running, use USB stick key etc..), however I wonder if I can guarentee that the codes I wrote in the AUTOCAD VBA editor will not be seen and can not be used outside office.
Thank you for all the help in advance.
P.S: Using Autocad 2010 on Windows 7 SP1
In short, you cannot completely protect your DVB source files. As you discovered, information on breaking the password protection is readily available and trivial for a tech savvy user to do.
If your goal is to prevent users from just taking the DVB file with them and using it elsewhere (without source modification), you can embed some checks into the code which will cause failure. For example, ping your Domain Controller by name and if no response it returned, stop with an error. This, however, could be removed if someone edited the code (see first point above).
If you do need protection on your source, you don't want to go the DVB (which is VBA code) route. Instead you will want to develop a true plugin with .NET (which would require a re-write). Of course this isn't foolproof either as .NET code can be easily decompiled to source; however if you run it through a good obfuscator it would make it difficult (but still possible) for even the most dedicated to modify.
In short, there is no way fully protect your source, only make it more difficult for someone to reverse engineer.

SNDSMTPEMM NOTE Limited to 400 Characters

I am trying to get our iSeries 6.1 machine to send email through our Exchange server. I can do it with SNDDST and with SNDSMTPEMM, but both are very limiting. I need support for basic HTML, and for PDF attachments. I thought I could get them both from SNDSMTPEMM, but now I see that the body parameter for SNDSMTPEMM (NOTE) is limited to 400 characters. Is it possible that this command allows 10 attachments but less than a paragraph of text?
I would like to know if anyone is using this command, and if I am missing something about it that would allow me to create an actual email message.
If indeed I can't put more than 400 characters into the body of an email with this command, I have read about MMAIL and MAILTOOL and I am curious if anyone knows if this message length restriction exists for those as well?
It will be a very hard sell for our main programmer to install any third-party anything to get this working, so I would love to be able to do it with SNDDST of SNDSMTPEMM (or some other built in I haven't found yet).
I don't currently need to be able to send to multiple recipients, but I do need to be able to attach a couple of attachments (where SNDDST fails for me). I also can't use attachments with an *LMSG.
I'm sorry if this is the wrong place for this kind of post - I find it very difficult to find the right place.
The SNDSMTPEMM command is indeed limited to 400 characters in the message body, according to the documentation.
Where I work, we still mainly use MMAIL, which used to be free but now requires a $50 "donation" (and lots of hoops to jump through just to register). It doesn't have that message length limitation. It comes with several commands for ease of use, and a service program for more fine-grained control over how the message is built. Once you download it, you have access to the source, so you can really muck around with it if you have to. (The donation also allows you to download a multitude of other utilities from Easy400.net.)
A better but more expensive option is Bradley Stone's MAILTOOL. It's still competitively priced, as far as commercial IBM midrange software goes. If you go that route, it's probably worth getting the Plus! add-on, which side-steps IBM's native SMTP, a recurring source of headaches. (MMAIL and the basic MAILTOOL rely on native SMTP.)
The best place for this kind of post, at least for now, is the Midrange-L mailing list at midrange.com. When it comes to AS/400, iSeries, and IBM i stuff, that community is currently much more active than Stack Overflow, and they welcome open-ended discussion and "what do you recommend?" posts, which are discouraged here. You can find some discussion on the command you mentioned, and some alternatives, in this thread.

How to stop pirates? Someone already nulled and pirated my script :(

I dont know what to say. About 3 days ago I released a script to the public. Today I realised, after searching on google that someone had already nulled (removed my protection) and pirated the script.
How do I stop users from pirating the script? It is written in PHP.
Please help or suggest some solutions.
Thank you for your time.
UPDATE By releasing to the public means that I have started selling it to users.
UPDATE My program is priced at only $49. Very reasonable for the functionality it offers. I do not understand how I should stop pirates from pirating my code. The replies which most people have given are rather sarcastic. I was hoping for some good advice. I know there is no silver-bullet. But some techniques which you have used in your PHP programs.
The only real way to prevent piracy is to not give the user the program at all! What I mean by this is have the logic you want to protect remain server side and offer a client interface.
There are a few companies that offer protection services, but these are expensive and can sometimes still be overcome.
If you're worried about this happening again, try obfuscating your code. Here is a free program to do just that on PHP code.
I'm not trying to be sarcastic here: forget about them. Here's my rationale:
You can spend tons of time trying to
prevent pirates from pirating your
stuff, or you can spend the same
amount of time giving your paying
users more functionality.
Extreme copy protection does not give your paying users anything but more
hoops to jump through to use your
application - which might lead them
to get frustrated.
Pirates will pirate your applications
no matter how much time you spend
trying to stop them.
Budget a certain
amount of time to put in basic copy
protection - just enough to keep the
honest people honest.
Most importantly: Don't irritate your paying customers.
They are the ones you need to make
happy.
There's not much you can do.
Be flattered your work was deemed worth the effort!
How do I stop users from pirating the
script?
Do not release sensible source code to the public...
[EDIT] After a few downvotes, I decided to comment on my answer:
Any code that is released public has a chance of being hacked. This is the number one reason why Javascript is not secure. No matter how much you will obfuscate it, compress it or translate it to some random japanese dialect, it is still source code that the user has access to. Hence it should not contain any sensible information such as passwords or such. All sensible data should be stored in the server side where it is kept hidden from the user.
If you are releasing a php framework containing both the server and client code; then you have no way of fully protecting yourself. PHP is, like Javascript, an interpreted language. You may translate it, compress it, or obfuscate it as much as you want, (and it's probably the best thing you can do) you will never fully protect it when released to the public.
Again... If there was a magic way to prevent code from being broken, it would have been known for a long time. No-cd patches / cracks for new games/softwares now are almost released the same day as the softwares themselves. It is, as noted by Paul, a form of flattery for you, even though I understand how sorry you may feel.
There are a few instances where programmers ended up with bullet-proof protection, but it usually involved high-end engineering.
With PHP, you're mostly out of luck. It's an interpreted language, which means that you are essentially forced to give away the source code. Sure, there are obfuscators (tools that "scramble" the source code to make it near impossible to read for humans), but they can be circumvented as well.
There are product like Zend Guard which seem to offer a better level of protection, but from my understanding, your customers need Zend Guard installed as well, which is almost never the case.
There are several methods of handling this:
Offer your product as a service. This means finding appropriate hosting in the cloud, etc. This removes access to your code base, thus preventing direct piracy. Someone can still reverse engineer your stuff, but I'll touch on that later.
Add a unique identifier to each version of the script sold. This can be done automatically, and is great to do with obfuscated code (another, complementing method). This will give you the ability to track whoever pirated your code. If you can track them, you can sue them (or worse).
Pursue legal action. You'll need to know who leaked the code in the first place for this. Their PayPal information or even an IP address should be enough. You go to your lawyer, ask him to get a court order telling PayPal/ISP to release the identity of the thief, and then start tracking them down. If they're located overseas, your only real option is to freeze/appropriate funds from PayPal/credit card. Banks will be sympathetic only if they have a branch in your country (which can be targeted for legal action).
Ignore it, and simply build your business model around the support that you offer.
The sad fact is that information cannot be secured completely. There is no way to prevent a team of Indian programmers from reverse engineering your program. So you just have to be better than them, and constantly improve your product (this is "A Good Thing (TM)", so do it anyways)
Also keep in mind that DRM and other solutions are often controversial, and will reduce your sales (especially among early-adopters). On a personal level, I would suggest viewing this as a compliment. After all, your script was useful enough that someone bothered to pirate it within a week!
PHP is easily decoded, so for people who really want to know, it's easy to find out the source code. However, there are certain obfuscator programs such as this one that'll make your PHP script almost unreadable for those trying to decode it.
What kind of protection did you think you had added to a PHP script, anyway? You should add a line of the form:
if ($pirated)
exit();
and then make it mandatory (in the licence agreement) that users set the $pirated variable accordingly.
Forget trying to prevent it
Go the way of CakePHP (see sidebar on front page) and many other open source projects and ask for donations.
People actually do it!
Contact the pirate and let h{im,er} know that you will be forced to take legal action against them if they do not abide by the license.
I agree with #Michael.
Try ionCube or Zend Guard. They are both commercial offerings, but you say that you are selling your software so it might be worth it. Although nothing is foolproof and can be reverse engineered with enough effort and technical skill, these solutions are probably good enough for the average PHP script vendor.
I agree with Samoz's suggestion to keep the logic server side, however this can often be hard to do. The best strategy is to make the user want to buy it by offering updates automatically to registered users, as well as installation, advice and good support. You are never going to sway people hell bent on pirating, however your goal should be to persuade those who are undecided as to whether to pirate or purchase the script.
Any obfuscation/decryption technique for PHP can be cracked
Jumping in very late to this conversation, but saw this question featured. Nobody mentioned contacting a lawyer and pursuing litigation. You likely saw the script on a server - hosted by a known hosting company - you can probably get a DMCA takedown to have the script removed. If you really press the case, you may be able to sue for damages.
Found this link to assist in going this route:
http://www.keytlaw.com/Copyrights/cheese.htm
You could always pirate it yourself to the internet and hope that any nuller will think "its already been grabbed" so don't bother. But pirate a real buggy version. When users come to you looking for help you'll know they have a pirate version if they question you about specific bugs you purposely added and you can approach them accordingly
If your script won't consume a lot of bandwidth, you could keep your "logic" server-side, as samoz suggested, but if your users won't use it responsively ( a crawler, for example ), this could be trouble.
On the other side, you could become a ninja ...
Attach a copyright notice to it. Some companies will actually care that they're using software properly.
Actually I think it's easier to protect PHP scripts than desktop software, because with latter you never know who is running the cracked copy.
In case of PHP on the other hand, if people run your software on public web servers, you can easily find them and take them down. Just get a lawyer and turn them in to the police. They could also be breaking DMCA laws if they remove your protection so that gives you even more ammunition.
Technical way to protect your code is obfuscation. It basically makes your code unreadable like binaries in compiled languages (like Java). Of course reverse engineering is possible, but needs more work.
In general it's hard to prevent users from stealing code when the program is written in a scripting language and distributed in plain text. I've found that http://feedafever.com/ did a really nice job of being able to sell PHP code but still give the code to users.
But the solution to your problem is very dependent on the domain of your program. Does this script run on the users machine with no internet connection? Or could this be a hosted service?
I'd also suggest looking at some of your favorite software, and seeing how they convinced you to pay for it initially. The issue I find isn't always "how can I prevent my users from stealing my software" but sometimes more "how do I convince my users that it's in their best interests to pay me". Software piracy often comes when your product is overpriced (Ask your friends what they would pay for a software package like the one you are selling, I've found that I have historically overpriced my software by 20%).
Anyway, I hope this helps. I'm glad that you are trying to create software that is useful to users and also not incredibly crippled. I personally of the mind that all software that isn't shrink wrapped or SAAS should be free, but I totally understand that we all need to eat.
The trick is not to try to prevent the piracy (in the long term, this is a losing battle), but to make the legitimate version of your product more accessible and/or more functional than the pirate versions.
"Making it more functional" generally means providing involves additional features or services to registered users, which cannot be replicated for free by the pirates. This may be printed materials (a users manual, a gift voucher, etc), services such as telephone support or help setting the product up, or online extras within the software.
I'll point out that companies such as RedHat are able to make significant amounts of money selling open source software. The software itself is freely available -- you can download it and use it for free without paying RedHat a penny. But people still pay them for it. Why? Because of the extra services they offer.
"Making it more accessible" means making it easier to get your legitimate software than a pirate copy. If someone visits Google looking for your software and the first result is a pirate download site, they'll take the pirate copy. If the first result is your home page, they're more likely to buy it. This is especially important for low-cost software: pirated software may be 'free', but usually it takes more effort to get. If that effort is outweighed by the low cost and lack of effort of simply buying it legitimately, then you've won the battle.
I saw anti-piracy working once only. Quantel EditBox systems (a post-processing video solution), Hardware+Software+Internet solution against Piracy. Workstation only works after checking if the bank received the monthly rent. If not, workstation was locked. Funny days when this happens... (Funny days for me, no work at all... No funny day for the hacker.)
Well, PHP is far away from hardware solutions... so I guess your only real choice is a server side protected against a tiny unsafe client pushing content, as pointed in some answer yet.
piracy != copyright infringement
There are known routes to litigate copyright infringers.
Does it really matter enough to hire a legal team?
Obfuscation do add something. It will not be fun to try to modify your code at least even if they can take the first version of it. In best case they will try to find some open source project that does something similar. Guess this would give you an fast fix at least for your problem?

Is there any form of Version Control for LSL?

Is there any form of version control for Linden Scripting Language?
I can't see it being worth putting all the effort into programming something in Second Life if when a database goes down over there I lose all of my hard work.
Unfortunately there is no source control in-world. I would agree with giggy. I am currently moving my projects over to a Subversion (SVN) system to get them under control. Really should have done this a while ago.
There are many free & paid SVN services available on the net.
Just two free examples:
http://www.sourceforge.net
http://code.google.com
You also have the option to set one up locally so you have more control over it.
Do a search on here for 'subversion' or 'svn' to learn more about how to set one up.
[edit 5/18/09]
You added in a comment you want to backup entire objects. There are various programs to do that. One I came across in a quick Google search was: Second Inventory
I cannot recommend this or any other program as I have not used them. But that should give you a start.
[/edit]
-cb
You can use Meerkat viewer to backupt complete objects. or use some of the test programas of libopenmetaverse to backup in a text environment. I think you can backup scripts from the inventory with them.
Jon Brouchoud, an architect working in SL, developed an in-world collaborative versioning system called Wikitree. It's a visual SVN without the delta-differencing that occurs in typical source code control systems. He announced that it was being open sourced in http://archvirtual.com/2009/10/28/wiki-tree-goes-open-source/#.VQRqDeEyhzM
Check out the video in the blog post to see how it's used.
Can you save it to a file? If so then you can use just about anything, SVN, Git, VSS...
There is no good source control in game. I keep meticulous version information on the names of my scripts and I have a pile of old versions of things in folders.
I keep my source out of game for the most part and use SVN. LSLEditor is a decent app for working with the scripts and if you create a solution with objects, it can emulate alot of the in game environment. (Giving Objects, reading notecards etc.) link text
I personally keep any code snippets that I feel are worth keeping around on github.com (http://github.com/cylence/slscripts).
Git is a very good source code manager for LSL since its commits work line-by-line, unlike other SCM's such as Subversion or CVS. The reason this is so crucial is due to the fact that most Second Life scripts live in ONE FILE (since they can't call each other... grrr). So having the comparison done on the file level is not nearly as effective. Comparing line by line is perfect for LSL. With that said, it also (alike SourceForge and Google Code) allows you to make your code publicly viewable (if you so choose) and available for download in a compressed file for easier distribution.
Late reply, I know, but some things have changed in SecondLife, and some things, well, have not. Since the Third Party Viewer policy still keeps a hard wall up against saving and loading objects between viewer and system, I was thinking about another possibility so far completely overlooked: Bots!
Scripted agents, AKA Bots, have all usual avatar actions available to them. Although I have never seen one used as an object repository, there is no reason you couldn't create one. Logged in as a separate account the agent can be wherever you want automatically or by command, then collect any or all objects you are working on at set intervals or by command, and anything they have collected may be given to you or collaborators.
I won't say it's easy to script an agent, and couldn't even speak for making an extension to a scripted agent myself, but if you don't want to start from scratch there is an extensive open source framework to build on, Corrade. Other bot services don't seem to list 'object repository' among their abilities either but any that support CasperVend must already provide the ability to receive items on request.
Of course the lo-fi route, just regularly taking a copy and sending the objects to a backup avatar, may still be a simple backup solution for one user. Although that does necessitate logging in as the other account either in parallel or once every 20 or-so items to be sure they are being received and not capped by the server. This process cannot rename the items or sort them automatically like a bot may. Identically named items are listed in inventory as most recent at the top but this is a mess when working with multiples of various items.
Finally, there is a Coalesce feature for managing several items as one in inventory. This is currently not supported for sending or receiving objects, but in the absence of a bot, can make it easier to keep track of projects you don't wish to actually link as one item. (Caveat; don't rezz 'no-copy' coalesced items near 'no-build' land parcels, any that cannot be rezzed are completely lost)

Getting a grasp of how many people use my software

We have a very small, specialized user base.
No community.
My boss wants to find out who is using it. And his approach is to simply make a hidden connection, maybe an auto update function, enabled by default WITHOUT notification when there is no update ...
I don't really like the idea and try to come up with something different.
There is a registration, then you can download a free trial. No other limitations, but the time limit.
Sold licenses are usable across an ip-range - universities.
So the registration and licensing itself is no indicator of usage. Not to speak of that the devs have no feedback about sold licenses whatsoever.
I would like to have some advice how you would, or better have actually, approached a problem like this.
"Simply call home" to notify you that someone is using your software is probably not a good idea, indeed : users don't tend to like that. And it can be bad for the reputation of your company/software.
A solution would be having some kind of good reason to "call home" ;-)
For instance, what about some kind of auto-update-mecanism ? That users could disable, of course, if they want (so not 100% percent efficient) ; but most won't disable it.
And it's really a good idea of reason to do a request to your server :-)
Just don't send anything that could identify the user ; some unique-id key, maybe (to make a distinction between users), but that cannot be used to identify a user ?
I don't like when software I use say to people "hello, this guy is using me!", but I really like the auto-update feature in Firefox, for instance... Event if it says I'm using the software ;-)
This is extremely subjective, and I'd strongly suggest you go and ask some of your actual users how they feel about it, instead of a bunch of opinionated programmers (unless your program is oriented towards programmers who frequents stackoverflow.com). If you make clear it's anonymous, light-weight, and your users like your program to begin with, maybe they'll be just fine with contributing data to build a better version. But there's no other way to know, then to simply ask them.
Concealing (to use a loaded phrase) your activities under some unrelated pre-text seems highly disingenuous.
If you're selling to anywhere that might have a competent IT setup, like a university, then I wouldn't even think about a sneaky don't-tell-them route. If you do, you're lining yourself up for bad publicity as soon as someone's firewall spots the unexpected connections
I start almost all my programs with a shell script that emails me who is using the program, what version they're running, and some other stuff. If nothing else, it's useful for the bean counters who want to track software usage to see if your job is worth keeping.
My software has a licensing scheme where each installed copy generates a unique product ID, and I then email the customer a matching code that unlocks the full program. So I know exactly how many (paying) customers I have.
This doesn't count people using cracked versions, but I'd rather not know how many of them there are anyway.
Since you can have multiple users on a single license, the only thing you can really do is add something to your software that sends a notification to your server every time the application starts. Obviously this won't catch people who aren't connected to the Intertubes, but there's no way to measure them anyway (short of calling them, as you've mentioned already).
Well I would certainly hope you know who you're selling your software to if you're keeping licenses like that, and that you have their phone numbers. Give them a call, sit on the phone with them for a while, ask them what they'd change, what they don't like, what bothers them.
That would truly be going the extra mile, and would most likely impress whoever is using the software. When you call, make sure to let them know you aren't some 3rd party calling on your company's behalf, let them know you actually work on the software that they're using, and that you really want to know what they think, and that their opinions have some form of influence on future versions and features.
You could also send out a mass e-mail to do the same thing, but that's lazy, imo.
Auto-Update w/ usage stats is a GREAT idea.