Day: July 20, 2004

  • Clone Wars Watchlist

    The best thing about making a list of things to do is crossing out the items on that list. I got a bunch of random stuff done today, but the majority of my list of things I need to do in the next week is now done.

    Today I…

    • Added a zoom visualizer to the pan and tilt visualizers. Basically the width of the pan/tilt indicator is scaled by the angular field of view, so that as you zoom in, in gets narrower. This (hopefully) indicates to the user that they’re seeing a smaller fraction of the world
    • I significantly sped up the video framerate by dumping zoomSurface(). This means that all of my visualizers are stuck at their native sizes, and the distinction between viewport and visualizer is blurred further. In a future version, I’ll probably just collapse the two data structures together. For now, things work.
    • I added magnification to the camera image visualizer, at the byte array level, so both 160×120 and 320×240 images come out as 640×480. Doubling is a lot faster than any sort of interpolation, which I think is what zoomSurface() was doing.
    • I significantly tweaked the joystick calibration, so there shouldn’t be any motion weirdness coming out of that.
    • I fixed the way that widgets (program objects that respond to user interaction events) are handled slightly. Basically I can refer to them by name instead of number, which while slightly slower, makes the code more readable.
    • I fixed assorted bugs with the way joystick control configurations were being read from the XML config file.
    • I got my ground-plane drawing code working. It turns out that my math was just fine, I was giving it garbage input. Like expressing everything in meters or radians, except for the robot radius, which was in millimeters. That and duplicating the x and y output values.
    • I added the ability to change the color, size, and quality of the images being transmitted by the robot. The next step is to make this automatic based on what the robot is currently doing.

    Despite this progress, there is still a lot to do. We were waylaid today by a hard drive death on gollum, and assorted wireless network problems related to our new base station. Basically, the base station was talking faster than the wireless bridges on the robots could handle.

    A few random things:

    • SDL surface transparency, so I can translucently superimpose the HUD on the camera image.
    • Track down a mysterious crash that cropped up since changing the image type. I think it lies in the new not-zoomed display code that I added, but I get to spend some quality time with GDB. The problem is that it doesn’t come up all the time.
    • Track down a small memory leak. I think the culprit lies with my quick-and-dirty zooming code; it needs some cleaning. I don’t know why there’s a leak, since it’s a single allocation before the program starts requesting images, but you never know.
    • Add automatic image quality adjustment based on robot motion.
    • Add a quick-and-dirty map display, once Fritz rewrites SMMD to interface with the nav module.

    I broke 6,000 lines of code today! The biggest growth has been in widget.c, the file containing almost all of my user interface event handling code.

    This project has been long, and it’s been a lot of work, but it is so worth it. I think Fritz may have gone insane several times over, but at least that’s sort of entertaining ;o). Yay for the robots very nearly mostly working!!!

    Maybe soon I’ll talk about all of the neat stuff I’d like to add but won’t be able to change, at least not for this competition which is in only one week!

  • Sunspot

    A small Yorkshire Terrier lies in a pet bed on a green upholstered chair in a sunny living room.

    I wish I could nap like Pike naps.

  • The Muppets Meet Murderbot

    For the last year and a half or so Andrle and I have been having a ton of fun as part of an online book club put together by my friend Tanya. Unlike most book clubs where you all read the same thing, we all just share things we love that we’ve been reading.

    One recommendation that kept coming up was The Murderbot Diaries by Martha Wells, and I’m glad we finally ran with it and started reading them. We’ve been bingeing the last few weeks and they’re really, really great. Highly recommend (even though I’m only on Book 4.)

    Unsurprisingly another thing I’ve been reading about and thinking about a lot is the advent of Large Language Models, particularly as manifested by ChatGPT. My past work life as an NLP practitioner has me a mix of curious, envious, and highly suspicious of what these are and how they’re being used. In the short term I don’t mind using them as a toy that I can play with for the purpose of a joke, which is what this post is about.

    A recurring topic in this book club is how we might have the Muppets interpret a particular book, or how we might recast a movie with Muppets (but keep one human actor). This provides a lot of fun discussions, especially since I grew up regularly watching the classic Muppet movies on VHS recorded off of TV, and I really like musicals.

    That all brings me to some prompt iterating that I did to get ChatGPT to write the painfully cliché finale to a Muppet musical featuring Murderbot. (Apologies to both Henson and Wells.)

    Verse 1 (Murderbot):
    I used to be a killing machine,
    A rogue cyborg, feared and mean,
    But then I met the Muppets and Kermit,
    And learned what friendship truly meant.

    Verse 2 (Kermit):
    I'm just a simple frog, it's true,
    But I believe in friendship too,
    And when I met Murderbot, I knew,
    Together we could do something new.

    Chorus (All):
    We don't need to kill no more,
    Our friends are all we're fighting for,
    With Murderbot and Kermit side by side,
    We'll show the world what we stand for.

    Verse 3 (Murderbot):
    I never wanted to be a tool,
    But that's all humans see in me, it's cruel,
    I used to dream of breaking free,
    From their endless schemes and greed.

    Verse 4 (Kermit):
    It's true, I'm always happy-go-lucky,
    But I've been through some tough times that were quite yucky,
    But now with Murderbot and the gang,
    I know our friendship will never hang.

    Chorus (All):
    We don't need to kill no more,
    Our friends are all we're fighting for,
    With Murderbot and Kermit side by side,
    We'll show the world what we stand for.

    The past is gone, the future bright,
    With friends like these, we'll win the fight,
    Our love and trust will guide us through,
    Together we'll see this journey through.

    Chorus (All):
    We don't need to kill no more,
    Our friends are all we're fighting for,
    With Murderbot and Kermit side by side,
    We'll show the world what we stand for.

    So let's raise our voices high,
    And let the world hear our battle cry,
    With Muppets and Murderbot side by side,
    We'll change the world and turn the tide.
    OpenAI. (2023, Mar. 16) [Iterative prompt conversation starting with “This Muppet movie is about a rogue cyborg traveling to different space stations and learning the power of friendship from the Muppets” and “I need some lyrics for the big finals. The music is big broadway style number about how the rogue cyborg doesn’t need to kill bad guys anymore because it has friends.” and then encouraging more dialogue between Kermit and Murderbot]

    Yes, I looked up recommendations on how to properly cite ChatGPT output.

    Overall the result was mildly amusing. I couldn’t get it to capture Murderbot’s signature style, presumably because while information about the novellas are in its model training, not enough text from the novellas are in there.

    I’m still not sure what useful things I could do with this kind of tool, but in the meantime, I can make it make silly songs.

  • Fox Ferocity

    Pike playing with a toy almost as big as he is.

  • Groomed Pike

    Tiny freshly groomed Yorkie sits on a teal couch wearing a monstera bow tie

    I love this little gentleman.

  • The Kale Wanter

    A small black and brown Yorkie stands on a cream rug in front of a brown cupboard begging for the bunch of lacinato kale in hand in the foreground.