posts in category * technical

Creating an iOS 14 widget showing health data


With iOS 14 Apple introduced a neat new feature: widgets. I've been running the beta for some weeks now and love them. So let's see how hard it is to create one ourself.

read more

Manipulating an Excel file with Python


It's one of those things that sound easy but hardly are. There are a lot of libraries and solutions out there that enable you to manipulate Excel files via code. Some of them are expensive, other are open source.

read more

Installing a node.js application as a Windows service


It wasn't my intention when I started the first article but this has become a series of how to run node applications in production with IIS on Windows. These are the previous articles on the topic:

read more

Using HTTP platform handler to host a node.js application via IIS


About a year ago I wrote about hosting a Node.js application via IIS. It uses IIS as a reversed proxy to route traffic from IIS to the node.js webserver. To manage the node.js process pm2 was used. Unfortunately I had some problems restarting the pm2 process when the server restarted. This meant downtime everytime the server was restarted until I manually resurrected pm2.

read more

Connecting to a Microsoft SQL Server database on macOS using Python


There are always situations where I want to automate small tasks. I like using Python for these kind of things, you can quickly get something working without much hassle. I needed to perform some database changes in a Microsoft SQL Server database and wanted to connect to it using Python. On Windows this is usually pretty straight forward. But I use macOS as my main operating system and I had some hurdles along the way so here is a quick how to.

read more

Things I wish I knew before I got started with CosmosDB


Lately I've been working on a project using Cosmos DB on Azure. I really like the simplicity of a document DB. However there were some things I learned while on the job which I wished somebody told me before starting with it.

read more

Testing request permissions in an Android application


While working on an Android application I wanted to test permission requests. This application needed the location permission, typically this is code that is written once and when it is marked as done never looked at again. I wanted to create some UI tests to ensure that everything works and will still work in the future as expected.

read more

Using the Digispark as a cheap USB Rubber Ducky


Disclaimer: This post is for fun, learning and experimenting. Use these tools wisely, in no way am I encouraging malicious use of them.

read more

Hosting a Node.js application on Windows with IIS as reverse proxy


Unfortunately a lot of companies are still stuck with Windows servers. Nobody ever got fired for choosing Microsoft, right. As a developer this can be frustrating because choosing a server technology is usually limited to ASP.Net. I have experimented with hosting Node.js applications on a Windows server by using iisnode. But it is a pain to get up and running, setting the correct permissions is a time consuming chore. Microsoft has taken control of the development of the project but I get the feeling it's not very active any more. There are several Stackoverflow questions where people just give up configuring it.

read more

Configuring aliases in iTerm on Mac and Cmder on Windows in Parallels


Aliases are a handy way to quickly execute certain commands in the terminal on Mac and in the command prompt on Windows. I recently read this post about git aliases which nicely demonstrates what is possible, it focuses on git commands but it can be done for any type of command.

read more

Improve Visual Studio Performance By Disabling Automatic File Restore


This excellent tip comes from my coworker Konstantin. If you have a Visual Studio solution that has a lot of projects and is slow you can speed up Visual Studio by disabling automatic file restore. To disable automatic file restore open Tools > Options in Visual Studio, select Projects and Solutions > General and deselect Reopen documents on solution load.

read more

Notes on the Code Complete book


I started reading the Code Complete book on vacation in Italy in book2014 not realizing it would take me more than 3 years to finish it. At the end of 2017 I finally read the last page. Do I recommend it? Yes absolutely. Although it can be dry, even boring, sometimes it has a lot of value for every kind of programmer. And all facts are supported by research and other books which are cited all through the book. This post is a reference for myself of the notes I took while reading the book.

read more

Drawing in Android, be aware of pixel density


In 2017 I started working on an Android app, at some point a custom graph was needed that could be changed by the user. Drawing the different parts on the screens gives the most flexibility. The Canvas is used for drawing, the custom component where the drawing will happen is a class which inherits from View.

read more

I went to Joy of Coding 2017


After Techorama the next conference I attended was Joy of Coding, something completely different and a more alternative conference.

read more

This was Techorama 2017


The last Microsoft focused conference I attended was the Techdays in 2008, almost 10 years ago. I heard good things about its successor, Techorama, so I decided to attend this year's edition. These are my notes and experiences of the sessions I attended.

read more

Scanning for Bluetooth devices with React Native


