l33tminion: (Default)
Sam ([personal profile] l33tminion) wrote2025-06-23 07:01 pm

Soaring

Erica is a rising fourth grader now.

For the long weekend, we took a trip to NYC for Emmett and Sonia Mae's wedding. Was such a happy occasion and an incredible celebration, plus we got to meet baby Roger, who is wide-eyed and adorable.

We took the train both ways. On Thursday afternoon, I got to stop by Clio's bakery with Erica (Clio is Emmett's sister, she's an extremely talented chef, she made an amazing wedding cake for Emmett as well). The bakery is so cool, it has a beautiful little cafe space.

On Friday, we went to Luna Park on Coney Island. The weather was hot, but we had a ton of fun. Erica went on her first full-sized roller-coasters with me. We went on Tickler, a spinny wild mouse, and Soarin' Eagle, a lying-down flying coaster. I was new to those ones, too, it was really fun to try it together.

On Saturday, we caught up with my Aunt Ellen and Uncle Mark, they had us over for a very nice brunch at their place.

The trip home Sunday evening went very smoothly, though it was certainly a late night for Erica, after another late night on Saturday. But she seemed to be rested well enough for the start of climbing camp this week. Then we head to Sandy on Saturday.

I finished reading Starter Villain on the train. And I've started watching Pantheon.

It's hot hot hot today and hotter tomorrow. Summer's here!
purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-23 07:16 pm

Inca Trail: Day 4

Day 4 started at 3:30am in the morning because we were supposed to meet up with the rest of our party at 11am at Machu Picchu which was about 14km away. Most of the rest of the camp got up and set out around the same time for reasons that were less clear to me - maybe the general plan is to get to Machu Picchu before lunch and then spend the afternoon in the city.

Anyway, this meant the first hour of the walk was in the dark going down steep steps with head torches which, once the novelty had worn off, wasn't much fun. We were, presumably, missing some stunning views.

The first ruin of the day was Intipata. This involved a slight diversion off the Inca road itself. According to Wilbert no one had even known it was there until a forest fire about 25 years ago. It's a bit difficult to convey it in photographs, especially as we don't seem to have managed to take any which have any people in for a sense of scale. It was huge, each individual terrace rising above our heads. As far as one can tell, it was a farm.

Photos under the cut )

We then went to Wiñay Wayna which was very similar except that Wilbert insisted it was a laboratory not a farm. We had previously seen another Inca "Laboratory" at Moray but were somewhat confused by the distinction. Laboratories, we were told, were convex while farms were concave. The convex shape caused microclimates at each terrace and you could see different plants were grown on each terrace so it was obvious that the Inca's were experimenting. B. and I felt a frew crucial steps were missing here for something to be called an experiment, as opposed to growing things where they grow best. I was actually getting rather tired at this point so I just sat down and admired the view at Wiñay Wayna, while B. walked down to look at the buildings disturbing some Llamas who were grazing on the terraces.

More Photos )

Wiñay Wayna was right by a campsite of the same name. It was currently out of use following landslides but was, apparently, where people normally spent the final night on the trail. Having left us to explore Wiñay Wayna, Wilbert sat down and chatted to the various guides and porters working at the camp. When we got back he reported that several other parties had gone past, none going to look at the ruins... which again seemed rather odd. I guess for a lot of poeple the Inca Trail is about the walk and then Machu Picchu and not so much about the less well known ruins along the way.

Once past Wiñay Wayna, we left the controlled part of the Inca Trail. At that point I half expected to start seeing day trippers up from Machu Picchu but we never passed anyone going the other way. Wilbert said this was because day trippers were lazy (Wilbert considered many people lazy, including anyone who spoke Spanish in preference to Quechua) but I would have thought quite a lot of people would like to walk along a bit of an Inca road without necessarily doing so for four days and going over Dead Woman's Pass.

Anyway, we continued for another 5 or so km, mostly on the flat but rising slightly until we came to a set of steps that Wilbert cheerfully informed us were called the "Gringo Killer". He had my measure by now and offered to take my sticks while I clambered up.

Evidence under the Cut )

Then we turned a corner and came out at Inti Punku, the Sun Gate, the ceremonial entrance to Machu Picchu. This is where you get your first glimpse of the city.

Photos )

I'll leave Machu Picchu to another post. We were half an hour "late", but Wilbert had a back-up plan which involved showing us around himself and we bumped into the rest of the party during the tour. I was a little frazzled when we got there - a combination I think of the early start, a fairly long walk and the fact my esim wasn't working so I was out of WhatsApp contact from our other guide and so couldn't coordinate meeting up (I eventually managed to contact him via B's phone). But once I'd sent the WhatsApp message and had something to eat, I cheered up enough to enjoy the city.

I felt even better after a bus ride down to Aguas Calientes and a late lunch.

Evidence of Lunch )
purplecat: The fourth Doctor. (Who:Four)
purplecat ([personal profile] purplecat) wrote2025-06-21 12:56 pm

Random Doctor Who Picture


Model of a yellowish pointy-nosed spaceship.  It is on a packing crate that is labelled Dr Who - Shada 2017 Skagra's Spaceship filming minature *FRAGILE* - Property of Mike Tucker, The Model Unit, Ealing Studios.  A little of the model of another spaceship is below it (and obscures the words Mike Tucker, though these can be inferred from other signs about).  Things are reflected in a glass panel in front o the model, including a black man who seems to be the talking head in some kind of video.  Half of a sign is visible to the right talking about the work of Mike Tucker.
From the Doctor Who Worlds of Wonder Exhibition
purplecat: Gif of running "pointy sauruses" (General:Dinosaur)
purplecat ([personal profile] purplecat) wrote2025-06-20 06:35 pm
Entry tags:

Fossil Friday


A fossil skeleston of what appears to be a bipedal dinosaur with a long tail, longish neck and sharp teeth.
Dilophosaurus. Image stolen from Great Dinosaur Discoveries by Darren Naish, though wikipedia is using a very similiar image under a Creative Commons licence.
Matthew Garrett ([personal profile] mjg59) wrote2025-06-20 01:11 am
Entry tags:

My a11y journey

23 years ago I was in a bad place. I'd quit my first attempt at a PhD for various reasons that were, with hindsight, bad, and I was suddenly entirely aimless. I lucked into picking up a sysadmin role back at TCM where I'd spent a summer a year before, but that's not really what I wanted in my life. And then Hanna mentioned that her PhD supervisor was looking for someone familiar with Linux to work on making Dasher, one of the group's research projects, more usable on Linux. I jumped.

The timing was fortuitous. Sun were pumping money and developer effort into accessibility support, and the Inference Group had just received a grant from the Gatsy Foundation that involved working with the ACE Centre to provide additional accessibility support. And I was suddenly hacking on code that was largely ignored by most developers, supporting use cases that were irrelevant to most developers. Being in a relatively green field space sounds refreshing, until you realise that you're catering to actual humans who are potentially going to rely on your software to be able to communicate. That's somewhat focusing.

This was, uh, something of an on the job learning experience. I had to catch up with a lot of new technologies very quickly, but that wasn't the hard bit - what was difficult was realising I had to cater to people who were dealing with use cases that I had no experience of whatsoever. Dasher was extended to allow text entry into applications without needing to cut and paste. We added support for introspection of the current applications UI so menus could be exposed via the Dasher interface, allowing people to fly through menu hierarchies and pop open file dialogs. Text-to-speech was incorporated so people could rapidly enter sentences and have them spoke out loud.

But what sticks with me isn't the tech, or even the opportunities it gave me to meet other people working on the Linux desktop and forge friendships that still exist. It was the cases where I had the opportunity to work with people who could use Dasher as a tool to increase their ability to communicate with the outside world, whose lives were transformed for the better because of what we'd produced. Watching someone use your code and realising that you could write a three line patch that had a significant impact on the speed they could talk to other people is an incomparable experience. It's been decades and in many ways that was the most impact I've ever had as a developer.

