I've seen people with real CS degrees who one year out of college couldn't code more than 5 lines in their favorite language. They're most likely to become managers, which ironically pays more than if they had to program.
We need a law that says all spam is illegal. No exact language. Just a jury's common sense as to whether or not a given email campaign is spam. Punishment by 1 year per million emails. And to hell with the laws of foreign countries. We've got that laser that can shoot down missiles. Put it on a satellite and we can make crispy critters out of any spammer who sends more than a life sentence's worth.
What should I do with this multithreaded dosbot I just wrote while reading this article? I've never written one before. Never deployed one. But optinrealbig is really trying to push me over the limit. Even SCO failed to get this sort of reaction out of me. But OIRB DDOS's the entire internet for just enough money to support a small business. They begging for us to lower ourselves to their level and do the same to them, to their relays, to the urls in their spams, their ISP's, etc. Scott Richter should have been in jail since the moment he was discovered as a notorious spammer, but our government has simply stopped caring for its people.
Even at lowest priority, a Symantec Antivirus scan will bring any desktop to a screeching halt. The company I work for has daily virus scans, at noon. It is set to lowest priority and programs take roughly 20-40 times as long as usual to load or do other hard disk bound operations. Being partly in charge of that, I've tried to reduce the disruption caused by the scans as much as possible, but my bosses disagree with my opinion that the scans should be rescheduled to either after hours or just once a week.
For one, automated scans probably won't catch half of your problems. And two, anything that disruptive to your business probably costs money than it'll bring in. In any worthwhile business venture, the benefits must outweigh the cost. Look at your setup and try to identify your top risks. By prioritizing your risks based on your guess of the damage*frequency/costToPrevent of each, you should be able to achieve a greater level of security much faster and cheaper than with big, automated, disruptive network scans that check each system for tens of thousands of usually absurdly improbable known risks. You can still run such scans, but dealing with your priority risks first and keeping in mind "What are the chances this will make or save us money?"
If there was a spreadsheet to go with that. One could normalize the results and weight each benchmark according to their performance needs. And there are differences between the 2.4 and 2.6 kernels' IO handling that could make an fs perform better on one kernel than the other.
But since he's done this all for free, all I can say is thanks.
Right name, wrong domain. There's more than one "Flamingo Travel" out there. They're one of the victims mentioned in the original post that has been hurt by these spammers.
For academic purposes only. Know the laws of your state.
First, you'll need a credit card number. Visa numbers are constructed like this like this: Start with the digit 4 16 digits altogether The checksum they must pass is: Take the even digits, double them, and add the resulting digits together to get a new digit. (or just map 0-9 to 0246813579 for the even digits). Then add all the digits together. If it's a multiple of 10, the card number is valid. A quick way to generate would be to start with 4 plus 14 random digits, calculate the checksum of those 15 digits, and subtract from 10 to get the remaining digit.
Their machines will initially accept them, and be forced to contact visa to verify their correctness, at which time they'd fail, but result in small charges to their merchanct account. Enough bad card numbers can get an account suspended.
Maybe they outsourced their call center to a larger company that handles orders for many clients and can scale to a bigger, and much more expensive,/.ing.
Their operators may not know about the illegal fax bombardment the company has been sending, so be sure that they do.
There are a few free long-distance fax networks out there. Some or all of the members have a phone line, and faxes are sent online to someone who's computer can dial the number locally.
As a result you may receive both legitimate and spam faxes from the same number. Most companies will send faxes directly over the phone, but individuals or thrifty small businesses have a fair chance of sending them by either method.
Since they're spamming, they're probably not paying long distance charges.
Al Gore has been arrested for inventing the Internet, thus aiding in widespread copyright infringement. We have his confession on tape.
But seriously, all he did was write the software. It'd be like arresting the founders of Google for because their search engine can be used to find copyrighted materials to infringe upon.
That was a horrible, horrible place to grow up. School officials always took the sides of the kids who beat the crap out of me every day because of my speech impediment, or they didn't care. They even had rules against self defense. You just gotta take your beatings and watch the principal ignore your bruises and bleeding after hearing the other kid solemnly swear that it never happened.
I thought the problem was just the schools, but appearantly the incompetence must have spread throughout the local government as well.
The guy who told the suicide bomber "Deliver this package and I'll pay you $100 now and $200 when you get back" wins. He'd be extremely unlucky or clumsy to get caught if the bombing went as planned.
I'll consider it a serious problem when I wake up outside Microsoft's headquarters missing a kidney or other nonvital organs.
A EULA is not as binding as a contract is. They can say whatever they want, but they're limited in what can actually be enforced. They can make you stop using the software, and not too much more.
And they won't want you to stop using Windows, because then you'll have to use something else.
It depends on what you call a "pirated copy of Windows". If you buy a new PC, it's probably preloaded with some version of Windows. At some point, you may decide or need to reinstall Windows, and you may not have the restore cd/dvd handy when that time comes. If you install a cracked version of Windows, same edition as the one you had before, are you a pirate? Nobody's going to steal a copy of Windows XP Home edition when they have the option of choosing any edition they want, unless they already had a legitimate right to use the Home edition and wanted to keep their conscience clean.
And the Microsoft monopoly adds an interesting spin to the issue of piracy. People no longer use Windows because they want to, but because Microsofts tactics have ensured that they'll probably need to. Microsoft is actively attacking legal alternatives to Windows, through investments in litigious bastards, software patents, and false advertising campaigns. They left the realm of capitalism and the free market years ago. They took choice out of the hands of the consumer and now they get free money. I personally respect their IP but it's getting harder and harder to blame Windows pirates these days. All the other pirates can go #### themselves, but stealing Windows is like stealing water from a company that poisoned your well.
Microsoft should definitely be able block updates to pirated copies of Windows if they wish. I think if they do it'll just fuel the switch to alternative operating systems, which their other commercial offerings won't run on. If they're confident that everyone that pirates Windows pirates the rest of their stuff as well, and they don't think giving alternative operating systems a foothold is going to be bad for their future, then they should go ahead.
But if you think about it, the most monopolistic action they could take would be to ALLOW pirated copies of Windows to be updated. It'd slow the adoption of alternative operating systems, and help keep estimates of worm and virus infection rates that so often make the news as low as possible. If the rates of Windows exploitation increases dramatically, people aren't going to think, "Oh, those are mostly just pirates who are being affected," they'll think, "Windows is looking less secure than ever before and look, I just got another dozen virus infected emails over my lunch break, maybe I should try this/.*[ui]x|.*BSD/ thing everyone's talking about."
I'd have to agree with you on the rolling your own memory manager part, at least under modern operating systems and compilers. My last freelist allocator only achieved a few % gain over the glibc malloc() and free(), and was a bit better against the new and delete keywords. At first it performed 50% worse, which I determined to be a memory alignment problem and corrected by inserting an unused int into one of the structures. Using a one time allocator, which didn't have a free() method but deallocated all at once, I was able to cut the the time in half.
But then I noticed the intrinsic alloca() function. It temporarily allocated space directly on the stack, and beat my one time allocator by over 1/2 again. I looked at the assembly code generated by gcc, and the alloca() call had been reduced to just a sub and a mov, two instructions, probably 1 cycle of cpu time. Dynamic allocation is almost FREE when its only temporary, and damn fast otherwise if you use malloc() instead of new for structures and primitive types.
I retried all my benchmarks on a WinXP system using VC++ 6.0 to compile, and my gain over the built in allocators grew by about 5x, except for alloca(). The alloca() test caused stack overflows, forcing me to greatly reduce the number of items I allocated with it compared to what I did under gcc+linux. I was surprised to see the extent that gcc+glibc whipped VC++ at memory allocation. Microsoft clearly rolled their own.
What a lot of people will do is take a quicksort, and when start and end are close enough together, use either a bubble or insertion sort. In that case, using an O(n^2) sort can actually speed up sorting of very large arrays, often by quite a bit.
That's quite interesting. Didn't know there was a formula. After fixing the few typos, I verified it for all inputs up to 47, after which the integer overflows. So you typed all that from memory?
If you really wanted to do it fast, you could try: #define f(i) _f[i]
I bet someone, somewhere is using the recursive version exactly as defined in many math textbooks: int f(int n) {
if(n<3) return 1;
else return f(n-1)+f(n-2); } So that the time taken to calculate the result is the result.
To answer your question, whichever's cheapest, but taking into account that hardware costs may be recurring as you deploy the code on other systems, adding more servers only increases the volume that can be handled, and might not improve the response time of a slow loading page, and slow pages push away customers, which costs money. But the professor's right about waiting on many optimizations until you're finished. Code changes, and code you've spend hours optimizing may not make it into the final product, or may need to be altered in ways that require some optimizations to be undone.
Most of my server side code (javascript) works fast enough on the first try, with most of the optimization being in the design, rather than in coding tweaks. I'll do other simple optimizations as I see them if there's a noticable slowdown and they won't adversely affect the clarity, maintainability, or reusability of the code. My biggest optimization on recent sites was an AES encryption/decryption library written in javascript, which I managed to speed up several fold. I've done research to determine the optimal tweaks for our servers, to get speedups without writing better code. Client side things that work fast enough from the start I don't bother to optimize. 90% of the time, reusable code is much better than efficient code. Most of what I write is 10x as fast as it needs to be, and with our web sites, bandwidth is the most limiting factor. I do optimize a bit to reduce bandwidth, but not excessively. And we spend roughly $0 a year on server hardware, and have since probably the year 2000.
There's one last optimization that we're planning on making that will eliminate 99% of the need for future optimization, allow us to write horribly innefficient code in favor of code reuse (such great reuse that our non-programmers can jump into development), and it'll give us maximum performance from our database driven web sites. It's a home-grown site generator, for all the pages that are created from a database but are otherwise static. The use of static pages means they can be gzipped and cached on the server, allowing for near instantaneous page loads with low server overhead.
Then there's the CS side of the fence:
Right now I'm working on a capstone project that will be one big exercise in optimization, being extremely 3d, memory, cpu, and hard disk intensive, working with data that's to big to fit into memory without culling but needs to be rendered at high frame rates anyway, so everything I just said can go out the window for the next couple months.
The judge may just want to give SCO no chance of winning on an appeal. They've had all the extra time they've asked for, and IBM has in every case agreed that they should have it. All their courtroom demands are being decided in their favor, with no disputes from IBM. They won't be able to cry foul when their case is thrown out for lack of evidence, though I expect they'll try.
Self education is a great thing.
I've seen people with real CS degrees who one year out of college couldn't code more than 5 lines in their favorite language. They're most likely to become managers, which ironically pays more than if they had to program.
We need a law that says all spam is illegal. No exact language. Just a jury's common sense as to whether or not a given email campaign is spam. Punishment by 1 year per million emails. And to hell with the laws of foreign countries. We've got that laser that can shoot down missiles. Put it on a satellite and we can make crispy critters out of any spammer who sends more than a life sentence's worth.
What should I do with this multithreaded dosbot I just wrote while reading this article? I've never written one before. Never deployed one. But optinrealbig is really trying to push me over the limit. Even SCO failed to get this sort of reaction out of me. But OIRB DDOS's the entire internet for just enough money to support a small business. They begging for us to lower ourselves to their level and do the same to them, to their relays, to the urls in their spams, their ISP's, etc. Scott Richter should have been in jail since the moment he was discovered as a notorious spammer, but our government has simply stopped caring for its people.
I'm in a similar situation.
Even at lowest priority, a Symantec Antivirus scan will bring any desktop to a screeching halt. The company I work for has daily virus scans, at noon. It is set to lowest priority and programs take roughly 20-40 times as long as usual to load or do other hard disk bound operations. Being partly in charge of that, I've tried to reduce the disruption caused by the scans as much as possible, but my bosses disagree with my opinion that the scans should be rescheduled to either after hours or just once a week.
Don't do it. It's probably a bad idea.
For one, automated scans probably won't catch half of your problems. And two, anything that disruptive to your business probably costs money than it'll bring in. In any worthwhile business venture, the benefits must outweigh the cost. Look at your setup and try to identify your top risks. By prioritizing your risks based on your guess of the damage*frequency/costToPrevent of each, you should be able to achieve a greater level of security much faster and cheaper than with big, automated, disruptive network scans that check each system for tens of thousands of usually absurdly improbable known risks. You can still run such scans, but dealing with your priority risks first and keeping in mind "What are the chances this will make or save us money?"
If there was a spreadsheet to go with that. One could normalize the results and weight each benchmark according to their performance needs. And there are differences between the 2.4 and 2.6 kernels' IO handling that could make an fs perform better on one kernel than the other.
But since he's done this all for free, all I can say is thanks.
Right name, wrong domain. There's more than one "Flamingo Travel" out there. They're one of the victims mentioned in the original post that has been hurt by these spammers.
For academic purposes only. Know the laws of your state.
First, you'll need a credit card number.
Visa numbers are constructed like this like this:
Start with the digit 4
16 digits altogether
The checksum they must pass is:
Take the even digits, double them, and add the resulting digits together to get a new digit. (or just map 0-9 to 0246813579 for the even digits).
Then add all the digits together. If it's a multiple of 10, the card number is valid. A quick way to generate would be to start with 4 plus 14 random digits, calculate the checksum of those 15 digits, and subtract from 10 to get the remaining digit.
Their machines will initially accept them, and be forced to contact visa to verify their correctness, at which time they'd fail, but result in small charges to their merchanct account. Enough bad card numbers can get an account suspended.
Maybe they outsourced their call center to a larger company that handles orders for many clients and can scale to a bigger, and much more expensive, /.ing.
Their operators may not know about the illegal fax bombardment the company has been sending, so be sure that they do.
There are a few free long-distance fax networks out there. Some or all of the members have a phone line, and faxes are sent online to someone who's computer can dial the number locally.
As a result you may receive both legitimate and spam faxes from the same number. Most companies will send faxes directly over the phone, but individuals or thrifty small businesses have a fair chance of sending them by either method.
Since they're spamming, they're probably not paying long distance charges.
1-800-328-9795
Lets not keep them waiting!
If you're reading this, dial 1-800-328-9795.
One call won't hurt. Keep them on the line as long as possible. Ask what they're wearing and when they stopped beating their kids and stuff.
Al Gore has been arrested for inventing the Internet, thus aiding in widespread copyright infringement. We have his confession on tape.
But seriously, all he did was write the software. It'd be like arresting the founders of Google for because their search engine can be used to find copyrighted materials to infringe upon.
Moreno Valley, to be exact.
That was a horrible, horrible place to grow up. School officials always took the sides of the kids who beat the crap out of me every day because of my speech impediment, or they didn't care. They even had rules against self defense. You just gotta take your beatings and watch the principal ignore your bruises and bleeding after hearing the other kid solemnly swear that it never happened.
I thought the problem was just the schools, but appearantly the incompetence must have spread throughout the local government as well.
The guy who told the suicide bomber "Deliver this package and I'll pay you $100 now and $200 when you get back" wins. He'd be extremely unlucky or clumsy to get caught if the bombing went as planned.
The US government will probably mount one of those on a "weather" satellite.
"Suspected terrorist spontaneously combusts outside apartment. Authorities baffled."
I'll consider it a serious problem when I wake up outside Microsoft's headquarters missing a kidney or other nonvital organs.
A EULA is not as binding as a contract is. They can say whatever they want, but they're limited in what can actually be enforced. They can make you stop using the software, and not too much more.
And they won't want you to stop using Windows, because then you'll have to use something else.
It depends on what you call a "pirated copy of Windows". If you buy a new PC, it's probably preloaded with some version of Windows. At some point, you may decide or need to reinstall Windows, and you may not have the restore cd/dvd handy when that time comes. If you install a cracked version of Windows, same edition as the one you had before, are you a pirate? Nobody's going to steal a copy of Windows XP Home edition when they have the option of choosing any edition they want, unless they already had a legitimate right to use the Home edition and wanted to keep their conscience clean.
/.*[ui]x|.*BSD/ thing everyone's talking about."
And the Microsoft monopoly adds an interesting spin to the issue of piracy. People no longer use Windows because they want to, but because Microsofts tactics have ensured that they'll probably need to. Microsoft is actively attacking legal alternatives to Windows, through investments in litigious bastards, software patents, and false advertising campaigns. They left the realm of capitalism and the free market years ago. They took choice out of the hands of the consumer and now they get free money. I personally respect their IP but it's getting harder and harder to blame Windows pirates these days. All the other pirates can go #### themselves, but stealing Windows is like stealing water from a company that poisoned your well.
Microsoft should definitely be able block updates to pirated copies of Windows if they wish. I think if they do it'll just fuel the switch to alternative operating systems, which their other commercial offerings won't run on. If they're confident that everyone that pirates Windows pirates the rest of their stuff as well, and they don't think giving alternative operating systems a foothold is going to be bad for their future, then they should go ahead.
But if you think about it, the most monopolistic action they could take would be to ALLOW pirated copies of Windows to be updated. It'd slow the adoption of alternative operating systems, and help keep estimates of worm and virus infection rates that so often make the news as low as possible. If the rates of Windows exploitation increases dramatically, people aren't going to think, "Oh, those are mostly just pirates who are being affected," they'll think, "Windows is looking less secure than ever before and look, I just got another dozen virus infected emails over my lunch break, maybe I should try this
Are you sure it's only been about 8 times?
I'd have to agree with you on the rolling your own memory manager part, at least under modern operating systems and compilers. My last freelist allocator only achieved a few % gain over the glibc malloc() and free(), and was a bit better against the new and delete keywords. At first it performed 50% worse, which I determined to be a memory alignment problem and corrected by inserting an unused int into one of the structures. Using a one time allocator, which didn't have a free() method but deallocated all at once, I was able to cut the the time in half.
But then I noticed the intrinsic alloca() function. It temporarily allocated space directly on the stack, and beat my one time allocator by over 1/2 again. I looked at the assembly code generated by gcc, and the alloca() call had been reduced to just a sub and a mov, two instructions, probably 1 cycle of cpu time. Dynamic allocation is almost FREE when its only temporary, and damn fast otherwise if you use malloc() instead of new for structures and primitive types.
I retried all my benchmarks on a WinXP system using VC++ 6.0 to compile, and my gain over the built in allocators grew by about 5x, except for alloca(). The alloca() test caused stack overflows, forcing me to greatly reduce the number of items I allocated with it compared to what I did under gcc+linux. I was surprised to see the extent that gcc+glibc whipped VC++ at memory allocation. Microsoft clearly rolled their own.
What a lot of people will do is take a quicksort, and when start and end are close enough together, use either a bubble or insertion sort. In that case, using an O(n^2) sort can actually speed up sorting of very large arrays, often by quite a bit.
That's quite interesting. Didn't know there was a formula. After fixing the few typos, I verified it for all inputs up to 47, after which the integer overflows. So you typed all that from memory?
If you really wanted to do it fast, you could try:
#define f(i) _f[i]
const unsigned int _f[]={0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,
377, 610, 987, 1597, 2584, 4181, 6765, 10946, 17711, 28657, 46368, 75025,
121393, 196418, 317811, 514229, 832040, 1346269, 2178309, 3524578, 5702887,
9227465, 14930352, 24157817, 39088169, 63245986, 102334155, 165580141,
267914296, 433494437, 701408733, 1134903170, 1836311903, 2971215073U};
Same output for all supported inputs.
I bet someone, somewhere is using the recursive version exactly as defined in many math textbooks:
int f(int n) {
if(n<3) return 1;
else return f(n-1)+f(n-2);
}
So that the time taken to calculate the result is the result.
To answer your question, whichever's cheapest, but taking into account that hardware costs may be recurring as you deploy the code on other systems, adding more servers only increases the volume that can be handled, and might not improve the response time of a slow loading page, and slow pages push away customers, which costs money. But the professor's right about waiting on many optimizations until you're finished. Code changes, and code you've spend hours optimizing may not make it into the final product, or may need to be altered in ways that require some optimizations to be undone.
Most of my server side code (javascript) works fast enough on the first try, with most of the optimization being in the design, rather than in coding tweaks. I'll do other simple optimizations as I see them if there's a noticable slowdown and they won't adversely affect the clarity, maintainability, or reusability of the code. My biggest optimization on recent sites was an AES encryption/decryption library written in javascript, which I managed to speed up several fold. I've done research to determine the optimal tweaks for our servers, to get speedups without writing better code. Client side things that work fast enough from the start I don't bother to optimize. 90% of the time, reusable code is much better than efficient code. Most of what I write is 10x as fast as it needs to be, and with our web sites, bandwidth is the most limiting factor. I do optimize a bit to reduce bandwidth, but not excessively. And we spend roughly $0 a year on server hardware, and have since probably the year 2000.
There's one last optimization that we're planning on making that will eliminate 99% of the need for future optimization, allow us to write horribly innefficient code in favor of code reuse (such great reuse that our non-programmers can jump into development), and it'll give us maximum performance from our database driven web sites. It's a home-grown site generator, for all the pages that are created from a database but are otherwise static. The use of static pages means they can be gzipped and cached on the server, allowing for near instantaneous page loads with low server overhead.
Then there's the CS side of the fence:
Right now I'm working on a capstone project that will be one big exercise in optimization, being extremely 3d, memory, cpu, and hard disk intensive, working with data that's to big to fit into memory without culling but needs to be rendered at high frame rates anyway, so everything I just said can go out the window for the next couple months.
The judge may just want to give SCO no chance of winning on an appeal. They've had all the extra time they've asked for, and IBM has in every case agreed that they should have it. All their courtroom demands are being decided in their favor, with no disputes from IBM. They won't be able to cry foul when their case is thrown out for lack of evidence, though I expect they'll try.