Language Selection

English French German Italian Portuguese Spanish

December 2020

today's leftovers

Filed under
Misc
  • App Showcase: Password Safe

    Using strong passwords is a good way to help protect your accounts. On the Librem 5, we recommend you use Password Safe to keep track of and generate better passwords.

  • Fast-paced grid-fighter EndCycle VS adds Linux support - we have keys to give away

    Along with a huge upgrade to the game that adds in a whole new Adventure Mode, the grid-battler EndCycle VS now offers up Linux support.

    "EndCycle VS the customization-heavy strategic grid-fighter is here! Fight intense, fast-paced situations by combining reflexes and crafting your own strategy!! Packing both Singleplayer and Multiplayer action, the game has something for everyone!"

    One for fans of Mega Man Battle Network, One Step From Eden and other grid-fighters it's another interesting choice for fast-paced strategic action. This latest update brings with it almost an entirely new game with the Adventure Mode, one that's different each time you play through with some random generation.

  • Mixolumia is an absolutely enchanting block-clearing puzzler with dynamic audio

    Block-breaking puzzle games come in many different forms and Mixolumia from davemakes is one that has absolutely sucked away my attention recently. Originally released much earlier in 2020, the developer has recently put up a Linux build on itch.io and I've been playing through it.

    "Mixolumia introduces a fresh twist on block-clearing puzzlers. Scintillating visuals and entrancing music respond to your input and evolve as you progress. Diamond blocks slide together on the gem-shaped board and explode in glittering chain reactions."

  • Arch Linux mailing list id changes

    Due to issues with our anti spam measures, we had to migrate those mailing lists, that were sent from @archlinux.org before to the @lists.archlinux.org domain.

    Submission to the mailing list is not affected and still works with @archlinux.org. Mails get redirected automagically.

  • Intel Media SDK 20.5.1 Released

    At the start of Q4, Intel released Media SDK 20.3 with AV1 accelerated decode, Rocket Lake, DG1/SG1 discrete GPU support, and other improvements. Now to end out the quarter is a new release coming in at version 20.5.1.

  • Making the blog part of the Fediverse and IndieWeb

    I’ve just made my blog available on the Fediverse, at least partially.

    Yesterday while browsing Hacker News, I saw Carl Schwan’s post Adding comments to your static blog with Mastodon(m) about him replacing Disqus with replies posted at Mastodon. Just on Monday I was thinking, why can’t blogs participate in Fediverse? I tried to use WriteFreely as a replacement for Pelican, only to find it very limited, so I thought I might write a gateway to expose the Atom feed using ActivityPub. Turns out, someone already did that: Bridgy, a service connecting websites to Twitter, Mastodon and other social media, also has a Fediverse counterpart, Fed.brid.gy — just what I was looking for!

  • Happier GNU Year!

    Since about 2019-09-11, the FSF (the largely autonomous staff body that was supposed to be supervised by, and to follow directions given by the board of directors) has asked me to leave FSF public communications to them, even while I was acting president, and preferred to distance themselves from myself and from Richard Stallman's leadership.

    When they make as urgent an exception as they have yesterday, I might as well take it.

    The FSF has been running its end-of-year fundraiser for several weeks, and at the time of this writing it's 175 new members short of its goal of 500 new members by the year's end, with less than 24 hours to go.

    If I were to explain this shortcoming, as I often have, I'd point out that, over the past 15 months, to a significant number of Free Software and former FSF supporters, the FSF has come across as betraying its founder, lifetime leader, and founding-father of the social movement it belongs in.

  • Legal issues that companies should be aware of when using open source software (Taiwan) [Ed: Anti-GPL scaremongering by lawyers, as if business and sharing are inherently incompatible and GPL is antithetical]

    Open source software is by nature a type of computer program, which is still a type of work regulated and protected by the Copyright Law and whose distribution is also restricted by the terms of its license agreement. Open source software is different from general commercial software primarily in the terms of its license agreement. The terms of the license agreement for general commercial software are mainly based on the receipt of royalties, while the terms of the license agreement for open source software are mainly premised that the licensor shall maintain the freedom and openness of the open source software program. An open source license agreement has the following main characteristics: The software source code should be made public at the time of distribution, and open source code software should be made freely available for download, use, duplication and modification by other users, and may be freely distributed to third parties for any purpose.[2][3]

    Due to the prosperous development and application of the Internet, more and more people can participate in the development and editing of open source software through online collaboration tools, and because the development of open source software is participated by a multitude of people, the speed of open source software optimization and innovation is sometimes even faster than that of commercial software developed by ordinary enterprises. In recent years, more and more software companies, such as Apple and Microsoft, have opened up the source code of their underlying technologies in order to save their own development costs and widen the application of their products. According to Sonatype’s Software Supply Chain Status Report 2020, over 1.5 trillion open source software components and software units have been requested for download by developers worldwide in 2020, demonstrating the current high usage of open source software.

Programming Leftovers

Filed under
Development
  • Pros and Cons of Building Your Own IoT Platform

    “Should I build my own IoT platform? Is it worth it to do it myself? The answer is, of course, it depends.

    You’ve got an idea for an awesome IoT project, and you’re ready to get started making it into a reality. But there’s a lot of options to choose from. Should you build your project from the ground up? Should you hire an IoT company to build it for you? Or should you take a middle path, using others’ work as a foundation on which to build?

  • Parallel Programming: December 2020 Update - Paul E. McKenney's Journal — LiveJournal

    This release of Is Parallel Programming Hard, And, If So, What Can You Do About It? features numerous improvements...

  • Learn Lua by writing a "guess the number" game | Opensource.com

    If you're a fan of scripting languages like Bash, Python, or Ruby, you might find Lua interesting. Lua is a dynamically typed, lightweight, efficient, and embeddable scripting language with an API to interface with C. It runs by interpreting bytecode with a register-based virtual machine, and it can be used for everything from procedural programming to functional programming to data-driven programming. It can even be used for object-oriented programming through the clever use of arrays, or tables, used to mimic classes.

    A great way to get a feel for a language is by writing a simple application you're already familiar with. Recently, some Opensource.com correspondents have demonstrated how to use their favorite languages to create a number-guessing game. Lua is one of my favorites, so here's my Lua version of the guessing game.

  • Out of Control

    This leads us to ponder — and not for either the first or the last time in the history of computer science — the distinction between code and data. We stumble across this question even in the simplest cases. How would you describe the refactoring transformations above? Many would describe them in terms of separating the data from the code. Does that mean, then, that numerals.py contains data but not code? It’s a valid Python module that initialises a variable to a list of string–integer pairs. Sounds like code. Nothing says an essential qualification for something to be considered code is the presence of control flow.
    We use the word code freely, referring both to anything written in a programming language and, more specifically, to code (sic) whose primary concern is algorithm and operation rather than data structure and definition. Natural language is messy like that, filled with ambiguity, synecdoche and context dependency.
    If we want to be more rigorous, we could say that we have separated the code into code that abstracts operation and code that abstracts data. In other words, we are saying that Programs = Code and, given that Algorithms + Data Structures = Programs, therefore Algorithms + Data Structures = Code. This can be convenient and clear way to frame our thinking and describe what we have done. We also need to recognise, however, that it is just that: it is a thinking tool, a way of looking at things and reasoning about them rather than necessarily a comment on the intrinsic nature of those things; it is a tool for description, a way of rendering abstract concepts more concretely into conversation.
    If we confuse a point of view for the nature of things we will end up with a dichotomy that feels like Cartesian dualism. Just as Descartes claimed there were two distinct kinds of substance, physical and mental, we could end up claiming there are two distinct kinds of code — code that is data and code that is operation.
    When we look to hardware, compilers or the foundations of computer science, such as Turing machines, we will not find clear support or a strict boundary for such separation. The indistinction runs deep. Although we have code and data segments in a process address, these enforce negotiable matters of convention and protection (e.g., the code or text segment is often read-only). Both code and data segments contain data, but the data in the code segment is intended to be understood through a filter of predefined expectations and an instruction set. On the other hand, it is also possible to treat data in the data segment as something to execute.

  • Perl weekly challenge 093

    Using a similar approach than James Curtis-Smith , the solution looks at points with equal slope to see if they are in a straight line. Being less literate in Raku, using classes help me to organize coding ideas.

    This exercise gives me the opportunity to work with the type BagHash. The highest value of the slopes stored in a BagHash gives the number of points in a straight line. Happily, the first example in Raku documentation is for a Class Point, an example reused in this solution.

  • I'm Making Headway Now

    Last January there was a post on reddit which claimed that my module JSON::Parse was not only failing some of the JSON Test Suite tests, but also crashing on one of them. Anyway I should have got around to doing something about it sooner, but here are my conclusions.

    First of all there was a crash on one of the files, which went something like this: [{"":[{"":[{"", repeated about 100,000 times. Investigating it using a LInode, I found that after 80,000 open brackets the stack was overflowing, causing the crash to occur. If I added a printf in the midst of my code the printf would cause the stack overflow, so it wasn't actually due to my code but just because the stack size seems to be quite small on Linux.

    There are various things one could do to tackle this, but it does seem a bit unlikely that anyone would want to have that many open brackets, so what I did as a strategy was to add a "max_depth" of parsing after which it would stop. I thought 10,000 open { and [ would be enough for anyone, and it would satisfy the people who want to run the JSON Test Suite tests, but I also added an option for the user to alter the max depth and get the max depth as well.

  • Jean-François Fortin Tam: Blogging about Python desktop apps improvements on Planet Python

    Hi, fellow pythonistas! Before I start publishing future Python-related posts to this aggregator, I would like to shortly introduce myself and the reason for this blog’s presence on the planet.

    [...]

    Here I blog mainly about new releases and improvements in my Python software apps (which means GTG lately, but I also have a couple of pythonic utility apps I’ve been meaning to publish sometime soon), and sometimes write about performance optimization in software applications in general, or how a particular bug was solved. As such, my blog posts tend to be “applied Python” type of content rather than theoretical tutorial-style blog posts.

  • 10 examples of using Python in 2020 | Opensource.com

    Each year, Opensource.com publishes various articles about Python to pique new users' interest and help long-time Pythonistas expand their skills. The following are Opensource.com's top 10 articles about Python in 2020.

  • MySQL Primary and Foreign Keys – Linux Hint

    MySQL is an RDBMS (Relational Database Management System) which is owned by the Oracle Corporation and inherited from the standard SQL. It allows access and manipulation of Databases. Whoever knows the word ‘Database’ must have knowledge of Primary and Foreign keys. There is no concept of a relational database without the existence and idea of the concepts of Primary Keys and Foreign Keys. So in this article, we are going to learn about the importance and correct use of Primary and Foreign keys in MySQL.

    The primary key can be any field or column of a table, which should be a unique and non-null value for each record or a row.

    The Foreign key is a field that contains the primary key of some other table to establish a connection between each other.

    Let’s have a look at the syntax and different examples to create primary and foreign keys in MySQL.

  • MySQL Outer Join – Linux Hint

    MySQL provides a lot of commands, which are needed while managing a database. For example, we often need to get some data from different tables based on some condition. MySQL then provides different types of joins to get the desired results. Let’s learn LEFT JOIN AND RIGHT JOIN of MySQL.
    There is no such statement as FULL OUTER JOIN in SQL, but we can use a simple JOIN to get the same results or by simply using a SELECT statement over two different tables.

    Otherwise, MySQL provides LEFT JOIN and RIGHT JOIN to get the records or rows from the right or left table, respectively. Let’s try a couple of different examples to get the desired results using appropriate joins.

Ubuntu: Perspective for 2020 and Snaps

Filed under
Ubuntu
  • Ubuntu life in 2020 | Torstens Blog

    The year 2020 was quite extraordinary, because a lot of things developed quite differently from how they were supposed to because of the Covid-19 crisis. Even though a lot of things happen virtually at Ubuntu, it also had an impact on my Ubuntu life.

    Every year I attend a few trade fairs to present Ubuntu and/or give talks. In 2020, this only took place virtually and in a very limited way for me. In March, the Chemnitzer Linuxtage were cancelled and one fair after the other was cancelled.

    In my home town I go to a Fablab where we also work on Ubuntu. After the meetings in January and February, this was also cancelled. Now and then this still took place virtually, but somehow it didn’t create the same atmosphere as when we met in real life.

    With the team members of the German-speaking Ubuntu forum (ubuntuusers.de) we organise a team meeting every year, which is always very funny and partly productive. In 2020 it had to be cancelled. Since I have also reduced my other contacts to help contain the virus, I have only met two people from the Ubuntu environment in real life since March.

  • Snaps and themes – on the path to seamless desktop integration | Ubuntu

    Alongside performance, theming is one of the primary concerns for desktop snap users. People expect applications bundled inside snaps to look and behave just like their counterparts shipped and packaged in the traditional way in their Linux distributions, and any discrepancy in this space can lead to a degraded user experience.

    Over the years, we have invested a lot of focus in improving the theming integration, but recently, we picked up pace in this area, and we’d like to share a story of our ongoing and future efforts, and set the tone for 2021.

    [...]

    Seamless theming should make snaps even more fun to use. If you’re a theme developer, you may want to consider the improvements we are introducing in our tooling, and help bring even more art and variety to Linux users in an easy and consistent way. We also welcome feedback, so please join our forum for a discussion, on themes or any other topic.

Linux Mint Monthly News – December 2020

Filed under
GNU
Linux

Many thanks also for your donations and for your support. With the money collected during the past few months we were able to send big bonuses to our developers and to our moderators. This always feels really good, especially around Christmas.

At the moment there are 34 issues open. Most of them aren’t release blockers but there still are bugs we want to fix prior to giving Linux Mint 20.1 a stable release.

I know it’s been asked a few times but I can’t give you an exact release date. It’s not that we don’t want to tell you, it’s simply that we don’t know exactly when the release will happen. Until it’s ready it won’t happen, and once it’s ready there’s no reason to wait for an announced date.

As a project, if we wanted to announce a release date and stick to it we would have to deliberately plan it further than anticipated, be ready to make people work late at night even where there are no real emergencies or worse, release the product with important bugs we could have fixed but didn’t have time to. I know some companies and some projects work like that and that’s OK. I know the visibility they give their user base is important and appreciated as well, but that’s not how we chose to operate. The release comes out when we’re happy with it. Looking at the list of bugs we have, there still are issues we want to fix. In 2 months time it won’t matter at all whether we released this a week earlier or a week later, but the bugs we let through, especially those which affect the live session, will mark the release forever and be on the forefront of the version people download for the next 6 months.

So we do not have set release dates. We do however have a 6 months release cycle which gives us rhythm and a sense of urgency and getting this release out right now is all we’re focused on.

Read more

BSD Now 383 and OpenBSD News

Filed under
BSD
  • BSD Now 383: Scale the tail

    FreeBSD Remote Process Plugin Final Milestone achieved, Tailscale for OpenBSD, macOS to FreeBSD migration, monitoring of our OpenBSD machines, OPNsense 20.7.6 released, and more

  •  

  • OpenBSD: Following -current and using snapshots

                     

                       

    Similar to how audio recording is handled, recording has been disabled by default in video(4). It may be reenabled like this: [...]

  •                

linux-5.10-ck1, MuQSS version 0.205 for linux-5.10

Filed under
Linux

Announcing a new -ck release, 5.10-ck1 with the latest version of the Multiple Queue Skiplist Scheduler, version 0.205 These are patches designed to improve system responsiveness and interactivity with specific emphasis on the desktop, but configurable for any workload.

Probably the most interesting thing to happen as pointed out to me by Damentz was that the Intel i915 scheduler is based on the scheduling algorithm from MuQSS:
[Intel-gfx] [PATCH 36/56] drm/i915: Fair low-latency scheduling

It seems they understand the incredible simplicity of the underlying scheduling algorithm that guarantees both latency and fairness intrinsically.

Read more

Also: Linux 5.10-ck1 Released With Updated MuQSS Scheduler - Phoronix

today's howtos

Filed under
HowTos
  • Searching Wikipedia on the Linux command line with wikit

    Have you ever imagined looking up some topic on Wikipedia while you're working on the Linux command line? What about displaying the results in a different language? Yes, it's possible. In fact, it's quite easy. The tool that provides this service is called wikit (Wikipedia IT).

    [...]

    To use this script, you will need to have recognizable topics in your "list" file, one topic per line. Then run the script while redirecting its output to a file like this:

    ./getinfo > REPORT

  • How To Use Linux In Windows?

    If you’re someone who wants to try out Linux, but you’re afraid that you might screw up something while dual-booting, this tutorial is for you. We’ll be looking at the two most popular methods to install Linux in Windows. In this tutorial, we’ll be using a Virtual Machine like Oracle’s VirtualBox, a popular tool used by professionals worldwide.

  • How to Set Up Multiple Timezones in Ubuntu - Make Tech Easier

    Do you find yourself continually checking the time difference when scheduling meetings with people living in other countries? Wouldn’t it be easier to have the time in multiple timezones on your desktop? That’s where Gnome Clocks can help.

    Gnome Clocks is not a task or a time manager. However, it can help us ease our collaboration with people living in different time zones. With it, you can have multiple clocks for various regions in the same window. As a bonus, you can also set up alarms and have instant access to a stopwatch and timer. Let’s see how you can install and use it in Ubuntu.

  • How To Install Tor Browser on CentOS 8 - idroot

    In this tutorial, we will show you how to install Tor Browser on CentOS 8. Tor is free software and an open network that helps you defend against traffic analysis, a form of network surveillance that threatens personal freedom and privacy, confidential business activities and relationships, and state security. Tor protects you by bouncing your communications around a distributed network of relays run by volunteers all around the world. it prevents somebody watching your Internet connection from learning what sites you visit, and it prevents the sites you visit from learning your physical location.

    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 through the step-by-step installation of Tor Browser on a CentOS 8.

  • How to install Ubuntu Cinnamon Remix 20.10 - YouTube

    In this video, I am going to show how to install Ubuntu Cinnamon Remix 20.10.

  • Get Instant Notification for Docker Image Updates [Must Use for Sysadmins]

    A server running multiple containers with continuous/maximum uptime is of course very productive, but it is no good unless all those containers are well maintained and updated regularly.

    However, the bigger question here is how do you know if there is an updated image available so that you can think of updating Docker containers?

  • How To Run VSeeFace On Linux Using Lutris! - Fosslicious

    VseeFace is an application that can be used for 3D character tracking in the .vrm format. Applications like this are really needed by YouTuber or what is often called Vtuber. Vtuber will usually use a 3D or maybe 2D character for streaming, or to discuss something.

  • How to Check Available Package Updates in Linux

    Regular system maintenance is necessary to make the system healthy and function properly and It’s common for all the operating systems not only for Linux systems.

    There is no specific schedule for Linux package update but windows has a scheduled one. Hence we need to perform the package update at least once in a month.

    In the worst cases at least once in a quarter.It would be fix for some of the outstanding issues if you install the available updates on your system.

  • How to Close All Google Chrome Windows at Once

    While browsing the web with Google Chrome, it’s easy to get carried away and open dozens of windows filled with hundreds of tabs. Luckily, it’s easy to close multiple Chrome windows at once on Windows, Linux, and Mac. Here’s how.

    To close all of your Chrome windows quickly on Windows or Linux, click the vertical ellipses button (three dots) and select “Exit.”

  • How to catch SQLException in JSP working via JDBC with MySQL 8.0.22 on Tomcat 9.0.41
  • How to downgrade a linux kernel

    Downgrading any package including the kernel is done for a reason.

    Most of the time we downgrade the package because the new update is malfunctioning with other software or with our hardware.

    We have an application already pre-installed called : downgrade.

    You can use this application to get an older version back of the needed software. You need to know the package name to do so.

    sudo downgrade linux

  • How to downgrade to an older Linux-lts kernel | Arcolinux.com

    Downgrading any package including the kernel is done for a reason.

    Most of the time we downgrade the package because the new update is malfunctioning with other software or with our hardware.

    We have an application already pre-installed called : downgrade.

  • How to install Snap Store on Elementary OS - Linux Shout

    Snap Store is the GUI interface to install various SNAP packages available in the repository of it. The Snap is from the Ubuntu team that provides cross-platform packages to install on most of the available Linux editions regardless of their codebase.

    The focus of the snap store is on the installation and administration of snaps, less, on programs from the package sources. For software installed as a snap package, the rights of the snap can be adjusted via the snap store.

  • How to install Tor Browser in Elementary OS Linux distro - Linux Shout

    Elementary OS Linux distro is popular for its attractive Pantheon interface and beginner-friendliness. However, out of the box, you will not find many applications that actually you would need in your day-to-day computing need. Nevertheless, it is also good because there would not be unnecessary application clutter on your OS; only those will be there, you really want to install. Thus, in case you want to browse internet websites but with a high level of privacy and anonymity, install Tor Browser on Elementary.

  • Printing with a Brother MFC-7460DN laser printer on Fedora Linux 33

    This is a follow-up to my previous post Configuring a Brother MFC-7460DN Laser Printer/Scanner on Fedora 23 (64-bit), as things have fortunately changed to the better in the meanwhile.

    As described in this post, setting up this printer in CUPS on Fedora has become quite an ordeal, as Brother no longer updates the printer drivers for these old models and they don’t provide 64 bit binaries.

Rust 1.49.0 Released and Related News

Filed under
Development
Moz/FF
  • Announcing Rust 1.49.0

    The Rust team is happy to announce a new version of Rust, 1.49.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.

  • This Week In Rust: This Week in Rust 371
  • Niko Matsakis: The more things change… [Ed: Rust language is becoming GAFAM surveillance monopolies, hosted on Microsoft servers]

    That said, I’ve talked to a number of people in the Rust community who feel nervous about this change. After all, we’ve worked hard to build an open source organization that values curiosity, broad collaboration, and uplifting others. As more companies form Rust teams, there’s a chance that some of that could be lost, even if everyone has the best of intentions. While we all want to see more people paid to work on Rust, that can also result in “part time” contributors feeling edged out.

    [...]

    I want to zoom out a bit to the broader picture. As I said in the intro, we are entering a new phase for Rust, one where there are multiple active Rust teams at different companies, all working as part of the greater Rust community to build and support Rust. This is something to celebrate. I think it will go a long way towards making Rust development more sustainable for everyone.

    Even as we celebrate, it’s worth recognizing that in many ways this exciting future is already here. Supporting Rust doesn’t require forming a full-time Rust team. The Google Fuchsia team, for example, has always made a point of not only using Rust but actively contributing to the community. Ferrous Microsystems has a number of folks who work within the Rust compiler and embedded teams. In truth, there are a lot of employers who give their employees time to work on Rust – way too many to list, even if I knew all their names. Then we have companies like Embark and others that actively fund work on their dependencies (shout-out to cargo-fund, an awesome tool developed by the equally awesome azfoltzer, who – as it happens – works at Fastly, another company that has been an active supporter of Rust).

The Kate Text Editor in 2020

Filed under
KDE

2020 was for sure no good year for most people around the world. A lot of us are affected directly or indirectly by the currently still raging COVID-19 pandemic. Let’s hope that 2021 will bring better fortune at least in this aspect.
Still, good stuff happened in 2020, too, not all was bleak. I read already some wrap ups of 2020 from others like Nate and Aleix. A lot stuff happened inside the KDE community this year.
Kate and it’s closely related parts KTextEditor & KSyntaxHighlighting evolved a lot in 2020, too. Let’s take a look at the highlights out of my perspective ;=)

Read more

More in Tux Machines

Free Software Leftovers

  • Open Sesame: How Open Source technologies turbocharge enterprises

    Open source, a revolutionary idea for ICT innovations, also makes sense for business. The key is its adoption to an organisation’s culture and budget If one were to make an internet search for the very active Information Technology and Communication (ICT) areas of innovation, the usual suspects likely to show up are intelligent machines like Artificial Intelligence (AI), Machine Learning (ML), and Deep Learning (DL); human-machine interactions like bots, augmented realities, voice and gesture-enabled interfaces; ubiquitous computing like resilient cloud and quantum computing; and autonomous machines that include the like of drones and self-driving vehicles. Compared to the pace of development a couple of decades ago, today all these areas continue to develop at extremely high velocities. A deep dive into any of the technical areas will show up a common thread: open source.

  • Valetudo is a cloud-free web interface for robot vacuum cleaners

    Once you’ve done the update the Xiaomi app will not work anymore, and you’d only access the robot vacuum cleaner via its web interface which, in most cases, comes with the same features as the mobile app minus cloud connectivity. However, if you change your mind, you can simply factory reset the device to remove Valetudo and continue with the Xiaomi app, at least on Roborock models.

  • Well you look different: Apache CloudStack 4.15 lands with new UI, improved access control • DEVCLASS

    Apache CloudStack (CS), the Apache Software Foundation’s cloud infrastructure project, has pushed out new long term support version 4.15, providing users with a new UI, various VMware-related improvements and a way to define role based users in projects. The software was originally developed in 2008 at what soon became Cloud.com, a start-up that was bought by Citrix in 2011. The infrastructure as a service platform was accepted into the Apache Incubator in 2012 and graduated its process in 2013. Customers include Verizon, TomTom, SAP, Huawei, Disney, Cloudera, BT, Autodesk, and Apple.

  • Daniel Stenberg: bye bye svn.haxx.se

    When the Subversion project started in the early year 2000, I was there. I joined the project and participated in the early days of its development as I really believed in creating an “improved CVS” and I thought I could contribute to it. While I was involved with the project, I noticed the lack of a decent mailing list archive for the discussions and set one up under the name svn.haxx.se as a service for myself and for the entire community. I had the server and the means to do it, so why not? After some years I drifted away from the project. It was doing excellently and I was never any significant contributor. Then git and some of the other distributed version control systems came along and in my mind they truly showed the world how version control should be done… The mailing list archive however I left, and I had even added more subversion related lists to it over time. It kept chugging along without me having to do much. Mails flew in, got archived and were made available for the world to search for and link to. Today it has over 390,000 emails archived from over twenty years of rather active open source development on multiple mailing lists. It is fascinating that no less than 46 persons have written more than a thousand emails each on those lists during these two decades.

  • Daniel Stenberg: everything.curl.dev

    The online version of the curl book “everything curl” has been moved to the address shown in the title: everything.curl.dev This, after I did a very unscientific and highly self-selective poll on twitter on January 18 2020...

  • 17 Free Design Tools for 2021

    GIMP (GNU Image Manipulation Program) is a cross-platform tool for quality image creation and manipulation and advanced photo retouching. GIMP provides features to produce icons, graphical design elements, and art for user interface components and mockups. Price: Free.

  • Adding translations to Guix’ website

    As part of GNU, Guix aims to bring freedom to computer users all over the world, no matter the languages they (prefer to) speak. For example, Guix users asking for help can expect an answer even if they do so in languages other than English. We also offer translated software for people more comfortable with a language other than English. Thanks to many people who contribute translations, GNU Guix and the packages it distributes can be used in various languages, which we value greatly. We are happy to announce that Guix’ website can now be translated in the same manner. If you want to get a glimpse on how the translation process works, first from a translator’s, then from a programmer’s perspective, read on. The process for translators is kept simple. Like lots of other free software packages, Guix uses GNU Gettext for its translations, with which translatable strings are extracted from the source code to so-called PO files. If this is new to you, the magic behind the translation process is best understood by taking a look at one of them. Download a PO file for your language at the Fedora Weblate instance. Even though PO files are text files, changes should not be made with a text editor but with PO editing software. Weblate integrates PO editing functionality. Alternatively, translators can use any of various free-software tools for filling in translations, of which Poedit is one example, and (after logging in) upload the changed file. There also is a special PO editing mode for users of GNU Emacs. Over time translators find out what software they are happy with and what features they need. Help with translations is much appreciated. Since Guix integrates with the wider free software ecosystem, if you intend to become a translator, it is worth taking a look at the styleguides and the work of other translators. You will find some at your language’s team at the Translation Project (TP).

  • Marcin 'hrw' Juszkiewicz: Standards are boring

    Standards are boring. Satisfied users may not want to migrate to other boards the market tries to sell them. So Arm market is flooded with piles of small board computers (SBC). Often they are compliant to standards only when it comes to connectors. But our hardware is not standard It is not a matter of ‘let produce UEFI ready hardware’ but rather ‘let write EDK2 firmware for boards we already have’. Look at Raspberry/Pi then. It is shitty hardware but got popular. And group of people wrote UEFI firmware for it. Probably without vendor support even. [...] At the end you will have SBSA compliant hardware running SBBR compliant firmware. Congratulations, your board is SystemReady SR compliant. Your marketing team may write that you are on same list as Ampere with their Altra server. Users buy your hardware and can install whatever BSD, Linux distribution they want. Some will experiment with Microsoft Windows. Others may work on porting Haiku or other exotic operating system. But none of them will have to think “how to get this shit running”. And they will tell friends that your device is as boring as it should be when it comes to running OS on it == more sales.

Google and Mozilla Embrace More Restrictions

  • Extensions in Firefox for Android Update | Mozilla Add-ons Blog

    Starting with Firefox 85, which will be released January 25, 2021, Firefox for Android users will be able to install supported Recommended Extensions directly from addons.mozilla.org (AMO). Previously, extensions for mobile devices could only be installed from the Add-ons Manager, which caused some confusion for people accustomed to the desktop installation flow. We hope this update provides a smoother installation experience for mobile users. As a quick note, we plan to enable the installation buttons on AMO during our regularly scheduled site update on Thursday, January 21. These buttons will only work if you are using a pre-release version of Firefox for Android until version 85 is released on Tuesday, January 25.

  • Porting Firefox to Apple Silicon

    The release of Apple Silicon-based Macs at the end of last year generated a flurry of news coverage and some surprises at the machine’s performance. This post details some background information on the experience of porting Firefox to run natively on these CPUs. We’ll start with some background on the Mac transition and give an overview of Firefox internals that needed to know about the new architecture, before moving on to the concept of Universal Binaries. We’ll then explain how DRM/EME works on the new platform, talk about our experience with macOS Big Sur, and discuss various updater problems we had to deal with. We’ll conclude with the release and an overview of various other improvements that are in the pipeline.

  • Google muzzles all Chromium browsers on 15 March 2021

    What is the relevance I hear you ask. Well, I provide Chromium packages for Slackware, both 32bit and 64bit versions. These chromium packages are built on our native Slackware platform, as opposed to the official Google Chrome binaries which are compiled on an older Ubuntu probably, for maximum compatibility across Linux distros where these binaries are used. One unique quality of my Chromium packages for Slackware is that I provide them for 32bit Slackware. Google ceased providing official 32bit binaries long ago. In my Slackware Chromium builds, I disable some of the more intrusive Google features. An example: listening all the time to someone saying “OK Google” and sending the follow-up voice clip to Google Search. And I create a Chromium package which is actually usable enough that people prefer it over Google’s own Chrome binaries, The reason for this usefulness is the fact that I enable access to Google’s cloud sync platform through my personal so-called “Google API key“. In Chromium for Slackware, you can logon to your Google account, sync your preferences, bookmarks, history, passwords etc to and from your cloud storage on Google’s platform. Your Chromium browser on Slackware is able to use Google’s location services and offer localized content; it uses Google’s translation engine, etcetera. All that is possible because I formally requested and was granted access to these Google services through their APIs within the context of providing them through a Chromium package for Slackware. The API key, combined with my ID and passphrase that allow your Chromium browser to access all these Google services are embedded in the binary – they are added during compilation. They are my key, and they are distributed and used with written permission from the Chromium team. These API keys are usually meant to be used by software developers when testing their programs which they base on Chromium code. Every time a Chromium browser I compiled talks to Google through their Cloud Service APIs, a counter increases on my API key. Usage of the API keys for developers is rate-limited, which means if an API key is used too frequently, you hit a limit and you’ll get an error response instead of a search result. So I made a deal with the Google Chromium team to be recognized as a real product with real users and an increased API usage frequency. Because I get billed for every access to the APIs which exceeds my allotted quota and I am generous but not crazy. I know that several derivative distributions re-use my Chromium binary packages (without giving credit) and hence tax the usage quota on my Google Cloud account, but I cover this through donations, thank you my friends, and no thanks to the leeches of those distros.

Programming Leftovers

  • Spreadsheet annoyance no. 3: quotes have priority

    In an earlier post I complained about spreadsheet programs: Excel, LibreOffice Calc and Gnumeric. All of them confuse non-dates with dates, and automatically interpret certain number strings with 2 colons as [h]:mm:ss. Grrr.

  • Building your own Network Monitor with PyShark – Linux Hint

    Many tools for network analysis have existed for quite some time. Under Linux, for example, these are Wireshark, tcpdump, nload, iftop, iptraf, nethogs, bmon, tcptrack as well as speedometer and ettercap. For a detailed description of them, you may have a look at Silver Moon’s comparison [1]. So, why not use an existing tool, and write your own one, instead? Reasons I see are a better understanding of TCP/IP network protocols, learning how to code properly, or implementing just the specific feature you need for your use case because the existing tools do not give you what you actually need. Furthermore, speed and load improvements to your application/system can also play a role that motivates you to move more in this direction. In the wild, there exist quite several Python libraries for network processing and analysis. For low-level programming, the socket library [2] is the key. High-level protocol-based libraries are httplib, ftplib, imaplib, and smtplib. In order to monitor network ports and the packet stream competitive candidates, are python-nmap [3], dpkt [4], and PyShark [5] are used. For both monitoring and changing the packet stream, the scapy library [6] is widely in use. In this article, we will have a look at the PyShark library and monitor which packages arrive at a specific network interface. As you will see below, working with PyShark is straightforward. The documentation on the project website will help you for the first steps — with it, you will achieve a usable result very quickly. However, when it comes to the nitty-gritty, more knowledge is necessary. PyShark can do a lot more than it seems at first sight, and unfortunately, at the time of this writing, the existing documentation does not cover that in full. This makes it unnecessarily difficult and provides a good reason to look deeper under the bonnet.

  • Roles, h'uh, what are they good for? | Jesse Shy

    What is a role? Put simply, roles are a form of code reuse. Often, the term shared behavior is used. Roles are said to be consumed and the methods ( including attribute accessors ) are flattened into the consuming class. One of the major benefits of roles is they attempt to solve the diamond problem encountered in multi-inheritance by requiring developers to resolve name collisions manually that arise in multi-inheritance. Don't be fooled however, roles are a form of multi-inheritance. I often see roles being used in ways they shouldn’t be. Let’s look at the mis-use of roles, then see an example of shared behavior. I’m using that word inheritance a lot for a reason, one of the two ways I see roles most often misused is to hide an inheritance nightmare. "Look ma, no multi-inheritance support, no problem. I’ll just throw stuff in roles and glum them on wherever I really want to use inheritance. It all sounds fancy, but I am just lumping stuff into a class cause I don’t really understand OO principals."

  • What Is a Software Developer?

    Software developers are highly sought-after tech professionals, and the demand for their skills is continually increasing. In this Life in Tech article, we’ll provide a general look at the various duties and requirements associated with the role of software developer. Let’s start with a basic description before getting into the nuances and specifics. Briefly, then, software developers conceive, design, and build computer programs, says ComputerScience.org. To accomplish this, they identify user needs, write and test new software, and maintain and improve it as needed. Software developers occupy crucial roles in a variety of industries, including tech, entertainment, manufacturing, finance, and government.

  • Steinar H. Gunderson: How others program

    How do others program? I realized today that I've never actually seen it; in more than 30 years of coding, I've never really watched someone else write nontrivial code over a long period of time. I only see people's finished patches—and I know that the patches I send out for review sure doesn't look much like the code I initially wrote. (There are exceptions for small bugfixes and the likes, of course.)

  • Sensible integer scale for Gonum Plot

    Over the years, I found myself multiple times using Gonum Plot. I do find it as a very good and easy to use plotting tool for Go. The problem I found myself, over and over, dealing with is the tickers scale. If you know before-hand the values that can be expected to be created by the application, it is very straightforward, but the majority of times, this is not the case. I often find myself creating a plotting application on data that track events that have not yet happened and cannot predict their range. To solve the issue, I create a package that has a struct that implements the Ticker interface and provides tickers that are usually sensible. Since this struct only works for integer scales, I called it sit, which stands for “Sensible Int Ticks”.

  • Learn JavaScript by writing a guessing game | Opensource.com

    It's pretty safe to say that most of the modern web would not exist without JavaScript. It's one of the three standard web technologies (along with HTML and CSS) and allows anyone to create much of the interactive, dynamic content we have come to expect in our experiences with the World Wide Web. From frameworks like React to data visualization libraries like D3, it's hard to imagine the web without it. There's a lot to learn, and a great way to begin learning this popular language is by writing a simple application to become familiar with some concepts. Recently, some Opensource.com correspondents have written about how to learn their favorite language by writing a simple guessing game, so that's a great place to start!

  • Getting your 3D ready for Qt 6

    As was previously discussed, since the 6.0.0 release of Qt, Qt 3D no longer ships as a pre-compiled module. If you need to use it on your projects, try out the new features, or just see your existing application is ready for the next chapter of Qt’s life, you need to compile Qt 3D from source. In order to do this, you can do it the traditional way ([cq]make ...; make; make install) or use the Conan-based system that is being pioneered with the latest version of the MaintenanceTool.

  • Qt Open-Source Downloads Temporarily Offline Due To Severe Hardware Failure

    Several readers have expressed concerned that Qt open-source downloads have disappeared but The Qt Company has now commented it's only a temporary issue due to a "severe hardware failure" in the cloud. Qt's open-source online installer and offline packages are not currently working for the open-source options but the commercial downloads are working. While that may raise concerns given Qt's increasing commercial focus, The Qt Company posted to their blog that this interruption around open-source package downloads is due to a reported major hardware problem at their cloud provider.

  • Efficient custom shapes in QtQuick with Rust

    Fortunally, the Qt API provides multiple ways to implement custom shapes, that depending on the needs might be enough. There is the Canvas API using the same API as the canvas API on the web but in QML. It’s easy to use but very slow and I wouldn’t recommend it. Instead of the Canvas API, from the QML side, there is the QtQuick Shapes module. This module allows creating more complex shapes directly from the QML with a straightforward declarative API. In many cases, this is good enough for the application developer but this module doesn’t offer a public C++ API. If you need more controls, using C++ will be required to implement custom QQuickItem. Unfortunately drawing on the GPU using QQuickItem is more complex than the QPainter API. You can’t just use commands like drawRect, but will need to convert all your shapes in triangles first. This involves a lot of maths like it can be seen in the example from the official documentation or from the KDAB tutorial (Efficient custom shapes in Qt Quick). A QPainer way is also available with QQuickPaintedItem, but it is slow because it renders your shape in a textured rectangle in the Scene Graph.

  • Changes to the Rustdoc team

    Recently, there have been a lot of improvements in rustdoc. It was possible thanks to our new contributors. In light of these recent contributions, a few changes were made in the rustdoc team.

  • Rustdoc performance improvements

    @jyn514 noticed a while ago that most of the work in Rustdoc is duplicated: there are actually three different abstract syntax trees (ASTs)! One for doctree, one for clean, and one is the original HIR used by the compiler. Rustdoc was spending quite a lot of time converting between them. Most of the speed improvements have come from getting rid of parts of the AST altogether.

  • Why and How to Use Optional in Java |

    The Optional object type in Java was introduced with version 8 of Java. It is used when we want to express that a value might not be known (yet) or it’s not applicable at this moment. Before Java 8 developers might have been tempted to return a null value in this case.

  • GraalVM 21.0 Released With Experimental JVM On Truffle - Phoronix

    Oracle on Tuesday released GraalVM 21.0 as the latest version of their Java VM/JDK that also supports other languages and modes of execution. One of the notable additions with GraalVM 21.0 is supporting Java on Truffle, as an example JVM implementation using the Truffle interpreter. GraalVM's Truffle framework is an open-source library for writing programming language interpreters. With Java on Truffle, it's of the same nature as the likes of JavaScript, Ruby, Python, and R within the GraalVM ecosystem. Java on Truffle allows for improved isolation from the host JVM, run Java bytecode in a separate context from the JVM, running in the context of a native image but with dynamically loaded bytecode allowed, and other Truffle framework features. More details about the Java on Truffle implementation via the GraalVM manual.

Software: Istio, VLC Media Player, Deskreen and Signal

  • Support for Istio 1.7 ends on February 19th, 2021

    According to Istio’s support policy, LTS releases like 1.7 are supported for three months after the next LTS release. Since 1.8 was released on November 19th, support for 1.7 will end on February 19th, 2021. At that point we will stop back-porting fixes for security issues and critical bugs to 1.7, so we encourage you to upgrade to the latest version of Istio (1.8.2). If you don’t do this you may put yourself in the position of having to do a major upgrade on a short timeframe to pick up a critical fix.

  • VLC 3.0.12 Vetinari - VideoLAN
  • VLC Media Player 3.0.12 Released with Apple Silicon Support

    The VideoLAN team announced the release of VLC 3.0.12 as the thirteenth version of the “Vetinari” branch. The new release features native support for Apple Silicon hardware, the M1 processor in new versions of the MacBook Air, MacBook Pro, and Mac mini.

  • Deskreen Makes Any Device With A Web Browser A Second Screen For Your Computer

    Deskreen is a new free and open source application that can be used to make any device (in the same WiFi / LAN network) with a web browser, a second screen for your computer. The tool runs on Linux, Windows and macOS. With Deskreen you can use a phone, tablet (no matter if they use Android, iOS, etc.), smart TV and any other device that has a screen and a web browser (without needing any plugins; it needs JavaScript to be enabled), as a second screen via WiFi or LAN.

  • Roundup of Secure Messengers with Off-The-Grid Capabilities (Distributed/Mesh Messengers)

    Amid all the conversation about Signal, and the debate over decentralization, one thing has often not been raised: all of these things require an Internet connection. [...] “Blogs” have a way to reblog (even a built-in RSS reader to facilitate that), but framed a different way, they are broadcast messages. They could, for instance, be useful for a “send help” message to everyone (assuming that people haven’t all shut off notifications of blogs due to others using them different ways). Briar’s how it works page has an illustration specifically of how blogs are distributed. I’m unclear on some of the details, and to what extent this applies to other kinds of messages, but one thing that you can notice from this is that a person A could write a broadcast message without Internet access, person B could receive it via Bluetooth or whatever, and then when person B gets Internet access again, the post could be distributed more widely. However, it doesn’t appear that Briar is really a full mesh, since only known contacts in the distribution path for the message would repeat it. There are some downsides to Briar. One is that, since an account is fully localized to a device, one must have a separate account for each device. That can lead to contacts having to pick a specific device to send a message to. There is an online indicator, which may help, but it’s definitely not the kind of seamless experience you get from Internet-only messengers. Also, it doesn’t support migrating to a new phone, live voice/video calls, or attachments, but attachments are in the works.