I've been building iOS applications for 2 years now. Although I'm not a big fan of the development environment, Xcode has its quirks, I do love the iOS platform. The biggest drawback is that you can only target iOS devices. I heard a lot of things, some good, some bad about Xamarin and React Native and was intrigued by both hybrid app development platforms. I'm a little familiar with Xamarin but have no experience with React or React Native. Motivated with the learning goals I've set out for myself I decided to give React Native a test drive in one of the Aaltra company hackathons. It's a half day every week that we use to test out new technologies and learn new things.

read more

Continuous integration with Jenkins using a Fake build script


Last time we made a Fake build script for an ASP.Net MVC project. I wanted to bring this to the next level and set up continuous integration for the project. I've used TeamCity in the past and it was ok, it did its thing but there was a lot of configuration involved to get a project up and running and the performance was sometimes slower than I expected. So looking for alternatives the first thing I tried was Bitbucket Pipelines but it can apparently only be used for .Net Core projects. I don't think it can run Windows tasks at the moment.

read more

My learning goals for 2017


Each year I try to set some goals for myself to keep improving my skills. At the end of the year it's fun to reflect on the goals I've reached and at the same time confronting because of the goals I didn't complete. This year, although it's already April, I want to do it a little different. To be able to better evaluate what I want to learn this year I decided to write it all down so I could evaluate my progress better. And by making it public there'll be a bit more pressure to actually completing the goals I set.

read more

Creating a build script for an ASP.Net MVC web application with Fake


Creating a build script, always a hassle to do and one of the things that gets the lowest priority in the backlog. Certainly on small projects. On one of my previous work places MSBuild was used to automate the builds. I had such a bad experience with it that I just plain ignored it for several years. It was hard to use and maintain. I heard of Fake, a build automation system written in F# which gets its inspiration from rake and make, and gave it a try!

read more

Make an AJAX call when the user leaves a web page (using onbeforeunload)


Sometimes you need to send some data to the server before the user leaves your web application. A good example of this is saving data. Instead of giving the user a save button to save the changes he made, the application saves all data if the user navigates away from the page or closes the browser.

read more

First Steps With Azure Storage


At the Aaltra hackathons we get the chance to test out new technologies and broaden our horizon, one of the many things that makes it awesome to work for them. In one of the Belgian Internet of Things community meetups I attended, Pedro Dias gave a demo about the IOT stuff he had built to water his plants. He collected all sorts of data from different hardware sensors and sent them to Azure Table Storage. I gave it a test drive on the latest company hackathon.

read more

Integration testing an ASP.Net MVC 5 web application that uses Structuremap


Integration testing, it must've been several years ago that I first got to know the concept. Like unit testing, the benefits were and still are quite obvious. When developing I've found a good set of tools to do unit testing, but finding a set of tools to do integration testing has been a constant struggle. I tried using Selenium and WatiN. Creating the little tests with the recorder was pretty neat, but reality struck pretty fast when I experienced first hand how brittle UI integration tests really are. Change something in the UI? You can practically throw away your existing tests and start over. Because the tests were so brittle, the result was hardly usable and very time consuming. Tests were constantly failing just because something changed in the UI, not because there was a bug in the application. Maintaining a suite of UI integration tests was not an option.

read more

This was Valiocon 2016


A few weeks ago I was lucky enough to be able to attend Valiocon 2016 for the first time. Although I've attended quite a few developer conferences with deep technical talks, this was my first designer-oriented conference. We flew out to sunny San Diego to get inspired by the great lineup of speakers.

read more

Show Load Time Of A Page With ASP.Net Web Forms


A little heads up, this solution will not work if you have an ASP.Net AJAX UpdatePanel on your page. The javascript which is loaded by ASP.Net AJAX will throw an error. Of course you're better off throwing out ASP.Net AJAX and just use plain AJAX calls. But if that's not possible, be warned.

read more

Getting Error MSB3086: Task could not find sgen.exe using the SdkToolsPath when building .Net 4.0 solution with TeamCity 8.0


There are those errors that can really ruin your day. And when you search Google for a solution, the only ones you get are for software versions of a few years ago. With this post I want to make sure I'll remember the solution in the future and hopefully others will also benefit from it.

read more

A Design Pattern A Day: The Singleton Pattern


The Singleton pattern, probably the most hated pattern on the internet. But for the sake of being complete I feel obligated in implementing it once. <sarcasm>And never use it again</sarcasm>. Although this pattern has its use cases in some scenario’s. Caching could be one of them. Mind the usage of ‘could’ in the previous sentence. It could be a use case but as always: it depends.

read more

A Design Pattern A Day: The Decorator Pattern


