"It is EASY to get a man to understand something, when his salary depends upon him understanding it!"
Apparently police officers, lawyers, prison guards... all tend to be against drug legalization. It's not hard to understand... they're jobs depend on it.
Teachers all tend to be against school choice... It's not hard to understand... they like the public school monopoly.
At times I'm amazed. People are so quick to scream about the corporate and military industrial complex. Oh lockheed martin loves war!. Bush went to war for oil! Yet these seem people cannot see the same 'profit' motives drives teachers, police officers, doctors, nurses, engineers, and yes scientists.
There is no 'pure' profession of people. People who think scientists are 'pure' are like those who thought the church should lead society because all priests are good people who follow (biblical, koranic...insert whatever code). If you ever point to people that scientists should not lead society, they say... 'scientists have a code of peer review!'
I personally think climate change is happening. I've yet to see any proposal from politicians that actually helps to deal with it. I remember Dean's climate change proposal was to have a carbon tax... then funnel that money into healthcare? Just think about this for a second. Humanity is supposedly at risk... billions of lives at stake... and instead of taking the money from carbon taxes to fund I dunno (levies, relocating people away from shorelines...), he wants to plow it into a scheme for healthcare.
It's far too political these days to have sensible policy.
My own view is we're far too along in the climate change cycle to stop it. Several other scientists have made this point as well. I'd much rather see us plan to deal with increased see levels, drought... than spend billions upon billions in the hopes of stopping it.
What I mean is this... if I had 20 billion to spend to combat climate change.
I'd spend 15 billion improving levies, relocating people, improving irrigation...and 5 billion on 'green' efforts. When sea levels rise, I'd rather have actual defence against it... as opposed to a wind farm while my city floods. I think it is the prudent thing to do.
Yet, where is this in our global warming proposals? No where to be seen. Because 99% of the efforts about climate change or global warming are doing nothing to deal with the problem. They're just interested in transferring money to this group or that group, or pushing people vision of society, or trying to create jobs...
And climate change is only one of the issues facing us. Far too many people seem to think the ends justify the means. Oh don't worry about the debt, the economy, state power... just do everything to solve climate change. Sorry, climate change isn't the biggest worry in the world. It is a worry, but it is not everything. Far too many people have this narrow tunnel vision as well.
That is politics unfortunately. An unavoidable part of life. And yes, that means dealing with people who might not understand the issue. The alternative is to think some 'high council' should just make decisions. It's very appealing to academics... until they realize... how easily 'high councils' get corrupted or that they really don't have any power... beyond what the politicians give them. There can never be a scientist led society for this reason.
And if the people don't trust the government or don't trust certain groups as the solution to climate change... I'll put my backing with the people.
If nothing gets done... just move away from the coast line. We'll adapt as humanity. I'd love to solve the issue... but not at all costs.. and our political leader have certainly not earned the trust of their citizenry to tackle the issue with the large resources they demand.
Most smart technical people would make 'good' enough programmers. Programming is the art of writing done the steps needed to do a task and modelling.
I always say... a computer program is just a really really really really detailed software specification. I taught high school computer science for a while... and the first lesson I do is ask them to write down the steps to do something simple (sharpen their pencil). And we do a few examples on the board... and keep breaking it down into more and more steps.
That is really what software is... a very specific software specification. What people call 'implementation' is just a vague notion of having someone fill in the details... ASSUMING they know how. I could tell you to walk over to the pencil sharpener... but that assumes you know 1. where the pencil sharpener is 2. how to walk 3. how to turn 4. how to navigate around obstables...
Right now, I'm helping a friend of mine who is a mechanical engineer building motion feedback devices for the medical industry. He is a 'good enough' coder. He calls me up once in a while for some consulting on some of the 'funkier' parts of software (mainly relating to the build process, linking, dlls...), but he gets programming enough to make his device work.
I'd say that's true for most technically smart people... they can all 'program' good enough. And with some practice... they could all become 'great' programmers.
"Programmers are supposed to be implementers and nothing more."
And who decided this? Actually I have seen a grande realization in the past 3-4 years in industry. Maybe it's just companies trying to save money... but what I've seen is more and more project management, customer support... being pushed onto 'programmers'. 'Agile' as a business ideology has also made a lot of this possible. Everyone on my team has now led scrums... I personally don't hire anyone who wouldn't be capable talking to a customer.
Heck, when I used to work at some small firms... that is what we did... program, customer support, visit customer sites, write documentation...
Development work is heavily about knowing the existing codebase... and knowing the existing domain knowledge... so you can implement changes quickly. And industry moves so quickly that you need people who know the details of the domain and the technology to be effective.
A company that tries to separate all these tasks will simply end up with a bunch of C level people unable to accomplish anything. It's like you can take all the C students in your high school class... they won't be able to solve a complex calculus problem that 1 A student could solve.
You just can't afford a A level project manger, an A level produce manager, an A level documentation specialist, an A level usability specialist... for every project. Heck, I doubt there are that many skilled people who could fill those jobs. So what most companies are doing and have good people do various tasks.
A big problem with the thinking displayed in your post is the assumption that 'roles' defined in business plans need to be done by different people. yet, if you actually read the academic literature behind it all... it is almost never the case.
For example, a SME (subject matter expert) doesn't need to be a person independent from a developer. Heck, in 99% of the cases, they are developing. Yet a simple minded person will just take the boxes they read about and assign them to people.
But even if it is a 'simple' idea... most good VCs and business people aren't going to trust some random people to be in charge of their development.
We can all mock the 'executives' and their pay and connections... but that's how things get done...
You're a VC investing 100 million into a project. You're going to pay 300K for some CTO or director minimum... or you'll go with a high priced consultancy firm. Price is no option. You wouldn't hire some script kiddy, even if that's all the 'development' you need.
Do you think a good VC is going to start its sales operation with some random sales person off the street?
Alternatively, you're small startup with a group of people who know how to execute anyways.
Which means... all the real idea people... already have connections to make 'ideas' come to fruition. The other 'idea' people don't... and they should largely be ignored.
The problem is that truly revolutionary ideas are not really all that common. If you happen to think of a really neat revolutionary idea... wonderful... but let's not think that is common. But even then... you need to execute on that idea. Even if it's 'bad execution', it still needs to be done...
Ideas generally fall into 2 camps.
1. Technical improvements - well... to think of a technical improvement, you're going to need to be a pretty technical person capable of expressing your thoughts in a logical series of steps and capable of algebra... you're going to be a decent programmer... or at least be in a circle of people who you know are decent developers.
2. An idea that a million people have thought about... and the only differentiator is the execution.
Now execution is much more than programming. It involves a lot of nitty gritty by business people, marketing people, sales, graphic design, sys admin, and yes... developers.
I've had business friends come up to me and ask me to startup a competitor to Google. Oh yes... I really can just whip that up. These are the 'idea' people we generally hate to talk about. They have an idea that every one has thought up... but the real guts is in the execution. They have no idea what its going to take to bring their idea to fruition.
But I do wish to emphasize again... that the execution of an idea needs much more than engineers or developers. It needs sales, marketing... and those are also execution. A lot of engineers do themselves a disservice by marginalizing these areas.
The other point I'll make is that if you really 'need' to find programmers, I highly doubt you've got a very good idea. If you're any kind of an idea person worth talking to, you're bound to work with people in sales, marketing, engineering or met people in school or your investors know people. You can find developers.
Okay... maybe you're the lone nut who never networked in school or work... with the most brilliant idea no one has every thought of and all the VCs don't know anybody to lead the technical side... and you need need a programmer to implement it all to bring you fortune and fame...
Seriously... can you imagine a VC investing any kind of money in a project without a known 'technical' lead person to lead the effort. Well you probably can... and those guys go broke. But you get the idea.
I remember a while ago, when companies still offered unlimited internet plans... but they were throttling traffic. People made a big fuss about it. Today, we see unlimited plans for internet and wireless are disappearing, overcharges are common...
The first thing to note of course is that a network (cell-phone or internet...) is not something to be characterized in such a simple manner as cost per MB. There is no cost per MB. Costs for a network are basically the following
1. Infrastructure costs (routers, equipment, towers, license fees)... this is a fixed cost no matter how much traffic goes through. 2. peering costs. Most people are ignorant of this one... but the target location of your data actually matters. If your ISP is a small one, chances are they don't have a peering agreement with say ATT. So if the target location of your data is on the ATT network, your ISP might have to pay ATT transit charges.
Those are the only real 'costs' as it relates to the data itself.
Now how much traffic you can pipe through the system is a challenge... especially when it becomes congested. Just like almost any other network, it is not built for 100% of its users to be using 100% of their capacity 100% of the time. So you do face challenges 'managing' people's usage.
There are basically 2 ways to handle this. Note, these are totally arbitrary and need to be though of as separate from the real costs costs above.
1. Impose some artificial price to make users contain their usage. That is your per GB/MB charge. As this charge is not based on some true cost... it really is not a surprise that they impose different costs on different devices and plans... it is really just a deterrent to make you use less traffic.
2. Have the ISP 'manage' your usage. This is best known as throttling where companies would throttle the traffic of users. Maybe they slow down peer to peer traffic, or video traffic...
I am much more in favor of having ISPs manage their network rather than charging users directly. managing their network can actually produces a result people like. The ISP with the best management of its network for its users will win over more users. Users on poorly managed networks will complain that their video is slow or the p2p keeps dropping... They will switch to better managed networks.
There are of course problems with throttling... an ISP offerings its own phone service might start throttling VOIP service from competitors... Those are valid concerns of course. But that is nothing new. ISPs and wireless companies are monopolies to an extent and SHOULD always be investigated. Google is just being investigated by the EU for possible downgrading the links of its competitors.
My ideal throttling scheme goes like this. You get unlimited usage. When congestion occurs, the ISP starts slowing down users based on their usage/plan. Want to be slowed down less... you purchase a more expensive 'GOLD' plan.
Now wireless is a bit different in that you actually need some kind of feedback between the cell phone provider and the cell phone. You can't just drop packets are the cell-phone provider level... the user will have already used the precious Over-the-air traffic before it is dropped. So for cell-phones they should have something where by the cell phone company can tell your phone to slow down its traffic. I don't know if this already exists BTW... I'm from the networking world, not the cell-phone world.
since both wireless and internet are somewhat monopolies... I really think the government should have a say in managing them. And quite frankly, forcing them to manage their own networks and stop these charges would be a welcome change. It is not like a having a phone where you have to actively initiate a call... or actively make a long distance call. You know you are being charged and its a focussed activity. People really don't have the kind of immediate feedback as it relates to managing their internet / cell phone data use.T
Just what is the difference between 'hardware' patents and software patents or even business methods?
I understand people who are against all patents. I understand people who are patents in all industries.
I don't get people who seem to think a patent on an innovation on say a new engine is valid... whereas software patents are not. I remember a while ago, I saw an ad for the Toyota Prius... and it bragged it had over 1000 patents. Hands up if you think GM, Ford, Honda... in their regular day to day product development would not have found 99% of the 'innovation' in those Toyota patents. Yet, they suck it up and find a way around it or pay the license fees. In general, this is how hardware patents work. The hardware industry is just used to licensing and dealing with patents. Hardware patents are often just as ridiculous as software patents.
I have a brother who is a patent agent (mechanical)... and he reads patents every day that are 'obvious' and petty. His job of course is to get the patent though. And yes... most patents (software or hardware) are written by people with a legal AND technical background. Believe it or not, those evaluating the patent at the patent office are also technically trained. It's just damn hard to play that game in a 'common sense' manner.
Software, coming from a different legacy... a lot of it university oriented or not sold directly is not used to this. So they complain. The other big part is the low-barrier to entry in software. So you can start a business in software and have to deal with all these issues like patents and licensing. The barrier to entry in say the automobile industry is much higher. So few people without a full legal and patent team are going to be entering the business. Lastly of course is that software is a new field... so areas are hot for innovation. So there's lots of patent activity. Read up on the history of the automobile when it was fresh... and you'll see the same patent craziness there.
There are loads of problems with patents in general (too obvious, hard to know if you're infringing....) but I just don't get people who say software patents are less valid than hardware patents. Do us all a favor.... get a mechanical engineering degree, and then go read some hardware patents...you'll run into all the same issues you see in software. It's just really hard within a legal framework to determine 'obviousness'.
Unfortunately, in a highly credentialed society we depend on grades to determine who is fit to do work and who to listen to. It's the entire premise behind progressivism... that academics can give you the answer better than the trial and error of a free society. Well who do you propose to listen to in a progressive society? The ones with the best grades in the academic system.
Personally, I'm much more of a free market person where we should have as few barriers to entry as possible. If you go to school and get your degree and it helps you be innovative or provide better services... wonderful.
Yet in the credential oriented world, your success is determined by the grades you get... thus making cheating such a key thing students need to do. And unfortunately, all the things that test critical thinking and ability (projects/papers... )are too easy to cheat on. So the best you can do is grind people through really really really hard regular exams and test to hopefully weed out enough people to then test them in more detail.
This is largely what things like Medschool. There are loads of exams and test... and many of them just memorization. This weeds out so many people. Then once that is done, they can go to more of the practical and analytical sections. But those are hard to test and residency is where you learn the real work... and no one is going to fail your residency.. they know you've invested too much.
A free society as messy as it is... is much better than the alternatives. Unfortunately, academics hate messiness and want everything to be systemic.
I don't care so much about established hierarchies as long as they deliver what needs to be delivered. That is what the free market does. Competition for the sake of competition has a little point. What a free market does is force established players to either adapt to new technologies and circumstances, or new entries will take over.
The tech sector is actually a great example.
Microsoft refused to adapt to the internet even though it had such a large part of the OS market. Hence, it made way for Google to become a company...and we see where it is now.
Microsoft refused to adapter to the mobile market. Hence it made way for RIM, and Apple.
The free market functions continuously. Technology and circumstances are always changing. The fact that some big companies manage to stick around and stay big is fine with me. The free market makes sure they keep delivering or die. This of course as opposed to state run economies where if an organization stops delivering... who cares... they still get government funding.
This point unfortunately is what a lot of people miss.
I will never make millions. I'll never make 250000K a year, which is the 'new' threshold for 'taxing the rich', Yet I know damn well that every tax they impose on the rich will come to the poor and the middle class.
Some people say the poor should vote for big government and high taxes... but I don't buy it. All it means is more money and power in the hands of government... and the that eventually means tax increases for the poor and middle class to feed the bureaucracy and public sector unions.
And how does a court know what is obvious? Which expert should they 'trust'? I can find an expert to say just about anything in a judgment case.
Oh, so maybe you want to create a panel of experts... appointed by whom? They can also be bought by companies, political affiliations... They could be like the supreme court... which has its own set of problems.
Or maybe you want a group of self-selected scientists unaccountable to the public and we should just obey their 'expert' opinion. Surely nothing could go wrong with that...
Making working government is 'obvious' until you get into the details of making it work.
Considering there are probably a whole host of documents, procedures, scripts, backup systems, contact people, custom applications... that might be tied to Exchange... Let's not even get to the migration costs and risks.
Being hosted... doesn't mean there's nothing to do for an organization of any size.
Let me take your academic mind through this simply thought exercise.
"The Soviets started off with a 5-year-plan, and assigned quotas to different industries and different factories or farms"
And what happens if you didn't meet that quota? What happened if you didn't do what the government wanted? Yes... off to jail or worse. The fundamental problem with communism was force. Only an academic could like communism treating people as little parts to be manipulated. And damn those little people for not wanting to do what we told them. That's why we have to kill them and jail them if they disobey.
Anyone who has ever experienced anything remote close to communism will never ever ever ever want to go back to it... even if it means nutjobs like George Bush in charge. But yes... you keep thinking that while never having to deal with the way a government has to force its people to work...
And every politician and bureaucrat and power hungry tyrant will use whatever justification to gain power over the people. I think history will attest to that. They've used religion, political ideology (communism, fascism), fear, wars...
And today it is science being used to justify increasing government power.
Somehow... everything turns out to be: Science says something is bad... quick create a government body to enforce it, ban it, make people criminals for victimless crimes, take their money...
If I were to take a long look history... the risk of tyrannical governments is far worse than the government not having all the statistics.
"This is not some ivory-tower statistical exercise, it's providing the necessary ingredients to make a useful decision by politicians elected by us to make those decisions. The alternative is, of course, to not base decisions on useful or detailed information."
Umm, the elected government doesn't want to use this data. The elected government does not want to use statistical data to run the lives of people under threat of coercion for not providing it.
It is in fact the ivory-tower of unelected public sector bureaucrats and scientists who want this data.
"So when science says that fibrous asbestos causes cancer, we shouldn't do anything about it?"
Is there science in building a nuclear bomb that slaughters hundreds of thousands of people? Yes. Pretty good advanced science actually. It there science in building a clean nuclear power reactor? Yes.
Science is valueless. Try reading up on the scientific method. You won't see anything in there about being good or the consequences. Science is largely a process by which you discover things. How you apply it is completely up to you and your morals.
Science might say that asbestos causes cancer, but that is not why you should do something about it. You should do something about it because you are a moral person with values that says human life is precious.
Once you decide that human life is precious... then you can measure the impact of asbestos and can come to a sane policy. And never forget the 'what' you choose to do is very important as opposed to just doing something.
But the philosophy comes first. It always comes first. If you are an immoral person, maybe you can use science to create a destructive asbestos airborne contaminant to bring cancer to a population.'
But of course life is rarely that simple. More often than not, life is deciding between lots of good things we value and how far we go to get them... it is rarely about only one good thing. Communism didn't campaign on slaughtering millions of people. It campaigned on building an equal society (good thing), workers being treated fairly (good thing)... Yet it went too far, pushing aside other values like freedom and human life aside in favor of the 'greater good'.
So we take a value judgment that life is precious. Great... now does that justify infinite spending on public healthcare as a scientific fact? Well healthcare is good. But so is leisure time, work fulfillment, family life, prosperity, dignity... And often times every dollar you spend on healthcare is a dollar taken away from these areas. Sometimes good values are mutually inclusive... other times exclusive.
Different people value things differently. I for one am willing to let people have different values as opposed to have government scientists determine my adequate allotment of healthcare vs leisure time.
The big problem for scientists is this area is two fold:
1. As scientists like numbers, they will inevitably choose to measure things that are easy to measure, which leads them to choose a set of values that is easy to quantify (length of life, IQ test scores...) as opposed to vague concepts like dignity, leisure, freedom. hence sciences support for questionable moral areas like eugenics in the past.
2. They want to force their choice of morals on the entire populace through legislation.
Which begs the question: Why is it so hard for you to state you have morals? Is it because you'd rather pretend that science can substitute for morality and therefore decisions and morals you agree with can remain unquestioned because it is 'science'.
Take a philosophy class. It will help you round out your education.
It's question of how those 'facts' are gathered and what the goals are.
Science itself is valueless. It cannot be used to set policy.
In the case of the mandatory long form census, do I think it is worth threatening my fellow citizen with jail time and fines for not filling in a form on how many hours of unpaid housework they did? Absolutely not. Yet apparently many 'scientists' think they should. Apparently it is 'scientific' that government use force against its citizens to collect data for scientists to use. It would not be mandatory otherwise.
The fact that they see this whole process as 'scientific' and cannot be questioned is really quite absurd. Now maybe that is your value system, and you really think that is what government should be doing. Great and all... that's what the democratic process is all about. It's called politics. Yet, the fact that people try and defend that value judgment as science is a problem.
Great maybe you can statistically improve the life span of Canadians. Congrats. That's a value judgement. Increasing life span. How do you balance that with other value judgments of freedom, personal choice, democracy... ?
This aspect of the modern scientific movement is more like a religion and we need separation of church and state.
If all these scientists were doing was writing reports and facts, wonderful. But they're not. They like to make grande pronouncements that include demanding the government enact this and that legislation.
It really is like religion. No one should mind a religious group spreading their beliefs The problems come when they get power and start legislating their beliefs.
'Evidence' based policy making is not exactly objective and scientific. Everything has values... as before you measure something, you must decide what to measure.
Take a philosophy class and read about utilitarianism. That's what these scientists are basically trying. Yet again, it all comes back to what you choose to measure, which is a value and moral judgment... which has nothing to do with science.
Scientists have long crossed the line of just being object truth seekers and are well into politics and political movements. Science does not purify politics. Politics infects science.
Yeah... it's just that in a modern context, any time you would want to use the advanced features of c++, you're probably writing something more 'application' like that would be better written as.NET, Java.. which does all these things much cleaner and better.
Actually, if that is all C++ was, it would be a great language. We will always need a systems level language.
What screws up C++ is when it tries to be more than 'C with classes'
While I am no stranger to the STL, templates, copy constructors, operator overloading... I try and avoid many of these as it creates too many bugs otherwise. I mean I'll use the premade STL containers. But I avoid going any deeper than superficially using them. Not because I can't... but just because it is so error prone and confuses everyone that reads it.
I think we will pretty much end up there. C with classes being the glue and systems layer. Java/.NET/whatever else for application level programming where you actually want to make good use of OO language contructs or generics...
I've thought about this as well. They could start teaming up with ISPs. So you sign up for 'news package' with your ISP for $5 / month. If you browse from your home ip, no login, nothing... Maybe they give you a username/password if you really want to access it from another computer (work, someone else's house...)
Smartphones could help here as well as they tend to have 'app-stores' and integrated payment methods so you can have news apps.
And what proof do you have that the stimulus did anything good.
Unlike real science where you can use the scientific method to repeat experiments, economics operates in the present and 'experiments' cannot be repeated... thus we really all know as much as Joe 6-pack...
To this day, people still have no idea and no agreement on what caused, what would helped... the great depression. And any lesson you think you may have learned is not very applicable today given the vastly different circumstances ( women in the workforce, global competition, fiat currencies, heavy entitlements, heavy debt...)
For all we know, giving the stimulus has piled on debt, decreased people's confidence in the government and the future of the country, and is causing people to not invest... Consider the run up in gold. If people were not so scared of a collapsing us dollar and debt, would that money be better invested in companies?
The point is... no one knows... Certainly not me.
But most certainly all these people who seem to take grand economic predictions as facts.
Alternatively
"It is EASY to get a man to understand something, when his salary depends upon him understanding it!"
Apparently police officers, lawyers, prison guards... all tend to be against drug legalization. It's not hard to understand... they're jobs depend on it.
Teachers all tend to be against school choice... It's not hard to understand... they like the public school monopoly.
At times I'm amazed. People are so quick to scream about the corporate and military industrial complex. Oh lockheed martin loves war!. Bush went to war for oil! Yet these seem people cannot see the same 'profit' motives drives teachers, police officers, doctors, nurses, engineers, and yes scientists.
There is no 'pure' profession of people. People who think scientists are 'pure' are like those who thought the church should lead society because all priests are good people who follow (biblical, koranic...insert whatever code). If you ever point to people that scientists should not lead society, they say... 'scientists have a code of peer review!'
I personally think climate change is happening. I've yet to see any proposal from politicians that actually helps to deal with it.
I remember Dean's climate change proposal was to have a carbon tax... then funnel that money into healthcare?
Just think about this for a second. Humanity is supposedly at risk... billions of lives at stake... and instead of taking the money from carbon taxes to fund I dunno (levies, relocating people away from shorelines...), he wants to plow it into a scheme for healthcare.
It's far too political these days to have sensible policy.
My own view is we're far too along in the climate change cycle to stop it. Several other scientists have made this point as well. I'd much rather see us plan to deal with increased see levels, drought... than spend billions upon billions in the hopes of stopping it.
What I mean is this... if I had 20 billion to spend to combat climate change.
I'd spend 15 billion improving levies, relocating people, improving irrigation...and 5 billion on 'green' efforts.
When sea levels rise, I'd rather have actual defence against it... as opposed to a wind farm while my city floods.
I think it is the prudent thing to do.
Yet, where is this in our global warming proposals? No where to be seen. Because 99% of the efforts about climate change or global warming are doing nothing to deal with the problem. They're just interested in transferring money to this group or that group, or pushing people vision of society, or trying to create jobs...
And climate change is only one of the issues facing us. Far too many people seem to think the ends justify the means. Oh don't worry about the debt, the economy, state power... just do everything to solve climate change. Sorry, climate change isn't the biggest worry in the world. It is a worry, but it is not everything. Far too many people have this narrow tunnel vision as well.
That is politics unfortunately. An unavoidable part of life. And yes, that means dealing with people who might not understand the issue. The alternative is to think some 'high council' should just make decisions. It's very appealing to academics... until they realize... how easily 'high councils' get corrupted or that they really don't have any power... beyond what the politicians give them. There can never be a scientist led society for this reason.
And if the people don't trust the government or don't trust certain groups as the solution to climate change... I'll put my backing with the people.
If nothing gets done... just move away from the coast line. We'll adapt as humanity.
I'd love to solve the issue... but not at all costs.. and our political leader have certainly not earned the trust of their citizenry to tackle the issue with the large resources they demand.
Most smart technical people would make 'good' enough programmers.
Programming is the art of writing done the steps needed to do a task and modelling.
I always say... a computer program is just a really really really really detailed software specification. I taught high school computer science for a while... and the first lesson I do is ask them to write down the steps to do something simple (sharpen their pencil). And we do a few examples on the board... and keep breaking it down into more and more steps.
That is really what software is... a very specific software specification. What people call 'implementation' is just a vague notion of having someone fill in the details... ASSUMING they know how. ...
I could tell you to walk over to the pencil sharpener... but that assumes you know
1. where the pencil sharpener is
2. how to walk
3. how to turn
4. how to navigate around obstables
Right now, I'm helping a friend of mine who is a mechanical engineer building motion feedback devices for the medical industry. He is a 'good enough' coder. He calls me up once in a while for some consulting on some of the 'funkier' parts of software (mainly relating to the build process, linking, dlls...), but he gets programming enough to make his device work.
I'd say that's true for most technically smart people... they can all 'program' good enough. And with some practice... they could all become 'great' programmers.
"Programmers are supposed to be implementers and nothing more."
And who decided this?
Actually I have seen a grande realization in the past 3-4 years in industry. Maybe it's just companies trying to save money... but what I've seen is more and more project management, customer support... being pushed onto 'programmers'. 'Agile' as a business ideology has also made a lot of this possible. Everyone on my team has now led scrums... I personally don't hire anyone who wouldn't be capable talking to a customer.
Heck, when I used to work at some small firms... that is what we did... program, customer support, visit customer sites, write documentation...
Development work is heavily about knowing the existing codebase... and knowing the existing domain knowledge... so you can implement changes quickly. And industry moves so quickly that you need people who know the details of the domain and the technology to be effective.
A company that tries to separate all these tasks will simply end up with a bunch of C level people unable to accomplish anything. It's like you can take all the C students in your high school class... they won't be able to solve a complex calculus problem that 1 A student could solve.
You just can't afford a A level project manger, an A level produce manager, an A level documentation specialist, an A level usability specialist... for every project. Heck, I doubt there are that many skilled people who could fill those jobs. So what most companies are doing and have good people do various tasks.
A big problem with the thinking displayed in your post is the assumption that 'roles' defined in business plans need to be done by different people. yet, if you actually read the academic literature behind it all... it is almost never the case.
For example, a SME (subject matter expert) doesn't need to be a person independent from a developer. Heck, in 99% of the cases, they are developing. Yet a simple minded person will just take the boxes they read about and assign them to people.
I agree with all that.
But even if it is a 'simple' idea... most good VCs and business people aren't going to trust some random people to be in charge of their development.
We can all mock the 'executives' and their pay and connections... but that's how things get done...
You're a VC investing 100 million into a project. You're going to pay 300K for some CTO or director minimum... or you'll go with a high priced consultancy firm. Price is no option. You wouldn't hire some script kiddy, even if that's all the 'development' you need.
Do you think a good VC is going to start its sales operation with some random sales person off the street?
Alternatively, you're small startup with a group of people who know how to execute anyways.
Which means... all the real idea people... already have connections to make 'ideas' come to fruition. The other 'idea' people don't... and they should largely be ignored.
The problem is that truly revolutionary ideas are not really all that common. If you happen to think of a really neat revolutionary idea... wonderful... but let's not think that is common. But even then... you need to execute on that idea. Even if it's 'bad execution', it still needs to be done...
Ideas generally fall into 2 camps.
1. Technical improvements - well... to think of a technical improvement, you're going to need to be a pretty technical person capable of expressing your thoughts in a logical series of steps and capable of algebra... you're going to be a decent programmer... or at least be in a circle of people who you know are decent developers.
2. An idea that a million people have thought about... and the only differentiator is the execution.
Now execution is much more than programming. It involves a lot of nitty gritty by business people, marketing people, sales, graphic design, sys admin, and yes... developers.
I've had business friends come up to me and ask me to startup a competitor to Google. Oh yes... I really can just whip that up. These are the 'idea' people we generally hate to talk about. They have an idea that every one has thought up... but the real guts is in the execution. They have no idea what its going to take to bring their idea to fruition.
But I do wish to emphasize again... that the execution of an idea needs much more than engineers or developers. It needs sales, marketing... and those are also execution. A lot of engineers do themselves a disservice by marginalizing these areas.
The other point I'll make is that if you really 'need' to find programmers, I highly doubt you've got a very good idea. If you're any kind of an idea person worth talking to, you're bound to work with people in sales, marketing, engineering or met people in school or your investors know people. You can find developers.
Okay... maybe you're the lone nut who never networked in school or work... with the most brilliant idea no one has every thought of and all the VCs don't know anybody to lead the technical side... and you need need a programmer to implement it all to bring you fortune and fame...
Seriously... can you imagine a VC investing any kind of money in a project without a known 'technical' lead person to lead the effort. Well you probably can... and those guys go broke.
But you get the idea.
I remember a while ago, when companies still offered unlimited internet plans... but they were throttling traffic. People made a big fuss about it.
Today, we see unlimited plans for internet and wireless are disappearing, overcharges are common...
The first thing to note of course is that a network (cell-phone or internet...) is not something to be characterized in such a simple manner as cost per MB. There is no cost per MB.
Costs for a network are basically the following
1. Infrastructure costs (routers, equipment, towers, license fees)... this is a fixed cost no matter how much traffic goes through.
2. peering costs. Most people are ignorant of this one... but the target location of your data actually matters. If your ISP is a small one, chances are they don't have a peering agreement with say ATT. So if the target location of your data is on the ATT network, your ISP might have to pay ATT transit charges.
Those are the only real 'costs' as it relates to the data itself.
Now how much traffic you can pipe through the system is a challenge... especially when it becomes congested. Just like almost any other network, it is not built for 100% of its users to be using 100% of their capacity 100% of the time. So you do face challenges 'managing' people's usage.
There are basically 2 ways to handle this. Note, these are totally arbitrary and need to be though of as separate from the real costs costs above.
1. Impose some artificial price to make users contain their usage. That is your per GB/MB charge. As this charge is not based on some true cost... it really is not a surprise that they impose different costs on different devices and plans... it is really just a deterrent to make you use less traffic.
2. Have the ISP 'manage' your usage. This is best known as throttling where companies would throttle the traffic of users. Maybe they slow down peer to peer traffic, or video traffic...
I am much more in favor of having ISPs manage their network rather than charging users directly. managing their network can actually produces a result people like. The ISP with the best management of its network for its users will win over more users. Users on poorly managed networks will complain that their video is slow or the p2p keeps dropping... They will switch to better managed networks.
There are of course problems with throttling... an ISP offerings its own phone service might start throttling VOIP service from competitors... Those are valid concerns of course. But that is nothing new. ISPs and wireless companies are monopolies to an extent and SHOULD always be investigated. Google is just being investigated by the EU for possible downgrading the links of its competitors.
My ideal throttling scheme goes like this.
You get unlimited usage. When congestion occurs, the ISP starts slowing down users based on their usage/plan. Want to be slowed down less... you purchase a more expensive 'GOLD' plan.
Now wireless is a bit different in that you actually need some kind of feedback between the cell phone provider and the cell phone. You can't just drop packets are the cell-phone provider level... the user will have already used the precious Over-the-air traffic before it is dropped. So for cell-phones they should have something where by the cell phone company can tell your phone to slow down its traffic. I don't know if this already exists BTW... I'm from the networking world, not the cell-phone world.
since both wireless and internet are somewhat monopolies... I really think the government should have a say in managing them. And quite frankly, forcing them to manage their own networks and stop these charges would be a welcome change.
It is not like a having a phone where you have to actively initiate a call... or actively make a long distance call. You know you are being charged and its a focussed activity. People really don't have the kind of immediate feedback as it relates to managing their internet / cell phone data use.T
Just what is the difference between 'hardware' patents and software patents or even business methods?
I understand people who are against all patents.
I understand people who are patents in all industries.
I don't get people who seem to think a patent on an innovation on say a new engine is valid... whereas software patents are not.
I remember a while ago, I saw an ad for the Toyota Prius... and it bragged it had over 1000 patents. Hands up if you think GM, Ford, Honda... in their regular day to day product development would not have found 99% of the 'innovation' in those Toyota patents. Yet, they suck it up and find a way around it or pay the license fees. In general, this is how hardware patents work. The hardware industry is just used to licensing and dealing with patents. Hardware patents are often just as ridiculous as software patents.
I have a brother who is a patent agent (mechanical)... and he reads patents every day that are 'obvious' and petty. His job of course is to get the patent though. And yes... most patents (software or hardware) are written by people with a legal AND technical background.
Believe it or not, those evaluating the patent at the patent office are also technically trained. It's just damn hard to play that game in a 'common sense' manner.
Software, coming from a different legacy... a lot of it university oriented or not sold directly is not used to this. So they complain. The other big part is the low-barrier to entry in software. So you can start a business in software and have to deal with all these issues like patents and licensing. The barrier to entry in say the automobile industry is much higher. So few people without a full legal and patent team are going to be entering the business. Lastly of course is that software is a new field... so areas are hot for innovation. So there's lots of patent activity. Read up on the history of the automobile when it was fresh... and you'll see the same patent craziness there.
There are loads of problems with patents in general (too obvious, hard to know if you're infringing....) but I just don't get people who say software patents are less valid than hardware patents. Do us all a favor.... get a mechanical engineering degree, and then go read some hardware patents...you'll run into all the same issues you see in software. It's just really hard within a legal framework to determine 'obviousness'.
Unfortunately, in a highly credentialed society we depend on grades to determine who is fit to do work and who to listen to.
It's the entire premise behind progressivism... that academics can give you the answer better than the trial and error of a free society.
Well who do you propose to listen to in a progressive society? The ones with the best grades in the academic system.
Personally, I'm much more of a free market person where we should have as few barriers to entry as possible. If you go to school and get your degree and it helps you be innovative or provide better services... wonderful.
Yet in the credential oriented world, your success is determined by the grades you get... thus making cheating such a key thing students need to do.
And unfortunately, all the things that test critical thinking and ability (projects/papers... )are too easy to cheat on.
So the best you can do is grind people through really really really hard regular exams and test to hopefully weed out enough people to then test them in more detail.
This is largely what things like Medschool. There are loads of exams and test... and many of them just memorization. This weeds out so many people. Then once that is done, they can go to more of the practical and analytical sections. But those are hard to test and residency is where you learn the real work... and no one is going to fail your residency.. they know you've invested too much.
A free society as messy as it is... is much better than the alternatives. Unfortunately, academics hate messiness and want everything to be systemic.
I don't care so much about established hierarchies as long as they deliver what needs to be delivered. That is what the free market does. Competition for the sake of competition has a little point.
What a free market does is force established players to either adapt to new technologies and circumstances, or new entries will take over.
The tech sector is actually a great example.
Microsoft refused to adapt to the internet even though it had such a large part of the OS market.
Hence, it made way for Google to become a company...and we see where it is now.
Microsoft refused to adapter to the mobile market.
Hence it made way for RIM, and Apple.
The free market functions continuously. Technology and circumstances are always changing. The fact that some big companies manage to stick around and stay big is fine with me. The free market makes sure they keep delivering or die.
This of course as opposed to state run economies where if an organization stops delivering... who cares... they still get government funding.
This point unfortunately is what a lot of people miss.
I will never make millions. I'll never make 250000K a year, which is the 'new' threshold for 'taxing the rich', Yet I know damn well that every tax they impose on the rich will come to the poor and the middle class.
Some people say the poor should vote for big government and high taxes... but I don't buy it. All it means is more money and power in the hands of government... and the that eventually means tax increases for the poor and middle class to feed the bureaucracy and public sector unions.
Ever heard of a jury? Judges don't make all the decisions on the law... for very good reason.
Even the top of the top judges on the supreme court can't agree and there's lots of issues.
And how does a court know what is obvious? Which expert should they 'trust'? I can find an expert to say just about anything in a judgment case.
Oh, so maybe you want to create a panel of experts... appointed by whom? They can also be bought by companies, political affiliations...
They could be like the supreme court... which has its own set of problems.
Or maybe you want a group of self-selected scientists unaccountable to the public and we should just obey their 'expert' opinion. Surely nothing could go wrong with that...
Making working government is 'obvious' until you get into the details of making it work.
Considering there are probably a whole host of documents, procedures, scripts, backup systems, contact people, custom applications... that might be tied to Exchange...
Let's not even get to the migration costs and risks.
Being hosted... doesn't mean there's nothing to do for an organization of any size.
Let me take your academic mind through this simply thought exercise.
"The Soviets started off with a 5-year-plan, and assigned quotas to different industries and different factories or farms"
And what happens if you didn't meet that quota? What happened if you didn't do what the government wanted? Yes... off to jail or worse.
The fundamental problem with communism was force. Only an academic could like communism treating people as little parts to be manipulated. And damn those little people for not wanting to do what we told them. That's why we have to kill them and jail them if they disobey.
Anyone who has ever experienced anything remote close to communism will never ever ever ever want to go back to it... even if it means nutjobs like George Bush in charge.
But yes... you keep thinking that while never having to deal with the way a government has to force its people to work...
Since we're onto rhetoric now...
And every politician and bureaucrat and power hungry tyrant will use whatever justification to gain power over the people. I think history will attest to that.
They've used religion, political ideology (communism, fascism), fear, wars...
And today it is science being used to justify increasing government power.
Somehow... everything turns out to be:
Science says something is bad... quick create a government body to enforce it, ban it, make people criminals for victimless crimes, take their money...
If I were to take a long look history... the risk of tyrannical governments is far worse than the government not having all the statistics.
Yes.
Damn them for threatening people for wanting little pieces of data.
If they were any good at what they do, they would get by with voluntary data.
It's not perfect... but if I look at history, I'd rather have a government with incomplete data, than one with too much power.
Couldn't have said it better myself.
I'm amazed what I said is so controversial...
"This is not some ivory-tower statistical exercise, it's providing the necessary ingredients to make a useful decision by politicians elected by us to make those decisions. The alternative is, of course, to not base decisions on useful or detailed information."
Umm, the elected government doesn't want to use this data.
The elected government does not want to use statistical data to run the lives of people under threat of coercion for not providing it.
It is in fact the ivory-tower of unelected public sector bureaucrats and scientists who want this data.
"So when science says that fibrous asbestos causes cancer, we shouldn't do anything about it?"
Is there science in building a nuclear bomb that slaughters hundreds of thousands of people? Yes. Pretty good advanced science actually.
It there science in building a clean nuclear power reactor? Yes.
Science is valueless. Try reading up on the scientific method. You won't see anything in there about being good or the consequences. Science is largely a process by which you discover things. How you apply it is completely up to you and your morals.
Science might say that asbestos causes cancer, but that is not why you should do something about it.
You should do something about it because you are a moral person with values that says human life is precious.
Once you decide that human life is precious... then you can measure the impact of asbestos and can come to a sane policy.
And never forget the 'what' you choose to do is very important as opposed to just doing something.
But the philosophy comes first. It always comes first.
If you are an immoral person, maybe you can use science to create a destructive asbestos airborne contaminant to bring cancer to a population.'
But of course life is rarely that simple. More often than not, life is deciding between lots of good things we value and how far we go to get them... it is rarely about only one good thing. Communism didn't campaign on slaughtering millions of people. It campaigned on building an equal society (good thing), workers being treated fairly (good thing)... Yet it went too far, pushing aside other values like freedom and human life aside in favor of the 'greater good'.
So we take a value judgment that life is precious. Great... now does that justify infinite spending on public healthcare as a scientific fact?
Well healthcare is good. But so is leisure time, work fulfillment, family life, prosperity, dignity...
And often times every dollar you spend on healthcare is a dollar taken away from these areas.
Sometimes good values are mutually inclusive... other times exclusive.
Different people value things differently.
I for one am willing to let people have different values as opposed to have government scientists determine my adequate allotment of healthcare vs leisure time.
The big problem for scientists is this area is two fold:
1. As scientists like numbers, they will inevitably choose to measure things that are easy to measure, which leads them to choose a set of values that is easy to quantify (length of life, IQ test scores...) as opposed to vague concepts like dignity, leisure, freedom. hence sciences support for questionable moral areas like eugenics in the past.
2. They want to force their choice of morals on the entire populace through legislation.
Which begs the question:
Why is it so hard for you to state you have morals?
Is it because you'd rather pretend that science can substitute for morality and therefore decisions and morals you agree with can remain unquestioned because it is 'science'.
Take a philosophy class. It will help you round out your education.
It's question of how those 'facts' are gathered and what the goals are.
Science itself is valueless. It cannot be used to set policy.
In the case of the mandatory long form census, do I think it is worth threatening my fellow citizen with jail time and fines for not filling in a form on how many hours of unpaid housework they did?
Absolutely not. Yet apparently many 'scientists' think they should.
Apparently it is 'scientific' that government use force against its citizens to collect data for scientists to use. It would not be mandatory otherwise.
The fact that they see this whole process as 'scientific' and cannot be questioned is really quite absurd.
Now maybe that is your value system, and you really think that is what government should be doing. Great and all... that's what the democratic process is all about. It's called politics.
Yet, the fact that people try and defend that value judgment as science is a problem.
Great maybe you can statistically improve the life span of Canadians. Congrats. That's a value judgement. Increasing life span.
How do you balance that with other value judgments of freedom, personal choice, democracy... ?
This aspect of the modern scientific movement is more like a religion and we need separation of church and state.
If all these scientists were doing was writing reports and facts, wonderful. But they're not.
They like to make grande pronouncements that include demanding the government enact this and that legislation.
It really is like religion. No one should mind a religious group spreading their beliefs
The problems come when they get power and start legislating their beliefs.
'Evidence' based policy making is not exactly objective and scientific. Everything has values... as before you measure something, you must decide what to measure.
Take a philosophy class and read about utilitarianism.
That's what these scientists are basically trying. Yet again, it all comes back to what you choose to measure, which is a value and moral judgment... which has nothing to do with science.
Scientists have long crossed the line of just being object truth seekers and are well into politics and political movements.
Science does not purify politics.
Politics infects science.
you seem to have missed the part about using the standard STL. Which is fine, as that as trusted and 'good' code.
You seem to be using it as C with classes, which is how most people use c++.
Yeah... it's just that in a modern context, any time you would want to use the advanced features of c++, you're probably writing something more 'application' like that would be better written as .NET, Java.. which does all these things much cleaner and better.
Actually, if that is all C++ was, it would be a great language.
We will always need a systems level language.
What screws up C++ is when it tries to be more than 'C with classes'
While I am no stranger to the STL, templates, copy constructors, operator overloading... I try and avoid many of these as it creates too many bugs otherwise. I mean I'll use the premade STL containers. But I avoid going any deeper than superficially using them. Not because I can't... but just because it is so error prone and confuses everyone that reads it.
I think we will pretty much end up there. C with classes being the glue and systems layer. Java/.NET/whatever else for application level programming where you actually want to make good use of OO language contructs or generics...
Absolutely.
I've thought about this as well.
They could start teaming up with ISPs. So you sign up for 'news package' with your ISP for $5 / month. If you browse from your home ip, no login, nothing... Maybe they give you a username/password if you really want to access it from another computer (work, someone else's house...)
Smartphones could help here as well as they tend to have 'app-stores' and integrated payment methods so you can have news apps.
And what proof do you have that the stimulus did anything good.
Unlike real science where you can use the scientific method to repeat experiments, economics operates in the present and 'experiments' cannot be repeated... thus we really all know as much as Joe 6-pack...
To this day, people still have no idea and no agreement on what caused, what would helped... the great depression.
And any lesson you think you may have learned is not very applicable today given the vastly different circumstances ( women in the workforce, global competition, fiat currencies, heavy entitlements, heavy debt...)
For all we know, giving the stimulus has piled on debt, decreased people's confidence in the government and the future of the country, and is causing people to not invest...
Consider the run up in gold. If people were not so scared of a collapsing us dollar and debt, would that money be better invested in companies?
The point is... no one knows...
Certainly not me.
But most certainly all these people who seem to take grand economic predictions as facts.