sorcyress: Drawing of me as a pirate, standing in front of the Boston Citgo sign (Default)
Katarina Whimsy ([personal profile] sorcyress) wrote2025-06-18 09:35 pm

Life, rest, mostly Stardew

Today was the day off to fuck around! Like, the single day I have to recover from burnout of the past school year and be ready for the upcoming several weeks of _stuff_. I'm sure that's fine, I'm sure that's how brains work.

Anyways, I spent the first ninety minutes of the day or so wandering around the various Alewife parks/reserves. There's a lot of good nature over there! I saw multiple turtles and a well posed squirrel and a pretty moth and some ducks! Also lots of green, which smelled overpoweringly of flowers and nature and that's weirdly good despite being a sensory nightmare.

Then I went home and played a _lot_ of days of Stardew Valley, the next two paragraphs are boring unless you're also into Stardew! )

In the real world, I wrapped up the evening by hanging with Ruthie and The Toddler for a bit. It was a good evening! A dinosaur drove a truck, which is entirely a correct thing for toddler toys to be doing. And the bedtime story was Magic School Bus and the Hurricane, which was great fun.

Tomorrow has many plans. Here are some of them:

*Call Tuesday, work out final plans/timing for the next few days

*Possibly create A Snack for the pride party

*Go to the grocery store

*Write an entire pre-Pinewoods todo list

*Clean the bathrooms

*Photograph free stuff so I can put it on Facebook and maybe even get it out of the house before I go

*Laundry is a Friday plan. So is packing for mine and Tuesday's adventures and maybe if I'm really good packing one (1) bag for Pinewoods.

Huzzah or whatever!

(And maybe after my dance party I can play a few more days of Stardew).

~Sor

MOOP!
cmcmck: (Default)
cmcmck ([personal profile] cmcmck) wrote in [community profile] common_nature2025-06-18 08:50 pm

A forest walk

We headed up Lime Kiln Lane and over to New Works then into the forest.

Things are now very green indeed although this is always a green landscape being on the west coast side of things:


More pics: )
sorcyress: Drawing of me as a pirate, standing in front of the Boston Citgo sign (Default)
Katarina Whimsy ([personal profile] sorcyress) wrote2025-06-17 09:16 pm

Summer!

I did it! I finished cleaning up my room! I was able to play School's Out For Summer at about 6:50pm or so, which is plenty good as these things go. *THUMP* goes the brain. I would like to do absolutely nothing! But things are coming up!

Here's some good things coming up in the near future:

*I'm going to go to Keuka (in the finger lakes in NY) with Tuesday's family! This appears to be the kind of vacation where you just chill out and read books and go for walks and things. I'm excited! I don't really know how to have that kind of vacation, so it'll be a good chance to try things out.

*I'm doing a road trip from Keuka to MD with Cameron (Tuesday's sibling) which sounds like it will be quite a nice time, honestly. I've road-tripped with Tuesday a fair amount, and ker mom a few times, so I'm excited to do it with another member of the family.

*Almost immediately after, I'm road-tripping back up from MD to Boston (and then ESCape) with mom and Wicked Auntie Robin. Mom and I are definitely compatible road trip buddies! I think Robin will be a good third!

(I recently got a kickstarter which is "gay games to play in the car with your girlfriend while she drives you to go camping" so I'm excited to have some road trips to play the gay games!)

*ESCape is going to be amazing, obviously. I'm the official scottish teacher! I get to MC in the evenings and teach two classes! AAAAH! Good aah, but also stressed aah.

*Once I'm back from ESCape I get to actually breathe for a week or so, which is going to be my play video games time. I am _extremely_ looking forward to it.

And then there's some other stuff in the back half of the summer. That's good too!

~Sor

MOOP!
jesse_the_k: Flannery Lake is a mirror reflecting reds violets and blues at sunset (Rosy Rhinelander sunset)
Jesse the K ([personal profile] jesse_the_k) wrote in [community profile] common_nature2025-06-17 06:39 pm

Abstract Art on a Northern Lake

I’m staying near a northern Wisconsin lake at 45.658965, -89.497625, where I’ll be revelling in 15:45 hours of daylight on the summer solstice. The logged-over forest is mostly red pine, and wow they’re pollinating—creating very abstract art near the dock

Pine pollen forms semi-opaque circles over shallow sandy beach described in entry

two more pics )

