Language Selection

English French German Italian Portuguese Spanish

7 things I learned from starting an open source project

Filed under

I'm currently involved—heavily involved—in Enarx, an open source (of course!) project to support running sensitive workloads on untrusted hosts. I've had involvement in various open source projects over the years, but this is the first for which I'm one of the founders. We're at the stage now where we've got a fair amount of code, quite a lot of documentation, a logo, and (important!) stickers. The project will hopefully be included in a Linux Foundation group—the Confidential Computing Consortium—so things are going very well indeed.

I thought it might be useful to reflect on some of the things we did to get things going. To be clear, Enarx is a particular type of project, one that we believe has commercial and enterprise applications. It's also not mature yet, and we'll have hurdles and challenges along the way. What's more, the route we've taken won't be right for all projects, but hopefully, there's enough here to give a few pointers to other projects or people considering starting one up.

Read more

More in Tux Machines

today's howtos

  • How to customize the search results in Gnome Shell

    Gnome Shell has a robust search feature that allows users to find everything from the weather to browser bookmarks, files, and more directly from the app menu. But did you know that you can add your custom search locations to Gnome? In this guide, we’ll show you how you can customize the search results in Gnome Shell to add custom search locations, turn search features off, and more.

  • How to Resize Existing LUN/Disk on Linux

    In most cases, disk space can be expanded by adding a new LUN to the system. But in some scenario, you may need to resize the existing LUN in order to extend the file system. Extending the file system involves two parts, extending the corresponding logical volume and then growing FS over it. Adding, resizing or deleting the LUN on a Linux system can be done without restarting.

  • How to create a bootable Windows 11 USB on Linux
  • How to install Linux Mint Debian edition 5 “Elsie”

    Linux Mint Debian Edition 5 “Elsie” was released in March. With it come many excellent features and software improvements. Here’s how you can install LMDE 5 on your desktop or laptop.

  • How to Hide Wget Command Output in Linux Command Line

    Wget is a GNU-based free software that has made it possible for numerous Linux-based users to non-interactively download files over the internet or any network without relying on graphical tools like web browsers. Its file download prowess is associated with network/internet protocols like FTP, FTPS, HTTP, and HTTPS. The primary objective of this article is directly associated with the last stated GNU Wget feature (handling unattended/background operations).

  • Use Composer to require Git repositories within PHP projects |

    The dependency management tool Composer provides multiple ways to include Git repositories within a PHP: Hypertext Preprocessor (PHP) project. In many cases, repositories have been created on Packagist, so requiring them with Composer is very straightforward. But what do you do when a repository has not been created as a package on Packagist? You use Composer to require the package directly from the repository. This article explains how.

9to5Linux Weekly Roundup: May 15th, 2022

This week has been really great in Linux news and releases. We got huge news from NVIDIA as they finally decided to open-source their graphics drivers, we got a new Fedora Linux release for you to play with on your PC, and we got a new generation of the Kubuntu Focus M2 Linux laptop with upgraded internals. On top of that, I take a look at Fedora Media Writer 5.0, notify you about the upcoming end-of-life of Ubuntu 21.10 and LibreOffice 7.2, and give you the hands up about the latest distro and software releases. You can enjoy these and much more in 9to5Linux’s Linux Weekly Roundup for May 15th, 2022, below! Read more

