While I am impressed by your talent in making a concise statement of opinion, an intelligent person would expect a reasoned explanation or argument about why you came to and hold this opinion, otherise, one might just as well assume is is you that is stupid and that you have no reason, and can thus be ignored.
IMHO the reason why NetBSD is failing is the whole BSD vs GPL debate. BSD guys, don't bother flaming because it doesn't matter.
There is no absolute freedom, that is called anarchy. There must be rules in place to protect freedom for everyone. In creating rules, one has to accept reasonable limits of specific freedoms to balance and maintain everyones freedom. The GPL limits your specific freedom, this is true, while it protects your overall freedom in limiting what others can do with your handy work.
As is evident in the BSD line of systems, BIG corporations are taking your code, making good money, and giving back close to nothing. OpenBSD is dying even though they maintain ssh. NetBSD is dying even though it used to be very popular with the enbedded crowd. FreeBSD will die even though Apple used it as a base.
Linux survives because these entities can't take and forget to give back. Linux is free for all to use both as in beer and freedom. Some distributions may not be, and IMHO this is wrong, but exampled by CentOS, those still have enforced freedom. Your freedom to access GPL code modified by RedHat is protected by the GPL. Make no mistake, if Redhat were BSD, there would be no CentOS.
So every time a *BSD project dies, it is one more nail in the coffin of the BSD side of the GPL/BSD debate.
The computer is a lot more responsive without virtual memory, and I get no thrashing, ever!
Oh, please. How do you quantify "more responsive?"
Sorry to say this, but the witch-doctory of computer maintenance is not engineering, it isn't science, it isn't even common sense
If you get "thrashing" in your system it is because you don't have enough RAM for the applications you are using. At this stage, the application has one of two options, use user space files to reduce the "in RAM" data size or quit with an out of memory error. Most all applications, in this scenario, perform better when the OS provides virtual memory. (Obviously not all because the default swap algorithm can be a worst case, but I digress.)
The Macintosh's early virtual memory (pre-OS/X) and old OS/2 1.x virtual memory systems really created a lot of lore about the woes of virtual memory. The reality is that the modern VMMs as implemented in the Pentiums and later are very good, and the OS support for them are excellent, and a system is almost always better off with VM than without.
In an honest discussion it is hard to speak with absolutes, so no one can say any one way is any better than any other way 100% of the time, unless it is an obvious choice like drink poison or drink pure distilled sterilized and safe water in moderate amounts when you are thursty and have balanced electrolytes.
That being said, unless you have a specific and quantifiable case where virtual memory hurts performance dramatically, use virtual memory, you will be better off.
The system *always* user virtual memory, and any tricks you try to play keep the system from using VM probably just hurt you.
It has been a while since I've done any low level VMM work, but a good sized swap area allows more options on the choice of RAM to swap algoritms. Typically speaking, the system wants, AT LEAST, 1:1 RAM for swap, and more is better.
Besides I hear a lot of people talking about applictions "swapping out." Applications do not "swap out" that is an old Mac-ism. In fact, virtual memory is seldom, if ever, keyed by application. On most systems VM is done on 4K page boundaries irrespective of applications, and on i386 systems, on the 32 bit linear memory space below the applications virtual machines. On Pentium II and higher, it can even be done on 4M page boundaries (but I'm not aware if either Linux, Mac, or Windows uses this feature.)
Also, virtual memory is VERY fast when compared to application file access. If you have an 8m pix digital camera, your jpegs may be 3 or 4 meg, but the "in memory" version of that picture is 24 to 32 meg. Strategies to chunk up images because there isn't enough memory to load them is almost always slower than virtual memory.
In short, these days, a few gigs of disk space is a $1.00, use it, your system *will* be faster.
Star Trek is history man, we need to preserve what it really is. The cheesy....special....effects, and Shatners....drama..tic..pauses are a period piece of immense importance for history.
Seriously, I'm not kidding.
The writers in Star Trek were the best and the brightest of the time period. Many of them worked on classics like Twilight Zone and Outer Limits.
One of my favorite trivia facts is the "Jeffies Tube." When ST had funding issues, a set designer named Jeffies design a tiny set for Scotty in the form of a tube. The innovation forced by limitations is increadible. Eliminate the inventive solutions in a limited environment, and you erase the record of their genius.
One of the most important aspect of Star Trek was the treatment of computers before anyone had computers. It is facinating, and I learn something new about computer UI concepts everytime I see an episode.
Illegally obtaining files that are copyrighted is a crime NOT just in the USA. It's a crime everywhere.Everyone knows that. Do you?
I know the law quite well, and I have had to advise many engineers on the subject. My comment was not about performing an illegal act with intent, I am speaking about mere accusation and the damage that causes in this country. RIAA identifies you as a "file sharer," via bit torrent.
Make no mistake, jail is the least of your worries. Just being accused by RIAA or MPIAA is enough to bankrupt you and make sure your children don't go to collage.
The "If you aren't doing anything wrong, you don't have anything to worray about" mind set is foolish. We *ALL* have something to worry about, and being anonymous is vital to maintain a free state. Which, IMHO, the U.S.A. is no longer.
Sorry. I've been using Linux for over a decade now, and I've gain a bit of frustration and disillusionment about it.
I will always use Linux or some variant. I have long learned that an open system that needs a little tinkering is far better than a closed system that does everyting "out of the box." For one reason, it is only "out of the box" once, but the day in and day out problems are for as long as you have it.
I don't think we need to compromise, because the things that we would be compromising do no one any good. DRM in any form is against the consumer. We, in the Linux camp, should never sell out. It is better to fail remaining true, than to succeed and sell out.
It all comes down to getting the message out. We need people to understand *why* they need to boycott iTunes, not compromise and let iTunes steal your legal rights.
Re:Friend don't let friends use MySQL
on
Pro MySQL
·
· Score: 1
That sounds like a job for an XML file that you append entries onto.
That one quote typifies, IMHO, the problem with the web and why MySQL is so popular. A database, specifically a SQL database, is not only about storing data. It is about accessing and analying data.
Many things, like concurrency for one, are handled at the database level that are not handled uniformly or particularly well at the OS level.
A database is a wise choice for even the smallest guest book. When the database is free, why choose a toy (MySQL) when others are available for free (PostreSQL for one, but there are others.) Using and knowing how to use a real database provides so much benefit to even the most casual web site.
Re:Friend don't let friends use MySQL
on
Pro MySQL
·
· Score: 3, Insightful
Do you prefer Oracle or DB2 for your guestbook or forum?;)
What is the point of using MySQL? If cost is an issue, PostgreSQL is free. IMHO PostgreSQL is, by far, easier to use than is MySQL. PostgreSQL scales better and by providing extensive SQL support, allows for more efficient and faster queries than MySQL ever could.
If you need a banking quality database, then use Oracle or D2
If you have two or more servers, use PostgreSQL
If you have one server, use SQLite or PostgreSQL
MySQL is just a mediocre database generally and poor example of a SQL database specifically. The Free Software movement is about building the best software. MySQL is not even close.
Friend don't let friends use MySQL
on
Pro MySQL
·
· Score: 4, Insightful
I'm so tired of hearing about MySQL. Every last improvement they make for it, is completely pointess as more advanced, and free, databases are so far ahead.
If all you want to do is "select * from mytable where col='foo'" you are wasting your time.
My bigest beef with MySQL isn't its limitations, but the people who learn these limitations and never realize a relational database and query language is SO POWERFUL.
So, they get an order of magnitude more data than needed from MySQL, process it in some scripting language, take the reduced data set, make another query to get what they wanted. In a *real* database, you'ld just construct the query correctly.
Every time I see a MySQL cconnection error on a web site, and you see them every day, I just think the designer is a moron.
Physically, it is impossible to "create" energy, however, I am always interested in the conversion of energy.
In the back of my mind, I suspect that magnetic force has a lot more energy than we give it credit for. It has been pondered since the alchemists, and it is like that puzzle, you know the solution is there, but you just can't see it.
That's certainly not a helpful attitude. The question is, why do people choose to use "shitty proprietary crap" instead of what you'd like them to use? The answer is, because it does what they want it to with a minimum of hassle. The complaints of "Fuck 'em, we don't need users like that" and "MS is a monopoly, they control the PC world" are cause-and-effect.
Why do people run shitty crap? FUD, mostly. Lack of marketing, certainly. OpenOffice.org has flaws anyone who says otherwise is ignorant or lying. The question is, are OpenOffice.org's flaws worse than the monopoly office offering. IMHO, no. I prefer OpenOffice to MS Office, why, it works, works well, and is not as bad as MS Office.
Why don't other people use OpenOffice? Maybe because Microsoft made their document formats indecipherable on purpose? Everyone to whome I've given a copy of OpenOffice.org love it, but many go back to MS Office because of incompatibility to subtle features in MS Office. If the MS Office document format were a published, there would be no MS Office. The name of that game is vendor lock!
Windows sucks, Mac and Linux just don't suck as much./p?
I have to be honest, I think ESR is just a self promoting right wing nutjob. I discount everything he writes or says as suspect, but that's just me.
If a company wants to sell software for Linux, hey that's cool. If a company wants to GPL their software, hey that's cool.
I am pissed off at the Linux distributions like RedHat, SuSE, and others who jail teir distributions with copyright and proprietary software. Linux belongs to the community, and while the likes of RedHat and Novell do add important value to the Linux community, I think it is wrong that they don't isolate the GPL portions of their distribution amd make it available, and no, the community versions don't count.
I have personally contributed bits and pieces to various GPL and BSD projects and am not able to gain access to distributions that use my contributions.
What gets run on Linux, is not our concern. The more the better. There will always be viable alternatives in the GPL world. The availability of Linux, unencombered by non-gpl stuff is vital. This isn't a religious war, it a pragmatic and tactical offsensive to protect the rights of users and developers.
You can choose to view floating point numbers as approximations in your application but many people also use them for exact computations.
Sorry, but you clearly have no idea of what you are talking about. A floating point number can not 100% accurately represent every number within its range. Given any specific number, one can predict the exact representation, sure. When a series of calculation are performed one can not be sure of th outcome, exactly. For instance, if you have an array of numbers with a wide range of values, you will want to add in the order of smaller to larger. If you do it larger to smaller, you may get a different result. That is *NOT* exact by any definition.
Floating point is an inexact math system, it is design for speed, not accuracy.
You start with an insult, ad hominem, you lose one point.
Yes the pithy comment was somewhat simplistic, but it wasn't any sort of logical cop out either. The number speak for themselves. There is a conventional wisdom that it is valuable, but "conventional wisdom" is often counter to facts.
It is like the argument of buying a house vs a renting an apartment. It is not a given that one is better than the other. If you can find an apartment in which you are happy living at a substantally lower rent than you would pay for a mortgage, if you had financial self control, you could easily save more than you would be building in equity minus what you pay in interest.
If a university education is not required for your career, and in software it is not, then you have to measure the cost/benefit of the education. A CS degree fails the cost benefit test, especially since it does not actually prepare you properly for your field. You STILL need experiece. Since the knowledge one obtains from the school is readily available freely at the library or internet, and is more up to date, then the school add no value for a dedicated person. The time you spend at the school actually takes experience time away from your career.
Like I said in another thread, get an MBA with some basic programming. Learn the rest yourself. You will do far better than a McCS grad.
I have actually read about a lot of the problems you are talking about. The problem is that universities, like hospitals, media news, and so many other organizations, are serving two masters, what they wish to accomplish and profits. All too often the short sighted focus on profits erode the value of the objective (which has a slow growth inherent value).
Thus we see, in universities, news agencies, hospitals, etc. a steady degradation in the mission of the organization in return for quick profits for the directors and shareholders. Like locusts, when the last drop of value of the organization is gone, and it is effectively dead, they will move on to the next organization. Often selling it to a much larger organization that wants to turn it into a pointless equivilent of a McDonalds.
Harvard is almost useless as a university because of "grade inflation" (for the above reasons), MIT and its grads have seen better days. So many institutions of great reputation are little more than shells of their former selves.
You're half right. An engineer isn't a degree. A degree's not a worthless piece of paper, though, and, although you might not get much value from a college education (good grief. Were your friends students at a community college?) from one, they're still very useful. At the very least, there are better schools out there.
OK, I can't contain myself. OK, take the cost of the education, specifically CS or programming, and the cost of the loan, and the time spent in the university vs working getting real experience, and you'll see that going to the university is less cost effective.
So, you're right, it isn't worthless, it is less than worthless.
My advice to *anyone* wishing to get into computer software development is to teach yourself how to program and focus on MBA studies, because business skills are now vital in the industry.
Oh, by the way, the school's were Northeastern University, UMass Amherst, and Bridewater state. The school that had the worst professors was Northeastern.
It sounds like you have spent an inordinate amount of time justifying to yourself why you didn't get your degree.
It isn't a justification so much as it is a disgust with computer science trends. I don't know a single person in my age/experience range that thinks CS grads are qualified or up to the task of doing anything more than "business logic" crap. The CS grads today do not understand computers or computing. They do not understand how the machines really work. Thus, if you want to hire someone to write a device driver, graphics routines, high speed math, or any non-trivial application, you can't look for a young guy. What's even worse, is that the CS guys are told that the actual computer is unimportant and are poisoned by the nonsensical Djykstra quote they are fond of spouting.
There are "real" issues with "real" computers, and this math article is just one example. "real" computers can't do anything but simple arithmatic (add/sub[mul,[div]]). FPU's implement more but as numeric approximations that are generally "close enough," but are too often confused for accurate math.
Implementing real word concepts on computers efficiently is a real science. Implementing real world concepts on a theoretical computer is nonsense.
Many people seem to think of floats as a kind of number that gives fuzzy results; that's b.s. Floating point numbers operate according to precise models. Those models may not fit your calcuations or needs, and one can argue that IEEE has standardized a Rube Goldberg-style floating point model, but none of that makes them inaccurate.
You see, this is the problem with computer science today. I am reminded of a story told by CBS' Andy Rooney, he is in some breakfast joint and orders the "fresh squeezed orange juice." When it arrives, Andy tastes it and says to the waiter, "This is not fresh squeezed orange juice." To which the waiter replies: "Yes, it is, let me get the bottle and show you."
Yes, IEEE floating point is a very well documented standard. Absolutely, it is a very well documented precise model for approximating numbers.
Anyone who whishes to argue otherwise must understand that the static representation of a number must have sufficient data with which to represent it. 64 bits is not enough data to accuratly represent the range of data it is supposed to. Now, double precision has enough precision for calculations where there is a measurable percent of inaccuracy in the numbers, i.e. like electrical circuits and near range rocket trajectory, but when it comes to money, no.
You can improve the situation as some FPU systems have 80 bits internally, and some compiler switches to preserve the precision in the FPU, but if you are doing banking, you have to use a package like BCD math.
In your first pararaph you recommend that "education" is a good way to avoid gaps in knowledge. I'm sorry, "education" as in "university" education is probably the most efficient way to get gaps in "education."
I've been developing software since the 70s and I have no degree. More than that, I am typically disgusted with those who do. Especially the youn ones who graduate and say things like "why do I need to know that?" A school, inevitably, teaches to a test or some curriculum, where as an inherently curious person will explore more deeply.
I remember reading about floating point math and how it works many years ago, and recall thinking that it was just not suited for many applictions. When writing banking algoiriths, you need to use a precision math package. Double precision, however, is good enough for a lot of calculations as long as you understand that it is not precise.
As for software engineering, I agree with you. We need to engineer more than we do. I have long since been satisfied with the auto mechanic/engineer analogy for software developers. You don't need to be a good mechanic to replace an alternator. You need to be a fairly good mechanic to rebuild an engine. But you want someone who thinks like an engineer to design your engine. Some software jobs are analogus to replacing an alternator, some software jobs, like finance and spacecraft landing probably require engineering skills.
An engineer isn't an education, it is a way of thinking. If you already think like an engineer, a common library or the internet will provide the education you need, probably better than any university.
P.S. While I do not have a degree, in my 20s I used to help my former high school friends with their course work for their EE and CS degrees. I even disagreed with their professors regularly. I was right, of course, as the professors were teaching from "their books" (often the ones written themselves) and not a plurality of books. One professor yelled at my friend for "not following his teaching." Often times when you "understand" the topic, a more specific and easier solution is obvious. You'd be surprised at how many professors don't actually like students being creative. A creative student is hard to grade because the professors, typically, do not understand the creative appraches and are left with simply looking at correct answers, and the process by which they were arived, is unclear to them. Thus injuring the professors eqo.
Yup, Universities suck because the professors, not all, obviously, but typically anyway, have a self promotional agenda which is not education.
Listen, IMHO, I would say that this may have happened, and in fact, should have happened.
If, during development, someone accuses you of stealing code, you stop using what ever they are accusing you of stealing from to avoid further damages. You try to look at what you are accused of stealing, and if you see that you did, in fact, steal something, or there is the appearence of legitimacy, or even the possibility of infringement, you remove it to stop possible damages from accumulating.
Sigh: "Computer science is no more about computers than astronomy is about telescopes"
You are, like what, the 100th person to use that quote?
I counter that an astonomer does not work on a hypothetical universe because the real observable universe is limited by an imperfect finite speed of light.
But, technically, that quote is a bad analogy. Astronomy is the study of the universe, not the study of telescopes. The corrected Djistra analogy should be computer science is more about keyboards than astronomy is about telescopes.
>>In C++, one line of code such as 'a = smartPtr->b;' >>can have a whole smart-pointer mess behind it. >>That can be an endless pain to debug, when it goes wrong (think large destructor chains).
>>I would argue instead that Java and C#, with their garbage collection, >>have a more trivial mapping of the same line: Just a plain assignment.
Any language can be made to have horrible constructs. One line of code is by no means any measure of how destructive something can be.
IMHO, Garbage collection is for bad programers. When I teach C/C++ my mantra is "If you didn't do it, it didn't happen." This applies to memory allocation as well as freeing. I can't tell you how many times I've hit GC problems, objects not freed fast enough, GC running at the *WORST* time for performance, etc.
High level languages have a place where the specifics of program operation and performance don't matter. The problem shows up when people don't know enough to know that their language of choice isn't appropriate for a specific task.
As more and more people leave the McCS courses that focus on hypothetical computing, Java,.NET, etc. because "real computers" are somehow less than hypothetical ones, they become less qualified to judge. To address Djikstra, no astronomer would construct a hypothetical universe because finite light speed made observable universe less perfect.
In electronics, think of the OPAmp circuit. It is taught as a "perfect" linear amplifier for theory, then it is beaten into the students heads that it is imperfect and where and how and why it is imperfect.
In McCS school, real computers are seen as bad and hypothetical computers are seen as good. That isn't science, that's kinderarten.
While I am impressed by your talent in making a concise statement of opinion, an intelligent person would expect a reasoned explanation or argument about why you came to and hold this opinion, otherise, one might just as well assume is is you that is stupid and that you have no reason, and can thus be ignored.
IMHO the reason why NetBSD is failing is the whole BSD vs GPL debate. BSD guys, don't bother flaming because it doesn't matter.
There is no absolute freedom, that is called anarchy. There must be rules in place to protect freedom for everyone. In creating rules, one has to accept reasonable limits of specific freedoms to balance and maintain everyones freedom. The GPL limits your specific freedom, this is true, while it protects your overall freedom in limiting what others can do with your handy work.
As is evident in the BSD line of systems, BIG corporations are taking your code, making good money, and giving back close to nothing. OpenBSD is dying even though they maintain ssh. NetBSD is dying even though it used to be very popular with the enbedded crowd. FreeBSD will die even though Apple used it as a base.
Linux survives because these entities can't take and forget to give back. Linux is free for all to use both as in beer and freedom. Some distributions may not be, and IMHO this is wrong, but exampled by CentOS, those still have enforced freedom. Your freedom to access GPL code modified by RedHat is protected by the GPL. Make no mistake, if Redhat were BSD, there would be no CentOS.
So every time a *BSD project dies, it is one more nail in the coffin of the BSD side of the GPL/BSD debate.
Oh, please. How do you quantify "more responsive?"
Sorry to say this, but the witch-doctory of computer maintenance is not engineering, it isn't science, it isn't even common sense
If you get "thrashing" in your system it is because you don't have enough RAM for the applications you are using. At this stage, the application has one of two options, use user space files to reduce the "in RAM" data size or quit with an out of memory error. Most all applications, in this scenario, perform better when the OS provides virtual memory. (Obviously not all because the default swap algorithm can be a worst case, but I digress.)
The Macintosh's early virtual memory (pre-OS/X) and old OS/2 1.x virtual memory systems really created a lot of lore about the woes of virtual memory. The reality is that the modern VMMs as implemented in the Pentiums and later are very good, and the OS support for them are excellent, and a system is almost always better off with VM than without.
In an honest discussion it is hard to speak with absolutes, so no one can say any one way is any better than any other way 100% of the time, unless it is an obvious choice like drink poison or drink pure distilled sterilized and safe water in moderate amounts when you are thursty and have balanced electrolytes.
That being said, unless you have a specific and quantifiable case where virtual memory hurts performance dramatically, use virtual memory, you will be better off.
The system *always* user virtual memory, and any tricks you try to play keep the system from using VM probably just hurt you. It has been a while since I've done any low level VMM work, but a good sized swap area allows more options on the choice of RAM to swap algoritms. Typically speaking, the system wants, AT LEAST, 1:1 RAM for swap, and more is better. Besides I hear a lot of people talking about applictions "swapping out." Applications do not "swap out" that is an old Mac-ism. In fact, virtual memory is seldom, if ever, keyed by application. On most systems VM is done on 4K page boundaries irrespective of applications, and on i386 systems, on the 32 bit linear memory space below the applications virtual machines. On Pentium II and higher, it can even be done on 4M page boundaries (but I'm not aware if either Linux, Mac, or Windows uses this feature.) Also, virtual memory is VERY fast when compared to application file access. If you have an 8m pix digital camera, your jpegs may be 3 or 4 meg, but the "in memory" version of that picture is 24 to 32 meg. Strategies to chunk up images because there isn't enough memory to load them is almost always slower than virtual memory. In short, these days, a few gigs of disk space is a $1.00, use it, your system *will* be faster.
Star Trek is history man, we need to preserve what it really is. The cheesy ....special ....effects, and Shatners ....drama..tic ..pauses are a period piece of immense importance for history.
Seriously, I'm not kidding.
The writers in Star Trek were the best and the brightest of the time period. Many of them worked on classics like Twilight Zone and Outer Limits.
One of my favorite trivia facts is the "Jeffies Tube." When ST had funding issues, a set designer named Jeffies design a tiny set for Scotty in the form of a tube. The innovation forced by limitations is increadible. Eliminate the inventive solutions in a limited environment, and you erase the record of their genius.
One of the most important aspect of Star Trek was the treatment of computers before anyone had computers. It is facinating, and I learn something new about computer UI concepts everytime I see an episode.
I know the law quite well, and I have had to advise many engineers on the subject. My comment was not about performing an illegal act with intent, I am speaking about mere accusation and the damage that causes in this country. RIAA identifies you as a "file sharer," via bit torrent.
Make no mistake, jail is the least of your worries. Just being accused by RIAA or MPIAA is enough to bankrupt you and make sure your children don't go to collage.
The "If you aren't doing anything wrong, you don't have anything to worray about" mind set is foolish. We *ALL* have something to worry about, and being anonymous is vital to maintain a free state. Which, IMHO, the U.S.A. is no longer.
Sharing files is almost a capitcal crime in the U.S.A.
Sorry. I've been using Linux for over a decade now, and I've gain a bit of frustration and disillusionment about it.
I will always use Linux or some variant. I have long learned that an open system that needs a little tinkering is far better than a closed system that does everyting "out of the box." For one reason, it is only "out of the box" once, but the day in and day out problems are for as long as you have it.
I don't think we need to compromise, because the things that we would be compromising do no one any good. DRM in any form is against the consumer. We, in the Linux camp, should never sell out. It is better to fail remaining true, than to succeed and sell out.
It all comes down to getting the message out. We need people to understand *why* they need to boycott iTunes, not compromise and let iTunes steal your legal rights.
That sounds like a job for an XML file that you append entries onto.
That one quote typifies, IMHO, the problem with the web and why MySQL is so popular. A database, specifically a SQL database, is not only about storing data. It is about accessing and analying data.
Many things, like concurrency for one, are handled at the database level that are not handled uniformly or particularly well at the OS level.
A database is a wise choice for even the smallest guest book. When the database is free, why choose a toy (MySQL) when others are available for free (PostreSQL for one, but there are others.) Using and knowing how to use a real database provides so much benefit to even the most casual web site.
What is the point of using MySQL? If cost is an issue, PostgreSQL is free. IMHO PostgreSQL is, by far, easier to use than is MySQL. PostgreSQL scales better and by providing extensive SQL support, allows for more efficient and faster queries than MySQL ever could.
If you need a banking quality database, then use Oracle or D2
If you have two or more servers, use PostgreSQL
If you have one server, use SQLite or PostgreSQL
MySQL is just a mediocre database generally and poor example of a SQL database specifically. The Free Software movement is about building the best software. MySQL is not even close.
I'm so tired of hearing about MySQL. Every last improvement they make for it, is completely pointess as more advanced, and free, databases are so far ahead.
If all you want to do is "select * from mytable where col='foo'" you are wasting your time.
My bigest beef with MySQL isn't its limitations, but the people who learn these limitations and never realize a relational database and query language is SO POWERFUL.
So, they get an order of magnitude more data than needed from MySQL, process it in some scripting language, take the reduced data set, make another query to get what they wanted. In a *real* database, you'ld just construct the query correctly.
Every time I see a MySQL cconnection error on a web site, and you see them every day, I just think the designer is a moron.
Physically, it is impossible to "create" energy, however, I am always interested in the conversion of energy.
In the back of my mind, I suspect that magnetic force has a lot more energy than we give it credit for. It has been pondered since the alchemists, and it is like that puzzle, you know the solution is there, but you just can't see it.
Why do people run shitty crap? FUD, mostly. Lack of marketing, certainly. OpenOffice.org has flaws anyone who says otherwise is ignorant or lying. The question is, are OpenOffice.org's flaws worse than the monopoly office offering. IMHO, no. I prefer OpenOffice to MS Office, why, it works, works well, and is not as bad as MS Office. Why don't other people use OpenOffice? Maybe because Microsoft made their document formats indecipherable on purpose? Everyone to whome I've given a copy of OpenOffice.org love it, but many go back to MS Office because of incompatibility to subtle features in MS Office. If the MS Office document format were a published, there would be no MS Office. The name of that game is vendor lock!
Windows sucks, Mac and Linux just don't suck as much. /p?
I have to be honest, I think ESR is just a self promoting right wing nutjob. I discount everything he writes or says as suspect, but that's just me.
If a company wants to sell software for Linux, hey that's cool.
If a company wants to GPL their software, hey that's cool.
I am pissed off at the Linux distributions like RedHat, SuSE, and others who jail teir distributions with copyright and proprietary software. Linux belongs to the community, and while the likes of RedHat and Novell do add important value to the Linux community, I think it is wrong that they don't isolate the GPL portions of their distribution amd make it available, and no, the community versions don't count.
I have personally contributed bits and pieces to various GPL and BSD projects and am not able to gain access to distributions that use my contributions.
What gets run on Linux, is not our concern. The more the better. There will always be viable alternatives in the GPL world. The availability of Linux, unencombered by non-gpl stuff is vital. This isn't a religious war, it a pragmatic and tactical offsensive to protect the rights of users and developers.
Even if AOL finds gold, don't they have to PROVE it is the specific gold they were looking for and not some other gold?
Sorry, but you clearly have no idea of what you are talking about. A floating point number can not 100% accurately represent every number within its range. Given any specific number, one can predict the exact representation, sure. When a series of calculation are performed one can not be sure of th outcome, exactly. For instance, if you have an array of numbers with a wide range of values, you will want to add in the order of smaller to larger. If you do it larger to smaller, you may get a different result. That is *NOT* exact by any definition.
Floating point is an inexact math system, it is design for speed, not accuracy.
You start with an insult, ad hominem, you lose one point.
Yes the pithy comment was somewhat simplistic, but it wasn't any sort of logical cop out either. The number speak for themselves. There is a conventional wisdom that it is valuable, but "conventional wisdom" is often counter to facts.
It is like the argument of buying a house vs a renting an apartment. It is not a given that one is better than the other. If you can find an apartment in which you are happy living at a substantally lower rent than you would pay for a mortgage, if you had financial self control, you could easily save more than you would be building in equity minus what you pay in interest.
If a university education is not required for your career, and in software it is not, then you have to measure the cost/benefit of the education. A CS degree fails the cost benefit test, especially since it does not actually prepare you properly for your field. You STILL need experiece. Since the knowledge one obtains from the school is readily available freely at the library or internet, and is more up to date, then the school add no value for a dedicated person. The time you spend at the school actually takes experience time away from your career.
Like I said in another thread, get an MBA with some basic programming. Learn the rest yourself. You will do far better than a McCS grad.
I have actually read about a lot of the problems you are talking about. The problem is that universities, like hospitals, media news, and so many other organizations, are serving two masters, what they wish to accomplish and profits. All too often the short sighted focus on profits erode the value of the objective (which has a slow growth inherent value).
Thus we see, in universities, news agencies, hospitals, etc. a steady degradation in the mission of the organization in return for quick profits for the directors and shareholders. Like locusts, when the last drop of value of the organization is gone, and it is effectively dead, they will move on to the next organization. Often selling it to a much larger organization that wants to turn it into a pointless equivilent of a McDonalds.
Harvard is almost useless as a university because of "grade inflation" (for the above reasons), MIT and its grads have seen better days. So many institutions of great reputation are little more than shells of their former selves.
OK, I have to stop ranting and get back to work.
OK, I can't contain myself. OK, take the cost of the education, specifically CS or programming, and the cost of the loan, and the time spent in the university vs working getting real experience, and you'll see that going to the university is less cost effective. So, you're right, it isn't worthless, it is less than worthless. My advice to *anyone* wishing to get into computer software development is to teach yourself how to program and focus on MBA studies, because business skills are now vital in the industry.
Oh, by the way, the school's were Northeastern University, UMass Amherst, and Bridewater state. The school that had the worst professors was Northeastern.
It sounds like you have spent an inordinate amount of time justifying to yourself why you didn't get your degree.
It isn't a justification so much as it is a disgust with computer science trends. I don't know a single person in my age/experience range that thinks CS grads are qualified or up to the task of doing anything more than "business logic" crap. The CS grads today do not understand computers or computing. They do not understand how the machines really work. Thus, if you want to hire someone to write a device driver, graphics routines, high speed math, or any non-trivial application, you can't look for a young guy. What's even worse, is that the CS guys are told that the actual computer is unimportant and are poisoned by the nonsensical Djykstra quote they are fond of spouting.
There are "real" issues with "real" computers, and this math article is just one example. "real" computers can't do anything but simple arithmatic (add/sub[mul,[div]]). FPU's implement more but as numeric approximations that are generally "close enough," but are too often confused for accurate math. Implementing real word concepts on computers efficiently is a real science. Implementing real world concepts on a theoretical computer is nonsense.
You see, this is the problem with computer science today. I am reminded of a story told by CBS' Andy Rooney, he is in some breakfast joint and orders the "fresh squeezed orange juice." When it arrives, Andy tastes it and says to the waiter, "This is not fresh squeezed orange juice." To which the waiter replies: "Yes, it is, let me get the bottle and show you."
Yes, IEEE floating point is a very well documented standard. Absolutely, it is a very well documented precise model for approximating numbers.
Anyone who whishes to argue otherwise must understand that the static representation of a number must have sufficient data with which to represent it. 64 bits is not enough data to accuratly represent the range of data it is supposed to. Now, double precision has enough precision for calculations where there is a measurable percent of inaccuracy in the numbers, i.e. like electrical circuits and near range rocket trajectory, but when it comes to money, no.
You can improve the situation as some FPU systems have 80 bits internally, and some compiler switches to preserve the precision in the FPU, but if you are doing banking, you have to use a package like BCD math.
In your first pararaph you recommend that "education" is a good way to avoid gaps in knowledge. I'm sorry, "education" as in "university" education is probably the most efficient way to get gaps in "education."
I've been developing software since the 70s and I have no degree. More than that, I am typically disgusted with those who do. Especially the youn ones who graduate and say things like "why do I need to know that?" A school, inevitably, teaches to a test or some curriculum, where as an inherently curious person will explore more deeply.
I remember reading about floating point math and how it works many years ago, and recall thinking that it was just not suited for many applictions. When writing banking algoiriths, you need to use a precision math package. Double precision, however, is good enough for a lot of calculations as long as you understand that it is not precise.
As for software engineering, I agree with you. We need to engineer more than we do. I have long since been satisfied with the auto mechanic/engineer analogy for software developers. You don't need to be a good mechanic to replace an alternator. You need to be a fairly good mechanic to rebuild an engine. But you want someone who thinks like an engineer to design your engine. Some software jobs are analogus to replacing an alternator, some software jobs, like finance and spacecraft landing probably require engineering skills.
An engineer isn't an education, it is a way of thinking. If you already think like an engineer, a common library or the internet will provide the education you need, probably better than any university.
P.S.
While I do not have a degree, in my 20s I used to help my former high school friends with their course work for their EE and CS degrees. I even disagreed with their professors regularly. I was right, of course, as the professors were teaching from "their books" (often the ones written themselves) and not a plurality of books. One professor yelled at my friend for "not following his teaching." Often times when you "understand" the topic, a more specific and easier solution is obvious. You'd be surprised at how many professors don't actually like students being creative. A creative student is hard to grade because the professors, typically, do not understand the creative appraches and are left with simply looking at correct answers, and the process by which they were arived, is unclear to them. Thus injuring the professors eqo.
Yup, Universities suck because the professors, not all, obviously, but typically anyway, have a self promotional agenda which is not education.
Listen, IMHO, I would say that this may have happened, and in fact, should have happened.
If, during development, someone accuses you of stealing code, you stop using what ever they are accusing you of stealing from to avoid further damages. You try to look at what you are accused of stealing, and if you see that you did, in fact, steal something, or there is the appearence of legitimacy, or even the possibility of infringement, you remove it to stop possible damages from accumulating.
Sigh: "Computer science is no more about computers than astronomy is about telescopes"
You are, like what, the 100th person to use that quote?
I counter that an astonomer does not work on a hypothetical universe because the real observable universe is limited by an imperfect finite speed of light.
But, technically, that quote is a bad analogy. Astronomy is the study of the universe, not the study of telescopes. The corrected Djistra analogy should be computer science is more about keyboards than astronomy is about telescopes.
Sorry, Djikstra is wrong.
>>In C++, one line of code such as 'a = smartPtr->b;'
.NET, etc. because "real computers" are somehow less than hypothetical ones, they become less qualified to judge. To address Djikstra, no astronomer would construct a hypothetical universe because finite light speed made observable universe less perfect.
>>can have a whole smart-pointer mess behind it.
>>That can be an endless pain to debug, when it goes wrong (think large destructor chains).
>>I would argue instead that Java and C#, with their garbage collection,
>>have a more trivial mapping of the same line: Just a plain assignment.
Any language can be made to have horrible constructs. One line of code is by no means any measure of how destructive something can be.
IMHO, Garbage collection is for bad programers. When I teach C/C++ my mantra is "If you didn't do it, it didn't happen." This applies to memory allocation as well as freeing. I can't tell you how many times I've hit GC problems, objects not freed fast enough, GC running at the *WORST* time for performance, etc.
High level languages have a place where the specifics of program operation and performance don't matter. The problem shows up when people don't know enough to know that their language of choice isn't appropriate for a specific task.
As more and more people leave the McCS courses that focus on hypothetical computing, Java,
In electronics, think of the OPAmp circuit. It is taught as a "perfect" linear amplifier for theory, then it is beaten into the students heads that it is imperfect and where and how and why it is imperfect.
In McCS school, real computers are seen as bad and hypothetical computers are seen as good. That isn't science, that's kinderarten.