1 month 2 weeks ago
Plus: DeepMind's latest language model research and more

Clearview’s controversial facial recognition technology is getting closer to being patented by the US Patent and Trademark Office.…

1 month 2 weeks ago
'We will eventually learn'

PCs with 5G connectivity could face issues that include international roaming support, but T-Mobile is working through those issues, in addition to figuring out what data plans may look like.…

1 month 2 weeks ago
El Reg maps the tributaries

Red Hat has released CentOS Stream 9, the first major version since the company badly shook its community by announcing it was ending traditional CentOS a year ago.…

1 month 2 weeks ago
The boss isn't too busy to be named

Nvidia's CEO Jensen Huang continues inventing, as if his role in the rise of GPUs wasn't enough.…

1 month 2 weeks ago
Introducing Ventoy

Friday FOSS Fest Ventoy is a free tool that turns any USB key into a multi-boot wonder.…

1 month 2 weeks ago
PWC report shows long list of missed opportunities to shut out extortion crims

Ireland's Health Service Executive (HSE) was almost paralysed by ransomware after a single user opened a malicious file attached to a phishing email, a consultancy's damning report has revealed.…

1 month 2 weeks ago
CFO now ruling the roost as mortgage biz reportedly delays SPAC sale

Better CEO Vishal Garg, best-known for firing 900 employees over one giant Zoom call, is taking time off work while the company hires a third-party to perform a “leadership and cultural assessment.”…

1 month 2 weeks ago
Not great, not terrible

Cloud software biz Hashicorp hit the markets this week with an initial public offering priced at $80 per share after which its stock enjoyed a modest rise as investors cracked open their wallets.…

1 month 2 weeks ago
Thank goodness he didn't make a diversion for Coco Pops

A German employer has been left on the hook after a worker slipped and broke his back on the "commute" from his bed to the home office.…

1 month 2 weeks ago
El Reg, as ever, helps you to get back in the game

Debian is having problems with a current version of Firefox that leaves users with a dangerously outdated browser.…

1 month 2 weeks ago
Prepare to have a very busy weekend of mitigating and patching

An unauthenticated remote code execution vulnerability in Apache's Log4j Java-based logging tool is being actively exploited, researchers have warned after it was used to execute code on Minecraft servers.…

1 month 2 weeks ago
Forget software-as-a-hostage! Customers have more choice when it comes to servers, networking, storage

Hewlett Packard Enterprise's multi-year efforts to remain relevant against the onslaught of cloud giants hinges on convincing resellers to back its as-a-service (aaS) sales model, and yet progress continues to be painfully slow.…

1 month 2 weeks ago
That time Rootkitting for Dummies might as well have been in Microsoft's Plus! Pack

Retired Microsoft engineer, Dave Plummer, offered a blast from the past last week with a look back at the infamous Sony Windows "rootkit" scandal.…

1 month 2 weeks ago
Payment over Mark Hurd dispute hits figures as Ellison bigs up cloud ERP

Oracle sales increased nearly 6 per cent to hit $10.4bn in its Q2 results for fiscal 2022, but the company made a loss due in part to a dispute relating to a former CEO.…

1 month 2 weeks ago
Brace yourself, now come years of appeals

Julian Assange will be sent stateside for trial on criminal charges after the US government won an appeal against an earlier court order that released him from the threat of extradition.…

1 month 2 weeks ago
Microsoft merch of Christmas Past up for grabs

FREE STUFF With the season of giving upon us, the cupboards of Vulture Central are being cleared out and long-forgotten items found that might be of use to our readership. Just think of us as tech tat peddling Gumtree.…

1 month 2 weeks ago
Readers have their say

Register debate It is entirely human and in some senses desirable to eliminate as much of the complexity out of the IT stack as makes sense. And it is also entirely human to be accepting of the need for choice and to acknowledge the necessary frustration of complexity.…

1 month 2 weeks ago
Pat McGovern knew his way around a trash can

Something for the Weekend, Sir? Spies in space are watching me as I take a shower.…