I left after a year to work on fruitflies and get my PhD, and my career since then hasn't involved a lot of accessibility work. But it's stuck with me - every improvement in that space is something that has a direct impact on the quality of life of more people than you expect, but is also something that goes almost unrecognised. The people working on accessibility are heroes. They're making all the technology everyone else produces available to people who would otherwise be blocked from it. They deserve recognition, and they deserve a lot more support than they have.

But when we deal with technology, we deal with transitions. A lot of the Linux accessibility support depended on X11 behaviour that is now widely regarded as a set of misfeatures. It's not actually good to be able to inject arbitrary input into an arbitrary window, and it's not good to be able to arbitrarily scrape out its contents. X11 never had a model to permit this for accessibility tooling while blocking it for other code. Wayland does, but suffers from the surrounding infrastructure not being well developed yet. We're seeing that happen now, though - Gnome has been performing a great deal of work in this respect, and KDE is picking that up as well. There isn't a full correspondence between X11-based Linux accessibility support and Wayland, but for many users the Wayland accessibility infrastructure is already better than with X11.

That's going to continue improving, and it'll improve faster with broader support. We've somehow ended up with the bizarre politicisation of Wayland as being some sort of woke thing while X11 represents the Roman Empire or some such bullshit, but the reality is that there is no story for improving accessibility support under X11 and sticking to X11 is going to end up reducing the accessibility of a platform.

When you read anything about Linux accessibility, ask yourself whether you're reading something written by either a user of the accessibility features, or a developer of them. If they're neither, ask yourself why they actually care and what they're doing to make the future better.
purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-19 07:31 pm

Inca Trail: Day 3

Unlike Day 2, which was hard work and not terribly rewarding, we loved Day 3 on the Inca Trail. Once again we set off almost as soon as it was light. Wilbert's plan was again to have all the walking done before lunch, in part because of convenience, but this time he also knew there were a lot of ruins to see and was quite keen to get us to them before everyone else got there. In this he was successful. We generally got to look around ruins on our own, but a big group would arrive just as we were leaving.

The first of these was Runkuraqay which Wilbert described as a fuel station for people, which we interpreted as meaning an Inn.

Runkuraqay Pictures )

We then went up and over a pass, a little lower than Dead Woman's Pass the previous day, and a shorter climb because we'd started higher. Then we came down towards Sayacmarca, a much larger ruin.

Pictures )

Once we left Sayacmarca we continued down to about 3,500m. After that the trail was much more level. Strava shows a steady climb, but I felt much more able to look about me at the scenery rather than paying close attention to where I was putting my feet. As the trail levelled out we got to Qunchamarka, another Inn. It wasn't clear how to access this, but we walked around the outside. I think at this point we were up in a Cloud Forest - though I'm hazy on the difference between Cloud Forest, Rainforest and regular forest, all of which I think we walked through at various points.

Pictures )

Wilbert spent some time telling us about the Inca Tunnel we would meet. B was pretty sure this was just a large fallen rock which the Inca's had run the path under. Wilbert got distracted at this point since he found a dog in the brush above the tunnel. After some encouragement he got it to climb down and it ran off down the path ahead of us. We met it again at the next campsite where, presumably, it belonged. I'm afraid we failed to photograph the dog, so you'll just have to imagine it.

B did photograph the tunnel, however )

We arrived at our campsite in good time for lunch. The camp was above another Inca ruin, Phuyupatamaca, and after lunch Wilbert packed us off to take a look at it on our own. This involved going down some steep steps and it seemed like the water source for the camp was at the bottom, because we were passed by a lot of porters carrying water back up them. At the time we assumed he sent us to look at it then, rather than the next day, because the plan was to leave before light so that we would get to Machu Picchu in time to meet up with the rest of our group. However it transpired that pretty much everyone was leaving before light and we seemed to be the only party who's guide thought to encourage us to check out the ruins we would miss in the dark.

