So, if I was using that digital speaker set, and the Digital Out is being disabled, how am I supposed to listen to what is being played?
Simple. Throw those digital speakers in the trash, and buy new ones that are DRM-enabled. Secure Audio Path is designed to make sure that no one gets a clean digital copy of the audio; if you have SAP-enabled speakers, an encrypted copy of the audio goes into the speakers and the speakers themselves decrypt it.
The MPAA wants computer monitors and HDTVs to have similar decryption features. After all, if a movie can be played over an unencrypted digital connector, you could slurp a copy of it and pirate it! Of course, people will still pirate movies even if all this junk gets built into every computer. At least until we all get mandatory DRM chips embedded in our brains.
I'm not a fan of this DRM junk. I'm just not planning to get rid of my SBLive cards, just because Creative has driver support for Secure Audio Path.
Ha! They're already warming you up, just like the frog in the pot.
I don't know what you mean. The sign clearly says "Free Hot Tub!" and I'm just enjoying a good soak.
For now you can play all your files, but what about when the DRM files become ubiquitous?
When DRM files become ubiquitous, my SBLive will continue to work. Unless ninjas come in my window and solder new parts into it, the SBLive will just go on working as it does right now.
Now, if Creative ever comes out with a new card that is so broken with DRM junk that it won't work properly, I won't buy it. But I am not planning to get rid of all my SBLive cards! They are well-supported in the Linux kernel, and they work.
Tell me, suppose you buy a motherboard with built-in audio, and then you find out that the motherboard company has released a new driver that supports the MS DRM stuff. Would you tear the motherboard out of your computer and get a new one?
Suppose you buy a music player that can be firmware-upgraded, and a new version of the firmware is released that can play.WMA files with DRM stuff. Would you get rid of it and buy another brand? Perhaps a non-upgradeable one so you can be sure that you will never ever inadvertently own a piece of hardware with the potential to run DRM?
And if you want to get rid of this stuff, will you sell it, thus helping disseminate hardware that is capable of DRM, or will you destroy it and eat the loss? Just how far do you recommend I go to avoid being boiled in the hot tub?
steveha
Re:and to think creative was becoming a good compa
on
DRM: How To Boil A Frog
·
· Score: 3, Informative
MS was pushing this. Creative supports the "secure audio path" stuff, but they didn't invent it. If you don't accept the secure audio path files from Microsoft, then your SBLive will continue to work. When playing non-DRM files (such as MP3 files you encoded yourself) your SBLive will continue to work. Under Linux, your SBLive will continue to work.
I am not annoyed enough with Creative to get rid of my SBLives, and I'm surprised you are. I guess each of us has to decide where to draw the line.
I run my own email server, and I trust my computer pretty well.
I suppose that in any cyber cafe you need to worry about the risk that the web browsers have actually been modified to keep records of what people read on them, what passwords people type in, etc. So I will just have to have two email accounts, the one I use every day, and one that I never access from cyber cafes. That's no big deal to me. (I already change my email password after I go on vacation and read mail from cyber cafes.)
I'd like to, for example, be able to discuss personal stuff in email and have the email GPG-encrypted... but I still might want to be able to pull that email up from someplace other than my home.
The biggest problem with public key encryption is that you can't use it on multiple computers without some way of transferring the private key.
I'd like a web client that can do the public key stuff on the server. It's nice to be able to check your mail with just a https:// capable web browser, without having to install stuff on the computer you want to use.
I used to prefer using mutt over ssh, but you often cannot find ssh at cyber cafes and such. Web mail always works.
Darek Mihocka of emulators.com has written a whole bunch of stuff about the Pentium 4. He has examples of code that performs badly on Pentium 4, although I'm not sure how the most recent versions of the P4 would work on his code samples.
Re:Frequently Asked User Interface Questions
on
Inside Ximian
·
· Score: 2
Why can't the open source desktop people come up with something innovative and useful instead of trying to build a cradle for all of the MS converts?
Let's turn that around. How about you show me a user interface that you consider innovative and useful, and then we'll see how it compares with GNOME 2 and Windows.
Any desktop interface that I would want to use will have certain elements in common: windows I can resize, that can overlap, and that can be dragged around; title bars that help me sort out which window is which; some indicator of what apps I have running and a way to switch among them; etc. GNOME 2 does many of these things the same way Windows does, and that's fine with me.
Don't forget that Microsoft has hired usability experts and done usability testing; some of their features really are the best way to do things.
So, as a starting point, a Windows-ish interface isn't bad. And GNOME 2 lets you customize things your way. Do you want the Mac OS X "traffic light" buttons in the upper-left of each window? You can do that. Do you hate the "foot" menu (the GNOME answer to the "Start" menu)? Get rid of it; you can, easily. So far, GNOME lets me do everything I actually want to do.
Problems with printing means wasted time and money. Even if it slows printing down a little bit, you would probably come out ahead if you ran a PostScript rasterizer on your print server, and had all the workstations just send PostScript.
If you must run Windows on your print server, then you should try RedMon which uses GhostScript to create a virtual PostScript printer.
But I'm surprised you can't run Linux on just one computer and use that as your print server. Oh well.
I bought an HP LaserJet 1200 and I love it. It doesn't have true licensed-from-Adobe PostScript, but it has something completely compatible, and I am perfectly content. Great quality, fast speed, convenient paper tray. And I do double-sided printing by manually feeding pages through a second time, and it works with no trouble.
Here is a tip if you buy one of these. It comes with 8 MB of RAM, but it is expandable; you can insert one memory module of up to 64 MB of RAM. HP sells these modules, but they are overpriced.
I went to Crucial.com and found that they sell a 64 MB module compatible with the LaserJet 1200 for under $25 so I bought one. My 1200 is maxed-out with 72 MB of RAM. For that price, why wouldn't you!
As others have noted, you can get snapshots using LVM.
What I would really like, however, is the ability to have the file system keep versions of a file as the file is written to or deleted; I don't want a shapshot every hour, I want a new single-file snapshot for every change to the file. And I want to be able to set or clear an attribute to control which files/directories this gets done in (i.e., chattr +u, which currently doesn't really do anything). And I want the old snapshots to age and vanish on their own, say, 3 days after they are made (or however many days the sysadmin chooses).
Under Windows, with Norton Utilities, you can get this sort of functionality with the Norton Protected Recycle Bin. I have been wishing for this on Linux for quite some time.
I remember reading about something called the "Snap filesystem" which would someday offer this, but I can't find anything about it now on the web.
It's simple: if you are compiling anything VfW for Windows ME, 98, 95, or older, it's 16-bit code. If you are compiling for anything NT-based: NT, 2000, or XP, then it would actually be 32-bit code. But of course VfW is very deprecated.
You don't really need to check. If you wanted to check, you would have to check the include files that you are compiling with, and the makefile (see which compiler and what compile switches it is using).
If you were asking how I made part of the driver 32-bit, I had a special.exe file that was built 32-bit. It was called something like "pump.exe". The 16-bit code simply called the function that starts up a new process, passing in the filename of the pump. Then I could pass messages to the pump, and it would handle them. The trickiest part was getting pointers that I could pass from 16-bit code to 32-bit code; all I remember right now is that I used the thunking tools to do that. Once I had the pointers I passed them in messages. I had one message that meant "capture a frame of video into this buffer here", for example.
For a codec, you probably don't want to do anything that complicated. I did it because I was writing a capture driver, and I really needed to be in 32-bit mode to talk to that particular hardware.
Not a useful comparison. VHS beat Betamax for several reasons:
Betamax VCRs cost more. Many companies made VHS VCRs, and competition drove prices down, while only Sony made Betamax.
VHS allowed 6 hours of recording per tape, and consumers considered the quality adequate. Betamax had better quality, but much less time per tape (under 2 hours, IIRC).
VHS VCRs could not easily be made that would play Betamax tapes. Choosing VHS meant not choosing Betamax.
Now let's compare Ogg Vorbis and MP3:
MP3 costs money, and Ogg never does. "More expensive" will not apply to Ogg ever.
Ogg can fit as much music, or more, as MP3 into a similar space. Yet Ogg has the better quality. (Consumers consider MP3 quality to be adequate, though.) This one is a wash.
Players can be easily made that will play either MP3 or Ogg. When Ogg players are available, buying one will not mean choosing not to be able to play MP3s; and consumers might buy a player wanting to use it for MP3s, and wind up using it for Ogg.
So I don't think the Betamax comparison is all that useful.
It will cost engineering time and testing time to add Ogg to players, but it will not cost any licensing fees. It isn't free to add Ogg to a player, but it's darn close, and Ogg adds nothing to the all-important "cost of goods". Given this, it is inevitable that at least some players will be available that will do Ogg.
What's more of a usability problem, a controlled crash with an error message or silently eating your data without hope of recovery?
Sorry, not with you on this one. Controlled crash and good error handling is obviously what you want. But assertions don't get you that! They just alert you that something unexpected is going on, with a cryptic message.
Because assertions are not included in the ship version, you can somewhat go nuts with them, not worrying about them bloating the size of the app or slowing down time-critical loops. I don't want to feel I have to be careful where I put asserts; I like knowing they won't bother the actual users.
I do recommend having robust error handling, but I don't think exposing asserts to the user is a good way to do that. I think checking return values from functions, and handling errors intelligently, would be more valuable than either throwing cryptic messages at the user, or laundering the assert messages into something like "something odd is going on; be afraid". (I am not one of the guys who claims that you save time by not checking return values!)
The way assertions were done when I worked on Word, an assert would pop up a dialog box. If you ran the binary under a debugger, you could trivially break in and have a look at the variables in the function that asserted. But the dialog box, while great for developers, was not user-friendly. Especially if the assert was in a loop and happened a lot!
About the quote about shipping with assertions in: there is a similar quote about shipping with bounds-checking enabled for arrays. In The Elements of Programming Style, Kernighan and Plaugher made a comment along the lines of "only disable bounds checking when it is important to get the wrong answers more quickly."
The builds released to the testers and customers were always the "ship" builds! How did you ever get the idea that it was anything else?
The "debug" build had no optimizations. This makes the single-stepping work much more predictably. The "hybrid" build had all the same optimizations that the ship build had, but had assertions and any other debugging framework still compiled in.
Testers would find bugs in the ship version, and developers would try to reproduce them in the debug version. On rare occasions, the bug would not reproduce in the debug version, and the hybrid version would be used to try to run the bug down.
I thought it was really cool when the MS C compiler got the ability to put all debugging info in a separate file. Then you could have a ship build with debug information, and you could single-step it, and it was the same file that the customers would get. Sometimes, due to optimizations, the single-step behavior was odd, but that is a small price to pay for being able to actually look around inside the exact bits that ship to testers and customers.
It's also a good idea to make most assertions lightweight enough that you leave them in the production build
This is an interesting idea. I suspect that usability advocates like Don Norman would shudder at this. The assertions were always things like "pPAP != 0"; what would a customer make of such things? I do think it is worthwhile to have a logging capability, such that a customer could turn logging on and provide you with a log telling you what went wrong.
Who made the old quote about turning off assertions, and where did you read it? I'm interested.
They will surely release a Special Edition DVD with at least two discs, and there will be "deleted scenes" and you will be able to see the Wil Wheaton scene. And perhaps there will even be a way to see the whole thing as a 3-hour movie, with all the cut material put back.
P.S. Wil Wheaton seems to be a good guy, and his blog entry is as reasonable and mature as anyone could ask for.
I remember once running down a bug that would not reproduce in a debug version. It turned out to be a buffer overrun, where the overrun was only one byte. The debug version had some extra junk on the stack, and the extra junk got ovewritten without harm.
When I was at Microsoft, we would build three versions of Word: the "ship" build (full optimizations), the "debug" build (no optimizations, debug enabled, asserts enabled) and the "hybrid" build (full optimizations, no debug, but asserts still enabled). I still do this.
I suggest you get a player that uses a flash chip format: CompactFlash, MMC / SD, SmartMedia, or Memory Stick. Then get one of those USB chip read/write drives for your desktop computer.
With a laptop, you can either use a USB drive, or you can get a PC Card adapter that lets you plug in the chip directly.
This is how I manage my digital photos from my digital camera: I never plug in the camera, and haven't installed the special camera software. I just slot the chip into the drive, and treat it as just another "disk".
If you do this with a Mac, it will stick Mac junk on the chip ("finder.dat" files and such) but it will work. On Windows or Linux, it will just work.
I will not ever buy a player that requires me to use a special version of MusicMatch Jukebox to transfer files. Ever.
I would like to migrate all my old video tapes onto a digital format (preferably DVDs). I'm wondering what would be the best editing tool.
Probably all I really need is something to crop out the bits I don't want to keep: the last 30 seconds of the show that came on before the one I wanted, the commercials, etc. A full NLE is overkill.
What tools, that run under Linux, should I be looking into? Thanks for any advice.
I'm puzzled. Heroine Virtual wrote Broadcast 2000, and then pulled it from the web site, saying something about being afraid of lawsuits. I thought they were out of the NLE business.
Now I am happy to see Cinelarra, but I'm wondering if they will be yanking that one of these days like they did with Broadcast 2000.
(Fortunately, with free software, the project can live on after being disavowed by its creator. Cinelarra, now that it has been released under GPL, is here to stay.)
I agree that an automation interface is important. AbiWord doesn't currently have anything, but automation is planned. They will expose stuff via CORBA, which should be great in a GNOME environment.
They also will do something with scripting. I'm not sure what, because I haven't found a recent discussion of that; if you do a google search, you will find dozens of messages two years old or older, from flame wars on what is the best way to do scripting. (Some guys want Perl, some guys want Python, some guys want a free clone of Visual Basic, and no doubt there are LISP fanatics out there who want SCHEME. And so on.)
You must admit that automation isn't a requirement for the vast majority of word processor users; it made sense for the AbiWord developers to focus on core features, and add automation later. I assume that since they knew they would be automating later, they didn't make any stupid designs that will be hard to automate. At least I hope so.
I read an article recently about a C extension to Python that very efficiently (and correctly) handled multi-dimensional matrix math. Thus you can write code using the very nice syntax of Python and still get good performance. The author of the article said something like "No one who has tried Python with these extensions ever wants to go back to FORTRAN."
It made me wonder if, with enough C extensions, Python can take over FORTRAN's niche as a high-performance heavy number-crunching language.
I don't know enough about the issues to make any predictions; I'm just wondering.
Sounds like they're trying to get the nudge, nudge, wink, wink, piracy thing going
Maybe piracy will lead to increased paper book sales, but I really don't think that they are trying to get piracy going, and you haven't come up with any arguments that convince me otherwise.
And I for one hope that the ebooks actually sell well; there are many times when I would like an ebook rather than a paper one, and I hope future titles will be available. If there is rampant piracy of current titles, they might decide the experiment was a failure and stop releasing ebooks.
You are claiming that just because they didn't lock down the books with DRM junk, that they want their books to be pirated. I claim they would rather be paid.
I'm sure they know there will be a certain amount of piracy, but it's a huge leap from that position to saying they are hoping for it!
Did you ever consider that pirate versions would get out in the wild whether they lock the books down or not? It only takes one person cracking the encryption, and a free text version is in the wild. Locking books down with DRM junk doesn't really protect them; it chiefly inconveniences the paying customers, not the pirates. I submit that no rational publisher would go out of its way to annoy the customers when it won't serve any useful purpose.
Back in the 80's, Borland International released a Pascal compiler and several other products without copy protection, and at fair prices. Most people, rather than pirating the products, just bought them. These were not older products that they were no longer making a great deal of money upon; these were their bread-and-butter products that they depended on for revenue. Do you think they were hoping for rampant piracy of their stuff? I sure think not.
So, if I was using that digital speaker set, and the Digital Out is being disabled, how am I supposed to listen to what is being played?
Simple. Throw those digital speakers in the trash, and buy new ones that are DRM-enabled. Secure Audio Path is designed to make sure that no one gets a clean digital copy of the audio; if you have SAP-enabled speakers, an encrypted copy of the audio goes into the speakers and the speakers themselves decrypt it.
The MPAA wants computer monitors and HDTVs to have similar decryption features. After all, if a movie can be played over an unencrypted digital connector, you could slurp a copy of it and pirate it! Of course, people will still pirate movies even if all this junk gets built into every computer. At least until we all get mandatory DRM chips embedded in our brains.
I'm not a fan of this DRM junk. I'm just not planning to get rid of my SBLive cards, just because Creative has driver support for Secure Audio Path.
steveha
Ha! They're already warming you up, just like the frog in the pot.
.WMA files with DRM stuff. Would you get rid of it and buy another brand? Perhaps a non-upgradeable one so you can be sure that you will never ever inadvertently own a piece of hardware with the potential to run DRM?
I don't know what you mean. The sign clearly says "Free Hot Tub!" and I'm just enjoying a good soak.
For now you can play all your files, but what about when the DRM files become ubiquitous?
When DRM files become ubiquitous, my SBLive will continue to work. Unless ninjas come in my window and solder new parts into it, the SBLive will just go on working as it does right now.
Now, if Creative ever comes out with a new card that is so broken with DRM junk that it won't work properly, I won't buy it. But I am not planning to get rid of all my SBLive cards! They are well-supported in the Linux kernel, and they work.
Tell me, suppose you buy a motherboard with built-in audio, and then you find out that the motherboard company has released a new driver that supports the MS DRM stuff. Would you tear the motherboard out of your computer and get a new one?
Suppose you buy a music player that can be firmware-upgraded, and a new version of the firmware is released that can play
And if you want to get rid of this stuff, will you sell it, thus helping disseminate hardware that is capable of DRM, or will you destroy it and eat the loss? Just how far do you recommend I go to avoid being boiled in the hot tub?
steveha
MS was pushing this. Creative supports the "secure audio path" stuff, but they didn't invent it. If you don't accept the secure audio path files from Microsoft, then your SBLive will continue to work. When playing non-DRM files (such as MP3 files you encoded yourself) your SBLive will continue to work. Under Linux, your SBLive will continue to work.
I am not annoyed enough with Creative to get rid of my SBLives, and I'm surprised you are. I guess each of us has to decide where to draw the line.
steveha
I run my own email server, and I trust my computer pretty well.
I suppose that in any cyber cafe you need to worry about the risk that the web browsers have actually been modified to keep records of what people read on them, what passwords people type in, etc. So I will just have to have two email accounts, the one I use every day, and one that I never access from cyber cafes. That's no big deal to me. (I already change my email password after I go on vacation and read mail from cyber cafes.)
I'd like to, for example, be able to discuss personal stuff in email and have the email GPG-encrypted... but I still might want to be able to pull that email up from someplace other than my home.
steveha
The biggest problem with public key encryption is that you can't use it on multiple computers without some way of transferring the private key.
I'd like a web client that can do the public key stuff on the server. It's nice to be able to check your mail with just a https:// capable web browser, without having to install stuff on the computer you want to use.
I used to prefer using mutt over ssh, but you often cannot find ssh at cyber cafes and such. Web mail always works.
steveha
I like to use Gnome Toaster for CD burning. It works very well for me.
http://gnometoaster.rulez.org/
steveha
Any place I can look for some doc on that issue ?
Darek Mihocka of emulators.com has written a whole bunch of stuff about the Pentium 4. He has examples of code that performs badly on Pentium 4, although I'm not sure how the most recent versions of the P4 would work on his code samples.
http://www.emulators.com/pentium4.htm
steveha
Why can't the open source desktop people come up with something innovative and useful instead of trying to build a cradle for all of the MS converts?
Let's turn that around. How about you show me a user interface that you consider innovative and useful, and then we'll see how it compares with GNOME 2 and Windows.
Any desktop interface that I would want to use will have certain elements in common: windows I can resize, that can overlap, and that can be dragged around; title bars that help me sort out which window is which; some indicator of what apps I have running and a way to switch among them; etc. GNOME 2 does many of these things the same way Windows does, and that's fine with me.
Don't forget that Microsoft has hired usability experts and done usability testing; some of their features really are the best way to do things.
So, as a starting point, a Windows-ish interface isn't bad. And GNOME 2 lets you customize things your way. Do you want the Mac OS X "traffic light" buttons in the upper-left of each window? You can do that. Do you hate the "foot" menu (the GNOME answer to the "Start" menu)? Get rid of it; you can, easily. So far, GNOME lets me do everything I actually want to do.
steveha
Problems with printing means wasted time and money. Even if it slows printing down a little bit, you would probably come out ahead if you ran a PostScript rasterizer on your print server, and had all the workstations just send PostScript.
If you must run Windows on your print server, then you should try RedMon which uses GhostScript to create a virtual PostScript printer.
But I'm surprised you can't run Linux on just one computer and use that as your print server. Oh well.
steveha
I bought an HP LaserJet 1200 and I love it. It doesn't have true licensed-from-Adobe PostScript, but it has something completely compatible, and I am perfectly content. Great quality, fast speed, convenient paper tray. And I do double-sided printing by manually feeding pages through a second time, and it works with no trouble.
Here is a tip if you buy one of these. It comes with 8 MB of RAM, but it is expandable; you can insert one memory module of up to 64 MB of RAM. HP sells these modules, but they are overpriced.
I went to Crucial.com and found that they sell a 64 MB module compatible with the LaserJet 1200 for under $25 so I bought one. My 1200 is maxed-out with 72 MB of RAM. For that price, why wouldn't you!
steveha
As others have noted, you can get snapshots using LVM.
What I would really like, however, is the ability to have the file system keep versions of a file as the file is written to or deleted; I don't want a shapshot every hour, I want a new single-file snapshot for every change to the file. And I want to be able to set or clear an attribute to control which files/directories this gets done in (i.e., chattr +u, which currently doesn't really do anything). And I want the old snapshots to age and vanish on their own, say, 3 days after they are made (or however many days the sysadmin chooses).
Under Windows, with Norton Utilities, you can get this sort of functionality with the Norton Protected Recycle Bin. I have been wishing for this on Linux for quite some time.
I remember reading about something called the "Snap filesystem" which would someday offer this, but I can't find anything about it now on the web.
steveha
It's simple: if you are compiling anything VfW for Windows ME, 98, 95, or older, it's 16-bit code. If you are compiling for anything NT-based: NT, 2000, or XP, then it would actually be 32-bit code. But of course VfW is very deprecated.
.exe file that was built 32-bit. It was called something like "pump.exe". The 16-bit code simply called the function that starts up a new process, passing in the filename of the pump. Then I could pass messages to the pump, and it would handle them. The trickiest part was getting pointers that I could pass from 16-bit code to 32-bit code; all I remember right now is that I used the thunking tools to do that. Once I had the pointers I passed them in messages. I had one message that meant "capture a frame of video into this buffer here", for example.
You don't really need to check. If you wanted to check, you would have to check the include files that you are compiling with, and the makefile (see which compiler and what compile switches it is using).
If you were asking how I made part of the driver 32-bit, I had a special
For a codec, you probably don't want to do anything that complicated. I did it because I was writing a capture driver, and I really needed to be in 32-bit mode to talk to that particular hardware.
steveha
VfW is 16-bit. That's one of the things that sucks about it.
I wrote a VfW video capture driver once, and the cleverest thing I did was to have it start up a 32-bit process to do all the real work.
steveha
Betamax VCRs cost more. Many companies made VHS VCRs, and competition drove prices down, while only Sony made Betamax.
VHS allowed 6 hours of recording per tape, and consumers considered the quality adequate. Betamax had better quality, but much less time per tape (under 2 hours, IIRC).
VHS VCRs could not easily be made that would play Betamax tapes. Choosing VHS meant not choosing Betamax.
Now let's compare Ogg Vorbis and MP3:
MP3 costs money, and Ogg never does. "More expensive" will not apply to Ogg ever.
Ogg can fit as much music, or more, as MP3 into a similar space. Yet Ogg has the better quality. (Consumers consider MP3 quality to be adequate, though.) This one is a wash.
Players can be easily made that will play either MP3 or Ogg. When Ogg players are available, buying one will not mean choosing not to be able to play MP3s; and consumers might buy a player wanting to use it for MP3s, and wind up using it for Ogg.
So I don't think the Betamax comparison is all that useful.
It will cost engineering time and testing time to add Ogg to players, but it will not cost any licensing fees. It isn't free to add Ogg to a player, but it's darn close, and Ogg adds nothing to the all-important "cost of goods". Given this, it is inevitable that at least some players will be available that will do Ogg.
steveha
What's more of a usability problem, a controlled crash with an error message or silently eating your data without hope of recovery?
Sorry, not with you on this one. Controlled crash and good error handling is obviously what you want. But assertions don't get you that! They just alert you that something unexpected is going on, with a cryptic message.
Because assertions are not included in the ship version, you can somewhat go nuts with them, not worrying about them bloating the size of the app or slowing down time-critical loops. I don't want to feel I have to be careful where I put asserts; I like knowing they won't bother the actual users.
I do recommend having robust error handling, but I don't think exposing asserts to the user is a good way to do that. I think checking return values from functions, and handling errors intelligently, would be more valuable than either throwing cryptic messages at the user, or laundering the assert messages into something like "something odd is going on; be afraid". (I am not one of the guys who claims that you save time by not checking return values!)
The way assertions were done when I worked on Word, an assert would pop up a dialog box. If you ran the binary under a debugger, you could trivially break in and have a look at the variables in the function that asserted. But the dialog box, while great for developers, was not user-friendly. Especially if the assert was in a loop and happened a lot!
About the quote about shipping with assertions in: there is a similar quote about shipping with bounds-checking enabled for arrays. In The Elements of Programming Style, Kernighan and Plaugher made a comment along the lines of "only disable bounds checking when it is important to get the wrong answers more quickly."
steveha
The builds released to the testers and customers were always the "ship" builds! How did you ever get the idea that it was anything else?
The "debug" build had no optimizations. This makes the single-stepping work much more predictably. The "hybrid" build had all the same optimizations that the ship build had, but had assertions and any other debugging framework still compiled in.
Testers would find bugs in the ship version, and developers would try to reproduce them in the debug version. On rare occasions, the bug would not reproduce in the debug version, and the hybrid version would be used to try to run the bug down.
I thought it was really cool when the MS C compiler got the ability to put all debugging info in a separate file. Then you could have a ship build with debug information, and you could single-step it, and it was the same file that the customers would get. Sometimes, due to optimizations, the single-step behavior was odd, but that is a small price to pay for being able to actually look around inside the exact bits that ship to testers and customers.
It's also a good idea to make most assertions lightweight enough that you leave them in the production build
This is an interesting idea. I suspect that usability advocates like Don Norman would shudder at this. The assertions were always things like "pPAP != 0"; what would a customer make of such things? I do think it is worthwhile to have a logging capability, such that a customer could turn logging on and provide you with a log telling you what went wrong.
Who made the old quote about turning off assertions, and where did you read it? I'm interested.
steveha
They will surely release a Special Edition DVD with at least two discs, and there will be "deleted scenes" and you will be able to see the Wil Wheaton scene. And perhaps there will even be a way to see the whole thing as a 3-hour movie, with all the cut material put back.
P.S. Wil Wheaton seems to be a good guy, and his blog entry is as reasonable and mature as anyone could ask for.
steveha
I remember once running down a bug that would not reproduce in a debug version. It turned out to be a buffer overrun, where the overrun was only one byte. The debug version had some extra junk on the stack, and the extra junk got ovewritten without harm.
When I was at Microsoft, we would build three versions of Word: the "ship" build (full optimizations), the "debug" build (no optimizations, debug enabled, asserts enabled) and the "hybrid" build (full optimizations, no debug, but asserts still enabled). I still do this.
steveha
I suggest you get a player that uses a flash chip format: CompactFlash, MMC / SD, SmartMedia, or Memory Stick. Then get one of those USB chip read/write drives for your desktop computer.
With a laptop, you can either use a USB drive, or you can get a PC Card adapter that lets you plug in the chip directly.
This is how I manage my digital photos from my digital camera: I never plug in the camera, and haven't installed the special camera software. I just slot the chip into the drive, and treat it as just another "disk".
If you do this with a Mac, it will stick Mac junk on the chip ("finder.dat" files and such) but it will work. On Windows or Linux, it will just work.
I will not ever buy a player that requires me to use a special version of MusicMatch Jukebox to transfer files. Ever.
steveha
I would like to migrate all my old video tapes onto a digital format (preferably DVDs). I'm wondering what would be the best editing tool.
Probably all I really need is something to crop out the bits I don't want to keep: the last 30 seconds of the show that came on before the one I wanted, the commercials, etc. A full NLE is overkill.
What tools, that run under Linux, should I be looking into? Thanks for any advice.
steveha
I'm puzzled. Heroine Virtual wrote Broadcast 2000, and then pulled it from the web site, saying something about being afraid of lawsuits. I thought they were out of the NLE business.
Now I am happy to see Cinelarra, but I'm wondering if they will be yanking that one of these days like they did with Broadcast 2000.
(Fortunately, with free software, the project can live on after being disavowed by its creator. Cinelarra, now that it has been released under GPL, is here to stay.)
steveha
I agree that an automation interface is important. AbiWord doesn't currently have anything, but automation is planned. They will expose stuff via CORBA, which should be great in a GNOME environment.
They also will do something with scripting. I'm not sure what, because I haven't found a recent discussion of that; if you do a google search, you will find dozens of messages two years old or older, from flame wars on what is the best way to do scripting. (Some guys want Perl, some guys want Python, some guys want a free clone of Visual Basic, and no doubt there are LISP fanatics out there who want SCHEME. And so on.)
You must admit that automation isn't a requirement for the vast majority of word processor users; it made sense for the AbiWord developers to focus on core features, and add automation later. I assume that since they knew they would be automating later, they didn't make any stupid designs that will be hard to automate. At least I hope so.
steveha
I read an article recently about a C extension to Python that very efficiently (and correctly) handled multi-dimensional matrix math. Thus you can write code using the very nice syntax of Python and still get good performance. The author of the article said something like "No one who has tried Python with these extensions ever wants to go back to FORTRAN."
It made me wonder if, with enough C extensions, Python can take over FORTRAN's niche as a high-performance heavy number-crunching language.
I don't know enough about the issues to make any predictions; I'm just wondering.
steveha
And I for one hope that the ebooks actually sell well; there are many times when I would like an ebook rather than a paper one, and I hope future titles will be available. If there is rampant piracy of current titles, they might decide the experiment was a failure and stop releasing ebooks.
steveha
You are claiming that just because they didn't lock down the books with DRM junk, that they want their books to be pirated. I claim they would rather be paid.
I'm sure they know there will be a certain amount of piracy, but it's a huge leap from that position to saying they are hoping for it!
Did you ever consider that pirate versions would get out in the wild whether they lock the books down or not? It only takes one person cracking the encryption, and a free text version is in the wild. Locking books down with DRM junk doesn't really protect them; it chiefly inconveniences the paying customers, not the pirates. I submit that no rational publisher would go out of its way to annoy the customers when it won't serve any useful purpose.
Back in the 80's, Borland International released a Pascal compiler and several other products without copy protection, and at fair prices. Most people, rather than pirating the products, just bought them. These were not older products that they were no longer making a great deal of money upon; these were their bread-and-butter products that they depended on for revenue. Do you think they were hoping for rampant piracy of their stuff? I sure think not.
steveha