1 month 2 weeks ago
Taming the multi-tentacled IT beast with spoofing, shell scripts, and a bit of C

On Call It's another tale from the world of telephony where everything goes wrong in this week's On Call.…

1 month 2 weeks ago
Imaging X-ray Polarimetry Explorer's two year mission will check out polarization of black holes, neutrons and other celestial objects

In the wee hours of Thursday morning, a SpaceX Falcon 9 rocket launched NASA’s Imaging X-ray Polarimetry Explorer (IXPE) mission into orbit from Florida’s Kennedy Space Center.…

1 month 2 weeks ago
<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh6.googleusercontent.com/2SSeaacaUwIepHMTbUKmPyQzhdU5i67HaK-2zh7-Va2wrwGEnD4jYltwAiRWxKVDa1MBQD0bpBS_h182FEtecmvRvDmNIA2FPPXK4vT9mXAeUwhdiKCQAI9x0Njk_9rMxg43uQ9D" width="720" /> </noscript>

Learning how to fly. Again. Because certain technologies and processes can always be optimized. Take laptops, for instance (I always wanted to become a laptop designer!). From foldable screens to computers that incorporate e-readers, we are always pushing for new designs that address ergonomic requirements but also improve the way we work. 

We are doing the same with drones. This month features innovations that dare to challenge the status quo of how we fly. 

The seat belt sign is on, and we’re cleared for takeoff. Let’s go! 

ROS CVE alert – ensuring security for robotics

We mentioned this in our previous newsletter, but to increase awareness, we’ll repeat it this month, too. Early in October 2021, Open Robotics registered a CVE security vulnerability that affects ROS Kinetic, Melodic, and Noetic. 

If you are working with any of these ROS distributions, act now. You can find information on what you should do here

Four wings are just overrated 

When we think of drones, we instantly picture four propellers in a square formation. But since humankind dared to fly, it has proposed visionary designs to leverage aerodynamics. It has been inspired by nature, from insects’ evolution to conquer the sky to trees in their never-ending quest for survival. Do you want to see how? This month brings 3 drones that will inspire you while teaching you how to fly. 

F-SAM – when all you need is one wing

Maple trees are the source of inspiration behind this drone. To be more precise, their seeds – samara seeds. If you Google it, you will find countless videos of these seeds that incorporate what can be called a single-wing. You will also find dedicated videos that study the aerodynamics behind the seed pods’ spin-down process. 

<noscript> <img alt="" height="288" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_500,h_288/https://lh3.googleusercontent.com/-BPTWGpONbJpY_4VLLHcETTnRiA7lsGR0yKZGJFB_dj-pPEyNwTUw9M0PEq3-5nS_1gTPjb-9_D9NoMPAcm43H9CRvH8HIRb3lvCydVOsk9feZOhK_uNETgwIlWEeueMCYUOV1DX" width="500" /> </noscript>

This design is what F-SAM wants to accomplish. F-SAM stands for “Foldable Single Actuator Monocopter,” a monocopter designed by the Singapore University of Technology & Design. It uses just one single actuator for control, which gives complete directional control. Yes, keeping its precision is the challenge. Directional control requires repetitive pulsing of the motor at a point during the aircraft’s spin when it’s pointed in the direction you want it to go. 

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh5.googleusercontent.com/W1g_qwjNjyeWZFicHaw_oGaNc6cqn8AFaQYJ5WLalXIDcwrdonja7jBBMAuUJdg2aEpDaHwD_sCQtni2JfkeEgEmuZVO0JZGDdYjA7wkk7SwbfUUtN0tKfnAif8BHJZfGMgxo0In" width="720" /> </noscript>

But what are the advantages of this design? Well, let’s not mention its affordability, ease of transport, and ease of repair (although we just did). Instead, let’s talk about its inherently stable design. F-SAM spins all by itself in a stable and predictable way. This means that if there is an update problem, or the battery dies, it’ll just spin gently down like a samara seed. (If it’s your first time thinking about update failures, check this feature of Ubuntu Core.) 

