Language Selection

English French German Italian Portuguese Spanish

Programming: libinput, dependencies and python

Filed under
Development
  • libinput's internal building blocks

    Ho ho ho, let's write libinput. No, of course I'm not serious, because no-one in their right mind would utter "ho ho ho" without a sufficient backdrop of reindeers to keep them sane. So what this post is instead is me writing a nonworking fake libinput in Python, for the sole purpose of explaining roughly how libinput's architecture looks like. It'll be to the libinput what a Duplo car is to a Maserati. Four wheels and something to entertain the kids with but the queue outside the nightclub won't be impressed.

    The target audience are those that need to hack on libinput and where the balance of understanding vs total confusion is still shifted towards the latter. So in order to make it easier to associate various bits, here's a description of the main building blocks.

    libinput uses something resembling OOP except that in C you can't have nice things unless what you want is a buffer overflow\n\80xb1001af81a2b1101. Instead, we use opaque structs, each with accessor methods and an unhealthy amount of verbosity. Because Python does have classes, those structs are represented as classes below. This all won't be actual working Python code, I'm just using the syntax.

  • Dependencies. Now with badges!

    Welcome to post number twenty in the randomly redundant R rant series of posts, or R4 for short. It has been a little quiet since the previous post last June as we’ve been busy with other things but a few posts (or ideas at least) are queued.

    Dependencies. We wrote about this a good year ago in post #17 which was (in part) tickled by the experience of installing one package … and getting a boatload of others pulled in. The topic and question of dependencies has seen a few posts over the year, and I won’t be able to do them all justice. Josh and I have been added a few links to the tinyverse.org page. The (currently) last one by Russ Cox titled Our Software Dependency Problem is particularly trenchant.

  • Online Game Manual and Sound On Off
  • 5 Examples to Jumpstart Object Oriented Programming in Python
  • Plot the technical data for a stock
  • Count the number of audiences around you in the theater
  • Python Testing 101 with pytest

More in Tux Machines

Tor-Powered Tails 3.13 Anonymous Linux OS Adds Extra Security and Latest Updates

Powered by the Linux 4.19.28 kernel, the Tails 3.13 operating system is now available with latest TOR technologies to help you stay hidden while surfing the Internet, including the Tor Browser 8.0.7 anonymous web browser and Tor 0.3.5.8 client and server for the anonymous Tor network. However, probably the most important addition in the Tails 3.13 release is the updated Intel microcode to version 3.20180807a.2, which adds an extra security measure against more variants of the well-known Spectre, Meltdown, and L1TF (Level 1 Terminal Fault) security vulnerabilities. Read more

NetworkManager 1.16 Released with WPA3-Personal and WireGuard VPN Support, More

NetworkManager 1.16 has been released two days after the launch of the GNOME 3.32 desktop environment and promises lots of exciting new features and improvements, starting with support for the new WireGuard protocol implemented in the Linux kernel for creating secure IPv4 and IPv6 VPNs (Virtual Private Networks). "Unlike other VPN solutions NetworkManager supports, WireGuard tunneling will be entirely handled by the Linux kernel. This has an advantages in terms of performance, and also removes the needs of a VPN plugin," explained developer Lubomir Rintel in a recent blog article. Read more

What’s New in ArcoLinux 19.2 and MakuluLinux Core

NVIDIA GeForce GTX 1660 Linux Benchmarks

Last week NVIDIA announced the GeForce GTX 1660 as the newest RTX-less Turing GPU but costing only $219+ USD. The GTX 1660 is a further trimmed down version of the GeForce GTX 1660 Ti that launched several weeks prior. After picking up an ASUS GeForce GTX 1660 Phoenix Edition, here are Linux OpenGL/Vulkan gaming benchmarks compared to a wide assortment of AMD Radeon and NVIDIA GeForce graphics cards under Ubuntu. The GeForce GTX 1660 features 1408 CUDA cores (compared to 1536 with the GTX 1660 Ti) while having a 1785MHz boost clock frequency and 1530MHz base clock frequency. The GeForce GTX 1660 opts for 6GB of GDDR5 unlike the 6GB GDDR6 used by the GTX 1660 Ti, which means only around 192GB/s of video memory bandwidth compared to 288GB/s with the Ti model. The other specifications are largely in common with the GeForce GTX 1660 Ti and the other Turing GPUs aside from lacking the RT/tensor cores. Read more