Building distributable libraries in Angular 5+

It took a while since my last touch of AngularJS and I decided to play around with the latest version of Angular again. Although I have been following the Angular community and I know Angular feels more like a completely new framework rather than a continuation of AngularJS, I encountered some challenges when trying to create a simple distributable (via NPM) library myself. Since there are (almost) no official guidelines how to do it, I decided to write this post and to summarize my challenges and findings. Continue Reading…

The Wheel of WebAssembly

I have been following the WebAssembly development since its initiation and given talks about it, but I haven’t really blogged anything related to it. In this post I want to share with you an idea I got some time ago about gathering all languages that can be compiled to WebAssembly. You can see the demo or browse the source.

The initial idea around WebAssembly was to allow compilation from C and C++, as there are many libraries (f.x., gaming, VR, codecs) that could be ported to the Web right away. The compilation architecture is designed to be extensible, meaning that other languages could also be compiled to WebAssembly. Indeed, other language creators (and the community behind them) started experimenting with that.

My idea with the Wheel of WebAssembly is to create a demo of each language that can be compiled to WebAssembly. As the WASM format is standardized, in theory I would expect to get “same” WASM files and to be able to load them on the Web the same way. In practice, it is not the case. Continue Reading…

Random 500 errors on IIS when using client certificates

Recently, I have been working on an application that provides some web services to a client. The communication between the client and our application runs through HTTPS. Furthermore, the client has to provide a client certificate whenever requesting our web services. The application is built on WCF and runs behind IIS 10 on Windows Server 2016. Everything worked fine until we looked at the response statistics our client had generated, where we could see we weren’t responding 100%. The statistics showed response drop to 90%-95% every other day. Continue Reading…

Dynamic resource registration in ASP.NET MVC

Many people combine all scripts (and style sheets) for the entire website into one bundle. The rationale behind this is the TCP connections limitation by browsers. Furthermore, once the bundle is downloaded, it gets cached by the browser and subsequent requests to the website are faster. This approach, however, works against the concept of modularity. Why changes in one file should invalidate the entire (potentially huge) bundle? Moreover, HTTP/2 removes the TCP connections limitation issue. Although, ASP.NET MVC provides a way to register resources separately, this build-in mechanism is not flexible enough. Continue Reading…

Kerberos and load balancers

Kerberos is a ticket-based authentication protocol, which requires deep understanding to make it work properly. Information about setting it up is somehow scattered over the web, so it took me some time to find relevant reads. In my previous post I wrote about my initial experience with Kerberos and I want to share some more in this one.

Working in a load-balanced environment introduces (administrative) complexity to your system and Kerberos is no exception to this. In this post I will focus on setting your IIS (>= 7.0) correctly up to work with Kerberos in such scenarios. Continue Reading…