Learn more about F-SAM.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh3.googleusercontent.com/hGGmZP7l1fFqWkhCXOjswtG4Ci3m123tBoTSo7YEBQRZ2eJKX5x2zSJLmerOx1SqZcFypAAvjcJoJ6x21eAbE9TMl8JZ_EFgHp1TaRS1_e4KIpRaoeJLT2us41fk__iuRns8FmTI" width="720" /> </noscript> No wings, no problem

From one to none. DOCOMO shows that sometimes you don’t even need wings or a propeller to fly. This drone resembles an aerostat but indoors. Like a blimp or hot air balloon, it is also filled with a noble gas, helium, to stay aloft. But it’s propelled by ultrasonic vibrations that move air, allowing the drone to go up and down, right and left. 

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh5.googleusercontent.com/wQGUsrHF8MWM3BWNLHmpwCkwOws-7r9CmXcFJFXfFw5QK86V8fSoAs6ISTfw5URvZjQ4xgnU_P0lue2vwgqOW3VRcjR1rb4o6I-VXemT_k4e9SfNA73ezAI_xag85XjppFHMT5ll" width="720" /> </noscript>

The module makes little noise with its minute vibrations and is safe to touch, so even if the drone were to collide with a person or an object, serious injury or damage would be highly unlikely. As such, the drone is ideal for indoors. 

But seriously, look at that glow! Now imagine an event such as a concert, party or spa retreat – this type of drone could seriously set the mood for attendees. It also comes with a camera, unlocking the usual benefits for autonomy, operation, and monitoring. 

Flying like a beetle 

Plants are not our only source of inspiration. Animals and insects also play a role in engineering – in this case, beetles. Elytra, the hard coverings that protect beetles’ folded wings, inspired the multimodal drone robotic Elytra. We have all seen this mechanism at work. When they are ready to fly, their wings unfold from their case, which caps and shields them while moving over terrain. The same principle applies for the robotic Elytra. 

Capable of aerial and terrestrial locomotion, Elytra benefits from protective systems that prevent damage to its delicate aerial mechanisms. The proposed structure consists of adding an additional set of retractable wings (the “elytra”), which can rapidly encapsulate the main folding wings when protection is needed. This system mitigates added weight and drag, increasing lift generation and stall delay at high angles of approach. 

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh3.googleusercontent.com/kNzco_ts2MlagC3v1bBuG0VzrNUa0Rtj5yDp3C4SV6A8QWLlE9a4btSxqkvVzzd0vuXSzyEBTNf_mpPsXqUHv2woEKL2L8CVRTM4JTMsDJxlDEadD91bCABEUD3RitjxxOB2BGf9" width="720" /> </noscript>

Here is how the system works as described in their paper:

  1. The outer section of the hind-wing starts folding on top of the inner hind-wing section by enabling a one DoF actuator.
  2. In less than 0.2 seconds, the one DoF actuator in the root of the hind-wing initiates folding of the whole wing section on top of the fuselage compartment.
  3. Before the completion of the hind-wing folding, the 2 DoF actuators of the elytron operate simultaneously.
  4. The elytron starts approaching the fuselage.
  5. The elytron folds on top of the hind-wing and thus fully encloses it within the compartment that the concave elytron surface and the fuselage create.
  6. Similar to beetles, the hind-wing now is completely enclosed and geometrically isolated from its surroundings, and thus ready for ground locomotion.
<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh3.googleusercontent.com/EY3ba267A5vgxP1TYTuqZvJFHT0KYEhFJ0_IdguP5xNRBulYAtbTV1KmRM1OfFcLQKOBcyGUKa3FId7vVn8NlhIEUZzrRjBM4JFTur-ruLwxqZd6yAw-pWWxc4Bzxat5YNHGXXtv" width="720" /> </noscript> A wheeled robot, as versatile as a swiss knife

