Subscribe

Archive October 2009:

Interview with Peter Sunna

Peter Sunna is one of those guys you wish you always had in your team - he’s really talented and possesses great knowledge in many different areas. He also happens to work at EPiServer, where he contributes to make stuff easier for all involved in the product. I had the chance to meet up with Peter during a lunch to talk about EPiServer, general development and career stuff, plus much more. Enjoy the great guy that is Peter Sunna!

Peter Sunna

So, what's happening at the EPiServer headquarter right now?

I've been with EPiServer for one and a half year now and it really feels like the development is going in the right direction - and EPiServer 6 is coming soon too! There has been a lot of collaboration with developers regarding the platform. I and my colleague Mats Hellström has been a part of it, which feels good.

How does it feel to be back in Stockholm city? What do you have to say about your new office?

I've got only nice words for our new office! I promised myself at our earlier office in Akalla that I would never complain on an office located in the center of Stockholm, so I've got nothing negative to say about this office - it's positive in all possible ways!

I commute by bike and it takes 20 minutes, just like it did when I worked at H&H once upon a time. This also means my working days are 9 hours now instead of maybe 11 hours when we were at Akalla.

Facts

  • Peter Sunna
  • Sales Engineer at EPiServer (Stockholm, Sweden)
  • Main focus on sales, education and expert services
  • Follow on Twitter

Can you tell, what exactly do you do at work? What is your mission at EPiServer?

My official title is Sales Engineer, but I work in three different areas at EPiServer:

Pre-sales, where I'm involved in sales pitches and propose technical solutions in new end-client projects, plus inspire our partner developers.

Next part is education, which means I teach in a number of courses each year, which is good as it keeps you updated on the product. You also meet developers and get to know the existing problems.

The third part is expert services, which means we contribute with expert knowledge if partners need help with for instance a large scale website or if a code review is needed. We're there to help if partners really need help, you can say it's like an extended support.

What does the sales responsibility mean for you?

The most important thing is to get partner developers interested in the product. That's probably our most important sales channel. Me and Mats (Hellström) focus very much at the developers, we run tech road shows, where we visit partners and show new products and cool demos. We've also got EPiServer Tech Forum, which is quite popular - we run it in Stockholm, Gothenburg and Malmo in Sweden. The EPiServer sales network is growing and there is usable knowledge around which we benefit from.

Then we also have more traditional sales where you are on the field with a sales man and maybe meet an end client where you propose a technical solution. This often happens during the concept stage in a web project, so you propose a high level solution and then it's up to the EPiServer partner to put the solution into practice.

An example: two connected EPiServer websites with a SharePoint integration. 

I've got a free role and now that social media has grown so much we of course use those channels as well, which is great fun.

What would you say is the best thing about work?

The best is I get to communicate with developers and discuss technical problems and solutions. Plus, of course, I get to influence EPiServer!

Top 3 features you want in EPiServer CMS 6?

I already know what will come in the next version, but I've got two wishes and one feature I know will be built in:

I'm an ambassador for ASP.NET MVC and hope it'll grow to become a larger part of EPiServer, even though it won't be a big part in version 6 (except for the new site center).

Together with MVC, unit testing comes more natural. You can already do unit testing in EPiServer with Joel Abrahamsson's EPiAbstractions, but I want better support for it built into the framework.

A new editor comes in version 6 - tinyMCE. tinyMCE finally gives us support for browsers that follow the web standards, which is really, really good.

You're a bit more web standards aware than the traditional .NET developer - why is that?

It's actually a bit boring to confess, but it was quite random that I did start to work for Funka.nu (in Swedish) in 2004 and they focused very much at accessibility.

During my five years at the university, I never came in contact with accessibility, which is really scary - but when I came to Funka as a developer, you had to develop websites using web standards and make them accessible. It was absolutely a new world that opened to me and I haven't looked back since.

What do you think is required to get developers to focus more at web standards, accessibility and usability?

