Discord the Grand Spyware – DISCOver Remote Devices

Nothing on this world is free.

You pay with your information, with exposing the contents of everything on your computer, of running processes, hard disk contents as well as the obvious private chat not being private.

It goes as far as what you speak being analyzed and sold off to advertising companies, yes the actual words. Everything you do is being profiled.

I know for some people it doesn’t matter, especially young people are rather ignorant about the consequences of being permanently monitored but it’s not exclusive to young people. I’m writing young people because when you’re young you feel invincible and confident for the most part. As you age you learn that you’re not and how the world really works. Information is power and people will pay money for power.

Discord is even more dangerous and invasive than Facebook. It’s in your OS, on your phone and it wants your information. The moment you log into discord with their app they know what hardware you use, what processes are running (can’t be turned off) and it will scan your drives in the background.

People were worried about Google/Alphabet or Apple spying on them, Discord takes this to a whole new level.

The old “I have nothing to hide” argument. Ok imagine walking on the street and some random guy says “Show me the contents of your wallet and bags and pockets”. What would you say? “I have nothing to hide”? Doubtful. You’d tell them “No, go away and leave me alone” or “You have no right”.

But that is the same as running Discord. You’re exposing your devices to total strangers and giving them access to your wallet contents and your pocket, virtually.

If that’s fine with you, knock yourself out. After all what alternatives are there? None really. Except hosting your own IRC server and your own mumble server (or other VOIP server).

That’s the sad part of the story. Discord fills a hole that needed to be filled, but wants to know everything about what’s on your machines and everything you talk about, written or spoken.

Telekom Heimanschluss gekündigt

Ich habe heute meinen Telekom Heimanschluss in Deutschland gekündigt.
45€ im Monat für 100/40 Mbit/s.

Der Grund ist, ich habe eine DSL Vergleich Seite und alle außer Telekom Affiliate haben kein Problem mit der Seite, nur Telekom Affiliate lehnt ständig die Partnerschaft ab.

Website ergänzt nicht die Marke des Advertisers.
URL ist für die Advertiser-Marke nicht relevant.
und noch so ein Pseudobullshitgewäsch.
Hätte ich einen Deutschen Namen hätten sie mich nicht abgelehnt.

Mehrere Anfragen nach den Gründen blieben unbeantwortet.

Daraus ziehe ich die Konsequenz und kündige meinen Telekom Vertrag.
Ich sehe nicht ein an jemand Geld zu zahlen der mich nicht als Partner haben will.

Modern efficient backend design

When writing backends with Go, I follow a simple pattern.
At the core there is the, well, core object, the service.
It has its own configuration struct. In this struct are all the configurations for the related services.
It is the central gateway for everything.

Connected to it on the back side are all the related services like oidc middleware, keycloak api service, the various entity repositories, validation, markup processor and so on.

Connected on the front are the various outlets, RESTful API handlers, gRPC service, SSR handlers, websocket handlers. Everything has its place and concern.

Cobra is used as the flag parser and command structure. There you have commands that reflect the outlets, restful, grpc etc.
Each of those has its own way to configure the core service. If you for instance use gin to serve RESTful data here’s where all the gin related stuff is configured and also where the database client is initialized and passed to the core service.

In the past I followed a trend that defined all the backend repositories as interfaces. This did not turn out to be the correct approach, as mental overhead is there and you can’t have proper, simple repository definitions. If you need those parts done differently, you can do that later. The main concern is getting to your goal, which is a finished, working backend. Bother with abstractions later if you have to.

Do that’s all there is to it. It’s not rocket science. This way you can have separately maintained services that you can just plug into your core service for each new backend you start writing and hopefully also finishing.