ptz

joined 1 year ago
[–] ptz@dubvee.org 12 points 8 hours ago (5 children)

Just going to leave this horror here. It's the post feed logic from Tesseract that determines what posts should be displayed or hidden.

[–] ptz@dubvee.org 93 points 14 hours ago (9 children)

Reddit is dead to me and blocked in my router, so I'm good sharing knowledge and cool stuff here.

[–] ptz@dubvee.org 13 points 14 hours ago* (last edited 14 hours ago)

Taco Bell

SpoilerDemolition Man

[–] ptz@dubvee.org 6 points 18 hours ago* (last edited 18 hours ago) (1 children)

Both chili and vegetable soup.

Never cared for either growing up, but now they're both comfort food, especially on cold days.

[–] ptz@dubvee.org 14 points 1 day ago (7 children)

Are we talking about the same SNES?

[–] ptz@dubvee.org 25 points 1 day ago (9 children)

SNES.

The NES was a box, and the SNES had lines.

[–] ptz@dubvee.org 19 points 1 day ago (1 children)
[–] ptz@dubvee.org 17 points 1 day ago (1 children)

Be that as it may, apps must work for me and never the other way around.

[–] ptz@dubvee.org 58 points 1 day ago (12 children)

If my bank's app ever forces me to choose between my keyboard of preference and their app, it's their app that's getting uninstalled.

[–] ptz@dubvee.org 6 points 1 day ago (1 children)

Matrix also is close to checking all the boxes, but it wasnt clear how it works on mobile (Element seemed like the mobile app that was recommended).

I run Matrix, and it's pretty great. Though I would recommend Schildichat over Element for the mobile app. I had all kinds of issues with Element Mobile somehow screwing up the E2EE keys for my other sessions. Nothing seemed to fix it except removing my account from it completely. Switched to Schildichat and haven't had that issue since.

[–] ptz@dubvee.org 4 points 1 day ago (1 children)

I read the PR. It seems more like a hacky bandaid rather than addressing the actual issue. But I digress.

It's also possible I misunderstood where/how the limit was being applied. My understanding was that it was limiting the response to 50 per depth (50 seems to be the arbitrary limit for most of the API's list endpoints). What I really don't want to do is have to paginate the request for the top level comments.

e.g. if a post has 100 comments, and say, 60 of them are top-level, I much prefer to be able to get all 60 in one go. Depending on the total number of comments provided in the getPost call, I dynamically set max_depth higher (3-5) or lower (as low as 1) and fill in the deeper comments manually with a "show more" button. The exception is if linking directly to a comment where it uses the path to calculate the exact depth to fetch.

finding one with a chain of over 50 in a row is even more rare. Such a thread would be clunky to display in the main comment tree anyways

I'm working around that without pagination, but it's a low priority fix since Patrick's Law come into play. It's like Godwin's Law except it says that once a comment thread gets deeper than 9, it's a slapfight that's best avoided.

[–] ptz@dubvee.org 10 points 1 day ago* (last edited 1 day ago) (1 children)

I've got a laundry list of reasons, but suffice it to say that pretty much every third party client I've ever used has been miles ahead in UX and polish.

