Amy Parent

Hi, I’m Amy Alex Parent! By day, I study cloud evolution in brown dwarfs at Abertay University. By night, I get bruises skating with Dundee Roller Derby, tell computers what to do and make video games 👩🏼‍🚀👩🏼‍💻

More OrbitVM Dispatch

I’ve read a bunch, and thought more about my problem with the dispatch table I have so far for Orbit. I really don’t like having the possibility of a hash collision breaking a function call. This is one of the most basic building blocks of the language, and I can’t have that not be 100% predictable.

back to the drawing board then. I was worried about potentially comparing multiple strings every time a function is invoked, but I can avoid that. If I store both the function signature’s length, hash and string pointer, I only need to compare strings if both the lengths and hashes match (which is unlikely). So now I’m down to somewhere between one and “a few” string comparisons on for each call, even though it should be one 99.99% of the time, and it’s very unlikely to be more than two. Better.

continue reading →

OrbitVM Dispatch

I’ve made some progress on Orbit – well, I’ve setup the project directory and started playing around with tagged unions for the VMValue type system. I’ve also made the repository public, even though it’s still pretty rough.

I’m now getting to the point where I can write a simple interpreter loop, and start thinking about function dispatch. I really like full dynamic dispatch like Objective-C does – that is, message-based dispatch: each function call is done by name, followed by a dispatch table lookup before invocation.

continue reading →

Adventures in Language Design

Apparently, my brain isn’t satisfied with having to manage fourth year and my honours project, so I needed (yet another) side project. I’m making my own programming language, probably called Orbit (or OrbitVM).

The (far-away) end goal would be to use the language for scripting in the upcoming rewrite of my game engine (look ma, another side project!). For the time being though, I’ll be happy if I can run simple scripts with the basics of any language: a type system, functions, flow control, possibly some lightweight object system.

I don’t particularly fancy going all the way down to machine code, so it’ll be VM-based, very much like Java: a compiler that compiles each script file to a bytecode file, and a VM that loads those files and runs the main() function.

continue reading →

Automating Rocket Launches

A few months ago, I published a video of a completely automatic launch to orbit in KSP. I’ve gotten a few questions about it in the comments, so I’ll try to answer them here in bulk.

Basic Tech

The software runs on kOS, a KSP plugin and scripting language that gives you access to the spaceship and most of the KSP world. My KSP save runs at twice the scale of the stock game, making it a bit more expensive to get to orbit, but makes single-burn to orbit launches closer to real-life launches.

A launch is made of five main phases.

continue reading →

New Shepard Flight 4

New Shepard Flight 4 Landing
New Shepard lands for the fourth time (image © Blue Origin)

Very nice to see Blue Origin join the club with a very nice live webcast of the fourth flight of the same New Shepard rocket and capsule. The combination of the double sonic boom and the incredible speed at which the booster comes down always impresses me. This flight also proved that the capsule could land safely if one parachute fails to open, as planned — Blue Origin seems to be advancing steadily towards human qualification for its rocket and capsule.

I find it amazing that we live in a time where not one, but (at least) two companies are now actively working on landing rockets after their missions. And even though New Shepard’s flight profile is much easier on the rocket than Falcon 9’s, it’s pretty great to see the same hardware fly four times!

YouTube video: EI-tGVFg7PU

continue reading →

Work & Passion

For the past three years I’ve found myself incredibly lucky: for the first time, I’m happy to go to classes because what I’m learning, what I do for coursework is a passion of mine. I like programming, I love learning about computer architecture, I enjoy cryptography (nerd).

I’ve always thought that it could be the best thing to happen to anyone. Not worrying about going to work everyday, because you know you’re going to love it. Of course, it can only a blessing, right?

continue reading →

SpaceX Wallpapers

SpaceX ASDS - Of Course I Still Love You

A simple wallpaper set I made from the design painted on the decks of SpaceX’s Autonous Spaceport Droneships. I made a version for each of the ships, Of Course I Still Love You (used for launches out of Cape Canaveral and Kennedy Space Center) and Just Read The Instructions (used for launches out of Vandenberg).

continue reading →

Rocket, Meet Boat

Falcon 9 coming in Images in public domain, by SpaceX

I was crossing all ten fingers yesterday night when the first stage of Falcon 9 came into view. By the time it touched down and the engine turned off, I was jumping on the spot (and maybe crying a little). I’d missed their first landing in December, and that tall, skinny stage aiming for an autonomous barge just looks straight out of Science Fiction. I think what’s most impressive about this launch and landing is that SpaceX made it look effort-less, which it definitely can’t have been. Congratulations to every person that spent months making it work!

Falcon 9, on a boat

According to Elon Musk during the press conference after the launch (and landing), this stage will be test-fired around ten times. If that goes well, then it’ll go through qualification to hopefully fly on a new orbital mission in June. Reusability is not a done deal yet, but yesterday’s landing felt like a historic moment.

Watch the replay of the launch, and the landing in 4K resolution