Surface book notes - Visual studio

I have written too much down without publishing anything about the Surface book. When I think about publishing some detail, I end up looking at my huge mountain of notes, finding so many interesting parts and becoming unable to choose one.

Time to break the ice, then.

It looks nice on its side

Surface book standing on side Surface book standing on side

I am not sure why, but I really, really like this look. To my eye there is something solid and luxury-console-like about it.

In the visual studio

Work's C++ codebase is substantial but very well kept in terms of dependencies. I am not really expecting to end up building and running it on Windows, but it is interesting to see how far I can get and what the experience is like.

There are always strange mistakes in the beginning. In my case, I somehow managed to read through the installer's list of packages quite carefully, then completely missing to select the ones for C++ development including Cmake, Clang and other goodies. I also managed to miss installing any Windows SDKs, leading to rather severe errors whenever I tried to build anything. Re-running the installer netted me a much nicer environment. So good, in fact, that when I re-created my project as a console application, Visual studio picked up the Cmake files by itself, handed everything off and made it all run. Suddenly I had gone from nothing to producing a build full of errors, most of which were because of missing includes and libraries. Pretty awesome considering the small amount of work I have put in.

Apart from libraries, I have a whole host of warnings and errors about the code itself. I look forward to investigating them some more. Many are probably from incorrect configuration in one way or the other, but so far we have always learned something new to improve our code with each compiler we have exposed it to. I expect there will be something in here too.

I then went fixed some of the includes and libraries, things which I could easily find like Mysql (Mariadb to be exact) and Openssl. I enjoyed the nice editing interface for include paths, which started as a plain text field but turned into a very nice line-based editor when you clicked the edit button. I also discovered and deeply appreciated being able to right-click the address bar in Explorer and copying the address as plain text.

After this, my list of errors was much shorter, but I also realized I will probably not go all the way to a building state. I do not expect to set up neither libdispatch or pthreads, and so my next step if I want to run everything locally will be to set up a Linux VM for the server. A good time and reason to try that experience too, even if it is much more familiar and thus less exciting.

That SSL problem I had …

… yeah, it is always the off-to-the-side silly things which bite me. I just could not manage to connect to our Gitlab server, despite carefully creating and re-creating keys, adding and re-adding them to Gitlab and so on. Always the same "permission denied (publickey)" without further explanation, no matter the amount of verbose testing I did.

You know how you can have a file named config in your .ssh folder? Inside, you can have a property IdentityPath pointing to the public key you want to use. Seems I had done something deeply dumb when I wrote that path, because removing it made everything work.

This is how they get you

See? I started with one thing and immediately bulged out into so many parts and details. Hopefully increments like this can be a good way to start lowering the pressure.