Last month we talked about Leo, the bipedal drone. Today, we bring you another hybrid robot that unlocks 3 different sets of configurations; ANYmal. This robot comes from ETH Zürich’s Robotic Systems Lab and is now commercially pursued by its spin-out, the Swiss-Mile company. 

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh3.googleusercontent.com/gSTfkx_NsA4m646wT1O-huTzY9BxM_Lyvo7fxBuTQXSC-pKfKpNNLl8lfDOgpb60NV1vqwyG8GCZ055uSdTelFex1GjmEJeg6ZxCZtKdeMPlhbCUWZQ_aB5czIlOMaKR_HZJ_Fzj" width="720" /> </noscript>

The robot can operate as a mobile wheeled robot, a quadruple robot, and a humanoid robot.  With this, it can efficiently overcome flat terrains, go over obstacles like steps and stairs, and carry heavy payloads in indoor and outdoor spaces. 

Swiss-Mile is focusing on commercial tasks that require a unique combination of speed and obstacle traversal, like mapping or inspecting complex spaces. Wheel-legged robots could be used for a wide variety of tasks, including mapping, inspection, disaster relief, and logistics in urban environments, to name a few.  

Cyberdog, powered by Ubuntu 

You probably saw Xiaomi’s Cyberdog, but did you know it’s running Ubuntu? Yes, Xiaomi is also powering their new range of robotics devices with open source, as they aim to provide the industry and researchers with an affordable and powerful four-legged robot.

Learn more about Cyberdog in our spotlight blog.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh4.googleusercontent.com/XGgiFj10ARCfJ16nV_9KRiS2l4bKg50a94s9q4fXMxYemT6IqVdHshBevR0XbvTF0PkfW4tMrs-14RoPIPgdT_wshzgHhLj0v10sDv439q5SSshGKZUdrhNZ737g92Oj9Bi6eVaA" width="720" /> </noscript> Open source robotics – white papers

Ok, here is an unpopular opinion for 2022: Docker doesn’t solve it all. On the contrary, it was designed and is maintained for one main application: elastic cloud operations. That is how it became a thing, and that is how Docker Inc has been driving its roadmap. 

But because we didn’t have anything better, we started using it for anything and everything. It became our hammer for fixing nails, but we also use it for polishing surfaces, cutting boards, drilling holes, and embedding applications on edge devices. It’s an overstep, an unsupported overstep.

Wait, are we telling you that there is another way? Yes, there is. It’s called “containers designed for embedded devices.” Yes, there are containers for this.  

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh4.googleusercontent.com/De4_5n2f9nAvJbO4NUho800ZGUaWBbdHIXCjuoleM0r-YPRV-m4G1Zu7aYoXaqxOWEEHQYhzdU_HHQQL4lAmnbqPV5bOtPHOUQfyr8tUAPjea3VKOSI8ewSXOXK1JfZckHbLTsJZ" width="720" /> </noscript>

So if you dare to reinvent how we fly, you will love this ROS & Docker whitepaper

Open source robotics – video news

Another month, another video. More news, more applications, more robots!  

Here it is

And if you want to feature your robotics application, just send us an email at robotics.community@canonical.com.

Open-source robotics – tutorial

This month, we bring two tutorials to help onboard developers and enthusiasts alike. 

The first is a tutorial about Groot, a companion application of the BehaviorTree.CPP library that is used to create, edit and visualise behaviour trees.

The second is how to create a Robot Simulation Model for ROS using URDF files, a self-contained specification of the robot.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh4.googleusercontent.com/v32Dvy5LRnxIjdZk_XNKPS5UytbmnUKCXutNvEXo30vKhppDF5su3P2uFTX-HoEEEHrn4jBDgxyFLVyOt8TPmk4U8H0WHihMqvYwv-8hXnE9xqJqLENHtmzu-muIEL3YlFKCnxkG" width="720" /> </noscript>

So schedule some time to keep learning – and don’t forget to thank the authors. Thank you for your contribution!

Stay tuned for more robotics news

As always, we would love to learn from you. Send us a summary of your robotics innovation and project to robotics.community@canonical.com, and we will share it in our next robotics newsletter or monthly video. Thanks for reading!

1 month 2 weeks ago

