1. yoooo i forgot to work on lemoncurry! again! oops?? here’s 1.8.4

    the reason i forgot to work on the site this time is that i bought a new 3ds xl, which arrived the day after i last updated lemoncurry 😳 the last nintendo handheld i bought was a ds lite, so i’ve missed a lot of gaming in the meantime and i have a lot to catch up on :o

    i got a special samus edition 3ds, which i guess was released to commemorate the new metroid game released for the platform? it’s really cool, here’s what it looks like

    new 3ds xl - samus edition

    the best part is that it came with a download code for the aforementioned new metroid game, samus returns, which is fantastic???

    • it’s a remake of metroid ii: return of samus for the game boy, which apparently was poorly received since it was a lot more linear than the first metroid??
    • samus returns, however, is quite possibly the best side-scrolling metroid game. yes, it’s that good
    • to progress through the game’s areas you have to find and slay a certain number of metroids in each, thereby unlocking the path to the next area, which is what made metroid ii so linear
    • that hasn’t changed, but now each area is absolutely colossal and takes literal hours to explore? you head off down a side path thinking “i’ll just check here quickly before going back to the main path”, and then, you don’t return to that spot for like an hour?? so it’s like you’re playing eight non-linear exploration-focused metroid games in a row??? i love it 💖
    • it’s also using utterly gorgeous 3d graphics, despite being a sidescroller, since the 3ds is so very good at 3d graphics. the environments look amazing, samus looks really really cool especially after finding the suit upgrades, everything looks super great.
    • this is the first side-scrolling metroid for a dual-screen console, which means it can finally use those two screens in the best possible way: the map - not a minimap, a full-size map - is constantly visible on the touch screen, which makes exploring a delightful breeze. it’s the perfect arrangement for classic metroid gameplay, and it makes me wonder why the ds never got a classic metroid?? silly nintendo
    • samus can aim and fire in any direction with the circle pad, rather than only eight directions like every previous side-scrolling metroid - this makes for some really engaging combat, especially while fighting the metroids (which are like, minibosses, i guess?) since they’re flying all over the place and you gotta hit their weak point for massive damage
    • she’s also got a new attack, called the “melee counter” - when an enemy charges at her, tapping the x button with good timing will stun the enemy, dramatically weaken them, and automatically aim her gun at them. it doesn’t do a lot of damage, but it means you can wipe out enemies with just a few blasts once they’re stunned! many, many enemies charge at you, including the metroids, so you get to use the melee counter a lot. it makes combat faster and way more interesting than in previous metroids, it’s brilliant 💕
    • i love this game please play it ✨

    oh yeah, the lemoncurry update!! like last time, i made two little changes

    1. i enabled cross-origin request sharing for all pages! basically, cors support means that javascript, running in anyone’s browser, will be able to fetch pages directly from my site and inspect the contents? which is cool for things like js-based indieweb readers :3
    2. font awesome 5.0.4 was out, so i bumped my version again! yay! i also found a changelog, which i can’t link since it’s inside the private fa pro repository :o it looks like they fixed a lot of spacing issues with the previous versions? neato burrito 🌯
    gaming lemoncurry metroid samus is a trans lesbian icon facebook.com octodon.social twitter.com
  2. two little upgrades in 1.8.2!

    1. i put the aria-hidden="true" attribute on any icon elements that aren’t necessarily font awesome - fa automatically inserts that attribute for you, but only for its own icons? what it’s for is accessibility: aria-hidden indicates that an element is just for presentation and can safely be ignored by screen readers c:
    2. font awesome 5.0.2 is out so i upgraded again! there are no changelogs for fa 5.x yet so idk what the differences are but yeah
    font awesome lemoncurry facebook.com octodon.social twitter.com
  3. also websub now works properly! i bumped the version to 1.8.1

    the problem was that superfeedr, despite claiming to support the field name hub.url[] for passing multiple urls in one ping? doesn’t actually do that? so now i’m just using hub.url and making several requests to it at once

    needing multiple requests isn’t a big deal, since websub pings are handled by the job queue 🐱

    lemoncurry superfeedr websub facebook.com octodon.social
  4. two cool things in lemoncurry 1.8

    i decided to bump the minor version because there are two fairly big improvements in lemoncurry 1.8!

    first up, lemoncurry does pagination!! 📄

    • every entry feed page now automatically paginates, ten entries to a page, which is good because i’ve now written thirteen entries here. which actually is.......... not a lot, i guess? but it’d have gotten real slow eventually if it kept on having to load every single entry all the time 😉
    • all the paginated feeds use rel="next" and rel="prev" appropriately, so it’s still very easy for programs to navigate. this is very good for indieweb feed readers, like woodwind, as well as for sufficiently advanced screen readers?

    the other exciting thing is improved micropub support! there are two major improvements that make lemoncurry more compliant with the micropub spec and therefore more compatible with a variety of micropub clients

    • my previous implementation only supported formencoded requests, which is the default format that all micropub servers are required to handle. however, micropub also defines a json request format, which happens to be more powerful in various ways, so now i support that too!
    • to authorise any micropub request, you have to provide a token - i supported one way of doing this, which is setting the Authorization http header, but the spec also allows the token to be passed as a query or form parameter, so now i support that too ✨

    yay!!

    but what’s next? well, the infrastructure changes i made while implementing those two improvements will make it way easier to implement the other aspects of micropub i haven’t yet, too:

    • you’re supposed to verify the oauth scopes attached to the client’s micropub token? that’s stuff like “yes, this particular token has been granted permission to create new entries”. you’ve probably seen the little prompts while oauthing with sites before, when you give your third-party twitter clients permission to post tweets and stuff like that. my previous token auth code made scope verification pretty annoying to do, but it should be as simple as a cute little check like this now?

      if 'create' not in token:
        return deny("you can't create new entries!!")
      
    • the micropub spec allows you to update existing entries as well as make new ones! however, it only allows updates to be provided in the json request format, not the formencoded request format. so of course that wasn’t possible when i only supported formencoded requests, but it should be easy enough to do now 🐱 yay!

    • the auth logic was pretty much hardcoded into the POST /micropub view handler before, which is bad because you actually need to use it in a few other places too - i had duplicate auth logic in GET /auth/token, since its whole job is verifying that the token is valid and will be accepted by POST /micropub? there’s also additional endpoints, like GET /micropub, that i haven’t implemented yet but that will need to reuse the same logic too

    pretty rad?? 🐎

    indieweb lemoncurry rambling facebook.com octodon.social
  5. 1.7.3 makes a teeeeeeeny change, but a very important one: my little profile links at the bottom of my h-card are now fully accessible for screen readers!

    previously a screen reader could see my username, but it couldn’t tell what site the username was for. now the entire username@domain account specifier will be available to screen readers, as well as sighted users by hovering over the link. technically a smart screen reader could parse the actual h-card markup and find out the urls that way? but that’s not very user-friendly and this is much nicer c:

    i also stopped displaying the username for sighted users, since it was getting super cluttered and i like hovering (or just clicking on it and going to the profile!) to see that better. plus it’s almost always just a variation on “00dani” so it’s not that important that you see it 😉

    oh also font awesome 5.0.1 is out so i bumped the version, that happened too lol

    hooray! lemoncurry facebook.com octodon.social twitter.com
  6. just one teeny-tiny change in lemoncurry 1.7.2!

    specifically, i noticed that the free version of font awesome 5 just came out, so i migrated lemoncurry across from fa 4 to fa 5! you’ll notice most of the icons look a little different, and some of the brand icons (like bitbucket!) are way different because the actual brands changed their icons! amazing

    i actually have a fa 5 pro license but it’s currently pretty complicated to use fa pro with an open-source project like this one :/ apparently there’s a special pro cdn on the roadmap? so i might switch lemoncurry to that once it’s available. for now the free icons are very nice tho!

    font awesome lemoncurry facebook.com octodon.social twitter.com
  7. i got a little burnt out on lemoncurry after releasing 1.7 :( back now though!

    1.7.1 does not add replies/likes/reposts, because i’m still figuring out the best way to integrate those into the design i have so far. my existing ui is very simple, and it doesn’t quite express “this is someone else’s post, which i’ve replied to/liked/reposted” as well as i’d like it to? instead, 1.7.1 contains just a bunch of little bugfixes and style tweaks - not much, but it’s been two weeks and i wanted to release something again!!

    gonna take a nap now because i’m a very sleepy girl :o nyawn~

    lemoncurry miaow facebook.com octodon.social twitter.com
  8. lemoncurry 1.7 - introducing cats!

    that’s right, the big new thing here is support for cats - or “categories”, as the microformats2 spec calls them because it isn’t nearly as much a furry as i am? ridiculous

    and yeah, they’re basically like categories or tags. each entry can have zero or more cats assigned, so i can organise them better! this one has several to show off how they look and work :3

    i’ve also started on getting replies, likes, and reposts to work, but i’m not happy with those just yet so i haven’t released them in 1.7 :o but they’ll be here Soon!

    lemoncurry *licks paws* miaow the real cat here is me octodon.social twitter.com