I’m Eric Tummers, Technical Consultant at Valid, and this is how I work

hulk_behind_me
I’m hired as a Software Architect to build a solution with Microsoft products. Our team works by the scrum guide and is moving towards continuous deployment. We are learning and growing while delivering business value. This is hard work. Every sprint we complete means the retrospective is done in the pub.

I expect the best and I give the best. Here’s the beer. Here’s the entertainment. Now have fun. That’s an order!
Rasczak

Location: Sittard, NL
Current Gig: Technical Consultant, Valid
Word that best describes how you work: Teamwork
Current mobile device: iPhone se
Current computer: MacBook 15 inch

What apps/software/tools can’t you live without? Why?

Wunderlist: work tasks, chores, groceries, planning, every task is there.
Evernote: I’m a fan for years now. Not to happy about the recent update but time will improve this.
iSmoothrun: when I’m not working, I’m running, this app tracks just about every metric I can think of and shares it to all the platforms (runkeeper for one)
Parallels 11: Running Windows on my MacBook is a must. And of course visual studio, team foundation server, build, release manager, sql server management studio, remote desktop, powershell, and some other tools I need for work.

What’s your workspace setup like?

Work at the office is on a thin client with 21 inch screen and (wired) mouse and keyboard. The desk and chair comply with all regulations. We have a great coffee machine.

dekstop_2017

My home workspace has moved to the kitchen table with my Macbook 15 inch. No externals and enough battery for the whole day. Freedom!

What’s your best time-saving shortcut/life hack?

Timebox. Start on a task and spent the time you’ve got to get the best result. Get someone to look at it, get feedback. Then decide if the result is final or to spent some more time.

Besides your phone and computer, what gadget can’t you live without and why?

I’ve been running with my Magellan Echo for some time. It is a sports watch that hooks up to my phone by bluetooth to start / stop my runs, control the music and see the metrics right on my wrist. It is powered by a battery that lasts 6 months and is easy to replace.
My Apple TV2 (jailbroken) hooked up to my NAS for movies and series. Also hooked to my stereo for music streaming. Awesome device!

What everyday thing are you better at than everyone else? What’s your secret?

Learning new things. My current project lets me implement new things (joy) Also I try to learn the things I know to my team or anyone who listens.
I have a basic understanding of how things work and try to map new things on there. For the details I have a Pluralsight subscription and black belt google skills.

What do you listen to while you work?

My alarm clock plays classical music to wake me up in the morning. The car stereo plays about everything (grunge, rock, kids stories) driving to work. When I need some focus I play drum and bass on my headphones. My ringtone is still Run riot by Camo & Krooked.

What are you currently reading?

Tools of Titans by Tim Ferriss. A Christmas gift. Best described as a book of “How I Work” posts full with tips and tricks of the titans (experts)

tools-of-titans

How do you recharge? What do you do when you want to forget about work?

Spending quality time with my wife and daughters. Phone on silent, no screens, no work. Mostly piggyback riding and thee parties
Also sports like running, fitness, climbing and snowboarding to keep me fit and healthy.

Fill in the blank: I’d love to see _________ answer these same questions.

Iris Classon, because she had to start from zero with her career shift and is now a Microsoft MVP (Most Valuable Professional).

What’s the best advice you’ve ever received?

someecards.com - Make a shit first draft you cannot edit a blank page
I believe this is a variant on a Hemingway quote.

Is there anything else you’d like to add that might be interesting to readers?

Learn Powershell. There is so much possible with Powershell. If you can learn one thing this year pick Powershell. 

Original idea from Lifehacker.com.

Posted in Uncategorized | Tagged , , , , , | Leave a comment

EF query optimisation

We have a view that is very slow when you don’t use a filter on the name field. Everywhere in our stored procedures and (sub)queries we have this applied.

In our web applicatie we use Entity Framework. The business layer required the name filter, but the result always times out. The query looks like below.

-- simplified for clarity
SELECT [Extent1].[Name] as [Name]
FROM view as [Extent1]
WHERE [Extent1].[Name] = @p__linq__0

This is case of bad parameter sniffing. More about this in the References at the end of this post.

Reading this answer on stackoverflow made me look into the custom query execution against the Database object of your Context. And that solved the puzzle with a custom method instead of the generated IDbSet properties.

public IQueryable<viewRecordType> GetViewRecordsWhereNameIs(
string name) {
   // Danger! Sql injection possible
   var query = string.Format(
      "SELECT * FROM view WHERE name = '{0}'",
      name);
   return Database.SqlQuery<viewRecordType>(query).AsQueryable();
}

Please note the warning. Sql injection is possible when you don’t use parameters!

References

Entity Framework Performance and What You Can Do About It
How to Confuse the SQL Server Query Optimizer

Posted in Development | Tagged , , , | Leave a comment

