gwmnxnp_516a
Joined 5 years ago
Joined 5 years ago
Most applications just pick Windows win32 API or MacOSX and forgets about everything else and are never released for Linux or other Unices, unless the application uses electron, Qt with C++, Qt with Python or Java SWING like JetBrains IDEA IDE family. The main problem of Linux desktop is the lack of a high level graphics library toolkit with a stable API, ABI and a C interface that does not introduce breaking changes on every release. Unlike Gtk, Qt is more stable, but it lacks a C API and C++ has a fragile ABI not friendly to foreign-function interface or cross-language linking.
The following design patterns are widely used with graphical user interfaces: observer-design pattern; model-view-controller; model-view-presentation; two-way-data binding; property binding; command design pattern; and composite design patterns for representing a collection of objects as single object.
For understanding event loop it may be much easier to implement a Xterm or VT100 keyboard-driven terminal user interface TUI since this does not requiring dealing with too many backends.
The raise of money supply is not be the only cause of CPI and raise of cost of living as supply and demand problems around the world may also increase the CPI. For instance, we also should remember that we have faced several unexpected black swans, such as the pandemic; supply chain shutdown around the world, specially in Asia, that the West has become too dependent on; massive flooding in China what prompted the country to hoard grains; massive droughts in USA (California) and south of Brazil, both countries accounts for great deal of the world's food production; and finally the current war in Europe reduced the amount of natural gas, crude oil supply, fertilizers and wheat in the global market. Both countries involved in the current war accounts for about 1/3 of the world wheat production. Too much foreign dependency can also affect the CPI, since any currency devaluation against the dollar increases the price of everything if the country does not produces enough food to cover its needs like Lebanon.
A reason for using Cmake is that this build system's CMakeLists.txt also works like a universal IDE-agnostic project file that saves the user from wasting time tinkering IDEs and lots of XML files in the case of Visual Studio MSBUILD building system.
Another suitable mitigation strategy may be lock dependencies version or switch to other programming languages with a proper standard library and limited number of packages where one can at least audit the code.
Another advantage of CMake over Meson is that CMake is Turing-complete, supports user-defined functions and macros, and has capabilities to download other packages and sub-projects by itself. It is also worth mentioning the CMake ability to deal cross-platform annoyances such as, exporting DLL symbols, making symbols private, installing to a directory, compiling resources on Windows and so on.
A reason, for not using docker would be when using any application written in Go (Golang) since Go static links almost everything and does not even rely on Linux GlibC (GNU C library), so an application built with Golan can even run in old distributions.
In this article John Rehger makes the case for GOTO - https://blog.regehr.org/archives/894.
Busybox is meant to be used in embedded Linux systems, often found in routers, printers, cameras and etc. In those systems every megabyte of flash memory counts and every cost counts. Busybox (GPL license) encapsulates the whole non graphics userland in a single binary. An non-GPL alternative to it is Toybox which is used on Android since this tool has BSD license. Alpine distro was also designed for embedded systems, but it is now being used in containers due to the distro small footprint.
ARM is the Microsft of the semiconductor world. The company design and licenses CPU cores for several market segments, including: ARM cortex-M series cores intended for MCU - microcontrollers SOC (System-On-Chip); CPU-cores intended for embedded systems processors (MPU) such as ARM-Cortex-A series intended for embedded systems and mobile devices. And there are also ARM cores designed for servers, for instance A64FX Fujitsu chip that powers the Japanese supercomputer Fugaku, until now the fastest in the world. ARM cores highly customized with microarchitecture, such as Apple M1 and some Samsung ARM chips, are designed under architecture license.
A MCU is a self-contained chip containing up to 1MB of RAM, Flash memory up to 1 MB for the firmware; and several other peripherals such as digital IO, analog-to-digital converter, UART RS232 and so on. They are not comparable to Intel chips. MCUs are used in keyboards, mouses, car engine control unit, toys, home appliances and so on. The difference between the cores intended for MCUs and cores intended for MPUs is that cores for MPUs need external flash memory chips and external RAM memory. MPU chips and also they contains MMU - memory management unit for supporting virtual memory and operating systems that need this feature, such as iOS, Windows CE, Linux, BSD and etc.
Here some similar case: