Re:One man's child labor abuse is another mans liv
on
Nike: Just Don't Do It
·
· Score: 2
Outside of those situations, child labor is not bad,
per se because it is often times better than the alternatives.
I can't really criticize what a person or family does to survive, when survival is really in question -- be it child labor, growing coca, or stealing. It's a bad situation with no good solutions, and I'm priviledged and utterly insulated so I shouldn't make judgements on them.
However, just considering the practical aspects, child labor doesn't really help poor people. The children make very small wages, in part because they really aren't very productive. They are young and weak and unskilled. Studies have shown that the money lost by sending a child to school is regained in full and then some by the increased skill they will have later in life. Simply being literate and capable of doing math is a tremendous benefit to even an unskilled laborer.
Of course, future wages don't matter if you don't have enough foot now, and if your children's growth is being stunted now, and if one of them will die of a curable disease because you are poor now.
So I can't blame a parent that sends their child to work. But I think child labor is still bad, it's just the unfortunate -- no, the unjust situation that all alternatives are bad. That child labor is sometimes the best alternative doesn't mean that we, as a society, as a species are any less morally implicated.
Sendmail isn't really a protocol -- SMTP, UUCP, etc. are protocols. sendmail does have a command-line interface which is widely used. And they've never tried to keep other MTUs from implementing their own sendmail-like wrappers and naming them sendmail. Bind might still be an exception though.
and render the image and/or HTML on the page would be a wonderful addition to the command-line toolset. However,
the ability to work in text-only mode is a critical part of the appeal of Unix.
Sounds like you want XMLterm. It does a lot more than just displaying, of course, since it also is meant to fascilitate better interaction between command-line tools.
Hmmm... looks like the project's been pretty quiet for a while. Anyway, it's still a good idea.
I would recommend the book The Existential Pleasures of Engineering by Samuel C. Florman (ISBN 0-312-14104-1).
I actually picked it up after Katz made reference to it, but don't let that scare you off:-) It covers ethics in a larger social context then your question, but I think there's a lot of parallels between the small issues and the large issues. The fractal nature of the world, I suppose.
The title says "engineering", but it's really about technological advancement in general. And unlike most critiques of technology, it's not by a reactionary with fantasies of hunting and gathering their way to social harmony.
You are making the system much more complicated than it would need to be.
The article talked about speed zones, which to me seems to imply that it would mark certain areas as having maximum speeds. In my neighborhood there aren't any streets with speed limits above 35mph -- so it would be a 35mph zone. The highway is a ways away, and it would have to have a 55mph corridor. So you could speed on the overpasses, but is that such a big deal? And you could speed in the 15mph parking lot in the 35mph zone, but that's just the way it would have to be.
This is not a lot of information. It's just covering the map with variuos polygons and respective speed limits. It doesn't have to be highly reactive to speed limit changes, because it's only trying to say what the highest speed limit in the area might be. It doesn't have to have a high resolution, because it's just an approximation anyway.
Still may or may not be a good idea, but it doesn't seem that hard. At least technically.
The current labor laws are incompatible with a free market.
The fact that people have to eat isn't compatible with a free market. But they do. The worker/employer relationship is not an exchange of goods among peers. It is fraught with manipulation and coersion, usually to the detrement of the worker.
I'd recomment A People's History of the United States by Howard Zinn. It isn't exclusively about unions, but it talks about them quite a bit, and places them in context as well. I found it quite enjoyable to read as well, and I'm not that much of a history buff.
Strangely, US programmers are doing quite well, even though their salaries have been jacked through the roof (albeit not
by unions).
I'm afraid I don't have a quote, but I have seen note that people with CS degrees today are earning less than they were in the 80s. Certainly not the end-all and be-all of statistics, but I wouldn't simply assume that salaries have gone up.
If a company is willing to screw consumers
with "content protection" do you really trust it not to screw its own employees?
You can also see a model in some more activist unions of the union opposing things that aren't directly related to employment, but represent the beliefs of their employees. The National Education Association is probably the most notable such union -- much of their lobbying in education isn't related one way or the other to employment, but simply reflects what teachers believe are the best ways for schools to operate -- as opposed to what pundits, principles, school boards, and sound-bit-searching politicians think is best.
It would be nice to see something like this for technology.
Unions will fail in tech, because "scabs" will laugh and cross pickup lines, and we're as a rule not imposing enough to
scare them.
Like most highly-skilled professions, employees potentially have a lot of power. You can't replace a good employee easily. And unlike other professions, the top 10% of the workers are 10 times as productive as the rest. (well, okay, maybe not quite that much... but it's still pretty extreme)
What it takes is for some of that top 10% to decided that they value power over their employement (beyond do-this-or-I'll-quit), some degree of safety in their employement, due process in their fate, and benefits beyond simply money. Heck, they might get more money too.
In an informal way, this has already kind of happened. A large portion of the highly talented programmers et. al. have shown that they don't value money over everything. They aren't executive, they aren't "professional" in the anything-to-benefit-the-company fashion. They actually have moral conviction and will act on it. So things aren't that bad. At the same time, it's not a big step to unionize from here.
I'd assume that a union would just try to decrease
the number of H1 Visas. I suppose it might force companies to pay H1 Visa recipiants more since this would make them
less attractive, but this just means that only the companies without unionized labor would have lots of H1 Visa holders. I
think federal legislation to force fair treatment of H1 Visa holders wopuld be much more effective.
I think H1B visas should eliminated as common practice in any field -- for very skilled people in very specific situations, it kind of makes sense. But that's not the way it's being used.
I'm really entirely in support of immigration, I'd just like the immigrants to get Green Cards. It hurts all workers when some workers are disempowered. The entire concept of the H1B Visa is that it ties an employee to their employer -- it's indentured labor. It has no place in the work place.
I'm really not even worried about the competition -- this isn't a zero-sum game, and people deserve an opportunity regardless of what country they come from.
Second, do you think that unions would really do anything to fix the problems with unfair co compeat contracts and
NDAs?
First, Unions are groups of workers -- they will be at least as knowledgable as the individual workers. And unions deal with contracts in all fields of work. That's what they do. They most certainly would understand the subtleties of the contracts.
I think the tech industry would be much better served by having a "tech workers loby" which did not deal with
companies, but dealt with congress and the courts instead
That's just a union that doesn't actually have any base of real strength. Unions are lobbies. And more than that.
Alternativly, one could make an argument that unions would be ineffective since there are many many tech companies,
i.e. unions are designed to deal with companies which have "monopolies on work."
The technology industry isn't that much harder than many other areas. Admittedly, it would be harder to get techies in non-technology companies unionized, but it is certainly possible. It is important that unions have the ability to collectively bargain, and to have contracts that ensure that all applicable employees at a union company are union. These are endangered rights.
However, the field of technology is actually very much suited to unionizing in other ways. Replacing workers is quite difficult -- even if the worker market wasn't tight. It's a skilled profession. There are also very significant benefits that a union can bring to employers. It's in the union's interest to be representing people of quality and value. Both by being somewhat exclusive (as many professional unions are), and by helping to provide training (as is common for unions), a union can increase the standard of skill.
For that matter, we only have a half-dozen to dozen cities where local
mass transict *can* be practical.
For conventional public transit, I think that is probably correct. I mean, I live in Chicago, which would probably be one of those cities, and it's still rather crappy. They are going to spend $380 million dollars renovating 6 miles of the El. That's insane. That's a tremendous waste of money.
However, I don't think things are entirely lost. I really think Personal Rapid Transit could work in most US cities. The quick summary, is small cars (one to three people) running on elevated tracks (but very small tracks, since the vehicles are light), with automated navigation (which is really easy, unlike cars, because they are on tracks).
The great part is that it doesn't require any special technology. It uses wheels, electric motors, and tracks on stilts. Nothing very expensive. Only the automated navigation is slightly technologically difficult, but I think that is quite doable. Even running at 30 or 35mph, it's still far faster than other forms of public transportation when considering the total travel time (including waiting, transfering, and walking to your final destination). In Chicago, it would be faster than driving most of the time.
People are of the perception that public transit has to be high-volume to be efficient, but that's not really the case -- if you can move people in a more parallel fashion, it can be efficient on a smaller scale. In this case, you don't stop until you get to your destination, and the cars can run fairly close together.
Sadly, governments just keep putting money into light rail, which is a complete waste. I wish it wasn't so -- but it just doesn't work, it's too slow, too irregular, and doesn't get people where they want to go.
Anyway, for someone who is interested in PRT, there's information to be found at Taxi 2000 (well, that name doesn't make sense anymore, does it?) and Citizens for PRT.
No one would hire an architect or
mechanical engineer who didn't have at least a piece of paper from a college.
Computer programming isn't engineering. At least not good programming.
Engineers make things that are, in fact, very reliable. They've given something up for that. There is very little innovation in engineering -- civil, mechanical, and to a lesser degree electrical. There are conventional designs, conventional requirements, and conventional ways to meet these requirements.
In most engineering, this lack of innovation isn't so bad -- highway overpasses don't need to be revolutionary to work.
Some software also fits this kind of conventionalism. Some things have indeed been accomplished in conventional and reliable ways. Disk access, for one. Thank goodness everyone isn't designing their own disk-access routines. Or writing their own TCP/IP stacks. Or implementing their own C compilers.
It's easy to forget this -- in software, when you come up with a conventional and reliable solution, and fit it in the right place in the system, it will stay there and very few people will continue to work on it. All the other problems are usually novel in some manner -- which is to say, conventional engineering practices are totally inappropriate. Engineers work on the conventional problems long after they've been solved. Thank goodness we don't have to.
Yes, there often is a Right Way to do something, a way whose benefits you would only realizing by studying other projects, and making projects of your own. But the Right Way is usually an intuitive concept -- a matter of taking knowledge and experience from one place, and redirecting those to a new area. The most important design decisions are things you can't represent as a checklist, and you probably can't teach in the model of engineering. I'm sure you can teach that stuff -- but it's just not engineering, and you can't teach it like you would engineering.
If you want to make a parallel between engineering and software, you have to use a fair comparison anyway. Think of making a car. It is as complex as a relatively complex piece of software. It has lots of pieces, but it pretty much does only one thing -- roll. They come out with revisions once every year or two, with minor skin changes every year. A successful novel design hasn't happened for decades -- heck, a century -- just an incredible amount of feature creap.
Or, put all the GPL'ed code into a stand-alone executable, which is itself GPL'ed.
Of course, while this may be legal it is most certainly not in the spirit of the GPL. Some people will take offense if you do this, and rightfully so -- you are using their code in a manipulative and dishonest manner. Other people may not care.
It depends, I suppose, on whether they chose the GPL because it was simply the standard in their area of software, or whether they actually believed in copyleft. Or, in some cases, where they chose GPL just so they could keep close-source competition from gaining unfair advantage from their software (by using pieces without giving back their improvements).
I know Ian Murdock (Debian founder and dpkg developer) has even made noises that he would make an issue of using this sort of technique to use his GPL code with non-GPL programs. I think he ended up softening his stance in the end, though.
I've been, well, moderately successful at contract work, and moderately happy. Not extremely successful, not extremely happy. So I have a lot yet to learn, myself... but here's what I think now:
The jobs you are likely to get are either due to (a) being particularly experienced and capable doing something very specific or (b) networking.
If you can do (a), great. You're jobs will probably be fairly sporatic, since you'll have a small but very strong demand. Sometimes someone will really need you, sometimes no one will. But you can -- rightfully -- ask for a lot of money. They are skimming the cream of your experience.
But you probably can't or don't want to do (a). So you have to network. If you are talented and honest, then hopefully people will have noticed in your former jobs. Maybe some former employers could still use a hand doing some things, maybe people you've worked with have left and gone elsewhere. Other friends and family are also contacts. There's nothing wrong with using them.
If you have a contact, it doesn't have to be with someone in management. Anyone could potentially suggest you, and a small job can lead into further work. Don't be afraid to take a job because it's too small. But don't underprice yourself, it won't help you get employed. Portray success and competence, even if you are unsure about what you are doing. I'm really lousy at this, but I'm sure it must help.
A lot of computer-related stuff involves a lot of trust on the part of the employer. They might want something done, but they don't know how hard it is to do, or what is reasonable to expect. This is relatively unique in business -- usually the people higher up have some clue about what's going on lower down, but they simply can't do that with computers. They aren't going to trust you due to your resume, no matter how impressive. That's why personal relationships are so important.
I'd be very careful about doing work on a per-project rate. Hourly is much safer. I subcontracted hourly with someone who got a contract for a fixed amount to do a website. The client ended up being much more demanding and difficult than expected, and I don't think it was a good experience for her. If you are working hourly, difficult and demanding employers just mean more paying work, even if it is less satisfying.
Most of what the editors do is bitch at the contributors who are late
submitting their articles.
To ammend my own comment to be fair to the editors they actually do a lot of editting. Every article is editted at least twice by the commissioning editor (from the publisher), twice by the project editor (an expert on the encyclopedia's subject), once by a copyeditor, once by a proofreader, is reviewed by a researcher, and also has freelance researchers compile bibliographic and other information.
I think the editors just hate all the time they have to spend bugging contributors, so they tend to talk about it a lot.
But really, it's a lot of effort beyond just the effort the authors put in. It takes them about two years from start to finish to compile a moderate-sized encyclopedia (these are encyclopedias like The Encyclopedia of Gardening -- a full-subject encyclopedia is never really finished, so it's hard to say how long that might take).
I've been doing some work at an ecyclopedia publisher for several months now. All their employees are editors or people assisting the editors (and a few administrators, etc). All the research and writing, including the subject-specific editors, are freelance. Most come from academia
In some ways this shows some promise for GNUPedia -- the real content is already coming from distributed individuals, usually people for whom writing is not a profession. OTOH, I think it shows the weakness as well -- what makes a bunch of articles an encyclopedia is the editorial influence. The web already has lots of articles, but it doesn't have the editorial influence.
Most of what the editors do is bitch at the contributors who are late submitting their articles. This is because an encyclopedia that covers 90% of the necessary material is a bad encyclopedia. Who's going to do the bitching for GNUPedia? And how would they possibly have any authority to bitch? They aren't paying anyone anything...
I think GNUPedia should place more emphasis on compiling and cataloging. Most of the content already exists. That's what OpenDirectory is all about... that's what the web is all about... and a lot of the content is from people who wouldn't mind giving up control, because they aren't receiving anything in return anyway. A little flattery could go a long way...
If already-existing resources were compiled and editted, released under a copyleft-license, GNUPedia could really be successful. But as it seems stated, it feels like GNUPedia is just a rephrasing of what the web already is.
Also, GNUPedia or some subset needs some exclusiveness. I think a lot of people who contribute to these encyclopedias do it because in a small way it makes them a published author. In academia the greatest rewards are things you can say about yourself, not things you have. If GNUPedia can make people rightfully proud of being contributors, then it can definately succede.
Re:Will GTK become Yet Another X?
on
GTK+ without X!
·
· Score: 2
Most people don't remember that the whole point of X is to run
applications in a network environment, even if they're used locally.
Network transparency is just not a difficult enough thing to achieve to suffer the complexity of X. I mean, do you want to make your X server open to the entire Internet? No, of course not -- that's an incredible security hole. So what's the point? What network environment are you talking about? Your local LAN? That makes X worth it? Access from trusted computers is the same as a "network environment"?
X does many things, and it does them all poorly. VNC is simpler and more robust for working over the network. 3D is patched on. Can you do 3D reasonably over the network? It's not very stable -- a rogue app can effectively kill the server (even if it's not supposed to). It doesn't do fonts well, so people are making systems that entirely ignore the X font system. The clipboard is lame...
What does X do well?
Re:Not very interesting for non-pda employment
on
GTK+ without X!
·
· Score: 3
But when you start wanting 3D drivers,
network transparency etc. you'll end up with something just as big as X anyway.
I think there's a flaw in this conception. First, network transparency is not the great, unique feature it once was. VNC has a lot of advantages over X, and even if it has flaws (probably performance in certain cases), it is easier to fix than X. Even so, X could coexist with other systems if it was implemented ontop of something like the framebuffer. So you could have your cake and eat it too.
While 3D drivers would have to be in the kernel, I don't think that's so bad. That doesn't mean OpenGL has to be in the kernel, just the necessary interface to the hardware. Interfacing hardware is exactly what the kernel is supposed to do. Linus just wimped out because graphic hardware is more volatile than most other hardware, and there was a crappy (X) solution already.
But the reality is that X doesn't have the quality and security that the kernel has. Linux is not stable for me, because it's not uncommon that X blows up for some reason, leaving the kernel happily chugging along while the monitor and keyboard are completely frozen. If you don't run X -- like on a server -- it's easy to have great uptimes. Otherwise...
Proper abstraction is what is necessary. All of X doesn't need to be in the kernel. Only the part that interfaces the hardware. The rest can be done (safely!) in userspace, as opposed to doing everything (very unsafely!) in userspace as X does.
The framebuffer doesn't seem to be a good solution. I really think that KGI and GGI provide a solid technical solution. But Linus has been very negative about those projects, unfortunately, and they seem to be moving slowly:-(
While calculus doesn't really relate to anything found in the typical computer programmer's daily doings, the underlying concepts of Linear Algebra and Abstract Algebra really do relate quite a bit. Discrete Math is also fairly useful.
Unfortunately, it seems like calculus is a typical requirement for CS, but they aren't willing to go far enough to actually require anything that matters (though really, I don't think calculus would necessarily have to be a prerequisite for any higher math -- but it seems like it always is).
True, for most programmers, the actual numbers don't matter that much. Just the way things interact with each other. So set theory is very important, but doing integrals is most certainly not.
I don't know. I just remember hearing that they flew one in the rain and broke it. Ruined the radar-absorbing finish or something. Then they tried to explain that it wasn't broken, but just made that way. The tactical value of something that can't properly withstand water seems suspicious... *coughporkcough*
What you seem to be crying about is that there exists a market for lower quality objects.
I'm not crying about it. Just noting that it has happened. The guy said "Show me one, just one instance..." and I took it as a challenge. I actually agree with him that modern manufacturing techniques are generally of higher quality. But modern economics aren't always of higher quality.
Show me one, just one instance in which devices manufactured with modern
techniques aren't as good as devices manufactured with traditional techniques.
Okay, I generally agree with you, but there do exist a good number of examples:
The B-2 stealth bomber, which can't fly in the rain.
Car engines. While regular maintenance is down, and operational tolerances for conditions like cold are up, tolerances for internal operation are way down. Which is a big part of why people can't fix their own cars anymore.
Phones. While the solid-state electronics are more reliable, the general reliability seems to be down (by my own subjective perception) -- probably just cheap manufacturing.
Compaqs. They used to last forever, now they are the crappiest computers on the market. Okay... "Compaq" probably isn't an item, but I still hate them.
Tools (like pliers and such). With cheap manufacturing, tools in the last 50 years are more disposable than they used to be. There seem to be more tools left from before WWII than after, which shouldn't be so.
If I thought harder, I could come up with more at a rate of, oh, one every five minutes. But I don't feel like doing that. And sure, these are mostly anal. Either they are from pure incompetence (B-2 and Compaqs), or more often because as certain components become cheaper, it no longer makes sense to make the entire product as reliable. It's more efficient to make a cheap plastic phone that will be replaced every year or two, than to make a quality phone that lasts forever.
You may not like advertising but if you're
looking for someone else for info, entertain, or enlighten you then stick to the.edu domains
(where you're still paying for it through taxes) or realize that people have to survive.
The problem with advertisement is that it attempts to make the medium as inviable as advertiser-avoiders do. By becoming more and more obnoxious, they take value from the sites they advertise on. They attempt to reduce the pages to complete neutrality where they are as obnoxious and misleading as they are insightful and helpful. I blame advertising and attention-hoarding for most of the usability problems on the web. Users are constantly being directed, not being allowed to direct themselves.
By avoiding ads, we're making the system inviable? So what? The system is not viable anyway. Advertising must always push the barrier between advertising and non-advertising, it must always encroach on real information, because people naturally (without even thinking of it) see advertising for what it mostly is: lies. Not always straight-out lies, but lies nonetheless. And so people filter it out. They will always filter it out, because the human mind is good at that. And so advertising is always on the edge of becoming useless. And so the advertisers push harder. This can only end in the destruction of the medium itself, or the destruction of the minds and will of the advertising victims. I'd rather see the medium destroyed.
Want to know the fastest way to sell me
your product? Give me information about it
To a degree this type of marketing already exists wihtout you realizing it -- and there's a risk of it existing to a much greater degree.
Risk, you ask? Why yes, I answer. (okay, nobody asked, but I thought I'd expand anyway)
Information and spin are just two sides of the same coin. Information is when you are empowered, spin is the same thing when the seller is empowered. Spin has much more appeal to sellers.
In an effort to expand the power of spin, I expect an even greater insinuation of corporations into the media (and into each other). This is nothing new, of course, but I think it will come to reach new heights as the media becomes increasingly monopolized. Like the "news" magazine TV shows that have the "inside looks" at new movies. Like the Mindcraft study. Only more so. Everywhere.
Of course, the skeptical few will still be able to figure it out. But while the masses are able to learn to ignore banner ads, spin is much harder to ignore because (when done well) you don't know it's there.
For instance, whenever you're scrolling, there is a "scrolling" sound. Very
soft and subtle -- but continuous for as long as you're holding down the
mouse button.
So if you don't have any short-term memory, you can remember what it was you were doing?
Okay, maybe it's slightly more useful than that -- but it's usually not necessary or even helpful. If you are scrolling, the really useful feedback is the fact the window is scrolling. Or the button is depressed, or whatever. I haven't found that sound adds anything useful to that.
The nice thing about a sense that's entirely seperated from vision, is that it can be used for something entirely unrelated to what you are looking at. The sound I hear when walking down the street doesn't effect my understanding of what I see very much -- I can see the street and the other people just fine. But I can hear things going on outside my field of vision and my field of attention, and that can be very useful (for instance, if I hear someone walking up behind me).
Sound seems to be particularly appropriate for background events. People are very good at filtering it out -- I can be on a train and listen to one person over the sound of the train and other people's conversation. But if someone else says my name -- even though I'm actively listening to something else -- I will notice that. That's really pretty damned impressive when you think about it, and yet a nearly universal skill.
However, just considering the practical aspects, child labor doesn't really help poor people. The children make very small wages, in part because they really aren't very productive. They are young and weak and unskilled. Studies have shown that the money lost by sending a child to school is regained in full and then some by the increased skill they will have later in life. Simply being literate and capable of doing math is a tremendous benefit to even an unskilled laborer.
Of course, future wages don't matter if you don't have enough foot now, and if your children's growth is being stunted now, and if one of them will die of a curable disease because you are poor now.
So I can't blame a parent that sends their child to work. But I think child labor is still bad, it's just the unfortunate -- no, the unjust situation that all alternatives are bad. That child labor is sometimes the best alternative doesn't mean that we, as a society, as a species are any less morally implicated.
Am I being obnoxiously picky? Yeah, I suppose so.
Hmmm... looks like the project's been pretty quiet for a while. Anyway, it's still a good idea.
I actually picked it up after Katz made reference to it, but don't let that scare you off :-) It covers ethics in a larger social context then your question, but I think there's a lot of parallels between the small issues and the large issues. The fractal nature of the world, I suppose.
The title says "engineering", but it's really about technological advancement in general. And unlike most critiques of technology, it's not by a reactionary with fantasies of hunting and gathering their way to social harmony.
The article talked about speed zones, which to me seems to imply that it would mark certain areas as having maximum speeds. In my neighborhood there aren't any streets with speed limits above 35mph -- so it would be a 35mph zone. The highway is a ways away, and it would have to have a 55mph corridor. So you could speed on the overpasses, but is that such a big deal? And you could speed in the 15mph parking lot in the 35mph zone, but that's just the way it would have to be.
This is not a lot of information. It's just covering the map with variuos polygons and respective speed limits. It doesn't have to be highly reactive to speed limit changes, because it's only trying to say what the highest speed limit in the area might be. It doesn't have to have a high resolution, because it's just an approximation anyway.
Still may or may not be a good idea, but it doesn't seem that hard. At least technically.
I'd recomment A People's History of the United States by Howard Zinn. It isn't exclusively about unions, but it talks about them quite a bit, and places them in context as well. I found it quite enjoyable to read as well, and I'm not that much of a history buff.
It would be nice to see something like this for technology.
What it takes is for some of that top 10% to decided that they value power over their employement (beyond do-this-or-I'll-quit), some degree of safety in their employement, due process in their fate, and benefits beyond simply money. Heck, they might get more money too.
In an informal way, this has already kind of happened. A large portion of the highly talented programmers et. al. have shown that they don't value money over everything. They aren't executive, they aren't "professional" in the anything-to-benefit-the-company fashion. They actually have moral conviction and will act on it. So things aren't that bad. At the same time, it's not a big step to unionize from here.
I'm really entirely in support of immigration, I'd just like the immigrants to get Green Cards. It hurts all workers when some workers are disempowered. The entire concept of the H1B Visa is that it ties an employee to their employer -- it's indentured labor. It has no place in the work place.
I'm really not even worried about the competition -- this isn't a zero-sum game, and people deserve an opportunity regardless of what country they come from.
First, Unions are groups of workers -- they will be at least as knowledgable as the individual workers. And unions deal with contracts in all fields of work. That's what they do. They most certainly would understand the subtleties of the contracts. That's just a union that doesn't actually have any base of real strength. Unions are lobbies. And more than that. The technology industry isn't that much harder than many other areas. Admittedly, it would be harder to get techies in non-technology companies unionized, but it is certainly possible. It is important that unions have the ability to collectively bargain, and to have contracts that ensure that all applicable employees at a union company are union. These are endangered rights.However, the field of technology is actually very much suited to unionizing in other ways. Replacing workers is quite difficult -- even if the worker market wasn't tight. It's a skilled profession. There are also very significant benefits that a union can bring to employers. It's in the union's interest to be representing people of quality and value. Both by being somewhat exclusive (as many professional unions are), and by helping to provide training (as is common for unions), a union can increase the standard of skill.
However, I don't think things are entirely lost. I really think Personal Rapid Transit could work in most US cities. The quick summary, is small cars (one to three people) running on elevated tracks (but very small tracks, since the vehicles are light), with automated navigation (which is really easy, unlike cars, because they are on tracks).
The great part is that it doesn't require any special technology. It uses wheels, electric motors, and tracks on stilts. Nothing very expensive. Only the automated navigation is slightly technologically difficult, but I think that is quite doable. Even running at 30 or 35mph, it's still far faster than other forms of public transportation when considering the total travel time (including waiting, transfering, and walking to your final destination). In Chicago, it would be faster than driving most of the time.
People are of the perception that public transit has to be high-volume to be efficient, but that's not really the case -- if you can move people in a more parallel fashion, it can be efficient on a smaller scale. In this case, you don't stop until you get to your destination, and the cars can run fairly close together.
Sadly, governments just keep putting money into light rail, which is a complete waste. I wish it wasn't so -- but it just doesn't work, it's too slow, too irregular, and doesn't get people where they want to go.
Anyway, for someone who is interested in PRT, there's information to be found at Taxi 2000 (well, that name doesn't make sense anymore, does it?) and Citizens for PRT.
Engineers make things that are, in fact, very reliable. They've given something up for that. There is very little innovation in engineering -- civil, mechanical, and to a lesser degree electrical. There are conventional designs, conventional requirements, and conventional ways to meet these requirements.
In most engineering, this lack of innovation isn't so bad -- highway overpasses don't need to be revolutionary to work.
Some software also fits this kind of conventionalism. Some things have indeed been accomplished in conventional and reliable ways. Disk access, for one. Thank goodness everyone isn't designing their own disk-access routines. Or writing their own TCP/IP stacks. Or implementing their own C compilers.
It's easy to forget this -- in software, when you come up with a conventional and reliable solution, and fit it in the right place in the system, it will stay there and very few people will continue to work on it. All the other problems are usually novel in some manner -- which is to say, conventional engineering practices are totally inappropriate. Engineers work on the conventional problems long after they've been solved. Thank goodness we don't have to.
Yes, there often is a Right Way to do something, a way whose benefits you would only realizing by studying other projects, and making projects of your own. But the Right Way is usually an intuitive concept -- a matter of taking knowledge and experience from one place, and redirecting those to a new area. The most important design decisions are things you can't represent as a checklist, and you probably can't teach in the model of engineering. I'm sure you can teach that stuff -- but it's just not engineering, and you can't teach it like you would engineering.
If you want to make a parallel between engineering and software, you have to use a fair comparison anyway. Think of making a car. It is as complex as a relatively complex piece of software. It has lots of pieces, but it pretty much does only one thing -- roll. They come out with revisions once every year or two, with minor skin changes every year. A successful novel design hasn't happened for decades -- heck, a century -- just an incredible amount of feature creap.
Once again, thank goodness we aren't engineers.
It depends, I suppose, on whether they chose the GPL because it was simply the standard in their area of software, or whether they actually believed in copyleft. Or, in some cases, where they chose GPL just so they could keep close-source competition from gaining unfair advantage from their software (by using pieces without giving back their improvements).
I know Ian Murdock (Debian founder and dpkg developer) has even made noises that he would make an issue of using this sort of technique to use his GPL code with non-GPL programs. I think he ended up softening his stance in the end, though.
The jobs you are likely to get are either due to (a) being particularly experienced and capable doing something very specific or (b) networking.
If you can do (a), great. You're jobs will probably be fairly sporatic, since you'll have a small but very strong demand. Sometimes someone will really need you, sometimes no one will. But you can -- rightfully -- ask for a lot of money. They are skimming the cream of your experience.
But you probably can't or don't want to do (a). So you have to network. If you are talented and honest, then hopefully people will have noticed in your former jobs. Maybe some former employers could still use a hand doing some things, maybe people you've worked with have left and gone elsewhere. Other friends and family are also contacts. There's nothing wrong with using them.
If you have a contact, it doesn't have to be with someone in management. Anyone could potentially suggest you, and a small job can lead into further work. Don't be afraid to take a job because it's too small. But don't underprice yourself, it won't help you get employed. Portray success and competence, even if you are unsure about what you are doing. I'm really lousy at this, but I'm sure it must help.
A lot of computer-related stuff involves a lot of trust on the part of the employer. They might want something done, but they don't know how hard it is to do, or what is reasonable to expect. This is relatively unique in business -- usually the people higher up have some clue about what's going on lower down, but they simply can't do that with computers. They aren't going to trust you due to your resume, no matter how impressive. That's why personal relationships are so important.
I'd be very careful about doing work on a per-project rate. Hourly is much safer. I subcontracted hourly with someone who got a contract for a fixed amount to do a website. The client ended up being much more demanding and difficult than expected, and I don't think it was a good experience for her. If you are working hourly, difficult and demanding employers just mean more paying work, even if it is less satisfying.
I think the editors just hate all the time they have to spend bugging contributors, so they tend to talk about it a lot.
But really, it's a lot of effort beyond just the effort the authors put in. It takes them about two years from start to finish to compile a moderate-sized encyclopedia (these are encyclopedias like The Encyclopedia of Gardening -- a full-subject encyclopedia is never really finished, so it's hard to say how long that might take).
In some ways this shows some promise for GNUPedia -- the real content is already coming from distributed individuals, usually people for whom writing is not a profession. OTOH, I think it shows the weakness as well -- what makes a bunch of articles an encyclopedia is the editorial influence. The web already has lots of articles, but it doesn't have the editorial influence.
Most of what the editors do is bitch at the contributors who are late submitting their articles. This is because an encyclopedia that covers 90% of the necessary material is a bad encyclopedia. Who's going to do the bitching for GNUPedia? And how would they possibly have any authority to bitch? They aren't paying anyone anything...
I think GNUPedia should place more emphasis on compiling and cataloging. Most of the content already exists. That's what OpenDirectory is all about... that's what the web is all about... and a lot of the content is from people who wouldn't mind giving up control, because they aren't receiving anything in return anyway. A little flattery could go a long way...
If already-existing resources were compiled and editted, released under a copyleft-license, GNUPedia could really be successful. But as it seems stated, it feels like GNUPedia is just a rephrasing of what the web already is.
Also, GNUPedia or some subset needs some exclusiveness. I think a lot of people who contribute to these encyclopedias do it because in a small way it makes them a published author. In academia the greatest rewards are things you can say about yourself, not things you have. If GNUPedia can make people rightfully proud of being contributors, then it can definately succede.
X does many things, and it does them all poorly. VNC is simpler and more robust for working over the network. 3D is patched on. Can you do 3D reasonably over the network? It's not very stable -- a rogue app can effectively kill the server (even if it's not supposed to). It doesn't do fonts well, so people are making systems that entirely ignore the X font system. The clipboard is lame...
What does X do well?
While 3D drivers would have to be in the kernel, I don't think that's so bad. That doesn't mean OpenGL has to be in the kernel, just the necessary interface to the hardware. Interfacing hardware is exactly what the kernel is supposed to do. Linus just wimped out because graphic hardware is more volatile than most other hardware, and there was a crappy (X) solution already.
But the reality is that X doesn't have the quality and security that the kernel has. Linux is not stable for me, because it's not uncommon that X blows up for some reason, leaving the kernel happily chugging along while the monitor and keyboard are completely frozen. If you don't run X -- like on a server -- it's easy to have great uptimes. Otherwise...
Proper abstraction is what is necessary. All of X doesn't need to be in the kernel. Only the part that interfaces the hardware. The rest can be done (safely!) in userspace, as opposed to doing everything (very unsafely!) in userspace as X does.
The framebuffer doesn't seem to be a good solution. I really think that KGI and GGI provide a solid technical solution. But Linus has been very negative about those projects, unfortunately, and they seem to be moving slowly :-(
Unfortunately, it seems like calculus is a typical requirement for CS, but they aren't willing to go far enough to actually require anything that matters (though really, I don't think calculus would necessarily have to be a prerequisite for any higher math -- but it seems like it always is).
True, for most programmers, the actual numbers don't matter that much. Just the way things interact with each other. So set theory is very important, but doing integrals is most certainly not.
- The B-2 stealth bomber, which can't fly in the rain.
- Car engines. While regular maintenance is down, and operational tolerances for conditions like cold are up, tolerances for internal operation are way down. Which is a big part of why people can't fix their own cars anymore.
- Phones. While the solid-state electronics are more reliable, the general reliability seems to be down (by my own subjective perception) -- probably just cheap manufacturing.
- Compaqs. They used to last forever, now they are the crappiest computers on the market. Okay... "Compaq" probably isn't an item, but I still hate them.
- Tools (like pliers and such). With cheap manufacturing, tools in the last 50 years are more disposable than they used to be. There seem to be more tools left from before WWII than after, which shouldn't be so.
If I thought harder, I could come up with more at a rate of, oh, one every five minutes. But I don't feel like doing that. And sure, these are mostly anal. Either they are from pure incompetence (B-2 and Compaqs), or more often because as certain components become cheaper, it no longer makes sense to make the entire product as reliable. It's more efficient to make a cheap plastic phone that will be replaced every year or two, than to make a quality phone that lasts forever.By avoiding ads, we're making the system inviable? So what? The system is not viable anyway. Advertising must always push the barrier between advertising and non-advertising, it must always encroach on real information, because people naturally (without even thinking of it) see advertising for what it mostly is: lies. Not always straight-out lies, but lies nonetheless. And so people filter it out. They will always filter it out, because the human mind is good at that. And so advertising is always on the edge of becoming useless. And so the advertisers push harder. This can only end in the destruction of the medium itself, or the destruction of the minds and will of the advertising victims. I'd rather see the medium destroyed.
And I see no reason to apologize for that.
Risk, you ask? Why yes, I answer. (okay, nobody asked, but I thought I'd expand anyway)
Information and spin are just two sides of the same coin. Information is when you are empowered, spin is the same thing when the seller is empowered. Spin has much more appeal to sellers.
In an effort to expand the power of spin, I expect an even greater insinuation of corporations into the media (and into each other). This is nothing new, of course, but I think it will come to reach new heights as the media becomes increasingly monopolized. Like the "news" magazine TV shows that have the "inside looks" at new movies. Like the Mindcraft study. Only more so. Everywhere.
Of course, the skeptical few will still be able to figure it out. But while the masses are able to learn to ignore banner ads, spin is much harder to ignore because (when done well) you don't know it's there.
Okay, maybe it's slightly more useful than that -- but it's usually not necessary or even helpful. If you are scrolling, the really useful feedback is the fact the window is scrolling. Or the button is depressed, or whatever. I haven't found that sound adds anything useful to that.
The nice thing about a sense that's entirely seperated from vision, is that it can be used for something entirely unrelated to what you are looking at. The sound I hear when walking down the street doesn't effect my understanding of what I see very much -- I can see the street and the other people just fine. But I can hear things going on outside my field of vision and my field of attention, and that can be very useful (for instance, if I hear someone walking up behind me).
Sound seems to be particularly appropriate for background events. People are very good at filtering it out -- I can be on a train and listen to one person over the sound of the train and other people's conversation. But if someone else says my name -- even though I'm actively listening to something else -- I will notice that. That's really pretty damned impressive when you think about it, and yet a nearly universal skill.