GhostBSD Release 21.11.24:

Tux Paint 0.9.27 is released:

SQLite 3.37 Released:

The OpenPrinting project has released CUPS 2.4.0:

WebOS Open Source Edition 2.14 Released:

4MLinux 38.0 in the wild:

SDL 2.0.18 Multimedia Library Released:

Ubuntu RescuePack 21.11 Anti-Virus Boot Disk Update:

NixOS 21.11 using the Nix package manager:

Release of Neovim 0.6.0:

The first release of the Open 3D Engine game engine opened by Amazon:

CentOS Stream 9 distribution is officially presented:


Full Circle Magazine
Host: bardmoss@pm.me, @bardictriad
Bumper: Canonical
Theme Music: From The Dust – Stardust

1 month 2 weeks ago
Windows Subsystem for Linux for data scientists

Ubuntu is the number one choice for data scientists worldwide. It is also by far the most popular Linux distribution used on public clouds with machine learning offerings. However, we don’t forget about our Windows friends – many of whom had their operating system chosen by corporate IT departments. Windows users can still get all the benefits of using Ubuntu thanks to Windows Subsystem for Linux.

This post will walk you through a complete setup from the new Windows 10 installation to a complete data scientist work environment. The assumption is that you have a laptop / desktop with Windows 10 and NVidia GPU. What we want to achieve is a stack like this:

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh4.googleusercontent.com/33YuebmPz4YTpQIj44H2iRyUypZZ7q76HdvqSQ_YZFl7edfHAE3BOCiOoK4Ag6BXuQE8l-ZZx8xruVB6uyDnsSTVEDJVR3Ruwls2--wxrhCvaqMbnSIP7wZ0aN-IIAYV6_ixV_VQ" width="720" /> </noscript> Step 1: Install WSL

First, we need to start by installing WSL itself. 

Open PowerShell as an Administrator:

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh6.googleusercontent.com/rClpbP9X3f7PRQn9A307TT4TWdQMEnQRQthOqe2VIUpc-lGgUNgr1vbgzolyrbaCdM0mqe6yXBMNO_jhmfpOKrsEZjAEL7RBCdgrBiud8FnlHfiGEMU0QtMUwHCQ5JiYVNeVQALr" width="720" /> </noscript>

Type the following command to enable WSL:

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

Restart your computer.

After restarting, download and install the WSL 2 Linux kernel from Microsoft for your device architecture:

Finally, we recommend you to set WSL 2 as the default WSL environment:

wsl.exe –set-default-version 2

Step 2: Install Ubuntu

Download Ubuntu for WSL from the Microsoft Store.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh4.googleusercontent.com/xvklfRg67_iI1zxxUddK16pbq0_thYDakPE757ywHQb1uY7-BNBwYv_vL1MbSuAie_QTnaCojkkMJCtSXr_jOj3JEwrs-HwTUu0V5OKreh-nDVA48pW6ybrcEfng9YOUzf7dXnA8" width="720" /> </noscript>

Run Ubuntu from the Start menu.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh6.googleusercontent.com/SQZ5LD905W3Vvz7-KgLnW_END8dDBzAqaCWIgIRD3TYWEa3WBfGltLWSj8Hftq9cIcBLr2sVX5krT1BEV9nSSSqb7kHNPrTdnumLBgnKWJbLfms-OpQ70lIn36Z0iSMPvRZWKL4m" width="720" /> </noscript>

Select a username and password for your administrative user.

<noscript> <img alt="" src="https://res.cloudinary.com/canonical/image/fetch/f_auto,q_auto,fl_sanitize,c_fill,w_720/https://lh3.googleusercontent.com/7I3AgyT_61xMf12YWMvpR9XExlG-ilw-Rhy9iL8YqngTu0FZWHI4s61A4E843dWHrZS4j3Fk7xU0dnR-cRRzVJFHJQ7ZY7xEoGW65ydSlRnaK_kRMqEetpUFGPaxCPDNHoDc7Do_" width="720" /> </noscript>

