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.
Ooooh...I hate when my HTML files do that. That's why I only use Notepad for HTML editing. You think Word is bad with what it does to HTML though? Try Frontpage....
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.
I've used OpenOffice.org exclusively for nearly a year, and it suits my purposes fine - not perfectly, as any regular user of OO.org surely knows. There's little reason for a home user (or student) to need to pay so much for MS Office (or even just Word alone) when basic functionality is all that's required (Though I will admit that the 'education' edition of Office with a 3 computer license is pretty affordable).
Honestly, I feel many more people would adopt OO.org if they were shown (probably physically, because telling somebody will do little to persuade them) that it existed. Especially if they are informed that you don't have to pay hundreds of dollars.
Perhaps, eventually, there will be a major PC vendor that would do something so bold as to offer OO.org on a preconfigured computer as an alternative to MS Office.
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 beyond me.)
BTW, Word6's HTML (via a free plugin from M$) was primitive but clean enough; I often used it to strip out unwanted code from HTML exported by other apps, because it would kill anything it didn't understand. However, WordXP's "HTML" is in fact a very ugly and bloated subspecies of XML.
I'm curious why you would troll the web looking for a macro that does that as well, when it's a lot easier to just go to Tools->Word Count. Though, that might not be a fair statement to make, since you might not have used a recent version, which has a word count.
OK, I may have misspoken. The principle beef I have with OO in this area is that, as I recall (it's been about a year), I can't count the words in a highlighted selection without using a "hack-job macro". The last version of OO I used also lacked a means of counting words by using keyboard commands, which I also really, really appreciate while writing papers (Alt-T-W in Word).
...and on KDE it's downright sluggish-to-unresponsive if you let it sit there for a while and you switch back to it, but I'm not sure if that's the software or the window manager.
I agree (I last experiemented with OO in KDE as well), and I also have no idea which is truly to blame.
Though, to be fair to OO.org on loading times, I believe Office preloads some things on start up, like IE does, to give the illusion of a faster load time.
As I understand it, it's a Windows startup folder shortcut that is added by default with an Office install ("Office Startup"). I have long removed this "feature," and Word still takes no more than two seconds to open. I believe that's what you're referring to.
... Once I stopped trying to use it exactly like Word, things became easier.
I attempted to use OO with an open mind, as I attempt with any new piece of software, but it just didn't perform. With the exception of the word count and page numbering (the latter being my bigger peeve), it's just personal preference.
The lowdown: the advantage to OO.org is really the price, which can't be beat. And since it works pretty well, there's also some value there, as well.
I guess my bottom line is that Office amortizes well for me. The fact that Word97 still, again, in my opinion, performs better than the 2004 version of OO means that my investment years ago is still worthwhile.
I find this odd - when dreamweaver first came out, one of it's primary selling points was that you could do your WYSIWYG editing in one pane, and switch to another pane to go straight into editing the HTML - something us old hats absolutely loved and was the reason we bought/stole/paid attention to the program in the first place.
Now it has all this extra crap in the program, and the last document that I got that was purely generated in dreamweaver that I had to reformat for some HTML jockey was total rubbish - no indentation, missing closing tags, I could go on.
What happened?
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.
Re:Bug Triage
by
Cereal+Box
·
· Score: 2, Insightful
If you can't accomplish the task with DHTML/JavaScript, then you need to find another way.
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 that aren't cross-platform due simply to the fact that certain browsers haven't implemented the feature. When you consider that roughly 90% of your audience can use ActiveX that certainly makes ActiveX "compatible enough" to be suitable for web purposes.
Re:Bug Triage
by
javaxman
·
· Score: 2, Informative
one of your customers will be using Windows with Internet Explorer
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 Windows, and there are too many good alternate services for us to have to deal with that.
I can't say enough about how I dislike your assumption. It's wrong.
Re:Bug Triage
by
jsebrech
·
· Score: 2, 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...
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 browsers and integrates nicely with browsers for the blind. What I could conceivably see people need IE-only code for is in-page rich text editing (afaik there's no W3C mechanism for that yet) or complex real-time data layout controls like grids and charts. But your average, run-of-the-mill website really has no excuse to be running IE-only code.
The future of the web is not in jazzy code that will only work on one browser, one OS and one hardware platform. It is code that will degrade gracefully and is not tied to any specific style of output device so it runs agreeably on any platform. The W3C model is WAY better suited for that than anything coming out of redmond.
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
bhtooefr
·
· Score: 2, Funny
MS Office is the Indy car in Stunts. Try to get it to do something it wasn't SUPPOSED to do, and it screws up. The Lamborghini LM-003 (IIRC) doesn't get anywhere fast (let's face it - OOo is SLOW...), but gets there.
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
micromoog
·
· Score: 2, Funny
That was a beautiful analogy. The world needs more obscure references to 80s DOS games.
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
jsebrech
·
· Score: 2, Funny
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.
No, you made a reasonably insightful comment, appended it with a suggestion that anti-groupthink is involved, and then made the prediction you would get modded down for offending the groupthinkers. That's an automatic +5. Ah, groupthink moderation at work:)
Now, before anyone mods this up as insightful or funny, start thinking, are you following the group? Are you really being an individual? What is the independent course of action here? Up, down or no moderation? Ah, sweet sweet moderation conflict.
Hint: if you have to think about whether you're acting like an individual, you're not being one. Only a person who truly is aloof of all social worries is a complete freethinker. Which is why they're all weirdo assholes.
And now you can give me that off-topic moderation, thank you.
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!
Re:Oh, your Ferrari has a broken cupholder?
by
builderbob_nz
·
· Score: 2, Informative
let's face it - OOo is SLOW
Or is it... We use OOo where I work and I also use it at home. One the Celeron stations we use at work it runs like a dog. On my Athlon XP at home it screams along at a similar speed as my installation MS Office 2000 (I keep this installed for those odd occasions that I need it).
--
Karma? Hey I just call it as I see it.
Re:Oh, your Ferrari has a broken cupholder?
by
Eythian
·
· Score: 2, Insightful
Two points: 1) Try LyX, it brings WYSIWYG to LaTeX, mostly.
2) When writing, you should be concerned about the content and the structure, and that's it. Leave sorting out how it looks till later. It makes one messily-tied-together task (working with layout and content) into two cleanly separated tasks.
Re:Oh, your Ferrari has a broken cupholder?
by
CRCulver
·
· Score: 2, Insightful
It seems damn primitive to not be able to see the overall effect with each change. Why can't LaTeX be fully WYSIWYG? That would make me drop Microsoft Office in a heartbeat:)
If you are using Emacs, you can open the xdvi from within its LaTeX-mode and place it next to the editor window, and then just have Emacs scheduled to run latex on the document every, say, ten seconds. The changes will automatically update on xdvi.
But, as the other poster wrote, you should be paying more attention to structure than presentation.
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.
Re:Debugged humans eh?
by
anomalous+cohort
·
· Score: 2, 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.
As long as Clippy exists...
by
Shadow+Wrought
·
· Score: 2, Funny
the most annoying bug in Office will still be with us.
-- If brevity is the soul of wit, then how does one explain Twitter?
Re:As long as Clippy exists...
by
Anonymous Coward
·
· Score: 2, Insightful
Well congratulations. He stopped existing several years ago. Glad to see that you are up-to-date on your comments, though.
Re:As long as Clippy exists...
by
Mattintosh
·
· Score: 2, Interesting
Around the office I work in, Clippy (and all his friends!) exists only in removable installer media form. Really, folks. It's dirt-fricking-simple to just do a "custom" install of Office and change the Office Shared>Office Assistant option to "Not Available".
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 away. And you don't even have to edit a config file, which is more than I can say for a stable, non-corrupt installation of (cringe)Peachtree Accounting(/cringe).
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.
Re:"feature" filled
by
dasmegabyte
·
· Score: 2, Informative
If you're seeing this, it's because you're using Word wrong. Office uses a stylesheet based formatting engine, much like the modern world wide web. When you change the font using the FONT field in the taskbar, you're changing the font at the paragraph level. Hitting enter twice starts a new paragraph, which causes word to load up the original paragraph style.
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 are really the way to go if you write a lot. They permit you to change ALL the attributes of a paragraph -- size, spacing, font typeface, size and decoration -- just by changing its style. But for short docs, or for tricks like bolding every other letter, style based markup can lead to very confusing behaviour.
When my wife's office switched from WP to Word (when it looked like WP had been EOL'd), I had to help her fix a 50 page document that she had written ENTIRELY paragraph formatted. I spent an hour building a stylesheet and was able to very quickly format her document with it (she had spent three hours previous to this just hitting the enter key trying to get shit to line up, like it was a fucking typewriter). She refuses to use the stylesheet, partly because she thinks WordPerfect is better, but mostly because she doesn't want to admit she was wrong.
If you want your paragraphs to remain one style, that's easily done. Change the font in Format -> Style -> Normal (Font can be selected from a drop down button, which is really the most retarded thing about MS' styles).
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
at_kernel_99
·
· Score: 2, Insightful
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.
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 software. However, I wonder how much of this effort they have brought on themselves? I wonder if focusing on quality and sound design would have resulted in a better product than focusing on squashing competition by adding every conceivable feature to a word processor? I wonder if focusing on open standards rather than a constanty changing proprietary format would have resulted in a more stable product? Microsoft have brought these problems upon themselves, and I, for one, am enjoying watching them struggle under the weight of their bloat-ware.
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.
so 'marketing' >IS just a euphamism for a distributed lying system..
Re:Ah Hah!
by
SpaceLifeForm
·
· Score: 2, Insightful
It's not just 'distributed', but P2P in the
truest sense. Marketing people are so used
to lying to each other that they actually
start believing their own BS.
And that folks, is how we have arrived at
the mess in the U.S. we have today.
-- You are being MICROattacked, from various angles, in a SOFT manner.
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
Quarters
·
· Score: 2, Insightful
Did you really just say that the Circuit City created disposable DVD format, Divx was "technically superior"?
It was hobbled w/ more lossy compresion, less image definition, less audio channels, and less space for extra items/deleted scenes, and had a horrible authentication routine.
Exactly how was it "technically superior"?
Re:The history of Microsoft bugfixing...
by
ebyrob
·
· Score: 2, Interesting
...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...
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 OutputDebugString() function they might be able to "see" a bit better.
Oh yeah, and the part where they know "max file size" is an issue, but don't stop to figure out what the OS max file limit is before going on... sheesh. It'd be one thing if this bug's lifetime were a few weeks, but years??!!
Re:The history of Microsoft bugfixing...
by
ebyrob
·
· Score: 2, Insightful
oh yeah... and the thought never occured to them to clean up extraneous links ON EVERY SAVE instead of just waiting until they run out of memory.
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.
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.
--
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
How *I* fix bugs in enterprise software...
by
Herbmaster
·
· Score: 2, Funny
1. Get assigned bug to fix; get distracted and read slashdot instead.
2. ???
3. Bug is fixed; I profit.
Hmm....
-- I'm not a smorgasbord.
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."
Re:Why was that flagged "troll"?
by
damiangerous
·
· Score: 2, Insightful
I count 5 after the decimal point. I guess I have to be really really really really exact
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 going to install Office?" people know I meant "you're" rather than "your" but it doesn't make me correct.
It was not a large or important mistake so launching an involved rant to cover up a minor mistake is really rather childish.
Re:Why was that flagged "troll"?
by
The+Bungi
·
· Score: 2, Insightful
That's funny, because I've been hearing the same thing about Linux for the past five years. Except in the context of it being the "Windows killer", of course.
Pull any random Slashdot page or anit-microsoft trade rag or Usenet post and you'll see it for any KDE, GNOME, OO and kernel release for the past five or six years.
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.
The Overflow in the Buffer took Stu.
Loops. Loops in the C. They are dumping. We cannot break out.
--
--
"Outlook not so good." That magic 8-ball knows everything! I'll ask about Exchange Server next.
Lies and the lying liars...
by
1010011010
·
· Score: 2, Insightful
"NT was 100% new code"... except, I assume, for all that VMS code that DEC sucessfully sued Microsoft over.
-- 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:Lies and the lying liars...
by
squiggleslash
·
· Score: 2, Informative
I don't believe it ever went to court. DEC was suing over design issues anyway, I don't believe they ever said there were actual bits of VMS in NT.
I've used VMS extensively FWIW, it's nothing like NT on the surface, and only shares a handful of features at a low level. An OS based upon VMS, perhaps with VMS's irritating habit of SHOUTING IN CAPITAL LETTERS, and with a slightly saner way of expressing volumes, directories, and filenames (eg: Workbench:Tools/Commodities/Blanker rather than WORKBENCH_DISK:[TOOLS.COMMODITIES]BLANKER.EXE) would make for a very nice operating system.
-- You are not alone. This is not normal. None of this is normal.
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.
I'm now officially obligated to...
by
bob670
·
· Score: 2, Insightful
post this statment at least every couple days on Slashdot.
I'm not enamored with everything MS does, but I spend far more time patching my Linux box and updating apps on my Linux box than I do my Win XP boxes. Of course part of that is "release early, release often" and part of it is adding new features to catch up with much of the usability that XP has. But anyone who post on this thread about MS products having more bugs isn't eally being honest with themselves or the community.
And in closing, OSS will never sucees until supporterd drop the "Anything But Microsoft" rhetoric and point out what Linux and OSS in general do better.
Re:I'm now officially obligated to...
by
bob670
·
· Score: 2, Informative
First, who cares, you won't find too many people doing even close to all of that at once, so meh.Some of it yes (see below) but most people don't need 17 termunals and simaltaneous DVD playback, so what is that really worth?
Second, I call bullshit, the current state of Linux sound drivers is still pretty sucky so I don't see all of that happening without a lot of snap/crackle/pop dominating your speakers. Linux sound and CPU usage is bad enough with one or two apps vying for the sound cards attention.
Third, my XP box mutli-task just as vigoruosly and with no stability issues either, albeit without trying to run 3 media apps concurrently (because why would I?). Having multimedia, chat, IM/IRC, web and office apps open simaltaneoulsy sounds like the same activity as 90% of Windows users every day, tack on Automatic Updates transferring files in the background and it't not that far off. Robust multitasking isn't unique to Linux.
And of course the big benefit I have on my XP box is I don't have to urpmi/emerge 3/4s of the contents of my machine each month while compiling a new kernel. When will people figure out that this kind of software maintenance is not a positive selling point for Linux? So you have to shut a few apps during an install to make sure critical DLLs aren't in use with XP, I have to fall back to Init3 to update my nVidia drivers under Linux, I don't have to boot into DOS or safemode to upgrade my video drivers under Windows? See, just trade offs. Get to what Linux really does better and attack MS based on facts, not OSS rhetoric.
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
IWannaBeAnAC
·
· Score: 2, Insightful
Exactly. Reading that blog, I was really shocked that that they spent a decade without fixing the obvious and simple bug of an incorrect error message. Surely most programmers, when they encountered an error "Disk is full" and a quick check showed that it wasn't in fact full, would fix that bug first and get a correct error message? Sheesh, talk about denial - they spent years not knowing for sure what the actual error was!
He mentions that the Mac version of the bug finally gut quashed due to the superior diagnostic tools on OS X. Let me guess: 'strace' ? LOL
The other hilarious aspect is that it took them a few years to figure out that if they set Word's internal open-file limit to something smaller than the OS open-file limit then Word would be able to flush some files before encountering an OS error! It is pretty obvious that (even back then) nobody really understood how the software works, or how application software should interact with the OS.
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.
Re:A simple case of the wrong error..
by
glennrrr
·
· Score: 2, Insightful
Presumably, in the case where Mac OS ran out of file descriptors, it returned the error tmfoErr instead of dskFulErr. I guess we've all been in the situation where we don't enumerate all the possible things that could go wrong with a file operation.
I'm guessing, whoever wrote the file handling code used something along the lines of:
OSErr err = FSOpen(...
if(err != noErr) ThrowError("Disk Full...")
All of us could have done that sort of thing. However, it is incredible to me that it would take months/years to track down a bug like this. I've often needed to debug things without a debugger, and while it is annoying it can be done.
obvious thought process
by
phats+garage
·
· Score: 2, Insightful
You've really outlined some typical thinking that goes on when designing a piece of software, each step was looking at downsides of design decisions, contiguous memory -> array of lines -> finally to noncontiguous chunks of text, and each step of the way was a solution to a drawback of the previous attempt at solution.
I wonder how many programmers have run this scenario in their mind when doing some hypothetical designing of a hypothetical editor. Unfortunately, I bet its still patentable.
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.
Re:Thanks MBU!
by
Rick+Genter
·
· Score: 2, Interesting
Actually, if you read Steve McConnell's Code Complete, a lot of it is about the Macintosh port of Excel, and the coding techniques used on that project. It made for good reading; every programmer should read that book at least one during their career, preferably toward the beginning of their career...
-- Don't underestimate the power of The Source
Re:Thanks MBU!
by
_|()|\|
·
· Score: 2, Interesting
I found it interesting that the Mac and Windows version of Word have forked, again.
They merged for Word 6.0, but forked for Word 98.
That seems like an admission of failure.
Everyone talks about how complex Windows and Office are (millions of LOC), but I have to believe that some of it is unnecessary.
If I was sitting on a few billion dollars, I think I would spend some of it on refactoring.
Open Office has crashed on me many more times than Word. I agree that Word is cluddered but their are many other people that use all those features.
I tried Open Office... it crashed a lot, and even if it didn't I'm not all that impressed by it. It's basically Word with less (much less) features and it crashes more often (at least for me).
I too am no microsoft fanboy, I'm not a fan boy of everything really. I like everything. Open Office is nice but their is a difference between being better and exaggerating something to fit ones own agenda.
Personally I haven't seen anything come out of open source that doesn't have an equal closed source alternative. (in terms of each has it's goods and it's bads.)
-- I'll make you a deal. You pray to God for help and I'll stop the moment he shows 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?
Unit Tests and Test First
by
goynang
·
· Score: 2, Interesting
Sounds like the sort of pokey debugging processes I go through writing little programs in my spare time!
What about stuff like Test Driven Development and Unit Testing? Would that have made any odds here?
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:Disagree
by
dustinbarbour
·
· Score: 2, Interesting
In regards to AbiWord.. I absolutely love the philosophy of starting with just the basics and allowing your users to add the fucntionality they need via plugins. Firefox is the best example of this, IMO. AbiWord is the same. The Abi installer is only 5 MB. I love it!
Re:Amazing innovation...
by
MattRog
·
· Score: 2, Interesting
Actually, Codd theorized this in the Relational Model back in the late 60's (published in 1970). He realized the necessity for logical/physical data representation separation and formulated a data model around it. It's a shame that people are only now starting to realize that it was a very, very good idea.
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.
--
Thanks,
--
Matt
Great! Or so I thought...
by
groomed
·
· Score: 2, Insightful
When I saw this article, I thought "Great! Another sign of Microsoft opening up, sharing their knowledge; finally they're getting rid of the faceless megacorp bollocks that has dominated their PR for all these years". And I mean, it is great, a Microsoftie talking about difficulties, explaining processes and workflow. Great.
Then I started reading.
Now, there's a philosophical issue about the desirability of increasingly complex software, but I'm not going to discuss it here.
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.
And I'm just not all that interested in getting bogged down in an endless debate without the possibility of resolution.
Well, the resolution is simple: simpler software is better. But that would leave him without a job. So obviously he's not interested in getting "bogged down" in that kind of debate. Anyway, can't fault him for trying to sidestep the issue. Still a fascinating look into the belly of the beast. Let's continue.
I mention the issue of complexity because it leads to subtle interactions that can be difficult to track down.
So true! This is getting interesting!
...some interesting history...
Right, right... <nods>
Moreover, it's easy to say that one should have thought of a particular interaction in a complex piece of software, but that's way easier said than done.
Uh, yes, that is indeed a problem with complex software.
When you're implementing any given feature, you're totally focused on the basic problems involved in the feature itself.
Totally. What else? Since surely before you implement the feature, you consider carefully how it interacts with the rest of the system. Well, if that's possible of course. If the system's not too complex and all that.
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,
But Word was too complex even for him? God help us!
Sorry, I couldn't resist. God knows these kinds of things can be tricky. You just carefully track down the root cause of the problem, and fix it structurally, right? Let's see:
In order to understand this, we have to understand a basic principle of fixes. You make the simplest code change required to fix the problem.
So, um, no structural fix? Just local band aids to stop the bleeding? I suppose... that would work... If your program is so big and fragile that anything but the simplest fix might introduce a whole boatload of unknown problems...
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.
Yes, that's a common problem with closed source software.
What would also have helped is a more meaningful error message. Why show a "Disk full" message when the file descriptor table is full?
Without predictability, I can't fix it,
It would certainly be nice if Word was a bit more predictable. Maybe the complexity has something to with it.
Ah, forget it. Probably just a philosophical quagmire.
Re:Great! Or so I thought...
by
thetoastman
·
· Score: 2, Insightful
I too was hoping for a great article on tracking down defects in complex software. What I read was a comedy of errors that managed to survive for ten years before being addressed.
It's really difficult to know where to start with this mess. And it's even sadder to think that Distinguished Engineers at software companies think this way. There should be no doubt in anyone's mind after reading this article why software fails so miserably and so often.
Some points that need to be considered are as follows.
Housekeeping
Unit Testing
Meaningful error messages
Well-understood test environment
Housekeeping is important. Free your memory, close your files, initialize your variables, eat your spinich. Do not depend on the compiler to do this for you, even if the documentation says it will. Clean up your own room.
With modern development environments and languages this may be less of an issue. However if you program in Java (pick your favorite garbage-colletion language), then you had best understand what is going on beneath the hood when you depend on it to build complex programs.
Unit testing is important. I need to have faith that my code snippet will not break under proper, improper, and abusive usage. If it does (or is supposed to break), I should be able to generate a meaningful error message.
Meaningful error messages are important. If you're going to generate an error message, at least have the error message point to the proper problem. If you've run out of file handles, say too many file handles open. If you've run out of disk space, then say you've run out of disk space. If you can compile and run the program in a debug mode, then either generate a stack trace or print the line number and file where the error occurred. This is not rocket science.
Understand your test environment. How in the world does a dedicated tester forget that the debugger presents a different environment than the running environment. Why would a tester verify or attempt to understand the defect in an environment that does not present the same conditions?
I realize testing and debugging quickly is an art as much as a science. However, changing more than one condition at a time is a certain recipe for madness
As far as complexity goes, that's really not any excuse. If software is designed to be a confusing mass of interacting specialty parts, it's going to break in strange and wonderful ways. If software is designed with simple, easily understood, unit-tested parts, then when it does break the breakage has a better chance of being understood.
Re:Great! Or so I thought...
by
Piquan
·
· Score: 2, 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:
Decides whether it should use a custom handler or the default handler to show the folder, based on the content (including whether a special file exists, and/or whether it's all pictures)
For each file, looks into the registry to determine the correct CLSID, and uses that to
determine whether the file should be shown,
whether the extension should be shown,
whether to use a default icon handler which:
examines the CLSID,
opens the.exe containing the icon,
locates and parses out the resource section,
draws the appropriate icon
or to use a custom icon handler, which may do something completely different...
Need I go on?
We geeks like dir (actually, we prefer ls). The people who are buying software with great big corporate licenses like Explorer.
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.
What about a meaningful error message? Of course they couldn't find the bug with the message "Disk full" if the problem was the number of open files.
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.
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
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!!
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.
Its OT but has to be mentioned
by
aardwolf204
·
· Score: 2, 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.Net Framework. With.Net behind me, nothing can stop me! And, maybe I'll publish my source. More on this later...
Emphasis mine. having never read the MSDN blog before and seeing this now, all I can say is "OMFG"...
-- Im dreaming ofa big bndwdth, That can resist the/.crowd.May ur days b merry & bright & may al
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
Strange 99 page limit in Word
by
ttys00
·
· Score: 2, Interesting
In 2001, my girlfriend was forced to do her honours thesis in Word. It was around 120 pages, split into two files. She had to split it at page 99, because if she opened the thesis with more than 99 pages in Word, it fell over, thankfully without corrupting the file but still losing the work done since her last backup (made at 98 pages fortunately) as she was unable to open the "99 page + new work" file:( This was 100% repeatable on four different Windows machines that I tried it on. Even crashed a Mac she tried it on.
It was at this point she switched to Mandrake + Openoffice and hasn't looked back since.
Re:Amazing innovation...
by
Reziac
·
· Score: 2, Insightful
But if you look at a Word document's innards, the text is inserted pretty much in the order you typed it, including text for substructures such as textbox contents, bullet lists, or footnotes; then formatting is applied by way of a remote pointer. That's why formatting tends to be hard to get to "stick" in these substructures.
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 formatting being tied to a location like with substructures in Word documents.
The author seems to be really attached to his debugger. He should learn to use the printf() the most powerful debugging tool ever devised.
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.
Re:Sorry about the bad formatting
by
Tim+Browse
·
· Score: 2, Funny
How about getting back on topic?
You're a jerk 99.999% of the time.
It's obvious that office is too complex
by
Erik+Hollensbe
·
· Score: 2, Insightful
I was hoping to post this on the blog instead of here. Unfortunately comments have been closed. My hope is to isolate some key mistakes that could have gone a long way to preventing this problem from taking so long to address, or perhaps ever happening.
Granted I am judging from his description of how the system works and was assembled from scratch, but especially in reference to the multi-undo system, it was fairly obvious that the problem had absolutely nothing to do with the oversight of the developer regarding the open file limit, because the system was too complex to begin with.
Since (I hope) it's obvious that undo in an editor is such a unique and fundamental problem - a new pattern or a new assembly of smaller patterns needs to be applied to specifically address the undo issue. What I saw was a very typical problem in large and growing development environments, applying crow bar logic to implementing new solutions.
Proper use of exception handling and event-driven programming would have fixed the open file problem by itself, at least in my admittedly limited view. Instead of printing "Disk is full", the class exception or the file event itself could have caused a unique error to be printed with that information to aid the QA and developers. And of course, descriptive text for the user.
The second thing, Microsoft has this enormous knowledge base, would it have been too hard to do this in front of the 2 lines of code?
// KB #123456 - "Disk is Full" Open FH bug
Since this bug had already been fixed and (hopefully) entered into the KB, the developer of the Mac fork (which I'll address in a minute) not only had a place to start, but a simple grep (or the MS equivalent) would have solved this problem in short order. I suspect if this pattern is not already adopted, it would fix a TON of these communication problems (which is really what this consists of), and code review would enforce that comments like these were injected on each bug fix. If they don't want to comment it (as many small bugs would prove prohibitive), properly address this in your CASE tool of choice.
Forks are ALWAYS bad in closed software development. If you have to fork your code, you have definitely done something wrong. I don't care how much system-specific code there is, it can be abstracted in almost any language - and a company like Microsoft which not only creates the applications but the development tools as well has no real excuse.
I know, a lot of this is "woulda coulda shoulda" stuff. Both Experienced and Novice developers and management have made these mistakes before, and it won't change anytime soon. Release pressures can really warp the logic of any member of the team - the "Get it out yesterday" school of logic rarely does any good in the long-term.
If this account is true ...
by
Ninja+Programmer
·
· Score: 2, Informative
... Microsoft developers are the lamest programmers in the world. Some choice quotes:
Run this macro for a while, and you get a "Disk is full" error on one of the saves, at which point you can no longer save your document.... the basic theme of the problem is to hit an open file limit...
Excuse me, but first of all, an "open file limit" and a "Disk is full" error are two slightly different things. The first thing that is wrong is that the wrong error message is being displayed. 10 years of debugging could have been cut short by actually reporting the correct error message.
Because this problem wouldn't reproduce under the debugger, the developer had no way of knowing exactly where the failure was occurring.
So the only bugs Microsoft developers can solve in a reasonable amount of time are those that conveniently show up in their debuggers (otherwise it will take them 10 years)? Debugging without a debugger is one of the first skills that, what I would call, an "advanced coder" learns.
here's a tip you can use until we release an SR of Word X (or earlier) with this fix. If you have a document that has headers and footers with page fields in them, do your editing in Normal view, and you'll likely never hit the "Disk is full" save error.
And if I understood the rest of the article correctly -- the fix is not a systemic deterministic fix. Its just a method for mitigating the problem in the scenario in the one way in which they have been able to observe it.
This is the unravelling of a convoluted web which they are tring to piece together with scotch tape, bandaids and spit. Its pathetic. Their problem is an "running out of file handles" issue. They need to solve the problem definitively -- if they cannot rewrite the architecture of the code, then they need to write a virtual file layer that can have an unlimited number of file handles. Or something comparable.
These pathetic one-off patches that seem to be just barely mated to the specific problem manifestation just increase the complexity of the code.
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
the most annoying bug in Office will still be with us.
If brevity is the soul of wit, then how does one explain Twitter?
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 on of the comments from the blog:
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.
Moneyed corporations, non-working 'poor' and criminal prisoners are turning productive citizens into tax-slaves.
1. Get assigned bug to fix; get distracted and read slashdot instead.
2. ???
3. Bug is fixed; I profit.
Hmm....
I'm not a smorgasbord.
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.
"NT was 100% new code" ... except, I assume, for all that VMS code that DEC sucessfully sued Microsoft over.
Napster-to-go says "Fill and refill your compatible MP3 player", which is a lie. It's not MP3. It's WMA with DRM.
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.
I'm not enamored with everything MS does, but I spend far more time patching my Linux box and updating apps on my Linux box than I do my Win XP boxes. Of course part of that is "release early, release often" and part of it is adding new features to catch up with much of the usability that XP has. But anyone who post on this thread about MS products having more bugs isn't eally being honest with themselves or the community.
And in closing, OSS will never sucees until supporterd drop the "Anything But Microsoft" rhetoric and point out what Linux and OSS in general do better.
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
I wonder how many programmers have run this scenario in their mind when doing some hypothetical designing of a hypothetical editor. Unfortunately, I bet its still patentable.
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.
Open Office has crashed on me many more times than Word. I agree that Word is cluddered but their are many other people that use all those features. I tried Open Office... it crashed a lot, and even if it didn't I'm not all that impressed by it. It's basically Word with less (much less) features and it crashes more often (at least for me). I too am no microsoft fanboy, I'm not a fan boy of everything really. I like everything. Open Office is nice but their is a difference between being better and exaggerating something to fit ones own agenda. Personally I haven't seen anything come out of open source that doesn't have an equal closed source alternative. (in terms of each has it's goods and it's bads.)
I'll make you a deal. You pray to God for help and I'll stop the moment he shows 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?
Sounds like the sort of pokey debugging processes I go through writing little programs in my spare time!
What about stuff like Test Driven Development and Unit Testing? Would that have made any odds here?
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
In regards to AbiWord.. I absolutely love the philosophy of starting with just the basics and allowing your users to add the fucntionality they need via plugins. Firefox is the best example of this, IMO. AbiWord is the same. The Abi installer is only 5 MB. I love it!
What is your penile percentile?
Actually, Codd theorized this in the Relational Model back in the late 60's (published in 1970). He realized the necessity for logical/physical data representation separation and formulated a data model around it. It's a shame that people are only now starting to realize that it was a very, very good idea.
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.
Thanks,
--
Matt
Sorry, I couldn't resist. God knows these kinds of things can be tricky. You just carefully track down the root cause of the problem, and fix it structurally, right? Let's see:
So, um, no structural fix? Just local band aids to stop the bleeding? I suppose... that would work... If your program is so big and fragile that anything but the simplest fix might introduce a whole boatload of unknown problems... Yes, that's a common problem with closed source software. What would also have helped is a more meaningful error message. Why show a "Disk full" message when the file descriptor table is full? It would certainly be nice if Word was a bit more predictable. Maybe the complexity has something to with it.Ah, forget it. Probably just a philosophical quagmire.
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!
Comment removed based on user account deletion
In the end of the day we are talking engineers, not scientists with their head in the clouds.
And your job still went to India.
Crimson
I'm not drunk, I just have a speech impediment. And a stomach virus. And an inner ear infection.
What about a meaningful error message? Of course they couldn't find the bug with the message "Disk full" if the problem was the number of open files.
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
Oh, your Ferrari has a broken cupholder?
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!!
"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.
From the MSDN Blog:
.Net Framework. With .Net behind me, nothing can stop me! And, maybe I'll publish my source. More on this later...
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"...
Im dreaming ofa big bndwdth, That can resist the
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
In 2001, my girlfriend was forced to do her honours thesis in Word. It was around 120 pages, split into two files. She had to split it at page 99, because if she opened the thesis with more than 99 pages in Word, it fell over, thankfully without corrupting the file but still losing the work done since her last backup (made at 98 pages fortunately) as she was unable to open the "99 page + new work" file :( This was 100% repeatable on four different Windows machines that I tried it on. Even crashed a Mac she tried it on.
It was at this point she switched to Mandrake + Openoffice and hasn't looked back since.
But if you look at a Word document's innards, the text is inserted pretty much in the order you typed it, including text for substructures such as textbox contents, bullet lists, or footnotes; then formatting is applied by way of a remote pointer. That's why formatting tends to be hard to get to "stick" in these substructures.
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 formatting being tied to a location like with substructures in Word documents.
~REZ~ #43301. Who'd fake being me anyway?
The author seems to be really attached to his debugger. He should learn to use the printf() the most powerful debugging tool ever devised.
...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.
You're a jerk 99.999% of the time.
I was hoping to post this on the blog instead of here. Unfortunately comments have been closed. My hope is to isolate some key mistakes that could have gone a long way to preventing this problem from taking so long to address, or perhaps ever happening.
// KB #123456 - "Disk is Full" Open FH bug
Granted I am judging from his description of how the system works and was assembled from scratch, but especially in reference to the multi-undo system, it was fairly obvious that the problem had absolutely nothing to do with the oversight of the developer regarding the open file limit, because the system was too complex to begin with.
Since (I hope) it's obvious that undo in an editor is such a unique and fundamental problem - a new pattern or a new assembly of smaller patterns needs to be applied to specifically address the undo issue. What I saw was a very typical problem in large and growing development environments, applying crow bar logic to implementing new solutions.
Proper use of exception handling and event-driven programming would have fixed the open file problem by itself, at least in my admittedly limited view. Instead of printing "Disk is full", the class exception or the file event itself could have caused a unique error to be printed with that information to aid the QA and developers. And of course, descriptive text for the user.
The second thing, Microsoft has this enormous knowledge base, would it have been too hard to do this in front of the 2 lines of code?
Since this bug had already been fixed and (hopefully) entered into the KB, the developer of the Mac fork (which I'll address in a minute) not only had a place to start, but a simple grep (or the MS equivalent) would have solved this problem in short order. I suspect if this pattern is not already adopted, it would fix a TON of these communication problems (which is really what this consists of), and code review would enforce that comments like these were injected on each bug fix. If they don't want to comment it (as many small bugs would prove prohibitive), properly address this in your CASE tool of choice.
Forks are ALWAYS bad in closed software development. If you have to fork your code, you have definitely done something wrong. I don't care how much system-specific code there is, it can be abstracted in almost any language - and a company like Microsoft which not only creates the applications but the development tools as well has no real excuse.
I know, a lot of this is "woulda coulda shoulda" stuff. Both Experienced and Novice developers and management have made these mistakes before, and it won't change anytime soon. Release pressures can really warp the logic of any member of the team - the "Get it out yesterday" school of logic rarely does any good in the long-term.
Excuse me, but first of all, an "open file limit" and a "Disk is full" error are two slightly different things. The first thing that is wrong is that the wrong error message is being displayed. 10 years of debugging could have been cut short by actually reporting the correct error message.
So the only bugs Microsoft developers can solve in a reasonable amount of time are those that conveniently show up in their debuggers (otherwise it will take them 10 years)? Debugging without a debugger is one of the first skills that, what I would call, an "advanced coder" learns.
And if I understood the rest of the article correctly -- the fix is not a systemic deterministic fix. Its just a method for mitigating the problem in the scenario in the one way in which they have been able to observe it.
This is the unravelling of a convoluted web which they are tring to piece together with scotch tape, bandaids and spit. Its pathetic. Their problem is an "running out of file handles" issue. They need to solve the problem definitively -- if they cannot rewrite the architecture of the code, then they need to write a virtual file layer that can have an unlimited number of file handles. Or something comparable.
These pathetic one-off patches that seem to be just barely mated to the specific problem manifestation just increase the complexity of the code.