Language Selection

English French German Italian Portuguese Spanish

Programming Leftovers

Filed under
Development
  • ENIAC anniversary: What 75 years of computer technology have delivered

    Although such advances make it possible for everyone to have access to advanced computer systems, Thompson believes programming skills are being eroded. “We are not teaching people how to do things any more,” he said.

    One example is the trend for using low-code/no-code tooling to lower the skillset needed to create useful business applications. But, says Thompson: “Tasks get automated that shouldn’t be.” In other words, automation does not necessarily help to grow programming skills.

    Glen Beck (background) and Betty Snyder (foreground) program ENIAC
    Unlike a modern computing architecture, the ENIAC did not use memory; instead, it comprised a series of modules for performing calculations. Recalling his experiences of programming, Thompson says: “I remember working on mainframes with 6MB of memory. We needed to code in obscure ways to get the most from the machine.

    “Today’s programmers do less coding than before. Memory is limitless, I/O [input/output bandwidth] is not a problem. In a traditional sense, we are not doing data processing any more. Programmers today are building applications.”

  • A practical guide to JavaScript closures | Opensource.com

    In 4 reasons why JavaScript is so popular, I touched on a few advanced JavaScript concepts. In this article, I will dive into one of them: closures.

    According to Mozilla Developer Network (MDN), "A closure is the combination of a function bundled together (enclosed) with references to its surrounding state (the lexical environment)." Simplified, this means that a function inside another function can access the variables from the outer (parent) function.

  • Don’t be shady, deploy your JavaScript source maps

    JavaScript source code minification is a beneficial tool for reducing download file sizes. However, the resulting obfuscation makes the code difficult to read, and reduces trust and transparency. Public source maps will help restore code readability and transparency. As a bonus, it enables others to learn from your code.

    The Web Almanac 2020 found that 99,5 % of JavaScript is minified. It’s a more popular data-reduction strategy than using transport layer compression, which is at only 85 %. However, the 2019 Web Almanac found that only 18 % deployed source maps. This last number should be much higher.

  • [Older] Ruby gems: Using Linux/BSD packages vs. gem install

    As a Ruby user and programmer, I thought that Linux distributions and BSD projects offered packaged versions of Ruby gems to add sanity and stability to a computer.

    The problem is that every distribution and project packages a different subset of all the Ruby gems available.

    I’ve always tried to use as many “packaged” gems as possible in the systems I run — chiefly Debian and Fedora Linux, along with OpenBSD.

    If you only need a couple of gems, distribution packages might be the way to go. But once you start to pile up the gems and get one or more with a LOT of dependencies on other gems, the whole thing can get a bit tangled.

    The documentation to my blogPoster project has included a lot on how to install gems with package managers like apt. I’m about to pull all of that out in favor of recommending that all Ruby gems be installed with Ruby’s own gem install program.

  • Python “tricks” I can not live without

    There is plenty of similar articles on the web, but I just thought that I can add my perspective on the topic, and make the “tricks” list more complete. The code fragments used here are somehow crucial to my workflow and I am reusing them over and over again.

  • Zeeshan Ali: zbus and Implementing Async Rust API

    As many of the readers already know, for the past (almost) 2 years, I've been developing a Rust-crate for D-Bus, called zbus. With this being my first big Rust project to start from scratch done almost entirely in my spare time, the progress was rather slow for many months. My perfectionism didn't help much with the progress either but also the fact that implementing a SerdeAPI for the D-Bus format was quite challenging. Then along came my old friend and ex-colleague, Marc-André Lureau who sped up the progress 10 times and soon after we had the 1.0 release of zbus.

    While my original plan (perfectionism again) was for the API to be primarily async, with the synchronous API mostly just a wrapper around it, it was Marc-Andre who ended up doing most of the work and coming up with nice high-level API and his use case was primarily synchronous so we decided to go with synchronous API first. I still believe that was the right thing to do, since neither of us were familiar with async programming in Rust and going with the original plan would have meant the first release getting delayed by at least another half an year.

    This may sound very disappointing to readers who come from glib programming background but a purely synchronous blocking API in a Rust app is not at all as bad it would be in a glib+C (or even Vala) app. There is a reason why Rust is famous for its fearless concurrency.

  • SVG: The Good, the Bad and the Ugly

    I’m actually thinking about making a slim machine-focused vector graphics format (the name “SlimSVG” has been suggested Big Grin) and writing my own human-focused Haskell graphics creation library with similar goals for my own purposes in the future, maybe as a student research project for the university.

    In summary: Decide whether a language is for humans or for machines and do one of those things. And do the one thing well instead of both, but badly.