Pictures of Phuyupatamarca )

We had an excellent position in the camp right next to a large rock that overlooked the view. We were next to the camp of a group of three people who were on the "Luxury" tour. Wilbert was very contemptuous - they had three guides and a masseuse. They were also served cocktails in glasses made of glass when they reached camp. The most disconcerting thing was that they were played into camp by Andean pipes. B felt he would have been quite happy with the cocktails and the larger tents (including a shower tent!) and so on, but felt he wouldn't have coped with the pipes.

Pictures in the Camp )
purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-18 07:15 pm

Inca Trail: Day 2

Day 2 on the Inca Trail was the least fun of the trip. We had to climb 1,200m to get up and over "Dead Woman's Pass". Wilbert, our guide's plan was to get going as soon as it was light (around 5:30am) and aim to reach our campsite at lunch time. His reasoning was to get most of the actual climbing done while we were in the shadow of the tall mountains around us. It also made life simpler for the support team who wouldn't have to pick somewhere en route, unpack to make lunch, and then pack up again to get to the campsite. He also, I think, quite liked the idea of catching up with the group that were ahead of us who were starting around 700m up the climb and who would be having lunch at our evening campsite. In the event we arrived at our campsite about 2 hours after they had left, having another pass to go over before they got to their campsite for the night.

We were on modern trails, according to Wilbert, and although I think we passed some Inca ruins at a campsite en route, we didn't look at them. Wilbert's explanation for the route wasn't entirely clear. As I understood it the original Inca road went over a different pass, though I never figured out if it was higher or lower. I got the impression a large section of the road from Cusco to Machu Picchu was destroyed by the Inca themselves, triggering landslides, in order to prevent the Spanish finding their way along it, so maybe that explains why we were following a modern alternative.

We started at about 3000m. At around 3,700m I began to feel quite tired and a little concerned about the 500m still go. At 3,900m as we came out of the shade and into the sun, my legs felt like lead and I made it up to the pass only by doggedly walking 300 steps and then stopping (300 steps, if you are interested, gets you up about 50m). At the time we put this down to the fact Manchester is super-flat and so our uphill muscles don't get a lot of exercise. However, I wasn't remotely stiff the next day, at which point it occured to us to measure my blood oxygen using my watch. It was down at 81%, rising to 88% if I took several deep breaths (B., in contrast was generally in the high 80s/low 90s). So it's possible the issue was lack of blood oxygen - even though I wasn't showing any other symptoms of altitude sickness.

Once over the pass we descended around 600m to our campsite. I badly wanted to go to sleep, but B. and Wilbert forced me to have some lunch first. Then I slept for an hour, after which I felt much more like myself.

We walked a total distance of just under 12km.

Pictures under the Cut )
purplecat: The Tardis against a sunset (or possibly sunrise) (Doctor Who)
purplecat ([personal profile] purplecat) wrote2025-06-17 06:46 pm

Costume Bracket: Round 4, Post 2

Two Doctor Who companion outfits for your delectation and delight! Outfits selected by a mixture of ones I, personally, like; lists on the internet; and a certain random element.


Outfits below the Cut )

Vote for your favourite of these costumes. Use whatever criteria you please - most practical, most outrageously spacey, most of its decade!

Voting will remain open for at least a week, possibly longer!

Costume Bracket Masterlist

Images are a mixture of my own screencaps, screencaps from Lost in Time Graphics, PCJ's Whoniverse Gallery, and random Google searches.
Matthew Garrett ([personal profile] mjg59) wrote2025-06-16 09:20 pm
Entry tags:

Locally hosting an internet-connected server

I'm lucky enough to have a weird niche ISP available to me, so I'm paying $35 a month for around 600MBit symmetric data. Unfortunately they don't offer static IP addresses to residential customers, and nor do they allow multiple IP addresses per connection, and I'm the sort of person who'd like to run a bunch of stuff myself, so I've been looking for ways to manage this.

