#Sitecore #SCHackathon 2018 @ParagonDev Top 5 Reasons of Failure and Top 5 Reasons the Experience Was Better

Well with very little sleep this weekend I am writing this blog as the thoughts of my second Sitecore Hackathon has ended. I was on team SIF Lords. We all love Star Wars and Sitecore if you can’t tell by the name. We came up with a clever idea this year that would combine my running world (Strava) with Sitecore. Just like last year though with a different team my team this year failed to get the needed things in time to qualify. We needed about 26 hours not 24. However just like last year all was not lost. I don’t do these contests to win. It would be nice to win, but there are more important things at play here. So here are my top 5 reasons for failure, but also top 5 reasons why the experience outshines the failures.

Top 5 Failures

Ever year is going to be a learning experience I learned from my failures last year and vowed to not make the same mistakes. Well mostly not the same mistakes. Here are the mistakes this year. Hey, we never stop learning.

  1. Not trying to cover all the bases.

    Knowing there was a lot introduced in the last year new to Sitecore we probably should have studied each thing we though might be part of the contest that was introduced in Sitecore recently. We instead had ideas and going into the assumption that they would be broad enough to fit in. We were wrong.

  2. Installing anything in Sitecore that was not out of the box.

    Well this one I learned a little from last year. We decided no Glass Mapper and we would use Unicorn instead of TDS. Well I am a huge fan of TDS, but Unicorn was lighter to install and one of our team members had experience with it. I had a little experience with it. This would be a good opportunity to learn it better. Well in the end that did us in. No fault of Unicorn which is a great product btw, we missed a few configurations so we had some syncing issues. Lesson learned. Maybe we just use Sitecore packages next year.

  3. Not spending enough time mentally preparing.

    Working all day and it being a Friday I thought it would wind down gradually and then I would be mentally prepared for the hackathon. Well as everyone knows in the programming world things can get hectic at times. So, by the time I finished work I had to go right into the hackathon. Maybe next year I take a half day off and prepare.

  4. Not meeting with the group beforehand.

    We did have some chatroom talk on Slack and email, but we never had an official phone meeting. Not sure if it would have been beneficial, but it might have helped the brainstorming session go a little quicker.

  5. Being overconfident.

    Hey coding is hard if you don’t know. However, as developers we love to code. Sometimes though when you think you know everything you just don’t. This goes back to number 1. Study anything you can that you are not familiar with.

Top 5 Experiences

No matter the failures these experiences overcame any failure that happened.

  1. I got to learn something new.

    The topics introduced to us when the contest started was something we haven’t had experience in it. We came in the contest with all these ideas, but wham we were hit with the reality that none of them will work. So, we picked the path that we hoped we can have the most success on XConnect. Also, as mentioned above I got more experience with Unicorn.

  2. Crash course into Sitecore 9.

    This goes along with learning something new, but it does deserve its own number on the list. Right before the hackathon after several tries I finally got Sitecore 9 installed. I barely had time to play around with it so as my team got coding I had to learn all the new things that come with the latest version of Sitecore.

  3. Brainstorming a unique idea and executing that idea.

    We spent a good hour or two coming up with ideas that could fit into what we wanted to do with XConnect. We hit some dead ends, but finally came up with a pretty solid idea. When you have 24 hours to code something though you don’t exactly know if that idea will work or not until you really get into it. Towards the end the idea looked like it was going to work. Too bad we ran out of time.

  4. I got to work with co-workers I normally don’t get to.

    I am very blessed to be working for a great company. I know one thing that makes the company great are the people working there. I haven’t really worked with these specific co-workers until the hackathon. I didn’t know what they would be like other than talking to them socially. In that 24 hours we were working together as a solid team. I got to know them more and I am sure when we work on an actual project for Paragon we will be even more prepared and cohesive.

  5. I love the Sitecore world.

    Knowing that there are other Sitecore developers crazy like us makes me happy to be part of the family. I think about how much Sitecore has meant to my career and anytime I can be more involved with the it I want to seize the opportunity. There is so much to learn in Sitecore no matter how long you have been using it.

