Language Selection

English French German Italian Portuguese Spanish

About Tux Machines

Wednesday, 20 Nov 19 - Tux Machines is a community-driven public service/news site which has been around for over a decade and a half and primarily focuses on GNU/LinuxSubscribe now Syndicate content

Search This Site

today's howtos and leftovers

Filed under
Misc
HowTos

GNU and OSS Leftovers

Filed under
GNU
OSS
  • Nick Richards: Linux Application Summit 2019

    It was a great conference with a diverse crew of people who all care about making apps on Linux better. I particularly enjoyed Frank’s keynote on Linux apps from the perspective of Nextcloud, an Actual ISV. Also worth your time is Rob’s talk on how Flathub would like to help more developers earn money from their work; Adrien on GTK and scalable UIs for phones; Robin on tone of voice and copywriting; Emel on Product Management in the context of GNOME Recipes and Paul Brown on direct language and better communication. There were also great lightning talks including a starring turn by one of my former colleagues Martin Abente Lahaye who showed off the work he’s been doing to make the Sugar educational applications more widely available with Flatpak. After a bit of review and some polish in the cafe they’re now starting to appear on Flathub. All of these videos are available to watch in the YouTube livestream playback, and I’m sure individually soon when appropriately processed.

    I gave a talk entitled Product Management In Open Source. Astute readers will recognise the title from the similar talk I gave last year at GUADEC, however the content is actually fairly different. Emel’s talk that I mentioned above covered quite a lot of the basic material so I concentrated more on how individual app developers could use Product Management techniques to make their own practice a bit more deliberate and help them guide and prioritize their work.

  • Collabora sponsoring LibreOffice Developer Bootcamp in Ankara

    On November 13 more than 120 students in Ankara Hacettepe University’s Beytepe Campus joined the first session of the LibreOffice Developer Bootcamp, a course for students with interest in C++. There is a session every week, until the end of the semester.

  • Why AI Should Be Our Ally, Not Our Enemy

    Community-driven open source projects are at the forefront of innovation of virtually every leading technology trend. The fields of AI, ML, deep learning, predictive analysis, and neural networks are no exception.

    It’s also worth noting that HPC is a vital element for successfully delivering AI and ML. Both rely on high levels of compute capacity for fast analysis of huge datasets – and Linux is at the heart of all the top-performing HPC solutions. Just this week, the latest TOP500 list of supercomputers was released. It was no surprise to see that, yet again, every one of the world’s fastest computers run on Linux.

  • Come together for free software

    Here at the Free Software Foundation (FSF), we strongly believe that one person can make a difference. Our main task, as the principal organization in the fight for user freedom, is one of connection; to bring people together around an unwavering set of principles. We will achieve global software freedom by staying the course, by focusing on education, and by making tools and solutions available, all by working together with this passionate and diverse community.

  • GNU Health patchset 3.6.1 released !

    GNU Health 3.6.1 patchset has been released !

  • Google Shakes Up Its 'TGIF'—and Ends Its Culture of Openness

    Pichai cited decreased attendance rates, the difficulty of running a real-time gathering across time zones, and an uptick in meetings among big product groups like Cloud or YouTube. His most resonant reason, however, was that Google employees could no longer be trusted to keep matters confidential. He cited “a coordinated effort to share our conversations outside of the company after every TGIF ... it has affected our ability to use TGIF as a forum for candid conversations on important topics.” He also noted that while many want to hear about product launches and business strategies, some attend to “hear answers on other topics.” It seems obvious he was referring to recent moments when aggrieved employees registered objections to Google’s policies and missteps—on developing a search engine for China, bestowing millions of dollars to executives charged with sexual misconduct, or hiring a former Homeland Security apparatchik. Pichai says Google may address such issues in specific town-hall meetings when warranted.

Programming Leftovers

