Linus Torvalds did sign an NDA at his interview with Transmeta. They said they had some really neat shit to show him, something that would amaze him and give him real motivation for choosing their company rather than some other company, but they couldn't do it without an NDA. He signed it.
For a general technical interview there's no need for an NDA. If I'm trying to see whether a guy knows his stuff, I can do that without an NDA. On the other hand, if I've come to the conclusion that this guy is hot stuff and we want him on board, the best way to get him on board is to give him a briefing on the project and give him the spiel about how revolutionary it will be and how this architecture is going to kick rear and so on and so forth. Otherwise, in today's tight job market, it's like, "okay, I have 5 people who want to hire me, who do I want to work for, none of them have told me about what I'll be doing except 'C Programmer'?". If the guy's really good, I want to give him a reason to choose us rather than some other company -- and some of the info needed to do that may require an NDA.
(Note that the above is a generic "I"... I've never participated in an initial interview, on either side of the table, that required an NDA).
That usually does not work, because HR types are busybodies by nature.
When my employer wanted me to sign an agreement that, in my opinion, would have given them rights to all magazine articles I write and other things that could concievably be related to anything in the computer industry but which were not my direct duties at that company, I politely marked out the offending clause and offered them an amended agreement. HR hemmed and hawed and said they'd have to get approval from the CTO, and that's the last that I heard of it. Like I told a co-worker, "what are they going to do? Fire me?" If so, I'd have a job 2 days later (last time I was unemployed, I had a job waiting for me the day I left my previous employer).
If you're young and desperate for a job because you have not proven yourself, by all means sign such an agreement, but understand that this is a temporary situation. If you're any good, you aren't going to have a problem getting a job after that first one -- just wait 12 to 18 months, get a project under your belt, and move on to someone who's more reasonable. Sometimes you have to put up with BS in order to put yourself into a situation where you can get some brownie points under your belt, but once you've proven you can hack it, it's a tight job market out there, and you don't have to put up with any BS that you don't want to. (Though it is wise to sometimes put up with BS when it's necessary to get the product out the door... then seek another employer).
Do not confused the fact that X11 is not programmable via pipes, with the notion that pipes are therefore useless. Rather, this is a case of where X11 is itself broken. See Plan9 for a GUI that needs nothing beyond pipes in order to effectively embed things.
For more of a an example: XBRU is a TCK/TK application. It never touches any actual tape hardware. That is all done by (surprise) BRU, which in turn is controlled via (surprise surprise!) PIPES! (A bunch of pipes, actually -- two named pipes, and two anonymous pipes). This is how the Unix component model was supposed to work -- and it does work, quite well, except in the realm of X11 components, where the design of the X11 interface is incapable of properly supporting the Unix component model.
Summary: Don't let the incompetent design of the X11 system interface lead you to excessively complicated communications mechanisms. In most cases, CORBA-style communications mechanisms are needed only because of deficiencies in design, not because of any inherent limitations in the Unix component model.
Molly Ivins has a nice book on the subject: "Shrub: The short but happy political life of George W. Bush". It appears that "Shrub" ("He ain't big enough to be a full-blown bush") has done the following for Texas:
Given big polluters carte-blanche to continue their pollutin' ways, by extending a "grandfather" period that allows older factories to continue to output more pollutants than otherwise allowed by law. The "grandfather" period was originally intended to be 10 years, but now it's close to 20 years after the Texas clean air law was passed, and these factories are still being "grandfathered" today, despite having little of the same equipment that they had 20 years ago.
In response to American companies being sued by residents of the shanty towns near the border because dozens of babies were being born without brains or with other heinous birth defects due to lack of enforcement of environmental laws, Bush pushed for a "tort reform" law making it harder to sue for environmental crimes. You can no longer sue a group of polluters as a class action, you must sue them one at a time individually, and must prove that your baby was born without a brain because of that particular factory's mercury dumping (for example). The net effect was to give criminals, murderers who have killed dozens of innocent children in South Texas, immunity from the law. But that's okay, they have money and the residents of the shanty towns don't. In George W. Bush's universe, if you don't have money, you don't count.
In order to avoid having to report on environmental problems in Texas, Bush basically oversaw the reassignment of all state water quality inspectors to other duties. Texas now relies upon industries to "voluntarily" test their water and "voluntarily" tell the state when the water quality standards are exceeded. In other words, Bush has allowed the fox to police the henhouse.
When a big political contributor's funeral home chain was cited by the state funeral home board for shoddy embalming, Bush spearheaded the charge to fire the head of the state funeral home board, and eventually managed to get the state funeral home board largely eliminated from the budget (meaning that it exists on paper, but no longer has any inspectors or etc. to enforce the laws that are on the books).
Etc. etc. etc. About the only thing that Bush has constantly done well on is education, and that's probably because his wife would bitch-slap him if he didn't do right by her colleagues (she is a former teacher).
Bush has filtered billions in state investments into funds operated by his biggest campaign contributors, as well as steered most big state contracts to his biggest contributors. You thought it was bad that Clinton had the White House for rent for campaign funds.... Bush basically plundered the whole state of Texas, not just abused his official residence!
I am from Louisiana, right next door. We have our own crop of corrupt and colorful politicians. It was quite entertaining for us, though, to find a Texas electing a politician who was even more corrupt than our own Edwin "Honest Eddie" Edwards. As the years passed, we could only shake our heads and say "Man, and I thought Honest Eddie was corrupt!". But then, Honest Eddie used his powers to enrich his personal friends, most of whom were not "movers and shakers", while George W. used his powers to enrich the biggest businessmen in Texas. When corruption is in service to corporations, that's not corruption, that's just Texas, where "the bidness of guvmen't is bidness" and to hell with the taxpayer.
Now Bush's corrupt cronies want to elect him President of the United States to bring that corruption to the national scale. Sorry, I'm not interested.
Interesting pointer to that suspected carjacker in Philly who was accused of having a gun and said accusation used as an excuse to beat the shit out of him. I read in the paper today where they found out that the cop shot in the thumb was actually shot by one of his fellow police officers, not by the suspected carjacker, who, it now seems likely, never did have a gun.
The Philly police are probably the most unprofessional major city police force in the country. Police work is a hard job. It requires a lot of training and a lot of professionalism to do well, and, most importantly, requires LEADERSHIP. IT is obvious that the Philly police force is lacking in training and in professional leadership. My own personal suggestion to residents of Philidelphia is that they start at the top -- fire the police chief and his top lieutenants, and re-stock with top staff from a city where community policing is an everyday occurance rather than a merely-mouthed buzzword.
So if I complain about conditions in prisons and the fact that we have more non-violent drug offenders in prison than we have violent offenders (who can get parole easier than the typical seller of a few joints!), I am a "trouble maker"?
In an era where the voice of many is not being heard, some people go to extraordinary means in order to be heard. Your solution to this problem (voices not being heard) is to throw said voices into jail?
But then again, this is nothing new. Labor activists of the 1930's had worse problems, between the American Legion serving as America's own equivalent of the "brown shirts" to break up "lefty" protests, and rampant "red baiting" of union organisers. Reading some of the archives from the 30's and 40's, I get a sense of deja vu... the mainstream press of the day was "oh, everything's fine, nothing's happening, just a few protesters arrested for disorderly conduct, that's all", while the lefty press was complaining that their people were being jailed left and right without due process of law, beaten by American Legionnaires under the approving eyes of the local constabulary for being "anti-American", etc. The more things change, the more they don't.
It depends what you're hiring the person to do. If the person is, say, writing a low-level database engine including tree handling, he better darn well know the contents of Knuth's "Searching and Sorting" volume (though I don't care what language he implements it in)! If, on the other hand, he's going to be writing database applications in Python, Python doesn't even have the concept of a pointer or a linked list.
I drilled some poor sod in a technical interview recently when he put "cryptography" as one of his skills. My first question was, "Which AES candidate do you prefer?" His response was "What's an AES?" at which point I knew he hadn't kept up with the field. Point being, if you say you have some skill, either qualify it, or make sure you're current in it.
From a technical point of view, I don't care if you're up on the minutiae of any particular programming language. Any decent programmer can learn a new language in a matter of weeks, especially if it is a language as simple as Python (which is what we use most at EST). What I do care about is whether you know basic object-oriented programming ideas and terminologies, basic structured programming concepts, etc. Beyond that, if you appear to be relatively bright, relatively well grounded in basic computer science, and either crazy enough or outgoing enough to deal with the crazies in our engineering department, we can't afford to be picky in today's labor market.
I can't stress the 'crazy enough or outgoing enough' bit. We got one guy, a very proper scientist type, who came in, who would never tell anybody hello, who would never say "bye" when he left, who never joined into the impromptu design discussions that happen whenever two people working on the same project run into each other in the hallway, who got upset whenever he, a junior programmer, did not get the senior programmers to do things his way, who seemed altogether uptight and tight-assed... he eventually, after we pulled him into a meeting and asked him to be a team player, turned in his letter of resignation, saying that the other programmers were hostile to him and he couldn't work with them. Oh well. But now you know why companies tend to trot candidates past the engineering department... we can't afford people who can't work with the nut cases who already work here:-).
-Eric Lee Green, Senior Software Engineer, Enhanced Software Technologies Inc.
I have Mike Rosing's book, "Implementing Elliptic Curve Cryptography" I think is the name. Yes, it's available, and the basic theory is patent-free. Be aware, however, that various optimization techniques are patented. This has been a major issue in why the IEEE 1363 committee has been debating for five years without producing an actual IEEE standard.
Given the complexities of ECC, and the patent uncertainties, it makes sense to use RSA when its patent runs out unless the longer key length needed for RSA is a problem for your particular application (smart cards, for example, are unlikely to like having to spend 2048 bits of flash RAM to store a key).
Due to the RSA patent, I used Diffie-Hellman to secure the network connections for a project I'm working on. Frankly, I'd rather use RSA. RSA has a number of very nice properties. For example, if the main server is momentarily compromised with DH, the shared key is compromised, and all communications can be decrypted by an attacker. With RSA, if the main server is momentarily compromised, they get my public key, but they still can't decrypt messages encrypted with my public key, and thus messages the server sends me (with my public key) are still securely encrypted (though not securely authenticated!).
The RSA public key algorithm is secure, time-tested, simple... once the patent runs out, the only reason to not use it is because it requires such long key lengths in order to be secure (I'd recommend a minimum of 2048 bit keys if you want to be secure for the next 10 to 20 years). ECC uses much shorter keys to get equivalent security. On the other hand, ECC (Eliptic Curve Cryptography) also requires much more complicated software... remember those "munitions" signatures that did RSA in a single (long) line of Perl? You couldn't do an ECC implementation that way:-}. So for the moment, due to the maxims that "time-tested is good" and "simple is good", RSA is preferable to ECC except for applications where the key size is an issue.
Just because RSA the company is evil doesn't make the RSA algorithm evil. Remember, RSA the algorithm is the algorithm the NSA would have loved to suppress, and rumor is that the NSA, having given up on suppressing it, was behind the patenting of it in order to slow its adoption... if the NSA wanted to suppress it, it has to be good:-).
One of my notions is a combination client and server package. The basic problem, you see, is twofold: distribution of public keys, and what to do when your intended recipient does not currently have a public key or trusted client.
Enter a central server that does nothing but key management. If you query the beasty for a public key for "foo@bar.com", and it turns out that "foo@bar.com" doesn't have one, it in turn sends an EMAIL to "foo@bar.com" saying "john@doe.com wants to send you encrypted EMAIL, click _here_ to download the decryption program" and notifies you "sorry, this guy doesn't have a public key yet." Then when "foo@bar.com" does get a public key, it informs you "hey, he has a public key now, send that mail you wanted to send?". Voila!
There's a lot of additional details that would be needed to make it secure, but that's not the point. The point: Until sending and receiving encrypted messages is easy enough for my mom to do, it won't happen. And with the current infrastructure, I don't see any way to make it happen on a client-to-client basis, because it's just too hard to share key information in a reliable fashion and for the recipient to know what client to get in order to receive the message.
So does the Canadian government assert Crown copyright over government documents? This is used in, amongst other nations, England and Australia, in order to limit the effect of disclosure of government documents -- it is illegal to, for example, post a copy of the document to a web page or include it as part of a book, for example (because this violates the Crown copyright).
Granted, you can always summarize documents, but sometimes the sheer black and white effrontery of a government bureaucrat's abuse of power, in his own handwriting, is the most effective way of communicating.
Note that here in the United States, government documents are explicitly in the public domain. You can copy them in any way you wish, and use them in any way you wish, at least those that you know about and can get your hands upon. There is no concept here similar to "Crown copyright".
If you've been involved in the computer industry for some time, you've probably encountered Management By Airline Magazine. A pointy-haired boss comes to you and says "Our product needs feature X!", where feature X will basically render the product insecure and useless. So you drag your heels and procrastinate in hopes that he'll forget that he requested feature X. Big corporations have invented paperwork and bureaucracy to institutionalize this process of procrastination. And 99% of the time he does forget about feature X -- he takes another airplane trip, reads another airline magazine, and falls in love with feature Y:-).
Point: Sometimes administrative heel-dragging, while blamed on "administrative red tape", can be purposeful behavior. If there is "red tape" involved, it is because the FBI heirarchy wants it to be. I'm sure they did not invent this red tape just for the Carnivore case -- after all, it's institutionalized -- but it's there for a reason, and that reason is to be as an excuse for non-responsiveness to the public.
Remember, we are all members of the Open Source cult here. It is conceivable that, in the future, we could all be put on a "watch list" as evil communistic subversives intent upon destroying Free Enterprise As We Know It.
What? You say it could never happen?
It happened to those who wished to free the black man, an effort that threatened the economic well-being of many well-heeled industrialists and Southern planters. Why do you think it could not happen to those who wish to free the code? You honestly believe that this does not present as big a threat to entrenched powers?
The FBI is a huge law breaking organization. Remember, they are legally required to respond to FOIA requests with a "yea" or "nay" within a certain time frame. They can say "nay", at which point a lawsuit can be filed, or they can actually provide the documents requested, but either way they're required, *BY LAW*, to respond.
Yet they did not.
And this is typical behavior for the FBI. They believe that the law does not apply to them, and behave accordingly.
A rogue law enforcement agency that believes that it is above the law and above the Constitution does not serve us, no matter how well they protect us from terrorist threats. Not that such rogue law enforcement agencies would ever care what we think about them. After all, when you have a badge and a gun, who is going to stop you? "Who shall watch the watchers?".
Note that it is quite legal in the USA to sell books on making bombs. Loompanics has a few of them on sale that you can buy right now, including "MIDDLE EASTERN TERRORIST BOMB DESIGNS". The Feds once tried to shut down Loompanics, and were rudely shot down by a Federal court.
What is NOT legal is selling a book that advocates USING one of those bombs. Speech which has the purpose of inciting to violence is not protected speech, the courts have ruled. Speech which merely shows how to make an instrument of violence, on the other hand, is protected. Given this, it's hard to see how, considering that the judge has basically concluded that code is speech, he could conclude that code can be banned... it does not, after all, provide an incitation for violence, it merely gives the "blueprint" for a "copyright bomb".
Note that it is not a 1st Amendment issue when we're talking about government employees and work product. Work product is owned by the employer, and if the employee walks off with work product, he or she can be prosecuted to the full extent of the law. In addition, government employees who deal with classified information sign a document saying that they will not further dessimate that information. This kind of "gag order" is a condition of their employment, and is similar to the confidentiality agreement that my own employer made me sign. Depending upon the classified secret involved, the employee will either be fired, prosecuted for breach of contract, or prosecuted for treason... but except for the treason bit, this is all within the realm of employer-employee contract law, and thus not a 1st Amendment issue.
Your point that not all speech is protected, however, is a good one. Speech that violates a contract is protected but can get you sued for breach of contract. But the bar for what speech is protected vs. not protected is rather high, and generally involves speech that has a likelihood of inciting violence or causing immediate harm to people. The bar is especially high when it is a media outlet involved, because you're not only dealing with free speech, you're dealing with free press, i.e., a double-whammy. I believe the judge in the EFF case has basically concluded that the code involved, as printed by 2600, is speech. However, he has asked the lawyers to make arguments as to whether it should be considered protected speech (bringing up the issue of the draft cards during the Vietnam era, where a judge says yes, burning them was speech, but it was not protected speech).
I write music. I record music. I use a Berhinger mixer, have an assortment of mikes (my favorite is a little Oktava small-diaphragm condenser, though I had to rig a special filter out of coat-hanger wire and foam A/C filter in order to get the boominess out of my acoustic guitar), and my home recording device is... tada! An eMachine 433 running Windows, with a high-end sound card in it!
Note that, while the judge is likely to rule that the DeCSS source code is expressive speech, not all expressive speech gets 1st Amendment protection. For example, shouting "Fire!" in a crowded movie theatre (or burning your draft card, another case cited by the judge), have been ruled by the Supremes to not have 1st Amendment protection.
All that aside, it is going to be quite hard for the judge to rule that something published in a magazine is not covered by the 1st Amendment. The MPAA made a *MAJOR* mistake in going after 2600 Magazine as their first "big-name" villain here... if they'd first tried to shut down private citizens, and left 2600 alone, they could have gotten their precedent. Instead, they have run ashore on the shoals of the 1st Amendment here, because you don't censor magazines here in the United States unless there is a darn good reason to do so.
Of course, the trial transcripts of the MPAA execs on the stand showed that the MPAA was seriously clueless anyhow. Apparently they had no idea that 2600.com was the webzine version of a magazine until after they'd already filed the suit.
one thing to note is that the release version of Interbase does include the threaded database engine for Linux, which should significantly increase multi-user performance as compared with the ancient version tested in that article.
Also worthy to note that the user-friendly DBMS management tool is apparently written in Pascal, and is not going to be usable on Linux until Kylix is up and going.
An application crashing every three months is not the same thing as a database crashing every three months.
Regarding speed, MySQL is and always will be the fastest SQL database on the planet, bar none. It gets that speed at a cost, though -- tossing out every feature that might possibly slow down the database. For many people, Interbase hits a very sweet point on the features vs. performance spectrum, it is faster and more compact than most "full-featured" databases, while still having the majority of functionality that most reasonable people would consider nice to have.
It's hard to have solid comparisons when the products themselves are shifting like jello. For example, MySQL now has an indexable TEXT type. Lack of that was one of the things that drove me to PostGreSQL a couple of years ago (I did not need transactions for that particular application, but I really did want an indexable TEXT type).
Now, if you want a jello comparison -- Interbase fits between MySQL and PostGreSQL on the features spectrum (that is, it has more features than MySQL, but lacks some features of PostGreSQL). Interbase also fits between MySQL and PostGreSQL on the speed spectrum, but is closer to MySQL speed-wise (PostGreSQL is a pig, especially on inserts... even selects are a good 10-20% slower than on most "name" databases). On the scalability spectrum, MySQL sucks (2gb limit on file size on 32-bit Linux), even the new RAID functionality is a kludge that's not going to change that significantly because it's too inflexible (have to pre-detirmine that "yes, I want to have 5 files for a max of 10gb", and woe to you if that is not enough), while PostGreSQL will happily build 50-gb database files and handle them all day long (on machines with a 2gb limit on file size, PostGreSQL automatically handles creating additional files as needed to handle the table's "data heap"). I did not have a chance to closely examine Interbase's specs on the scalability side, I know it will handle more than 2gb of data on Linux, but I don't know whether you have to pre-define how big it can get, like with MySQL. (Note that MySQL does not have the 2gb limit on OS's that properly support 64-bit filesystems).
Best bet: Download them all, create a sample database, try some sample queries, slam the @#$% out of them. Note that PostGreSQL's big speed problem for most people is going to be insert speed and its sluggishness at opening connections. Select speed will probably not be a problem for most people, because PostGreSQL is plenty fast there for the typical application. Interbase may be the solution to those woes if you need transaction support and speed too. Or you could wait for MySQL 3.23 to mature, it too has alpha-quality transaction support, though it will never have the more advanced features of Interbase or PostGreSQL ("never" is probably a strong word here, but given the MySQL author's desire for speed rather than features, it probably will remain accurate).
Interbase fits between MySQL and PostGreSQL on the features-vs-performance scale. MySQL is very small and fast, at the expense of having few features (lack of transaction support, in particular, being a real issue for many applications). PostGreSQL has just about every feature under the sun nowdays, it has a set of standard types and functions that would be the envy of any database, it has a huge number of server side function programming languages (you can program stored procedures in Perl or TCL!), it has language interfaces to every popular scripting language and programming language, but it is rather sluggish and its database files use a lot of disk space.
Interbase fits quite well between them. Interbase has the most-desired features wanted in MySQL (transactions in particular), though these features slow it down in comparison. But it is still quite a bit faster and more compact than PostGreSQL in many applications, at the expense of having a rather limited selection of types and predefined functions.
If I were using MySQL 3.22 and needed stable transaction support, I'd probably switch to Interbase. If I were using PostGreSQL and needed more speed, I'd probably grit my teeth and wait until the next revision of the PostGreSQL storage manager, which is promised for Real Soon Now -- unless its current speed was utterly unacceptable, in which case I'd strongly look at Interbase, while gritting my teeth. Not that Interbase is a bad database. It's just that PostGreSQL has gotten much, MUCH more featuresome over the past couple of years, and many of those features, such as an indexable TEXT type (which Interbase lacks), are quite useful in the kinds of applications that I write. Having to go back to fixed-size VARCHAR records would be a step backward for me. Even MySQL 3.23 doesn't make you do that (you can index the TEXT BLOB type in MySQL 3.23, or, rather, you can index the first {n} characters of it).
I don't know how fast Interbase is. But there is one limitation of Interbase that made it useless for my purposes: the lack of an indexable TEXT field type. I am dealing with a piece of character data that can be anywhere from 1 character to 1024 characters in length, and there can be a million of these puppies in my database. I am *NOT* going to declare a VARCHAR(1024), I don't have enough disk space for a million VARCHAR(1024) records! (this allocates 1025 bytes for each string, regardless of how many bytes are actually needed for a particular string). PostGreSQL has had indexable TEXT forever (as well as most other features of Interbase), PostGreSQL's big problem for my purposes is insert speed (we are getting approximately 400 inserts per second on a blank database, w/fsync turned off, vs. 2400 inserts per second on MySQL). MySQL 3.23 allows indexing the first characters of a TEXT BLOB, which arguably is more useful even than the PostGreSQL version (do I *REALLY* need to index the whole bloody name, when there's only 5 people in the database whose name starts with MUNS ?!). And MySQL 3.23 has the beginnings of transaction support, though it's still six months or so before I would actually trust it for real deployment:-(.
Regardless of how fast Interbase is, I doubt it's anywhere as fast as MySQL. MySQL gets blazing speed at the expense of referential integrity support. Interbase's real competitor in the Open Source database world is PostGreSQL, not MySQL. From my preliminary look, query speeds are slightly faster than PostGreSQL, insert speeds are *MUCH* faster, and with the exception of the rather lame selection of types and built-in functions (PostGreSQL has a much richer types and functions system), it compares reasonably well feature-wise. On the other hand, PostGreSQL *DOES* have a much richer set of types, as well as a much richer set of extension languages and better interfaces from most scripting languages.... if it were a bit faster, PostGreSQL would blow Interbase out of the water.
In short: Interbase appears to fit somewhere between MySQL and PostGreSQL. It is not as full-featured as PostGreSQL (though most of the PostGreSQL feature set is utterly incomprehensible to mere mortals, and even to many of those who are working on improving it!), but, as with MySQL, it is faster. It is not as fast as MySQL, but it has many highly-desirable features that are currently only on MySQL's wish list. There is a large range of applications where it will be very valuable. It's too bad that lack of an indexable TEXT BLOB type means that my application isn't one of them... I would have loved its combination of decent speed and decent features, otherwise.
but they charged over $400 for it, at a time when Microsoft Windows + DOS 6.2 sold for $99 as a package. A guy I know called Doug at SCO (this was back when you could actually do something like that) and said "what kind of crack are you smoking? Nobody's going to pay that much for a desktop!" and Doug said "doh, but it's more stable than Windows! People will pay for that!". Well, we know what happened there, it flopped, and flopped badly...
Of course, part of the reason they couldn't sell it for a competitive price was because they were licensing other people's products as part of their product... the CDE license alone was as expensive as Windows 3.11... and that was only one of the components they licensed.
For a general technical interview there's no need for an NDA. If I'm trying to see whether a guy knows his stuff, I can do that without an NDA. On the other hand, if I've come to the conclusion that this guy is hot stuff and we want him on board, the best way to get him on board is to give him a briefing on the project and give him the spiel about how revolutionary it will be and how this architecture is going to kick rear and so on and so forth. Otherwise, in today's tight job market, it's like, "okay, I have 5 people who want to hire me, who do I want to work for, none of them have told me about what I'll be doing except 'C Programmer'?". If the guy's really good, I want to give him a reason to choose us rather than some other company -- and some of the info needed to do that may require an NDA.
(Note that the above is a generic "I"... I've never participated in an initial interview, on either side of the table, that required an NDA).
-E
When my employer wanted me to sign an agreement that, in my opinion, would have given them rights to all magazine articles I write and other things that could concievably be related to anything in the computer industry but which were not my direct duties at that company, I politely marked out the offending clause and offered them an amended agreement. HR hemmed and hawed and said they'd have to get approval from the CTO, and that's the last that I heard of it. Like I told a co-worker, "what are they going to do? Fire me?" If so, I'd have a job 2 days later (last time I was unemployed, I had a job waiting for me the day I left my previous employer).
If you're young and desperate for a job because you have not proven yourself, by all means sign such an agreement, but understand that this is a temporary situation. If you're any good, you aren't going to have a problem getting a job after that first one -- just wait 12 to 18 months, get a project under your belt, and move on to someone who's more reasonable. Sometimes you have to put up with BS in order to put yourself into a situation where you can get some brownie points under your belt, but once you've proven you can hack it, it's a tight job market out there, and you don't have to put up with any BS that you don't want to. (Though it is wise to sometimes put up with BS when it's necessary to get the product out the door... then seek another employer).
-E
For more of a an example: XBRU is a TCK/TK application. It never touches any actual tape hardware. That is all done by (surprise) BRU, which in turn is controlled via (surprise surprise!) PIPES! (A bunch of pipes, actually -- two named pipes, and two anonymous pipes). This is how the Unix component model was supposed to work -- and it does work, quite well, except in the realm of X11 components, where the design of the X11 interface is incapable of properly supporting the Unix component model.
Summary: Don't let the incompetent design of the X11 system interface lead you to excessively complicated communications mechanisms. In most cases, CORBA-style communications mechanisms are needed only because of deficiencies in design, not because of any inherent limitations in the Unix component model.
-E
Molly Ivins has a nice book on the subject: "Shrub: The short but happy political life of George W. Bush". It appears that "Shrub" ("He ain't big enough to be a full-blown bush") has done the following for Texas:
In response to American companies being sued by residents of the shanty towns near the border because dozens of babies were being born without brains or with other heinous birth defects due to lack of enforcement of environmental laws, Bush pushed for a "tort reform" law making it harder to sue for environmental crimes. You can no longer sue a group of polluters as a class action, you must sue them one at a time individually, and must prove that your baby was born without a brain because of that particular factory's mercury dumping (for example). The net effect was to give criminals, murderers who have killed dozens of innocent children in South Texas, immunity from the law. But that's okay, they have money and the residents of the shanty towns don't. In George W. Bush's universe, if you don't have money, you don't count.
In order to avoid having to report on environmental problems in Texas, Bush basically oversaw the reassignment of all state water quality inspectors to other duties. Texas now relies upon industries to "voluntarily" test their water and "voluntarily" tell the state when the water quality standards are exceeded. In other words, Bush has allowed the fox to police the henhouse.
When a big political contributor's funeral home chain was cited by the state funeral home board for shoddy embalming, Bush spearheaded the charge to fire the head of the state funeral home board, and eventually managed to get the state funeral home board largely eliminated from the budget (meaning that it exists on paper, but no longer has any inspectors or etc. to enforce the laws that are on the books).
Etc. etc. etc. About the only thing that Bush has constantly done well on is education, and that's probably because his wife would bitch-slap him if he didn't do right by her colleagues (she is a former teacher).
Bush has filtered billions in state investments into funds operated by his biggest campaign contributors, as well as steered most big state contracts to his biggest contributors. You thought it was bad that Clinton had the White House for rent for campaign funds.... Bush basically plundered the whole state of Texas, not just abused his official residence!
I am from Louisiana, right next door. We have our own crop of corrupt and colorful politicians. It was quite entertaining for us, though, to find a Texas electing a politician who was even more corrupt than our own Edwin "Honest Eddie" Edwards. As the years passed, we could only shake our heads and say "Man, and I thought Honest Eddie was corrupt!". But then, Honest Eddie used his powers to enrich his personal friends, most of whom were not "movers and shakers", while George W. used his powers to enrich the biggest businessmen in Texas. When corruption is in service to corporations, that's not corruption, that's just Texas, where "the bidness of guvmen't is bidness" and to hell with the taxpayer.
Now Bush's corrupt cronies want to elect him President of the United States to bring that corruption to the national scale. Sorry, I'm not interested.
-E
The Philly police are probably the most unprofessional major city police force in the country. Police work is a hard job. It requires a lot of training and a lot of professionalism to do well, and, most importantly, requires LEADERSHIP. IT is obvious that the Philly police force is lacking in training and in professional leadership. My own personal suggestion to residents of Philidelphia is that they start at the top -- fire the police chief and his top lieutenants, and re-stock with top staff from a city where community policing is an everyday occurance rather than a merely-mouthed buzzword.
-E
In an era where the voice of many is not being heard, some people go to extraordinary means in order to be heard. Your solution to this problem (voices not being heard) is to throw said voices into jail?
But then again, this is nothing new. Labor activists of the 1930's had worse problems, between the American Legion serving as America's own equivalent of the "brown shirts" to break up "lefty" protests, and rampant "red baiting" of union organisers. Reading some of the archives from the 30's and 40's, I get a sense of deja vu... the mainstream press of the day was "oh, everything's fine, nothing's happening, just a few protesters arrested for disorderly conduct, that's all", while the lefty press was complaining that their people were being jailed left and right without due process of law, beaten by American Legionnaires under the approving eyes of the local constabulary for being "anti-American", etc. The more things change, the more they don't.
-E
I drilled some poor sod in a technical interview recently when he put "cryptography" as one of his skills. My first question was, "Which AES candidate do you prefer?" His response was "What's an AES?" at which point I knew he hadn't kept up with the field. Point being, if you say you have some skill, either qualify it, or make sure you're current in it.
From a technical point of view, I don't care if you're up on the minutiae of any particular programming language. Any decent programmer can learn a new language in a matter of weeks, especially if it is a language as simple as Python (which is what we use most at EST). What I do care about is whether you know basic object-oriented programming ideas and terminologies, basic structured programming concepts, etc. Beyond that, if you appear to be relatively bright, relatively well grounded in basic computer science, and either crazy enough or outgoing enough to deal with the crazies in our engineering department, we can't afford to be picky in today's labor market.
I can't stress the 'crazy enough or outgoing enough' bit. We got one guy, a very proper scientist type, who came in, who would never tell anybody hello, who would never say "bye" when he left, who never joined into the impromptu design discussions that happen whenever two people working on the same project run into each other in the hallway, who got upset whenever he, a junior programmer, did not get the senior programmers to do things his way, who seemed altogether uptight and tight-assed... he eventually, after we pulled him into a meeting and asked him to be a team player, turned in his letter of resignation, saying that the other programmers were hostile to him and he couldn't work with them. Oh well. But now you know why companies tend to trot candidates past the engineering department... we can't afford people who can't work with the nut cases who already work here :-).
-Eric Lee Green, Senior Software Engineer, Enhanced Software Technologies Inc.
Given the complexities of ECC, and the patent uncertainties, it makes sense to use RSA when its patent runs out unless the longer key length needed for RSA is a problem for your particular application (smart cards, for example, are unlikely to like having to spend 2048 bits of flash RAM to store a key).
-E
The RSA public key algorithm is secure, time-tested, simple... once the patent runs out, the only reason to not use it is because it requires such long key lengths in order to be secure (I'd recommend a minimum of 2048 bit keys if you want to be secure for the next 10 to 20 years). ECC uses much shorter keys to get equivalent security. On the other hand, ECC (Eliptic Curve Cryptography) also requires much more complicated software... remember those "munitions" signatures that did RSA in a single (long) line of Perl? You couldn't do an ECC implementation that way :-}. So for the moment, due to the maxims that "time-tested is good" and "simple is good", RSA is preferable to ECC except for applications where the key size is an issue.
Just because RSA the company is evil doesn't make the RSA algorithm evil. Remember, RSA the algorithm is the algorithm the NSA would have loved to suppress, and rumor is that the NSA, having given up on suppressing it, was behind the patenting of it in order to slow its adoption... if the NSA wanted to suppress it, it has to be good :-).
-E
Enter a central server that does nothing but key management. If you query the beasty for a public key for "foo@bar.com", and it turns out that "foo@bar.com" doesn't have one, it in turn sends an EMAIL to "foo@bar.com" saying "john@doe.com wants to send you encrypted EMAIL, click _here_ to download the decryption program" and notifies you "sorry, this guy doesn't have a public key yet." Then when "foo@bar.com" does get a public key, it informs you "hey, he has a public key now, send that mail you wanted to send?". Voila!
There's a lot of additional details that would be needed to make it secure, but that's not the point. The point: Until sending and receiving encrypted messages is easy enough for my mom to do, it won't happen. And with the current infrastructure, I don't see any way to make it happen on a client-to-client basis, because it's just too hard to share key information in a reliable fashion and for the recipient to know what client to get in order to receive the message.
-E
Granted, you can always summarize documents, but sometimes the sheer black and white effrontery of a government bureaucrat's abuse of power, in his own handwriting, is the most effective way of communicating.
Note that here in the United States, government documents are explicitly in the public domain. You can copy them in any way you wish, and use them in any way you wish, at least those that you know about and can get your hands upon. There is no concept here similar to "Crown copyright".
-E
When a federal law enforcement agency does not obey the law, we must raise the question, "who's watching the watchers?".
-E
Point: Sometimes administrative heel-dragging, while blamed on "administrative red tape", can be purposeful behavior. If there is "red tape" involved, it is because the FBI heirarchy wants it to be. I'm sure they did not invent this red tape just for the Carnivore case -- after all, it's institutionalized -- but it's there for a reason, and that reason is to be as an excuse for non-responsiveness to the public.
-E
What? You say it could never happen?
It happened to those who wished to free the black man, an effort that threatened the economic well-being of many well-heeled industrialists and Southern planters. Why do you think it could not happen to those who wish to free the code? You honestly believe that this does not present as big a threat to entrenched powers?
-E
Yet they did not.
And this is typical behavior for the FBI. They believe that the law does not apply to them, and behave accordingly.
A rogue law enforcement agency that believes that it is above the law and above the Constitution does not serve us, no matter how well they protect us from terrorist threats. Not that such rogue law enforcement agencies would ever care what we think about them. After all, when you have a badge and a gun, who is going to stop you? "Who shall watch the watchers?".
-E
What is NOT legal is selling a book that advocates USING one of those bombs. Speech which has the purpose of inciting to violence is not protected speech, the courts have ruled. Speech which merely shows how to make an instrument of violence, on the other hand, is protected. Given this, it's hard to see how, considering that the judge has basically concluded that code is speech, he could conclude that code can be banned... it does not, after all, provide an incitation for violence, it merely gives the "blueprint" for a "copyright bomb".
-E
Your point that not all speech is protected, however, is a good one. Speech that violates a contract is protected but can get you sued for breach of contract. But the bar for what speech is protected vs. not protected is rather high, and generally involves speech that has a likelihood of inciting violence or causing immediate harm to people. The bar is especially high when it is a media outlet involved, because you're not only dealing with free speech, you're dealing with free press, i.e., a double-whammy. I believe the judge in the EFF case has basically concluded that the code involved, as printed by 2600, is speech. However, he has asked the lawyers to make arguments as to whether it should be considered protected speech (bringing up the issue of the draft cards during the Vietnam era, where a judge says yes, burning them was speech, but it was not protected speech).
-E
The judge is on crack.
-E
All that aside, it is going to be quite hard for the judge to rule that something published in a magazine is not covered by the 1st Amendment. The MPAA made a *MAJOR* mistake in going after 2600 Magazine as their first "big-name" villain here... if they'd first tried to shut down private citizens, and left 2600 alone, they could have gotten their precedent. Instead, they have run ashore on the shoals of the 1st Amendment here, because you don't censor magazines here in the United States unless there is a darn good reason to do so.
Of course, the trial transcripts of the MPAA execs on the stand showed that the MPAA was seriously clueless anyhow. Apparently they had no idea that 2600.com was the webzine version of a magazine until after they'd already filed the suit.
-E
Also worthy to note that the user-friendly DBMS management tool is apparently written in Pascal, and is not going to be usable on Linux until Kylix is up and going.
-E
Regarding speed, MySQL is and always will be the fastest SQL database on the planet, bar none. It gets that speed at a cost, though -- tossing out every feature that might possibly slow down the database. For many people, Interbase hits a very sweet point on the features vs. performance spectrum, it is faster and more compact than most "full-featured" databases, while still having the majority of functionality that most reasonable people would consider nice to have.
-E
Now, if you want a jello comparison -- Interbase fits between MySQL and PostGreSQL on the features spectrum (that is, it has more features than MySQL, but lacks some features of PostGreSQL). Interbase also fits between MySQL and PostGreSQL on the speed spectrum, but is closer to MySQL speed-wise (PostGreSQL is a pig, especially on inserts... even selects are a good 10-20% slower than on most "name" databases). On the scalability spectrum, MySQL sucks (2gb limit on file size on 32-bit Linux), even the new RAID functionality is a kludge that's not going to change that significantly because it's too inflexible (have to pre-detirmine that "yes, I want to have 5 files for a max of 10gb", and woe to you if that is not enough), while PostGreSQL will happily build 50-gb database files and handle them all day long (on machines with a 2gb limit on file size, PostGreSQL automatically handles creating additional files as needed to handle the table's "data heap"). I did not have a chance to closely examine Interbase's specs on the scalability side, I know it will handle more than 2gb of data on Linux, but I don't know whether you have to pre-define how big it can get, like with MySQL. (Note that MySQL does not have the 2gb limit on OS's that properly support 64-bit filesystems).
Best bet: Download them all, create a sample database, try some sample queries, slam the @#$% out of them. Note that PostGreSQL's big speed problem for most people is going to be insert speed and its sluggishness at opening connections. Select speed will probably not be a problem for most people, because PostGreSQL is plenty fast there for the typical application. Interbase may be the solution to those woes if you need transaction support and speed too. Or you could wait for MySQL 3.23 to mature, it too has alpha-quality transaction support, though it will never have the more advanced features of Interbase or PostGreSQL ("never" is probably a strong word here, but given the MySQL author's desire for speed rather than features, it probably will remain accurate).
-E
Interbase fits quite well between them. Interbase has the most-desired features wanted in MySQL (transactions in particular), though these features slow it down in comparison. But it is still quite a bit faster and more compact than PostGreSQL in many applications, at the expense of having a rather limited selection of types and predefined functions.
If I were using MySQL 3.22 and needed stable transaction support, I'd probably switch to Interbase. If I were using PostGreSQL and needed more speed, I'd probably grit my teeth and wait until the next revision of the PostGreSQL storage manager, which is promised for Real Soon Now -- unless its current speed was utterly unacceptable, in which case I'd strongly look at Interbase, while gritting my teeth. Not that Interbase is a bad database. It's just that PostGreSQL has gotten much, MUCH more featuresome over the past couple of years, and many of those features, such as an indexable TEXT type (which Interbase lacks), are quite useful in the kinds of applications that I write. Having to go back to fixed-size VARCHAR records would be a step backward for me. Even MySQL 3.23 doesn't make you do that (you can index the TEXT BLOB type in MySQL 3.23, or, rather, you can index the first {n} characters of it).
-E
Regardless of how fast Interbase is, I doubt it's anywhere as fast as MySQL. MySQL gets blazing speed at the expense of referential integrity support. Interbase's real competitor in the Open Source database world is PostGreSQL, not MySQL. From my preliminary look, query speeds are slightly faster than PostGreSQL, insert speeds are *MUCH* faster, and with the exception of the rather lame selection of types and built-in functions (PostGreSQL has a much richer types and functions system), it compares reasonably well feature-wise. On the other hand, PostGreSQL *DOES* have a much richer set of types, as well as a much richer set of extension languages and better interfaces from most scripting languages.... if it were a bit faster, PostGreSQL would blow Interbase out of the water.
In short: Interbase appears to fit somewhere between MySQL and PostGreSQL. It is not as full-featured as PostGreSQL (though most of the PostGreSQL feature set is utterly incomprehensible to mere mortals, and even to many of those who are working on improving it!), but, as with MySQL, it is faster. It is not as fast as MySQL, but it has many highly-desirable features that are currently only on MySQL's wish list. There is a large range of applications where it will be very valuable. It's too bad that lack of an indexable TEXT BLOB type means that my application isn't one of them... I would have loved its combination of decent speed and decent features, otherwise.
-E
Of course, part of the reason they couldn't sell it for a competitive price was because they were licensing other people's products as part of their product... the CDE license alone was as expensive as Windows 3.11... and that was only one of the components they licensed.
-E