So now that I am reflecting on my experience will I be back next year? Well when I am running a marathon at mile 20+ I always question myself on why the heck did I decide to do this. I felt the same way with the hackathon in the 20+ hour. However, when it was over I thought yeah, I will do that again just like a marathon. Special thanks to everyone in the Sitecore family that made this year’s Sitecore hackathon special. Most of all to team SIF Lord. Next year we got this. If you like to follow the rest of my team you can find Steve on Twitter here and Jennifer on Twitter here.

Named a #SitecoreMVP 2018 MVP Technology

As I am writing this I am still in shock. Several years ago I was just learning and developing with Sitecore at night while working on other projects during the day. Little did I know where it would lead me. I have run several marathons and I can tell you this journey was a marathon. There were some good and rough times along my way, but I kept moving forward.

My drive to become an MVP started a year ago when I got a job with Paragon and they gave me the confidence to believe I can achieve MVP status. I talked to many MVPs this past year and they gave me a lot of helpful advice. I have met so many people in the Sitecore community this past year as well and I am excited about being more involved in the community as an MVP and making new connections. The highlights of this year have been the meetups, Slack conversations and most of all getting to attend the Sitecore Symposium in Las Vegas. So, I just want to say thank you to Paragon, all the MVPs who gave me advice, aspiring MVPs that were on the ride with me, Sitecore of course and the Sitecore community.

So now what? Well no matter what if I didn’t get awarded MVP I was going to continue doing what I am doing. I learned a lot about myself this past year. I love blogging, I really love Sitecore more than I realized before and most of all I love sharing my knowledge. If I was going to add something new I think it would be coming up with a YouTube video this year. I just need to find the right blog topic.

To see all the winners check it out here. Also congratulations to my co-worker Scott Gillis who has gotten Sitecore MVP for the second year in year in a row. You can check his blog at thecodeattic.


Refreshing #Sitecore Links Database for an Item and Seeing What Links to the Item

I had a client and recently a question came up on Sitecore Slack about the Sitecore link database and how you can find what items link to an item. This is one of those simple solutions that I may refer to in the future and also it may help someone else. In my client’s case they needed to know what media images linked to the item. I will keep this short and sweet. You can see my comments in the code below. Let me know if you have any questions.

Limiting #Sitecore Field Descriptions Using a Partial Class and #GlassMapper

Using a partial class to manipulate/change glass mapper model fields is common. I recently had to do this and thought this little tip for shortening descriptions fields would be come in handy for others. In this case an event listing was displayed. If the description was longer than 50 we would truncate the text and display it with the three dots at the end.

To add the partial class was simple. The key here is having the namespace the same name as you do in the generated model that Glass Mapper generated. If the namespace differs than the partial will not work since it cannot match the class you are adding additional functionality too. In my case ReSharper warns me the namespace path does not match of where I placed my partial class, but that is okay as I know it matches what is in the generated model.

This is what the partial class syntax looks like:

using System;

using Glass.Mapper.Sc;

using Glass.Mapper.Sc.Configuration.Attributes;

namespace Events.Models.sitecore.templates.Feature.Events


public partial class Event


private string _mainContentDescription;


public virtual string MainContentDescription




return _mainContentDescription;




ISitecoreService service = new SitecoreService(Sitecore.Context.Database);

var eventsettings = service.GetItem<EventsSettings>(Constants.Items.EventsSettings);

if (!int.TryParse(eventsettings.Text_Limit, out int textlimit))


textlimit = 50;


_mainContentDescription = value;

_mainContentDescription = !string.IsNullOrEmpty(MainContentDescription) ? TruncateAtWord(MainContentDescription, textlimit) : MainContentDescription;



public static string TruncateAtWord(string value, int length)


if (value == null || value.Length < length || value.IndexOf(” “, length, StringComparison.Ordinal) == -1)

return value;

