Everyone is a winner!

Posted by Filip Ekberg on 27 Jun 2013

Congratulations everyone that participated

Everyone that participated in the raffle got something! There was just one winner that got the one year Pluralsight Plus Subscription, but All of you got a 30 day coupon! As a bonus, everyone that participated got a digital copy of C# Smorgasbord and two lucky people got signed copies as well. [...]

Win a Pluralsight One Year Subscription and C# Smorgasbord

Posted by Filip Ekberg on 17 Jun 2013

It's truly a pleasure to announce that as of Friday last week I am a published Pluralsight Author! The course that I published is called MSIL for the C# Developer, read more about it at the end of this post. There's been some radio silence on the blog lately, it's mostly due to a lot of effort that has gone into the production of the newly released course and also our move to Australia. [...]

Using bit fields in C#

Posted by Filip Ekberg on 14 May 2013

Recently I came across a problem where I wanted to allow combinations of a certain criteria so I immediately thought of bit bit fields. This lead me to an interesting answer on StackOverflow for a question on how to use the FlagsAttribute with Enums. [...]

It is time for a new challenge

Posted by Filip Ekberg on 02 May 2013

This post is in a more personal manner than what you might be used to from this blog so if you're just interested in lines of code you can stop reading now.

In 2006 I had my eyes on working abroad and thus I figured that in order to do this I needed to at least have a bachelor degree in Software Engineering. Now 7 years later I've had my bachelor degree for a while and I've gathered a lot of experience along the way; but what I have not done so far is work abroad. [...]

Utilize Roslyn to create the next level plugin capability

Posted by Filip Ekberg on 02 May 2013

dotnetConf

We are moving towards a new era where more and more people want to offer the possibility to expand the system with widgets and plugins. By utilizing Compilation as a Service can make it easier for all parties to create plug-ins. For instance operations performed at certain events in an application.Roslyn exposes a C # and VB.NET compiler and we can use this to implement something along those lines. Listen to me give an introductory talk about what Roslyn has to offer and how we can use Compilation as a Service to enable the next level of plugins.
[...]

The Art Of Teaching

Posted by Filip Ekberg on 26 Apr 2013

Preface

The following article is an article that I wrote duing my studies for a bachelor degree in Software Engineering. Minor changes might have been made to make it more suitable on this website. It was originally posted on my old blog in 2008 but have now been re-processed.

Both my experience and writing style has changed since I wrote this article, but I still want to share my thoughts from 5 years ago. [...]

Project startup difficulties - The usual suspects

Posted by Filip Ekberg on 15 Apr 2013

Preface

The following article is an article that I wrote duing my studies for a bachelor degree in Software Engineering. Minor changes might have been made to make it more suitable on this website.

Both my experience and writing style has changed since I wrote this article, but I still want to share my thoughts from 4 years ago. [...]

Don't deadlock with async and await

Posted by Filip Ekberg on 03 Apr 2013

Deadlocking is really something you need to avoid and in case you don't know what a deadlock is here's a great illustration of a "real life deadlock":

deadlock

Basically what has happened here is that all the roads are full with cars and all the cars try to cross the road at the same time. Let's translate this into computer terms; the cars in this case are the threads and the cross-over is the "thing" that handles these threads. In the illustration above all the cars have driven into the cross-over at the same time and they can't really back up, hence there's a deadlock and there's no way to go. [...]

Easy error tracking in your applications

Posted by Filip Ekberg on 26 Mar 2013

Over and over again I see developers re-implementing error tracking, I've been there myself. One of the reasons to this I think is because many of the tracking tools out there add too much noise and are just cumbersome to use. In many cases the biggest problem is that you need error logging too late, meaning that you want the logging once the error has already occurred. It's of course cleaver to say that you should always think about potential errors from the start, because let's face it we all write applications that may have unexpected exceptions. [...]

Seeing problems differently

Posted by Filip Ekberg on 14 Mar 2013

C# Smorgasbord ebook bundle including PDF, ePub and Mobi is still available for €4.99!

We always have interesting discussions at work, both philosophical and mostly programming discussions. Sometimes the things people say make you think a while longer. [...]

Challenge yourself and be awesome

Posted by Filip Ekberg on 06 Mar 2013

Just about an hour ago I came back from my first ever run where I didn't stop to walk even once and ran longer than I've ever done before. Even if the time nor the distance is important to someone that is an experienced runner, but to me this is a huge deal.

About 3 minutes after I started running my pulse started increasing a lot and I got the feeling that I just wanted to go back home and lay back in the couch having yet another piece of chocolate cake. [...]

Everyone Should Learn Programming

Posted by Filip Ekberg on 04 Mar 2013

Over the years a lot of highly influential people have dropped the phrase "Everyone Should Learn Programming" and recently some very successful people in software companies made a video called "What most schools don't teach". While this video is spot on there seem to be a lot of confusion between learning programming and pursuing programming as a profession.

