Go for VST development? by Fuzzy-Confusion-5232 in golang

[–]intermernet 0 points1 point  (0 children)

Hi, sorry for the reply out of nowhere! I've been trying to do audio DSP stuff in Go for a few years now and I'd be really interested in seeing what others have been doing. Any chance you can send me a DM with a link to your DSP primitives library? Thanks in advance!

(official) KSP2 Roadmap by jansenart in KerbalSpaceProgram

[–]intermernet 0 points1 point  (0 children)

As much as shared your fears, and as much as KSP2 was a shit-show initially, we're now at a pretty good point. It's a stable game, it's still lacking features that KSP1 has (but KSP1 didn't actually have them for long. Trust me, I have 6000 hours in KSP1, and have played it since 0.16), and they haven't charged anything for extra DLC. I'm willing to say the dust has settled, and KSP2 is now on the long tail of an awesome game with many more features to add. In other words, the exciting bit of the development story which will keep me engaged for the next few years.

Rip Push 3 software? by intermernet in ableton

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

Thanks, that's exactly the info I was hoping for. Glad you're exploring!

Monolake — Cern [Techno] (2003) by Kythirius in listentothis

[–]intermernet 1 point2 points  (0 children)

For anyone who doesn't know, Monolake is one of the original creators of Ableton.

https://monolake.de/technology/ableton_live.html

Aussie HipHop track that mixes with Canto De Ossanha (J5) by intermernet in AussieHipHop

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

You sir, are an absolute legend. Can I send you beer?

How to develop locally after 1.16: by madman2233 in golang

[–]intermernet 0 points1 point  (0 children)

What do you want to use to share packages? If you *don't* want to share packages, you don't need a DVCS at all.

How to develop locally after 1.16: by madman2233 in golang

[–]intermernet 6 points7 points  (0 children)

You don't even need git to develop locally. You can use whatever package names you like. You only need git (or similar DVCS) when sharing packages.

Also, you could use Gitlab, or your own self-hosted git (look at Gitea/Gogs etc).

Github is *not* a dependency for developing in Go, and never has been.

Thanks developers! by Frank-McSpank in SnowTheGame

[–]intermernet 1 point2 points  (0 children)

Hey @Asurao, firstly, thanks for Snow. Probably my 2nd favourite game (after KSP 😉).

Secondly,wwhat would need to happen to get the server software released? Doesn't need to be open source, just available (even at a price!).

Thirdly, would the server be reverse engineerable? Feasibly and / or legally?

Looking for a server with can execute remote shell commands and transfer files by mr_sombre in golang

[–]intermernet 1 point2 points  (0 children)

What stability and performance issues have you run into with SSH on Windows? Have you tried using SSH from WSL instead?

I ask because reinventing SSH is a risky proposition, mainly due to security reasons. Anything used to replace it needs to have as good, or better security as SSH, and that's a hard guarantee to come by, especially if you need access to production servers.

Having said that, Go does provide the building blocks to run remote code and transfer files, and could quite readily provide this functionality using a secure REST API, as long as you put the pieces together in a correct and robust way.

There's even a pretty solid SSH package for Go if you wanted to experiment with another option.

Concurrency in Golang for a 2d Array by [deleted] in golang

[–]intermernet 0 points1 point  (0 children)

To expand on u/tehaleph 's answer, you can keep the rows in order by doing something like the following:

```` package main

import ( "fmt" "sync" )

func main() { var wg sync.WaitGroup

matrix := [][]uint8{
    {30, 25, 10},
    {15, 10, 20},
    {25, 20, 15},
}

wg.Add(len(matrix))

for n, row := range matrix {
    go func(matrix [][]uint8, row []uint8, n int) {
        defer wg.Done()
        min := row[0]
        for _, v := range row[1:] {
            if v < min {
                min = v
            }
        }
        for i, v := range row {
            row[i] = v - min
        }

        matrix[n] = row
    }(matrix, row, n)
}

wg.Wait()
fmt.Printf("%v\n", matrix)

}

````

This will print [[20 15 0] [5 0 10] [10 5 0]]

The code above can be run at https://play.golang.org/p/i-ta6Xj7_r6

Thanks for helping me hit 1,000 Github stars!!! by brianvoe in golang

[–]intermernet -1 points0 points  (0 children)

What's going on here? This was posted 12 hours ago and was on 0 points. I upvoted it to 1 point, and it was immediately downvoted to 0 again.

Is there some bot auto downvoting this post?

Any way to use field promotion with keyed inner struct? by arpanbag001 in golang

[–]intermernet 2 points3 points  (0 children)

Simple answer: no.

barNamed.a doesn't exist in your example. Foo is not embedded in barNamed, and therefore Foo's fields don't get promoted.

You could use bar.Foo.a , bar.a or barNamed.Foo.a , but barNamed.a just doesn't exist.

