What does void mean in C, C++, and C#?

Question: Looking to get the fundamentals on where the term "void" comes from, and why it is called void. The intention of the question is to assist someone who has no C experience, and is suddenly looking at a C-based codebase.
Comment: This question mix 3 languages... that legacy question should be split into 3 different questions.
Comment: @Stargateur Why?
Answer: Basically it means "nothing" or "no type"
There are 3 basic ways that void is used:

Function argument: int myFunc(void)
-- the function takes nothing.
Function return value: void myFunc(int)
-- the function returns nothing
Generic data pointer: void* data
-- 'data' is a pointer to data of unknown type, and cannot be dereferenced

Note: the void in a function argument is optional in C++, so int myFunc() is exactly the same as int myFunc(void), and it is left out completely in C#. It is always required for a return value.
Comment: In C++, void in the argument list is optional.  However, in C, it is NOT optional: foo() means it takes any number of parameters of any type, whereas foo(void) means it takes zero parameters.
Comment: Not disagreeing, but an additional use of void is in the "cast to void" trick to suppress warnings for unused values. It's a bit of a stretch since it doesn't really correspond with how the compiler interprets things, but you can interpret that to mean "I'm using this value to do nothing".
Comment: void in the argument list is optional in C++, see http://stackoverflow.com/questions/416345/is-fvoid-deprecated-in-modern-c-and-c
Comment: I'd use "no type" rather than "no size"
Comment: @Earwicker and kjetijor, both good points that I debated on, but my sleepless mind needed help ;) Thanks.
Comment: Another good point. laalto more or less mentions this, so I won't pilfer his answer.
Comment: also void is not first class citizen in c#. you could not do this for example Action.
Comment: @Sergey - nor do you need to. More irksome is that you can't do Func, which is why Action has to exist.
Comment: Could you also elaborate in your answer what it means when void(0) is used? For example, assert() in Release mode is usually defined as void(0).
Comment: "void = nothing" is an "anti-learning" pattern for understanding memory in C/C++.
Answer: I have always taken it to mean absent. Here are four cases in the C language that matches to this use of absent

R f(void) - Function parameters are absent
void f(P) - Return value is absent
void *p - Type of what is pointed to is absent
(void) p - Usage of value is absent

Other C descendants use it for other things. The D programming language uses it for cases where an initializer is absent