Almost everything today is built on micro-processors and use electricity and basic knowledge about programming will give you an idea of how complex some systems are. Everyone that works professionally with programming knows that the customer never really knows what it is they want and think they can just change their minds in the middle of the project. How many of you have heard the phrase "Can't you just move X? That shouldn't be too hard."? This is born from a lack of understanding of how systems are built. With basic programming knowledge it might be a lot easier to explain complexity in a lot of the custom built solutions that we tackle every day. [...]

What language features do you miss in C#?

Posted by Filip Ekberg on 01 Mar 2013

35563491Every now and then I hear people shout "I really wish C# would have X and Y, it would make my life so much easier". This makes me think about what features I'd like to see supported in the language. There are multiple factors to take into consideration when thinking about what should be a language feature and not.

If C# would be completely open source and driven by the community we would probably see a lot of pull-requests for new language features. But I'd imagine that many of these features were implemented by someone that felt like the problem solved some in their opinion generic case. This might not actually be the case though. When adding a new language feature, to any language, you need to take into consideration that a big part of the community should benefit from it. [...]

C# Smorgasbord ebook limited-time offer now only €4.99!

Posted by Filip Ekberg on 26 Feb 2013

PriceTag_Off

About 7 months ago I self-published C# Smorgasbord which is a C# Programming book focusing on a lot of different and interesting things. I've had a couple of giveaways and a couple of sales so far to spread the word even more.

It's now time for an ebook limited-time offer, when the offer ends is not yet disclosed so if you're interested in reading this very well spoken off book get it today for only €4.99! If you don't have PayPal just send me a message and we'll figure something out.

The offer includes access to PDF, ePub and Mobi!

After the PayPal purchase you'll receive an e-mail with a download link within a couple of hours.

[...]

Optimize your delegate usage

Posted by Filip Ekberg on 15 Feb 2013

Kudos to David Fowler for spotting this! We had a chat on JabbR and David pointed out something quite odd about delegates which he had discovered while optimizing some code. [...]

Decompiling .NET Applications

Posted by Filip Ekberg on 14 Feb 2013

There are many reasons to why you might want to decompile an application after it's been compiled. Compiling C# code "just" translates it into MS IL. The compiler of course does some magic and tweaks the code as much as possible. There's no metadata stored after compilation which means that comments and such will not be available in the IL output.

The following image illustrates what happens when we compile something, we put the C# code into a basket and tell the compiler to give us a binary of this which is sort of a black box at the moment. We know that whenever we want to use this black box we have something behind the curtain that knows how to open it and use it properly (read: CLR). [...]

Compilation as a Service and the next generation plugins

Posted by Filip Ekberg on 07 Feb 2013

I've written a lot about Compilation as a Service with Roslyn before on this blog and I just had a presentation about it, again. This time I talked about how to use Roslyn in order to create plugins. Actually how to create two different types of plugins; plugins using Roslyn to analyze code and plugins written for applications created in Visual Studio using Roslyn to compile code. [...]

Congratulations to the winners of a free C# Smorgasbord copy!

Posted by Filip Ekberg on 04 Feb 2013

Before I announce the winners, yes it's plural because it was way too hard to decide one winner, I want to share some great news with all of you. Yesterday I summarized the amount of people that have my book based on the copies that I've sold/given away and this number is now above 500 and steadily increasing towards 600!

The feeling I got when receiving my first proof copies of the book is indescribable, it was pure awesomeness and this feeling is almost as great. It makes me very happy that so many developers have decided to get a copy of C# Smorgasbord, thank you all very much for that. All the great feedback and the amount of copies out there are the basis to why I want and can have these giveaways! [...]

Want a free copy of C# Smorgasbord?

Posted by Filip Ekberg on 18 Jan 2013

Filip Ekberg showing C# SmorgasbordC# Smorgasbord has been out for about 6 months and as you might have seen previously on this blog and on my twitter, the book has gotten great feedback!

I'm very happy that so many people have decided to buy the book and that some of you have taken the time to review it.

To give something back to the community for all the support during my writing process and after (self-)publishing the book, I had a give-away after about 3 months and now I want to give away one (or maybe more!) copies of the book! [...]

I'm using dynamic and unexpectedly lost intellisense!

Posted by Filip Ekberg on 17 Jan 2013

I've written and talked quite a bit about dynamic before, both in this blog, on user groups and in my book C# Smorgasbord. I never get tired of talking about it though because there are always interesting new things to be found out. TheCodeJunkie (author of Nancy) asked something quite interesting on JabbR today which lead to an interesting discussion about dynamic (among other things). [...]

What does async & await generate?

Posted by Filip Ekberg on 16 Jan 2013