Once the Ubuntu installation is complete, we recommend you download and try the new Windows Terminal for the best Ubuntu on WSL experience.

Step 3: Install GPU drivers and Docker

Next, install the proper GPU drivers. Depending on your GPU, choose the right package from https://developer.nvidia.com/cuda/wsl/download. There is no need to install the driver inside WSL VMs, as they use the driver installed in Windows. 

After that, open the Windows terminal, and set up Docker inside your Ubuntu installation:

curl https://get.docker.com | sh  

distribution=$(. /etc/os-release;echo $ID$VERSION_ID)

curl -s -L https://nvidia.github.io/nvidia-docker/gpgkey | sudo apt-key add –

curl -s -L https://nvidia.github.io/nvidia-docker/$distribution/nvidia-docker.list | sudo tee /etc/apt/sources.list.d/nvidia-docker.list

sudo apt-get update

sudo apt-get install -y nvidia-docker2 

sudo service docker stop

sudo service docker start

Now, check that everything is working fine by running a benchmark:

docker run –gpus all nvcr.io/nvidia/k8s/cuda-sample:nbody nbody -gpu -benchmark 

Step 4: Install Data Science Stack

After this, install the Data Science Stack:

git clone https://github.com/NVIDIA/data-science-stack

cd data-science-stack

./data-science-stack setup-system

This allows you to now create and run containers with all necessary tools:

./data-science-stack list

./data-science-stack build-container

./data-science-stack run-container

The reverse of build-container is purge-container.

Step 5: Enjoy!

With everything set up, youcan now go to http://localhost:8888/ and enjoy the Jupyter notebook and full power of Linux CLI.

You can try this, for example, with HP Z series laptops, which come with a pre-setup environment so that you can start working just after the first boot of your new machine.

What’s next

There are many more reasons why Ubuntu is the de-facto standard operating system for data science. You can find them all on https://ubuntu.com/ai 

1 month 2 weeks ago

Patrão fora, dia insano na loja… Esta semana o Diogo e o Miguel divagaram sobre vespas asiáticas regadas com vinho tinto, adolescentes foram nadar na piscina dos grandes, e governos perderam a cabeça. Tudo isto e muito mais neste capítulo do PUP.

Já sabem: oiçam, subscrevam e partilhem!

  • https://www.youtube.com/watch?v=444PXLk0F7M
  • https://blog.documentfoundation.org/blog/2021/11/18/german-state-planning-to-switch-25000-pcs-to-libreoffice/
  • https://repo.lolsnap.org/lol-snap
  • https://www.youtube.com/watch?v=rGgmwcdxr88
  • https://www.omgubuntu.co.uk/2021/11/ubuntu-is-working-on-a-new-firmware-updater-app
  • https://github.com/canonical/firmware-updater
  • https://twitter.com/RudraSaraswat1/status/1465708900506738695
  • https://twitter.com/costalesdev/status/1411047501294100480
  • https://www.cyclosm.org
  • https://keychronwireless.referralcandy.com/3P2MKM7
  • https://shop.nitrokey.com/shop/product/nk-pro-2-nitrokey-pro-2-3?aff_ref=3
  • https://shop.nitrokey.com/shop?aff_ref=3
  • https://youtube.com/PodcastUbuntuPortugal

Podem apoiar o podcast usando os links de afiliados do Humble Bundle, porque ao usarem esses links para fazer uma compra, uma parte do valor que pagam reverte a favor do Podcast Ubuntu Portugal.
E podem obter tudo isso com 15 dólares ou diferentes partes dependendo de pagarem 1, ou 8.
Achamos que isto vale bem mais do que 15 dólares, pelo que se puderem paguem mais um pouco mais visto que têm a opção de pagar o quanto quiserem.

Se estiverem interessados em outros bundles não listados nas notas usem o link https://www.humblebundle.com/?partner=PUP e vão estar também a apoiar-nos.

Atribuição e licenças

Este episódio foi produzido por Diogo Constantino e Tiago Carrondo e editado por Alexandre Carrapiço, o Senhor Podcast.