return value.Substring(0, value.IndexOf(” “, length, StringComparison.Ordinal))+(“…”);




When we go ahead and use it in the view this is what the syntax will look like.

<div class=”desc”>@Html.Raw( Model.MainContentDescription )</div>

Your description should look something like this one done:

This is a description that I don’t want to show it…

There are many possibilities you can do with partial classes and glass mapper. In this case this saved me the time of truncating the characters in the view or creating a separate model were I would have to read the descriptions in and truncate them that way and send that model to my view for example. This is a clean and easy solution and I can use the existing generated glass model so this limits the changes I normally would have to make.

Keeping #Sitecore #SOLR Index Names Unique for Multiple Projects

One of the things I recently ran into was what should you do if you have multiple projects with the same SOLR index name. SOLR does not allow you to have the same name for an index. For instance you can’t have more than one sitecore_master_index. You will be warned and unable to if you try and create one with the same name. Also if you rebuild the indexes it will overwrite the index data for the other site you were working on. So I went on Sitecore Slack looking for help. Where Sitecorey gave me a great idea. Basically you would prefix the configuration entry core with the name of the site in each index file. See below for an example.

Your index name should reflect that name as well in the SOLR index directory.

Now this did solve the issue of having multiple indexes, but a few people on the team wanted to take it a step further. They wanted to see indexes prefixed with site name from the control panel index rebuild. So I created a config transform this time for it. Keep in mind this is always a smart idea to keep the original files safe. Basically I just replaced the id value.

From my understanding the SIM installer can also help with the prefixing of index names. I haven’t used it for that yet as my site was already installed, but in the future that is something I will consider. Let me know if you have any questions.

First Ever Milwaukee Meets Chicago #Sitecore Meetup Recap

So not sure exactly who’s idea it was, but it turned out to be a great one to combine the Milwaukee Sitecore Meetup with the Chicago Sitecore meetup. No Bears vs Packers football was discussed, just Sitecore. There must have been over 30 attendees. Coveo did the first presentation and I was honored to be part of the second presentation of Sitecore Symposium attendees. I can’t wait for the next one. So here is the recap in pictures.

I live in the far west suburbs of Chicago so driving to Kenosha, Wisconsin was about the same time as it took me to get to the Chicago meetups. I enjoyed my view of the country roads and put on some classic hard rock music.

I arrived at the venue. I have never been to the Brat Stop, but I may have to come back for a visit.

Upon arrival it was great to start meeting others in person and seeing people again that I have met at the Symposium, the Chicago meetups and even one of my co-workers in person.

Renee from American Eagle and Isabel from Coveo.

My co-worker Chad from Paragon and Joe from GeekHive.

Like I said a sizable number of attendees.

Look at that food. Not bad for not being Chicago pizza.

I always love Sitecore freebies. I do love Sitecore like the pin says.

So let’s get down to the meetup itself. It first started with all the sponsors telling a little about the company they work for. I talked about Paragon and what we did. Hopefully what I was saying made sense. I am a developer, but I always try and do my best to sell.

Coveo then did a presentation. Coveo has been a huge part of Sitecore searching/marketing and they always impress me. I can’t wait to do another project with their tools.










Now it was time for the Sitecore Symposium panel.


We all gave our best insights and reported things we learned and brought up a lot of subjects. Mark and the audience had some great questions. This was so much fun.

So when is the next one? Not sure, but this one was so much fun. Maybe we can discuss Bears vs Packers at the next one?

Making the #Sitecore Switch from #Lucene to #SOLR with Custom Indexes

Recently I did my first conversion from Lucene to SOLR. With Lucene being phased out in Sitecore 9 this will probably be more common. You can find a lot of different installation guides in installing SOLR, but there are a few things that tripped me up that I want to prevent others from having to deal with.

Avoid Pitfalls

  • Make sure every Lucene config is disabled. Even the ones in the sub folders.
  • Make sure all the SOLR configs are enabled even the ones in the sub folders.
  • Make sure you don’t have any Cores with the same name inside the core.properties file. I had Sitecore_Master_Index in more than one file and all my Cores would disappear every time I restarted until I corrected the name.

