Designing a shader loading and management data structure

software-development-2-logo

Last week we looked at how we can use the builder pattern to build shader programs out of individual shaders. We abstracted away all actual functionality in favour of a clean and easy to read interface. In that post we assumed the existence of a shader manager – an object that held track of all our shaders and that we ...

Read More »

Linking shader programs using the builder pattern

software-development-2-logo

This post is the first in a series on design patterns in game programming. Design patterns play an important role in computer programming. Not every problem can be solved with a pattern, and not every pattern is useful in all circumstances. However, they can be powerful thinking tools when applied to the right kinds of problem and help us understand ...

Read More »

dotnet HighCharts SpiderWeb

asp-dot-net-logo

Today I would like to show how to obtain a spiderweb (or spidergraph) chart with the dotnet.Highcharts libraries. First of all let’s create the webform container as usual. Here it is important to import the highcharts-all.js library (an not the highcharts.js). Alternatively we can import the highcharts.js and the highcharts-more.js libraries. <asp:Content ID="Content2" ContentPlaceHolderID="FeaturedContent" runat="server"> <script src="/../Scripts/metro-ui/metro.min.js"></script> <script src="/../Scripts/jquery-2.0.3.min.js" type="text/javascript"></script> <!--------------------------------------------------- NOTE: The ...

Read More »

Are you getting worked up over code duplication?

software-development-2-logo

As programmers, we have long learned that Duplication is the Ultimate Sin of programming. Even considering to duplicate something is almost unthinkable. But removing duplication introduces dependencies. If you and I use the reuse the same piece of code instead of duplicating it, changes I make may affect you. This effect can anything from beneficial (I fixed a bug you ...

Read More »

Griffin.Yo – Easy SPA library written in TypeScript

dot-net-logo

All SPA libraries that I’ve tried have long tutorials to show you have to use and configure them. It’s not unusual that they allow you to structure your application just as you like, which might be great for powerful users, but make it more confusing for newcomers. Here is an introduction to my own library which should be reasonable easy ...

Read More »

5 steps to targeting multiple .NET frameworks

dot-net-logo

When designing an API or libraries, we aim to have maximum coverage of available .NET frameworks so that we can have maximum number of clients adopt our APIs. The key challenge in such scenarios is to have a clean code and an efficient way to manage multiple versions of code, Nuget packages and builds. This article will outline a quick ...

Read More »

Multi-threaded exception handling

dot-net-logo

Last week we explored the possibilities of using multi-threading to create animated – or even interactive – loading screens, and drastically decrease loading times. While we went into a lot of details, using the loading screen of Roche Fusion as an example, there is one important topic we glanced over completely: What if something goes wrong? Or more technically: what ...

Read More »

Git Explained: For Beginners

git-logo

I’m working with Git now for about two years but only for my personal projects and those I have on GitHub. At work we still use TFS and SVN (as of now). Recently Paolo Perrotta came to our company to hold a course about Agile planning and since Git was quite new to most of my mates, he also quickly ...

Read More »

The state of a failure condition

software-development-2-logo

I’m looking over of a bunch of distributed algorithm discussion groups, and I recently saw several people making the same bad assumption. The issue is that in a distributed system, you have to assume that any communication between system can fail. Because that is taken into account in any distributed algorithm, there is a school of thought that believe that ...

Read More »