Speed up ASP.NET MVC debugging

Whenever I was debugging my ASP.NET MVC application the wait times for every page is about 8 seconds. This was not happening after deployment to a webserver (thank god!)

Today I discovered that disabling the browserlink will speed things up for me. I’ve read this Article about setting the vs:EnableBrowserlink to false in the web.config. The first request is still slow, but that is how ASP.NET MVC works. After that every page loads fast and without any delay.

What else did I do? EnableOptimizations in debug, since I don’t develop scripts, I only use them.

Posted in Development | Tagged , , , | Leave a comment

Linq to entities and CAST

We use an EDMX to access our database with Entity Framework. Before you comment: we have our reasons not to use code-first. Today we encountered a small problem with linq to entities and validating a varchar field that contains an integer value. Again: we have our reasons. Think about key-value pairs.

An excellent answer of Joel Mueller on stackoverflow.com helped us overcome this problem. In short we had to add a function to our edmx conceptual model. The link above has all te details.

<Function Name="ParseInt" ReturnType="Edm.Int32">
   <Parameter Name="stringvalue" Type="Edm.String"/>
   <DefiningExpression>
      CAST(stringvalue as Edm.Int32)
   </DefiningExpression>
</Function>

The validation works like a charm now. This is what EF generates (see the CAST?):

SELECT [GroupBy1].[A1] AS [C1]
FROM ( SELECT COUNT(1) AS [A1]
        FROM [dbo].[Table] AS [Extent1]
        WHERE ([Extent1].[Key] = @p__linq__0) 
        AND (( CAST( [Extent1].[Value] AS int) < @p__linq__1) 
          OR ( CAST( [Extent1].[Value] AS int) > @p__linq__2))
    )  AS [GroupBy1]
Posted in Development | Tagged , , , , | Leave a comment

Outlook 2016 for Mac spellcheck default language

The spellcheck in Outlook 2016 for Mac was driving me nuts for some time now. Most e-mails I write are in Dutch and the spellcheck defaults to English (UK). My daughter concluded “a lot of squiggly red lines” on my computer. This was the max. Outlook behave!

Here is how to change the default language:

  • Create a new message
  • Click Options > Language in the Ribbon
  • Select the preferred Language and click Default…
  • Click OK and close the new message

default_spellcheck_language_outlook2016_mac

Finally spellcheck in my own language. I’m a happy Office for Mac user again.

Posted in Tooling | Tagged , | Leave a comment

Flow parasites on ifttt

My blog posts are automatically published to yammer. When yammer was independent this worked like a charm. Then Microsoft bought yammer and the ifttt channel stopped working.

With the Office365 channel and the e-mail to yammer it worked again. Only for Microsoft to introduce an approve step. This means:

  1. wait for approval request in outlook,
  2. open login page to office 365,
  3. fill e-mail and wait for redirect to company login page,
  4. fill e-mail (again) and password,
  5. See the yammer post.

Now with Flow this would be automatic again. Let’s try this with this post.


as expected Flow can publish to yammer with more options and less hurdles … embrace and extend, not really.

Posted in Tooling | Leave a comment

Scrum Master Skills

We’re working on our project for some months now. Time to freshen up on scrum. For this we use the Scrum Master Skills course on pluralsight.

Once each sprint we sit down as a team for an hour. We play and pause the video and discuss how this applies to us. Some tips can be applied right away and others go on the backlog.

rawpixel-com-250087

Image courtesy of rawpixel / unsplash.com

Every project is different and every team is different. Even after 15 sprints we are finetuning. Using the experience of others helps us to be a better scrum team.

Posted in Development | Tagged , , | Leave a comment

Update statistics from stored procedure (needs alter table permission)

Today instead of the beautiful information our reports displayed this ugly error

  • An error has occurred during report processing. (rsProcessingAborted)
    • Query execution failed for dataset ‘StoredProcedure’. (rsErrorExecutingCommand)
      • For more information about this error navigate to the report server on the local server machine, or enable remote errors

If we had access to the report server machine this was easy to troubleshoot. But we don’t have access to the report server. We needed another approach.

Image courtesy of jesadaphorn / FreeDigitalPhotos.net
Image courtesy of jesadaphorn / FreeDigitalPhotos.net

Looking through the changes from last night we noticed a small performance enhancement. In a stored procedure that prepares the data for the reports we added the following line:

UPDATE STATISTICS [dbo].[Fact]

In the Microsoft documentation it says you’ll need alter table permission to use update statistics. So we added another grant for the reporting service account.

GRANT EXECUTE ON [dbo].[proc_prepare4reporting] TO [SSRS]
GRANT ALTER ON [dbo].[Fact] TO [SSRS]

After the deployment the reports showed the beautiful information again.

Posted in Development | Tagged , , , , , | Leave a comment