Recent submissions

Comment · 3 years ago
It does not happen only with Banks, there are many cases where innocent people, that are flagged by fraud detection machine learning algorithms in social media or any kind of service, are banned or have accounts frozen without any explanation or warning due the false positives results or bias in the machine learning algorithms. In lots of cases, companies operating fraud detection algorithms don't provide any way to appeal and do not have any human in the loop for reviewing the decisions taken by the algorithm due cost saving or scaling. In general, no explanation is given to a person flagged by the algorithm in order to not disclose how it works or help bad actors. In the case of financial institution, other reason for no giving explanation is the legal AML requirement that forbids financial institutions from telling a customer that he or she was flagged. It is becoming a Kafkaesque world, the AI is more and more making decisions about our lives without due process and right to appeal/recourse.

Here some similar case:

  - AI tool flagged parents with disabilities: https://apnews.com/article/child-protective-services-algorithms-artificial-intelligence-disability-02469a9ad3ed3e9a31ddae68838bc76e

  - https://www.theguardian.com/technology/2022/aug/07/ai-eu-moves-to-beat-the-algorithms-that-ruin-lives

 - https://ico.org.uk/for-organisations/guide-to-data-protection/guide-to-the-general-data-protection-regulation-gdpr/automated-decision-making-and-profiling/what-does-the-uk-gdpr-say-about-automated-decision-making-and-profiling

 - U.S. warns of discrimination in using AI to screen job candidates : NPR / https://www.npr.org/2022/05/12/1098601458/artificial-intelligence-job-discrimination-disabilities

 - Finding it hard to get a new job? Robot recruiters might be to blame | Work & careers |/ https://www.theguardian.com/us-news/2022/may/11/artitifical-intelligence-job-applications-screen-robot-recruiters

 - https://www.vice.com/en/article/jgq35d/how-a-discriminatory-algorithm-wrongly-accused-thousands-of-families-of-fraud

 - Handling Discriminatory Biases in Data for Machine Learning - by Matthew Stewart, PhD (it shows how to make ML algorithms fair) / https://towardsdatascience.com/machine-learning-and-discrimination-2ed1a8b01038
Comment · 4 years ago
The greatest cross-platform toolkit is Qt that abstracts away all platforms including mobile and embedded systems. Qt also works on top framebuffer on embedded Linux and on other RTOS operating systems. The disadvantage of Qt is that is a C++ library with a lack of C ABI or C api (extern "C") that would allow Qt to be called from other programming languages than C++. That is the reason why Gtk has far more bindings than Qt, although they are unstable due to Gnone breaking changes and lack of backward compatibility.

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.

Comment · 4 years ago
The problem of creating GUIs libraries almost from scratch is the platform fragmentation, which means that a cross-platform GUI libraries would have to abstract away the Windows API win32, that is one of the most stable and most complete GUI libraries; MacOSX Objective-C Cocoa; Unix and Linux X11 - X Windows System, that lacks Win32 button and other higher level widgets, in this case it is better to use GTK as backend instead of targeting X11 directly that may even be replaced with Wayland on major Linux distribtions; Linux Wayland backend directly; Linux framebuffer for embedded Linux systems; or OpenGL for a immediate mode GUI like Imgui. Another trouble is that GTK is not so stable like Win32 and has many breaking changes on every release that may require anything depending on this library to be modified.

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.

Comment · 4 years ago
The definition of what is inflation depends on the economic school of thought. In the case of the Austrian and Chicago economic school of thought inflation is the increase of money supply caused by the central bank that allegedly results in systematic and non temporary increase of CPI consumer price index and money loss of value. There are school of economics, such as Keynesian that argues that a limited and controlled inflation is a good thing for increasing market liquidity, avoiding deflation and promoting a full employment policy. On the other hand some economists believe that some inflation is also good for weakening the currency, boosting the exports and reducing the imports. Inflation becomes problematic when it is used for financing uncontrolled government spending like in Argentina, Turkey and Lebanon as making money out of thin air is the easiest way to a government to raise money since raising taxes can result in massive opposition; taking loans denominated in foreign currency may requires good credit rating and reasonable credibility; austerity measures, such as cutting government spending, unreasonable subsidies or unreasonable government employees wages may also result in political clashes.

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.

Comment · 4 years ago
But they are not officially supported plugins, while CMake has official support from major companies and IDE makers, namely Microsoft, Jetbrains, Qt Company. Further comments in this threads also pointed out that some Plugins for Clion are abandonware and may no longer work.

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.

Comment · 4 years ago
In order to Xmake reach the mainstream, it needs to be supported by major IDEs. The major advantage of CMake over all other building systems is the broad range of IDE support. One can open CMake project without even touching the command line with Visual Studio Code, Visual Studio IDE, Eclipse IDE, Clion or Qt Creator and immediately get support for code exploration, code completion, refactoring and so on.
Comment · 4 years ago
Comment · 4 years ago
Brazil has only itself to blame. Not only Apple products, but several other technology items are pretty expensive due to the VAT (Value Added Taxes), namely, ICMS - state vat tax, IPI - federal vat tax for manufactured products, IOF - federal government tax that incurs on financial trasactions, and high import tariffs. All tariffs and taxes almost doubles the price of everything imported and whenever a product is sold to a distributor and the final seller, state and federal VAT taxes adds up increasing the price even further. Unlike the global north, most of taxes revenues in Brazil come from VAT taxes since brazilian middle class is not willing to pay higher income tax and at the same time they want US-style taxes and European-like lifestyle, such as ree healthcare and free college that are paid in Europe mostly through income tax revenues and dividend tax revenues. So despite higher taxes, it it is not that bad for the upper class and those who can afford Apple gadgets as they would have to pay higher income taxes if they moved to Europe, US or other countries. In Brazil even dividends are not taxed, while in US and Erope they are taxed and companies have to use stock buybacks in order to avoid double taxation.
Comment · 5 years ago
It depends pretty much on your field. If your field is related to games, formulas related to quaternions, linear algebra and coordinates will be useful; if your field is related to data science or machine learning, then, statistics, linear algebra, tensors and optimization will be useful as well. Obviously some types of programming requires more math than others, a robotic-related programming certainly will require far more math than a vanilla crud application.
Comment · 5 years ago
Better to stick with CMake due to broad range of IDEs supporting CMake, including, Visual Studio, Visual Studio Code editor, Jetbrain's CLion, QtCreator, KDevelop IDE and also Eclipse IDE via plugin. Other building systems may even be better than CMake, but they may lack widespread IDE support. By using CMake a project can make it easier to other people contribute as all they need to do in order to navigate across a C or C++ project is opening a directory containing a CMakeLists.txt file.

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.

Comment · 5 years ago
Not a founder. The catch is that docker fixes the Linux dependency hell problem that stems from the fact that the server Linux distribution may not have the dependencies you need for running your application and if you install your dependencies that are not in the distro repository, such as shared libraries or other executables, that may override the existing ones and mess the system or break something. Even a native executable may fail to run in the server if it is using an older version of version of GlibC than the one the application was linked against. Therefore, this problem may also affect ruby and python libraries written in C, C++ or Fortran. Other advantage is that docker reproduces entirely the development environment and encapsulates its configuration. So, docker also saves time that would be spent on manual system configuration chores, editing configuration files, creating symbolic links and so on. By using docker or any other container technology such as Podman from Read-Hat one can also get pre-configured and pre-made systems up and running quicker and also swap the configuration.

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.

Comment · 5 years ago
Comment · 5 years ago
> But having used busybox utils on a daily basis I truly do not understand how people can use them daily and not go insane.

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.

Comment · 5 years ago
On mobile systems, the major concern is low power usage and battery duration, not performance, hence the dominance of ARM-based chips in this field. The great appeal of M1 chip is the performance and low battery power usage.

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.

Live from the official Hacker News API

A modern reader for Hacker News · SvelteKit + Skeleton