# I am the Watcher. I am your guide through this vast new twtiverse.
#
# Usage:
# https://watcher.sour.is/api/plain/users View list of users and latest twt date.
# https://watcher.sour.is/api/plain/twt View all twts.
# https://watcher.sour.is/api/plain/mentions?uri=:uri View all mentions for uri.
# https://watcher.sour.is/api/plain/conv/:hash View all twts for a conversation subject.
#
# Options:
# uri Filter to show a specific users twts.
# offset Start index for quey.
# limit Count of items to return (going back in time).
#
# twt range = 1 2032
# self = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=732
# next = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=832
# prev = https://watcher.sour.is?uri=https://anthony.buc.ci/user/abucci/twtxt.txt&offset=632
my brain: looks like there's an OS upgrade for the laptop let's install it
also my brain: no way it's getting late if something goes wrong you'll be up for hours trying to fix it
my fingers: oops I already hit Yes lol
@eaplmx you know, stick with what you like. for me, Vivaldi's handling of tabs is pretty nice. I like that you can stack tabs in groups and name the groups. and you can put them along the side or at the top of the window.
@prologic excellent, thanks! I'll give that a try.
@prologic 🤔 how's that go, sync the feed locally, delete the post(s) I want to delete, then sync it back to the server?
@support well crap how do I delete this post?
I run gitbucket
, a github-like web application for managing git-based projects, including issues, notifications, webhooks, etc. Basically all the stuff you'd expect to have. gitbucket
is a written in scala
, and deployed as a single 70 Mbyte jar/war file that can be executed directly on a JVM or mounted via a (JVM) servlet container. I run it with a max RAM usage of 256 Mbytes and it runs fine.
I don't get why people hate on JVM apps so much. That's pretty lightweight given what it does for you. gitea
wants 512 Mbyte 1 Gbyte according to their own docs. I assume you could reduce that safely, but still.
Voted by mail last week. I did something unusual for me this year, which is vote right down the line for candidates of the not-trying-to-destroy-the-country-as-we-know-it party. Usually I'm more circumspect about who I vote for. I'd check out their policy proposals and not pay much attention to party affiliation. Not this year. This year, party affiliation is a make it or break it issue imo.
@eaplmx oof, yes, and the sun going down by 4:30pm 🌃
Time change over here in the US. The baby woke up before 6am 🥱
Today my baby plunged his hand right into my coffee before I could react. Luckily it wasn't hot! He's tried this before but since we never let him do stuff like that he seemed to have given up trying. Guess not!
@justamoment that's the thing--in the instance I posted, that option was not available. Its possible they were using HSTS. the only thing that worked was the thisisunsafe business
@lyse Breathtaking views! 🤯
There are people who'd say "no way am I going up against Musk! I'll never get a tech job again!" Think about what that means for a second, if you hold that belief or sympathize with it. It means there's one rich guy whose whims frighten you so much that you refuse to advocate for yourself out of fear of reprisal. That's how mobs work. Rich individuals are not supposed to have that kind of power. It even violates the basic tenets of *capitalism*, let alone the basic tenets of democracy/rule of law. If you're living in fear like that, something has gone way off the rails. Naturally you have to protect yourself and if that's what you feel is right then I'm not here to criticize. I just think it's important to recognize the world we inhabit for what it is.
Since it looks like Musk it going to try going through with mass layoffs, I've been sharing information about what to do on LinkedIn for Twitter employees who happen to follow me. In the US, this act is likely illegal: the WARN Act requires 60-90 days warning before mass layoffs can be conducted. There are protections in place at the federal and state level against abuses like this. That doesn't mean these protections will be applied, but not pursuing some kind of remedy here is a guarantee they won't. Whatever Musk's actual aims might be, if allowed to go on like this what's happening at Twitter is a big step backwards in terms of labor protections.
Nothing remotely like this would be possible if the tech industry were unionized, which it really ought to consider doing.
The edgelord-to-rightwing-conspiracy-theorist pipeline continues apace.
@mckinley To be perfectly honest, right now it's used as a proof-of-concept in demo-oriented meetings in an attempt to drum up support for further development. The vision, though, is to do a variety of real-world things with it. The real power of a simulation is that you can set up a wide variety of what-if scenarios, run them, and see what happens, even gathering statistics about the outcomes. You can't rewind and re-run the real world to see what would have happened if you'd made different choices, or if your luck had gone differently, but a simulation gives you (some very limited but still valuable) ability to do that. Armed with something like that, you can use it to plan investments to maximize resilience; test emergency response plans for effectiveness; conduct training exercises; or, even guide emergency response as an event is unfolding.
We focus in particular on what are called black sky events, namely events that lead to a wide-area crash of the electric grid. Natural events like geomagnetic storms can do this, but so can man-made events. Texas came very very close to this scale of crash in 2021. It doesn't seem to be that well known, but if a large-enough segment of the US power grid were to go offline, it could take weeks or months to bring it back; so called "black start" capabilities are limited, and have been degrading due to lack of attention and maintenance. So, a simulation can also bring out just how bad the impacts would be were such an event to occur and thereby spur action.
@ocdtrekkie Going from fully, safely browsable to 🚨STOP!!! YOU WILL BE HAXXED IF U VISIT🚨 overnight is pretty harsh. Why not have the warning *before* certificate expiration, though? Does it really matter? One way or another you're cutting someone off from using the site eventually.
Back in the Good Old Days you could email webmaster@example.com, ask them if their site was still working correctly, and expect an answer. I guess back in the Good Old Days you didn't expect instantaneous delivery of content at all times forever, though.
@cobra I have some grocery shopping I've been putting off......
Looks like nitter.net sorted out its certificate.
@eaplmx wow that's surprising to me
@eaplmx hmm, could be. My knee-jerk assumption was that many of these people are boomers or boomer equivalents, the kind of people who found email absolutely mystifying for 20 years, but now spend all day forwarding emails about politics or bad jokes to their kids who don't want them.
@prologic not that I'm a fan of mastodon, but I'm always blown away by articles like this where someone says
> it took a few hours just to master its new vocabulary.
What? Mastodon looks like a clone of twitter. You "toot" instead of "tweet". There's a Mastodon mascot instead of a bird. The freakin' icons for replying and boosting (which is retweeting if you're keeping score) look the same. They retained the star that twitter used to have for favorites. The learning curve is about as flat as it could possibly be. It took me all of five minutes to get oriented when I joined there. Who are these people who take "hours"?
@eaplmx always dark theme. I have low vision, and dark themes are a lot less stressful on the eyes and a lot more readable.
@mckinley The bottleneck in distributed simulations is almost always the network, so we pay special attention to minimizing network use and reducing the impact of network latency as much as possible. But I find these are "easy" problems compared to the state management problems I alluded to in the previous twt (they're not easy at all but they are less thorny let's say)
@mckinley For my organization I lead efforts to create a large-scale multi-sector simulation of human infrastructure, including things like the electric grid, the natural gas system, water and wastewater management, and several others, together with their interdependencies (most things depend on electricity and water, some things depend on natural gas, etc). We have a nice prototype at this point, and I'm working on extending it.
We've anticipated from the beginning that we would not be able to run all the software involved in such a thing on a single computer. This immediately creates a problem similar to the problems that online multi-user video games have: there's a world state that is relevant to all users, but not all users have immediate access to all aspects of the world state because state changes can be happening on machines remote from them. Keeping state consistent in a distributed software system is not a new problem of course, but this particular application brings with it some special requirements. For instance, since we are simulating aspects of the real world, there's a simulation of wall clock time (the simulated time from the perspective of the simulated world) that needs to be coordinated/synchronized among many agents in the system running on different machines that are potentially in different time zones with different real-world wall clock time. Naturally there are other types of state that must also be managed--for instance, if some component in the electric grid does down, and some agent depends on that component for its (simulated) electricity, it has to be notified of this change and react accordingly. There are two levels of notification/reaction. One is the "simulated physics", whereby powered entities stop receiving power when their power source is cut off or shuts down. Then there's the "simulated cognition" (for lack of a better term), where the agent becomes aware that it no longer has power and has to decide what to do about that (start using a simulated generator e.g.).
@mckinley I'm working on how to ensure that multiple interactjng agents possibly running on different machines scattered over a network have consistent world state without requiring inordinate amounts of network communication
@prologic you don't need a plugin; that's the basic functionality of the tool. Type two brackets ([[), and then you should see an autocomplete list of possible files to link to. Type a few letters to filter the list.
@lyse well, if you're going to go there, then every Turing-complete language can support any construct from any other Turing-complete language. That's not a very helpful way to look at it, though. Each language makes some constructs easier to do than others. Even a trivial algebraic data type in java will be dozens of lines of code, whereas in scala you can make one in a handful of lines of code and in Haskell it's often a one-liner, because those languages are tuned to doing that and java isn't.
@eaplmx wait what kind of non-operating system is this??? you can't access folders on your own device?
@prologic I use synching with obsidian and it works fine. Just create a local vsult in the filesystem inside a folder you already sync, or add the local vault folder as a new synced folder.
@lyse I said that directly after
> Where I stand is that I refuse to use a language that doesn’t have a sound, well-described theoretical foundation anymore.
There's no "theory of python" as far as I've been able to find (I'd be happy to be pointed in that direction though if it does exist). Scala is based on Dependent Object Theory. Haskell is based on Algebraic Datatypes and monads. Etc. python's a mish-mosh of imperative programming, object oriented programming, functional programming other stuff. That doesn't mean it isn't useful. It just means that for me personally, I don't trust it the way I trust a language based on a firm theoretical foundation.
> Human communication is oriented towards making sense out of what others are saying or writing, and so we have a strong tendency to find coherence and meaning even when they aren’t there. In the case of text produced by an LM, they aren’t there. A LM knows nothing more than probabilistic information about sequences of words in the corpus it was trained on. There is no communicative goal, no genuine meaning at all behind the text it produces: it is a stochastic parrot.
@prologic Depending on where you draw the line: Google Duo, Google Plus, and Google Voice. Google Chat is the new one. Google Allo?
I guess Google Hangouts is finally dead.
Why is Google such a mess at making messaging apps? This has more or less been a solved problem for decades. Google Talk worked well enough, and since it was based on XMPP and Jingle it was perfectly suited to become a large-scale text/voice/video messaging system. If they'd run with that they'd have been able to dominate that space, I think. Instead, they've created and shitcanned half a dozen messaging apps and platforms, flailing around copying someone else's app (now they're trying to copy Slack I guess).
@prologic It's not for everyone, but it's worth noting that scala is not a pure functional language. There are imperative constructs if you want them, there are OO constructs if you want them, and you can use it like a scripting language if you want. There are several libraries for doing go-style coroutines if you want that. Also, scala can be transpiled to Javascript, compiled to JVM bytecode, or compiled to native code (in several different ways). It's a misconception that scala is somehow tied to the JVM (obviously if your code calls out to Java libraries, which it can do, then you're stuck with the JVM, but that is not a necessity of the scala language). The native code, in my experience, is very performant.
@eaplmx I'm pretty biased because I've been using scala as my language of choice since 2013 or so 😆
Whatever documentation issues there were in the early days have long since been addressed, in my opinion. Martin Odersky, the original creator of the language, is in academia and regularly publishes academic articles on scala and its theoretical underpinnings along with his students. So, if you're into that sort of thing, there's lots of theory to read. Since it's typically a top-20 or top-30 language in various language surveys, there's a lot of StackOverflow activity about it, meaning more nuts-and-bolts practical stuff. The major libraries and frameworks nowadays tend to be very well documented (I've never used play and cannot speak to that one).
Scala doesn't look anything like java. You could write scala that looks like java if you want, in the same way that you could write C that looks like java if you want. But idiomatic scala is not like java, and generally the OO facilities in scala are not used (in my experience anyway). You can compile scala to Javascript and run it in a browser, or to native machine code--it's a distinct language with the JVM as only one of its compilation targets.
Where I stand is that I refuse to use a language that doesn't have a sound, well-described theoretical foundation anymore. I've been burned too many times learning languages that lack a clear foundation (*cough* python *cough*); I think this inevitably leads to a lot of wasteful hacking and confusion. I also very much want functional programming constructs to have first-class language support, without being forced to always use them forever like you would in a language like Haskell. It's also nice to have a big ecosystem of existing code to use if you need it. Scala satisfices on all those criteria, and has a bunch of other nice features besides, so I stick with it. It's definitely not for everyone, but 🤷
what's extraordinary to me about Obsidian, and why I chose to consolidate so much of my work into it in spite of its shortcomings, is that underneath all of this is just a directory of mostly vanilla Markdown files (I forget exactly which Markdown flavor, but it's a typical one). I use and edit files in my Obsidian vault in other Markdown editors or just ordinary text editors when I feel like it. I use SyncThing to sync that to other computers and my phone, and that works fine. You could make the vault a git repository no problem if you wanted to. If Obsidian ever goes to shit you don't lose any of your stuff because it's literally just a directory of Markdown files (you do potentially lose some of the functionality built on top of it).
@prologic for me, obsidian has been a complete game changer. It's one of those handful of tools that once you start using it, you can't ever see yourself giving it up. I also think it's not for everyone so you'll probably have to evaluate it yourself to see where you stand.
A couple warnings:
It's an Electron app built with Javascript/web tech, for the most part, and that is potentially a big problem. I check semi-regularly whether it's making network connections I don't want it to make. I've considered only running it in a container or firejail or some such thing, but haven't bothered so far because it hasn't misbehaved. It uses a fair amount of system resources and wants to render on the GPU if you have one. I could see all that being very offputting for many people.
I have something like 59 plugins installed, and the experience of the tool is going to be largely shaped by which plugins you use. The base Obsidian tool is more or less a fancy Markdown editor with nice capabilities for navigating and interlinking Markdown documents. The plugins are where it really shines. Like with the app itself, the plugins are written with Javascript ecosystem stuff, and you have to be careful with them because they can and might make network connections, too, or use a lot of system resources.
Anyway, with the warnings out of the way: I use obsidian for
- Planning, with the kanban board plugin and the excellent support for todo lists/task management
- Learning and writing, with the spaces repetition plugin, the support for LaTeX figures and math equations and source code highlighting
- Data visualization, with several plotting plugins that let you make plots, graphs, flowcharts, you name it
- Teaching, with the advanced slides plugin and the Excalidraw plugin mainly
- Math--there's a computational algebra plugin that will perform all sorts of math operations, including solving for roots etc
- Maps--there are several GIS plugins for making maps
(scala does not compile insanely fast, though the whole community recognizes this and is trying to fix it. also the built-in concurrency primitives aren't the greatest right now but there are exceptional libraries that do it well)
@prologic it's interesting. I'd say that with a couple exceptions this list applies to scala too and it's why I like that ecosystem so much
@eaplmx no opinion, because I know neither
@eaplmx trouble is, I don't really have a use case. I was just curious about it and wondering if anyone had experiences they would share. If I were to use something like this it would be for backups I guess. Since it's written in go I assumed @prologic would know all about it lol
Anyone have experience with Perkeep?
@prologic don't you have a pile of these computer things in your house?
@prologic Mastodon downplays the local timeline these days. The official Mastodon android app does not even have it. I think that's a real loss/potential opportunity for yarn.social
@ocdtrekkie I get what you're saying, but I can't shake the feeling that there's a "preparedness paradox" at work here. How many problems would exist that we don't currently have if there were no TLS / PKI?
@eaplmx obviously lemmy needs to be rewritten in go
Learned a cute little trick on github today and figured I'd share in case there are others like me who didn't know this.
If you are using a chrome/chromium based browser and hit a site with an expired certificate, you can click anywhere in the whitespace of the error page, type "thisisunsafe" (all one word), hit enter, and be brought to the page.
Right now https://nitter.net is having certificate issue so you can test it there.
Anyway, obviously be careful because bypassing a warning about an expired certificate is potentially dangerous.
@prologic we are implementing a gossip protocol using IRC as transport 😆
nitter.net appears to be having certificate issues. My browser won't load it. NET::ERR_CERT_DATE_INVALID is the error.
Sorry to become the cause of a yarn.social moderation policy discussion. I feel like I just got here...
@prologic maybe that's adequate for now? pod operators take a zero tolerance stance with respect to their pod policies, whatever those are, and users are fully empowered to change pods if they don't like how the admin is administrating?
@mckinley Yes, for sure. it should be at pod operator discretion. I don't think there should be a forced centralized control mechanism. I was just musing about what might thread the needle.
Objects my baby has thrown into the laundry include:
- a boot
- a doorstop
- a flower bud
- leaves
@prologic Yes, it's definitely a can of worms and it sucks that there are people out there who make it so.
You're right that there can't be effective centralized control of all pods. Besides defeating the purpose of decentralized networking it doesn't work.
I do think, though, that yarn pods could be built to sort of nudge things in a nicer direction.
I wonder. Imagine if a pod operator decides a twt should be deleted, then this set off delete calls for that twt to all peered pods, which in turn propagate delete calls. Sort of like how adding a post works. However, the pod operator has the option to either let these go through automatically, or to turn that setting off and dexode manually whether to delete.
@prologic idk, is admin abuse or user abuse the biggest concern? Giving users the tools they need to seamlessly migrate to a new pod helps with admin abuse. User abuse is a different matter, especially given the decentralized structure.
@tkanos This is essentially allowing for Nazi pods, because that is one of the first cohorts that will come here once it's adopted by enough people. That's what has been happening with Mastodon. I think we can do better.
@lyse the colors are so amazing. The mushrooms look pretty cool too.
I had a feeling that twitter could go full Truth Social / Parler eventually under Musk's rule, but I didn't think it'd happen so fast.
I'm not a fan of Hillary Clinton by any means, but publicly being an edgelord about an assassination attempt? Not OK from anyone, let alone him.
@jlj @xuu hello! @prologic and I were chatting about the question of globally deleting twts from the yarn.social network. @prologic noted that he could build the tools and endpoints to delete twts, but some amount of cooperation from pod operators would be necessary to make it all work together. He asked me to spawn a discussion of the subject here, so here we are!
I don't have enough technical knowledge of yarn.social to say with any credibility how it all should work, but I can say that I think it ought to be possible and it'd be good to do for those rare times when it's needed.
I was inclined to let this go so as not to stir anything up, but after some additional thought I've decided to call it out. This twt:
is exactly the kind of ad hominem garbage I came to expect from Twitter™, and I'm disappointed to see it replicated here. Rummaging through someone's background trying to find a "gotcha" argument to take credibility away from what a person is saying, instead of engaging the ideas directly, is what trolls and bad faith actors do. That's what the twt above does (falsely, I might add--what's being claimed is untrue).
If you take issue with something I've said, you can mute me, unfollow me, ignore me, use TamperMonkey to turn all my twts into gibberish, engage the ideas directly, etc etc etc. There are plenty of options to make what I said go away. Reading through my links, reading about my organization's CEO's background, and trying to use that against me somehow (after misinterpreting it no less)? Besides being unacceptable in a rational discussion, and besides being completely ineffective in stopping me from expressing whatever it is you didn't like, it's *creepy*. Don't do that.
@movq
> It’s coming from upstairs
*Halloween noises* 😱😱😱
@akoizumi idk, letting Russia steamroll Ukraine and commit another set of WWII-level atrocities--which they're doing--when you have the power to do something about it is unjustifiable.
@eaplmx No, I have a 1-year-old who takes care of this for me
@will (a) no; and (b) to be clear about what, exactly? Are you really suggesting that the background of my organization's president and CEO has anything to do with something I am saying here?
@prologic I don't think the Civil War in the US ever really ended. There were some obvious events that made the hot part of the war end, but many slaveholders and people sympathetic to that way of being never really gave up their aims or their values, which persist today. I can only really speak about the US since I grew up here and have read a bit of history, but it seems to me that this same kind of dynamic plays out in other countries too. I suspect the Russian invasion of Ukraine has a similar character, in the sense that Russians, at least the public ones making statements, don't credit Ukraine as a "real" nation or "real" people, so they feel fully justified in taking their land and stuff and killing or enslaving them. And in that regard no, it doesn't look like we've learned much as a species--we still have appeasers, and propaganda/misinformation still works, and some people are still inclined to commit heinous acts. I think we can do better but it's pretty bleak right now.
@prologic I don't really know for sure. All I know is how he acts now, which is shitty.
@prologic yes, the slur. White people in the US of a certain ilk (not the good kind) want to say that word sooooooo soo badly, but it's way beyond acceptable at this point.
Yes to this. He is a horrible human being and it's an enormous loss to everyone decent that he was allowed to purchase twitter.
@prologic yes, yes, it's important to have priorities!
@prologic seems similar. I don't know enough to say if one is derived from the other or they're cousins or whatnot. gibber is a javascript system, which makes it easy to use in the browser but not for everyone I suppose. But they smoosh together several different javascript libraries (for instance, a different one for the 3-d graphics) to make a unified whole, which I think is pretty neat.
@prologic Watch the coding and animations too! It's wild.
@prologic No, I might miss their response because my timeline gets very busy.
Just like threading in other pieces of software, it'd be nice to see a yarn spooled out even if I'm not explicitly mentioned. You explained once before that it got too busy to have everyone who was ever mentioned maintained in the yarn, which makes sense as a design choice. Still, there are times when I'd like to track how the yarn is progressing even if I'm not mentioned anymore.
@prologic Correct me if I'm wrong, but Mentions only shows you twts where you are explicitly mentioned by username.
However, if I write a twt, you respond to that, and someone else responds to you, my username will be dropped in their response. Mentions won't show me that response, but there are times I'd like to see it.
@prologic OK, I posted an issue/feature request.
As I was writing it, it occurred to me again that it'd be nice to have a view of all the responses to twts (yarns?) you've originated. Is there an existing way to do this, aside from scrolling through your timeline?
Noticed some layout strangeness on mobile web (Kiwi browser) in yarnd
0.15.1, SimpleCSS theme:

Notice the Edit, Yarn, and badge are not where you'd expect them to be.
@prologic OK. It's one of the most low priority things I could imagine but it would def be useful at times.