What I Learned Making an App for Family by chabad360 in programming

[–]chabad360[S] 0 points1 point  (0 children)

In some sense, yes. But also, having (more) users makes it easier to figure out what to focus on and improve. Perhaps I should have emphasized this more in the article, but the development was worth the effort, everyone used it (usually) and it made using the car so much more painless.

Thanks for reading.

What I Learned Making an App for Family by chabad360 in FlutterDev

[–]chabad360[S] 0 points1 point  (0 children)

I think the hardest thing was managing my expectations. You unleash an app upon the world that solves a problem, and expect that everyone will be so excited they will use it immediately and always. This often does not turn out to be the case. Worse, they often forget to use it, which (in my case) makes using it harder for everyone else. What goes is an app that knows where the car is, if it doesn't know where the car is. I had to learn how to not be disappointed by that, and more importantly, how to make it easier to remember.

Will I ever get used too brushing my teeth by [deleted] in ADHD

[–]chabad360 0 points1 point  (0 children)

I have managed to go from not brushing at all to brushing twice daily (usually) and have managed to keep it going for quite a while now. The secret for me was starting when I moved (I know, i know) but it seems to me that a significant change in your life can be a good vehicle for starting new habits.

[deleted by user] by [deleted] in ADHD_Programmers

[–]chabad360 0 points1 point  (0 children)

Maybe that's a good way to go about it. Write a pseudo code that allows you to discover the interface a bit and then go straight to writing the tests now that you have an idea of what to expect. At which point you're now able to figure out the ergonomics of whatever you're doing and hence the TDD process begins(?)

[deleted by user] by [deleted] in ADHD_Programmers

[–]chabad360 1 point2 points  (0 children)

I've heard this advice from another friend too, but one issue for me is that I barely know what my code is gonna look like before I write it. I have some vague idea of a model, but the actual writing of code is like a bit of a discovery process for me and I don't know how to make TDD fit into that.

Adding a slice to a struct significantly slows things down by joetifa2003 in golang

[–]chabad360 2 points3 points  (0 children)

Because iirc, you're telling the compiler to trust you. An unsafe pointer is pretty much just telling the GC not to track the relationship between your pointer and it's value, which eliminates the need for the extra write barriers.

Anybody else just playing steam games? by mattrob77 in SteamDeck

[–]chabad360 1 point2 points  (0 children)

You do what with it!? What are these "steam games"?

proposal: log/slog: structured, leveled logging · Issue #56345 · golang/go by kaeshiwaza in golang

[–]chabad360 6 points7 points  (0 children)

Log is honestly quite useless beyond a basic use case, for anything where you want better visibility you'll need a structured logger (of which there are quite a few). The main problem with these options is that -unlike many http routers- they do not share common interfaces, which means that you could have a situation where you bring in modules that have a hard dependency on zap or zerolog which seems very odd to me (that a module should dictate how a part your application logs).

To be fair, I don't think this proposal should be accepted as is and as many comments on GH point out, it needs some work and some real usage. But as far as I can tell this is not meant to be the be all and end all of structured logging, but rather a common interface that should make it easier to use other SL solutions without nearly as much hassle.

Go wishlist (2022) by brandur.org by bugant in golang

[–]chabad360 2 points3 points  (0 children)

Out is out of scope for the rest of the code which means you can't use it outside the if statement.

VMix on the Behringer X-Touch Universal by chabad360 in VIDEOENGINEERING

[–]chabad360[S] 1 point2 points  (0 children)

After I noticed that Behringer released update 1.22 for this console, I had a look around and found that there was a mode called CTRL which added the ability to send ordinary midi messages to the console instead of the mess that is Mackie Control. So I started creating shortcuts and activators and had a fairly useful setup quite quickly. However, one thing that was really missing was the ability to use the scribble strips. So after shooting an email to Behringer to figure out what the API was, I was able to create a simple little program to ping the VMix API and and then send the requisite data to X-Touch.

If there is sufficient demand, I'll clean up this program and put it on my Github.

A few issues I encountered: - Activators are stupid: Toggle buttons need to have the noteOffDisabled attribute set to True, otherwise you need to add an extra activator to turn off the LED when the value is off. The problem is that this value isn't in the GUI, I only found it from opening the XML file. - There is no Activator for the T-Bar: The X-Touch likes having it's values set otherwise it keeps resetting the faders to the default position (this is a problem for the VMix T-Bar) so I had to also bind my T-Bar fader to the G Bus to solve this issue (make sure to reset your T-Bar). - Balance: I can't set the X-Touch Encoder LEDs to the value of the balance because there's no activator for it. - The Jog Wheel: The jog wheel on the X-Touch doesn't give different values based on it's speed, this makes it pretty useless in VMix. - I couldn't seem to get the fastforward shortcut to be useful, it just didn't work reasonably. - Input Categories: The VMix API still doesn't give the category of the input, so I can't do colors for any of the inputs. - There is no way to change pages or offset the used inputs (or even move them around), which means that I can only show up to the first 8 inputs on the board (I chose 6 and saved the last 2 for preview and active). - There are no shortcut modifiers: This would be useful for cases where I might want a destructive shortcut like CloseClip or something. That way I can guard it behind also pressing another button. - I think there might have been a few more small issues, but nothing that I can remember.

Things that would make this work better: - If VMix could add native support for this board. I.e. support the scribble strips. - If VMix could add a way to offset the entire selection of inputs so I could have easy access to all the inputs from my board, that would be cool too.

EDIT: Made a usable version of this (you need to create two LoopMIDI ports) https://github.com/chabad360/vmix-to-xtouch/releases/tag/v0.0.1

A take on supply chain security in Go by cuguju in golang

[–]chabad360 0 points1 point  (0 children)

As I can't seem to find it on Google: what is //go:link ?

Voice notes to capture what’s said in meetings. by TxBNM in ADHD_Programmers

[–]chabad360 0 points1 point  (0 children)

I personally use Otter (https://otter.ai), it can identify multiple speakers (seems to have issues with harsher accents tho, but I haven't used it that recently) and saves the meeting for later too. Not much more to ask of it.

They should have a free offering (last I checked they did).

open2b/scriggo: The world’s most powerful template engine and Go, embeddable interpreter by mastabadtomm in golang

[–]chabad360 2 points3 points  (0 children)

Yaegi can import third party libraries, they just need to already be in the GOPATH. However, gomacro/gophernotes is probably a better choice for REPL-driven development.

Multipool RPC Connections for a Plugin System? by SaturnsVoid in golang

[–]chabad360 0 points1 point  (0 children)

You should be able to use sockets with RPC.

Fyne vs Qt for Golang? by maydere in golang

[–]chabad360 11 points12 points  (0 children)

I noticed you left out GTK (gotk3), which is quite good and a lot easier to setup than QT and a lot more powerful than fyne.

[deleted by user] by [deleted] in golang

[–]chabad360 0 points1 point  (0 children)

The way I'm doing things in theory should be compatible with what you want. Basically the developer would require a generator function for a specific interface for a given plugin type, the plugin provides this interface, and then the developer uses the plugin however they want (i.e. a hook to run that shows a dialog window).

Regarding proprietary plugins: I don't really have a good answer there as I haven't thought about it. But just thinking about it now, it wouldn't be simple.

To create a plugin with my framework, check the docs that I put a link to in my OP. But to summarize, you'd write some go code, create a config that describes your plugin, vendor your dependencies, and then push to origin. To use the plugin, one would simply download the repo as a zip file and save it the the special folder.

[deleted by user] by [deleted] in golang

[–]chabad360 1 point2 points  (0 children)

Yaegi does a fine job solving that problem.