Create a C++ UI – Communication and Data Exchange [4/24]

Many thousands of programs exist that have zero, zilch to do with a communications network. A common example is most calculator programs built into desktop operating systems from 1980 – 2018 do not access the network. The further back you go towards 1980 the more programs you will see that do not have network capabilities. Another example, would be the main character and symbols program built into most desktop operating systems during the same time frame. Eventually, these may be changed to rely on the network, but for now, their functionality is fine without it. Most programs that you may interested in writing will rely on the network. In many cases, networked programs do not really do anything meaningful without network functionality or a good network connection. The way your program accesses the network and exchanges data over the network has a huge impact on how the program operates. Continue reading


Create a C++ UI – Program Flow [3/24]

Inputs and outputs will be chained together in a program to take data from a given source and translate that data into the same or different data at a specific destination. Never let the enormity of that task dissuade you from defining the program flow. A good flow is not defined all at once anyway, but in little chunks. Each chunk works with another chunk until the combined interaction forms a complete program. However, it is very useful to have an internal mental sense of what the chunks will be and how they will relate. While data is the major ingredient you are moving through a program, the means to do so involves itty bitty steps linked together. Those itty bitty steps is what is called programming statements. Continue reading

Create a C++ UI – Data Flow [2/24]

A system is fundamentally about changing data. Data exists in a specific location. You access a copy of data from the place it is in and do a “minimum” of 2 to 4 operations on that data. Apply the same [1] or different data [2] to the same [3] place. Apply the same [1] or different [2] data to another [4] place. You do not have to know, in the beginning, every single operation on the data. Instead, your goal is to know where you must start and what the end state looks like. The effort is making the end state a reality. The series of articles will assist you in building a UI using C++. They accomplish this by guiding you through the process with some examples of the details involved.

Throughout this C++ UI series, the concepts described are expressed through an actual software application called Gautier RSS. It is a program that shows the latest news on your screen by translating an RSS news feed into a visual representation. The program was made possible, in part, by observing that many news websites publish news data in the form of XML data you can translate into a convenient visual presentation. The Gautier RSS program achieves this. Reviewing how it is built will show you how to build a UI application in C++.

The “core process” stated here applies to video games, business software, industrial systems, content delivery apps, and systems in general. An RSS feed can be likened to a database in the case of business software in which case the RSS feed is like a database and part of the engine is like a data access component. The difference is there are granular details involved in relational databases and associated data access components that differ quite a bit from accessing an RSS feed and managing it as files. As such, the examples will emphasize general concepts more than the nitty-gritty of how those concepts are reflected in the example software application.

Implied in the discussion is the role of pencil and paper. Many great digital tools exist to draw diagrams and at times they may be useful. However, you may find pencil and paper highly accessible and more conducive to freely expressing your thoughts before committing to them in a digital diagram format. Any diagram you make does not have to be highly refined or a work of art, but can be a scribbling that you understand. The diagram, however coarse or refined connects your mind more to the reality of how the data will flow from its origin to its destination. Continue reading

Create a C++ UI – The System Exists in Your Mind [1/24]

The title of this section sounds esoteric does it not? Yet, it is true. Do not be rigidly mechanical when creating systems. Instead, be a genuine person as each system is not exactly the same as any other. You bring your own individuality, life experience, and sense of how things should really work to every systems creation effort. Achieve better designs and implementations by better harnessing your insights, intuition, and a deep sense of how parts relate, flow, and interact.

The situation also exists in your mind. A system only awakens from a computer. Afterwards, it is immediately a part of the lives of the people who use it, depend on it, and rely on it to improve on the situation. When people use your system, it becomes part of them and in turn, they bring to it, their sense of how things work, their preferred way of working, and natural flow when interacting devices and information. As people start interacting with a system, the combination of people or organization and the computer mechanisms defines an actual system. Often, both (or the trio of people, company, and machine) must work in tandem to achieve useful results.

A better and more holistic design emerges when you can see a more complete interaction within the system and with the situation. Seeing how the system operates at various levels and how it is defined by and affects the situation increases your design depth and breadth. A more consistent design throughout the interior and exterior areas of the computer system then makes it a more suitable tool for the situation. The outcomes possible with this design is usually greater and better than when the design and implementation of the system is less aligned to the situation. Continue reading

The Right to Repair Your Gadgets

When you purchase digital-based hardware, you should have the unlimited ability to change that hardware or repurpose it. Techcrunch reports that U.S. Copyright Law has been temporarily updated to allow you to make more changes to digital-based hardware you purchase. You now have more latitude with phones, smart home gear, and cars. Although the increased freedom expires in 3 years, it is hoped that one day the changes will become permanent and freedom rather than excessive restriction becomes the default when it comes to digital-based hardware and software. What can we say for sure? What I can say for certain is this will be a big boost to economic activity at a local level and encourage more start-ups that build, support, and enhance technology.

IBM Red Hat Solidifies the Open Source Business Model

A major commercial endorsement for Red Hat and open source operating systems in general. First, we had the wave of acquisitions involving SUSE Linux, and now, IBM acquires Red Hat. The best part of the news is that the North Carolina outfit will continue to operate as usual. The deal fully unites the Red Hat brand with IBM and situates IBM as the company of choice when it comes to open source services and hardware to run it. Continue reading

China’s ByteDance Investment Surge Shows Real Interest in New Readers

Okay, so I have been working on a news reader as a private concern for several years at a time when I thought they went out of style. I still preferred new readers over manually visiting websites and swimming through a sea of images to find interesting information. It seemed news readers were a thing of the past, but I still found the approach better. So I built one and was satisfied that I had a tool that worked well on Linux. However, it seems feed readers are not out of style, they have simply evolved. Continue reading