One example is that if the API throws any error response and lands you on an "Error" page (post removed, user deleted, etc), the whole UI is stuck there until you refresh the whole page (e.g clicking "back" updates the URL to your previous page, but you're still seeing the error).

29
submitted 3 days ago* (last edited 3 days ago) by ptz@dubvee.org to c/lemmyapps@lemmy.world
 

Cross-posted from "v1.4.20 Released" by @ptz@dubvee.org in !tesseract@dubvee.org


This is a fairly large release packed with lots of UI refinements, removal of a lot of legacy cruft (though sadly not all yet), new features, better moderation workflow, and lots of bugfixes. This is probably the most overhaul the basics of the UI have seen in one release since the first versions.

Probably my favorite new feature is the configurable "hybrid" view. In hybrid view, all posts default to compact mode, and you can configure which post types should display as cards by default. e.g. Image posts (memes, pictures, etc) will default to cards with everything else remaining compact. You can also, optionally, keep posts that are marked read in compact view.

Additionally, all posts (except text-only posts; there's no difference) can be toggled individually between compact and card now. Previously, this was only possible when the view was set to 'compact'.

Get Tesseract

Hosted instance: https://tesseract.dubvee.org

Docker Tags:

  • ghcr.io/asimons04/tesseract:1.4.20
  • ghcr.io/asimons04/tesseract:v1.4.20
  • ghcr.io/asimons04/tesseract:latest

The hosted instance defaults to Lemmy World but is unlocked to connect to any Lemmy instance.

Bugfixes

Bugfixes: Minor

  • May only have been an issue for admins, but administratively hidden and removed communities will now no longer show up in community autocomplete results.
    • They will still (intentionally) show up when filtering for a community in the modlog though (though only admins should be able to see those results)
  • Fixed full URLs not truncating properly when "Show Full URLs" option is enabled
  • Fixed issue with click-to-play not working on post pages if media is disabled on post pages.
  • Disable "reply" button if post is removed or deleted
  • Disable 'report' post action if post alredy removed (I think deleted posts can still be reported, though. Need to double-check the API behavior.)
  • Disable 'report' comment action if comment already removed.
  • Fixed Gifs not previewing if just 'url' is present (i.e. no thumbanil_url or embed_video_url)
  • Indicate post's removed/deleted/lock state in the comment item component when viewing profiles
  • When "Match Crossposts on Title" is enabled, posts with the same title but different URLs will no longer be erroneously rolled up
  • "Distinguish" now only shows on your own comments if you are a moderator. This matches the stupid API behavior because...the Lemmy devs don't listen to anyone. (Wow I really can't go one release without throwing shade at them, can I?)
  • Modlog now shows hide/unhide and remove/restore community events.

Bugfixes: Major

Image Cache Housekeeping

Fixed image cache housekeeping not working correctly.

There were changes to fs/promises that I missed, and some functionality changed along with a few of the member variables being deprecated. This was causing the directory content calculations to silently fail safe (returned 0 rather than crashing).

As a result, nothing was ever getting evicted from the cache.

If you are using the cache functionality of the image proxy, you will likely notice that startup takes a bit longer this time if you have housekeeping set to run at startup (recommended). This is because it will be housekeeping all of the cached objects it should have been housekeeping all along. Once the initial cleanup of the backlog has completed, further startups should complete in the normal/expected amount of time.

If startup takes too long, you can always delete all of the .cache objects manually from the mounted cache folder. See the Media Proxy docs for configuration options.

New Features / Changes

"Hybrid" Post ViewRather than a binary choice of "card" or "compact", hybrid view will let you set a list of post types (image, video, article, etc) that you want to render as cards while displaying everything else as compact. This is the new default view.

This is useful, for example, to let memes and news articles co-exist without having to expand every meme image manually in compact view or view every article thumbnail card-sized.

The behavior and post types can be configured from Quick Settings -> Post Style -> Hybrid and then clicking the link for "Configure" -or- from Settings -> Feed- > Hybrid View Configuration

By default, only image posts are expanded to cards.

In addition to setting the types of posts that should render as cards, you can optionlly keep read posts collapsed into compact view when they would otherwise be cards if they were unread. This is enabled by default, but can be easily disabled.

There is also a new regular view called "Compacter". It is the same as compact but post body is fully collapsed. Similar to "More Compact" but not full width.

Post Form Now Automatically Searches for Crossposts/DuplicatesWhen you are creating a post, the URL will be searched to see if you're posting something that's already been posted. It should do this automatically when the URL field changes or the URL is set and the community changes. The behavior is slightly different depending on if a community is defined:

  1. If the community is not set, then it will search for any posts on your instance matching that URL. The label will be "Crossposts".

  2. If the community is set, then it will do a remote API call to search the home instance of that community for any posts to that community with that URL. The label will be "Existing posts".

The latter behavior is particularly useful if you want to avoid accidentally posting a duplicate that may have been posted by someone you've blocked or by someone your instance doesn't federate with. Those posts may not be visible to you locally, so the remote search should help identify them so you don't clutter up the feed and/or add extra work for the moderator who usually removes duplicate posts.

If for whatever reason it doesn't trigger automatically, the "Magnifying Glass" icon to the right of the URL field can trigger the search manually.

Also note that behavior #2 only works if you're posting to a Lemmy community since it makes a remote API call to the community's home instance using the Lemmy API. Thus, it cannot search a remote Kbin/Piefed, etc instance.

Can Now Vote on Crossposts Without Clicking Into ThemVote buttons have been added to the crosspost items, so you can now vote on them from the feed and post.

In the feed, since the cross_posts are rolled up manually from regular post objects, the voting works as expected.

Unfortunately, when clicked into a post, the API call does not add the my_vote variable to the cross_posts array. So while you can vote on the crosspost, and the vote will be correctly recorded, your vote will only display correctly while you're on that page. Since the API doesn't return the vote you cast, on refresh or subsequent loads, the vote button will not indicate which way you voted. If you try to vote again, the score will not necessarily change. Yet another feature I want to implement hampered by dumb API decisions.

DailyMotion Video Embeds Now SupportedI forgot Dailymotion existed until someone posted a link a while back. Upon inspection, they have an embed API, so I figured why not add support for it.

Moderation Menu Has Been Replaced With New Moderation ModalThe moderation menu on posts and comments has been removed. The reason is that the menus were getting cluttered when new things are added, especially for admins who have more options available than regular mods. Rather than creating sub-menus (yuck!) or introducing separate UI elements for admin controls, I've just scrapped the whole thing and started over.

The "mod" button will now open a modal containing all the mod tools that are appropriate for the item.

The cool thing about the new mod modal is that all of the tools are packaged into it. It doesn't open separate modals for banning/unbanning, removing/restoring, etc. It even has the community details available so that mods can reference the rules when issuing actions without leaving the item they're working with.

Current Capabilities and Features

  • A mini-banner heading showing the current community with its icon and the creator of the item and their avatar/info.
    • Both communtiy and user are clickable to bring up their respective profile modals to get more info (these pop up in separate modals and aren't integrated into the mod modal)
  • Pin/Unpin the post to the community
  • Feature/Unfeature the post on the instance (admins only)
  • Lock/Unlock the post
  • View the community details relevant to the current item (post or comment)
  • View the votes for the item (admins only until whatever version of Lemmy lets mods do this for their communities)
  • Remove/Restore the post or comment (shows the post meta header or the comment meta header and comment previews)
  • Send a DM to the post/comment's creator
  • Purge the post or comment (admin only)
  • Ban/Unban the user from the community
  • Ban/Unban the user from the instance (admins only)
  • Distinguish/undistinguish mod comments
  • View the user's modlog history
    • Defaults to their history in the community relevant to the current item
    • Can toggle between their modlog history in the community and their full modlog history
    • Also has link to the full modlog viewer filtered for that user.

All tools stay within the same modal, and it shrinks/expands to accommodate the various integrated tools.

Improved Community ModalsTo reduce clutter, the "Subscribe/Unsubscribe" (RSS Icon), "Favorite/Unfavorite" (Star), "Add/Remove to Group" (3 People) buttons have been moved to the modal title bar as icon-only buttons.

"Create Post" is no longer a link to the community's create post page. It now shows the create post form right in the modal. There is a button in the upper-right which will take you to the /c/{community}/create_post page if you want to use the old form ( 🖼️ 👩🏻‍🦰 🖼️ it's the same form).

For admins, "Remove/Restore Community" and "Hide/Unhide Community" have been integrated. They will also now prompt for an optional reason to show in the modlog.

The "Community Details" is now a panel (like in the moderation modal) rather than being an accordion. Same functionality, different packaging.

You can now view the community's modlog directly in the modal.

Added the direct ban/unban user tool to the community modal. Instance admins and community moderators can now manually ban/unban users from the community without having to dig up a submission. Useful to revisit an old ban or to ban a known troll making the rounds before they hit your community.

Improved User ModalsThe "Copy Lemmyverse Link" and "Copy Actor ID" buttons have been moved to the modal's title bar as icon-only buttons.

  • The "Share" icon is for Copy Lemmyverse Link. This is used to share an instance-agnostic link to a user.
  • The "Link" icon is for Copy Actor ID.
  • The box with arrow in top right icon will take you to the user's profile.

Can view user's modlog history directly in the modal

Can send a message to the user directly from the modal

For admins, the "ban/unban user" form is now integrated directly into the modal.

Piped/Invidious Support ChangesSince YouTube has gone to war against alternate frontends (and is sadly winning), most public instances no longer work. However, I believe that private/small instances may still function as expected.

Since the public instances are pretty much all broken or only partially working, Invidious/Piped support has been modified to only be enabled if the user supplies their own instance.

The distinction between Invidious and Piped has also been removed since the link formats are interchangeable. Now, in Settings, the YT frontend has been changed to just "YouTube" and "Custom". The custom instance list can contain Invidious and/or Piped instances.

The alternate link selector for YouTube videos will now also only show "Invidious/Piped" option if you have defined at least one.

As before, multiple custom instances can be defined but one will need to be selected as the default. That one will be used for the alternate source selector and, optionally/separately, as the embed player.

Note: You can keep YouTube as the default embed player while also adding a custom Invidious/Piped instance to act as alternate links in the alternate source link menu.

The internal lists of public Invidious and Piped instances has been combined and are only used for detection; formerly, these could be selected as frontends.

On the admin side of things, the env var PUBLIC_CUSTOM_PIPED has been deprecated. For now, it will simply be combined with the PUBLIC_CUSTOM_INVIDIOUS list. Eventually the Piped list will be removed, but that is TBD. Those lists are also only used for detection and are no longer presented as possible frontends for the user to select.

If a user wants to use Invidious/Piped, they must supply their own instance in their settings.

Long, Non-Comprehensive List of Various UI Tweaks

  • Lots of UI polish all around. Too numerous to list individually.

  • Legacy user and community menus in /u/{user} and /c/{community} cards have been removed. The functionality has been moved into the respecctive user/community modals.

  • Community link pill buttons are now gray instead of orange. The orange was just...too much. User link buttons are still blue.

  • Better display of metadata from posted links

  • Cleaner compact view (also incorporates metadata display better)

  • Feed images are limited to a maximum of 40% viewport height. This still gives the nice "card" effect while also not making posts massive. They were formerly limited to 80vh, but even this is no longer needed since the ZoomableImage component was integrated.

  • Removed user settings for post and feed image sizes since they're no longer needed with the new compact and card view tweaks described above.

  • Post body images are now hidden in the feed and a link shown in their place. Clicking the link will open them in a preview modal. Unless the option to disable inline images is turned on, then they will still show as embeds when opening the post. This should help compact mode stay compact rather than some of them being massive with one or more post body images slipping through.

  • Direct video (mp4, webm, etc) posts now use the video metadata for the thumbnail if OP didn't post a custom one. Also works in compact view now.

  • Bandcamp embeds are now smaller.

  • All media renderers now show the embed metadata alongside the post details.

  • Direct audio links (MP3, etc) now have renderers; they only rendered in the markdown post body and comments previously. Now if the post URL is an audio link, a player will embed.

  • Show link selector, link, and MBFC even if metadata fails to load in preview modal. Also show that info while fetching metadata.

Better Error Handling and Integration with Pifed/Mbin/etcWhen clicking a link that goes to a post or comment, Tesseract will massage the URL to attempt to render it locally (extract the instance and post ID and do a remote API call to fetch it for local rendering). This works great for Lemmy, but non-Lemmy services which use the same /post/{id} and /comment/{id} URL format don't work with Lemmy API calls.

Before, this would throw a generic 500 "Failed to fetch post" error. The UX has been improved in this release by showing a clearer error message as well as a button to visit the post on its home instance.

Additionally, if a local post fails to load, there's now conditional verbiage to indicate a local post may have been removed by its creator or removed by a moderator, and there is no button to visit it on the home instance (since it is the home instance).

 

Cross-posted from "Giuliani shows up to vote in Mercedes he was supposed to give to poll workers" by @MicroWave@lemmy.world in !news@lemmy.world


Summary

Rudy Giuliani appeared at a Florida polling station in a Mercedes convertible that a court ordered him to surrender as part of a $148 million defamation settlement with two Georgia poll workers, Ruby Freeman and Shaye Moss, whom he falsely accused of election fraud.

Giuliani has reportedly been evasive about the whereabouts of his assets, including items from his $5 million Manhattan apartment, New York Yankees memorabilia, and luxury watches, despite a court order to hand them over.

Giuliani’s attorney denied the allegations, claiming Giuliani was unaware of how to deliver the assets.

 

Ok, so less a shower thought and more a "random observation while standing in line to vote" thought, but my mind is about equally checked out in both scenarios, so I'll count it.

 
832
submitted 1 week ago* (last edited 1 week ago) by ptz@dubvee.org to c/memes@lemmy.world
 

...sometimes it does feel like this.

13
submitted 1 week ago* (last edited 1 week ago) by ptz@dubvee.org to c/music@beehaw.org
 

Haven't heard this song in a good, good while until I was at the grocery store today where it was playing overhead.

Apparently, I'm "this grocery store is playing my jams" years old haha.

 

By old-timey names, I mean ones that you don't typically associate with anyone alive or younger than like 70.

Examples being:

  • Burl
  • Mildred
  • Herbert
  • Agnes
  • Evelyn (not as rare at the others, but getting there)

I've always liked the name "Opal" but I've only ever known two in my life. I was like 10-12 at the time, and they were both pushing 90.

 

Cross-posted from "Donald Trump vows to be protector of women ‘whether they like it or not’" by @HellsBelle@sh.itjust.works in !news@lemmy.world


Donald Trump took his frequent habit of describing himself as a “protector” of women further on Wednesday night in Wisconsin, when he declared he would protect them “whether the women like it or not” if he wins a second term in the White House.

“I said, ‘Well, I’m going to do it, whether the women like it or not,’” Trump said. “I’m going to protect them.”

There have been dozens of claims of sexual misconduct levelled at the Republican candidate over the years, including a fresh allegation last week. Trump denies them all. Last year a judge ruled that a rape accusation against Trump was substantially true.

The Trump campaign spokesperson Karoline Leavitt responded: “Harris may be the first woman Vice President but she has implemented dangerously liberal policies that have left women worse off financially and far less safe than we were four years ago under President Trump.”

 

We've all been there – caught outside without an umbrella as the sky opens up. Whether it's a light drizzle or a heavy downpour, instinct tells us that running will minimise how wet we get. But is that really true? Let's take a scientific look at this common dilemma.

You're out and about, and it starts to rain – and naturally you've forgotten your umbrella. Instinctively, you lean forward and quicken your pace. We all tend to believe that moving faster means we'll spend less time getting wet, even if it means getting hit with more rain as we move forward.

But is this instinct actually correct? Can we build a simple model to find out if speeding up really reduces how wet we'll get? More specifically, does the amount of water that hits you depend on your speed? And is there an ideal speed that minimises the total water you encounter on your way from point A to point B?

22
submitted 3 weeks ago* (last edited 3 weeks ago) by ptz@dubvee.org to c/lemmyapps@lemmy.world
 

Bugfixes

Flairs in Post Titles

It was pointed out that words in brackets meant to act as clarifying text were being converted to flairs and making some post titles hard to read. This is because the [tag syntax] is the same as is used for clarifying text, so there was some overlap causing that behavior.

Now only bracketed text at the beginning and end of the title will be converted into a flair. This should allow flairs using the [tag syntax] to co-exist with all but a few edge cases of clarifying text.

Example:

[Flair] [Flair 2] The title [of the book] goes here [Published 2022] -> The title [of the book] goes here with the flair tags being Flair, Flair 2, and Published 2022. The clarifying text in the middle remains unrendered.

The other bug I discovered in this area was that if the whole title was inside brackets, it would be converted into a big flair tag. Now, if there is no title text left after extracting the flairs, the title will be used as-is.

Example:

[Jaws theme intensifies] would have been converted to a flair before. Now it will render as text (as likely intended by the creator).

Misc Bugfixes

  • [26d26798] Add error handling in case bad URL sent to isImage, isAudio, isVideo helper functions.
  • [6b99e0cd] Fixes issue where post was not being marked as read correctly on newer API versions since it was sending a single post ID instead of an array.

New Features in 1.4.16

Can Automatically Mark Posts as Read While Scrolling

Per user request, a new option and feature has been added that will automatically mark posts as read as you scroll past them in the feed. This is disabled by default, but can be enabled in Settings -> Feed -> Mark Posts Read on Scroll

Currently, a post will mark as read when 60% of it is in the viewport for more than 1.5 seconds.

Better Crosspost Attributions

Crossposts are great from a user standpoint as they reduce clutter, but they often bury other communities since it's not easily apparent where it was cross-posted from and by whom. The link also typically takes you away from your home instance (depending on UI, anyway).

Now, when crossposting, the default cross-post header has been updated to give better visibility to the original:

Cross posted from "ORIGINAL_TITLE" by @ORIGINAL_USER@instance.xyz in @ORIGINAL_COMMUNITY@instance.xyz

The title is linked to the canonical AP URL of the original post (same as before but with text applied instead of a bare link). The original user and original community links are in the standard user/community link format. In Tesseract, both of those are clickable to view the user and community profiles.

Since Tesseract will automatically resolve unknown communities if you're logged in, this should give a visibility boost to communities that may go overlooked.

Note that since the crosspost header info is just prefixed into the new post body, this will have no effect on old crossposts. It will also not change anything for crossposts made via other UIs nor will it affect the crosspost behavior in general since those are all based on the post's URL.

Sidebar Community List

General

The sidebar with the subscription list has been completely overhauled. I'm now using standard CommunityLink components which have the benefit of opening the community modals. The community buttons are still buttons and will take you to the community page. Clicking the community text will open the modal while clicking the button around that will take you to the community page.

The inline menu buttons have been removed since all of those functions are also available from the community modals. This saves a good chunk of memory since a discrete menu is not required for each element now.

The instances for each community are now also shown by default. You can disable this by turning off Settings -> General -> Show Instance Names in Sidebar.

Community List Filtering

I've also re-implemented the filtering of the subscription list. It is now more granular and can accept modifiers as well as take the instance into account.

Default

By default, the filter query will be a case-insensitive contains comparison against the community's display name (or system name if display name is undefined).

It will now also accept an instance if you include it after an @. The instance is compared with a case-insensitive startsWith against the actor id of the community.

  • Example 1: new will return any community containing new in its display name (or name if display name is not set)
  • Example 2: new@lemmy. will return News@lemmy.word, LegalNews@lemmy.zip, etc.

Filter by Name (rather than display name)

If you want to filter the list by the community's system name rather than the display name, prefix the filter with an !.

The instance is also accepted here if it is provided after an @.

  • Example 1: !new will return any community whose system name begins with new such as news@dubvee.org, news@lemmy.world, newcommunities@instance.xyx, etc
  • Example 2: Using the same example from above, !new@lemmy. will return news@lemmy.world but not LegalNews@lemmy.zip
  • Example 3: Can be used if you want an exact match based on the community link syntax (!community@instance.xyz)

Filter by Instance

To filter by instance, prefix the filter with an @. This will only show communities belonging to the specified instance. This filter method uses a startsWith, case-insensitive comparison against the hostname of the community's actor id.

This is particularly helpful if you want to see what communities you're subscribed to on a particular instance. AFAIK, there is no way to get that info from the API.

UI Tweaks

Independent Preview Button in Post Create/Edit Form

Rather than previewing the entire post, including thumbnail and embed metadata, you can now also preview just the markdown of the post body.

The old behavior was more of an intentional choice that didn't work out well in practice / real-world use. You can still preview the entire post (that hasn't gone away); you just have more granularity in what you preview.