Last week I started reading the Gang Of Four book for about the fifth time. Unfortunately I’m really bad at reading reference-like books. I always get bored after reading a few design patterns and put the book on my shelf to collect dust again. This time I’ve decided to do something different, because everybody knows:

read more

Starting a project with Express, node.js and Stylus


Node.js gets a lot of attention lately, out of curiosity I decided to try it out. After reading the excellent hands-on node e-book I wanted to port one of my pet projects, a price comparer between different IKEA branches (site is offline) written in ASP.Net MVC to node.js. As a web framework I went for Express. In this blog post I’ll show you how you can get Express to generate a very basic app for you and how you can use Stylus in combination with Express.

read more

Using an anonymous object as the model for your Spark view


Well another post about Spark, I’ve been spending a couple of hours with the library and I really like it. On one of my previous posts Byron Sommardahl asked if it was possible to use an anonymous object as the model of your Spark view. I proposed a solution but I didn’t really have an idea if it actually worked. Because I was curious if it would work I fired up Visual Studio.

read more

Spark HTML generation fails: View source file not found


I use Spark as engine to generate all sorts of HTML but on Monday last week that specific code snippet failed without being changed. Spark indicated that it could not find the view file, so I checked and double checked that the view was in the correct place. This was as it should be, but still Spark threw the exception that it could not find the view source file. I decided to try the same code on my laptop and there Spark still worked as it should, so the issue was related to my development machine configuration.

read more

Using spark as a html/text rendering engine


I can't remember a project which I worked on that didn't have a requirement which included sending out emails. Most of the time the templates that are needed for these emails are so small that a simple text file with some wildcards does the trick. It does the trick but nothing more. It's hardly an elegant solution and there is no support to loop through elements or do any other complicated stuff. I wanted a better, broader solution so I started to look around for usable libraries. I have been hearing a lot of good things of the Spark View Engine and wondered if it was possible to use it to generate html from a given template.

read more

A Kindle DX or an iPad?


I love reading technical books, more than blog posts. They give you a better and deep insight in the matter you're reading about. The big problem is that, at best, these books are relevant for a few years and then can be thrown out. In January of this year Amazon released the Kindle DX with global wireless. Since then I've been looking out for the eReader that would best fit my needs. Based on the review by Scott Hanselman and some other internet resources I had set myself to let Amazon fly over my very own Kindle DX to Belgium.

read more

Book review: Getting Real by 37 Signals


If you're sick of reading book reviews, I'll give you the short version. If you are a project manager, designer, developer, entrepreneur or business analyst who is involved in creating a (web) application read this book. It's awesome.

read more

Permission to access webcam not asked by Silverlight 4 beta on load of page


I was playing around with the Silverlight 4 beta and was trying to get my webcam working by following this article. Although the code to achieve this is very simple, the webcam did not work in my *.aspx page which contains my Silverlight component. I googled and stackoverflowed around but didn't find anyone with the same problem as I had. When the page loaded, I just saw an empty rectangle and Silverlight did not ask for permission to access my webcam like it should.

read more

An alternative to editing JavaScript in Visual Studio: RubyMine


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Not another NDepend review, link roundup


I had the chance to try out NDepend, thanks to Patrick. After playing around with it I was pretty impressed and started writing a review of it. Out of curiosity I googled around a bit and found that there are already a lot of good reviews about it. I didn’t want to do just another review so instead I was thinking of creating a round up of all the blog posts out there that give more information about one or more features of the product. And which I used to get up to speed.

read more

Continuous education, Hanselminutes show #187


It has been quiet on this blog lately but I’ve been very busy with work. Between my busy schedule I’ve been trying to keep up on the technology front by listening to different podcasts. Although the quality of a lot of podcasts is highly dependant on the guest that is starring in that week’s episode, Scott Hanselman has been able to keep me interested all the time. Even for topics in which I’m not 100% interested in. If you’re not listening to his podcast you should subscribe right now.

read more

Visual Studio Redesign: lose the designers, add a command prompt?


There has been a clear shift in the way I use Visual Studio lately. Visual studio has a lot of built-in panels to help you develop the next killer application. There are a lot of panels I hardly ever use. Most of my time I spend, not quite surprising, in the text editor editing code. As for the other panels I may be using about 10% of all available options. Windows like the Server Explorer, Document Outline, Object Browser, I don’t think I ever opened them while developing. And I didn’t even mention the designers yet. I am a full-time web developer but I never open the HTML designer.

read more

