There have been multiple accounts created with the sole purpose of posting advertisement posts or replies containing unsolicited advertising.

Accounts which solely post advertisements, or persistently post them may be terminated.

kbin.life

Semi_Hemi_Demigod , to technology in Bitcoin is Stupid and Does Not Deserve an Emoji (blog post)
@Semi_Hemi_Demigod@lemmy.world avatar

If we’re not getting an asshole emoji this will suffice.

EarthlingHazard , to asklemmy in What are your favorite open-source games?

Haven’t seen this one mentioned but I have fond memories of Frets on Fire which is a guitar hero clone

Zier , to technology in US Email Providers - Other then Google, MS, Apple, ...
@Zier@fedia.io avatar

Pay for hosting through Namecheap (lowest tier price) and use your domain there through cPanel in your hosting interface. Don't use their email only offering, it's more expensive. All you need to do is set up the domain and email addresses. You don't need to actually host a website. They have a web interface, but I use a client (Thunderbird).

Lost_My_Mind , to retrogaming in The Legend of Banjo-Kazooie: The Jiggies of Time

Great! I’ll just head over go ROMHacking.net to download it…

…oh damnit.

turkalino OP ,
@turkalino@lemmy.yachts avatar

They posted a siterip on archive dot org but I doubt I’m allowed to post a link here

muntedcrocodile , to programmerhumor in Principal Skinner on Immutable Distros
@muntedcrocodile@lemm.ee avatar

I’m suprised I havnt seen people using nix for docker images more.

demesisx OP ,
@demesisx@infosec.pub avatar

It’s still fairly challenging and the documentation is probably, at best, dogshit (if I may be so blunt) at the moment.

OCI is probably a more worthy goal anyway, IMO. And it is unsurprisingly much more well-supported.

muntedcrocodile ,
@muntedcrocodile@lemm.ee avatar

Huh seems cool if i had the bandwidth and time I’d convert my things over but i really couldn’t be bothered tbh.

savvywolf , to retrogaming in The Legend of Banjo-Kazooie: The Jiggies of Time
@savvywolf@pawb.social avatar

patch.wedarobi.com Tool where you can provide your own ROM and it’ll apply the patch for this game (and others).

Played this a while ago, and it was really good! Would recommend giving it a go.

bionicjoey , to technology in Is there a Git repository activity aggregator, like GitHub's user activity but platform independent?

Probably not, since Git is federated and decentralized. There are no git “accounts”. Git asks for your name and email but those are basically meaningless unless the repository hosting platform does something with them like ties them to an account identity.

You could maybe use the GitHub activity view by also mirroring your projects from elsewhere onto GH

2xsaiko OP ,
@2xsaiko@discuss.tchncs.de avatar

There don’t have to be, it would be completely fine just filtering commits by author email. Or maybe even signing key.

rwdf , to linux in IDE/Text Editor Recommendations for Go Development on Linux

I use Neovim, specifically LazyVim. It’s super easy to get up and running with Go.

TrickDacy , to techsupport in Cloned Windows 10 drive keeps taking me to automatic repair after using clonezilla

It’s been a while but I always had good luck with macrium reflect

Jyek ,

No longer free

TrickDacy ,

That sucks. Can you download the older versions? I know I have some on my drive.

K1nsey6 , to nostupidquestions in If you could substract* a leader from this world which one would you choose ?
@K1nsey6@lemmy.world avatar

Capitalism

nublug , to technology in Bitcoin is Stupid and Does Not Deserve an Emoji (blog post)

fighting for bitcoin to get an emoji is stupid, but fighting against it might be even stupider. surely there are more important things to spend your time and energy on. it’s a fucking emoji. who cares?

smallpatatas OP ,

normalizing scams, by laundering their image via standards organizations, pollutes our communications environment. Both an emoji and a petition are symbolic - and our symbols are in fact important.

CeeBee_Eh ,

Bitcoin isn’t a scam. All non-bitcoin cryptocurrencies are scams.

People often hear about stuff like coins that are pre-mined, or proof-of-stake and the schemes and scans that come out of those, and immediately associate Bitcoin with the same thing.

shortwavesurfer ,

That is also not 100% true. There are several altcoins with fantastic utility. Monero and Ethereum come to mind.