Added "Fact Check" Section to Alternate Source Link Menu

There are one or two "Fact Check" options available in the alternate source link menu now.

  • MBFC, if avaialble
  • SpinScore.io (shows on all links)

I'm not a fan of AI-generated ~~summaries and analysises~~ anything, so I probably won't be using that, but it's an option if you want to use it.

Direct Video Embeds Now Support Custom Thumbnails

If a custom thumbnail is provided for a post where the URL is to a video, the thumbnail will now be used for the click-to-play overlay.

Other Stuff

  • [7c8c96fb] Update MBFC dataset
  • [c6ce2213] Update MBFC removal template
  • [c908b886] Add option to disable automatically refreshing dates in the RelativeDate component (post/comment published/edit times, etc)
  • [135ed9cd] Changed animation on menus to slide instead of scale

Get Tesseract

  • Github
  • Docker:
    • ghcr.io/asimons04/tesseract:1.4.16
    • ghcr.io/asimons04/tesseract:v1.4.16
    • ghcr.io/asimons04/tesseract:latest

Update: The dependency issue was my fault. I left out a dev dependency and had apparently been relying on implicit inclusion that worked up until Svelte 5 was released and vite-plugin-svelte updated for that. Updated the package.json and republished. The Docker tags should work fine for x86 (I did them on my dev machine), but the arm64 builds should be finished from the Github actions in the next 10-15 minutes. If you typically build from the repo, you should be good since I published the fix to the dependencies.

 

S4E18 - Khonani

 

Was getting ready this morning and the ending of MGS2 came to mind.

Plot

It states that GW was the only AI destroyed, and that the S3 Plan's real purpose is to control human thought to prevent society's regression in the digital era from trivial information drowning knowledge and truth in the belief that humanity is too immature to handle the flow of information responsibly

Though the villains in MGS2 seemed to have better intentions than the nation states / trolls that are flooding the internet today.

view more: next ›