By John Sonmez January 15, 2016

Eric Smith Makes Error Reporting A Breeze With Exceptionless

Eric Smith is the founder of CodeSmith Tools and CodeSmith Generator. I'm sure many software developers are just as excited as I am to have him as a guest on Simple Programmer. CodeSmith started out as a side project while Eric was working with a company. He ended up leaving that company but negotiated with them to get rights to sell it. To cut the long story short, he made a deal with them and the rest is history.

I've actually interviewed Eric on Get Up and Code awhile back, and we talked about CodeSmith and his inspiring weight loss transformation. He also talked a little bit about Exceptionless, a company he just started at the time.  I invited him again to do another interview and talk about it a bit more.

Check out my video interview with Eric Smith and the Q&A below that he put together especially for the site.

Q: Hello Eric, can you tell us a little about yourself?

 Eric Smith is the Founder and President of CodeSmith Tools. He is a die hard Buffalo Bills fan.

Eric Smith is the Owner of CodeSmith Tools, LLC. He is a die hard Buffalo Bills fan.

A:

My name is Eric Smith and I am the founder and president of CodeSmith Tools. I am married with two children and I am a tennis addict. I did an interview with you a while back about weight loss, and I have lost over 100 pounds eating better and playing tennis.

I am really passionate about software development and technology in general and I love building tools that help make our job as developers easier. I created a product called CodeSmith Generator a little over 10 years ago when .NET was first released. Since then I’ve helped create a few other products, one of them being an error reporting app called Exceptionless.

Q: What is Exceptionless?

A:

So the definition of the word exceptionless is “to be without exception”, and that is really what the goal of this project is. Exceptionless is a free, open source app that provides real-time error, feature, and log reporting for multiple platforms including .NET, Node, and client side JavaScript. The project originally started out as CodeSmith Insight a few years ago which included help desk functionality, but we decided to narrow our focus down to just error reporting since that was the part of CodeSmith Insight that people were most excited about. At the time there weren’t really any solutions for the .NET world and we wanted to do a better job of proactively fixing issues in our own CodeSmith Generator product as well as our websites.

Exceptionless pulls everything into a dashboard that organizes all of the events into neat stacks of actionable work items. It organizes things in a way that makes it easy for you to see which errors are affecting the most people so that you know exactly what issues to fix. It also gathers lots of contextual information about each error which helps make tracking the issue down much easier.

Simply put, it’s a tool for developers that makes their lives easier and their users happier!

Q: Why should developers be excited to use Exceptionless?

A:

As developers we always face tight deadlines and sometimes we are forced to launch applications before we are ready. Inevitably, this results in bugs. Sometimes we know about these bugs, but in most cases we wouldn’t even know about them until our users reported them to us. The biggest problem is that most users will just walk away in frustration and never report these issues to us. Not knowing that these issues are happening can be catastrophic to users confidence in the application and for commercial products it will definitely result in lost revenue.

I worked in the consulting field for many years and know how it is – and that’s why we built Exceptionless. So developers can innovate and let Exceptionless keep track of the errors and make it quick and painless to track them down and fix them. This leads to better applications, happier users, and more money!

I guess the question you have to ask yourself is: Do you want to stop losing users and money, be able to spend more time building instead of tracking down bugs, and in the process put out amazing products that just work – you know, that app that everyone loves? If so, then I would strongly encourage you to give Exceptionless a shot… there’s nothing to lose!

Q: How does Exceptionless compare to other similar services like Raygun and ELMAH?

There are certainly more choices today than there were a few years ago, especially for .NET developers. I’d say the biggest difference with Exceptionless is that we are completely open source under the very permissive Apache license and free to use if you want to host the service yourself. We provide paid hosting if you don’t want to manage it, but you are not locked in and can switch to hosting yourself at any time. We are just taking the approach of helping the community and trying to build up an open source project. If money comes from people using our hosting service, that’s great!

After that, the primary difference is that we are event based and you can send any type of event that you want in addition to errors you can send things like log messages, 404s, feature usages, and literally any other type of event that you want.

We also make it really easy to send any sort of custom data that you want with each event. For instance, you could include a complete cart object when an error happens during the checkout process of your website. We provide a really nice visualization of those custom objects and also make it easy to promote them to their own tabs to make them feel like 1st class data in the UI.

Another big thing that we provide is a project settings feature which allows you to set key value pairs that will be sync’d down to all the Exceptionless clients that are pointed to your project in close to real-time. This allows things like providing a config setting that controls the level of detail that each event contains. For instance, maybe you are having a problem with the checkout part of your website and you want to turn the logging level up. You could do that from the Exceptionless application and it would change the settings on all the clients and they could then send more detailed logging information. Once you figure out the problem, you can turn it back down. This mechanism isn’t limited to only being used for Exceptionless either, people are using it to control other aspects of their applications because it is so convenient to have real time configuration and the ability to easily change it remotely.

Q: What’s the best way to get started with Exceptionless?

A:

Getting started is really easy! Developers can set up an account and send their first event to the dashboard in minutes using our managed hosting service at exceptionless.com, or they can self host for free, which we have gone through great lengths to make as easy as possible.

Our primary GitHub repository holds the documentation wiki that has all the information a user needs, including step by step guides for the different clients, self hosting, and much more.

Q: Awesome, is there anything else you want to tell us about the project?

A:

Yeah well, once again, while building Exceptionless, we ran into problems building a loosely coupled scalable application that was just as easy to run locally as it is to run in the cloud. As we worked on solving that problem in Exceptionless, we decided to pull the core building blocks that we had created out of the Exceptionless project and create another new open source project called Foundatio.

Foundatio provides pluggable building blocks for things like caching, queues, locks, messaging, jobs, file storage, metrics, logging, and repositories.  Then we have various implementations including in memory (for local dev and testing), Redis, Azure, and Elasticsearch.

Q: Cool, but there are other options out there for all that – why Foundatio?

There are several problems we ran into that spurred the development of Foundatio. The biggest one being that there was nothing out there to abstract the core building blocks necessary for building scalable applications while not locking your application into a single cloud vendor and also being able to easily run the app locally or host it yourself outside of the cloud.

I love all of the new cloud services that are coming out and raising the abstraction level for building scalable apps and making it much easier to start a new businesses, but I don’t like the idea of being locked into one of them because our application is too coupled to that particular cloud service.

Q: Awesome! How can I get started with Exceptionless and Foundatio?

For Exceptionless, if you want us to handle the pain and expense of hosting the service for you, we offer free accounts and super painless signup at http://exceptionless.com. If you are interested in hosting the service yourself, we have worked hard to make it really easy for you and have extensive documentation on setting everything up. Just go to our GitHub repository and follow the instructions.

http://github.com/exceptionless/Exceptionless

For Foundatio, the easiest thing to do is to just install the Foundatio NuGet packages. We also have examples and documentation at the Foundatio GitHub repository.

https://github.com/exceptionless/Foundatio

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."