2020 Week 6
My Testing server is very powerful and I use it, as the name suggests, mostly for testing purposes. If you are interested in the specs of this server you can check out my Infrastrucure Page. Because I like games, I thought it would be possible to also use this server for gaming. My first idea was to create a virtual machine and use PCI passthrough to get the graphics cards into the virtual machine. That is needed because for the games I would like to play, I need Windows. This technology is supported in Linux so I began with the setup. Unfortunately, I was not able to get it running. I think that the old hardware or BIOS does not support it. After wasting many hours I decided to install Windows on a separate Disk to have a Dual-Boot System. With that setup, I don´t have any problems.
Because I now know that I have a running Windows I checked the Internet for graphics cards. I have an old one but with that, I cannot play any modern game. After some research, I bought an Nvidia RTX 2060 because I think that this is currently the best card for the money. I am more an AMD Fan but current cards from them need either more power or are slower for the same price.
The card arrived after a few days but I bought the wrong power cable 😭. The card needs one 8 Pin PCI power connector but my power supply one has two 6 Pin PCI power connectors. I searched for hours on the Internet but I could not find an adapter for that. So I bought some connectors and will create my own adapter.
I have to wait for everything to arrive but I will write an update if have one.
Programming language Go
As you maybe know, I use Go as the language for all my webpages. When I learn something new, I don´t start reading a book or blog posts, I directly start to do something. That is how I learn new things. Because of that, I ofter don´t know some basic stuff and learn it on the way. This also happened this week with Go. I learned about modules and concurrency.
As wrote last week I am working on a Web Framework/CMS. Because I am working on it for several months, it needed some refactoring and I also thought it should be converted to a module. I read the documentation and realized that this is much easier than I thought. So I wrote my first Go Module this week 👍
Concurrency is a really hard point to get right. Go has the following concept for that:
Do not communicate by sharing memory; instead, share memory by communicating.
This is possible because of channels. I tried to use them in the past but never really understood them. It´s not hard to use them but I needed the right explanation and examples. I now know how they work and why they are so great and also learned a lot about some Go internals. But I currently have no project where I need them. In my Web Framework/CMS I have a cache and it is recommended to use Mutexes for that. So I use Mutexes instead of channels. But I think that I will find a proper use case for channels because Go is my favorite language and I use it for everything.
The things I write on this blog are my own opinions and based on the things I learned running my own infrastructure or building my personal projects. It stands in no connection with my job.09 February 2020 - Philipp Keschl