asakiyume: (feathers on the line)
asakiyume ([personal profile] asakiyume) wrote2025-06-17 04:37 pm

Dónde tienen su hogar las aves migratorias?

Where do migratory birds have their home?

Below are just three screenshots from a series of 16 photos on the Instagram account of somadifusa (Laura Ortiz), of murals she and the tattoo artist Azul Luna (Instagram account azulunailustra) painted in Bogota, Colombia.

I'm captivated by these images both of traveling swallows, some bearing backpacks and baskets, some with shells on their back like hermit crabs, and of hearts that are also nests, or that morph into shells, or sprout flowers and eyes. "Home is where the heart is," or the heart makes the home.

They write [my clunky translation--see the link at the end to see their original]
I have seen swallows nest in dark passageways, in airports, beneath bridges, in the palm of a hand and in the center of a star. Their wings cover kilometers, crossing the scars of the earth, their free flight reminding us that to migrate is not a crime and that borders are imaginary.


art by Somadifusa and Azulunailustra

art by Somadifusa and Azulunailustra

art by Somadifusa and Azulunailustra

art by Somadifusa and Azulunailustra


They conclude their post with a Spanish translation of a poem they believe is by Emily Dickinson, but there's absolutely no sign of it in English, and no sign of it in Spanish, either, except their post. Very strange... Please let them not have been taken in by an AI hallucination... please let there be some other explanation

Original post on Instagram
pauraque: bird flying (Default)
pauraque ([personal profile] pauraque) wrote in [community profile] common_nature2025-06-17 09:27 am

Dogwood Leaf Beetle

off-white beetle with dark markings resembling calligraphy

Getting into my car after a walk, I found this elegantly decorated beetle on my shirt. It has the very appropriate scientific name of Calligrapha philadelphica, also known as the Dogwood Leaf Beetle.

When it opened its wings to fly, I was surprised to see its inner wings were red. I guess that could be the wax seal on the parchment. :)

photo showing the red wings )
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.
graydon2: (Default)
graydon2 ([personal profile] graydon2) wrote2025-06-16 10:07 am

retrobootstrapping rust for some reason

Elsewhere I've been asked about the task of replaying the bootstrap process for rust. I figured it would be fairly straightforward, if slow. But as we got into it, there were just enough tricky / non-obvious bits in the process that it's worth making some notes here for posterity.

UPDATE: someone has also scripted many of the subsequent snapshot builds covering many years of rust's post-bootstrap development. Consider the rest of this post just a verbose primer for interpreting their work.

context


Rust started its life as a compiler written in ocaml, called rustboot. This compiler did not use LLVM, it just emitted 32-bit i386 machine code in 3 object file formats (Linux PE, macOS Mach-O, and Windows PE).

We then wrote a second compiler in Rust called rustc that did use LLVM as its backend (and which, yes, is the genesis of today's rustc) and ran rustboot on rustc to produce a so-called "stage0 rustc". Then stage0 rustc was fed the sources of rustc again, producing a stage1 rustc. Successfully executing this stage0 -> stage1 step (rather than just crashing mid-compilation) is what we're going to call "bootstrapping". There's also a third step: running stage1 rustc on rustc's sources again to get a stage2 rustc and checking that it is bit-identical to the stage1 rustc. Successfully doing that we're going to call "fixpoint".

Shortly after we reached the fixpoint we discarded rustboot. We stored stage1 rustc binaries as snapshots on a shared download server and all subsequent rust builds were based on downloading and running that. Any time there was an incompatible language change made, we'd add support and re-snapshot the resulting stage1, gradually growing a long list of snapshots marking the progress of rust over time.

time travel and bit rot


Each snapshot can typically only compile rust code in the rust repository written between its birth and the next snapshot. This makes replaying the entire history awkward (see above). We're not going to do that here. This post is just about replaying the initial bootstrap and fixpoint, which happened back in April 2011, 14 years ago.

Unfortunately all the tools involved -- from the host OS and system libraries involved to compilers and compiler-components -- were and are moving targets. Everything bitrots. Some examples discovered along the way:

  • Modern clang and gcc won't compile the LLVM used back then (C++ has changed too much -- and I tried several CXXFLAGS=-std=c++NN variants!)
  • Modern gcc won't even compile the gcc used back then (apparently C as well!)
  • Modern ocaml won't compile rustboot (ditto)
  • 14-year-old git won't even connect to modern github (ssh and ssl have changed too much)


debian


We're in a certain amount of luck though:

  • Debian has maintained both EOL'ed docker images and still-functioning fetchable package archives at the same URLs as 14 years ago. So we can time-travel using that. A VM image would also do, and if you have old install media you could presumably build one up again if you are patient.
  • It is easier to use i386 since that's all rustboot emitted. There's some indication in the Makefile of support for multilib-based builds from x86-64 (I honestly don't remember if my desktop was 64 bit at the time) but 32bit is much more straightforward.
  • So: docker pull --platform linux/386 debian/eol:squeeze gets you an environment that works.
  • You'll need to install rust's prerequisites also: g++, make, ocaml, ocaml-native-compilers, python.


rust


The next problem is figuring out the code to build. Not totally trivial but not too hard. The best resource for tracking this period of time in rust's history is actually the rust-dev mailing list archive. There's a copy online at mail-archive.com (and Brian keeps a public backup of the mbox file in case that goes away). Here's the announcement that we hit a fixpoint in April 2011. You kinda have to just know that's what to look for. So that's the rust commit to use: 6daf440037cb10baab332fde2b471712a3a42c76. This commit still exists in the rust-lang/rust repo, no problem getting it (besides having to copy it into the container since the container can't contact github, haha).

LLVM


Unfortunately we only started pinning LLVM to specific versions, using submodules, after bootstrap, closer to the initial "0.1 release". So we have to guess at the LLVM version to use. To add some difficulty: LLVM at the time was developed on subversion, and we were developing rust against a fork of a git mirror of their SVN. Fishing around in that repo at least finds a version that builds -- 45e1a53efd40a594fa8bb59aee75bb0984770d29, which is "the commit that exposed LLVMAddEarlyCSEPass", a symbol used in the rustc LLVM interface. I bootstrapped with that (brson/llvm) commit but subversion also numbers all commits, and they were preserved in the conversion to the modern LLVM repo, so you can see the same svn id 129087 as e4e4e3758097d7967fa6edf4ff878ba430f84f6e over in the official LLVM git repo, in case brson/llvm goes away in the future.

Configuring LLVM for this build is also a little bit subtle. The best bet is to actually read the rust 0.1 configure script -- when it was managing the LLVM build itself -- and work out what it would have done. But I have done that and can now save you the effort: ./configure --enable-targets=x86 --build=i686-unknown-linux-gnu --host=i686-unknown-linux-gnu --target=i686-unknown-linux-gnu --disable-docs --disable-jit --enable-bindings=none --disable-threads --disable-pthreads --enable-optimized

So: configure and build that, stick the resulting bin dir in your path, and configure and make rust, and you're good to go!
root@65b73ba6edcc:/src/rust# sha1sum stage*/rustc
639f3ab8351d839ede644b090dae90ec2245dfff  stage0/rustc
81e8f14fcf155e1946f4b7bf88cefc20dba32bb9  stage1/rustc
81e8f14fcf155e1946f4b7bf88cefc20dba32bb9  stage2/rustc


Observations


On my machine I get: 1m50s to build stage0, 3m40s to build stage1, 2m2s to build stage2. Also stage0/rustc is a 4.4mb binary whereas stage1/rustc and stage2/rustc are (identical) 13mb binaries.

While this is somewhat congruent with my recollections -- rustboot produced code faster, but its code ran slower -- the effect size is actually much less than I remember. I'd convinced myself retroactively that rustboot was produced abysmally worse code than rustc-with-LLVM. But out-of-the-gate LLVM only boosted performance by 2x (and cost of 3x the code size)! Of course I also have a faster machine now. At the time bootstrap cycles took about a half hour each (according to this: 15 minutes for the 2nd stage).

Of course you can still see this as a condemnation of the entire "super slow dynamic polymorphism" model of rust-at-the-time, either way. It may seem funny that this version of rustc bootstraps faster than today's rustc, but this "can barely bootstrap" version was a mere 25kloc. Today's rustc is 600kloc. It's really comparing apples to oranges.
yourlibrarian: Impala Desert Drive (SPN-ImpalaDesertDrive-fueschgast)
yourlibrarian ([personal profile] yourlibrarian) wrote in [community profile] common_nature2025-06-16 01:21 pm

International Rose Test Garden



We were only in Portland for a day but we had enough time for a few hours in the International Rose Test Garden. In fact we didn't even spend that long because it was smaller than expected and some bushes hadn't even bloomed yet (despite what the website said as mid-May being an ideal viewing time). We took about half the time we were there trying to park. It was also the most overcast morning of the trip -- we had amazing weather the rest of the time.

Nonetheless what was in bloom was lovely. Read more... )
silveradept: Domo-kun, wearing glass and a blue suit with a white shirt and red tie, sitting at a table. (Domokun Anchor)
Silver Adept ([personal profile] silveradept) wrote2025-06-16 09:37 am

