Accessing Application Files from Code in Grails
In web applications, server-side code will sometimes need access to additional external resources, such as font files, certificates etc. If you want to distribute them as part of your application, the...
View ArticleRedirection from Namespaced Controllers in Grails
Post requests in web applications can often confuse less technically savvy users and in the worst case even cause inconsistent data if a non-idempotent post request is repeated. Post/Redirect/Get is...
View ArticleLifeline-like Notifications in UWP
When Lifeline was originally released in 2015 for iOS, it became the number one paid app in the App Store. Although, in essence it was just a text based adventure, it took full advantage of interactive...
View ArticleSlides and Code from My Sessions at NT Conference
It's May again, which means the annual NT Conference was taking place in Portorož at the beginning of this week. This year I had two sessions scheduled, the first one on Monday and the second one on...
View ArticleRunning Code Analyzers on Build Server
Diagnostic Analyzers in Visual Studio 2015 The introduction of diagnostic analyzers in Visual Studio 2015 significantly lowered the bar for development of custom static code analyzers. In less than a...
View ArticlePackage Management for TypeScript Cordova Apps in Visual Studio
Visual Studio Tools for Apache Cordova Visual Studio Tools for Apache Cordova is a Visual Studio extension for developing Cordova apps inside Visual Studio. It is bundled with Visual Studio 2015 and...
View ArticleDistinguish Between Manual and Programmatic Map Movement in Leaflet
Leaflet map state can be manipulated in two ways: manually using mouse to pan and zoom or programmatically with a set of methods for this specific purpose. In some cases it can be useful to know which...
View ArticleSlides and Code from My Sessions at Cancel Conference
This week the second community organized Cancel conference was taking place in Ljubljana. It spanned over two days. Thursday was the main conference day with 20 sessions grouped in 4 tracks. On...
View ArticleFind Invalid Links in Excel That Cannot Be Broken
If an Excel file contains links to other workbooks, Excel will offer to update the data every time you open the file: If the linked workbook doesn't exist, it will provide an option to edit the invalid...
View ArticleInjecting Bower Dependencies into HTML Pages
As described in a recent blog post, I selected Bower as the package manager for client-side JavaScript libraries in my Cordova project. I already took care of copying the required JavaScript files to a...
View ArticleConfiguring Karma for Bower Dependencies
Although, I have now configured my Cordova project to automatically copy distribution files from installed Bower packages and reference them from HTML pages, there's still one final part of...
View ArticleDebugging Karma Tests in a Browser
Having unit tests usually drastically reduces the need for interactive debugging. However, being able to debug unit tests can sometimes prove very useful. Some IDEs provide integrated debugging...
View ArticleDebugging Ionic 2 Apps in Chrome from Visual Studio Code
Ionic 2 is the successor to the quite popular hybrid mobile framework. It is based upon Angular 2, but unlike it, it hasn't yet reached the final release; the latest version is Release Candidate 3....
View ArticleTesting Modular Client-Side TypeScript Code
In my previous posts I've already addressed unit testing of client-side JavaScript and TypeScript code, however since browsers don't natively support the ECMAScript 6 module system, simply transpiling...
View ArticleAdvent of Code 2016
For the second year in a row, I spent a significant amount of time in December solving the Advent of Code programming puzzles. Before writing the first line of code, I created a repository for my...
View ArticleEnabling Font Ligatures in Code Editors
Many operators and other symbols in programming languages consist of multiple characters, but still represent a single token. In C#, such symbols are ==, !=, >=, <=, =>, and many others....
View ArticleDebug Ionic 2 Apps in VS Emulator for Android
Running the App in Visual Studio Emulator for Android The official Android emulator has a big disadvantage for regular users of Hyper-V: you cannot run the emulator accelerated when Hyper-V is enabled....
View ArticleHTTPS in TeamCity with Let's Encrypt Certificate
When exposing your TeamCity build server to the internet, you'll want to use HTTPS so that users won't have to send their passwords over an unencrypted connection. Thanks to Let's Encrypt, you can now...
View ArticleAngular 2 Tutorial with Async and Await
In version 2.1 that was released in December 2016, TypeScript finally added support for downlevel transpilation of async and await keywords for ES3 and ES5 targets. This means that you can write...
View ArticleOffline Installation of .NET 3.5 in Windows 10
Windows 10 by default doesn't come with .NET Framework 3.5 installed, however some older applications still require it. There is no standalone .NET Framework 3.5 installation package for Windows 10....
View Article