I think this article is a bit obvious for most people who've had any training in how databases actually work and I think Monty was actually pretty gracious for taking the time to give the interviewer a smidgeon of clue.
From the article:
Is it easier to maintain ACID principles with pure RAM?
Yes. This makes ACID almost trivial.
Umm, no. There is no difference in the ACID algorithm whether the database is stored in memory or on disk. The only thing that is easier to do in memory is to fake it, because for low levels of concurrency you can serialize everything without anyone noticing. But that strategy will collapse under load. Far better to do it properly the first time. Yeah, it slows you don't with a single user, but when you have tens or hundreds of users connected, it'll still work.
With RAM the algorithms that one uses to store and find data will be the major bottleneck, compared to disk thrashing now.
Actually, the algorithms are the bottleneck on disk too. Monty would know this if he had a query optimizer like the one in Oracle (or had even looked at an explain plan).
It's when you store data on disk that you are still manipulating on disk that you need the ACID principles.
Nonsense - you need ACID if there is any conceivable case in which two users might want to access the same data at the same time, or if there is any conceivable case that a write could fail, or if you want to support commit/rollback at all. In other words, if you're running a database and not a simple SQL interface to flat files. Hell, there's an ODBC driver for CSV that does all that MySQL does.
If you have a database that is stored in RAM and periodically written out to the hard disk (for backup reasons) then you get better performance than if you have a database that is reading and writing most of the time.
EMC and similar storage arrays have done this for decades; the array cabinet itself contains enough backup power to flush the caches to disk and power down cleanly if the main power supply fails (assuming you didn't already have a UPS there, of course, and if you can afford EMC then you can afford a diesel generator in the basement:-) ).
Surely a well tuned database server stores uses quite a lot of RAM for buffering?
Well, a professional database like Oracle manages its own cache, but MySQL really only relies only on the OS-level cache. The problem with that approach is that the database knows a lot more about what you're doing, so it can make much smarter decisions about what to cache, what to age out, what to prefetch, etc. On an Oracle server, you want to lock the buffer in memory, and leave as little as possible over for the OS filesystem cache. You see, if a block doesn't exist in the cache, it has to be fetched from disk into the database cache, and if it does, the db will go straight to its own cache. Another caching layer inbetween provided by the OS is just wasted.
I don't think Monty understands any of this; in the article he seems to say that ACID, rather than being a fundamental principle of relational databases, is just something you need to do because disks are slower than RAM. The only reason that you might not want full ACID and use semaphores instead, as he suggests, is because you are only updating one record in one table in a single transaction!
Further, if he is thinking in terms of a few Gb of data, then he is a little out of touch with modern database usage. SouthWest airlines do not have a database that stores 10 bytes of data for every seat on every flight, and I have a hard time figuring out why they would want to - the database of seats would be tied into the customer records, the freight/baggage handling database, the billing records, the accounting system. That is the point of relational database, that you can query data based on data that exists elsewhere. Monty thinks in terms of databases that have only a few tables, because that's all you can do in MySQL. He says that database programmers are forced to be very careful about the consistency of their data - well those using MySQL are, but those using Oracle (or any other database with real transactions and real integrity constraints) find it's all taken care of transparently.
If you think that there is no "art" to science, then all you will ever be is a technician, not a scientist, and hardly an effective engineer.
The thing I am objecting to is not creativity or innovative thinking, rather the assertion that programmers are somehow "special". Ideas are important, but in the grand scheme of things, ideas are very little of the effort involved in making anything happen. Walk into any meeting in any company in the world and for the price of a box of donuts you can get more ideas than anyone could ever use, and some of them will be pretty good too.
It's also my experience that programmers who aren't very creative tend to write out chop-shop inefficient code that's wedged into the schema of the program and all-too-often has high computing costs.
As with all things it's a balance. I've worked with people who have almost no creativity and only know one way to do things. I've worked with people who are all "creativity", these people always think they can build a better language, GUI toolkit, network protocol etc, they reinvent the wheel on every project.
Guess what? You can point the former at a well-defined task and they'll get it done. You can predict how long it will take them, and you know what you're going to get in the end. You leave the latter unsupervised, and they won't channel their creativity into the problem, they'll waste time on their pet projects. Usually these are the "programming is an art" types who think the rules don't apply to them. They ignore schedules, they don't answer the phone, they're rude to the end users, and as soon as they can be replaced, they're out the door.
it is an art, whether you can admit that or not
You think in 300 years there will be printouts of your code in a museum, hanging next to a Vermeer or a Monet? LOL!!
Programming is a craft. It takes a lot of training and a bit of talent. It's like being a carpenter - it ranges from construction workers putting up houses to fine cabinetmakers handcrafting one-off pieces. But it is not an art in the same sense that composing music is an art - a programmer is more like a session musician.
The fact is that I.T. is a young person's industry, be it due to misconceptions or not, and unless you get in early it will be very hard to make it stick. We all know how rapidly the technology changes and how hard it can be to keep up
I think it's a misconception that all technology changes rapidly. Sure there are a lot of new buzzwords all the time, so just list them on your CV to get past HR, and you'll find the tech actually in use doesn't change nearly as quickly. If your skills are in say DB2, or Solaris, or MFC, or SPSS you could take someone whose skills are 5 years "out of date" when it comes to buzzwords who is perfectly competent to do that job.
The fact is that I.T. is a young person's industry, be it due to misconceptions or not, and unless you get in early it will be very hard to make it stick. We all know how rapidly the technology changes and how hard it can be to keep upall technology changes rapidly. Sure there are a lot of new buzzwords all the time, so just list them on your CV to get past HR, and you'll find the tech actually in use doesn't change nearly as quickly. If your skills are in say DB2, or Solaris, or MFC, or SPSS you could take someone whose skills are 5 years "out of date" when it comes to buzzwords who is perfectly competent to do that job.
that programming isn't just a job or field of study.
Instead it is an "art" and you either have the gift to program and truely zone out and become the code, or you don't.
Smoke enough dope and pumping gas becomes an "art". You can like, totally zone out, dude. Programming is no different from any other tech/science job. I'm sure chemists and civil engineers don't have all this pretension. Do your job and do it well, then go home and live your life. The people who act like professionals will have careers; the "rock stars" who code 16 hours a day straight out of college will burn out. A career is a marathon, not a sprint.
how all the older coders say: "Companies don't want us, in this market they want all you kids who will work for peanuts"
while we kids all say: "Companies don't want us, in this market they want people with experience."
You will find that there is a "sweet spot" in your career, between 3 and 6 years experience. Any less than that and you're probably still a "graduate trainee", any more than that and you're starting to make financial and personal commitments (mortgage, kids, whatever) and your price goes up and your availability (late nights, weekends, etc) goes down.
In the first 3 years of your career, don't even worry about money (altho' money si good too:-) ), just worry about getting great experience at a company that's respected and known in the IT market. Could be a software house, could be a bank, could be a household name like GE or Boeing. Between 3 and 6 years, leverage that to make some money and take some risks, maybe join a startup. But come 6 years, get into a company with a reputation for treating its staff well, the sort of place with a very low churn rate, where your interviewers have been with the company 15 years. Ideally if you change jobs, try to go to another one like that. Don't get off this track until you really are a guru, then start your own company.
If you think about traditional professions, 30 is young, especially in complex technical fields like lawyering, doctoring.
Yeah, I always laugh when these kids with a couple of years experience in IT call themselves "gurus". In any other profession, 5 years experience is barely enough to be allowed to work unsupervised!
The poster who noted that leading-edge programming languages are only leading-edge for a couple of weeks is absolutely correct. COBOL may not be cool, but it was once leading-edge and has persisted because it works. Want to take bets on whether applications written in COBOL or applications written in (enter name of flashy new language here) are more likely to still be running in 20 years
IBM are investing a lot of time, effort and money into making Java the new COBOL and VB - a standard business-application language with mature libraries and tools, that everyone knows and so programmers are cheap and easy to find. I say COBOL and VB because it can be used both on the back and front ends.
Back in the day, I reckon even COBOL was the "hot" skill, lots of young programmers on high salaries who thought they would change the world. In 30 years time, the next generation of programmers will be sneering at "Java dinosaurs" while they use their hot new language, but the Java dinosaurs will be the ones with the last laugh, just like all the old COBOL geezers found themselves hot again (for a few years anyway) because of Y2K. We got the 32-bit overflow in 2037 coming up, remember. And in 60 years, the generation after them will be the same. There ain't anything new under the sun.
That seems to be the way of things. But generally, we don't expect doctors and lawyers to become managers, so why should we expect software developers to do so?
Yes we do. A good lawyer will eventually become a partner in the firm, at which point their job will be a) selling new work b) supervising younger lawyers and c) handing the really tricky cases that the associates can't. The same is true in civil engineering, accounting, management consulting, even medicine (don't you watch ER?:-) ). It also happens in teaching, a good teacher will become a head or a principal, and have less to do with standing in front of a class and more to do with the budget. In the military, senior officers join the General Staff and concentrate on planning and strategy, while younger officers actually lead the troops on the ground. In fact, that's the way it works in every profession.
What you should be asking is, what makes programmers different?
BBC shows us that your competition is worse than you could ever imagine. Your next comercial code might be written in an Indain jail. I wonder if the Chinese do this. Uhg, slave labor at it's purest. Comercial code writing is dead, long live free software!
Umm, did you read the article you linked to? All it says is that prisoners will be taught to use computers to run simple accounting packages, so they have a chance at a job when they're let out. You think cars were made in prisons just because prisoners were taught to be car mechanics? You're just scaremongering.
The software world is moving away from the closed source model faster than you can imagine
There's no evidence of this. Open Source has been around a hell of a lot longer than the late 90s you know. IBM were shipping source code to their customers in the 60s. Open source isn't really even that useful to most organizations - if you're a widget manufacturer, your business is manufacturing widgets, not hacking device drivers, unless they're drivers for widgets, and you aren't going to give those away to your competitors! Open source is an interesting phenomenon, and I use lots of it every day, but it's not going to take over the whole world.
He did not count on free software eating his lunch. I wonder if he funded this Indian programming effort. Here, he's going the other way. Instead of trying to get convicts ready for life outside of jail by teaching them progrmming, he's trying to get programmers ready for jail by changing the law.
Gates is the richest man (and one of the biggest donors to a wide range of charities) in the world. He's said many times he plans to give away all his money before he dies. ESR lives in a shack in the woods. Who's eating who's lunch here?
but in Futureland couldn't exist without the continued processor power of 6 billion human brains, connected. Now *this* I could've bought, even if it strained my credulity more than I normally allow.
I suspect they were well aware of this, but Morpheus holding up a Pentium probably didn't have quite the same dramatic flourish as him holding up a Duracell, and Trinity calling Neo "coppertop".
Ancient ("Classical" or "Hellenistic") Greece and post-Renaissance Europe are distinct cultures, altho' of course a lot of Renaissance thinking was a continuation of what the Greeks started.
So give her estimated labor costs of installing and supporting MySQL vs cost of purchasing, installing and supporting Oracle. Don't forget hardware costs.
And don't forget to include the cost of porting your app to Oracle when some developer finds he has to use a subselect or a trigger or a distributed transaction:-)
Unfortunately IBM isn't very likely to want to support OpenSSH and VNC. They will probably want to sell you some of their support tools.
I've worked with IGS before. They aren't in any way constrained to use IBM technology, they're a completely distinct P&L. Last job I used them for was implementing BEA WebLogic on Suns! They'll do anything they can make money at.
You are moving from O2s to PCs with Linux, and you are worried because the new machines won't be able to handle the visualization tasks? Worry about what to do with the lack of ethernal coffee pauses while you wait for programs to load or thing to compile, but don't worry about the PCs not handling the task.
It should come as no surprise that a 2003 PC is faster for some tasks than a 1996 workstation! What might come as a surprise is that for tasks bound by memory bandwidth or disk I/O rather than raw CPU, the O2 or Octane will easily match the PC. I see this all the time. PCs have nothing that compares to xbow, for example. Hell there are still things you can do on the old Max Impact that a PC would be hard pressed to keep up with.
Even if you compare PCs to Octanes, Octane 2s or Fuels, the PCs win.
Remember, an SGI is a workstation. These machines were built to do a fairly limited range of tasks very well, yet retain some general-purpose capacity. A PC is, well, a PC. It's a general-purpose machine that can also do some specialist tasks. A PC that can match a Fuel at what the Fuel was designed for is a rare beast indeed, and probably costs more too!
Now, say you had that particular problem solved and the only thing left is that all-important pitch to Upper Management. What arguments would you use in your attempts to get their approval? What statistics and references would you point to, in order to back everything up?
I wouldn't even bother. I would call the local IBM Global Services office and ask them to pitch for the job, and dangle the carrot (whether it exists or not right now, it might to in the future) of outsourcing the management of said Open Source infrastructure to them. I assume that you don't actually care who runs it from day to day just so long as it's Open Source. They'll make a far more convincing argument that you can alone - remember they employ people full-time to do nothing but research and put together fancy presentations (as do all consulting firms... you don't think the slick performers doing the presentation will actually show up to do the work, do you?).
It's fun to snipe, of course, and it's nice to feel some kind of safety/security in the fact that they've been very late on many things and/or delivered with bugs.
It's easy to mock, but at least Microsoft have ship dates and feature lists. That means decision makers - like CIOs and CTOs - can make at least tentative plans. The Open Source style, it'll ship when I feel it's more-or-less ready, and it might have feature X unless I get bored coding it, drives potential users away.
you suggest that it was owned/operated by the government. what are you talking about ? it was a private company, who, thru government regulation, forced them to allow non-Bell commuications over their wires.
You haven't gone far enough back. Yes, Ma Bell was a corporation, but it was granted a state-sponsored monopoly on telecomms. The unbundling of the local loop is a very recent thing. Back in the 1907-1919 period, when Bell System was run by Theodore Vail, he convinced the government that telco was a "natural monopoly" and the government effectively outlawed competition in the telco space by granting Bell System an exclusive license to operate the phone infrastructure of the country. Local calls are free because it was a vote winner, and long distance is expensive because the money had to be made somewhere. It wasn't until 1982 that this monopoly grip began to be gradually released, and as the "local loop" or "last mile" cable operators are finding, the Baby Bells retain a lot of control of infrastructure even now that was created under monopoly conditions, giving them a leg up in the market that no competitor could match.
I don't understand why Americans are so against government intervention in this area. It's not so evil or communist to have the government subsidize, legislate or otherwise help create infrastructure.
Guess you're too young to remember just how bad the state-monopoly telco really was:-)
That is why I use as little as possible of such in this day and age, and when I do, I try to support those who don't abuse such, like O'Reilly books and GPL software.
Heh, I'm still waiting for O'Reilly to make every book freely downloadable in PDF:-)
Well, while I don't completely agree with you, you do have a number of valid points. However, it is my opinion that your examples for the most part are irrelevant. Why is it wrong for Linus to have a day job?
It's not wrong at all; I merely point out that free software isn't actually free. It takes money to produce it, just like any other software.
Why is it wrong to not care if the Matrix sequel and other huge media pieces get created? Mass media is far from a vital resource or necessity. I think it is a fantastic waste of resources to spend millions of dollars making a movie.
And it's OK for you to think that. After all, if you don't watch it, then not a single cent of yours will have been spent on making it. But plenty of people are perfectly happy to spend their own money, which they've earned by exchanging their time and effort for money, on it, so it gets made. You might as well say it's a waste of resources for cake to be baked when bread will do, or it's a waste of resources to live in apartments when tents will do. This is something else that Marx failed to understand; that humans are motivated by the ability to make choices, and that a central planner's idea of what is wasteful is often not the same as an actual worker's idea.
This is true, but once you let it out of your mind, it loses its value. If I play a song on my guitar, are the soundwaves not there for everyone in earshot to hear? same goes for any other form of information. You cannot go mow the lawn in the park and claim ownership over it because you mowed it, nor can you claim ownership (except by way of oppression) over information you put where others can see.
That's why we have licenses, from the EULA to the GPL they're essentially the same thing. Party A says, I will share my information with you if you agree to these terms. If party B says yes, then party A makes the information available. If party B says no, then both go their separate ways, no problem. The problem only arises when party B says yes, then violates the agreement. No social or economic system can exist when a contract isn't binding - the fundamental precondition for any human collaboration is mutual trust. If there is no license, then we call that "public domain".
Contracts aren't just pieces of paper; they exist everywhere. You can cross the road safely because of a contract that exists between the driver and the issuer of the driving license, for example. Imagine a world where contracts meant nothing. You couldn't even cross the road without risking someone driving through a red light. This idea of contracts allowing information to influence the physical world is the basis of our society.
Your point about the park is interesting, because something like that did happen (under Abraham Lincoln IIRC), it was called "homesteading". The government would allocate you 160 acres of land, on application. If you farmed the land for 5 (again IIRC) years, it became yours. If not, it reverted back to the pool. But you couldn't just show up on some land and claim it; a contract had to exist first.
From the article:
Umm, no. There is no difference in the ACID algorithm whether the database is stored in memory or on disk. The only thing that is easier to do in memory is to fake it, because for low levels of concurrency you can serialize everything without anyone noticing. But that strategy will collapse under load. Far better to do it properly the first time. Yeah, it slows you don't with a single user, but when you have tens or hundreds of users connected, it'll still work.
Actually, the algorithms are the bottleneck on disk too. Monty would know this if he had a query optimizer like the one in Oracle (or had even looked at an explain plan).
Nonsense - you need ACID if there is any conceivable case in which two users might want to access the same data at the same time, or if there is any conceivable case that a write could fail, or if you want to support commit/rollback at all. In other words, if you're running a database and not a simple SQL interface to flat files. Hell, there's an ODBC driver for CSV that does all that MySQL does.
If you have a database that is stored in RAM and periodically written out to the hard disk (for backup reasons) then you get better performance than if you have a database that is reading and writing most of the time.
:-) ).
EMC and similar storage arrays have done this for decades; the array cabinet itself contains enough backup power to flush the caches to disk and power down cleanly if the main power supply fails (assuming you didn't already have a UPS there, of course, and if you can afford EMC then you can afford a diesel generator in the basement
Surely a well tuned database server stores uses quite a lot of RAM for buffering?
Well, a professional database like Oracle manages its own cache, but MySQL really only relies only on the OS-level cache. The problem with that approach is that the database knows a lot more about what you're doing, so it can make much smarter decisions about what to cache, what to age out, what to prefetch, etc. On an Oracle server, you want to lock the buffer in memory, and leave as little as possible over for the OS filesystem cache. You see, if a block doesn't exist in the cache, it has to be fetched from disk into the database cache, and if it does, the db will go straight to its own cache. Another caching layer inbetween provided by the OS is just wasted.
I don't think Monty understands any of this; in the article he seems to say that ACID, rather than being a fundamental principle of relational databases, is just something you need to do because disks are slower than RAM. The only reason that you might not want full ACID and use semaphores instead, as he suggests, is because you are only updating one record in one table in a single transaction!
Further, if he is thinking in terms of a few Gb of data, then he is a little out of touch with modern database usage. SouthWest airlines do not have a database that stores 10 bytes of data for every seat on every flight, and I have a hard time figuring out why they would want to - the database of seats would be tied into the customer records, the freight/baggage handling database, the billing records, the accounting system. That is the point of relational database, that you can query data based on data that exists elsewhere. Monty thinks in terms of databases that have only a few tables, because that's all you can do in MySQL. He says that database programmers are forced to be very careful about the consistency of their data - well those using MySQL are, but those using Oracle (or any other database with real transactions and real integrity constraints) find it's all taken care of transparently.
If you think that there is no "art" to science, then all you will ever be is a technician, not a scientist, and hardly an effective engineer.
The thing I am objecting to is not creativity or innovative thinking, rather the assertion that programmers are somehow "special". Ideas are important, but in the grand scheme of things, ideas are very little of the effort involved in making anything happen. Walk into any meeting in any company in the world and for the price of a box of donuts you can get more ideas than anyone could ever use, and some of them will be pretty good too.
It's also my experience that programmers who aren't very creative tend to write out chop-shop inefficient code that's wedged into the schema of the program and all-too-often has high computing costs.
As with all things it's a balance. I've worked with people who have almost no creativity and only know one way to do things. I've worked with people who are all "creativity", these people always think they can build a better language, GUI toolkit, network protocol etc, they reinvent the wheel on every project.
Guess what? You can point the former at a well-defined task and they'll get it done. You can predict how long it will take them, and you know what you're going to get in the end. You leave the latter unsupervised, and they won't channel their creativity into the problem, they'll waste time on their pet projects. Usually these are the "programming is an art" types who think the rules don't apply to them. They ignore schedules, they don't answer the phone, they're rude to the end users, and as soon as they can be replaced, they're out the door.
it is an art, whether you can admit that or not
You think in 300 years there will be printouts of your code in a museum, hanging next to a Vermeer or a Monet? LOL!!
Programming is a craft. It takes a lot of training and a bit of talent. It's like being a carpenter - it ranges from construction workers putting up houses to fine cabinetmakers handcrafting one-off pieces. But it is not an art in the same sense that composing music is an art - a programmer is more like a session musician.
The fact is that I.T. is a young person's industry, be it due to misconceptions or not, and unless you get in early it will be very hard to make it stick. We all know how rapidly the technology changes and how hard it can be to keep up
I think it's a misconception that all technology changes rapidly. Sure there are a lot of new buzzwords all the time, so just list them on your CV to get past HR, and you'll find the tech actually in use doesn't change nearly as quickly. If your skills are in say DB2, or Solaris, or MFC, or SPSS you could take someone whose skills are 5 years "out of date" when it comes to buzzwords who is perfectly competent to do that job.
The fact is that I.T. is a young person's industry, be it due to misconceptions or not, and unless you get in early it will be very hard to make it stick. We all know how rapidly the technology changes and how hard it can be to keep upall technology changes rapidly. Sure there are a lot of new buzzwords all the time, so just list them on your CV to get past HR, and you'll find the tech actually in use doesn't change nearly as quickly. If your skills are in say DB2, or Solaris, or MFC, or SPSS you could take someone whose skills are 5 years "out of date" when it comes to buzzwords who is perfectly competent to do that job.
that programming isn't just a job or field of study.
Instead it is an "art" and you either have the gift to program and truely zone out and become the code, or you don't.
Smoke enough dope and pumping gas becomes an "art". You can like, totally zone out, dude. Programming is no different from any other tech/science job. I'm sure chemists and civil engineers don't have all this pretension. Do your job and do it well, then go home and live your life. The people who act like professionals will have careers; the "rock stars" who code 16 hours a day straight out of college will burn out. A career is a marathon, not a sprint.
how all the older coders say: "Companies don't want us, in this market they want all you kids who will work for peanuts"
:-) ), just worry about getting great experience at a company that's respected and known in the IT market. Could be a software house, could be a bank, could be a household name like GE or Boeing. Between 3 and 6 years, leverage that to make some money and take some risks, maybe join a startup. But come 6 years, get into a company with a reputation for treating its staff well, the sort of place with a very low churn rate, where your interviewers have been with the company 15 years. Ideally if you change jobs, try to go to another one like that. Don't get off this track until you really are a guru, then start your own company.
while we kids all say: "Companies don't want us, in this market they want people with experience."
You will find that there is a "sweet spot" in your career, between 3 and 6 years experience. Any less than that and you're probably still a "graduate trainee", any more than that and you're starting to make financial and personal commitments (mortgage, kids, whatever) and your price goes up and your availability (late nights, weekends, etc) goes down.
In the first 3 years of your career, don't even worry about money (altho' money si good too
If you think about traditional professions, 30 is young, especially in complex technical fields like lawyering, doctoring.
Yeah, I always laugh when these kids with a couple of years experience in IT call themselves "gurus". In any other profession, 5 years experience is barely enough to be allowed to work unsupervised!
The poster who noted that leading-edge programming languages are only leading-edge for a couple of weeks is absolutely correct. COBOL may not be cool, but it was once leading-edge and has persisted because it works. Want to take bets on whether applications written in COBOL or applications written in (enter name of flashy new language here) are more likely to still be running in 20 years
IBM are investing a lot of time, effort and money into making Java the new COBOL and VB - a standard business-application language with mature libraries and tools, that everyone knows and so programmers are cheap and easy to find. I say COBOL and VB because it can be used both on the back and front ends.
Back in the day, I reckon even COBOL was the "hot" skill, lots of young programmers on high salaries who thought they would change the world. In 30 years time, the next generation of programmers will be sneering at "Java dinosaurs" while they use their hot new language, but the Java dinosaurs will be the ones with the last laugh, just like all the old COBOL geezers found themselves hot again (for a few years anyway) because of Y2K. We got the 32-bit overflow in 2037 coming up, remember. And in 60 years, the generation after them will be the same. There ain't anything new under the sun.
That seems to be the way of things. But generally, we don't expect doctors and lawyers to become managers, so why should we expect software developers to do so?
:-) ). It also happens in teaching, a good teacher will become a head or a principal, and have less to do with standing in front of a class and more to do with the budget. In the military, senior officers join the General Staff and concentrate on planning and strategy, while younger officers actually lead the troops on the ground. In fact, that's the way it works in every profession.
Yes we do. A good lawyer will eventually become a partner in the firm, at which point their job will be a) selling new work b) supervising younger lawyers and c) handing the really tricky cases that the associates can't. The same is true in civil engineering, accounting, management consulting, even medicine (don't you watch ER?
What you should be asking is, what makes programmers different?
BBC shows us that your competition is worse than you could ever imagine. Your next comercial code might be written in an Indain jail. I wonder if the Chinese do this. Uhg, slave labor at it's purest. Comercial code writing is dead, long live free software!
Umm, did you read the article you linked to? All it says is that prisoners will be taught to use computers to run simple accounting packages, so they have a chance at a job when they're let out. You think cars were made in prisons just because prisoners were taught to be car mechanics? You're just scaremongering.
The software world is moving away from the closed source model faster than you can imagine
There's no evidence of this. Open Source has been around a hell of a lot longer than the late 90s you know. IBM were shipping source code to their customers in the 60s. Open source isn't really even that useful to most organizations - if you're a widget manufacturer, your business is manufacturing widgets, not hacking device drivers, unless they're drivers for widgets, and you aren't going to give those away to your competitors! Open source is an interesting phenomenon, and I use lots of it every day, but it's not going to take over the whole world.
He did not count on free software eating his lunch. I wonder if he funded this Indian programming effort. Here, he's going the other way. Instead of trying to get convicts ready for life outside of jail by teaching them progrmming, he's trying to get programmers ready for jail by changing the law.
Gates is the richest man (and one of the biggest donors to a wide range of charities) in the world. He's said many times he plans to give away all his money before he dies. ESR lives in a shack in the woods. Who's eating who's lunch here?
Maybe Dr. Dre is a Republican with such double standards.....
It's worse than that, he isn't even a real doctor!
but in Futureland couldn't exist without the continued processor power of 6 billion human brains, connected. Now *this* I could've bought, even if it strained my credulity more than I normally allow.
I suspect they were well aware of this, but Morpheus holding up a Pentium probably didn't have quite the same dramatic flourish as him holding up a Duracell, and Trinity calling Neo "coppertop".
Last time I checked, Greeks were Europeans too...
Ancient ("Classical" or "Hellenistic") Greece and post-Renaissance Europe are distinct cultures, altho' of course a lot of Renaissance thinking was a continuation of what the Greeks started.
So give her estimated labor costs of installing and supporting MySQL vs cost of purchasing, installing and supporting Oracle. Don't forget hardware costs.
:-)
And don't forget to include the cost of porting your app to Oracle when some developer finds he has to use a subselect or a trigger or a distributed transaction
Unfortunately IBM isn't very likely to want to support OpenSSH and VNC. They will probably want to sell you some of their support tools.
I've worked with IGS before. They aren't in any way constrained to use IBM technology, they're a completely distinct P&L. Last job I used them for was implementing BEA WebLogic on Suns! They'll do anything they can make money at.
You are moving from O2s to PCs with Linux, and you are worried because the new machines won't be able to handle the visualization tasks? Worry about what to do with the lack of ethernal coffee pauses while you wait for programs to load or thing to compile, but don't worry about the PCs not handling the task.
It should come as no surprise that a 2003 PC is faster for some tasks than a 1996 workstation! What might come as a surprise is that for tasks bound by memory bandwidth or disk I/O rather than raw CPU, the O2 or Octane will easily match the PC. I see this all the time. PCs have nothing that compares to xbow, for example. Hell there are still things you can do on the old Max Impact that a PC would be hard pressed to keep up with.
Even if you compare PCs to Octanes, Octane 2s or Fuels, the PCs win.
Remember, an SGI is a workstation. These machines were built to do a fairly limited range of tasks very well, yet retain some general-purpose capacity. A PC is, well, a PC. It's a general-purpose machine that can also do some specialist tasks. A PC that can match a Fuel at what the Fuel was designed for is a rare beast indeed, and probably costs more too!
Now, say you had that particular problem solved and the only thing left is that all-important pitch to Upper Management. What arguments would you use in your attempts to get their approval? What statistics and references would you point to, in order to back everything up?
I wouldn't even bother. I would call the local IBM Global Services office and ask them to pitch for the job, and dangle the carrot (whether it exists or not right now, it might to in the future) of outsourcing the management of said Open Source infrastructure to them. I assume that you don't actually care who runs it from day to day just so long as it's Open Source. They'll make a far more convincing argument that you can alone - remember they employ people full-time to do nothing but research and put together fancy presentations (as do all consulting firms... you don't think the slick performers doing the presentation will actually show up to do the work, do you?).
It's fun to snipe, of course, and it's nice to feel some kind of safety/security in the fact that they've been very late on many things and/or delivered with bugs.
It's easy to mock, but at least Microsoft have ship dates and feature lists. That means decision makers - like CIOs and CTOs - can make at least tentative plans. The Open Source style, it'll ship when I feel it's more-or-less ready, and it might have feature X unless I get bored coding it, drives potential users away.
you suggest that it was owned/operated by the government. what are you talking about ? it was a private company, who, thru government regulation, forced them to allow non-Bell commuications over their wires.
You haven't gone far enough back. Yes, Ma Bell was a corporation, but it was granted a state-sponsored monopoly on telecomms. The unbundling of the local loop is a very recent thing. Back in the 1907-1919 period, when Bell System was run by Theodore Vail, he convinced the government that telco was a "natural monopoly" and the government effectively outlawed competition in the telco space by granting Bell System an exclusive license to operate the phone infrastructure of the country. Local calls are free because it was a vote winner, and long distance is expensive because the money had to be made somewhere. It wasn't until 1982 that this monopoly grip began to be gradually released, and as the "local loop" or "last mile" cable operators are finding, the Baby Bells retain a lot of control of infrastructure even now that was created under monopoly conditions, giving them a leg up in the market that no competitor could match.
as far as I know, it was govt intervention (the breakup of att and the regulations imposed on the bells) that basically ALLOWED the internet to work.
AT&T/Ma Bell was the state monopoly! It's only when the government decided to get out of the telco business that things started to happen!
I don't understand why Americans are so against government intervention in this area. It's not so evil or communist to have the government subsidize, legislate or otherwise help create infrastructure.
:-)
Guess you're too young to remember just how bad the state-monopoly telco really was
That is why I use as little as possible of such in this day and age, and when I do, I try to support those who don't abuse such, like O'Reilly books and GPL software.
:-)
Heh, I'm still waiting for O'Reilly to make every book freely downloadable in PDF
Well, while I don't completely agree with you, you do have a number of valid points. However, it is my opinion that your examples for the most part are irrelevant. Why is it wrong for Linus to have a day job?
It's not wrong at all; I merely point out that free software isn't actually free. It takes money to produce it, just like any other software.
Why is it wrong to not care if the Matrix sequel and other huge media pieces get created? Mass media is far from a vital resource or necessity. I think it is a fantastic waste of resources to spend millions of dollars making a movie.
And it's OK for you to think that. After all, if you don't watch it, then not a single cent of yours will have been spent on making it. But plenty of people are perfectly happy to spend their own money, which they've earned by exchanging their time and effort for money, on it, so it gets made. You might as well say it's a waste of resources for cake to be baked when bread will do, or it's a waste of resources to live in apartments when tents will do. This is something else that Marx failed to understand; that humans are motivated by the ability to make choices, and that a central planner's idea of what is wasteful is often not the same as an actual worker's idea.
This is true, but once you let it out of your mind, it loses its value. If I play a song on my guitar, are the soundwaves not there for everyone in earshot to hear? same goes for any other form of information. You cannot go mow the lawn in the park and claim ownership over it because you mowed it, nor can you claim ownership (except by way of oppression) over information you put where others can see.
That's why we have licenses, from the EULA to the GPL they're essentially the same thing. Party A says, I will share my information with you if you agree to these terms. If party B says yes, then party A makes the information available. If party B says no, then both go their separate ways, no problem. The problem only arises when party B says yes, then violates the agreement. No social or economic system can exist when a contract isn't binding - the fundamental precondition for any human collaboration is mutual trust. If there is no license, then we call that "public domain".
Contracts aren't just pieces of paper; they exist everywhere. You can cross the road safely because of a contract that exists between the driver and the issuer of the driving license, for example. Imagine a world where contracts meant nothing. You couldn't even cross the road without risking someone driving through a red light. This idea of contracts allowing information to influence the physical world is the basis of our society.
Your point about the park is interesting, because something like that did happen (under Abraham Lincoln IIRC), it was called "homesteading". The government would allocate you 160 acres of land, on application. If you farmed the land for 5 (again IIRC) years, it became yours. If not, it reverted back to the pool. But you couldn't just show up on some land and claim it; a contract had to exist first.