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.
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.
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.
When I travel to conferences or workshop I have a whole heap of cables, adapters, and tools that I use on my trips and in my everyday working life. When I upgraded my everyday carry bag to the Peak Design Everyday Backpack, I also became aware of the Peak Design Tech Pouch.
In the following video, I do a review and an unpacking of my kit to show you how much space is in this tech pouch.
For a few years I have been searching for the idea laptop bag and everyday carry mobile office. I have wanted something strong, stylist, and robust enough to service lots of travelling on trains and planes. I have tried many bags that almost fit the bill, but they all seem to fall short. That is until I discovered the Peak Design 30L Everyday Backpack.
I have recorded a video review that contains all my thoughts on this bag, but essentially I have found my perfect bag. It isn’t a cheap bag by any stretch, but it fits the bill perfectly and feels like it will last for years to come.
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.
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.
A few weeks ago, I was awarded the Microsoft MVP award. The MVP award is recognition for the community work I perform in teaching people about different software development subjects using Microsoft tools, such as .NET and Azure.
To get the award, I had to be nominated by another MVP. Once the nomination happened, I was invited onto a website where I had to detail everything I had done community wise over the past 12 months. My community contributions include user group and conference talks, open-source contributions, free workshops, and co-running a software development user-group.
It is a big honour to receive the award, and I am very grateful to be nominated and to receive it. Recipients of the award get many benefits, including access to all Microsoft software to use for free, credits to use towards our Azure subscriptions, access to training through Linkedin Learning, Xamarin University, and many other benefits. We also get a beautiful glass statue award and a framed certificate to display in our offices. The one advantage I am looking forward to, though, is attending the MVP Summit at the Microsoft Campus in Redmond next March. At the summit, all the MVPs get together, and Microsoft tells us what they are working on. Because of this, we have to sign a Non-Disclosure Agreement so that we don’t release any information early. It’s great that we get to see what’s coming and have some feedback into the process by talking directly to the teams building the software.
On my daughter’s request, I made a YouTube unboxing video of the award. According to her, as a 10-year-old YouTube expert, no-one reads blogs, and I need to do an unboxing video. You can see above if you are interested in seeing what comes in the award box.
MVP awards are reassessed every year. To keep getting the award benefits, I have to continue doing what I am doing by helping people in the software development community. I think this should be easy to do as I love teaching people. I feel I have always had a skill for taking complex subjects and making them easy to understand, which is why I do well-produced training for Pluralsight.
Motivation is not an easy topic for most people. In this day and age, procrastination runs rampant on the streets of society. We are raised to believe that the most natural path is the one that we should take and that we should use whatever means necessary to get the job done the quickest. However, what happened to the right way of doing things? What happened to our self-motivation?
It is all too easy to get caught up in the fast-paced lifestyle that we live in today, and we often forget to ask ourselves the most straightforward questions. Why are we here? What are we doing with our lives? Are we enjoying the path that we are currently on?
I want to help guide you toward those answers, but to do so I need you to tap into what is known as your “Locus of Control.” Your locus of control is merely defined as
“the capacity to which you believe you have complete control and power over what happens to you in your life.”
In layman’s terms, do you think that you have much, if any, effect on what happens in your life?
Julian Rotter is the psychologist who first came up with the term as he believed that a person’s locus of control varied by the individual. As Rotter hypothesized in his theory, the locus of control could occur on either an external spectrum or an internal one, and each person fell somewhere on that spectrum. Depending on where you find yourself on this spectrum of locus of control, your behaviors to your external environment will differ.
Four years ago, my friend and I got leadership jobs in the same international company. The work was interesting and paid well. Often, our immediate boss appointed my friend to lead us in departmental tasks. My friend didn’t like that and complained about the responsibilities she’d been given, though she received praise for her work.
Nevertheless, my friend continued to insist that she was unhappy with the work, and even went so far as to say that she thought her leadership was a fraud and would be noticed one day. She claimed that some of us were more qualified and therefore should be doing the work instead. One time, she actually asked our boss, point blank, to remove her from a leadership role, stating that she didn’t feel qualified to lead this particular team. That very move, acknowledging her weaknesses, made her a leader in many eyes, but she still didn’t see it. She just wasn’t aware of her competent leadership and result-oriented management.
For one particular task, my friend did endless research and spent hours coming up with strategies. On consecutive mornings, we would find her in the office, compiling presentations. That moment spurred me to do some research and learn more about her mindset. What was driving her to think this way? Maybe I could help her learn to feel more self-confident in her abilities.
What I found was fascinating! I stumbled upon a psychological problem known as “Imposter Syndrome.” I studied various types, as well as strategies on how to overcome it. Later, I shared all my results with my friend and she had a significant breakthrough, learning to own her abilities and putting them to good use which much less fear.The following post details the information found during my research. I believe that the post here will go a long way to helping you better understand Imposter Syndrome. Furthermore, you will understand how it appears in different personality types and will learn how to cope with it.
After a year of writing, reviewing and editing, I am pleased to announce that my first book for a traditional publisher, Applied Cryptography in .NET and Azure Key Vault has now been released. It has been an exciting journey writing for APress, and the experience was excellent. You sometimes hear bad stories of working with traditional publishers, but I am glad to say this wasn’t the case for me.
The journey for me started at NDC Oslo in 2017 where I was introduced an acquisition editor for APress. We got talking, and I suggested an idea for a book which I then formally pitched. After the pitch was accepted, I then signed the contract and agreed on a schedule for the first three chapters. To get a good start on the book, I decided to take a little writing holiday to Whitby where I could lock myself away near beautiful surroundings and make a start on drafting the first three chapters. I have always liked the idea of going on a short holiday to write, so this was helping to realize a small dream. I locked myself away for four days and managed to write the first draft for these chapters, and I was then joined by my wife and kids to spend a long weekend in Whitby. I submitted the three chapters to APress and waiting for them to be approved. Thankfully they were, and we agreed on a schedule to write the rest of the book.
I spent the majority of 2018 drafting the rest of the book and finished the first draft towards the end of October. If I was to work on the book full time, I really could have written it in two to three months, but because I have no idea how well the book will sell, or how much I can make from it, I decided to spread the work out while continuing to write courses for Pluralsight.
Once the first draft had been completed, the book was peer-reviewed; which involved an independent developer reading the book and checking it was accurate, made sense and the examples work. As each chapter was reviewed, I had to address any comments or concerns. I thought this part of the process would be difficult, but luckily I didn’t have to change much. Once peer review had finished the book went to be copy edited. At this point, I asked my friend Troy Hunt to write the foreward where he discusses data breaches. The book was officially finished at the end of January where it was then typeset and sent for printing.
Although I have self-published a lot of books, it has always been a dream to write a book for a traditional publisher, and now that dream has been realized. I have been asked several times if I will write another book like this. At the moment, I am not sure. I enjoyed the process, but I need to see how this book performs first. If it does well, then hopefully I can extend the book into a second edition. As for a new book, I have a few ideas, but I will wait until later in the year to decide.
The book is available from most online book retailers as well as traditional bookshops.
Earlier in the year I did a live Pluralsight webinar to about 700 people talking about what a Blockchain is? Why you would want to use one? The differences between a Blockchain and a Database and other interesting facts about the technology.
The recording of that Webinar is now available to watch on YouTube.
If you are interested in learning more about Blockchain from either a high level executive briefing standpoint or more as a software developer and architect, then I have the following courses available at Pluralsight.
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
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.