The problem is that they don't stop - Early June 0205

Let us begin this entry with a commentary on the changing visibility of women in animation, where women are eventually getting to higher positions and responsibilities in addition to the often stellar and strong work they do as ink and paint animators, cel creators, and much of the day-to-day work that makes studios like Ghibli so well-known and beloved for their productions. And, of course, women in careers is also a following on from academic institutions that finally allowed women to sit their examinations.

And perhaps is even more following on from the work being done to make sure that people know about the contributions of African women to their societies, and that many old societies in Africa had reading, writing, mathematical knowledge, and were otherwise the opposite of the colonial narrative that wanted to paint them as barbarous and uncivilized so they could be enslaved without disturbing the colonizer's conscience.

Brian Wilson, best known as a member of the Beach Boys and a pioneer of a specific style of pop that came from it, has left the world at 82 years of age. The details of his personal life, as well as some of the more experimental turns and albums that Wilson did, are a stark contrast to the sounds and the easy commercial co-option that has happened to the Beach Boys music and sound. We are all more complex than we appear on the surface.

More governmental entities behaving lawlessly, more kidnapping, and more inside )

Last out for this post, highly-decorated, multi-gold medal winner, multiply-Olympic champion, and first to perform several maneuvers that now bear her name in the Gymastics Code of Points gymnast Simone Biles read undecorated, grievance-profiting, Fox News-supplicating, and all-around mediocre swimmer Riley Gaines for filth when Gaines posted about a softball team with a trans girl on it winning a championship. Gaines attempted to clap back by calling Biles a "male apologist," but I couldn't hear it very well over the sound of all that hardware clanking. Biles did eventually post something clarifying her comments as being about competitive equity and inclusivity and not singling out individual athletes for public scrutiny, but it has the feel of "people concerned about my brand made me do this 'clarification' " rather than a genuine change of position from Biles. Because that clarification makes it sound like Gaines might have had a point, and that's objectively untrue.

A libertarian-leaning, eye-catching eyesore has been bought, along with the land under it, by a local Native tribe, so hopefully the billboard will have a better sense of humor, or a better sense of politics, or both.

The National Hockey League's candidates for the Stanley Pup, thirty-two rescue dogs (one for each team in the NHL) looking for adoption, and all of who have great facts and team material available for them. Think Puppy Bowl, but hockey.

And the deliberate decision to lean into cringe in the Murderbot television series and buck the idea of people who never have human moments as protagonists. Combined with the performance of gender by SecUnit, and how that performance becomes meaningful once it's a choice instead of a requirement.

(Materials via [personal profile] adrian_turtle, [personal profile] azurelunatic, [personal profile] boxofdelights, [personal profile] cmcmck, [personal profile] conuly, [personal profile] cosmolinguist, [personal profile] elf, [personal profile] finch, [personal profile] firecat, [personal profile] jadelennox, [personal profile] jenett, [personal profile] jjhunter, [personal profile] kaberett, [personal profile] lilysea, [personal profile] oursin, [personal profile] rydra_wong, [personal profile] snowynight, [personal profile] sonia, [personal profile] the_future_modernes, [personal profile] thewayne, [personal profile] umadoshi, [personal profile] vass, the [community profile] meta_warehouse community, [community profile] little_details, and anyone else I've neglected to mention or who I suspect would rather not be on the list. If you want to know where I get the neat stuff, my reading list has most of it.)
sorcyress: Drawing of me as a pirate, standing in front of the Boston Citgo sign (Default)
Katarina Whimsy ([personal profile] sorcyress) wrote2025-06-15 10:42 pm

(no subject)

I have two days left of school, which is probably good, and then I slam into summer with several weeks of Very Exciting. I'm going to drive to MD and back in the span of about four days. Somewhere in here I need to finish preparing for my ESCape classes. I have to pack?!?! Maybe all my stints on crew mean I'll be able to pack a lot lighter than usual for ESC/Scots (lolno).

Tomorrow I should figure out everything that needs to be done in the school building before I depart for the year. Packing up. Printing things. Recycling many many pieces of paper. Submitting grades and paperwork and the like. (The printing things is sneakily a "prepare for ESCape" thing to do --I want to have some properly formatted dances or What Have You. I seem to recall I did quite a lot of this as a work-in-company with Veronica last summer, I probably won't have the MD time to do that again, but it's worth noting that MD does have printers. And so does MA. It's not the end of the world if I fail to print things, is what I'm saying.)

I've been playing lots of Stardew Valley, which I'm quite into, even if I'm getting a little stuck on some of the plot bits. Not looking anything up is a bit of a drag, but also feels very very good when I do figure things out myself. I am glad to have realized I can go back through the library and reread the books I've found --I was worried those were one shot readings, and I'd forgotten the early ones. Anyways, no spoilers, I'm a bit into my second summer.

Went to service ringing today, for probably my last bells for a month. So that's...a lot. Luckily it did not emotionally overwhelm me, maybe partly because I've had a low-key headache for a few days now. I arrived at Advent in time to help ring down, and then we did a mostly nice extent of Cambridge at Old North. (It was only mostly nice because everybody spontaneously exploded when we got to the plain course, and we limped through and barely made it. Sigh.)

Yesterday was pride and I wrote up a bunch of thoughts and should probably post them somewhere, instead of just manually sending them to various partners who like hearing about my life. I suppose there are others of you who like hearing about my life as well or whatever.

I finally picked back up the Endless Photo Organization Project the other day, and sorted a handful of photos. I forgot to note the number at the beginning, so I have no idea how many things got tagged. It's nice to get back into the swing of the project, and extremely nice to have set the whole thing up on the external harddrive, so switching it from old computer to new was essentially trivial. I wish I could figure out a few more keyoard shortcuts to speed things up a tick, but I'm feeling pretty okay with the mousing that has to be done.

Having finished words, I should do at least one of the dishes and going to sleep. Goodnight!

~Sor

MOOP!
blackcatofmisery: Snoopy from Peanuts by Charles Schul (Snoopy heart)
Amanda ([personal profile] blackcatofmisery) wrote in [community profile] common_nature2025-06-15 11:57 am

Knock Out Honey Bees

My mom's garden has a vigorous knock out rosebush just beside it, and various bees adore it. Although I'm severely allergic to bites and stings, I will still follow honey and bumble bees; they're too busy to care about me.

Fun fact about me: I cannot smell typical roses. Knockouts are the only roses I can smell.

Photos beneath the cut. )
mtbc: photograph of me (Default)
Mark T. B. Carroll ([personal profile] mtbc) wrote2025-06-15 08:00 am
Entry tags:

Not visiting the US yet

It is disappointing to be starting my new job by missing out on an infrequent on-site meeting in New York City later this month. Unfortunately, my US passport is being renewed and it would not be legal for me to visit on my UK passport instead. At least this kind of problem comes up only every few years.

When I renewed my US passport, I looked into if I could do it in person at the consulate but the anticipated travel wasn't soon enough to qualify. Now, the by-mail option turns out to be taking a couple of months and expediting the processing at this point still wouldn't be quick enough. So, there seems to be an awkward mid-range duration that the advice could be adjusted to cover rather better. After my application arrived at the US Embassy in London, it still took over a week for it to be received at a processing center so perhaps everything has to go from London to the US and back these days.