alcinnz
alcinnz boosted

Now I'm thinking how to reconcile the typical layered pixmap editor that Deluxe Draw aims to implement with the ZX Spectrum colour model.

That would require the editor to support layers of different resolutions:

  1. background plane with attributes (32 x 24)
  2. bitmap plane on top acquiring colours from the attribute layer underneath.

It could conceivably be construed as a blend mode of sorts. That might possibly work.

The blend mode seems doable, the different resolutions per layer is more tricky or possibly hacky.

#DeluxeDraw #foss #golang #pixelart

alcinnz
alcinnz boosted

There are two reasons why I needed to get palette handling done early on during the development of Deluxe Draw:

  1. You need palettes for themes, and you need themes for a decent GUI. If every new colour you use is an improvised hack you end up with terrible looking GUIs of the sort everyone has decided not to use.

  2. You can't have standard system icons if you don't agree on a stable palette. I needed to stabilise at least one minimal palette so I could have a regular icon format, and icons for Deluxe Draw.

The Deluxe Pixmap Format (.dpf) is a text-based that is easy to read and write. The child of .xmp pixmaps and .bdf fonts. XMP pixmaps are cool but they only store one single image. BDF fonts are cool but they only store monochrome bitmaps. DPF is meant to store any number of named indexed-colour icons or glyphs.

You can only know how these icons are going to look in another system if you guarantee a stable palette is going to be available.

So there you go.

#DeluxeDraw #pixelart #palette #foss #golang

vruz
vruz boosted

Dropdown menus render exactly right. Also some room for improvement there behaviourally speaking.

Not a minor aspect now, considering that the last re-write has seen a clean separation of the UI logic and the backend. I could try an alternative backend in GL or SDL as a canary to ensure the app-level code always remains backend-independent.

#foss #deluxedraw #golang

Looking for suggestions from #Golang folks in enterprises. How do you handle dependencies on other internal repos?

Here's what happened: I got asked to add a feature to company/logger, so I start my work off the main branch. I get my feature done, and go to test it by pointing company/foo to my branch on a testing branch of its own. Simple enough, right? Wrong.

You see company/foo uses company/logger, but from a branch that was deleted 2 yrs ago. Additionally, that branch of company/logger references a company/proto dependency which is also from a branch deleted 2 yrs ago. Needless to say, a lot has changed in two years since these branches diverged. Nothing in the build or test phases highlighted this issue. For two years, we'd been running unsupported code in production.

Fast-forward to 3 days later, and I finally reconciled 2 yrs of drift between the three repositories (complicated by an organization rename/migration which involved duplication of the google protobuf global initializaiton non-sense).

We already have GOPRIVATE to specify our internal repo prefixes. So, is it reasonable or traditional for enterprise CI/CD to check go.mod for GOPRIVATE repos and require that they be tagged or on the tree's mainline? If so, are there tools that do this? My searching for "go module audits" aren't really helping since that's all vulnerability stuff.

What do you do to prevent this in your organizations?

@graves501 For me Rust is like nextgen C++ and Go is like nextgen userspace C. I do a lot of #Go #golang and #Cpp (because I have to) and while I tried #Rust I rather port things I can from C++ to Go because I hardly see any use of all that C++ “what if” abstraction anymore. Rather than rewriting 1:1 I enjoy shrinking and reducing them to simplicity. I quite enjoy Go and understand other folks enjoy Rust. It is nice we have choice and languages evolve.

Just another opinionated PSA:

#Golang is fun to write and easier to learn than #Rust

I got sidetracked by the Rust hype for a while until #ThePrimeagen pointed out that Rust isn't a fun language for him.

I realized that it also applied to me.

If you enjoy Rust, go ahead, more power to you!

I just wasn't very productive with Rust and I never needed to do anything complicated to begin with.

So these days I just write some CLI utils and backend stuff in Go and am thoroughly enjoying it!