GoldQuest International has set foot in Sri Lanka at last and is promising to make people millionaires overnight. Money or anything related to easy money attracts people. Ever wonder how the game monopoly became so popular? I have been to some of the high profile GoldQuest meetings too. However a simple search over Google will give you enough results for you to think twice before getting into it. I am going to present some of them here for you so that you can sit back and think again before you get involved in this Geonology.
The Manila Time, The Hindu, The Kathmandu Post, Kuensel Online, The Hindu all have reported from time to time various stories, world-wide, how different Governments and Law Enforcement Agencies have reacted towards GoldQuest. If this is not convincing enough for you, MLM watch dog, which is a company dedicated to identifying these network activities and warning customer have listed GoldQuest as one of those companies (more evidence).
Here is a tragic story of a Nepalese who got involved into GoldQuest. Of course as they promote in Sri Lanka now, it was once a legal business in Nepal, but when the government realized how GoldQuest drains the foreign currency and ruins the economy, they banned the activity and it was too late for 15,000 people, who realized that their investment and dream to be a millionaire were all gone.
When you make your first payment (partial payment), you get a voucher (you get the coin when you introduce more people and there are a certain number of people in the tree below you, your first reward is taken as the rest of the payment and then only you are eligible to get the coin.), the fact that a paper is being issued in itself is illegal in most countries and such activities have been banned in most countries. Unfortunately such laws are not there in Sri Lanka, and GoldQuest is exploiting it for their advantage.
Moreover, at the end of the day you pay about 46,000 Rs. for the gold coin (which is about one sovereign) where the actual price of the gold sovereign is about 10,000 SL Rupees. People might argue those are rare coins and thus has an antique value, but in simple terms if you look at the foreign currency flow, more money is going out of the country and less value is coming into the country with every transaction, which will ultimately drain the foreign currency of any country and the economy will go to the dogs. If you are lazy to do the math here it is already done for you. Moreover since the transaction is all through the Internet there is no way the central bank can monitor these activities. The worst case is that you have no guarantee that you are getting the gold coin until you have a certain number of people on your tree below you and you received your payment, which is kept back by GoldQuest as your second payment.
In defence of these facts, people might argue that GoldQuest is investing the money back which it is extracting in Sri Lanka in the form of Shares. However compared to the amount of money they are draining out of the country these amounts of shares are just peanuts for them. Nepal gov fined them 1.66 Billion Rupees, for just 15000 members, and GoldQuest is planning to have 100,000 members in Sri Lanka by 2005, and just calculate, at that time how much the Sri Lankan government will fine them when they realize how it’s going to affect the economy of Sri Lanka. As you already know, the country is having a Financial crisis and cannot pay India for the petroleum that they have imported and has asked for credit. Already various government bodies in Sri Lanka have realized these scams and starting to issue warnings and I hope it will not be too late before the operation is completely seized.
Think for a second, if you are going to sell the country for money, and then you are worse than a person who sells their body for money.
Update: If you can read Sinhala here is a excerpt from Divayina Weekly news paper.
Documentation as for as the code is concerned can be achieved at many different levels. Comments, Program Specification, Special Comments which can be converted to documents using tools (JavaDoc) are some of them. However no one would disagree that, as the code evolves over time and when ownership changes, the documentation doesn’t evolve with it most of the time. Always people feel lazy to update the documents and thus there is always a gap between the documents describing the code and the code itself. If there is a discrepancy between your documentation and code, at the end of the day code matters.
For any developer to understand the intent of the original developer who wrote a piece of code, all they have to do is to go through the test cases he/she has written for that piece of code. This enables anyone to improve, bug fix, include feature of an existing piece of code without fear of breaking the intent because
Unit Tests written will make sure exiting functionality is not broken, while the code is changed.
Developer can understand the intent of the existing code by going through the unit tests.
As the code evolves, new unit tests will be added or existing tests will be modified (in the case of bug fixing). Therefore unit tests always reflect the current state of the code’s functionality and it’s always updated and parallel with the code. Can you get any more updated document which describes the code accurately?
I was not productive at work at all yesterday. I was kind of reckless and most of the time while I was on my seat; I was just typing different URLs and checking whether there are any updated information on any of those sites. I didn’t realize what I was doing and why I was acting like that, however when I went home also it continued, but not with sites, but with books. I went through some chapters of Rapid Developmentand didn’t find anything interesting since the chapters I went through were already covered in the book Peoplewear. Then I saw Java Performance Tuning lying on the shelf and thought I will just browse. Then I stumbled across something interesting. Here is the extract:
Don’t Terminate Loops with Method Calls
Avoid using method call in a loop termination test; the over head is significant. I often see loops like this when iterating through collections such as Vectors and Strings:
for (int i=0; i < collection.size(); i++) // or collection.length()
This next loop factors out the maximum iteration value and is faster:
int max = v.size(); // or int max = s.length()
for(int i = 0; i < max; i++)
Once I read I experienced some peace of mind within myself. Then it struck me why I was reckless. Early in the day since I was hoping to learn something new for the day and when I didn’t learn anything new, my mind was trying all different websites in search for some piece of knowledge which I didn’t posses already. Once I found something new, I was back to my senses.
I think this is bad for me. Just because I couldn’t learn something new, I can’t stop being productive. I have to learn to let it go sometimes.
After understanding what is Unit Testing, its time to answer some of the "Whys"?
“Understanding what your Unit is is supposed to do”! Yes, that’s one of the primary reasons why we need to write unit tests before writing the methods themselves. When you sit down to write a piece of code, you have a mental image of what functionalities that piece of code should accomplish, but not all the exceptional conditions your code should handle. Once you write your code you have to make sure, that the code is fulfilling your intent. The reason for writing unit testing first will make sure that you are clear about your intent. Most of the time as developers we start coding as soon as we have a partial idea of what the unit is suppose to do (without having a clear intent).
For example, say you want to write a substring function, we will immediately sit down to code the best case scenario, the happy path. What about other cases, if the String is null, if the indexes are negative values, if the To index is less than the from index, if the index specified is outside the boundary of String object, if the From index is equal To index. Including the happy path now we have 6 different cases our code should handle. It should handle all these cases all the times. Through writing Unit Test cases first we are making sure, that we understand what our method is suppose to do. That’s why unit testing is considered a programming technique, rather than testing technique. Not only unit testing helps you to understand what the method suppose to, it also ensures that you code what you intended, since every time you modify the code you will be running the unit test cases against it to make sure that your code does not break any of them and thus making sure your code performs up to your intent.
Unit tests are performed to prove that a piece of code does what the developer thinks it should do.
I remember stumbling across this piece of code very long time back which compiles and runs in 7 different languages and prints "Hello World". Recently I mentioned this to some of my friends and I tried locating this code for some time now to show them. At last I found it!
I can’t believe that there still are people out there who don’t understand the concept of Unit Testing. When I ran a search on Google I realized that I am not alone on this boat. Guys who wrote books on Unit Testing, themselves, feel developers don’t understand what unit testing is all about. Even now I hear arguments similar to the statement that Unit Testing is the same as testing the methods by passing some values manually. Developers still don’t realize the benefits of writing unit tests, one common argument being, that unit testing is going to take time to code and developers could utilize that time to code another feature into the application.
The main reason for this resistance towards unit testing stems from lack of understanding. Many have just heard the buzz word unit testing, and they know its writing code to test the application code automatically, and that’s about it. In this perspective, it really seems a waste of time to write unit tests when one can just test the procedures and methods manually as they write them. If you are in this category, please make sure you understand what Unit Testing is all about, and what the advantages of unit testing are. A good starting point would be this PDF (What is Unit Testing) from Pragmatic Programmers which is the first chapter from their book on Unit Testing.
These are some extracts from my Software Engineering study guide, of my degree program which I always found interesting. Now its 4 years after I did this subject and yesterday I remembered them again, so I dig my course guide out, to have another look at them. Quite interesting definitions indeed!!!
Correctness is the most basic quality of software. A software product is (functionally) correct if, and only if, its behavior conforms to (functional) requirement specification.
This definition makes two assumptions, viz., that a specification does exist correctly, and that it is possible to ascertain incontrovertibly whether a software product does or does not behave in conformity to its specification.
Most specifications are cast in everyday language, which means that they are plagued by ambiguities and susceptible to conflicting interpretations. The stricter about the content and the more precise about the terms of a specification one is, the stronger one’s claim can be made about the correctness or otherwise of the software product.
If a software product is not correct we say that it contains one or more faults. Note that if its specification itself is incorrect or incomplete, a software product might be correct and still exhibit unexpected behavior. An execution event in which a software product exhibits unexpected behavior is called a failure. It follows from the definition of fault and failure that a software product may have faults and still fail.
Part of maturing as a programming professional is developing an uncompromising sense of intellectual honesty. Intellectual honesty commonly manifest itself in several ways:
Refusing to pretend you are an expert when you are not
Readily admitting your mistakes
Trying to understand a compiler warning rather than suppressing the message
Cleary understanding your program - not compiling it to see if it works
Providing realistic status reports
Providing realistic schedule estimates and holding your ground when management asks you to adjust them
Every individual with a successful career will say that one of the reasons for their success is continuous learning. “Code Complete” by Steve McConnell states that you should read a new book every quarter. Pragmatics Programmer says, among other things, to learn a new language every year preferably from different a discipline (functional, text processing, list processing, Object Oriented). Here is a very interesting weblog I found titled “Career Calculus” where Eric has come up with an equation
C = G + LT where
C = Cluefulness
G = Gifting (g factor)
L = Learning
T = Time
Where everything else can’t be controlled, in that equation the only factor which can be controlled is learning which in turn will increase your Cluefulness. The key is not just learning, but continuous learning.
If you are wondering what is “g factor” (G in the equation) and why it can’t be controlled, check this weblog by ESR. However the weblog doesn’t really talk about Learning, but it does give you a good perceptive on the “g factor”. After reading it, if you are thinking, why can’t we apply ESR thoughts to solve our country’s ethnic (Sri Lanka) problem, then you are thinking what I was thinking when I read it. But then again it’s too late I guess.
Most of us when we forward chain letters don't even recognize them as chain letters. Worse most don't know the serious bandwidth bottlenecks created by these chain mails. What I have posted below itself is a chain letter (mail), even though it’s really funny, its informative too and I think it puts everything into perspective. This will enable people recognize chain letters when they see it. However, just recognizing them wont do the trick, stop forwarding them for god sake.
Hello, my name is Basmati Kasaar. I am suffering from rare and deadly diseases, poor scores on final exams, extreme virginity, fear of being kidnapped and executed by anal electrocution, and guilt for not forwarding out 50 billion fucking chain letters sent to me by people who actually believe that if you send them on, then that poor fucking 6 year old girl in Arkansas with a breast on her forehead will be able to raise enough money to have it removed before her redneck parents sell her off to the traveling freak show.
Do you honestly believe that Bill Gates is going to give you and everyone you send his email to $1000? How stupid are you? Ooooh, looky here! If I scroll down this page and make a wish, I'll get laid by every Playboy Bunny in the magazine! What a bunch of fucking bullshit.
So basically, this message is a big FUCK YOU to all the people out there who have nothing better to do than to send me stupid chain mail forwards. Maybe the evil chain letter leprechauns will come into my apartment and sodomize me in my sleep for not continuing the chain which was started by Ceaser in 5 A.D. and was brought to this country by midget pilgrims on the Mayflower and if it makes it to the year 2000, it'll be in the Guinness Book of World Records for longest continuous streak of blatant stupidity.
Fuck them!
If you're going to forward something, at least send me something mildly fucking amusing. I've seen all the 'send this to 50 of your closest friends, and this poor, wretched excuse for a human being will somehow receive a Nickel from some omniscient being forwards about 90 times. I don't fucking care. Show a little intelligence and think about what you're actually contributing to by sending out forwards. Chances are it's your own unpopularity.
THE FOUR BASIC TYPES OF CHAIN LETTERS:
Chain Letter Type 1:
(scroll down)
Make a wish!!!
Keep Scrolling
No, really, go on and make one!!!
Oh please, they'll never go out with you!!!
Wish something else!!!
Not that, you pervert!!
STOP!!!!
Wasn't that fun? :)
Hope you made a great wish :)
Now, to make you feel guilty, here's what I'll do. First of all, if you don't send this to 5096 people in the next 5 seconds, you will be raped by a mad goat and thrown off a high building into a pile of manure.
It's true! Because, THIS letter isn't like those fake ones, THIS one is TRUE!! Really!!! Here's how it goes:
*Send this to 1 person: One person will be pissed off at you for sending them a stupid chain letter.
*Send this to 2-5 people: 2-5 people will be pissed off at you for sending them a stupid chain letter.
*Send this to 5-10 people: 5-10 people will be pissed off at you for sending them a stupid chain letter, and may form a plot on your life.
*Send this to 10-20 people: 10-20 people will be pissed off at you for sending them a stupid chain letter and will napalm your house. Thanks!!!! Good Luck!!!
Chain Letter Type 2
Hello, and thank you for reading this letter. You see, there is a starving little boy in Baklaliviatatlaglooshen who has no arms, no legs, no parents, and no goats. This little boy's life could be saved, because for every time you pass this on, a dollar will be donated to the Little Starving Legless Armless Goatless Boy from Baklaliviatatlaglooshen Fund.
Oh, and remember, we have absolutely no way of counting the emails sent and this is all a complete load of bullshit. So go on, reach out. Send this to 5 people in the next 47 seconds.
Oh, and a reminder - if you accidentally send this to 4 or 6 people, you will die instantly. Thanks again!!
Chain Letter Type 3
Hi there!! This chain letter has been in existence since 1897. This is absolutely incredible because there was no email then and probably not as many sad pricks with nothing better to do.
So this is how it works... Pass this on to 15,067 people in the next 7 minutes or something horrible will happen to you like:
*Bizarre Horror Story #1
Miranda Pinsley was walking home from school on Saturday. She had recently received this letter and ignored it. She then tripped in a crack in the sidewalk, fell into the sewer, was gushed down a drainpipe in a flood of poopie, and went flying out over a waterfall. Not only did she smell nasty, she died. This Could Happen To You!!!
*Bizarre Horror Story #2
Dexter Bip, a 13 year old boy, got a chain letter in his mail and ignored it. Later that day, he was hit by a car and so was his boyfriend (hey, some people swing that way). They both died and went to hell and were cursed to eat adorable kittens every day for eternity.
This Could Happen To You Too!!! Remember, you could end up just like Pinsley and Bip. Just send this letter to all of your loser friends, and everything will be okay.
Chain Letter Type 4
As if you care, here is a poem that I wrote.
Send it to all your friends.
FRIENDS:
A friend is someone who is always at your side.
A friend is someone who likes you even though you stink of shit, and your breath smells like you've been eating catfood.
A friend is someone who likes you even though you're as ugly as a hat full of assholes.
A friend is someone who cleans up for you after you've soiled yourself.
A friend is someone who stays with you all night while you cry about your sad, sad life.
A friend is someone who pretends they like you when they really think you should be raped by mad goats, then thrown to vicious dogs.
A friend is someone who scrubs your toilet, vacuums and then gets the check and leaves and doesn't speak much English...no, sorry that's the cleaning lady.
A friend is NOT someone who sends you chain letters because he wants his wish of being rich to come true.
Now pass this on! If you don't, you'll never have sex ever again!
The point being? If you get some chain letter that's threatening to leave you shagless or luckless for the rest of your life, delete it. If it's funny, send it on. Don't piss people off by making them feel guilty about a leper in Botswana with no teeth, who's been tied to a dead elephant for 27 years, whose only savior is the 5 cents per letter he'll receive if you forward this mail, otherwise you'll end up like Miranda. Right?
Now forward this to everyone that you know otherwise you'll find all your knickers missing tomorrow morning! Funky, Spunky, and Very Much Like a Monkey