I think the dangerous thing for people who "come into money" is the ability to follow through on flights of fancy
Dude, that's also the thing that makes people like Howard Hughes so compelling. He was nuts, did crazy stuff, and it kicked butt. Built the biggest plane ever and flew it once. Built a ship with a 2-mile long claw to raise a submarine off the seabed. Had an army of people spread across the US to find him the most, um, pneumatic woman, then cast her in the Outlaw, then called up preachers and conservative groups telling them how immoral it was so they'd protest and give it free publicity (thereby making Jane Rusell a star).
I guess the main concern should be if Rational can ever break even on a product that took years of development.
Um, no. Rational may break even, but if there's another product that does the same job for cheaper then you can come out ahead. Or even does most of the same job for much cheaper. Suppose Purify cost $5000 and saved $6000 worth of debugging time, while electricfence cost nothing and saved $3000 worth of debugging time from that same $6000. You're better off using efence and spending the $3000 worth of debugging time than dropping $5000 on Purify.
In reality, the free tools as of late have really pulled ahead of purify. Between valgrind, Boehm-Weiser, ElectricFence, and EiC you can accomplish much of what purify can do and a lot that it can't. e.g. Boehm-Weiser can find memory leaks in standard code that wouldn't be found without a lot of legwork by valgrind or Purify. I find the combination of valgrind and boehm-weiser to be much more effective than Purify in practice, and it's free.
Doonesbury may not be what it was in the 1970s, but it still has a slightly larger readership than Slashdot. By about 3 orders of magnitude!
Um, that's dubious. Do you have figures for it? Slashdot serves (on average) about 4 million pages a day, even if the average reader reads 10 pages then Doonesbury would need 400 million readers a day to satisfy that readership number. I doubt most registered posters read 10/. pages a day (I don't), and the vast majority of/. readers aren't registered at all.
To put that in perspective, Sunday paper readership is higher than weekday readership and yet only 89 million Americans (on average) read the paper each Sunday (as of 2001). And certainly not everyone who gets a paper reads Doonesbury; sure, UK and other international sales will add something to the total, but I'd be surprised if Doonesbury readership reached 2 orders of magnitude higher, let alone 3.
Larger, yes, but not as large as you intimate.
Sumner
(and/. has 6.6 million unique visitors in total; DB would need 6.6 billion unique readers in total to make your figure accurate on a historical scale)
Sorry, not with you on this one. Controlled crash and good error handling is obviously what you want. But assertions don't get you that! They just alert you that something unexpected is going on, with a cryptic message.
The message doesn't have to be cryptic, though in some cases it's tough to avoid. That's because....
I don't think exposing asserts to the user is a good way to do that. I think checking return values from functions, and handling errors intelligently, would be more valuable ...assertions don't handle the same cases as return value checking. They're (apologize for the buzzphrase) completely orthogonal. Checking the return value (which is obviously almost* always required) helps verify that the function's output was as expected. Assertions are a primitive form of programming by contract, and are primarily a way of checking that the function's input was as expected.
Assertions can catch the sorts of errors that happen when no function returns error but the aggregate behavior of many functions puts things in an inconsistent state.
Sure, it's often more cryptic to say "CircleRadius < 0; aborting". Good assert macros can help that to a degree. But fundamentally, a function knows much less about who it was called _by_ (ie, the case where assertions are helpful) than who it called and why (the case where return value checking is helpful).
Assertions can also be used to verify postconditions after another function is called that don't show up in the return value.
Think of it this way: if assertions didn't help catch things, they wouldn't be used at all. If your program doesn't need them for some reason (you have a static contract checker or something), that's cool. But if you use them in development, why not check for the same error conditions in the live deploy? A few may be far too slow, but most assertions aren't and would be helpful in the live deploy.
Also, look up "programming by contract" some time.
Sumner
*I say "almost" because if you aren't going to take a different action based on the return value then it's not worth checking. Example: you have a systemic failure that requires system exit. You fprintf an error message and exit. If there's no alternative channel to alert the user (e.g. it's before disks have been mounted), there's no reason to check the return value of fprintf since there's nothing you can do to recover.
It's also a good idea to make most assertions lightweight enough that you leave them in the production build
This is an interesting idea. I suspect that usability advocates like Don Norman would shudder at this. The assertions were always things like "pPAP != 0";
What's more of a usability problem, a controlled crash with an error message or silently eating your data without hope of recovery? Early failure is a big point with usability experts. You can easily wrap the assertions as needed; instead of #include , create a "test or print" macro/function that prints a more readable error message.
Who made the old quote about turning off assertions, and where did you read it? I'm interested.
I got the quote wrong. It's C.A.R. Hoare, who wrote "A programmer who turns off assertions in live code is like a pilot who wears a parachute while walking on the ground but removes it when he gets in the air". I think I first read it in Kernighan and Pike's excellent book, "The Practice of Programming", but it's widely cited.
Hoare is one of the first to propose axiomatic methods of program analysis (and he worked extensively with Wirth on the design of Pascal).
He is also credited with:
"inside every large program is a small program struggling to get out."
and
"There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies and the other is to make it so complicated that there are no obvious deficiencies."
If you are a sole person and get hit by a bus, then it is going to take a while to get replacements. But, its the same thing at Mega Consulting: they probably assign the task to some poor H1B working in a closet. If the H1B splits, then it will take a while for the next guy to study the requirements and progress and to get up to speed.
Oh, for sure. It's more of an issue for in-house development, where you can strongly mitigate catastrophic bus failures by having a designated backup for each project who's responsibility it is to stay in touch with the design enough to be able to take over if necessary.
More useful than you may think - betcha never lost it in the couch.
Nope, it didn't reach the couch. So it was always on a shelf in the closet.
The VCR had huge multicoloured buttons, too. The stop button was about 3" by 3". Easily to operate by foot, even with shoes on. Just in case you didn't feel like leaning over.
Eventually the VHS people figured out how to do it, but for the first ten years or so you had to get out of fast forward mode in order to get a picture on the screen.
Our VHS circa 1982 lets you see the picture while you fast-forward. It also has a remote control with a cord on it, which is less than useful.
Still works, though mono audio forced it off the main TV long before DVD did the same for our newer VHS.
What keeps *any* of the bidders from goofing around and sluffing? Being a singleton does not increases the chances of goofery in any way I can see.
Umm,
1 developer on a project. He gets bored/another offer/hit by a bus. Project dies.
3 developers on a project. One gets bored/another offer/hit by a bus. 2 others finish project.
More developers are not (in general) better. But below a certain threshold the danger of losing someone who is critical to getting things done gets high.
There's even a term for this in the industry: "bus factor". If at least 2 people on the project are familiar enough with every part of it that they could, in a pinch, take that part over and finish it, your bus factor is 2. A BF of 2 is generally good enough to make the risk of catastrophic failure quite low. A BF of 1 may be untenable, depending on the project.
Re:"good technology outdone by better marketing"
on
Why VHS Was Better
·
· Score: 4, Informative
It isn't really true. See e.g. http://www.urbanlegends.com/products/beta_vs_vhs.h tml
"True, except for the recording length, Sony pioneered most of the improvements over the years, but the VHS manufacturers caught up to each improvement, usually in less than a year. So, for instance, within a month of Sony's announcement of Beta Hi-Fi, JVC and Panasonsic announced VHS Hi-Fi formats...Comparisons between VCRs with similar features showed no significant differences in performance. In fact, most of the differences could only be seen with sensitive instruments, and likely would never show up on most consumer grade television sets. [5] In particular, the qualitative differences between the two formats were less than the differences between any two samples from the same manufacturer. [8]"
Most theoretical physics (and I mean the pencil-pushing "theory", not the engineering field "experimentation") is really just a subset of applied mathematics.
Not sure exactly how relevant it is, but....
It was Feynman who once said that the study of mathematics per se is almost completely irrelevant to the study of physics. He didn't mean, of course, that you can do physics without mathematics; he meant rather that almost no independent mathematical advances wind up being useful later to physics. Instead, the physicists invent the math they need as they need it. Part of the point being that the funding of mathematics "because what we prove/discover will later be used in exciting new science" is misleading at best, and that physics has always depended on people like the Bernoullis, Newton, and Gauss who invent the math to go along with their physics investigations.
Of course, I was a math major, not a physics guy.;-)
But let me sound off for a moment on one of my pet peeves: EVERYONE should have a balanced education, not just those in the sciences or engineering! It continually annoys me that "geeks" are made to feel sheepish about any lack of "breadth" they may have, while those in the humanities are free to boast about their complete lack of knowledge of science and mathematics, apparently feeling no shame about it.
What university are you at? At CMU, almost everyone (except fine arts dept) had to pass computer skills workshop ("this is a mouse--this is email--this is how you save a file--this is how you make a static web page") and an introductory programming course (C in 1993, probably Java now, just control flow and branching). Fine arts had CSW and some computer graphic design stuff. Everyone had math and science requirements, at least pre-calc, physics, and another science course.
Lip service, sure, but so are the pathetic freshman english courses and handful of humanities electives CS majors could get away with. And realistically, the CS majors _are_ going to find themselves wanting that lit course, or foreign language, or art history class more than the poets are going to want a diff eq class.
Well if you want to get snippy about it, a real _Computer Scientist_ shouldn't care one way or the other what language he's using. I like Java, I like C++, I'm even starting to like C#, but if I don't know how to use a stack, I'm not going to be able to do jack shit with any of them.
True, though there is something to be said for exposure to several classes of programming languages. Especially strongly typed functional language (ML, Haskell, etc) makes demonstrating code proof and other important CS concepts easier, a pointer-driven language (C) is fairly fundamental, something hardware level, and a dynamic language with functional techniques (Lisp, Scheme, smalltalk, python).
But yeah, it's more important to get exposure to algorithms and structures; at CMU, they did control structures and data structures up through linked lists and stacks first semester, fundamental structures and algorithms (memoizing, hashing, graphs, etc) second semester, and more advances algorithms and structures 3rd semester. That left you ready for all the advanced courses after 3 semesters, and ready for some of them after 2.
First semester was offered in Pascal, C, C++, and Java at various points in my career; the others were in ML, Lisp, and a handful of other languages. Choice of language impacted the course contents very little.
On the subject of lockpicks, I don't believe that they are illegal to posess in the US
At the very least, mere possession _is_ illegal in many states. Big ones. And in others, only possession with intent to use criminally is illegal, but possession itself is enough to construe criminal intent (ie the burden of proof is shifted to the defendant once such implements are found). California, New York, and Texas are among the states with anti-lockpick laws.
You still never answered my question about who you were talking about when you said that the LP was headed up by a neofascist kook
That's not what I said. I said "the Libertarian party[...]outwardly purports to be the defender of individual liberties and small government while inwardly being headed up by crazy neofascist kooks who focus more on eliminating corporate income tax than defending free speech". Inwardly many of the most vocal LP advocates I've been exposed to are neofascist kooks with zero interest in individual rights but looking at the LP plank as excellent trappings to relax any sort of corporate regulation. Crazy ones, natch. I have no personal knowledge of e.g. Harry Browne so I'm not intending to slander him; suffice it to say that I've never met more hidden-agenda politics than in the "grassroots" LP party.
Believe me, I thought the LP sounded great when I first heard about it and I went to several meetings. It's just that the members at those meetings turned out to be, well, crazy neofascist kooks.
That's not to say the party plank is a bad one, and I know many good and sane people who are ideological libertarians. I might sit slightly more to the center than there, but not far off.
Again, though, it's a matter of partisan politics corrupting, which was the point of my original post (which, if you reread it, didn't single out the LP on its own). And especially of posturing; if a party is going to go out of its way to use getting the government of of the individuals' back as a marketing tool, it should at least pay lip service to that in it's policies rather than doing a bait-and-switch by pushing almost for pro-corporate policies which aren't the ones that resonated with the majority of the voters in the first place.
The "smallest political quiz" you keep linking divides itself 50/50 between individual rights and economic issues. It'd be nice if LP policy did as well. (And from a political standpoint, at least prioritize free trade and other issues that don't resonate quite so harshly with potential supporters.)
Right now there havn't been many issues that have really been seriously threatening free speech.
Bwahahahaha. For starters, most of/.'s pet legal issues (e.g. Skylarov, DeCSS) have severe 1st ammendment implications. Talking about decryption is illegal, even when done for otherwise legal reasons? That's without even getting into how Bono and other IP extensions abrogate freedom of speech.
Even if you're not a big bill of rights advocate it's not like/. has been exactly silent on these things....
When I was at Microsoft, we would build three versions of Word: the "ship" build (full optimizations), the "debug" build (no optimizations, debug enabled, asserts enabled) and the "hybrid" build (full optimizations, no debug, but asserts still enabled). I still do this.
Here's an experiment: build POVray, gzip, oggenc, or LAME both with and without "-g" (but with the same optimization flags). Benchmark it. There just won't be any difference, even in those very compute-intensive programs.
By shipping a "ship" build that isn't exactly the same as the one you develop and tested with, you're just asking for trouble. You should build and test with the same optimization flags you intend to ship with, and you should ship with the same debug info you tested with.*
It's also a good idea to make most assertions lightweight enough that you leave them in the production build--remember the old quote about turning off assertions for a production build being like removing your seat belts for the big race. It's often handy to have some major, slow, intensive assertions during testing, but many of the smaller "can't happen"-type assertions can save user data and pain if left on in production.
*Yeah, sometimes you may want to turn optimization off for a run or two if you're tracking a particular bug.
Whether you like it or not, corporate income tax is a larger issue than free speech. Although libertarians do strongly believe in free speech, it is not really an issue. Every party believes in free speech.
Exactly the problem. No party is willing to defend free speech. The Libs say they are but they don't either.
Libertarians would rather talk about corporate income tax or the drug war or welfare, because this is where we differ from other political parties
Precisely. On the issues that seem most important, and that your "take the test!" things push hard on, they really don't differ. Apparently they think the current state of the 1st and 4th ammendments is just fine. I want a party that will actually defend the Bill of Rights rather than talk about it and then go off on vastly less important issues.
Well, this was sort of why I brought up the Libs at all in the first place. You can't read the Libertarian platform and not think it's great and worth supporting; the problem is that the candidates don't give anything approaching equal effort to things that look equally important in the platform. In the Libs' case, they say they support free speech and repealing the corporate income tax, but most of them (especially those running for the higher-level offices) only put effort into the latter in practice. They come off like a bait-and-switch salesman, saying we're for A (which everyone wants) and B (which many are ambivalent about, but willing to accept for A) but only truly supporting B.
In the case of the Greens, every candidate I've seen is against free trade agreements prima facia despite whatever their plank may say or direct evidence of substantial benefits to impoverished people resulting from said agreement It's partly a case of PR--you must oppose NAFTA to seem appropriately populist. It's partly a case of mistaken priority--it's not bad for a corporation to get wealthy if the process they're doing it by benefits the individuals, and while many corporate acts are rapacious you can't fall into the "good for them = bad for us" fallacy. And it's partially conflation; the conservatives are for A, B, and C and the populists oppose them; they've shown why A and B are bad, so C must be bad as well. They come off as having excellent goals but policies that don't help achieve those goals. And frankly, even Miss America wants world peace and an end to hunger. It's the policy that's the hard part.
At least, though, Nader was up-front about the goals and willing to yell at reporters when they made stupid assumptions about what he was working for. He'd lay all his beliefs out on the table, both the popular and the unpopular ones. Harry Brown wasn't nearly so upfront, focusing only on civil liberties issues (which are a small part of the LP platform) in most of his media engagements.
However [parties] may now and then answer popular ends, they are likely in the course of time and things to become potent engines by which cunning, ambitious, and unprincipled men will be enabled to subvert the power of the people, and to usurp for themselves the reins of government, destroying afterwards the very engines which have lifted them to unjust dominion.--George Washington
The problem is that countries like Somalia (I have Somali neighbors so I know) get huge shipments of US grain that rot on the docks because the Somali "government" (I use the word loosely) lets the grain rot on the pier instead of distributing it, because it suits their political interests.
Political gamesmanship is a big problem, but it's often overstated. Cultural ignorance is often equally culpable. It was a huge problem in Ethiopia; when you're used to cooking with teff and other native grains, a big shipment of wheat is not nearly as useful to you as it is to people who are used to using it in their daily cooking.
these guys were a minor issue-party, but have evolved into a serious, well-rounded party fighting corporate control of the government and the political process. They even had a good candidate for president in 2000
A major problem with them is that they don't differentiate between slantedly pro-corporate initiatives (e.g. GATT/WTO) and general free-trade initiatives (e.g. NAFTA), which makes supporting them basically impossible for anyone who's spent time in a third-world nation and understands the fundamental importance of spurring economic growth to long-term human equality.
A minor problem is that Nader is an extremely effective consumer advocate who I think has accomplished more there than he would as president; it'd be a shame to lose him.
Oh, well. At least they don't have the problems of the Libertarian party, which outwardly purports to be the defender of individual liberties and small government while inwardly being headed up by crazy neofascist kooks who focus more on eliminating corporate income tax than defending free speech.
In other words, the Greens would be much better off as a generally moderate party with focus on changing 1-2 major issues. Ditto the Libs. But that's a problem with parties in general; they try to force you to accept an entire platform rather than finding out what people want issue by issue.
Heck, I got a 10% speedup in one of my applications here at work just by reordering the members in a structure.
10% isn't that huge, but it bought us enough time to do a proper rewrite with better algorithms (we were pushing up against the point where it would've taken longer than 1 day to do a daily report, after which you start falling hopelessly behind).
Most people that I know that are out of work were laid off. This mean that they get to collect unemployment so yes, they can support themselves with some adjustments. However, if you quit your job, you do not get to collect unemployment.
Except that in practice, most (non-Web) programmers can't get any real unemployment. As soon as you get any job offer, no matter how mediocre, you have to accept it or lose your unemployment benefits. Given that and the hassle of filing and submitting weekly job application paperwork, most of the ones I knew didn't even bother filing for unemployment.
It's only worth it if you don't think you can get any kind of job offer; some of the Web guys I knew filed because of the glut of Web programmers on the market, and some of the telecom guys for the same reason.
Anyway, like I said if you have a job and are _planning_ to leave it you can take a couple months to sock away some savings. And yes, it requires some lifestyle changes. Get rid of cable/satellite, broadband, and other extras (tivo? web hosting service?). If you're in an area where you can get by with public transit (even if it's slower) ditch the car, save insurance and car payments--realize you can take a cab fairly frequently and still come out well ahead (on top of whatever cash you can get from the car sale). Go with a land-line or a cell phone, not both.
It can be done, and doesn't require living in squalor or even living in college conditions. About the only time it's not feasible with a couple month's preparation is if you have children and your spouse is unemployed.
I think the dangerous thing for people who "come into money" is the ability to follow through on flights of fancy
Dude, that's also the thing that makes people like Howard Hughes so compelling. He was nuts, did crazy stuff, and it kicked butt. Built the biggest plane ever and flew it once. Built a ship with a 2-mile long claw to raise a submarine off the seabed. Had an army of people spread across the US to find him the most, um, pneumatic woman, then cast her in the Outlaw, then called up preachers and conservative groups telling them how immoral it was so they'd protest and give it free publicity (thereby making Jane Rusell a star).
And all those billionaires who want to parachute out of a balloon at over 15000 feet just to beat (google for "Project Excelsior" for a description of the original).
Sure, it's not _useful_. But it's entertaining as hell.
Sumner
I guess the main concern should be if Rational can ever break even on a product that took years of development.
Um, no. Rational may break even, but if there's another product that does the same job for cheaper then you can come out ahead. Or even does most of the same job for much cheaper. Suppose Purify cost $5000 and saved $6000 worth of debugging time, while electricfence cost nothing and saved $3000 worth of debugging time from that same $6000. You're better off using efence and spending the $3000 worth of debugging time than dropping $5000 on Purify.
In reality, the free tools as of late have really pulled ahead of purify. Between valgrind, Boehm-Weiser, ElectricFence, and EiC you can accomplish much of what purify can do and a lot that it can't. e.g. Boehm-Weiser can find memory leaks in standard code that wouldn't be found without a lot of legwork by valgrind or Purify. I find the combination of valgrind and boehm-weiser to be much more effective than Purify in practice, and it's free.
Sumner
Doonesbury may not be what it was in the 1970s, but it still has a slightly larger readership than Slashdot. By about 3 orders of magnitude!
/. pages a day (I don't), and the vast majority of /. readers aren't registered at all.
/. has 6.6 million unique visitors in total; DB would need 6.6 billion unique readers in total to make your figure accurate on a historical scale)
Um, that's dubious. Do you have figures for it? Slashdot serves (on average) about 4 million pages a day, even if the average reader reads 10 pages then Doonesbury would need 400 million readers a day to satisfy that readership number. I doubt most registered posters read 10
To put that in perspective, Sunday paper readership is higher than weekday readership and yet only 89 million Americans (on average) read the paper each Sunday (as of 2001). And certainly not everyone who gets a paper reads Doonesbury; sure, UK and other international sales will add something to the total, but I'd be surprised if Doonesbury readership reached 2 orders of magnitude higher, let alone 3.
Larger, yes, but not as large as you intimate.
Sumner
(and
Sorry, not with you on this one. Controlled crash and good error handling is obviously what you want. But assertions don't get you that! They just alert you that something unexpected is going on, with a cryptic message.
...assertions don't handle the same cases as return value checking. They're (apologize for the buzzphrase) completely orthogonal. Checking the return value (which is obviously almost* always required) helps verify that the function's output was as expected. Assertions are a primitive form of programming by contract, and are primarily a way of checking that the function's input was as expected.
The message doesn't have to be cryptic, though in some cases it's tough to avoid. That's because....
I don't think exposing asserts to the user is a good way to do that. I think checking return values from functions, and handling errors intelligently, would be more valuable
Assertions can catch the sorts of errors that happen when no function returns error but the aggregate behavior of many functions puts things in an inconsistent state.
Sure, it's often more cryptic to say "CircleRadius < 0; aborting". Good assert macros can help that to a degree. But fundamentally, a function knows much less about who it was called _by_ (ie, the case where assertions are helpful) than who it called and why (the case where return value checking is helpful).
Assertions can also be used to verify postconditions after another function is called that don't show up in the return value.
Think of it this way: if assertions didn't help catch things, they wouldn't be used at all. If your program doesn't need them for some reason (you have a static contract checker or something), that's cool. But if you use them in development, why not check for the same error conditions in the live deploy? A few may be far too slow, but most assertions aren't and would be helpful in the live deploy.
Also, look up "programming by contract" some time.
Sumner
*I say "almost" because if you aren't going to take a different action based on the return value then it's not worth checking. Example: you have a systemic failure that requires system exit. You fprintf an error message and exit. If there's no alternative channel to alert the user (e.g. it's before disks have been mounted), there's no reason to check the return value of fprintf since there's nothing you can do to recover.
It's also a good idea to make most assertions lightweight enough that you leave them in the production build
This is an interesting idea. I suspect that usability advocates like Don Norman would shudder at this. The assertions were always things like "pPAP != 0";
What's more of a usability problem, a controlled crash with an error message or silently eating your data without hope of recovery? Early failure is a big point with usability experts. You can easily wrap the assertions as needed; instead of #include , create a "test or print" macro/function that prints a more readable error message.
Who made the old quote about turning off assertions, and where did you read it? I'm interested.
I got the quote wrong. It's C.A.R. Hoare, who wrote "A programmer who turns off assertions in live code is like a pilot who wears a parachute while walking on the ground but removes it when he gets in the air". I think I first read it in Kernighan and Pike's excellent book, "The Practice of Programming", but it's widely cited.
Hoare is one of the first to propose axiomatic methods of program analysis (and he worked extensively with Wirth on the design of Pascal).
He is also credited with:
"inside every large program is a small program struggling to get out."
and
"There are two ways of constructing a software design. One way is to make it so simple that there are obviously no deficiencies and the other is to make it so complicated that there are no obvious deficiencies."
Sumner
If you are a sole person and get hit by a bus, then it is going to take a while to get replacements. But, its the same thing at Mega Consulting: they probably assign the task to some poor H1B working in a closet. If the H1B splits, then it will take a while for the next guy to study the requirements and progress and to get up to speed.
Oh, for sure. It's more of an issue for in-house development, where you can strongly mitigate catastrophic bus failures by having a designated backup for each project who's responsibility it is to stay in touch with the design enough to be able to take over if necessary.
That sentence sucked. Oh, well.
Sumner
More useful than you may think - betcha never lost it in the couch.
Nope, it didn't reach the couch. So it was always on a shelf in the closet.
The VCR had huge multicoloured buttons, too. The stop button was about 3" by 3". Easily to operate by foot, even with shoes on. Just in case you didn't feel like leaning over.
Sumner
Eventually the VHS people figured out how to do it, but for the first ten years or so you had to get out of fast forward mode in order to get a picture on the screen.
Our VHS circa 1982 lets you see the picture while you fast-forward. It also has a remote control with a cord on it, which is less than useful.
Still works, though mono audio forced it off the main TV long before DVD did the same for our newer VHS.
Sumner
What keeps *any* of the bidders from goofing around and sluffing? Being a singleton does not increases the chances of goofery in any way I can see.
Umm,
1 developer on a project. He gets bored/another offer/hit by a bus. Project dies.
3 developers on a project. One gets bored/another offer/hit by a bus. 2 others finish project.
More developers are not (in general) better. But below a certain threshold the danger of losing someone who is critical to getting things done gets high.
There's even a term for this in the industry: "bus factor". If at least 2 people on the project are familiar enough with every part of it that they could, in a pinch, take that part over and finish it, your bus factor is 2. A BF of 2 is generally good enough to make the risk of catastrophic failure quite low. A BF of 1 may be untenable, depending on the project.
Sumner
True. See e.g. Urbanlegends.com's beta vs vhs page.
Sumner
It isn't really true. See e.g. http://www.urbanlegends.com/products/beta_vs_vhs.h tml
"True, except for the recording length, Sony pioneered most of the improvements over the years, but the VHS manufacturers caught up to each improvement, usually in less than a year. So, for instance, within a month of Sony's announcement of Beta Hi-Fi, JVC and Panasonsic announced VHS Hi-Fi formats...Comparisons between VCRs with similar features showed no significant differences in performance. In fact, most of the differences could only be seen with sensitive instruments, and likely would never show up on most consumer grade television sets. [5] In particular, the qualitative differences between the two formats were less than the differences between any two samples from the same manufacturer. [8]"
Sumner
Most theoretical physics (and I mean the pencil-pushing "theory", not the engineering field "experimentation") is really just a subset of applied mathematics.
;-)
Not sure exactly how relevant it is, but....
It was Feynman who once said that the study of mathematics per se is almost completely irrelevant to the study of physics. He didn't mean, of course, that you can do physics without mathematics; he meant rather that almost no independent mathematical advances wind up being useful later to physics. Instead, the physicists invent the math they need as they need it. Part of the point being that the funding of mathematics "because what we prove/discover will later be used in exciting new science" is misleading at best, and that physics has always depended on people like the Bernoullis, Newton, and Gauss who invent the math to go along with their physics investigations.
Of course, I was a math major, not a physics guy.
Sumner
But let me sound off for a moment on one of my pet peeves: EVERYONE should have a balanced education, not just those in the sciences or engineering! It continually annoys me that "geeks" are made to feel sheepish about any lack of "breadth" they may have, while those in the humanities are free to boast about their complete lack of knowledge of science and mathematics, apparently feeling no shame about it.
What university are you at? At CMU, almost everyone (except fine arts dept) had to pass computer skills workshop ("this is a mouse--this is email--this is how you save a file--this is how you make a static web page") and an introductory programming course (C in 1993, probably Java now, just control flow and branching). Fine arts had CSW and some computer graphic design stuff. Everyone had math and science requirements, at least pre-calc, physics, and another science course.
Lip service, sure, but so are the pathetic freshman english courses and handful of humanities electives CS majors could get away with. And realistically, the CS majors _are_ going to find themselves wanting that lit course, or foreign language, or art history class more than the poets are going to want a diff eq class.
Sumner
Well if you want to get snippy about it, a real _Computer Scientist_ shouldn't care one way or the other what language he's using. I like Java, I like C++, I'm even starting to like C#, but if I don't know how to use a stack, I'm not going to be able to do jack shit with any of them.
True, though there is something to be said for exposure to several classes of programming languages. Especially strongly typed functional language (ML, Haskell, etc) makes demonstrating code proof and other important CS concepts easier, a pointer-driven language (C) is fairly fundamental, something hardware level, and a dynamic language with functional techniques (Lisp, Scheme, smalltalk, python).
But yeah, it's more important to get exposure to algorithms and structures; at CMU, they did control structures and data structures up through linked lists and stacks first semester, fundamental structures and algorithms (memoizing, hashing, graphs, etc) second semester, and more advances algorithms and structures 3rd semester. That left you ready for all the advanced courses after 3 semesters, and ready for some of them after 2.
First semester was offered in Pascal, C, C++, and Java at various points in my career; the others were in ML, Lisp, and a handful of other languages. Choice of language impacted the course contents very little.
Sumner
On the subject of lockpicks, I don't believe that they are illegal to posess in the US
At the very least, mere possession _is_ illegal in many states. Big ones. And in others, only possession with intent to use criminally is illegal, but possession itself is enough to construe criminal intent (ie the burden of proof is shifted to the defendant once such implements are found). California, New York, and Texas are among the states with anti-lockpick laws.
I am not a lawyer, this is not legal advice.
Sumner
You still never answered my question about who you were talking about when you said that the LP was headed up by a neofascist kook
/.'s pet legal issues (e.g. Skylarov, DeCSS) have severe 1st ammendment implications. Talking about decryption is illegal, even when done for otherwise legal reasons? That's without even getting into how Bono and other IP extensions abrogate freedom of speech.
/. has been exactly silent on these things....
That's not what I said. I said "the Libertarian party[...]outwardly purports to be the defender of individual liberties and small government while inwardly being headed up by crazy neofascist kooks who focus more on eliminating corporate income tax than defending free speech". Inwardly many of the most vocal LP advocates I've been exposed to are neofascist kooks with zero interest in individual rights but looking at the LP plank as excellent trappings to relax any sort of corporate regulation. Crazy ones, natch. I have no personal knowledge of e.g. Harry Browne so I'm not intending to slander him; suffice it to say that I've never met more hidden-agenda politics than in the "grassroots" LP party.
Believe me, I thought the LP sounded great when I first heard about it and I went to several meetings. It's just that the members at those meetings turned out to be, well, crazy neofascist kooks.
That's not to say the party plank is a bad one, and I know many good and sane people who are ideological libertarians. I might sit slightly more to the center than there, but not far off.
Again, though, it's a matter of partisan politics corrupting, which was the point of my original post (which, if you reread it, didn't single out the LP on its own). And especially of posturing; if a party is going to go out of its way to use getting the government of of the individuals' back as a marketing tool, it should at least pay lip service to that in it's policies rather than doing a bait-and-switch by pushing almost for pro-corporate policies which aren't the ones that resonated with the majority of the voters in the first place.
The "smallest political quiz" you keep linking divides itself 50/50 between individual rights and economic issues. It'd be nice if LP policy did as well. (And from a political standpoint, at least prioritize free trade and other issues that don't resonate quite so harshly with potential supporters.)
Right now there havn't been many issues that have really been seriously threatening free speech.
Bwahahahaha. For starters, most of
Even if you're not a big bill of rights advocate it's not like
Sumner
When I was at Microsoft, we would build three versions of Word: the "ship" build (full optimizations), the "debug" build (no optimizations, debug enabled, asserts enabled) and the "hybrid" build (full optimizations, no debug, but asserts still enabled). I still do this.
Here's an experiment: build POVray, gzip, oggenc, or LAME both with and without "-g" (but with the same optimization flags). Benchmark it. There just won't be any difference, even in those very compute-intensive programs.
By shipping a "ship" build that isn't exactly the same as the one you develop and tested with, you're just asking for trouble. You should build and test with the same optimization flags you intend to ship with, and you should ship with the same debug info you tested with.*
It's also a good idea to make most assertions lightweight enough that you leave them in the production build--remember the old quote about turning off assertions for a production build being like removing your seat belts for the big race. It's often handy to have some major, slow, intensive assertions during testing, but many of the smaller "can't happen"-type assertions can save user data and pain if left on in production.
*Yeah, sometimes you may want to turn optimization off for a run or two if you're tracking a particular bug.
Sumner
Whether you like it or not, corporate income tax is a larger issue than free speech. Although libertarians do strongly believe in free speech, it is not really an issue. Every party believes in free speech.
Exactly the problem. No party is willing to defend free speech. The Libs say they are but they don't either.
Libertarians would rather talk about corporate income tax or the drug war or welfare, because this is where we differ from other political parties
Precisely. On the issues that seem most important, and that your "take the test!" things push hard on, they really don't differ. Apparently they think the current state of the 1st and 4th ammendments is just fine. I want a party that will actually defend the Bill of Rights rather than talk about it and then go off on vastly less important issues.
Sumner
This is not how I read the platform
Well, this was sort of why I brought up the Libs at all in the first place. You can't read the Libertarian platform and not think it's great and worth supporting; the problem is that the candidates don't give anything approaching equal effort to things that look equally important in the platform. In the Libs' case, they say they support free speech and repealing the corporate income tax, but most of them (especially those running for the higher-level offices) only put effort into the latter in practice. They come off like a bait-and-switch salesman, saying we're for A (which everyone wants) and B (which many are ambivalent about, but willing to accept for A) but only truly supporting B.
In the case of the Greens, every candidate I've seen is against free trade agreements prima facia despite whatever their plank may say or direct evidence of substantial benefits to impoverished people resulting from said agreement It's partly a case of PR--you must oppose NAFTA to seem appropriately populist. It's partly a case of mistaken priority--it's not bad for a corporation to get wealthy if the process they're doing it by benefits the individuals, and while many corporate acts are rapacious you can't fall into the "good for them = bad for us" fallacy. And it's partially conflation; the conservatives are for A, B, and C and the populists oppose them; they've shown why A and B are bad, so C must be bad as well. They come off as having excellent goals but policies that don't help achieve those goals. And frankly, even Miss America wants world peace and an end to hunger. It's the policy that's the hard part.
At least, though, Nader was up-front about the goals and willing to yell at reporters when they made stupid assumptions about what he was working for. He'd lay all his beliefs out on the table, both the popular and the unpopular ones. Harry Brown wasn't nearly so upfront, focusing only on civil liberties issues (which are a small part of the LP platform) in most of his media engagements.
Sumner
As I am, and always have been.
Sumner
The problem is that countries like Somalia (I have Somali neighbors so I know) get huge shipments of US grain that rot on the docks because the Somali "government" (I use the word loosely) lets the grain rot on the pier instead of distributing it, because it suits their political interests.
Political gamesmanship is a big problem, but it's often overstated. Cultural ignorance is often equally culpable. It was a huge problem in Ethiopia; when you're used to cooking with teff and other native grains, a big shipment of wheat is not nearly as useful to you as it is to people who are used to using it in their daily cooking.
Sumner
these guys were a minor issue-party, but have evolved into a serious, well-rounded party fighting corporate control of the government and the political process. They even had a good candidate for president in 2000
A major problem with them is that they don't differentiate between slantedly pro-corporate initiatives (e.g. GATT/WTO) and general free-trade initiatives (e.g. NAFTA), which makes supporting them basically impossible for anyone who's spent time in a third-world nation and understands the fundamental importance of spurring economic growth to long-term human equality.
A minor problem is that Nader is an extremely effective consumer advocate who I think has accomplished more there than he would as president; it'd be a shame to lose him.
Oh, well. At least they don't have the problems of the Libertarian party, which outwardly purports to be the defender of individual liberties and small government while inwardly being headed up by crazy neofascist kooks who focus more on eliminating corporate income tax than defending free speech.
In other words, the Greens would be much better off as a generally moderate party with focus on changing 1-2 major issues. Ditto the Libs. But that's a problem with parties in general; they try to force you to accept an entire platform rather than finding out what people want issue by issue.
Sumner
Heck, I got a 10% speedup in one of my applications here at work just by reordering the members in a structure.
10% isn't that huge, but it bought us enough time to do a proper rewrite with better algorithms (we were pushing up against the point where it would've taken longer than 1 day to do a daily report, after which you start falling hopelessly behind).
Sumner
Nor Davem, Ted T'so, Stephen Tweedie, Ingo, Rik Riel, etc.
Indeed, not a single major Linux kernel developer other than Linus. Pretty weak.
Sumner
Most people that I know that are out of work were laid off. This mean that they get to collect unemployment so yes, they can support themselves with some adjustments. However, if you quit your job, you do not get to collect unemployment.
Except that in practice, most (non-Web) programmers can't get any real unemployment. As soon as you get any job offer, no matter how mediocre, you have to accept it or lose your unemployment benefits. Given that and the hassle of filing and submitting weekly job application paperwork, most of the ones I knew didn't even bother filing for unemployment.
It's only worth it if you don't think you can get any kind of job offer; some of the Web guys I knew filed because of the glut of Web programmers on the market, and some of the telecom guys for the same reason.
Anyway, like I said if you have a job and are _planning_ to leave it you can take a couple months to sock away some savings. And yes, it requires some lifestyle changes. Get rid of cable/satellite, broadband, and other extras (tivo? web hosting service?). If you're in an area where you can get by with public transit (even if it's slower) ditch the car, save insurance and car payments--realize you can take a cab fairly frequently and still come out well ahead (on top of whatever cash you can get from the car sale). Go with a land-line or a cell phone, not both.
It can be done, and doesn't require living in squalor or even living in college conditions. About the only time it's not feasible with a couple month's preparation is if you have children and your spouse is unemployed.
Sumner