What Is Software Design? - DeveloperDotStar.com - Software Development
This is pure genius.
Software confounds description by regular engineering folks. That's because in 'regular' engineering, there is a design phase ("bridge is designed"), which is then turned into a production phase ("bridge is built").
In software, the designing never stops. This is confusing to many people. I found this article so insightful that I had to say, "pure genius".
2005-08-29
My favorite bug fix of all time
My favorite bug fix of all time was finding a very subtle bug in a game that I was hired to finish. The developer had written the game, but it was buggy, and the publisher hired me to fix all the bugs. This is about eight years ago.
The original code, which had the biggest section of copy-and-paste coding I had ever seen (that's where someone wants to make a small change without altering the original code, so they copy a whole bunch of code, paste it in, and then make the small change), would crash once in a while.
BTW, the hunk of copied code was so big, that for a long time when I was debugging, I would set a breakpoint in the wrong function, and it took a while for me to realize that there were two GIANT functions, nearly identical to each other.
But ... the best part, which I am proud of, was that the code, which ran under Windows 3.1, had a little pointer which traced through some byte-code language the developer made up. Every once in a while, it returned garbage.
After much thinking, I remembered that on Intel chips (back to the 8086), there is a subtle bug in the actual hardware, where if you move a pointer from one 64k segment to the next, it can sometimes wrap around, and return the wrong value. At the time, nobody had to do this anymore, because Windows 95 was the rage, but when this program had first been written, it was written in 16-bit mode, and it actually tripped over this hardware 'feature'. I'm not even sure why I knew about this bug in the hardware (which I'm sure has been faithfully replicated in every Pentium chip since the original 8086). I must have read about it years before.
So, I tweaked the code slightly to be more careful when crossing a segment boundary, and all was well.
My second favorite bug fix had to do with putting a "Sleep(500)" statement into any program doing Microsoft DirectX processing in a window that was not the main window, just before shutting down the app. This was necessary because DirectX, back in the day, was hacked on top of Windows, and wasn't integrated into Windows. A little program called DDHelp.exe would keep track of which windows were open, and make sure DirectX resources were freed up when your program crashed or shut down, except it frequently screwed up.
Microsoft even published a free program for developers that would kill off DDHelp.exe when things got fubar. This didn't really fix anything, because often times the driver would hang onto to all your texture memory or whatever, but it often allowed you to put off rebooting your machine for awhile.
Anyway, my fix was better. As long as your program didn't flat out crash, by putting in the Sleep statement right after you destroyed your drawing window, you would allow this DDHelp.exe program to notice that you destroyed the window, and clean up. If you didn't give DDHelp.exe time to run, then when it tried to clean up, key information from Windows was already gone, and so, well, no clean up, thus heading you toward an early reboot.
This turned out to be important, because while many games ran in the primary window, any graphic program that, oh say, drew into a browser window, was going to have this problem. In fact, any DirectX program that ran with MFC was going to have this problem.
I wrote an article about it that still gets hits.
I don't know if I have a third most favorite bug. One thing about a favorite bug is that it is important that I didn't create it! It's only cool to fix someone else's subtle screw up.
© 2005 Stephen Clarke-Willson - All Rights Reserved.
The original code, which had the biggest section of copy-and-paste coding I had ever seen (that's where someone wants to make a small change without altering the original code, so they copy a whole bunch of code, paste it in, and then make the small change), would crash once in a while.
BTW, the hunk of copied code was so big, that for a long time when I was debugging, I would set a breakpoint in the wrong function, and it took a while for me to realize that there were two GIANT functions, nearly identical to each other.
But ... the best part, which I am proud of, was that the code, which ran under Windows 3.1, had a little pointer which traced through some byte-code language the developer made up. Every once in a while, it returned garbage.
After much thinking, I remembered that on Intel chips (back to the 8086), there is a subtle bug in the actual hardware, where if you move a pointer from one 64k segment to the next, it can sometimes wrap around, and return the wrong value. At the time, nobody had to do this anymore, because Windows 95 was the rage, but when this program had first been written, it was written in 16-bit mode, and it actually tripped over this hardware 'feature'. I'm not even sure why I knew about this bug in the hardware (which I'm sure has been faithfully replicated in every Pentium chip since the original 8086). I must have read about it years before.
So, I tweaked the code slightly to be more careful when crossing a segment boundary, and all was well.
My second favorite bug fix had to do with putting a "Sleep(500)" statement into any program doing Microsoft DirectX processing in a window that was not the main window, just before shutting down the app. This was necessary because DirectX, back in the day, was hacked on top of Windows, and wasn't integrated into Windows. A little program called DDHelp.exe would keep track of which windows were open, and make sure DirectX resources were freed up when your program crashed or shut down, except it frequently screwed up.
Microsoft even published a free program for developers that would kill off DDHelp.exe when things got fubar. This didn't really fix anything, because often times the driver would hang onto to all your texture memory or whatever, but it often allowed you to put off rebooting your machine for awhile.
Anyway, my fix was better. As long as your program didn't flat out crash, by putting in the Sleep statement right after you destroyed your drawing window, you would allow this DDHelp.exe program to notice that you destroyed the window, and clean up. If you didn't give DDHelp.exe time to run, then when it tried to clean up, key information from Windows was already gone, and so, well, no clean up, thus heading you toward an early reboot.
This turned out to be important, because while many games ran in the primary window, any graphic program that, oh say, drew into a browser window, was going to have this problem. In fact, any DirectX program that ran with MFC was going to have this problem.
I wrote an article about it that still gets hits.
I don't know if I have a third most favorite bug. One thing about a favorite bug is that it is important that I didn't create it! It's only cool to fix someone else's subtle screw up.
© 2005 Stephen Clarke-Willson - All Rights Reserved.
2005-08-27
FT.com AOL Fined for Cancellation Policy
FT.com:
Update 2006 07 06: Check out this recording of a guy trying to quit AOL.
"The internet service provider is now $1.25m poorer after coming under the eagle eyes of Eliot Spitzer, the New York's attorney-general.
AOL was ordered to pay the money in penalties and legal costs, and agreed to change some of its customer service practices after an investigation based on complaints from about 300 of its New York customers. It may also have to provide refunds for up to four months subscription costs to those customers who complained.
The complaints centred around AOL's cancellation policy. AOL customer service staff had been incentivised to retain customers who wanted to leave the internet service provider. Mr Spitzer said 'in many instances, such retention was done against subscribers' wishes, or without their consent'."
Update 2006 07 06: Check out this recording of a guy trying to quit AOL.
2005-08-21
Door of the Future - SlashDot
The 'Door of the Future' (from SlashDot).
Pretty cool. It looks to me like it makes a mistake at the end, but since the video is in Japanese, I can't tell. Hideki - what does that guy say at the end?
Pretty cool. It looks to me like it makes a mistake at the end, but since the video is in Japanese, I can't tell. Hideki - what does that guy say at the end?
2005-08-20
Enormous list of video cards
Currently covering over 230 desktop graphics cards, this comprehensive comparison will allow you to easily compare 15 different specifications for each and every card! We hope it will prove to be a useful reference. We will keep this guide updated regularly so do check back for the latest updates!
2005-08-19
CleanFilms - Rent and Buy Family Edited DVD Movies
I would love to try this out. Get something really smutty, if they offer it, and see how removing it affects the story. It would also be fun to see the quality of the editing they do.
Actually, more interesting, would be to see what they do with a truly serious film that happens to have some nudity in it.
I noticed they have "The Abyss". The most powerful scene in The Abyss is when Mary Elizabeth Mastrantonio has suffocated and Ed Harris is trying desperately to bring her back to life. Her chest is exposed for the electro-shock heart-machine thingy.
I would love to see what they did with that scene.
From their FAQ:
There obviously has been some issues about whether this is legal.
Again, from their FAQ:
I think this stretches the idea of fair use a bit, but honestly, as long as they pay the regular fees, who gives a rat's ass? Re-editing material has a long history of producing a fair amount of creative and social commentary.
I mean, anyone who wants can edit the Bible and republish it ...
But then I thought ... what about adding scenes to a movie? That would clearly be okay under the CleanFilms interpretation of fair use.
It's a messy situation.
What about "The Phantom Edit?" That was "The Phantom Menance" recut with Jar-Jar Binks and other offensive portions removed. Of course, that was distributed illegally, but I can tell you, if they had The Phantom Edit version of The Phantom Menace available at CleanFilms.com, I would want to check that out.
Actually, more interesting, would be to see what they do with a truly serious film that happens to have some nudity in it.
I noticed they have "The Abyss". The most powerful scene in The Abyss is when Mary Elizabeth Mastrantonio has suffocated and Ed Harris is trying desperately to bring her back to life. Her chest is exposed for the electro-shock heart-machine thingy.
I would love to see what they did with that scene.
From their FAQ:
CleanFilms' professional editors use the same technologies and techniques to edit out offensive content as Hollywood editors use in their everyday editing of film and TV content. For profanity or other offensive language, the dialogue volume is often muted, while secondary sound is kept for continuity. For scenes with nudity, sexual content, extreme violence, or extreme language, a cut edit is typically used. These edits are designed by professionals to be inconspicuous, similar to when viewing PG-13 or R rated movies that have been edited to be shown on network television or airlines.
There obviously has been some issues about whether this is legal.
Again, from their FAQ:
Is it legal to edit movies?
CleanFilms is a co-operative rental club. All CleanFilms members collectively agree to have CleanFilms purchase original, un-edited DVD movies on their behalf. Copyright law allows CleanFilms to make a backup copy of each original DVD. This backup copy can be edited under certain provisions of copyright law (Fair Use & First Sale Doctrines).
CleanFilms makes family edited backup copies of the originals to edit out content that is objectionable to its members - similar to how you might press mute to avoid hearing objectionable language when watching a movie in your home. CleanFilms always maintains a 1 to 1 ratio between edited movies and un-edited originals.
I think this stretches the idea of fair use a bit, but honestly, as long as they pay the regular fees, who gives a rat's ass? Re-editing material has a long history of producing a fair amount of creative and social commentary.
I mean, anyone who wants can edit the Bible and republish it ...
But then I thought ... what about adding scenes to a movie? That would clearly be okay under the CleanFilms interpretation of fair use.
It's a messy situation.
What about "The Phantom Edit?" That was "The Phantom Menance" recut with Jar-Jar Binks and other offensive portions removed. Of course, that was distributed illegally, but I can tell you, if they had The Phantom Edit version of The Phantom Menace available at CleanFilms.com, I would want to check that out.
2005-08-17
Eastbourne Today: News, Sport, Jobs, Property, Cars, Entertainments & More
Eastbourne Today: News, Sport, Jobs, Property, Cars, Entertainments & More:
I always wondered how much that cost, if you actually paid it. Of course, that it is in UK money (about $90 US).
"Louise Gould, the proprietor of Kutz Hair Design in Winston Crescent, has been in business more than 10 years but was shocked to receive a bill for �60 to obtain a licence for the radio.
The request for cash has come from the Performing Rights Society (PRS), an organisation which collects copyright royalty payments on behalf of musicians and bands.
Mrs Gould told us, 'The PRS has told me if I want to play the radio in my salon I have to buy a licence, which this year is �60 and will no doubt go up in time."
I always wondered how much that cost, if you actually paid it. Of course, that it is in UK money (about $90 US).
2005-08-15
Who Would Buy That? (weird eBay auctions)
Who Would Buy That? (weird eBay auctions)
Need a little pick-me-up? Check out the crazy things people are selling on eBay.
Need a little pick-me-up? Check out the crazy things people are selling on eBay.
2005-08-13
Cable, wireless firms rankle consumers - washingtonpost.com Highlights - MSNBC.com
Cable, wireless firms rankle consumers - washingtonpost.com Highlights - MSNBC.com:
"Cable and wireless operators in particular ranked the lowest in a customer-satisfaction survey during the first quarter of this year -- even lower than the much-maligned airline industry, according to the American Consumer Satisfaction Index. Local and long-distance service providers ranked slightly higher -- 70 points on a scale of 100, compared with 63 for wireless carriers and 61 for cable and satellite companies -- although the satisfaction rate had declined 10 points in the last decade, according to the survey, which is an independent measurement jointly taken by the University of Michigan and the American Society for Quality."
2005-08-12
Cajun Man
I was just watching a repeat of Saturday Night Live from 1992.
Cajun Man was on. Cajun Man is Adam Sandler who answers everything with this strange pseudo-French-Cajun accent. He generally answers with one or two words and each response ends in "-tion" except it is pronounced "shone".
For instance: "prediction" -> "predict-shone".
Back in 1992 I was in a staff meeting at Virgin Games with the president of the company, Martin Alper. It was Martin, some other execs, and a bunch of producers. I guess Cajun Man had been on TV the weekend before because we were answering Martin's questions like Cajun Man. It went something like this:
Martin: "How's game X coming along?"
Us: "Tough Predict-shone".
Martin: "What does the developer say?"
Us: "Lack of informat-shone."
Martin: "Why are they so far behind?"
Us: "Bad product-shone."
This went on for several more minutes. Finally he told us to quit it. But I thought it was cool that he let us get away with it for so long. I remember the name of one of the other producers at the meeting:
Seth Mendel-shone (Mendelsohn)
© 2005 Stephen Clarke-Willson - All Rights Reserved.
Cajun Man was on. Cajun Man is Adam Sandler who answers everything with this strange pseudo-French-Cajun accent. He generally answers with one or two words and each response ends in "-tion" except it is pronounced "shone".
For instance: "prediction" -> "predict-shone".
Back in 1992 I was in a staff meeting at Virgin Games with the president of the company, Martin Alper. It was Martin, some other execs, and a bunch of producers. I guess Cajun Man had been on TV the weekend before because we were answering Martin's questions like Cajun Man. It went something like this:
Martin: "How's game X coming along?"
Us: "Tough Predict-shone".
Martin: "What does the developer say?"
Us: "Lack of informat-shone."
Martin: "Why are they so far behind?"
Us: "Bad product-shone."
This went on for several more minutes. Finally he told us to quit it. But I thought it was cool that he let us get away with it for so long. I remember the name of one of the other producers at the meeting:
Seth Mendel-shone (Mendelsohn)
© 2005 Stephen Clarke-Willson - All Rights Reserved.
2005-08-10
Disney Insider: Walt Disney on Pirates of the Caribbean
You never know where you'll end up. That's my philosophy.
Disney Insider: Walt Disney on Pirates of the Caribbean:
Disney Insider: Walt Disney on Pirates of the Caribbean:
"Attencio found himself a new skill while working on the attraction. As he recalls, 'Walt called over and he says, 'I want you to do the script for the Pirate Ride.' And I had never done any scripting before. I had done story boarding at the animation end of it, and so I said, 'Well, okay.' And I put on my pirate hat and researched all the pirate stuff I could get a hold of. Marc Davis and Claude Coates had already worked out the ride, so we had all the little miniatures for each scene. So all I had to do was walk through the mock-up there and see what was there and what should be said.
'And then, when we finished with the scripting and everything, I think the last story meeting we had, I said, 'I think I have an idea for a song for this thing. A song'd be real good in this' And I kind of half recited and half - I had a melody in mind - sang it. And it started with a 'Yo Ho, Yo Ho, a pirate's life for me.'
'And he says, 'Hey that's fine' ... And I thought he was going to say, 'Get the Sherman brothers to do it,' but he said go ahead, so I became a songwriter then.'"
2005-08-08
'Bible Games' instead of 'Grand Theft Auto?' - Games - MSNBC.com
'Bible Games' instead of 'Grand Theft Auto?' - Games - MSNBC.com:
Jesus would be so proud to know you are running around picking up little crosses in his name.
Yeah, like 0.00001 percent.
"I play a lot of Christian video games," Tolin said. "They don't have fights. You just have to follow Jesus and pick up little crosses for points."
Jesus would be so proud to know you are running around picking up little crosses in his name.
Right now, the market for Christian titles is small. According to Bean, Christian games represent less than one percent of all games that are out there.
Yeah, like 0.00001 percent.
2005-08-03
Billboard PostPlay: "Customers Aren't Stupid" - Jobs
Billboard PostPlay: "Customers Aren't Stupid" - Jobs:
I hate to break it to you Steve, but they are that stupid. Just to try it out, I bought a ringtone (actually a 'realtone') for my phone. It costs $2.99, lasts about 20 seconds, and it sounds like shit.
People are buying billions of dollars of this crap each year.
Go figure.
"Apple CEO Steve Jobs has dismissed mobile phone operators as serious competitors for the digital music market, at least until the change tactics. 'Discussing mobile networks attempts to build music download services, Jobs is scathing on price, saying: 'They're going to try to sell music at $2 and $3 a song for the phone...It's hard to imagine that customers are that stupid.' "
I hate to break it to you Steve, but they are that stupid. Just to try it out, I bought a ringtone (actually a 'realtone') for my phone. It costs $2.99, lasts about 20 seconds, and it sounds like shit.
People are buying billions of dollars of this crap each year.
Go figure.
2005-08-02
AOL Music: Full CD Listening Party -- Hear Faith Hill's New Album + More!
AOL Music: Full CD Listening Party -- Hear Faith Hill's New Album + More!
This is amazing. Free streaming CDs! Of new releases!
Check it out! The new Faith Hill song "Dearly Beloved" is pretty funny.
Right now they also have the complete Sky High CD.
This is amazing. Free streaming CDs! Of new releases!
Check it out! The new Faith Hill song "Dearly Beloved" is pretty funny.
Right now they also have the complete Sky High CD.
2005-08-01
Aggregating
I mentioned in another entry somewhere that the online music services really want you to buy more than one $0.99 tune because otherwise the credit card fees kill all chance of profit.
Sony recently had a promotion - get a $9.99 album for $0.99 from the Sony Connect Music Store. Since I have a MiniDisc player this seemed like a fine thing to try.
Every album I tried to get said, "Purchase by individual tracks only."
Finally I found a hidden gem that I never would have known about, which is an old album by Dick Hyman, which he made himself, by setting a cassette recorder on top of the piano while he played. It's called "Dick Hyman: An Evening at the Cookery 1973." I like Dick Hyman so I bought it.
It was at least three days before Sony charged my credit card. Talk about wishful thinking! Of course, the purpose of the promotion was to get me in a buying mood but it didn't work. They waited three days, hoping against hope that I wouldn't hit them with a $0.99 credit card charge.
Didn't work, though. I only bought the one thing.
There is something wonderful about listening to an old LP originally made in 1973 from a cassette recorder, republished digitally, transmitted over the internet, and compressed in Sony Atrac format, and played back in a format (Sony MiniDisc) that is very rare in the US.
© 2005 Stephen Clarke-Willson - All Rights Reserved.
Sony recently had a promotion - get a $9.99 album for $0.99 from the Sony Connect Music Store. Since I have a MiniDisc player this seemed like a fine thing to try.
Every album I tried to get said, "Purchase by individual tracks only."
Finally I found a hidden gem that I never would have known about, which is an old album by Dick Hyman, which he made himself, by setting a cassette recorder on top of the piano while he played. It's called "Dick Hyman: An Evening at the Cookery 1973." I like Dick Hyman so I bought it.
It was at least three days before Sony charged my credit card. Talk about wishful thinking! Of course, the purpose of the promotion was to get me in a buying mood but it didn't work. They waited three days, hoping against hope that I wouldn't hit them with a $0.99 credit card charge.
Didn't work, though. I only bought the one thing.
There is something wonderful about listening to an old LP originally made in 1973 from a cassette recorder, republished digitally, transmitted over the internet, and compressed in Sony Atrac format, and played back in a format (Sony MiniDisc) that is very rare in the US.
© 2005 Stephen Clarke-Willson - All Rights Reserved.
Microsoft tracks WiFi for new mapping system - Financial Times - MSNBC.com
Microsoft tracks WiFi for new mapping system - Financial Times - MSNBC.com
Microsoft is making an alternative to GPS using the millions of WiFi adaptors spread around the world.
This is mind boggling.
I guess the assumption is that wireless transmitters don't move - once they are set up they probably stay put. At least enough of them stay put to make this practical.
Microsoft is making an alternative to GPS using the millions of WiFi adaptors spread around the world.
This is mind boggling.
I guess the assumption is that wireless transmitters don't move - once they are set up they probably stay put. At least enough of them stay put to make this practical.
Subscribe to:
Posts (Atom)