15,302,857 members
Sign in
Email
Password
Forgot your password?
Sign in with
Search within:
Articles
Quick Answers
Messages
home
articles
Browse Topics
>
Latest Articles
Top Articles
Posting/Update Guidelines
Article Help Forum
Submit an article or tip
Import GitHub Project
Import your Blog
quick answers
Q&A
Ask a Question
View Unanswered Questions
View All Questions
View C# questions
View C++ questions
View Javascript questions
View Python questions
View Java questions
discussions
forums
CodeProject SenseAI
All Message Boards...
Application Lifecycle
>
Running a Business
Sales / Marketing
Collaboration / Beta Testing
Work Issues
Design and Architecture
Artificial Intelligence
ASP.NET
JavaScript
Internet of Things
C / C++ / MFC
>
ATL / WTL / STL
Managed C++/CLI
C#
Free Tools
Objective-C and Swift
Database
Hardware & Devices
>
System Admin
Hosting and Servers
Java
Linux Programming
.NET (Core and Framework)
Android
iOS
Mobile
WPF
Visual Basic
Web Development
Site Bugs / Suggestions
Spam and Abuse Watch
features
stuff
Competitions
Conferences
News
The Insider Newsletter
The Daily Build Newsletter
Newsletter archive
Surveys
CodeProject Stuff
community
lounge
Who's Who
Most Valuable Professionals
The Lounge
The CodeProject Blog
Where I Am: Member Photos
The Insider News
The Weird & The Wonderful
help
?
What is 'CodeProject'?
General FAQ
Ask a Question
Bugs and Suggestions
Article Help Forum
About Us
Artificial Intelligence
Artificial Intelligence
Neural Networks
Machine Learning
Deep Learning
ML.Net
Big Data
Data Science
Tensorflow
Internet of Things
Internet of Things
Arduino
Edge Device
Raspberry-Pi
Wearables
IoT Edge
Industrial IoT
DevOps
DevOps
Agile
Automation
Continuous Build
Continuous Delivery
Continuous Deployment
Continuous Integration
Deployment
Git
Installation
Integration Testing
Load Testing
Quality Assurance
TFS
Unit Testing
Testing
Containers
Containers
Docker
Kubernetes
Virtual Machine
High Performance Computing
High Performance Computing
GPU
Parallel Processing
Parallelization
Vectorization
Hosted Services
Hosted Services
Alibaba
AWS
Cordova
ExtJS
Google Cloud
Microservices
PhoneGap
Serverless
Storage
Web Hosting
WordPress
Azure
Security
Security
Blockchain
Cryptography
Encryption
Identity
Identity Server
Web Development
Web Development
Blazor
CSS3
Flask
HTML5
Kestrel
LESS
Nginx
Node.js
React
SCSS
Spring
Vue.js
ASP.NET
CSS
Apache
HTML
IIS
XHTML
Mobile Apps
Mobile Apps
Flutter
Ionic
iOS
Nativescript
React Native
Xamarin
Windows Mobile
Android
Desktop Programming
Desktop Programming
Cocoa
Electron
QT
Universal Windows Platform
X11
Windows Forms
ATL
MFC
Swing
Win32
WTL
WPF
XAML
System
Database Development
Database Development
Data Visualization
Elasticsearch
Lucene
MariaDB
MongoDB
NoSQL
PostgreSQL
Redis
MySQL
SQL Server
Productivity Apps and Services
Productivity Apps and Services
LibreOffice
OpenOffice
Sharepoint
Team Communication Tools
Biztalk
Microsoft Office
SAP
Game Development
Game Development
Doom
Kinect
Playstation 4
Playstation 5
Unity
Unreal
XBox
Multimedia
Multimedia
Audio
Image Processing
Video
Audio Video
DirectX
GDI
GDI+
OpenGL
General Programming
General Programming
Algorithms
Compression
Computational Geometry
Emulation
Exceptions
File
Internet
Localization
Memory Management
Optimization
Parser
Performance
Regular Expressions
Sorting
State Machines
Architecture
Design / Graphics
Printing
String
Threads
Usability
Programming Languages
Programming Languages
ASM
Bash
Basic
COBOL
Dart
Go
Haskell
Kotlin
Lua
Pascal
R
Razor
Rust
Scala
Swift
Typescript
Objective C
Visual Basic
VBScript
C++
C#
F#
FORTRAN
Java
Javascript
Perl
Python
Ruby
SQL
PHP
PowerShell
XML
Articles by Greg Utas (Articles: 13, Tip/Tricks: 2)
Articles: 13, Tip/Tricks: 2
Articles
Technical Blogs
Tips and Tricks
Reference Articles
Projects
Average article rating: 4.71
Best practices
The Software Rewrite
1 Nov 2020 Updated:
4 Mar 2022
Rating: 4.90/5 Votes: 23 Popularity: 6.68
Licence: GPL3 Views: 21,995
Bookmarked: 22
Downloaded: 0
Please
Sign up or sign in
to vote.
Open-heart surgery on your Big Ball of Mud
Design patterns
Software Techniques for Lemmings
10 Feb 2020 Updated:
17 Mar 2022
Rating: 4.92/5 Votes: 34 Popularity: 7.40
Licence: GPL3 Views: 63,427
Bookmarked: 37
Downloaded: 291
Please
Sign up or sign in
to vote.
Are we about to go over a cliff?
General Programming
Architecture
Robust C++: Initialization and Restarts
23 Dec 2019 Updated:
30 Mar 2022
Rating: 5.00/5 Votes: 17 Popularity: 6.02
Licence: GPL3 Views: 29,484
Bookmarked: 30
Downloaded: 450
Please
Sign up or sign in
to vote.
Structuring main() and quickly recovering from memory corruption
Debugging
Debugging Live Systems
4 Feb 2020 Updated:
10 Mar 2022
Rating: 5.00/5 Votes: 11 Popularity: 5.21
Licence: GPL3 Views: 28,829
Bookmarked: 23
Downloaded: 352
Please
Sign up or sign in
to vote.
No breakpoints or drooling all over the console!
Exceptions
Robust C++: Safety Net
28 Aug 2019 Updated:
3 Mar 2022
Rating: 4.99/5 Votes: 38 Popularity: 7.83
Licence: GPL3 Views: 78,946
Bookmarked: 79
Downloaded: 2,739
Please
Sign up or sign in
to vote.
Keeping a program running when it would otherwise abort
Memory Management
Robust C++: Object Pools
3 Sep 2019 Updated:
5 Mar 2022
Rating: 4.83/5 Votes: 17 Popularity: 5.94
Licence: GPL3 Views: 35,300
Bookmarked: 30
Downloaded: 460
Please
Sign up or sign in
to vote.
Recovering from memory leaks
Threads
Robust C++: P and V Considered Harmful
23 Sep 2019 Updated:
14 Mar 2022
Rating: 3.69/5 Votes: 24 Popularity: 5.10
Licence: GPL3 Views: 42,299
Bookmarked: 40
Downloaded: 259
Please
Sign up or sign in
to vote.
Cleaving the Gordian knot of thread safety
Usability
A Command Line Interface (CLI) Framework
2 Jun 2020 Updated:
9 Mar 2022
Rating: 5.00/5 Votes: 12 Popularity: 5.40
Licence: GPL3 Views: 28,080
Bookmarked: 39
Downloaded: 740
Please
Sign up or sign in
to vote.
Automating help, validating user input, running scripts...
Robust C++: Operational Aspects
28 Oct 2020 Updated:
15 Mar 2022
Rating: 5.00/5 Votes: 4 Popularity: 3.01
Licence: GPL3 Views: 7,795
Bookmarked: 10
Downloaded: 116
Please
Sign up or sign in
to vote.
The well-tempered server
Programming Languages
C++
A Template for Polymorphs
18 Jun 2020 Updated:
6 Jul 2020
Rating: 3.67/5 Votes: 2 Popularity: 1.10
Licence: GPL3 Views: 5,771
Bookmarked: 3
Downloaded: 67
Please
Sign up or sign in
to vote.
Registering and efficiently accessing polymorphic objects
Robust C++: Queue Templates
13 Jun 2020 Updated:
23 Jun 2020
Rating: 0.00/5 Votes: 0 Popularity: 0.00
Licence: GPL3 Views: 7,041
Bookmarked: 7
Downloaded: 110
Please
Sign up or sign in
to vote.
Implementing corruptible queues that don't manage memory
Robust C++: Singletons
22 Nov 2020 Updated:
25 Nov 2020
Rating: 4.50/5 Votes: 2 Popularity: 1.35
Licence: GPL3 Views: 6,228
Bookmarked: 4
Downloaded: 96
Please
Sign up or sign in
to vote.
Yet another article on this topic?!
A Static Analysis Tool for C++
7 Oct 2019 Updated:
8 Mar 2022
Rating: 4.99/5 Votes: 26 Popularity: 6.97
Licence: GPL3 Views: 84,386
Bookmarked: 88
Downloaded: 1,911
Please
Sign up or sign in
to vote.
Automating Scott Meyers' recommendations, cleaning up #include directives, and analyzing dependencies
Average blogs rating:
No blogs have been submitted.
Average tips rating: 4.15
A Wrapper for std::vector [Tip/Trick]
12 Jun 2020 Updated:
23 Jun 2020
Rating: 4.50/5 Votes: 2 Popularity: 1.35
Licence: GPL3 Views: 12,840
Bookmarked: 2
Downloaded: 113
Please
Sign up or sign in
to vote.
Replacing its erase() function
Adhering to a Silly Rule [Tip/Trick]
1 May 2021 Updated:
1 May 2021
Rating: 3.80/5 Votes: 6 Popularity: 2.96
Licence: CPOL Views: 4,070
Bookmarked: 0
Downloaded: 0
Please
Sign up or sign in
to vote.
A function may only return from its last line!
Average reference rating:
No reference articles have been posted.
Average project rating:
No projects have been posted.
Greg Utas
Architect
Canada
Author of
Robust Services Core
(GitHub) and
Robust Communications Software
(Wiley, 2005). Formerly Chief Software Architect of the core network servers that handle the calls in AT&T's wireless network.