31 karma · joined January 21, 2011
"The backward error remains and those powers of 10 depend on that error critically."
You are totally, 100% WRONG. All you had to do was just READ what the heck I wrote. So far you have let your arrogance and resistance at believing something new to you keep you from just elementary READING.
So, return and just READ the post.
Or again, yet one more time, just for you this time, to repeat, to pound the head of the nail a half inch below the surface of the wood, for some positive integer n, consider a system of n linear equations in n unknowns. To this end, let A be an n x n real matrix, x be an n x 1 real vector, and let b be an n x 1 real vector.
So, the system to be solved is just Ax = b. Here we seek x.
Matrix A is assumed to be non-singular but otherwise may be horribly 'ill-conditioned'.
Assume that the numerical data is given in base 10.
Then for some positive integer m, all the components of
(10^m)A and (10^m)b
are just whole numbers. It is also permitted to pick a different m for each of the n equations, that is, each row of Ax = b.
This is the second time I've made this very elementary point. The point is correct, 100% rock solidly correct. All that is needed for the technique is that the components of
(10^m)A and (10^m)b
be whole numbers, and clearly, with total crystal clarity, the 'condition number' of A is not, Not, NOT
N O T
involved.
Twice now you've missed the VERY simple point. TWICE. And it's DIRT SIMPLE.
You continued:
"The backward error remains and those powers of 10 depend on that error critically."
Wrong. Totally wrong. Uninformed, misinformed, just plain wrong, badly wrong, totally off the subject wrong.
There is no such "depend" at all. None. Zip, zilch, zero.
If you are sober and paying any attention at all, which so far is doubtful, then you have just ASSUMED that you understand the technique and drawn totally wrong conclusions.
Maybe you just bitterly resent the idea of learning something new to you.
With 99% probability, you have missed the technique. Just MISSED it. You just didn't 'get it'. It didn't register with you. You totally missed it.
Once again, yet again, over again, just for you because everyone else in this thread long since 'got it', given the system of equations where all the given data is integers, we pick a list of single precision integer prime numbers. There are a LOT of such prime numbers, far, far, far more than there is any danger of our needing.
Then for each such prime on the list, consider the 'algebraic field' of the integers modulo that prime. In that field, the GCD algorithm is JUST how to find a multiplicative inverse.
Now, so armed with the GCD algorithm, use Gaussian elimination, essentially as usual, to solve the system of linear equations in the field of the integers modulo that prime. In this work, will need essentially only single precision integer arithmetic. The result will be just single precision integers.
A large condition number does NOT make anything about this use of Gaussian elimination more difficult.
Do this work for each prime on the list.
Then using the Chinese remainder theorem, we can assemble the exact, rational answer from the results from the primes. Of course the solution will be in the rationals, that is, a ratio of integers. In this case, the integers will be multiple precision. Finding these integers is nearly the only multiple precision arithmetic needed by the technique and is routine.
This is NOT a joke. It's rock solid.
It is true that we need an estimate of the number of prime numbers to have on our list so that the result of the Chinese remainder theorem will be correct and not too small, but this estimate is easy and, for anything like reasonable input data, is comfortably small, typically no more than a few dozen.
As I warned you, I will provide rock solid support for my claims at which time your uninformed objections will make you look like a fool before HN.
Actually what I am describing was worked out by M. Newman in the 1960s at the old National Bureau of Standards. He wrote a paper on the work:
Morris Newman, "Solving Equations Exactly," 'Journal of Research of the National Bureau of Standards -- B. Mathematics and Mathematical 'Physics', volume 71B, number 4, October-December, 1967, pages 171-179.
That is peer-reviewed mathematics from a quite good and fully competent mathematician.
He also wrote software to implement the technique and ran it on a Univac 1108 computer. It worked GREAT.
His paper shows how to find a sufficient list of prime numbers.
You have shown all of HN that you think like a FOOL.
Apparently you don't mind acting like a fool in public.
It is difficult to fathom how someone sober could have learned about condition number and backward error analysis yet fail to see the middle school point that
(10^m)A and (10^m)b
can be all integers, presented, now, TWICE.
Of course, the implicit assumption here is that the given data is in base 10. For a base other than 10, multiply by a power of that base. Then, no matter what the base, the multiplication is just some digit editing without actual multplication.
There is nothing naive, staggering or otherwise.
Where do you get off being so nasty while being so WILDLY misinformed? Your credibility is now in the toilet.
There are some worries remaining, but not from being naive or staggering. Likely the biggest worry is, if the matrix really is badly conditioned, then maybe we should not be too impressed even with the numerically exact results I showed how to find. So, instead, maybe we should have a range or distribution of results based on what additional digits in the given data might have been truncated or rounded off. For this we could consider interval arithmetic or some Monte Carlo.
Whatever, being able to solve systems of linear equations numerically exactly with just single precision arithmetic is a NICE tool to have.
Keep calling my description wrong, and I will drop on you, in front of everyone on HN, some rock solid, overwhelmingly strong support for JUST what I wrote, and you will look like a TOTAL FOOL.
Here is one answer. It is central in a technique to find the numerically exact inverse of a matrix using essentially only single precision, integer arithmetic.
How? Take the system of equations and multiply by some factors of 10 to make all the given numbers integers. For each number in a sufficiently long list of single precision prime numbers, solve the equation in the integers modulo that prime. Just use Gaussian elimination. Where in Gaussian elimination have to divide to get a 1, just use the multiplicative inverse in the integers modulo the prime found from the GCD algorithm. So, get the solution in the integers modulo that prime. When repeat for each prime in the list, then can easily use the Chinese remainder theorem to construct the rational numbers, ratios of multiple precison integers, of the exact solution. Of course now with processors with many cores, the work for the several primes can proceed in parallel. "Look, Ma, no more worries about matrix condition number!".
"Is the math supposed to be clearly explained in text or just the starting conditions from which the rest of the formulae just tell the story for you?"
Again, you are asking too much from the math. Again, 'math' is supposed to be written in complete sentences. In particular there is no 'new language'. I illustrated with F = ma: You are supposed to get nearly all "the story" from the text and not the equations. Well written math doesn't ask a reader to get "the story" "just" or even primarily from the equations. If you don't want to accept this description of good writing in math, then so be it, and our main difference will be right there and not "all over the place".
Again, yet again, once again, the knowledge is supposed to be in the text, in well written paragraphs, in complete sentences, and there is no 'new language'. For an equation such as F = ma, that is a part of speech, a noun. And again, yet again, the surrounding text is supposed to be so good that the equation is hardly needed. Again, yet again, one more time, please read it this time, you are not supposed to have to dig the meaning out of the equations in more than a peripheral sense.
"Moving on to DNS having security holes and other problems with protocols made with reference implementations -- how is this relevant?"
Because, again, the code, including in a 'reference implementation', doesn't mean anything. We shouldn't ask to determine correctness, or even the quality of the design or engineering, just from the code, not even code with mnemonic identifier names and many in-line comments. The 'relevance' is that we see that the DNS code had security problems, that is, was not high quality design or engineering, and the reason for those problems is that high quality design and engineering are in text and NOT in code. So, with just the code, we have no solid, rational support of the quality of the design or engineering. Instead, about all we have is the code. Then to know if the code has high quality, we just deploy it and wait for the bug reports. Then we study the code, see where the problem is, patch the code, deploy it again, and wait for more bug reports. NOT good. NOT high quality design or engineering.
We do NOT design or engineer airplanes like in a 'reference implementation' of DNS. Instead, before the plane carries passengers, we have a mountain of rock solid engineering, heavily in text, saying that the plane is safe. We do NOT primarily determine the safety of an airplane by putting one million passengers in it. In DNS, we determined the quality of the work primarily by deploying it, using it in real networks, getting the bug reports, and then fixing the bugs. So, the DNS engineering was shoddy work compared with nearly all of the rest of engineering.
Broadly we just cannot expect to have delivered high quality software when what is delivered is mostly just the software. Instead, the quality has to be in a document almost entirely in text. In high quality? Yes. In common commercial practice? No.
Fundamentally it is the text that really matters, NOT the code. Again, yet again, given the text, the code is supposed to be routine. This holds in 'research level' 'knowledge'. Sure, this doesn't hold in routine commercial practice.
"Lots of scientific papers get published that later turn out to be wrong, whole fields of study sometimes look really good and push our understanding of the world but ultimately go away as 'the wrong approach'. This is just progress,"
No, you are not describing "progress" but are describing just mistakes, that are sometimes costly, and are to be avoided strongly.
"When you say the 'knowledge of a paper' should stand on its own, without the need for the circuits, code, etc to understand it -- this is true of many fields, but not true when the paper is about the circuit, the code, etc."
No, not really: We're talking about peer-reviewed research publications of 'knowledge'. That 'knowledge' is not really supposed to be about the circuit or the code. Instead, the circuit or code are supposed to be routine implementations of the knowledge in the paper.
You want to elevate the circuit or code to the level of knowledge, and that is backwards and wrong. Your goal of elevating code to the level of knowledge and what is primary is not promising. In simple, blunt terms, so far without serious exceptions, 'knowledge' is communicated in text, possibly with some math, in a natural language. That's all we've got. There ain't no more.
"Then that very thing should indeed be presented, otherwise no amount of text will properly explain it, other than a 1000 words where a picture would suffice."
In the communication of knowledge, we don't depend primarily on pictures, figures, diagrams, schematics or code. Instead we communicate knowledge in text, possibly with some math. Again, good examples are in books by Knuth, Ullman, Sedgewick, etc.
Again, yet again, once again, please try actually to read it this time, there has been a long tradition in math that there should be no diagrams or pictures at all, not even in vector calculus. Much of the motivation was to have the discipline to make SURE that the content was in text, just text, with some math, and NOT in pictures. Again, we didn't want the content to be in pictures. This point is SERIOUS about keeping up the quality of the material.
For pedagogy, a picture can be terrific, but 100% of the content should also be in the text.
"As for your famous lab scientist -- why is it ok that he wants to make notebooks and other lab stuff available, but when we ask for code to be put in a public repo when reviewing papers we are suddenly breaking knowledge?"
We're not. Put all the code in public repositories you want. Put in 1000 KLOC. Fine with me. But the code in the repository is not going to be part of the paper, e.g., it will not be reviewed in the peer-review process. Moreover, the paper just MUST make sense with no reference at all to the code. Again, the code is NOT the knowledge or the subject of the research paper. Again, the paper is NOT about the code; it is not a paper describing the code; the code is not the 'contribution to knowledge'. Instead, the code is at most a hopefully routine implementation of the knowledge in the research paper.
"No matter what you say about text being the only way to transmit knowledge, there are plenty of occasions where a simple digram transmits much more meaning to me than reams of text, I am visual thinker and learner."
Fine. So are many people. But such ways of 'transmitting knowledge' are NOT what we are talking about. We're talking about peer-reviewed research papers. Tutorial presentations can be very different. Movies are very different. TV is very different, even some of the TV cooking shows that try to be instructional are very different.
Maybe the main point of misunderstanding is, practical computing is nearly all about code, just the code, and, thus, you have accepted that computer science research papers can be about describing code. No. Instead, for such papers, any code is supposed to be just an implementation of the knowledge in the research paper and routine. The knowledge in the research paper is NOT 'code'.
The knowledge in a peer-reviewed research paper is supposed to be rock solid, and, again, yet again, we don't communicate that with pictures or code.
Pictures and code? In tutorials, fine. In commercial work, sure. In research papers, only a few lines of 'pseudo-code' in a picture that is not essential to the paper. Understand now?
So, now there's 'code' that is neither text nor math. So, in communicating knowledge, we don't know what role the code has. Fundamentally, the role is not promising: The code alone doesn't mean anything; mnemonic identifier names do not make a fundamental difference; with a lot of explanatory comments we are still a very long way from good examples such as a physics text.
In practice, programmers are often forced to look at code and discover its 'meaning', but that unfortunate situation does not mean that code should be in a published paper.
In simple terms, there are two cases of 'code' here:
(1) It is common to have a dozen or half-dozen lines of, say, 'pseudo-code' in a figure in a paper. The figure can help, but the paper should be plenty clear and solid without the figure. E.g., there was a long theme in much of the best in math that the writing should be so clear that no figures are needed; or, the content should not be in 'figures'.
But, I'm 'liberal' and can agree that intuition is important, that often there is an appropriate 'figure', that the reader should not always be expected to draw their own, either in their mind or on paper, and that, similarly, a few lines of pseudo-code can be helpful.
Still, the pseudo-code is not the solid, clear content of the paper.
(2) In practice, 'code' tends to grow quickly from dozens of lines to KLOC. Putting such code in a paper would be a bit much!
There is a real danger in computing: In nearly universal computing practice in writing and documentation, the content is not all in just text or math but in mnemonic identifiers and code, and that danger is real and a big step backwards in science. While it is clear where the danger comes from in computing practice, still the results don't belong in journals.
You mentioned Knuth's 'literate programming', i.e., his shot back at 'structured programming'! For the code itself, I was always in favor of his 'literate' idea. Although TeX is my main source of high quality word whacking, I never actually got through enough of his Web, Weave, and Tangle to write 'literate' code. The best I do is just use a good text editor.
In our AI project at Yorktown Heights, I tried to get people interested in literate programming and Knuth's tools, but people called it just 'pretty printing' and laughed.
Your
"The article is not about 'give us the code instead of a paper', but instead about 'give us the code as a supplement to the paper'."
is an appropriate interpretation of the paper. But I can't have much sympathy for that interpretation because the code can be so darned long and obscure.
Some 'pseudo-code' of, say, a dozen lines as a 'figure' is okay. In nearly all cases, any code very close to something that actually runs in practice would tend to be too darned long.
The 'knowledge' of the paper is supposed to be clear just from the paper. Then the code is supposed to be 'routine'.
If the main body of the paper does not make the knowledge clear, then including a few hundred lines of code has little promise of improving the exposition.
There's a good history supporting my point in books by Knuth, Ullman, Sedgewick, the paper
Ronald Fagin, Jurg Nievergelt, Nicholas Pippenger, H. Raymond Strong, 'Extendible hashing—a fast access method for dynamic files', "ACM Transactions on Database Systems", ISSN 0362-5915, Volume 4, Issue 3, September 1979, Pages: 315 - 344.
and more.
For your
"The basic argument is that sometimes text alone is not sufficient to explain - a point you concede to by mentioning that the formulae exist in textbooks along with the description."
I believe you are asking too much of the equations, not a lot too much but too much.
In simple terms, even pure math is, usually is, at best is, is supposed to be written in complete sentences in a natural language, say, English. E.g., in a physics book describing Newton's second law, we discuss force, mass, and acceleration, explain that force is a vector F, mass is a scalar m, and acceleration is a vector a, say that force is the product of mass and acceleration, e.g.,
F = ma
So, by the time get to the equation, almost don't need it. Of course, not ALL writers write this way!
A long sequence of algebraic derivations is supposed to have a start much like what I gave for F = ma and after that is just algebraic derivations, often with not much need for more text.
For
"Take for instance many protocol standards: they come with a reference implementation, because sometimes the text is harder to understand when you can't compare it to code which actually does what is being described."
yes, there is a practical challenge there. Finally the Unix world decided to 'go empirical' and have 'code runoffs' or whatever they were called where people just got together to see if the actual code, say, the TCP/IP stack with SSL, would actually appear to work. Of course, that empirical approach was always risky because it is a long way from a mathematical proof of correctness or even a solid engineering document. And we've seen problems, e.g., with security in DNS.
For more, the AI world decided to f'get about 'theory' or even usual scientific documentation and make the criterion just 'does the code appear to work'. This, too, has proven to be risky and, of course, is a big step back in documentation quality from good applied math, mathematical physics, and engineering of past decades. E.g., how the heck to know that the Manhattan Project was on track before the first test? Sure: There were a LOT of derivations and calculations; that is, the project didn't rely on just the empirical approach. Indeed, the uranium bomb was dropped on Japan as the first 'test'; the engineering was so solid there was no doubt it would explode.
Sure, there is a big role for testing, but, still, the 'knowledge' in a journal is supposed to be able to stand on its own without much help from detailed documentation on code, electronic circuits, mechanical mechanisms, or chemical reactions. In particular, in experimental science, the published paper is supposed to be clear enough to permit others to reproduce the experiment, and to do so without detailed photographs and drawings of apparatus.
When I was an undergrad, one summer I worked in the lab of a famous scientist. He explained to me how a scientist is supposed to keep a good notebook and really good records. Then if another scientist wants to check details or reproduce results, sending the notebooks and data is supposed to be an obligation, and the materials are expected to be handled with great care and then returned.
So, yes, at times, in practice, there can be more that is relevant than just the published paper.
Still, communicating the 'knowledge' of a research paper with a few KLOC of code is a bit much!
Okay, how do we present knowledge? Text? Yes. Text with math as in, say, a book on math or mathematical physics? Yes. Code? Nope! Sorry 'bout that!
Yes, coming from the programming side, many programmers have accepted that code, especially with mnemonic identifers, actually is meaningful and a substitute for good text possibly with good math. Sorry, guys: In principle, it just ain't. In simple terms, the code is meaningless; code with mnemonic identifer names and careful indenting is still meaningless and at best a puzzle problem to solve to identify the intended meaning. Sorry 'bout that. Yes, often in practice, with enough context from outside the code, can get by with just mnemonic names and pretty printing. Still, it's just ain't knowledge.
Really, for being knowledge, the code should be like the math in, say, a physics text, that is, surrounded by text. The math does not, Not, NOT stand alone and by itself is just meaningless. E.g.. F = ma is no more meaningful than a = bc. For either equation, the meaning has to come from surrounding text where the equation becomes just a nice abbreviation for what is in the text. So, for code, the comments play the role of text in a physics book and the code plays the role of the math in a physics book. As in a physics book, the text (comments) are MORE important than the math (code). Again, code just AIN'T knowledge. Sorry guys.
How do we conclude Amateur Hour? Because returns just suck. As I recall, in 1994, the fastest 'water heater' mainframe had a processor clock of about 150 MHz and sold for maybe $1 million. Now can get a cell phone with a clock about 10 times that fast for less than $100. More generally computer hardware has gotten POWERFUL and CHEAP, both VERY quickly. Similarly for infrastructure software and the Internet.
Still, on average returns suck. Shocking situation.
How do we conclude returns suck? Can look at VC Mark Suster's blog 'Both Sides of the Table' and in particular in
"The Coming Brick Wall in Venture Capital & Why This is Good for US Innovation"
by Mark Suster on June 30, 2011
at
http://www.bothsidesofthetable.com/2011/06/30/the-coming-bri...
with a graph showing the big rise and bigger fall in the number of VCs with claims that some VC funds have not been able to return to the limited partners even their original investment, i.e., have lost money in every sense, and in
"What’s Really Going on in the VC Industry? What Does it Mean for Startups?"
by Mark Suster on July 16, 2010
at
http://www.bothsidesofthetable.com/2010/07/16/whats-really-g...
with a table on big declines in university endowments, the declines because of or at least in spite of investments in VC funds.
For evidence of Amateur Hour, the article has a lot on the VCs. My view is that even if they got a nice description of 'another Google' in their e-mail in-box, they would ignore it.
To me, it looks like the VCs are consistently the dumbest people in the room. They are not the people I respected in graduate school or at Yorktown Heights and are nearly never someone I would hire as Chief Scientist, CTO, CIO, Software Manager, Software Developer, User Interface Designer, DBA, Server Farm Administrator, Network Architect, Network Analyst, Network Manager, or CFO.
Beyond the bad financial returns, here is one point of evidence: As we can see in the article, often the VCs think in terms of simplistic and nearly meaningless patterns. What they appear to be looking at, believing in, and acting on is evidence hardly better than tea leafs. Even more seriously, in IT (the situation in biomedical might be much different) the VCs don't have even as much as a weak little hollow hoot of a tiny clue what to look at or how to evaluate projects. Borrowing from a movie, "They are digging in the wrong place.".
For more on the patterns, there is "Cold-calling our office line.". That this is bad is definitely looking at patterns in tea leafs and as silly as the evidence, say, in 'The Music Man' of a boy buckling his knickerbockers BELOW his knee. Even more seriously, it is usually just crucial to 'cold call the office line' to pass a message to the VC that did send an e-mail; the VCs are so bad at handling e-mail that otherwise the e-mail is almost surely due to RIP in the bit bucket.
More evidence is in the "Saying they are completely unique, and that there is no competition. Groan.". Groan back to you, doofus. VC, if you are reading this and are insulted, fine with me: No good IT entrepreneur should dare to have you on their Board.
So, a standard VC claim is "Whatever idea you have, at least a dozen other people have had the same idea and are working on executing it.". Let's examine this claim: So, for an idea, take all the people so far who have thought of it and, for each such person, take the time and date when they first did think of it. Now, sort that data into ascending order on time and date and look at the first person from the sort; almost surely (probability 1) that person thought of the idea first, before anyone else, and, thus, is a contradiction to the claim. Done.
More generally, the claim is just nonsense: Indeed, essentially all of peer-reviewed research is judged on the criteria of new, correct, and significant. If there were no new ideas, then there should be no new peer-reviewed papers, but each year there are many thousands of such papers. Moreover, over nearly any 10 year interval, we can find very powerful, new results we would not want to be without.
So, the VC claim of nothing new is uninformed, misinformed, ignorant, arrogant, and just plain wrong.
Really, the claim is from a strong desire of a VC to trivialize and denigrate entrepreneurs and their work. For the poor returns, we have just identified one sufficient condition.
Similarly, a common VC claim is, "Ideas are easy. Execution is hard.". No, good ideas are hard and then successful execution is routine!
Execution? The US is just awash in millions of businesses, coast to coast, on Main Street that do execution quite well, thank you. The US is also awash in people who have done well managing groups from a dozen to 1000 dozen persons in, say, business, government, the military, etc. In the US, good execution is common.
Good execution is so common that even VCs can understand a lot about execution. Moreover, in the work of a CEO, execution is about all the VCs understand. So, the VCs are willing to say that what they do know, execution, is difficult.
But the VCs definitely do NOT understand finding good, new ideas and, thus, dismiss that work as "easy". Dumb. Part of the reason for the VC problem with 'ideas' is that one could count with shoes still on all the VCs in the country who have published a peer-reviewed paper in an archival journal of original research or who are qualified for a tenure track faculty position in a technical field in a research university or as a problem sponsor in NSF or DARPA.
Then there's the common "Using a banker to raise money or sending in something over the transom (cold e-mail). Good entrepreneurs can always find a warm intro to a VC."
So, it is common on venture firm Web sites to advise an entrepreneur to get an introduction via a lawyer, banker, or VC portfolio CEO. So, this VC wants to rule out any entrepreneur who gets an introduction from a banker.
Next, the "over the transom (cold e-mail)" is another favorite way for VCs to denigrate the work of entrepreneurs. That denigration is just posturing, playing 'hard to get' because as is easy to see for nearly all VCs it is easy enough to get their e-mail address and phone number, send them e-mail, and leave them a phone message.
The worst is the "Good entrepreneurs can always find a warm intro to a VC." Nonsense. Total 100% reeking, fuming, bubbling, sticky, toxic nonsense. Here VCs are breaking their arms patting themselves on their backs about how 'well connected' they are. Nonsense. Also they are asking their 'friends' to do their work for them. In fact, VCs are very poorly connected with some of the very best sources of 'good' entrepreneurs! I met and worked with a lot of 'good' people, some who became good entrepreneurs, in graduate school, as a university professor, and at Yorktown Heights, but in those places I never met anyone who became a VC. In particular, VCs are NOT very technical and, thus, are not well connected with entrepreneurs with high technical qualifications.
Actually, we know a lot about how to conceive of good, new projects to field valuable results to markets. There is a long, astoundingly successful history of such projects in applied math, applied science, engineering, and technology, and IT, in both business and the US DoD. The VC simplistic, ignorant pattern matching is ignoring this history. Dumb.
Here is a fact that should wake up each VC like 50 gallons of ice water over their heads: Look at the 'home run hits' of the past few decades and see Apple, Twitter, GroupOn, Facebook, Google, Yahoo, Cisco, HP, Oracle, Dell, Microsoft, Intel, Sun, IBM. Now, find the 'pattern' in these! May I have the envelope, please? Here it is: The pattern is, there isn't one! Instead, have to look at such case one by one. More generally, fundamentally, nearly necessarily, are looking for things that are NEW. Sorry 'bout the difficulty of working with things that are new!
The VCs, then, have been blinded by their 100-200 daily e-mail messages: Their job is to find golden needles in a lot of straw, but their 'pattern matching' is based on what lessons they draw looking at the straw and not the needles.
Really, nearly all VC remarks on what they want is nonsense to cover over what they really want. What they really want is an opportunity to make a lot of money easily. Their main idea is to wait for an entrepreneur to do really well but start a vast project with half-vast planning, run out of cash, and be willing to take a VC check with some really onerous terms. So, fundamentally they are eager to pursue 'vulture capital'. But, vultures eat dead meat and, net, are not very successful.
This VC business model is not working well. Reasons:
(1) The VCs evaluate the projects not at all like a serious CEO would but much like an accountant would. E.g., the VCs want to see 'traction' significant and rising quickly. That's about as deep into anything meaningful as the VCs get. So, really, the VCs look at an egg or a chick without enough 'diligence' to tell if the species is a chicken, pigeon, or eagle. Dumb.
(2) The VCs are looking for projects that DO have 'traction' but also have some poor planning. NOT good.
Thankfully for US national security, VCs are not NSF or DARPA problem sponsors!
No, there really is work that really should be called 'intellectual property' (IP) and might be new and unique. And as the US DoD has understood well for decades, there really is IP that should be marked 'confidential', 'secret', etc.
A current example of such IP might be the Google ranking algorithm.
More broadly a claim that there are no ideas that are new, unique, and good is in wild conflict with essentially all of peer-reviewed original research that, typically, is supposed to be "new, significant, and correct".
Information technology (IT) entrepreneurship and venture capital nearly totally assume that all the technical work is just routine software. This is a HUGE mistake. But with this mistake, the only unique or new aspect of the project is just the 'business idea' that might be ripped off.
Such business ideas actually CAN, EVENTUALLY, get protection, that is, a 'barrier to entry' or a 'Buffett moat', from effects in the market, say, Fred Wilson's "large networks of engaged users". But getting this protection requires success in the market which takes time, and between first contact with a venture firm and the protection in place, the business 'idea' can be vulnerable to being copied and the business opportunity taken.
Some entrepreneurs believe they have evidence that some venture partners have received such business 'ideas' from entrepreneurs, told the entrepreneurs to get lost, and given the ideas to buddies of the venture partners.
So, some entrepreneurs want a venture firm to sign a 'non-disclosure agreement' (NDA) before discussing the business idea.
Alas, at least in IT, venture firms will nearly never sign.
Generally, as an opening negotiating position, it is in the interest of the venture firms to take a 'stance', if they can get away with it, that their money and business 'acumen' are really valuable and that the entrepreneur has nothing new, unique, powerful, or valuable.
Entrepreneurs can counter by saying that all the money is just green, indistinguishable, and fungible, and the venture partners are nearly never qualified to be Chief Scientist, CTO, CIO, Server Farm Manager, Software Project Leader, Software Developer, Network Architect, or Network Administrator and, thus, have at best only peripheral knowledge for the business success.
Also important is scalability. Some 'development environments' that are easy to get started with have bad reputations for 'scalability'.
Another practical issue is, is the guy just a developer in a group where he can draw on others in the group or is he really, now, and during most of his development, just one guy and not funded and has to do nearly everything alone? To do it all as just one guy means he needs to know a LOT about computing a bit far from just Web development alone.
Actually, I omitted a lot: For a Web startup, usually need something like relational database, e.g., SQL Server. If the startup gets very far into production, then he will need some background in SQL Server management and administration, e.g., performance, backup, and recovery, and I omitted such topics.
I gave a description of some of what is important if developing on Windows. Here at HN, Windows is not the most popular option. But if you have some alternatives in mind, then describe them,
Your remark might be good and, thus, a good contribution to some Web site that tries to provide advice "What I wish my father had explained to me when I was 12, however, I've come to expect that mostly he didn't understand very well."
For making an A in Women 101-102, right, the grade is to come from some unnamed course professor and not from the women the man wants to meet!
Everything I said is well informed and well justified.
While you were not clear on just what you did on a Mac, for your
"Here's how I solved the backup problem: I bought an external hard drive, connected it to my Mac, and clicked "yes" when my Mac asked if I wanted to use it for backups."
on Windows XP SP3 that in no way addresses the problem I explained now twice: Back up a bootable partition so that it can be restored and bootable.
One severe problem with such backup is backing up a booted partition as it is running. As I explained, NTBACKUP has this problem solved, with 'volume shadow copy', but the solution is involved. You didn't describe how Mac has this problem solved.
As I explained, the problem with NTBACKUP is the documentation and getting the options so that the backup can be restored and be bootable. Due to the documentation problems, that is NOT easy.
And once you have such a backup of a bootable partition, how do you restore it? I do have a solution, have tested it, and have shown that it WORKS.
Again, yet again, there can be solutions with third party software and/or versions of Windows after XP SP3, but for that version of Windows what I wrote is a very accurate description of what HAS to be done if just using Microsoft's software.
Your claim that I am making things too difficult in backup is just flatly WRONG -- uninformed, misinformed, and just plain WRONG.
For Outlook, your solution was to use gmail. That has some pros and cons, and I don't like the cons.
For writing down all the clicks in configuring Outlook, you don't have a better solution. There are a LOT of options for Outlook -- a LOT. Some of them are important for security. About the only way to get all the options right is to do JUST what I did. Security problems with bad options in e-mail programs have been grim for years; maybe most Outlook users without a support group to set all the options have some security holes.
Your claim that I am making things too difficult in Outlook is just flatly WRONG -- uninformed, misinformed, and just plain WRONG.
Heck, I even omitted describing setting options for Internet Explorer and Firefox. For Firefox, a default option is to PERMIT running Java in a Web page. OUTRAGEOUS security hole: Java can do ANYTHING. If a user is not REALLY careful with Firefox options, then they will have Java enabled.
Your
"though I've never met a serious programmer who actually uses Visual Basic"
taken literally means nothing but suggests something misinformed, uninformed, and just plain wrong: In fact, on Windows, the .NET version of Visual Basic is fine: It gives essentially full access to the basic 'common language runtime' (CLR) and .NET; it has full 'managed code' including its memory management; using another language on the CLR is mostly just a matter of different syntactic sugar. An advantage of Visual Basic is that the syntax is easy to read and not borrowed from the too sparse and idiosyncratic C/C++ tradition as in C#.
When I hire people, I will have them start on Visual Basic because it is easier to get going with than C#.
On Windows, what language would you use? C/C++? That's not Windows 'managed code', and managed code is IMPORTANT. So your main options will be C# or Visual Basic. You could use either one, but working for me I'd ask you to use Visual Basic. You would not be able to use C/C++.
Your claim that I am doing something wrong using Visual Basic .NET is just flatly WRONG -- uninformed, misinformed, and just plain WRONG.
For your
"I don't even know what you're talking about when you say you "index" and "abstract" API docs--I just keep them open in a browser window and search for things I don't remember offhand."
your confession that you don't know is on target. As I wrote, I have something over 2500 Web pages of Microsoft MSDN documentation. For those 2500 pages, what you described is not a solution. For a solution, my "index" and "abstract" are a good solution: So, I have some simple, 'flat ASCII' files. I have one for each of Visual Basic, Windows, ASP.NET, and SQL Server. Typically I have about two of these files open in my favorite editor. For an issue, say, about ASP.NET or related parts of .NET or communications, I start with the file for ASP.NET. In that file each Web page of documentation has a few lines. Some of the lines give the title of the Web page; another line gives the tree name of that Web page on my system; those two lines form the 'index' and are an appropriate use of 'index'. Also there are a few more lines that say a little more about what is in the page, typically copied from the first paragraph or two of the page. If the page is a good 'root' page for a larger topic, then that is noted. Those extra lines are the 'abstract'. And there can be some additional notes of mine.
To find something, I just use the 'locate' command of my editor. Then to open the Web page, in my editor I give one keystroke on the line with the tree name.
Works fine.
But there's no way, as you suggest, to have all 2500 Web page files open at once, and your solution said nothing about how to find the right one of the 2500 pages but my solution did. And there is no XP SP3 'search' function nearly as effective as what I have with the four files and my editor.
Your solution with 2500 Web pages would be much less productive, not more.
Same for using a weak editor, C/C++, MAKE instead of a scripting language, and more. And your suggestion for backup on XP SP3 has little chance of resulting in being able to restore the boot partition so that it will boot.
Your claim that I am doing something wrong with my indexing and abstracting of those 2500 Web pages is just flatly WRONG -- uninformed, misinformed, and just plain WRONG.
For your "ignorant", "irrational compulsion", "unproductive busywork", those are all insulting, uninformed, misinformed, and just plain WRONG.
Again, yet again, one more time, the original question, go back and read it for yourself, was:
"I want to start a startup, but I don't know how to program. How long will it take to learn?"
and you responded with
"That's all I needed to do to be productive"
which does not answer the original question.
E.g., you said nothing about SQL Server. Hmm .... So, yes, from a plugin in a Web browser, I got a virus. Right: Now I keep nearly all plugins disabled. Have to work at this since some software installs and enables browser plugins without notice. That virus was from one use of the Akamai download manager to get a PDF file on a motherboard from an Asus Web site. Bummer.
So, to be sure to solve the virus problem, I reinstalled Windows, Office .NET, TeX, SQL Server, etc.
Then I wanted SQL Server to read my old database, which was not on the boot drive and not damaged in the reinstallation. So, I used the T-SQL CREATE with ATTACH. This didn't work (for complicated reasons, not my fault). Finally, in trying to get SQL Server to use my old database, SQL Server got 'sick' and quit doing much of anything. So, I tried to uninstall SQL Server. It wouldn't. I tried to 'repair' it; it wouldn't repair. I tried to reinstall SQL Server; it wouldn't. Basically SQL Server had just wiped out my boot drive, and I had to start over with the boot drive. BUMMER.
Now I have a backup, bootable, of my boot partition with everything installed EXCEPT SQL Server so that if SQL Server ruins my boot partition again I will be able to restore the boot partition from just before SQL Server and then reinstall SQL Server. Some of what is important with Windows and SQL Server 'administration and management'.
Yes, I have more than one bootable partition!
One of the problems was that when I installed SQL Server as I had before the virus, what was installed was different -- strongly against my wishes, I ended up with two versions of SQL Server with 'side by side' installation. Well, apparently 'side by side' is just awash in bugs so that can't uninstall, repair, or reinstall.
I finally got through it, but it was NOT fast.
You didn't mention SQL Server. But for the original question, SQL Server or some substitute stands to be important.
So, what you are doing that is "productive" does not answer the original question. I answered the original question, and you didn't.
On what I'm doing, you are WRONG, consistently, 100% WRONG.
That's enough of responding to your errors.
"There are, believe it or not, entire web development frameworks where you don't actually need to manage the TCP/IP sockets yourself."
Actually, what I'm doing with TCP/IP is the easy way to proceed!
You interpreted what I wrote as working with TCP/IP for the Web page Internet communications. Sure, I let Windows and IIS handle that!
But, consider a Web page that needs to execute a SQL query. SQL Server runs in a different 'process', likely in a different address space, maybe on a different machine, real or virtual. So, how does the Web page communicate with SQL Server? Sure: That's already worked out by Microsoft. BUT: There IS communications, and it is 'asynchronous'.
Okay. What holds for a Web page getting to SQL Server can also hold for a Web page getting to some other software possibly particular to the Web site.
So, suppose the design of the Web site has a program that needs to run as a 'service' and be accessed from the Web pages 'asynchronously'. So, how to do that communications?
I looked into Windows 'remoting' (now considered obsolete by Microsoft), the Windows version of old remote procedure call (RPC), Windows Communications Foundation (WCF), Windows pipes (on the same machine), and old TCP/IP sockets. Just to investigate these may have involved over 100 Web pages at MSDN.
I settled on old TCP/IP sockets. For the data to be sent/received, to convert to/from instances of classes, I settled on 'serialization'.
So, I got (back) into TCP/IP sockets. I've done socket programming for over 20 years. To get started with sockets on Windows, I started with some simple socket code in the scripting language Rexx. I got both the 'client' and 'server' sides working with each other. Then I wrote the server side in Visual Basic .NET (the Microsoft 'managed code' version of their TCP/IP) and got that working with the client side code in Rexx. Then I wrote the client side code in VB.NET and got it working with the server side code in both Rexx and VB.NET.
Now the TCP/IP code is ready to drop into the VB Web page code and the VB 'remote server' code.
But using TCP/IP and serialization for this communications was the easy way.
Net, all your criticisms have turned out to be unjustified. I've done nothing wrong. What I wrote to begin with was right on target. Being so consistently wrong you should fear will hurt your credibility. It's not good to be so consistently wrong.
"I want to start a startup, but I don't know how to program. How long will it take to learn?"
So, he wants to "learn" "how to program". Good objective, clearly stated.
For your
"All you need at first is something you can type text into that knows how to highlight syntax. You don't even need to know the features of that particular editor, aside from stuff like 'save' and 'open'."
Your
"All you need at first"
is not very relevant to the clearly stated objective of learn to program for a startup. You just ran off the subject to try to find something to object to.
From your statement, it would appear that even Notepad would be sufficient, but it is not. Instead for anything productive even just in the learning, what I wrote is on the center of the target.
Actually, the editor I use, KEdit, does know "how to highlight syntax", and I think so little of that I keep it turned off and don't use it. I didn't go into what makes a good editor or IDE, but there's a LOT to it even when "how to highlight syntax" doesn't make the list.
For your
"> and a scripting language.
For what, exactly?"
If not using an IDE, then need a scripting language for common tasks otherwise done by the IDE. Or maybe you would expect the poor student to type
C:\Microsoft.NET\Framework\v2.0.50727\vbc.exe
each time they wanted to do a Visual Basic compile? For the Microsoft C/C++ compilers used outside of an IDE, generally need to set up a lot of environment variables, and want those in a script. Once actually see how to build a DLL, want that in a script so have some good documentation of just what did and don't have to look it up, make it work, and type it in all over again. For running T-SQL, don't want to type in C:\Program Files\Microsoft SQL Server\90\Tools\Binn\SQLCMD.EXE
so want that in a script, along with some more options. And DO want to do a LOT with T-SQL instead of, say, SQL Server Management Studio (SSMS) because (1) the documentation of T-SQL is much better, (2) get an explicit record of just what did, (3) get to put comments in the file with the T-SQL (no place for comments when using a GUI) so that six months later can understand what did, (4) some of the most competent documentation for how to do system management and administration of SQL Server is in terms of T-SQL and not clicks on SSMS.What I wrote is correct: If don't depend on an IDE for essentially everything in the development, then need a scripting language.
For
"> And need to get good with Windows, e.g., have traversed much of the obscure tree of things to click on. And need to be good at software installation
Why? How does this actually help? How is this actually difficult?"
If get very far with it, then it's horrendous. The clicking and clicking and clicking goes on and on. There's next to nothing good in documentation. Much of what need to learn is just by trying, e.g., for everything in sight on the screen right click, left click, double right click, double left click and see what the heck happens.
"> Should learn some Word, Excel, and PowerPoint.
None of that has anything to do with programming. And how is this actually difficult?"
If they don't know how to program, then maybe they won't know these tools, either. If they are doing a startup, then they should know them. Word is a pain in the back side, very poorly documented, and commonly takes about two weeks to get good enough to do, say, a document good enough to be, say, a 'business plan' or a report to the Board. Similarly for writing letters to the government, lawyers, etc.
Excel, if get far enough to do some financial projections for fund raising or the Board the first time takes some days or weeks.
Once are okay with Word and Excel, then PowerPoint can go quickly, say, the first good 'foil deck' takes a few days wrestling with PowerPoint.
And I omitted Outlook: Back when I was on OS/2, I wrote my own POP3 e-mail and used it for years as a great tool. But with Outlook, I commonly yell and scream myself hoarse in frustration. Outlook is awash in serious problems: E.g., the PST files are by default in a hidden directory deep in the directory tree on the boot drive; takes a while to discover this and how to put the PST files in a decent place. "Decent"? Yes: DO want to backup the PST files as part of daily incremental backup, but do NOT want the boot partition as part of the daily incremental backup. So, have to get the Outlook PST files OFF the boot partition. Next, starting a new PST file commonly causes Outlook to lose the Contact List, and to get back the list have to discover a certain Web page at Microsoft and go through an obscure dance of about 12 steps. If have more than one PST file seen by Outlook, then on each use of Outlook it will set the archive bits of all the PST files so that they all get backup in incremental backup. So need to find a workaround or can have the daily incremental backup start at 500 MB or so. The options in Outlook are horrendous to get set appropriately; I finally traversed the whole tree of menus, set everything, and documented each click. We're talking DAYS of work. It's super tough to find old e-mail in Outlook. And those are just some of the problems; I omitted security issues and much more.
"And I think you're going about it the wrong way if you try and comprehensively read and memorize the API documentation for every single framework call you make. Any programmer looks up what he needs on a case by case basis and over time comes to remember the stuff he uses a lot."
I wrote nothing that suggested I "comprehensively read and memorize ..." You are straining to get off the subject to find things to criticize. Indeed, I wrote that I "index, abstract" the documentation, of course "to look up" as needed. Still, at least the first time, have to read the pages downloaded. And, again, to get very far with the goal
"I want to start a startup, but I don't know how to program. How long will it take to learn?"
especially for "a startup", really WILL need MORE than 2500 such Web pages. To pull this all off in one year, we're talking ballpark 10 Web pages a day, on top of the rest. It's beginning to look like a busy year.
For
"But I think you're just making it harder on yourself using the Microsoft stack."
there are pros and cons going with Microsoft. While there are alternatives, net it's not a bad decision. It's not the more popular decision here at HN, but it's still okay, and it's the one I selected so can write about. If some alternatives are much faster, fine, but for the goal
"I want to start a startup, but I don't know how to program. How long will it take to learn?"
especially for "a startup", my main point is correct: Going with Microsoft, one year is FAST.
For
"> Also need to be good at backup and recovery, ESPECIALLY of the operating system and boot drive.
This is part of owning a computer, not programming. It's also not difficult."
It's also commonly neglected, especially by people who are not yet deep enough into computing to program. So, it is reasonable to believe that the person might have to learn. For a startup, it's IMPORTANT.
And, as I wrote, for
ESPECIALLY of the operating system and boot drive
it IS difficult. It's a self-inflicted, unanesthetized root canal procedure, at least.
Oh, it's easy if don't do it. And it's easy if do it but don't test to see if it actually works, that is, results in a bootable partition with everything back where it was. But if do it and confirm that it actually works, then it's TOUGH. Just the testing requires running experiments where have to reinstall the OS, likely several times.
There may be some easy ways to proceed, with some special third party programs or some newer versions of Windows, but for XP SP3 and using NTBACKUP, we're DEFINITELY talking a self-inflicted, unanesthetized root canal procedure, at least. Why? The relevant documentation for NTBACKUP totally sucks: About all a user can do is just guess and try. Getting a good solution to backup and restore of a bootable XP SP3 partition with NTBACKUP is a real accomplishment, 1-2 weeks of work. But NTBACKUP does have some highly desirable functionality: It can do a 'shadow copy' where it backs up the boot partition while the partition is booted and running. And it can restore to another disk partition (with the same drive letter) of a different size.
As I discovered the hard way, the testing to be sure the are doing the backup so that a restored partition actually is bootable is just CRUCIAL.
Actually, in the end, NTBACKUP can be okay, but the documentation is so bad that lots of experiments are needed to get the procedure working correctly and test it to be sure it is working correctly. The main problem is just the documentation. If someone hands you some good documentation, say, in a well documented script, then you can be okay right away. Then you can save 1-2 weeks.
For Web development on Windows, that is a good list of a minimal list of EXACTLY what is needed. Web development on Windows is JUST what I'm doing, and that list of topics is JUST what is centrally involved.
What are you going to leave out? T-SQL? OS backup and recovery? Good skills with an IDE or editor?
Yes, learning most of, say, Visual Basic by itself is easy. The 'rub' is that for anything at all serious in Web development or just software development, it is just crucial to make good use of .NET, and that is HUGE. For a long time, nearly each time you turn around, you will need to use another .NET class, and that will take you 1-3 dozen Web pages at MSDN to find, download, save, index, abstract, and read. The total of MSDN Web pages needed adds up quickly: I have over 2500 now, and it grows quickly. Just yesterday I downloaded a lot just for 'request data validation'. Before that, the topics were HtmlEncode and UriEncode. Before that, TCP/IP sockets. Before that, Windows Communications Foundation. Before that Windows 'remoting'. Before that, Windows remote procedure call. Before that, a LOT on SQL Server administration and mangement. And on and on and on. It's ENORMOUS.
Then there is your "if the relationship is stable". Well, yes, and 'effective'! So, and especially for the huge fraction of men who don't have mothers as helpful as FDR's, how to get such a 'relationship'????!!!! May I suggest Women 101-102!!!!
Otherwise, yup, "can be a big distraction if you are trying to create something". Twelve year old boys, BELIEVE this!
Indeed, one of the first lessons in Women 101-102 is: Since the sixth grade or so, you REALLY wanted the girls to like you, right? So, you did this and that and it didn't work very well, right? Well, heavily what the girls want to see in a boy or man is someone strong, capable, and confident who understands the emotions of girls and women and is nice to them. For a while, being a successful quarterback on the varsity football team can work well. But, big secret: What REALLY works well is to be out of school, have a good career going, have plenty of money in your pocket, have a nice car, say, a recent Corvette, have a house bought, and have plenty of money to be able to support a wife and children. Then a large fraction of the females will, to exaggerate a little, do 'just ANYTHING' to be 'friendly'! Usually they won't even be able to help themselves! Uh, that reaction is a 'built-in function'! With these advantages in place, your brand of aftershave, blue jeans, shoes, cell phone, manner, tone of voice, pickup lines, even height and weight, etc. won't much matter! How 'bout that!
In particular, largely f'get about females your own age. Instead, in your teens, go for girls 1-4 years younger than you are. If she is 13 and you are 16, then she can be REALLY impressed that you have your own car but won't expect you to have a good career or a house yet!
Next, as from an expert on females, "Of COURSE, women are MUCH more emotional than men. That's the cause of all the problems.". Yup, not exactly right, but close! In a 101 level description, what rationalism and logic are for a hacker programming, fixing a car, diagnosing a network problem, etc. emotions are for females. In simple terms, first-cut, at the level males need to understand starting at age 12, the life of a female is all about emotions. Even when she is doing math or science, mostly she is seeking good 'emotions' from praise, acceptance, and approval from others she wants to please!
That's enough!
A year? Depends! To be very useful on Windows, really need to be okay on the content of several books, each about 1000 pages long, have worked through about 2500 Web pages of documentation at Microsoft's MSDN, along with more pages from other sources. Then need to write some code, at least as exercises, using what learned. For writing code, need to learn either an integrated development environment (IDE), e.g., Visual Studio, or get good with a powerful text editor (I use KEdit) and its macro language (I have about 150 such macros) and a scripting language. And need to get good with Windows, e.g., have traversed much of the obscure tree of things to click on. And need to be good at software installation, e.g., .NET Framework, service packs, IIS (for a Web server), Internet Explorer and some other Web browsers, likely some version of Office, maybe Knuth's TeX, SQL Server or some alternative, etc. Should learn some Word, Excel, and PowerPoint. Should learn some T-SQL, HTML, CSS, ASP.NET, and ADO.NET. Also need to be good at backup and recovery, ESPECIALLY of the operating system and boot drive. A year? Want to give up sleep for a year?
Just how to write software and how to do an information technology (IT) startup have evolved over the past 10-20 years due to (1) much more capable computers for much less money, (2) great progress in 'infrastructure' software, (3) the Internet, and (4) the broad idea of the 'social Web'.
So, it's possible to have a rough, maybe 'social', 'business idea', write some prototype code, see how well users like it, revise, iterate, etc.
However the old approach can remain an opportunity: Pick a big problem where a much better solution would be very valuable; find a good solution, even if implemented in software, possibly based mostly not just on routine software, wrap the solution in whatever user interface is needed, and present the result to the people who wanted the problem solved. Here are not really 'in search of a problem users would like to have solved or a business model' and, instead, did pick a good problem to begin with. Here 'lean' with lots of 'pivots' and 'iterations' is not very appropriate, and the 'lean' movement doesn't bring much that is new and good.
Just what is it about the importance ot being mommies those women don't get?
Whatever, the situation is self-correcting: Women who don't REALLY want to be mommies won't be and, thus, will have their genes removed from the gene pool. What will be left are women who DO want to be mommies. With the current situation, that change might take only 100 years. We are likely in the biggest change in the human gene pool going back at least to 40,000 years or so ago when the lines for Europe and the Far East split.
In another 100 years, the population should be smaller but growing more rapidly.
Mark Suster has some graphs showing VC returns over the past 10 years or so. Net, mostly the returns suck. VCs with bad returns won't be able to raise another fund.
Information technology (IT) VCs are nearly all quite poorly qualified to evaluate IT projects. E.g., they are nothing like NSF or DARPA problem sponsors. So, the IT VCs use criteria that are not much better than reading tea leafs.
Basically they ignore all planning and core technology and make their decisions based on what they can see and evaluate so far. So, for a seed round, they just play with the software and estimate how people will like it. For a Series A, they look at 'traction' and its rate of growth. For a Series B, they look at revenue and its rate of growth. For a Series C, they let the accountants evaluate the company and buy a piece of the 'earnings stream'.
Since early stage investors ignore all planning and core technology and just look at either the running software or the traction, they ignore nearly everything that could promise a big success and, thus, end up investing in a lot of tiny, near junk companies that have nearly no hope of becoming big. The VCs seem to accept this: Look at their investments and see lots of little companies have never heard of doing things nearly no one wants very much.
Most of the VCs claim otherwise, that they want "big ideas" and to "swing for the fences", but this apparently is just to make the entrepreneurs feel good and cover over the truth which is that they want an excuse to draw their 2% until the music stops.
The good news is that now it's much cheaper in capital equipment to start a Web 2.0 site than to start nearly any Main Street business, e.g., carry out pizza, grass mowing, roofing, ready mix concrete, insulation installation, auto repair, auto body repair, etc. Since none of these Main Street businesses get VC funding, why should a Web 2.0 startup?
Multiply it out: If a Web 2.0 startup can serve, say, 10 Web pages a second, 24 x 7, with three ads per page and $1 CPM, then quickly there will be plenty of cash to buy more servers and bandwidth along with pay the rent and buy a car. Then if the business grows, fine: The need for venture capital is highly questionable. Or, I will multiply it out:
3 * 10 * 3600 * 24 * 30 / 1000 = 77,760
dollars a month in revenue, Do that for a year and pay all the bills and still have more cash than nearly any seed round.The entrepreneurs who are doing well and got venture capital are a tiny minority. Instead, it's the successful Main Street entrepreneurs that grow to, say, 10 fast food restaurants who have the summer vacation homes in the mountains and a 60 foot yacht at the nearest large body of water.
Yes, the VCs have a tough time: They have to wait for e-mail from entrepreneurs. Then both sides of the table blow it: Only a tiny fraction of those e-mails are for a home run hit, but the VCs have nearly no ability to know which are those e-mails.
In particular, long the key to business success from technology has been some new, powerful, valuable, technically advanced 'secret sauce', and here the IT VCs are just hopeless and helpless, totally out of their depth. The NSF and DARPA problems sponsors can direct competent evaluations of such 'secret sauce', but one could count on one hand all the IT VCs who could.
What VCs would a technical founder want to hire for, say, Chief Scientist, CTO, CIO, DBA, network administrator? So, why want such a person on the Board?
Of course, the limited partners who supply the money are hoping that the venture partners are working really hard to make money. But, (1) the IT venture partners nearly never have serious qualifications in technology, (2) are rarely in their offices, (3) have a super tough time handling their e-mail, (4) insist on project proposals that are so superficial they are brain-dead, (5) show no good insight during communications (6) take a lot of vacations, etc. Conclusion: They are in the business for their 2%.
In particular, in information technology (IT), what fraction of the VCs would an entrepreneur eagerly hire as, say, a co-founder, a CTO, CIO, lead developer, DBA, network administrator? How about listen to in a discussion about a 'pivot'? How about as Chief Scientist to stir up new, powerful, valuable 'secret sauce'? Did I omit Power Point expert? Gee, why would I omit Power Point expert?
Another point: The day before taking the check, the entrepreneur may own 100% of the business. The day after taking the check the VC owns maybe 30% of the business, an additional fraction is set aside for employees, and the rest 'belongs' to the entrepreneur except is in a four year 'vesting' schedule which means the entrepreneur now owns NONE of his business and, if fired by the Board, leaves with NOTHING, zip, zilch, zero, not even the source code he typed in to begin with. Bummer.
Next, now IT VCs don't invest in pigs, chickens, dedicated, driven, devoted founders or any other barnyard or other nonsense. Instead, VCs invest in numerical metrics that correlate well with future financial value. Generally the VCs invest in 'traction', just traction, already significant and growing rapidly.
Then there's now a rub, a big issue: If the traction is significant, say, 10 Web pages served a second with 3 ads per page and $1 CPM, then just why should the entrepreneur take the check?
Or, think of a US Main Street business in anything from a carry out pizza shop to a landscaping service: They don't get venture capital. But a PC server able to deliver 10 Web pages a second costs much less than even an oven for a pizza shop and much less than a truck for a landscaping service. The difference for the IT entrepreneur is that if the project is at all successful, then (1) the entrepreneur can lean back and let the server PC do the work and (2) has a chance of growing rapidly into a significant business to own, sell, or do an IPO. So, an IT entrepreneur can proceed as for a Main Street business until money is coming in and then see if a really good business can result. Nowhere in there is much of a role for a VC Power Point expert.
First reality check. There is an old remark about research in psychology, that all the results either (1) are solid science that, however, say next to nothing important about humans or (2) say something important about humans, however, are junk as science.
Similarly, for the main issue here, that is, for what is necessary in sex differences, for the role of nature versus nurture, etc., the results from solid science won't be very important and the very important results won't be solid science. Net, to address the issue scientifically, so far we are STUCKO. Sorry 'bout that.
Second reality check. On the issue of the OP, that is, how to treat girls, young women, and women, each person WILL necessarily take some position. That is, no one gets to decline to choose an answer. We MUST have an answer. We do not have the luxury of no answer, and, from the first reality check, the answer we take on the important parts of the issue will not be from solid science. Sorry 'bout that.
Solid science is great stuff. However, quite generally in life, we have to make decisions without solid science. Sorry 'bout that.
Third reality check. I can assure you that it is actually fairly easy to get things very wrong in treatment of females, and the consequences can be from awful down to fatal. I exaggerate not. I can use Google Earth to give you the coordinates of the tombstone. So, the issue here is SERIOUS.
There is a moral issue: Men don't want to be unfair or cruel to the females. So, here's a practical resolution: Give the girls plenty of opportunity. Give them dolls and also erector sets, white bedroom furniture and also a basketball goal, tell them they are cute, sweet, pretty, darling, adorable, and precious and also explain TCP/IP, DNS, and POP 3, encourage them in both English literature and physics, in both art history and solid geometry, have them help you make chicken salad and also put the snow tires on the car, mop the kitchen floor and also sweep out the garage.
Some people who have tried this practical resolution came to a conclusion: The little girls quickly, strongly moved toward the stereotype for cute, sweet little girls. They played with the dolls and ignored the erector set; they liked art history much more than solid geometry; they were eager enough to mop the kitchen floor but wanted nothing to do with the garage. They were much more eager to be a cooperative member of a group than to strike out on some curiosity driven, independent, creative investigation.
Important information about the girls? Yes. Solid science? No. Did I mention that quite generally in life, we have to make decisions without solid science?
But more is possible: If parents and society push and shove, keep telling the girls to 'perform' well at 'boy activities', then, girls, being eager to please and more obedient, often will. If push them to be independent, autonomous, assertive, self-sufficient, and equal and to resent dependency, passivity, membership, partnership, subservience, etc., then through, say, college, they will. My experience is that, then, too likely (granted, not always) you will find that you have created a VERY 'mixed up' young woman and a weak, sick, or dead limb on the tree and conclude that Mother Nature considered all such issues long before you did and that it's not nice to try to fool Mother Nature.
Here's an easier approach: If only from an 'asymptotic' consideration, place value on her being a strong limb in the tree. Do a really good job taking care of her until can help her find a really good husband, and then help her husband continue to take very good care of her and her children. Have her be good as a wife and mother in a secure, strong family. This thought, perhaps now with feminism really offensive, is not original with me. Instead, in the "Foreword" to
Maggie Scarf, 'Intimate Partners: Patterns in Love and Marriage', Random House, New York, ISBN 0-394-5585-X, 1987.
Dr. Carol Nadelson, past president of the American Psychiatric Association, wrote:
"Traditional marriage is about offspring, security, and caretaking."
If want her to be quite active between her ears and especially busy and productive, then emphasize to her and help her in how much there is to know about helping her children with their emotional, rational, psychological, social, artistic, physical, practical, verbal, quantitative, manual, scientific, technological, and creative problem solving development and understanding of history, business, the economy, people, groups, society, politics, etc., how far and away the most important influence on them, for their academic performance and nearly everything else, is the nurturing they get at home, and how important it is to build and have a secure, strong family and how she can play a central role there. Indeed, she might just take on doing a good job home schooling her children through, say, the International Baccalaureate program, high SAT scores, etc. Let the children get through the Beethoven piano sonatas and the Bach unaccompanied violin pieces, Rudin's 'Principles of Mathematical Analysis', Royden's 'Real Analysis', Breiman's 'Probability', and the 'Feynman Lectures on Physics' -- should keep them busy for a while!
What do you want? Lots of really healthy grandchildren or someone to sweep out the garage?