A música do genérico é: “Won’t see it comin’ (Feat Aequality & N’sorte d’autruche)”, por Alpha Hydrae e está licenciada nos termos da [CC0 1.0 Universal License](https://creativecommons.org/publicdomain/zero/1.0/).

Este episódio e a imagem utilizada estão licenciados nos termos da licença: Attribution-NonCommercial-NoDerivatives 4.0 International (CC BY-NC-ND 4.0), cujo texto integral pode ser lido aqui. Estamos abertos a licenciar para permitir outros tipos de utilização, contactem-nos para validação e autorização.

1 month 2 weeks ago

Welcome to the Ubuntu Weekly Newsletter, Issue 712 for the week of November 28 – December 4, 2021. The full version of this issue is available here.

In this issue we cover:

The Ubuntu Weekly Newsletter is brought to you by:

  • Krytarik Raido
  • Bashing-om
  • Chris Guiver
  • Wild Man
  • And many others

If you have a story idea for the Weekly Newsletter, join the Ubuntu News Team mailing list and submit it. Ideas can also be added to the wiki!

Except where otherwise noted, this issue of the Ubuntu Weekly Newsletter is licensed under a Creative Commons Attribution ShareAlike 3.0 License

1 month 2 weeks ago

On the road to AppStream 1.0, a lot of items from the long todo list have been done so far – only one major feature is remaining, external release descriptions, which is a tricky one to implement and specify. For AppStream 1.0 it needs to be present or be rejected though, as it would be a major change in how release data is handled in AppStream.

Besides 1.0 preparation work, the recent 0.15 release and the releases before it come with their very own large set of changes, that are worth a look and may be interesting for your application to support. But first, for a change that affects the implementation and not the XML format:

1. Completely rewritten caching code

Keeping all AppStream data in memory is expensive, especially if the data is huge (as on Debian and Ubuntu with their large repositories generated from desktop-entry files as well) and if processes using AppStream are long-running. The latter is more and more the case, not only does GNOME Software run in the background, KDE uses AppStream in KRunner and Phosh will use it too for reading form factor information. Therefore, AppStream via libappstream provides an on-disk cache that is memory-mapped, so data is only consuming RAM if we are actually doing anything with it.

Previously, AppStream used an LMDB-based cache in the background, with indices for fulltext search and other common search operations. This was a very fast solution, but also came with limitations, LMDB’s maximum key size of 511 bytes became a problem quite often, adjusting the maximum database size (since it has to be set at opening time) was annoyingly tricky, and building dedicated indices for each search operation was very inflexible. In addition to that, the caching code was changed multiple times in the past to allow system-wide metadata to be cached per-user, as some distributions didn’t (want to) build a system-wide cache and therefore ran into performance issues when XML was parsed repeatedly for generation of a temporary cache. In addition to all that, the cache was designed around the concept of “one cache for data from all sources”, which meant that we had to rebuild it entirely if just a small aspect changed, like a MetaInfo file being added to /usr/share/metainfo, which was very inefficient.

To shorten a long story, the old caching code was rewritten with the new concepts of caches not necessarily being system-wide and caches existing for more fine-grained groups of files in mind. The new caching code uses Richard Hughes’ excellent libxmlb internally for memory-mapped data storage. Unlike LMDB, libxmlb knows about the XML document model, so queries can be much more powerful and we do not need to build indices manually. The library is also already used by GNOME Software and fwupd for parsing of (refined) AppStream metadata, so it works quite well for that usecase. As a result, search queries via libappstream are now a bit slower (very much depends on the query, roughly 20% on average), but can be mmuch more powerful. The caching code is a lot more robust, which should speed up startup time of applications. And in addition to all of that, the AsPool class has gained a flag to allow it to monitor AppStream source data for changes and refresh the cache fully automatically and transparently in the background.

All software written against the previous version of the libappstream library should continue to work with the new caching code, but to make use of some of the new features, software using it may need adjustments. A lot of methods have been deprecated too now.

2. Experimental compose support

Compiling MetaInfo and other metadata into AppStream collection metadata, extracting icons, language information, refining data and caching media is an involved process. The appstream-generator tool does this very well for data from Linux distribution sources, but the tool is also pretty “heavyweight” with lots of knobs to adjust, an underlying database and a complex algorithm for icon extraction. Embedding it into other tools via anything else but its command-line API is also not easy (due to D’s GC initialization, and because it was never written with that feature in mind). Sometimes a simpler tool is all you need, so the libappstream-compose library as well as appstreamcli compose are being developed at the moment. The library contains building blocks for developing a tool like appstream-generator while the cli tool allows to simply extract metadata from any directory tree, which can be used by e.g. Flatpak. For this to work well, a lot of appstream-generator‘s D code is translated into plain C, so the implementation stays identical but the language changes.

Ultimately, the generator tool will use libappstream-compose for any general data refinement, and only implement things necessary to extract data from the archive of distributions. New applications (e.g. for new bundling systems and other purposes) can then use the same building blocks to implement new data generators similar to appstream-generator with ease, sharing much of the code that would be identical between implementations anyway.

2. Supporting user input controls

Want to advertise that your application supports touch input? Keyboard input? Has support for graphics tablets? Gamepads? Sure, nothing is easier than that with the new control relation item and supports relation kind (since 0.12.11 / 0.15.0, details):

<supports> <control>pointing</control> <control>keyboard</control> <control>touch</control> <control>tablet</control> </supports> 3. Defining minimum display size requirements

Some applications are unusable below a certain window size, so you do not want to display them in a software center that is running on a device with a small screen, like a phone. In order to encode this information in a flexible way, AppStream now contains a display_length relation item to require or recommend a minimum (or maximum) display size that the described GUI application can work with. For example:

<requires> <display_length compare="ge">360</display_length> </requires>

This will make the application require a display length greater or equal to 300 logical pixels. A logical pixel (also device independent pixel) is the amount of pixels that the application can draw in one direction. Since screens, especially phone screens but also screens on a desktop, can be rotated, the display_length value will be checked against the longest edge of a display by default (by explicitly specifying the shorter edge, this can be changed).

This feature is available since 0.13.0, details. See also Tobias Bernard’s blog entry on this topic.

4. Tags

This is a feature that was originally requested for the LVFS/fwupd, but one of the great things about AppStream is that we can take very project-specific ideas and generalize them so something comes out of them that is useful for many. The new tags tag allows people to tag components with an arbitrary namespaced string. This can be useful for project-internal organization of applications, as well as to convey certain additional properties to a software center, e.g. an application could mark itself as “featured” in a specific software center only. Metadata generators may also add their own tags to components to improve organization. AppStream gives no recommendations as to how these tags are to be interpreted except for them being a strictly optional feature. So any meaning is something clients and metadata authors need to negotiate. It therefore is a more specialized usecase of the already existing custom tag, and I expect it to be primarily useful within larger organizations that produce a lot of software components that need sorting. For example:

<tags> <tag namespace="lvfs">vendor-2021q1</tag> <tag namespace="plasma">featured</tag> </tags>

This feature is available since 0.15.0, details.

5. MetaInfo Creator changes

The MetaInfo Creator (source) tool is a very simple web application that provides you with a form to fill out and will then generate MetaInfo XML to add to your project after you have answered all of its questions. It is an easy way for developers to add the required metadata without having to read the specification or any guides at all.

Recently, I added support for the new control and display_length tags, resolved a few minor issues and also added a button to instantly copy the generated output to clipboard so people can paste it into their project. If you want to create a new MetaInfo file, this tool is the best way to do it!

The creator tool will also not transfer any data out of your webbrowser, it is strictly a client-side application.

And that is about it for the most notable changes in AppStream land! Of course there is a lot more, additional tags for the LVFS and content rating have been added, lots of bugs have been squashed, the documentation has been refined a lot and the library has gained a lot of new API to make building software centers easier. Still, there is a lot to do and quite a few open feature requests too. Onwards to 1.0!