Category: Coding

Extending the Profanity Detector

In my previous article, I talked about a simple profanity detector that I opened sourced on GitHub. Since launching that code example I have had a lot of people get in touch with some suggestions for new features as they wanted to make use of the library. There were some really good suggestions, so I have implemented them all. In this post, I will walk through what was requested and what I have added to the library.

Profanity Detector by Stephen Haunts on Github.

Using the Library via Nuget

The first suggestion was to have NuGet support for the library as some people don’t want to clone repositories and deal with the source directly, so I have made the compiled Profanity Detector library available.

Profanity Detector library by Stephen Haunts available for .NET developers on NuGet.

You can include the library directly from your package manager in Visual Studio, Visual Studio for Mac, VS Core, or Rider. The documentation for using the library is available on the Profanity Detector GitHub page.

Detecting Profanity in Users Input

Since writing this post, I have had many great feature suggestions for the Profanity Detector. I have implemented all the suggestions I have received and written another blog post about it. You can read the 2nd post here.

On several projects that I have worked on, we have had a requirement to detect profanity in users input. This includes things like general swear words, sexual acts, racial slurs, and sexist slurs, etc. Over the years, I have built a pretty comprehensive list of these profanities used for the detection process. The list has been built from combining lists I found on the internet. The lists are allegedly used by a lot of the large social networks in their profanity detection; although I can’t verify that.

Profanity detector on GitHub by Stephen Haunts

My profanity detector is on GitHub, and released under an MIT license, so it is free for anyone to use and modify. The main list of profanities can be found in the ProfanityList.cs file. If you are easily offended and a bit sensitive to language then I recommend you DO NOT open that file. It contains some pretty gross language, but to detect the language, you need to be able to define it.

New Courses at Puralsight

I have been very busy recently making new courses for Pluralsight and I am delighted to say I have just released two of them over the past week. The first course is called, Executive Briefing: State of Blockchain. This couse is a little different to the normal content on Pluralsight in that it is a short filmed course as opposed to screen casts and demos. 

The idea of this course is to teach information to tech leaders and C level execs quickly as they won’t normally have time to sit and watch long courses. My course is all about blockchain where I talk about what it is, why you would need it, potential use cases. I also run through a matrix of questions about whether a blockchai is suitable for your company and the key differences between a blockchain and a database.

This course was good fun to produce as I had to setup all the lighting and camera myself aswell as record good audio. This is much harder than you think with getting the lighting right to reduce glare from the computer screen and my glasses. I am really pleased with the results though.

Asynchronous Messaging with RabbitMQ and EasyNetQ

Accessing Rabbit MQ from .NET Core on the Apple Mac

The second course I have released this week is a more traditional Pluralsight course called, Asynchronous Messaging with RabbitMQ and EasyNetQ. This course is about the RabbitMQ messaging platform and how to use it with the EasyNetQ client library. The course is aimed at C# developers using .NET Core or the .NET Framework, and it will get them up and running and productive very quickly as it is very demo focused. 

This course works as a great companion to my other course, RabbitMQ by Example, which builds up the same sample application scenario but using the much more complicated RabbitMQ client library. If you want to compare the default client library to the EasyNetQ client library, then both courses will give you that information. If you just want to make your life easier and go straight to EasyNetQ, then this course contains everything you need. 

Life at a Startup : Building a Startup

I have been nice and busy since leaving Buying Butler and RightIndem. Along with my co-founder, we are setting up a new FinTech startup called Ladder Pay. LadderPay is an innovative payment platform that unifies Business to Business, Business to Consumer, and Consumer to Business payments into one product with an emphasis on security and compliance backed by blockchain technology. I can’t write too much about it just yet as we are still working through a lot of details, but I am very excited about it. We have 3 potential customers who will use the platform first, so we are getting things ready for that.

LadderPay : Unifying Payments
LadderPay: Unifying Payments

My main role at the moment has been developing the backend platform so I have been spending most of my time coding, which has been really nice to get back into full-time. The product is being developed in Microsofts .NET Core 2 platform and deployed onto Microsoft Azure. I will write more about this in the future, it’s a little too early to reveal too much at the moment.

Working from home on LadderPay
Working from home on LadderPay

I am mostly working from home on this at the moment, but we are looking for an office to work from. We have found a place we like, but are still sorting through the details. I always found working from home difficult, but since working on LadderPay, I have set up in my dining room and have a really nice setup which is nice on a sunny day as I can open the doors to the garden, so I am really enjoying this at the moment.

Whilst I am doing LadderPay during the day, I am also continuing on my Pluralsight courses in the evening. I have signed up for a new course that is all about the algorithms that are used to build up blockchain. A challenging but very interesting course. I can’t wait to share more details.

I will share more details soon…

Life at a Start-up : Exploring the Microsoft HoloLens

Over the last week we have been working on something quite exciting. At BuyingButler and RightIndem we pride ourselves on being a very technology focused company, and we love looking to see where we can use the latest technology to solve real problems. We have been doing just that with Microsoft new HoloLens Mixed Reality headset.

On Thursday 12th Jan 2017 we had a good friend and fellow Pluralsight author Lars Klint fly over to the UK for the NDC London conference. Before the conference he came up to Nottingham  for a couple of days to work with us around some use cases for the Hololens for RightIndem. I can’t discuss what those use cases are at the moment openly, but they are quite exciting and complement one of our project modules nicely.

If you would like Lars to run a workshop for your company, you can see the details on his workshops page. I highly recommend him for the Hololens workshop or his Winning at Life workshop.

First though, what is the HoloLens. Below is the brief description taken from the HoloLens website.

Microsoft HoloLens is the first self-contained, holographic computer, enabling you to engage with your digital content and interact with holograms in the world around you.

When wearing the headset, you still have an unrestricted view of your surroundings, but you also see holograms that are placed in the room that you can only see with the HoloLens attached. These holograms are aware of their surroundings and can be placed on walls and tables. This is achieved by the HoloLens doing spatial mapping of the environment around it. You can then interact with these holograms directly whilst walking around your environment.

The HoloLens is a Windows 10 device which is untethered, which means you do not need a cable running between the headset and a powerful computer like you do with a Virtual Reality headset like the Oculus Rift.

Lars Klint Demonstrating the HoloLens
Lars Klint Demonstrating the HoloLens

With Lars visiting our offices we had 2 goals to achieve over 2 days. On the first day Lars facilitated a brain storming session with myself and the rest of the companies management team. We already had some ideas of where the HoloLens could be applied, but the purpose of this session was to work through different ideas and walk away with a rough plan for a series of minimum viable products we could build. This session went very well, and everyone involved had the opportunity to try the HoloLens for a good amount of time. This was important as people need to understand what the experience feels like in order to understand the constraints posed. Off the back of the session we have an idea for 2 technical spikes we want to try and a prototype product to build with it. The cool thing is, we already have a company we are talking too about partnering with us to deliver a HoloLens solution.

My Cryptography Talk at NDC London

The Video recording of my talk at NDC London is now available to watch on-line. This was my first major conference so it was a little scary, but I really enjoyed the experience. The room was about 2 thirds full and I got an excellent speaker rating at the end so I must have done something right.

%d bloggers like this: