Slashback: Crusher, Satellites, Silence
That fetid odor continues to rise. cconnell writes "In September, Slashdot and Developer.com were kind enough to publish an article I wrote titled Most Software Stinks!. The article generated 748 comments on slashdot, making it one of the most active stories in recent months. Here is a follow up piece I wrote which responds to some of the comments."
Silence, fool! The Panther! writes "Here's an article I wrote that shows step by step how to achieve some measure of silence in my home office. It's different from most in that it approaches damping existing hardware rather than buying new. Some ideas were suggestions of Slashdot readers from a previous article. Lots of photos for the reading-impaired." Hemos may have been going for a rather normal-looking but quiet PC, but The Panther sure isn't.
Step 39: With your dremel strapped to the hamster, gently nudge the billiard ball ... Now that the famous pencil trick isn't an option for would-be AMD overclockers, more complicated means have been found to unlock and reclock. Carlos writes: "I saw that you have a scoopage on the unlocking of the Athlon XP by Tom's Hardware and there is a better and more reversible way by VR-Zone."
200 years is a long time even for a Congressman. Michael H. writes "Woohoo! Congress has given a $30 million shot in the arm to the Pluto-Kuiper Belt mission, previously feared canceled. CNN story here. There's still no guarantee that it won't be canceled later, but at least Congress is listening to the fact that it would take ~200 years for the next window if we missed this one."
Hey, that guy's too old to be a kernel maintainer -- we'll make him an actor. bahamat wrote yesterday: "I'm hanging out in Wil Wheaton's chat room (#rfb on undernet) and he's just announced that he's going to be making a cameo as Wesley Crusher in the new Star Trek X." Apparently, the news hit quite a few readers, too -- and for those who haven't, check out our interview with Wil. Maybe he'll get to be on The Tick, too.
I think I like that one better when I saw it the first time when it was called Star Wars...
Wesley Crusher is my favorite character!!!!!
;)
But quite a few years have past... I hope the SF people can make Wil look young again
Sig you!
I hear Data is supposed to die in this upcoming Star Trek movie. Is there any truth to this?
---------
Fuck you, motherfucker. Fuck yous to: Rob "Taco-Snotter" Malda, Homos, Kowboi Kneel, and RMS.
His channel is going to get quite a slashdotting for this. I hope that the SNR doesn't drop /that/ much.
Good Luck, Wil!
Colin
Colin Davis
Seriously, it would be cool if he was on The Tick, but even better if he was Sweater Boy or something.
I mean, think about the banter between Wesley Crusher and the Blue Icon of Justice!
-
--- Will in Seattle - What are you doing to fight the War?
Friends, Romans, and geeks -- Dennis Lee Schwandt Will Now Be Known As "D.J."! Please remember this when addressing him!
- Kewl Mojo-man
Remove the fans from the machines. Duh.
...did you do to that webpage? The one about the quiet PC. All the text is there but all the images are scrunched up, overlapping, in the upper left hand corner. I'm interested but not so much that I'm going to download and fix this braindead web design.
324006
This article takes me back to a previous job and one of my co-workers. He was fanatic about removing all 'noise' from his office. His PC being the most evil of all noise makers.
He went to the trouble of locating a 6V power source in the PC and then rewiring the fans from their 12V source to the lower power.
The PC was also wrapped in various forms of egg crate foam to reduce vibration and further dampen noise.
When he started complaining about the flourescent lighting in the building we had to warn him that no re-wiring was allowed!
Wil Wheaton should be on The Tick.. as Wesley Crusher. Then the Tick can finally kill Wesley, and when Wil goes to Star Trek conventions, all the people with "Die Wesley" buttons will be behind the times.
Wesley's dead, dude.
...well-designed software still needs clarifying comments.
Any programmer knows that commenting your code is very helpful. I have written small programs for myself without comments. Now when I go back to them, it is very hairy to know what I was thinking and what it is supposed to do at that time. Comments are also like road signs. They help you understand what the program is are doing, and it is executed. Just ask any hardcore programmer, they will agree. Thanks for the insight.
I mostly use my FreeBSD box for programming. I don't even use X that much. I am curious as too how far I would have to clock down a newer processor so as to not need a fan at all. Not many ideas for the PSU other than moving it though.
Knowledge Speaks, Wisdom Listens -- Jimi Hendrix
Will Wheaton as "The Ensign-uator".
While most characters have only a few great lines that have double meanings, everything he says will be a stream of double and tripple ententres (sp?).
JET Program: see Japan, meet intere
His humor is postmodern - his funny is based on the fact that Deliverance and Trek star Wil Wheaton is making the jokes. That doesn't make it bad humor - just self-referential.
Goat sex free since 2001
Allow me to point you to Wil's previous comment on the interview.
Summary: he was joking.
When this story was first posted, an alert Slashdotter pointed out that the 200-year figure was not generally agreed upon, because using Venus as the gravity slingshot (actually, it's more of a trebuchet , isn't it?) would allow launching a mission in any year. Plus, there's no real compelling evidence that the atmosphere will freeze out during the Plutonian winter.
Don't get me wrong—I do want to see a mission to Pluto in my lifetime, but I just want to get the facts straight. Anyone with supporting data either way?
overclocking new Athlons the kindler, gentler way Being an active figure in the kindling community, I'm always looking for the true kindler way to do things. I've been concerned lately that a lot of kindling I'm seeing these days just doesn't cut it compared to the kindling we used to have back in the good old "golden days of kindling". It's good to see that someone is still concerned about doing things the kindler way.
I used to bulls-eye womp-rats in my pants
Since a sizeable portion of articles are just links to the BBC and Salon, why not just have slashboxes for them instead of posting front page stories on their articles? I'm not talking about this particular story but it seems that in a given week, half of the BBCs total number of science and tech articles (and what a crappy source for such articles!) appear on the front page.
Can you say lame?
(aka "stating the bleeding obvious")
He went to the trouble of locating a 6V power source in the PC and then rewiring the fans from their 12V source to the lower power.
Obviously that's going to reduce the fans' cooling performance, with (potentially) baaaaaad effects on your system component lifetimes, even if the magic smoke doesn't escape immediately... :-)
Because "software engineering" (I hate that name, its programming gadammit) is not primarily implementation. Building a bridge requires very litte groundbreaking design: you take a typically take a known bridge concept, and specialize it for the terrain. The tough part is getting it implemented on time and in budget, with tons of logistic hurdles, and avoiding material disaster.
Programming on the other hand is a continuous design process. Implementation is a non-problem, its an ongoing architecture process. (Imagine trying to design a 20 mile long building with 7-10 architects, each with their own unique style)
On top of that, its all non-visual. An architect can look at rendered pictures of what he is designing to get an intuitive feel for its correctness, whereas a programmer must form his image without the benefit of evolved human spacial perception.
Requirements analysis for a bridge is so simple a child can grok it: "something i can walk over the river on". For your typical programming job requirements are much more nebulous: the customer doesnt really know what they want half the time (but theyll know it when they see it).
The whole analogy between Contruction Engineering and The Art of Programming is flawed, otherwise a completed contruction project would be a 40 foot high stack of blueprints that are suppossed to solve a problem that nobody fully understands.
Take cover man!!!!
If making a complex program is anything like putting up a large building, then we shouldn't be suprised if most programs are seriously flawed. We've only been doing software engineering for a few decades (somewhere between 1 and 12, depending on how you define the concept). Builders and architects have been honing their skill set for for several thousand years. And they still screw up occasionaly. You can argue that such failures are tragic, but are necessary for engineering to advance.
Now that the famous pencil trick isn't an option for would-be AMD overclockers
What exactly is this famous pencil trick?
(don't bother modding up for a stupid question, just bear with my ignorance and maybe someone can clue me in?)
Mr. Connell makes the excellent point that some engineering problems -- anything from difficult bridge designs to going to the moon -- are every bit as complicated as the software we produce.
... well, everything. None of the early stuff is quite good enough yet. Don't fool yourself into thinking Linux is the end of the road in operating systems, for example. Software is immature. We're forging ahead on every front at once, before the basic pieces are in place, and this will necessarily strain the industry. Once the infrastructure settles down, once we don't need as many projects going on, natural consolidation will lead to more people on each team and better quality.
I agree.
However, it's important to consider one thing -- how many bridges are built every year? How many have as many challenges as the Clark Bridge? Not many, certainly. How much software is written in a year?
If I had, say, three years and millions of dollars to design every piece of software I write, with lots of subordinates double-checking everything I do, well then my code would be perfect as well. The fact is, however, that we write an awful lot more software every year than we build engineering feats, and that has a lot to do with the quality issue. If every program were written over a period of years by a dedicated team of engineers backed by serious budgets, there wouldn't be nearly as much crappy software. However, there's a lot more software hacked together by one guy working out of his garage -- and I daresay if we built bridges that way, a lot of them would fall down.
"So," says the critic, "we just need to design software as seriously as we design bridges."
Not really, I respond. For one thing, our need for software is *really high* right now. We need tons of it -- web browsers, and word processors, and operating systems, and filesystems, and
When civil engineering was immature, a lot of bridges fell down, too, before everything was worked out. I doubt too many people stood around saying "You idiots! Every wagon we design works! Why not bridges?!?" At that time, building bridges was so difficult that it was amazing it ever worked. If it fell down, you just built it stronger and hoped for the best. We've come a long way since then.
I think we're at a similar point in software engineering. Sure, some of our stuff really sucks, but it's such a new field that it's really amazing that we get anything done at all. I frankly think it's unreasonable to expect the field to have matured overnight.
Maybe I'm just not as picky as some people, maybe the cynicism of old age is setting in. But I really don't feel that there's any need for a "Grab the torches and pitchforks! We improve software quality *now*!" movement. Things are getting better, and they will continue to as the market matures. Maybe we should just let it.
ZFS: because love is never having to say fsck
who cannot stand the Wesley Crusher character?
The construction analogy is not perfect (no analogy is) and you can argue that it's seriously flawed. But I see one point of similarity that's hard to avoid: reducing all of software creation to "programming" is as simplistic as reducing all construction to masonry, carpentry, and welding.
It could be worse. There are a lot of classic engineers who think that software isn't engineering unless you solve some sort of real-world problem. So AutoCad is a product of Software Engineering, but Linux or Mozilla aren't.
It's well worth it. I think the current interest in quiet PCs is encouraging. Computers are plenty fast for most of us, so the next big push is going to be making them easier to live with. FireWire/USB, screwless cases, and "quiet" PCs are going to be increasingly popular in the future. I think that Apple's quiet and handy little Cube was a hint of things to come. Too bad they overcharged...
Interestingly enough, the automobile industry followed a lot of the same trends. Horsepower and size were initially everything. There were always the economy models, but the real push was for bigger and faster cars. Now that even a Honda Civic has enough horsepower to get the job done, people are buying for different reasons. Style, comfort, and ease of use are BIG selling points for cars now, while horsepower is just another "nice feature" and the power enthusiast is relegated to a niche market.
You can already see the trend at work. The Athlon is a kick-ass processor, but needing a monster heatsink and fans doesn't make them easy to live with. Ditto for the P4. The Crusoe is making inroads right now just for its' low heat output and the fact that it's "good enough". The main selling point for Seagate's Barracuda ATA IV is its' silence, despite the swarm of larger or faster drives (I bought one). Bulky/noisy/hot overclocker machines will always be there, but I'd look for mainstream PCs to get a LOT more friendly in the next couple years.
This
200 years is a long time even for a Congressman.
Yeah, 200 years is a long time. I wonder why Congress didn't take advantage of this when our country was just beginning about 200 years ago. If they had, imagine how much smarter we'd be today.
Did it ever occur to you that he was using sarcasm to illustrate his points??
So climate's changing. So what? It has always changed. The big news would be if it wasn't changing. - Dr. Philip Stone
I worked as a Civil engineer for 7 years before switching over to IT fulltime 5 years ago. I am afraid that all these analogies are wrong. A *LOT* of engineering projects run over budget and *MOST* of them run over time. The only real difference is that most clients don't come to you halfway through building the bridge and tell you to use a suspension system instead of plain old columns. (If they do, the engineer politely tells them to go away as they should have come up with those ideas during the design phase)Therein lies the biggest problem facing software engineering. The client always, repeat always wants to add or change features as you go along. This is OK if it comes during the design phase and not the build phase which is unfortunately when most clients first really realise what they want.
Three words: Get a life.
I think that most of us know that he does indeed post on Slashdot. In fact, he said as much in his interview with Slashdot.
A little research goes a long way, Anton.
WTF is Star Trek X?
Never heard of it. But I do admit, in Australia we're not exactly "in the loop" as far as new shit in America is concerned.
A link or some other descriptive item would be nice.
Thanks.
bahamat wrote yesterday...
So did someone else - scroll down...
*sniff*
2001-11-14 04:03:53 Wil Wheaton will be in Star Trek X (articles,movies) (rejected)
Dang. It was worth a shot.
Posted by wil @ 11/13/2001 08:17 PM PST
So, who's the editor that saw a submission from CleverNickName in the queue regarding his cameo in STX and rejected it?
Be sure to read the item linked above; LeVar Burton went to bat for Wil, and came through. Now, that's a friend.
Someday, you're going to die. Get over it.
So when I say I dont believe that, I am being honest. All the following rant is based upon what I have experienced "in the trenches", so to speak. Mayhaps there is an more idealized place in the world where i am wrong (but I doubt it).
I've never met a "Software Engineer" who was an "Integrator" who did anything usefull without writing code. Those ones who did not know how to were absolutely useless. Those that did know how but did not implement were continuously running into the impermeable wall of "Reality Check" when they had to be informed that their snooty design couldnt work.
Any decent implementor on the other hand, had to be a designer/integrator almost by definition, becasuse there were never any rigourous enough requirements to be a tunnel visioned "implementor". Getting requirements that fine grained is apparently equivalent to writing the code.
If you are a high-level code "Architect" who thinks that implementing involves solving the same old simple subproblems, then you havent been reusing code very well. Check your abstraction level and start over.
You will find the truth: Software design *is* software implementation. There are no "Software Engineers", there are only Programmers.
If you draw a pentagon on the surface of the chip with a pencil, then your processor becomes invincible, and runs at 666 GHz. This is also known as the "pentagram of protection" trick.
fetid: having an offensive odor
fetid odor: an odor having an offensive odor
I don't know much about the actual building of bridges but the Bridge Builder game gave me a much deeper appreciation of the physics behind bridges. Plus, it was a fun way to fritter away a few hours on a rainy afternoon. Check it out.
That character and actor were the WORST thing to hit that series. Turn the channel to 90210 for your entertainment moron.
Nonono. The point is the comments are to tell you what the code was supposed to do.
(snippage)
Whereas without the comments, the clearly written code can be doing the wrong thing and you won't know.
I hope you were being funny. The LAST thing you want to do is assume the comments are right and change the code in a mature product. Often times, in the pressure of maintenance, people will fix a bug (read: change the code) and neglect to change the comment (yes this is EVIL but it is done).
Comments are great, but always check the code to make sure it matches the comments, and if the code is self documenting, all the better. They let us have long variable names - use them for something descriptive. Long method names ditto. If the code and the comments don't agree, that's a snarly situation and not half so simple as "just fix the code".
And by the way, DON'T EVER CHANGE THE CODE WITHOUT CHANGING THE RELEVANT COMMENTS... EVER...EVER....EVER....ON PAIN OF DEATH....
-- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
that they named a Star Trek character after a Quake demo!
Netscape 4.x's CSS is BROKEN it does things WRONG. One can have perfictly compliant HTML+CSS and have it fucked to hell in netscape.
Netscape 4.x is a horrid, horrid peice of shit. If you still use it, turn CSS fucking off, if you don't then don't bitch about shit not working, it's your own damn fault.
autopr0n is like, down and stuff.
It just fucks it up. You can turn CSS of, and then things will work again.
I had a page that would work fine on any version of netscape after and before netscape 4. It would also work fine in netscape 4 with CSS turned off.
CSS on, and netscape would simply drop the main table.
Netscape four is a blight on the web and should be killed as soon as possible.
autopr0n is like, down and stuff.
As someone who has had the joys of engineering training in Colleges, University, and the big outside world, let me ask you this, Mr. Aspiring (and I think a bit naive) Software Engineer:
You don't have to worry about the safety of people using your software products? Not if your application just bitshuffles. But if you do actual real world work (control systems, police dispatch systems, military software, aeronautical software, etc), then you better believe you do.
You don't have to worry about unintended uses of your product? Hah! The fact that you think this is quite terrifying all on its own....
You don't have to worry about people using it long past its intended lifetime? Can you say Y2K my friend? That was what happens when a software person fails to think far enough ahead. Or the Internet (IPv4) address space crunch.
Not to be terribly personal, because it is more a generality, but many engineers come out of school with just this kind of impression of the world about them and the difficulty and the difference of the work they do. Some time spent in the real world tends to fix that. I've met at least half a dozen people with the good ole Iron Ring (steel nowadays...) that were working in the software field. Half were damn good at what they did, half were not so hot. About what you'd expect.
The truth is, the software field could benefit from a lot of the professionalism that goes with the engineers calling, the commitment and the responsibility. That's what engineering is really about - a professional ethos of safegaurding the public interest and in releasing only products which meet up to appropriate professional and public standards of quality and safety. In that respect, engineers are ahead of the software programming masses.... but otherwise, most of them require a reality check to adjust their perceptions to the world outside the Ivory Tower.
-- Mal: "Well they tell you: never hit a man with a closed fist. But it is, on occasion, hilarious."
People have been trying to get Wil announced on /. for several days now. Nice to see someone's post finally got through! The only thing I'm worried about is wwdn getting flooded with visitors again. His forum is still down from the last crash. ;-)
And cheers to Wil for doing that Wesley guy again! Can't wait till the film comes out next year! VBG
I can't think of anything ingenius, clever or witty to say right now... "This is the strangest life I've ever known."
You think somebody who tries to architect a software project without understanding the coding issues is stupid? I can't argue with that. Doesn't mean that the same skill are involved in architecting and coding.
By the same token, construction engineers who don't know how to lay a brick or weld a joint probably don't put up very good buildings. But that doesn't mean every mason or welder knows how to put up a skyscraper.
I think that software could be written as well as engineering projects, however although I'm sure we would all really like super-stable software, it just doesn't matter that much. Unlike a bridge or a moonshot, if software fails all we have to do push the reset button.
The reason that bridges are made better then software is because you can't have it fail, people could die. The reason most software isn't made as well as most buildings is because it simply isn't worth it to the people paying for the software. Why expend ten times the cash to have a rock-solid system when dealing with shoddy one would only cost twice as much to deal with?
Nowadays, things like OSs are a lot stabler then they used to be, but as computers become more depended upon, the cost of downtime is going up. Us desktop users are just getting a virtuous windfall.
I'll give you an example. I wrote a support program for my porn site that would spider a specified TGP site and download all the galleries so that I could review them for inclusion on my own site. The program is written in java, but it leaks memory like a motherfucker. (I have no idea why, since the program is written in java, so it shouldn't even be possible). After a while, I'll get an out of memory error, but I can just start again and pick up where I left off. But it simply isn't worth it for me to go through and radically change the structure or rewrite the program in C++ (doing my own memory management) because it works well enough for what it needs to do.
No ones life depends on my ability to download gigs of porn, and so the quality of the software reflects that.
autopr0n is like, down and stuff.
That only works for the first 1,000 cycles.
That isn't a very well thought out argument at all. For the simple fact that they didn't know every crime was punished by death. There is no way that the mother could have told him not to commit any crimes, and certainly no way for him to know that smashing the glass thing would have resulted in death.
Not to say that Crusher wasn't a moron in that episode. He should have boinked those chicks, "There are some games I'm not ready for..." Yeh, sure, what 14 year old boy wouldn't 'jump' on that opportunity.
By the way, consider a remedial English class. Calling someone an idiot using the language of a 2nd grader is not going to convince many people.
autopr0n is like, down and stuff.
That's why, dumbass.
(I realze the above post was a joke, so is this)
autopr0n is like, down and stuff.
I coulda sworn his real name was Wil Wheaton, and cameos were appearances as yourself.
I agree with most of your comment, but I really doubt that "once the infracstructure settles down" anything is going to improve. Computers are engineering as much as they are science. I think you cannot forget the history of mathematics when you try to predict the future of computers.
We have been making maths for about 2600 years now, and we don't have less open questions as we had before. The number of open problems is increasing, because every question you "kill" creates four more (anyone knows the hydra myth?).
As I see it, the situation with computers is going the same way. In the early days of computing, nobody had to face standard compliance problems, race conditions in multi-threading programs, security issues in open networks or virtually any other problem that makes software suck today. And as we evolve into more complex projects, we will have to face more difficult problems.
It is more difficult to be a good mathematician today than it was being one two hundred years ago, and it is easier to be a good computer engineer/scientist today than it will be in fourty years.
She was the one responsible for knowing the laws of any place the crew was welcome for shore leave. She kinda dropped the ball on this one.
The Super Bridge documentary contained an excellent quote:
JOE LEACH: Anyone can build a bridge that will carry a given loading. But if you look at the way that some of those of us in construction look at it, it takes a real craftsman to build a bridge that will, that will just barely carry it.
In software, the opposite seems true. Almost anyone can write a program that will just barely perform a given task. It takes a real craftsman to write a program that will handle the task reliably and efficiently, and lend itself to modification to handle related tasks.
The barriers to practice each craft and the consequences of doing them badly are hardly comparable. A bridge about to fail would be condemned immediately, but if you tried to stop someone selling software that didn't work you'd be sued or jailed.
There is a cost analogy though. Just as a perfect bridge would be unaffordable to construct, so would be a perfect program. Unless there were some magical source of volunteer labor, donated materials, and expert advice.
------DO NOT WRITE BELOW THIS LINE------
They have these cool things called "roman numerals". They work kind of like regular numbers, but are incredibly complex and unwieldy. They are popular these days because people don't like using things invented by dirty towel head ay-rabs.*
The only real downside is that no one realizes when something is at '10' and just think it's had an 'X' appended to sound cool
(like Arabic numbers for example)
autopr0n is like, down and stuff.
Goatse.cx is a picture of a hugely distended anus, adequacy seems to be the home of intelligent debate on the Internet. Kind of like slashdot about 3 or 4 years ago.
Anyway, lets appeal to the moderators. Must ensure the collective groupthink holds sway!.
Moron.
... If builders built buildings the way programmers wrote programs, the first woodpecker that would come along would destroy civilization.
It's a very dark ride.
That's just way too much work. Get an Athlon MP. They are all unlocked.
Microsoft Windows XPeeYew.
thank you.
Reading the follow up on SW that stinks reminded of an anecdote in "Surely You're Joking Mr Feynman". Feynman spoke of an incident when a he was working on the Manhattan Project and a couple of Chemical Engineers were explaining their design for a new chemical processing plant. They had lots of blueprints and Feynman was saturated and overwhelmed and not even sure what a certain diagram meant. He thought it was a vent (as I recall) and so, to see if he was right, at one point he pointed at one of the symbols and said what about this vent here. The two CEs started tracing and rustling through the pages of their blueprints and suddently their jaws dropped and they said, "You're absolutely right Sir! We'll get on it right away." That of course, could never happen in a code review.
In theory, theory and practice are the same; in practice they're different. (Yogi Berra & A. Einstein)
I don't really have an opinion about whether software engineering is like bridge building. I do believe it is about Engineering.
Lets tackle one of your comments:
> "software engineering" (I hate that name, its programming gadammit)
Programming should be what you do at home, in your own time, for fun. You want to work for a company, and create products, you better be software engineering (a part of which is programming), or someone will sack your ass real soon. Lets have a wee look at the definition of engineering:
engineering
n 1: the practical application of science to commerce or industry
2: the discipline dealing with the art or science of applying scientific knowledge to practical problems; "he had trouble deciding which branch of engineering to study"
Now flame me if I'm wrong, but aren't we dealing with the science (computer) of applying scientific knowledge (computer) to practical problems (customer needs) when we solve requirements?
Compare and contrast with programming:
programming
n 1: setting an order and time for planned events
2: creating a sequence of instructions to enable the computer to do something
You see, when we write a program, we are programming, buts thats just a part of Software Engineering .
Good points all around. I think we are arguing semantics here, but I see it as a chicken and egg problem. If the code sucks, the programmer sucks. If the code is good, but the specs suck, then as you wrote, "it takes a good programmer to turn that poor architecture into something good." If the specs are written to give the users what they *need* then they meet the goal, but the users might still think the app sucks because it does not give them what they *want*.
:D) I had written the shortest program by 10 lines. The guy with the next shortest program was the smartest guy in class (by far) and told me that my program would not work because the results were not repetable because I had not stored the results, just displayed them. I informed him that the assignment did not require the program to work a second time.
In college we were assigned to write a program that simulated a 3D crystal structure based on input about the elements. The secondary goal was to write it in the fewest lines of code. When we brought the programs to class (on paper
It seems a cop out, but thinking that good programmers make good apps is in the eye of the beholder.
Ummm, Jon, aren't you supposed to be dead...? - Otter(3800)
> If you are a high-level code "Architect" who thinks that implementing involves solving the
> same old simple subproblems, then you havent been reusing code very well. Check your
> abstraction level and start over.
I do think implementing involves solving the same old simple subproblems over and over again.
Why do you think we have patterns? Software tends to follow a set of rules, where the problems are often similar to ones you have tackled before, albeit with a slightly different set of initial tools and/or conditions. e.g. Resource pooling, factories, data warehouses... I could go on....
Perhaps you could explain what you mean by 'you haven't been reusing code very well'.
I point out the fact that adequacy is not like goatse.cx (a fact) and it gets moderated as a Troll ?
What the fuck is wrong with this place ?
Anyone that has used name brand machines and clones knows that one of the big differences is in case design and quality - mainly when it comes to fans. The name brands usually have one big fan doing most of the cooling work. The advantages to this are that there is much less noise because bigger fans usually displace more air at slower rpm and have better life cycles. Another problem is power. A lot of amps are needed at 12v to power bigger fans, placing undue load on the power supply. At a certain point, my case had a collection of 12 fans (power supply, orb coolers (smp), drive bays, case, north bridge, vga). Whenever I turned it on, it sounded like a plane was taking off! The solution was the following. I took out all the fans except for the power supply fan. I purchased a metal 5"x5" 115v fan from my local electronics store, dremelled out an opening on the side of my case, and connected the fan power directly onto the switch on the ATX power supply (that way when I turn off the switch, it turns off the fan). The fan is actually what is used in on most rack enclosures. I faced it so it blows into the case directly onto the CPUs and north bridge. I changed the cpu orb coolers for larger fanless heat sinks. I can now barely hear the PC under my desk. It emits a very low humming because the large fan RPM is slower than smaller fans. It really moves a lot of air at 115v AC, enough that a stream can be felt from every crack and outlet in the case (even the floppy drive, but I'm sure that's not good for dust). Noise problem solved, cooling problems solved.
Remembering your name in the morning is already a good start...
Surely not for Strom Thurmond.
This sig made only from recycled ASCII
DISPLAY display;
Rememeber, it's the code that actually does the work. Comments should explain what's not obvious in the code, but should NEVER substitute for well laid out, well written, and easily readable code. And comments shouldn't try to educate the programmer. For instance, back in the CGA card age, I wrote a function for drawing lines, with the following prototype:
void bresenham_line(int x1, int y1, intx2, int y2)
I put no comments in the function code itself. If a programmer has never heard of Bresenham's algorithm, he has no place in maintaining graphics code. The same is valid for a large number of well known algorithms, which are so basic and have been implemented so many times that all programmers should know them.
It may be hard for the beginners, but you are a beginner only once. That's why I prefer to write C programs in Unix, instead of Java, or VB programs in M$-Windows. Once you learn how to use industrial grade tools, you won't be satisfied with hobbyist tools anymore.
But, unfortunately, this is not always possible. Programmers are often seen as people who can do any maintenance in any sort of software. And that's where an over-abundance of comments may help. It's not that those comments are really necessary for a competent programmer to understand the code, they are actually doing a totally different job: they are trying to educate a financial programming expert in the basic concepts of digital signal processing (for example).
In the end, I believe that's one of the main reasons why so many programs stink. They were done by people who knew how to program, but didn't have but the vaguest idea about what they were programming for.
This isn't bull - its.. well, possible.
Some scientists in the UK have tested rooms with high incidences of 'spooky occurences' for noise, magnetics and such. They find that InfraSound, low frequency sound, is very often present.
They also found that this can resonate in your eyes. This makes you see grey patches - i.e. ghosts.
Most fans wont create infra sound - but your CASE might!
Normal sentators might worry about not seeing this mission through in their lifetime, but not Strom: he can vote against it, confident that he will still be around in another 200 years. (Unless everyone figures out that he's a robot first...)
Get busy living or get busy dying. Carpe diem.
Isn't Star Trek X supposed to be like, hundreds of years before the Wesley Crusher character? Oh well, just throw in another time-machine worm-hole.
It's 10 PM. Do you know if you're un-American?
Star Trek will probably be the last TNG movie. I don't think they've decided which direction to go after this, though I think if Berman gets the boot and Stewart or Spiner come on as Producer, we're more likely to see DS9 over Voyager.
From what i've seen so far, this one appears to have a decent script, and ST movies are usually good if they can get a decent screenplay. (Oh, and if God isn't a character)
Playing Wesley Crusher aka The Tick Off?
Lars T.
To the guy who modded me down from perfect to terrible Karma - Apple haters still suck
:)
hawk
Chris,
Just read your follow-up to Software Stinks! I noticed that you did not address one common comment to your original article. That is, how are BAD Buildings similar to Bad Software?
Let me extend your analogy between building software and building bridges, because I think it works. What you leave out is that bad buildings get built *all the time*. For a few examples, continuing the analogy:
1. Unrealistic budgets: The "Towers" housing project in West Oakland was, as is government habit, awarded to the lowest bidder and the budget was cut after the fact. As a result, by the time construction started, the building company was committed to building a 12-story apartment building for something like $3/square foot. As a result, this 12-story, 90-unit building had one elevator which was out of order 1/2 the time, and the roof *fell off* 4 years after construction.
Similarly, I often have the following conversations with any of my clients:
Me: "Your database was badly designed and needs to be re-built from scratch for $100,000."
Client: "That's too much money."
Me: "It's what you need."
Client: "What if we just fix what we have?"
Me: "That would only cost about $15,000. But you'll continue to have major bugs and data integrity problems, and the system will stay very slow."
Client: "We'll do that then."
2. Constant Changes to Spec: The San Francisco Airport started building their new international terminal in 1994. However, after starting construction, the Mayor's office, the Airport Administration, and the Airlines each found ways to make several minor changes to the plans to accomodate their fantasies -- AFTER the concrete was laid. The result were some very expensive retrofitted changes, causing the airport project to be completed 2 years late and $300 million over budget.
Likewise, I have a major accounting application. Just yesterday, I was informed by the client of a significant policy change that affects the business rules for the database in several places. Apparently, the policy change happened 6 months ago and it did not occur to them to inform me; as a result, I not only need to change the business rules in 8 different places, but I also need to find some way to make this change 6-months retroactive. This is not the first time they have done this. Unsurprisingly, this project is now 1 year overdue and $40,000 over budget.
-Josh Berkus
Believe it or not, designing a bridge is enormously complicated. One only has to look at some of the more famous bridge failures (Tacoma Narrows, for example) to see what can happen if subtle details aren't tracked through design and construction. Vibration analysis was one of those things no one thought of before a catastrophe pointed out the importance of it. I can't think of a software analogue (I'm sure there is something), but the complexity is there from the construction side.
Simply put, the consequences of a software failure are perceived to be small. Compared to the almost inevitable loss of life connected with a bridge collapse, this is usually true. And that, I think, is the most important difference between the two endeavors and, IMHO, why software usually DOES suck.
It has been well established that if your software crashes the market will not punish you for it. On the other hand, if you're late to market you might as well not bother shipping it.
The reason there is no good software out there is because it DOESN'T PAY to spend the time/money to turn beta software into a finished product before you release it. Ship it today and patch it tomorrow or someone else will.
I think this is what makes free software solid in comparison to the commercial offerings. Free software developers can afford to take the time to make things right. Commercial developers can't afford this luxury because the market isn't sophisticated enough to expect it, nor is it (according to marketing and management) willing to wait.
It's all driven by market expectations. If you need further proof, look at all the software in embedded systems the world over that doesn't suck. The market will put up with a lot, but no one is willing to reboot their TV during the big game.
When the market demands more, software developers will deliver it.
If you're going to tantalize us with the claim that you own a totally silent PC, you are morally required to describe your system!
>What the fuck is wrong with this place ? I don't know. But I keep coming back and one day I may find out exactly who the crack dealer is that doles out the crack for the moderators. All we have to do is follow the trail.
Moon Macrosystems. Sun's biggest competitor.
...I won't bother to put any more effort into this response.
.sig. Gee, you're not insecure about your nationality or anything, are you?
Yessss, except for that cute little addendum to your
Canada #2
Because "software engineering" (I hate that name, its programming gadammit)
write complete operational code for a modern satalite(controlls, attitude adjustment, taking pictures, sending data, etc..), and keep it under 640K. Then you'll understand the difference between a software engineer and a programmer.
is not primarily implementation. Building a bridge requires very litte groundbreaking design:
you take a typically take a known bridge concept, and specialize it for the terrain.
If this is not a goal you try to achieve, then yes, you are just a programmer.
The tough part is getting it implemented on time and in budget, with tons of logistic hurdles, and avoiding material disaster.
Programming on the other hand is a continuous design process.
you need to look up the word design, think about implementing it, then get out of the business.
Implementation is a non-problem, its an ongoing architecture process. (Imagine trying to design a 20 mile long building with 7-10 architects, each with their own unique style)
this is why design standards are used by software engineers, but not programmers like you
On top of that, its all non-visual. An architect can look at rendered pictures of what he is designing to get an intuitive feel for its correctness,
my grandfather was an architect, and if he was alive right now he would kick your ass for that comment.
whereas a programmer must form his image without the benefit of evolved human spacial perception.
this goes back to design standards and practices.
Requirements analysis for a bridge is so simple a child can grok it: "something i can walk over the river on".
thats a pretty lame example, and I'm sure it would piss off the engineers that build bridges.
Its like saying the requirements analys for a program is so simple because anyone who sees the results can grasp all the detail that go on.
For your typical programming job requirements are much more nebulous: the customer doesnt really know what they want half the time (but theyll know it when they see it).
you froget the four steps:Design, design, design, code.
The whole analogy between Contruction Engineering and The Art of Programming is flawed, otherwise a completed contruction project would be a 40 foot high stack of blueprints that are suppossed to
solve a problem that nobody fully understands.
If that statement was true, satellites would fall from the sky every day, man would not have gotten to the moon and back again, computer networks would not exist, etc,etc,etc...
You sir have no concept of the field in which you are employeed.
Please scoot back to your PERL and VB programming, and leave the Engineering problems and analogies to engineers.
The Kruger Dunning explains most post on
Even trolls can be non-trollish at times. Take this case, for example.
In his follow-up article, Charles Connell correctly points out that software isn't harder to build than mechanical objects, it's easier.
This phenomenon was noted by Fred Brooks a long time ago in his book The Mythical Man-Month.
Interestingly, the fact that software is easy is part of the problem, not part of the solution:
Brooks also points out that software usually bears the burden of conforming to the environment, again because it's easier to change the software than hardware aspects of the environment.
If you want to know why software stinks, Brooks' book, 20+ years later, is still the place to start.
Well, I think a lot of this is the result of people spending a -lot- of time at work reading Slashdot instead of working (I know I used to when I had the most boring job ever), where they have to use Windows.
It's a Macintosh G4 Cube with a Barracuda ATA IV hard drive and an Apple Studio Display (15"). No fan for the processor, no fan for the power supply, no fan for the video card, the hard drive is silent (thank you Seagate!), and my monitor doesn't have that CRT whine or make any noise when changing resolutions. I'm using a Microsoft optical mouse, so I don't even have mouse ball noise :). The only thing that makes noise is the DVD drive, which sounds like a plane taking off, but I don't ever use it.
Pretty sweet, but it's starting to show its age with only a 450 Mhz processor. I don't know what I'm going to do when I have to upgrade. Once you've had silence, you can't go back.
This
Still, 24 decibels is pretty low. I've heard 40 quoted as an acceptable background noise for a sound studio, though most sources say 10. Assuming Seagate measured intensity right next to the drive, little or no sound must escape from the case.
I looked at marketing blurbs for various recent drives. All the products that are supposed to be "quiet" list seeking noise somewhere below 40 decibels. (Of course, all use bels instead of decibels, and none given sound frequency or the distance at which the sound intensity was measured.) I'm no acoustic engineer, but I rather suspect that any of these drives could be made "silent" with the right enclosure.
The fan is certainly going to be a much bigger noise source. It's a pity nobody tries to make fanless systems unless Steve Jobs is looking over their shoulder!
I'm a little bemused to hear a 450 Mhz G4 system described as "starting to show its age". What kind of app is it too slow to run? And are you sure the processor is the bottleneck? I'm not a Mac enthusiast, but the number-crunching superiority of the G4 architecture is pretty blatant. Perhaps an video card upgrade is in order.