Programming and Administration

  • Exception Handling in Java | Explained

    Java provides a concept of Exception Handling that makes it possible to handle the errors at run time, in this way, the normal follow of the program wouldn’t be affected. To handle the runtime exceptions Java provides multiple ways such as try-catch, finally, throw, throws. The normal flow can be preserved using any of these exception handling methods.

  • Statistics Module in Python

    If you’re in the research world, statistics is of paramount importance! And Python offers many a module for statistics, but the one that we’ll be talking about today is called the statistics module. It’s a simple module, not really for advanced statistics but for those who just need a simple and quick computation. In this tutorial, we’ll be reviewing the statistics module in Python.

  • Emulate the Do-While Loop in Python

    Most of the standard programming languages have three types of loops to iterate some statement multiple times. These are the while loop, for loop, and the do-while loop. The while and for loop are available in Python but Python has no do-while loop. The do-while loop can be implemented by using another loop. In the do-while loop, the condition is tested after inserting the loop. So, the statements of the do-loop execute at least once even if the condition may not be matched. The ways of emulating the do-while loop in Python have been shown in this tutorial.

  • [Old] “The Canary in the Coal Mine…” A cautionary tale from the decline of SourceForge

    This article tells the cautionary tale of the downfall of Allura/SourceForge. We identified both internal and external causes, both social and technical in nature. We also found evidence of sociotechnical and architectural problems in project archives. Project and community health metrics could have been used to predict and understand the downfall by tracking its early manifestations. The team reported to be aware of the technical debt in the project, yet this was insufficient to maintain the health of the project. Community managers should also measure and manage the mutual impacts of technical and social debt. Furthermore, our analysis suggests that a combination of managerial and technical flaws doomed this project: architectural flaws, power-distance, and measurable management mishaps eventually led to the forge's demise. Practitioners and maintainers of other software projects can benefit from this cautionary tale, for example, as indications of what not to do, in the scope of their community and architecture management infrastructure.

  • Dirk Eddelbuettel: RcppArmadillo on CRAN: Updates

    Armadillo is a powerful and expressive C++ template library for linear algebra and scientific computing. It aims towards a good balance between speed and ease of use, has syntax deliberately close to Matlab and is useful for algorithm development directly in C++, or quick conversion of research code into production environments. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 978 other packages on CRAN, downloaded over 24 million times (per the partial logs from the cloud mirrors of CRAN), and the CSDA paper (preprint / vignette) by Conrad and myself has been cited 469 times according to Google Scholar. This release brings a first new upstream fix in the new release series 11.*. In particular, treatment of ill-conditioned matrices is further strengthened. We once again tested this very rigorously via three different RC releases each of which got a full reverse-dependencies run (for which results are always logged here). A minor issue with old g++ compilers was found once 11.1.0 was tagged to this upstream release is now 11.1.1. Also fixed is an OpenMP setup issue where Justin Silverman noticed that we did not propagate the -fopenmp setting correctly.

  • Reversed Linked List (C++)

    When you reverse a linked list, the link path is reversed, and the head becomes the tail, and the tail becomes the head. By swapping the positions of the nodes, we can understand this quickly. In this swapping, we just change the positions of the nodes from left to right or vice-versa.

  • Gets Function in C

    Bound-checking is therefore not accomplished by the gets() method. It would not examine if the input data integrates inside the character array’s holding limit of bytes. A buffer overflow can occur when an entry exceeds the array limit. Through fgets, this restriction of the gets() method could be eliminated. The gets() method produces a string if it occurs. It reverts NULL if it starts to fail. It displays the EOF indicator on a string if an end-of-file situation generates the error. If another error triggers the failure, the error parameter is displayed on the string.

  • Getting started with Node-Red on Raspberry Pi

    Node-Red is a visual programming tool that is used to connect APIs and hardware in a more prominent and exciting way. It has a web-based editor that will allow you to control and manage your Raspberry Pi device from a remote location. The graphical user interface of the editor is excellent and pretty simple which enables a beginner to handle it quite easily. The Node-Red can easily be installed on your Raspberry Pi device and once the installation is completed you will need to acquire a basic understanding of how to use this tool on a web editor to develop different projects. In this tutorial, we will provide you with an easy setup guide to get started with Node-Red on your Raspberry Pi and start developing your projects with ease.

  • Impact Analysis for UTF-8 in the RIPE Database

    The RIPE Database contains the names and addresses of organisations as well as administrative and technical contacts for resources and routing in the RIPE region. The Database currently supports the Latin-1 (ISO-8859-1) character set, which can represent most characters in western European languages. However it cannot fully support characters used in other languages and alphabets that are commonly used in the RIPE service region and beyond. Currently, any unsupported characters must be transliterated into Latin-1 (or even ASCII in some cases, which is a subset of Latin-1), potentially corrupting the meaning. Switching the RIPE Database from Latin-1 to UTF-8 allows names and addresses to be properly represented for querying and display.

  • Kubernetes 1.24: Volume Populators Graduate to Beta | Kubernetes

    The volume populators feature is now two releases old and entering beta! The AnyVolumeDataSouce feature gate defaults to enabled in Kubernetes v1.24, which means that users can specify any custom resource as the data source of a PVC.

    An earlier blog article detailed how the volume populators feature works. In short, a cluster administrator can install a CRD and associated populator controller in the cluster, and any user who can create instances of the CR can create pre-populated volumes by taking advantage of the populator.

    Multiple populators can be installed side by side for different purposes. The SIG storage community is already seeing some implementations in public, and more prototypes should appear soon.

Videos/Shows: Free Sofwtare Security, LINUX Unplugged on NVIDIA, GNU World Order, and More