Actually, I have to be honest and admit that Microsoft Office is a good product. Its stable, has alot of nice features and is intuitive to use. I am not _at all_ a fan of M$, but we should be fair about this. Office is pretty solid.
Uh, are you sure you're using MS-Office? Ever have any Bullet Madness? Sudden appearance of Times New Roman? Word saving files it can't later read back in (but OpenOffice can)? 1k HTML files processed into 100K HTML files by Word? Pasting text from one document into another and having the document's margins get reset?... and that's just today!
-- Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
I call BS on this. I've not been a fan of MS for years, but recently I had to write a business plan and due to decisions out of my control I had to do it in Word and Excel. I am quite good with both but have generally avoided using them since my previous job of training others to use them. After extensive use I can tell you that they are NOT better, people just are willing to put up with more shit from MS. If it's not from MS it has to be perfect, just to be considered. All MS's hand waving about being able to conviently put Excel charts and such in Word documents is BS. It can be done, but not with out a lot of effort to make it worthwhile. I prefer OpenOffice and am more then willing to admit it has issues. However, whenever I have to choose between the two, I'll take the latest version OpenOffice.
It's funny, the machine I type on at work was recently rebuilt, and Word re-installed. However, my user account doesn't have read permission to the share that Office was installed from. Every time I start up an Office component, I see:
Windows Installer progress bar -> Access Denied -> Application
And the app starts up fine. Real good design, kids.
Re:But...
by
AsbestosRush
·
· Score: 3, Informative
I'd have to suggesst SciTE as a replacement for notepad. Syntax hilighting for almost every language under the sun (including HTML), and a lot of helpful stuff for debugging.
And yes, I wholeHEARTEDLY AGREE with your opinion of FrontPage's HTML output. Sucks major wind.
-- EveryDNS. Use it. It works. AC's need not reply
I don't do it, but people in the office do. Or try, anyway. And then I get to support them, technically speaking.:)
-- Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
Re:But...
by
twiddlingbits
·
· Score: 3, Informative
Ditto, ever get a REALLY big document into Word, say 100's of pages..it gets nasty to work with. And importing things from Excel, Powerpoint, etc. can get hairy. If you are doing small,simple documents you don't notice the issues with Word. But it is far from being a Desktop Publishing system.
Bug Triage
by
Anonymous Coward
·
· Score: 5, Funny
1. Does it affect Clippy? Fix immediately! 2. Does it affect features? Fix this week. 3. Does it affect security? Fix when you get around to it.
Re:Bug Triage
by
dasmegabyte
·
· Score: 5, Insightful
This should be marked +1, Insightful. You only think you're being funny. But when a bug affects every one of your installed customers -- such as a security bug or a major feature change -- you had better be damned sure that you fix it completely and that the fix does not break behavior that third parties have come to expect.
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.
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?
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
by
dasmegabyte
·
· Score: 4, Insightful
Okay I'll bite. Here's a fantastic excuse for using ActiveX: every one of your customers will be using Windows with Internet Explorer anyway, and you want to quickly develop a program that will permit them to locally control their machine without having to download and install software.
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
by
dasmegabyte
·
· Score: 3, Insightful
You know, just because you say it doesn't make it so. I can name at least a dozen companies that make web controls using Active X that do very, very well, because customers LOVE not having to jump through hoops. Whip out a brand new machine, connect to the intranet, and boom! It works. People like that, and good administrators find ways to support what people like. I used to have to use an ActiveX client for Test Director, because the per-seat license was way cheaper on that then on the desktop client. It was obnoxious sometimes, but great when it came to interfacing with OLE...drag and drop formatted text, files, etc.
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.
Step 1: Deny existence of bug. 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.
Oh, your Ferrari has a broken cupholder?
by
krog
·
· Score: 4, Funny
Re:Oh, your Ferrari has a broken cupholder?
by
syrinx
·
· Score: 4, Insightful
more like "Oh, your steamshovel has a broken cupholder? Here, drive this car instead."
If you really need the steamshovel, a car is not a replacement, but the vast majority of people just need to drive around, and a car is perfectly fine.
Analogy explained -- I can see why some people actually need all the shit MS Office has, but for most people, OpenOffice is fine... hardly a Ferrari vs Yugo.. of course, you got modded up by the "I'm cool because I don't follow Slashdot groupthink" people, who, amusingly, have their own groupthink... so there you go... I'll probably be modded down by the same people.:P
-- Quidquid latine dictum sit, altum sonatur.
Re:Oh, your Ferrari has a broken cupholder?
by
aePrime
·
· Score: 3, Insightful
For starters, if you're writing long tech papers, you should probably be looking into LaTeX.
Using the correct tool for the job is often a good idea.
Re:Oh, your Ferrari has a broken cupholder?
by
jrockway
·
· Score: 3, Informative
A CSV file, a simple perl script, and LaTeX would do the invoice well, too.
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).
-- My other car is first.
Re:Oh, your Ferrari has a broken cupholder?
by
gordie
·
· Score: 4, Informative
Or better yet AbiWord, it's cross platform too!:-) Yes there are alternatives to OpenOffice.org as well as to MS Office.
Re:Oh, your Ferrari has a broken cupholder?
by
tupshin
·
· Score: 4, Funny
No...that's 50/50 split between the groupthinksthis and the groupthinksthat.
Re:Oh, your Ferrari has a broken cupholder?
by
flabbergasted
·
· 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!
One of my favorite Chris Mason quotes comes from that memo, "Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do."
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.
-- "A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Re:Debugged humans eh?
by
gl4ss
·
· Score: 4, Insightful
**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.**
but wasn't quotes like this seen already in '91, then in '95 and then in 2000 already?
-- world was created 5 seconds before this post as it is.
Re:Debugged humans eh?
by
peragrin
·
· Score: 4, Funny
>>Not to mention, they actually have a nice R&D shop now, not just the pretense of one anymore.
Ah so they finally upgraded the Reverse engineering dept. It's about time.
-- i thought once I was found, but it was only a dream.
The article summarized:
by
revery
·
· Score: 4, Funny
Humans are bugs, err, humans are viruses. Correction: Humans have bugs.
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
by
xsupergr0verx
·
· Score: 4, Insightful
Why don't they fix that awful formatting in MS Word?
You know, push enter twice and it returns to the default font/size. That really bothers me.
The key problem is expressed in very few words
by
newandyh-r
·
· Score: 5, Interesting
"And, always remember that I can't fix what I can't see. I have to be able to reproduce the problem while being able to run some kind of diagnostic tool. The key to fixing a bug is predictability. Without predictability, I can't fix it, because without predictability I have no way to understand how the complex interactions in modern software cause the specific problem to occur."
Re:The key problem is expressed in very few words
by
mdf356
·
· Score: 5, Insightful
Which is funny to hear, because (history: I work for IBM on the AIX kernel) I've fixed a lot of bugs I can't see, via code inspection and knowing roughly what was happening when the system crashed.
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
-- Terrorist, bomb, al Qaeda, nuclear, yellowcake, kill, assassinate. Carnivore is dead... long live Echelon.
Re:The key problem is expressed in very few words
by
TedCheshireAcad
·
· Score: 4, Funny
You must be the n00b on the team. I hear the other guys who work on AIX just ask SCO where the bugs are.
Re:The key problem is expressed in very few words
by
dasmegabyte
·
· Score: 3, Insightful
Well, I have a several thousand line codebase and I often have bugs I can't fix, usually because the bug report is something like "checkbox still checked after closing window."
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 think is unique to heavily object oriented applications relying on dynamic relationships, such as performing arbitrary actions in a word document. With an OS kernel, you have much more procedural code with much more control over state and hopefully fewer cascading relationships. But what do I know.
Re:The key problem is expressed in very few words
by
Tailhook
·
· Score: 3, Insightful
The key problem is expressed in very few words
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.
I wonder if they'll do another writeup when they fix the next bug.
--
___
It's the end of my comment as I know it and I feel fine.
Complexity theory and chaos
by
tao_of_biology
·
· Score: 3, Interesting
From the article:
More than 850 command functions (e.g. Bold and Italic are the same command function)
More than 1600 distinct commands (e.g. Bold and Italic are distinct commands)
At any given time roughly 50% of these commands are enabled (conservative estimate)
With just 3 steps, the possible combinations of code execution paths exceeds 500 million
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 and CHAOS.
--
-- "A chicken is an egg's way of making another egg."
Re:Complexity theory and chaos
by
fireboy1919
·
· Score: 4, Interesting
Obviously you've never tried to make big documents with Word.
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.
-- Mod me down and I will become more powerful than you can possibly imagine!
Re:Complexity theory and chaos
by
jafac
·
· Score: 5, Insightful
You can blab and whine all you want about complexity. Then you gotta explain why, since Word 95, there's been an issue with Section Breaks spontaneously changing type, and causing page numbering problems.
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.
-- These are my friends, See how they glisten. See this one shine, how he smiles in the light.
Re:Complexity theory and chaos
by
Theatetus
·
· Score: 3, Insightful
It never crashes on me, features always work as expected with other features and the interface does rock.
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...
by
Sheetrock
·
· Score: 4, Insightful
is less an example of a failed process than it is a testament to the difficulties of debugging feature-rich software on a timetable that meets marketing demands and indeed provides some insight into the mind of the average consumer.
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.
--
Try not. Do or do not, there is no try. -- Dr. Spock, stardate 2822-3.
Re:The history of Microsoft bugfixing...
by
billtom
·
· Score: 3, Insightful
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.
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.
Complexity Is an Issue
by
4of12
·
· Score: 4, Insightful
From the article
Now, there's a philosophical issue about the desirability of increasingly complex software, but I'm not going to discuss it here. For all practical purposes, I don't think there's much benefit to getting into a discussion about it.
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
"Every now and then you need to flush."
-- "Provided by the management for your protection."
Re:Amazing innovation...
by
sploo22
·
· Score: 4, Insightful
Cut the sarcasm. It really is innovative. It makes chunks of the document independent of what file they're in, and paved the way for an efficient implementation of our beloved "multiple undo" feature. And bear in mind that this was over 20 years ago, when the desktop software industry was just getting started and there was little prior experience to draw on.
-- Karma: Segmentation fault (tried to dereference a null post)
Re:Bugs in Service Pack 2
by
danheskett
·
· Score: 4, Insightful
Have you read about all the new bugs that are being found in SP2.
Yes, and most of what is written is junk.
There are compaints about how the SP2 security panel can be spoofed.
Yes, they are uninformed compliants.
This allows a person to trick people into thinking their firewall and virus scan are all on and working normally.
Any person?
Microsoft's response... (paraphrased quote) "We are busy with other more important bugs at the time, don't bother us with these tivialities."
Umm.. no, thats a blantant distortion.
Here is the story you don't want to know:
A program running locally on the XP SP2 machine has the ability to overwrite the data store used to track and display the various updated components in XP SP2.
This isn't a remote vulnerability. It means that, simply put, a program can constantly overwrite the data that would indicate a virus scan hasn't taken place in 15 days, or that the firewall is off or open on certain ports, etc.
To have this "vulernability" be "exploited", first the protection would have to be subverted/turned off by the user. Nothing in this "exploit" allows an application to disable the features, just make them look as though they are in place. So after a program infilitrates the system and is running as an Administrator, it would be able to make the user think that the protection they already disabled was in fact running.
This is not a big deal. For example, let's say I had a program I could find a way to get onto a box with root access. I could just easily, if not more easily, spoof the security center interface and make it say what ever I wanted. I could just as easily spoof it to say "OH NO, GO DOWNLOAD THIS PATCH".
The point being this is a hole in the design or implementation. It's a social engineering attack. To be useful, the user would have to disable the protection on the machine; the user would then have to be convinced to download the trojan; the user would have to be induced to run the trojan; and the user would have to believe that he/she was in fact protected despite knowingly disabling the protection.
The nature of any operating system is that it responds to users actions. If any person/program can convince any user on any operating system to run any malicious binary as root/Administrator/etc than that box is exploitable by means of social engineering. Big deal. That's not new, it's not a security vulnerability per se, it's not anything but human nature.
Re:Amazing innovation...
by
vadim_t
·
· Score: 4, Insightful
Well, it's not *that* simple.
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.
Why was that flagged "troll"?
by
khasim
·
· Score: 4, Funny
gl4ss is completely correct.
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"?
by
lspd
·
· Score: 5, Funny
Win95 was THE MOST ADVANCED OS in the world!
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"?
by
NanoGator
·
· Score: 3, Insightful
"Great, but the percentage you gave is actually seven nines."
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.
-- "Derp de derp."
A bug at MS.
by
Anonymous Coward
·
· Score: 5, Funny
27-08-2004 08:14
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:26
The 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:06
All 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:56
We 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...
by
autophile
·
· Score: 5, Funny
It's not uncommon for users to make a few edits to a document, save the document, make a few more edits, save the document again, make a few more changes, and continue this process of edit/save for hours on end.
Gee, I wonder why.
--Rob
-- Towards the Singularity.
Gives an idea of the scope of the problem
by
ribond
·
· Score: 5, Insightful
I like seeing such a dedicated description of how bugs can remain.. This line:
"Why did it take so long to figure out what was up with this?" Well, you might as well ask why police departments continue to have a large number of unsolved crimes on the books. The issue is the same: the investigation stalls for the lack of any further leads to follow.
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
by
spaceyhackerlady
·
· Score: 3, Funny
Rather, we're talking about the
shear volume of things the user can do.
Memo to Microsoft: it may be spelled correctly,
but that doesn't guarantee it's the right word.
...laura
too few eyeballs
by
KGBear
·
· Score: 3, Insightful
I do understand all the complexities involved in trying to fix a bug the way the article describes. That's exactly why Open Source is superior. Instead of wasting a decade while 3 or 4 guys look at the problem from different angles, we'd have 3 or 4 hundred guys working on it not because it's their job but because they need it fixed. That's why fixes usually take days or hours on Open Source products.
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.
Insert predictable rant here about how there are no bugs in Free software because any user could fix the bug themselves...
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).
Must reproduce in order to fix?
by
Akiba
·
· Score: 3, Interesting
Very interesting read.
One thing I have to dissagree with is about needing to see/reproduce a problem in order to fix it. It's true that not being able to reproduce makes finding a bug much harder but it's not impossible.
As a server programmer I frequently have to debug race condition bugs, corruption bug or other problems that are not reproduceable at will. Sometimes good detective work can lead you to a find and sometime not. Often you end up having to add some diagnostic code that hopes to gather more information on the problem the next time someone encounters it.
If it happened just once, often we cant fix it but then it's not that important... If it happens "once in a while" and/or "only in production at a large customer site" then we can usually fix it given enough time to work on it. I actually enjoy these kinds of bugs:-)
-Akiba
Re:Amazing innovation...
by
fatmonkeyboy
·
· Score: 4, Interesting
Haha. You even got +5, Insightful. Why don't we look at the rest of the sentence?
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.
A simple case of the wrong error..
by
wfberg
·
· Score: 4, Interesting
They spent years in the dark that the "disk is full" error was caused by too many open files. 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..
by
Smallpond
·
· Score: 3, Informative
In good software development, you check the return value of the open call. Windows is well known for not checking return values (like on malloc). Not sure what the response is for the Windows OpenFile call, but it sure would have been obvious in libc.
NAME
open, creat - open and possibly create a file or device
ERRORS
EMFILE The process already has the maximum number of files open.
just goes to show
by
zarniwhoop
·
· Score: 3, Insightful
what a bunch of morons work at M$.
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.
Isn't it great that the Mac unit can show the Windows guys the right way to fix a bug?
-- Wake up.
Comment removed
by
account_deleted
·
· Score: 4, Interesting
Comment removed based on user account deletion
Re:Amazing innovation...
by
Anonymous Coward
·
· Score: 3, Interesting
When I read the GoF book (patterns book), it is full of examples from the 80's and 90's of how to do multiple undo (command pattern), how to even use flyweight objects to track each individual character.
There are plenty of examples from NeXT, from research project,.. very few references to Microsoft anything in this book.
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.
It's actually worse than that - auto-save does it!
by
alispguru
·
· Score: 3, Interesting
If you have auto-save turned on (it's on by default in Word for OS X), Word saves at N-minute intervals behind your back, and you get the same buggy behavior as you do when you do it manually. All you have to do is leave a document open for a long time.
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!
--
To a Lisp hacker, XML is S-expressions in drag.
Re:Just a thought
by
ryane67
·
· Score: 5, Insightful
have you ever actually released software into the wild?
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.
-- ?SYNTAX ERROR IN LINE 42
Re:Just a thought
by
Uber+Banker
·
· Score: 3, Insightful
One one hand, I can understand bugs cropping up here-and-there, on the other I struggle.
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 up the chain. It is totally possible to write bug-free code, but damn hard.
In the end of the day we are talking engineers, not scientists with their head in the clouds. Total bug-free code can be written, but a different version will have to be proved for every iteration of processor, address space, hardware combo, program interaction. This is time-consuming and costly. Mission critical apps can be proved perfect, for diverse massive office suites it's not worth the effort. I'd rather spend $200 on MS Office and have it crash now-and-again rather than spend $10k+ for a dedicated piece of hardware with millions of hours of development into getting it running on that equipment. In the latter bug-free case Open SOurce would find it incredibly hard to exist because of the wide diversification that benefits a smaller user-base.
It is a trade-off... on the one hand I suffer the odd crash and incompatibility with a cheap product with massive functionality, on the other I spend a massive portion of my income preventing problems which wouldn't be major anyway and accepting vastly reduced functionality with it. I do OK with a cheap and acceptable product and my income intact, or OO.o with even more of my income intact, MS do OK with big profits or OO.o developers enjoy more kudos and associated benefits. For apps with a higher degree of secutity necessary, such as a web browser, email client, or file/web server, I get choice of what to use - again with a whole range of trade-offs: Lynx for speed and securtiy through IE for compatibility but little security. MS doing OK with $$$ from what benefit IE has given them is less acceptable.
I'd rather my product able to do core requirements (security for a webborwser which MS fail at IMHO, to functionality for an Office suite which they have excelled at since 97) now with minor bugs (in non core/critical areas) - have you seriously encountered bugs necessary (probability and loss weighted across the population) to justify the massively higher costs of development?
Once you tie Word down, hold a knife to its throat and say "No. Really. I know what I'm doing -- back off," it's really quite good.
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:complexity comparison of word and Emacs...
by
Dr.+Manhattan
·
· Score: 3, Insightful
Emacs, as compared to word, is an example where the availability of a large number of features does not make the programming task extra-complex.
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.
-- I'm not drunk, I just have a speech impediment. And a stomach virus. And an inner ear infection.
Now I understand why I hate MS
by
Bitmanhome
·
· Score: 3, Funny
To put this into perspective, the person who implemented multiple undo in Word is one of the best developers who has ever worked on Word, and has, since, been recognized as a Microsoft Distinguished Engineer.
So.. the guy that added multiple undo knowingly created a file handle leak.. and got an award for it? And he's the *best* engineer they got? Yeah, that sounds like Microsoft to me.
-- Not that this wasn't entirely predictable.
It is trivial, to coders.
by
Anonymous Coward
·
· Score: 3, Insightful
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.
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 software (such as vi, etc.), we programmers all thought the obvious answer was a "line table". A list of pointers to each line of text in the file. Each line is independently allocated. That way, a user can enter new text on the line, add, delete, etc., and we don't have to make a complete copy of all lines that follow it and shift them up/down in memory.
Likewise, scrolling is easy. Does the screen show lines 1250-1280? Just go to offset 1250 in the line table and get the next 30 line pointers, then render each line. You don't need to parse through then entire file to find each line.
When we moved from character-terminal line editing to wysiwyg, there's not much different, except the line table is no longer fixed to lines, but it's kind of random. It could be paragraphs, lines, pages, or a mix of all as the document gets cut-and-pasted about. Cut and paste within the document is just a case of splitting the lines on the selection borders and re-building the line table. You don't need to copy the actual text selection.
Finally, when you save to disk, you have two options:
1) Just make a nasty raw memory-dump or a fixed-up memory-dump, so it's quick to load back in. This is what Word does (or did).
2) Actually go through your document and generate a structured, easily parsable format without any of your internal gubbins. That makes loading and saving harder, but interoperability much easier.
So, because Word just makes a dump of its internal editing structures, they appear in the output format. Both having editing structures and just naively dumping your workspace to disk is very "trivial" and "obvious" to programmers.
Re:Just a thought
by
CharlieG
·
· Score: 3, Interesting
Your right on this, and sometimes a bug just isn't worth fixing!!!
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)
-- --
73 de KG2V
For the Children - RKBA!
"You are what you do when it counts" - the Masso
Whatever happened to professionalism?
by
gillbates
·
· 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:
I work with production systems which have over ten thousand modules, with dozens, if not hundreds of interconnected and interdependent systems. Yet, in spite of this, the average bug fix takes around two weeks.
The last time I remember hearing of a data-integrity bug was last year. I can't remember any before that. But, the interesting thing is that it was fixed within a week and the corrupted file was rebuilt from other, known good files. In the end, we lost NO data.
We as programmers cannot release a system with any known bugs. If we do, we won't expect to hear, "Well, we haven't fully debugged humans yet," but rather, "If this continues, I'll have to ask you to re-evaluate your employment here..."
Our systems are more complicated, yet contain fewer bugs than MS's software.
We are given as much time as we need to test. We aren't allowed, nor expected, to release buggy software simply to meet a deadline.
We have professional technical architects working for us. Because of the quality of our design, debugging even very large, complex programs is actually manageable. Furthermore, we don't have to do much of it because QA keeps buggy code from getting into production in the first place. The majority of our fixes revolve around ease-of-use and additional functionality issues.
We can't just release code "as is" and think about fixing it later. Failure of our systems could cause very serious damage to our clients; perhaps bankrupt some of them. We don't have the liberty to be unprofessional.
There used to be a time when programmers were more professional.
What the amateur coder says: "we can't fix every bug..."
What they really mean: "I'm an idiot programmer who can't be bothered to actually employ good design principles, nor debug the code I've written. I, quite frankly, could care less about the idiot end user, 'cause, I like, know computers and I'm smarter than you so just whine about bugs to someone who actually cares. Oh, and what about my stock options?"
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.
-- The society for a thought-free internet welcomes you.
I see this as a pity play by M$, wanting users to just chill about bugs because they're so damned hard to fix. Well, excuse me, but last time I checked Microsoft wasn't giving Office software away for free, and if someone is going to shell out beaucoup bucks for something they have a right to demand it works as advertised.
Cry me a river, Microsoft. I'll save my pity and empathy for people who do community or open source development.
-- "Don't matter how New Age you get, old age is gonna kick your ass." - Utah Phillips
Re:Error message
by
BlacKat
·
· Score: 3, Interesting
The funny thing is these stupid error messages exist all over the place in MS software.
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 the "File Not Found" error. Sigh.
Ferrari vs Yugo comparison...
by
WebCowboy
·
· Score: 4, Informative
...is a pretty good analogy when you thnk about it:
* 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.
I can already fix MS Office bugs by myself!
1. Does it affect Clippy? Fix immediately!
2. Does it affect features? Fix this week.
3. Does it affect security? Fix when you get around to it.
what it is like to track down and fix a bug
:)
Track a bug? Sounds like trying to follow a single mosquito in the ranforest.
Step 1: Deny existence of bug.
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.
Here, drive this Yugo instead.
Cretin - a powerful and flexible CD reencoder
One of my favorite Chris Mason quotes comes from that memo, "Since human beings themselves are not fully debugged yet, there will be bugs in your code no matter what you do."
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.
"A door is what a dog is perpetually on the wrong side of" - Ogden Nash
Humans are bugs, err, humans are viruses. Correction: Humans have bugs.
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.
Why don't they fix that awful formatting in MS Word?
You know, push enter twice and it returns to the default font/size. That really bothers me.
Click here for a free picture of an iPod!
"And, always remember that I can't fix what I can't see. I have to be able to reproduce the problem while being able to run some kind of diagnostic tool. The key to fixing a bug is predictability. Without predictability, I can't fix it, because without predictability I have no way to understand how the complex interactions in modern software cause the specific problem to occur."
I wonder if they'll do another writeup when they fix the next bug.
___
It's the end of my comment as I know it and I feel fine.
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 and CHAOS.
-- "A chicken is an egg's way of making another egg."
I figured out the missing step: Marketing!
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.
Try not. Do or do not, there is no try.
-- Dr. Spock, stardate 2822-3.
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
"Provided by the management for your protection."
Cut the sarcasm. It really is innovative. It makes chunks of the document independent of what file they're in, and paved the way for an efficient implementation of our beloved "multiple undo" feature. And bear in mind that this was over 20 years ago, when the desktop software industry was just getting started and there was little prior experience to draw on.
Karma: Segmentation fault (tried to dereference a null post)
Have you read about all the new bugs that are being found in SP2.
Yes, and most of what is written is junk.
There are compaints about how the SP2 security panel can be spoofed.
Yes, they are uninformed compliants.
This allows a person to trick people into thinking their firewall and virus scan are all on and working normally.
Any person?
Microsoft's response... (paraphrased quote) "We are busy with other more important bugs at the time, don't bother us with these tivialities."
Umm.. no, thats a blantant distortion.
Here is the story you don't want to know:
A program running locally on the XP SP2 machine has the ability to overwrite the data store used to track and display the various updated components in XP SP2.
This isn't a remote vulnerability. It means that, simply put, a program can constantly overwrite the data that would indicate a virus scan hasn't taken place in 15 days, or that the firewall is off or open on certain ports, etc.
To have this "vulernability" be "exploited", first the protection would have to be subverted/turned off by the user. Nothing in this "exploit" allows an application to disable the features, just make them look as though they are in place. So after a program infilitrates the system and is running as an Administrator, it would be able to make the user think that the protection they already disabled was in fact running.
This is not a big deal. For example, let's say I had a program I could find a way to get onto a box with root access. I could just easily, if not more easily, spoof the security center interface and make it say what ever I wanted. I could just as easily spoof it to say "OH NO, GO DOWNLOAD THIS PATCH".
The point being this is a hole in the design or implementation. It's a social engineering attack. To be useful, the user would have to disable the protection on the machine; the user would then have to be convinced to download the trojan; the user would have to be induced to run the trojan; and the user would have to believe that he/she was in fact protected despite knowingly disabling the protection.
The nature of any operating system is that it responds to users actions. If any person/program can convince any user on any operating system to run any malicious binary as root/Administrator/etc than that box is exploitable by means of social engineering. Big deal. That's not new, it's not a security vulnerability per se, it's not anything but human nature.
Well, it's not *that* simple.
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.
gl4ss is completely correct.
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.
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.
Gee, I wonder why.
--Rob
Towards the Singularity.
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.
Memo to Microsoft: it may be spelled correctly, but that doesn't guarantee it's the right word.
...laura
I do understand all the complexities involved in trying to fix a bug the way the article describes. That's exactly why Open Source is superior. Instead of wasting a decade while 3 or 4 guys look at the problem from different angles, we'd have 3 or 4 hundred guys working on it not because it's their job but because they need it fixed. That's why fixes usually take days or hours on Open Source products.
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.
Insert predictable rant here about how there are no bugs in Free software because any user could fix the bug themselves...
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).
Very interesting read. One thing I have to dissagree with is about needing to see/reproduce a problem in order to fix it. It's true that not being able to reproduce makes finding a bug much harder but it's not impossible. As a server programmer I frequently have to debug race condition bugs, corruption bug or other problems that are not reproduceable at will. Sometimes good detective work can lead you to a find and sometime not. Often you end up having to add some diagnostic code that hopes to gather more information on the problem the next time someone encounters it. If it happened just once, often we cant fix it but then it's not that important... If it happens "once in a while" and/or "only in production at a large customer site" then we can usually fix it given enough time to work on it. I actually enjoy these kinds of bugs :-)
-Akiba
Haha. You even got +5, Insightful. Why don't we look at the rest of the sentence?
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.
They spent years in the dark that the "disk is full" error was caused by too many open files.
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".
SCO employee? Check out the bounty
what a bunch of morons work at M$.
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
Isn't it great that the Mac unit can show the Windows guys the right way to fix a bug?
Wake up.
Comment removed based on user account deletion
When I read the GoF book (patterns book), it is full of examples from the 80's and 90's of how to do multiple undo (command pattern), how to even use flyweight objects to track each individual character.
.. very few references to Microsoft anything in this book.
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.
If you have auto-save turned on (it's on by default in Word for OS X), Word saves at N-minute intervals behind your back, and you get the same buggy behavior as you do when you do it manually. All you have to do is leave a document open for a long time.
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!
To a Lisp hacker, XML is S-expressions in drag.
have you ever actually released software into the wild?
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.
?SYNTAX ERROR IN LINE 42
One one hand, I can understand bugs cropping up here-and-there, on the other I struggle.
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 up the chain. It is totally possible to write bug-free code, but damn hard.
In the end of the day we are talking engineers, not scientists with their head in the clouds. Total bug-free code can be written, but a different version will have to be proved for every iteration of processor, address space, hardware combo, program interaction. This is time-consuming and costly. Mission critical apps can be proved perfect, for diverse massive office suites it's not worth the effort. I'd rather spend $200 on MS Office and have it crash now-and-again rather than spend $10k+ for a dedicated piece of hardware with millions of hours of development into getting it running on that equipment. In the latter bug-free case Open SOurce would find it incredibly hard to exist because of the wide diversification that benefits a smaller user-base.
It is a trade-off... on the one hand I suffer the odd crash and incompatibility with a cheap product with massive functionality, on the other I spend a massive portion of my income preventing problems which wouldn't be major anyway and accepting vastly reduced functionality with it. I do OK with a cheap and acceptable product and my income intact, or OO.o with even more of my income intact, MS do OK with big profits or OO.o developers enjoy more kudos and associated benefits. For apps with a higher degree of secutity necessary, such as a web browser, email client, or file/web server, I get choice of what to use - again with a whole range of trade-offs: Lynx for speed and securtiy through IE for compatibility but little security. MS doing OK with $$$ from what benefit IE has given them is less acceptable.
I'd rather my product able to do core requirements (security for a webborwser which MS fail at IMHO, to functionality for an Office suite which they have excelled at since 97) now with minor bugs (in non core/critical areas) - have you seriously encountered bugs necessary (probability and loss weighted across the population) to justify the massively higher costs of development?
Once you tie Word down, hold a knife to its throat and say "No. Really. I know what I'm doing -- back off," it's really quite good.
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.
Cretin - a powerful and flexible CD reencoder
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, particularly the chapter on compactness and orthogonality, to fully understand this.
PHEM - party like it's 1997-2003!
Crimson
I'm not drunk, I just have a speech impediment. And a stomach virus. And an inner ear infection.
Not that this wasn't entirely predictable.
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.
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 software (such as vi, etc.), we programmers all thought the obvious answer was a "line table". A list of pointers to each line of text in the file. Each line is independently allocated. That way, a user can enter new text on the line, add, delete, etc., and we don't have to make a complete copy of all lines that follow it and shift them up/down in memory.
Likewise, scrolling is easy. Does the screen show lines 1250-1280? Just go to offset 1250 in the line table and get the next 30 line pointers, then render each line. You don't need to parse through then entire file to find each line.
When we moved from character-terminal line editing to wysiwyg, there's not much different, except the line table is no longer fixed to lines, but it's kind of random. It could be paragraphs, lines, pages, or a mix of all as the document gets cut-and-pasted about. Cut and paste within the document is just a case of splitting the lines on the selection borders and re-building the line table. You don't need to copy the actual text selection.
Finally, when you save to disk, you have two options:
1) Just make a nasty raw memory-dump or a fixed-up memory-dump, so it's quick to load back in. This is what Word does (or did).
2) Actually go through your document and generate a structured, easily parsable format without any of your internal gubbins. That makes loading and saving harder, but interoperability much easier.
So, because Word just makes a dump of its internal editing structures, they appear in the output format. Both having editing structures and just naively dumping your workspace to disk is very "trivial" and "obvious" to programmers.
Your right on this, and sometimes a bug just isn't worth fixing!!!
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)
-- 73 de KG2V For the Children - RKBA! "You are what you do when it counts" - the Masso
"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.
The society for a thought-free internet welcomes you.
I see this as a pity play by M$, wanting users to just chill about bugs because they're so damned hard to fix. Well, excuse me, but last time I checked Microsoft wasn't giving Office software away for free, and if someone is going to shell out beaucoup bucks for something they have a right to demand it works as advertised.
Cry me a river, Microsoft. I'll save my pity and empathy for people who do community or open source development.
"Don't matter how New Age you get, old age is gonna kick your ass." - Utah Phillips
The funny thing is these stupid error messages exist all over the place in MS software.
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 the "File Not Found" error. Sigh.
...is a pretty good analogy when you thnk about it:
* 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.