02 August, 2009

Supersonic airflows revisited

Today I built an airframe capable of supersonic flight in x-plane, powered by a model representative of what a hybrid rocket would be. There were a lot of complications. The standard "tomahawk" configuration (of which I've actually found a not-to-scale and not-even-accurate, but nonetheless useful model of) fares very, very poorly.

I am beginning to understand Burt Rutan's approach. Basically, he lights the rocket and stands it on a 90° AoA (α), but it's not clear that SSO is actually hitting supersonic as it climbs out of the atmosphere. On the way back in, it is. That much is clear. However, it comes back down producing so much drag that it slows immediately to subsonic flight, the feather is "defeathered," and the plane resumes flight as any glider would. As the NASA orbiters have, in fact, for decades.

Airframe after airframe, I would get to the point with rocket motors (supersonic flight is a lot easier with turbofans, incidentally, because the progression is a lot slower and you can always just ease off. Rockets are not good with throttle.) where the craft went supersonic and all of a sudden my control surfaces were worthless. I had violent side-to-side shaking, up-and-down shaking, it seemed like it wanted to stall – and bear in mind this is a still accelerating rocket – and the only way I found to manage supersonic flight with control surfaces was to have at least two sets of horizontal surfaces (wings) as well as a set of rear stabilizers. I also borrowed the Su-37 concept of the ventral (cf. dorsal) vertical control surfaces, and threw a pair of them down there like the Russians have. When I let X-Plane do a lot of the automatic handling of the frantic roll and pitch (basically, I guess flaps and aielerons don't do so good at supersonic speeds, or don't work how I'd expect them to), and I developed a really light touch for pitch and rudder, the plane actually sorted itself out, and I survived a flight. But this is with front canards that almost counteract the main wing bodies, pitching the nose down because the rear, for some reason, wants to go down (I guess when you stomp on the gas maybe this is weight transfer or something similar?), while the flaps extend, and the lower (ventral) "vertical" control surfaces act as both elevons (which is weird, given their configuration and speed brakes.

And, in the end, you wind up with something that looks, not real surprisingly, a lot like something Burt Rutan would build. Lotsa wing. It would never really work in practice with a hybrid motor, of course. They're pretty all-or-nothing, so you can't say "Let's take off from DCA at 8% throttle, work our way up to 35,000 feet and then pour on the throttle until we're wide open at 55,000 feet." Having all that wing (those front canards have a wingspan of eight feet; the wings twenty-four) under full thrust down here where the atmosphere is treacherous would have ripped it to shreds.


As a matter of fact, I thought that's what X-Plane was trying to tell me when I finally got up to full throttle and the "transsonic" indicator started bleeping at me, crap, I've torn the bloody wings off the aircraft.

What really bugs me is that while I, today, sort of kind of learned how to handle supersonic control surfaces, I know I don't know it anywhere near enough to start teaching the Arduino about it, and that means that I can't put it in a rocket.

I'm thinking that the best design for a supersonic rocket (at this point it's looking like a nine-motor, three-stage, clustered E job in either CF or "blue tube" chassis) is to have very, very sensitive, and very clean canards up front – almost imperceptibly tiny ones even – and then very small slats on the ass end of the thing. Or just giving up alltogether until somebody like, say, an employer can buy software that will show me what supersonic airflows look like and I can just teach the software.

Until then, I'm terrorizing the district in phantasmagorical throttled hybrid rocket-powered many-winged Scaledesque craft. I had hoped to be further. I am beginning to wonder how hard it is to actually build a liquid fuel rocket, due to the vastly increased specific impulse and thus longer flight (and the ability to, you know, throttle).

What bugs you say?

Maybe these:




Internet Relay Chat Protocol for client and server.

Future Plans
============

The way the IRCClient class works here encourages people to implement IRC clients by subclassing the ephemeral protocol class, and it tends to end up with way more state than it should for an object which will be destroyed as soon as the TCP transport drops. Someone oughta do something about that, ya know?

The DCC support needs to have more hooks for the client for it to be able to ask the user things like \"Do you want to accept this session?\" and \"Transfer #2 is 67% done.\" and otherwise manage the DCC sessions.

Test coverage needs to be better.

@author: Kevin Turner

And maybe I'm made of stern enough stuff to fix it. It's gonna require a flag day if we start keeping state (and I have no interest in dcc). But yeah, day #1, that little bit found me.

Python & Twisted Words

I wrote something like three hundred lines of python yesterday. I sat in my chair for, no shit, fifteen hours, not stopping to eat. I. Wrote. Code. I wrote some of the most beautiful code I've ever written, and I'm not even done polishing the bannisters. And let me remind you that my exposure to python had been, up to that point attending a lecture or two online and fixing some slacker's code.

Not only did I come up from zero to writing a state machine in Python, but I found bugs in the Words api that are documented in the source, on my first fucking day of using it. Basically, the Words api is great, but it requires the user to keep a lot of state, and that's very un-DRY.

I also, for the first time in my life, wrote code with the primary goal of it being beautiful. It is functional. It does everything I need it to, for its infant form, but it will not sacrifice form for function. The code incorporates its documentation and shows you why it does something as it does it.

Those people that say that documentation is hard? That manpages are too much effort? That syntax checking and unit tests are a waste of time on a small project? They are cowards. They are people with poor taste and an absolute lack of aesthetic. Life is too short to write code you wouldn't want to dream about.

You slimy, skeezy bastards know who you are, and you know you write shitty code. Keep doing it, and you'll destroy python just like all your perl contemporaries destroyed perl5. Keep it up. I hope you choke. Fucking nepotist heathens.

01 August, 2009

Sometimes people get really full of themselves.

It's happened to me, I will admit it, and it still does. But I started following Tim O'Reilly on twitter, thinking, gosh, he's an insightful guy, he was part of the nascent community before the bubble, he published books I cherish. And somehow, I came across this really rather disgusting "bozo-factor" description of his regarding FOO Camp, which started here, but has been more succinctly summarized elsewhere, with this quote:

The issue was that Tim O'Reilly exposed his algorithm for selecting foo campers. The last part, called the bozo filter excludes people without telling them because they are annoying or possibly because another person complained about them in the past. It seems to have hit a nerve with a group of younger hackers, because they feel a sense of unfairness about it, as though it might get directed at them at some point. The other issue was the perceived threat to exclude anyone from future foo's for talking about the lack of invites. It just made a number of people feel badly.

The whole foo / bar rivalry is unfortunate and should fade away. Hopefully, next year's bar and foo will focus just on the opportunity to get together and have fun, hanging out with smart people and learning stuff, and for bar campers, hacking up some really great stuff.
Somebody commented that FOO Camp was something put on by O'Reilly to thank its authors and employees, and indeed it contains elements of that. But it also contains a splash of TED to it. As in, these are the people to watch, these are the people getting book deals, and this is the in crowd.

But following the guy on twitter, I have to say I have no real idea why people respect him other than he is the name behind the book. As an author, perhaps that's not something I should say. But why is he spewing forth garbage like this?


I mean, have a political affiliation, man, sure. But I don't think even he believes that people are following him for his political commentary.

Perhaps the point of twitter is that it's the pocket lint of what's in everyone's head. If that's the case, there's an awful fucking lot of lint in that man's head, and I just don't actually see anything interesting or useful about O'Reilly from him, whereas I do see a lot of useful stuff coming out of other publishing-type people, like Andy Lester.

Jimmy Wales and I talked about this a while ago, and he and I came to a sort of agreement in email that once you've been put on a pedestal (to paraphrase Randal Shwartz), it's easy to expect a lot more from a man than who he is. In the case of Jimmy, I expected him to try to distance himself from the sycophants and the politics of the Wikipedia and the Foundation, Wikia, funding, and the travel debacle, and he essentially told me that he wasn't actively trying to be a part of it, but after a certain point of "fame", you're neck deep in it. The difference is, after talking to Jimmy for what must have been a month or two, I have a lot of respect for the man, and I believe him.

Tim... I'm pretty sure Tim is stirring the pot for the sake of it, and using his name and company the same way those other name-and-company people (eh, I could say George Soros, but we know that's a different kind of league; even a Ballmer or Gates here is out of Tim's league) do. He's just a pariah. It makes me ill. Why do I feel guilty about un-following him, though? Am I less of a geek for thinking he's a prick? He seems to have done so much for the community.