As far as I understand the problem, altivec is very performant but only handles single precision floats, not doubles.
While single precision floats are largely enough for multi-media processing (filters, compression, etc...), in general, number crunching is done in double precision and the floating point tests of SEPC reflect this. You don't always need double for scientific calculations, but this is altoghter another discussion.
Maybe one day we'll see a multimedia component of SPEC or Altivec will support double precision numbers (the author even mentions this at the end of the article) but until then Altivec is out and this has nothing to do with a bias of the author.
As for OS X being optimised for this kind of stuff, we are talking applications that nearly never call the OS for anything, so the impact of OS X is probably nil.
The truth is, floating point calculation is not really important for most users and both Intel and PowerPC processors are optimised for integer calculations. There was a good article about this on Ars Technica.
One reason I could see to explain the large difference lies in the compiler: there has been much more work on gcc to optimise for the Intel instruction set than for the PPC instruction set. Like most RISC processors, the performance of a PPC processor is hugely influenced by the compiler.
Actually, floating point is quite fast on a PPC. As people already pointed out, for matrix-like computation, PPC has a special instruction that does one multiplication and one addition in one cycle. If this is to slow, on a G4 you can use altivec.
If you really want not to use floating point calculation, then rational numbers are not the way to go. Instead you should use fixed point numbers. Old 68K based macintoshes (without FPUs) relied on those for fast calculation - in fact as far as I remember, the original Quickdraw toolbox relied of fixed point number for geometric calculations (arcs, slopes, etc.).
Basically, the idea is to use integers divided by a fixed number, so that the binary number has a fixed point. For instance if you have 32 bits numbers, you assume they are divided by 65536. This means that you have 16 bits before the point, and 16 bits after. This way for additions and substractions, you can use integer operations, calculation can also use the zero and sign flags of the processor.
For mulitplication and division, you need to fiddle the integer system a bit (by multiplying or dividing by 2^16), but this could be done using shift operations, which are quite fast.
The rational structure you propose is not good because a simple addition requires many assembly level operations. For instance to calculate 6/5 + 2/3, you need to do the following calculation:
Find the greatest common dividers of 5 and 3 (this is quite an expensive calculation)
If none is found, multiply 3 by 5.
Multiply 6 by 3 and 2 by 5.
Add the result
So this basically for a single addition, you need to do perform at least a GCD calculation, one test, three multiplications and one addition.
Multiplications and division are a little less costly, but you still need to check if the fraction is simplified.
Rational numbers are good if you want absolute precision, but for they are not very fast - because there is no support for such a format in current processor instruction sets.
As for OS X using a vector format, this is, of course the case. Quarty relies on the PDF abstractions and it does support anti-aliasing, and sub-pixel positioning (I don't know for screen scaling).
But having a vector format is not sufficient Quickdraw was also vector based, but used an integer coordinate system. This meant that lines, rectangles and arcs had to have their extremities on round coordinates of the Quickdraw grid - the result was not always very satisfactory.
Resolution Independance
on
Aqua Enhancements
·
· Score: 5, Insightful
Actually, using floating points is a very good thing for GUI stuff. While it might seem pointless for window sizes, all coordinates in Quartz are floating point. This makes it posible to work in a resolution independant way.
Thinking of the screen as a discret grid is not the way to go if you want to handle anti-aliasing, sub-pixel text positioning, scaling for a screen with a different size/resolution, etc...
Remember that Quartz is used for handling on screen drawing, but also printing -- current printers can have 24 times more resolution than your screen (2400 DPI vs 100)- so if you use the discrete grid of your screen to describe stuff for your printer, you can only adress directly one pixel out of 576.
ADB = Apple Desktop Bus
Apple ditched the ADB protocol a long time ago. The first G3 was the last machine to use this interconnection bus. I don't know what internal protocol is used in current PowerBooks, but I don't think it is ADB(my guess would be USB).
Note that ADB is a Bus protocol, like USB (on many counts, ADB is the ancestor of USB) it defines nothing about the positions of the keys, or what events the device should generate, it simply specifies how devices on the bus communicate.
You are mixing up many things:
The protocol used to connect the keyboard to the computer (ADB).
The physical layout of the keyboard (position of control key).
The event model used by the keyboard.
I don't know what signal a generated by the keyboards on key presses and releases, are you talking physical signals, or GUI events?
As for the position of control on the keyboard, it is not broken by design, but good design for Macintosh users. You have to understand that the control key is not used a lot in Mac OS, all keyboards shortcuts are done with the clover/apple (and contextual menus) key, and special characters accessed with the alt key, so it makes sense to move this key out of the way.
If I contrast this with my Sun keyboard, where half of the key don't work (Props, Find, Help, PrintScreen, Scroll-Lock. the volume and contrast keys) I find it difficult to blame Apple.
Honnestly a Unix user can use a Mac keyboard (I'm doing it), it simply requires a little time to get used to.
Try switching all the time from the Swiss-French Keyboard to the US keyboard - and the Mac mapping for accents characters and the Sun mapping, that's a real challenge!
Re:Linux and MacOS running alongside?
on
Linux on the iMac G4
·
· Score: 3, Informative
I remember reading about this is the darwin devellopement list a long time ago.
First MkLinux and Darwin are not based on the same version of Mach. Still, while it would be possible to have linux run over Mach, it would not be very usefull.
This implies duplicating a lot of the functionality of the BSD layer, like for instance the drivers. Having two different drivers from different kernels address the same hardware would pose some problems.
The end result would only be a Linux kernel.
The linux kernel would be slow, because it would run as a Mach process (the BSD layer shares the address space of the Mach kernel).
Most people are not intersted in kernels, but more by applications.
Applications can be handled either by recompiling them for Darwin, or by emulating Linux system calls (I think BSD can do this).
The only part of the system were they could do this would be the darwin kernel (the open source part). Do you really think that Apple would add such a feature, which requires testing and could probably cause bugs, simply to prevent the four guys that might build a stock PPC which is more expensive that genuine Apple computers from running OS X on it? Do you really think this would be cost effective?
Wrong, if Darwin runs on those board and the processor on those board are PPC processors, then the higher levels of OS X will run. Only the Darwin layer interacts with the hardware, all the other layers interact with the Darwin kernel (that's one point of having a kernel). So Aqua cannot "know" if the motherboard is genuine Apple or not.
I don't know the exact conditions for the use of Postscript. When NEXT used display Postscript, they had to pay some license money to Adobe. Also Postscript compatible printer often were not called Postscript for licence reason. For instance for some time I had a Brother printer that supported BR-script.
It has not been proposed because HTML is not a page description language. It's a document structuring language, even if a lot of people do not understand the difference. Its is simply the wrong tool.
HTML displays a document using information about its structure (title, paragraphs), to an arbitrary media. A page description language is about describing precisely the graphical structure (x,y position of all elements).
Take a arbitrary page layout (say a magazine - a paper one), and ask yourself, can I describe this with HTML? The answer is no. HTML and PDF have different goals. Trying to use one for the other is not a good idea. Use the right tool.
A much better candidate would be the SVG format, which is based on XML, open and has all the needed features. It is a true vector graphic file format. The only problem is, it is not widely supported (and maybe the font embedding mechanism is not as good).
Then again, PDF does the job nicely -- and is widely supported. While you can embed proprietary features in PDF, so can you with an HTML file (simply by including a GIF file). In fact if you take the current HTML technology, as far as I know, the font embedding mechanism used for HTML is completly proprietary.
Maybe this issue is more complicated than Adobe = BAD Open Source = GOOD
As to why PDF has better compression that an compressed html page. The difference is that the compression is done inside the file, so each type of data is compressed with a different compression algorithm. Also PDF has a feature that is called object reuse, the basic idea is that if an element is present multiple time in a document, it will only be stored once (perfect compression if you want). If you design your html document carefully, you can get this, but more often, machine generated html is very redundant.
First you have to understand that PDF is designed as a page description language (with some add-ons for forms and scripts), while Microsoft word is a word processor. Those are different tools.
Also while the pdf format is controlled by Adobe, the specs are open and available (contrast this with Microsoft's format which is a complete mystery), you can get the specs from Adobe's site and nothing prevents you from writing code that manipulates pdf files (well yes there are issues with compression algorithm).
This openess is the reason why Apple chose to use pdf as their graphic description language for OS X (older OS versions used QuickDraw). The windows page description language, is, I think, WMF. It's funny to think that the basic page description language used under Unix is Postscript, which is much more closed than PDF.
IMHO one of the core issue with those IP problems is the notion that everything must be owned by someone. I suppose it makes kind of sense, if everything is owned, then money will be made out of everything.
When there will be a patent on the process of "a mother singing to help her children sleep", we will know for sure that we are slaves.
Funny how/bin/laden has passed from mere mortal to a incarnation of evil, and as such responsible for all bad things.
Yesterday he was responsible for crashing the US economy. Today he is responsible for bugs in XP. Tommorow he will be responsible for sour milks, bad weather, disrespectfull children...
Another example where Objective C outshines the hell out of C++ or even Java is for dynamic programming.
A simple example is the proxy class. Have a class implement a particular interface at runtime and route all call to another class. Distributed environnement like CORBA need this a lot, but it is also usefull for debugging stuff.
In objective C, this is a breeze, in Java its tricky, and AFAIK impossible to do in C++. A simple example of the flexibility of objective-C, the implements is not a reserved keyword like in Java but an object method that can be overloaded.
No the PG-13 version would also remove the smoking bit, remember smoking is bad for your health and doing it the bed is dangerous.:-)
I agree this is pointless, because either the bit that was removed is not needed to understand the movie (then why did the director put it in?), or the bit means something for the movie, then removing it destroys it. I know that Hollywood movies today tend to be very redundant, but still.
What pissed me off was their blurb page:
This allows you to view
the movie in its original version without hearing the profanity in the movie.
If you remove the profanity, then it is not the original version anymore! What this thing produces are censored versions of movies. Of course censorship is bad word, so it should be avoided...
The problem is, Apple has stopped offering motherboard upgrades some time ago. So you can pop the board out and... do nothing. Buying a never motherboard is not trivial. Also both motherboard and case design tend to change a lot, there is no such thing as an ATX case.
The whole market for motherboard upgrades comes from this situation. Apple does not support motherboard that it did not manufacture, and the OS used to check for the precence of genuine ROMs. So third parties could not build replacement boards. By upgrading only the CPU subsystem, the rest of the motherboard would remain genuine Apple and therefore run the system without problems.
Also remember that Mac hardware tends to be more expensive and last longer than PCs. While the performance boost you win by upgrading only the CPU system is lower, the impact on the workstation is also lower. Changing a motherboard means changing the system, having new drivers, so basically more maintainance work.
This situation might change with darwin, theoretically, nothing prevents some company from producing PPC motherboards, recompile Darwin for it and then build a installer that instals OS X on top of Darwin. Old machines that Apple does not support can run OS X this way.
The editors is not the guy separating good studies from bad ones, this is done by peer review. Doign peer review is a lot of work (if you do it correctly) and is not paid (at least not in CS).
Peer review is already in place, the internet only makes thing easier (you get the papers to review as a pdf and fill a form for the review).
The problem is that academics do a lot of work, they write the papers, review them, but get no money, and the rights you keep on your paper is limited.
So basically, I write a paper, review others papers, pay my dues to IEEE, don't own my paper anymore and still have to pay for other people's papers, I don't call this bickering.
One thing I would like to see is how this affects battery life. OK, if you overclock the processor, calculations are faster, no surprise. But what is the tradeof between processor speed and battery life? While this is not an issue for a desktop, it is one for a laptop.
The reason is probably political. As soon as a crisis appears, everybody suspects the things they don't like and should therefore be blamed.
EBay is a nice choice for this: it is a symbol of the DotCom hysteria, and there are already a lot of stories about it (people selling their child's names, organs, nazi ensigns).
Now you idea is much more logical, but emotionnaly unnaceptable. Having the FBI raid eBay is one thing (nobody works there anyway) but suspecting people who show pictures of their cats, that would be truly evil (everybody knows somebody who likes cats).
This is not about logic, but about finding somebody to blame.
It's much easier to suspect and to blame people you don't know... Why do you think comes the idea that Bin Laden had to use the internet?
Actually there is a freeware/shareware program called Graphic Converter that does the job for a reasonable price.
As for TeX, I also use it, but I use a nice tool called TexShop that is really nice, free and open source. It uses pdttex to compile and renders the file directly in pdf, so you get all the nice features of Quartz, like anti-aliasing.
Aqua is not simply a window manager and widget set you can install on top of a X11 server. It relies on a different drawing sub-system
A simple port would imply rewriting the low-level IOKit functions for BSD/Linux and then recompile the foundations classes, and the Quartz rendering engine and then finally the Aqua layer.
While it would not be very difficult, most of the code as been ported to many architectures. I suspect that a lot of work went into optimising Aqua for the PPC processor and the Atlivec unit. Aqua implies a lot of processing, and I would think that a straigtforward port would be very slow.
Then again if Apple did this, they would roughtly have changed kernels, using the Linux/BSD kernel instead of Mach - what would be the point?
As far as I understand the problem, altivec is very performant but only handles single precision floats, not doubles.
While single precision floats are largely enough for multi-media processing (filters, compression, etc...), in general, number crunching is done in double precision and the floating point tests of SEPC reflect this. You don't always need double for scientific calculations, but this is altoghter another discussion.
Maybe one day we'll see a multimedia component of SPEC or Altivec will support double precision numbers (the author even mentions this at the end of the article) but until then Altivec is out and this has nothing to do with a bias of the author.
As for OS X being optimised for this kind of stuff, we are talking applications that nearly never call the OS for anything, so the impact of OS X is probably nil. The truth is, floating point calculation is not really important for most users and both Intel and PowerPC processors are optimised for integer calculations. There was a good article about this on Ars Technica.
One reason I could see to explain the large difference lies in the compiler: there has been much more work on gcc to optimise for the Intel instruction set than for the PPC instruction set. Like most RISC processors, the performance of a PPC processor is hugely influenced by the compiler.
This is nice and good, but should such information not be put where it should, i.e in the collection of how-to document for darwin?
If you really want not to use floating point calculation, then rational numbers are not the way to go. Instead you should use fixed point numbers. Old 68K based macintoshes (without FPUs) relied on those for fast calculation - in fact as far as I remember, the original Quickdraw toolbox relied of fixed point number for geometric calculations (arcs, slopes, etc.).
Basically, the idea is to use integers divided by a fixed number, so that the binary number has a fixed point. For instance if you have 32 bits numbers, you assume they are divided by 65536. This means that you have 16 bits before the point, and 16 bits after. This way for additions and substractions, you can use integer operations, calculation can also use the zero and sign flags of the processor. For mulitplication and division, you need to fiddle the integer system a bit (by multiplying or dividing by 2^16), but this could be done using shift operations, which are quite fast.
The rational structure you propose is not good because a simple addition requires many assembly level operations. For instance to calculate 6/5 + 2/3, you need to do the following calculation:
- Find the greatest common dividers of 5 and 3 (this is quite an expensive calculation)
- If none is found, multiply 3 by 5.
- Multiply 6 by 3 and 2 by 5.
- Add the result
So this basically for a single addition, you need to do perform at least a GCD calculation, one test, three multiplications and one addition. Multiplications and division are a little less costly, but you still need to check if the fraction is simplified.Rational numbers are good if you want absolute precision, but for they are not very fast - because there is no support for such a format in current processor instruction sets.
As for OS X using a vector format, this is, of course the case. Quarty relies on the PDF abstractions and it does support anti-aliasing, and sub-pixel positioning (I don't know for screen scaling). But having a vector format is not sufficient Quickdraw was also vector based, but used an integer coordinate system. This meant that lines, rectangles and arcs had to have their extremities on round coordinates of the Quickdraw grid - the result was not always very satisfactory.
Actually, using floating points is a very good thing for GUI stuff. While it might seem pointless for window sizes, all coordinates in Quartz are floating point. This makes it posible to work in a resolution independant way.
Thinking of the screen as a discret grid is not the way to go if you want to handle anti-aliasing, sub-pixel text positioning, scaling for a screen with a different size/resolution, etc...
Remember that Quartz is used for handling on screen drawing, but also printing -- current printers can have 24 times more resolution than your screen (2400 DPI vs 100)- so if you use the discrete grid of your screen to describe stuff for your printer, you can only adress directly one pixel out of 576.
Apple ditched the ADB protocol a long time ago. The first G3 was the last machine to use this interconnection bus. I don't know what internal protocol is used in current PowerBooks, but I don't think it is ADB(my guess would be USB).
Note that ADB is a Bus protocol, like USB (on many counts, ADB is the ancestor of USB) it defines nothing about the positions of the keys, or what events the device should generate, it simply specifies how devices on the bus communicate.
You are mixing up many things:
I don't know what signal a generated by the keyboards on key presses and releases, are you talking physical signals, or GUI events?
As for the position of control on the keyboard, it is not broken by design, but good design for Macintosh users. You have to understand that the control key is not used a lot in Mac OS, all keyboards shortcuts are done with the clover/apple (and contextual menus) key, and special characters accessed with the alt key, so it makes sense to move this key out of the way.
If I contrast this with my Sun keyboard, where half of the key don't work (Props, Find, Help, PrintScreen, Scroll-Lock. the volume and contrast keys) I find it difficult to blame Apple.
Honnestly a Unix user can use a Mac keyboard (I'm doing it), it simply requires a little time to get used to. Try switching all the time from the Swiss-French Keyboard to the US keyboard - and the Mac mapping for accents characters and the Sun mapping, that's a real challenge!
First MkLinux and Darwin are not based on the same version of Mach. Still, while it would be possible to have linux run over Mach, it would not be very usefull.
Well lego (and duplo) sound latinish.
So the correct pluralisation would be legi and dupli.
The only part of the system were they could do this would be the darwin kernel (the open source part). Do you really think that Apple would add such a feature, which requires testing and could probably cause bugs, simply to prevent the four guys that might build a stock PPC which is more expensive that genuine Apple computers from running OS X on it? Do you really think this would be cost effective?
This is one reason people were able torun OS X on unsupported machines.
The high-level components like Cocoa and Carbon don't run on Darwin/Intel because the available binary code is PPC code.
I don't know the exact conditions for the use of Postscript. When NEXT used display Postscript, they had to pay some license money to Adobe. Also Postscript compatible printer often were not called Postscript for licence reason. For instance for some time I had a Brother printer that supported BR-script.
It has not been proposed because HTML is not a page description language. It's a document structuring language, even if a lot of people do not understand the difference. Its is simply the wrong tool. HTML displays a document using information about its structure (title, paragraphs), to an arbitrary media. A page description language is about describing precisely the graphical structure (x,y position of all elements).
Take a arbitrary page layout (say a magazine - a paper one), and ask yourself, can I describe this with HTML? The answer is no. HTML and PDF have different goals. Trying to use one for the other is not a good idea. Use the right tool.
A much better candidate would be the SVG format, which is based on XML, open and has all the needed features. It is a true vector graphic file format. The only problem is, it is not widely supported (and maybe the font embedding mechanism is not as good).
Then again, PDF does the job nicely -- and is widely supported. While you can embed proprietary features in PDF, so can you with an HTML file (simply by including a GIF file). In fact if you take the current HTML technology, as far as I know, the font embedding mechanism used for HTML is completly proprietary.
Maybe this issue is more complicated than Adobe = BAD Open Source = GOOD
As to why PDF has better compression that an compressed html page. The difference is that the compression is done inside the file, so each type of data is compressed with a different compression algorithm. Also PDF has a feature that is called object reuse, the basic idea is that if an element is present multiple time in a document, it will only be stored once (perfect compression if you want). If you design your html document carefully, you can get this, but more often, machine generated html is very redundant.
Also while the pdf format is controlled by Adobe, the specs are open and available (contrast this with Microsoft's format which is a complete mystery), you can get the specs from Adobe's site and nothing prevents you from writing code that manipulates pdf files (well yes there are issues with compression algorithm).
This openess is the reason why Apple chose to use pdf as their graphic description language for OS X (older OS versions used QuickDraw). The windows page description language, is, I think, WMF. It's funny to think that the basic page description language used under Unix is Postscript, which is much more closed than PDF.
IMHO one of the core issue with those IP problems is the notion that everything must be owned by someone. I suppose it makes kind of sense, if everything is owned, then money will be made out of everything.
When there will be a patent on the process of "a mother singing to help her children sleep", we will know for sure that we are slaves.
Funny how /bin/laden has passed from mere mortal to a incarnation of evil, and as such responsible for all bad things.
Yesterday he was responsible for crashing the US economy. Today he is responsible for bugs in XP. Tommorow he will be responsible for sour milks, bad weather, disrespectfull children...
Another example where Objective C outshines the hell out of C++ or even Java is for dynamic programming. A simple example is the proxy class. Have a class implement a particular interface at runtime and route all call to another class. Distributed environnement like CORBA need this a lot, but it is also usefull for debugging stuff.
In objective C, this is a breeze, in Java its tricky, and AFAIK impossible to do in C++. A simple example of the flexibility of objective-C, the implements is not a reserved keyword like in Java but an object method that can be overloaded.
No the PG-13 version would also remove the smoking bit, remember smoking is bad for your health and doing it the bed is dangerous. :-)
I agree this is pointless, because either the bit that was removed is not needed to understand the movie (then why did the director put it in?), or the bit means something for the movie, then removing it destroys it. I know that Hollywood movies today tend to be very redundant, but still.
What pissed me off was their blurb page:
If you remove the profanity, then it is not the original version anymore! What this thing produces are censored versions of movies. Of course censorship is bad word, so it should be avoided...The whole market for motherboard upgrades comes from this situation. Apple does not support motherboard that it did not manufacture, and the OS used to check for the precence of genuine ROMs. So third parties could not build replacement boards. By upgrading only the CPU subsystem, the rest of the motherboard would remain genuine Apple and therefore run the system without problems.
Also remember that Mac hardware tends to be more expensive and last longer than PCs. While the performance boost you win by upgrading only the CPU system is lower, the impact on the workstation is also lower. Changing a motherboard means changing the system, having new drivers, so basically more maintainance work.
This situation might change with darwin, theoretically, nothing prevents some company from producing PPC motherboards, recompile Darwin for it and then build a installer that instals OS X on top of Darwin. Old machines that Apple does not support can run OS X this way.
The editors is not the guy separating good studies from bad ones, this is done by peer review. Doign peer review is a lot of work (if you do it correctly) and is not paid (at least not in CS). Peer review is already in place, the internet only makes thing easier (you get the papers to review as a pdf and fill a form for the review).
The problem is that academics do a lot of work, they write the papers, review them, but get no money, and the rights you keep on your paper is limited. So basically, I write a paper, review others papers, pay my dues to IEEE, don't own my paper anymore and still have to pay for other people's papers, I don't call this bickering.
One thing I would like to see is how this affects battery life. OK, if you overclock the processor, calculations are faster, no surprise. But what is the tradeof between processor speed and battery life? While this is not an issue for a desktop, it is one for a laptop.
EBay is a nice choice for this: it is a symbol of the DotCom hysteria, and there are already a lot of stories about it (people selling their child's names, organs, nazi ensigns).
Now you idea is much more logical, but emotionnaly unnaceptable. Having the FBI raid eBay is one thing (nobody works there anyway) but suspecting people who show pictures of their cats, that would be truly evil (everybody knows somebody who likes cats).
This is not about logic, but about finding somebody to blame. It's much easier to suspect and to blame people you don't know... Why do you think comes the idea that Bin Laden had to use the internet?
Actually there is a freeware/shareware program called Graphic Converter that does the job for a reasonable price.
As for TeX, I also use it, but I use a nice tool called TexShop that is really nice, free and open source. It uses pdttex to compile and renders the file directly in pdf, so you get all the nice features of Quartz, like anti-aliasing.
Why is this different from commercial compagnies like SUN,HP and IBM that also sell Unix systems?
Aqua is not simply a window manager and widget set you can install on top of a X11 server. It relies on a different drawing sub-system
A simple port would imply rewriting the low-level IOKit functions for BSD/Linux and then recompile the foundations classes, and the Quartz rendering engine and then finally the Aqua layer. While it would not be very difficult, most of the code as been ported to many architectures. I suspect that a lot of work went into optimising Aqua for the PPC processor and the Atlivec unit. Aqua implies a lot of processing, and I would think that a straigtforward port would be very slow.
Then again if Apple did this, they would roughtly have changed kernels, using the Linux/BSD kernel instead of Mach - what would be the point?