Yikes. We never realized that you had to be a computer scientist to use toilet paper. Worse, we didn't realize that thinking was required to select the roll.
No offense to Don Norman, but come on, this is stretching it. When the goal is to ensure that one roll of toilet tissue is exhausted before the other, then it seems pretty obvious to me: finish one roll before starting the other. Duh. Anything that uses both is going to increase the likelihood that both run out at the same time.
You don't need to have a computer science degree to figure this out; you just need common sense.
In fact, thinking like a computer scientist might be what caused him incorrectly to consider a random algorithm in the first place.
I can't stand trackpads either and always prefer trackpoints.
As for the scrolling features of that Dell trackpad, the trackpoint on my Sony subnotebook does one better:
Holding down the middle-mouse button and moving the trackpoint keeps the cursor fixed but causes the current window to scroll.
Words really can't describe how useful it is; you just have to try it. (And on this subnotebook's tiny screen, you need to scroll a lot.) I suppose it's similar to the Universal Scroll capabilities provided by some mouse software, but it works much better.
People complain about the non-standard interfaces to Quicktime, Real, and Java applications all the time.
One difference is that most of the applications you mentioned (Quicktime, Real, MusicMatch, and I'll add Windows Media Player and WinAmp into the mix too) are not productivity applications. I'm not saying that's a good excuse--I'd still prefer that they stick with standard widgets--but I'm willing to let it slide.
Video games are another example of non-standard widgets. Again, they're not targeting productivity.
As for the IE skin, it's not just about looks; it's also about behavior. The Mozilla UI isn't snappy, and some things just don't feel quite right. You can change Mozilla's appearance however you want, but can you really say that you wouldn't be able to tell the difference between Mozilla with an IE skin and Mozilla with native widgets?
(Unfortunately, it seems that the VirtualDub author has removed his really old news, so this isn't directly accessible at the VirtualDub web site anymore.)
Pi is defined to be the ratio of the circumference of a circle to its diameter. pi = c/d. Okay, we all know that.
Using calculus, you can determine the area of a circle in terms of pi.
Using calculus, you can determine the volume and surface area of a sphere in terms of pi.
And so on, and so on. Therefore, why would anyone think pi would be any different for higher dimensions? Are they also speculating that calculus is a load of poppycock?
It also means good planning ahead of time, since there will be no "post-production" stage where you can clean up the mistakes...
I suppose I must be misunderstanding this, because to me this is totally backwards.
I don't think most people have an excess of time nor resources to spend on rendering, even with a renderfarm. If anything, the colossal amount of time/resources to invest in the rendering process is a reason for good planning ahead of time. If something turns out wrong, post-production may not always be able to fix the problem satisfactorily, and the scene may need to be re-rendered.
On the other hand, with realtime rendering, a mistake is not so costly, so good planning ahead of time is not as important.
And there's no reason the processes have to be mutually exclusive. People can use realtime rendering for early drafts of a film and use offline, higher quality rendering for the final version.
The ability to delete attachments independently is something I've wanted for quite awhile.
A lot of times I get (or send) email with attachments for which I want to keep the message but don't need the attachment. (This is especially true for sending: I already have the file in my file system; why do I want to make another copy in my mailbox, which usually isn't designed to handle files efficiently?)
Read Dan Bricklin's Treo review. His review discusses usability, and he describes how surprisingly easy it is to use the keyboard, even if one accidentally presses multiple keys.
When I tried to cancel my Earthlink account, I got so frustrated that I started thinking of more creative methods.
My favorite idea was to fill your home page with porn, warez, MP3s, DeCSS code, whatever. Spread the URL around. Let the RIAA and MPAA lawyers work for YOU.
It'd probably take awhile for Earthlink to terminate your account, but hey, you admitted to waiting a few years already, so waiting a little longer shouldn't be a big deal, and you can use it a file-swapping area in the meantime.
(I actually finally managed to get through to a customer service person and got my account canceled the regular, boring way before I got to implement my plan, though. Darn.)
Since you don't have to pay to play Sorenson files, and you do have to pay to encode them properly... and 99% of the productivity apps that produce video run on MacOS and Windows (re: NOT Linux)... what incentive does Sorenson have to port the codec?
While I agree that porting the encoder to Linux probably would be financially dubious, there's always an incentive to port the decompressor. Getting the decompressor into the hands of as many users as possible makes the encoder more attractive to the producers.
Take me, for example. I encode a good amount of video. Currently I mostly encode to MPEG1, since I know my Mac and Linux and Windows friends will have little problems playing those videos. If this were true of Sorenson, I wouldn't mind shelling out some bucks to switch to a higher-quality codec. In the meantime, though, I'm stuck with MPEG1 (until ISO-MPEG4 becomes mainstream, if it ever does).
Your macro replaces free(p) with a string. Your compiler may warn you that your code has useless expression, but don't depend on it.
Even without the quotes, that's the wrong way to write a multi-statement macro. Consider, for example:
if (p_no_longer_needed) free(p)
After macro expansion, your p=NULL statement would be evaluated regardless of the value of p_no_longer_needed. For simple expressions such as this one, using the comma operator instead of the semicolon would be sufficient. In general, though, you should use do {... } while(0) for multi-statement macros.
Macros that evaluate their arguments multiple times should be clearly recognizable as macros. While your macro may be a quick fix that lets you get away with not having to modify a lot of your existing code, it eventually may cause even more problems down the line, especially if someone else is maintaining your code and has overlooked your subtle macro definition.
Skins are not a requirement for customizability
on
Jef Raskin Talks Skins
·
· Score: 2, Interesting
Skins are nice in theory, but in practice, all the skinning implementations I've seen suck. I can't stand them.
For example, take Windows Media Player 6 versus Windows Media Player 7.
WMP7 is skinnable, but WMP6 is not. WMP7 has a "WMP6" skin to make it look like WMP6. No problem, right? Wrong.
WMP6 was not skinnable, but it gave me a pretty good degree of control over what widgets got displayed. You want a minimalist interface with only the video window and the buttons? Fine, toggle a few checkboxes and half of the clutter is gone.
Unfortunately, in WMP7, the "WMP6" skin mimics the default look of WMP6 and nothing more. It includes all of the widgets and all of the clutter. There are no checkboxes to hide or show certain widgets.
Well, if you don't like it, just edit the skin, right?
You have got to be kidding if you expect a normal user to modify skins or to make his/her own.
Maybe WMP isn't the best example of a skinning implementation. I'm sure that there are some really good implementations out there with easily editable skins. In general, however, most of the skinnable programs I've seen aren't much better, nor are their skins so easy to edit that my mom could do it. What's worse is that a lot of these applications seem to use skins as an excuse to ignore usability in their default skins. Hey, if the community doesn't like it, they can't make their own skin, right?
You want customizability? Fine. How about giving the user a choice between skins or not? Me, I'd rather have no skins, with a faster, well-designed interface that's consistent with the OS.
Skins may have their uses, but they aren't some magic panacea.
The same thing happened to me a few years ago when I was a freshman at Berkeley.
It went on for a few days, and I finally got fed up. I replied to everyone but took the precaution of moving all the addresses into the BCC field first. I entered "Instructions to get off this mailing list" for the subject, and in the message body, I essentially told everyone that they're idiots and should stop hitting reply-to-all. I even said, "Don't reply to this message", but I got a few replies anyway.
I saw a brief interview with Engelbart on TechTV over a year ago in response to tactile mice (like Logitech's iFeel mouse), and he had some interesting things to say about mouse evolution.
One of the things he mentioned was that his original mouse used two orthogonal wheels instead of a mouseball. If you tilted the mouse, it would rest on only one of the wheels. Depending on which wheel it was resting on, you then could move the mouse perfectly horizontally or vertically.
This can be kind of useful in CAD work. Modern mice don't do this, although I guess you can restrict movement to one dimension via software anyway.
It's still a stupid name, because there's always the potential for confusing it with Circuit City's failure. There are a lot of semi-tech-savvy people who heard about Circuit City's DIVX but aren't familiar with the DivX codec. Even if they know that they're two different things, they still could think that they're somehow related.
And no, changing the case isn't good enough. It's not obvious to the average Joe, and on its own, it's not clear in oral communication.
It's even confusing in the context of codecs. Some people still think DivX4 is based on a hacked MS-MPEG4v3. Some people don't know the difference between divx3 and divx4.
"I downloaded this divx video, but I can't play it."
"Do you have the codec installed?"
"Yes."
"Is it divx3 or divx4?"
"Uhhh..."
The rest of the name should have died with the smiley face.
"xvid", on the other hand, is a much, much better name.
First, we all know that claims that company X loses millions and millions of dollars each year due to piracy are bogus, because pirated copies are not necessarily lost sales. Not all, but a significant portion of pirates would choose to not use the software rather than be forced to pay for it.
Second, piracy actually can help companies. Look at Microsoft.
Would Microsoft have such a huge monopoly position if it weren't for all the pirated copies of Windows and Office? Piracy allows them to perform dump their products onto the populace without legal responsibility. It solidifies their desktop dominance for the future. So they "lose" a few hundred dollars to Joe Sixpack, money that they probably would never have got anyway, but now they know they'll continue making millions more in years to come. (Yes, yes, we all hate Microsoft, so piracy must be a bad thing!)
Look at [name a developer of popular 3D modelling software here]. These companies get it; they don't care about piracy; they care about increasing their market. They want people to be versed with their tools, which have high learning curves, and to go into industry using them. Let industry pay for the licenses.
Most of the programs I write are small, text-based, unix-like applications.
I'd like to use Java because of its garbage collector, string, and exception support. The explicit memory allocation required by C/C++ is annoying (even more so without elegant error handling), and string manipulations are tedious in C.
The problem is that the VM is too bloated for small programs like this. What? I have to load a several megabyte (or more) VM into memory to run a program that's less than 100 KB?
And what if I want to distribute these programs? What? I have to ask users to download and install a several megabyte (or more) VM to use a program that's less than 100 KB?
And then there's the joy of dealing with different VM versions. What fun. Is there any kind of guarantee that future VMs and future libraries will behave the same way as the current ones? If so, backwards compatibility makes them even bigger.
As far as cross-platform issues go, I really don't care. I'd rather cross-compile if necessary, and as long as the source code is portable, that's good enough for me.
For people who use capture cards and record shows on their computers, things like this can be really annoying.
I capture shows for personal use, not to pirate, but to have a copy that I can watch at my leisure when I want. For example, some of the recent live-action Tick episodes have been pretty good, but will I ever get to see them again once Fox takes the show off the air? Dubious.
VHS is no good, because the quality gradually degrades. So I make digital captures.
Unfortunately, I'm kind of a purist, and missing frames would bug the hell out of me. Even worse, a lot of shows nowadays are recorded on film and telecined. Performing an inverse-telecine operation to reconstruct the progressive frames is easy if there's a consistent telecine pattern throughout the show; otherwise I have to rely on imperfect adaptive IVTC algorithms or do a lot of manual tweaking. It already gives me a headache; I doubt that a telecine pattern that shifts once a second is going to make the process any easier.
Of course, it's in the content providers' best interests to discourage people like me from capturing shows in the first place. Oh well.
One problem, though, is that a lot of average joes aren't hooked on PVRs yet. A lot of them still don't grasp the concept or are afraid that they're too complicated.
I suspect a significant portion of the PVR market currently consists of tech-savvy computer geeks, and among that demographic, I think Microsoft's name is a stigma.
Professors and TAs aren't stupid or clueless. They're well aware of what problems are easy and what problems are hard. (Incidentally, just because a programming course is "introductory" doesn't mean it's easy. Introductory CS courses at Berkeley and MIT are based around The Structure and Interpretation of Computer Programs which has some pretty challenging problems.) They know better than to run cheat-detection programs on assignments with small solution spaces (of reasonable solutions).
Futhermore, these cheat-detection programs typically have threshold values that can be tweaked for different assignments, and the final judgment is always made by one or more humans.
"Spoon!" was from the comic, not from the cartoon, so there shouldn't be any copyright problems with that.
Of course, that just begs the question: why isn't he saying "Spoon!" then?
I would guess that it's because--as has already been noted--there has been a general lack of villainy so far. What's the use for a battle cry without any battles?
(Then again, having a battle cry with no battles to fight wouldn't be so unusual in Tick's world...)
No offense to Don Norman, but come on, this is stretching it. When the goal is to ensure that one roll of toilet tissue is exhausted before the other, then it seems pretty obvious to me: finish one roll before starting the other. Duh. Anything that uses both is going to increase the likelihood that both run out at the same time.
You don't need to have a computer science degree to figure this out; you just need common sense.
In fact, thinking like a computer scientist might be what caused him incorrectly to consider a random algorithm in the first place.
I can't stand trackpads either and always prefer trackpoints.
As for the scrolling features of that Dell trackpad, the trackpoint on my Sony subnotebook does one better:
Holding down the middle-mouse button and moving the trackpoint keeps the cursor fixed but causes the current window to scroll.
Words really can't describe how useful it is; you just have to try it. (And on this subnotebook's tiny screen, you need to scroll a lot.) I suppose it's similar to the Universal Scroll capabilities provided by some mouse software, but it works much better.
People complain about the non-standard interfaces to Quicktime, Real, and Java applications all the time.
One difference is that most of the applications you mentioned (Quicktime, Real, MusicMatch, and I'll add Windows Media Player and WinAmp into the mix too) are not productivity applications. I'm not saying that's a good excuse--I'd still prefer that they stick with standard widgets--but I'm willing to let it slide.
Video games are another example of non-standard widgets. Again, they're not targeting productivity.
As for the IE skin, it's not just about looks; it's also about behavior. The Mozilla UI isn't snappy, and some things just don't feel quite right. You can change Mozilla's appearance however you want, but can you really say that you wouldn't be able to tell the difference between Mozilla with an IE skin and Mozilla with native widgets?
Here's some information about the VirtualDub case, for those who aren't familiar with it already.
(Unfortunately, it seems that the VirtualDub author has removed his really old news, so this isn't directly accessible at the VirtualDub web site anymore.)
ATI fairly recently came out with an adapter to let their Radeon 8500 cards output to HDTV. Anandtech has a brief review of it.
Pi is defined to be the ratio of the circumference of a circle to its diameter. pi = c/d. Okay, we all know that.
Using calculus, you can determine the area of a circle in terms of pi.
Using calculus, you can determine the volume and surface area of a sphere in terms of pi.
And so on, and so on. Therefore, why would anyone think pi would be any different for higher dimensions? Are they also speculating that calculus is a load of poppycock?
I suppose I must be misunderstanding this, because to me this is totally backwards.
I don't think most people have an excess of time nor resources to spend on rendering, even with a renderfarm. If anything, the colossal amount of time/resources to invest in the rendering process is a reason for good planning ahead of time. If something turns out wrong, post-production may not always be able to fix the problem satisfactorily, and the scene may need to be re-rendered.
On the other hand, with realtime rendering, a mistake is not so costly, so good planning ahead of time is not as important.
And there's no reason the processes have to be mutually exclusive. People can use realtime rendering for early drafts of a film and use offline, higher quality rendering for the final version.
The ability to delete attachments independently is something I've wanted for quite awhile.
A lot of times I get (or send) email with attachments for which I want to keep the message but don't need the attachment. (This is especially true for sending: I already have the file in my file system; why do I want to make another copy in my mailbox, which usually isn't designed to handle files efficiently?)
Not true.
Read Dan Bricklin's Treo review. His review discusses usability, and he describes how surprisingly easy it is to use the keyboard, even if one accidentally presses multiple keys.
When I tried to cancel my Earthlink account, I got so frustrated that I started thinking of more creative methods.
My favorite idea was to fill your home page with porn, warez, MP3s, DeCSS code, whatever. Spread the URL around. Let the RIAA and MPAA lawyers work for YOU.
It'd probably take awhile for Earthlink to terminate your account, but hey, you admitted to waiting a few years already, so waiting a little longer shouldn't be a big deal, and you can use it a file-swapping area in the meantime.
(I actually finally managed to get through to a customer service person and got my account canceled the regular, boring way before I got to implement my plan, though. Darn.)
While I agree that porting the encoder to Linux probably would be financially dubious, there's always an incentive to port the decompressor. Getting the decompressor into the hands of as many users as possible makes the encoder more attractive to the producers.
Take me, for example. I encode a good amount of video. Currently I mostly encode to MPEG1, since I know my Mac and Linux and Windows friends will have little problems playing those videos. If this were true of Sorenson, I wouldn't mind shelling out some bucks to switch to a higher-quality codec. In the meantime, though, I'm stuck with MPEG1 (until ISO-MPEG4 becomes mainstream, if it ever does).
Not quite.
if (p_no_longer_needed) free(p)
After macro expansion, your p=NULL statement would be evaluated regardless of the value of p_no_longer_needed. For simple expressions such as this one, using the comma operator instead of the semicolon would be sufficient. In general, though, you should use do {
Skins are nice in theory, but in practice, all the skinning implementations I've seen suck. I can't stand them.
For example, take Windows Media Player 6 versus Windows Media Player 7.
WMP7 is skinnable, but WMP6 is not. WMP7 has a "WMP6" skin to make it look like WMP6. No problem, right? Wrong.
WMP6 was not skinnable, but it gave me a pretty good degree of control over what widgets got displayed. You want a minimalist interface with only the video window and the buttons? Fine, toggle a few checkboxes and half of the clutter is gone.
Unfortunately, in WMP7, the "WMP6" skin mimics the default look of WMP6 and nothing more. It includes all of the widgets and all of the clutter. There are no checkboxes to hide or show certain widgets.
Well, if you don't like it, just edit the skin, right?
You have got to be kidding if you expect a normal user to modify skins or to make his/her own.
Maybe WMP isn't the best example of a skinning implementation. I'm sure that there are some really good implementations out there with easily editable skins. In general, however, most of the skinnable programs I've seen aren't much better, nor are their skins so easy to edit that my mom could do it. What's worse is that a lot of these applications seem to use skins as an excuse to ignore usability in their default skins. Hey, if the community doesn't like it, they can't make their own skin, right?
You want customizability? Fine. How about giving the user a choice between skins or not? Me, I'd rather have no skins, with a faster, well-designed interface that's consistent with the OS.
Skins may have their uses, but they aren't some magic panacea.
The same thing happened to me a few years ago when I was a freshman at Berkeley.
It went on for a few days, and I finally got fed up. I replied to everyone but took the precaution of moving all the addresses into the BCC field first. I entered "Instructions to get off this mailing list" for the subject, and in the message body, I essentially told everyone that they're idiots and should stop hitting reply-to-all. I even said, "Don't reply to this message", but I got a few replies anyway.
Maybe I was a jackass about it, but it worked.
I saw a brief interview with Engelbart on TechTV over a year ago in response to tactile mice (like Logitech's iFeel mouse), and he had some interesting things to say about mouse evolution.
One of the things he mentioned was that his original mouse used two orthogonal wheels instead of a mouseball. If you tilted the mouse, it would rest on only one of the wheels. Depending on which wheel it was resting on, you then could move the mouse perfectly horizontally or vertically.
This can be kind of useful in CAD work. Modern mice don't do this, although I guess you can restrict movement to one dimension via software anyway.
It's still a stupid name, because there's always the potential for confusing it with Circuit City's failure. There are a lot of semi-tech-savvy people who heard about Circuit City's DIVX but aren't familiar with the DivX codec. Even if they know that they're two different things, they still could think that they're somehow related.
And no, changing the case isn't good enough. It's not obvious to the average Joe, and on its own, it's not clear in oral communication.
It's even confusing in the context of codecs. Some people still think DivX4 is based on a hacked MS-MPEG4v3. Some people don't know the difference between divx3 and divx4.
"I downloaded this divx video, but I can't play it."
"Do you have the codec installed?"
"Yes."
"Is it divx3 or divx4?"
"Uhhh..."
The rest of the name should have died with the smiley face.
"xvid", on the other hand, is a much, much better name.
First, we all know that claims that company X loses millions and millions of dollars each year due to piracy are bogus, because pirated copies are not necessarily lost sales. Not all, but a significant portion of pirates would choose to not use the software rather than be forced to pay for it.
Second, piracy actually can help companies. Look at Microsoft.
Would Microsoft have such a huge monopoly position if it weren't for all the pirated copies of Windows and Office? Piracy allows them to perform dump their products onto the populace without legal responsibility. It solidifies their desktop dominance for the future. So they "lose" a few hundred dollars to Joe Sixpack, money that they probably would never have got anyway, but now they know they'll continue making millions more in years to come. (Yes, yes, we all hate Microsoft, so piracy must be a bad thing!)
Look at [name a developer of popular 3D modelling software here]. These companies get it; they don't care about piracy; they care about increasing their market. They want people to be versed with their tools, which have high learning curves, and to go into industry using them. Let industry pay for the licenses.
Most of the programs I write are small, text-based, unix-like applications.
I'd like to use Java because of its garbage collector, string, and exception support. The explicit memory allocation required by C/C++ is annoying (even more so without elegant error handling), and string manipulations are tedious in C.
The problem is that the VM is too bloated for small programs like this. What? I have to load a several megabyte (or more) VM into memory to run a program that's less than 100 KB?
And what if I want to distribute these programs? What? I have to ask users to download and install a several megabyte (or more) VM to use a program that's less than 100 KB?
And then there's the joy of dealing with different VM versions. What fun. Is there any kind of guarantee that future VMs and future libraries will behave the same way as the current ones? If so, backwards compatibility makes them even bigger.
As far as cross-platform issues go, I really don't care. I'd rather cross-compile if necessary, and as long as the source code is portable, that's good enough for me.
For people who use capture cards and record shows on their computers, things like this can be really annoying.
I capture shows for personal use, not to pirate, but to have a copy that I can watch at my leisure when I want. For example, some of the recent live-action Tick episodes have been pretty good, but will I ever get to see them again once Fox takes the show off the air? Dubious.
VHS is no good, because the quality gradually degrades. So I make digital captures.
Unfortunately, I'm kind of a purist, and missing frames would bug the hell out of me. Even worse, a lot of shows nowadays are recorded on film and telecined. Performing an inverse-telecine operation to reconstruct the progressive frames is easy if there's a consistent telecine pattern throughout the show; otherwise I have to rely on imperfect adaptive IVTC algorithms or do a lot of manual tweaking. It already gives me a headache; I doubt that a telecine pattern that shifts once a second is going to make the process any easier.
Of course, it's in the content providers' best interests to discourage people like me from capturing shows in the first place. Oh well.
One problem, though, is that a lot of average joes aren't hooked on PVRs yet. A lot of them still don't grasp the concept or are afraid that they're too complicated.
I suspect a significant portion of the PVR market currently consists of tech-savvy computer geeks, and among that demographic, I think Microsoft's name is a stigma.
Professors and TAs aren't stupid or clueless. They're well aware of what problems are easy and what problems are hard. (Incidentally, just because a programming course is "introductory" doesn't mean it's easy. Introductory CS courses at Berkeley and MIT are based around The Structure and Interpretation of Computer Programs which has some pretty challenging problems.) They know better than to run cheat-detection programs on assignments with small solution spaces (of reasonable solutions).
Futhermore, these cheat-detection programs typically have threshold values that can be tweaked for different assignments, and the final judgment is always made by one or more humans.
"Spoon!" was from the comic, not from the cartoon, so there shouldn't be any copyright problems with that.
Of course, that just begs the question: why isn't he saying "Spoon!" then?
I would guess that it's because--as has already been noted--there has been a general lack of villainy so far. What's the use for a battle cry without any battles?
(Then again, having a battle cry with no battles to fight wouldn't be so unusual in Tick's world...)
It was on right after Family Guy. (Thursday nights, 8 PM.)
Is it that hard to go to TV Guide's listings and do a search?
I don't mean quality-wise; MPEG2 is superior to MPEG4 and its ilk at high bitrates.
However, MPEG2 is patented as well. It's to my understanding that implementing MPEG2 encoders/decoders requires paying licensing fees.
MPEG2 may be a standard, and it may not be controlled by a single company, but it's still not free (as in speech nor as in beer), folks.
Auctioning all that memorabilia off?!
It belongs in a museum!
Wait... wrong Lucas franchise...