

Slashback: Rocketry, Pythonation, Scoffing 335
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?"
The "rocketry" ruling isn't the whole picture (Score:5, Informative)
The space.com article cited was posted March 6; this posting [nar.org] 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 [space-rockets.com] 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.
Re:The "rocketry" ruling isn't the whole picture (Score:5, Informative)
1 - 62.5 grams doesn't lift a lot.
2 - this limit is for shipping to your home
from Rocketryonline.com:
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...):
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:
Re:The "rocketry" ruling isn't the whole picture (Score:3, Insightful)
Re:The "rocketry" ruling isn't the whole picture (Score:2, Insightful)
(Heck, it's not likely even if your model rocket is a GyroJet)
Re:The "rocketry" ruling isn't the whole picture (Score:3, Interesting)
This isn't totally without logic: you can kill a lot more people more quickly with explosives or an airliner than you can with conventional firearms. But firearm acquisition and use ought to be at least as closely monitored as library book usage.
1 2 3 (Score:5, Funny)
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.
Re:1 2 3 (Score:5, Informative)
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 [apogeerockets.com] 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.
Re:1 2 3 (Score:3, Insightful)
2. I really oughta learn Python. I can write straightforward stuff in Perl, but I don't suss the arcana. Just reading the Perl Apocalypse [perl.com] issue mentioned in the recent /. article [slashdot.org] and I realized I don't know squat about Perl. Maybe Python will give me another crack at language uber-mastery.
3. If you have a local retailer, you may still be in business, unless that retailer gets his stuff from his distibutor by air...
Re:1 2 3 (Score:2)
Sheesh, I need to preview better. "There's usually more land than encompasses the security zone.
Re:1 2 3 (Score:3, Interesting)
If you wanna learn Perl, I'd suggest getting the Perl Cookbook and browsing through it. I learn a lot of neat, useful tricks that way. The Camel book (Programming Perl) I think is a bit overrated, at least as a teaching book (which I suppose it isn't, really, but it sort of is, too). It's hard to find some things, and a lot of the examples assume you understand the lauguage as well as the authors do.
Still, *I'm* not giving up my copy anytime soon. So don't flame me for heresy.
Re:1 2 3 (Score:2)
Hell, I've implemented production software by pasting together multiple snippets from the Cookbook. I think I've invested maybe 200 lines of original Perl in all our production and support suite.
Buying the Perl Bookshelf was the best investment our organization ever made, and O'Reilly Press is God.
Re:1 2 3 (Score:3, Interesting)
That worked fine for me until I needed to alter one of the packages from CPAN. The package in question (name withheld to protect the innocent) did 90% of what I needed, and it was extremely well written and well commented, but it just so happened that the 35% of Perl that it used to get the job done did not overlap hardly at all with the 35% that I was used to using. That is where I fell in love with the Camel book, as I kept banging my head against Perlisms that were just plain weird.
In the end, I solved the problem, but I was so sick of Perl that I gave Python a whirl. I rewrote the program in Python in a few days (the tricky bits had already been solved writing it in Perl), and I have never looked back. It is much easier to read someone else's Python than someone else's Perl. Another huge advantage for me (as an Emacs user) is that Python's documentation is available as info files. That's quite a bit nicer (IMHO) than just man files. Of course, the fact that the Python documentation is so good is a bit of a bummer for the folks writing Python books.
Re:1 2 3 (Score:4, Funny)
...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....
Re:1 2 3 (Score:5, Funny)
Re:1 2 3 (Score:2)
The second day, you'll forget all about it, because all you have to do is indend like you'd indent anyway. Ie, what you see IS what you get.
Re:1 2 3 (Score:3, Interesting)
if x < 0: x = 0
Or even two throwaway statements:
if x < 0: x = 0; underflow = 1
But you need to use indending if your true condition follows multiple lines:
if x < 0:
_ x = 0
_ underflow = 1
_ window.messagebox ( "Underflow." )
(_ is used to force an indent)
If you've got a block, and you're NOT indenting, then I certainly wouldn't want you on my programming team :)
(And, yes, this post gives a good demonstration of one of the downsides of python's indenting requirements. My opinion: the upsides outweigh the downsides)
Re:1 2 3 (Score:2)
Personally, I much prefer having the visual structure and 'actual structure' be the same thing, rather than separate concepts as in something like C or perl. The reduction in time debugging programs because of something that looks blocked correctly but isn't, because the {} and indenting mismatch, has been significant. Yes, I appreciate that I could run my C and perl programs though a prettyprinter, but EVERY time a program doesn't work properly? No thanks.
Remember, I'm not saying that this particular feature is a massive boon, only that it's not as significant as a lot of folk make it out to be. When first instroduced to it, I too was turned off by that particular quirk, but after a day, it's second nature. Challenge yourself, surprise yourself... write your next 1000-line project in Python.
Re:1 2 3 (Score:2)
Actually, I shouldn't have said 'whitespace to determine semantics', because that's not correct at all. It's 'INDENTING determines semantics' which is a whole bunch less offensive. Apart from the indenting, whitespace is NOT significant in python.
Re:1 2 3 (Score:3, Informative)
Python also has block redundancies. You must introduce a new block with the ':' syntatic element. If you indent and you don't have that, the parser gives you a SyntaxError exception (A real python exception, too, that you can trap, if you're doing run-time interpretation of code).
Similarly, if you use ':' and you DON'T indent, you'll also get a SyntaxError.
The only exception would be ending a block earlier than anticipated. Ie, you forget to indend the last line of the block (an example that I raised elsewhere). And, that's something that's going to be pretty damn obvious on the screen. Compare that minor gaff with the following gaff common in C
if ( x < 0 );
{
x = 0;
underflow = 1;
}
Which will NOT do what you expect. This situation is not possible in Python (nor in Perl, actually, but I bet you could find a similar 'one character changes the entire meaning' in perl too
what ABOUT lisp/scheme (Score:4, Interesting)
All 9 of you... (Score:5, Funny)
The corner booth at Denny's doesn't need to be reserved in advance, you know.
-B
Prefer Python to Perl? (Score:3, Troll)
What about Tcl? [slashdot.org]
Re:Prefer Python to Perl? (Score:5, Funny)
you must have 1 flame war a week on
pretty obvious, don't you think? (Score:3, Interesting)
Umm.. IANAL, but I would interpret this to mean that they won't use engines larger than that without complying to the new set of laws.
Besides, it's not like you can't use more than one engine per rocket.
Re:pretty obvious, don't you think? (Score:4, Informative)
This will certainly make it hard for the really hardcore of use who use the Solids for first stage boost. The hybrids are prefered for 2nd or 3rd stage int he realyl high power areana.
Re:pretty obvious, don't you think? (Score:5, Insightful)
I feel safer already. Incompetant nitwits.
Rocketboy
Re:pretty obvious, don't you think? (Score:2, Interesting)
Now, if he was smoking thermolite.... well, it would have been an impressive roman candle.
Re:pretty obvious, don't you think? (Score:3, Interesting)
Re:pretty obvious, don't you think? (Score:2)
Mod the Python Story -1 Troll (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.
Re:Mod the Python Story -1 Troll (Score:2, Insightful)
I can see the headline now... (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
Lameness filter encountered. Post aborted! (Score:2)
I'll bet that pun goes over some people's heads.....
Lameness filter encountered. Post aborted!
Reason: Please use fewer 'bad joke' and 'puns'. Try adding some content.
:)
Blockwars [blockwars.com]: a multiplayer head-to-head game similar to Tetris.
Punsters Anonymous.... (Score:2, Funny)
Sorry, Myriad...I just suffered a setback on my road to recovery and a pun-free life. I'll contact my sponsor immediately.
-- Horse_Pheathers, hanging his head slowly and doffing his jaunty jester's cap in shame, taking care to stifle the merry bells on the pointy bits.....
SAFE AT LAST! (Score:4, Funny)
Because now it is impossible for a Terrorist or Open Source contributor to make any weapons! I mean shit, to get 125 grams of powder you would have to cut open two tubes, and that's like, harder than hell to do. Thank you, my precious Government, I will sleep soundly tonight.
Meh (Score:2)
Having said that, is there any terrorist worth his weight that won't be able to figure out a way around this?
Re:Meh (Score:2)
Shoot to kill (Score:5, Insightful)
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.
Re:Shoot to kill (Score:5, Funny)
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-)
Correction (Score:2)
Oops. Los Alamos test site.
Re:Shoot to kill (Score:2)
The last I heard, they never did another trip.
Time to call bullshit (Score:3, Informative)
Python is not just an alternative to Perl. (Score:5, Insightful)
Me? I use bash for one-liners, Perl for ten-liners, and Python for thousand-liners.
Re:Python is not just an alternative to Perl. (Score:5, Informative)
Re:Python is not just an alternative to Perl. (Score:5, Funny)
That's enough for me. Perl it is.
Re:Python is not just an alternative to Perl. (Score:3, Funny)
C++ is a scrawny, bald, naked saint in a loincloth who lives in a crumbling adobe hut where the desert and the jungle meet. He speaks in terse riddles, that expand out into pages of text if you bother to solve them. He can do the work of ten engineers and a hundred strong laborers merely by tapping his staff on the ground and shouting cryptic epithets.
Re:Python is not just an alternative to Perl. (Score:3, Interesting)
So tell me about C++ templates [everything2.com]. In Python, we get generic functions by using dynamic typing, rather than putting a whole 'nother alien Turing-complete language [everything2.com] in the compiler.
For the lurkers: "Generic programming" is the idea that when you make a class to represent a generic data structure -- like, say, a stack -- it should be instantiable as a stack of integers, a stack of strings, or any other particular data type.
In C++, you do generic programming by writing template functions, into which the compiler fills in the types you need. This is basically a fancy sort of preprocessing. However, template syntax is thoroughly alien to the C roots of C++, and as it turns out can be used to do surprisingly maniacal things. See the links above for the curiously shaped results.
In Python, as in Lisp and other dynamically typed languages, generic programming just kinda falls out of the way the language works. If you make a data structure, by default it can hold more or less any type of object. There's actually a limitation in Python here, though. In earlier versions, a lot of data structures, like dictionaries (hash tables), could only hold immutable values as their keys. (Immutables aren't exactly constants -- they're values that can't be edited in place. You can't edit the string value "foo" in Python, any more than you can change what the number 2 means.) Nowadays, any object that implements the protocol for hashability can be used as a key.
Re:Python is not just an alternative to Perl. (Score:3, Funny)
Egads! (Score:3, Informative)
Welcome to Perlandia. Didja bring your toothbrush, toilet paper and asbestos suit?
But seriously, we go back to the whole whitespace thing... I think Python is essentially a "cleaner" language but that just kills it for me. It's not more readable if you're used to block-oriented languages to begin with. Possibly for newbies.
Dunno. I get turned off to think that if I miss a tab somewhere I'll get a compiler error. A brace, sure. But whitespace??
Re:Egads! (Score:3, Interesting)
I didn't like it either, at first. Then I got used to it. Then I really liked it.
In, let's say, C (I don't know Perl very well), an if statement can be followed by a single statement or a block in braces. To, lets say, add debugging information, one has to enclose the statement in braces. In Python, one needs only to add more statements.
Also, the structure of the code is automatically visible, and errors in indentation stick out like a sore thumb. It's much harder to tell with braces. (especially with the optional braces that C has)
If you use Vi, vi displays the tabs with the same number of spaces as Python equates with them (by default, anyway).
The delimiter symbols ({}, [], () ) are reserved for container data structures instead of syntax. {} denotes a dictionary, [] a list (variable length array), and () a tuple (fixed length array; also used for function calls). This makes the syntax for manipulating data structures cleaner and simpler.
I'm not really a newbie (4 or 5 years coding C) at C/C++, but it's still more readable. Instead of adopting coding styles that make it easy to make sure that all our braces match (while throwing away vertical screen space), we should adopt languages that make it not matter.
Re:Egads! (Score:2)
Re:Egads! (Score:2)
There are some cases where it doesn't. ie, if you've forgotten to indend the last like of an IF block, then that line will be excecuted outside of the IF. However, if you just LOOK AT your code, it's bloody obvious what's going on. This is no different than, say, forgetting to put braces after an IF in C, or some other gaff.
-- Used perl, tried python, switched, never looked back.
Re:Egads! (Score:2)
Embedding Python (Score:4, Informative)
Re:Embedding Python (Score:2)
Re:Embedding Python (Score:3, Informative)
T
Re:Embedding Python (Score:3, Insightful)
Re:Embedding Python (Score:3, Interesting)
Shortsighted and foolish... (Score:5, 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.
Re:Shortsighted and foolish... (Score:2, Funny)
Re:Shortsighted and foolish... (Score:3, Insightful)
This is the same situation. They're doing things to make it easier to track down actual criminals now - a law like this will probably do that! - but they are neglecting to notice the probable negative effects down the road.
It's looking more and more like time to move to some other country. I love America, but I fear my government's lack of morality and despise its lack of sense. Or do I have that backwards? I guess it works either way 'round. Of course that raises the question of where to go. Canada is too close to the U.S., if major problems occur it won't be safe, especially considering certain abundant natural resources which they have (wood, mostly) which we have already depleted. If your technological level falls far enough, you're going to need a lot of wood to get anything done. Alaska would be all right since no one will really notice what you're doing up there anyway, but it's still subject to stupid laws. Maybe the best way is just to move someplace totally lawless, at least you'll have a good idea where you stand.
Re:Shortsighted and foolish... (Score:4, Interesting)
Yes, al-Queda did the terrorist thing for mortal revenge because of our treatment of the Afghan freedom fighters after they kicked the USSR's butt on our behalf. You could almost hear Nelson from The Simpsons cry out "Ha-ha", and Bart mutter "Suckers". So you are correct, changing our policy of messing with other people's lives could keep things like September 11 from happening in the future.
On the other hand, Iraq is a completely different situation. With WMD, Saddam has an extortion tool that he can use - cave to his demands, or we lose Cleveland. He wants money, he wants assets un-frozen, he wants us to abandon our support of Israel, and he will want us to sit on our hands when he and his friends invade their neighbors. Don't like it? Lose Miami, too.
So I agree with you that the September 11 bombings were largely our State Department and Presidents' (past and present) fault. But I also (now) see that there is a wealthy, dangerous man fueled by greed that is a truly large problem.
The original post said this:
I'll go one better: the anti-terror junk is such blindingly stupid policy, that I decided to turn off the TV every time I saw George Bush trying to pitch his plan for anything. Literally, if the current administration pitched it, it must be blindingly stupid, so turn it off.
How am I supposed to reconcile the following? Immediately after September 11, George Bush said "If we allow ourselves to get caught up in a life of fear, then the terrorists have already won." Compare that to the Patriot Act, Patriot Act II, TIA, and ... classifying two ounce model rocket engines as explosives.
sigh.
I sure hope George Bush feels like the boy crying wolf right now.
So your basic premise is correct: don't piss them off, and they won't feel the need to hurt you. Unfortunately, being only good + helpful doesn't remove the ability of a career criminal to ply even more of his trade.
For my .sig below, notice its says "jerk" not "criminal."
Efficiency. (Score:4, Interesting)
Re:Efficiency. (Score:2)
How much anthrax or ricin could 62.5 g of propellant carry?
How much could a weather balloon carry?
Brings to mind the story about the kid who did scary radioactive stuff using legal items that contained trace elements of radioactive materials, such as smoke detectors and the wicks from Coleman lanterns.
Look at our major terrorist attacks:
WTC - Box cutters.
Oklahoma City - Manure and fuel.
In other words, where there's a will, there's a way.
For those who find python weird (Score:2, Insightful)
Have a look at Zope or ROX desktop to get an idea of how versatile and easy python can be to get Real Stuff done!
Not to mention bindings for java,
From procedural scripting to high level OO, python has it all.
Oh... the loopholes.... (Score:3, Interesting)
62.5 grams of hydrogen can probably send your rocket a LONG way
They put a limit on propellant. Does the oxydizer get counted in with this weight, or do I get to put all of the liquid O2 that I want?
What about multi-staging rocket engines together? Is that considered one engine?
I wonder if there's a way to re-classify stuff as something other than "propellant". "Well, you see... the payload is a water-vapor dispersal device which creates the vapor by combining hydrogen and oxygen...."
Re:Oh... the loopholes.... (Score:5, Informative)
Python's "vs" issue (Score:5, Insightful)
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.
Actually.... (Score:5, Insightful)
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.
Re:Actually.... (Score:3, Interesting)
Ok, true enough. But I really do notice it particularly in Python users and particularly in terms of venom against Perl. It's one thing to go on and on about how great one's chosen language is, but it's another to have to lash out at something else whenever that other thing is mentioned -- and to bring it up if it hasn't been. This isn't just the case in newsgroups or on slashdot -- I've seen it in a "serious" Python books at the bookstore. Maybe even a majority of them.
Re:Actually.... (Score:2)
I equate it with insecure people's need to lash out at whatever is most popular or mainstream, in an effort to look like they're cool.
Re:Actually.... (Score:2)
Python people, when amongst their own, don't talk about Perl much. But /. is known Perl territory :)
Re:Actually.... (Score:2, Flamebait)
In the end, evangelism to people who don't care is rude no matter what the subject. If someone wants to know why python is better than perl, or vice versa, they can go looking for arguments all over the web.
ISO: Renaissance People (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 [noahgrey.com], 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.
There must be a way to compile.... (Score:2)
If there aren't then I'll be a little zealotish and say that that's one area where Python clearly has an advantage.
Re:Python's "vs" issue (Score:5, 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.
Re:Python's "vs" issue (Score:2)
Wow, I sure didn't say anything like that.
Does typing the parens change the nature of the problem that much?
Nope, but it changes the nature of the *solution*.
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?
Hold on there. Where is this "as you claim" coming from? I said "two of Perl's main strengths", and you then say that I claim something *far* stronger. In that difference, you might find the answer to your question -- and I find a lot of the answer to my question about Python advocates.
(Skipping forward...)
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?"
What's wrong with "It's not really like Perl at all"?
Hmm.... Donut! (Score:3, Funny)
(roommate's friend blurted out that one in passing).
OT :Hmm.... Donut! (Score:2)
- from when Homer went all 3-D and saw donuts/toroids...
I'll be a rebel (Score:3, Informative)
Cool alternative to Perl or Python.
www.REBOL.com
Yeah, Right, my model rocket can do damage (Score:3, Informative)
What makes whitespace so special? (Score:3, Interesting)
Please explain how using whitespace instead of some paired token adds readability, assuming your bracing style is reasonable. To me, having the braces there explicitly shows me that I have a block that starts *here* and ends *here*. Since I use the apparently unique style of having open and close braces in the same column (as opposed to K&R style), I can immedately see the block structure.
That said, I think Python is one of those cool languages I really need to learn some day, as soon as I have a project that I can use it for. And it *is* nice to know that everyone involved at least *has* an indentation policy. I don't suppose you can enforce a tabsize, can you? All the major stylistic wars solved, leaving all you energy available for editor advocacy.
Re:What makes whitespace so special? (Score:4, Funny)
However, it does mean massive tab-vs-space flamefests on comp.lang.python! (I'm a tab-hater myself -- tabs are a total PITA, and only advocated by people with stupid editors or people who don't understand that ASCII is not a form of semantic markup).
Death to spacers! (Score:3, Insightful)
If you use spaces for indention on a large project, you're stuck with that indention forever. Have a programmer with poor vision who needs bigger indention? Fire them. Need to work on a small screen with limited space? Welcome to line wrap hell. Stupid enough to try to change the indention? Watch your multi-line strings explode, and massive deltas thrash your version control system. Whereas if you use tabs and a non-brain-dead editor, it Just Works(TM).
P.S. I'm currently working on a couple of Webware apps and I'm indenting with tabs. MuhuhuHAHAHAHAHA! Tabs forever! ;-)
P.P.S. There is one thing we can agree on: people who mix tabs and spaces should be killed. Slowly. As an example to the other heathens.
Re:Death to spacers! (Score:3, Informative)
Re:What makes whitespace so special? (Score:3, Informative)
I also indent properly everywhere.
In Python I just don't have to do the braces, and it's really really nice
Re: Examples of Python in action (Score:2, Funny)
Really good example of Python in action (Score:3, Informative)
Plone is Python scripts and other bits running on top of Zope, a web application server written in Python.
Of course there's also examples of Python being used on the desktop, but as a web application, Plone (and of course Zope) are worth a good hard look. To some extent, Zope can be considered the 'killer app' for the Python language.
What ever happened to REH ??? (Score:2, Informative)
I first found about it hearing Bob Lazar on Art Bell.
These guys were into some seriously whacked stuff.
I would browse and dream of going to the desert one day to see them cut cars in two with Rolls Royce jet engines, hook V1 type engines to Vespa Scooters, and other insane stuff.
I guess all good things must come to an end.
Now I am relegated down to the Pumpkin Chunkin and Trebuchet sites....
A Thousand Points of Light (Score:2)
VB (Score:3, Funny)
Examples of Python in action: 0, 1, 2, 3, 4, 5, 6, 7"
And for those Visual Basic programmers confused by that sentence, here is a translation just for you:
Examples of Python in action: 1, 2, 3, 4, 5, 6, 7, 8
Re:Whitespace BAD, Mkay... (Score:5, Informative)
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.
Re:Whitespace BAD, Mkay... (Score:4, Insightful)
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.
Re:Whitespace BAD, Mkay... (Score:2)
No, I'm not. My editor does a fine job of keeping track of such tedious details for me. (At least when I'm working in C/C++/Java/Perl/Tcl/Lisp/etc.) Of course, my editor also does a fairly good job of handling proper indentation for python too; in effect, I use TAB and BS as my block delimiters, and it all mostly just works.
Basically, with C/Perl/whatever, if my indenting is messed up, then I know my block delimiters are messed up somewhere, so I look, and fix the problem. With python, if my indenting is messed up, then I know my indenting is messed up somewhere, so I look and fix the problem. It can be a little more tedious to fix in python sometimes, since the editor can't just automatically re-indent the section properly, but most of the time (say, 99.9%), it's just a matter of sliding a chuck of code left or right, which is no problem.
What I think it boils down to is: if you're using decent tools, python is really neither better nor worse (as far as the whole indent/whitespace matter is concerned) -- merely different. As with many technical matters, this one is given far too much importance both by python's fans and its detractors.
with no explicit block delimiters in the language, you can no longer use % to jump betwen block start/endpoints in vi.
Yup. Although I'd like to say that anyone using vi for programming should be beaten severely until they switch to vim!
Re:Whitespace not BAD, Mkay... (Score:5, Informative)
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.
Re:those gov't hacks can suck it hard (Score:5, Informative)
Re:those gov't hacks can suck it hard (Score:2, Interesting)
Re:those gov't hacks can suck it hard (Score:2)
It does if that's where you're launching them from, as the original poster indicated he was. You need a certain amount of clear space to do this safely, and the amount of space you need increases with the potential altitude of the rocket. It would require a very large backyard indeed to safely launch a rocket powered by an H engine.
Frankly, I have little sympathy for the complaint here. When I got into model rocketry about 30 years ago as a kid growing up in New Jersey, you needed a state-issued permit to purchase even the smaller Estes engines. (And this permit could only be issued to an adult, so my dad had to apply for it and buy all my engines for me.) A background check is something almost anyone who gets a mission-critical tech job has to undergo these days, I don't see the prospect of fingerprinting deterring many people from getting drivers' licenses, and a $25 fee isn't very large considering the other expenses associated with a hobby like model rocketry. This is simply not a level of intrusiveness we find objectionable in many other contexts.
And if you think they don't tax sex already, you've obviously never applied for a marriage license...
Re:How long do engines last? (Score:4, Interesting)
Re:Engine sizes (Score:3, Interesting)
Note: each motor class upward doubles the maxium total impulse of the previous class (letter designation), therefore an E class motor has between 20.1 - 40 N-s, F 40.1 - 80 N-s, G 80.1 - 160 N-s, etc.
Of course any second-grader can figure out that it only takes three motors to exceed the single motor propellant mass limit.
BTW, Estes typically packages the motors in three's.
Hmm... which is the stronger signal to the ATF, trying to buy 40 kg of black powder, or 1,800 D12 rocket motors?!?
As for getting back into model rocketry, go for it! I was away from rockets for over 20 years and got back into it when my kids were old enough to start building and flying them. Plus, you get to say great one-liners at parties like: "Actually, I am a rocket scientist."