July 2005 Archives
Go ahead and read this article by David R. Francis about the decline of union influence and every place he writes about how much "corporations" are benefitting, just replace that word with "shareholders". And remember that half of American households own stock.
I support the right of any group of workers to unionize, but I also support the right of employers to fire those workers and replace them with other workers, if they can do so. The power of organization should come from the value of the workers themselves, and the value of the workers depends on the price their labor can demand in a free market. If someone else can do the work better or cheaper, why should we have laws that require the employer to employ less than the best?
A reader forwarded me an article from Advocate.com decrying those who interpret the Bible literally, and the article actually does a reasonable job of explaining how we do so. The author, Charles Hammer, seems to be pretty familiar with Christianity, and the main problem with his position is that he gives little justification for his casual dismissal of conservative reasoning on the matter. He lists a lot of commands from the Old Testament that most modern Christians don't advocate enacting into American law, then he explains why we believe that way, and then he dismisses the reasons.
Conservative Christians also struggle against God’s order, passed down through Moses in Leviticus 20:9, which reads: “For every one that curseth his father or his mother shall surely be put to death: He has cursed his father or his mother; his blood shall be upon him.” These conservatives are too kind to kill such children, nor would they—unlike the witch-burners of Salem, Mass., in 1692, obey Leviticus 20:27: “A man also or a woman that hath a familiar spirit, or that is a wizard, shall surely be put to death: they shall stone them with stones.”Conservatives ignore Deuteronomy 22:21, which dictates the fate of the bride whose parents cannot bring forth the cloth that would serve as a token of her virginity: “Then they shall bring out the damsel to the door of her father’s house, and the men of her city shall stone her with stones that she die...so shalt thou put away evil from Israel.”
The Bible also condemns to death many different classes of sinners, including “he that blasphemeth the name of the Lord” (Leviticus 24: 10–16) and “whosoever doeth work” on the Sabbath (Exodus 35:2).
Today’s conservatives disregard Leviticus 25, which commands that we buy bondmen and bondmaids of the heathen around us and of strangers that sojourn in our land.
It's pretty clear that these commands were given to Israel and the Jews and not to modern Christians (or ancient non-Jews), and that's exactly what Mr. Hammer goes on to point out.
Conservatives do not explain why—defying Biblical commands—they refuse to stone wizards, homosexuals, and nonvirgin brides. Instead, they justify today’s more humane ethics by speaking of the “Old Covenant” and the “New Covenant,” the supposed harsh Biblical law before Jesus and the gentler era after. As if the enduring, eternal God had reinvented himself and his laws between the Old Testament and the New.
That's basically what we believe, however it's not that God "reinvented" himself; rather, he changed the way he deals with humanity, expanding his scope from Israel alone to all mankind.
Unlike the U.S. Constitution, however, the Bible contains no article specifying how it can be amended.
On the contrary, the Old Testament is entirely focused on this eventual "amendment" -- namely, the coming of the Messiah, Jesus Christ. The whole point of the OT is to point to Jesus, and if Mr. Hammer misses that then it's no wonder he's having trouble understanding what's going on.
With conservatives it also comes down to the same picking and choosing among scriptures, the same dreaded interpretation they decry in mainstream Christianity. They choose to absolve Sabbath-breakers, blasphemers, remarried “adulterers,” and nonvirgin brides—but not homosexuals, who are condemned if not to death at least to damnation.
This argument is disingenuous, since Jesus explicitly absolved New Testament believers from the Sabbath laws and other ceremonial laws regarding food and worship that were only applicable to (and only fulfillable by) ancient Jews living under the Temple system. Furthermore, there are New Testament scriptures that specifically condemn homosexuality (along with many other sins!).
Romans 1: 26-3226 Because of this, God gave them over to shameful lusts. Even their women exchanged natural relations for unnatural ones. 27 In the same way the men also abandoned natural relations with women and were inflamed with lust for one another. Men committed indecent acts with other men, and received in themselves the due penalty for their perversion.
28 Furthermore, since they did not think it worthwhile to retain the knowledge of God, he gave them over to a depraved mind, to do what ought not to be done. 29 They have become filled with every kind of wickedness, evil, greed and depravity. They are full of envy, murder, strife, deceit and malice. They are gossips, 30 slanderers, God-haters, insolent, arrogant and boastful; they invent ways of doing evil; they disobey their parents; 31 they are senseless, faithless, heartless, ruthless. 32 Although they know God's righteous decree that those who do such things deserve death, they not only continue to do these very things but also approve of those who practice them.
I've taken the liberty of emphasizing "deserve death" above, and an astute reader will quickly realize that homosexuals are not the only people condemned. In fact, I doubt anyone would be exempt from the list of evil-doings that Paul listed above.
Which is exactly the point. No person can be "good enough" to escape God's death sentence.
We are all liars and thieves, we have all been disrespectful to our parents, we have all committed idolatry, we are all boastful and arrogant, we are all gossipers and slanderers. We are all condemned by our own actions. The point of the New Testament is that we don't have to stay condemned, because Jesus Christ paid the penalty for us.
We have each earned death, but God has provided a way for us to escape, no matter what we've done in the past. We can't undo what we've done or pay back God or buy forgiveness, but Jesus already died in our place to cover the debt. That's what the Old Testament points towards, and that's what the New Testament reveals. We can be forgiven because of Jesus, and all we have to do is admit our sin and ask God to forgive us because of what Christ did.
The rest is details. Do Christians tend to elevate the sin of homosexuality as being particularly evil? Yes, and probably unjustifiably so. Because of this attitude, many homosexuals whom God loves enough to die for have hardened hearts and have no desire to hear about the forgiveness that's available to them.
I thought I liked Google Maps, but Google Earth is my new favorite toy. I could spend hours with this thing; I don't even know where to begin describing its features. It's like the global exploration of the past 600 years is at your fingertips.
Drudge points to an article about Nevada water policy by the BBC (pretty local and esoteric for a news agency half a world away). Aside from the issue at hand, I'm struck by the rather balanced tone of the article, which is contrary to my expectations given the BBC's reputation as a leftist organ. Sure, the article is about an environmental concern that won't take shape for 20 years, but the advocates for changing current policy are identified as "environmental activists" and their motivations are actually attributed to their own person gain rather than being the last best hope of humanity. No one was interviewed who had a contrary opinion, but I really did learn a lot about how water is used in Las Vegas, and the casinos weren't vilified.
But this is one of "Sin City's" greatest myths. Local hotels account for just 7% of the area's total water usage, according to the Southern Nevada Water Authority."The hotel casinos use only 30% of their water allocation on outdoor use, while 70% is used indoors in rooms and kitchens and that water is reclaimed and used again," says Cruz.
"Even though the Bellagio has the largest water feature on the Strip, it benefits from ground water. We are consuming less water than when it was functioning as a golf course when it was the old Dunes (hotel)."
A reader passed along another nifty Google Maps application: this one overlays a Google Map on a satellite photo. Post links to any other Google Map systems that you come across.
As a nearly immediate follow-up to my earlier post today on jury nullification, let me post a link to a discussion about the topic at Patterico's Pontifications, where many smart people I otherwise agree with on many issues are decrying jury nullification as "jury misconduct". Frankly, I'm amazed that many of the same people who support the right of citizens to carry weapons feel threatened by the power of juries to judge laws as well as facts. Reading the comments, jury nullification opponents pose arguments against the power of nullification that are nearly identical to the arguments of those who want to ban guns. They don't trust the public to act as a check on the government.
Like carrying guns, jury nullification is a power that can be used for evil as well as good. That should go without saying, and yet many anti-nullification arguments seem to focus on the instances in which nullification was used to, for instance, acquit whites who lynched blacks. That's obviously a wrong use of the power. But just as guns are important to freedom despite ocassional misuse, jury nullification is also important despite the cost of occasional misuses.
The main difference between gun use and jury nullification is that someone who misuses a gun can be prosecuted and punished if guilty, whereas a juror who nullifies unjustly cannot be touched by the judicial system. Perhaps social punishment is enough to deter unjust jurors, but if that's not the case then maybe we should just pass a law that allows jurors to be prosecuted for nullification. Then, when those jurors are tried, a new jury will be empowered to judge their actions and render a verdict. The trial in which nullification was initially used would be untouchable, but jurors could be punished individually if their peers later believed that their nullification was unjust. Such a system would impose a cost on jurors for nullification and give them an incentive to use the power rarely and only when they believe that their peers will back them up.
It's pretty clear that the Democrats are rolling out Phase 2 of their strategy to oppose the nomination of John Roberts to the Supreme Court.
"The question is: Who is John Roberts? What does he really believe?" said Theodore M. Shaw, director-counsel of the NAACP Legal Defense and Educational Fund, during an appearance at the National Urban League convention here yesterday. "What we're finding out is troubling. I've moved from a position of neutrality to being deeply disturbed."
Phase 1 was to appear neutral and open-minded. Phase 2 is to act as if "surprising" "revelations" have forced the Democrats' initial neutrality to change into opposition. That way, Democrats can appear to have been open-minded initially and only reluctantly convinced that the nominee is a "deeply committed ideologue" by weight of the "evidence" they've "discovered". I use all the scare-quotes to illustrate that all this information has been known about Judge Roberts for years and years, but since it's new to the public the lawmakers have to act as if its new to them, too, so they can attempt to bring the public along for the ride.
Phase 3 will be the typical, expected rabid opposition to a nominee they hope to have wounded with their own fake reluctant transition from neutral to hostile.
Radley Balko has an article that illustrates both the importance of the power of jury nullification and the injustice that ocassionally plays out when our justice system refuses to allow jurors to decide what information is relevant.
In February of 2003, a California jury convicted marijuana activist Ed Rosenthal of growing marijuana, in violation of federal law.What the jury didn't know — and wasn't allowed to hear — was that Rosenthal was not only growing the marijuana for medical patients, he was growing the stuff for the city of Oakland. After the trial, the jury was outraged. "'I'm sorry' doesn't begin to cover it," one told the New York Times. Said the foreman, "It's the most horrible mistake I've ever made in my entire life."
Ignore for the moment whether or not you believe marijuana should be legal, or whether it should be regulated by the state or federal governments, and consider the reaction of that jury foreman once he learned all the information about the case he had just decided. The jury was manipulated by the judicial system into returning a verdict that was technically correct under the law, but was actually horribly unjust in the minds of the jurors. They never would have convicted if they had known all the facts of the case. Imagine yourself in that position, sentencing someone to a potential life in prison, and then later discovering that you had been misled. That's why jury nullification is so important.
The doctrine of jury nullification (search) rests on two truths about the American criminal justice system: (1) Jurors can never be punished for the verdict they return, and (2) Defendants cannot be retried once a jury has found them not guilty, regardless of the jury's reasoning. So the juries in both the Rosenthal and Paey cases could have returned a "not guilty" verdict, even though Paey and Rosenthal were undoubtedly guilty of the charges against them.This may sound radical, perhaps even subversive, but jury nullification serves as an important safeguard against unjust laws, as well as against the unfair application of well-intended laws. It's also steeped in American and British legal tradition.
The first case of jury nullification in British law came in the trial of William Mead (search) and William Penn (search), the latter of whom would go on to found the province of Pennsylvania. In 1670, the two men were charged in England with unlawful assembly, a law aimed at preventing religions not recognized by the Crown from worshipping. Both almost certainly broke the law, and the judge demanded a guilty verdict. But the jury refused, on the grounds that the law itself was unjust. After repeated refusals, the judge ordered the jury imprisoned. England's highest court eventually ordered the jurors released, establishing into common law the independence and integrity of juries in criminal cases.
Jury nullification isn't about anarchy or subverting the law, it's about ensuring that the laws reflect the will of the people. Remember, America is a Democracy and our government operates only with our consent. If a prosecutor can't convince a fully-informed jury to make a conviction, then the problem is with the law, not the jury.
(HT: Randy Barnett.)
Ok, as I've said before, I love integrating of Google Maps with everything. Most recently I came across HotOrNot + Google Maps, a site that connects the hilarious HotOrNot picture database with maps that allow you look for hot or, mostly, not people in your area. I guess it's just more amusing to know that you could pass these people on the street and think to yourself, "Not!" I mean, it's ok to make fun of people who post their pictures online to be rated, right?
Anyway, on a larger scale, this sort of thing is the reason why Google Maps is so much cooler than any of the other mapping sites out there. Google provides a nifty API that allows users to easily integrate their own data with the maps and display them, which makes Google Maps far more entertaining and useful than its competitors.
(HT: GeekPress.)
I don't post a lot of tests, but why not? It's Friday. Here's a Geek Test that my mom sent me that mostly only caught my interest because it contains a question about a +2 sword. There are lots of different kinds of "geeks", and this test is aimed at what it calls "true" geeks -- that is, computer geeks.
On a broader note, I think it's a good thing for the youth these days to have conformity de-emphasized. When I was in high school -- ten years ago? geesh -- the defining characteristic of geekiness (indifference to the approval of others) wasn't very well respected. Sure, it was cool to say you didn't care, but if you actually failed to conform there were social repercussions. I can remember the futility of trying to explain ICQ and instant messaging to friends who didn't even have computers; they didn't get it, and thought typing messages to people through a computer was pretty dumb. I get the impression that's not so much the case anymore, which is good.
Ultimately, we all want to be geeks of some sort, of whatever we're into, and it's great that the social pendulum has swung in the other way for now. I'm sure the trend will reverse towards conformity again at some point, but the internet is just so darn useful and new that it's impossible to look down on the mentality that made it possible. Once the net is fully assimilated into our culture, it will no longer be associated with geekiness.
Foreign Policy has a neat report with statistics about failed states that should prove interesting to anyone interested in international politics. Most of their reasoning appears rational, except for their chart showing the effects of foreign aid and stability.
We compared the amount of foreign aid countries receive per capita with the index rankings and found that the countries at greatest risk of collapse often get paltry amounts of aid. The exceptions appear to be countries that have been the recipients of large-scale international military intervention. Afghanistan, Bosnia, the Democratic Republic of the Congo, Iraq, and Sierra Leone are high-risk states that get above-average foreign aid (Bosnia gets the most by far).
But "paltry" is only defined on the chart relative to Bosnia, Iraq, and the Congo, all three of which are statistical outliers that are occupied (or nearly so) by multinational forces. The other failed nations on their chart are spread out evenly across the spectrum of foreign aid, and the chart itself appears to indicate that there's no correlation between stability and receiving foreign aid.
I've written many times that most foreign aid goes straight into the pockets of tyrants and doesn't help oppressed people at all. In fact, it's easy to argue that foreign aid to failed states actually aids oppression by preventing the removal of the dictators who ruined the state in the first place.
(HT: The Belmont Club.)
... and maybe it is. The recent launch of Discovery was performed safely and smoothly, but now it appears that despite years of work and hundreds of millions of dollars of engineering Space Shuttle foam keeps falling off.
HOUSTON, July 27 - NASA suspended further flights of the space shuttle fleet on Wednesday after determining that a large piece of insulating foam had broken off the external fuel tank of the Discovery shortly after liftoff Tuesday morning, the same problem that doomed the Columbia and its seven astronauts in the last mission, two and a half years ago.The foam does not appear to have struck the Discovery, so the decision will not curtail its 12½-day mission to the International Space Station, the officials said. But further flights will be postponed indefinitely, starting with that of the Atlantis, which was to have lifted off as early as September. ...
The effort to fix the foam problem had consumed more than two years and hundreds of millions of dollars. NASA identified the area on the tank that shed the latest piece of foam as a risk, but put off redesigning it.
"We decided it was safe to fly as is," Mr. Parsons said. "Obviously, we were wrong."
The incident occurred two minutes into the launching, at a point where the atmosphere is so thin that the piece drifted away. The Columbia accident occurred in part because the foam fell off the tank about 82 seconds after liftoff, when the air was much thicker and slowed the foam so the climbing orbiter struck it with great force.
N. Wayne Hale, the deputy manager of the shuttle program, said that if the Discovery foam had been shed earlier, "we think that it would have been really bad." ...
Others were more dismayed. A NASA engineer who has been involved in the return-to-flight effort said: "It's an ugly story. It's a mess." The engineer, who spoke on the condition of anonymity because of the delicacy of the issues involved, added, "Everyone's really, really disappointed," but continued: "It is what it is. Physics doesn't lie."
Alex Roland, a former NASA historian who now teaches at Duke and is a frequent critic of the space program, said that in some ways the problem was "worse than an unexpected anomaly arising."
"This was the major problem that they were looking to solve," Mr. Roland said. "It must be enormously demoralizing to them."
It doesn't take an engineer to tell you that when you spend all that time and money on a single problem, you expect it to be fixed. The lost foam -- a repeat of an earlier, shallow problem -- is much more distressing than a tempermental redundant sensor. Rand Simberg has an excellent post (from before the launch) in which he explains that a system as complex as the Shuttle will always have some failures, and that the system is designed to tolerate them. (The complexity of the system is the source of many problems with the Shuttle, and the primary reason to scrap the program.)
Any system as complex, with as many components as the Shuttle, must have adequate redundancy to allow safe operations with a failure of some components, because there are so many of them that some are bound to fail statistically, and if we mindlessly demand perfection on every flight, we'd never fly. This is the airline philosophy, and it used to be NASA's, but they've gotten gun shy, at least on this particular issue. But in making an a priori decision now to go with a failed sensor at launch, they're returning to a common-sense approach, for which the system was designed. ...Now as to these demands that NASA not launch until the sensor is fixed, how much are those making the demand willing to spend (noting that the money belongs to all of the taxpayers, not them individually)? And to what end?
Someone once said that when failure is not an option, success gets very expensive.
Right now, NASA's hypersafety philosophy has made spaceflight hyper expensive (though not particularly safe). Rather than unrealistically making failure not an option, we need to embrace the fact that failures will occur occasionally. What we have to do is make sure that failures aren't as expensive as they were in the case of Challenger and Columbia (and numerous other lesser NASA program failures). What that means is making it cheap to fail, which in turn means making it cost much less to make attempts. That won't happen until we develop much more robust systems, with much more activity. But investing further millions into Shuttle (not only in terms of money spent fixing things, but the costs of continued delay, which are substantial) in a futile effort to make it any safer than it currently is, is a fool's errand. We should have flown a couple years ago.
Most public reaction that I've heard -- other than in the media -- is similar to that of Mike from Mike's Random Rantings who says that space flight is supposed to be dangerous.
Has the public gotten so used to the idea of flying into space that they have forgotten how hard and dangerous it is to put that much mass into orbit? Does the public think that flying to space should be as safe as driving to work?These are ridiculous notions.
I beg to differ! Space flight should be much safer than driving to work, just as flying from Los Angeles to New York is much safer. The reason its still so dangerous is that we're launching a system designed in the 1970s that's run by government bureaucrats.
Casey from Right On! thinks NASA should start taking bids on future projects by private contractors, but I think a prize system modeled on the Ansari X Prize would be more efficient. Most of the engineers and managers at NASA are top-notch, and it's not their fault that the organization is so unwieldy, it's just the nature of giant bureaucracies. NASA should be converted from a production and engineering organization into a funding organization similar to the National Institutes of Health. The engineers who want to keep working on space exploration should be hired by private companies and get huge raises (as should all engineers everywhere, naturally).
Update:
Here's a private space venture I'd love to work for: The Spaceship Company.
Puzzleblogger Kevan Choset has a couple of trivia posts about presidential life spans (and here), and I thought of another trivia question: when were the most ex-presidents, presidents, and presidents-to-be all alive at the same time? A database of presidential births and deaths would make the question easy enough to solve with a computer.
DeoDuce comments on a recent example of modern "tolerance" in which offending a leftist is the greatest crime imaginable but offending a rightist is mandatory for the preservation of liberty.
Reader and server admin Cypren passes along these answers to the first few sections of the .NET Interview Questions I linked to a couple of days ago.
Everyone who writes code
Describe the difference between a Thread and a Process?
--- Both are individual execution paths, but process timeslicing (and memory space) is enforced by the OS, while thread differentiation is enforced by applications.
What is a Windows Service and how does its lifecycle differ from a "standard" EXE?
--- Services are loaded by the operating system and run in contained process spaces detatched from user interaction; users logging on and off the system have no impact on them.
What is the maximum amount of memory any single process on Windows can address? Is this different than the maximum virtual memory for the system? How would this affect a system design?
--- Windows processes are allowed 4GB of virtual address space, regardless of the actual amount of memory on the machine. Windows x64 allows 16TB of address space.
What is the difference between an EXE and a DLL?
--- EXEs can be launched as processes by the operating system. DLL executable code must be invoked by an existing process.
What is strong-typing versus weak-typing? Which is preferred? Why?
--- Strong-typing refers to defining the specific type of a reference at compile time rather than at run time. This results in more efficient execution and memory optimizations at compile time, as well as reduces the chance of a programmer accidentally providing a value of a type another component wasn't expecting.
Corillian's product is a "Component Container." Name at least 3 component containers that ship now with the Windows Server Family.
--- Component containers implement the IContainer interface to wrap components, providing a meta-architecture for organizing, interacting and communicating with the components.
What is a PID? How is it useful when troubleshooting a system?
--- (Ambiguous) This could refer to either a Microsoft Product ID -- the unique key that brands each activatable component installed on a system -- or to a Process ID, which is a means of referring to a specific process in calls to the Windows API.
How many processes can listen on a single TCP/IP port?
--- One.
What is the GAC? What problem does it solve?
--- The Global Assembly Cache. It stores strongly-named assemblies in a single location, allowing for verification of code library uniqueness when executing.
Mid-Level .NET Developer
Describe the difference between Interface-oriented, Object-oriented and Aspect-oriented programming.
--- Object-oriented programming consists of defining programming structures around logical units of data and the functionality required to operate on them. Interface-oriented programming extends upon the concept by mandating that cross-dependencies between objects be expressed in the form of abstracted, defined guidelines (without specific implementation) so that objects have set expectations for touchpoints. Aspect-oriented programming proceeds one step further, defining certain "first tier" processes which apply to almost all objects (such as logging), and providing high level means of attaching functionality to a wide swath of objects without specific implementation required in each one.
Describe what an Interface is and how it’s different from a Class.
--- Interfaces are "guidelines without implementation" for functionality in an object. They define methods and properties which must be exposed, but leave it to the individual object to determine implementation.
What is Reflection?
--- Reflection is the ability to dynamically execute code without pre-linking at compile time. This may take the form of dynamic module loading and late binding, or it may take the form of real-time code construction and compilation.
What is the difference between XML Web Services using ASMX and .NET Remoting using SOAP?
--- Web services are generally stateless, using a standard HTTP interface, while remoting is highly customizable and extensible, varying by the specific application that uses it.
Are the type system represented by XmlSchema and the CLS isomorphic?
--- No.
Conceptually, what is the difference between early-binding and late-binding?
--- Early binding determines execution path at compilation, late binding allows for dynamic execution at runtime.
Is using Assembly.Load a static reference or dynamic reference?
--- Dynamic
When would using Assembly.LoadFrom or Assembly.LoadFile be appropriate?
--- When your assembly is not in the GAC.
What is an Asssembly Qualified Name? Is it a filename? How is it different?
--- A type reference qualified by the name of the assembly it is referenced from.
Is this valid? Assembly.Load("foo.dll");
--- No. Assembly.Load(string) takes the full name of the assembly (as contained in the GAC), not the name of the file.
How is a strongly-named assembly different from one that isn’t strongly-named?
--- Strongly-named assemblies can be loaded into the GAC and use key pairs to insure non-collision and authorship verification.
Can DateTimes be null?
--- No. They are structs, not objects.
What is the JIT? What is NGEN? What are limitations and benefits of each?
--- JIT is Just-in-Time compiling, which natively compiles .NET code as it needs to be executed, allowing more flexibility in platform optimization. NGEN is the Native Image Generator, a tool which precompiles native code for assemblies and caches it for execution, pre-empting JIT. NGEN saves time at execution in exchange for potentially slowing execution on platforms other than the one it was originally executed for.
How does the generational garbage collector in the .NET CLR manage object lifetime? What is non-deterministic finalization?
--- The garbage collector defines objects into multiple generations based upon their expected lifecycle, and collects each generation with different frequency. Non-deterministic finalization means that the Finalize() method of objects is not guaranteed to be called as soon as the object falls out of scope; it is executed when the garbage collector has time to prioritize it.
What is the difference between Finalize() and Dispose()?
--- Finalize() is called by the garbage collector before destroying an object, allowing it to clean up resources it may have allocated. Dispose() is a method the programmer can call on an object to force resource deallocation (and pre-empt costly finalization).
How is the using() pattern useful? What is IDisposable? How does it support deterministic finalization?
--- The using() construct allows you to mark a resource which is guaranteed to be disposed when the block exits. IDisposable provides an interface for the Dispose() method, which allows a programmer to forcibly finalize an object while still placing a Finalize() method in it as a means of security in case another programmer neglects to use Dispose().
What does this useful command line do? tasklist /m "mscor*"
--- Allows you to see which processes currently running have loaded a specific library -- in this case, anything beginning with "MSCOR".
What is the difference between in-proc and out-of-proc?
--- In-process communication is that between threads in a particular application space, as defined by the operating system. Out-of-process communication is that between non-shared memory and process spaces.
What technology enables out-of-proc communication in .NET?
--- Serialization
When you’re running a component within ASP.NET, what process is it running within on Windows XP? Windows 2000? Windows 2003?
--- XP & 2003: aspnet_wp.exe, 2000: inetinfo.exe
Senior Developers/Architects
What’s wrong with a line like this? DateTime.Parse(myString);
--- Doesn't specify a locale or format.
What are PDBs? Where must they be located for debugging to work?
--- Program Database files. They contain references that connect the uncompiled code to the compiled code for debugging. They must be located either in the same place as the EXE/DLL, or in your VS.NET specified symbols path.
---
What is cyclomatic complexity and why is it important?
--- It's a measure of the number of independent linearly executed paths through a program. It's important for judging the complexity of software and assisting in determinations of which modules should be refactored into smaller components.
Write a standard lock() plus “double check” to create a critical section around a variable access.
--- bool notLocked = true;
--- if (notLocked)
--- {
--- --- lock (typeof(lockingObject))
--- --- {
--- --- --- if (notLocked)
--- --- --- {
--- --- --- --- notLocked = false;
--- --- --- --- foo = lockingObject;
--- --- --- --- notLocked = true;
--- --- --- }
--- --- }
--- }
What is FullTrust? Do GAC’ed assemblies have FullTrust?
--- FullTrust means all .NET security permissions are granted to the assembly. GAC assemblies have FullTrust by default, but that can be changed by the user's security policy.
What benefit does your code receive if you decorate it with attributes demanding specific Security permissions?
--- Allows administrators to see exactly which permissions your application needs to run; prevents your code from being exploited beyond what permissions it absolutely needs; allows your application to forcibly fail instead of having to manually handle situations where it might be denied permissions it requires.
What does this do? gacutil /l | find /i "Corillian"
--- Lists all assemblies in the GAC, searching for those whose names contain "Corillian".
What does this do? sn -t foo.dll
--- Shows the token for foo.dll.
What ports must be open for DCOM over a firewall? What is the purpose of Port 135?
--- 135 for the service control manager, 1024-65535 (or whatever range the administrator has restricted DCOM to) for applications.
Contrast OOP and SOA. What are tenets of each?
--- OOP tries to encapsulate functionality required to operate on data with the data structure itself, making objects "self-reliant". SOA aims to decouple functionality from data entirely, using interfaces to allow functional components to operate blindly with as little understanding of the precise nature of the data they're fed as possible, allowing many types of data sets to be fed into them for the same operation.
How does the XmlSerializer work? What ACL permissions does a process using it require?
--- Reflects the object and reads its interfaces to serialize them. Requires the .NET ReflectionPermission, obviously.
Why is catch(Exception) almost always a bad idea?
--- Because it swallows an exception without doing anything with it. The only time this should really be used is when trying risky casts that you expect to have a reasonable likelihood of failure, but always of a very specific type.
What is the difference between Debug.Write and Trace.Write? When should each be used?
--- Debug.Write isn't compiled in if the project isn't built with the DEBUG symbol. Trace.Write calls are compiled regardless.
What is the difference between a Debug and Release build? Is there a significant speed difference? Why or why not?
--- Release builds don't contain debug symbols and are more compact and optimized.
Does JITting occur per-assembly or per-method? How does this affect the working set?
--- Per-method. This affects the working set because methods that aren't lined up for calls aren't loaded, reducing its footprint.
Contrast the use of an abstract base class against an interface?
--- Abstract classes can provide implementations for methods and properties. Interfaces only provide required declarations.
What is the difference between a.Equals(b) and a == b?
--- The first uses the object's equivalency constructor to see if it considers itself value-equal to the the second object. The second construct compares their memory references to determine if they are the SAME object.
In the context of a comparison, what is object identity versus object equivalence?
--- Identity means that two references point to the same memory address. Equivalence means that two objects share the same value.
How would one do a deep copy in .NET?
--- Implement the IClonable interface, and define your implementation to execute deep copies on your subobjects (possibly through IClonable interfaces). Alternatively, serialize the object and then deserialize it into another object, but this is very slow compared to a dedicated cloning interface.
Explain current thinking around IClonable.
--- IClonable is preferable to using copy constructors because it is standardized and utilized by other portions of the .NET framework to generate object copies.
What is boxing?
--- Taking a value type and converting it to an object reference. Unboxing is the reverse process.
Is string a value type or a reference type?
--- It's an "illusionary value type" that masks an interface to the System.String reference type.
What is the significance of the "PropertySpecified" pattern used by the XmlSerializer? What problem does it attempt to solve?
--- Defines the specific parameters that .NET class members serialize into. Solves the issue of an XML spec needing to have slightly different names for class members than the class itself does.
Why are out parameters a bad idea in .NET? Are they?
--- Out parameters create uncertainty about the data which may be returned from the function, and permit the caller to potentially pass bad references which your function must validate before using. From a design standpoint, it's more elegant to define a custom class with multiple properties in the event that you need to return multiple values from a single function.
Can attributes be placed on specific parameters to a method? Why is this useful?
--- Yes. This might be needed to specify remoting implementations or types for method parameters, or to provide metadata for method parameters when exporting a code library.
C# Component Developers
Juxtapose the use of override with new. What is shadowing?
--- Override redefines an inherited method which was marked as virtual or abstract, and its access level must be the same as the method it overrides. New allows you to completely hide an inherited member and create a different implementation of it with whatever attributes you choose. Shadowing is another name for disabling an inherited method and redefining it.
Explain the use of virtual, sealed, override, and abstract.
--- Virtual marks a method as overridable. Sealed marks a class as uninheritable. Override redefines a method declared as virtual. Abstract defines a class which cannot be instantiated, or a method which must be overriden in any derived classes.
Explain the importance and use of each component of this string: Foo.Bar, Version=2.0.205.0, Culture=neutral, PublicKeyToken=593777ae2d274679d
--- Assembly name -- used for loading. Assembly version -- also used for loading. Culture -- defines culture settings used for string translation and other locale-specific settings. PublicKeyToken -- used to uniquely identify this assembly and prevent collisions.
Explain the differences between public, protected, private and internal.
--- Public: accessible from any class. Private: accessible only from within the same class. Protected: like private, but derived classes may also access. Internal: like public, but accessible only by code within the same assembly.
What benefit do you get from using a Primary Interop Assembly (PIA)?
--- A PIA is a strongly-named assembly which defines COM interfaces for a component. Because it is strongly-named, it can be loaded into the GAC and verified against the COM component's own signature to give the component collision-protection and authorship-verification benefits when interacing with .NET code.
By what mechanism does NUnit know what methods to test?
--- Reading attributes defined for classes and methods via reflection.
What is the difference between: catch(Exception e){throw e;} and catch(Exception e){throw;}
--- Both statements will catch and throw exception, but the latter will preserve the original exception stack.
---
What is the difference between typeof(foo) and myFoo.GetType()?
--- The first returns the object's type at compile time; the second returns it at runtime.
---
Explain what’s happening in the first constructor: public class c{ public c(string a) : this() {;}; public c() {;} } How is this construct useful?
--- The first constructor invokes the base constructor in addition to its own functionality; this would be useful if your base initialized basic field values or had other code that all other constructors would utilize.
What is this? Can this be used within a static method?
--- The "this" reference refers to the current object context. Static methods have no context, so it is not valid.
TV producer David E. Kelley is thinking of switching to cable to escape all the ads on broadcast television.
LOS ANGELES (Hollywood Reporter) - The creator of Emmy-winning legal drama "Boston Legal" said Tuesday he's concerned about the amount of commercial time on primetime TV shows and raised the possibility of working in cable in the future."If the commercial encroachment becomes worse, it's probably something that we'll all consider," David E. Kelley told reporters during ABC's portion of the Television Critics Assn.'s summer press tour at the Beverly Hilton. He said he has no plans in cable right now.
Kelley said that when he worked on "L.A. Law," there were 48 minutes of show. That has been reduced over the years to a little more than 41 minutes. Kelley said that makes it tougher to create character-driven stories and tell emotional stories, particularly within the five-act structure that sometimes gives only eight minutes between commercial breaks.
Advertisers should really wonder whether or not the sheer quantity of ads is eliminating their effectiveness. Running more ads and charging the same price for each may work well for the broadcasters, but everyone I know with $5 a month to spare has a TiVo and doesn't watch any of them. If there were, say, 5 or 10 minutes of commercials per hour rather than 20 I might not even bother to skip them or flip the channel.
I'm sure advertisers will get smart eventually and realize that they aren't getting the eyeballs they've been promised. Just like newspapers and magazines have been facing scrutiny recently for inflated circulation numbers, it's only a matter of time before television stations are forced to deal with their own deception. Right now the stations are benefitted by poor measuring tools that don't really reveal what people watch and what they skip, but the same technology that currently helps viewers avoid commercials will eventually also pass that information on to the advertisers.
I don't care much about ghetto-style talent shows, but I think this Reverend needs to study some more.
Other critics said that the watermelon eating contest is a painful reminder of racially insensitive stereotypes."Watermelon, back in the days, was a good food for African Americans, according to the Bible, but at the same time, it had an attachment with slavery and bondage ties," the Rev. Carl Johnson said.
Eh, what? I don't recall any references to either watermelons or African Americans in the Bible.
Although the leftist Center for American Progress's recent report about the cost of deporting illegal immigrants is largely based on imaginary and biased calculations, there is one interesting nugget of admission that rightists can latch onto (emphasis mine):
The study estimates that it would cost about $28 billion per year to apprehend illegal immigrants, $6 billion a year to detain them, $500 million for extra beds, $4 billion to secure borders, $2 million to legally process them and $1.6 billion to bus or fly them home.
$4 billion to secure the borders? That's not much at all; let's worry about the rest later and secure the borders right now.
As for the rest of the costs in the study, Representative Tom Tancredo's office had the best response.
Will Adams, a spokesman for Rep. Tom Tancredo (R-Colo.), an outspoken advocate of stronger immigration laws, called the study an "an interesting intellectual exercise" by liberals that is "useless . . . because no one's talking about" employing mass deportation as a tactic."No one's talking about buying planes, trains and automobiles to get them out of the country," Adams said. "The vast number of illegal immigrants are coming for jobs. Congressman Tancredo wants to go after the employers."
Cut off the demand for workers and the supply will dry up.










