Anatomy Of A Bug In Microsoft Office 642
bender writes "An insightful look at what it is like to track down and fix a bug in Microsoft Office is available from Microsoft's Blog site."
Children begin by loving their parents. After a time they judge them. Rarely, if ever, do they forgive them. - Oscar Wilde
But... (Score:5, Funny)
Oh, your Ferrari has a broken cupholder? (Score:4, Funny)
Comment removed (Score:4, Insightful)
Re:Oh, your Ferrari has a broken cupholder? (Score:5, Informative)
Re:Oh, your Ferrari has a broken cupholder? (Score:5, Funny)
Question...... (Score:3, Funny)
Here, drive this Yugo instead.
Which one is the Ferrari and which one is the Yugo? Don't think about this question for more than two seconds otherwise your head will explode!!
Ferrari vs Yugo comparison... (Score:5, Informative)
* MS Word/Office is built around a big, powerful and complex engine, just like a Ferrari. Both are high-performance but tempermental and quirky.
* OpenOffice is derived from another project (StarOffice) which Sun bought (through purchase of StarDivision) rather than invented itself. The Yugo is derived from the Zastava GTL from Eastern Europe, the design of which Zastava bought (from Fiat for the Fiat 128) rather than invented itself.
* The casual MS Word user is completely mystified by its exotic internal workings. When things go wrong they must contend with clueless and/or irritated tech support people who offer incomprehensible advice. Proper support is expensive. The Ferrari driver is also mystified by the internal workings of his car, and when things go wrong must contend with a clueless and/or irritated Italian mechanic who offers incomprehensible advice. Parts and labour are expensive.
* The dealer network was always sparse and is now non-existant, so Yugo drivers must fend for themselves by searching the wrecking yards for parts. The internal workings are primitive but well known to owners--there is no fancy, proprietary technology. Tech support for OpenOffice is sparse to non-existant, so OO.o users must fend for themselves by Googling for patches on the 'net. The source is less complex than that of MS Office and is open, so it is known to many of its users.
* A lot of people know and use MS office because it is more powerful and popular than the rest, so they put up with all the annoyances and pay a lot of money for it, even though they don't use it to its full potential. Most Ferrari drivers buy a Ferrari because it is powerful and a popular status symbol, so they put up with all the annoyances and pay a fortune for it, even if they can't legally drive it anywhere NEAR it's full potential--and seldom do.
* Properly cared for, a Yugo can serve you well as basic transportation--even though it has less features than a lot of other cars and is slow to start. OpenOffice, properly used, can serve you well as a productivity suite--even though it has less features than some other office suites and is a bit slow to start.
* Both the Yugo and OpenOffice can be obtained and used for basically no money and some amount of tinkering.
Re:Oh, your Ferrari has a broken cupholder? (Score:3, Funny)
Re:Oh, your Ferrari has a broken cupholder? (Score:3, Funny)
Re:Oh, your Ferrari has a broken cupholder? (Score:4, Insightful)
Using the correct tool for the job is often a good idea.
Re:Oh, your Ferrari has a broken cupholder? (Score:4, Informative)
I use LaTeX for everything, because I switched to linux long before there was AbiWord, KWord, or OOo. And my papers (and resume/CV/etc.) stand out because they are so nicely formatted.
Learning LaTeX is worth however much time you spend learning it. Try it, you'll like it.
(LyX is decent, too, but I like raw LaTeX in emacs myself).
Re:Oh, your Ferrari has a broken cupholder? (Score:3, Funny)
(LyX is decent, too, but I like raw LaTeX in emacs myself).
Emacs?! Pah! Real men just wrap a coil of wire around a nail and put the bits on disk themselves!
Re:But... (Score:5, Insightful)
I am not _at all_ a fan of M$, but we should be fair about this. Office is pretty solid.
Re:But... (Score:5, Informative)
Re:But... (Score:4, Funny)
Windows Installer progress bar -> Access Denied -> Application
And the app starts up fine. Real good design, kids.
Re:But... (Score:3, Interesting)
I had Winword6 and WordPerfect 6.1 installed on the same machine, along with ~350 fonts. As a rule they handled one another's documents well enough, including fonts. One day I used WP's allfonts macro to create a document that sampled all 350 installed fonts. This printed fine in WP. However in Word -- after the first 20 or so fonts, it changed all the rest of the fonts to Wharmby. (This behaviour was reproducible, even with different fontsets, tho why it always picked on Wharmby is be
Re:But... (Score:4, Informative)
And yes, I wholeHEARTEDLY AGREE with your opinion of FrontPage's HTML output. Sucks major wind.
another replacement (Score:4, Informative)
Crimson [crimsoneditor.com]
Re:But... (Score:4, Funny)
Re:But... (Score:5, Interesting)
Re:But... (Score:4, Informative)
Re:Disagree (Score:5, Insightful)
It's not an issue of bugs, it's an issue of features turned on by default. Unfortunately (as I said above), you need to call off the dogs in about 100 different places before Word becomes really good.
Re:Disagree (Score:3, Interesting)
Bug Triage (Score:5, Funny)
2. Does it affect features? Fix this week.
3. Does it affect security? Fix when you get around to it.
Re:Bug Triage (Score:5, Insightful)
Take this Active X thing. Do you realize how many essential web components, many of them from companies that are now out of business, would stop working if ActiveX were turned off altogether? Many, many websites would stop working, and you can bet the people running them would blame Microsoft. Poor security doesn't cost you anywhere NEAR as much as losing ISVs would. So you spend a lot of time planning, reviewing and executing the patch, and equal time testing it.
But bugs in trivial features? Shit nobody uses or really cares about? You can fix that really quickly, because if the fix is still broken, it won't make much of a difference. You don't need a tiger team or testers working late hours. You can put a single intern on it and get it "done" in an hour.
It's a matter of caution, not priority. When the potential fix affects the core of your business, you move slower fixing it. You release work arounds while you're planning and testing. And you slowly roll out the repairs.
Re:Bug Triage (Score:5, Interesting)
There is no excuse, ever, for using ActiveX. If your web site depends on or even uses ActiveX, you need to hang yourself from your server rack with a cat5 cable.
ActiveX is not cross platform, and therefore by no means suitable for web purposes. If you can't accomplish the task with DHTML/JavaScript, then you need to find another way.
As for the atrocity against humanity that is stateful programs embedded into web sites, if you're going to commit the crime, Java better be your weapon of choice.
Re:Bug Triage (Score:5, Insightful)
Java won't cut it (security models vary too greatly). Flash won't cut it (no access to local libraries). Only ActiveX will do. I know entire software suites in the $1000+ range that rely on ActiveX's "security flaws" for proper operation. I would never buy one of these, but I also wouldn't want to be told that software I purchased is no longer usable because of a security patch. I've been told that in the past (an old Bently automotive manual that no longer works due to Java "security enhancements" that make it unable to start) and it sucked. It wasn't my decision to use the technology...I shouldn't be punished because of someone else's technology choice.
I dont' like Active X. I don't even like this kind of website. But for many developers in the intranet services market, it's a godsend. Rapid development and a trustworthy, no-obtrusive, support free platform. Basically, all the same reasons it's used to spread spyware and viruses.
Re:Bug Triage (Score:3, Informative)
Do you know that for a fact, huh? What do you do when my company becomes ( or wants to become ) a customer, and you learn that we all have Macintosh OS X machines on our desktops, and only one or two PCs in the building, which we won't want to use for your website?
If you think this is some sort of joke, it's not. There is at least one major business service we're dumping this year because their website supports only a specific version of W
Re:Bug Triage (Score:4, Insightful)
Stop assuming nobody will stand for idiot friendly software when plenty of people are using it already. Yes it's a bad idea, but that doesn't mean that we can just ignore it. If I ignored all the bad ideas other people had for our program...well, it still wouldn't be working.
Re:Bug Triage (Score:3, Insightful)
And inevitably, some web designer who's even more hardcore than you will say that you should hang yourself with CAT5 cable if your website uses any kind of HTML that Lynx can't render...
Eventually you will have to draw a line somewhere and realize that there is basically no way to make a modern website/web application that won't exclude some amount of the web browsing world. There's plenty of "standard" features th
Re:Bug Triage (Score:3, Insightful)
Not lynx, it doesn't do tables, which are quite useful, but I've for a long time been of the opinion that the majority of websites have no excuse if they don't show up in links. Stuff like popup menus, tab navigation and hover effects can be done with CSS in a cross-browser way that degrades gracefully on older/simpler bro
A as in "one"? (Score:5, Funny)
Track a bug? Sounds like trying to follow a single mosquito in the ranforest.
The steps (Score:4, Funny)
Step 2: Classify bug as feature.
Step 3: Cave to user demand and try to fix bug.
Step 4: Introduce new bugs during the fix.
Step 5: Classify those bugs as features.
Step 6: Pretend bugs are fixed and continue playing Minesweeper.
Debugged humans eh? (Score:5, Interesting)
Then it would seem humans working at Microsoft are less debugged than everybody else. Because *boy*, at some point Microsoft was a bug factory.
To their credit though, this is changing fast. Microsoft is a huge company that can turn on a dime, and they've understood that having shite engineers onboard won't do much good to their latest "trustworthy computing" PR stunt. Not to mention, they actually have a nice R&D shop now, not just the pretense of one anymore.
Re:Debugged humans eh? (Score:5, Insightful)
but wasn't quotes like this seen already in '91, then in '95 and then in 2000 already?
Why was that flagged "troll"? (Score:4, Funny)
Win95 was THE MOST ADVANCED OS in the world!
Win98 fixed all the bugs in Win95.
Win98SE fixed all the bugs in Win98.
Windows2000 is crash proof and the Unix killer!
Windows XP is even more stable than Win2K and will be sure to slay *nix.
Go digging through the press releases and gushing "journalists" for every single release (except WinME) since (and including) Win95. You'll see the same quotes over and over and over.
Re:Why was that flagged "troll"? (Score:5, Funny)
Win98 fixed all the bugs in Win95.
Win98SE fixed all the bugs in Win98.
WinME: The bugs strike back.
Re:Why was that flagged "troll"? (Score:4, Insightful)
I count 5 after the decimal point. I guess I have to be really really really really exact ('Exact' meaning I have to spell out every detail as to avoid confusion caused by lack of common sense)about the phrasing of every single sentence I write ('phrasing' meaning I had better not leave any possibility for mis-interpretation open) every single time I post something on Slashdot (using only numbers, letters, and punctuation because images aren't allowed) or nobody (by nobody I mean there isn't a single person reading Slashdot, there may be others that don't read Slashdot that would be exempt from my generalization) be able to interpret it. ('it' meaning every single time I post using letters, numbers, and punctuation.) Otherwise ('otherwise' meaning 'in every single case that isn't included by the terms defined earlier in this post) nobody ('nobody' meaning of every single person reading this post, exactly 0 of them would be exempt from the following generalization)
There. Now my post should be perfectly clear to those who are common sense impaired.
Re:Why was that flagged "troll"? (Score:3, Insightful)
No, but you could at least be correct. "Five nines" is an accepted term industry wide meaning "99.999%". It's not a matter of common sense, common sense tells us why you screwed up, you simply misunderstood "five nines" as meaning fives nines after the decimal and not five nines total. Just because "common sense" let us figure out what you really meant doesn't make you less wrong. If I write something like "Your g
Re:Debugged humans eh? (Score:5, Funny)
Ah so they finally upgraded the Reverse engineering dept. It's about time.
Re:Debugged humans eh? (Score:3, Insightful)
I can't remember the guy's name but I do remember what the head of marketing for one of my past employers once said...
All software has bugs. If it doesn't have bugs, then it isn't software.
The article summarized: (Score:4, Funny)
Programs are like onions. Ogres are like onions. Donkeys like cake.
Mac Office X is the red-headed step child of Microsoft development efforts
Microsoft is a lot like the police.
--
Was it the sheep climbing onto the altar, or the cattle lowing to be slain,
or the Son of God hanging dead and bloodied on a cross that told me this was a world condemned, but loved and bought with blood.
"feature" filled (Score:4, Insightful)
You know, push enter twice and it returns to the default font/size. That really bothers me.
Re:"feature" filled (Score:3, Informative)
What you're asking for -- markup based layout -- is how Word Perfect works. There are pluses and minuses to both styles and markup, though styles
The key problem is expressed in very few words (Score:5, Interesting)
Re:The key problem is expressed in very few words (Score:5, Insightful)
I'm sure Word has a milti-million line codebase. But so does AIX. It's split into different components, and there's quite a few bugs where I know roughly which code must have been running. So stare at the code for a few hours envisioning different inputs/control flows, and eventually a case that's not accounted for properly will show itself.
Bah. Amateurs.
Cheers, Matt
Re:The key problem is expressed in very few words (Score:5, Funny)
Re:The key problem is expressed in very few words (Score:3, Insightful)
I go in, look at the usual suspects (checkbox code, window code, population code, database code, event handling code), try and reproduce the problem...but sometimes, the difficulty isn't with the code or the database...it's with some unexpected relationship which will only be set with certain workflows.
This is a problem which I thin
Re:The key problem is expressed in very few words (Score:4, Insightful)
The statement you quote is generically correct. I conclude based on my read of the entry that the developer is "over his head". He, and many like him, have a dependence on elaborate debugging tools and often claim that without these tools they are unable to fix problems. He already has sufficient diagnostic tools available to him and he either doesn't know about them or they've been obscured by bad code.
By design, Word will open an infinite number of files (this implements so called unlimited undo.) This is crap design. Damn near every OS in existence imposes some limit on open files. Even if there is no "built in" arbitrary limit provided by the OS, RAM will eventually be exhausted just keeping track of open files. Whoever failed to consider this is the origin of the problem; everything that has happened since is his/her fault.
Now, discovering that there are limits to open files is what the blog entry was about. The first clue eventually appeared only after someone managed to reproduce the problem in a debugger. This took a long time. Also, the altered state of running the app inside the debugger further obfuscated the problem (read the blog entry.) Perhaps it would have taken less time if simpler tools had been used...
One can easily observe OS resource usage of a running application without elaborate debugging environments. Some OSes make this easier than others. The blog entry author recalls a moment when a discovery was made by someone else using "some tools" in OS-X. He doesn't specify what these tools are. He probably doesn't know (due to abject dependence on his debugger.) In Linux I can observe file handle usage with tools that include ls and cat. In Windows I could use Sysinternals Process Explorer (a non-microsoft tool, btw) to do the same thing.
Simple observation of open files using non-debugging environment tools might have led someone to ask; "Why is Word attempting to hold <<insert large number>> files open...?"
Further, the error message displayed by Word; "Disk full." indicates another sad failure. The disk wasn't full at all. It is my guess that Word uses some generic catch-all whenever a file system operation fails. Can't write to a file? Disk Full. Can't open a file? Disk Full. etc, etc. The catch-all manages to isolate a subset of possible causes and dumps the rest into "Disk full".
Type "man open" into the shell of any POSIX like system that provides manual pages. Look for ENFILE. This is the error code you will see if you write a program, like Word, that opens too many files. If you then have your program display an accurate error message, whoever ends up maintaining your little miracle will spend fewer months fixing it. I've no doubt Windows API provides similar.
Bad design, bad coding and low-skill maintainers. Thus mickysoft.
Loved it... (Score:5, Funny)
Complexity theory and chaos (Score:3, Interesting)
Adding new features and abilities to Word would affect a complex system like this in totally unpredictable ways. And, trying to debug such a complex system seems like an almost impossibly complicated task.
Now I know sarcastic answers will abound to this, but I wonder how much MS invests in testing such complicated programs? It has to be way, WAY more than they invest in the development of the program.
Now, I'm no Microsoft fanboy, but I am seriously impressed with Word. It never crashes on me, features always work as expected with other features and the interface does rock. I had no idea how complex the program was, and I am even more awed.
By the way, if you don't know much about complexity or chaos theory I recommend reading the following books to give you a nice appreciation of complex systems like this: COMPLEXITY [amazon.com] and CHAOS [amazon.com].
Re:Complexity theory and chaos (Score:3, Insightful)
This will be one of the sarcastic answers abounding to your post. I've been using GUI based word processors for around 20 years. I am seriously unimpressed with word. I agree with you that it takes an incredible testing/debugging effort to release such a piece of
Re:Complexity theory and chaos (Score:5, Interesting)
Writing a book with pictures in Word is extremely difficult. It randomly moves stuff around, changes fonts, and deletes sections of the code when you exceed somewhere around 2MB file size (or 10 pages...I'm not really sure about the limit).
The interface isn't the whole problem either. Exporting to rtf format creates files that don't actually meet the rtf specification (which has been defined by Microsoft, by the way), so have errors (even when read by Microsoft's rtf importer), and html output is even worse.
Latex has more features than Word without any of these problems. Also, given the original "find a bug and win money" challenge, I think I can say it is probably one of the most stable pieces of software on the planet, and it has an extension mechanism built in (Word does too, by the way - several of them).
There are some things that Microsoft makes that beat the competition, but I don't think that Word is one of them.
Re:Complexity theory and chaos (Score:5, Insightful)
Still exists in Word 2003.
Countless usenet posts exist describing the anguish of VBA programmers when they encounter this bug, classify the behavior, report it to Microsoft, find out it's been a known issue for over 9 years, with no plan to fix it.
That's not caused by complexity. That's caused by bad management. Folks with no conscience. No pride in their work.
Re:Complexity theory and chaos (Score:4, Insightful)
So, do you never user bullets, alter tables' sizes, change a region's font, change regions to bold/italic/etc, or paste from other applications?
For me, about 1 time in 20 I use them, the last bullet is in a different style/size than the others, the table suddenly takes up the width of the entire page and even forces the page into landscape, the whole region becomes Times New Roman, the whole region becomes size 2, and the document's margins disappear, respectively (and actually widening a table has caused the document's margins to disappear, also).
I'm sure OOo has these problems too; I've given up on WYSIWYG document editors entirely and now write my papers in ascii and mark them up in TeX.
The history of Microsoft bugfixing... (Score:4, Insightful)
Do you want it buggy today or robust tomorrow? One need only look at the overclocking community and throngs of beta-testers to work out the answer. History is littered with technically superior failures in the marketplace (Betamax, Divx, BeOS) and the reason is that the consumer is more fickle about price and features than about technical superiority or stability.
Read any book put out by Microsoft Press and it's plain there are a number of people there that are as or more capable than most open source programmers. But the open source programmer doesn't have to appease any person or schedule other than those he sets himself -- and can therefore program under much better circumstances.
Re:The history of Microsoft bugfixing... (Score:3, Interesting)
Um, except the part where a developer and a tester go round and round about differences between "debug mode" and "release mode" problems. I mean come on, what kind of amatuer windows developer doesn't recognize the gigantic differences between debug and release mode apps on win32??!! If these guys would just learn to use printf() and/or the
Re:The history of Microsoft bugfixing... (Score:3, Insightful)
Re:The history of Microsoft bugfixing... (Score:4, Insightful)
It's not all that important, I suppose, but just in case you don't know, Microsoft Press books are not written by Microsoft developers (well, a few are, but not most). Microsoft Press is just a regular publisher and their authors come from the same pool of writers as every other technical publisher. So the quality of books from MS Press says nothing, good or bad, about the company's software products or practices.
Nice Serveice: (Score:3, Interesting)
By the way I did try to report the bug via our $500,000+/year global support contract with Microsoft, and was told directly by our Microsoft support representative, and I quote, "I wouldn't know how to file a bug report for that." Never was able to get it addressed, even though I had two good sample documents for reproduction of the problem.
Half a million? No wonder Bill Gates has billions - He's not spending the money on developers.
How *I* fix bugs in enterprise software... (Score:3, Funny)
2. ???
3. Bug is fixed; I profit.
Hmm....
Complexity Is an Issue (Score:5, Insightful)
From the article
But there is a benefit to discussing complexity because it does seem to impact how many bugs arise and the maintainability, upgradeability, and usability of the software.
It's not merely a philosophical issue, either. This is a real, practical issue that impacts millions of people everyday.
The complexity of interacting software components is like the dark side of Metcalfe's Law about the usefulness of networks increasing quadratically with the number of participants in the network.
The maintainability of software decreases as the number of interacting components increase and as the number of ways of interaction increases.
I've developed code for a long time and seen great ideas turn into great code with creeping useful features gradually added on until a day comes when you wonder how you ended up working on such a monstrosity.
A good friend once told me years ago
A bug at MS. (Score:5, Funny)
Several bugs have been sighted near the southern perimeter and some of our QA staff have been wounded in a couple of minor skirmishes. Strategic Command said the enemy's main move will not come for weeks and certainly not in this sector, though I am beginning to doubt.
27-08-2004 08:26The skirmishes have intensified and several QA squads are trapped between an unknown number of bugs. We even had a few lightning strikes beyond our perimeter, which took out our BugTraq listening post. I tried to call in for assistence from StratCom, because I suspect the main strike is happening here as we speak. 27-08-2004 08:54
The minor skirmishes have ceased along all sectors. We are trying to evacuate the wounded and salvage what's left of some of our equipment. 3rd QA batallion took heavy losses, as did 6th QA and 8th Helpdesk. What is this, some cat and mouse game they are playing with us?
27-08-2004 09:06All hell broke loose! While we were trying to evacuate the wounded, we found our sector under attack from multiple vectors, including artillery and naval support. Whatever remained of 3rd and 6th QA that was stationed in the rear has now been wiped out. 8th Helpdesk has been decimated and I had no other option to commit 24th, 12th and 2nd Developer batallion to the battle, at least untill reinforcements arrive. The enemy seems to be using a superior number of SFU-506 "Sasser" class fighters with ActiveX payloads. I nearly begged StratCom to send some "KB900364" SAM batteries.
27-08-2004 15:56We have pulled back and regrouped in Sector 56. 3rd, 4th, 6th QA got decimated. 8th, 12th and 15th Helpdesk have been routed as well. 24th, 12th and 2nd Developer have been utterly destroyed to save the rest from annihilation. The few who remain are now en-route back home. Some are shell-shocked, one fat guy keeps jumping around yelling "Developers!"... Poor sod, this is war at it's worst.
Bugs cause Office bug... (Score:5, Funny)
Gee, I wonder why.
--Rob
It's actually worse than that - auto-save does it! (Score:4, Interesting)
I was asked by my supervisors to try and use MS tools to minimize their grief in reading my output. So, while I was debugging a program on a remote machine (via X11), I left a Word document open for my notes. After a few days, I suddenly couldn't save any more. I gave up and started keeping my notes in an emacs buffer (which has infinite undo, and can stay up for days with no trouble - go figure).
I remember thinking at the time, "this has got to be a file-handle leak problem". I'm surprised to see I was right!
Gives an idea of the scope of the problem (Score:5, Insightful)
Describes a huge chunk of my life in Software QA. It's an example of what is great about MS software and what is awful:
Great: dedicated test resources to chase down corner cases/non-obvious scenarios, accountability for broken scenarios, etc
Awful: Iterations of releases built on legacy code means no one (or two, or three) people can understand the problem or scope the fix.
For all the complaints here about MS code I wonder that no one has noticed the Windows weakness that is not getting exploited..? If MS software is really as bad as everyone here makes out then why doesn't someone do it better? Blah blah Linux blah blah... Build software for Windows that people can use without rebuilding their systems. If you do it well enough tell them it's even better on Platform X.
Obviously not fully debugged (Score:3, Funny)
Memo to Microsoft: it may be spelled correctly, but that doesn't guarantee it's the right word.
...laura
too few eyeballs (Score:3, Insightful)
OTOH, lots of people know enough programming to solve that kind of problem to their satisfaction. We don't have to submit that fix, so we don't have to worry too much about the side effects of the fix. That enables us to keep working with the product until some official (and usually better) solution comes along.
Must reproduce in order to fix? (Score:3, Interesting)
A simple case of the wrong error.. (Score:5, Interesting)
You'd think that if the disk isn't actually full, you'd look at other places that can generate that error. Even though obviously the error should have been along the lines of "too many open files".
Note that this underlying problem isn't just a technical one. You get over-general error messages on windows (and with various badly designed software) all the time.
The least you can do when you pop-up an error is to give some additional information; like where it occurred ("Bad Thing Happened in somefile.c line #456"), so even if, like in this case, you can't reproduce the error in a debugger, you know where the error got kicked into being. Not quite as useful as a full stacktrace like in Java, but pretty usefull.
Compare this to how (non-Microsoft) geeks write error codes; from man ep;
ep0: 3c509 in test mode. Erase pencil mark!
This means that someone has scribbled with pencil in the test area on the card. Erase the pencil mark and reboot. (This is not a joke).
Even if you don't understand the error code, at least you can google for its pretty unique description "erase pencil mark".
Re:A simple case of the wrong error.. (Score:4, Informative)
just goes to show (Score:3, Insightful)
Let's see...
Introduce some gobbledeegook, heath-robinson-esq software design (ala piece-tables) just so the user can copy/paste ever so fast. <quote>For example, if you copy text from one document to another, you don't have to actually copy the text from one file to another--at least not right away</quote>
yes - therein lies the screw-up!!
They then live with this dog's breakfast of a code base for upwards of 10 (yes ten!!) years until its time to fix it. And the developers cant even work out which "Open file limit" has been reached. Well not very quickly anyway.
I have seen so much of this kind of "engineering" it makes me bleed from my ears. What's more, the author of this article portrays the story with so much nobility.
Things to always bear in mind I find are:
KISS
OCCAM's RAZOR
DONT TRY TO BE TOO SMART
END_OF_RANT
Thanks MBU! (Score:3, Insightful)
Comment removed (Score:5, Interesting)
Re:complexity comparison of word and Emacs... (Score:4, Insightful)
Exactly! Making things modular, and limited to single operations with no side effects, allows you think about how they interact far more easily, in no small part because it makes the actual interactions fewer.
Read The Art Of Unix Programming [faqs.org], particularly the chapter on compactness and orthogonality [faqs.org], to fully understand this.
Re: (Score:3, Interesting)
Now I understand why I hate MS (Score:4, Funny)
Whatever happened to professionalism? (Score:3, Insightful)
"Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do." We work to minimize the bugs in the software we ship, but they'll always be there.[emphasis mine]
And Microsoft thinks they're ready for the Enterprise Market....
I did RTFA. I'm trying hard not to flame, but this guy is a downright pathetic programmer. I've fixed more complicated bugs in the last week than this. And his defense - Word is complicated - just doesn't cut it:
There used to be a time when programmers were more professional.
Quite frankly, I hate to see this attitude in programmers. If you are charging for the code you write, you should at least have the professionalism to fully debug it before release. Your customers deserve better than to have your software ruin their business.
Its OT but has to be mentioned (Score:3, Interesting)
Well, not directly, but they sure took the wind out of my sails with their new Picasa Photo Organizer and corresponding photo publisher Hello. I've been working on a photo editor/publisher application for personal use off and on for around 2 years. Lately, I've been think about how a lite weight, easy to use solution would be a big hit among new parents/grandparents like myself. Here they go giving it away for free. Who could do such a thing?
You know what? I will not be daunted. I will rise up from my defeat and create a better application. That'll show 'em. One that publishes your photos to your blog, other users of your application, or via email. Wait, Hello already does that? How about cropping and reformatting your photos and organizing them into an album. What, Picasa has that covered?
But, aha! I'll bet their solution doesn't use the power of Visual Basic.Net and the
Emphasis mine. having never read the MSDN blog before and seeing this now, all I can say is "OMFG"...
Boo Hoo (Score:3, Interesting)
Cry me a river, Microsoft. I'll save my pity and empathy for people who do community or open source development.
printf (Score:3, Insightful)
Ah Hah! (Score:5, Funny)
Re:Ah Hah! (Score:3, Insightful)
And that folks, is how we have arrived at the mess in the U.S. we have today.
Re:Amazing innovation... (Score:5, Insightful)
Re:Amazing innovation... (Score:3, Interesting)
There are plenty of examples from NeXT, from research project,
20 years ago there was experience to draw on.. Microsoft just lives in a big bubble world where they re-invent things their own particular way.
Re:Amazing innovation... (Score:3, Interesting)
Although he was probably not the first person to arrive at the "data abstraction" idea he was the first to propose a general (that is to say it applies to any data) theory of data which required it.
Re:Amazing innovation... (Score:5, Insightful)
Figuring out how to best represent a document in memory can be more complicated than it would seem. Say, the easiest way would be just to malloc a chunk of memory for the whole document, but try to insert text into the middle of a 100 page document if you do it that way.
A more workable approach is to make it be an array with one entry per line, but that can run into exactly the same problem if you write a long enough paragraph.
So perhaps you go with something even more abstract, say, some kind of structure that contains pointers to words, which allows you to insert several invisible blanks every time you need to make space for stuff to reduce the time spent on memory management.
I think the article meant something similar to that last one.
Re:Amazing innovation... (Score:4, Interesting)
Brodie figured out that a document is really just a collection of pieces of text, and that it didn't really matter where each piece of text is physically located within the document's file.
I.e., if you're going to have "The dog is red." appears in the document, it doesn't matter if "The" occurs in the file before "red", or vice-versa.
Maybe this seems trivial to you, but I think most of us when designing a document format would try to put "The" before "dog", by instinct. It makes sense.
So what he figured out is not as straightforward as your out-of-context quotation makes it out to be. He was, at least, being a little creative. The article then goes onto explain multiple ways in which this design was useful in Word processing software.
I realize you're just being an asshole and that you probably didn't read the article, but just looked for a way to use it to make fun of Microsoft. "Standard Operating Procedure" at Slashdot, I know.
But, moderators, this guy doesn't deserve Insightful. He should be Flamebait.
It is trivial, to coders. (Score:3, Insightful)
In an output format, perhaps. It's a good idea. However, you're not thinking about it properly, from a programmer's perpective.
Writing a text editor is actually quite hard, mostly because the text is not static. You can't just parse through the loaded text once, you have to keep it in memory and allow edits to it efficiently.
When writing editing softwa
Re:Amazing innovation... (Score:3, Insightful)
OTOH, WordPerfect actually does handle such substructures as if they are independent documents within the same file, each with its own independent formatting, rather than the formatti
Comment removed (Score:5, Insightful)
Re:insert usual "1000 Free software fixers" (Score:4, Insightful)
I agree. No doubt there will be a few who suggest the many-eyes approach will fix all the world's evils... it won't, it will let a developer who can be bothered to sift through the thousands/millions of lines of code necessary to fix the bug - this is a dedicated programmer and deserves credit for that... the world is not full of a large number of dedicated intelligent programmers who have time to do this for all, or even a small fraction of code they encounter - if you use Open SOurce (I use BSD/Windows with open/prop apps, don't bother with the 'jokes') do really look through every line of code looking for a buffer overflow exploit, do you pro-rata what you look through with the assumed userbase, do you assume others will do the QC/QA/peer review? Sure it could be made to be ultra-secure, and for this I am all in favour of Open Source (there is absolutely no security through obscurity, as those that need to know will know), but I really have a gripe with those that blindly use the many-eyes assumption and group-think, auto-mod others who disagree. If you want to criticise MS Office, then do something about it.
MS Office is massive, MS Office may be bloated to those who does not use all those features (and who does?!), but the idea of modulising Office suites, good or bad idea that may be, died miserabley in the last 90s.
MS Office is inferior, functionality and UI wise, to specialist applications made for a certain job - I would never do serious statistical analysis in Excel nor would i distribute a Word doc, nor would I make a webpage in Word(!).
Criticise it for valid reason, not knee-jerk group think, but it does serve as a good lowest-common-denominator suite that integrates OK for an intermediate solution. Open software may also suck at many tasks, but carries the benefit it is open. If I see the 'many eyes' justification for all opensource software refered to again, without proper justification I think I will throw my computer out of the window - please mods - don't just mod something down because you disagree with it, if you disagree contribute and bring effective discussion rather than pushing an opinion out of the room - save downmods for things which are clearly Offtopic, Flamebait or Trollish (and baiting discussion is not Flamebait, it is Discussion-Bait).
Re:As long as Clippy exists... (Score:3, Interesting)
Hell, while you're in the custom install window, save some HD space by not installing language packs and fonts for languages you don't use. And if you're really uptight about macro viruses and such, just remove VBA. It's all just an installer option
Re:Just a thought (Score:5, Insightful)
I came across a bug in one of my active enterprise systems today that I had never seen before, and none of my 1500 users had reported it. It would have never been found had i not been just screwing around with random things.
Give the MS guys some credit here, they have a lot of things to go over with constantly looming deadlines. You can't test EVERYTHING.
Re:Just a thought (Score:4, Interesting)
WAY back when, in the dark days of 386s and early 486s, I wrote an application that was the best selling product in it's (admittedly) small nitche vertical market.
One day, we get a call - there is a bug in printing that NO one else could duplicate. It took me a week to run down the following
It required you to:
Be running on an IBM PS/2 Model 80 (Yes, the Microchannel one)
Be using an HP Laserjet II
Be using a MICROCHANNEL HP "Jet Direct Card" (a card that allowed the raster rip to be done on the PC instead of the HPIIs memory for greater speed)
Be running with a particular resolution
As the Model 80 was never a BIG seller, and neither was the Microchannel Jet Direct Card, we determined that it just was NOT worth fixing - we DID offer to fix the bug is they would send us the hardware. If the guy used the printer port, it worked fine (I assume it was a strange driver "feature" I would have had to work around)
The client I wrote the software cheerfully offered the end user a full refund on the software.... The client decided to keep the software, and use his printer port. We never did fix that bug, and NEVER got a call from anyone else reporting it (PS/2s were going away already)
Re:Just a thought (Score:3, Insightful)
From the article: Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do...
When I did compsci at Uni we had to logically prove each of our programs. This was not easy, but it made it impossible for a program to crash or have a bug - inputs clearly defined, outputs clearly reached - this was at a mid-high level, but applies bottom up - binary into assembly
Re:Just a thought (Score:3, Interesting)
And your job still went to India.
Re: (Score:3, Informative)
Re:Error message (Score:3, Interesting)
Once, when writing a DX app I kept getting a "File Not Found" error trying to load a bitmap... it drove me crazy as the file WAS there and could be loaded.
Finally, after trying everything I loaded the image into Photoshop and re-saved it, and boom, it suddenly worked.
It seems that the header of the graphic had a small glitch in it, and instead of giving me a meaningful error (like Corrupt File) it decided to give me th
Re:Great! Or so I thought... (Score:3, Interesting)
Philosophical? Is that a euphemism for "useless"? I mean, what else can it mean? Simpler software that does the job is better than more complex software that does the same job. It's as simple as that. Nothing philosophical about it.
Simple: dir
Complex: Windows Explorer, which: