Language Selection

English French German Italian Portuguese Spanish


GCC, GNU Toolchain and LLVM

Filed under
  • GCC 10.2 Release Candidate available from
    The first release candidate for GCC 10.2 is available from

    and shortly its mirrors.  It has been generated from git commit
    I have so far bootstrapped and tested the release candidate on
    x86_64-linux.  Please test it and report any issues to bugzilla.
    If all goes well, I'd like to release 10.2 on Thursday, July 23th.
  • GCC 10.2 Gearing Up For Release Next Week - RC Available For Testing

    The GCC crew is preparing to issue their first stable point release to the GCC 10 series next week.

    GCC 10.1 as the first stable GCC 10 version released back in early May while now GCC 10.2 as the first point release is preparing to make its way out, hopefully on 23 July.

  • GNU Toolchain Continues Phasing Out Native Client Support (NaCl)

    WebAssembly has seen much greater industry interest and adoption than Google's former Native Client (NaCl) effort for sandboxed applications that can be run within web browsers. Native Client hasn't seen any real activity in years and continues fading away.

    Google has been encouraging any Native Client users to migrate to WebAssembly for years with just a few remnants remaining.

  • LLVM 11 Feature Development Is Over With Many Changes

    LLVM 11 feature development has ended with the code having been branched in Git this morning and the first release candidate expected shortly.

    LLVM 11.0 was branched today in its mono repository including sub-projects like Clang. This branching is going as planned with aiming to ship LLVM 11.0 officially around 26 August.

Programming Leftovers