Filed under
Development
  • Using cURL in Python with PycURL

    In this tutorial, we are going to learn how to use PycURL, which is an interface to the cURL library in Python. cURL is a tool used for transferring data to and from a server and for making various types of data requests. PycURL is great for testing REST APIs, downloading files, and so on. Some developers prefer using Postman for testing APIs but PycURL is another suitable option to do so as it supports multiple protocols like FILE, FTPS, HTTPS, IMAP, POP3, SMTP, SCP, SMB, etc. Moreover, PycURL comes in handy when a lot of concurrent, fast, and reliable connections are required.

    As mentioned above, PycURL is an interface to the libcURL library in Python; therefore PycURL inherits all the capabilities of libcURL. PycURL is extremely fast (it is known to be much faster than Requests, which is a Python library for HTTP requests), has multiprotocol support, and also contains sockets for supporting network operations.

  • Faster Winter 3: Difference Lists

    Today, we will tackle the big bad memory leak that eats up my laptop’s memory.

    A quick look at the heap profile (+RTS -h) showed that the memory was filling up with lists. Not very helpful, as lists are everywhere. So I looked through the hot code of the interpreter, eval, step and instr in Wasm.Exec.Eval to see if anything fishy is going on. I found some uses of the list concatenation operator (++) – always a bad sign, as it has to traverse the list on its left completely!

    And often the solution is pretty simple: Use difference lists! It’s even simpler than the name makes it sound like. It does not require you to import anything new, and works well everywhere where you assemble a list in multiple stages, but use it, in its full form, only once at the end.

  • Fabric-licious Raspberry Pi projects - Raspberry Pi

    I’m currently (re)learning how to knit. Here are some textile-themed Raspberry Pi projects for the yarn-curious.

  • [ Perl | Raku | The ] Weekly Challenge - 2020

    It has been wonderful journey so far in the year 2019. When I started the journey in March, I didn’t know it would take this shape. All credit goes to the support of Perl/Raku community in general. It would be unfair if I pick few names. You know who I am talking about anyway. Let me share the story with you all.

Audiocasts/Shows: System76, Pinebook and "The Linux Defender"

Filed under
GNU
Linux

3 emerging open source projects to keep an eye on

Filed under
OSS

The exciting thing about open source is that nobody needs permission to try something new. That's a formula that allows new ideas to emerge all the time.

Here are three open source projects that are still in their early stages but show real promise.

This Linux is utterly unapologetic in catering to technology hobbyists, enthusiasts, and power users. It's for the amateurs, in that best and most original sense of the word—those who love what they do. Awesome. So isn't Endeavour the perfect name?

If what you want is to roll your sleeves up and level up while still enjoying a gentle start and a friendly community, this could be a great way to go about it.

Read more

Raspberry Pi 4: Chronicling the Desktop Experience – Email – Week 5

Filed under
Linux

This is a weekly blog about the Raspberry Pi 4 (“RPI4”), the latest product in the popular Raspberry Pi range of single-board computers.

Last week’s blog looked at whether the RPI4 cuts the mustard as a desktop web browser. It does although with a few reservations. This week’s blog focuses on another absolutely essential desktop activity. Managing your email.

My email requirements are very simple. I use Gmail for my personal email. It offers ample storage, threads, rich text features, useful keyboard shortcuts, and more. It gives me access to my email whatever device and platform I’m using. For the RPI4 to replace my desktop, I need quick and easy access to Gmail.

Read more

HONOR MagicBook 15 finally revealed with Linux as main operating system

MagicBook is the first laptop series that was released by HONOR in 2018. After that, subsequent models were being launched in China without any global launch. Although the laptop series is not among the popular ones, but they are definitely the above-average laptops you can purchase at an affordable price. Recently, a new model from the series is spotted in a listing of devices that appeared on JingDong Mall.

The new HONOR MagicBook 15 is only going to come with an Intel variant unlike what they did with the previous version which also offered another AMD Ryzen variant. It is also said to be having two storage options which are 256GB and 512GB SSD storage. There will be a fingerprint sensor on the power button as well for security.

For aesthetic, it seems like the laptop still maintain its MacBook-like design while taking a different direction on the colour scheme. The HONOR MagicBook 15 we can see from the pictures below show that the laptop will come with a silver body that adds a touch of blue to the edges. The colour of the edges also somehow assembles the colour of their logo which will appear on the laptop as well.

Read more

Red Hat Leftovers

Filed under
Red Hat
  • Celebrating KEDA 1.0: Providing an event-driven scale capability for any container workload [Ed: Red Hat works with and for Microsoft, even gives Microsoft all the code]

    Today the community celebrates KEDA 1.0, an open source project aimed at providing event-driven scale capabilities for container workloads. Introduced earlier this year, Red Hat is contributing to KEDA both via the upstream project and by bringing its utility to customers using enterprise Kubernetes and containers with Red Hat OpenShift. We celebrate this milestone with Microsoft and the wider community.

  • We're all on a journey to cloud-native adoption together

    The Cloud Native Computing Foundation (CNCF) is hosting its core conference for the fifth year running. It’s official title is KubeCon + CloudNativeCon, but it’s most importantly the home for Kubernetes. Adopters, contributors, and Kubernetes-curious attendees add up to a record-breaking 12,000 people.

    I attended to cover the show for our community (full disclosure: my ticket was provided as an industry analyst). Here’s what I heard on day 1.

  • Container reality checks and more industry trends

    As part of my role as a senior product marketing manager at an enterprise software company with an open source development model, I publish a regular update about open source community, market, and industry trends for product marketers, managers, and other influencers. Here are five of my and their favorite articles from that update.

    [...]

    The impact: Another container reality check that also drives home why going through the trouble of standards can be worth it in the long run.

Google outlines plans for mainline Linux kernel support in Android

Filed under
Android
Linux
Google

This is an extremely long journey that results in every device shipping millions of lines of out-of-tree kernel code. Every shipping device kernel is different and device specific—basically no device kernel from one phone will work on another phone. The mainline kernel version for a device is locked in at the beginning of an SoC's initial development, so it's typical for a brand-new device to ship with a Linux kernel that is two years old. Even Google's latest and, uh, greatest device, the Pixel 4, shipped in October 2019 with Linux kernel 4.14, an LTS release from November 2017. It will be stuck on kernel 4.14 forever, too. Android devices do not get kernel updates, probably thanks to the incredible amount of work needed to produce just a single device kernel, and the chain of companies that would need to cooperate to do it. Thanks to kernel updates never happening, this means every new release of Android usually has to support the last three years of LTS kernel releases (the minimum for Android 10 is 4.9, a 2016 release). Google's commitments to support older versions of Android with security patches means the company is still supporting kernel 3.18, which is five years old now. Google's band-aid solution for this so far has been to team up with the Linux community and support mainline Linux LTS releases for longer, and they're now up to six years of support.

Last year, at Linux Plumbers Conference 2018, Google announced its initial investigation into bringing the Android kernel closer to mainline Linux. This year it shared a bit more detail on its progress so far, but it's definitely still a work in progress. "Today, we don't know what it takes to be added to the kernel to run on a [specific] Android device," Android Kernel Team lead Sandeep Patil told the group at LPC 2019. "We know what it takes to run Android but not necessarily on any given hardware. So our goal is to basically find all of that out, then upstream it and try to be as close to mainline as possible."

Read more

Thin clients showcase new Gemini Lake Refresh chips

Filed under
GNU
Linux
Hardware

The Futro S9010, S7010, and S5010, which we saw on Fanless Tech, are intended to run the proprietary, Linux-based eLux RP 6.7.0 CR, although they also support Windows 10 IoT Enterprise.

Read more

Audiocasts/Shows/Screencasts: Linux in the Ham Shack, Linux Headlines, LibreOffice 6.4 Alpha Quick Look and OpenIndiana 2019.10 Overview

Filed under
GNU
Linux

Announcing coreboot 4.11

Filed under
Linux

The coreboot project is proud to announce to have released coreboot 4.11.

This release cycle was a bit shorter to get closer to our regular schedule of releasing in spring and autumn.

Since 4.10 there were 1630 new commits by over 130 developers. Of these, about 30 contributed to coreboot for the first time.

Thank you to all contributors who made 4.11 what it is and welcome to the project to all new contributors!

Read more

Also: Coreboot 4.11 Brings Many Intel Improvements, New Support For Supermicro / Lenovo Boards

GNOME Development: Technical Reports From Federico Mena-Quintero and Jussi Pakkanen

Filed under
Development
GNOME
  • Refactoring the Length type

    Over a couple of years, librsvg's type that represents CSS lengths went from a C representation along the lines of "all data in the world is an int", to a Rust representation that uses some interesting type trickery:

    C struct with char for units.

    C struct with a LengthUnits enum.

    C struct without an embodied direction; each place that needs to normalize needs to get the orientation right.

    C struct with a built-in direction as an extra field, done at initialization time.

    Same struct but in Rust.

    An ugly but workable Parse trait so that the direction can be set at parse/initialization time.

    Three newtypes LengthHorizontal, LengthVertical, LengthBoth with a common core. A cleaned-up Parse trait. A macro to generate those newtypes.

    Replace the LengthDir enum with an Orientation trait, and three zero-sized types Horizontal/Vertical/Both that implement the trait.

    Replace most of the macro with a helper trait LengthTrait that has an Orientation associated type.

    Replace the helper trait with a single Length<T: Orientation> type, which puts the orientation as a generic parameter. The macro disappears and there is a single implementation for everything.

    Refactoring never ends!

  • Some intricacies of ABI stability

    As far as I know, there is no known real-world solution to this problem that would scale to a full operating system (i.e. all of Debian, FreeBSD or the like). If there are any university professors reading this needing problems for your grad students, this could be one of them. The problem itself is fairly simple to formulate: make it possible to run two different, ABI incompatible C++ standard libraries within one process. The solution will probably require changes in the compiler, linker and runtime loader. For example, you might extend symbol resolution rules so that they are not global, but instead symbols from, say library bar would first be looked up in its direct descendents (in this case only abi2) and only after that in other parts of the tree.

    To get you started, here is one potential solution I came up with while writing this post. I have no idea if it actually works, but I could not come up with an obvious thing that would break. I sadly don't have the time or know-how to implement this, but hopefully someone else has.

Graphics and Games: Intel, Vulkan, Trine and Google Stadia

Filed under
Graphics/Benchmarks
Gaming
  • Intel's Graphics Driver DoS Fix Last Week Has Hurt Power Consumption

    While the patches overnight about "substantial" improvement in power usage for Intel graphics on Linux were exciting on first look, it's less so now as it turns out last week's graphics driver security fixes is what regressed the Intel graphics power-savings.

    During last Tuesday's round of Intel security disclosures where there was a fix for denial of service in the Intel graphics driver, it turns out that the CVE-2019-0154 fix is what regressed power usage. The potential Denial of Service vulnerability was about unprivileged users being able to cause a DoS by reading select memory regions when the graphics hardware is in certain low-power states.

  • vkBasalt 0.2 Released With SMAA, Other Vulkan Post Processing Layer Enhancements

    The open-source vkBasalt project was started as a layer implementing Contrast Adaptive Sharpening (akin to Radeon Image Sharpening) for any Vulkan-using GPU/driver/software. The vkBasalt project then picked up FXAA support for this Vulkan post-processing layer while now a new release is out with more functionality added.

    The vkBasalt 0.2 release is out today and adds support for enhanced sub-pixel morphological anti-aliasing (SMAA) for higher-quality anti-aliasing than FXAA. SMAA is an image-based implementation of MLAA. This release also allows for multiple visual effects to be activated at once where as previously only any one of these image enhancing features could be active at a time.

  • Flax Engine Ported To Linux + Vulkan Rendering Support

    Flax Engine is the latest game engine seeing native Linux support and in the process the renderer also picked up Vulkan support.

    Flax Engine is a lesser known game engine that now works on Linux alongside Windows and Xbox One. After two years in development, the open beta release of Flax is expected soon.

  • The sad case of Trine on Mesa and Linux in 2019

    A year or so back I was planning on writing a congratulatory article to show my appreciation to Dave Airlie for fixing a long standing bug in Mesa that prevented users of older AMD Radeon HD cards from enjoying Trine Enchanted Edition on the free graphics stack. Bug 91808 resulted in a variety of graphical artifacts which, while not interfering with the gameplay, still put me off using that version of Trine.

    After several years and a great deal of evident frustration on his part, Airlie was able to track down the root of the problem and at long last was able to push a fix to master in May 2018. Airlie and developers like him are often the unsung heroes of FOSS development, and I wanted to give him a well deserved public pat on the back for his effort in fixing a bug which would only have affected such a small number of people.

    Unfortunately my research into this led me down an entirely different rabbit hole when I discovered the report for Bug 66067. A much more subtle misrendering of the game's colours and lighting, this bug is present in both Trine 2 and Trine Enchanted Edition and affects all Mesa users. Unlike the previous instance where it was an issue in the drivers that was the culprit, this issue is present in the game binaries themselves.

  • Google Stadia is out now for early adopters, well a few anyway

    Today, the Google Stadia streaming service officially launched for those who picked up the Founder or Premier Edition.

    Well, sort of anyway. Some people have it, a lot of people don't, we certainly don't and it appears the team at Stadia give different answers to different people on when you will actually be able to access it. I've also seen plenty of people whose orders have been cancelled without warning or explanation. Even worse still, some people have been sent their hardware without an access code. Google have, so far, done a terrible job at communicating on Stadia and so the initial launch doesn't seem to have gone down well at all.

SystemTap 4.2 release

Filed under
GNU
Linux
Red Hat

The SystemTap team announces release 4.2!

support for generating backtraces of different contexts; improved backtrace
tapset to include file names and line numbers; eBPF support extensions
including raw tracepoint access, prometheus exporter, procfs probes and
improved looping structures

= Where to get it

  https://sourceware.org/systemtap/ - Project Page
  https://sourceware.org/systemtap/ftp/releases/
  https://koji.fedoraproject.org/koji/packageinfo?packageID...
  git tag release-4.2 (commit 044a0640985ef0)

  There have been over 110 commits since the last release.
  There have been over 25 bugs fixed / features added since the last
release.

= SystemTap frontend (stap) changes

- When the -v option is set along with -L option, the output includes
  duplicate probe points which are distinguished by their PC address.

- Now it is possible to issue a backtrace using user specified pc, sp,
  and fp which can be used to generate backtraces of different contexts.
  This was introduced to get backtraces of user code from within the go
  runtime but it can also be used to do things like generating backtraces
  of user code from within signal handlers.

- The automatic printing implementation now differentiates between
  pointer and integer types, which are printed as hex or decimal
  respectively.

= SystemTap backend changes

- Initial support for multi-dimensional supports has been added to
  the stapbpf backend. Note that these arrays cannot be iterated upon
  with a foreach loop.

- The stapbpf backend now supports sorting by value in foreach loops.

- The stapbpf backend now supports the concatenation operator for
  userspace probes.

- The stapbpf backend now supports the target() function and -x option.

- The gettimeofday_* functions are now provided for the stapbpf backend.

- The stapbpf backend now supports order parameterization for begin
  and end probes.

- The stapbpf backend now supports stap-exporter extensions.

- The stapbpf backend now supports procfs probes. The implementation
  uses FIFO special files in /var/tmp/systemtap-$EFFUSER/MODNAME instead
  of the proc filesystem files.

- The eBPF backend now uses bpf raw tracepoints for kernel.trace("*")
  probes.  These have target variable arguments that match the
  arguments available for the traditional linux kernel modules
  tracepoints.  Support for the older bpf tracepoint arguments can be
  forced with a --compatible=4.1 option on the command line.

- The compiler optimizes out probes with empty handlers. Previously,
  warnings were issued but, the probe was not internally removed. For
  example, this script now outputs a warning and an error as the only
  probe handler is empty:

      probe begin {}

  Additionally, probe handlers that evaluate to empty are also removed.
  For example, in this script, the begin probe is elided as $foo does
  not exist, however, an error won't be outputted because atleast one
  probe with a non-empty handler exists (probe begin):

      probe begin {
          print("Protected from elision")
      }

      probe end {
          if (@defined($foo)) { print("Evaluates to empty handler") }
      }

- The sys/sdt.h file changes the way i386 registers operands are
  sometimes named, due to an ambiguity.  A comment block explains.

= SystemTap tapset changes

- New backtracing functions print_[u]backtrace_fileline() have been added
  to the tapset. These functions behave similarly to print_[u]backtrace(),
  the only difference being that file names and line numbers are added
  to the backtrace.

= SystemTap sample scripts

All 180+ examples can be found at https://sourceware.org/systemtap/examples/
.

- Several sample scripts have been enabled to run on the stapbpf backend:

apps/libguestfs_log.stp
network/sk_stream_wait_memory.stp
memory/mmfilepage.meta
memory/mmwriteback.meta
general/ansi_colors.meta

- New stap-exporter sample script for the stapbpf backend:

syscallsrw.stp    Tallies the read and write syscalls.

= Examples of tested kernel versions

2.6.32 (RHEL6 x86_64)
4.15.0 (Ubuntu 18.04 x86_64)
4.18.0 (RHEL8 x86_64, aarch64, ppc64le, s390x)
5.0.7  (Fedora 29 x86_64)
5.3.8  (Fedora 30 i686)
5.3.9  (Fedora 31 x86_64)
5.4.0-rc  (Fedora 32 x86_64)

= Known issues with this release

- The array dump macros which are used with prometheus probes do not
entirely
  work with stapbpf as the macros use foreach loops which cannot be used
with
  multi-dimensional arrays yet.

- The user_string() function in the BPF tapsets uses the BPF
probe_read_str()
  helper, which only works correctly when there is no address translation
  between user and kernel address spaces. It has been restricted to x86_64
  only until the BPF infrastructure provides separate helpers for reading
user
  and kernel data.

= Coming soon

- More stapbpf functionality including full statistics aggregate support
and
  try-catch blocks.

= Contributors for this release

*Carlos O'Donell, Frank Ch. Eigler, Jafeer Uddin,
*Richard Purdie, Ross Burton, *Sagar Patel, Serhei Makarov
Stan Cox, *Wenzong Fan, William Cohen

Special thanks to new contributors, marked with '*' above.

Special thanks to Sagar for assembling these notes.

= Bugs fixed for this release &tl;https://sourceware.org/PR#####>

9922    need to configure with --disable-pie on ubuntu
25174   string auto-concat doesn't work in @var / @cast module parameter
25169   strcpy overlap between transport arg and string on-stack
25133   stapbpf foreach loop crashing
24953   foreach (v = v1,v2) syntax not behaving correctly in stapbpf
24812   stapbpf: support order-parametrized begin/end probes
25113   Explanation and "code" mismatch in section ⁠2.3.1.2. File Flight
Recorder
25107   need -L variant that doesn't merge duplicate probe points
23285   stapbpf procfs probes
24946   printing hex sequences causes crash
24947   valid hex and octal sequences not checked for
24926   non-ascii characters not printing on stapbpf
24934   stapbpf stack-smash on EXIT message processing
23879   print_ubacktrace can not print function name
24875   VMA tracker is broken on Fedora 29
24904   stack_trace struct undefined on kernel 5.2
23858   sorted iteration on bpf arrays can't sort values
24885   add test_{,install}check_dyninst tag to check.exp
23866   dissonance between kernel tracepoint parametrization, lkm vs bpf
24811   stapbpf segfault: nested foreach loops can corrupt sorted key data
when limit==0
11353   elide side-effect-free probes
24528   stapbpf-next housekeeping: bpf-translate.cxx should distinguish
codegen for kernel/userspace targets
24543   stapbpf breaks when cpu0 is disabled
12025   Have appropriate selection of hex and decimal formatted output for
automatic output
24639   "next" statement not recognized by stap bpf backend
24343   Some syscall.*.return missing name and retstr variables

Read more

Python Programming

Filed under
Development
Syndicate content

More in Tux Machines

Audiocasts/Shows: System76, Pinebook and "The Linux Defender"

3 emerging open source projects to keep an eye on

The exciting thing about open source is that nobody needs permission to try something new. That's a formula that allows new ideas to emerge all the time. Here are three open source projects that are still in their early stages but show real promise. This Linux is utterly unapologetic in catering to technology hobbyists, enthusiasts, and power users. It's for the amateurs, in that best and most original sense of the word—those who love what they do. Awesome. So isn't Endeavour the perfect name? If what you want is to roll your sleeves up and level up while still enjoying a gentle start and a friendly community, this could be a great way to go about it. Read more

Android Leftovers

Raspberry Pi 4: Chronicling the Desktop Experience – Email – Week 5

This is a weekly blog about the Raspberry Pi 4 (“RPI4”), the latest product in the popular Raspberry Pi range of single-board computers. Last week’s blog looked at whether the RPI4 cuts the mustard as a desktop web browser. It does although with a few reservations. This week’s blog focuses on another absolutely essential desktop activity. Managing your email. My email requirements are very simple. I use Gmail for my personal email. It offers ample storage, threads, rich text features, useful keyboard shortcuts, and more. It gives me access to my email whatever device and platform I’m using. For the RPI4 to replace my desktop, I need quick and easy access to Gmail. Read more