28
[-] Zetaphor@zemmy.cc 69 points 9 months ago

I have a book on learning Pytorch, this XKCD is in the first chapter and implementing this is the first code practice. It's amazing how things progress.

[-] Zetaphor@zemmy.cc 61 points 10 months ago* (last edited 10 months ago)

The apology video to me rang hollow and self serving. They made jokes (including a sex joke which was very unfortunate timing), they teased a new product and plugged lttstore, they said the details on how Labs does thorough testing will be paywalled, they publicly disclosed Billets prototype price which GN's video clearly stated they did not want public (an error in the video apologizing for errors), and then there's Linus' response.

I've canceled my floatplane subscription and unsubscribed from all of their YouTube channels. I was willing to see them through on the original accusations from GN, but after that "apology" and the accusations from Madison, I no longer feel okay rewarding them with my time and money.

[-] Zetaphor@zemmy.cc 85 points 10 months ago

Then you missed where they dropped an opportunity to show a new screwdriver variant coming to LLTStore.com 🤦

[-] Zetaphor@zemmy.cc 119 points 10 months ago

This situation sucks and was something I would have been willing to see through. But after reading the thread from Madison this morning I've decided to cancel my Floatplane subscription. While the accusations she makes are currently accusations, they're pretty damning and worth taking seriously in case they are more than allegations. I await LMG's response to her thread, as I feel that will be the deciding factor in whether or not I continue to consume and support anything LMG does going forward.

Her thread: https://twitter.com/suuuoppp/status/1691693740254228741

[-] Zetaphor@zemmy.cc 37 points 11 months ago

And you haven't already quit because you're on an H1B/GC visa, and so your residence in the US is tied to your employment, effectively making you a corporate owned slave.

10
submitted 11 months ago* (last edited 11 months ago) by Zetaphor@zemmy.cc to c/plugins@sh.itjust.works

As the title says, I got tired of hearing about twitter and reddit so provide this userscript a comma separated list of keywords and you will no longer see posts containing those keywords. I'd love to see this functionality built into Lemmy itself, but until then here's a userscript.

Repo link

[-] Zetaphor@zemmy.cc 43 points 11 months ago

Not sure what to take from this other than it being a really bad take. Insect protein is orders of magnitude more sustainable and eco-friendly than beef. We could replace all the land we destroyed that is used to have cows standing around in their own shit and for a fraction of the acreage produce the same number of protein and calories without massively contributing to climate change.

201
submitted 11 months ago* (last edited 11 months ago) by Zetaphor@zemmy.cc to c/piracy@lemmy.dbzer0.com

cross-posted from: https://zemmy.cc/post/25499

You may have seen my previous post over here, after I had just gotten everything setup initially.

I've now expanded this with an additional script, a github repo, and proper documentation.

Here's a cleaner explanation:

I've taken on the challenge of self-hosting more of the services I regularly depend on. The latest target is Spotify. This meant I needed a simple and convenient way to listen to my music from anywhere, get new music into my collection, and also still receive recommendations based on my interests and listening habits.