What I've ended up doing is renting a cheap VPS from a vendor that lets me add multiple IP addresses for minimal extra cost. The precise nature of the VPS isn't relevant - you just want a machine (it doesn't need much CPU, RAM, or storage) that has multiple world routeable IPv4 addresses associated with it and has no port blocks on incoming traffic. Ideally it's geographically local and peers with your ISP in order to reduce additional latency, but that's a nice to have rather than a requirement.

By setting that up you now have multiple real-world IP addresses that people can get to. How do we get them to the machine in your house you want to be accessible? First we need a connection between that machine and your VPS, and the easiest approach here is Wireguard. We only need a point-to-point link, nothing routable, and none of the IP addresses involved need to have anything to do with any of the rest of your network. So, on your local machine you want something like:

[Interface]
PrivateKey = privkeyhere
ListenPort = 51820
Address = localaddr/32

[Peer]
Endpoint = VPS:51820
PublicKey = pubkeyhere
AllowedIPs = VPS/0


And on your VPS, something like:

[Interface]
Address = vpswgaddr/32
SaveConfig = true
ListenPort = 51820
PrivateKey = privkeyhere

[Peer]
PublicKey = pubkeyhere
AllowedIPs = localaddr/32


The addresses here are (other than the VPS address) arbitrary - but they do need to be consistent, otherwise Wireguard is going to be unhappy and your packets will not have a fun time. Bring that interface up with wg-quick and make sure the devices can ping each other. Hurrah! That's the easy bit.

Now you want packets from the outside world to get to your internal machine. Let's say the external IP address you're going to use for that machine is 321.985.520.309 and the wireguard address of your local system is 867.420.696.005. On the VPS, you're going to want to do:

iptables -t nat -A PREROUTING -p tcp -d 321.985.520.309 -j DNAT --to-destination 867.420.696.005

Now, all incoming packets for 321.985.520.309 will be rewritten to head towards 867.420.696.005 instead (make sure you've set net.ipv4.ip_forward to 1 via sysctl!). Victory! Or is it? Well, no.

What we're doing here is rewriting the destination address of the packets so instead of heading to an address associated with the VPS, they're now going to head to your internal system over the Wireguard link. Which is then going to ignore them, because the AllowedIPs statement in the config only allows packets coming from your VPS, and these packets still have their original source IP. We could rewrite the source IP to match the VPS IP, but then you'd have no idea where any of these packets were coming from, and that sucks. Let's do something better. On the local machine, in the peer, let's update AllowedIps to 0.0.0.0/0 to permit packets form any source to appear over our Wireguard link. But if we bring the interface up now, it'll try to route all traffic over the Wireguard link, which isn't what we want. So we'll add table = off to the interface stanza of the config to disable that, and now we can bring the interface up without breaking everything but still allowing packets to reach us. However, we do still need to tell the kernel how to reach the remote VPN endpoint, which we can do with ip route add vpswgaddr dev wg0. Add this to the interface stanza as:

PostUp = ip route add vpswgaddr dev wg0
PreDown = ip route del vpswgaddr dev wg0


That's half the battle. The problem is that they're going to show up there with the source address still set to the original source IP, and your internal system is (because Linux) going to notice it has the ability to just send replies to the outside world via your ISP rather than via Wireguard and nothing is going to work. Thanks, Linux. Thinux.

But there's a way to solve this - policy routing. Linux allows you to have multiple separate routing tables, and define policy that controls which routing table will be used for a given packet. First, let's define a new table reference. On the local machine, edit /etc/iproute2/rt_tables and add a new entry that's something like:

1 wireguard


where "1" is just a standin for a number not otherwise used there. Now edit your wireguard config and replace table=off with table=wireguard - Wireguard will now update the wireguard routing table rather than the global one. Now all we need to do is to tell the kernel to push packets into the appropriate routing table - we can do that with ip rule add from localaddr lookup wireguard, which tells the kernel to take any packet coming from our Wireguard address and push it via the Wireguard routing table. Add that to your Wireguard interface config as:

PostUp = ip rule add from localaddr lookup wireguard
PreDown = ip rule del from localaddr lookup wireguard

and now your local system is effectively on the internet.

You can do this for multiple systems - just configure additional Wireguard interfaces on the VPS and make sure they're all listening on different ports. If your local IP changes then your local machines will end up reconnecting to the VPS, but to the outside world their accessible IP address will remain the same. It's like having a real IP without the pain of convincing your ISP to give it to you.
purplecat: The family on top of Pen Y Fan (General:Walking)
purplecat ([personal profile] purplecat) wrote2025-06-16 08:07 pm

Inca Trail: Day 1

We did our Inca Trail holiday with Explore! who (out of necessity as I understand it) subcontracted to a local tour company. At some point something went wrong with getting permits for the trail. The story we were told was that the local agent forgot to apply for our permits, but several other people in the group had had permits delayed, so we concluded that there had been a more general permit mix-up which was simplified for our consumption as "forgot to apply for your permits". The up-shot of all this was that instead of travelling as part of a group of ten walkers with a guide, cook and porters it was just the two of us with a guide, cook and porters, setting out a day after everyone else with the aim of catching up with them at Machu Picchu. This was a mixed blessing, we got a lot more time with our guide and didn't have to worry that we were slowing anyone down, on the other hand it felt like an awful lot of staff for just us and even though our guide as very good at leaving us alone for various stretches, or sending us off on our own to explore things, it was quite intense.

Photos and more under the cut! )
l33tminion: (Default)
Sam ([personal profile] l33tminion) wrote2025-06-14 08:52 am
Entry tags:

The Prince With a Thousand Enemies

I finished reading Erica the rest of the Princess Academy series by Shannon Hale. There's definitely a whole lot to like about the series. I'm always looking for good stuff to read to Erica, so grateful to Melissa for recommending that one.

For our next book, we've started on Watership Down, which has been on my "I should read this sometime" list for a long time.

Speaking of rabbits, it seems to be a good time for them this year. I've never seen so many about in the neighborhood, especially near the Knox bike path out back of Kendall Square.
purplecat: Gif of running "pointy sauruses" (General:Dinosaur)
purplecat ([personal profile] purplecat) wrote2025-06-13 06:47 pm
Entry tags:

Fossil Friday


A two legged, very upright, dinosaur skeleton with a long neck, smallish arms and large ribs.  About twice as tall as the man in an overall who stands looking up at it.  The background is black and the two figures are picked out with a pale light.

A Plateosaurus skeleton. Image stolen from The Great Dinosaur Discoveries by Darren Naish.
purplecat: Kate O'Mara as the Rani (Who:The Rani)
purplecat ([personal profile] purplecat) wrote2025-06-12 08:15 pm

Rani Icons

Some icons of The Rani which have been languishing on my hard drive since there was only one of her. I guess I need to make some more...


Kate O'Mara as the Rani, dressed as Mel.  Face and lots of permed red h air. Kate O'Mara as the Rani from the hips upwards, striding forwards in her red outfit. Kate O'Mara as the Rani.  Side shot standing next to her Tardis console. Kate O'Mara as the Rani.  Waist up looking at Camera in red. Kate O'Mara as the Rani looking mildly annoyed.  The Master stands behind her.


Snaggin is free. Credit is appreciated. Comments are loved.
purplecat: The Tardis against a sunset (or possibly sunrise) (Doctor Who)
purplecat ([personal profile] purplecat) wrote2025-06-10 05:54 pm

Costume Bracket: Round 4, Post 1

Two Doctor Who companion outfits for your delectation and delight! Outfits selected by a mixture of ones I, personally, like; lists on the internet; and a certain random element.


Outfits below the Cut )

Vote for your favourite of these costumes. Use whatever criteria you please - most practical, most outrageously spacey, most of its decade!

Voting will remain open for at least a week, possibly longer!

Costume Bracket Masterlist

Images are a mixture of my own screencaps, screencaps from Lost in Time Graphics, PCJ's Whoniverse Gallery, and random Google searches.