Detect not well implemented C++ design patterns automatically.

Design patterns are solutions to software design problems you find again and again in real-world application development. Patterns are about reusable designs and interactions of objects. Some of them are very popular like singleton, factory, and strategy.  Others are not widely used like the flyweight pattern. Continue reading “Detect not well implemented C++ design patterns automatically.”

Chris Lattner: Revolutionizing the C++ World

Maybe almost all C++ developers know the LLVM infrastructure and the Clang compiler. But how many know that Chris Lattner is their creator when he was only 25 years old. How it’s possible? I remember when I was 25 years I spend my time to understand the C++ basics 🙂

The story begins with a thesis

In late 2000, Lattner joined the University of Illinois at Urbana-Champaign as a research assistant and M.Sc. student. While working with Vikram Adve, he designed and began implementing LLVM, an innovative infrastructure for optimizing compilers, which was the subject of his 2002 M.Sc. thesis. He completed his Ph.D. in 2005, researching new techniques for optimizing pointer-intensive programs and adding them to LLVM. Continue reading “Chris Lattner: Revolutionizing the C++ World”

Chasm Theory: Exploring C Longevity, C++ Rebirth & Python’s Rise

How many times do you read “C++ is dead” or “Is the C programming language still used?”, but in the reality they still very popular.

And how many times we read “WOW this newcomer programming language is the best”, but after few years nothing really happens and the new language decrease in popularity. However, there are some exceptions, the most interesting one is python which rise from a not widely used scripting language to a very popular programming language. Continue reading “Chasm Theory: Exploring C Longevity, C++ Rebirth & Python’s Rise”

Defensive programming with new C++ standards

Defensive programming is a form of defensive design intended to ensure the continuing function of a piece of software under unforeseen circumstances. Defensive programming practices are often used where high availability, safety or security is needed.

Defensive programming is an approach to improve software and source code, in terms of: Continue reading “Defensive programming with new C++ standards”

Microsoft CRT: Deep Dive into Task Scheduler

The Task Scheduler schedules and coordinates tasks at run time. A task is a unit of work that performs a specific job. The Task Scheduler manages the details that are related to efficiently scheduling tasks on computers that have multiple computing resources.

Windows OS provides a preemptive kernel-mode scheduler, it’s a round-robin, priority-based mechanism that gives every task exclusive access to a computing resource for a given time period, and then switches to another task.Although this mechanism provides fairness (every thread makes forward progress), it comes at some cost of efficiency.For example, many computation-intensive algorithms do not require fairness. Instead, it is important that related tasks finish in the least overall time. Cooperative scheduling enables an application to more efficiently schedule work. Continue reading “Microsoft CRT: Deep Dive into Task Scheduler”

Bill Gates Legend: 40 Years Since Basic for 6502

Let’s first comeback in the past and discover what Bill Gates was doing in his beginning, here’s from Wikipedia a brief story:

After Gates read the January 1975 issue of Popular Electronics, which demonstrated the Altair 8800, he contacted Micro Instrumentation and Telemetry Systems (MITS), the creators of the new microcomputer, to inform them that he and others were working on a BASIC interpreter for the platform. In reality, Gates and Allen did not have an Altair and had not written code for it; they merely wanted to gauge MITS’s interest. MITS president Ed Roberts agreed to meet them for a demo, and over the course of a few weeks they developed an Altair emulator that ran on a minicomputer, and then the BASIC interpreter. The demonstration, held at MITS’s offices in Albuquerque, was a success and resulted in a deal with MITS to distribute the interpreter as Altair BASIC. Paul Allen was hired into MITS, and Gates took a leave of absence from Harvard to work with Allen at MITS in Albuquerque in November 1975. They named their partnership “Micro-Soft” and had their first office located in Albuquerque. Within a year, the hyphen was dropped, and on November 26, 1976, the trade name “Microsoft” was registered with the Office of the Secretary of the State of New Mexico. Gates never returned to Harvard to complete his studies.

Continue reading “Bill Gates Legend: 40 Years Since Basic for 6502”

Track the quality evolution of your C++ code base.

Each developer wants to have a clean code, easily readable and maintainable and with a few issues and bugs. And there’s no magic solution to achieve this goal. Each company has its own best practices and coding rules and try to define a process to keep the code very clean.

It’s not an easy task to measure the code quality of a project, many tools provide their algorithms to evaluate it depending on many factors: Continue reading “Track the quality evolution of your C++ code base.”