Circumstances alter cases is the old legal truism. It certainly applies here.
Examples from an IT career spanning over 20 years and several Continents.
I've worked in a company where I felt I was underpaid by market rates, got a job offer "out of the blue" at a much higher rate, went to my supervisor and said "I can't afford to keep working here.". He looked at the figures, said "You're right, and we can't afford to pay nearly that much, so Good Luck and do you need a reference. Your work here has been a great contribution, I don't know how we'll replace you, but we'll manage. You must act in your own best interests." I left with some regret, but recommended them as a good bunch to work for - and delayed as long as I could in order to do a complete handover.
I've worked for a firm where much the same thing happened, but I decided that the pay wasn't as important as how much I enjoyed working there. I helped finish off the project, then started looking for a new job with as much interest but higher pay. I got it - again, I was truly being underpaid.
I've had a job where they made an immediate counter-offer. Within a month they upped the salary of everyone else to match market rates, as they realised they'd been underpaying everyone. I left when they ran out of interesting work in my niche, but again, would recommend them.
I've had a job where they made an immediate counter-offer, but told me not to tell anyone else so they could keep underpaying them. I RAN from this bunch of sleazebags - I hadn't realised they were so - er - "ethically challenged".
I've worked for a company where the employees got together annually, we were given the financial data of the company, and we all decided what our pay should be for the forthcoming year. I might add that when times were lean, it was the more senior people who asked for their pay to be cut, as we could afford it more than the junior people - some of whom even got rises, as they deserved it, and we could afford it. And with our longer experience, we realised just what a rare and wonderful situation we were in. Do you know what it's like when a bunch of people you respect insist that you get a pay rise because of your contribution to the firm? The money amount is irrelevant, some things you just can't buy. (Actually, I'm still working for this firm.)
So Circumstances alter Cases. There are
firms out there that have loyalty to their employees, and expect (though don't always receive) employee loyalty in return. There are firms that think the concept of "loyalty" in any direction is irrelevant, and settle for impersonal fairness. There are those that try to screw the employees for as much as they can - rather too many of these, alas. And there are firms which are the employees, with everything out in the open. Damn few of em, unfortunately.
One tip: if Money is the be-all and end-all when it comes to benefits, rather than job interest, professional development and career-growth, the greater the odds are that they're out to screw you. Look at the training budget. High means they invest in you, and will try to keep your loyalty. They'll pay market rates to everybody if they can, out of sheer self-interest. Think long and hard before jumping ship to someone paying more but with a lower training budget - you may well regret it.
YF-12A not A-11. The A-11 was the original name for the SR-71 airframe. The SR-71 BTW was supposed to be called the SR-17, but LBJ screwed up the public announcement, and thenceforth, SR-71 it was.
SR stands for Strategic Reconaissance. YF stands for Service Test Fighter. A full explanation of the codes is available here. Data comparing YF-12A and SR-71 is available here and on many other websites. For some strange reason, it's a popular subject for air freaks:-)
All you never wanted to know about the A-12, YF-12A, D-21 Drone, and other SR-71 "Blackbird"-related variants is available here, and the YF-12A section of the same site here. It's an auto-translation from the original French, but pretty darn good - quiet progress in this area has been significant over the last few years, though it's still got a a way to go.
...in the past thinking like this has resulted in things like Ada.
Yes, this is true. Ada was devised as the result of 4 groupscompeting against each other, and the best of em (though opinions vary) selected as the Mandated Language for the DOD.
The driving concern of the HOLWG was to assure that the design was guided by a responsible principle investigator, and to preclude "design by committee". On the other hand, picking a single contractor to do the job and trusting to luck would have been imprudent. The procurement was through multiple competitive contracts, with the best products to be selected for continuation to full rigorous definition and developmental implementation.
And it was a disaster from the Defence Contractor's viewpoint. Firms fell over themselves trying to get exemptions from using it, ANYTHING was better. Because Ada had
Objects
Exceptions
Generics (templates)
Multiple-threading/Tasking
Strong Typing
and a whole host of other advanced software technologies that were risky or unimplementable. This of course was in 1983. Now the fact that Ada had a standard definition, and that there was a standard test-suite for it, proved that the technologies were perfectly implementable. But Ada was mandated by the DoD, so had to be a boondoggle. After much to-ing and fro-ing, the Ada Mandate was removed, in 1997. And there was much joy, as major defence firms got billions more in maintenance work, and ships broke down requiring costly repairs. Some suggested that it was a Cosy Relationship between Deefence Contractors and the DOD that had been the reason for not using Microsoft before. Which rather ignores the fact that when it comes to safety-critical applications, Boeing switched from C to Ada rather than the other way round, and the military has had to pay bundles in.
So yes, had compatibility been mandated in the past, we might all have systems far more reliable and robust. But Microsoft wouldn't have $40 Billion and a number of tame Congresscritters.
Life "as we know it" is a lot more common in our region than we think. Due to exobiology as per the Hoyle Wickramasinghe hypothesis. Even if the hypothesis is wrong and life requires a clay matrix to develop DNA, and even though the latest news on Martian Meteors looks like they didn't contain fossil bugs, the mechanism for propagating life pretty much anywhere near where it develops is sound. Bacteria are hardy beasts, and can survive in space quite well. With the latest news on the water on Mars, the odds of life there approach certainty.
That's the good news. The Bad news is that the step from procaryotes to eucaryotes, that is, going from single-cell to multi-celled organisms is a big one, and probably only a fraction of one percent of life origins ever make it.
But it's worse than that. Technology requires colonies of multicellular organisms. These can be as complex as as the Portugese Man-O-War which although it looks like a jellyfish is actually a colony of 4 different polyps, more like a multi-species anthill or coral reef than anything else. Or they can be as simple as the US Congress, an organism whose intellect is less than any of its constituent members. In any case, some multicellular genusses may remain in pre-school, and never develop anything as complex as an ant farm. The development of such complexity may require a stable double-planet system, rare as hen's teeth. Earth and its moon would be considered a double planet system if we didn't live on one of em.
It's worse still. The Dinosaurs were terrifically successful for megayears, but had they landed on the Moon, we'd almost certainly know it. So it's possible to have complex organisms, complex societies (herds), but still no technology for Sagans. Closer to home, Dolphins are unlikely to ever develop a technology. You may need to periodocally hit the planetary reset button with a meteor or super-volcano. But not too hard - or you've got to rebuild from procaryotes again. And not too soft, you only have a limited amount of time before the star you're around goes Ploof.
Finally, there's the "Goldilocks Zone" that's the subject of the original article. Star too close to galactic centre = bad. Star too far out = bad. And then within that torus, star in spiral arm centre = bad. Don't be too near a supernova. So the quicker you can develop a multi-stellar population, the better. Which reduces the odds even further.
The scary thing is that we may be the Elder Race. An awesome responsibility for us. So let's be careful out there. Preserve Genetic Diversity, and get into Space ASAP. Then we can start making friends. And I do mean making - as in constructing - so we have someone interesting to talk to.
Though we could start right now with Chimpanzees and Gorillas. They'd be considered primitive but undoubtedly intelligent species if they came from another planet. History will judge us harshly if we don't start granting sub-human rights to sub-humans.
Which means that we'd better get our ethics up to scratch.
Let em earn that respect. But be warned: "Old age and cunning beats youth and enthusiasm." . They didn't get as far as they have without learning dirty fighting, even if they appear as thick as two short planks. Said appearance might just be a smokescreen. The good ones will take criticism, and either rejoice that you've helped them with a problem they'd been getting wrong for years, or gently point out to you the error of your ways. You either get ego-boo, or learn something. Of course there are plenty of charlatans in the business, and almost as many bright egomaniacs who although good, aren't nearly as good as they think they are. Neither take criticism very well, and they can make your life hell.
Course I'm only 44. Not exactly ready for the Knacker's yard yet. My (so far only) son's only 10 months old, maybe I'm just a slow starter.
On the gripping hand, it can be very annoying when you see youngsters with real talent not even bother to check the literature and learn from other's mistakes. And it's downright infuriating when you see their teachers do the same.
So good Luck, Grasshopper (get the reference? you're 19 or so according to your user-data, so probably not).
Even managed to kludge some hardware together to drive an IBM Golfball typewriter from my Exidy Sorcerer , which at 2.1 Mhz clockrate was the fastest gun in the west. In 1978 that is. Pre-IBM-PC. Pre-Mac. Contemporary with the TRS-80 Model 1 , the Commodore PET and the Apple II. Just have a look at the Old Computer Museum reference.
So just remember that one day, arguments about RedHat vs Debian will be considered "quaint", as the newest alphageek-wannabes argue shrilly about direct-neural-induction vs alphawave-heterodyning on the new Petaflop quantum-Beowulf-cluster-wearables.
While old codgers like me will still be trying to stop said wearables from having the usual code bloat and buffer overflows caused by AOL-Time-Warner-CNN-MicroSoft-General Motors-Unilever-Bell-Boeing-PepsiCo 31337 hackers rather than Software Engineers.
Intellectual Property
on
Fair IP Laws?
·
· Score: 2, Interesting
If we could start with a tabula rasa regarding intellectual property - which covers patents, copyright, and trade secrets - we'd best first off decide what we're trying to achieve.
Attribution. If A invents B, then we want the world to know that B is A's invention. This is for psychological gratification as much as anything. Many/. readers are coders, and know the "warm fuzzies" you get when you create something that you can be proud of. Singers, Songwriters, Artists in general get the same buzz. Some things money can't buy.
Improvement. If A invents B, then C should be able to look at B and figure out that B' would be a significant improvement on it. It's this that has spurred the "Open Source" movement, which exposes the internals of Software so that peer-reviewers can spot blemishes.
Incentive. The original UK and later US model for patents was intended to give encouragement for people to invent new and useful methods and devices, basically to spur the improvement of what we now call technology, arts and sciences. Rather than reward mere copy-cats and publishers, a time-limited monopoly was granted, during which time only the creator had the right to publish or implement his or her work, or licence this publication. This incentive was entirely Financial - probably the best way in the 18th century, but may not be the best way of doing things in the 21st.
Facilitation. Any IP legislation must actually facilitate the widespread distribution and adoption of new and improved methods, artworks and devices. So a creator who wishes the protection of the law has certain obligations not to withold it's adoption for general use. Alternately, they should be free to keep it entirely to themselves, in which case the law should not protect anything other than the attribution, if that. Similarly, something that's already in general use should not be suddenly monopolised by an "inventor", be it a generic name such as Aspirin or ROT-13 or similar Caesar Cypher encoding. Once in the Public Domain, always in the Public Domain.
Inalienability. Some moral rights should be inalienable - the owner of the Intellectual Property has some rights and obligations that may never be destroyed or transferred. Should an artist who's painted a Masterwork have the right to burn it and all copies? No, for that would diminish the world's stock of intellectual property. Naturally if the creator doesn't have this right, neither does anyone else. A creator hasn't got the right to allow someone else's name to appear on their work. Exclusive rights of publishing should not be legally enforceable - once the creator has set a certain price for copying, then anyone at all should be allowed to make a copy, for that price. This will stop books and other works going "Out Of Print", as (possibly inferior) copies could be made from an existing edition, via photocopy or MP3. In law, if you make a copy of something - be it a backup, to give to a friend, to put on your MP3 player, or to publish on a million CDs - you should pay the creator during the period of his monopoly for each copy. And so should anyone else, the same amount.
Are all of these requirements feasible to implement in any legal structure? Certainly. Are they feasible to enforce? That's more difficult. Getting someone to pay 0.01c to the production crew who made Buffy the Vampire Slayer every time you use your VCR to record this week's episode requires both the goodwill of the VCR owner, and some non-trivial technology to make it trivially easy. Otherwise people won't bother.
Rather than have a single/. post propose the magic solution to all IP issues, I'll restrict this one to just canvassing what the issues are. Any I've forgotten? Any that you think shouldn't be on the list, or should be modified?
The "How to write Unmaintainable Code" article on the web is an excellent resource for documentation - much as "Web Pages that Suck is an excellent guide for web designers.
Your organisation - even if it's just 1 man and a dog - should already have a style guide in place. Don't have one? Well then it's easy, there are plenty of good ones on the Net, for Java, C++,Lisp,MATLAB, Ada and many others.
A good list of C and C++ styleguides is here. Just pick one. The important thing is to make sure everyone uses the same one, exactly which one is more a religious issue than anything else. That's an over-simplification, some really are better than others, but at least all the ones on that list have been tried, tested and peer-reviewed.
As for my own opinions, a few issues
Make variable names meaningful. If you do this, then most of your comments will be metadata, e.g why you did something, and who and when a change was made, rather than what is being done. If you're doing something tricky or unusual, then having a pseudocode preamble can be worthwhile.
If you can, try to use a relatively high-level language like Ada rather than a low-level one like C. But this is almost never under your control. The Javadoc auto-documentation tool is one of the biggest plusses that Java has over other languages - so if programming in Java, Use It!!
One final thing: your teachers should be castigated for not teaching you this already. For my sins, I've been a CS teacher at ADFA and coding style was always worth Far more marks than merely getting a chunk of code to do something right. Hacking a Kludge to do some trivial mickey-mouse stuff is far easier than professional programming, any 9-year-old hacker with VB can do that. But to make a diamond-hard industrial-strength software component that people's lives can depend upon, that can be modified easily and retain its integrity throughout its lifecycle, that's "non-trivial".
And when was the last time you heard of any problems at Disneyland?
Apart from the numerous fatalities on the monorail and rides? Maybe the gangfights broken up by plainclothed security. Let's see... first gangfight in 1976, first recorded murder in 1981. Still, the Disneyland Security guys, backed up by hidden cameras play hardball , they're into handcuffing suspects to metal railings, lengthy interrogations etc. Don't try to enter if you have the wrong hair colour
What's amazing is that a place that caters for so many people has so few problems. But problems it has.
Re:Supersonic Pioneers
on
Review: U-571
·
· Score: 1
"It Steam-engines come steam-engine time." . There are only so many right ways to do things. Not every design that looks identical is a copy.
Yes, it IS American policy to brook no competition. Can't blame them for that, just make sure that they don't get away with it.
BTW it would be a good idea for the benefit of lurkers to give some links to the subjects under discussion. For example, the X-30 also here looks rather like the German "Saenger" rather than a HOTOL.
Re:Supersonic Pioneers
on
Review: U-571
·
· Score: 3, Interesting
The Bell X-1 in no way was a copy of the M52. It merely copied a large amount of the technology. Unlike the M52, it used primitive rockets rather than an advanced afterburning turbojet; it used a low-tech straight wing rather than the notched-ogive of the M52, which caused severe vibration to the Bell design; and the pilot had little chance of escape whereas the M52 had a jettisonable capsule, like the F-111. On the other hand, the ".50 calibre bullet" shape of the fuselage, and the all-moving tail, were "inspired" by data from the Miles design.
My father was an aerodynamicist working on the Miles M52. Here's the story as I got it from him:
There was an agreement that there should be co-operation between the US and UK on supersonic aircraft research. So the US delegation came over to Miles Aircraft (then working on the "black" M-52 project), and took away lots of data, especially from the wind-tunnel (more advanced than anything else in the world at the time). They also took data about the M-52's all-moving tail, the so-called "all-flying tail". When it came time for the Brits to visit the US, they were told "No can do, our work is Top Secret". Because their new Bell project had suddenly acquired *gasp* an all-flying tail as it turned out. As late as the 90s many Bell corp engineers were still under the impression that this was an All-American Invention.
But the real stinger was when the M-52 got cancelled. All of the calculations, blueprints, test data, special instruments and the analogue computer my Father had invented specifically for stress calculations on supersonic wings, all got bundled into Tea-Chests and sent to Bell Corporation in the USA. OTOH the UK Government got a large loan to help rebuild bomb-damage taken (for the most part) before the US entered WW2.
Links? Ok, try the M52 exhibit at the Museum of Berkshire Aviation. Or the Miles Aircraft history page. A plan view and video is available here.
Shortly before he died, my father met General "Chuck" Jaeger. He was glad to know that his work was put to good use.
The UK Channel 4 made a great documentary about the M52, including some footage of the rocket-powered model that hit Mach 1.5 in tests in the late 40's, after the project had been cancelled.
First, I've gotta say that I'm rather right-wing by Australian standards. For example, I'm a monarchist, and I guess if it was 1776, and I lived in the American Colonies, I'd be a Tory. Though compared to many in the US at the moment, I think I'm left of centre. But I digress...
I know too many people who have come to Australia, fleeing persecution in Chile to have much time for Pinochet. Not leftist ratbags, but just the usual bunch of geeks, jocks and all those in between who were college students when Pinochet's minions came into their classroom and started shooting. And I mean that literally. Conscript Soldiers came onto the campusses, into the classroorms, and did a Columbine, not once, but dozens of times, "to keep order" and pre-emptively stop the "leftist intellectual students" from demonstrating. Now Pinochet's intentions may have been good, he may have done a lot of good for Chile. But I don't give a tuppeny damn, his methods made him indistinguishable from the Trotskyite-, Maoist-, Fascist- or Stalinist- Assholes who also had "good intentions" when they liquidated the Kulaks, turned Cambodia to Year Zero, purged Germany of decadent Art, or any of a number of abominable actions.
As regards the article itself, it had one really good effect. It made people THINK. Just have a look at the comments on/.. I disagree with many of em, but there's a sizeable minority on both sides that have been pursuaded to examine their own beliefs in the light of this article. So IMHO it was a Good Thing tm.
Oh yes, I happen to support Dubya's actions in Afghanistan and elsewhere. You may not realise it, but there's a shipload of other countries involved. Canadians as Hunter groups. Norwegians setting up ambushes in the mountains. Australian SAS seemingly behind every piece of scrub, calling in airstrikes. But I hope I'm more akin to people like the guy who wrote the "Death Star and WTC" comparison than the kneejerk (accent on the jerk) reactionaries who want to shoot them furriner towelheads with their trusty 44s.
For one thing, the latter are a bunch of amateurs. You can't be an effective military professional without a modicum of intelligence and education these days. Unthinking, Ignorant Goons and Fanatics may be fine for mowing down unarmed civilians or subscribing to AOL, but these days such cannon fodder tends to end up sharing their personal space with 900 kg of TriNitroToluene, guided in by some sneaky bastard on a hill nearby whose existence they never suspected.
A page that reports what your browser is telling it, and what the page thinks is actually the case, is here Yes, it will detect Opera, even if Opera's masquerading as something else.
I ripped off^H^H^H^H^H re-used the code from elsewhere - leaving attribution in the source, then modified it a bit. If anyone knows a better bit of javascript to do this, I'd be interested.
Any relative novice who aspires to the title of Webmaster could do worse than having a look at the whole About This Site section, which deals with making pages browser-agnostic, fast to download, accessible to the visually impaired, and not reliant on plug-ins or even scripts. I'm the author BTW, and most certainly not an expert, or even good. Just better than the Frontpage scriptkiddies that masquerade as 31337 htmlasters. Anyone who can give me some more tips on how to improve the site, feel free to contact me.
The chain of evidence? (The "chain of evidence" is a legal requirement that prosecutors be able to identify a particular person responsible for a piece of evidence from the time it is seized until it is presented in court.) I gave the perp a receipt for his computer. There's nothing that requires me to provide the perp with a listing of all the files--and no court in the world would let the perp do anything to that computer (like listing his files) when I seize it. I've provided a receipt for his computer--but who's to say what's on the hard drive?
IANAL but OTOH I have some professional familiarity with computer forensics, in particular, the obtaining of data from seized computers by the Police.
Here's what actually happens:
Cops/Wallopers/The Bill/MIB/FBI/Plods (plural) take the box or boxes, tape em or seal em.
Plods deliver the sealed boxes or bags to the forensics lab
Forensics technicians, logging every step and usually with a video record, dismantle the machine, mobile phone, faxmachine or whatever and then plug the storage media into some special hardware that cannot physically write to that media (no electrical path). They then make a copy of what's on the drive/ramcard/whatever. The standard way of doing this is with a tool called EnCase which includes MD5 checksums. After that, the original media is not touched and is put away in a secure area. Only the copies are examined. And a copy of the files (in fact, the whole bitstream on the media) is provided to the suspect on request, and it can be demonstrated on demand that any copy has the same MD5 checksum as the original.
What this means is that if Officer Plod is such an ubergeek as to be able to insert the data seamlessly into the media while it's turned off and sealed in a box, while keeping timestamps consistent and in the presence of other cops, then he can frame anyone.
Alternatively, you'd need a conspiracy. But you'd still need to know a bit more than just an MSCE course to do it without leaving traces, or need the techos in on it.
This basic methodology has stood up to some courtoom challenges.
Of course this is just the basic one-size-fits-all method used on luser kiddieporners etc. For military or "homeland security" vs some people with a geek index > 0.1 you need something more powerful, able to read dead magnetic domains etc. But that's another story
Like the letter sent back to Microsoft says: how will I know that the software being used to count votes -->8-- is working as it should if I don't have full access to the system running it???
This is quite a reasonable requirement, quite feasible. There's been at least one non-trivial election where the counting code was Open Source. The source code is available as a tar.gz file.
Of course that's in Australia, not the USA. And it used the grotesquely complex Hare-Clarke voting system, far more complex than the USA's trivially simple first-past-the-post. One more thing - the system doesn't just electronically count the votes, it's an electronic voting system too, for multiple languages, with help for the visually-impaired so they can cast their vote in secret, and so on. Sounds as if it's just what Peru needs.
So why don't the people in the US demand something better than the system you've got? Over 2 U.
I've been in the IT business since 1980. I've managed to stay technical rather than managerial. To give you some idea of where my ecological niche is, I have at various times,
Lead the software development team for the spaceflight avionics package for an R&D satellite (in Ada-95)
Been chief programmer (in the "Mythical Man-Month" sense) for a naval anti-missile defence system, using genetic algorithms to "grow" the AI (in Ada-95)
Lead a team of Israelis, Germans and Australians doing some fairly advanced inter-processor communications for a radically powerful submarine sonar. (Ada-95)
Recently designed and implemented a set of Java classes to extract complex XML structures from an even more complex relational database. (Java 1.3 but compatible with 1.2)
Re-designed and implemented the new website for our firm (designed for accessibility - no flash or even CSS, only HTML2 compatible HTML4 so it's browser-agnostic)
Piecework coding on an AI to determine veteran's rates of pensions (Win32 API and C++)
Been responsible for getting a large European defence firm's software division up to Level 3 CMM.
... and a shipload of other things in an IT career spanning over 20 years.
Current Salary USD40,000. Which is more than I've ever been paid in my life before.
This is a world market. Some of those USD10 an hour Indian programmers are actually a lot better than most native USAians (though YMMV). I'm Australian, and some of our guys are also no slouches, and as you can see, only slightly more expensive.
Deal with it. Either reduce your rates, become more productive and professional, or buy some Congressmen (that's the American Way, a la Disney, Microsoft etc).
Trouble is, I personally know some really good, capable programmers in the US who've been out of work for over a year now. And some clowns still employed who are making a packet. Ability doesn't seem to make much difference.
All Software Engineers should have a look at Correctness by Construction: Better can also be Cheaper from Crosstalk the Journal of Defence Software Engineering. It contrasts the usual C approach with one using a really tight but powerful subset (SPARK) of an already pretty tight language, Ada
* SPARK code was found to have only 10 percent of the residual errors of full Ada; Ada was found to have only 10 percent of the residual errors of code written in C. This is an interesting counter to those who maintain that choice of programming language does not matter, and that critical code can be written correctly in any language : The claim may be true in principle but clearly is not commonly achieved in practice.
This isn't just an anecdote: there are documented facts. The results (for the problem domain of aircraft avionics and large systems) may not be applicable to the normal b2b and gamezware - but then again, they might. Have a look at the stuff in bold later in this post.
It's not a magic bullet : from the same article:
In December 1999 CrossTalk, David Cook provided a well-reasoned historical analysis of programming language development and considered the role languages play in the software development process. The article was valuable because it showed that programming language developments are not sufficient to ensure success; however, it would be dangerous to conclude from this that they are not necessary for success. Cook rightly identifies other issues such as requirements capture, specifications, and verification and validation (V&V) that need to be addressed.
But the real kicker, one that should cause everyone to sit up and take notice, is this:
Code quality improved by a factor of 10 over industry norms for DO-178B Level A software.
Productivity improved by a factor of four over previous comparable programs.
Development costs were half that typical for non safety-critical code
With re-use and process maturity, there was a further productivity improvement of four on the C27J airlifter program.
One more thing: the SPARK and similar RAVENSCAR ( pdf, HTML version here) subsets of Ada-95 are just that : (proper)subsets that just omit certain language constructs. Write to the profile, and the code is compileable by any Ada-95 compiler, like the downloadable Free GNU version GNAT 3.14p (though commercial users might want the latest-and-greatest non-free version 3.15a. And the ORK (Open Ravenscar Kernel) is, as the name implies, an Open Source Kernel for reliable real-time embedded systems.
Better, Cheaper, Faster, Open-Source with Free-as-in-Beer downloadable compilers. IMHO worth at least investigating, even if you decide Microsoft's latest language-du-jour is more appropriate for your situation. YMMV, and COBOL, C++, Assembler, C#, Java or even VB might be better in your case. But worth a look.
There is now compelling evidence that development methods that focus on bug prevention rather than bug detection can both raise quality and save time and money. A recent, large avionics project reported a four-fold productivity and 10-fold quality improvement by adopting such methods. A key ingredient of correctness by construction is the use of unambiguous programming languages that allow rigorous analysis very early in the development process.
SPARK code was found to have only 10 percent of the residual errors of full Ada; Ada was found to have only 10 percent of the residual errors of code written in C. This is an interesting counter to those who maintain that choice of programming language does not matter, and that critical code can be written correctly in any language: The claim may be true in principle but clearly is not commonly achieved in practice. (emphasis added by me)
Parenthetically, I get a little miffed when I see so much unsupported balderdash being purveyed in Ye Greatte Language Warres. Try looking at the experiments people, you know, data, numbers etc? The Scientific method? But I digress, back to the stuff useful to you.
Another Crosstalk article, proving fairly conclusively that a working Ada programs's easier to write than a working C program, at least in some problem domains (high performance, real-time).
The LRM - Language Reference Manual, ISO-8652 (yes, it's an ISO standard). This version is the one with annotations.
Oh yes, there's an open-source compiler, GNAT available for free download. Like GCC, it's industrial-strength.
Finally, I'll echo my own experiences with the C++ STL: namely, that implementations differ markedly, portability is not a possibility, and performing surgery deep in their bowels is like unravelling rancid spaghetti. But YMMV I guess. Code Warrior 7 and MVC++5 were not compatible for anything other than trivial examples.
To most of the world, America looks like a cross between a heavily armed action hero and a Lexus ad.
If you want a sound-byte, this one's a perfect summary of how the rest of the world views the US. The poster unlike most USAians has obviously lived outside the US for a while, and has a valuable perspective.
My 2 kopins worth: After WW2, the spectacle of GIs truly liberating much of the civilised world from tyranny, and then spending vast quantities of wealth to help Europe re-build gave the USA more good Karma than you could poke a stick at. But right now, it seems there are more people who think life is a zero-sum game: that if one wins, others must lose. A rich US must have stolen goods meant for them. This "Cargo Cult" thinking is encouraged by the rapacious conduct of some unethical US megabusinesses, and the hypocracy of US tarrifs. DMCA extra-territoriality etc.
So what's the solution? As we say in Australia, bugadifino. But the first step is understanding the problem.
Time to replace the US-centred IEEE with an International one.
IEEE an international organisation? I'd always thought so. Not any more.
Thinks: Registration of domain name IIEEE, or I2E3? Anyway, what would be the logistics of keeping the same basic organisation, just moving it off-shore?
"Open Source" in the GPL sense does not mean "free". All it means is that if you supply the executable, you've also got to make available the source. Microsoft could do it overnight by just allowing access to their codebase. You specify the exact version of the DLL you want, and you download it. It's still protected by copyright - and frankly, I for one don't think the quality is likely to be high enough to make the code worth stealing. But if anyone did, they'd face the same criminal penalties as anyone who pirates just the binaries.
What the above would do though is to prove or disprove the contention that MS uses "hidden APIs" to gain an unfair and monopolistic advantage over would-be competitors in the applications market. But since they've already been found guilty of monopolistic practices and have successfully evaded any significant sanction, this is not a real issue.
Finally, you must remember that the times they are a-changing. Microsoft is moving towards a licence model, where you buy the rights to use that OS on that machine, and Microsoft will keep it updated for you for a period of 3 years. Then you must renew, or switch to another OS. (Realistically, the vast majority will get a new machine with a new OEM OS at the same time.. a new 10 GHz processor with 100 GB of RAM to run Windows XP5 in 2005) This is entirely compatible with the Open Source model - they make available the source just as they make available patches at the moment. They don't have to give you the source with the binary. They don't have to supply it free. They just have to supply it at a reasonable cost if you ask them. One good thing about Microsoft, they don't charge a fortune for their updates. One bad thing is that the updates are required. One worse thing is if in the future they start charging an arm and a leg for the fixes to stop the next Code Red. Switching to Open Source would prevent Microsoft from leveraging their monopoly this way. They don't do it now, but based on past behaviour, it's only a matter of time. Unless they start losing significant market share to a real alternative.
Circumstances alter cases is the old legal truism. It certainly applies here.
Examples from an IT career spanning over 20 years and several Continents.
I've worked in a company where I felt I was underpaid by market rates, got a job offer "out of the blue" at a much higher rate, went to my supervisor and said "I can't afford to keep working here.". He looked at the figures, said "You're right, and we can't afford to pay nearly that much, so Good Luck and do you need a reference. Your work here has been a great contribution, I don't know how we'll replace you, but we'll manage. You must act in your own best interests." I left with some regret, but recommended them as a good bunch to work for - and delayed as long as I could in order to do a complete handover.
I've worked for a firm where much the same thing happened, but I decided that the pay wasn't as important as how much I enjoyed working there. I helped finish off the project, then started looking for a new job with as much interest but higher pay. I got it - again, I was truly being underpaid.
I've had a job where they made an immediate counter-offer. Within a month they upped the salary of everyone else to match market rates, as they realised they'd been underpaying everyone. I left when they ran out of interesting work in my niche, but again, would recommend them.
I've had a job where they made an immediate counter-offer, but told me not to tell anyone else so they could keep underpaying them. I RAN from this bunch of sleazebags - I hadn't realised they were so - er - "ethically challenged".
I've worked for a company where the employees got together annually, we were given the financial data of the company, and we all decided what our pay should be for the forthcoming year. I might add that when times were lean, it was the more senior people who asked for their pay to be cut, as we could afford it more than the junior people - some of whom even got rises, as they deserved it, and we could afford it. And with our longer experience, we realised just what a rare and wonderful situation we were in. Do you know what it's like when a bunch of people you respect insist that you get a pay rise because of your contribution to the firm? The money amount is irrelevant, some things you just can't buy. (Actually, I'm still working for this firm.)
So Circumstances alter Cases. There are firms out there that have loyalty to their employees, and expect (though don't always receive) employee loyalty in return. There are firms that think the concept of "loyalty" in any direction is irrelevant, and settle for impersonal fairness. There are those that try to screw the employees for as much as they can - rather too many of these, alas. And there are firms which are the employees, with everything out in the open. Damn few of em, unfortunately.
One tip: if Money is the be-all and end-all when it comes to benefits, rather than job interest, professional development and career-growth, the greater the odds are that they're out to screw you. Look at the training budget. High means they invest in you, and will try to keep your loyalty. They'll pay market rates to everybody if they can, out of sheer self-interest. Think long and hard before jumping ship to someone paying more but with a lower training budget - you may well regret it.
YF-12A not A-11. The A-11 was the original name for the SR-71 airframe. The SR-71 BTW was supposed to be called the SR-17, but LBJ screwed up the public announcement, and thenceforth, SR-71 it was.
SR stands for Strategic Reconaissance. YF stands for Service Test Fighter. A full explanation of the codes is available here. Data comparing YF-12A and SR-71 is available here and on many other websites. For some strange reason, it's a popular subject for air freaks :-)
All you never wanted to know about the A-12, YF-12A, D-21 Drone, and other SR-71 "Blackbird"-related variants is available here, and the YF-12A section of the same site here. It's an auto-translation from the original French, but pretty darn good - quiet progress in this area has been significant over the last few years, though it's still got a a way to go.
Yes, this is true. Ada was devised as the result of 4 groups competing against each other, and the best of em (though opinions vary) selected as the Mandated Language for the DOD.
The whole process is described thusly:
And it was a disaster from the Defence Contractor's viewpoint. Firms fell over themselves trying to get exemptions from using it, ANYTHING was better. Because Ada had
- Objects
- Exceptions
- Generics (templates)
- Multiple-threading/Tasking
- Strong Typing
and a whole host of other advanced software technologies that were risky or unimplementable. This of course was in 1983. Now the fact that Ada had a standard definition, and that there was a standard test-suite for it, proved that the technologies were perfectly implementable. But Ada was mandated by the DoD, so had to be a boondoggle. After much to-ing and fro-ing, the Ada Mandate was removed, in 1997. And there was much joy, as major defence firms got billions more in maintenance work, and ships broke down requiring costly repairs. Some suggested that it was a Cosy Relationship between Deefence Contractors and the DOD that had been the reason for not using Microsoft before. Which rather ignores the fact that when it comes to safety-critical applications, Boeing switched from C to Ada rather than the other way round, and the military has had to pay bundles inSo yes, had compatibility been mandated in the past, we might all have systems far more reliable and robust. But Microsoft wouldn't have $40 Billion and a number of tame Congresscritters.
An elegant statement of the Weak Anthropic principle.
FWIW my current worldview is
- Life "as we know it" is a lot more common in our region than we think. Due to exobiology as per the Hoyle Wickramasinghe hypothesis. Even if the hypothesis is wrong and life requires a clay matrix to develop DNA, and even though the latest news on Martian Meteors looks like they didn't contain fossil bugs, the mechanism for propagating life pretty much anywhere near where it develops is sound. Bacteria are hardy beasts, and can survive in space quite well. With the latest news on the water on Mars, the odds of life there approach certainty.
- That's the good news. The Bad news is that the step from procaryotes to eucaryotes, that is, going from single-cell to multi-celled organisms is a big one, and probably only a fraction of one percent of life origins ever make it.
- But it's worse than that. Technology requires colonies of multicellular organisms. These can be as complex as as the Portugese Man-O-War which although it looks like a jellyfish is actually a colony of 4 different polyps, more like a multi-species anthill or coral reef than anything else. Or they can be as simple as the US Congress, an organism whose intellect is less than any of its constituent members. In any case, some multicellular genusses may remain in pre-school, and never develop anything as complex as an ant farm. The development of such complexity may require a stable double-planet system, rare as hen's teeth. Earth and its moon would be considered a double planet system if we didn't live on one of em.
- It's worse still. The Dinosaurs were terrifically successful for megayears, but had they landed on the Moon, we'd almost certainly know it. So it's possible to have complex organisms, complex societies (herds), but still no technology for Sagans. Closer to home, Dolphins are unlikely to ever develop a technology. You may need to periodocally hit the planetary reset button with a meteor or super-volcano. But not too hard - or you've got to rebuild from procaryotes again. And not too soft, you only have a limited amount of time before the star you're around goes Ploof.
- Finally, there's the "Goldilocks Zone" that's the subject of the original article. Star too close to galactic centre = bad. Star too far out = bad. And then within that torus, star in spiral arm centre = bad. Don't be too near a supernova. So the quicker you can develop a multi-stellar population, the better. Which reduces the odds even further.
The scary thing is that we may be the Elder Race . An awesome responsibility for us. So let's be careful out there. Preserve Genetic Diversity, and get into Space ASAP. Then we can start making friends. And I do mean making - as in constructing - so we have someone interesting to talk to.Though we could start right now with Chimpanzees and Gorillas. They'd be considered primitive but undoubtedly intelligent species if they came from another planet. History will judge us harshly if we don't start granting sub-human rights to sub-humans.
Which means that we'd better get our ethics up to scratch.
Respect for Elders?
Over-rated. Sometimes, anyway.
Let em earn that respect. But be warned: "Old age and cunning beats youth and enthusiasm." . They didn't get as far as they have without learning dirty fighting, even if they appear as thick as two short planks. Said appearance might just be a smokescreen. The good ones will take criticism, and either rejoice that you've helped them with a problem they'd been getting wrong for years, or gently point out to you the error of your ways. You either get ego-boo, or learn something. Of course there are plenty of charlatans in the business, and almost as many bright egomaniacs who although good, aren't nearly as good as they think they are. Neither take criticism very well, and they can make your life hell.
Course I'm only 44. Not exactly ready for the Knacker's yard yet. My (so far only) son's only 10 months old, maybe I'm just a slow starter.
On the gripping hand, it can be very annoying when you see youngsters with real talent not even bother to check the literature and learn from other's mistakes. And it's downright infuriating when you see their teachers do the same.
So good Luck, Grasshopper (get the reference? you're 19 or so according to your user-data, so probably not).
Around when IBM sold Business Machines?. Yes
Even managed to kludge some hardware together to drive an IBM Golfball typewriter from my Exidy Sorcerer , which at 2.1 Mhz clockrate was the fastest gun in the west. In 1978 that is. Pre-IBM-PC. Pre-Mac. Contemporary with the TRS-80 Model 1 , the Commodore PET and the Apple II. Just have a look at the Old Computer Museum reference.
So just remember that one day, arguments about RedHat vs Debian will be considered "quaint", as the newest alphageek-wannabes argue shrilly about direct-neural-induction vs alphawave-heterodyning on the new Petaflop quantum-Beowulf-cluster-wearables.
While old codgers like me will still be trying to stop said wearables from having the usual code bloat and buffer overflows caused by AOL-Time-Warner-CNN-MicroSoft-General Motors-Unilever-Bell-Boeing-PepsiCo 31337 hackers rather than Software Engineers.
If we could start with a tabula rasa regarding intellectual property - which covers patents, copyright, and trade secrets - we'd best first off decide what we're trying to achieve.
- Attribution. If A invents B, then we want the world to know that B is A's invention. This is for psychological gratification as much as anything. Many
/. readers are coders, and know the "warm fuzzies" you get when you create something that you can be proud of. Singers, Songwriters, Artists in general get the same buzz. Some things money can't buy.
- Improvement. If A invents B, then C should be able to look at B and figure out that B' would be a significant improvement on it. It's this that has spurred the "Open Source" movement, which exposes the internals of Software so that peer-reviewers can spot blemishes.
- Incentive. The original UK and later US model for patents was intended to give encouragement for people to invent new and useful methods and devices, basically to spur the improvement of what we now call technology, arts and sciences. Rather than reward mere copy-cats and publishers, a time-limited monopoly was granted, during which time only the creator had the right to publish or implement his or her work, or licence this publication. This incentive was entirely Financial - probably the best way in the 18th century, but may not be the best way of doing things in the 21st.
- Facilitation. Any IP legislation must actually facilitate the widespread distribution and adoption of new and improved methods, artworks and devices. So a creator who wishes the protection of the law has certain obligations not to withold it's adoption for general use. Alternately, they should be free to keep it entirely to themselves, in which case the law should not protect anything other than the attribution, if that. Similarly, something that's already in general use should not be suddenly monopolised by an "inventor", be it a generic name such as Aspirin or ROT-13 or similar Caesar Cypher encoding. Once in the Public Domain, always in the Public Domain.
- Inalienability. Some moral rights should be inalienable - the owner of the Intellectual Property has some rights and obligations that may never be destroyed or transferred. Should an artist who's painted a Masterwork have the right to burn it and all copies? No, for that would diminish the world's stock of intellectual property. Naturally if the creator doesn't have this right, neither does anyone else. A creator hasn't got the right to allow someone else's name to appear on their work. Exclusive rights of publishing should not be legally enforceable - once the creator has set a certain price for copying, then anyone at all should be allowed to make a copy, for that price. This will stop books and other works going "Out Of Print", as (possibly inferior) copies could be made from an existing edition, via photocopy or MP3. In law, if you make a copy of something - be it a backup, to give to a friend, to put on your MP3 player, or to publish on a million CDs - you should pay the creator during the period of his monopoly for each copy. And so should anyone else, the same amount.
Are all of these requirements feasible to implement in any legal structure? Certainly. Are they feasible to enforce? That's more difficult. Getting someone to pay 0.01c to the production crew who made Buffy the Vampire Slayer every time you use your VCR to record this week's episode requires both the goodwill of the VCR owner, and some non-trivial technology to make it trivially easy. Otherwise people won't bother.Rather than have a single /. post propose the magic solution to all IP issues, I'll restrict this one to just canvassing what the issues are. Any I've forgotten? Any that you think shouldn't be on the list, or should be modified?
Mod 3: Funny?
I'd make it Mod 5: Insightful
OK, funny as well. Alas, no mod points. Consider this reply to award you a VMP (Virtual Mod Point).
The "How to write Unmaintainable Code" article on the web is an excellent resource for documentation - much as "Web Pages that Suck is an excellent guide for web designers.
Your organisation - even if it's just 1 man and a dog - should already have a style guide in place. Don't have one? Well then it's easy, there are plenty of good ones on the Net, for Java, C++,Lisp,MATLAB, Ada and many others.
A good list of C and C++ styleguides is here. Just pick one. The important thing is to make sure everyone uses the same one, exactly which one is more a religious issue than anything else. That's an over-simplification, some really are better than others, but at least all the ones on that list have been tried, tested and peer-reviewed.
As for my own opinions, a few issues
- Make variable names meaningful. If you do this, then most of your comments will be metadata, e.g why you did something, and who and when a change was made, rather than what is being done. If you're doing something tricky or unusual, then having a pseudocode preamble can be worthwhile.
- If you can, try to use a relatively high-level language like Ada rather than a low-level one like C. But this is almost never under your control. The Javadoc auto-documentation tool is one of the biggest plusses that Java has over other languages - so if programming in Java, Use It!!
One final thing: your teachers should be castigated for not teaching you this already. For my sins, I've been a CS teacher at ADFA and coding style was always worth Far more marks than merely getting a chunk of code to do something right. Hacking a Kludge to do some trivial mickey-mouse stuff is far easier than professional programming, any 9-year-old hacker with VB can do that. But to make a diamond-hard industrial-strength software component that people's lives can depend upon, that can be modified easily and retain its integrity throughout its lifecycle, that's "non-trivial".Apart from the numerous fatalities on the monorail and rides? Maybe the gangfights broken up by plainclothed security. Let's see... first gangfight in 1976, first recorded murder in 1981. Still, the Disneyland Security guys, backed up by hidden cameras play hardball , they're into handcuffing suspects to metal railings, lengthy interrogations etc. Don't try to enter if you have the wrong hair colour
What's amazing is that a place that caters for so many people has so few problems. But problems it has.
"It Steam-engines come steam-engine time." . There are only so many right ways to do things. Not every design that looks identical is a copy.
Yes, it IS American policy to brook no competition. Can't blame them for that, just make sure that they don't get away with it.
BTW it would be a good idea for the benefit of lurkers to give some links to the subjects under discussion. For example, the X-30 also here looks rather like the German "Saenger" rather than a HOTOL.
The Bell X-1 in no way was a copy of the M52. It merely copied a large amount of the technology. Unlike the M52, it used primitive rockets rather than an advanced afterburning turbojet; it used a low-tech straight wing rather than the notched-ogive of the M52, which caused severe vibration to the Bell design; and the pilot had little chance of escape whereas the M52 had a jettisonable capsule, like the F-111. On the other hand, the ".50 calibre bullet" shape of the fuselage, and the all-moving tail, were "inspired" by data from the Miles design.
My father was an aerodynamicist working on the Miles M52. Here's the story as I got it from him:
There was an agreement that there should be co-operation between the US and UK on supersonic aircraft research. So the US delegation came over to Miles Aircraft (then working on the "black" M-52 project), and took away lots of data, especially from the wind-tunnel (more advanced than anything else in the world at the time). They also took data about the M-52's all-moving tail, the so-called "all-flying tail". When it came time for the Brits to visit the US, they were told "No can do, our work is Top Secret". Because their new Bell project had suddenly acquired *gasp* an all-flying tail as it turned out. As late as the 90s many Bell corp engineers were still under the impression that this was an All-American Invention.
But the real stinger was when the M-52 got cancelled. All of the calculations, blueprints, test data, special instruments and the analogue computer my Father had invented specifically for stress calculations on supersonic wings, all got bundled into Tea-Chests and sent to Bell Corporation in the USA. OTOH the UK Government got a large loan to help rebuild bomb-damage taken (for the most part) before the US entered WW2.
Links? Ok, try the M52 exhibit at the Museum of Berkshire Aviation. Or the Miles Aircraft history page. A plan view and video is available here.
Shortly before he died, my father met General "Chuck" Jaeger. He was glad to know that his work was put to good use.
The UK Channel 4 made a great documentary about the M52, including some footage of the rocket-powered model that hit Mach 1.5 in tests in the late 40's, after the project had been cancelled.
First, I've gotta say that I'm rather right-wing by Australian standards. For example, I'm a monarchist, and I guess if it was 1776, and I lived in the American Colonies, I'd be a Tory. Though compared to many in the US at the moment, I think I'm left of centre. But I digress...
I know too many people who have come to Australia, fleeing persecution in Chile to have much time for Pinochet. Not leftist ratbags, but just the usual bunch of geeks, jocks and all those in between who were college students when Pinochet's minions came into their classroom and started shooting. And I mean that literally. Conscript Soldiers came onto the campusses, into the classroorms, and did a Columbine, not once, but dozens of times, "to keep order" and pre-emptively stop the "leftist intellectual students" from demonstrating. Now Pinochet's intentions may have been good, he may have done a lot of good for Chile. But I don't give a tuppeny damn, his methods made him indistinguishable from the Trotskyite-, Maoist-, Fascist- or Stalinist- Assholes who also had "good intentions" when they liquidated the Kulaks, turned Cambodia to Year Zero, purged Germany of decadent Art, or any of a number of abominable actions.
As regards the article itself, it had one really good effect. It made people THINK. Just have a look at the comments on /.. I disagree with many of em, but there's a sizeable minority on both sides that have been pursuaded to examine their own beliefs in the light of this article. So IMHO it was a Good Thing tm .
Oh yes, I happen to support Dubya's actions in Afghanistan and elsewhere. You may not realise it, but there's a shipload of other countries involved. Canadians as Hunter groups. Norwegians setting up ambushes in the mountains. Australian SAS seemingly behind every piece of scrub, calling in airstrikes. But I hope I'm more akin to people like the guy who wrote the "Death Star and WTC" comparison than the kneejerk (accent on the jerk) reactionaries who want to shoot them furriner towelheads with their trusty 44s.
For one thing, the latter are a bunch of amateurs. You can't be an effective military professional without a modicum of intelligence and education these days. Unthinking, Ignorant Goons and Fanatics may be fine for mowing down unarmed civilians or subscribing to AOL, but these days such cannon fodder tends to end up sharing their personal space with 900 kg of TriNitroToluene, guided in by some sneaky bastard on a hill nearby whose existence they never suspected.
A page that reports what your browser is telling it, and what the page thinks is actually the case, is here Yes, it will detect Opera, even if Opera's masquerading as something else.
I ripped off^H^H^H^H^H re-used the code from elsewhere - leaving attribution in the source, then modified it a bit. If anyone knows a better bit of javascript to do this, I'd be interested.
Any relative novice who aspires to the title of Webmaster could do worse than having a look at the whole About This Site section, which deals with making pages browser-agnostic, fast to download, accessible to the visually impaired, and not reliant on plug-ins or even scripts. I'm the author BTW, and most certainly not an expert, or even good. Just better than the Frontpage scriptkiddies that masquerade as 31337 htmlasters. Anyone who can give me some more tips on how to improve the site, feel free to contact me.
IANAL but OTOH I have some professional familiarity with computer forensics, in particular, the obtaining of data from seized computers by the Police.
Here's what actually happens:
- Cops/Wallopers/The Bill/MIB/FBI/Plods (plural) take the box or boxes, tape em or seal em.
- Plods deliver the sealed boxes or bags to the forensics lab
- Forensics technicians, logging every step and usually with a video record, dismantle the machine, mobile phone, faxmachine or whatever and then plug the storage media into some special hardware that cannot physically write to that media (no electrical path). They then make a copy of what's on the drive/ramcard/whatever. The standard way of doing this is with a tool called EnCase which includes MD5 checksums. After that, the original media is not touched and is put away in a secure area. Only the copies are examined. And a copy of the files (in fact, the whole bitstream on the media) is provided to the suspect on request, and it can be demonstrated on demand that any copy has the same MD5 checksum as the original.
What this means is that if Officer Plod is such an ubergeek as to be able to insert the data seamlessly into the media while it's turned off and sealed in a box, while keeping timestamps consistent and in the presence of other cops, then he can frame anyone.Alternatively, you'd need a conspiracy. But you'd still need to know a bit more than just an MSCE course to do it without leaving traces, or need the techos in on it.
This basic methodology has stood up to some courtoom challenges.
Of course this is just the basic one-size-fits-all method used on luser kiddieporners etc. For military or "homeland security" vs some people with a geek index > 0.1 you need something more powerful, able to read dead magnetic domains etc. But that's another story
Links to stories on the same subject are here
Of course that's in Australia, not the USA. And it used the grotesquely complex Hare-Clarke voting system, far more complex than the USA's trivially simple first-past-the-post. One more thing - the system doesn't just electronically count the votes, it's an electronic voting system too, for multiple languages, with help for the visually-impaired so they can cast their vote in secret, and so on. Sounds as if it's just what Peru needs.
So why don't the people in the US demand something better than the system you've got? Over 2 U.
A few personal numbers from a durned furriner
I've been in the IT business since 1980. I've managed to stay technical rather than managerial. To give you some idea of where my ecological niche is, I have at various times,
Current Salary USD40,000. Which is more than I've ever been paid in my life before.
This is a world market. Some of those USD10 an hour Indian programmers are actually a lot better than most native USAians (though YMMV). I'm Australian, and some of our guys are also no slouches, and as you can see, only slightly more expensive.
Deal with it. Either reduce your rates, become more productive and professional, or buy some Congressmen (that's the American Way, a la Disney, Microsoft etc).
Trouble is, I personally know some really good, capable programmers in the US who've been out of work for over a year now. And some clowns still employed who are making a packet. Ability doesn't seem to make much difference.
<META NAME="GENERATOR" CONTENT="Mozilla/3.01Gold (Win95; I) [Netscape]"> bit? (chuckle!)
or the
<META NAME="Author" CONTENT=""> bit?
So Guess: Was the author
- So clueless they didn't know how to fill in the AUTHOR tag
- So careless they didn't even bother to check what they were showing to the world
- So ashamed of their work they didn't want to own up to having anything to do with it
- A complete nonentity
It's got to be one of them. Regardless of which, I'd say that they qualify fully as a Microsoft Expert Witness.All Software Engineers should have a look at Correctness by Construction: Better can also be Cheaper from Crosstalk the Journal of Defence Software Engineering. It contrasts the usual C approach with one using a really tight but powerful subset (SPARK) of an already pretty tight language, Ada
This isn't just an anecdote: there are documented facts. The results (for the problem domain of aircraft avionics and large systems) may not be applicable to the normal b2b and gamezware - but then again, they might. Have a look at the stuff in bold later in this post.
It's not a magic bullet : from the same article:
But the real kicker, one that should cause everyone to sit up and take notice, is this:
One more thing: the SPARK and similar RAVENSCAR ( pdf, HTML version here) subsets of Ada-95 are just that : (proper)subsets that just omit certain language constructs. Write to the profile, and the code is compileable by any Ada-95 compiler, like the downloadable Free GNU version GNAT 3.14p (though commercial users might want the latest-and-greatest non-free version 3.15a. And the ORK (Open Ravenscar Kernel) is, as the name implies, an Open Source Kernel for reliable real-time embedded systems.
Better, Cheaper, Faster, Open-Source with Free-as-in-Beer downloadable compilers. IMHO worth at least investigating, even if you decide Microsoft's latest language-du-jour is more appropriate for your situation. YMMV, and COBOL, C++, Assembler, C#, Java or even VB might be better in your case. But worth a look.
No, you're not talking anally, it's a good question.Try Ada-95, or one of its proper subsets if you want embedded systems.
Rather than give lots of religious arguments, unverified opinions and hot air, here's some resources and quotes:
From Crosstalk (March 2002) :
Parenthetically, I get a little miffed when I see so much unsupported balderdash being purveyed in Ye Greatte Language Warres. Try looking at the experiments people, you know, data, numbers etc? The Scientific method? But I digress, back to the stuff useful to you.
Another Crosstalk article, proving fairly conclusively that a working Ada programs's easier to write than a working C program, at least in some problem domains (high performance, real-time).
Ada for C and C++ programmers shows you how to do what you want, if you know C.
The LRM - Language Reference Manual, ISO-8652 (yes, it's an ISO standard). This version is the one with annotations.
Oh yes, there's an open-source compiler, GNAT available for free download. Like GCC, it's industrial-strength.
Finally, I'll echo my own experiences with the C++ STL: namely, that implementations differ markedly, portability is not a possibility, and performing surgery deep in their bowels is like unravelling rancid spaghetti. But YMMV I guess. Code Warrior 7 and MVC++5 were not compatible for anything other than trivial examples.
If you want a sound-byte, this one's a perfect summary of how the rest of the world views the US. The poster unlike most USAians has obviously lived outside the US for a while, and has a valuable perspective.
My 2 kopins worth: After WW2, the spectacle of GIs truly liberating much of the civilised world from tyranny, and then spending vast quantities of wealth to help Europe re-build gave the USA more good Karma than you could poke a stick at. But right now, it seems there are more people who think life is a zero-sum game: that if one wins, others must lose. A rich US must have stolen goods meant for them. This "Cargo Cult" thinking is encouraged by the rapacious conduct of some unethical US megabusinesses, and the hypocracy of US tarrifs. DMCA extra-territoriality etc.
So what's the solution? As we say in Australia, bugadifino. But the first step is understanding the problem.
Time to replace the US-centred IEEE with an International one.
IEEE an international organisation? I'd always thought so. Not any more.
Thinks: Registration of domain name IIEEE, or I2E3? Anyway, what would be the logistics of keeping the same basic organisation, just moving it off-shore?
My 2 kopins worth:
"Open Source" in the GPL sense does not mean "free". All it means is that if you supply the executable, you've also got to make available the source. Microsoft could do it overnight by just allowing access to their codebase. You specify the exact version of the DLL you want, and you download it. It's still protected by copyright - and frankly, I for one don't think the quality is likely to be high enough to make the code worth stealing. But if anyone did, they'd face the same criminal penalties as anyone who pirates just the binaries.
What the above would do though is to prove or disprove the contention that MS uses "hidden APIs" to gain an unfair and monopolistic advantage over would-be competitors in the applications market. But since they've already been found guilty of monopolistic practices and have successfully evaded any significant sanction, this is not a real issue.
Finally, you must remember that the times they are a-changing. Microsoft is moving towards a licence model, where you buy the rights to use that OS on that machine, and Microsoft will keep it updated for you for a period of 3 years. Then you must renew, or switch to another OS. (Realistically, the vast majority will get a new machine with a new OEM OS at the same time.. a new 10 GHz processor with 100 GB of RAM to run Windows XP5 in 2005) This is entirely compatible with the Open Source model - they make available the source just as they make available patches at the moment. They don't have to give you the source with the binary. They don't have to supply it free. They just have to supply it at a reasonable cost if you ask them. One good thing about Microsoft, they don't charge a fortune for their updates. One bad thing is that the updates are required. One worse thing is if in the future they start charging an arm and a leg for the fixes to stop the next Code Red. Switching to Open Source would prevent Microsoft from leveraging their monopoly this way. They don't do it now, but based on past behaviour, it's only a matter of time. Unless they start losing significant market share to a real alternative.
The B61-11 can't penetrate more than 20 feet of dry earth according to this report.