Sorry for a "me too", but I actually think this is a great idea!
Ideally, of course, the editors should reserve the option to occasionally disable the 30-minute wait for non-subscribers when a story really is timely: on September 11th, I learned most of what was going on from Slashdot comments long before the TV news figured it out.
I've been lucky enough to have access to a Beowulf in my current job, and the way we use it, Windows just wouldn't fly, because there isn't a powerful command line.
We're primarily using the Beowulf for computations which are "embarassingly parallel" - in other words, tasks for which it is trivial to partition the input into 16 equal-sized pieces, give one to each node, and then collect the results and paste them together. For example, multiplying incredibly huge matrices and brute-force keyspace searching are embarassingly parallel.
For us, the primary advantage of running Linux on the Beowulf is that most of the time we don't need to write custom software to speed up a calculation. We just write a shell script that rsh's into each box and runs a program with slightly different command-line parameters on each one.
Obviously for some computational problems it's worth using MPI to have the processes communicate with each other, or load-balancing software so that we can run lots of smaller, but different-sized jobs, and these techniques would probably work equally well whether you're running Windows or Linux.
But for experimentation and prototyping, and quickly distributing easy problems, I think there's an incredible advantage to having a command line. (Of course you could install Cygwin on all of the Windows boxen...but why?)
Actually almost all of the MODIS data used to produce this image is available for free, in its original raw format.
I've ordered lots of data from the MISR instrument (which is similar to MODIS, and is on the same satellite), and basically you just pick the swaths you want and give them your email address. Later they send you email with an ftp site where you can download that swath. You can get as much as you want if you have the bandwidth. Be warned: these aren't JPEG images, they're raw HDF files, so you'll need to download some specialized tools or write some code to parse them.
Normally, spammers use bogus return addresses, right?
So how about this: every time my computer receives an email, it initiates a connection to the sender and tries to send a reply message. If the sender's server accepts the email address, close the connection (i.e. cancel the message before it's finished). If the server rejects the email address, you know the return address is invalid, so you can throw away the message (or filter it into a different box).
Of course, spammers might start to make the return addresses random (but valid) return addresses at yahoo, etc. - but that will just get Yahoo very, very mad, and they'll track down and sue the spammers.
Probably never gonna happen, but I've never heard that particular idea before...
But some things which were literally impracticle to do before are now possible, simply because computers do the dirty/boring work.
Because I use the computer to help me compose, I can compose more quickly. The more quickly I compose, the shorter the initial idea -> feedback -> improvement loop becomes, so I progress as a composer more quickly. In my lifetime, I compose things I wouldn't have been able to otherwise without a computer there to speed up the process.
If Beethoven had had a computer, he could have been a greater composer. Not because the computer would do anything he couldn't do - I'm assuming the music he would compose would be the same - but if he had been able to compose more quickly (i.e. more time composing, less time writing down) he could have expanded on his ideas even more, and pushed his ideas in directions he couldn't afford to do.
Computers certainly have aided some forms of progress, but one must not overlook the retrograde movements they've brought about, nor overestimate what they have really done.
Maybe we're just arguing about semantics, but I still stand behind my original statement. I agree that just because you're building off the ideas of others doesn't make you any more able, but on the other hand, the best of the best will build off of the ideas of their predecessors and be able to do all they could do and more.
I think that a college math major today is better at Calculus than Newton. That's not saying they're smarter, that they could have invented it, or that Newton wasn't any good, just that today's college students have the advantage of hundreds of years of synthesizing the ideas of Newton (and Liebniz) and they've been organized so well that someone can now learn it in a fraction of the time, and be more productive at it.
So today's best programmers are better at programming - not because they have better tools (though that does help) but because they've learned from the mistakes of past programmers.
While I think many of his fallacies have some truth to them (and I find them amusing), I think that his arguments only apply to business, or more specifically, they DON'T apply to a lot of areas where computers have revolutionized the way people do things, for example, in music composition, graphic design, scientific research, etc. - not to mention communication.
Let's consider Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise. This is not a fallacy, it's true. As an amateur composer, I can compose and print a piece of music in a tenth of the time it would take me to do by hand. I am not taking advantage of any automatic composition or any silly A.I. technology. I'm just taking about using Finale 2000 to enter in the notes using my MIDI keyboard, edit them quickly with the mouse, and listen to the result through my speakers to make sure I didn't make any musical "typos".
How about scientific research? Scientists now have amazingly powerful tools at their disposal. I know plenty of people who do need to perform a Fourier analysis on a daily basis (see Fallacy 7) and for people like this who are leading experts in Physics but know little about computers, a book like "Learn Matlab in 21 days" is all they need. I agree that you can't become a good DB programmer or QA person by reading a quick book or studing at DeVry, but most people who use computers aren't programmers and don't need to be.
While we were taking about scientific researchers, clearly "Computers are Getting Faster" is NOT a fallacy for them!
Finally, what about the Internet? Yes, the dot-com bubble bursted, but note that all major companies still have websites. It's silly to even consider a company not having one. E-mail definitely allows you to do things that weren't possible (or at least weren't realistic) before, like collaborate on a book or article with someone who lives halfway around the world.
Also, statements like "Programmers are Getting Better" are hard to really analyze. One problem is that there are hundreds of times more programmers now than there were twenty years ago. As a natural consequence, the average level of expertise has gone down a lot. But the best programmers today are a lot better than the best programmers twenty years ago - because they're building off of the best ideas of the last twenty years. And there's no question that even below-average programmers are far more productive today than below-average programmers twenty years ago, simply because there are more high level tools available to them. People who write Visual Basic scripts for internal company programs may be very poor programmers, but if they can get the job done, who cares?
< / RANT >
Sorry. Computers have definitely made my life better, and have enabled me to do many things I never could have done without them, so I get upset when people try to argue that computers suck and that things are basically the same as they were before computers.
According to this slide from their survey results, 45% of respondents are employed as programmers, another 15% in related fields. So while I don't see where the 9/10 came from, clearly the majority of Open Source developers do some sort of software development as their profession.
Re:Why the Mac won't be a good clustering choice
on
Macintosh Clustering
·
· Score: 2
Whenever Apple introduces new machines, they limit the Build-To-Order options. In a month or two, when they've caught up with demand, you'll be able to get a Dual-1GHz with a CD-RW drive and the cheaper graphics card.
They have always done this before - and it makes perfect sense. They start by introducing three models which please MOST of the early adopters. They know that some early adopters will pay a little bit more for features they don't absolutely need, but they might enjoy them anyway. In a couple of months, they'll let you custom-order just about any reasonable configuration (i.e. they still won't sell you a system without a graphics card).
To be fair, the Pentium III can do four 32-bit floating-point calculations in a single cycle, too, using SSE.
However, very few programs take advantage of SSE, and there are many reasons why Altivec on a Power Mac G4 is still far superior:
1. You can mix integer, floating-point, and Altivec code on the G4. On the P3 you can't mix them without a costly context switch.
2. You can write vectorized Altivec code in C/C++, without any inline assembly. It's much more difficult to do this with SSE; most people resort to using assembly.
3. A lot of critical MacOS API functions are already vectorized. This isn't an architectural difference, but it does make a difference that Apple is spending time vectorizing their code, so that all Mac programmers can see the benefits.
> However, the chipset hasn't been updated yet (ergo no ATA100 or DDR support yet)
Someone correct me if I'm wrong, but won't the 2 MB of L3 Cache with DDR RAM make a BIG difference?
Note: that's 2 MB of L3 cache per processor!
My guess is that the vast majority of apps would not see any performance gain if you used DDR for main memory, all else being equal. So I think that the DDR L3 Cache was a good move.
A telephone number is the name of a BOX, a piece of hardware, an address. Having companies jump through hoops to own 1-800-FLOWERS, 1-877-FLOWERS, 1-866-FLOWERS, and even 1-800-FLWOERS for the idiots who can't spell, makes no f___ing sense at all.
If I want to find a flowers retailer, I should have a button on my phone where I can just say "Flowers" and it takes me to the flower delivery service I want. If I say "pizza" obviously it should call Pizza Hut and not Domino's, because they're a better value and their corporation isn't evil. And if I say "Brian" it should call my friend from high school, not that guy I know from work, because he's weird and antisocial.
I, as the Joe Sixpack user of the telephone, shouldn't have to know if the correct phone number is 1-800-FLOWERS or 1-877-FLOWERS. Relying on these weird phone number variations will often get you the WRONG number!
For you and I, the average clueful Slashdot user, telephone numbers are a fine way to find where you want to go - but even we rely on telephone books, rolodexes and personal organizers for many of our favorite numbers (not to mention the speed-dial buttons on our cell phones). The actual typing of telephone numbers should be for the technical - my mother should not have to know what a pound sign is, or what the difference between 800 and 877 is.
His policy encourages collaboration and specifically forbids cheating. It itemizes various types of cheating, for example copying from another student, letting another student copy you, and looking at someone else's files online (even if they forgot to set their file permissions).
Furthermore, he requires all of the students in his class to sign a statement saying that they have read and understand the cheating policy. Not only does that discourage some students from cheating, but it also makes it much easier for him to get students into serious trouble with the school when they are caught.
In addition to the course document, here's more or less what he had to say on the first day of class: (I apologize for paraphrasing; this is how I remember it) "Nobody plans to cheat. You all must be very smart, or you wouldn't be here. You think you're going to try hard and do well in this class. But later in the semester you'll get busy with other classes and activities, and all of a sudden an assignment will be due in one day and you haven't started. Or you'll be taking a test and realize that you forgot to study an important equation. Or you'll work hard on an assignment and almost completely get it working, but get stuck on one subroutine. Even though you never planned on cheating, all of a sudden you'll find yourself in a circumstance like that and it will seem tempting."
(BTW, I shouldn't have to say this, but Prof. Rudich's cheating policy is copyrighted. If you're a teacher or T.A., don't copy his cheating policy without his permission. That would be just as dishonest as cheating!!! If you want to use it, contact him and I'm sure he'd be delighted to let you use it, as long as you give him credit.)
Keep in mind that the average Linux user - even if he/she isn't a programmer - spends a fair amount of time compiling software.
And for compiling software, processor speed makes more of a difference than just about anything else.
Besides, even though this is a budget computer, you don't want the absolute cheapest computer ever, you want something with a reasonable price/performance ratio. Processors slower than this one give you a lot less performance for hardly any savings, while faster than this one give you a little bit more performance for a lot more money.
Sure, there are lots of circumstances where you know what you're trying to write and you can design the whole program before writing a line of code.
But that doesn't work at all when you're trying to come up with a new algorithm, experiment with different user interfaces, extend an existing program to do more things, or any one of a number of tasks where you have to "get your feet wet" coding it for a while before you can clearly see the design.
I'm a big fan of rapid prototyping. In my opinion, there's no better way to figure out the best way to program something than to start writing some code.
This does NOT mean that you shouldn't go back and document the code (both with inline comments and external documentation), I'm just trying to argue that it's easy to fall into the trap of overdesigning a program initially, before you really understand the coding tradeoffs you might have to make. Also, there's nothing worse than a fully documented program where the documentation is wrong! I've seen too many cases where the documentation says one thing, but the code does something different because later the programmer realized she needed another argument to a function, and threw it in without fixing the docs.
I guess in my opinion it's not a question of "document, then code", or "code, then document". I have to go back and forth between the two all the time. Initially I write out a short design just so I'm clear what the main goal of the program is. Then I start writing some code. Then I go back and start documenting the parts I coded well, and redesigning the parts I need to redo, in greater detail, and so on.
What are the differences between PNG and Gif?
Both are entirely lossless compression. GIF supports up to 256 colors, with one optional transparent color. PNG supports 24-bit color plus 8-bit transparency. Only PNG supports some color calibration/adjusting. Only GIF supports animation.
Which one is better at compression?
GIF is good enough, especially for line art and things that don't use more than 256 colors. PNG is almost always better than GIF, sometimes compressing images to 1/2 the size.
Are the encoders copywrited?
Of course, nearly everything's copyrighted (including a lot of GPL and other "free" code).
The LZW algorithm, which is used to encode GIF images, is patented, and the patent owner (Unisys) tries to get people to pay if they sell software with a GIF encoder in it. PNG is patent-free and royalty-free.
Which one is supported more?
Mozilla, Konqueror, Opera, Netscape 4.0+, and IE 5.0+ fully support PNG. That's 99% of normal web surfers. Unfortunately there were a few versions of IE (around 3.0 - 4.0) that actually crashed if a web page had any PNG's on them.
That's very unfortunate because it means that 0.1% of your website viewers will get a crash and write you hate mail. That's why very few sites use PNGs.
When I want to include a PNG of something on a webpage, I usually make a high-quality JPEG thumbnail which links to a PNG. That way people know it's the image that crashes their browser, not my webpage.
There's a great free, portable, easy-to-use library for encoding and decoding PNG images, so if you want to include support for some image format in a program you're writing, PNG is a great choice.
Re:Wicked cool, but not as much as I hoped...
on
New iMac Announced
·
· Score: 2
My guess is that Apple will keep selling the $799 CRT iMac for quite a while - definitely until March, when the $1299 flat iMac is supposed to ship. (I just checked and all of the old iMacs are still available from the Apple Store online, at their old prices.)
Even after March, they'll still probably keep a few CRT iMacs around to sell to education for another year. Remember back when they got rid of the sub-$1000 iMac for a while? They still had one available for education customers only, which I think was a very smart move. I'd expect something similar.
Also, the street price of CRT iMac Special Editions should drop significantly once the flat iMacs start to ship - so I wouldn't be surprised if you could pick up a used iMac with a 600 MHz G3 and CD-RW drive for under $1000 soon. That's a great budget PC.
The LAST thing the designers of the original MacOS wanted to do was write another Unix. They had to run a tremendous GUI using only 128K of RAM, and fit the entire system onto 400K disks (with room left over for applications). Not only did they not intend for the computer to have multiple simultaneous users, but the 68000 processor didn't support "supervisor mode" anyway, nor memory protection - so there was no reason not to use those global variables. By the way, no well-designed application (except for system utilities) ever had to use any of those global variables - they had API functions to access all of them.
I'm not saying they couldn't have done well with more C.S. people, but I don't think they ever anticipated that the code and the API they were writing would be used by the same type of people who were using modern "workhorse" operating systems...
Are you usually connected to the Internet while running KDE? Try turning off networking (ifconfig eth0 down) and see if everything magically speeds up.
For some reason KDE programs want to access the net when they start up - maybe to do a reverse DNS lookup???
Anyway, if that was your problem, try running a caching nameserver - that helped me a lot.
This is of course in addition to the linker issue...
Sorry for a "me too", but I actually think this is a great idea!
Ideally, of course, the editors should reserve the option to occasionally disable the 30-minute wait for non-subscribers when a story really is timely: on September 11th, I learned most of what was going on from Slashdot comments long before the TV news figured it out.
Why was this modded "Insightful" instead of "Funny"?
I've been lucky enough to have access to a Beowulf in my current job, and the way we use it, Windows just wouldn't fly, because there isn't a powerful command line.
We're primarily using the Beowulf for computations which are "embarassingly parallel" - in other words, tasks for which it is trivial to partition the input into 16 equal-sized pieces, give one to each node, and then collect the results and paste them together. For example, multiplying incredibly huge matrices and brute-force keyspace searching are embarassingly parallel.
For us, the primary advantage of running Linux on the Beowulf is that most of the time we don't need to write custom software to speed up a calculation. We just write a shell script that rsh's into each box and runs a program with slightly different command-line parameters on each one.
Obviously for some computational problems it's worth using MPI to have the processes communicate with each other, or load-balancing software so that we can run lots of smaller, but different-sized jobs, and these techniques would probably work equally well whether you're running Windows or Linux.
But for experimentation and prototyping, and quickly distributing easy problems, I think there's an incredible advantage to having a command line. (Of course you could install Cygwin on all of the Windows boxen...but why?)
Actually almost all of the MODIS data used to produce this image is available for free, in its original raw format.
I've ordered lots of data from the MISR instrument (which is similar to MODIS, and is on the same satellite), and basically you just pick the swaths you want and give them your email address. Later they send you email with an ftp site where you can download that swath. You can get as much as you want if you have the bandwidth. Be warned: these aren't JPEG images, they're raw HDF files, so you'll need to download some specialized tools or write some code to parse them.
Order Click here to MODIS data...if you're using "infrared line-of-sight infrared lasers", then it sounds to me like you've already got redundancy!
Normally, spammers use bogus return addresses, right?
So how about this: every time my computer receives an email, it initiates a connection to the sender and tries to send a reply message. If the sender's server accepts the email address, close the connection (i.e. cancel the message before it's finished). If the server rejects the email address, you know the return address is invalid, so you can throw away the message (or filter it into a different box).
Of course, spammers might start to make the return addresses random (but valid) return addresses at yahoo, etc. - but that will just get Yahoo very, very mad, and they'll track down and sue the spammers.
Probably never gonna happen, but I've never heard that particular idea before...
But some things which were literally impracticle to do before are now possible, simply because computers do the dirty/boring work.
Because I use the computer to help me compose, I can compose more quickly. The more quickly I compose, the shorter the initial idea -> feedback -> improvement loop becomes, so I progress as a composer more quickly. In my lifetime, I compose things I wouldn't have been able to otherwise without a computer there to speed up the process.
If Beethoven had had a computer, he could have been a greater composer. Not because the computer would do anything he couldn't do - I'm assuming the music he would compose would be the same - but if he had been able to compose more quickly (i.e. more time composing, less time writing down) he could have expanded on his ideas even more, and pushed his ideas in directions he couldn't afford to do.
Computers certainly have aided some forms of progress, but one must not overlook the retrograde movements they've brought about, nor overestimate what they have really done.
No argument here. :)
Maybe we're just arguing about semantics, but I still stand behind my original statement. I agree that just because you're building off the ideas of others doesn't make you any more able, but on the other hand, the best of the best will build off of the ideas of their predecessors and be able to do all they could do and more.
I think that a college math major today is better at Calculus than Newton. That's not saying they're smarter, that they could have invented it, or that Newton wasn't any good, just that today's college students have the advantage of hundreds of years of synthesizing the ideas of Newton (and Liebniz) and they've been organized so well that someone can now learn it in a fraction of the time, and be more productive at it.
So today's best programmers are better at programming - not because they have better tools (though that does help) but because they've learned from the mistakes of past programmers.
While I think many of his fallacies have some truth to them (and I find them amusing), I think that his arguments only apply to business, or more specifically, they DON'T apply to a lot of areas where computers have revolutionized the way people do things, for example, in music composition, graphic design, scientific research, etc. - not to mention communication.
Let's consider Fallacy 2: Computers Allow People to Do things They Could Not Do Otherwise. This is not a fallacy, it's true. As an amateur composer, I can compose and print a piece of music in a tenth of the time it would take me to do by hand. I am not taking advantage of any automatic composition or any silly A.I. technology. I'm just taking about using Finale 2000 to enter in the notes using my MIDI keyboard, edit them quickly with the mouse, and listen to the result through my speakers to make sure I didn't make any musical "typos".
How about scientific research? Scientists now have amazingly powerful tools at their disposal. I know plenty of people who do need to perform a Fourier analysis on a daily basis (see Fallacy 7) and for people like this who are leading experts in Physics but know little about computers, a book like "Learn Matlab in 21 days" is all they need. I agree that you can't become a good DB programmer or QA person by reading a quick book or studing at DeVry, but most people who use computers aren't programmers and don't need to be.
While we were taking about scientific researchers, clearly "Computers are Getting Faster" is NOT a fallacy for them!
Finally, what about the Internet? Yes, the dot-com bubble bursted, but note that all major companies still have websites. It's silly to even consider a company not having one. E-mail definitely allows you to do things that weren't possible (or at least weren't realistic) before, like collaborate on a book or article with someone who lives halfway around the world.
Also, statements like "Programmers are Getting Better" are hard to really analyze. One problem is that there are hundreds of times more programmers now than there were twenty years ago. As a natural consequence, the average level of expertise has gone down a lot. But the best programmers today are a lot better than the best programmers twenty years ago - because they're building off of the best ideas of the last twenty years. And there's no question that even below-average programmers are far more productive today than below-average programmers twenty years ago, simply because there are more high level tools available to them. People who write Visual Basic scripts for internal company programs may be very poor programmers, but if they can get the job done, who cares?
< / RANT >
Sorry. Computers have definitely made my life better, and have enabled me to do many things I never could have done without them, so I get upset when people try to argue that computers suck and that things are basically the same as they were before computers.
According to this slide from their survey results, 45% of respondents are employed as programmers, another 15% in related fields. So while I don't see where the 9/10 came from, clearly the majority of Open Source developers do some sort of software development as their profession.
Whenever Apple introduces new machines, they limit the Build-To-Order options. In a month or two, when they've caught up with demand, you'll be able to get a Dual-1GHz with a CD-RW drive and the cheaper graphics card.
They have always done this before - and it makes perfect sense. They start by introducing three models which please MOST of the early adopters. They know that some early adopters will pay a little bit more for features they don't absolutely need, but they might enjoy them anyway. In a couple of months, they'll let you custom-order just about any reasonable configuration (i.e. they still won't sell you a system without a graphics card).
To be fair, the Pentium III can do four 32-bit floating-point calculations in a single cycle, too, using SSE.
However, very few programs take advantage of SSE, and there are many reasons why Altivec on a Power Mac G4 is still far superior:
1. You can mix integer, floating-point, and Altivec code on the G4. On the P3 you can't mix them without a costly context switch.
2. You can write vectorized Altivec code in C/C++, without any inline assembly. It's much more difficult to do this with SSE; most people resort to using assembly.
3. A lot of critical MacOS API functions are already vectorized. This isn't an architectural difference, but it does make a difference that Apple is spending time vectorizing their code, so that all Mac programmers can see the benefits.
> However, the chipset hasn't been updated yet (ergo no ATA100 or DDR support yet)
Someone correct me if I'm wrong, but won't the 2 MB of L3 Cache with DDR RAM make a BIG difference?
Note: that's 2 MB of L3 cache per processor!
My guess is that the vast majority of apps would not see any performance gain if you used DDR for main memory, all else being equal. So I think that the DDR L3 Cache was a good move.
A telephone number is the name of a BOX, a piece of hardware, an address. Having companies jump through hoops to own 1-800-FLOWERS, 1-877-FLOWERS, 1-866-FLOWERS, and even 1-800-FLWOERS for the idiots who can't spell, makes no f___ing sense at all.
If I want to find a flowers retailer, I should have a button on my phone where I can just say "Flowers" and it takes me to the flower delivery service I want. If I say "pizza" obviously it should call Pizza Hut and not Domino's, because they're a better value and their corporation isn't evil. And if I say "Brian" it should call my friend from high school, not that guy I know from work, because he's weird and antisocial.
I, as the Joe Sixpack user of the telephone, shouldn't have to know if the correct phone number is 1-800-FLOWERS or 1-877-FLOWERS. Relying on these weird phone number variations will often get you the WRONG number!
For you and I, the average clueful Slashdot user, telephone numbers are a fine way to find where you want to go - but even we rely on telephone books, rolodexes and personal organizers for many of our favorite numbers (not to mention the speed-dial buttons on our cell phones). The actual typing of telephone numbers should be for the technical - my mother should not have to know what a pound sign is, or what the difference between 800 and 877 is.
CMU 15251 Course Document and Cheating Policy
His policy encourages collaboration and specifically forbids cheating. It itemizes various types of cheating, for example copying from another student, letting another student copy you, and looking at someone else's files online (even if they forgot to set their file permissions).
Furthermore, he requires all of the students in his class to sign a statement saying that they have read and understand the cheating policy. Not only does that discourage some students from cheating, but it also makes it much easier for him to get students into serious trouble with the school when they are caught.
In addition to the course document, here's more or less what he had to say on the first day of class: (I apologize for paraphrasing; this is how I remember it) "Nobody plans to cheat. You all must be very smart, or you wouldn't be here. You think you're going to try hard and do well in this class. But later in the semester you'll get busy with other classes and activities, and all of a sudden an assignment will be due in one day and you haven't started. Or you'll be taking a test and realize that you forgot to study an important equation. Or you'll work hard on an assignment and almost completely get it working, but get stuck on one subroutine. Even though you never planned on cheating, all of a sudden you'll find yourself in a circumstance like that and it will seem tempting."
(BTW, I shouldn't have to say this, but Prof. Rudich's cheating policy is copyrighted. If you're a teacher or T.A., don't copy his cheating policy without his permission. That would be just as dishonest as cheating!!! If you want to use it, contact him and I'm sure he'd be delighted to let you use it, as long as you give him credit.)
Keep in mind that the average Linux user - even if he/she isn't a programmer - spends a fair amount of time compiling software.
And for compiling software, processor speed makes more of a difference than just about anything else.
Besides, even though this is a budget computer, you don't want the absolute cheapest computer ever, you want something with a reasonable price/performance ratio. Processors slower than this one give you a lot less performance for hardly any savings, while faster than this one give you a little bit more performance for a lot more money.
Sure, there are lots of circumstances where you know what you're trying to write and you can design the whole program before writing a line of code.
But that doesn't work at all when you're trying to come up with a new algorithm, experiment with different user interfaces, extend an existing program to do more things, or any one of a number of tasks where you have to "get your feet wet" coding it for a while before you can clearly see the design.
I'm a big fan of rapid prototyping. In my opinion, there's no better way to figure out the best way to program something than to start writing some code.
This does NOT mean that you shouldn't go back and document the code (both with inline comments and external documentation), I'm just trying to argue that it's easy to fall into the trap of overdesigning a program initially, before you really understand the coding tradeoffs you might have to make. Also, there's nothing worse than a fully documented program where the documentation is wrong! I've seen too many cases where the documentation says one thing, but the code does something different because later the programmer realized she needed another argument to a function, and threw it in without fixing the docs.
I guess in my opinion it's not a question of "document, then code", or "code, then document". I have to go back and forth between the two all the time. Initially I write out a short design just so I'm clear what the main goal of the program is. Then I start writing some code. Then I go back and start documenting the parts I coded well, and redesigning the parts I need to redo, in greater detail, and so on.
Both are entirely lossless compression. GIF supports up to 256 colors, with one optional transparent color. PNG supports 24-bit color plus 8-bit transparency. Only PNG supports some color calibration/adjusting. Only GIF supports animation.
Which one is better at compression?
GIF is good enough, especially for line art and things that don't use more than 256 colors. PNG is almost always better than GIF, sometimes compressing images to 1/2 the size.
Are the encoders copywrited?
Of course, nearly everything's copyrighted (including a lot of GPL and other "free" code). The LZW algorithm, which is used to encode GIF images, is patented, and the patent owner (Unisys) tries to get people to pay if they sell software with a GIF encoder in it. PNG is patent-free and royalty-free.
Which one is supported more?
Mozilla, Konqueror, Opera, Netscape 4.0+, and IE 5.0+ fully support PNG. That's 99% of normal web surfers. Unfortunately there were a few versions of IE (around 3.0 - 4.0) that actually crashed if a web page had any PNG's on them.
That's very unfortunate because it means that 0.1% of your website viewers will get a crash and write you hate mail. That's why very few sites use PNGs.
When I want to include a PNG of something on a webpage, I usually make a high-quality JPEG thumbnail which links to a PNG. That way people know it's the image that crashes their browser, not my webpage.
There's a great free, portable, easy-to-use library for encoding and decoding PNG images, so if you want to include support for some image format in a program you're writing, PNG is a great choice.
My guess is that Apple will keep selling the $799 CRT iMac for quite a while - definitely until March, when the $1299 flat iMac is supposed to ship. (I just checked and all of the old iMacs are still available from the Apple Store online, at their old prices.)
Even after March, they'll still probably keep a few CRT iMacs around to sell to education for another year. Remember back when they got rid of the sub-$1000 iMac for a while? They still had one available for education customers only, which I think was a very smart move. I'd expect something similar.
Also, the street price of CRT iMac Special Editions should drop significantly once the flat iMacs start to ship - so I wouldn't be surprised if you could pick up a used iMac with a 600 MHz G3 and CD-RW drive for under $1000 soon. That's a great budget PC.
Hello? What planet are you on?
.wma (Windows Media Audio) files on Linux? How do I encode them (assuming I even wanted to)???
How do I play
AFAIK, the only Windows Media program that's not on Windows is the Windows Media Player for Mac - and that's only a player.
A 700 MHz G3 is okay.
Now a 700 MHz G4, now that's fast! (All of the new iMacs have G4 processors.)
The LAST thing the designers of the original MacOS wanted to do was write another Unix. They had to run a tremendous GUI using only 128K of RAM, and fit the entire system onto 400K disks (with room left over for applications). Not only did they not intend for the computer to have multiple simultaneous users, but the 68000 processor didn't support "supervisor mode" anyway, nor memory protection - so there was no reason not to use those global variables. By the way, no well-designed application (except for system utilities) ever had to use any of those global variables - they had API functions to access all of them.
I'm not saying they couldn't have done well with more C.S. people, but I don't think they ever anticipated that the code and the API they were writing would be used by the same type of people who were using modern "workhorse" operating systems...
Are you usually connected to the Internet while running KDE? Try turning off networking (ifconfig eth0 down) and see if everything magically speeds up.
For some reason KDE programs want to access the net when they start up - maybe to do a reverse DNS lookup???
Anyway, if that was your problem, try running a caching nameserver - that helped me a lot.
This is of course in addition to the linker issue...
You're right, of course. I was trying to simplify it by making a statement which was true, even though it wasn't complete.
Most of what I would have contributed to this discussion has already been posted, too bad...