Slashdot Mirror


Slashback: Rocketry, Pythonation, Scoffing

Slashback tonight brings a few followups to recent Slashdot postings on the fate of model rocketry in the new, hypercautious America; a few Python gatherings for those who prefer that language to Perl; and a response from Los Alamos to recent claims of lax security. Enjoy!

Besides which, it's the hidden cameras that matter. An anonymous reader adds this followup to the story posted last month about Wired reporter Noah Shachtman's account of sneaking into classified areas at Los Alamos national Laboratory.

"In an email message to all Los Alamos National Laboratory employees, Pete Nanos, the current Director of LANL, responded with information suggesting that the Wired reporter who thought he had broken in to a 'top secret area' had in fact just crossed a cattle fence:

'The Wired reporter clearly did not enter a Laboratory security area. The Laboratory encompasses more than 40 square miles. The security force protects important assets within those boundaries but cannot -- and does not -- protect every square foot of property. Based on the article, it appears the reporter crossed a barbed-wire cattle fence, not a fence that protects a Los Alamos security area.
There is a small security area with several buildings (roughly 400 feet by 400 feet) near the driveway entrance to TA-33. That area is surrounded by a seven-foot-high chain-link fence topped with three strands of barbed wire. A security guard is stationed inside that area seven days a week and 24 hours a day. Clearly, the reporter did not climb that fence.
There are several other buildings outside the security area that are locked for property protection interests. They have no security interests. There are several gates and fenced areas on the TA-33 site, which are there for safety access control, not security.
It's unlikely the reporter would be prosecuted for trespassing; the Laboratory does not have law enforcement authority to prosecute, and none of the proper authorities witnessed the trespass.'"

Perhaps we can have a celebrity deathmatch. hfastedge writes "Ok, now that 2 perl conferences have been mentioned, I've been brought over the edge. Python is a language that is just as old, and arguably better from: most importantly a uniform standard of readability (enforced by using whitespace to delimit blocks (instead of {}), by avoiding overuse of cryptic symbols, and by a culture that strives to keep innovations as "pythonic"), and a rich development community. Anyway, normally, there are Python events in Europe, and a trail at O'Reilly's OSCON. But now, there is a far cheaper event taking place on March 24-28 in Washington DC: http://python.org/pycon/.

Examples of Python in action: 0, 1, 2, 3, 4, 5, 6, 7"

Fly up go phhhhhwwwtttpffffff .... MyNameIsFred writes "Slashdot recently discussed whether anti-terrorism laws would destroy model rocketry. The government has ruled, and the message is clear, "When it comes to the hobby of model rocketry, size does matter. And in this case, the magic number is 62.5 grams. That's the largest amount of propellant a single model rocket engine can have in it and still be exempt from a new set of federal rules that will go into effect May 24." What does this mean for the the big guys in model rocketry, who use engines larger than this?"

28 of 333 comments (clear)

  1. The "rocketry" ruling isn't the whole picture by elflet · · Score: 5, Informative

    The space.com article cited was posted March 6; this posting from the National Association of Rocketry points out the BATF hasn't made it clear whether the regulations will apply to materials already on hand.

    Also, this is part of a dispute that's been going on for years then be BATF decided to designate Ammonium Perchlorate Composite Propellant (the same fuel used in the Space Shuttle's SRBs) as an "explosive". The 62.5 gram limit was proposed as a compromise measure by the NAR to a flat-out banning of all APCP engines. This way, people could still enter into the higher-power forms of rocketry without dealing with the BATF's arcane regulations and uneven enforcement.

    Then came the Homeland Security act and black powder (gunpowder, a/k/a "BP") engines were added to that list of "explosives", causing FedEx and UPS to ultimately refuse to carry them. There's still a bill pending in Congress to make a "technical correction" to remove black powder motors from that list. It's the subject of a phone and FAX compaign to garner support.

    Would removing black powder from the 62.5 gram limit mean we see huge BP motors? Not likely, as the thrust/weight efficiency of BP is low enough not to make that a viable trade-off.

    1. Re:The "rocketry" ruling isn't the whole picture by Anonymous Coward · · Score: 5, Informative
      re: Model rocketry

      1 - 62.5 grams doesn't lift a lot.

      2 - this limit is for shipping to your home

      from Rocketryonline.com:

      "Emergency Revision to DOT-E 10996 Exemption Granted

      The U.S. Department of Transportation (DOT) has just granted AeroTech an emergency revision
      to DOT exemption DOT- E 10996 that allows the shipment of articles covered by the exemption
      (certain rocket motors and reload kits normally classified as division 1.3C explosives) by cargo
      aircraft, in addition to the previous authorized modes of transportation (motor vehicle and rail freight).
      This revision gives manufacturers and dealers one more option of transportation in light of the
      recent shipping consequences of the Homeland Security Act.

      Eleven other entities are currently parties to DOT-E 10996.

      An unexpected bonus of the revision is the DOT's decision to eliminate the 99 lb. net propellant
      weight per vehicle restriction placed on previous versions of the exemption!

      Many thanks to the DOT Exemptions Branch for granting the revision in a most expeditious manner!"


      3 - storing or shipping larger quanitities of propellants( >62.5gms ) require(at least, there's likely more, but I never wanted to be a distributor, so...):

      a - certification from the NAR or TRA(class 1, 2, 3)
      this is simimilar to the pyrotechnic licence; you must pass a written test
      and fly a "model" with propellant appropriate for that class under supervision, test/fly to gain each class
      b - BATF LEUP(Low Explosive Users Permit)
      c - BATF approved(inspected) Explosives Magazine


      4 - AP is incorrectly classified as an explosive, AP burns(smokes) at normal(ground level or higher)
      pressures; it is a propellant when you burn it in an enclosed space and build chamber pressure.

      5 - there are more details to be found at:

      http://www.nar.org
      http://www.tripoli.org
      http ://www.rrs.org
      http://www.asesur.com/prs/
      http:/ /www.rocketryonline.com
      http://www.space-rockets. com/congress.html

  2. 1 2 3 by ObviousGuy · · Score: 5, Funny

    1. Don't break into gov't installations. Tresspassing onto a cattle rancher's property may get you shot. Tresspassing onto gov't property will get you shot.

    2. Python. Not as old as Perl.

    3. Rockets. It's a problem of shipping the propellant. If you carry the boosters yourself, you're okay. You just can't ship them.

    --
    I have been pwned because my /. password was too easy to guess.
    1. Re:1 2 3 by elflet · · Score: 4, Informative
      Rockets. It's a problem of shipping the propellant. If you carry the boosters yourself, you're okay. You just can't ship them.

      That depends on where you live and how you're travelling. You can't take the morors on an airplane, for example (this has been true for years), but driving is OK. Also, there are small composite motors that are below the 62.5 gram limit but have not been certified in all states (e.g. California) and thus are not legal to posess in those states.

      It's a shame -- I'd love to use some of the mini-composite motors -- they have serious lift for their weight.

    2. Re:1 2 3 by Mr.+Slippery · · Score: 4, Funny
      For the rest of us who live in the larger set consisting of the intersection of people who want to get work done and the set of people who want to write code that other people have a prayer of maintaining, Python fits the bill.

      ...minus the set of us who realize that any language that makes whitespace syntactically significant should be taken out and shot. Yeah, I really enjoyed that idea when I was forced to work in Fortran for a college class, and it's certainly a joy when dealing with makefiles.

      Really. The only explanation I can come up with for a decision like that is drugs. Really bad drugs....

      --
      Tom Swiss | the infamous tms | my blog
      You cannot wash away blood with blood
    3. Re:1 2 3 by Tyler+Eaves · · Score: 4, Funny

      Note the complete lack of any "Obfuscated Python" contest. Draw your own conclusions.

      --
      TODO: Something witty here...
  3. what ABOUT lisp/scheme by banka · · Score: 4, Interesting

    the linked article also mentions lisp/scheme - why haven't us schemers gotten together yet to celebrate its sweetness???

  4. Mod the Python Story -1 Troll by kalidasa · · Score: 5, Funny

    Test: a Python story is a troll if it mentions Perl. Likewise, a Perl story is a troll if it mentions Python.

    Substitute "vi" and "emacs" for "python" and "perl" and rerun.

  5. Re:Prefer Python to Perl? by geekoid · · Score: 4, Funny

    you don't count.

    you must have 1 flame war a week on /. just to be considered a real non-language. ;)

    --
    The Kruger Dunning explains most post on /. http://en.wikipedia.org/wiki/Dunning%E2%80%93Kruger_effect
  6. I can see the headline now... by horse_pheathers · · Score: 5, Funny

    I can see the headline now:
    "Model Rocketry Enthusiasts' Hobby Goes Up in Smoke...."

    I'll bet that pun goes over some people's heads.....

    -- Horse_Pheathers

  7. Shoot to kill by The+Bungi · · Score: 4, Insightful
    Clearly, the reporter did not climb that fence. [...] It's unlikely the reporter would be prosecuted for trespassing; the Laboratory does not have law enforcement authority to prosecute, and none of the proper authorities witnessed the trespass

    I was the impression (probably because of one of those feverish Discovery marathons I tend to engage in when I get tired of coding) that the nice folks who guard US installations that contain either nuclear weapons of nuclear materials are allowed under federal mandate to shoot to kill. In fact that's what the warning messages posted along the fences of those facilities read - "lethal force authorized" or some such.

    If that's the case Mr. Wired there (let's uncover the government's stupidity, for liberals everywhere!) was lucky he just stepped on some cow dung, as opposed to getting a 5.56 round in the chest.

    1. Re:Shoot to kill by Ungrounded+Lightning · · Score: 4, Funny

      I was the impression (probably because of one of those feverish Discovery marathons I tend to engage in when I get tired of coding) that the nice folks who guard US installations that contain either nuclear weapons of nuclear materials are allowed under federal mandate to shoot to kill.

      A former boss of mine once did a project at Lawrence Livermore, upgrading some of the remote detectors from '50s era electronics to more modern stuff. He told me his (Q?) clearance came up for renewal about a week before project completion. Rather than go to the trouble to renew it for that duration they fell back on an alternate waiver procedure.

      As a result, all the while he was working on site there was an armed guard (uniformed military) about two paces away from him. The armed guard, continuously, had his left hand on his holstered pistol, his right hand extended (to fend off my ex-boss should he suddenly attack, giving him time to draw the pistol), and kept his eyes on my ex-boss constantly.

      For > 8 hours per day.

      My ex-boss had had it explained that, if the guard killed him - even due to halucinating an attack - he would NOT be brought up on charges, while if the guard DIDN'T shoot him in case of trouble he WOULD be brought up on charges. And that the guard knew this.

      Needless to say this was a very stressful environment. And he did his best to finish the project before the guard decided to relieve the cramp in his right arm by plugging him. B-)

      --
      Bantam Dominique roosters crow a four-note song. Once you've heard it as "Happy BIRTHday" you can't NOT hear it that way
  8. Python is not just an alternative to Perl. by Frater+219 · · Score: 4, Insightful
    I like Python. I also like Perl. I think it's rather silly that people read these two as mutually exclusive. Both languages have their strengths.
    • Perl is fast. There's no two ways about it -- Perl's code base has pretty obviously been heavily optimized, and programs written in it tend to be amazingly fast, especially considering that they are being bytecode-compiled rather than compiled to native code.
    • Python is more readable. Past a certain degree of complexity of operations, Perl code starts to look like noise; Python code doesn't. Perl mongers tout the expressiveness of their language, but Pythonistas note theirs' readability.
    • Perl is amazing for quick 'n dirty text processing. I wouldn't think of using Python when what I want to do is translate among document formats. That is Perl's native land -- where it ably and easily supplanted earlier Unix tools such as sed and awk, and remains in the forefront.
    • Python deals better with complicated data structures. Ever read the perllol manpage? When you start to deal with nested structures in Perl, you have to play silly buggers with references, and if you do the wrong thing, you get ARRAY(0x6590) instead of your data. Python copes sanely with complex expressions and never gives you nonsense like that.
    • Both Python and Perl have lots of modules handy. CPAN is hugely impressive. So is the Python standard library.
    • Both Python and Perl speak the Web's languages fluently. The fact that both are embeddable as Apache modules (mod_perl and mod_python) should say enough -- but both can also parse HTML, XML, or what-have-you.
    • Perl is great on the command line. There are so many ideas in text transformation that can be expressed in a single line of Perl -- no need to comment it, it's just a one-liner! -- and that can be quickly put to use in ordinary systems administration via perl -e.
    • Python is great on the interactive top-level. Need to debug a Python module? Start Python in interactive mode, import the module, and start introspecting.
    • Perl has plenty of room for your own style. This is a language whose possible syntax is huger than anyone has bothered to describe. If you learn it intimately, you can say exactly what you want in a minimum of bytes. There's a reason Perl fans like one-liners: the language is perfect for them.
    • Python makes modularity and object-orientation make sense. In Perl, OOP is kind of a bag on the side, an extra feature tossed in to make modules easier to use. In Java, OOP is a Soviet political officer constantly intruding in your work and making sure you comply with the Party's way of doing things. In Python, OOP is just the way things work: everything's an object and it just makes sense.

    Me? I use bash for one-liners, Perl for ten-liners, and Python for thousand-liners.

    1. Re:Python is not just an alternative to Perl. by Bishop · · Score: 4, Informative

      Eric S. Raymond has written one of the better Python advocacy articles. His experiences with Python are similar to Frater's. Python has replaced C as my general purpose language of choice.

    2. Re:Python is not just an alternative to Perl. by Anonymous Coward · · Score: 5, Funny
      Eric S. Raymond has written one of the better Python advocacy articles.

      That's enough for me. Perl it is.

  9. Re:Whitespace BAD, Mkay... by pnatural · · Score: 4, Informative

    I'll bite, troll!

    We will perhaps eventually be writing only small modules which are identified by name as they are used to build larger ones, so that devices like indentation, rather than delimiters, might become feasible for expressing local structure in the source language.

    --Donald E. Knuth, "Structured Programming with goto Statements", Computing Surveys, Vol 6 No 4, Dec. 1974

    Or put more simply: Free your mind, and your code will follow.

  10. Shortsighted and foolish... by GeneralEmergency · · Score: 4, Interesting
    .


    Placing restrictions upon any technology hobby in the name of "combating terrorism" is folly of the highest order and constitutes blindingly stupid public policy.

    We face a future where people who hate us because of our freedoms can and will attack us at will with amazingly ordinary implements used in novel ways. Without marching out into the world and killing all of these people "pre-emptively", our only realistic option is to improve our remote sensing (intelligence) technologies to find them before they become real, active threats. But developing these technologies is real hard work, involving cutting edge sciences and technologies... and having the largest possible national crop of young people exited about science is absolutely essential to our future national security.

    I am a software engineer today BECAUSE of my early experiences with model rocketry and model airplanes and because they taught me how things worked and fired my imagination about what could be possible in the future.

    We've heard NASA lament lately about how hard it is becoming to find qualified graduates to staff even entry level engineering and science positions. Public policies that throttle modeling technology hobbies will only exacerbate this problem into the future and good people will die needlessly as a result.

    --
    "A microprocessor... is a terrible thing to waste." --
    GeneralEmergency
  11. Re:those gov't hacks can suck it hard by CaptainCarrot · · Score: 4, Informative

    I shouldn't feed the troll, but RTFA anyway. Unless your backyard is on the order of a square mile in size, the model rockets you're most probably launching from it aren't covered by the new regulations. Engine sizes A through D are well under the 62.5 gm limit. You need to be using size G engines before you run into a problem, but you need a considerably larger field than the average backyard to launch anything that would require them.

    --
    And the brethren went away edified.
  12. Python's "vs" issue by mattdm · · Score: 4, Insightful

    I find it very interesting that so many Python users are so bitter about Perl, and so antagonistic. In fact, it was one of the things that kept me from even bothering to look at Python for a long time -- all of the Python advocates come across like a bunch of jerks. When I did get around to looking, I found that it's a nice, interesting, and useful language -- that doesn't really compare to or compete with Perl in a meaningful way at all.

    Two of Perl's main strengths are 1) CPAN and 2) regular expressions integrated naturally into the language. Python's libraries are pretty good, and there's a lot of good stuff out there, but with Perl, I can pretty much count on 99% of anything I want to do having been done already. And sure, Python can "do" regular expressions -- in approximately the same way that one can do them in C or Java, by making a series of function calls.

    At least on the second of these points, Python isn't even in the same *business* as Perl. There's just flat out no meaningful comparision. Python has *a lot* of strengths, but they're totally different from Perl's. So why do Python advocates get so worked up about something their preferred language fundamentally isn't designed to do? Why don't they raise a big stink every time someone mentions Java? That seems like a more usefully-comparible application space. Or C++, for that matter.

    1. Re:Python's "vs" issue by smallpaul · · Score: 4, Insightful

      At least on the second of these points, Python isn't even in the same *business* as Perl. There's just flat out no meaningful comparision.

      I find it kind of odd that you think that a language with regular expressions in the syntax and one without cannot in general be used to solve the same kinds of problems. Does typing the parens change the nature of the problem that much?

      But more to the point, if Perl's raison d'etre is built-in regular expressions (as you claim) then why is it used for (e.g.) SlashCode. What about building a large weblog community is regular-expression-centric? The vast majority of sizable Perl programs have very little to do with regular expressions.

      Python has *a lot* of strengths, but they're totally different from Perl's. So why do Python advocates get so worked up about something their preferred language fundamentally isn't designed to do?

      There was a period in the mid-90s when it was very common to be forced to write Perl because there was just some Perl code around that had to be maintained. The liklihood of this happening to an individual is proportional to the popularity of Perl. If Perl ceases to be popular then there won't be that much Perl code laying around to be maintained. Just today I was scrounging around in some open source scruffy Perl code that could have been better written in Python. That's the argument from self-interest.

      The argument from emotion is that the popularity of Perl rather offends people's sense of competition between technologies being on the basis of quality rather than luck or marketing...in somewhat of the same way that it is typical to be annoyed at the popularity of IIS on Windows 2000 Server. In a sense, Perl is symbolimatic for some people of the less admirable qualities of our industry. What if the "Perl Aesthetic" (which discounts the importance of cleanliness and orthogonality) was to become the norm in other areas of our business?

      Why don't they raise a big stink every time someone mentions Java? That seems like a more usefully-comparible application space. Or C++, for that matter.

      Well for one thing, Python interoperates really well with Java and C++. So every line of Java and C++ out there can be construed as bolstering the argument for adding Python to the mix a a glue language. Whereas it is very rare to take a large Perl system and say: "let's bolt on some Python to provide a high level interface to this thing." For another thing, the liklihood of Python replacing Java and C++ in the hearts and minds of corporate application developers is quite slim. (especially considering the performance issues) But Python really could replace Perl for everything but 1-liners.

      But the most important reason Python users trash Perl is because the first question a newbie asks on hearing about Python, an object oriented scripting language is: "How is it different than Perl?" It is rare for people to ask how it compares to Java or C++ because typically they are expecting Python to complement or extend systems built in Java or C++. If there were a clear consensus out there about when to use Python and when to use Perl then there would be little anti-Perl sentiment in the Python community. But saying that "Perl has built-in regular expressions" is not the same as providing a guideline for when it is better to use Perl than Python or vice versa.

  13. Re:Whitespace BAD, Mkay... by Anonymous Coward · · Score: 4, Insightful
    i thought pretty much the same thing, until i actually tried writing some python. takes about 20 minutes of hacking out some code of your own, then you no longer notice the whole whitespace thing at all. give it a whirl - after all, you're already indenting your code properly, right? well, writing python is just like that, except you don't bother with the curly braces. that's the whole difference.

    code-writing code is a special case not worth optimizing for. by far most of the code that actually matters (including, most especially, any and all code-writing code) is written by humans, so naturally languages should be optimized for readability to humans rather than ease of printing by machines. but that goes without saying; if it were ever otherwise, we'd all still be writing machine code directly.

    and other than that one special case, your entire argument would seem to rest on... um, nothing whatsoever. except your own personal dislike, which you're welcome to and which is perfectly valid - but it doesn't prove anything to anybody other than yourself.

    now, that's not to say this feature of python's is all good and wonderful. there's one big backdraw to it, which i can't make any excuses for - with no explicit block delimiters in the language, you can no longer use % to jump betwen block start/endpoints in vi. that, i do miss when coding python.

  14. Re:pretty obvious, don't you think? by Rocketboy · · Score: 4, Insightful

    The 62.5 gram restriction has been a fact of life for high-power rockets for years and we've learned to live with it under the former set of regulations. The current problem is that since BATF has classified the AP propellant as an explosive, anyone who touches it in the transport chain from manufacturer to end user has to have been trained, had a background check, etc. UPS, FedEx and the US Postal Service are *not* going to do that for tens of thousands of package handling and delivery people, any one of whom *might* touch a package of rocket motors at some time during their working lives. They just won't allow anyone to ship the stuff. We'll be able to legally make and use the stuff but we won't be able to ship it from the manufacturer to the end-user. This is not helpful. Worse, since AP won't explode and can't be made to explode no matter how hard you try (despite BATF's classification as an explosive,) we won't be any safer from 'terrorists' than we were before. Regulation for regulation's sake, not for any reasonable purpose.

    I feel safer already. Incompetant nitwits.

    Rocketboy

  15. Re:Whitespace not BAD, Mkay... by ChadN · · Score: 4, Informative

    Python is distributed with a script (pindent.py) which can take normal python code and package it in block delimiting comments. So, one could output code without proper whitespace (and with proper comment delimiters), and have it easily 'whitespaced' before execution.

    The pindent.py module also contains the class (PythonIndenter) which does the work, making it easy to incorporate in a Python program which is processing other python code.

    There are also tools in the standard library to help properly generate python code directly.

    In practice, it just isn't a problem.

    --
    "It's overkill, of course. But you can never have too much overkill." - Anonymous Slashdot Coward
  16. All 9 of you... by Wee · · Score: 4, Funny
    the linked article also mentions lisp/scheme - why haven't us schemers gotten together yet to celebrate its sweetness???

    The corner booth at Denny's doesn't need to be reserved in advance, you know.

    :-)

    -B

    --

    Ash and Hickory, straight-grained and true, make excellent bludgeons, dandy for the cudgeling of vegetarians.

  17. Actually.... by Fencepost · · Score: 4, Insightful
    Most Python users fall into one of three camps:
    • Used Perl, tried Python, liked it better and switched
    • Used Perl, tried Python, found it better for some things, use both
    • Never used Perl, don't care about it
    I left out "Used Python, tried Perl, switched" because Perl's better-known and there are fewer people who started with Python. Besides folks who did that arguably don't qualify as Python users anymore.

    There's a small subset of folks (most of whom really need to get a life and a few who are probably doing it for entertainment reasons) who publicly get really worked up about the superiority of Python. Similarly, in the Linux community there's a similar group of folks who get really worked up about Ruby. Remarkably enough, in the Perl community there is (wait for it) a similar group of folks who get really worked up about Perl. Some other products/projects with their own little fanatical subgroups: vi, emacs, Macs, FreeBSD, OpenBSD (and don't confuse the two!) and probably skript-kiddie toolsets.

    The common feature that most of these folks share is that as far as the rest of us are concerned they need to get a life. I have no doubt that there are other shared behaviors within these groups, but if I went into those it could seem that I was just being nasty.

    --
    fencepost
    just a little off
  18. Re:Oh... the loopholes.... by Sooner+Boomer · · Score: 5, Informative

    The restrictions are for *specific* chemicals - Ammonium Perchlorate Composite Propellant (APCP) and Black Powder. The propellants are combinations of fuel and oxidizers. The restrictions are limits for ONE engine. Engines may be clustered or staged for greater combined impulse. There are still alternatives such as hybrid systems (which use nitrous oxide and a solid material such as cellulose).

    --
    Chaos maximizes locally around me.
  19. Re:How long do engines last? by Sooner+Boomer · · Score: 4, Interesting

    Are they still "good"? Probably. Are they still safe? If they have been kept from any temperature and humidity extreems - probably. Are they legal to use in a sanctioned (NAR sponsored) launch? No, engines (and reload kits) have a specific expiration date. However they can still be used in a non-sanctioned just-for-fun type launch. Sunday I used an engine dating back to the mid-70's and it worked flawlessly. The engine (a Centauri B14-0) has not even been made for many years.

    --
    Chaos maximizes locally around me.
  20. ISO: Renaissance People by halfgeek · · Score: 5, Interesting

    I like to think that while the zealots are trying to make themselves heard, the important people are behind the scenes doing the important things. Any loudmouth shouting on behalf of any language should remember that the people who love the language most are working tirelessly to change it for the better. Read Larry Wall's Apocalypses and see if I'm kidding--and pay particular attention to the part where he destroys the regular expression as we know it. :-)

    I also like to think that the really hardcore programmers out there aren't wasting their time arguing about what language is superior or whining about what you can do in one environment that you can't in another. Real programmers are too busy getting things working, by any means necessary, within the boundaries of the environment. If you are a true programmer, an environment works as well as you force it to work.

    I'm very comfortable in GNU now, Linux, Cygwin, and then some, but it wasn't always so. A few years ago, being a Windows only type and knowing no C or C++, I used to work with Visual Basic a lot. When I found out that Perl worked better for about everything I had been using VB for, I switched. When I couldn't figure out how to do SendKeys or AppActivate using Perl and Win32 API calls, did I spend time griping? No! I wrote an ActiveX DLL, figured out enough C to get COM going, and SWIGged it together.

    Slightly more recently, I wrote a parser in Perl to implement a workaround to various shortcomings in Greymatter, but I had to make it work with PHP, in which the entire rest of my site was written (because it's way easier to write a page in PHP than in Perl). Was it any problem? No. For the prototype, I had PHP exec my Perl. Was it messy? Yes! Eventually, when I had the time, I rewrote the parser from top to bottom in PHP.

    There's no need to be religious about any of this. If you have the option to use the environment of your choice, by all means, use it! But if you are forced to work outside your boundaries, remember, you are a programmer; you can take it. Plus, the last thing you want to do is take out your frustrations on the masters of the unknown domain.

    I write programs all the time that my friends want to try but won't because ActivePerl is 12MB to download. I'm not going to scream at my friends for not having Perl; they just can't use my program. If it's worth my time, I may go to the trouble of rewriting in C++. If it pays enough, I might even spring for Perl2EXE to do the work for me.

    It's as simple as that. There's always some solution. You write for your environment. You try to convince your client to deploy programming environment N or virtual machine V on all the workstations; if that's a no go, you do something else that is a go--if that's not practical, you lose the sale.

    At this point, I know most of what I need to know to get by in Perl, PHP, JavaScript, C, and C++, and maybe a little VB if I search my memory far enough, and I do virtually all my writing in vim (within which, I admit, I don't know every single command that might be of use to me). If somebody needs me to write something in Python, or Java, or Tcl, or Lisp, or JScript on Windows Scripting Host, or any other wacky thing with which I'm not in constant contact, and makes me do it in Emacs or Pico or even Notepad, damn it, should I back down? Hell, no!

    First, I try my obviously overdeveloped shoehorning skills! (It's amazing how many different ways you can find to get incongruous program environments to communicate!) :-D

    If that doesn't work, then I owe it to myself to take a serious look at what this environment can do, what it can do right, and what I have to work around. Then, I do my work and move on with my life.

    I believe that this is a vital part of what is necessary to be a bona fide Renaissance Programmer, and that most programmers who don't feel the same have no business programming.