yaakov.online

yaakov.online


I fight with computers

yaakov.online

I fight with computers


Debugging CoreFX on macOS

A few weeks ago I was trying to set up a small iOS application when I came across an error in .NET Core when attempting to connect to the new HTTP/2-based Apple Push Notification System gateway. It appears that the issue is two-fold: The version of curl and libcurl that Apple ship with macOS does not support HTTP/2. (rdar://problem/29891…

Using HTTP/2 in .NET client applications

For some weird reason I don't understand, HTTP is a key part of Windows. It's integrated into Windows so much that in order to get WebSockets server support, you had to upgrade your PC to Windows 8 or Windows Server 2012. Similarly, to get HTTP/2 server support, you have to upgrade your machine to Windows 10 or Windows Server 2016. Window…

Setting a proxy for Aptitude (on Windows)

In Windows, almost everything inherits the "Internet Explorer" proxy settings. I was somewhat surprised when the Linux Subsystem for Windows (beta) did not. For most Linux applications, you can set a proxy by setting the environment variable HTTP_PROXY, e.g. $ HTTP_PROXY=http://my.proxy.server:8080 To set up persistent proxy server setti…

Waiting for a Process with Timeout in .NET

Along the same lines of my last post, we might want to be smarter about launching a process and waiting for it to exit. Particularly if that process is part of a critical system such as your build process, you don't want a hung process to be able to cause your entire build system to stop dead in it's tracks. Fortunately, Process has an ov…

Redirecting process output in .NET

In .NET, you can use the System.Diagnostics.Process APIs to start a process and get it's output. It seems fairly simple, but there's a few interesting caveats beneath those APIs. In this post I'll be looking at the simple case of starting a process, waiting for it to finish, and reading the contents of stdout. To set the stage, here's the…

"Different and new is relatively easy. Doing something that's genuinely better is very hard." -- Sir Jonathan P. Ive

Taking a Tesla Test Drive

If you started talking about a vehicle with a nose cone and autopilot, I'd immediately assume that you were talking about an aircraft. With the Tesla Model S, that assumption no longer holds. I had the chance to test-drive one recently - where chance I mean I asked them nicely by filling out a form on the Tesla website - and it truly is a…

Switching to Let's Encrypt

Setting up a website nowadays is a very easy process (compared to last decade), but SSL/TLS is still typically a pain in the rear end. It's also expensive, costing typically anywhere from $10/year upwards for a certificate, per domain. Let's Encrypt is a free and automated Certificate Authority that launched earlier this year with the goa…

Failed Experiment: What processes have a lock on this folder?

A question I often have is "why can't I delete this file" or "why can't I write to this file" etc. Often Visual Studio can't overwrite a file because Visual Studio has the lock on that file, and that's something that frustrates me to no end. Even better is when I can delete the file from Explorer just fine - but I digress, and I'm only on…