HNHacker News
TopNewBestAskShowJobs

gwmnxnp_516a

31 karma · joined April 28, 2021

submissionscomments
gwmnxnp_516a··on Linus Torvalds on why desktop Linux sucks (2014)
One of the greatest problems of desktop Linux is the huge fragmentation. Linux desktop has fewer users than MacOSX and Windows, and lots of distributions, each one with a different packaging methods and incompatible dependencies which may result in work duplication and dependency hell, that can happen if one needs to install an application outside of repository, but it needs a dependency that overrides an already installed library. Other problems of Linux distributions is that they not allow keeping multiple versions of the same application and multiple versions of the same compiler. The packaging issue is not relevant for people using Linux as server due to Docker, that can package any application alongside the configuration, dynamic linker, GlibC and shared libraries.

Another reason why is hard to find binaries for Linux is the lack GlibC backward compatibility. Even a fully statically linked application or packaged with all shared libraries dependencies via LD_LIBRARY_PATH or RPATH may crash if the application was linked against a newer version of GLIBC and is deployed on an Linux distro with an older version of GLIBC. The linking error happens due to the lack of backward compatibility of the GLibC, which is the main bridge between the user-space and kernel-space on Linux.

A possible solution for packaging an application for multiple distribution with minimal work duplication might be: 1 - minimize the number of dependencies; 2 - static link as much as possible; 3 - instead of linking directly against shared libraries such as Curl, Gtk or SSL, load those libraries through dlopen(), dlsym() Unix APIs; 4 - build the application on distro or docker containing an older version of GlibC for dealing with GlibC compatibility problems; 5 - pack all shared libraries dependencies on the same directory as the application setting RPATH to a relative path to the shared libraries dependencies; 6 - embed all files additional non-source files such as images or text in the binary using resource compilation; 7 - distribute the application in a zipped archive; 8 - use GO (Golang) which is able to static link almost all dependencies and also bypass the GlibC by performing system calls directly. A golang binary will just run everywhere with minimal effort.

Linux distributions could make the developers life easier if they copied the MacOSX app bundle idea where applications are distributed as <APPLICATION-NAME>.app directories containing metadata, the executable and all shared libraries dependencies. The advantage of this approach, is that the application can be installed by just dragging and dropping a folder to the /Applications directory and uninstalled by just deleting a directory. Another benefit is that the user can keep multiple versions of same application and not fear dependency hell or overriding a previously-installed library.

gwmnxnp_516a··on The U.S. military takes UFOs seriously. Why doesn't Silicon Valley or academia?
Surely there may be life outside elsewhere on the universe, but the problem is the size of universe and the limit of speed of light, even for a signal (radio wave - electromagnetic wave), that travels at light speed, sent from Mars to Earth by some Nasa device, there is a delay of more than 5 minutes! So if any form of advanced life send a signal to us, from the nearest galaxy, it will take more than 25 thousands years to arrive. That is the reason why is pretty unlikely that anyone in our life time will ever see an UFO or contact an UFO or extra terrestrial entity.
gwmnxnp_516a··on The U.S. military takes UFOs seriously. Why doesn't Silicon Valley or academia?
Well, there has been cases where ball lighting phenomena, was misidentified as UFO. (https://en.wikipedia.org/wiki/Ball_lightning). What I wanted to say is that based on current known physical laws, it would take an imaginable time for anything from other galaxy to arrive to earth. Unless someone proves that the physical laws are wrong or any life from other galaxy is capable of living more than thousands of years.
gwmnxnp_516a··on Can you become a firmware engineer(embedded software engineer) through bootcamp?
Pretty unlikely, firmware development is programming for controlling a machine, that can be a industrial machine, toy, a car, a car ECU (Engine Control Unit), a drone or parts of an aircraft. Embedded systems involves bare metal C or C++ programming, RTOS (Real Time Operating Systems), embedded Linux, assembly, electronics, micro-controllers, application processors, DSPs - Digital Signal Processors, ARM core, SOC peripherals (ADC, SPI, I2C, PWM ...), control systems, Matlab Simulink toolboxes. Most companies that deals with embedded systems are not startups or tech companies, they are manufacturing companies from several fields, such as home appliances, radio equipment or car makers. That is the reason why we rarely hear about embedded systems. Most embedded developers are electronic engineers degree holders, even in the CppCon C++ conference, most speakers about embedded systems are electronic engineers.
gwmnxnp_516a··on The U.S. military takes UFOs seriously. Why doesn't Silicon Valley or academia?
It is pretty unlikely that the earth has ever been visited by UFOS due to the physics laws such as light speed and the size of universe, the closest starts where is likely that there is life, are thousands of years away. For instance, the closest galaxy, Canis Major Dwarf, is 25 thousands light-years away from the earth. So, a trip from a galaxy like that to the earth would take thousands and thousands of years. Even the light coming from this galaxy is the image of 25 thousand years ago. That might be the reason the academia is skeptical about UFOs. Another physical limit is that nothing can achieve the speed of light and even at the light speed a trip to the galaxy would take 25k years.
← PreviousPage 2 of 2