Since this was essentially about Rails getting DB2 support I implicitly addressed Rails/Ruby - sorry for
In the meantime I did some research myself and found the sobering fact that Ruby/Rails essentially does NOT support Unicode in any usable way.
A string of Unicode characters is NOT just a bunch of bytes: take the simple operation of finding the length of a word or reversing it: both string functions return nonsense in Ruby, if there is any character encoded in more than one byte in the string. That Ruby does not know anything about the encoding of its strings is causing lots of other problems, especially in context where one has to work with strings in different encodings (e.g. multilingual applications, applications based on texts derived from web sites). Ruby makes it unnecessarily difficult to do things in those cases.
I have the impression that people tend to highly *underrate* this problem: for many of those applications I have written yet, support for Unicode and encodings like UTF-8 were quite essential.
Regarding your statement about whether UTF-8 is the best way to encode characters I have to say: it depends - on the language and the source of your data. E.g. when your data comes from UTF-8 encoded database fields, it is not very pretty to re-code it into some one-byte encodig just to work around the Ruby shortcoming -- and in some cases this is not even possible.
I really love the design of Ruby, but this is one of the biggest shortcomings in a modern programming language (unfortunately shared by several other more current languages).
As much as I hate Java, at least they made it possible to do these things right from the start.
Does it already properly support Unicode? Not everyone uses just English texts and the best and most common way to use characters of other languages is UTF-8.
I agree with you. I have looked at IBM's websites several times in the past years and they always had that blurb about "IBM recommends Windows..." there. They also did not offer to sell a TP without also forcing the customer to buy Windows.
I wrote two letters to them and in both the confirmed that they do not sell TPs with Linux and I should look at one of their partner sellers who are free to do this (but most of them didn't).
Hmm, OK. Which of those many other vendors does not force me to buy Windows with their hardware, and which sells laptops where at least the main functions work with Linux?
So far, Thinkpads were practically the only brand where most stuff worked out of the box with Linux and where, with some jumping through loops, you could obtain the hardware without being force-fed Windows and force-charged for it.
I really do not see that many alternatives, but if you disagree, let me know (alternatives on the European marked would be an added plus).
The biggest negative about this is that this probably means that another supplier will force everyone to buy Windows with their hardware.
I could live with them not "supporting" Linux or not selling Hardware with Linux pre-installed. But the habit of those "Microsoft partners" force-feeding Windows to their customers is simply disgusting.
I just wonder why so few people find that disgusting too (do they actually enjoy the thought of a market that is close to 100% controlled by a single, world-wide operating company?) and why even fewer voice their opinion and let these people know.
Why do you care about the arts, a clean apartment, love? Well, judging from your question, you probably don't but a lot of people do. Not everything worthwile doing needs to result in amazing products.
Apart from this, mathematical insights, sometimes of the more dry and abstract sort *have* already resulted in amazing products (take public key encryption, the application of insights gained from number theory).
And "Never had a reason to try the modem." too -- never used a R50 but I know that the modem was one of the things that was hard to get to work with other TP models. Also some of the "special function" keys on more recent models.
I still remember that when TP still belonged to IBM they had a "IBM recommends MS Windows" blurb on their pages where they were selling the laptops. And it was damned hard to get these with Linux pre-installed -- impossible to get them directly from IBM, actually.
You make some good points, but I still think that at least some manufacturers would be less reluctant to provide drivers if there was an easier way to include closed source drivers in Linux. The reason is that these people are regarding their hardware interfaces as trade secrets and valuable stuff that they do not want to make public. That you and I probably disagree on that does not matter: their lawyers etc make them all panicking about stuff like this and the end result is that they do not want to provide open source drivers.
So yes, I think better support for closed source drivers and certification of such drivers for the kernel would greatly improve the situation. Not every manufacturer will be ready to invest the development money, but more than now will do it. Sure, that does not guarantee bug-free drivers either, but somebody who has a job implementing such a driver with a hardware interface specification on his desk certainly has a far easier task before him than somebody who has to tediously reverse-engineer as much as he can, with the hardware that is available to him.
The main problem here is that Linux is actually *loosing* critical mass with regard to support of all the hardware components out there, and especially the next generation of multimedia media and devices will critical for Linux.
When I look at the current path of Linux, I am, unfortunately, quite pessimistic as to how this will develop.
I guess in this context, "support" just means that the hardware built into the system is supported, i.e. works - to some degree. And that exactly is the problem: as I pointed out in my OP and as you all probably know, there are WiFi chips that work under Linux and there are those that don't. Some power management stuff works, some doesn't. Sometimes special functions (switching on/off the external display connector) work, sometimes they don't.
The reason for all this is that for most components, there are no drivers by the component manufacturer. Sometimes there are drivers from enthusiasts, but they often do not work for all versions of the hardware or do not support all features or all possible configurations.
So, simply making a laptop work as intended is not a trivial, sometimes and impossible task with Linux.
How then, should a company like Lenovo guarantee that everything works, i.e. "support" it in this sense of the word?
The problem is Linux, not Lenovo
on
Lenovo To Shun Linux
·
· Score: 3, Informative
I do not see how Lenovo, or any computer seller could possibly support Linux the way it is done with Windows: these companies do not manufacture all of the computers themselves. They assemble components from other hardware vendors. The problem is - there is no stable, working way how these hardware components are supported. Hardware vendors do not provide opensource drivers and Linux does not want closed-source drivers. If 3rd parties provide opensource drivers they often are buggy and lag behind current hardware.
But in order for a computer seller to "support" Linux, these things should just work at least to some acceptable degree. Which is not the case really.
Do you know of any other laptop where *all* hardware components work under Linux as they are supposed to?
As long as Linux will continue its "opensource only" policy for drivers, this situation will continue. Simply because Linux does not have the market power to enforce anything (as MS does have). It is quite easy for harware manufacturers to simply ignore Linux. Developing good drivers for Linux would cost more money than they would gain by additional sells.
As somebody who uses Linux 100% of the time, I am not happy about this, but unfortunately, these are the sad facts. Given the current move of Linux advocates against closed source drivers and DRM the situation will get worse in the future. I do not see how it will be possible to play HD/BR-DVDs on a Linux machine or how to handle encrypted HDTV signals.
Unless there is a drastic change of who Linux is getting developed the gap between Linux and Windows will widen -- no matter how crappy, buggy, or insecure Vista will turn out to be (probably not that much, given the effort that was invested in it).
Fusion is probably the #1 overrated research area. They started to promise that it would work "in the next 5 years" sometime in the 40ies. Since then, the reasons why it probably won't work in the next 100 years or longer pile up. Containing the plasma is just one of many problems that are all nearly equally difficult to solve. Thing is that the scientists who are depending on billion dollar investments prefer to spread the news about tiny things being solved and keeps silent about the giant issues still unsolved.
What kind of course for what students? If you teach computer sciene students and the emphasis is on the concepts of the languages, do not use IDE. Using the IDE needs learning too, will take away time from what you really want to teach and is useless because most programming projects will be very small. Let them use whatever editor they like, on whatever OS they like.
If on the other hand you teach a course on actual programming for future commercial programmers, use not one, but several IDEs and let them program actual projects where modularization, source code-dependencies and version control are issues too. However, that will still need a lot of additional time so it would be better to have seperate courses for the introductory stuff (no IDE) and advanced stuff (IDEs and more realistic projects).
Unfortunately, Rails is limited by a couple of limitations that are really Ruby's limitations: most importantly the total Lack of Unicode support. I like most of the design of the Ruby language, but to not support Unicode in 2006 makes it essentially unusable for most projects where I would need it, including practically all Rails applications. Ruby is also not particularily fast, in some respects quite slow which also impacts Rails.
With the.xxx TLD available, if even a minority of the plethora of porn sites take down their.com sites and register on.xxx, there's that much less chance of someone who doesn't want to see that accidentally stumbling across it, especially if.xxx TLD blocking was in place
I just do not see why any porn site would want to do that unless all are forced to do it (which would bring us back to field 1: who should be forced). The fewer sites there are under XXX, the less the motivation to go there and just there.
I also do not see how having a minority of porn sites go there and the rest stay in.com could help "protect the children" (whatever that should mean and however you imagine it working) even just a tiny bit.
In many discussions it seems that this is getting turned into a "conservatives vs. liberals" discussion or similar. I do not really see why.
It seems there are both good sides and bad sides to having a XXX domain, but many of them do not have to do anything with the question of whether one hates or not pornographic web sites.
My main reason for not finding the.xxx tld domain a good idea after all is that I cannot see how one would ever be able to come up with rules about what should or should not belong there, in a world with such diverse opinions about what is sexual/inappropriate/pronographic/etc and in a world with such diverse laws about pornography.
So remind me: what *good* was this TLD supposed to be again?
Another site that does not provide download links for the video files and assumes that everyone has the necessary plugin. No- there are people who cannot have the plugin (because of their OS) or do not want to install it and prefer to use seperate viewer programs to view videos. Therefore, there should be a download link for each video file.
Sad to see that even this site does not follow that simple rule. Needless to say that there is no contact address on the site to reach those responsible for the blunder.
Thank you for the link -- I knew this before and it kind of proves my point: it shows how lacking Rails is with regard to many-to-many relationshipt support (the has_and_belongs_to_many declaration is not really do anything useful). No reasonable scaffolding is done and what you need to do you have to implement yourself.
If you compare this with what e.g. MSAccess (and to a certain extend even OpenOffice) can do out of the box with a few keystrokes, the support for this in Rails can easily be called non-existent.
What I missed in rails most is proper support -- and that includes decent scaffold generation support -- for what is the most frequent case in nearly every non-trivial database application: many-to-many relationships. Thsi means showing an antry from tableA and in the same screen a scrollable/pageable list of entries from tableB which are connected through a join table with options for inserting or deleting tableB entries from/into the join table (and tableB, if necessary). From the release notes it seems that nothing has been done to make rails support this better. So, essentially, you have to do everything yourself again and you probably have to work around the problems regarding the id column in the join table.
I really do not see any reason why to even bother with ebooks. I do not see any advantage for me whatsover. On the other hand there are many many disadvantages with nearly all solutions so far.
We do not have any restrictions, let alone ones that are automatically enforced. Instead we work with people who are reasonable and responsible. If there seems to be a problem we discuss it. People understand and act accordingly. Did you talk to these people and find out *why* they need to use that much space? Or *why* they cannot archive/delete things after you alerted them to the problem?
I know you shortly said that is "not possible" but I am not convinced about the reasons you gave for this. If you want a program that cannot segfault choose one that prevents segfaults at compile time. Such languages exist, e.g. take a look at OCaml. Also, if your project is modular, identify the parts where stability is absolutely essential. Maybe you can use different solutions for different parts.
C++ is such a terrible language that there is simply no way to get anywhere close to what you want without extremely high cost (both time and money).
Use a strongly typed language with built in memory management to solve your problem. In my experience OCaml gives you all that. Once you have learned the language and the concepts implemeted in it, C++ will appear to you anachronistic and ridiculously messed up. Ocaml does provide a nice set of librabries, but you can also use C/C++ libraries via its native language interface (though this introduces risks and of course, the libraries might still crash).
In any case, reconsider the language choice -- it is really quite essential especially with regard to segfaults and similar issues.
Anyone else find it strange that "IBM billed Aventis for its investigators' time at $50 an hour, for a total cost of $20,350" which means they needed nearly 51 person-days of 8 hours to do their job? Just *how* incapable are they? I am not saying that what this guy did is excusable, but the cost presented here as "damage" is indeed ridiculous. Especially as the damage cost should only include what it needs to restore the account -- I do not assume they IBM needed 50 days to do just that?
Both language deserve attention solely because an army of badly educated programmers use them or because programmers are forced to use them based on curcumstances like vendor lock it.
But when it comes to how these languages are designed and what properties they have, both are very dated and both have a lot of flaws. If you want to learn a well-designed language that will teach you what is possible, when you want to grasp how different and easy programming can be if the language actually supports you with avoiding runtime errors and giving you the ability to use modern programming concepts, then look at OCAML.
C## and Java will both teach you how to hassle with badly designed object-orientedness, a worsly designed type system and other limitations of all kinds. If you want to do real projects, circumstances will probably force you to be knowledgable about exactly that and like so many other programmers, you will not even know what *would* be possible.
Since this was essentially about Rails getting DB2 support I implicitly addressed Rails/Ruby - sorry for
In the meantime I did some research myself and found the sobering fact that Ruby/Rails essentially does NOT support Unicode in any usable way.
A string of Unicode characters is NOT just a bunch of bytes: take the simple operation of finding the length of a word or reversing it: both string functions return nonsense in Ruby, if there is any character encoded in more than one byte in the string.
That Ruby does not know anything about the encoding of its strings is causing lots of other problems, especially in context where one has to work with strings in different encodings (e.g. multilingual applications, applications based on texts derived from web sites).
Ruby makes it unnecessarily difficult to do things in those cases.
I have the impression that people tend to highly *underrate* this problem: for many of those applications I have written yet, support for Unicode and encodings like UTF-8 were quite essential.
Regarding your statement about whether UTF-8 is the best way to encode characters I have to say: it depends - on the language and the source of your data. E.g. when your data comes from UTF-8 encoded database fields, it is not very pretty to re-code it into some one-byte encodig just to work around the Ruby shortcoming -- and in some cases this is not even possible.
I really love the design of Ruby, but this is one of the biggest shortcomings in a modern programming language (unfortunately shared by several other more current languages).
As much as I hate Java, at least they made it possible to do these things right from the start.
Does it already properly support Unicode? Not everyone uses just English texts and the best and most common way to use characters of other languages is UTF-8.
I agree with you. I have looked at IBM's websites several times in the past years and they always had that blurb about "IBM recommends Windows..." there. They also did not offer to sell a TP without also forcing the customer to buy Windows.
I wrote two letters to them and in both the confirmed that they do not sell TPs with Linux and I should look at one of their partner sellers who are free to do this (but most of them didn't).
I am not aware of any brand that doesn't force-sell Windows and actually works with Linux and satisfies minimum quality standards.
So, your suggestions would really be most welcome here.
Hmm, OK. Which of those many other vendors does not force me to buy Windows with their hardware, and which sells laptops where at least the main functions work with Linux?
So far, Thinkpads were practically the only brand where most stuff worked out of the box with Linux and where, with some jumping through loops, you could obtain the hardware without being force-fed Windows and force-charged for it.
I really do not see that many alternatives, but if you disagree, let me know (alternatives on the European marked would be an added plus).
The biggest negative about this is that this probably means that another supplier will force everyone to buy Windows with their hardware.
I could live with them not "supporting" Linux or not selling Hardware with Linux pre-installed. But the habit of those "Microsoft partners" force-feeding Windows to their customers is simply disgusting.
I just wonder why so few people find that disgusting too (do they actually enjoy the thought of a market that is close to 100% controlled by a single, world-wide operating company?) and why even fewer voice their opinion and let these people know.
Why do you care about the arts, a clean apartment, love? Well, judging from your question, you probably don't but a lot of people do.
Not everything worthwile doing needs to result in amazing products.
Apart from this, mathematical insights, sometimes of the more dry and abstract sort *have* already resulted in amazing products (take public key encryption, the application of insights gained from number theory).
OK, naming a Thinkpad here is a bit cheating :)
And "Never had a reason to try the modem." too -- never used a R50 but I know that the modem was one of the things that was hard to get to work with other TP models. Also some of the "special function" keys on more recent models.
I still remember that when TP still belonged to IBM they had a "IBM recommends MS Windows" blurb on their pages where they were selling the laptops. And it was damned hard to get these with Linux pre-installed -- impossible to get them directly from IBM, actually.
You make some good points, but I still think that at least some manufacturers would be less reluctant to provide drivers if there was an easier way to include closed source drivers in Linux. The reason is that these people are regarding their hardware interfaces as trade secrets and valuable stuff that they do not want to make public. That you and I probably disagree on that does not matter: their lawyers etc make them all panicking about stuff like this and the end result is that they do not want to provide open source drivers.
So yes, I think better support for closed source drivers and certification of such drivers for the kernel would greatly improve the situation. Not every manufacturer will be ready to invest the development money, but more than now will do it.
Sure, that does not guarantee bug-free drivers either, but somebody who has a job implementing such a driver with a hardware interface specification on his desk certainly has a far easier task before him than somebody who has to tediously reverse-engineer as much as he can, with the hardware that is available to him.
The main problem here is that Linux is actually *loosing* critical mass with regard to support of all the hardware components out there, and especially the next generation of multimedia media and devices will critical for Linux.
When I look at the current path of Linux, I am, unfortunately, quite pessimistic as to how this will develop.
I guess in this context, "support" just means that the hardware built into the system is supported, i.e. works - to some degree.
And that exactly is the problem: as I pointed out in my OP and as you all probably know, there are WiFi chips that work under Linux and there are those that don't. Some power management stuff works, some doesn't. Sometimes special functions (switching on/off the external display connector) work, sometimes they don't.
The reason for all this is that for most components, there are no drivers by the component manufacturer. Sometimes there are drivers from enthusiasts, but they often do not work for all versions of the hardware or do not support all features or all possible configurations.
So, simply making a laptop work as intended is not a trivial, sometimes and impossible task with Linux.
How then, should a company like Lenovo guarantee that everything works, i.e. "support" it in this sense of the word?
I do not see how Lenovo, or any computer seller could possibly support Linux the way it is done with Windows: these companies do not manufacture all of the computers themselves. They assemble components from other hardware vendors. The problem is - there is no stable, working way how these hardware components are supported. Hardware vendors do not provide opensource drivers and Linux does not want closed-source drivers. If 3rd parties provide opensource drivers they often are buggy and lag behind current hardware.
But in order for a computer seller to "support" Linux, these things should just work at least to some acceptable degree. Which is not the case really.
Do you know of any other laptop where *all* hardware components work under Linux as they are supposed to?
As long as Linux will continue its "opensource only" policy for drivers, this situation will continue. Simply because Linux does not have the market power to enforce anything (as MS does have). It is quite easy for harware manufacturers to simply ignore Linux. Developing good drivers for Linux would cost more money than they would gain by additional sells.
As somebody who uses Linux 100% of the time, I am not happy about this, but unfortunately, these are the sad facts. Given the current move of Linux advocates against closed source drivers and DRM the situation will get worse in the future. I do not see how it will be possible to play HD/BR-DVDs on a Linux machine or how to handle encrypted HDTV signals.
Unless there is a drastic change of who Linux is getting developed the gap between Linux and Windows will widen -- no matter how crappy, buggy, or insecure Vista will turn out to be (probably not that much, given the effort that was invested in it).
Fusion is probably the #1 overrated research area. They started to promise that it would work "in the next 5 years" sometime in the 40ies. Since then, the reasons why it probably won't work in the next 100 years or longer pile up. Containing the plasma is just one of many problems that are all nearly equally difficult to solve. Thing is that the scientists who are depending on billion dollar investments prefer to spread the news about tiny things being solved and keeps silent about the giant issues still unsolved.
What kind of course for what students? If you teach computer sciene students and the emphasis is on the concepts of the languages, do not use IDE. Using the IDE needs learning too, will take away time from what you really want to teach and is useless because most programming projects will be very small. Let them use whatever editor they like, on whatever OS they like.
If on the other hand you teach a course on actual programming for future commercial programmers, use not one, but several IDEs and let them program actual projects where modularization, source code-dependencies and version control are issues too. However, that will still need a lot of additional time so it would be better to have seperate courses for the introductory stuff (no IDE) and advanced stuff (IDEs and more realistic projects).
Unfortunately, Rails is limited by a couple of limitations that are really Ruby's limitations: most importantly the total Lack of Unicode support. I like most of the design of the Ruby language, but to not support Unicode in 2006 makes it essentially unusable for most projects where I would need it, including practically all Rails applications. Ruby is also not particularily fast, in some respects quite slow which also impacts Rails.
With the .xxx TLD available, if even a minority of the plethora of porn sites take down their .com sites and register on .xxx, there's that much less chance of someone who doesn't want to see that accidentally stumbling across it, especially if .xxx TLD blocking was in place
.com could help "protect the children" (whatever that should mean and however you imagine it working) even just a tiny bit.
I just do not see why any porn site would want to do that unless all are forced to do it (which would bring us back to field 1: who should be forced). The fewer sites there are under XXX, the less the motivation to go there and just there.
I also do not see how having a minority of porn sites go there and the rest stay in
To sum up: http://ars.userfriendly.org/cartoons/?id=20050821
In many discussions it seems that this is getting turned into a "conservatives vs. liberals" discussion or similar. I do not really see why.
.xxx tld domain a good idea after all is that I cannot see how one would ever be able to come up with rules about what should or should not belong there, in a world with such diverse opinions about what is sexual/inappropriate/pronographic/etc and in a world with such diverse laws about pornography.
It seems there are both good sides and bad sides to having a XXX domain, but many of them do not have to do anything with the question of whether one hates or not pornographic web sites.
My main reason for not finding the
So remind me: what *good* was this TLD supposed to be again?
Another site that does not provide download links for the video files and assumes that everyone has the necessary plugin. No- there are people who cannot have the plugin (because of their OS) or do not want to install it and prefer to use seperate viewer programs to view videos. Therefore, there should be a download link for each video file.
Sad to see that even this site does not follow that simple rule. Needless to say that there is no contact address on the site to reach those responsible for the blunder.
In a word: they suck.
Thank you for the link -- I knew this before and it kind of proves my point: it shows how lacking Rails is with regard to many-to-many relationshipt support (the has_and_belongs_to_many declaration is not really do anything useful). No reasonable scaffolding is done and what you need to do you have to implement yourself.
If you compare this with what e.g. MSAccess (and to a certain extend even OpenOffice) can do out of the box with a few keystrokes, the support for this in Rails can easily be called non-existent.
What I missed in rails most is proper support -- and that includes decent scaffold generation support -- for what is the most frequent case in nearly every non-trivial database application: many-to-many relationships. Thsi means showing an antry from tableA and in the same screen a scrollable/pageable list of entries from tableB which are connected through a join table with options for inserting or deleting tableB entries from/into the join table (and tableB, if necessary). From the release notes it seems that nothing has been done to make rails support this better. So, essentially, you have to do everything yourself again and you probably have to work around the problems regarding the id column in the join table.
I really do not see any reason why to even bother with ebooks. I do not see any advantage for me whatsover. On the other hand there are many many disadvantages with nearly all solutions so far.
So let me ask back: why even bother?
We do not have any restrictions, let alone ones that are automatically enforced. Instead we work with people who are reasonable and responsible. If there seems to be a problem we discuss it. People understand and act accordingly. Did you talk to these people and find out *why* they need to use that much space? Or *why* they cannot archive/delete things after you alerted them to the problem?
C++ is such a terrible language that there is simply no way to get anywhere close to what you want without extremely high cost (both time and money).
Use a strongly typed language with built in memory management to solve your problem. In my experience OCaml gives you all that. Once you have learned the language and the concepts implemeted in it, C++ will appear to you anachronistic and ridiculously messed up. Ocaml does provide a nice set of librabries, but you can also use C/C++ libraries via its native language interface (though this introduces risks and of course, the libraries might still crash).
In any case, reconsider the language choice -- it is really quite essential especially with regard to segfaults and similar issues.
.. no country can have *that* many total idiots.
Anyone else find it strange that "IBM billed Aventis for its investigators' time at $50 an hour, for a total cost of $20,350" which means they needed nearly 51 person-days of 8 hours to do their job? Just *how* incapable are they? I am not saying that what this guy did is excusable, but the cost presented here as "damage" is indeed ridiculous. Especially as the damage cost should only include what it needs to restore the account -- I do not assume they IBM needed 50 days to do just that?
Both language deserve attention solely because an army of badly educated programmers use them or because programmers are forced to use them based on curcumstances like vendor lock it.
But when it comes to how these languages are designed and what properties they have, both are very dated and both have a lot of flaws. If you want to learn a well-designed language that will teach you what is possible, when you want to grasp how different and easy programming can be if the language actually supports you with avoiding runtime errors and giving you the ability to use modern programming concepts, then look at OCAML.
C## and Java will both teach you how to hassle with badly designed object-orientedness, a worsly designed type system and other limitations of all kinds. If you want to do real projects, circumstances will probably force you to be knowledgable about exactly that and like so many other programmers, you will not even know what *would* be possible.