I think this change has already begun, due to many reasons. If you look at usability, many companies have employed seven system developers and no interaction designer, but this has changed a lot and I believe the iPhone is a part of this. When iPhone came there were many people wondering why their products didn't work as seamless and easy as in the ones in the iPhone. The drawback with accessibility is it cannot give the same wow feeling if no one has a disability.

What you can do, for instance, is to let a developer browse the web without a mouse, to gain accessibility understanding. Next step is to communicate what you can do to develop accessible websites.

It's often quite easy, it's just about building in the right way and if you've done it once, you'll always to continue do so. One of the largest problems with accessibility is that it seems too complex - W3C has failed in that area. One example is a document regarding heading levels which might be three pages I read through - and still don't understand what I've read - and that's a problem.

How did you start your developer career?

My father was a computer science teacher and thanks to this we had a huge laptop, which had MS DOS 5.1 on it. He also taught in Pascal and programming, which is the reason I began with development.

When I was going to the university, the logical choice was to study computer science, but afterwards I think it was a rushed decision because already during upper secondary school I had read a lot about programming. None the less, that's the way it went.

My first public project was a four in a row game you could play online or against the computer. The name was Fyrad (English translation: Shot) and a bit later the successor came, Fyrad 32, which was written about in the at that time large news letter named Lockergnome.

What would you say is your best career move so far?

It's hard to single out a specific move. But if I have to say it, it's when I gave notice to my job at Umea University and moved to Stockholm in the middle of a recession without a job. Safety isn't always the best option.

Any career advice you can give a developer?

My advice is to setup a goal for yourself - what do you want to achieve? Do you want to deepen further into development or broaden your skills into other areas? It's also important to be a part of the community and share what you've done.

Do you have a particular project you're especially proud of?

During my time at the university I and two friends started a company where we focused on web publishing. Everything started out with our football team that needed a new website, which meant I wrote a website in C++, not very common but it was a programming language I knew. This was a website which managed statistics, top scorer charts and league tables.

I built the next version of this website in Perl and Xml because I realized C++ wasn't the best to use for the web. This version became so good that we decided to build our company around it and our largest customer in Umea, BiljettCenter, had this system for maybe seven years!

How's it going with the discgolf then?

It's gone really bad with discgolf this year, which is a bit boring. The thing is, when I was 20 years I decided to start playing golf after my football career hit an end, but it took too much time so I started with discgolf instead and played very, very much.

We're five friends from Umea who now live in Stockholm and we play discgolf at least one a week at Järva-fältet outside Stockholm. It's a social activity, the important thing is to hang around and have fun.

Discgolf isn't that huge in Sweden but those who play it are very enthusiastical. It's a bit of an outsider sport and if I compare to golf it's a much nice feeling to play discgolf.

Are you still a Chelsea fan?

I've never really been a huge Chelsea fan, but I started to support them when everybody else supported Manchester United, Liverpool and Tottenham.

Do you enjoy any other sports than discgolf and football?

I like to play floor ball, squash and more. When I was younger I had a passion for ice hockey and Bjorkloven Sweden - I was probably their largest fan during junior high school.

I spend less time watching sports though, to the benefit of my girlfriend and other nice stuff.

How do you most like to spend your spare time?

Discgolf or any ball sport isn't wrong. I like to hang out with my girlfriend Anette and why not go skiing in the Alps?

5 quick

  1. Golf vs tennis?

    Golf.

  2. Best lunch meal?

    A healthy meal.

  3. Best summer vacation?

    Car trip in Romania, it's fantastic!

  4. Latest thing you shopped?

    Golf balls.

  5. Best town in USA?

    Seattle, because the whole west coast mentality appeals to me, it's like Europe. They are also very aware of the environment.

This environment thing, is it something that interest you?

I want to be more involved than I actually am, but sometimes I pretend to be more interested than I am. I'm contributing to Greenpeace and often try to put focus at the environment in discussions.

I also try to be a part of what's happening.

One example: because I'm from Norrland in northern Sweden, I didn't want the rivers destroyed by water power. Both wind power and water power is environment friendly but destroys the surroundings we none the less live in.

3 persons to follow on Twitter?