Filed under
  • Choosing a technology stack for your web application

    There are several factors you need to consider in choosing the technologies to include in your technology stack. These factors may consist of the purpose of your application or website, business size, and organizational culture. Examples of the most popular technology stacks are the LAMP (Linux, Apache, MySQL, and PHP) and MEAN (MongoDB, Express.js, AngularJS, and Node.js).

  • Documentation as knowledge capture

    Maybe you’re one of the tiny minority of programmers that, like me, already enjoys writing documentation and works hard at doing it right. If so,the rest of this essay is not for you and you can skip it.

    Otherwise, you might want to re-read (or at least re-skim) Ground-Truth Documents before continuing. Because ground-truth documents are a special case of a more general reason why you might want to try to change your mindset about documentation.

    In that earlier essay I used the term “knowledge capture” in passing. This is a term of art from AI; it refers to the process of extracting domain knowledge from the heads of human experts into a form that can be expressed as an algorithm executable by the literalistic logic of a computer.

    What I invite you to think about now is how writing documentation for software you are working on can save you pain and effort by (a) capturing knowledge you have but don’t know you have, and (Cool eliciting knowledge that you have not yet developed.

  • What's the difference between DevSecOps and agile software development

    There is a tendency in the tech community to use the terms DevSecOps and agile development interchangeably. While there are some similarities, such as that both aim to detect risks earlier, there are also distinctions that drastically alter how each would work in your organization.

    DevSecOps built on some of the principles that agile development established. However, DevSecOps is especially focused on integrating security features, while agile is focused on delivering software.

    Knowing how to protect your website or application from ransomware and other threats really comes down to the software and systems development you use. Your needs may impact whether you choose to utilize DevSecOps, agile development, or both.

  • You've only added two lines - why did that take two days!

    Why did a fix that seems so simple when looking at the changes made take two days to complete?


  • Meeting, Tuesday, July 14th, 2020

    Because of the pesky disease that's been spreading, we'll be gathering online. The agenda for tonight is: Normal conversation and seeing how everyone is doing; if there are any questions that need to be answered, we'll do that; followed by jumping into our presentations. We have at least three, though if anybody would like to step up and add another to the mix, please let me know.


  • Grow Your Python Portfolio With 13 Intermediate Project Ideas

    Now that you know the basics of Python, you can put that knowledge to use by building projects to put in your portfolio. The trick is finding project ideas that are just right for your level. Creating a variety of applications is a way to demonstrate your knowledge and share it with others.

  • Your First Stock Trading Bot Part 2: Buy & Sell Stocks in Python w/ Alpaca!

    After installing the alpaca_trade_api library in Python, we are ready to place buy & sell orders! This will allow us to simulate profit & loss in our algorithms!

  • EuroPython 2020: Please configure your tickets
  • PSF GSoC students blogs: Week 6 Check-in
  • PSF GSoC students blogs: Week 7 check-in!
  • PyCoder’s Weekly: Issue #429 (July 14, 2020)
  • A quick repair job on a dislocated table

    The tab-separated data table I was auditing had 5463 records with 21 fields each, but something was seriously wrong.

  • An example of very lightweight RESTful web services in Java

    Web services, in one form or another, have been around for more than two decades. For example, XML-RPC services appeared in the late 1990s, followed shortly by ones written in the SOAP offshoot. Services in the REST architectural style also made the scene about two decades ago, soon after the XML-RPC and SOAP trailblazers. REST-style (hereafter, Restful) services now dominate in popular sites such as eBay, Facebook, and Twitter. Despite the alternatives to web services for distributed computing (e.g., web sockets, microservices, and new frameworks for remote-procedure calls), Restful web services remain attractive for several reasons

GNOME Development and Projects

Filed under

  • Jan Schmidt: OpenHMD and the Oculus Rift

    In short, OpenHMD is a project providing open drivers for various VR headsets through a single simple API. I don’t know of any other project that provides support for as many different headsets as OpenHMD, so it’s the logical place to contribute for largest effect.

    OpenHMD is supported as a backend in Monado, and in SteamVR via the SteamVR-OpenHMD plugin. Working drivers in OpenHMD opens up a range of VR games – as well as non-gaming applications like Blender. I think it’s important that Linux and friends not get left behind – in what is basically a Windows-only activity right now.

    One downside is that does come with the usual disadvantages of an abstraction API, in that it doesn’t fully expose the varied capabilities of each device, but instead the common denominator. I hope we can fix that in time by extending the OpenHMD API, without losing its simplicity.

  • Philip Withnall: Startup time profiling of gnome-software

    Following on from the heap profiling I did on gnome-software to try and speed it up for Endless, the next step was to try profiling the computation done when starting up gnome-software — which bits of code are taking time to run?

  • Ole Aamot: Record Audio as Ogg Vorbis in GNOME Gingerblue

    GNOME Gingerblue will be a Free Software program for musicians who would compose, record and share original music to the Internet from the GNOME Desktop.

    The project isn’t yet ready for distribution with GNOME 3 and the GUI and features such as meta tagging and Internet uploads must be implemented.

  • Kavan Mevada: Sound Recorder to modern HIG II

    Yay, new changes also added in Sound Recorder. Another blog for new recent changes.

    This snapshot, of application is at almost stable usable for daily life, cause we added back delete and rename button those temporarily removed.

    In this snapshot three new cool features are added "Pause Recording" and "Cancel Recording".

    Pause recording: Before this added people were recording whole long single recording, even they not wanna record some part, cause they couldn't able to pause recording. They were doing extra steps and using other apps to remove part of the unwanted recording. Now it's a big relief for them.

  • Chinmay Gurjar: Chapter 2: Passes the first Mountain

    It has been a month since the coding period has begun. And it is going great, we have managed to get most of the work for the first milestone done. This month’s work included adding support for DLNA sources to Music, so that it can list and play media from the DLNA server.


    What is DLNA and DLNA media server? Digital Living Network Alliance, or as we know it, DLNA, is a set of rules and specs that specifies standards and guidelines for media streaming devices. DLNA-compatible devices use UPnP(Universal Plug and Play) to communicate with other DLNA devices.

    Once a DLNA media server is plugged into a “Home Network”(LAN), it can browse, open/play, search, download or upload any type of media for you. I’m using Rygel as a DLNA server, and for all the testing.

Programming: XML, Perl and Rust

Filed under
  • 10 Excellent Free Books to Learn XML

    XML is a set of rules for defining semantic tags that describe the structure and meaning of a document.

    The user of XML chooses the names and placement of the tags to convey the nature of the data stored in a document. XML can be used to markup any data file to make it easier to understand and process.

    In addition, it has been applied to many special domains of data: mathematics, music, vector graphics, the spoken word, financial data, chemical symbols, and web pages among others.

    Here’s our recommended free books to master XML.

  • 2020.28 Bridges 7

    Arne Sommer, inspired by a solution of a previous Weekly Challenge, wrote a small series of blog posts about the seven bridges of Königsberg:

  • A tour with Net::FTP

    When we want to have a way to exchange files between machines, we often think about rsync, scp, git or even something slow and complex (looking at you Artifactory and S3), but the answer is often right in front of your eyes: FTP!

    The “File Transfer Protocol” provides a very simple and convenient way to share files. It’s battle-tested, requires almost no maintenance, and has a simple anonymous access mechanism. It can be integrated with several standard auth methods and even some virtual ones, none of which I show here.


    I got the idea to backup and centralize automatically the configuration file during the creation of the build pipeline workspace. It was intended to help both developers (configuration “samples”) and support team (see history, versioned then we can check diffs, file to replay). The constraints were to be able to exchange file from various places with variable users. The FTP protocol is a perfect fit for that.

    I added also a cronjob to autocommit and push to a git repository and we had magically a website listing versioned configurations files.

    In addition, FTP proved later to also require zero support. I mean really zero maintenance!

  • Perl Mongers, Unite! is great for resources, but there's no obvious way to promote your meeting. Not that there needed to be when the meetings were local events, but now, thanks to Covid-19, these meetings are taking place virtually. Why limit yourself to your local members? I am convinced that there are plenty of pockets of mongers that, if united and connected, would make the world realize that Perl Is Not Dead.

  • Programming languages: Now Rust project looks for a way into the Linux kernel

    The makers of systems programming language Rust are looking at how to adapt the language for use in the Linux kernel.

    Josh Triplett, an Intel engineer and lead of the Rust language project, says he'd "love to see a path to incorporating Rust into the kernel", as long as it's done cautiously and doesn't upset Linux kernel creator Linus Torvalds.

Python Programming

Filed under
  • Kushal Das: Introducing pyage-rust, a Python module for age encryption

    age is a simple, modern and secure file encryption tool, it was designed by @Benjojo12 and @FiloSottile.

    An alternative interoperable Rust implementation is available at

    pyage-rust is a Python module for age, this is built on top of the Rust crate. I am not a cryptographer, and I prefer to keep this important thing to the specialists Smile

  • A Hundred Days of Code, Day 007 - Python Basics, Variables, Basic Data Types, Strings and Loops

    Started with the Reuven Lerner, Intro Python:Fundamentals course today.
    Made surprising headway, even though today was crazily demanding with work and personal stuff.

  • An Overview of JupyterLab (Video)

    Learn the basics of using JupyterLab which is the replacement for Jupyter Notebook, in my latest video tutorial.

  • Pip team midyear report

    The plan that we proposed last year said that, by now, we would have finished Foundational work (Phase Sleepy and Resolver work (Phase II), and the team would be doing Maintenance and Sustainability work (Phase III). Please see the timeline for user experience work and the timelines for development work.

    We are behind where we had planned to be in the work roadmap. This is partially because the COVID-19 pandemic disrupted our work, but also because of policy and architecture decisions the project needed, and because foundational user experience research work has taken more time than we originally allotted. Thus, we have finished the Phase I and Phase II sections of the development work, and are approximately 75% of the way through the Phase I and Phase II user experience work. See below for accomplishments so far.

    Funding: we predicted that we would be approximately 80% of the way through our one-year project budget (since the second half of the year has a slower work pace, primarily focusing on maintaining and deepening the work we started in the first half). We are now approximately 71% of the way through the budget, which gives us flexibility for the second half of the project.


    Phase III development work commences next month. We will continue to improve the pip dependency resolver in response to testers' feedback. This will help us prepare to release pip 20.3, with the new resolver on by default, in October. We'll also review and respond to code contributions and new issues, to keep up with the pip code and issue review queue, help new contributors develop into continuing contributors, and help existing contributors grow into co-maintainers.

    And our user experience work will also enter Phase III, deepening and expanding foundational research in Python packaging. We will recruit more users for interviews and surveys, develop user journey maps & workflows, work with maintainers to write documentation and help messages, develop templates for UI bugs, commands, error messages, output, documentation, and configuration files, and teach pip maintainers UX practices.

  • Python 3.8.3 : Short intro to Appium-Python-Client python package.

    This is a short intro of the Appium-Python-Client python package and Appium based on Client-Server Architecture.
    The Appium Server can be installed using two ways: using NPM or using Appium Desktop.
    I download and run the desktop version from here.

  • PSF GSoC students blogs: Weekly Check-In | Gsoc'2020 | #7
  • PSF GSoC students blogs: Check-in for week 6

Programming Leftovers

Filed under
  • CMake-Based Qt Creator Snapshots

    About a year ago we started porting the build system that we use for building Qt Creator itself from qmake to CMake. Nowadays we are in the state that many Qt Creator developers use CMake for building Qt Creator for their daily work, but the official packages are still based on the qmake build.

  • Week #6 Progress [MyPaint Engine]

    Last week my prime focus was to add more and more settings in the preset editor and so as to make mypaint brushes a bit more customizable. I used KisCurveOptionWidget class which Krita already has and modified it so that it can accomodate the settings and dynamic mypaint brush options. This went on to become a lot more complicated than I anticipated. Although, it works fine there are still a lot of bugs and finishing required to mark this as complete.

  • Stack Abuse: What's New in Tensorflow 2.0?

    If you are a Machine Learning Engineer, Data Scientist, or a hobbyist developing Machine Learning Models from time to time just for fun, then it is very likely that you are familiar with Tensorflow.

    Tensorflow is an open-source and a free framework developed by Google Brain Team written in Python, C++, and CUDA. It is used to develop, test, and deploy Machine Learning models.

    Initially, Tensoflow did not have full support for multiple platforms and programming languages, and it was not very fast and efficient for training Machine Learning models, but with time and after a few updates, Tensorflow is now considered as a go-to framework for developing, training and deploying machine learning models.

  • Python 3.8.4

    The Python 3.8 series is the newest major release of the Python programming language, and it contains many new features and optimizations.

  • Python Insider: Python 3.8.4 is now available

    Python 3.8.4 is the fourth maintenance release of Python 3.8. Go get it here:

    Maintenance releases for the 3.8 series will continue at regular bi-monthly intervals, with 3.8.5 planned for mid-September 2020.

  • Perl Weekly Challenge 68: Zero Matrix

    These are some answers to the Week 68 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

  • Microsoft Visual Studio gets .NET Core debugging – on WSL2 [Ed: Microsoft Tim reminds us again that WSL and WSL2 are an ATTACK on GNU/Linux the EEE way]

Python Programming

Filed under

Fuzzing Rumpkernel Syscalls Part 1

Filed under

It has been a great opportunity to contribute to NetBSD as a part of Google Summer Of Code '20. The aim of the project I am working on is to setup a proper environment to fuzz the rumpkernel syscalls. This is the first report on the progress made so far.

Rumpkernels provide all the necessary components to run applications on baremetal without the necessity of an operating system. Simply put it is way to run kernel code in user space.

The main goal of rumpkernels in netbsd is to run,debug,examine and develop kernel drivers as easy as possible in the user space without having to run the entire kernel but run the exact same kernel code in userspace. This makes most of the components(drivers) easily portable to different environments.

Rump Kernels are constructed out of components, So the drivers are built as libraries and these libraries are linked to an interface(some application) that makes use of the libraries(drivers). So we need not build the entire monolithic kernel just the required parts of the kernel.

Read more

Programming: Data Science, David Pena and GSoC

Filed under

Programming: Perl, Python, Javascript and LibreOffice GSoC

Filed under
  • The [Perl] Weekly Challenge #068

    The Week #068 is my 23rd week in a row participating the weekly challenge. For the first time, I created a package to deal with the “Reorder List” task. It really helped me in thinking straight when dealing with linked list. With the help my favourite CPAN module Moo, creating class is like piece of cake as shown below.

  • Hey, Back Off!

    The choice in parameters for back-off configuration is important. It can be the difference between a barely noticable blip in service quality and an hours-long site outage. In order to explore the consequences of the choice, I wrote a little fictional ditty about a fictional website.

    I hope you enjoy escaping into this fictional reality as much as I enjoyed writing about it.

    Your recipe site is different. After all, recipe sites are a dime-a-dozen. With today's modern technology, any kid can put a quick mock-up together with Django, React, and MongoDB to store recipes and retrieve them by various attributes.

    In order to make your recipe site stand above the rest, you made sure it uses really cutting edge techniques. From details of the web requests coming in, using sophisiticated language parsing and machine learning algorithm, with just a few words about the user's likes and dislikes, you find the perfect recipe just for them.

    HackerNews called it "just a bunch of buzzwords", of course. But once the graphs went up into the right, with 50% month-over-month growth rates, everyone explained that they knew that this one was different. Popularity sky-rocketed, the engineers worked on scaling up the site, and though it was not the world's most sophisticated microservice architecture, it was medium-service architecture, at least.

    The web front end would call the machine learning cluster, running on special GPU machines, to get the appropriate keywords by which to look up the recipe. Maybe not a the kind of 50-microservices-architecture that takes three whiteboards to explain, but at least it was easy enough to scale up horizontally. You hired a great Site Reliability Engineer, who built a sophisticated continuous delivery machine. As your machine learning team fine-tuned the model, it would slowly roll out into the cluster, running continous A/B tests that would immediately roll back the change if the model performed worse than before.

  • Python map() Function

    The Python's map() function takes an iterable object, along with a function, and applies that function to each element in the iterable.

  • PSF GSoC students blogs: GSoC: Week #7
  • PSF GSoC students blogs: Weekly Check-in #7

    Hello and welcome to my 7th weekly check-in. I will be sharing my progress with single actor physics simulation and TextBlock2D sizing issue which was pending for quite a while now. I will also be sharing my thoughts regarding the TAB UI component. The official repository of my sub-org, FURY can always be found here.

  • Introduction to Javascript loops

    Nowadays Javascript can be easily defined as the world most used programming language: it is used on a variety of platforms, it is integrated in web browsers and thanks to the Node.js runtime it can also be used server-side. In this tutorial we will see the loops we can be used in modern Javascript.

  • Ahmed ElShreif: Week 6 Report

    1) The last week I left 5 patches without merging. They are mainly the patches that add support for Calc-comments and Vertical Tab Control. Also the patches of the Calc-comment demo , Writer-comment demo and insert hyperlink demo. The five patches now are merged after working on solving all the comments. The patches can be found in patches status section in the report .

Syndicate content

More in Tux Machines

libinput 1.16.0

libinput 1.16.0 is now available.

No significant changes since the second RC, so here's slightly polished RC1
announcement text.

This has been a long cycle, mostly because there weren't any huge changes on
the main development branch and a lot of the minor annoyances have found
their way into the 1.15.x releases anyway.

libinput now monitors timestamps of the events vs the current time when
libinput_dispatch() is called by the compositor. Where the difference
*may* result in issues, a (rate-limited) warning is printed to the log.
So you may see messages popping up in the form of
  "event processing lagging behind by XYZms, your system is too slow"
This is a warning only and has no immediate effect. Previously we would only
notice (and warn about) this when it affected an internal timer. Note that
these warnings do not show an issue with libinput, it shows that the the
compositor is not calling libinput_dispatch() quick enough.

The wheel tilt axis source was deprecated. No device ever had the required
udev properties set so we should stop pretending we support this.

Touchpads now support the "flat" acceleration profile. The default remains
unchanged and this needs to be selected in the configuration interface. The
"flat" profile applies a constant factor to movement deltas (1.0 for the
default speed setting).

Events from lid or tablet-mode switches that are known to libinput as being
unreliable are now filtered and no longer passed to the caller.
This prevents callers from receiving those known-bogus events and having to
replicate the same heuristics to identify unreliable devices that libinput
employs internally.

A new "libinput analyze" debugging tool is the entry tool for analysing
various aspects of devices. Right now the only tool is
"libinput analyze per-slot-delta" which can be used to detect pointer jumps
in a libiput record output. This tool used to live elsewhere, it was moved
to libinput so that reporters can easier run this tool, reducing the load on
the maintainers.

The tools have seen a few minor improvements, e.g.
- "libinput record touchpad.yml" does the right thing, no explicit --output
  argument required
- libinput measure touchpad-pressure has been revamped to be a bit more
- libinput measure touchpad-size has been added (as replacement for the
  touchpad-edge-detector tool)
- libinput measure fuzz has been fixed to work (again and) slightly more

The libinput test suite has been fixed to avoid interference with the
currently running session. Previously it was virtually impossible to work
while the test suite is running - multiple windows would pop up, the screen
would blank regularly, etc.

And of course a collection of fixes, quirks and new bugs.

As usual, see the git shortlog for details.

Diego Abad A (1):
      FIX: typo on building documentation

Peter Hutterer (2):
      test: semi-fix the switch_suspend_with_touchpad test
      libinput 1.16.0

git tag: 1.16.0
Read more Also: >Libinput 1.16 Released - Ready To Warn You If Your System Is Too Slow

18 Frameworks, Libraries, and Projects for Building Medical Applications

Open-source is not just a license or a code-based that left free on an online repository, It's a complete concept which comes with several advantages. Moreover, the most advantage you can get from Open-source is beyond the open-code it's FREEDOM; freedom to use or re-shape it as you see fit within your project commercial or otherwise, and that depends on the license of course. You are free from the headache of license conflict legal problems but also from the dilemma of dealing with restrections and limitations which come with property licenses. You are free from the system lock-in schemes, furthermore, you own your data, and freedom to customize the software as your structure requires and workflow demands. The Community: The Open-source project gains a powerful community as they gain users, the community users vary between advanced users, end-users, developers and end-users on decision-making level. Many of the community users are providing quality inputs from their usage and customized use-case and workflow or test-runs, Furthermore, they always have something to add as new features, UI modification, different usability setup, and overall introducing new workflows and tools, and That's what makes the progress of the open-source different than non-free solutions. While, Good community means good support, The community is a good resource to hire advanced users, developers, and system experts. It also provides alternative options when hiring developers. Unlike non-free software which are not blessed with such communities and where the options there are limited, The rich open-source community provides rich questions and answers sets that contributed by users from all around the world. Higher education value for the in-house team The open-source concept itself provides educational value, I owe most of what I know to open-source communities.The access to the source code and open-channels communication with the core developers is the best educational value any developer can get. Read more

Android Leftovers

Python Programming