Custom Indexes Differences

Some of this is obvious as you can replace Lucene with Solr, but some were not so obvious to me and I had to do some research and ask for help. I highlighted the less obvious ones.

From this:

id=acme_widgetgroups_index” type=Sitecore.ContentSearch.LuceneProvider.LuceneIndex, Sitecore.ContentSearch.LuceneProvider>

To this:

id=acme_widgetgroups_index” type=Sitecore.ContentSearch.SolrProvider.SolrSearchIndex, Sitecore.ContentSearch.SolrProvider>

From this:


To this:


From this:

type=Sitecore.ContentSearch.FieldMap, Sitecore.ContentSearch>

To this:


From this:

<field fieldName=widgetfilters” storageType=YES” indexType=TOKENIZED” vectorType=NO” boost=1f” type=System.String” settingType=Sitecore.ContentSearch.LuceneProvider.LuceneSearchFieldConfiguration, Sitecore.ContentSearch.LuceneProvider />

To this:

<field fieldName=widgetfilters” returnType=string />

From this:

type=Sitecore.ContentSearch.LuceneProvider.LuceneDocumentBuilderOptions, Sitecore.ContentSearch.LuceneProvider>

To this:

type=Sitecore.ContentSearch.SolrProvider.SolrDocumentBuilderOptions, Sitecore.ContentSearch.SolrProvider>

I hope this helps you as you do your conversion. If you have any questions, feel free to ask.

#Sitecore Symposium Day 4 #SitecoreSYM @ParagonDev

Well final day is done and I am sitting at the airport. To say that I am truly blessed to have the opportunity to be part of the Sitecore Symposium is an understatement. I am so glad Paragon Consulting chose me to attend. I have a lot to learn about the new features of Sitecore, but that is my passion and I can’t wait to dive in. So just like the other posts here is my day in pictures.

I don’t do these pics ever, but I also don’t get this fancy because I am always coding.

It might not be web development, but there is a lot you can learn about marketing and utilize as you develop websites.

Did someone say headless? That is going to be so cool

Putting this here so I can actually read it.

Where is Rob?

There he is.

I always test my code. I am not kidding.

Well this had to finally come off, but I may still wear it from time to time.

See you next year?????

Sitecore Symposium Day 3 #SitecoreSYM @ParagonDev

In the city that never sleeps it was a great day from sunup to sunrise. I still can’t get over how awesome this event has been and how I look forward to the future with Sitecore. So here we go. My day in pictures.

First a run to start out the day. I ran into one of my coworkers and I followed her as she ran super-fast. Never thought I could run that fast feeling still full of last night’s dinner.

One of the best seminars I have heard about marketing. Lots of important information. We all have work to do.

This guy is hilarious. Always good to mix comedy with anything.

Keep on learning…

Thanks Paragon for providing lunch.

More learning. This time the Data Exchange Framework. My little area of expertise.

Scott Anderson Chief Marketing Officer of Sitecore. A big celebrity for us.

Mark Hamill is in the house. One of the greatest moments ever. What a great guy.

Finishing the night at the Omni.

Something you don’t see everyday.

On to day 4 and back home.

Sitecore Symposium Day 2 #SitecoreSYM #ParagonDev

I am writing this late at night. It has been a busy day. Some pictures below. Having an awesome day and learning and meeting so many in the Sitecore world.

A little early morning run to start the day.


My new developer running buddy from GeekHive.

Mark Frost CEO opening up the Sitecore Symposium.

A development track might be better than a running track.

Bloody Mary in the morning? Tomato juice and coffee go well together.

The Sitecore guru himself Kamruz.

Keep on learning.

I love dessert.

Sitecore Mints!!! My breath smelled like mints and great websites.

Keep on learning…

Paragon and our little microbrews.

Closeup because why not?

Dinner time. Italian family style.