Dude... Let me tell you something. This has got to be the stupidest thing I've ever heard. If the dude already solved the problem, then use the solution! I don't care if that means directly inserting source code that the other company paid to develop. If they didn't offer him a high enough salary and enough perks to keep him, then they deserve it! (Even if he got fired for streaking the company's offices!)
In fact, the disease so-called Intellectual Property should be outlawed. In fact, laws should be outlawed. The government should outlaw itself. Yeah. And the first action any computer program takes when executed is to delete itself and exit. No matter what the program is designed to do.
SCREW IP! In fact, I think it's funny when someone spends a billion dollars developing something and then some shmoe comes along and copies it, profits off it, and leaves the original implementer in the dark!
In case you didn't get it, stupid, this is called sarcasm. I think that if you solved the problem before for another employer, you should forget the solution (employing techniques such as doublethink, as its called in Newspeak), and reinvent it. Then, you should remember the old solution once again (again, employing doublespeak) and check the new solution against the old solution, not for functionality or errors, but rather for similarity. If the new solution is 1% or more similar to the old solution, start over. (Once again, forgetting the old solution, using doublethink.) Then, you'll invent a novel new way of implementing whatever the hell it was you're implementing, and chances are, it'll be a hell of a lot better. For example, if the problem is to print something on the screen, and for the previous employer, you used printf(), then for the new employer, you should have to use something else, because using printf() to print something on the screen is a violation of the old employer's intellectual property rights, and infringes on their right as a corporation, as detailed in the 99th Amendment to the Constitution, "Corporate Right to Eternal Perpetually Increasing Profits and Complete Lack of Competition."
My conclusion? Ask a stupid question, get a stupid answer. Ooooooooooh well.
Better testing could allegedly cut that by one-third.
Yeah. And a better education system would cut the other two thirds. I believe that better programming practices would reduce the number of bugs installed to begin with, thus reducing the amount of testing that must take place.
Better programming begins with better design. The purpose of a program and its interface to the outside world (user, system, etc.) must be spelled out initially. Nothing that doesn't fall into the predefined limited functionality belongs in the program. Period.
I mean, you can make a bunch of programs if you need a bunch of functionalities and stuff, but you shouldn't have a ton of junk in the same program. If you know what I mean. I guess you don't, cuz I can see the flames coming.
The program would be well designed, meaning the basic flow of the program would be defined, and then any number of possible ideas and algorithms would be explored during design time. The program should be designed such that algorithms can be exchanged with as little fuss and trouble as possible. In other words, encapsulation and modularity. The design would require the highest level of efficiency possible, meaning that spacial and temporal resources aren't wasted. In English, that means that a text editor wouldn't require 128 megs of RAM and 6 gigs of hard disk space, and would use up as few processor cycles as necessary, by design. In other words, a totally unoptimized program would execute so efficiently that any optimization would practically be a waste of time. You'll find that programs designed for efficiency are generally more reliable as well, because more thought goes into them before any implementation takes place. Finally, robustness would be a pervasive part of development. Testing mechanisms would be built in to the programs, and by design, those mechanisms could be removed at compile time. I'm not talking about debug information generated by the compiler. I'm talking about tests the programmer, tester and "preview release" users can invoke. A testing suite would also be designed, at design time. Project management is also part of the design process... in other words, for each component of the system, what resources (folks, time, money, etc.) are required, what problems are anticipated, etc. All of this is done by the programming team, not by some stupid manager who doesn't know jack about schitt. Once a ton of design takes place, management reviews it. Which features will be present in which release, etc. As much of everything as possible is anticipated beforehand. (Yeah yeah, you'll never anticipate more than 0.0% of the problems beforehand, but it gets you thinking, and that in itself will reduce greatly the number of errors made later.) Management reviews the design, multiplies all time estimates (which are already over-estimated by the programmers) by 2.5, and sign it or whatever. They can't ask for any new features or whatever until the program is written, debugged, tested, released, feedback comes in, a "huge fixes" release is released, more feedback comes in, and it's time to figure out new features again. This could take weeks or months, depending on the scope of the project or whatever.
Once all that designing takes place, implementation begins. That doesn't mean that design ends. In fact, there's no 'design -> write -> compile -> debug -> fix -> write...' cycle. All of those items are done all the time, like you're multitasking or something. Yeah, you could draw out an operational chart showing all those items, so you'd spend most of your time doing whichever stage that you're on (like debugging most of the time, doing everything else some of the time). This is useful because you might be debugging some obscure problem, and then one of your fellow programmers will say, "Hey, who needs this damn routine in the first place?" (The routine you're debugging.) Maybe the design can change a little bit and then the section that contains that damn bug isn't even necessary. Know what I'm saying?
Also, when I spake of education, I was speaking about all the branches of logic, electronics, math, etc. that are no longer studied as part of the programming curriculum or whatever. I'm talking about heavy duty stuff that programmers need to know cold, because it's actually USEFUL! Seriously... learn a little bit about electronics and you'll be surprised at how a few hundred lines of code can literally be replaced by tens of much simpler lines that execute thousands of times faster (not kidding!) and produce exactly the same results, or better (meaning with less problems and side effects). Seriously... when you design electronics, there's no erasing that capacitor once its soldered on the damn board. You gotta draw it right because you can't erase the metal once its cut. And if programmers thought like this more, and didn't think "oh yeah, we can always change it later" then programs would be better. Because, as easy as it is to delete a bunch of text and change it, you and I both know that sometimes you can't change stuff because of side effects. So yeah, it's easy to type, but as a programmer, you gotta pretend that you're carving the damn program in stone, because you'll probably find that it is carved in stone once you've written about 100,000 lines.
So where was I? Oh yeah, programming... So while you're implementing, the design is reviewed often, perhaps every few days or once a week at least. Problems encountered during implementation are tested against the design, and changes to the design are almost invariably made, with a big eye towards reducing or eliminating coding changes.
Oh yeah, and all this is done by the programmers again. The team meets often to review each others work, ask questions, find errors of any kind, criticize, rip the code apart, put it back together, and stuff. This constant reviewing is similar to the peer reviews that used to take place back when compilers ran on mainframes, where folks paid hefty fees for computer time, and had to schedule an appointment weeks in advance. In fact, I'd advocate dropping a mohogany grand piano hood (or whatever that cover is called) on the programmer's hand who makes the most mistakes during a project. That'll teach him (and get him to type slower, possibly leading to more thought behind each character typed). In fact, I'd get rid of the backspace and delete keys on the keyboards, and make the programmers pay a penny for each character they want deleted, and this would have to be done by a specialist who can write machine code to go to that location on the hard disk and remove the character, moving all the others back by one. Some of us would have to give up our whole damn paycheck if that was implemented!
The core routines of the program, holding the most important crap, would probably be written by the whole damn team on a whiteboard, while questions are asked and shit. I don't care how long this takes, it'll save a ton of time in the end. Shit, some of all ya'lls will have to get a huge room with whiteboards all around and sliding ladders like they have in the old-school libraries. (Damn, dude, I love libraries.)
Once in a while, the programming team will actually take a break from the program they're working on (like every friday afternoon, a few hours before you get off work) and study a bit of Knuth or one of the other classics out there. (There are a bunch of them.) Most of those books contain exercises at the end of each chapter. Pick a tough one, and have it solved by noon on Monday. You can think about it all weekend, talk to each other, whatever. This will expand the whole team's range of thought, and cause them to produce better shit.
Oh yeah, and every line of the program would be run through a debugger, in as many combinations as practical, in order to watch what happens when they execute. All the programming do's and don't's learned over the past 50 years would be reviewed constantly, and the programmers would be required to follow all of these (using common sense, obviously).
And of course, testers would be hired who get paid a small bonus every time they get something to fail. They'll be present from the first day onwards, testing even the individual routines before the program runs as a whole. And once the program runs as a whole, they'll get paid even more for each failure. And they'll have full access to the source code, so they can audit it to their heart's content and figure out innovative new ways to crash it and twist it and make it screw up all evil and stuff.
When a program is ready for release, its release is delayed for an additional two weeks (or month, if you can afford it) as the entire damn team tries everything they can to make it screw up. (And yeah, they obviously fix every crappy thing they find. If all ya'll did it right up to this point, there won't be any changes requiring the damn design to change. Just little coding typos and crap.) Then, it's released as alpha-testing to a small group of folks. Then, once that passes, it's released as beta-testing in three phases to increasingly larger audiences. (Each of these testers gets paid a small amount for each bug they find for the first time.) Then, it's released to the final audience as version 1.0.
Now at this point, a ton of support calls will start coming in and stuff, and folks will get suggestions and stuff for wishlists. All this will be accumulated for a few months while the programming team visits each problem and tries to figure out possible solutions. No coding changes are made during this time. These will be explored in theory, with an eye towards killing as many flies as possible in one swat. After a shitload of stuff is accumulated, the programmers choose proposed solutions, go over them along with management, go over proposed solutions, and choose the best ones. The programmers choose the best ones, that is. Management signs it into law, and they can't change their minds. Only the programmers can, if it's important enough, then call a meeting with management again and get the new law signed into law. These are implemented (again, with the same torture-testing as before) and once again, released to increasingly larger audiences, until finally, it's released as a version 2.0. All even versions are "fix" versions. All odd versions are "new features" versions. They can be developed in parallel, with porting going on between versions. Something like that.
I'd even say, during design time, figure out how many bytes of code something will be, how many lines it'll be in the source code, how much memory and time it'll require, etc. Make up limitations, kind of like how car engineers have to make a throttle body fit in a certain place and fit certain restrictions. They get to play inside that area, but other stuff goes in the other places, so you can't make a throttle body the size of the whole damn car and expect the other crap to be changed to fit. Programmers constantly just write crap and assume it'll fit. If you invent restrictions, you'll be surprised how much better the code will be. It'll also be a challenge to make it fit into the restrictions you choose.
Also, here's something all ya'll programmers will like. When the design is reviewed by management, and you say, "Implementing this should take 4 days" (and "this" would be a sufficiently small part of the system that it stands alone and can be estimated, but large enough that it won't be a single line of code or a single routine or something silly like that). Management will say, "Ok. If you can get this part implemented and working properly (in other words, passing all the tester's tests) within 3 days, you'll get a bonus of X." X wouldn't be like 10,000 bucks, but it wouldn't be 2 cents either. It'll be a small amount that when added to the other bonuses you get for getting everything done on time, you'll have some real money. And, a final release date for the whole damn project is estimated by the programming team. This is multiplied by 2.5 by management, and that's their expected deadline. (Then, if it does get done in time, management claims to be "early" and then everyone looks good. Even if it takes twice as long to get done as anticipated. But if it takes two and a half times as long as anticipated, you're on time. And if it takes longer than that, you're only overdue by a very small amount. And if you're really overdue, you're stupid.) Now, if the program can get released within 90% of the originally estimated time (that is, not the 2.5 times more), then the whole damn team gets a hefty bonus. Just to make them think efficiently.
How Sprint's crappy security directly affected me.
I live in Arizona, and I have four Sprint PCS phones: One for myself and three are for my "on-call" employees. These phones are on 24 hours a day for obvious reasons.
A disgruntled ex-employee in Delaware (who had been fired years ago), who happens to know my phone number, strolled into a Sprint PCS store in Kentucky, and asked the proprietor (or rather, the idiot working there) to bring up my account information. Now remember: All this person knew was my phone number. The Sprint PCS idiot happily punched up my account and showed the unidentified person my account details: All my phone numbers, numbers that had been called on these phones, how much my bill was... it goes on and on. In short, someone who only knew my phone number got access to all my "private" information, no questions asked.
I discovered this when the person in Delaware (who was in Kentucky at the time) called and told me, in the form of a threat. I immediately called the Sprint PCS customer support line and told them of the problem. They had some explaining to do, and I expected them to immediately change my phone numbers and account information. They refused, and explained that any such breach of security was impossible: The gentleman in the store should have asked for an account password. If the customer didn't know the password (or so claimed the customer support woman), the account information could not be accessed. This made sense, as computers do ask for passwords before showing any protected information. So I assumed the ex-employee was lying to annoy me, and dropped the issue.
Later that night, angry employees began calling me repeatedly and complaining of crank calls. Then, I got a call from the disgruntled shmoe in Delaware. Turns out, my assumption had been wrong. I came to the conclusion that private account information is protected by nothing more than a company policy: The employees in the stores can bring up any account, and the password is DISPLAYED along with all the other information. They're SUPPOSED TO ask you for the password before giving out any information. That's one hell of a security system, eh? So I immediately called Sprint PCS's customer support thing again, but this time, when they answered, I demanded to talk to a supervisor. The conversation went something like this:
Sprint PCS lady: May I ask about the nature of the call?
Me THE NATURE OF THE CALL IS SPRINT PCS GIVING OUT MY PERSONAL INFORMATION TO STRANGERS WITHOUT MY CONSENT!
Sprint PCS lady: One moment...
At this point, a supervisor lady answered, and I explained (rather angrily, I may add) exactly what happened, and DEMANDED that they change all my phone numbers IMMEDIATELY. (I was doing this as an immediate action, to be followed by any number of things, including the high possibility of cancelling my account altogether, followed by strong legal action.) Now the supervisor freaked out and got a bunch of people on my case within minutes. She explained that my conclusion about their security had been correct (that nothing is password protected at all), but that I could optionally make my account "high security", which basically means that certain other information (like a social security number or something) is needed before account details can be accessed. So I demanded that my account immediately be made high security. Then, she began the process of changing my phone numbers, and mentioned that it would cost some amount of dollars to make the change. At that point, I became pissed and said, "I'M STILL CONSIDERING WHETHER I'M GOING TO SUE YOU AND YOU'RE GOING TO CHARGE ME TO CHANGE THE PHONE NUMBERS, AFTER YOUR COMPANY SCREWED UP?!?!?!?" She realized the error of her ways and waived the fees. I continued to raise hell with Sprint PCS for an hour or so, making DAMN SURE that no errors would occur in my next bill (because every time a change is made with them, errors show up in the next bill or two and you have to call and bitch about it, especially when you have multiply
phones), and that international calls won't be disabled on the phones (because enabling international calls is a long and complicated process with them, one that raised my blood pressure to the sky too), and that various other problems won't pop up. In all, they were a bit helpful, considering they did screw me over.
But anyway, that was MY story of how much their security sucks.
Nice analysis, man, nice! I would like to point out a few things:
Windows has tons of configuration options, with most of those being hidden it clsid's and other crap. It's either configuration TEXT files or a kludge of a registery.
Uh, that's because Microsoft is STUPID. If all that crap is hidden in all sorts of places, then the damn values should just be hard-coded (in a global header or something, so it can be changed in one place if the need arises) because nobody can change them anyway! There's no need for all that crap they have in there. It's part of the reason Windows is such a piece of crap. There's no need for it to take up a flippin' gigabyte. Microsoft is just really wasteful, mostly because they have to HURRY HURRY HURRY to finish implementing the next version and get it out the door. As if anybody was bitching that Windows 95 was getting boring because it wasn't new anymore, so they had to hurry and make Windows 98. I personally wouldn't have minded one bit if they'd have taken a few more years putting together Windows 98, but released something that's rock solid. Of course, this is Microsoft we're talking about.
Funny thing is Linux is sort of the P2P os. All the parts are everywhere, there are multiple 'fixes' to the same problem, and developers are around the world. Asking some standards body to make a "UnifiedLinux" is asking for trouble.
And who said anybody would have to merge UnitedWhatever's changes back into the main sources? Who said they can't take a shitload of GPL'd stuff, analyse it, figure out where the duplication is, rip it apart, put it back together, and sell it as another product? Yeah, the dreaded code fork. But hey, this is GPL'd software, and any shmoe out there can do a code fork. If it's successful, and that company sells it as "Linux" (because it contains a ton of "Linux" code), a lot more people will get interested. Already, 99% of users hate Windows. I see it everywhere Windows is installed. People hate it because it's clunky, no matter how good Microsoft makes the user interface. It's crash prone. People don't trust their computers. Business owners pay a ton of money for licenses and upgrades, and Windows creates all sorts of headaches for them. Literally everybody I've spoken to about the subject (mostly non-programmer types, too) say, in one form or another, that Windows (or more generally, that their computer) SUCKS! And it's because of the unreliability that Microsoft trained everyone to accept as a fact of life. I disagree with this outlook. I believe software should be damn reliable, because it's used in so many ways and whatnot. It's an engineering job that's no less serious than one of building bridges or buildings or whatnot, and it's getting increasingly more serious with each passing day. The time for "who cares about the bugs, they'll just reboot or something" is long over. Computing is a serious matter, and it must be treated as such.
I dont agree with that... You live in a home, so/home it is. If you have problems with.conf's everywhere (like I did), just cp the files to/etc and sym-link to the original location. Now ALL your configs are in 1 place. Now you can back up your/etc dir (and sym links across your whole FS).
First of all, I said home goes under user, so it'd be like/usr/home/rice_burners_suck or whatever. Not/usr/rice_burners_suck. That would be stupid. UNIX lets you mount crap wherever you want, so why not mount a home partition under/usr?!?!?!??! And the other comment about the symlinks... That's a good one! I'll have to try it someday.
Well, it's 2:00, and I actually have to get some crap done today.
Hey, that's cool. I'd just like to point out that I never asked anybody to agree with my viewpoint. I only described my reasons for switching from Linux to FreeBSD. That's all.
Dude, I know Guinness is Irish! But folks drink it all over the world. I mean, if you go to the middle of China, you'll probably find THEM drinking Guinness!
As far as superior stouts are concerned, I've had this Murphy's that you're talking about (though admittedly from bottles--I haven't had a real Murphy's yet). I agree that it's very good.
What I don't like about Guinness is something about its aftertaste. It tastes salty for some reason. I don't recall Murphy's giving me that. Oh well...
Dude, you just said it yourself: " In bsd you have rc.conf yes, but that is just equivalent to the init scripts in linux"... May I point out that "init scripts" is plural?!?!?! That means that FreeBSD elegantly deals with all this crap in one file, when Linux has a bunch of init scripts! And that's just one of the areas that configuration in Linux takes place in a million billion places when it's more organized in FreeBSD. Sure, FreeBSD ain't perfect, but it works damn good, if I may say so myself.
Oh yeah... and you mentioned that Linux gives you flexibility through its Sys V style runlevels and whatnot. But honestly, who the hell uses runlevels? When I used Linux, my "server" boxes were always in runlevel 3 (IIRC, multiuser with network services) and my "desktop" boxes were always at runlevel 5 (everything in 3 plus X). The runlevels just made all the configuration into a big mess. Why do you need on the order of 100 start/stop scripts in rc when about 5 centralized scripts will do the work? When do you use runlevels anyway? Once in a year when you want to check something out on your server? Just use kill -9 and do it yourself! And suppose you do actually use runlevels more than once in a lifetime... I assure you that a few well-designed scripts will get the job done without the mess that everyone deems necessary in a Linux distro. (And who said Linux can't use FreeBSD-style init scripts?)
Yeah, man, don't you get it? Eschew duplicated efforts by... duplicating efforts!!! Seriously, make yet another [insert type of program here], so that everyone will have to maintain 100 different programs that ls in color, rather than just one program that does the same thing without the 100 times duplication! Oooooooooooh well.
I am particularly upset about this, because my company began development on an industrial product with eCos at its core. We invested at least $50,000.00 in development. Now, management is freaking out, and we have to investigate new operating systems, and possibly re-develop some key portions of our system.
Just kidding. We didn't really do any of that. But seriously now, my company was seriously considering eCos as the operating system for our upcoming project. Personally, I would have greatly preferred eCos over the other solutions we're evaluating, particularly because I'd much rather support eCos than some proprietary solution. (And because the money spent on the proprietary solution could be spent on better analysis tools and whatnot, and because you don't normally get the sources for proprietary stuff, which is a huge problem in hard-core embedded systems, and because... ten thousand other reasons.) I was looking forward to working on eCos, as it appeared to be a very promising system. So this is pretty disappointing news.
That just means they drink too much Guinness in Scotland.
They should drink Negra Modelo instead. Then, maybe the aliens would stop by and have some with them, and they'd get to talk to the aliens and figure out where the hell they're from. But aliens obviously don't like Guinness. Oooooooooh well.
I have to give Ransom credit for his good answers. Especially in the area of whether Caldera will make billions off Linux without giving back to the community. Ransom makes it pretty clear that Caldera's development of Linux, even though done for profit, is in itself something big that's being given to the community--it's the effect that takes place when a product has a lot of support from reputable companies more than which lines of code Caldera writes and puts wherever. Even in Caldera didn't write a single apostrophe of code but only packaged other people's hard and free work and sold it for profit, they'd still be opening a market window for the Linux community that wouldn't have existed otherwise.
I believe that for Linux to really be successful, both in terms of code quality and widespread acceptance, a team of companies needs to get together with a specific purpose to fulfill: To develop a desktop version of Linux similar in functionality to Windows XP or Mac OS X. In other words, other than a few options here and there, it wouldn't really have the possibility of configuring every detail. The bare-bones system, which basically means a desktop with a few icons on it for basic functionality (and no applications) would basically be integrated into the kernel. When the computer boots up, it boots directly into a nice graphical desktop, kind of like the way BeOS did, except Linux will actually stick around. Most of the configuration would be built in, heavily reducing the number of "system" files. No desktop system needs to drown in its own configuration. I would say that a really good bare-bones desktop Linux OS shouldn't take more than 15 to 20 megs of space, and that includes all the beautiful graphics it would have. To make this system useful, a number of applications made specifically for this version of Linux would be included, increasing the size to about 60 or 80 megs. This might include the standard "fun" stuff that consumers look for, like video editing, audio editing, image editing, and the more mundane crap, like word processing and whatnot. Obviously, major formats would need to be recognized. Only when something that's actually easy to use becomes available, Linux will skyrocket in popularity and Windows will go into the dumpster. Yeah, most of the code for this exists. Someone just needs to recognize why Linux tends to be so damn complicated, and rearrange these pieces into something that's really well designed and coherent.
As a disclaimer, just so someone doesn't say, "You stupid fsck! If you think Linux is too hard, go back to Windows and enjoy crashing all the time. Otherwise, learn how to use the damn thing!" I've been using Linux for years now, since an old Yggdrasil distro I picked up at some computer trade show, and a 8 CD set of crap they downloaded from a bunch of mirrors and stuck on some CDs. (Back in those days, those CDs were really handy, especially considering that most folks had a 14.4 connection. And that was considered fast! Even 56k was far off! So that was a loooooooooooooooooooooooong time ago.) Anyway, I've since realized that Linux is too fragmented. There's way too much duplication of effort. The Linux file system "standard" is totally wrong, IMO, because everything's in the wrong place. (/home should be under/usr, for example.) And the configuration is a nightmare! There are literally hundreds of configuration files strewn all over the system! So I since moved on to FreeBSD. All ya'll Linux folks out there can learn a shitload of great stuff from the BSD folks. Just look at how much of the system configuration for a FreeBSD system is in a single file (rc.conf). In Linux, this would be scattered across 10,000 different files in a monster directory structure under/etc/rc or something like that, as far as I remember. As you can easily tell, I haven't touched a Linux system in ages, and there's a reason. That's why I say this desktop thing needs to be made. Linux can kick Windows' ass in server stuff. Now it needs to start kicking Windows' ass in the desktop, because only when Microsoft loses that battle, they'll no longer be able to embrace and extend, a practice that fscks up all our code because we have to be compatible with their bugs, flawed design decisions, and programming features probably designed by lawyers and marketeers rather than programmers. Ooooooooooh well. Oh yeah, I had all kinds of Negra Modelo last night. It was fun. (If Cerveceria Modelo made software, their operating system would kick everyone's ass!)
Well, I got a solution to this alleged problem, then, and it's not DRM, or the DMCA, or all kinds of horrible laws that will have our grandchildren trembling in fear from the Thought Police. It (the solution) is as follows:
Artists who want to make money will make music to target the less tech-savvy folks. Like, Metallica will play Beethoven, and Pantera will play Chopin, and Black Sabbath will play Mozart, and Led Zeppelin will play Strauss (Jr), and so on and so forth. They'll make a shitload of money because each person who listens to that stuff will buy a copy.
Artists who want to die of hunger in the streets will play cool music.
This solution will work because it will get rid of all the stupid new music that's being made, and it'll keep the old geezers of the world busy listening to all the old fashioned music of like 1000 years ago. In the meantime, all us tech-savvy folks will have no choice but to revert to the heavy metal of the 1980's, and then the good ol' days will return. (And I can listen to that because I have long hair.)
I believe that as consumers find video and audio to be an increasingly important part of their computing experience, increasingly more operations will emmigrate from the main processors, onto auxiliary processors designed and programmed for specific purposes.
The good ol' SGI machines, for example, could have up to 12 "graphics-only" processors, if I remember correctly. Nowadays, as home computers are approaching (and perhaps even surpassing) the raw speed possible with the good ol' SGI machines, perhaps the idea of multiple specific-purpose processors and one (or more) general-purpose processors makes more sense.
Right now, these are available in the form of add-on PCI cards, but I believe that as standards converge and begin to stabilize, you'll find motherboards produced with an assortment of processors. For example, a motherboard might be produced with on-board processors for:
Encryption (supporting the major encryption standards)
Video (supporting the major video standards)
Audio (of course, supporting all the major audio formats)
Graphics (for hardware implementations of OpenGL and DirectX or whatever it's called)
You might even put an implementation of X on a CPU specifically designed for the purpose, thereby offloading even more crap from the main processor. In other words, these specific-purpose processors could offload quite a bit of crap from the main processor, making your applications a lot more responsive, even while you've got a ton of really intensive stuff going on. And if you buy cheaper hardware that doesn't have one or more of these "standard" chips, it'll just happen in software, and slow down you system accordingly.
Sorry my post offended you. I'm replying in connection to your statement that, "if you thought about it some more, you'd realize Adobe is even worse than Microsoft is." Could you please explain your logic? I know Adobe sucks for several reasons:
They got Dmitry in big trouble, those bastards.
They make Adobe Acrobat, which displays PDF files, yet that stupid program doesn't display Postscript files, Postscript being the parent format of PDF, and a format they, themselves invented.
They bitched and moaned about KIllustrate allegedly confusing customers, when everybody knows full well that KIllustrate and Adobe Illustrator are not even similar, let alone confusing. (Besides, anybody who is confused is an idiot.)
All that said, Microsoft is the big huge evil empire. They're gonna end up turning this world into a 100% digitally rights managed world where you have to prove your innocence every time someone farts or you'll be taken to torture chambers and made to conform. Microsoft's products are some of the worst ones out there in terms of bloat, efficiency and reliability, and yet they've managed to stuff their garbage down the throats of the entire world, getting everything so tied up in their proprietary formats and whatnot that it'll be damn near impossible for the good guys (Linux and the other Free software projects out there) to save the world. Adobe's programs are somewhat more reliable than Microsoft's, in my experience (I used them in school--no, I'd never waste money on their software when there's perfectly good free alternatives, and even if there weren't, I'd buy from Corel, or anyone else who's more reputable than Adobe), and Adobe's software isn't shoved down every single person's throat. So, sorry for wasting your time, but how is Adobe worse than Microsloth?
Actually, I was gonna cut off my comment ther, butt I figgered I cood right mor abowt thiz. So heer it iz. Printin' chips cood bring the price down and allow finer resolution or whatever, making it possible to put a million billion tranziztorz on a dam chip, making it possible to make chips so complicated that a program to printf "hello world" will be like a thousand gigabytes, because there'd be like 999 gigabytes of setup code to get all the transistors pointing in the right direction or something, and then like a gigabyte of code to actually do the work, and the whole damn thing'll get executed in like five days or something. It'll have like a million billion exahertz internal clock, so they'll sell it by that number and people will buy, but in reality, they'll've broken each operation into like 500,000,000,000,000,000,000,000,000 separate stages in the processor, so when it comes down to it, it'll take up like a trillion gigawatt-hours of electricity to power this processor for like a picosecond, and then the whole damn grid will meltdown, leaving us in the stoneage or something. Ooooooooooooooh well.
Yeah, you should've let me stop at that first sentence where I originally planned to stop, but, you know, whatever.
Dude, Fry's had an ad in the other day's Fry's section of the newspaper, where there was this cool laptop for a cool grand. Actually, it was for eleven hundred bucks, but there's an automatic hundred clam rebate, so that brings it to like a grand, plus tax, of course, cuz we want to support our cool country and stuff. That's why we pay taxes, you know. Where was I? Oh yeah... anyway, I showed this to someone, and they said, "But what name brand is that thing?" I said, "Who the fsck cares?!?!?! It's got an AMD processor, the same damn chips present in every other computer out there, I'd bet the shmoes that designed the damn thing know how to deal with EMI/RFI, cuz they do this all day, every day, and they prolly put tog3ther tha same damn comps the name brand comps sell, so what flippin' difference do it make anywho?! It's not like your name-brand IMB or Hewlett Paqard or whatever isn't put together by the same people! Seriously... I'd bet the damn thing will work fine for years. The last time I baught a noname brand laptop was years ago. It was a 486, and it still works fine now! So damn it, who gives a rat's donkey about name brand, it just adds like 500 bucks to the price for the cheap model and like 2000 bucks for the expensive model with all the unnecessary funky dials and switches that Lummox doesn't support anyway, so what diff do it make?
Macromedia should be made to donate a hundred million dollars to the development of Linux and its various programs before they're given the priviledge of calling any of their stuff "open source" because back in the day, when Linux was new, they didn't bother supporting Linux. But now that other people have made Linux a success, without their help, Macromedia expects to profit off this for free or something. So they should have to pay for it.
Other than that, it's cool that they want to call themselves part of the open source community. Ooooooooh well.
Microsoft, Apple, the MPAA and the RIAA are the Inner Party. Their secret goal is absolute power. Power is not a means, but an end.
The Inner Party, if not stopped soon, will take over the entire world. The next thing you know, Digital Rights Management will be present in every part of life.
Upon birth, your DNA, along with biometric scans of every part of your body will be encrypted and stored in two places: In a huge central government computer, located in the Ministry of Love, and in nano-sized implants located throughout your body, implanted upon birth. These implants will contain every piece of known information about you: Police records, medical records, bank records. The implants will also have a Global Positioning System, among other "convenient" features. A history of every location you've been to since birth will be stored, for investigation purposes. Your pulse, blood pressure, and other values will constantly be read and stored as well, for both medical and investigative purposes. Huge computers will constantly perform consistency checks and automated investigations of every person in the world every so often. If any patterns are present in any of your records or positioning coordinates that suggest any kind of abnormal activity, you'll be snatched off by the Thought Police and taken directly to Room 101.
Soon, they will know your every move, your every transaction, your every thought. It'll be like Johnny Mnemonic meets 1984 and the Biblical Antichrist all in one, And Microsoft will be at the helm of this innovative technology.
Ooooooooh well. I need to get another Negra Modelo, while I still can.
Let me tell you something, you STUPID FUCK who moderated me "flamebait"... People outside of this wonderful country think they're so damn smart. They laugh at the United States and think we don't have any common sense or whatever. And yet, when they enter this country, they have trouble differentiating between cash bills that have the God-flippin' amounts written in numeral notation in four places, on both sides of the bill, along with the amount spelled out in English once on each side. *T*H*A*T* *M*E*A*N*S* *T*H*E* *V*A*L*U*E* *I*S* *S*P*E*L*L*E*D* *O*U*T* *I*N* *T*E*N* *P*L*A*C*E*S* *O*N* *E*A*C*H* *B*I*L*L*! If that's not enough to make it quite clear what each bill is, then THOSE FOREIGNERS ARE STUPID PEOPLE, and like I said, THEY SHOULD NOT BE ALLOWEDINTO this COUNTRY!!!!! We're not a bunch of stupid people! We're Americans, and that means we don't need to color-code all our shit like a bunch of kindergardners, damn it!
For two hundred of the Lord's years, the citizens of the United States of America, the most wonderful country in the world, have had NO trouble whatsoever in differentiating between the bills. I don't understand the difficulty! It's like those idiot foreigners who put on their RIGHT turn signal and then turn LEFT. What's the difficulty here?
I'll tell you EXACTLY what the difficulty is: THEY ARESTUPID PEOPLE!
Oh well. I'm obviously pissed off. I'll need to drink some Negra Modelo. It's Mexican beer, as opposed to immitation beer. (All beers that are not Mexican are immitation. Likewise for all food, all girls, and all El Caminos.)
Oh yeah, and I do agree with whoever that is who's sig goes something along the lines of "having a lameness filter on slashcrack is like having a shit filter on your ass." Why the fuck do you need a lameness filter on slashcrack anyway? FUCK lameness filters! In case you think my usage of the word FUCK is excessive, perhaps you should do a bit of research on your own and take a gander at the content indicated by the following uniform resource locator: http://justin.justnet.com.au/rudestuff/uses-of-the -word-fuck.html. And if you CHOOSE not to be bustin no ganders over there, then that'z Joe's problem. (Joe who? Joe-momma!)
Ooooooooh well. Time for more BOOZE. It's FRIDAY!!!)
The instant messaging programs made by Microsoft, AOL and Yahoo! all SUCK! If folks on my network were wasting their time using ANY of those systems, I'd figure out a way to block them completely. If you wanna chat, use IRC, damn it! All these other systems are a bunch of cheap, piece of crap knock-offs. IRC rules. The rest suck. Almost as much as finding out that A.J.'s Fine Foods doesn't have any White Moose in stock. Oh well... Time for more Negra Modelo anyway.
foreigners have a hard time differenciating between the bills
Foreigners are just a bunch of stupid people anyway. If they can't understand what 1, 5, 10, 20, 50 and 100 mean, they shouldn't be allowed into this country in the first place.
Have a hard time differenciating between the bills... What kind of lame-brain dumb motherfscker has a hard time differentiating between bills that have the gosh-flippin amounts written all over both freakin' sides?!?!??!!?!?
Project managers must have better technical knowledge of the subject than those implementing the project. This prerequisite is critical to the project's success!
When it comes to software, folks tend to think the rules are different when compared to other technical jobs. For example, when a bridge is built, no manager would dream of giving the job to someone without a thorough understanding of physics (and more specifically, of bridge-building). But in software, folks tend to think they can hire some geek out of high school and have them implement God's universe within six days.
Unfortunately, it doesn't work that way. Software is no less complicated or serious a discipline than building bridges. If bridges fail, people can die. Likewise, if software fails, people can die just as well, and billions of dollars in damages can occur. Even if you're only implementing a text editor. (Imagine if a text editor corrupts someone's file when they're configuring a satellite computer or something. This is not a joke.) And infinitely more so if you're implementing an operating system, for crying out loud.
Contrary to popular misperceptions, software is a serious matter, not some colorful graphics and icons you click on. To manage a software project, you can't just understand project management. You have to understand what happens when both bits of a XOR gate are high, and you must understand this better than the programmers you manage! Even if they program in Visual Basic. To be a good project manager, who can give reasonable estimates (not just to shut up management, but to tell the honest truth about when something can be implemented with reasonable quality), who can deliver something that's actually worth the resources spent in development, you must be so experienced that you have forgotten 99% of what your programmers haven't yet learned, and they better be pretty damn good programmers.
For software to be truly successful in the coming years of ever-increasing dependency on computers, computer education simply must change. Programmers should become proficient in electronics as a prerequisite to any programming class. Project managers should have been programmers, and damn good ones, for 20 years prior to becoming project managers.
In fact, the disease so-called Intellectual Property should be outlawed. In fact, laws should be outlawed. The government should outlaw itself. Yeah. And the first action any computer program takes when executed is to delete itself and exit. No matter what the program is designed to do.
SCREW IP! In fact, I think it's funny when someone spends a billion dollars developing something and then some shmoe comes along and copies it, profits off it, and leaves the original implementer in the dark!
In case you didn't get it, stupid, this is called sarcasm. I think that if you solved the problem before for another employer, you should forget the solution (employing techniques such as doublethink, as its called in Newspeak), and reinvent it. Then, you should remember the old solution once again (again, employing doublespeak) and check the new solution against the old solution, not for functionality or errors, but rather for similarity. If the new solution is 1% or more similar to the old solution, start over. (Once again, forgetting the old solution, using doublethink.) Then, you'll invent a novel new way of implementing whatever the hell it was you're implementing, and chances are, it'll be a hell of a lot better. For example, if the problem is to print something on the screen, and for the previous employer, you used printf(), then for the new employer, you should have to use something else, because using printf() to print something on the screen is a violation of the old employer's intellectual property rights, and infringes on their right as a corporation, as detailed in the 99th Amendment to the Constitution, "Corporate Right to Eternal Perpetually Increasing Profits and Complete Lack of Competition."
My conclusion? Ask a stupid question, get a stupid answer. Ooooooooooh well.
Yeah. And a better education system would cut the other two thirds. I believe that better programming practices would reduce the number of bugs installed to begin with, thus reducing the amount of testing that must take place.
Better programming begins with better design. The purpose of a program and its interface to the outside world (user, system, etc.) must be spelled out initially. Nothing that doesn't fall into the predefined limited functionality belongs in the program. Period.
I mean, you can make a bunch of programs if you need a bunch of functionalities and stuff, but you shouldn't have a ton of junk in the same program. If you know what I mean. I guess you don't, cuz I can see the flames coming.
The program would be well designed, meaning the basic flow of the program would be defined, and then any number of possible ideas and algorithms would be explored during design time. The program should be designed such that algorithms can be exchanged with as little fuss and trouble as possible. In other words, encapsulation and modularity. The design would require the highest level of efficiency possible, meaning that spacial and temporal resources aren't wasted. In English, that means that a text editor wouldn't require 128 megs of RAM and 6 gigs of hard disk space, and would use up as few processor cycles as necessary, by design. In other words, a totally unoptimized program would execute so efficiently that any optimization would practically be a waste of time. You'll find that programs designed for efficiency are generally more reliable as well, because more thought goes into them before any implementation takes place. Finally, robustness would be a pervasive part of development. Testing mechanisms would be built in to the programs, and by design, those mechanisms could be removed at compile time. I'm not talking about debug information generated by the compiler. I'm talking about tests the programmer, tester and "preview release" users can invoke. A testing suite would also be designed, at design time. Project management is also part of the design process... in other words, for each component of the system, what resources (folks, time, money, etc.) are required, what problems are anticipated, etc. All of this is done by the programming team, not by some stupid manager who doesn't know jack about schitt. Once a ton of design takes place, management reviews it. Which features will be present in which release, etc. As much of everything as possible is anticipated beforehand. (Yeah yeah, you'll never anticipate more than 0.0% of the problems beforehand, but it gets you thinking, and that in itself will reduce greatly the number of errors made later.) Management reviews the design, multiplies all time estimates (which are already over-estimated by the programmers) by 2.5, and sign it or whatever. They can't ask for any new features or whatever until the program is written, debugged, tested, released, feedback comes in, a "huge fixes" release is released, more feedback comes in, and it's time to figure out new features again. This could take weeks or months, depending on the scope of the project or whatever.
Once all that designing takes place, implementation begins. That doesn't mean that design ends. In fact, there's no 'design -> write -> compile -> debug -> fix -> write...' cycle. All of those items are done all the time, like you're multitasking or something. Yeah, you could draw out an operational chart showing all those items, so you'd spend most of your time doing whichever stage that you're on (like debugging most of the time, doing everything else some of the time). This is useful because you might be debugging some obscure problem, and then one of your fellow programmers will say, "Hey, who needs this damn routine in the first place?" (The routine you're debugging.) Maybe the design can change a little bit and then the section that contains that damn bug isn't even necessary. Know what I'm saying?
Also, when I spake of education, I was speaking about all the branches of logic, electronics, math, etc. that are no longer studied as part of the programming curriculum or whatever. I'm talking about heavy duty stuff that programmers need to know cold, because it's actually USEFUL! Seriously... learn a little bit about electronics and you'll be surprised at how a few hundred lines of code can literally be replaced by tens of much simpler lines that execute thousands of times faster (not kidding!) and produce exactly the same results, or better (meaning with less problems and side effects). Seriously... when you design electronics, there's no erasing that capacitor once its soldered on the damn board. You gotta draw it right because you can't erase the metal once its cut. And if programmers thought like this more, and didn't think "oh yeah, we can always change it later" then programs would be better. Because, as easy as it is to delete a bunch of text and change it, you and I both know that sometimes you can't change stuff because of side effects. So yeah, it's easy to type, but as a programmer, you gotta pretend that you're carving the damn program in stone, because you'll probably find that it is carved in stone once you've written about 100,000 lines.
So where was I? Oh yeah, programming... So while you're implementing, the design is reviewed often, perhaps every few days or once a week at least. Problems encountered during implementation are tested against the design, and changes to the design are almost invariably made, with a big eye towards reducing or eliminating coding changes.
Oh yeah, and all this is done by the programmers again. The team meets often to review each others work, ask questions, find errors of any kind, criticize, rip the code apart, put it back together, and stuff. This constant reviewing is similar to the peer reviews that used to take place back when compilers ran on mainframes, where folks paid hefty fees for computer time, and had to schedule an appointment weeks in advance. In fact, I'd advocate dropping a mohogany grand piano hood (or whatever that cover is called) on the programmer's hand who makes the most mistakes during a project. That'll teach him (and get him to type slower, possibly leading to more thought behind each character typed). In fact, I'd get rid of the backspace and delete keys on the keyboards, and make the programmers pay a penny for each character they want deleted, and this would have to be done by a specialist who can write machine code to go to that location on the hard disk and remove the character, moving all the others back by one. Some of us would have to give up our whole damn paycheck if that was implemented!
The core routines of the program, holding the most important crap, would probably be written by the whole damn team on a whiteboard, while questions are asked and shit. I don't care how long this takes, it'll save a ton of time in the end. Shit, some of all ya'lls will have to get a huge room with whiteboards all around and sliding ladders like they have in the old-school libraries. (Damn, dude, I love libraries.)
Once in a while, the programming team will actually take a break from the program they're working on (like every friday afternoon, a few hours before you get off work) and study a bit of Knuth or one of the other classics out there. (There are a bunch of them.) Most of those books contain exercises at the end of each chapter. Pick a tough one, and have it solved by noon on Monday. You can think about it all weekend, talk to each other, whatever. This will expand the whole team's range of thought, and cause them to produce better shit.
Oh yeah, and every line of the program would be run through a debugger, in as many combinations as practical, in order to watch what happens when they execute. All the programming do's and don't's learned over the past 50 years would be reviewed constantly, and the programmers would be required to follow all of these (using common sense, obviously).
And of course, testers would be hired who get paid a small bonus every time they get something to fail. They'll be present from the first day onwards, testing even the individual routines before the program runs as a whole. And once the program runs as a whole, they'll get paid even more for each failure. And they'll have full access to the source code, so they can audit it to their heart's content and figure out innovative new ways to crash it and twist it and make it screw up all evil and stuff.
When a program is ready for release, its release is delayed for an additional two weeks (or month, if you can afford it) as the entire damn team tries everything they can to make it screw up. (And yeah, they obviously fix every crappy thing they find. If all ya'll did it right up to this point, there won't be any changes requiring the damn design to change. Just little coding typos and crap.) Then, it's released as alpha-testing to a small group of folks. Then, once that passes, it's released as beta-testing in three phases to increasingly larger audiences. (Each of these testers gets paid a small amount for each bug they find for the first time.) Then, it's released to the final audience as version 1.0.
Now at this point, a ton of support calls will start coming in and stuff, and folks will get suggestions and stuff for wishlists. All this will be accumulated for a few months while the programming team visits each problem and tries to figure out possible solutions. No coding changes are made during this time. These will be explored in theory, with an eye towards killing as many flies as possible in one swat. After a shitload of stuff is accumulated, the programmers choose proposed solutions, go over them along with management, go over proposed solutions, and choose the best ones. The programmers choose the best ones, that is. Management signs it into law, and they can't change their minds. Only the programmers can, if it's important enough, then call a meeting with management again and get the new law signed into law. These are implemented (again, with the same torture-testing as before) and once again, released to increasingly larger audiences, until finally, it's released as a version 2.0. All even versions are "fix" versions. All odd versions are "new features" versions. They can be developed in parallel, with porting going on between versions. Something like that.
I'd even say, during design time, figure out how many bytes of code something will be, how many lines it'll be in the source code, how much memory and time it'll require, etc. Make up limitations, kind of like how car engineers have to make a throttle body fit in a certain place and fit certain restrictions. They get to play inside that area, but other stuff goes in the other places, so you can't make a throttle body the size of the whole damn car and expect the other crap to be changed to fit. Programmers constantly just write crap and assume it'll fit. If you invent restrictions, you'll be surprised how much better the code will be. It'll also be a challenge to make it fit into the restrictions you choose.
Also, here's something all ya'll programmers will like. When the design is reviewed by management, and you say, "Implementing this should take 4 days" (and "this" would be a sufficiently small part of the system that it stands alone and can be estimated, but large enough that it won't be a single line of code or a single routine or something silly like that). Management will say, "Ok. If you can get this part implemented and working properly (in other words, passing all the tester's tests) within 3 days, you'll get a bonus of X." X wouldn't be like 10,000 bucks, but it wouldn't be 2 cents either. It'll be a small amount that when added to the other bonuses you get for getting everything done on time, you'll have some real money. And, a final release date for the whole damn project is estimated by the programming team. This is multiplied by 2.5 by management, and that's their expected deadline. (Then, if it does get done in time, management claims to be "early" and then everyone looks good. Even if it takes twice as long to get done as anticipated. But if it takes two and a half times as long as anticipated, you're on time. And if it takes longer than that, you're only overdue by a very small amount. And if you're really overdue, you're stupid.) Now, if the program can get released within 90% of the originally estimated time (that is, not the 2.5 times more), then the whole damn team gets a hefty bonus. Just to make them think efficiently.
Ooooooooh well.
I live in Arizona, and I have four Sprint PCS phones: One for myself and three are for my "on-call" employees. These phones are on 24 hours a day for obvious reasons.
A disgruntled ex-employee in Delaware (who had been fired years ago), who happens to know my phone number, strolled into a Sprint PCS store in Kentucky, and asked the proprietor (or rather, the idiot working there) to bring up my account information. Now remember: All this person knew was my phone number. The Sprint PCS idiot happily punched up my account and showed the unidentified person my account details: All my phone numbers, numbers that had been called on these phones, how much my bill was... it goes on and on. In short, someone who only knew my phone number got access to all my "private" information, no questions asked.
I discovered this when the person in Delaware (who was in Kentucky at the time) called and told me, in the form of a threat. I immediately called the Sprint PCS customer support line and told them of the problem. They had some explaining to do, and I expected them to immediately change my phone numbers and account information. They refused, and explained that any such breach of security was impossible: The gentleman in the store should have asked for an account password. If the customer didn't know the password (or so claimed the customer support woman), the account information could not be accessed. This made sense, as computers do ask for passwords before showing any protected information. So I assumed the ex-employee was lying to annoy me, and dropped the issue.
Later that night, angry employees began calling me repeatedly and complaining of crank calls. Then, I got a call from the disgruntled shmoe in Delaware. Turns out, my assumption had been wrong. I came to the conclusion that private account information is protected by nothing more than a company policy: The employees in the stores can bring up any account, and the password is DISPLAYED along with all the other information. They're SUPPOSED TO ask you for the password before giving out any information. That's one hell of a security system, eh? So I immediately called Sprint PCS's customer support thing again, but this time, when they answered, I demanded to talk to a supervisor. The conversation went something like this:
Sprint PCS lady: May I ask about the nature of the call?
Me THE NATURE OF THE CALL IS SPRINT PCS GIVING OUT MY PERSONAL INFORMATION TO STRANGERS WITHOUT MY CONSENT!
Sprint PCS lady: One moment...
At this point, a supervisor lady answered, and I explained (rather angrily, I may add) exactly what happened, and DEMANDED that they change all my phone numbers IMMEDIATELY. (I was doing this as an immediate action, to be followed by any number of things, including the high possibility of cancelling my account altogether, followed by strong legal action.) Now the supervisor freaked out and got a bunch of people on my case within minutes. She explained that my conclusion about their security had been correct (that nothing is password protected at all), but that I could optionally make my account "high security", which basically means that certain other information (like a social security number or something) is needed before account details can be accessed. So I demanded that my account immediately be made high security. Then, she began the process of changing my phone numbers, and mentioned that it would cost some amount of dollars to make the change. At that point, I became pissed and said, "I'M STILL CONSIDERING WHETHER I'M GOING TO SUE YOU AND YOU'RE GOING TO CHARGE ME TO CHANGE THE PHONE NUMBERS, AFTER YOUR COMPANY SCREWED UP?!?!?!?" She realized the error of her ways and waived the fees. I continued to raise hell with Sprint PCS for an hour or so, making DAMN SURE that no errors would occur in my next bill (because every time a change is made with them, errors show up in the next bill or two and you have to call and bitch about it, especially when you have multiply phones), and that international calls won't be disabled on the phones (because enabling international calls is a long and complicated process with them, one that raised my blood pressure to the sky too), and that various other problems won't pop up. In all, they were a bit helpful, considering they did screw me over.
But anyway, that was MY story of how much their security sucks.
Nice analysis, man, nice! I would like to point out a few things:
Windows has tons of configuration options, with most of those being hidden it clsid's and other crap. It's either configuration TEXT files or a kludge of a registery.
Uh, that's because Microsoft is STUPID. If all that crap is hidden in all sorts of places, then the damn values should just be hard-coded (in a global header or something, so it can be changed in one place if the need arises) because nobody can change them anyway! There's no need for all that crap they have in there. It's part of the reason Windows is such a piece of crap. There's no need for it to take up a flippin' gigabyte. Microsoft is just really wasteful, mostly because they have to HURRY HURRY HURRY to finish implementing the next version and get it out the door. As if anybody was bitching that Windows 95 was getting boring because it wasn't new anymore, so they had to hurry and make Windows 98. I personally wouldn't have minded one bit if they'd have taken a few more years putting together Windows 98, but released something that's rock solid. Of course, this is Microsoft we're talking about.
Funny thing is Linux is sort of the P2P os. All the parts are everywhere, there are multiple 'fixes' to the same problem, and developers are around the world. Asking some standards body to make a "UnifiedLinux" is asking for trouble.
And who said anybody would have to merge UnitedWhatever's changes back into the main sources? Who said they can't take a shitload of GPL'd stuff, analyse it, figure out where the duplication is, rip it apart, put it back together, and sell it as another product? Yeah, the dreaded code fork. But hey, this is GPL'd software, and any shmoe out there can do a code fork. If it's successful, and that company sells it as "Linux" (because it contains a ton of "Linux" code), a lot more people will get interested. Already, 99% of users hate Windows. I see it everywhere Windows is installed. People hate it because it's clunky, no matter how good Microsoft makes the user interface. It's crash prone. People don't trust their computers. Business owners pay a ton of money for licenses and upgrades, and Windows creates all sorts of headaches for them. Literally everybody I've spoken to about the subject (mostly non-programmer types, too) say, in one form or another, that Windows (or more generally, that their computer) SUCKS! And it's because of the unreliability that Microsoft trained everyone to accept as a fact of life. I disagree with this outlook. I believe software should be damn reliable, because it's used in so many ways and whatnot. It's an engineering job that's no less serious than one of building bridges or buildings or whatnot, and it's getting increasingly more serious with each passing day. The time for "who cares about the bugs, they'll just reboot or something" is long over. Computing is a serious matter, and it must be treated as such.
I dont agree with that... You live in a home, so /home it is. If you have problems with .conf's everywhere (like I did), just cp the files to /etc and sym-link to the original location. Now ALL your configs are in 1 place. Now you can back up your /etc dir (and sym links across your whole FS).
First of all, I said home goes under user, so it'd be like /usr/home/rice_burners_suck or whatever. Not /usr/rice_burners_suck. That would be stupid. UNIX lets you mount crap wherever you want, so why not mount a home partition under /usr?!?!?!??! And the other comment about the symlinks... That's a good one! I'll have to try it someday.
Well, it's 2:00, and I actually have to get some crap done today.
Hey, that's cool. I'd just like to point out that I never asked anybody to agree with my viewpoint. I only described my reasons for switching from Linux to FreeBSD. That's all.
As far as superior stouts are concerned, I've had this Murphy's that you're talking about (though admittedly from bottles--I haven't had a real Murphy's yet). I agree that it's very good.
What I don't like about Guinness is something about its aftertaste. It tastes salty for some reason. I don't recall Murphy's giving me that. Oh well...
Oh yeah... and you mentioned that Linux gives you flexibility through its Sys V style runlevels and whatnot. But honestly, who the hell uses runlevels? When I used Linux, my "server" boxes were always in runlevel 3 (IIRC, multiuser with network services) and my "desktop" boxes were always at runlevel 5 (everything in 3 plus X). The runlevels just made all the configuration into a big mess. Why do you need on the order of 100 start/stop scripts in rc when about 5 centralized scripts will do the work? When do you use runlevels anyway? Once in a year when you want to check something out on your server? Just use kill -9 and do it yourself! And suppose you do actually use runlevels more than once in a lifetime... I assure you that a few well-designed scripts will get the job done without the mess that everyone deems necessary in a Linux distro. (And who said Linux can't use FreeBSD-style init scripts?)
Yeah, man, don't you get it? Eschew duplicated efforts by... duplicating efforts!!! Seriously, make yet another [insert type of program here], so that everyone will have to maintain 100 different programs that ls in color, rather than just one program that does the same thing without the 100 times duplication! Oooooooooooh well.
I am particularly upset about this, because my company began development on an industrial product with eCos at its core. We invested at least $50,000.00 in development. Now, management is freaking out, and we have to investigate new operating systems, and possibly re-develop some key portions of our system.
Just kidding. We didn't really do any of that. But seriously now, my company was seriously considering eCos as the operating system for our upcoming project. Personally, I would have greatly preferred eCos over the other solutions we're evaluating, particularly because I'd much rather support eCos than some proprietary solution. (And because the money spent on the proprietary solution could be spent on better analysis tools and whatnot, and because you don't normally get the sources for proprietary stuff, which is a huge problem in hard-core embedded systems, and because... ten thousand other reasons.) I was looking forward to working on eCos, as it appeared to be a very promising system. So this is pretty disappointing news.
That just means they drink too much Guinness in Scotland.
They should drink Negra Modelo instead. Then, maybe the aliens would stop by and have some with them, and they'd get to talk to the aliens and figure out where the hell they're from. But aliens obviously don't like Guinness. Oooooooooh well.
I have to give Ransom credit for his good answers. Especially in the area of whether Caldera will make billions off Linux without giving back to the community. Ransom makes it pretty clear that Caldera's development of Linux, even though done for profit, is in itself something big that's being given to the community--it's the effect that takes place when a product has a lot of support from reputable companies more than which lines of code Caldera writes and puts wherever. Even in Caldera didn't write a single apostrophe of code but only packaged other people's hard and free work and sold it for profit, they'd still be opening a market window for the Linux community that wouldn't have existed otherwise.
I believe that for Linux to really be successful, both in terms of code quality and widespread acceptance, a team of companies needs to get together with a specific purpose to fulfill: To develop a desktop version of Linux similar in functionality to Windows XP or Mac OS X. In other words, other than a few options here and there, it wouldn't really have the possibility of configuring every detail. The bare-bones system, which basically means a desktop with a few icons on it for basic functionality (and no applications) would basically be integrated into the kernel. When the computer boots up, it boots directly into a nice graphical desktop, kind of like the way BeOS did, except Linux will actually stick around. Most of the configuration would be built in, heavily reducing the number of "system" files. No desktop system needs to drown in its own configuration. I would say that a really good bare-bones desktop Linux OS shouldn't take more than 15 to 20 megs of space, and that includes all the beautiful graphics it would have. To make this system useful, a number of applications made specifically for this version of Linux would be included, increasing the size to about 60 or 80 megs. This might include the standard "fun" stuff that consumers look for, like video editing, audio editing, image editing, and the more mundane crap, like word processing and whatnot. Obviously, major formats would need to be recognized. Only when something that's actually easy to use becomes available, Linux will skyrocket in popularity and Windows will go into the dumpster. Yeah, most of the code for this exists. Someone just needs to recognize why Linux tends to be so damn complicated, and rearrange these pieces into something that's really well designed and coherent.
As a disclaimer, just so someone doesn't say, "You stupid fsck! If you think Linux is too hard, go back to Windows and enjoy crashing all the time. Otherwise, learn how to use the damn thing!" I've been using Linux for years now, since an old Yggdrasil distro I picked up at some computer trade show, and a 8 CD set of crap they downloaded from a bunch of mirrors and stuck on some CDs. (Back in those days, those CDs were really handy, especially considering that most folks had a 14.4 connection. And that was considered fast! Even 56k was far off! So that was a loooooooooooooooooooooooong time ago.) Anyway, I've since realized that Linux is too fragmented. There's way too much duplication of effort. The Linux file system "standard" is totally wrong, IMO, because everything's in the wrong place. (/home should be under /usr, for example.) And the configuration is a nightmare! There are literally hundreds of configuration files strewn all over the system! So I since moved on to FreeBSD. All ya'll Linux folks out there can learn a shitload of great stuff from the BSD folks. Just look at how much of the system configuration for a FreeBSD system is in a single file (rc.conf). In Linux, this would be scattered across 10,000 different files in a monster directory structure under /etc/rc or something like that, as far as I remember. As you can easily tell, I haven't touched a Linux system in ages, and there's a reason. That's why I say this desktop thing needs to be made. Linux can kick Windows' ass in server stuff. Now it needs to start kicking Windows' ass in the desktop, because only when Microsoft loses that battle, they'll no longer be able to embrace and extend, a practice that fscks up all our code because we have to be compatible with their bugs, flawed design decisions, and programming features probably designed by lawyers and marketeers rather than programmers. Ooooooooooh well. Oh yeah, I had all kinds of Negra Modelo last night. It was fun. (If Cerveceria Modelo made software, their operating system would kick everyone's ass!)
Man, I don't go to the damn frats. Cuz they SUCK!
Well, I got a solution to this alleged problem, then, and it's not DRM, or the DMCA, or all kinds of horrible laws that will have our grandchildren trembling in fear from the Thought Police. It (the solution) is as follows:
Artists who want to make money will make music to target the less tech-savvy folks. Like, Metallica will play Beethoven, and Pantera will play Chopin, and Black Sabbath will play Mozart, and Led Zeppelin will play Strauss (Jr), and so on and so forth. They'll make a shitload of money because each person who listens to that stuff will buy a copy.
Artists who want to die of hunger in the streets will play cool music.
This solution will work because it will get rid of all the stupid new music that's being made, and it'll keep the old geezers of the world busy listening to all the old fashioned music of like 1000 years ago. In the meantime, all us tech-savvy folks will have no choice but to revert to the heavy metal of the 1980's, and then the good ol' days will return. (And I can listen to that because I have long hair.)
I believe that as consumers find video and audio to be an increasingly important part of their computing experience, increasingly more operations will emmigrate from the main processors, onto auxiliary processors designed and programmed for specific purposes.
The good ol' SGI machines, for example, could have up to 12 "graphics-only" processors, if I remember correctly. Nowadays, as home computers are approaching (and perhaps even surpassing) the raw speed possible with the good ol' SGI machines, perhaps the idea of multiple specific-purpose processors and one (or more) general-purpose processors makes more sense.
Right now, these are available in the form of add-on PCI cards, but I believe that as standards converge and begin to stabilize, you'll find motherboards produced with an assortment of processors. For example, a motherboard might be produced with on-board processors for:
You might even put an implementation of X on a CPU specifically designed for the purpose, thereby offloading even more crap from the main processor. In other words, these specific-purpose processors could offload quite a bit of crap from the main processor, making your applications a lot more responsive, even while you've got a ton of really intensive stuff going on. And if you buy cheaper hardware that doesn't have one or more of these "standard" chips, it'll just happen in software, and slow down you system accordingly.
Oooooooh well.
Sorry my post offended you. I'm replying in connection to your statement that, "if you thought about it some more, you'd realize Adobe is even worse than Microsoft is." Could you please explain your logic? I know Adobe sucks for several reasons:
All that said, Microsoft is the big huge evil empire. They're gonna end up turning this world into a 100% digitally rights managed world where you have to prove your innocence every time someone farts or you'll be taken to torture chambers and made to conform. Microsoft's products are some of the worst ones out there in terms of bloat, efficiency and reliability, and yet they've managed to stuff their garbage down the throats of the entire world, getting everything so tied up in their proprietary formats and whatnot that it'll be damn near impossible for the good guys (Linux and the other Free software projects out there) to save the world. Adobe's programs are somewhat more reliable than Microsoft's, in my experience (I used them in school--no, I'd never waste money on their software when there's perfectly good free alternatives, and even if there weren't, I'd buy from Corel, or anyone else who's more reputable than Adobe), and Adobe's software isn't shoved down every single person's throat. So, sorry for wasting your time, but how is Adobe worse than Microsloth?
So this means that, what, Solaris is gonna run GNOME by default?
I prefer to purchase products from Microsoft's competitors.
Yeah, I can see where this'd be useful.
Actually, I was gonna cut off my comment ther, butt I figgered I cood right mor abowt thiz. So heer it iz. Printin' chips cood bring the price down and allow finer resolution or whatever, making it possible to put a million billion tranziztorz on a dam chip, making it possible to make chips so complicated that a program to printf "hello world" will be like a thousand gigabytes, because there'd be like 999 gigabytes of setup code to get all the transistors pointing in the right direction or something, and then like a gigabyte of code to actually do the work, and the whole damn thing'll get executed in like five days or something. It'll have like a million billion exahertz internal clock, so they'll sell it by that number and people will buy, but in reality, they'll've broken each operation into like 500,000,000,000,000,000,000,000,000 separate stages in the processor, so when it comes down to it, it'll take up like a trillion gigawatt-hours of electricity to power this processor for like a picosecond, and then the whole damn grid will meltdown, leaving us in the stoneage or something. Ooooooooooooooh well.
Yeah, you should've let me stop at that first sentence where I originally planned to stop, but, you know, whatever.
Dude, Fry's had an ad in the other day's Fry's section of the newspaper, where there was this cool laptop for a cool grand. Actually, it was for eleven hundred bucks, but there's an automatic hundred clam rebate, so that brings it to like a grand, plus tax, of course, cuz we want to support our cool country and stuff. That's why we pay taxes, you know. Where was I? Oh yeah... anyway, I showed this to someone, and they said, "But what name brand is that thing?" I said, "Who the fsck cares?!?!?! It's got an AMD processor, the same damn chips present in every other computer out there, I'd bet the shmoes that designed the damn thing know how to deal with EMI/RFI, cuz they do this all day, every day, and they prolly put tog3ther tha same damn comps the name brand comps sell, so what flippin' difference do it make anywho?! It's not like your name-brand IMB or Hewlett Paqard or whatever isn't put together by the same people! Seriously... I'd bet the damn thing will work fine for years. The last time I baught a noname brand laptop was years ago. It was a 486, and it still works fine now! So damn it, who gives a rat's donkey about name brand, it just adds like 500 bucks to the price for the cheap model and like 2000 bucks for the expensive model with all the unnecessary funky dials and switches that Lummox doesn't support anyway, so what diff do it make?
Macromedia should be made to donate a hundred million dollars to the development of Linux and its various programs before they're given the priviledge of calling any of their stuff "open source" because back in the day, when Linux was new, they didn't bother supporting Linux. But now that other people have made Linux a success, without their help, Macromedia expects to profit off this for free or something. So they should have to pay for it.
Other than that, it's cool that they want to call themselves part of the open source community. Ooooooooh well.
Microsoft, Apple, the MPAA and the RIAA are the Inner Party. Their secret goal is absolute power. Power is not a means, but an end.
The Inner Party, if not stopped soon, will take over the entire world. The next thing you know, Digital Rights Management will be present in every part of life.
Upon birth, your DNA, along with biometric scans of every part of your body will be encrypted and stored in two places: In a huge central government computer, located in the Ministry of Love, and in nano-sized implants located throughout your body, implanted upon birth. These implants will contain every piece of known information about you: Police records, medical records, bank records. The implants will also have a Global Positioning System, among other "convenient" features. A history of every location you've been to since birth will be stored, for investigation purposes. Your pulse, blood pressure, and other values will constantly be read and stored as well, for both medical and investigative purposes. Huge computers will constantly perform consistency checks and automated investigations of every person in the world every so often. If any patterns are present in any of your records or positioning coordinates that suggest any kind of abnormal activity, you'll be snatched off by the Thought Police and taken directly to Room 101.
Soon, they will know your every move, your every transaction, your every thought. It'll be like Johnny Mnemonic meets 1984 and the Biblical Antichrist all in one, And Microsoft will be at the helm of this innovative technology.
Ooooooooh well. I need to get another Negra Modelo, while I still can.
For two hundred of the Lord's years , the citizens of the United States of America, the most wonderful country in the world, have had NO trouble whatsoever in differentiating between the bills. I don't understand the difficulty! It's like those idiot foreigners who put on their RIGHT turn signal and then turn LEFT. What's the difficulty here?
I'll tell you EXACTLY what the difficulty is: THEY ARE STUPID PEOPLE!
Oh well. I'm obviously pissed off. I'll need to drink some Negra Modelo. It's Mexican beer, as opposed to immitation beer. (All beers that are not Mexican are immitation. Likewise for all food, all girls, and all El Caminos.)
Oh yeah, and I do agree with whoever that is who's sig goes something along the lines of "having a lameness filter on slashcrack is like having a shit filter on your ass." Why the fuck do you need a lameness filter on slashcrack anyway? FUCK lameness filters! In case you think my usage of the word FUCK is excessive, perhaps you should do a bit of research on your own and take a gander at the content indicated by the following uniform resource locator: http://justin.justnet.com.au/rudestuff/uses-of-the -word-fuck.html. And if you CHOOSE not to be bustin no ganders over there, then that'z Joe's problem. (Joe who? Joe-momma!)
Ooooooooh well. Time for more BOOZE. It's FRIDAY!!!)
The instant messaging programs made by Microsoft, AOL and Yahoo! all SUCK! If folks on my network were wasting their time using ANY of those systems, I'd figure out a way to block them completely. If you wanna chat, use IRC, damn it! All these other systems are a bunch of cheap, piece of crap knock-offs. IRC rules. The rest suck. Almost as much as finding out that A.J.'s Fine Foods doesn't have any White Moose in stock. Oh well... Time for more Negra Modelo anyway.
Foreigners are just a bunch of stupid people anyway. If they can't understand what 1, 5, 10, 20, 50 and 100 mean, they shouldn't be allowed into this country in the first place.
Have a hard time differenciating between the bills... What kind of lame-brain dumb motherfscker has a hard time differentiating between bills that have the gosh-flippin amounts written all over both freakin' sides?!?!??!!?!?
Project managers must have better technical knowledge of the subject than those implementing the project. This prerequisite is critical to the project's success!
When it comes to software, folks tend to think the rules are different when compared to other technical jobs. For example, when a bridge is built, no manager would dream of giving the job to someone without a thorough understanding of physics (and more specifically, of bridge-building). But in software, folks tend to think they can hire some geek out of high school and have them implement God's universe within six days.
Unfortunately, it doesn't work that way. Software is no less complicated or serious a discipline than building bridges. If bridges fail, people can die . Likewise, if software fails, people can die just as well, and billions of dollars in damages can occur. Even if you're only implementing a text editor. (Imagine if a text editor corrupts someone's file when they're configuring a satellite computer or something. This is not a joke.) And infinitely more so if you're implementing an operating system, for crying out loud.
Contrary to popular misperceptions, software is a serious matter, not some colorful graphics and icons you click on. To manage a software project, you can't just understand project management. You have to understand what happens when both bits of a XOR gate are high, and you must understand this better than the programmers you manage! Even if they program in Visual Basic. To be a good project manager, who can give reasonable estimates (not just to shut up management, but to tell the honest truth about when something can be implemented with reasonable quality), who can deliver something that's actually worth the resources spent in development, you must be so experienced that you have forgotten 99% of what your programmers haven't yet learned, and they better be pretty damn good programmers.
For software to be truly successful in the coming years of ever-increasing dependency on computers, computer education simply must change. Programmers should become proficient in electronics as a prerequisite to any programming class. Project managers should have been programmers, and damn good ones, for 20 years prior to becoming project managers.