I now have what I think is the pretty ideal setup, here's what it includes:

  • A 24/7 radio station that plays my entire catalog (link here if you're interested). This is powered by Azuracast along with the scripts in the repo. The station link is using the Public Pages feature in Azuracast with a bunch of custom CSS.

  • A Spotify-like experience that also supports mobile and offline. This is powered by Navidrome for web/desktop and Substreamer for mobile. Substreamer connects to Navidrome using the Subsonic API.

  • A couple of scripts that allow me to easily download tracks/albums/playlists from Spotify and Youtube. I used these to bootstrap the collection and export my existing playlists from each service.

  • A couple of scripts that automatically grab my latest recommendations from Spotify and LastFM, add them into Navidrome, and provide me a nearly fully automated way to parse out tracks I want to keep permanently.

That last point is the most interesting part in my opinion. Both scripts run on a weekly cron job that downloads my Discover Weekly playlist from spotify, and current recommendations from LastFM. It then creates a playlist for each source for that weeks collection and moves it into Navidrome.

I then browse that weeks playlist at my leisure, using the "star" feature in Navidrome to decide what to keep. Once I'm done I run another script manually that takes all of the starred tracks from those two playlists and moves them into my catalog, and then deletes the remaining tracks and the playlists.

This means I just need to go through and listen to recommendations and click a button on what to keep, and the rest is discarded automatically. It really doesn't get any simpler than this!

What remains will then be available for on-demand playback through Navidrome and also added to the full catalog that powers the 24/7 radio station.

FAQs from the last thread

What is being used to download from X? - spotdl is being used for Spotify.pytube is being used for LastFM and Youtube. spotdl is also just downloading tracks from Youtube under the hood.

What is the audio quality of the downloaded tracks? - Since these are coming from Youtube, everything is a 128kbps VBR Opus codec. It's certainly not FLAC but it's good enough for my enjoyment.

100
submitted 11 months ago* (last edited 11 months ago) by Zetaphor@zemmy.cc to c/selfhosted@lemmy.world

You may have seen my previous post over here, after I had just gotten everything setup initially.

I've now expanded this with an additional script, a github repo, and proper documentation.

Here's a cleaner explanation:

I've taken on the challenge of self-hosting more of the services I regularly depend on. The latest target is Spotify. This meant I needed a simple and convenient way to listen to my music from anywhere, get new music into my collection, and also still receive recommendations based on my interests and listening habits.

I now have what I think is the pretty ideal setup, here's what it includes:

  • A 24/7 radio station that plays my entire catalog (link here if you're interested). This is powered by Azuracast along with the scripts in the repo. The station link is using the Public Pages feature in Azuracast with a bunch of custom CSS.

  • A Spotify-like experience that also supports mobile and offline. This is powered by Navidrome for web/desktop and Substreamer for mobile. Substreamer connects to Navidrome using the Subsonic API.

  • A couple of scripts that allow me to easily download tracks/albums/playlists from Spotify and Youtube. I used these to bootstrap the collection and export my existing playlists from each service.

  • A couple of scripts that automatically grab my latest recommendations from Spotify and LastFM, add them into Navidrome, and provide me a nearly fully automated way to parse out tracks I want to keep permanently.

That last point is the most interesting part in my opinion. Both scripts run on a weekly cron job that downloads my Discover Weekly playlist from spotify, and current recommendations from LastFM. It then creates a playlist for each source for that weeks collection and moves it into Navidrome.

I then browse that weeks playlist at my leisure, using the "star" feature in Navidrome to decide what to keep. Once I'm done I run another script manually that takes all of the starred tracks from those two playlists and moves them into my catalog, and then deletes the remaining tracks and the playlists.

This means I just need to go through and listen to recommendations and click a button on what to keep, and the rest is discarded automatically. It really doesn't get any simpler than this!

What remains will then be available for on-demand playback through Navidrome and also added to the full catalog that powers the 24/7 radio station.

FAQs from the last thread

What is being used to download from X? - spotdl is being used for Spotify.pytube is being used for LastFM and Youtube. spotdl is also just downloading tracks from Youtube under the hood.

What is the audio quality of the downloaded tracks? - Since these are coming from Youtube, everything is a 128kbps VBR Opus codec. It's certainly not FLAC but it's good enough for my enjoyment.

[-] Zetaphor@zemmy.cc 41 points 11 months ago

But now you have the opportunity to build it in Rust or Typescript! /s

[-] Zetaphor@zemmy.cc 72 points 11 months ago

You're saying this like Firefox is adding the shitty standard because they want to, and not because Google used their monopoly to force adoption of the shitty standard forcing Firefox to follow suit if they don't want their users to have a broken experience.

If Google introduces a shitty standard to YouTube and Firefox doesn't adopt it, do you honestly think users are going to care or understand and blame Google? No, they'll get pissed because they think Firefox broke YouTube and they'll move to Chrome.

This exact situation played out with shadow DOM, Google implemented it into YouTube while it was still a draft standard, so all non-Chrome browsers ran worse because they had to use a polyfill.

That is why we're telling people to stop using Chromium. If they didn't have this monopoly none of this would be possible. Mozilla has some issues as an organization, but do honestly you think the better choice is letting an advertising company decide how the web works?

[-] Zetaphor@zemmy.cc 43 points 11 months ago* (last edited 11 months ago)

Nothing about this is recent, those who pay attention to the standards process have been screaming for ages about the Google problem. It's just that now between interest rates being what they are and them having a monopoly on the browser market that they're cashing in on their investment.

[-] Zetaphor@zemmy.cc 49 points 11 months ago

The problem is a lot of people who want to learn to code, and are conditioned to desire the college route of education, don't actually know that there is a difference and that you can be completely self-taught in the field without ever stepping foot in a university.

133
submitted 11 months ago* (last edited 11 months ago) by Zetaphor@zemmy.cc to c/piracy@lemmy.dbzer0.com

I recently decided to start taking on the challenge of selfhosting and curating my music collection. I originally started looking at Lidarr as I am already a big fan of Radarr and Sonarr, but it wasn't really what I was looking for. I'm not often seeking out full albums, and am more often finding my music by listening to single tracks from Spotify's Discover Weekly playlist. I needed a solution that would let me replicate this experience while hosting my own MP3's and ideally be entirely automated.

I currently have the following setup running on a VPS:

  • Azuracast - This provides me a streaming radio station that cycles through my entire library 24/7
  • Navidrome - This fills the gap of the Spotify-like interface where I can play specific tracks, albums, or playlists

I bootstrapped my library with a Python script that parsed a list of Spotify URL's and downloaded all of the tracks with the spotdl library. This allowed me to grab my liked tracks, the playlists I had created, as well as a large number of albums I wanted.

I then used ChatGPT to write two python scripts:

  • The first script runs using cron every Monday and uses SpotDL to grab the contents of my Discover Weekly playlist from Spotify. It puts all of the files into a folder with that weeks date and also creates a playlist file. This way I can easily browse that weeks playlist in Navidrome and decide what to keep. It also sends me an email on completion/error

  • The second script is a bit more complex. This one does the same end result but for all of my LastFM reccomendations. This is done by spinning up a headless Chrome browser with Selenium in a docker container. It then logs into my LastFM account, parses each reccomendation, and then uses pytube to download the video links, since LastFM just directly links to Youtube videos. This list should change as I continue scrobbling via Navidrome and other sources, but I still need to determine how often the cron job should run.

My next step is figuring out how to connect to Azuracast/Navidrome using the many subsonic compatible clients so I can have mobile playback and things like offline playback. I'm currently looking at substreamer for Android.

I'd also like to look into a more seamless way of picking out the tracks I want to keep and discard from the playlists in Navidrome. I'm considering writing something to check its SQL database for liked tracks in each playlist and automatically move those into the main folder/playlist that Azuracast is playing from.

This whole setup took me only a couple days to create, and largely relied on ChatGPT to write the scripts and dockerfiles. I'm a capable programmer but GPT-4 is absolutely OP if you know what you're trying to accomplish and how to debug its mistakes. That Selenium script only took me an hour from idea to completion and I never modified the code by hand, only prompted it for corrections/additions.

If anyone is interested I've uploaded all the scripts to a gist, you just need to go through and update with your credentials/URLs

[-] Zetaphor@zemmy.cc 38 points 1 year ago

I was an avid user of Relay, and unfortunately I haven't found anything that mirrors its layout and functionality, so I decided to build it myself. Here's the Github repo and a short recording of the UI which is already out of date. I'll be releasing it once the permissive CORS PR gets merged and lands in major servers.

1
submitted 1 year ago* (last edited 1 year ago) by Zetaphor@zemmy.cc to c/technology@beehaw.org

cross-posted from: https://zemmy.cc/post/79525

I currently have 4 different Android clients for Lemmy installed on my phone and none of them are what I'm looking for. Additionally I've tried 3 different PWA's and they're still not what I want out of a browsing experience.

So I've decided if nobody else is going to make what I'm looking for I'll have to do it myself. This is an early preview of the current unnamed client I'm working on.

It will be a PWA supporting Android and iOS, though I don't own any Apple products so support will be in so far as they don't do dumb stuff to break PWA standards. It's open source and will be free to use.

Currently the dev environment is hardcoded to my personal instance as CORS support is restricted in the Lemmy server until a future release. This means all PWA's are actually proxying your requests through their server in order to rewrite the origin header. I don't intend to release this until CORS support is fully resolved which should be soon.

I need help with a name! I was considering Infinity since I'm using that for the loading symbol, but there's already a reddit client with that name and I don't want to poach it if they decided to transition to Lemmy.

[-] Zetaphor@zemmy.cc 69 points 1 year ago

What in this message made you think your rejection had anything to do with donations? Seems like you're jumping to that conclusion without any evidence.

76

A game where you must devise a password that meets a list of requirements that grow in number, complexity, and absurdity

21
submitted 1 year ago* (last edited 1 year ago) by Zetaphor@zemmy.cc to c/plugins@sh.itjust.works

0.18 is now officially available. I expect it will be a few days as instance owners test the upgrade and decide whether or not to switch over. Especially since the captcha fix isn't coming until 0.18.1.

Relevant to this community is the fact that this upgrade includes two different PR's (1, 2) that add a number of semantic classes and ID's to the markup to aid in the creation of custom themes, userscripts, and browser extensions. Additionally the UI has been upgraded to use Bootstrap 5.

However it should be noted that Desallines has explicitly stated that there is no official support for anything utilizing these classes, and that the UI framework is going to be changed in a future update.

This means you're targeting these classes/ID's at your own peril, and they may break in a future update. They want to keep theming as light as possible rather than adding lots of custom hooks that people will then become dependent on and expect ongoing maintenance/support.

45
submitted 1 year ago* (last edited 1 year ago) by Zetaphor@zemmy.cc to c/fediverse@lemmy.world

cross-posted from: https://lemm.ee/post/177673

Cross posting this here for visibility since lemmy.ml federation has been very hit or miss the last week. Original post from @sunaurus@lemm.ee

Today, a bunch of new instances appeared in the top of the user count list. It appears that these instances are all being bombarded by bot sign-ups.

For now, it seems that the bots are especially targeting instances that have:

  • Open sign-ups
  • No captcha
  • No e-mail verification

I have put together a spreadsheet of some of the most suspicious cases here.

If this is affecting you, I would highly recommend considering one of the following options:

  1. Close sign-ups entirely
  2. Only allow sign-ups with applications
  3. Enable e-mail verification + captcha for sign-ups

Additionally, I would recommend pre-emptively banning as many bot accounts as possible, before they start posting spam!

Please comment below if you have any questions or anything useful to add.

35

There have been a number of ongoing conversations and PR's around trying to add semantics to the lemmy-ui markup to enable developers to more easily create custom themes, userscripts, and browser extensions.

Up until now we've had no input from a maintainer, as they are rightfully heads down focused on shipping the 0.18 update. We now have direction on where we should be focusing our effort and to what extent the project will offer support for this:

...I'm fine with adding something like this, with the very bold caveat that we as maintainers will not do custom theme support, and if class names change, and themes break, that is up to themers, not us. I've had to close so many issues on this repo for people asking me to do theming support for them, which I don't have time to do.

This is great news for anyone who has been struggling with incredibly deep class selectors and general lack of specificity. There is further mention of switching UI frameworks in the future, so do expect that whatever you build today may break tomorrow. We're still in the very early days of the Lemmy maturity lifecycle, but it's encouraging to receive acknowledgement for this effort.

Relevant links to the various efforts in addition to the post link:

20
submitted 1 year ago by Zetaphor@zemmy.cc to c/chat@beehaw.org

cross-posted from: https://zemmy.cc/post/17190

This comes to us courtesy of @misnina@crystals.rest. As a technical person I sometimes find it difficult to communicate with my friends about the value proposition of Lemmy and other federated platforms.

The reality is 99.9% of people are going to instantly tune out the moment they hear "federation", "decentralized", or "self-hosted". These things all existed before the centralized social media hellscape we have today, but those centralized platforms gained dominance because they were able to package their value into a simple pitch: "Your one-stop shop for social!"

Another good example of this is comparing the current state of the official Lemmy website to the official Mastodon website.

Mastodon spends the first 2 page scrolls offering you a visual explanation of what their platform offers, a cohesive and familiar social experience. It's not until you get 1/3 into the page that you see the words "open source", and the word "federation" doesn't even appear in the main copy, it's used in a user testimonial towards the bottom of the site.

Lemmy's site on the other hand has an okay paragraph of copy about it's value proposition, but then spends the first two image tiles and blurbs showing and talking about its source code and infrastructure, with only the third referencing moderator tools.

The following section talks about self-hosting and the fediverse, with only a brief mention to the core value proposition. I could go on about the remainder of the site but by this point it's likely that the majority of users who weren't already seeking this and/or are technically inclined have left.

Communicating the value of these things is difficult and something we're going to need to focus on improving both as platform providers and as users of that platform. That's why I'm so enamored with this video from Nina. It is quick and to the point, it only communicates what needs to be said for anyone to understand the value prop, and it does so in a way that doesn't invoke any of the exclusive terminology.

Thank you for coming to my ~~TED Talk~~ rant.

43
submitted 1 year ago by Zetaphor@zemmy.cc to c/fediverse@lemmy.world

This comes to us courtesy of @misnina@crystals.rest. As a technical person I sometimes find it difficult to communicate with my friends about the value proposition of Lemmy and other federated platforms.

The reality is 99.9% of people are going to instantly tune out the moment they hear "federation", "decentralized", or "self-hosted". These things all existed before the centralized social media hellscape we have today, but those centralized platforms gained dominance because they were able to package their value into a simple pitch: "Your one-stop shop for social!"

Another good example of this is comparing the current state of the official Lemmy website to the official Mastodon website.

Mastodon spends the first 2 page scrolls offering you a visual explanation of what their platform offers, a cohesive and familiar social experience. It's not until you get 1/3 into the page that you see the words "open source", and the word "federation" doesn't even appear in the main copy, it's used in a user testimonial towards the bottom of the site.

Lemmy's site on the other hand has an okay paragraph of copy about it's value proposition, but then spends the first two image tiles and blurbs showing and talking about its source code and infrastructure, with only the third referencing moderator tools.

The following section talks about self-hosting and the fediverse, with only a brief mention to the core value proposition. I could go on about the remainder of the site but by this point it's likely that the majority of users who weren't already seeking this and/or are technically inclined have left.

Communicating the value of these things is difficult and something we're going to need to focus on improving both as platform providers and as users of that platform. That's why I'm so enamored with this video from Nina. It is quick and to the point, it only communicates what needs to be said for anyone to understand the value prop, and it does so in a way that doesn't invoke any of the exclusive terminology.

Thank you for coming to my ~~TED Talk~~ rant.

view more: next ›

Zetaphor

joined 3 months ago