T t = void; - initializing value is absent
Comment: What does `(void)p` do? I did not quite get what you meant by "usage of value is absent."
Comment: @Yashas If anyone is also confused about the `(void) var;` statement, I've found detailed answers at https://stackoverflow.com/q/21045615.
Comment: Perhaps update for [Rust](https://en.wikipedia.org/wiki/Rust_%28programming_language%29) (if that is relevant)? - as the new contender.
Answer: There are two ways to use void:
void foo(void);

or
void *bar(void*);

The first indicates that no argument is being passed or that no argument is being returned.
The second tells the compiler that there is no type associated with the data effectively meaning that the you can't make use of the data pointed to until it is cast to a known type.
For example you will see void* used a lot when you have an interface which calls a function whose parameters can't be known ahead of time.
For example, in the Linux kernel, when deferring work you will set up a function to be run at a latter time by giving it a pointer to the function to be run and a pointer to the data to be passed to the function:
struct _deferred_work {
sruct list_head mylist;
.worker_func = bar;
.data        = somedata;
} deferred_work;

Then a kernel thread goes over a list of deferred work and when it gets to this node it effectively executes:
bar(somedata);

Then in bar you have:
void bar(void* mydata) {
    int *data = mydata;
    /* Do something with data */;
}

Answer: It means "no value". You use void to indicate that a function doesn't return a value or that it has no parameters or both. Pretty much consistent with typical uses of word void in English.
Answer: It indicates the absence of a return value in a function.
Some languages have two sorts of subroutines: procedures and functions. Procedures are just a sequence of operations, whereas a function is a sequence of operations that return a result.
In C and its derivatives, the difference between the two is not explicit. Everything is basically a function. The void keyword indicates that it's not an "actual" function, since it doesn't return a value.
Answer: Three usage cases for void:

Function signatures. void foo(int bar) does not return a value. int bar(void) does not take any parameters but this is usually expressed with empty argument list: int bar(). Usage of the void keyword here corresponds to its meaning in English.
Generic top-type pointer void * that points to unspecified data and cannot be dereferenced. Here the meaning of void is different from other meanings of void: universal type vs. no type.
In casts such as (void) new Foo(this) to signify that the return value is deliberately thrown away. Here the keyword usage also matches its meaning in English.

Cases 1 and 2 were already covered by @Gerald but case 3 has not been addressed yet.
Answer: Think of void as the "empty structure".  Let me explain.
Every function takes a sequence of parameters, where each parameter has a type.   In fact, we could package up the parameters into a structure, with the structure slots corresponding to the parameters.  This makes every function have exactly one argument.   Similarly, functions produce a result, which has a type.  It could be a boolean, or it could be float, or it could be a structure, containing an arbitrary set of other typed values.  If we want a languge that has multiple return values, it is easy to just insist they be packaged into a structure.  In fact, we could always insist that a function returned a structure.  Now every function takes exactly one argument, and produces exactly one value.
Now, what happens when I need a function that produces "no" value?
Well, consider what I get when I form a struct with 3 slots: it
holds 3 values.  When I have 2 slots, it holds two values.  When it
has one slot, one value.  And when it has zero slots, it holds... uh,
zero values, or "no" value".  So, I can think of a function returning void
as returning a struct containing no values.  You can even decide that "void"
is just a synonym for the type represented by the empty structure,
rather than a keyword in the language (maybe its just a predefined type :)
Similarly, I can think of a function requiring no values as accepting an empty structure, e.g., "void".
I can even implement my programming language this way.  Passing a void value
takes up zero bytes, so passing void values is just a special case of passing
other values of arbitrary size.  This makes it easy for the compiler to treat
the "void" result or argument.   You probably want a langauge feature
that can throw a function result away; in C, if you call the non-void result
function foo in the following statement:
      foo(...);
the compiler knows that foo produces a result and simply ignores it.
If void is a value, this works perfectly and now "procedures" (which are
just an adjective for a function with void result) are just trivial special
cases of general functions.
Void* is a bit funnier.   I don't think the C designers thought of void in the
above way; they just created a keyword.   That keyword was available when somebody
needed a point to an arbitrary type, thus void* as the idiom in C.
It actually works pretty well if you interpret void as an empty structure.
A void* pointer is the address of a place where that empty structure has
been put.
Casts from void* to T* for other types T, also work out with this perspective.
Pointer casts are a complete cheat that work on most common architectures to take advantage of the fact that if a compound type T has an element with subtype S placed physically at the beginning of T in its storage layout, then casting S* to T* and vice versa using the same physical machine address tends to work out, since most machine pointers have a single representation.   Replacing the type S by the type void gives exactly the same effect, and thus casting to/from void* works out.
The PARLANSE programming language implements the above ideas pretty closely.
We goofed in its design, and didn't pay close attention to "void" as a return
type and thus have langauge keywords for procedure.   Its mostly just a simple
syntax change but its one of things you don't get around to once you get
a large body working code in a language.
Answer: In C#, you'd use the void keyword to indicate that a method does not return a value:
public void DoSomeWork()
{
    // Some work
}

Comment: Most people don't realise that void maps to the System.Void structure- http://msdn.microsoft.com/en-us/library/system.void.aspx
Answer: If you're explaining the concept to a beginner, it might be helpful to use an analogy. The use of void in all these cases is analogous in meaning to a page in a book which has the following words, "This page left intentionally blank." It is to differentiate to the compiler between something which should be flagged as an error, versus a type which is intentionally to be left blank because that is the behavior you want.
It always appears in code where normally you would expect to see a type appear, such as a return type or a pointer type. This is why in C#, void maps to an actual CLR type, System.Void because it is a type in itself.
Some programming languages never developed the concept of void, just like some human cultures never invented the concept of the number zero. Void represents the same advancement in a programming language as the concept of zero represents to human language.
Comment: Just a note in regards to your last sentence - bear in mind that is only true of statically typed languages. Dynamically typed languages do not need void since their methods may just simply not return anything - the "void" is implied by the lack of anything else being returned.
Comment: Correction to my last comment - I meant to say last paragraph (not sentence).
Answer: I was taught "void" means "nothing" in college - it's a faulty mental model and an anti-learning pattern.
In C/C++ void means "untyped memory".  void does not mean "nothing".  An undefined thing is different than no thing.
For example: MLT video framework returns a void * for newly allocated memory.
If a C/C++ program leaks void * memory, it's definitely leaking something.
void *mlt_pool_alloc( int size );
void *mlt_pool_realloc( void *ptr, int size );
void mlt_pool_release( void *release );

The first function returns a void * type to a newly allocated "raw" memory.  Physical memory is just an array of 0/1's.  Raw physical memory is also practically meaningless for the compiler and programmer.
The programmer creates meaning when he casts void * to stuff * or a stuff array.
Note that we can cast any * to a void *, and void * to any *.
This let's the programmer write any * code, but manage any's memory with void * code.  That's the essential benefit to the design.
// Resize allocated memory
void *mlt_pool_realloc( void *ptr, int size );

This function returns and accepts void * pointers.  This function can be used to expand the size of a previously allocated array.
Reallocating "nothing" to more "nothing" is confusing in a void=nothing mental model.
void mlt_pool_release( void *release );

The final function accepts a void * and returns void.  The returned void can't be assigned, which leads to the assumption that void means nothing.
Returning void is a language convention and an "overloaded meaning" of void.
A void * is a pointer to raw untyped memory.
Answer: Void is used only in method signatures. For return types it means the method will not return anything to the calling code. For parameters it means no parameters are passed to the method.
E.g.,
void MethodThatReturnsAndTakesVoid(void)
{
    // Method body
}

In C# we can omit the void for parameters and can write the above code as:
void MethodThatReturnsAndTakesVoid()
{
    // Method body
}

Void should not be confused with null. Null means for the variable whose address is on stack, and the value on the heap for that address is empty.
Answer: void means that you won't be returning any value from the function or method.
Answer: Void means no value is required in the return type from a function in all of the three languages.
Answer: Void is an incomplete type which, by definition, can't be an lvalue. That means it can't get assigned a value.
So it also can't hold any value.
Comment: What about void *?
Answer: Void is the equivalent of Visual Basic's Sub.
Comment: Only as a return type. I can think of three more uses of void: void arguments (function takes nothing), void pointers (no pointer type specified), and void casts (discard value).

What does void mean in C, C++, and C#?


Opposite word of Nomophobia

Question: Since I don't use my mobile phone much like others. I want to mention me as in one word "this kind of person" who don't care much about mobile phones or attending calls. I know the word Nomophobia means fear of being without phone. But I couldn't find any opposite word for the word Nomophobia.
Comment: It's not a stupid question, but it's unlikely that there will be a specific name for such a *normal* person, who doesn't have the phobia of being without their mobile, who treats it not as a necessity for emotional well-being but as a convenience. It's like asking if there's a word for a person who is not a drug addict, for "the opposite of 'addict' ".
Comment: Is there a name for such a person in your own language? One who does not suffer emotional distress when they are without a mobile phone?
Comment: My native language is one of a very old language that doesn't change much with the time like other languages do. Until now, we don't have any word like Nomophobia, but english has. That is why I'm asking this doubt. All i want is to know is there any word to mention someone who don't have much interest in gadgets, it would be great to know. Like teetotaller for nonsmokers or nondrinking persons. If there is nothing like that, leave it, i will take that as no words available.
Comment: Teetotalers *refuse* to drink alcoholic beverages. They *abstain*, but you're not asking about someone who refuses to use mobile phones; you have described the person as someone who doesn't really care about mobile phones. To them, it's just another device, not something they must have, the lack of which makes them feel anxious or distressed in some way.
Comment: So no word. Ok, no problem, thanks for your comment. My intention was not to ask a stupid question here, but i was just curious to know is there any word really available.
Answer: Typically the opposite of any phobia would be a Philia - a fondness for something. In this case it would be a Nomophilia. A fondness of mobile phones and attending calls.
Comment: Nomophobia is a recently made up word (a portmanteau of no + mobile + phobia) so there's no reason you can't also use the corresponding philia.  The meaning would be a fondness for not having a mobile phone.

You would probably have to explain it to people though, as nomophobia is not a commonly used word yet.
Comment: @ssav I'd guess it is not only not commonly used yet, but never will be. But whatever. :-)
Comment: You might as well say you're "nomofine", really--nomophilia would be that you love being without a phone, I think what you're trying to say is that you're completely at peace without it but not necessarily seeking that condition.  As people have said, it's a made up set of words anyway, you might as well have fun with it.
Comment: Thanks for your answer. But I think there is no word like Nomophilia.
Answer: "Nomophobia" is essentially a joke word, made up in about 2008. It is not known by most speakers. It has not made it into most dictionaries (http://www.dictionary.com/misspelling?term=nomophobia) It is not considered a distinct medical condition by psychiatrists.
English doesn't have an authority that can decide on what is a word. In about 2008 someone made a joke, and a few other people have picked it up. However, you should not treat "nomophobia" as part of standard English.
The pattern "...phobia" is very productive. One can form lots of words by adding "phobia". The words created can be serious (claustrophobia - the fear of enclosed spaces) or jokey (Hippopotomonstrosesquippedaliophobia - the fear of long words) and new "phobias" are being invented all the time. Most of these words are used once and then forgotten.
There is also no standard term for "not being upset about not having a phone". Instead just explain. "I'm relaxed about not having my phone"

Opposite word of Nomophobia


How Does BitCoin's Economy Work?

Question: I just heard about BitCoin for the first time today, and I'm confused.
My understanding of economics may not be the best, but I do know that money, as in the paper and coins we use in everyday life, has no value unless it's backed by something which DOES have value (such as the gold in the Federal Treasury). So I don't understand how BitCoins gain value. I understand they're created by computers doing complex mathematical equations, but...is the solution to these equations valuable? Is that what causes BitCoins to be worth something?
Hopefully the answer to my first question will answer the second as well...once BitCoins are created, how is their ongoing value determined? For instance, I heard about a BitCoin value crash today. What criteria is used to determine changes in the market, and how are exchange rates calculated?
Thanks in advance to anyone kind enough to answer my questions...I hope I don't sound like a complete idiot.
Comment: FED does not back anything with gold. That was true until '70. Since then the dollar isn't backed by anything. It's just created from thin air by the banks through loans. Same applies to Bitcoin, except the coins are created from thin air by the entire network (miners), and not a central bank (also there's a limited supply of them to prevent inflation)
Comment: Please note that the value of gold is in no way objective. For Precolumbian civilizations it was just a material for making religious objects, having limited usage and therefore limited value.
Comment: @Alex, And assuming we go back 40 years when it *is* still backed by gold, **have you ever wondered why does gold have value?** What is it the value of gold backed up by? Simply being able to conduct electricity doesn't justify the high prices it brings.
Answer: Things are worth what people are willing to trade for them. The same is true for Bitcoin. Its value is insured by nothing other then what people will trade for it.
There are some distinctions between  bitcoin and other currencies which are worth noting.

Bitcoin has no intrinsic value. While this is true of many modern currencies such as the U.S dollar, it has not always been the case, such as when the U.S. was still on the gold standard. (Gold has some intrinsic value such as its use in circuitry )
New Bitcoins get created by an algorithm which closely follows a geometric series as opposed to a central authority, such as the Federal Reserve.

This second point while having some benefit has proved to be significant shortcoming for Bitcoin. In most currencies, as the volume and rate of transactions increases, so to does the amount of currency. This is not the case for bitcoin, and it has led to severe  hyperinflation. This is a bad thing for a currency, because if you use it as your yardstick of value (which currencies are) of other goods and services, then everything else's value is constantly being depreciated.
In short, Bitcoins economy dosent work all that well. Its based on speculation, and its only (as far as I can tell) real value as a medium of exchange comes from the drug market silk road, which uses it exclusively.

How Does BitCoin's Economy Work?


What part of buying a house would make my net worth go down?

Question: I've thinking about buying a house, and how that would affect my net worth.  It seems to me that if out of pocket + debt = value then the transaction shouldn't affect my net worth in the short term.  What sort of actions would cause my net worth to go down?
Comment: The more I read on owning versus renting, the more I'm convinced that aside from being financially prudent, the money thing should be taken out of the homeownership question - i.e. look at the ways homeownership could bankrupt you or ruin your credit score if you mess up, but don't look at it in terms of monetary value.  Buy a house for the intangibles as long as you can afford it.
Comment: A house is an investment: It's an inflation-protected perpetual bond that pays interest equal to ~80% of your rent bill. It's not a lottery ticket. It's not AAPL. It's not GOOG.
Comment: @justkt your primary residence is not an investment unless you plan to sell it and actually use the equity that you built up (if you are lucky to have any equity left). If you keep selling and buying a bigger house then you just pumping money in and never see it again. Not really a definition of an investment. From an investment point of view i am sure you can do better by renting and investing into something else, maybe even a rental property
Comment: @eater -- Many houses come with the mineral rights to the land under them, and most houses come with the development rights to the land they are on (subject to zoning laws, setbacks, and other restrictions.)  These rights amount to bonus lottery tickets.  There is a chance that down the road, someone might want to buy the house for its land value.
Answer: Buying a house can definitely make your net worth go down because there are expenses involved (interest expense, closing costs, taxes, maintenance, etc.). So unless the house appreciates in value enough to offset these things, you will see a drop in your net worth from buying a house. More specifically it can have a negative impact on your net worth, since changes in your net worth are the cumulative result of all your inflows and outflows of money.
Comment: I would argue that appreciation in a house generally doesn't increase your net worth in terms of real dollars, only in nominal dollars.
Comment: Also the interest you pay each month will be a reduction in net worth.  All that being said in general a house purchase will increase your net worth in the long run.  There are always exceptions to this rule.
Comment: @Eric Interest payments are also thrown away (aside from the ~25% written off for US taxes if you have enough other deductions). In the short term, your interest payment should be lower than your rent, or you could probably invest more profitably somewhere else.
Comment: This is offset a bit by the fact that your monthly payment goes partially to paying down your debt, compared to renting where your entire payment is essentially wasted (from a net worth perspective)
Answer: One way to think of net worth is to think if you sold everything you owned, how big of a pile of money would be standing next to you (assuming your net worth is positive).
If you started with $100K and then bought a house worth $100K you would have $0 in the bank and a house.   If you sold that house for $100K you would pay the realtor 6% (typically) or $6K leaving you with $94K.    This means the act of buying your house has reduced your net worth by $6K.
I asked a related question about how to value your home in your net worth.
Answer: Cosigning a loan for someone else will make net worth decrease, whether backed by security or not.
Answer: In general, buying a house will improve your net worth over the long haul, because unlike cars, houses don't suffer as much from depreciation.
The problem with real property is that markets are very cyclic and aren't very liquid assets. Farmers with thousands of acres of valuable land are often cash poor for that very reason. A lot of people here are negative about housing ownership — this is illustrative of the fact that 2010 is a year where real estate is on the down-side of the cycle.
Comment: I agree here that net worth should improve in the long haul. The more immediate and negative impact from buying a home is usually a lowered cash flow.
Answer: You can look at buying a house as being a long term investment in not paying rent.   In the short time there are costs to buying (legal, taxes, etc).   This depends on only buying house of the size/location you need e.g. no better then what you would have rented.
House buying tent to work out best when there is high inflation, as the rent you would otherwise be paying goes up with  inflation – provided you can live with the short term pain of high interest rates.
Answer: Houses depreciate. Period.
Things break: the hot water heater explodes, the AC cuts out in August, the roof leaks, the basement floods, toilets back up, raccoons dig up the garden. Each time something breaks, the house loses value. Every year the paint fades a little, the house loses value. Every time GE comes out with a more efficient washing machine, the house loses value.
The only reason a house appears to maintain its value over time is because the money you spend repairing and improving it offsets this unavoidable depreciation. Even then, over extended periods of time it will typically just track inflation--so you're treading water. Not that there's anything wrong with that. You need to live somewhere.
Comment: In the UK, houses tend to go up in value, as the land increases in value a lot faster then the building needs work.   We also built to last.
Comment: Due to the planning system, in the UK, land prices tend to track wages not inflation over the long term.   Wages tend to increase more than inflation.


Does the latest version of QTP have something similar to Selenium Grid?

Question: Does anyone know whether QTP supports parallel test execution on multiple browsers now? I am looking for something similar to Selenium Grid.
Comment: I guess QTP always used to have master slave kind of mechanism to parallelize tests. Though not sure how many browsers they support
Answer: QTP does not support parallel runs on different browsers, you can run the same test on different browsers by defining the browser in the data table and then iterate on that.
Answer: Parallel execution can be achieved by integration with Quality Center, in which case you can set up a test set to execute against a number of different hosts. Alternatively, you can build your own, or utilize another system, such as your build farm, to dole out QTP jobs.
Comment: This enables you to run several QTP tests in parallel on *different* machines. It won't allow you to run tests in parallel on the same machine.
Answer: Going off of both existing answers, you can create Test Configurations within QC to specify different data table values for a single test.
When I require testing on multiple browsers, I create two or more configurations which specify the browser for that run.

Test A IE
Test A Chrome
Test A Firefox

If you have multiple hosts, you can then run the test in parallel on each host.  If not, you are limited to running them consecutively on one host, which in practice would function similar to the data table iterations Motti suggested.
Setting it up this way does allow for an easy transition to parallel testing should you expand the number of hosts available to you.


Hackable linux distributions

Question: A few years ago we had that awesome Linux distribution called Damn Vulnerable Linux.
But unfortunately it looks like the project is dead. So my question is are there other
Linux distributions which are meant to be hacked (explicit in the view of exploit development). Also welcome would be applications on the Windows platform for exploit exercises (like vulnerable server). Thanks in advance
Comment: This may be a little off topic, but it is relevant in a way. The [Practical Malware Analysis](http://www.amazon.com/Practical-Malware-Analysis-Dissecting-Malicious/dp/1593272901) book has many amazing lab exercises, with well explained walkthroughs in the back. I know this is malware analysis, however many of these concepts overlap with exploitation analysis skills (debugging, reveng, code constructs in assembly, etc...). I would highly suggest it.
Comment: What type of "hacking" are you interested in? Network, Web, and OS (binary) can have varying answers to your question.
Comment: @JordanHanna  mainly i am interested in binary stuff. Network and Web are interesting too but i want to learn to do debugging and exploitation
Answer: Vulnhub is a collection of vulnerable distributions along with walkthroughs contributed by the community.
exploit-exercises.com provides a variety of virtual machines, documentation and challenges that can be used to learn about a variety of computer security issues such as privilege escalation, vulnerability analysis, exploit development, debugging, reverse engineering, and general cyber security issues.
PentesterLab has interesting exercises, some o them are about exploit development.
RebootUser has a lab that includes a Vulnix - a vulnerable Linux machine, VulVoIP - a relatively old AsteriskNOW distribution and has a number of weaknesses, and VulnVPN - a VM that you can practice exploiting the VPN service to gain access to the sever and 'internal' services.
BackTrack PenTesting Edition lab is an all-in-one penetration testing lab environment that includes all of the hosts, network infrastructure, tools, and targets necessary to practice penetration testing. It includes: a DMZ network with two hosts targets, an "internal" network with one host target and a pre-configured firewall.
PwnOS is a Debian VM of a target on which you can practice penetration testing with the goal of getting root.
Holynix is an Linux vmware image that was deliberately built to have security holes for the purposes of penetration testing.
Kioptrix VM is targeted at the beginner.
Scene One is a pentesting scenario liveCD made for a bit of fun and learning.
Sauron is a Linux system with a number of vulnerable web services.
LAMPSecurity training is designed to be a series of vulnerable virtual machine images along with complementary documentation designed to teach Linux, Apache, PHP and MySQL security.
OSCP, OSCE, SANS 660 and HackinkDOJO are some of the paid courses that have good practical labs.
Hacking challenge websites can also provide challenges that are increasing in difficulty, fun and addictive. WeChall is a website that aggregates scores on other challenge websites and it has a category for websites with exploits.
CTF (Capture The Flag) events have challenges where you are required to exploit local or remote software. Most live events are available on CTFTime but there are repositories of past events and some CTFs are still available after the live event.
But for exploit development, I suggest installing vulnerable applications on your own computer where you could easily perform analysis. The application doesn't necessarily have to be a server or run on a different computer. Go to exploit-db and find old exploits there, then look for that version of the vulnerable software and start working on it. If you need hints, the actual exploit can point you in the right direction.
Comment: I call it training, not cheating. And I call it research if you work on software that doesn't have public exploits. Go to this address http://download.cnet.com/new-windows-software/ for new software you can do research on.
Comment: about your suggestion. Thats what i actually did, but isn't "hints from the (original) exploit" just like cheating. Or being a copycat? I try to avoid that, thats also the reason i am searching for exercises and learn doing it on my own.
Answer: If you are interested in hacking web apps, check out the OWASP Hackademic Challenges.  That sounds somewhat tangential to your interest, but I figured I'd mention it just in case.
Answer: You can check out Metasploitable 1 & 2 from Rapid7!
Comment: okay with metasploitable my only question would be, do the vulnerability differ in the different versions?
Comment: @PolymathMonkey My understanding is that Metasploitable 2 includes the vulnerabilities of the first version.

Quote from the official website:
"Version 2 of this virtual machine is available for download and ships with even more vulnerabilities than the original image"
Answer: Web security dojo is a Ubuntu based distribution for practicing web app security testing.  It has all the necessary tools and documentation to get a beginner going.
Answer: A lot of great links in here, but I didn't see any mentioning VulnServer, which is one of my personal favs. Old CTFs as someone mentioned are very good, as you usually can find the answer to verify (or if you get stuck).
Corelan tutorials are very good. I understand you don't want to just follow a tutorial, so I will tell you how I go about avoiding that myself. I tend to just read the intro to see what program they are exploiting and on what platform. Then I attempt to fuzz and exploit it myself, and use the tutorial for when I get stuck or want to verify my results (also to get further insight and tips into the process for that vuln).
Snort had something as well called Advanced Windows Buffer Overflow (AWBO). It requires Windows 2000 SP4 for the platform, but other than that they are quite good and you can find tutorials around the net for them in case you get stuck.
Comment: Thanks for that advice, i also like VulnServer the most, and them corelan tutorials are awesome to get better understanding. The Snort AWBO Stuff sounds also great but i did not had the time yet to digg deeper into that.

Hackable linux distributions


Damage to pan bottom

Question: I have a non stick Tramontina frying pan. Today, in an effort to remove the brown stains on the reverse (metallic) side, I put the pan in boiling water with baking soda for 30 min. After cleaning it with a sponge, I noticed that the outer bottom metallic layer seems to have come off quite a bit (see attached picture). I was surprised as I did not think that baking soda could do this--moreover the nonstick surface seems to be undamaged. So my questions are: What happened here? And what will be the effect on cooking?
Comment: Looks like corroded aluminum. The stuff is sensitive,  and bicarb counts as an acid. If Teflon is OL, pan should be OK; just not as pretty.
Answer: Baking soda is a mild base (the opposite of being acidic). In the right concentration & environment, it can be a corrosive.
What happened is that in addition to taking the burned bits off your pan, it also took the shiny finish coat off the outside of the pan. What you're seeing is the unpolished aluminium, with a coating of aluminum oxide.
Since only the exterior of the pan is affected, you've not damaged the functionality of the pan, just the looks.
Comment: Indeed, the pan is probably sufficiently thick so that the corroded part will not affect anything on the inside. Aluminum corrodes only on the surface, it's usually not like iron rusting that goes on deep into the metal. So, unless OP scrapes it more, it should be ok.
Comment: pK of CO2<->NaHCO3 runs at 6.5. Carbonate runs about 9.5. Likely in water, **ved** has bicarb. Aluminum is not fond of H+ or CO3(-2).
Comment: If I dont care about looks, only functionality, then for future cleaning, do you think this method of boiling with baking soda is still ok?

Damage to pan bottom


Somewhere, or sometime, down the road?

Question: If you're talking about doing something in the future, do you say "somewhere down the road", or "sometime down the road"?
Comment: You say "down the road" :^) Place and time don't matter. I elaborate in my answer below, with examples.
Answer: Interesting question! My first instinct is that both make sense, in different senses. "somewhere down the road" means to me something like "at some point along this metaphorical road that is the future." I think that's the way I would say it. But "some time down the road" makes sense too; I wouldn't be confused if I heard it. But my gut tells me it's less common.
This ngram seems to support that conclusion:
Comment: I asked about charts [on ELU meta](http://meta.english.stackexchange.com/questions/1171/), but in the end I figured out a way that worked for me, and [posted an answer myself](http://meta.english.stackexchange.com/a/1173/2637). Note that I now use the vastly superior Chrome browser, but that hasn't changed how I add chart/picture links.
Comment: ...but note that the chart doesn't really tell us much, since it doesn't distinguish "literal" usages (at some location along the road) from "figurative" *(the road = the passage of time)*. Nor does it include the single-word form ***sometime***, which I personally would probably prefer for OP's figurative use.
Comment: We can fix the latter: http://books.google.com/ngrams/graph?content=%28some+time+down+the+road+%2B+sometime+down+the+road%29%2Csomewhere+down+the+road&year_start=1870&year_end=2000&corpus=15&smoothing=0&share=  As for the former, someone could probably categorize the first few pages of results into **metaphorical**, **literal**, and **not sure** and make a guess based on that, though I don't know whether or not the extrapolation would be valid.
Comment: @snail: I had the [same thought you did](http://books.google.com/ngrams/graph?content=some+time+down+the+road+%2B+sometime+down+the+road%2Csomewhere+down+the+road&year_start=1930&year_end=2000&corpus=15&smoothing=3&share=); the results are a bit closer when you account for both "sometime" and "some time". It's also worth pointing out that, just because one particular wording is in the minority, that doesn't always imply it's wrong or inferior. Less used ≠ less correct.
Comment: @snailboat I attempted to edit your ngram into the answer for better accuracy (it's a fair point that you guys bring up) but it's being finicky and will only display one line (the "somewhere" one) when I try and include the image in the answer. Not really sure what's going on, as it works fine when I view the link in ngram viewer (and also when I use FF's "graph->chart" trick) but when it's loaded in the actual answer it doesn't display properly. /fail
Answer: I think either one works just fine. As they would tell you on Physics.SE:

Distance = Rate × Time

Unless we are traveling by car, or giving directions, "the road" is probably not a physical road; and the phrase is being used as a metaphorical expression to mean "later" or "in the future". Since distance is a function of time, we get further down the road later in time, meaning somewhere and sometime are related to each other, and, in the context of this metaphor, virtually interchangeable. On this proverbial road, we can assume there are no breakdown lanes, so we always progress in location as we progress in time. Ergo, there's no set way to word it; for example, this works, too:

Solar preparation of new homes reduces the cost someplace down the road when that owner decides to buy a solar unit.

Moreover, there's one other alternative that hasn't been discussed, even though it is in use; namely, omit the somewhere/sometime/someplace altogether, and simply say down the road, as these authors did:

My fear was that, down the road, she would become dependent on others.
Climbing is not the direct source of happiness. Instead, it cultivates virtues that down the road will be a greater source of happiness.
One challenge is to convince the customer that, down the road, they will not exploit the position they enjoy as not only supplier of the product but also the sole source of changes, upgrades, updates, interoperability, and so on.
As to where or when that becomes bribery, it's a fine line. Especially when, down the road, there's a jury to convince.

One Ngram suggests that such wordings are not any less "valid" than using sometime or somewhere:

Somewhere, or sometime, down the road?


How does a Flat Earth world work?

Question: Imagine a flat earth but with a gravity well at the center. Would its gravity be the same like ours?
Comment: Nah, the gravity would be generated by the Turtle on the back of which it rides across the void. Seriously though, do you understand how gravity works? The Earth is round, and thus all around the planet we are equidistant from the core. A plate shaped "planet" wouldn't be able to generate anything approaching Earth normal gravity unless you waved it away as "magic", and even then it would have to be equally distributed across the surface somehow ...
Comment: You forgot the 4 giant elephants on the back of the turtle.
Comment: Compare also to similar https://worldbuilding.stackexchange.com/questions/8830/how-would-a-civilization-that-has-been-living-on-a-cube-earth-differ-from-one
Answer: Not at all. Gravity would act directly towards the gravity well - it might be fine in the centre of the plane, but as you moved towards the edges the gravity well would no longer be below you, but behind you. You'd feel like you were going up a steeper and steeper slope, as if you were in a huge bowl.
It would work better if the gravity well was some distance below the plane - I'd say at least the same distance from it as the width of the plane itself.
Comment: You might be able to fix this problem if the 'bottom' of the planet wasn't flat.  If the planet looked more like half a bagel (cut open for cream cheese) the gravity would be more uniform.  A more extreme version of this where the bulk of the bottom was almost perfectly below the outer rim of the disk would be even better, I think.
Answer: The surface would eventually conform until there is no gradient along the surface.  In other words, the shape of the world would change until gravity was everywhere perpendicular to the surface.  This might be violated for relatively small structures like hills or mountain ranges, but across the world, it would be a clear effect.  So if the center of gravitation is not very far away, the surface would not remain flat.
Answer: The strength of a gravity field depends directly upon how much mass is adjacent to the observer. Observe, for example this map of our Earth's gravity field by NASA:

The earth in fact has differing strengths of gravity fields depending on what exactly the crust underneath is composed of. Notice the giant low-grav zone in Canada, a well known phenomena, due to the nature of the crust underneath.
Also, note this older article from National Geographic, they mention that the gravity fields change over time (winds and currents move water, which has enough mass to impact gravity):
National Geographic Gravity Map Article
Thus a flat and/or disk shaped world would in fact produce normal gravity, IF the mass was relatively evenly distributed across it's surface, and was fairly uniform in thickness. However, towards the edges, and near mountains or oceans, it would get a little weird.
Using a "gravity well" of some shape would also affect things, if you weren't relying simply upon the sheer mass of the flat earth to produce the gravity.

How does a Flat Earth world work?


Why are spherical compounds with a half filled HOMO concidered aromatic?

Question: In planar annulenes, huckel's rule effectively states that compounds with a full HOMO for their conjugated $\pi$ systems are considered aromatic while those with a half filled outer shell are antiaromatic. Aromatic compounds are stabilized both by delocalization across their $\pi$ complex and possessing a full HOMO spread across the ring. On the other hand, antiaromatic compounds break degeneracy among their orbitals, preventing resonance, as it would only result in a half filled outer shell. Despite this, according to this source, a half filled HOMO in a spherical compound will result in aromaticity on a sphere. Is this because there is so much potential for delocalization in spherical compounds, since they contain so many conjugated pi bonds, or can this be explained with something else?
Comment: There is no such thing as spherical aromaticity.
Comment: related http://chemistry.stackexchange.com/questions/37641/is-buckminsterfullerene-aromatic-or-not?s=9|0.1343
Comment: That being said, I kindly ask everyone to leave this question open, at least for a while.
Comment: I reworded the question. Spherical aromaticity exists and [buckminsterfullerene is antiaromatic](http://www.ncbi.nlm.nih.gov/pubmed/22948533).
Answer: OK, let's get this straight. There is no such thing as spherical aromaticity. The so-called Hirsch's rule is sheer nonsense and never works.
Now don't get me wrong, the premises were sound. When we have dozens of atoms arranged kind of uniformly on the surface of a sphere, the whole thing starts to look mighty like continuous - reminiscent of a huge "atom" consisting of surface only, without any depth. Naturally, the eigenfunctions (AKA molecular orbitals) of such a system would be the pure angular functions without the radial part, and their energy will be determined by the angular quantum number $\ell$. The bottommost orbital would be like $s$ (a sphere of one sign), then would go three $p$-like orbitals (each with one change of sign), then five $d$-like orbitals, and so on. Look at the lowest energy levels of $C_{60}$ (pictured), or any other fullerene, for that matter; they would go just like that - one, three, five... (With any other fullerene, the correspondence would be approximate; with $C_{60}$, because of its high symmetry, it is exact). And of course, when we count the electrons up to the $n$'th level, we get $2n^2$.

Sounds good, does it?
Well, it just does not work. There are too many crude approximations on top of each other. Most importantly, when we get all the way up to the HOMO, our eigenfunctions start changing sign too often, so we can't any longer pretend that the surface of a fullerene is continuous. Consequently, the pattern breaks and all conclusions fall apart.
One might point out that pretty much any rule in chemistry is like that, including the Hückel's rule itself. It is also built of crude approximations, isn't it?
That's right, it is, but there is a huge difference, too. Hückel's rule works. Hirsch's rule doesn't. The former predicts the outstanding stability of benzene, and not-so-great stability of cyclooctatetraene, and that cyclopentadienyl would prefer to be an anion, and so on - and they all obey. The latter predicts... well, see for yourself.
What are the magic numbers of electrons for the presumed spherical aromaticity? $2,\,8,\,18,\,32,\,50,\,72,\,98$ and so on. The first five are too small for a fullerene, so ignore them. 60 is not magic, so one would expect it to be unstable. WRONG. It is pretty stable. The paper you mentioned says it is strained. Now what was that about? Of course it is strained, as are all fullerenes and nanotubes; if you don't strain that $sp^2$ carbon, it would just form a flat sheet known as graphene. But what in the world does this have to do with [anti]aromaticity? Think again of the old good Hückel's aromaticity. Think of the cyclopropenyl cation; is it aromatic? Positively yes (pun intended). And yet it is like ten times more strained than fullerene. Aromaticity and strain are totally unrelated things; if people bring up one of them to judge the other, they are either clueless or deliberately misleading, even if they managed to get a paper published in a peer-reviewed journal.
Antiaromaticity, if anything, is about having a half-filled HOMO and thus being prone to Jahn-Teller distortion, radical reactions, and other unpleasant things. Is this the case with $C_{60}$? Look again at those energy levels. Look at the completely filled HOMO, and the completely empty LUMO, and that huge gap between them. Look and think twice before calling this guy antiaromatic.
Now comes the "magic" number 72. That would be $C_{72}$. Does it exist? Well, yeah, it kinda does, like any $C_n$ where $n$ is even and $\ge70$. Is it particularly stable? No, it does not seem so; it is way less abundant than the smaller $C_{70}$ and the bigger $C_{76}$, which themselves are way less abundant than $C_{60}$. Also, starting at $C_{76}$, the fullerenes would have multiple isomers, and as soon as $C_{80}$, we find an example where one isomer is unstable for electroniс reasons (antiaromatic indeed, if you'd like) and the other is stable. So the stability is not determined by the number of electrons alone, after all.
Now what would you call a seemingly reasonable rule which works $\bf{0\%}$ of the time?
Comment: Thanks for the information. Hirsch's rule was causing a lot of confusion for my understanding of aromaticity in general.
Comment: Another aspect is that you cannot render a spherically symmetric shell with a finite number of atoms.  The best you can do is icosahedral symmetry.  Under icosahedral symmetry the "s", "p" and "d" orbital combinations retain their relative energy ordering and the full degeneracies of the "p" and "d" levels.  In that sense $2, 8, 18$ could be magic numbers.  But when you get to the "f" level the icosahedral symmetry allows splitting which destroys the pattern presumed by the Hirsch rule, so the true Hirsch sequence stops well short of where it would become relevant for fullerenes.


Heat pump - outside unit fan not running

Question: we recently had an ice storm in the DFW area. Our outside unit is in a shady area that hasn't completely thawed out yet. Therefore, we have significant ice around the unit (and even inside) that hasn't melted. The unit is heating the house just fine but the fan isn't running and frost is building up on the outside coils and on some of the piping inside. What could the problem be?
Answer: Sounds like your defrost cycle isn't kicking in.  There is a defrost circuit in most newer units that controls that cycle, in which the unit runs in reverse -- literally taking heat from your house to defrost the unit.  I'd turn it off ASAP if that's the case since it's just wasting electricity and call a tech to have a look and possibly replace the circuit board.  Tell them what's going on ahead of time and maybe they will have the part with them when they come out!
Comment: I talked to a professional and he said turn it off and try to get it all thawed. He agreed that it might be a defrost circuit but said it may correct itself once thawed...
Comment: Are you going to hit it with a heat gun or something to thaw it?


Jazz comping rhythms for piano

Question: I am a piano player but am new to jazz; I am classically trained. I have recently began playing jazz however and was curious as to what rhythms to use for comping. I know the rhythms are on off beats and down beats but I am not sure where to start.
Comment: This video is perfect for you: https://www.youtube.com/watch?v=cIqrGZDz2to
Comment: Could you edit the question to narrow it to tunes with swung 8ths? Bossa nova and Latin jazz are different beasts and would deserve a second question.
Answer: Here are the basic jazz comping rhythms for 4/4 time with swung eighth notes.
The Dotted Quarter Rhythm
This rhythmic pattern can begin on beat 1. It is often repeated over two bars, but not always. Notice that the first chord is sustained, and the second is not.

It also sounds great to displace this rhythmic pattern to later beats, including the up beats:

There's no limit to which beat you could begin this pattern on.
The Half Note Rhythm
Like above, this pattern also involves comping with two chords per bar of 4/4 time. Liked before, you can start this pattern on any beat, but it really sounds good when played on the up beats. In this pattern, the two chords are usually quick "jabs" that aren't sustained and can be played staccato.

Four to the Floor
This is a classic style often attributed to Freddie Green. It's characteristic of an older style of jazz. It entails playing a chord on every down beat.

Two Eighth Notes
Another common rhythm is to play chords on back-to-back eighth notes, starting a down beat. This is a very flexible rhythm that can be combined with other patterns. I've shown a couple examples below of how you can apply this.

Longer Patterns
Longer comping rhythms also exist. These can be helpful to practice when you're starting out. Here are two good ones to begin with. You'll probably notice some of the elements above appearing in these longer patterns.
Comment: Some of common approaches to comping are: (1) play a set rhythm (like one of the examples shown above), (2) play "in the cracks" (where you use chords to fill the spaces between the soloist's melody notes), (3) block chords (where you play a chord with each melody note being improvised--this approach is usually only available when you're comping for your own solo), (4) lay out (where you don't comp at all), and (5) play polyrhythms (this is often done in concert with the drummer--be careful not to overuse it or extend the polyrhythm too long, or you risk distracting from the solo).
Comment: In your second image, I think that notating the hit on beat 3 as a quarter note would be more legible. Something like: `  .   `, with a staccato if you'd like. A similar situation in the first bar under "Two eighth notes."
Comment: Thanks, @Max--this is something I've always been weaker on. Is there a guiding principle that I can have in mind for situations like this? When possible, show the downbeats? If that's the case, would it read well to end the bar with an eighth note rest followed by a quarter note rest? Also, how did you create that music notation--very cool! (Also, it looks like some of the stems on quarter note slash chords are missing--I'll have to fix this too.)
Comment: For writing swing, the rule I was taught in jazz school was "Don't write an eighth-note rest (or dotted-quarter rest) on an upbeat." (Furthermore, we were advised to avoid writing dotted-quarter rests altogether, since a quarter rest followed by an eighth rest tends to be easier to sightread.) In cases where you want to, a staccato is usually more readable. I made the little notation by copy-pasting from here: https://www.alt-codes.net/music_note_alt_codes.php
Answer: When I studied at SJS (SwissJazzSchool) we had to write all combinations of 8/8 in a bar e.g. 111311 and notate them singing and counting the rhythm in swing: daba daba-a-a daba etc. da was on- and ba was off beat. I found this was a very useful, helpful and creative task.
Then the same exercise analog with 16th notes, all possible combination and variations, the sum is always 8.
This practice enables you to sight read any binary rhythm.
Edit:
The problem that musicians with a classic education have, are not the problems of learning comping patterns but performing the right groove with a perfect feeling.
That's why you have to listen a lot to other jazzers analysing their playing singing along with daba daba dabap bap bap etc)
The
Comment: I don't think so. You don't understand my philosophy. You've given in your answer - which I've voted up - some examples how a beginner could start reading and practicing rhythms. e.g. 4/4. In my answer this would be: 2+2+2+2 (the elements of the sum 8). This makes also sense as you can develop a system of stage and sequence. But you're expecting that a beginner can read the rhythm and play it.
Comment: My approach is to give the student the material or elements to construct, invent his own ideas. This is fundamentally different but leads also to a success. Yours is imitation - a selection of youtube videos would be appropriate too - mine is analyzing, constructivistic, problem-solving. Yours is playing by reading, mine is reading by writing and seeing through. Your 1st. example e.g. supposes that a beginner is able to decipher the notated off-beat and also to interpret it as a swing or advanced accent (beat or stop). But I didn't think  to criticize or downvote it as it's helpful too anyway.
Comment: I really appreciate the thoughtful explanation. This is something I'll continue to think about. I think I interpreted the question to be "What are the standard comping rhythms?" (which I think is a finite, answerable question--many jazz piano teachers and books will offer such rhythms). It seems like you're interpreting the question to be "What is the best way to learn comping rhythms?" I tend to think of these as two different questions. The former question might be useful to a jazz piano *teacher* who may later come along and want a quick reminder of the main comping rhythms.
Comment: The question asks for comping rhythms. The information you've shared is useful, but it doesn't attempt to answer the question that has been asked. I think it's better suited for a comment.
Comment: I do think the question "what are the main comping rhythms" is valid to ask, and it's valid to have an answer to *that* question, without assuming that all readers are seeking the best way to learn. That's why I thought your answer was really insightful and extremely useful, but still not an answer to the question that was asked. I'll keep reflecting on this, though. It's totally possible I misinterpreted the original question. Thoughts on this?
Comment: I agree with you that your answer is focussing what are the basic rhythms to accompany in jazz. And I think you are right  eith this interpretation. I also have to admit that I have overlooked or forgotten that OP is experienced in classic music and so he won't have problems your suggestions how to start. (s. my edit). I appreciate your precisions too.

Jazz comping rhythms for piano


Using the Pi as a remote server via iPhone

Question: I have a external hard drive connected to my raspberry Pi that contains videos.  Is there a way I can set it up so that I can remotely view these from my iPhone?
Comment: The *DNLA* represents a cross-platform protocol for sharing digital media on a network.  There is at least one DNLA server for raspbian, "miniDNLA" and no doubt oodles of DNLA clients for iOS.
Answer: To view video files in your Raspberry disk from your iPhone, you should install DLNA server onto operating system that runs on Raspberry Pi and DLNA client onto your iPhone.
I can suggest miniDLNA as server that @goldilocks suggest too. I assume that youre using Raspbian, so i will tell the Raspbian way of installing miniDLNA.
apt-get update
apt-get install minidlna -y

After install finished you have to configure the minidlna server. Server uses /etc/minidlna.conf file as configuration file.
Open /etc/minidlna.conf and change the media_dir value. (Example of my media folders like below.) Comment default value then add your values. (A = audio folder, V = Video folder, P = Picture folder)
media_dir=A,/media/MAXTOR/Mp3
media_dir=V,/media/MAXTOR/Movies
media_dir=P,/media/MAXTOR/MyDocs/Photos/
media_dir=V,/media/SAMSUNG/Belgesel

You can change listening interface, port, serial number, log level and other parameters in the config file.
Then you have to restart minidlna server with that command.
/etc/init.d/minidlna restart

On iPhone you can select any minidlna client app to install. I use that one https://itunes.apple.com/TR/app/id410280827?mt=8&ign-mpt=uo%3D4
After installing the app on iPhone, be sure you're on same wireless network with DLNA server, search the network and find your DLNA server and media folders to view.


Turn Off Calendar Alerts for Certain Calendars

Question: I have several calendars that I need to view an access, but I don't necessarily want the alerts coming in for all of them.

Is there a way to turn off all other notifications except my account (in green above)?  What about per calendar?
They are all Gmail accounts if that helps.
I have already tried this setting but it didn't make a difference.

I have also looked at the notification settings on each calendar in Gmail, which are showing No reminders set
Answer:
Open Calendar on your Mac.
In the left column list of calendars, right click (or command-I) on the calendar in question and "Get Info"
Check the box labeled "Ignore alerts"
Hit "OK"


Redundant routers (HSRP, GLBP, ... ) with single T1 circuit

Question: I have two sites connected by a T1 circuit.
Currenlty I have only a single router on both ends, but I would like to add redundantcy, HSRP, GLBP, or simular in case a router fails (see picture).  Is this possible since I only have a single T1?  Is there anyway that the two routers can connect to a single T1 to provide a redundant interface?
Comment: The T1 is more likely to fail than the routers. Save your money.
Comment: No, you have a point-to-point circuit, which means that there are only two endpoints, not the four you are wanting
Comment: If one of the routers fails what do you imagine will be forwarding traffic if there's only one router per site?
Answer: Your main problem is that T1 is point-to-point and you can't terminate it twice, as Ron M. has pointed out. You'd need some kind of hardware switch and set up some router monitoring that toggles the switch.
Depending on the router and line failure rates, it's probably not worth the trouble, as Ron T. has pointed out.
For real redundancy, you'd need a second, independent site-to-site connection and then you can set up failover based on router or line failure.


Show login prompt on boot

Question: I have run into an issue where I restored my MacBook and lost the SSH private key to my Raspberry Pi, so I can't ssh back into the device. I would like to restore SSH functionality, but when I start my Raspberry Pi and go through the verbose boot screen, it automatically logs in and goes to a blank screen. How do I fix this issue and restore access to my Pi?
Comment: What do you mean for "private ssh key"? As long as I know for ssh connection you need just Pi's username@IPaddress and Pi's password. What is the output if you try to connect like this to your Pi?
Answer: Here's what I would do.
Install a Debian or other Linux Virtual Machine on your Mac (VirtualBox is good for this). You'll need this to access the Linux-formatted filesystems on the SDCard.
Shut down the Raspberry Pi and remove the SDCard.
Insert the SDCard into your Mac, and load the VirtualBox VM (and install Linux on it). Then follow the instructions here to solve this exact problem by mounting the SDCard under a Linux VM and editing the authorized_keys file or sshd_config.
Comment: Both yours and Jacob's answers were great, but I felt this one was a bit more accurate from start to finish with regards to Mac OS X not being able to read the /home directory.
Answer: Since you're using a Mac the solution is relatively simple.

Take the SD card out of the Raspberry Pi and put it into your Mac.
Find the file, /home/pi/.ssh/authorized_keys, on the appropriate partition
Delete the old public keys listed in the file
Add your new public key
Unmount the device from your Mac
Plug it into the RPi and plug it back in

edit:
It appears that I'm misinformed of the capabilities of MacOS. Looks like your best option is the same one given to Windows users. Download VirtualBox, and follow the same instructions, but from Linux instead.
Comment: I plugged it into my computer but there is no home directory. Bunch of files like kernel.IMG, cmdline.txt, and other executable files.
Comment: @uioporqwerty: You're looking at the first partition of the device. I'm not a Mac user, but I was under the impression that a Mac could access both partitions, unlike Windows.
Comment: @uioporqwerty: If you can't even access the second partition via the terminal, you should probably follow the above steps using a Linux virtual machine.
Comment: OS X cannot read `ext4` partitions. You used to be able to use 3rd part ad-ons, but even this does not work on `El-Capitan`
Comment: @Milliways: Yup, looks like I'm more or less just completely misinformed...
Answer: Try Ctrl + Alt + F2 to go to other session.

Show login prompt on boot


How should I install laminate without removing the baseboard?

Question: I will be installing the laminate with the baseboard intact, do I lay the laminate right next to the baseboard? Or do I still need to use the spacers?
Answer: You should remove the baseboard, install the flooring, and then reinstall the baseboard. At least that's how I do it.
Most people leave the baseboard in place, and cover the expansion gap with quarter-round or shoe molding.  If you're going to do it this way, you'll have to leave the manufacturer recommended expansion gap between the flooring and the baseboard. Than as I've said, you'll cover the gap with quarter-round or shoe molding.
Answer: First the manufacturer will tell you how much of a gap you need to leave.  Read the instructions and follow them.  Also for laminate your baseboards should practically sit on it.  I would need to see pictures of what you are currently doing but we almost always remove the baseboards.
If you don't want to remove the baseboards then you will have to install some additional molding to cover the gap on your current baseboards.  This is less work than taking off the baseboards but higher cost - materials and paint.
Answer: When I installed mine, I kept the baseboard in place. I then purchased spacers and used those to maintain the gap. Virtually every laminate floor requires a gap to expand as conditions change.
After all the flooring is installed, installed quarter round trim to cover the gaps.
Answer: The preferred way to install flooring is to first remove the base molding, and then re-install it over the top of the finished floor. Any flooring material to a certain degree requires room for expansion and contraction. Installing the base molding over it would have the best chance of not having a noticeable gap in the flooring.
If removing the molding is not an option, the base molding can be undercut with an oscillating saw to allow the flooring to slide under it. Using a scrap piece of flooring, go around the perimeter of the room and mark the height of the flooring with a pencil. Then you can use an oscillating saw to carefully cut out the piece of baseboard. You may need to use a small pry bar to remove the piece.
You will most likely still need to install a piece of shoe molding after the floor is installed to completely cover the gap, but undercutting it will have a cleaner appearance than just butting the flooring material up to the baseboard.


What's the name of the font used in alphanet?

Question:
What is the name of this font? I have checked in many sites but could not get a proper answer.
Might be this the same font used in oracle logo.
Answer: Because this wordmark also reminded me of the Oracle logo, I searched for a rough free equivalent and landed on Promethean:

Clearly different, but gets you in the same ballpark at least.
Note its license...free for personal use only.


There is this strange white growth around the outside of my pot plants

Question: So, recently we have been conducting an experiment in which we have had to try and grow bean plants while using fertiliser to compare which fertiliser is the best in terms of growth. Over three weeks we have discovered some sort of white mold on the outside of the pot plant therefore making it not grow. We are despearate for answers as we have to talk about what went wrong with it. The fertiliser we used was Hortico all purpose compound fertiliser. Thank you]1
Comment: Well I'm very puzzled by this experiment - it is absolutely not usual practice to use fertilizers of any sort until a seed has germinated and become a small plant. The beans seeds should have been sown  into starter (seed and cutting) soil and allowed to grow on a bit (maybe 6 pairs of leaves) then potted up and then a little fertilization started. You've got fungus because the soil's been kept too wet... and what soil you used (as in where it came from, like out of a sterilized bag, or the garden) is a major factor. Were you told to use fertilizer immediately on sowing the seeds?
Comment: Yeah you got some mold; not necessarily the reason your plants didn't grow but not typical of a healthy environment for them. I would chock it up to bad luck. I am assuming every plant got watered the same amount at the same time? If that's the case then yeah, like I said: chock it up to bad luck. The soil you used for these two had some fungal spores in it.
Comment: Looks like a slime mold. Does it move? http://hyland255.blogspot.com/2010/04/dictyostelium-discoideum-for-this-final.html
Answer: Another suggestion is that this is merely a crystalline deposit from the fertilizer in solution. Note that the deposits are not only on the soil and the pots but also on the plastic lids used as trays. Look carefully and you will see the very bottom of the pot is clear of deposit for about 0.5 cm. and then it starts. That's about the depth of the lid. As the water evaporated from the lid surface it left behind the solids in solution which grew crystals.
(Edit: A scientist of course would examine the growths under a microscope to see if these are crystals or fungus. A quick and easy test is whether they feel hard or soft. If soft they will be fungus, if hard sharp and scratchy then they are crystals.)
When the fertilizer is supplied to you it is in a mix; when it is wetted it breaks up into component parts, some of which may individually reform as crystals when evaporated. It used to happen on clay pots when these were commonly used - the water would evaporate from the pot sides leaving a deposit behind that was hard to wash off.
The deposits on the inside of the pots above soil surface are evidently profiting from capillary action on pre-existing dirt, possibly from pots not washed and thoroughly cleaned beforehand.
It's a good experiment. Just change the goal from how plants respond to fertilizer to how to grow crystals using the capillary effect and evaporation. It's a learning moment.
Comment: Possible but fungi is an exo-digester; it can't make its own food. One of the ways it gets food is to grow. It can reproduce in order to grow but virtually all growth occurs by elongation of hyphal tips; it grows like frost on a window. In other words it is kind of dumb XD it doesn't know if there will be food out there on the outer edges of the petri dish but it looks for it anyway.
Comment: I love this bit of information Rob!  Beautifully described.
Comment: @Colin I do not think these are salt crystals.  Fairly positive this is a fungus, there are a few that look just like this.  Also, using water from the city municipal water treatment will cause salt deposits.  That is usually just a white powdery coating on top of the soil and the rims and sides of clay pots.  These are plastic pots, this stuff is just a very happy fungus.  Not a bean in sight.
Comment: I have put forward another possibility, that's all. Crystals can form when the concentration of the irrigation solution is right. There's an easy test, which could resolve this issue. There are some observed details not easily explained by the fungus proposal.
Answer: This is just regular fungus among us.  You've been watering too often and too much.  This has absolutely nothing to do with fertilizer.  I have to ask, what kind of soil are in these pots?  Sterilized potting soil?  No?  If you got soil from your garden this is where the fungus spores originated.
This 'test' is interesting to be sure.  NPK are the three major chemicals critical for photosynthesis.  Soils do not come with these chemicals unless we add them. Compost is not fertilizer.  Compost is not soil.  All plants in pots have to have sterilized potting 'medium'...very little soil if at all included in potting 'soil'.  Whether planting in sterilized potting soil or planting in the larger body of the out of doors garden, we are responsible for adding just the right amount of chemistry from production by the plant on our time scale to fill our needs
You might have gotten a shovel full of fungal spores, clay soil that holds onto moisture way too long.  Doesn't really matter how the Nitrogen or the Phosphorous or the Potassium was 'manufactured'...these are elements that are what they are where ever you find them.  We humans can do a lot of things but remaking elements and compounds is not one of them.
Nitrogen is Nitrogen.  Phosphorous is phosphorous and Potassium is potassium.  I'd like to see what you would come up with when you research the ingredients in your 'fertilizers' first and explain why one would be different than a comparable yet different brand.  There is no Magic in fertilizers.
For you to be able to do a bonafide experiment, you need to be able to control all variables.  Soil.  Water.  Light. Temperature.  Chemistry. Drainage. One should know how to grow plants first before trying to do experiments with plants, grins.  Any experiment should have sterilized environment, mediums/soils.  I'd like to have a discussion with your professors. It seems almost that you were set up to fail, plain and simple. There seems to be an amazing amount of water accessible to these plants.
Growing seeds, trust me, should be done in tiny pots with sterilized potting soil.  I use a spray bottle to keep just the soil around the seed moist, not soggy.  When the plant gets larger the roots start to fill the soil and help suck water out of it.  Never plant seeds in big pots of soil.  Pots of soil are nothing like the large body of an outdoor garden.  Tiny plants in a large body of soil medium confined in pots will usually get root rot or damp off.  Seeds should be started in tiny pots, when roots show through the drain holes, transplant them into less tiny pots, add a bit of fertilizer at this point, not before, then in a week or two transplant into larger pots with sterilized potting soil of course or take a few weeks to acclimate your 'starts' to the real sunlight and plant them in the main body of your garden.  That acclimation is critical.  At this point I would be looking at the plant's coloring, growth habits for indications of excessive or too little chemistry available to your plant.  Then devising a prescription of fertilizer made just for that plant.  Summer and late season I like 2-5-4 Growilla.  Just enough for most plants needing more photosynthesizing prowess during the second half of the 'normal season'. Hortico seems fine for a basic fertilizer formulation.  What was the other 'brand' involved in your experiment?
Sorry, (looking down in shame) but this little ditty of mine concerning fertilizer works, ugh! Less is Best, More is Death and None is Dumb.  Might not be very clever but the point should be clear I hope?
Where are the bean plants?  Too wet, too little sun, very favorable for fungus.  Not so much for plants.  Sorry!
No one 'fertilizer' will have magical properties over another brand. Nitrogen is Nitrogen?


does origin re-download games for each account?

Question: if origin accounts game's ID are linked to the game on the hard disk, if someone new used a computer and had the game in their library would they have to re-download it to play or would it just use the one on the disk?
Comment: I'd be very surprised if they shared it, an easy way would be to check the file structure of origin.  If the OriginApps folder contains anything regarding a Username before the game files, it will likely redownload. If it is in a common folder, it could share it potentially.
Answer: Origin shares installations, but I only tested it with Mass Effect 3. One person has regular, the other collector's edition. The only additional download was the collector's DLC. Upon returning to the account with the regular version, no reinstallation was necessary, the game just informed that some installed features are disabled.


Enable using navigation system while moving on 2013 Toyota Sienna

Question: I am looking for a code or some way of unlocking the Toyota navigation so that my passenger can type in destination info into it while the vehicle is moving. Can't enter anything into the navigation system when the van goes above 5mph. There is no law in Missouri to block this, so I would like it unlocked. Toyota says tough. I replied by saying that I guess my passenger would have to whip out my Garmin or paper map when I get into an unsafe area or can't pull over to the side of the road because there is none. The buyer of the vehicle should have to right to decide to use it or not, it's not Toyota's decision. Anyone have any answers? Thanks in advance!
Answer: Apparently you simply cannot unlock it. If you hunt around on forums, you'll see it was, and still is, a pretty big discussion topic. For example, from this discussion about the 2011 model (product links removed):

jsrober writes:
Yes, that topic has been discussed to death. Just about everyone hated that "lockout" feature in Toyota's GPS system... however, Toyota swears by it. The "older" generation has a hidden "unlock" key to enable the GPS to work while driving but, of course, when Toyota updated their system they promptly rid of that hidden key. The only way to use it while driving now is to install an aftermarket device for about $300.

The user Luu posted a response from Toyota on the issue, here is a rather unsatisfying excerpt:

We are sorry to hear of your dissatisfaction that many features of the navigation system in your Sienna are disabled while the vehicle is in motion. Our intention is to help avoid a situation in which the system may distract a driver and endanger lives. While we understand that it would be useful for front seat passengers to able to operate the navigation while the vehicle is in motion. However, if the front seat passenger was allowed to operate the system when the vehicle is in motion, there is no integrated safety system to prevent the driver from also being able to do so due to the current design of the passenger occupant detection system whereby a driver could place sufficient weight on the passenger seat to simulate the presence of a passenger.

Topics on other forums follow the same path.
In fact, this issue is apparently so annoying to consumers that there's even an entire website dedicated to protesting it.
That said, it seems folks have discovered a means to bypass the system on certain newer models (I also found this, a hack to tricking the system into thinking you are parked). I cannot say if that works on older models.
With some patience, luck, and engineering finesse, you might be able to dig into your own system to try and discover exactly how speed / lockout information is communicated from the vehicle's sensors to the navigation unit and find a way to intercept it. However, if it is GPS based info and internal to the unit, that may not be possible.
It pretty much appears you're SOL unless you go with an after-market system, or the newer model hacks work for the older vehicles.


Virtually grounded negative input op amp exists but no virtually grounded positive input. why?

Question: If the positive input of an operational amplifier is grounded, the negative input is said to be virtually grounded and it has therefore zero potential.
But the contrary is not true. A grounded negative input doesn't make the positive input virtually grounded.
Why?
Comment: Similar Q -> http://electronics.stackexchange.com/questions/107249/operational-amplifier-virtual-ground
Answer: It's negative feedback and high open loop gain that creates a virtual ground. You don't get negative feedback to the non inverting input of any differential amplifier; you get positive feedback and this does not create a virtual ground.
You can add an inverting amplifier after a differential amplifier and this, in effect, swaps the pin which will become a virtual ground when negative feedback is applied.
Answer: For your answer, you have to go back to basic op-amp theory.
When you provide negative feedback to an op-amp, you make the negative input track the positive input as closely as possible.
Now tie the positive input to ground.  The op-amp feedback is going to try to keep the negative input at that same potential: ground.  Thus the name: Virtual Ground.
Note that when you inject current into that (-) node, the op-amp's output drives the feedback resistor to keep the (-) input at ground.  This property is used to create a summing amplifier, where multiple currents can be summed into that node to create a voltage output that represents the sum of those currents.  This configuration is called a "Virtual Earth Summing Amplifier".
Most analog audio mixing consoles use virtual-earth summing amplifiers for their mix busses.
Finally, note that it DOESN'T have to be the the (+) input grounded and (-) input as the virtual ground.  If your op-amp has an inverting stage after its output, you could quite easily take your feedback from the output of that inverting stage rather than from the output of the op-amp.  In this case, the (+) & (-) inputs swap: the (-) input is grounded and the (+) input is the virtual ground.
Do note that you have to take into account the phase margins of both stages when you cascade stages in that manner.
Answer: Your premise is wrong. You can have an op-amp with negative input grounded and positive input at virtual ground. There has to be an inversion of the output before the feedback gets to the positive input.
This is a common situation in loop-powered instrumentation. Below is one example (U2), but there are many others, including many of my designs.

If the output of the op-amp goes higher, the MOSFET Q1 turns on more, which draws more current from the "loop power supply". The voltage across the 10\$\Omega\$ sense resistor becomes more negative, which results in negative feedback through the non-inverting input of U2 (via R2).
(R6/Q2 prevent U2 from driving the loop current beyond about 26mA- which is when the voltage across R6 gets to about 0.6-0.7V (enough to turn Q2 on). This is kind of a pathological condition that is being protected against- not part of normal operation- if Q1 turns on too much the supply voltage can be compromised.)
You can see that if the inverting input is at 0V (virtual ground), and the DAC output is at 2.5V, the total current flowing from R1 & R3 is 2.5V/(R1 || R3) = 9.96uA. That means that the voltage at the sense resistor must be -248.0mV and thus the current must be Iout = 248.0mV/(Rsense || R2) = 24.81mA. You can figure out the DAC codes required for minimum scale (4.00mA), maximum (20.00mA) and mid-scale (12.00mA).
Comment: Thank you for you answer. More insight into the given example would be informative.
Comment: @yurihbss See edit above.


Identifying whether ELISA kits are authentic or fake

Question: What methods can be used to determine whether they are authentic or fake?
Answer: You are getting this Elisa Kit spam from China, too? The only way I see, would be to use a known reference standard so you can titrate both the specificity and the sensitivity of the kit. Ideally you would compare it with a known and proven kit. If you have the reference available in the lab and the cheap kit is not too expensive you can give it a try. I would do it, since work time and reagents also cost money.
Comment: the problem is, one of the reasons these kits are so expensive (at least the ones from reputable companies) is because they spend time and money to make sure the kits actually work and give reproducible results. For me, if I don't trust the quality of the supplier, why would I even think of possibly compromising the integrity of my data with substandard reagents?
Comment: Its the same for me. I don't order from suppliers where I am not sure about the quality. We routinely test substances from cheaper companies but there we either get tipped by colleagues or the stuff is so much cheaper, that we can give it a try. I don't see this for Elisa kits. And even if one batch is ok it doesn't necessarily mean that the next is as well. From the known suppliers we can be sure.
Answer: Just a few direct ways can figure out whether Elisa Kits are authentic or not.

Proposing to visit their factory. Generally bait company does not agree with it.
Complete range of kits. If a company has every and each ELISA Kit, it is usually fake. Unless they are very large  and professional companies, such as abcam, cellsignal, sigma, sabbiotech and so on.
See the price. If prices are ridiculously low, but in the name of large companies such as import R&D raw materials packaging. This ridiculously low price can't even afford the raw materials, which company will sell at a loss?
Answer: This problem is rampant and has been plaguing the research community for a decade. I can explain how exactly do these companies make these fake kits, how to experimentally verify what I said is true, and how to spot them by just looking at their website. I can even point fingers and name a few known and notorious companies that do this malpractice. What I ask from anyone who reads this is to recognize that these companies are the bad apples in Chinese companies and you shall not generalize all Chinese biotech companies. Generalization, not a good thing, and I trust all the years of training in scientific critical thinking has taught you better :)
Now how do these companies make fake ELISA kits? Simple. They use a universally present protein target, initially TGF beta--I do not know what they have shifted to lately--to make one type of ELISA kit, and label it as anything and everything.
How to actually prove it? Run a western using a trusted third party antibody. If nothing shows up, you know the standard is not what they claim it is. Or you can also run a third party recombinant protein on the kit. Same core concept.
Do not want to bother with all that? Then just keep an eye out for this signature: one company that has thousands sometimes tens of thousands of ELISA kits, covering all kinds of species--sometimes ridiculous ones like whales, giraffes, tadpoles, sharks etc.--nothing against giraffes, they are awesome and all but seriously... These companies are literally like Noah's Ark. How can one company you never heard of come up with so many ELISA kits while established companies who have been making kits for decades are dangling on the level of hundreds or thousands?
Maybe, one thinks, that someone went hard core and just made them all, that maybe this is real? After all there are no other choices, they are the only ones selling this ELISA kit, wouldn't hurt too much to give it a try...??
And that is why these companies still exist today. That is why so many papers got pulled, and so many clinically promising indications turned out to be false. That is what cost millions of dollars of tax payers money.
At the end I want to point out that, if researchers did their due diligence, or if there are some more effective forms of media where researchers can get information like this, these companies would have died a decade ago. Instead they just keep coming up with different company names and pulling the same scam.
I want to put examples of these companies by directly referencing their names but I am not sure about the forum rules would allow it so for this post, I would not do so. The signature described above should be clear enough for you to spot these companies. Wish you all the luck in 2015.


How do estimate the time line to an Research and Development task

Question: What should be the main point to keep in mind when estimating the time for Research and Development task. Suppose I have to estimate "ABC" task using "WPF" technology and I have no experience for it, I need to some R&D for it.
Comment: I'm voting to close this question as off-topic because it's not about programming
Comment: This not what would be typically called `"R&D"`, more a matter of estimating a job and including time for the learning curve on a given technology.
Answer: Don't give an estimate until you have had time to play with the technology. Allocate a certain time (2 days, 1 week, whatever you can get from management) to understand the concepts and write some code yourself with it, to get a sense for what the development process takes and how steep the learning curve is. Then, estimate.
Comment: I think that, too often, we are required to provide estimates on tasks for which we have a great deal of uncertainty about the technologies to be involved. This is the case, for example, of government grants and other non-technical scenarios. See my response for additional details.
Comment: Seems I got some downvotes here, would love to know why!
Answer: Pure Research Projects
Set a time or resource cap in addition to a number of interim milestones / reviews, to re-evaluate whether you can afford to continue. Ideally before embarking on the research you will have a good idea of potential benefits of succeeding. You might also want to define different grades of success and a contigency plan in case the effort will not come to fruition, before you start.
Spiral model of development will come handy.
Applying Existing Technology to a Problem
For current mainstream technologies such as WPF you might try to find out how long would it take for someone with comparable experience to learn the technology. Evidence might be collected from other people experience and available training courses.
For non-current or niche technologies you might be better off hiring a consultant or sub-contracting the job (bear in mind the difference between consultant and contractor).
Grade the project on
Keeping Status Quo - Bug Fixing - Enhancement - New Functionality - New Product - Revolutionary
scale. Each position on the scale will usually mean a factor of 2..5 of risk and effort increase. Having a reference point which is to say if it normally  takes 2 days in your organisation end-to-end to fix a bug, you can gauge that an enhancement will take two to five times longer, anything between 4 to 10 days, of course coding will only be a small proportion of the this effort.
Answer: Ideally, one should not give an estimate without solid evidence. After all, an estimate is a probability, and probabilities are mathematically significant figures, not gut feelings pulled off thin air. (See "Software Estimation" by Steve McConnell for more on this.)
Unfortunately, too often we are required to provide estimates on tasks for which we have a great deal of uncertainty about the technologies that will be involved. This is the case, for example, of government grants and other non-technical scenarios. In these cases, and being pragmatic, it is good to provide an estimate even when we are not familiar with the technologies.
Techniques that I often use include uncertainty cones and timeboxed development.
Hope this helps.
Answer: The best way to approach it is consult with someone who has been there already.
His experience plus general idea of of good he is compare to your staff should give you a fair estimation.
The older the technology is - the more experienced people there will be around and more places on the web to find answer to question.
If you're researching something brand new... the data sources should be limited and I will take any estimation, and double it....
Answer: You could take a guess as to how long you think it'll take you to research the new technology and then how long it'll take for you to do the development and multiply that by two.  Of course that's pretty fluffy, but usually anything involving estimating a task is pretty fluffy (well, at least I don't like to).  There are so many factors involved when estimating: whether it be dealing with new technologies that could be take longer than you think, usually it involves dealing with code written by other people which could add an 'x' factor of complexity to what should be a simple task.
Usually when estimating time, it's always best to at least have a general 'spike' where you sit (whether it be by yourself, or even better with some other team member) and have a play for an hour or two (or however long you choose).  This at least gives you a bit of time to have better context with what you're dealing with.  When looking at the new technology, perhaps read a bit of the doco, read and play with a 'getting started' guide etc.  Then when you go back to the estimation table,  you will have a better idea with what you're dealing with.


How are the Seven Purifications (satta-visuddhi) practiced in daily life?

Question: What are the 7 Purifications in laymans terms and how is this practiced in daily life?
Comment: I noticed you've tagged this question with Theravada, so I assume you are only interested in this from a Theravada point of view (and not Mahayana)?
Comment: Not really. This is inclusive of any other branches but at least one answer from some one from the Theravada perspective.
Answer: This book is focused only on this question:

The Seven Stages of Purification & The Insight Knowledges by Ven. Matara Sri Nanarama

Hope it helps.
Comment: Thanks. Is it would have been better if you could have made a summary here. But any great pointer.
Comment: I appreciate your comments. Some people object when I give a link without totally answering the question. I found a source that I thought would provide the answer but did not have the time to read the whole source and summarize. Thanks for the question.
Answer: The only sutta that fully explains the seven purifications is Rathavinita Sutta. It explains in full the seven purifications (SAPTHA VISUDDHI) taught by the Buddha:
see The Ratha-vinita Sutta: Relay Chariots  (MN 24; M.I,145).
The only place in the Canon where these 7 kinds of purification are mentioned is M. 24,, The Simile of the Stage-coach; There it is said that the real and ultimate goal does not consist in purification of morality, or of mind, or of view, etc., but in total deliverance and ceasing. Now, just as one mounts the first coach and travels to the second coach, then mounts the second coach and travels with it to the third coach, etc., in exactly the same way the goal of (I) the purification of morality (sila-visuddhi) is  (II) the purification of mind (citta-visuddhi) its goal: (III) the purification of view (ditthi-visuddhi) its goal: (IV) the purification by overcoming doubt kankhāvitarana-visuddhi its goal: (V) the purification by knowledge and vision of what is path and not-path (maggāmagga-ñānadassana-visuddhi) its goal: (VI) the purification by knowledge and vision of the path-progress  (patipadā-ñānadassana-visuddhi); its goal: (VII) the purification of knowledge and vision (ñānadassana-visuddhi) but the goal of this purification is deliverance freed from all clinging.
If you practice the first two of the seven purifications to the best of your ability, everything else will fall into place. The goal of  purification of morality (sila-visuddhi) is the purification of mind (citta-visuddhi).
The purification of mind (citta-visuddhi)  is towards cultivating a mind that does not to feel sorry, self-reproachful, or contrite for past conduct; regret or be conscience-stricken about a past action,  attitude,  etc. as one would repent after one's thoughtless acts. This is eradicating mind-defiling defilements that lead to suffering.
This leads to  purification of view (ditthi-visuddhi); This is a difficult one as the idea that truth always triumphs over power is one of those pleasant falsehoods. This idea that 'Truth Always Wins' was first coined by the Hindus. Today the Buddha Dhamma is lost to the masses. what they call as 'Buddhism' is  'adhamma' – a falsehood. Just compare todays views to the Sutta & Vinaya Pitaka, and you will find this out.
If you overcome this hurdle of purification of view (ditthi-visuddhi); its goal:
the purification by overcoming doubt (kankhāvitarana-visuddhi) – yet another big hurdle. So I wish you the best. If you are a person of humility, and always trust the original scriptures only, and makes this practice your one and only pastime you will succeed.