This is exactly why it is beyond comprehension that Apple, of all companies I might add, has introduced the faux-leather calendar and the address book that looks like a paper book in Lion. After they spent several iterations of OS X to arrive at the beautiful uniform sleek look of Snow Leopard WHY did they regress to using a real world metaphor that makes no sense to half their users?
Consider this: first of all. there is plenty of software engineering to be done that doesn't require mathematics at all (web development, administrative systems, etc.). Second, for the jobs that require math from your second category (i.e., calculus and linear algebra), you almost always require the first category as well, lest you want to become one of those scientists who write unmaintainable scientist-code:-) Third, the jobs where that category of math is required are rare (game development: linear algebra, signal processing: linear algebra, calculus and function theory), and if you don't like math, you should probably not try get into those fields at all.
Background: I have an MSc in Computer Science (we don't have a major/minor system in The Netherlands) and I've always had a strong interest in mathematics, so I'm not afraid of either topic. I currently develop software for scientific applications in various application areas, where both these fields of mathematics are very important. My job is relatively rare compared to what most of my former uni-mates are doing. Most people I know have jobs which require algorithmic knowledge, but not calculus or linear algebra.
I asked Tanenbaum this question at a lecture he gave on Minix 3 earlier this year. He responded that he changed his mind somewhat about the education-only issue because he felt that, to prove a point about the superiority of the microkernel design, you need to get it out of the lab and into the real world. He also felt that he could do this without hurting the simplicity of the system as a teaching tool. Incidentally, his intention is not to compete with Linux or Windows on the desktop, but rather to make a robust OS for embedded applications.
Until someone figures out how to revoke and replace biometric properties in case of fraud, I don't see why we should even be considering them as a serious replacement for good old passports.
"These findings indicate that biologically-based odorprints, like fingerprints, could be a reliable way to identify individuals"
Slightly off-topic, but since when do fingerprints qualify as a reliable way to identify a person? They can easily be faked, and once they are, there's no way to revoke them. It's like having a really bad passport...
Sorry for being slightly off topic, but as a non physicist, I've always wondered why the other seemingly obvious problems with such a device are never really considered problems. I am thinking of storm type winds blowing it off balance or making it resonate, the danger to aeroplanes, the disastrous consequences of breakage, etc. Why aren't these problems?
Hypothesis: A compiler can be developed that takes serially written programs and auto-transforms them into parallel programs to exploit the benefits of parallelism.
Parallel programming and automated parallelization have already been researched exhaustively throughout the last thirty years of the 20th century. The outcome of all this research is that it is not feasible/tractable to create a compiler that is capable of recongising parallelism, as you suggest. Compilers that can do this are sometimes called 'heroic' compilers, for the reason that the required transformations are so incredibly difficult, and heroic compilers that actually work (well) simply don't exist.
Computer proofs, like the graph color proof, are not proofs that are completely generated by a computer. The computer is merely used to brute force a fairly large number of 'special' cases which together account for all cases. The construction of the proofing method is and will remain human work, lest we create AI that matches our own I.In short, they are computer aided proofs only.
Further and more importantly, at this point we do not have and are not likely to have a machine that can prove any provable theorem (and fyi, not all truths in mathematics are provable!).
Ehh.. yes. As a rule I don't work for anybody that doesn't have a basic, decent software development practice going. I've had no trouble finding jobs as of yet. Quality pays off, both ways.
Well, the folks at Debian are not very desktop-minded. This is actually what makes Debian such a fantastic server distro, but if you are more of a multimedia guy/gal it may be annoying. The Debian attitude has a number of implications for desktop users:
1. The community: Asking questions on #debian about your KDE install is likely to get you responses like 'bah! I don't use desktops. I use X occasionally, but I don't really use KDE. Read the manual!'. Since Linux is a DIY OS, this may be troublesome.
2. The apps: by the time I switched to Gentoo, I could emerge KDE 3.1, whilst deb stable was still at the ancient KDE 2. At that time, Unstable was severely broken because of the whole gcc versioning issue. In general, new desktop apps appear in Gentoo in a matter of days, even hours after a release, whereas Debian unstable is a lot slower and more conservative at adapting.
3. The features: Gentoo is a bit more friendly towards newer features as well. As an example, getting ALSA to work in Debian about 1.5 years ago was a big pain. Gentoo supported it ever since I switched. In fact, it was my main reason for switching. Gentoo had a clear ALSA installation Howto present and all core packages were in Portage.
The point I like to stress here is that these differences are a direct result of the Debian attitude towards desktop usage. Don't take my word for it, go out on the irc channels and talk to these people. They are not keen on new desktop features and getting the latest media player or desktop environment to work is just not on their agenda. That's cool, unless it is on your agenda. Then you might want to give Gentoo a spin.
Gentoo is for people that want the ease of use of Debian's apt-get with the benefits of source compilation (optimization for your specific machine, smooth integration with source compiled packages) and support for The Latest Stuff.
Gentoo is as easy to maintain as Debian, but it is generally more geared towards people that want the latest stuff on their desktops (whereas Deb is not very desktop-friendly). In comparison to the desktop distro crop (Redhat, Suse, Mandrake, etc.), Gentoo stands out favorably (IMHO) in that it is much more accessible and maintainable from the command line. This may scare noobs, but tweaking the ol' config file is a lot more deterministic and promising than dealing with dialogs like 'there was a problem with your network device' and with custom vendor kernel weirdness.
So, to sum it up: Gentoo combines the best of both worlds: it is a very hard-core, clean, unixy distro with a very refreshing attitude towards desktop usage. IMHO, the only thing that beats Gentoo on your desktop will be OS X!
Ah.. the Linux desktop again. Isn't it weird that these discussions always seem to focus on the question wether Linux has a good desktop, whilst this is not really the issue? Linux _has_ a good desktop. In fact, it has two excellent desktops. The thing is lacks is top quality applications.
I'd go as far as to say that Linux is about 95% there in terms of 'ordinary' desktop things like browsing, e-mailing and chatting, typing a letter, clipping a photo, playing an mp3, etc. The problems start when you are a professional that needs the last 5%:
- Open Office is great for plain text and layout, but it messes up horribly if you have a document with fields or tables. This is not something you use everyday, but people that use it for their work need to be able to fill out a form without having to deal with an address field that runs off the window for some reason.
- The Gimp is phenomenal, but how about those fonts? Sure, you can do lots and lots of cool things with just images, but graphics pros _need_ those slick fonts.
- Pro audio: sure, Ardour looks like a nice digital audio workstation on paper, but in practice you have to deal with a segfault every ten minutes and quite a few usability issues. Same thing for Muse (great sequencer, sloppy timing), Glame (nice, impractical GUI), Jack (fantastic idea, too bad it still locks up systems), etc.
- Your profession here.
Point being: I think and hope that Linux will be all that on our desktops someday, but 'good' is not good enough when it comes to application software. For Linux to take off on the desktop, it needs to have 'excellent' apps. Apps that, at the very least, should be as good as their commercial counterparts, preferably better. For some reason, we see a lot of this quality in server type apps, we see this quality in the actual desktops (KDE and Gnome are prettier than windows XP if you ask me), but the applications are still lacking.
The obvious coolness of a Linux-kernel in your pocket aside, can somebody shed some light on why a phone needs a multi-user, multithreaded OS with virtual- and protected memory? I'm guessing most of these features get ripped out for embedded use, right? Isn't a linux kernel overkill on a phone then?
Note: I'm not trolling here, I'm genuinely curious. Educate me please:-)
I'd say the Foo Fighters have budget. You see Dave Grohl singing into an SM 57 in the Monkey Wrench vid. SM57's are quite popular and quite cheap.
That aside, I am a recording and performing electronic artist an a certified audio engineer. Software is _the_ major cost factor for most home studios (including successful dance producers!!). We use all open source/self written stuff though.
The general public barely knows that Linux exists. Here we have _the_ major OS vendor not only spreading the name Linux in a major advertising campaign, but actually acknowledging the fact that they view it as serious competition!
Ever since I started college, about five years ago, I have been wondering how people used to study computer science _without_ the Internet. I cannot imagine getting any serious programming job done without Google. Manual pages are usually no adequate source of information when using new or unfamiliar technologies.
Those grass roots examples people post on the web have actually saved my butt so many times I can't remember. While a good book is very valuable, a simple non-academic text is often very helpful in taking that first step. With a lot of OSS packages (I'm specifically thinking of the hideously undocumented OpenSSL library) example code is simply the only way to go. Other things I learned from the web include the BerkeleyDB embedded database library, Haskell, SQL, HTML/CSS, Perl and more recently Flex/Bison.
I've been trying -test1 and -test4 on my desktop and laptop for some time now. It is perhaps hard to believe, but the new kernel is very much _noticeable_ on the desktop. How? Well, for instance, you can 'feel' it when moving the mouse and watching the pointer on your screen. The lag between the physical movement and the mouse pointer has become almost unnoticeably small, even when apps are hogging CPU. Another nice touch is that your desktop keeps this responsiveness with large processes (say, an 'emerge mozilla') running in the background. With 2.4, terminals would be a bit slow at starting and such, but that is all gone now. It is also very pleasant that ALSA is now in the kernel. It saves lots of hassle compared to 2.4, where you had to compile the modules separately. Low latency audio performance should be less of a black art too with this kernel.
Cons:
Some defaults were funny at first (like missing console drivers, etc.) and I've noticed the mouse being a little jumpy some times. Nothing big so far.
Most users won't really be bothered by this, but since Linux is a DIY platform, this is a significant annoyance to developers: most Linux programs give you the source, but they don't bother writing the documentation.
While it is theoretically possible to go in and fix some broken app, many times I just don't bother because it would take too much time just getting familiar with the code. If only developers would bother to at least provide a 'big picture' of the app's structure, it's major subsystems, etc, it would be much easier to track and fix small errors.
This extends to comments. There's lots of good code out there, but too few people bother to comment it, except for the odd mental note. All in all, it would be good if developers keep in mind the fact that their software is _open source_ and other people might want to contribute to it some day.
Annoyance no. 2:
There are too many close-but-no-cigar apps. Very often, several apps do more or less the same thing, but none of them does it really great, simply because they are all developed by one or two people who don't have time to do more than the basics. Such developers would be capable of doing great things for Linux if they would only work together and build one great app instead of five mediocre ones.
Apple hardware is Cheap!
Go try to price a dual Xeon system to compare to the Dual G5 systems from a company like Dell.
Well, I was on your (and Apple's) side for a while until I needed to buy a laptop. I write code for real time audio processing which I use for live performance and I decided to conduct a little test before I bought a G4 powerbook..
I wrote a small, heavily CPU intensive program which performed many typical DSP calculations, compiled it with gcc and ran it on a desktop athlon-xp 1700. Without optimizations, this test routine took eight seconds to complete, with optimizations it took four. Then, I compiled and ran it on an 867 Mhz G4 (same compiler): the typical routine took 30 seconds to complete without optimizations and 8 seconds with optimizations. Of course, you can't really make any scientific conclusions here, but it is suspicious at least.
Why is comparing an xp 1700 to a 867mhz G4 fair? Well, because at the time (earlier this year!) you had to pay 2400 euro for the G4 Powerbook with a 15.2 inch screen and 1800 euro for a Vaio with an xp 1700 and a 15.2 inch screen.
Mind you, both machines have roughly the same overall configuration and extras.
So, to get back to your point: it depends on how you define 'cheap'. If you look at Powerbooks by themselves, they may seem more affordable than they used to, but if you look at power-per-euro, they are relatively expensive, bottom line.
'nuff said.
This is exactly why it is beyond comprehension that Apple, of all companies I might add, has introduced the faux-leather calendar and the address book that looks like a paper book in Lion. After they spent several iterations of OS X to arrive at the beautiful uniform sleek look of Snow Leopard WHY did they regress to using a real world metaphor that makes no sense to half their users?
Pick the Discrete Math course. Really.
Consider this: first of all. there is plenty of software engineering to be done that doesn't require mathematics at all (web development, administrative systems, etc.). Second, for the jobs that require math from your second category (i.e., calculus and linear algebra), you almost always require the first category as well, lest you want to become one of those scientists who write unmaintainable scientist-code :-) Third, the jobs where that category of math is required are rare (game development: linear algebra, signal processing: linear algebra, calculus and function theory), and if you don't like math, you should probably not try get into those fields at all.
Background: I have an MSc in Computer Science (we don't have a major/minor system in The Netherlands) and I've always had a strong interest in mathematics, so I'm not afraid of either topic. I currently develop software for scientific applications in various application areas, where both these fields of mathematics are very important. My job is relatively rare compared to what most of my former uni-mates are doing. Most people I know have jobs which require algorithmic knowledge, but not calculus or linear algebra.
I asked Tanenbaum this question at a lecture he gave on Minix 3 earlier this year. He responded that he changed his mind somewhat about the education-only issue because he felt that, to prove a point about the superiority of the microkernel design, you need to get it out of the lab and into the real world. He also felt that he could do this without hurting the simplicity of the system as a teaching tool. Incidentally, his intention is not to compete with Linux or Windows on the desktop, but rather to make a robust OS for embedded applications.
Until someone figures out how to revoke and replace biometric properties in case of fraud, I don't see why we should even be considering them as a serious replacement for good old passports.
"These findings indicate that biologically-based odorprints, like fingerprints, could be a reliable way to identify individuals"
Slightly off-topic, but since when do fingerprints qualify as a reliable way to identify a person? They can easily be faked, and once they are, there's no way to revoke them. It's like having a really bad passport...
I'd like to see all radio stations play only independent music for one day. See how the RIAA likes that..
Sorry for being slightly off topic, but as a non physicist, I've always wondered why the other seemingly obvious problems with such a device are never really considered problems. I am thinking of storm type winds blowing it off balance or making it resonate, the danger to aeroplanes, the disastrous consequences of breakage, etc. Why aren't these problems?
Parallel programming and automated parallelization have already been researched exhaustively throughout the last thirty years of the 20th century. The outcome of all this research is that it is not feasible/tractable to create a compiler that is capable of recongising parallelism, as you suggest. Compilers that can do this are sometimes called 'heroic' compilers, for the reason that the required transformations are so incredibly difficult, and heroic compilers that actually work (well) simply don't exist.
Computer proofs, like the graph color proof, are not proofs that are completely generated by a computer. The computer is merely used to brute force a fairly large number of 'special' cases which together account for all cases. The construction of the proofing method is and will remain human work, lest we create AI that matches our own I.In short, they are computer aided proofs only.
Further and more importantly, at this point we do not have and are not likely to have a machine that can prove any provable theorem (and fyi, not all truths in mathematics are provable!).
Ehh.. yes. As a rule I don't work for anybody that doesn't have a basic, decent software development practice going. I've had no trouble finding jobs as of yet. Quality pays off, both ways.
No conflict here. Saying that an exact solution does not exist is consistent with saying that numeric solutions do exist.
Yeah, except that the author of the paper claims an algebraic solution.
From the article:
How does software owned by everyone and by no one survive in a world where copyrights and patents shape the legal landscape?
Shouldn't that be:
how can copyrights and patents survive in a world where software is owned by everyone and by no one?
Well, the folks at Debian are not very desktop-minded. This is actually what makes Debian such a fantastic server distro, but if you are more of a multimedia guy/gal it may be annoying. The Debian attitude has a number of implications for desktop users:
1. The community: Asking questions on #debian about your KDE install is likely to get you responses like 'bah! I don't use desktops. I use X occasionally, but I don't really use KDE. Read the manual!'. Since Linux is a DIY OS, this may be troublesome.
2. The apps: by the time I switched to Gentoo, I could emerge KDE 3.1, whilst deb stable was still at the ancient KDE 2. At that time, Unstable was severely broken because of the whole gcc versioning issue. In general, new desktop apps appear in Gentoo in a matter of days, even hours after a release, whereas Debian unstable is a lot slower and more conservative at adapting.
3. The features: Gentoo is a bit more friendly towards newer features as well. As an example, getting ALSA to work in Debian about 1.5 years ago was a big pain. Gentoo supported it ever since I switched. In fact, it was my main reason for switching. Gentoo had a clear ALSA installation Howto present and all core packages were in Portage.
The point I like to stress here is that these differences are a direct result of the Debian attitude towards desktop usage. Don't take my word for it, go out on the irc channels and talk to these people. They are not keen on new desktop features and getting the latest media player or desktop environment to work is just not on their agenda. That's cool, unless it is on your agenda. Then you might want to give Gentoo a spin.
Gentoo is for people that want the ease of use of Debian's apt-get with the benefits of source compilation (optimization for your specific machine, smooth integration with source compiled packages) and support for The Latest Stuff.
Gentoo is as easy to maintain as Debian, but it is generally more geared towards people that want the latest stuff on their desktops (whereas Deb is not very desktop-friendly). In comparison to the desktop distro crop (Redhat, Suse, Mandrake, etc.), Gentoo stands out favorably (IMHO) in that it is much more accessible and maintainable from the command line. This may scare noobs, but tweaking the ol' config file is a lot more deterministic and promising than dealing with dialogs like 'there was a problem with your network device' and with custom vendor kernel weirdness.
So, to sum it up: Gentoo combines the best of both worlds: it is a very hard-core, clean, unixy distro with a very refreshing attitude towards desktop usage. IMHO, the only thing that beats Gentoo on your desktop will be OS X!
Ah.. the Linux desktop again. Isn't it weird that these discussions always seem to focus on the question wether Linux has a good desktop, whilst this is not really the issue? Linux _has_ a good desktop. In fact, it has two excellent desktops. The thing is lacks is top quality applications.
I'd go as far as to say that Linux is about 95% there in terms of 'ordinary' desktop things like browsing, e-mailing and chatting, typing a letter, clipping a photo, playing an mp3, etc. The problems start when you are a professional that needs the last 5%:
- Open Office is great for plain text and layout, but it messes up horribly if you have a document with fields or tables. This is not something you use everyday, but people that use it for their work need to be able to fill out a form without having to deal with an address field that runs off the window for some reason.
- The Gimp is phenomenal, but how about those fonts? Sure, you can do lots and lots of cool things with just images, but graphics pros _need_ those slick fonts.
- Pro audio: sure, Ardour looks like a nice digital audio workstation on paper, but in practice you have to deal with a segfault every ten minutes and quite a few usability issues. Same thing for Muse (great sequencer, sloppy timing), Glame (nice, impractical GUI), Jack (fantastic idea, too bad it still locks up systems), etc.
- Your profession here.
Point being: I think and hope that Linux will be all that on our desktops someday, but 'good' is not good enough when it comes to application software. For Linux to take off on the desktop, it needs to have 'excellent' apps. Apps that, at the very least, should be as good as their commercial counterparts, preferably better. For some reason, we see a lot of this quality in server type apps, we see this quality in the actual desktops (KDE and Gnome are prettier than windows XP if you ask me), but the applications are still lacking.
Try Google, newbie :-)
Oh heck, I'll save you the trouble. Read hereThe obvious coolness of a Linux-kernel in your pocket aside, can somebody shed some light on why a phone needs a multi-user, multithreaded OS with virtual- and protected memory? I'm guessing most of these features get ripped out for embedded use, right? Isn't a linux kernel overkill on a phone then?
:-)
Note: I'm not trolling here, I'm genuinely curious. Educate me please
I'd say the Foo Fighters have budget. You see Dave Grohl singing into an SM 57 in the Monkey Wrench vid. SM57's are quite popular and quite cheap.
That aside, I am a recording and performing electronic artist an a certified audio engineer. Software is _the_ major cost factor for most home studios (including successful dance producers!!). We use all open source/self written stuff though.
The general public barely knows that Linux exists. Here we have _the_ major OS vendor not only spreading the name Linux in a major advertising campaign, but actually acknowledging the fact that they view it as serious competition!
Ever since I started college, about five years ago, I have been wondering how people used to study computer science _without_ the Internet. I cannot imagine getting any serious programming job done without Google. Manual pages are usually no adequate source of information when using new or unfamiliar technologies.
Those grass roots examples people post on the web have actually saved my butt so many times I can't remember. While a good book is very valuable, a simple non-academic text is often very helpful in taking that first step. With a lot of OSS packages (I'm specifically thinking of the hideously undocumented OpenSSL library) example code is simply the only way to go. Other things I learned from the web include the BerkeleyDB embedded database library, Haskell, SQL, HTML/CSS, Perl and more recently Flex/Bison.
I've been trying -test1 and -test4 on my desktop and laptop for some time now. It is perhaps hard to believe, but the new kernel is very much _noticeable_ on the desktop. How? Well, for instance, you can 'feel' it when moving the mouse and watching the pointer on your screen. The lag between the physical movement and the mouse pointer has become almost unnoticeably small, even when apps are hogging CPU. Another nice touch is that your desktop keeps this responsiveness with large processes (say, an 'emerge mozilla') running in the background. With 2.4, terminals would be a bit slow at starting and such, but that is all gone now. It is also very pleasant that ALSA is now in the kernel. It saves lots of hassle compared to 2.4, where you had to compile the modules separately. Low latency audio performance should be less of a black art too with this kernel.
Cons:
Some defaults were funny at first (like missing console drivers, etc.) and I've noticed the mouse being a little jumpy some times. Nothing big so far.
All things considered: great kernel! Thanks guys.
Annoyance no. 1:
Most users won't really be bothered by this, but since Linux is a DIY platform, this is a significant annoyance to developers: most Linux programs give you the source, but they don't bother writing the documentation.
While it is theoretically possible to go in and fix some broken app, many times I just don't bother because it would take too much time just getting familiar with the code. If only developers would bother to at least provide a 'big picture' of the app's structure, it's major subsystems, etc, it would be much easier to track and fix small errors.
This extends to comments. There's lots of good code out there, but too few people bother to comment it, except for the odd mental note. All in all, it would be good if developers keep in mind the fact that their software is _open source_ and other people might want to contribute to it some day.
Annoyance no. 2:
There are too many close-but-no-cigar apps. Very often, several apps do more or less the same thing, but none of them does it really great, simply because they are all developed by one or two people who don't have time to do more than the basics. Such developers would be capable of doing great things for Linux if they would only work together and build one great app instead of five mediocre ones.
Well, I was on your (and Apple's) side for a while until I needed to buy a laptop. I write code for real time audio processing which I use for live performance and I decided to conduct a little test before I bought a G4 powerbook..
I wrote a small, heavily CPU intensive program which performed many typical DSP calculations, compiled it with gcc and ran it on a desktop athlon-xp 1700. Without optimizations, this test routine took eight seconds to complete, with optimizations it took four. Then, I compiled and ran it on an 867 Mhz G4 (same compiler): the typical routine took 30 seconds to complete without optimizations and 8 seconds with optimizations. Of course, you can't really make any scientific conclusions here, but it is suspicious at least.
Why is comparing an xp 1700 to a 867mhz G4 fair? Well, because at the time (earlier this year!) you had to pay 2400 euro for the G4 Powerbook with a 15.2 inch screen and 1800 euro for a Vaio with an xp 1700 and a 15.2 inch screen. Mind you, both machines have roughly the same overall configuration and extras.
So, to get back to your point: it depends on how you define 'cheap'. If you look at Powerbooks by themselves, they may seem more affordable than they used to, but if you look at power-per-euro, they are relatively expensive, bottom line.