It's hard to point out three persons because the whole Twitter thing is you get input from a lot of different persons. There are persons I like one day but hate the next day when they post irrelevant stuff. But my three are:

Your favourite websites?

In 30 years time, what do you want to have achieved in life?

I want to have been a part of a project where you've contributed to a better environment. It sounds like a cliché but it would be fantastic to be a part of!

What inspires you?

Beautiful nature is the greatest source of inspiration. It's fantastic to hike in the mountains (northern Sweden). To stand by the Tornea river fishing graylings a late august evening - that's inspiration!

Any final words?

Thanks for the interview! Keep up the good work.

How to add a control to a StringBuilder

When you want to put together a number of strings in ASP.NET, the StringBuilder is very handy. Instead of using concatenation, StringBuilder both looks better and improves performance. You can simply append a set of strings to the StringBuilder and return it, like this:

public static string BuildNumbers()
{
	StringBuilder sb = new StringBuilder();
		sb.Append("<ul>");
	
		for (int i=0; i<500; i++)
		{
			sb.Append(string.Format("<li>{0}</li>",i));
		}

		sb.Append("</ul>");

	return sb.ToString();
}

However, sometimes you might want to add a web control to the StringBuilder. A bit more tricky.

What you want to do, is to dynamically create the control and use StringWriter together with HtmlTextWriter to render the control inside the StringBuilder. Like this, when you want a LinkButton:

public static string BuildNumbers()
{
	StringBuilder sb = new StringBuilder();
		sb.Append("<ul>");
	
		for (int i=0; i<500; i++)
		{
			sb.Append(string.Format("<li>{0}</li>",i));
		}

		LinkButton lnkBtn = new LinkButton();
			lnkBtn.ID = "lnkBtnSubmit";
			lnkBtn.Text = "Submit";

		using (StringWriter sw = new StringWriter(sb))
		{
			using (HtmlTextWriter tw = new HtmlTextWriter(sw))
			{
				lnkBtn.RenderControl(tw);
			}
		}
	
	sb.Append("</ul>");

	return sb.ToString();
}

Faster Visual Studio with some quick steps

Here are a couple of quick steps that will make your Visual Studio faster (particularly 2005 and 2008 version):

  • Turn off AutoRecover
    Under Tools->Options->Environment->AutoRecover, untick Save AutoRecover information every.

    This turns off the AutoRecover mode, which makes sure you quickly can get crashed Visual Studio instances back.

  • Turn off animations
    Under Tools->Options->Environment, untick Animate environment tools.

  • Turn off track changes
    Under Tools->Options->Text Editor, untick Track changes.

    Track changes is used to tell you what section of the code you've recently edited.

  • Turn off the Visual Studio start page
    Under Tools->Options->Environment->Startup, choose the alternative Show empty environment under At startup.

  • Install the latest service pack
    It's always a great idea to have the latest service pack installed. Download Service Pack 1 for Visual Studio 2008.

10 great Android apps you should have

The Android Market is absolutely full of great applications and tools to customize your Android OS. The market has grown a lot lately, particularly with the popularity of HTC Hero. Here are 10 great applications I can recommend for Android - all available through Market in your HTC!

Twidroid

This is the most useful Twitter client available for Android systems. Post tweets, upload photos, send direct messages, use search plus more. If the free version isn't enough you also have the full version with even more advanced functionality.

This is definitely the Twitter app for Android that stands out above all other Twitter apps.

Visit Twidroid home page

Astrid

Astrid is a great to do manager that boosts productivity - you can create new tasks, fill in a number of options and let Astrid alert you when you need it. Great interface and customization options.

Visit Astrid home page

AK Notepad

A simple note tool - write anything, save it, setup reminders and send notes via sms or e-mail.

Visit AK Notepad home page

Layar

Augmented reality is hot. Really hot. Layar uses the phone's GPS and compass to show you what's in your surroundings. Just point your Android phone at a location and Layar will show you layers of information - such as train stations, restaurants or even your friends. This is a really cool app and it's got a lot of potential.

Visit Layar home page

NewsRob

A Google Reader client, great to catch up with your unread feeds on the fly.

Visit NewsRob home page

Mabilo ringtones

This is where you want to go and catch your ringtones. A full set of categories where you'll definitely find something that suits you.

ePhoneBook

This is a better and more useful phone book than the standard one. Particularly the different tab modes are great for sorting your contacts - plus it's easier to maintain your phone book with this app.

Quick Uninstaller

If you try out a lot of Android apps, this is the tool for you - an uninstaller which does the work.

Advanced Task Killer

If you ever feel your phone slows down, it might be an idea to use Advanced Task Killer to close apps you're not really using.

Spare Parts

Fine tune your phone settings. Customize appearance such as font size and animations plus a number of other settings.

More resources

These apps are just some of my true favourites. There are a number of other apps available. Here's more resources on Android apps:

 

 

Have you got any favourite Android apps? Please feel free to add a comment!

Solve login failed error for IIS APPPOOL\DefaultAppPool

I recently ran into the classic SQL Server connection error message "Login failed". This, of course, nearly always has to do with insufficient rights to the database.

However, I also got this error message:

Login failed for user 'IIS APPPOOL\DefaultAppPool

In this case, I tried to anonymously connect to a SQL Server Database (in Windows 7, mind).

This is how to solve the problem:

  1. In Internet Information Services, right click the website that tries to connect to the database->choose Manage Web Site -> Advanced Settings. Take a look at the Application Pool used, in this case DefaultAppPool:
    IIS Application Pool settings
  2. Now that you know the application pool the website uses, instead right click Application Pools (in IIS root) -> right click the correct application pool -> choose Advanced Settings.
  3. Under Advanced Settings, find Identity and choose LocalService as the Built-in account:
    Change Application Pool Identity to LocalService
  4. Done!

Don't do iPhone specific web development!

Every now and again I bump into scenarios where iPhone specific web development is asked. Every time, I say we've been here before and tell people development for specific devices and platforms isn't the way to go.

User experience is the most important, don't develop for specific devices and platforms.We've just recently fought the web standards war, where we've strived towards the goal to develop one time and make sure what we develop can be consumed everywhere. It surprises me that very few have argued against the case regarding iPhone specific websites.

We must focus at giving users the best experience regardless of what device is used.

We can't focus at only one platform, even though the platform is popular. A couple of years ago, there was a different case - iPhone was in a world of its own. But this is not the case any more - today, we've got a number of handheld devices available on the market and some of these devices are perfectly capable of competing with iPhone.

It has today become more important than ever to make sure websites can be viewed on several different devices, and this won't change - the mobile web is for sure here to stay. The accessibility question is of highest importance - we must make sure the largest number of crowd is able to convey information, no matter what.

What we can't do is the mistake we did not so long ago - develop websites that works only in one browser - or one platform.

By developing websites that works everywhere, we'll be able to reach out to a severe number of users instead of the the few that uses iPhone - because when we look at it, the iPhone users are still few compared to the mass who can and will use mobile devices to use the Internet.

To sum this up:

Develop to give all users the possibility to find and read information regardless of devices and platform.

Don't do iPhone specific web development.

Turn off HTML and CSS validation in Visual Studio

Visual Studio sometimes points out that HTML and CSS in a project doesn't validate, showing the dreaded Error list with errors and warnings.

This is one of the most annoying things about Visual Studio, since it becomes harder to find real compilation errors in the error list. Plus, it's better to use the web browser and add-ons (e.g. Firefox with the HTML Validator add-on) to find validation errors.

This is how the error list might look in Visual Studio, pointing out validation errors:

Validation errors in Visual Studio

How to turn off validation errors in Visual Studio

  1. In Visual Studio, go to Tools->Options and expand the node Text Editor.
  2. To turn off HTML validation, expand the node HTML, choose Validation and untick Show errors under Options. Press Ok.
  3. To turn off CSS validation, expand the node CSS, choose CSS Specific and untick Detect errors under Errors. Press Ok.
  4. Done!

To the top