sugar_in_your_tea ,

Exactly. Most cryptocurrencies are scams, but a handful are fantastic. Ethereum is cool for being proof-of-stake (so no high-energy mining), and Monero is cool for being super privacy-oriented. There are a handful more, but honestly, if you stick with Bitcoin, Ethereum, and Monero, you’ll be fine.

shortwavesurfer ,

That’s pretty much exactly my thought. I hold a very very small amount in Polygon, but only in order to pay the gas fees for the Polygon network. So I never have more than a few US dollars worth in it at a time.

sugar_in_your_tea ,

Yeah, I basically just do Monero, and I use it as a spend account and use it anywhere it’s accepted. I don’t invest in any cryptocurrencies because I don’t think cryptocurrencies have positive expected return (it’s all hype), so I keep the amount of crypto I have small.

CeeBee_Eh ,

I wouldn’t argue with that. I was mostly generalizing.

Ghostalmedia , to technology in Bitcoin is Stupid and Does Not Deserve an Emoji (blog post)
@Ghostalmedia@lemmy.world avatar

I think I should post a 1000 word essay about why I dislike the merman emoji.

some_guy , to memes in Priorities, right?

I don’t understand. But maybe fuck off with this bullshit. Lemmy is doing fine.

arran4 , to technology in Is there a Git repository activity aggregator, like GitHub's user activity but platform independent?

I asked chatgpt to write a go program for this, this looks roughly correct (I have used both libraries before) obviously this won’t be enough for your particular use case. I imagine you can integrate an RSS feed to your site, however if you’re using something like hugo perhaps output it as a csv.

Super low effort but a good start I think:


<span style="font-weight:bold;color:#a71d5d;">package</span><span style="color:#323232;"> main
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">import </span><span style="color:#323232;">(
</span><span style="color:#323232;">	</span><span style="color:#183691;">"fmt"
</span><span style="color:#323232;">	</span><span style="color:#183691;">"log"
</span><span style="color:#323232;">	</span><span style="color:#183691;">"os"
</span><span style="color:#323232;">	</span><span style="color:#183691;">"strings"
</span><span style="color:#323232;">	</span><span style="color:#183691;">"time"
</span><span style="color:#323232;">
</span><span style="color:#323232;">	git </span><span style="color:#183691;">"github.com/go-git/go-git/v5"
</span><span style="color:#323232;">	rss </span><span style="color:#183691;">"github.com/jteeuwen/go-pkg-rss"
</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">const </span><span style="color:#323232;">(
</span><span style="color:#323232;">	timeout </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#0086b3;">5 </span><span style="font-style:italic;color:#969896;">// timeout in seconds for the RSS feed generation
</span><span style="color:#323232;">)
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;">// Repository represents a git repository with its URL
</span><span style="font-weight:bold;color:#a71d5d;">type </span><span style="color:#323232;">Repository </span><span style="font-weight:bold;color:#a71d5d;">struct </span><span style="color:#323232;">{
</span><span style="color:#323232;">	URL </span><span style="font-weight:bold;color:#a71d5d;">string
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;">// Repositories is the list of git repositories
</span><span style="font-weight:bold;color:#a71d5d;">var </span><span style="color:#323232;">Repositories </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#323232;">[]Repository{
</span><span style="color:#323232;">	{URL: </span><span style="color:#183691;">"https://github.com/owner/repo1"</span><span style="color:#323232;">},
</span><span style="color:#323232;">	{URL: </span><span style="color:#183691;">"https://github.com/owner/repo2"</span><span style="color:#323232;">},
</span><span style="color:#323232;">	</span><span style="font-style:italic;color:#969896;">// Add more repositories here
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;">// FetchLatestTag fetches the latest tag from a git repository
</span><span style="font-weight:bold;color:#a71d5d;">func </span><span style="font-weight:bold;color:#795da3;">FetchLatestTag</span><span style="color:#323232;">(repoURL </span><span style="font-weight:bold;color:#a71d5d;">string</span><span style="color:#323232;">) (</span><span style="font-weight:bold;color:#a71d5d;">string</span><span style="color:#323232;">, </span><span style="font-weight:bold;color:#a71d5d;">string</span><span style="color:#323232;">, </span><span style="font-weight:bold;color:#a71d5d;">error</span><span style="color:#323232;">) {
</span><span style="color:#323232;">	</span><span style="font-style:italic;color:#969896;">// Clone the repository to a temporary directory
</span><span style="color:#323232;">	dir, err </span><span style="font-weight:bold;color:#a71d5d;">:=</span><span style="color:#323232;"> os.MkdirTemp(</span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">"repo"</span><span style="color:#323232;">)
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">""</span><span style="color:#323232;">, err
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">defer</span><span style="color:#323232;"> os.RemoveAll(dir)
</span><span style="color:#323232;">
</span><span style="color:#323232;">	_, err </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> git.PlainClone(dir, </span><span style="color:#0086b3;">true</span><span style="color:#323232;">, </span><span style="font-weight:bold;color:#a71d5d;">&</span><span style="color:#323232;">git.CloneOptions{
</span><span style="color:#323232;">		URL:      repoURL,
</span><span style="color:#323232;">		Progress: os.Stdout,
</span><span style="color:#323232;">	})
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">""</span><span style="color:#323232;">, err
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	repo, err </span><span style="font-weight:bold;color:#a71d5d;">:=</span><span style="color:#323232;"> git.PlainOpen(dir)
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">""</span><span style="color:#323232;">, err
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	tags, err </span><span style="font-weight:bold;color:#a71d5d;">:=</span><span style="color:#323232;"> repo.Tags()
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">""</span><span style="color:#323232;">, err
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">var </span><span style="color:#323232;">latestTag </span><span style="font-weight:bold;color:#a71d5d;">string
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">var </span><span style="color:#323232;">latestCommitTime time.Time
</span><span style="color:#323232;">
</span><span style="color:#323232;">	err </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> tags.ForEach(</span><span style="font-weight:bold;color:#a71d5d;">func</span><span style="color:#323232;">(ref </span><span style="font-weight:bold;color:#a71d5d;">*</span><span style="color:#323232;">plumbing.Reference) </span><span style="font-weight:bold;color:#a71d5d;">error</span><span style="color:#323232;"> {
</span><span style="color:#323232;">		tag :</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> ref.Name().Short()
</span><span style="color:#323232;">		commit, err :</span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> repo.CommitObject(ref.Hash())
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil</span><span style="color:#323232;"> {
</span><span style="color:#323232;">			</span><span style="font-weight:bold;color:#a71d5d;">return</span><span style="color:#323232;"> err
</span><span style="color:#323232;">		}
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> commit.Committer.When.After(latestCommitTime) {
</span><span style="color:#323232;">			latestCommitTime </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> commit.Committer.When
</span><span style="color:#323232;">			latestTag </span><span style="font-weight:bold;color:#a71d5d;">=</span><span style="color:#323232;"> tag
</span><span style="color:#323232;">		}
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#0086b3;">nil
</span><span style="color:#323232;">	})
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">return </span><span style="color:#183691;">""</span><span style="color:#323232;">, </span><span style="color:#183691;">""</span><span style="color:#323232;">, err
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">return</span><span style="color:#323232;"> latestTag, latestCommitTime.Format(time.RFC1123Z), </span><span style="color:#0086b3;">nil
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="font-style:italic;color:#969896;">// GenerateRSS generates an RSS feed from the latest tags of the repositories
</span><span style="font-weight:bold;color:#a71d5d;">func </span><span style="font-weight:bold;color:#795da3;">GenerateRSS</span><span style="color:#323232;">() </span><span style="font-weight:bold;color:#a71d5d;">string </span><span style="color:#323232;">{
</span><span style="color:#323232;">	feed </span><span style="font-weight:bold;color:#a71d5d;">:=</span><span style="color:#323232;"> rss.Feed{
</span><span style="color:#323232;">		Title:       </span><span style="color:#183691;">"Latest Tags from Git Repositories"</span><span style="color:#323232;">,
</span><span style="color:#323232;">		Link:        </span><span style="font-weight:bold;color:#a71d5d;">&</span><span style="color:#323232;">rss.Link{Href: </span><span style="color:#183691;">"http://example.com/"</span><span style="color:#323232;">},
</span><span style="color:#323232;">		Description: </span><span style="color:#183691;">"This feed provides the latest tags from a list of git repositories."</span><span style="color:#323232;">,
</span><span style="color:#323232;">		Created:     time.Now(),
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">for </span><span style="color:#323232;">_, repo </span><span style="font-weight:bold;color:#a71d5d;">:= range</span><span style="color:#323232;"> Repositories {
</span><span style="color:#323232;">		tag, date, err </span><span style="font-weight:bold;color:#a71d5d;">:= </span><span style="color:#323232;">FetchLatestTag(repo.URL)
</span><span style="color:#323232;">		</span><span style="font-weight:bold;color:#a71d5d;">if</span><span style="color:#323232;"> err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">			log.Printf(</span><span style="color:#183691;">"Error fetching latest tag for repository </span><span style="color:#0086b3;">%s</span><span style="color:#183691;">: </span><span style="color:#0086b3;">%v</span><span style="color:#183691;">"</span><span style="color:#323232;">, repo.URL, err)
</span><span style="color:#323232;">			</span><span style="font-weight:bold;color:#a71d5d;">continue
</span><span style="color:#323232;">		}
</span><span style="color:#323232;">		feed.Items </span><span style="font-weight:bold;color:#a71d5d;">= </span><span style="color:#62a35c;">append</span><span style="color:#323232;">(feed.Items, </span><span style="font-weight:bold;color:#a71d5d;">&</span><span style="color:#323232;">rss.Item{
</span><span style="color:#323232;">			Title:       fmt.Sprintf(</span><span style="color:#183691;">"Latest tag for </span><span style="color:#0086b3;">%s</span><span style="color:#183691;">: </span><span style="color:#0086b3;">%s</span><span style="color:#183691;">"</span><span style="color:#323232;">, repo.URL, tag),
</span><span style="color:#323232;">			Link:        </span><span style="font-weight:bold;color:#a71d5d;">&</span><span style="color:#323232;">rss.Link{Href: repo.URL},
</span><span style="color:#323232;">			Description: fmt.Sprintf(</span><span style="color:#183691;">"The latest tag for repository </span><span style="color:#0086b3;">%s</span><span style="color:#183691;"> is </span><span style="color:#0086b3;">%s</span><span style="color:#183691;">, created on </span><span style="color:#0086b3;">%s</span><span style="color:#183691;">."</span><span style="color:#323232;">, repo.URL, tag, date),
</span><span style="color:#323232;">			Created:     time.Now(),
</span><span style="color:#323232;">		})
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">var </span><span style="color:#323232;">rssFeed strings.Builder
</span><span style="color:#323232;">	rssFeed.WriteString(xml.Header)
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">if </span><span style="color:#323232;">err </span><span style="font-weight:bold;color:#a71d5d;">:=</span><span style="color:#323232;"> feed.Write(</span><span style="font-weight:bold;color:#a71d5d;">&</span><span style="color:#323232;">rssFeed); err </span><span style="font-weight:bold;color:#a71d5d;">!= </span><span style="color:#0086b3;">nil </span><span style="color:#323232;">{
</span><span style="color:#323232;">		log.Fatalf(</span><span style="color:#183691;">"Error generating RSS feed: </span><span style="color:#0086b3;">%v</span><span style="color:#183691;">"</span><span style="color:#323232;">, err)
</span><span style="color:#323232;">	}
</span><span style="color:#323232;">
</span><span style="color:#323232;">	</span><span style="font-weight:bold;color:#a71d5d;">return</span><span style="color:#323232;"> rssFeed.String()
</span><span style="color:#323232;">}
</span><span style="color:#323232;">
</span><span style="font-weight:bold;color:#a71d5d;">func </span><span style="font-weight:bold;color:#795da3;">main</span><span style="color:#323232;">() {
</span><span style="color:#323232;">	rssFeed </span><span style="font-weight:bold;color:#a71d5d;">:= </span><span style="color:#323232;">GenerateRSS()
</span><span style="color:#323232;">	fmt.Println(rssFeed)
</span><span style="color:#323232;">}
</span>
Jyek , to techsupport in Cloned Windows 10 drive keeps taking me to automatic repair after using clonezilla

I use disk genius. It’s pretty great. Haven’t had a single failed clone yet.

  • All
  • Subscribed
  • Moderated
  • Favorites
  • random
  • lifeLocal
  • goranko
  • All magazines