More in Tux Machines

digiKam 7.7.0 is released

After three months of active maintenance and another bug triage, the digiKam team is proud to present version 7.7.0 of its open source digital photo manager. See below the list of most important features coming with this release. Read more

Dilution and Misuse of the "Linux" Brand

Samsung, Red Hat to Work on Linux Drivers for Future Tech

The metaverse is expected to uproot system design as we know it, and Samsung is one of many hardware vendors re-imagining data center infrastructure in preparation for a parallel 3D world. Samsung is working on new memory technologies that provide faster bandwidth inside hardware for data to travel between CPUs, storage and other computing resources. The company also announced it was partnering with Red Hat to ensure these technologies have Linux compatibility. Read more

today's howtos

  • How to install go1.19beta on Ubuntu 22.04 – NextGenTips

    In this tutorial, we are going to explore how to install go on Ubuntu 22.04 Golang is an open-source programming language that is easy to learn and use. It is built-in concurrency and has a robust standard library. It is reliable, builds fast, and efficient software that scales fast. Its concurrency mechanisms make it easy to write programs that get the most out of multicore and networked machines, while its novel-type systems enable flexible and modular program constructions. Go compiles quickly to machine code and has the convenience of garbage collection and the power of run-time reflection. In this guide, we are going to learn how to install golang 1.19beta on Ubuntu 22.04. Go 1.19beta1 is not yet released. There is so much work in progress with all the documentation.

  • molecule test: failed to connect to bus in systemd container - openQA bites

    Ansible Molecule is a project to help you test your ansible roles. I’m using molecule for automatically testing the ansible roles of geekoops.

  • How To Install MongoDB on AlmaLinux 9 - idroot

    In this tutorial, we will show you how to install MongoDB on AlmaLinux 9. For those of you who didn’t know, MongoDB is a high-performance, highly scalable document-oriented NoSQL database. Unlike in SQL databases where data is stored in rows and columns inside tables, in MongoDB, data is structured in JSON-like format inside records which are referred to as documents. The open-source attribute of MongoDB as a database software makes it an ideal candidate for almost any database-related project. This article assumes you have at least basic knowledge of Linux, know how to use the shell, and most importantly, you host your site on your own VPS. The installation is quite simple and assumes you are running in the root account, if not you may need to add ‘sudo‘ to the commands to get root privileges. I will show you the step-by-step installation of the MongoDB NoSQL database on AlmaLinux 9. You can follow the same instructions for CentOS and Rocky Linux.

  • An introduction (and how-to) to Plugin Loader for the Steam Deck. - Invidious
  • Self-host a Ghost Blog With Traefik

    Ghost is a very popular open-source content management system. Started as an alternative to WordPress and it went on to become an alternative to Substack by focusing on membership and newsletter. The creators of Ghost offer managed Pro hosting but it may not fit everyone's budget. Alternatively, you can self-host it on your own cloud servers. On Linux handbook, we already have a guide on deploying Ghost with Docker in a reverse proxy setup. Instead of Ngnix reverse proxy, you can also use another software called Traefik with Docker. It is a popular open-source cloud-native application proxy, API Gateway, Edge-router, and more. I use Traefik to secure my websites using an SSL certificate obtained from Let's Encrypt. Once deployed, Traefik can automatically manage your certificates and their renewals. In this tutorial, I'll share the necessary steps for deploying a Ghost blog with Docker and Traefik.