毎日

  • Pleroma Markdown

    For some reason, I thought that the different markups would come through with flags in the api (i.e. plaintext would be marked as such, etc. etc. etc.) but it’s all just parsed in the back-end and comes down as statusnet_html as normal.

    Not sure why I thought different, probably because when I’m doing front-end junk between different markup formats I’m used to being stuck with all the work at build time on the front-end. Anyway, this is the first pleroma syndicated markdown post to jumanji.io and it barely has any markdown, yay!

  • jumanji io blog is back

    Looks like jumanji.io/blog may have been down merely because of a change in gitlab's IP address (meaning my A record was pointing into the void!)

    The next big change for the site (via the gatsby-source-pleroma plugin) is that it will dynamically accept and parse each post node as the format in which it was posted.

    At the moment, the way that each post is rendered on jumanji.io/blog (again, via the gatsby-source pleroma plugin) is that it actually reads the HTML version of this post and feeds it into a `dangerouslyInnerSet...` tag to render it. Rendering straight up plain text is actually more of a pain given that the rudimentary html markup makes for good hooks for anything I need to parse out.

    Now, with markdown and proper html, the only change I need to make is to support markdown. I'm really excited about this because markdown is a much more friendly format for making posts and will allow me to actually make more fleshed-out posts, whether or not they're actually longer. Since remark support is already really tight with gatsby, it will be easy. It's just a matter of reading the right key to identify the markup type of any given post. That level of flexibility is cool.
  • foggy retweeted a status.
  • Writing

    I cranked out 3000 words last night on something I've been working on for months. Until now its been nothing but notes, notes, notes, so it felt good to finally synthesize a lot of that in one go.

    Of course, it's an absolute mess, but that's what editing is for. It took me a long time to get comfortable with the idea of a zero draft and just staying in writing mode as long as possible, but I don't think I'd get anything done otherwise.
  • Steam on Linux

    Like everybody else who is a linux-head, I'm really excited about the fact that Steam now ships with built-in support for playing non-native titles on Linux via Proton.

    When I went to try it out on my relatively new Manjaro install today, however, it uh... it just wouldn't launch. This is after I woke up to having no internet connection because I updated my kernel and didn't have a built version of the driver for my wifi adapter under this particular kernel.

    YAY LINUX.

    Anyway, I think Steam was just having some kind of issue updating, because after a fresh reinstall it worked... after I restarted my computer. That's something I always forget to do on linux these days because more often than not (especially lately) I'm doing sysadmin stuff on remote servers where the issue is always me being new and not "hey have you tried restarting it." I guess I'm happy that I've learned enough that my problems have circled back around to the same kinds of problems sane, non-power users have.
  • Rails to Phoenix

    I obviously should and hopefully will write at length about this at some point, but one of the most dramatic changes I've noticed in shifting some of our apps at work from Rails to Phoenix is the utilization of open PG connections.

    If I tell a Phoenix app "open 100 connections" and proceed to check the connections of the corresponding PG db, that PG db has 100 connections open, period. Granted, since Phoenix appears to leave the connection open, I can't actually verify that all of them are getting used when a high volume of connection comes in (just because a connection is open if it's open all the time doesn't mean it's being utilized) but it seems like a pretty safe assumption that if it can open them, it can utilize them.

    Rails, by contrast, doesn't have this same kind of linear relationship with the utilization of its database pool. In fact... I can't really figure out the math in terms of how it works out in actual usage.

    I'm told that the math is supposed to work out quite neatly: the number of puma clusters you have times the number of threads you have running on each one (clusters x threads) is your db pool usage. And this is of course circumscribed by the db pool allocation of your application (in other words, there is a hard max that you set in app).

    But... I've never once, ever, in nearly two years of some pretty highly trafficked apps, seen a pool allocation max hit or even APPROACHED. Rails appears to utilize its db pool allocation on the fly, which makes it easier to tell exactly how much it's using, but it's also wholly apparent that it's much, MUCH worse at actually **using** what's available within any given allocation. While I know some of this just spins off from concurrency issues, I'd love to know the actual mechanics of what's happening and why, because... it's pretty dramatic how much worse it is out of the box.
  • foggy retweeted a status.
  • MAXIMUM BOSHI

    absolute_unit.boshi.png

    Tried swapping out the Pleroma logo file a few times yesterday to get it to be a Boshi in a specific spot. Since the cache didn't update, I just thought it never actually worked.

    It uh... it worked.
    Screenshot_20180822_193452.png…
    a post image
  • Upgraded to the latest Pleroma again, looks like it got some peertube support. I don't know about all that, but I'm excited that the link in my bio actually works now and it's not just all plain text. Woo!
  • foggy retweeted a status.
  • Stop using Medium

    I think engineers at Medium have done a great job with the platform, and complaints about all the adtech they've cluttered up their ui with were decisions I'm sure they weren't excited to make.

    But as a platform, I'm tired of tech folks posting EVERYTHING there. Of all people it seems like those with knowledge of other platforms and the ability to post their own stuff neatly and statically should take advantage of that fact and stop using an obnoxious, paywalled service.

    I just don't get the thinking behind it. I'll read a post about something I care about no matter where it is. I'm at a point where I'm LESS likely to read something on Medium. Not sure where other folks are at with that.
  • Boshi favicon and logo \o/
  • foggy retweeted a status.
  • Updated Pleroma again today after last week. Turned on post stream, it's pretty performant and it looks great with the custom highlights of various users.

    I'm also a big fan of the tabbed user settings. It wasn't SUPER egregious, but it was enough to notice.

    As I've been typing this, posts have been neatly streaming in to pleroma-fe and it looks great and I'm super psyched about it. I may make a non-longform account on this pleroma instance just for regular use.
  • Twitter infection

    I've seen discussions cropping up (mostly on Twitter) about how "Mastodon" is not a great place for marginalized folk (of course, they're talking about the fediverse and are treating Mastodon as monolithic, but that's partially a communication and marketing problem on our end if I'm being honest). I've also seen it on here via--apparently--Wil Wheaton?

    I see two things happening here.

    The first is this assumption that Twitter and companies like it have a set of reliable, scalable tools for dealing with harassment and outright abuse. We know that this is patently false. Some folks might want to hand-wave and say that if something *really* bad were going on, at least you'd know it would be taken care of promptly on Twitter, whereas here you'd have to rely on loose moderation.

    I've seen people's children threatened on Twitter and there's been nothing done about it. And we've all seen hundreds of trolls flood people of color and women's accounts with complete garbage in real time with no repercussions. While distributed and home-grown moderation pose problems, they also build in barriers between groups of people and encourage actual humans to actually assess a situation and take action.

    The second problem is... the way this all came up and the way it's being talked about. For Wheaton to come over here and drop a link like that about how this isn't a good place to be if you're "marginalized" is the most Twitter-ass shit that I can fathom in my brain. Like, if you ask me "hey what would be the Twitterest-ass thing for the most Twitterest-ass person to come over here and do?" I would have written that Wil Wheaton would stick his neck in this convo.

    Even the twitter thread to which he links is just so... twittery. Being free from the context of twitter let's you see that so many discussions there are almost 100% about putting the cart before the horse and building a series of arguments around forwarding some half-thought-out series of criticisms that you decided on beforehand. I seriously cannot wrap my neurons around someone using the platform of TWITTER to make a thread about the failings of any other platform or community to moderate and make people feel safe.

    Too many of the problems we have are platform-independent and require extremely hard solutions that clearly we haven't thought of yet. If several thousand people decided to make the fediverse their playground to fuck with people and troll and break things and hurl slurs, they could do it, ad infinitum, and it would be pretty hard to stop them.

    Our attention should be focused on which set of tools gives us more freedom to feel safe and decide how we handle these issues reliably and for OURSELVES. Any discussion that points a finger at anyone (even Eugen) is build on this weird monolithic, celebrity fetishizing assumption that there are saviors and ruiners at the helms of all these situations. Ultimately there are just tools, and those tools are either more or less democratic and are either more or less concerned with the impact they have on the people using them.
  • Service worker

    I believe the service worker for my blog is screwing up in such a way that it detects when it needs to pull new stuff but then it fails, going blank, until a user refreshes the page to see a fresh post or two.

    I'll probably just turn it off: it's sort of overkill and I'm not sure how best to debug something like that, especially since it's absolute hell debugging service worker issues in a dev environment.
  • Plume, write.as, blogging and federation

    What is a blog, anyway? Like, what is this? Is a toot a blog? It's for-sure a microblog, right? And that's a blog, yeah?

    With the subset of write.as drama I'm seeing, there are at least two levels to talking about it. If you have a technical background and are here at least in part because you support FOSS, you shouldn't be casting your lot with a closed-off program that is more-or-less federating so that it says it can federate.

    Pleroma is here. It has an expandable 5000 char limit. If you want something more conventional, just do what I do with https://jumanji.io/blog and piggyback off of one of Pleroma's API's and statically/dynamically pull in your posts that way.

    If you want something that's more of a WYSIWYG, then I understand that, but is THAT why you're using write.as at that point? I'm happy that people are so excited about decentralized solution here, but, to invert the adage, you don't have to have a baby just because you have some bathwater.

    On the other level, for NON-technical people, I think having too many tools that do too many specific things and market themselves as such is obviously bad because it completely obfuscates how these ActivityPub services interact with each other. You can ALREADY write longer posts (e.g. what you're reading right now with your eyeballs) on the fediverse and do what you want with them elsewhere. You can ALREADY upload pictures and have them federated. etc. etc.

    I worry, often since I started using federated services, that there is too much focus and excitement about mirroring the micro-product model of major monolithic services, and not enough excitement and exploration of and about solutions and implementations that set federated products and decision-making apart.
  • Boshi

    That is all.
  • My parents just finished clearing the furniture (literally all of the furniture except like, a wicker chair and an old weird blue table) from the house I spent the last dozen years in before moving out on my own. Apparently the fellows who came to take the furniture (it's some big consignment operation) were huge Green Bay Packers fans, and lost their shit when they saw the giant Brett Favre Fathead sticker thing I had in my bedroom. My mom said they're taking it back to where they work and that is just so excellent.
  • Latest Pleroma

    Just updated https://boshi.press to the latest Pleroma release. Was worried it'd be complicated but... it really wasn't. Pull, migrate, restart. Always nice.

    Newest release includes this gem of a PR https://git.pleroma.social/pleroma/pleroma-fe/merge_requests/285

    It allows you to pick out specific individual users in your timeline to apply highlight colors. It's easy to use, and although the initial UI for the color selection isn't the prettiest thing on planet earth, the resulting highlight is pretty fantastic.

    Especially since people change their avatars and handles (although this is less so on here than on twitter), it's nice to be able to highlight the content your interested in, and in ways that you actually WANT to look at. I... can't really imagine a major site giving you that kind of fine-grained control. Seeing user choice extend to the UI level like this is really neat.
  • We're ACTUALLY back

    The build system for the jumanji.io sourcing of these pleroma posts is a complete fucking house of cards. For those who don't already know, I use a static site generator called Gatsby which, at build time, pulls in posts from pleroma using an npm plugin I threw together. Gatsby then has infrastructure to turn each data point (with a little help) into a graphql node. In this case the data points are these posts.

    The issue is that using graphql encourages declarative code design, which must be supported by a reliable query infrastructure. In other words, if I am statically going to simply state that I require X, Y, and Z and the the middleware all of a sudden no longer provides an interface to even ASK for Y, the _entire thing breaks._

    That's trash.

    Good API design solves this issue, but what if your API was designed for a more dynamic front-end? What if you were enough of a bonehead to think you ought to build a declarative, STATIC front-end that sourced data from a DYNAMIC social media source where any given batch of data might completely lack an important field?

    *Ahem*

    The solution in this case is "simple": I need to make sure that my npm plugin is able to provide a reliable layer from which to query independent of whether or not any given set of queries may yield a certain field.

    Of course, this has very much been an on-the-fly, reactionary task, as I learn how the API behaves as well as catching cascading issues that result from unsafe checks for the presence of various fields. But progress... has been made?
  • Ha, looks like pagination might be breaking the blog page by only giving the latest page?

    I WILL MAKE THIS STABLE OR DIE TRYING.

    ... Or I'll do something more stable lol
  • foggy retweeted a status.
  • WE BACK

  • foggy retweeted a status.
  • Elixir and website shenanigans

    So, jumanji.io is down while I wait to get home and update my gitlab txt records. I'd like to just host it myself at this point but I'm still clinging to the convenience gitlab, the fact that it does hourly rebuilds of my site with a nice interface, and... not giving myself another project lol

    In the meantime, I'm building out my first fully functional module in Elixir today that does some heavy lifting. Up to this point I've only written modules that are this beefy in Rails and while there are a lot of similarities in terms of the user-friendliness, the code design is speaking to me (if that makes sense) more in Elixir than it has in Ruby (and Ruby is my bread-and-butter language).

    This is something I'm still wrapping my head around, but opinions that a functional programming language has (whether strong or a tad implicit) make me feel like I'm being pragmatic when I navigate them: I feel like I'm able to bounce off of them and make better decisions for my code.

    Ruby, however, (and maybe OOP more generally) makes me feel like I'm constantly struggling with OVER-design AT THE SAME TIME as I struggle with GOOD design. "Is this too many methods?" "Should I make a module for this?" "Should this be a mixin?"

    None of those questions are unhealthy on their own, but anybody who has worked with a large OOP (and ruby especially) codebase knows that a LOT of the time, you're asking those questions either 1. because you legitimately aren't sure about what the best thing to do is despite a lot of experience (i.e. the language really isn't helping you or guiding you at all) or 2. you're making these hard decisions and they will be inevitably churned out or confusing for the next developer. The size and shape of the tech debt is so hard to wrap one's head around when writing Ruby code and struggling with both good OOP and being pragmatic about your particular project.

    Maybe I'm just bored with being so theoretical and happy that a language is opinionated enough to have done theorizing for me: functional programming means a pretty specific set of things. Yeah, I still need to figure out how to organize my code and not be stupid about it, but even just talking like that ("just don't be stupid") is a wild change from doing an ontology of bicycles and bicycle parts in my head every time I'm trying to make an informed OOP decision.
  • Git mirroring my stuff

    Now that I've got the hard drive hooked up to the raspi, I'm finally going to check out gitea and start mirroring my stuff on there. ... At some point I'm going to have to corral these projects a bit lol
  • Update on the tv: looks like they don't really sell smaller TVs with dedicated composite inputs anymore. They combine the composite video with the component video. My worry is they're still up converting that signal, so lag is inevitable.

    Might just have to grab a nice old CRT at some point.
  • A momentous occasion

    My favorite video game of all-time may very well be MVP Baseball 2005 for the GameCube.

    I haven't been able to play it for a year and a half because I haven't had a TV with a composite input in that span of time.

    I'm heading out to buy one today.

    If you've ever played baseball video games, then you know a huge part of them is the feel, especially of hitting, and I have never played a game before or since that captured that feeling the way that MVP 2005 did.

    I've been playing it so much and for so long, I have this weirdly crystalized knowledge of the MLB circa 2004 and just after. It gives me this surreal relationship to actual baseball where I'm rooting for teams and players in real life based on them being former members of my various fictional past dynasty teams.

    Sports fandom is something I've orbited around my whole life but has always ultimately repelled me. Still, my relationship to baseball is... weirdly rooted in my intense-but-zen-like relationship with an old, excellent video game.