arran4
@arran4@aussie.zone
- Comment on Peter Molyneux thinks generative AI is the future of games, all but guaranteeing that it won't be 2 months ago:
It’s probably great for bulk as it gives you something close to what you would expect. I imagine it would be different for things that are specific to the lore, world, etc.
- Comment on The air begins to leak out of the overinflated AI bubble 2 months ago:
The fact that is is from LA Times shows that it’s still significant though
- Comment on We need to nationalise Google, Facebook and Amazon. Here’s why 2 months ago:
Back before the media decided it wasn’t a competitor but rather a potential profit source. I do think the government does need to have it’s own alternatives (obviously not identical more on this one day) for other reasons, such as for it’s own media releases, but more internationally coordinated appropriate & considered legislation is probably better.
- Comment on Is there a Git repository activity aggregator, like GitHub's user activity but platform independent? 3 months ago:
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:
package main import ( "fmt" "log" "os" "strings" "time" git "github.com/go-git/go-git/v5" rss "github.com/jteeuwen/go-pkg-rss" ) const ( timeout = 5 // timeout in seconds for the RSS feed generation ) // Repository represents a git repository with its URL type Repository struct { URL string } // Repositories is the list of git repositories var Repositories = []Repository{ {URL: "https://github.com/owner/repo1"}, {URL: "https://github.com/owner/repo2"}, // Add more repositories here } // FetchLatestTag fetches the latest tag from a git repository func FetchLatestTag(repoURL string) (string, string, error) { // Clone the repository to a temporary directory dir, err := os.MkdirTemp("", "repo") if err != nil { return "", "", err } defer os.RemoveAll(dir) _, err = git.PlainClone(dir, true, &git.CloneOptions{ URL: repoURL, Progress: os.Stdout, }) if err != nil { return "", "", err } repo, err := git.PlainOpen(dir) if err != nil { return "", "", err } tags, err := repo.Tags() if err != nil { return "", "", err } var latestTag string var latestCommitTime time.Time err = tags.ForEach(func(ref *plumbing.Reference) error { tag := ref.Name().Short() commit, err := repo.CommitObject(ref.Hash()) if err != nil { return err } if commit.Committer.When.After(latestCommitTime) { latestCommitTime = commit.Committer.When latestTag = tag } return nil }) if err != nil { return "", "", err } return latestTag, latestCommitTime.Format(time.RFC1123Z), nil } // GenerateRSS generates an RSS feed from the latest tags of the repositories func GenerateRSS() string { feed := rss.Feed{ Title: "Latest Tags from Git Repositories", Link: &rss.Link{Href: "http://example.com/"}, Description: "This feed provides the latest tags from a list of git repositories.", Created: time.Now(), } for _, repo := range Repositories { tag, date, err := FetchLatestTag(repo.URL) if err != nil { log.Printf("Error fetching latest tag for repository %s: %v", repo.URL, err) continue } feed.Items = append(feed.Items, &rss.Item{ Title: fmt.Sprintf("Latest tag for %s: %s", repo.URL, tag), Link: &rss.Link{Href: repo.URL}, Description: fmt.Sprintf("The latest tag for repository %s is %s, created on %s.", repo.URL, tag, date), Created: time.Now(), }) } var rssFeed strings.Builder rssFeed.WriteString(xml.Header) if err := feed.Write(&rssFeed); err != nil { log.Fatalf("Error generating RSS feed: %v", err) } return rssFeed.String() } func main() { rssFeed := GenerateRSS() fmt.Println(rssFeed) }
- Comment on ServerBox 4 months ago:
I like the idea and have been meaning to build / find something like this however this does a little too much and in not quite the way I want. But it’s cool for those who need this exact implementation.
- Comment on "Training future authoritarians": How China promotes ts authoritarian capitalism model by teaching government officials in the Global South on how to infringe people's freedom and undermine democracy 5 months ago:
That’s very coldwaresq behavior
- Comment on Facebook ate and then ignored the news industry. It's hard, but we should leave it be 8 months ago:
Would this mean free news for all residents and citizens and journalist get paid for consumption?
- Comment on Best way to dockerize a static website? 8 months ago:
The busybox one seems great as it comes with shells. php looks like it would add some issues.
Personally since I use go, I would create a go embedded app, which I would make a deb, rpm, and a dockerfile using “goreleaser”
package main import ( "embed" "net/http" ) //go:embed static/* var content embed.FS func main() { http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { // Serve index.html as the default page http.ServeContent(w, r, "index.html", nil, content) }) // Serve static files http.Handle("/static/", http.StripPrefix("/static/", http.FileServer(http.FS(content)))) // Start the server http.ListenAndServe(":8080", nil) }
Would be all the code but allows for expansion later. However the image goreleaser builds doesn’t come with busybox on it so you can’t
docker exec
into it. goreleaser.com/customization/docker/ - Comment on Beeper users say Apple is now blocking their Macs from using iMessage entirely 10 months ago:
Tried beeper?
- Comment on Our children are victims of road violence. We need to talk about the deadly norms of car use 1 year ago:
Would you support public transport improvements?