I think that his general argument is that X "as it is" can support the existing 2D cards and those platforms without GL.
It would seem to me that he is arguing for new development effort to go towards an architecture that has the ability to support all the new features that will make the X desktop competitive with other graphics systems.
We could wait and nag and complain until Nvidia and ATI etc open source their drivers but that could take a long time - until they (the graphics card makers) consider the drivers obsolete. I wonder how long we'd have to wait if we also insisted that they open sourced their hardware designs?
OpelGL ES will open up a whole new class of devices as it is probably going to be the most widely implemented standard for games on smartphones. If effort is put into libraries to support ES then applications will be easier to port to phones - e.g. Minimo. I think that would be good because it would win more support for open source in general.
GNU is also becoming a small part of the distro. There may be a lot of GNU licensed packages but by megabyte and possibly by number of files I would suggest that GNU's contribution is not enough for "GNU" or "GNU/Linux" to be a fair description.
Most of the GNU tools are just applications and many of them are not strictly critical for the operation of a machine so I don't really see a dividing line that separates them from anything else on the dictribution.
RE: CleanupStacks I admit that they're a very clever solution to the problem. I think that it's just that there are a lot of "disciplines" to learn when using them. i.e. they require strict adherence to certain principles.
Strict conventions are not bad but it does make it hard to get into Symbian programming as a beginner and it made the developers on my team quite annoyed. It gave them an immediate bias in favour of Windows Mobile and they told their superiors that Symbian was a pain and on its way out.
It took us all ages to become somewhat competent so our company was burning cash at that point.
RE: Descriptors These would have been better as CStrings and that would have helped me a lot. I also don't like the way that they cause panics when an operation doesn't succeed. As it was I had to implement yet another string class that worked everywhere and was bounded but didn't leave.
The Symbian market will always be fragmented and too small to be worth writing software for if software doesn't work on *every* phone.
As far as Java is concerned, it's access to the underlying API is pathetic. It has improved slightly in recent times but is still not of no use to me. Python is another matter, though, as I can write C++ libraries to do what I need and call them from Python and there is already a good library out there.
The CleanupStack has been criticized by Symbian's own developers to me. It is efficient and was, once, more efficient than exceptions. Apparently exception handling has improved with the new ABI and compilers.
It is, however, something that makes programming more complex. This complexity slows development, and increases the chance that mistakes will be made.
I am responsible for some C++ components that build on Symbian, Solaris and Linux as well as some purely Symbian bits. Symbian has rich functionality in areas such as communications (obviously) and multimedia.
There are many wonderful ideas in it, such as the way it is based on a microkernel, the asynchronous IO mechanism (Active Objects) and ECOM which is rather like COM on windows. The fact that everything is in C++ is a boon too.
It is quite a mature system because it's simply the evolution of EPOC32 from the Psion series of PDAs. The Size and depth of the APIs is amazing.
There are some huge problems: 1) The base operating system is standard across phones but there are "environments" which consist of a GUI and various essential libraries (Series 60 or UIQ). The handset manufacturer has also, up till version 8, been free not to implement some of the Telephony APIs. It is hard, therefore to run exactly the same software on all phones. The situatio is probably still more standardised than Linux in that sense that it has only 2 GUIs and the multimedia stuff is completely standard.
2) It is built with GCC 2.92 where the support for exceptions was not good. They had to implement their own exception handling and a mechanism called the CleanupStack for freeing dynamically allocated memory in the event of an exception. It is unavoidably complex to use, non portable and the biggest bane to a Symbian C++ developer's existence.
3) The source is only open to those who pay a fortune for it and even then they get the base Symbian OS without the drivers for the phone models they use or the "Series 60" environment. This has hurt my company because we needed to understand certain aspects of the sound drivers - nobody could tell us and we couldn't look at the code ourselves because even though we have the base operating system source we haven't got the "Series 60" source.
4) Java on the phones is so crippled (e.g. not being able to open a file) due to their security fears that it is useful only for games and trivial applications.
Symbian 9 which is coming out with the latest N90 phone from Nokia fixes most things: 1) They have "bitten the bullet" and broken ABI compatibility to use the standard ARM ABI so now one can compile with GCC 3.4 with all it's great improvements. It is not clear whether the infamous CleanupStack and home-made exception mechanism has gone but I am hoping so.
2) As I mentioned, support for various Telephony APIs is now a requirement on the handset manufacturer.
3) Nokia Ported Python to Series 60 and unlike Java it's not crippled w.r.t. access to fundamental APIs.
4) There is a new security model which controls access to sensitive APIs. To get a public key certificate which allows access to the lowest level ones requires a payment which is annoying but at least it is now possible without buying access to the source at a huge cost.
Symbian was designed for much more constrained machines and with an inferior C++ compiler but the underlying design is very modern.
As another poster has said, it has an "ecosystem" across several manufacturers. To compete, Linux would have to be available in a standard version across a lot of handsets too. Destroying this ecosystem would eliminate a lot of development investment by third-party software vendors so I think that Nokia would be unwise to do that overnight.
Here's the view from an insider who wasn't always an insider: stability is good and something that one shouldn't knock without experiencing the alternatives.
Others can feel bitter about the UK in the same way that you mention. I am from Zimbabwe and the help that some people in the UK gave to Mugabe's party in the past could have similar statements made of it.
The past is useful for helping us to understand the present but it cannot be altered by recriminations. If one hand of friendship is offered, I think that it's best to grab hold of it with two hands if the intention is good. Such positive feelings are scarce.
Because "we" are naieve and gullible. Unfortunately it *is* necessary to refute even ridiculously spurious arguments but not everyone understands that names need not be mentioned while doing so.
As soon as someon mentions "Ratdinkle's" name or the name of the publication that carried his article, he has achieved what he se out to do by being irritating.
Every time you mention a company's name you are giving it free advertising. It seems that for commercial entities it is better to be well known than well liked.
So why shouldn't people deny that freebie by refusing to use the exact name?
I started using gotos but had so many negative comments from my colleagues (some of whom just believe "goto is bad" without understanding it) that I had to come up with some way to make it look nice.
Otherwise I agree - the header file introduces a dependency across every file in your project so that any changes to it require a rebuild of your entire product. That doesn't happen often, fortunately.
I started using this sort of "local-exception" when I was writing code using the asynchronous LDAP API. The functions had to be a bit longer than I usualy like and there were so many ways that the operations could fail that using nested-if led to very deep indentation. It made the code a bit confusing.
#define SAFE_FREE(mem) if (mem) { free(mem); mem=NULL; } #define SAFE_DELETE(mem) if (mem) { delete mem; mem=NULL; } #define SAFE_DELETE_ARRAY(mem) if (mem) { delete[] mem; mem=NULL; }
So some cleanup code might look like this:
int aFunction(char *aParameter) { /* The return value is an int and will default to ERRNONE */
DECLARE_RV(int,ERRNONE);
char *buffer1 = NULL;
char *buffer2 = NULL;
if (!aParameter)
{ RETURN(ERRFAIL); }
buffer1 = (char *)malloc(1000);
if (!buffer1)
{ RETURN(ERRFAIL); }
buffer2 = (char *)malloc(1000);
if (!buffer2)
{ RETURN(ERRFAIL); }
/* Do something here */
CLEANUP;
/* only free buffer1 and buffer2 if they actually were allocated. */
SAFE_FREE(buffer1);
SAFE_FREE(buffer2);
CEND; }
So I can safely "return" an error if I fail to allocate buffer2 without worrying about buffer1 because it's handed by the cleanup.
This makes code much clearer and avoids lots of dumb memory leaks that can happen when you make changes to a function. I never mention goto when I show this to people and they are very pleased with it.
I think that it will be ok. The 4.0.0 release looks quite good and the changes that have been made from 3.4, although radical, don't affect the ABI (what makes libraries of C++ classes compatible with each other). The "pain" of this release might well be less than the "pain" from 3.3-3.4 which *did* have small ABI changes.
The problems are more on the side of maintaining packages where some incorrect C++ now causes errors. In my limited experience these packages didn't compile with 3.4 either and the changes required were simple enough.
Never say never - my bank said a lot of stuff like that when I sent it complaints about it's website. After 6 months and 3 completely negative replies, the site "suddenly" supported mozilla.
It may have been that they were using site management software provided by someone else and that mozilla support was the side-effect of an upgrade but there you go - the seemingly impossible happened.
". . . just because you want to do something different . .."
This phrase means that people have a tendency to want to make their solution distinct whether or not it it is better than existing solutions.
"Better" is judged according to the raison d'etre of Linux: usefulness.
Even though you can change the definition of "better" to make the maxim fit Art, it would not fit well. If I, for example, made exact copies of Dolly the sheep then that might be considered "not better" than the existing sheep but it does no significant harm. In a kernel, however, creating a "distinct" mechanim for sending instructions to device drivers (i.e. not IOCTL) would mean that all existing software would require a port - so distinctivness has considerable cost.
There are apparently about 1.5 million Symbian phones being sold a month in the world (Source: Symbian at the O2 developer conference in London in September). Most of these will have Opera on them.
Germany extracted payments from the territories it conquered such as France. It used their indstrial base to help produce it's weapons and it got it's oil from Romania. So, no, it wasn't a small country versus the "rest of the world" by which you mean the Russia, the USA and the British Commonwealth.
Germany certainly did target civilian populations, particularly in Russia.
The Germans of the time were idiots - they bit off more than they could chew and thats all.
Well, perhaps there is a risk of sparking and they decided to keep the circuit breakers outside for that reason.
Fire on the ISS might be a problem although I read that zero-g fires don't tend to burn out of control because (oversimplification) hot air doesn't "rise" there.
No, they have to be safely returned together with the entire space vehicle. See rule 5 below or take a look at the full X-PRIZE Guidelines.
5. The crew must return to the Earth's surface from both flights in good health as reasonably defined and judged by the X PRIZE Review Board. The flight vehicle must return from both flights substantially intact, as defined by and in the sole judgment of the X PRIZE Review Board, such that the vehicle is reusable.
I think that his general argument is that X "as it is" can support the existing 2D cards and those platforms without GL.
It would seem to me that he is arguing for new development effort to go towards an architecture that has the ability to support all the new features that will make the X desktop competitive with other graphics systems.
We could wait and nag and complain until Nvidia and ATI etc open source their drivers but that could take a long time - until they (the graphics card makers) consider the drivers obsolete. I wonder how long we'd have to wait if we also insisted that they open sourced their hardware designs?
OpelGL ES will open up a whole new class of devices as it is probably going to be the most widely implemented standard for games on smartphones. If effort is put into libraries to support ES then applications will be easier to port to phones - e.g. Minimo. I think that would be good because it would win more support for open source in general.
Cheers,
Tim
GNU is also becoming a small part of the distro. There may be a lot of GNU licensed packages but by megabyte and possibly by number of files I would suggest that GNU's contribution is not enough for "GNU" or "GNU/Linux" to be a fair description.
Most of the GNU tools are just applications and many of them are not strictly critical for the operation of a machine so I don't really see a dividing line that separates them from anything else on the dictribution.
RE: CleanupStacks
I admit that they're a very clever solution to the problem. I think that it's just that there are a lot of "disciplines" to learn when using them. i.e. they require strict adherence to certain principles.
Strict conventions are not bad but it does make it hard to get into Symbian programming as a beginner and it made the developers on my team quite annoyed. It gave them an immediate bias in favour of Windows Mobile and they told their superiors that Symbian was a pain and on its way out.
It took us all ages to become somewhat competent so our company was burning cash at that point.
RE: Descriptors
These would have been better as CStrings and that would have helped me a lot. I also don't like the way that they cause panics when an operation doesn't succeed. As it was I had to implement yet another string class that worked everywhere and was bounded but didn't leave.
Thanks for your reply.
Tim
Running on multiple phones *is* our goal! :-)
The Symbian market will always be fragmented and too small to be worth writing software for if software doesn't work on *every* phone.
As far as Java is concerned, it's access to the underlying API is pathetic. It has improved slightly in recent times but is still not of no use to me. Python is another matter, though, as I can write C++ libraries to do what I need and call them from Python and there is already a good library out there.
Regards,
Tim
The CleanupStack has been criticized by Symbian's own developers to me. It is efficient and was, once, more efficient than exceptions. Apparently exception handling has improved with the new ABI and compilers.
It is, however, something that makes programming more complex. This complexity slows development, and increases the chance that mistakes will be made.
Regards,
Tim
I am responsible for some C++ components that build on Symbian, Solaris and Linux as well as some purely Symbian bits. Symbian has rich functionality in areas such as communications (obviously) and multimedia.
There are many wonderful ideas in it, such as the way it is based on a microkernel, the asynchronous IO mechanism (Active Objects) and ECOM which is rather like COM on windows. The fact that everything is in C++ is a boon too.
It is quite a mature system because it's simply the evolution of EPOC32 from the Psion series of PDAs. The Size and depth of the APIs is amazing.
There are some huge problems:
1) The base operating system is standard across phones but there are "environments" which consist of a GUI and various essential libraries (Series 60 or UIQ). The handset manufacturer has also, up till version 8, been free not to implement some of the Telephony APIs. It is hard, therefore to run exactly the same software on all phones. The situatio is probably still more standardised than Linux in that sense that it has only 2 GUIs and the multimedia stuff is completely standard.
2) It is built with GCC 2.92 where the support for exceptions was not good. They had to implement their own exception handling and a mechanism called the CleanupStack for freeing dynamically allocated memory in the event of an exception. It is unavoidably complex to use, non portable and the biggest bane to a Symbian C++ developer's existence.
3) The source is only open to those who pay a fortune for it and even then they get the base Symbian OS without the drivers for the phone models they use or the "Series 60" environment. This has hurt my company because we needed to understand certain aspects of the sound drivers - nobody could tell us and we couldn't look at the code ourselves because even though we have the base operating system source we haven't got the "Series 60" source.
4) Java on the phones is so crippled (e.g. not being able to open a file) due to their security fears that it is useful only for games and trivial applications.
Symbian 9 which is coming out with the latest N90 phone from Nokia fixes most things:
1) They have "bitten the bullet" and broken ABI compatibility to use the standard ARM ABI so now one can compile with GCC 3.4 with all it's great improvements. It is not clear whether the infamous CleanupStack and home-made exception mechanism has gone but I am hoping so.
2) As I mentioned, support for various Telephony APIs is now a requirement on the handset manufacturer.
3) Nokia Ported Python to Series 60 and unlike Java it's not crippled w.r.t. access to fundamental APIs.
4) There is a new security model which controls access to sensitive APIs. To get a public key certificate which allows access to the lowest level ones requires a payment which is annoying but at least it is now possible without buying access to the source at a huge cost.
Symbian was designed for much more constrained machines and with an inferior C++ compiler but the underlying design is very modern.
As another poster has said, it has an "ecosystem" across several manufacturers. To compete, Linux would have to be available in a standard version across a lot of handsets too. Destroying this ecosystem would eliminate a lot of development investment by third-party software vendors so I think that Nokia would be unwise to do that overnight.
Regards,
Tim
Here's the view from an insider who wasn't always an insider: stability is good and something that one shouldn't knock without experiencing the alternatives.
Regards,
Tim
You don't care because it doesn't suit your political outlook to do so and might suit someone elses, in other words.
You draw benefit from your society but don't see the need to offer even words of consideration back.
Regards,
Tim
Others can feel bitter about the UK in the same way that you mention. I am from Zimbabwe and the help that some people in the UK gave to Mugabe's party in the past could have similar statements made of it.
The past is useful for helping us to understand the present but it cannot be altered by recriminations. If one hand of friendship is offered, I think that it's best to grab hold of it with two hands if the intention is good. Such positive feelings are scarce.
Regards,
Tim
Because "we" are naieve and gullible. Unfortunately it *is* necessary to refute even ridiculously spurious arguments but not everyone understands that names need not be mentioned while doing so.
As soon as someon mentions "Ratdinkle's" name or the name of the publication that carried his article, he has achieved what he se out to do by being irritating.
Tim
Like, . . .er . . . bash? Or csh or ash or ksh or . . . .
This is what makes these languages powerful - it's a concept that will never die because it's too useful.
Regards,
Tim
Every time you mention a company's name you are giving it free advertising. It seems that for commercial entities it is better to be well known than well liked.
So why shouldn't people deny that freebie by refusing to use the exact name?
Regards,
Tim
I started using gotos but had so many negative comments from my colleagues (some of whom just believe "goto is bad" without understanding it) that I had to come up with some way to make it look nice.
Otherwise I agree - the header file introduces a dependency across every file in your project so that any changes to it require a rebuild of your entire product. That doesn't happen often, fortunately.
I started using this sort of "local-exception" when I was writing code using the asynchronous LDAP API. The functions had to be a bit longer than I usualy like and there were so many ways that the operations could fail that using nested-if led to very deep indentation. It made the code a bit confusing.
This makes code much clearer and avoids lots of dumb memory leaks that can happen when you make changes to a function. I never mention goto when I show this to people and they are very pleased with it.
I think that it will be ok. The 4.0.0 release looks quite good and the changes that have been made from 3.4, although radical, don't affect the ABI (what makes libraries of C++ classes compatible with each other). The "pain" of this release might well be less than the "pain" from 3.3-3.4 which *did* have small ABI changes.
The problems are more on the side of maintaining packages where some incorrect C++ now causes errors. In my limited experience these packages didn't compile with 3.4 either and the changes required were simple enough.
No but she is British and that's what he said - duh!
Never say never - my bank said a lot of stuff like that when I sent it complaints about it's website. After 6 months and 3 completely negative replies, the site "suddenly" supported mozilla.
It may have been that they were using site management software provided by someone else and that mozilla support was the side-effect of an upgrade but there you go - the seemingly impossible happened.
Cheers,
Tim
Usually this kind of thing is intentional.
". . . just because you want to do something different . . ."
This phrase means that people have a tendency to want to make their solution distinct whether or not it it is better than existing solutions.
"Better" is judged according to the raison d'etre of Linux: usefulness.
Even though you can change the definition of "better" to make the maxim fit Art, it would not fit well. If I, for example, made exact copies of Dolly the sheep then that might be considered "not better" than the existing sheep but it does no significant harm. In a kernel, however, creating a "distinct" mechanim for sending instructions to device drivers (i.e. not IOCTL) would mean that all existing software would require a port - so distinctivness has considerable cost.
There are apparently about 1.5 million Symbian phones being sold a month in the world (Source: Symbian at the O2 developer conference in London in September). Most of these will have Opera on them.
. html for the details about shipments.
It's more than a niche.
Minimo doesn't seem to have been adapted to run on Symbian yet so it's missing out on the huge growth of that platform. See http://www.symbian.com/press-office/2004/pr041111
I spoke to Opera's product manager, Timo Bruns, for the mobile version at the recent Symbian Expo in London.
Germany extracted payments from the territories it conquered such as France. It used their indstrial base to help produce it's weapons and it got it's oil from Romania. So, no, it wasn't a small country versus the "rest of the world" by which you mean the Russia, the USA and the British Commonwealth.
Germany certainly did target civilian populations, particularly in Russia.
The Germans of the time were idiots - they bit off more than they could chew and thats all.
Well, perhaps there is a risk of sparking and they decided to keep the circuit breakers outside for that reason.
Fire on the ISS might be a problem although I read that zero-g fires don't tend to burn out of control because (oversimplification) hot air doesn't "rise" there.
Regards,
Tim
It's not a huge reward and that's good because it means that the people who win it will have to have a business plan for their launcher afterwards.
This is not about breaking a record as much as it is about encouraging people to turn space access into a commercial proposition.
5. The crew must return to the Earth's surface from both flights in good health as reasonably defined and judged by the X PRIZE Review Board. The flight vehicle must return from both flights substantially intact, as defined by and in the sole judgment of the X PRIZE Review Board, such that the vehicle is reusable.