Compressing and combining files with JavaScriptMVC


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Getting the element that has the focus via JavaScript


This is one of those things that you only need on very specific occasions. I needed to get the element that has the focus on a page. Went to Google and found the answer somewhere deep into a forumthread. So for future reference here goes:

read more

The MVC in JavaScriptMVC


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Finally found what I have been looking for: JavaScriptMVC


I’m very passionate about the code I write, and with the coming of jQuery I really began to love Javascript. But the Javascript I wrote was more of the procedural kind. I tried to split it up per page or user control but it still felt bad. For pages with a lot of interaction the JavaScript files grew very quickly over a couple hundred LOC. There is the possibility to split these up, but the problem that then arises is that the browser launches a request for each javascript file. And most (older) browsers have a suprising low amount of simultaneous request (I thought it was around 2 or 3, it was certainly below 5). So each file I added to make my application more maintainable resulted in a slower application. Not a good situation to be in.

read more

Book review: jQuery in Action


started reading this book about 6 months ago. After reading it half way through I stopped and start reading a newly purchased book. The reason that I stopped reading was because I was excited and impatient to start reading the new book, it’s a problem I have every time I purchase a new book. After finishing some books I realized that jQuery in Action was still lying around, and because the new project I’m working on depends heavily on jQuery, I decided to pick up the book where I left off and finish it.

read more

Sequentially download multiple files (with jQuery)


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

One tool to test them all: Microsoft Expression Web SuperPreview


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Why learning CSS is important in a (web) development world


I notice that a lot of development effort is going into creating a nice back end. Creating a GUI is a matter of using the designer – better known as system.draggy-droppy – and setting the right colors via the properties panel. But lately a shift has happened which forces developers to learn about CSS.

read more

Posting code on your blog


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Testing the OnActionExecuting event of a Controller


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

VMWare Fusion vs Parallels


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Austin and Kaizenconf Part 2


Using and abusing ASP.NET MVC for fun and profit

read more

Austin and Kaizenconf Part 1 – workshops


Unfortunately the images to this post were lost during the migration from Blogengine.Net to WordPress

read more

Creating a menu for your ASP.NET MVC website using HTML helpers


I've been working with ASP.NET MVC for a few months and it has been quite a ride. I'm working on a website where the menu is loaded from the database. It should be rendered as an unsorted list and a CSS class should be added to the active item. Here is an example of the menu:

read more

Descriptive names versus abbreviations for UI elements


I have been using abbreviations for UI elements for a long time. I think most developers have and still do. When you declare a button which will give the user the possibility to log on, it will be called: btnLogOn (or something similar). At first I wasn’t really thinking this through and automatically started the name of a dropdownlist with ddl, of a label with lbl etc... One day I was programming in Visual Studio, I was creating a trivial user interface, and I typed something like this:

read more

Aggiorno, the Italian colleague you’ve always wanted


Ever had someone come to your desk and saying: I have a little project for you, you should change something in our state of the art web application. After agreeing you would do the changes, you open up the solution and you see that the state of the art application is built using HTML spaghetti. At that moment you wished you had a) a gun or b) some guy on your team that loves monkey work and cleans all the code for you. Someone who gets a kick out refactoring FONT-tags to CSS an making the indentation perfect. Let’s be honest, if the guy exists he’s probably playing chess with Yoda in a galaxy far, far away.

read more

Brazilian waxing, choosing a JavaScript framework and why I don’t like ASP.NET AJAX


Let me first clarify something. As Jan pointed out I am into Brazilian waxing but please, all you pervert guys stop sending me emails with questions about the subject!

read more

Building accessible web forms with ASP.NET


First of all, let me welcome you to my brand new blog. It will serve as a personal reference and a way to (hopefully) become a better software developer by researching and writing about technology. And don't forget if you liked the article, subscribe to the RSS. It's free and saves you time!

read more

Before I sign, can I see your codebase?


Changing employers is always a hard decision to make. Whatever the reason is you found that new opportunity that caught your attention: money, fame, need for a new challenge. There are plenty of jobs in the sea, certainly as a developer, and it’s hard to find that one true job. You don’t want to end up in a job which has the same drawbacks as your previous gig. If you take the leap you want it to be worthwhile on all areas: financial, job satisfaction, etc. Although the financial aspect is an important part of the decision making it’s not the holy grail. For me even more important is job satisfaction. In every job interview they’re telling you they have state of the art ASP.Net Turbo 3000 code running on their Windows 2099 machines. But as we all know there is code and there is code.

read more