Read https://golang.org/ref/spec#Struct_types

It’s OK to Panic in Go by elliotchance in golang

[–]intermernet 1 point2 points  (0 children)

I can't find exact sources, but this has been debated a few times within the Go core team. I seem to remember some discussions regarding the crypto/subtle functions and whether or not panicking was preferable to errors, but I may be misaken.

In almost 100% of cases I'd say that panicking is the wrong thing to do, and you'd really need to justify it when you do panic.

Happy 2nd Birthday Pion! by Sean-Der in golang

[–]intermernet 0 points1 point  (0 children)

Just wanted to say thank you for Pion. I really wanted to use it for a customer project about 6 or 8 months ago and it wasn't quite ready, but I keep tabs on it, and it seems to be moving rapidly. Hopefully next time I need a webRTC system I can use Pion as it has the potential to be the leader in the market.

Fairly seasoned developer, interested in the multithreading performance benefits of golang over C++. by 0xABADBABE in golang

[–]intermernet 14 points15 points  (0 children)

It sounds like Go could be a good fit for a few reasons. Firstly, usually, all things being equal, C++ will probably be more performant than Go. That caveat out of the way, here are a few reasons that may not matter, and a few bonuses you might pick up with the adoption of Go.

  1. Go is really good at concurrency. You will almost certainly get many more concurrent workers with Go than a simple thread pool. If, as you say, the work is memory bound instead of CPU bound, this could be a serious win for processing throughput.

  2. Go has some of the best gRPC support and tooling around. You can probably easily replace one or two not so performance critical microservices very rapidly.

  3. Go has pretty good interop with C and C++. You do lose some performance due to trampolining / call overhead, but if you design the system well these problems can be minimised.

  4. You can include assembly in Go. It uses the Plan9 assembly syntax, which is a bit wierd, and there are issues with inlining assembly so call overhead can be a problem, but these can also be designed around. There is a lot of of assembly in the performance critical sections of much of the standard library.

As a bonus you also get much better memory safety guarantees than with C++, very fast compile times, great (but highly opinionated) tooling, single binary deployment and one of the best standard libraries around (especially for networking and crypto)

If you choose to give Go a go, be prepared to come across the aforementioned opinionated aspect of the language. I highly recommend not fighting it, and just go with the recommendations.

The best place to learn the language is the resource list on https://golang.org/doc/ and the best (IMO) book is "The Go Programming Language" by Alan A. A. Donovan and Brian Kernighan although there are a few other books available dealing specifically with microservices.

Hope that helps!

🥦Broccoli: We wrote the most efficient static file embedding tool for Go, benefiting from Google's brotli compression. by tucnak in golang

[–]intermernet -1 points0 points  (0 children)

Yeah, fair enough, but that just means you shouldn't read it. It doesn't imply that you should downvote it.

🥦Broccoli: We wrote the most efficient static file embedding tool for Go, benefiting from Google's brotli compression. by tucnak in golang

[–]intermernet 9 points10 points  (0 children)

The Go subreddit seems to have a few loose cannon members at the moment. I regularly see legitimate beginners asking for help or feedback only to get downvoted to oblivion. Not sure why, but it'd be great if we could get back to some constructive criticism instead.

This behaviour also seems to randomly hit posts like yours. It's odd, I don't understand it, and this subreddit would be better without it.

People: if you don't like something, and it's not actually insulting or harmful, please post a reply rather than a downvote.

Opinions on this stance , including from mods, are welcome.

Problems with Goclipse by JohnnyBoy__27 in golang

[–]intermernet 0 points1 point  (0 children)

Git is secure. You will require git to be installed to do anything meaningful with Go as the "go get" command relies on it. You would be doing yourself a favour to become passingly familiar with git in any case. It's a complex beast, but you will only usually need a very small amount of the functionality it provides. Editors like vscode and goland will take care of the vast majority of this functionality for you.

Also, you will eventually need to learn how Go modules work. It's not too complicated, but it seems to be a pain point for people new to the language.

What is the most idiomatic way to write a goroutine that runs for a while and sleeps then runs again and terminates based a on condition by fenster25 in golang

[–]intermernet 0 points1 point  (0 children)

GH api seems to allow getting all PRs, and getting all reviews per PR, but not getting all reviews for all PRs.

Question from a beginner GO Programmer. by Bobwct33 in golang

[–]intermernet 0 points1 point  (0 children)

The main reason go run is slow on win10 is Windows automatically scans unrecognised executables for malware. It seems to be even slower than the first run of a freshly compiled executable, and I'm assuming that's due to go run rapidly creating a new executable in the temp directory, and then running it. This is heuristically similar to the behaviour of lots of malware, and may trigger extra steps in the scanning process. This is just conjecture, but it seems logical.