Do you ever get the feeling that you want to know exactly what happens behind the scenes? I do, quite a lot actually. Which is one of the many reasons that I've written about IL, Reflection and ways to prove how certain code behaves and works using tools such as Reflector. If you've read my book C# Smorgasbord, you might have come across the chapter about async & await which are two very handy additions to .NET 4.5. I've done some screencasts and articles about that in the past, but let's take a look at something that we haven't looked at before; what happens behind the scenes. [...]

C# is the past, the present and the future

Posted by Filip Ekberg on 11 Jan 2013

Ever since C# first appeared back in 2000 a lot has happened every year. As we've been introduced to more and more language features, syntactic sugar and handful libraries it has become clearer to the world that C# is here to stay. You might find it weird to say something like that in 2013, but frankly it is not. As history might have taught us, even though something is very popular for a period of time that does not guarantee it to live forever. [...]

2012 was an amazing year, here's a summary!

Posted by Filip Ekberg on 08 Jan 2013

Saying that a lot happened in 2012 is probably an understatement. At least both on this blog and in my personal life, a bunch of amazing things have happened. I really hope that your previous year was good and let's hope for an even better 2013. To start this year off I want to summarize all the great posts that were shared on this blog in 2012.

Personally the two biggest achievements of last year was me getting engaged to my lovely Sofie and publishing my book C# Smorgasbord. As you might have seen already this year has already started very good as I have been awarded Microsoft MVP in Visual C#! [...]

Congratulations 2013 Microsoft MVP!

Posted by Filip Ekberg on 01 Jan 2013

2012 has been an amazing year, don't worry there's a summary post coming! One of my greatest achievements was finishing and publishing my book C# Smorgasbord. Between all the writing and marketing I've had the pleasure to do screencasts, user group presentations and of course a lot of fun blog posts!

All these contributions has been noticed and 2013 could not have started better, I just received this e-mail from Microsoft:

Congratulations! We are pleased to present you with the 2013 Microsoft® MVP Award! This award is given to exceptional technical community leaders who actively share their high quality, real world expertise with others. We appreciate your outstanding contributions in Visual C# technical communities during the past year.
[...]

Creating a Windows 8 Store Game with MonoGame (XAML) and SignalR

Posted by Filip Ekberg on 21 Dec 2012

In previous posts we've looked at how we could create a cross-platform game that relied on HTML and JavaScript. What we also did was moving the server-side code over to a server that runs on Linux and uses Apache and Mono with SignalR! Now let's take this a step further and convert this game client to a Windows 8 Store application using MonoGame with XAML! [...]

Running SignalR on Mono

Posted by Filip Ekberg on 10 Dec 2012

If you are one of those people, just like I am, that still use Linux for hosting despite that you love and only do .NET development; this is something extremely awesome. Ever since I started using SignalR I've wanted to host it on my own servers but all of them run on Linux with Mono and Apache. When David Fowler tweeted a couple of days ago that he was working on getting SignalR working on Mono; I had fireworks in my belly!

When I later told him that I actually run "real" web stuff on Linux with Mono and Apache, I was asked if I wanted to try get SignalR working on Mono! I love working on Windows so ideally I want to build and test stuff on my Windows development machine and then deploy to one of the Linux servers that uses Mono and Apache. The server that I got this running on is running Apache 2.2.14 and Mono 2.11. [...]

Questions for a Software Engineer

Posted by Filip Ekberg on 30 Nov 2012

A couple of weeks ago I visited my old upper high school. This is where you take your last three years of high school in Sweden and focus on a certain area. I focused on IT and Programming and now a couple of weeks ago I was invited to come back and talk to the current students. My initial idea was to talk about programming and inspire these young people (16-20 years old) to continue studying in the field of software engineering. But when I found out that more than half of the attendees actually studied something else such as economics or entrepreneurship, I had to change focus of the presentation. The new focus on the presentation was entrepreneurship and how to become awesome at selling yourself. [...]

Introduction to SignalR - Creating a Cross-Platform game

Posted by Filip Ekberg on 29 Nov 2012

Have you had a chance to play with SignalR yet? If not, you're really missing out! While preparing for a Swedish .NET User Group presentation, I did a test screencast on all my content that was going into the presentation. This screencast is uploaded to youtube so go check it out! It's a bit over 1 hour long but well worth it if you want to get started with SignalR or just get some new inspiration! [...]

How do I choose where I want the new start screen in Windows 8?

Posted by Filip Ekberg on 23 Nov 2012

If I would have gotten a penny for every time that someone told me or tweeted: "I want the old start button back in Windows 8!" I would have been richer than Bill Gates. First of all, the problem is that people seem scared of change, not willing to step out of their comfort zone and try something different. I've been running Windows 8 since February 2012 and I've come to love it a lot. Despite the lack of the old start button, I still find the operating system much more productive than before and it's very intuitive! [...]

C# Smorgasbord Sale!

Posted by Filip Ekberg on 20 Nov 2012

C# Smorgasbord has been out for 3 months and has already gotten a lot of positive feedback and great reviews(See below)! [...]