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.
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.
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  or different data  to the same  place. Apply the same  or different  data to another  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.
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.
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.
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.
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.
The Atlantic has a thought provoking article about the possibility of Black people getting really good tech jobs in Atlanta and possibly throughout the United States. It talks about the possibility that if Amazon places a headquarters in Atlanta, that will not make a big difference in Black people advancing in information technology. The summary of the article is that due to a few factors, one cannot expect Blacks to be as successful in computers as others. I think the article is correct and I will explain why.
You really should see the comments to the story about, “Rockstar developers speak out about 100-hours work week comment”. The universal sentiment is intense work hours is a problem in the video game software development arena. You will also find that situation in other software development situations besides those involving video games. The hours can be intense and the burnout can be quick and chastening. I looked through the comments and I could relate so well to many of them that I experienced not shock but humor. Everyone’s favorite was mine too in which the person quoted that the extra time was due to the immense pride a person takes in their work and not outside pressure and such obligation to quality can be a powerful motivator. The author of that comment then responds to that quote in which he lays out that certainly the commitment to avoid being replaced by others pushing hard to get into the video game industry can’t be the true motivator can it?
Yes, there is a company named Rockstar that make video games. However, the term “Rockstar developer” is widespread in software development. True, people do criticize them and others avoid them like the plague and in many instances, they are overused and under-resourced but on balance, people who are legitimately in this category provide a valuable input to the process. Also known as 10x developers, these are persons who, in the best circumstances, can greatly enhance a team. However, in less optimal situations they are a mixed blessing. On the one hand, they can be a much needed bandage but on the other, they become a crutch that serves as a barrier to overall team growth. In many cases, the cost is burn out as described in the article, ‘Red Dead Redemption 2’ Raises Questions of Dev Burnout. Again, although that article lays out the concern in the context of video games, it is not limited to that arena but is present in other types of software development as well.
It was good to hear that Linus Torvalds is Back in Charge of Linux and it appears he returns to Linux development with new code of conduct in place. The emphasis on constructive dialog is a positive one and sets a great example for people in the future. Following that, Richard Stallman announced Kind Communication Guidelines. People were entertained by the communication modes of the past few years and the way conflicts were expressed did make for sensational headlines that also carried nuggets of truth for there were definitely reasons for the intense expressions of dissent. However, this is a good turning point in open source to see the leaders of that arena foster higher quality engagement that has a better chance of cultivating a better digital technology ecosystem.
Finally …. (I know I am a week late to the news) … Microsoft joins OIN and that is huge. The time has come for others to consider this path. A huge future in services (done the right and ethical way) is possible. An open platform plays a significant part towards making this work. A beneficial transformation is at work.
Five abstraction levels exist to define a GUI and your choice is to choose one of them. Each level has pros and cons to affect the process to create a UI, the effort involved, and the quality of the final result. The levels mentioned are not the only levels in the graphics output ecosystem but represent the moss common choices available. A given level may be more useful in certain situations than others but each level provides useful capabilities in creating GUIs, videos, photo apps, reports, and various kinds of image recognition and visualization solutions.
The most fundamental API for creating GUIs in most operating systems capable of such things is defined in the C language. A great example of how C can be used to create GUIs is presented in Charles Petzold’s book, Programming Windows. I read the 5th edition of that book nearly 10 years ago and that edition is the 10th anniversary edition. The original version of that book published in 1988 dates to about 3 years after the official release of Microsoft Windows. After reading that book I nearly a decade ago, I understood how granular, detailed, and intense an exercise it can be to build a GUI using some of the most core building blocks available.
A digital computer user interface goes by several terms or acronyms: GUI, UI, UX, HUI, forms, screens, CRUD screens, user interface, interactive screen, page, rich client, thick client, thin client, smart client, rich interactive client, and that most lauded phrase – user experience. Despite the variation in terminology, all them have in common applied geometry. A sequence of planar forms that make information more accessible to people using computing devices such as laptops, hand-held mobile computers, and wearable computers such as smart watches.
It is about time. The 9th Gen Intel will feature octa-core chips. What would be nice is to see true mitigations for Spectre flaws from the last 20+ years, but aside from that, these will be some very nice chips indeed. The competition offered from AMD is good. I hear they have a 24-core chip. This is great!
Google today has among the largest concentration of top-tier software developers and technologists. Given that, the leak of 500,000 users’ data may come as a surprise. The lesson is it does not matter how smart people are who build technology solutions or put digital environments in place. Mistakes will happen. That is why it is probably best practice to decide carefully what should be in a digital form exposed to the Internet versus what would best be left to conventional, none-digital form. No smart individual or group can guarantee a secure digital solution for the duration of your lifetime. In this case, it happened less than 6 years after the launch of a high-profile digital service. Not the first platform to be compromised and it will not be the last.
A computing device takes many forms these days. Although the focus in business computing tends to be on the big 2 of UI and CLI, the wider reality involves more than text-based interfaces and graphical screens. Operations in a computer can be expressed multiple ways. The following are but a few:
- Tactile feedback (i.e. vibrations or other physical oscillations)
- Text-based interface (aka command-line, cli, and other names)
- Sounds (whistles, chirps, and chimes among others), audio feedback and/or voice interaction
- Direct neural interaction
- Aerial, bodily, facial, or direct touch tactile gestures
- Mechanical imprint (keyboard, stylus, mouse, and punch cards) and printed responses
- Image recognition (i.e. input into computer through digital image scanning) using cameras/sensors
- Graphical user interfaces
Mobile phones for example encompass many of these input/output capabilities in a practical format. A variety of devices will emerge over time based on the principle of computation that will incorporate more input/output dimensions in a holistic form. One day, a digital bracelet may come to embody such function and this digital bracelet or ring you wear on your finger or band worn on the head may allow you to apply computation more effortlessly. That is a big maybe, but the above modes of operation and more will be continuously pursued in a universal computation device.