Language Selection

English French German Italian Portuguese Spanish

Development

Screencasts and Audiocasts: Neptune OS 6.5, GNU World Order, Python

Filed under
Development
GNU
Linux
  • Neptune OS 6.5 Run Through

    In this video, we are looking at Neptune OS 6.5. Enjoy!

  • GNU World Order 362

    **Gutenprint**, **HPLIP**, and **htop** from Slackware software set AP.

  • Talk Python to Me: #272 No IoT things in hand? Simulate them with Device Simulator Express [Roy: "Talk Python to Me" appears to be boosting Microsoft monopolists and proprietary software again]

    Python is one of the primary languages for IoT devices. With runtimes such as CircuitPython and MicroPython, they are ideal for the really small IoT chips.

    Maybe you've heard of the Circuit Playground Express, BBC micro:bit, or the fancy Adafruit CLUE. They aren't too expensive (ranging from $25 to $50 each). But for large groups such as classrooms, this can be a lot of money. Moreover, getting your hands on these devices can sometimes be tricky as well.

Programming: GStreamer, Drat, RasPi, Python

Filed under
Development

KF6 Progress Report: Almost Bastille Day (July) Edition

Filed under
Development
KDE

So the world has been hectic lately, dunno if you’ve seen the news, but that means that I didn’t publish an update since my previous KF6 progress report back in February! Now that the lock down has been (temporarily?) lifted where I live and that things are a bit less crazy, it’s time for an update.

An actual Qt 6 is not published yet and we didn’t branch for KF6 yet either. Still as can be seen on the KF6 Workboard there are plenty of tasks in our backlog which can be acted upon now. No need to wait to participate, all the work done now will make the transition to KF6 easier later on anyway.

What has been done since the last post?

On the workboard, we currently have 22 tasks in progress and 4 tasks done. Clearly that’s not a huge activity in more than four months but the state of the world might explain it in part. Obviously with so little tasks done, they mostly revolve around our usual suspects.

If you fancy becoming one of the unsung heroes of KDE, come and help working tasks from the KF6 Workboard! More hands are needed and right now is a good time to discover it and get into it than when Qt6 will be released. Indeed, when Qt6 will be around it will be much less quiet around here. Smile

Read more

Linus Torvalds: "I Hope AVX512 Dies A Painful Death"

Filed under
Development
Linux

Linux creator Linus Torvalds had some choice words today on Advanced Vector Extensions 512 (AVX-512) found on select Intel processors.

In a mailing list discussion stemming from the Phoronix article this week on the compiler instructions Intel is enabling for Alder Lake (and Sapphire Rapids), Linus Torvalds chimed in. The Alder Lake instructions being flipped on in GCC right now make no mention of AVX-512 but only AVX2 and others, likely due to Intel pursuing the subset supported by both the small and large cores in this new hybrid design being pursued.

Read more

Also: The Linux Team Approves New Neutral Terminology

background on AVX-512

Programming: GNOME/GTK, GNU C Library, Perl and Python

Filed under
Development
GNOME
  • Implementing Gtk based Container-Widget: Part — 2

    This write-up is in continuation of its previous part — setting up basic container functionality.

    In the past couple of weeks, we moved on from just adding children to actually repositioning them (child widgets of the container, NewWidget) when enough space is not available for all widget to fit in the given width. Though the grid structure is yet to put in place, the widget could be seen taking shape already (look at below gif).

  • This week in GNOME Builder #2

    This week we fixed some specific topics which were planned for the previous cycle. If anyone wants to contribute so see some of our “Builder wishlist” go there: Builder/ThreePointThirtyfive

    Last time i had forgotten to mention the great work of our translation team which contributed various translations to Builder. Thank you!

  • Synopsys DesignWare ARC HS CPUs Now Supported By GNU C Library

    The Synopsys DesignWare ARC HS is designed for high performance embedded environments with the 32-bit HS5x and 64-bit HS6x series. Synopsys has long offered their own GNU toolchain builds to support the DesignWare ARC hardware on Linux while now the mainline support is in good shape with glibc for the ARCv2 ISA having been mainlined. Though do note it's ARCv2 and not the latest ARCv3 ISA.

  • A FIXIT-dive into an old CPAN module

    Let’s have a thought experiment. Assume there is an Open Source-licensed Perl module published on CPAN that you care about, and that hasn’t had any updates in a very long time - what are your options?

    In this blog post, I’ll take a dive into this problem, and use the Geo::Postcodes::NO module as an example. As of this writing, the module version is 0.31, and it’s most recent release was in September 2006.

    [...]

    Contribution information for the module is missing (or at least, less than expected). The author ARNE has offered his email address, and after a quick search one can find his Github page. He hasn’t published this module there, though. If we are going to contribute with this, then just adding a CONTRIBUTING.md file is a probably a good place to start. If the module you are looking for has the same problem, then check out it’s “How to contribute” page on MetaCPAN (you can find a link to it in the menu there).

    There’s another issue though – we can’t offer a pull-request! At best we can send a patch(1) file attached to an email. While this is a bit old-school and should still work (assuming the author accepts those), there might be better options available.

  • Chapter 3 - Google Correlate example update

    In Chapter 3 on Page 87, the book refers to the Google Correlate service. However, as of December 2019, the service has been shutdown. Since the chapter requires you to download a CSV formatted data, it is no longer possible. However, you can instead download a version of the data that I had used 5 years back when writing the book from here.

  • A Hundred Days of Code, Day 004 - Class Attributes and Inheritance

    Learnt about Class Attributes and Inheritance, today.

  • Weekly Python StackOverflow Report: (ccxxxv) stackoverflow python report

May/June in KDE PIM

Filed under
Development
KDE
Software

Following Dan here’s the summary of what happened around KDE PIM in the last two months. While the focus was mainly on the 20.04.x maintenance releases and KDE’s source code hosting and review systems migrated to a Gitlab instance during that time, development continued at full steam with more than 1,800 changes by 34 contributors.

Read more

More KDE: 20.08 releases branches created

Moving (parts of) the Cling REPL in Clang

Filed under
Development

Motivation
===

Over the last decade we have developed an interactive, interpretative 
C++ (aka REPL) as part of the high-energy physics (HEP) data analysis 
project -- ROOT [1-2]. We invested a significant  effort to replace the 
CINT C++ interpreter with a newly implemented REPL based on llvm -- 
cling [3]. The cling infrastructure is a core component of the data 
analysis framework of ROOT and runs in production for approximately 5 
years.

Cling is also  a standalone tool, which has a growing community outside 
of our field. Cling’s user community includes users in finance, biology 
and in a few companies with proprietary software. For example, there is 
a xeus-cling jupyter kernel [4]. One of the major challenges we face to 
foster that community is  our cling-related patches in llvm and clang 
forks. The benefits of using the LLVM community standards for code 
reviews, release cycles and integration has been mentioned a number of 
times by our "external" users.

Last year we were awarded an NSF grant to improve cling's sustainability 
and make it a standalone tool. We thank the LLVM Foundation Board for 
supporting us with a non-binding letter of collaboration which was 
essential for getting this grant.


Background
===

Cling is a C++ interpreter built on top of clang and llvm. In a 
nutshell, it uses clang's incremental compilation facilities to process 
code chunk-by-chunk by assuming an ever-growing translation unit [5]. 
Then code is lowered into llvm IR and run by the llvm jit. Cling has 
implemented some language "extensions" such as execution statements on 
the global scope and error recovery. Cling is in the core of HEP -- it 
is heavily used during data analysis of exabytes of particle physics 
data coming from the Large Hadron Collider (LHC) and other particle 
physics experiments.


Plans
===

The project foresees three main directions -- move parts of cling 
upstream along with the clang and llvm features that enable them; extend 
and generalize the language interoperability layer around cling; and 
extend and generalize the OpenCL/CUDA support in cling. We are at the 
early stages of the project and this email intends to be an RFC for the 
first part -- upstreaming parts of cling. Please do share your thoughts 
on the rest, too.


Moving Parts of Cling Upstream
---

Over the years we have slowly moved some patches upstream. However we 
still have around 100 patches in the clang fork. Most of them are in the 
context of extending the incremental compilation support for clang. The 
incremental compilation poses some challenges in the clang 
infrastructure. For example, we need to tune CodeGen to work with 
multiple llvm::Module instances, and finalize per each 
end-of-translation unit (we have multiple of them). Other changes 
include small adjustments in the FileManager's caching mechanism, and 
bug fixes in the SourceManager (code which can be reached mostly from 
within our setup). One conclusion we can draw from our research is that 
the clang infrastructure fits amazingly well to something which was not 
its main use case. The grand total of our diffs against clang-9 is: `62 
files changed, 1294 insertions(+), 231 deletions(-)`. Cling is currently 
being upgraded from llvm-5 to llvm-9.

A major weakness of cling's infrastructure is that it does not work with 
the clang Action infrastructure due to the lack of an 
IncrementalAction.  A possible way forward would be to implement a 
clang::IncrementalAction as a starting point. This way we should be able 
to reduce the amount of setup necessary to use the incremental 
infrastructure in clang. However, this will be a bit of a testing 
challenge -- cling lives downstream and some of the new code may be 
impossible to pick straight away and use. Building a mainline example 
tool such as clang-repl which gives us a way to test that incremental 
case or repurpose the already existing clang-interpreter may  be able to 
address the issue. The major risk of the task is avoiding code in the 
clang mainline which is untested by its HEP production environment.
There are several other types of patches to the ROOT fork of Clang, 
including ones  in the context of performance,towards  C++ modules 
support (D41416), and storage (does not have a patch yet but has an open 
projects entry and somebody working on it). These patches can be 
considered in parallel independently on the rest.

Extend and Generalize the Language Interoperability Layer Around Cling
---

HEP has extensive experience with on-demand python interoperability 
using cppyy[6], which is built around the type information provided by 
cling. Unlike tools with custom parsers such as swig and sip and tools 
built on top of C-APIs such as boost.python and pybind11, cling can 
provide information about memory management patterns (eg refcounting) 
and instantiate templates on the fly.We feel that functionality may not 
be of general interest to the llvm community but we will prepare another 
RFC and send it here later on to gather feedback.


Extend and Generalize the OpenCL/CUDA Support in Cling
---

Cling can incrementally compile CUDA code [7-8] allowing easier set up 
and enabling some interesting use cases. There are a number of planned 
improvements including talking to HIP [9] and SYCL to support more 
hardware architectures.



The primary focus of our work is to upstreaming functionality required 
to build an incremental compiler and rework cling build against vanilla 
clang and llvm. The last two points are to give the scope of the work 
which we will be doing the next 2-3 years. We will send here RFCs for 
both of them to trigger technical discussion if there is interest in 
pursuing this direction.


Collaboration
===

Open source development nowadays relies on reviewers. LLVM is no 
different and we will probably disturb a good number of people in the 
community ;)We would like to invite anybody interested in joining our 
incremental C++ activities to our open every second week calls. 
Announcements will be done via google group: compiler-research-announce 
(https://groups.google.com/g/compiler-research-announce).



Many thanks!


David & Vassil

Read more

Also: Cling C++ Interpreter Looking To Upstream More Code Into LLVM

Microsoft to pull support for PHP

Filed under
Development
Microsoft
  • Microsoft to pull support for PHP: Version 8? Exterminate, more like...

    Born-again open-source fan Microsoft is celebrating 25 years of PHP by, er, pulling its support for the scripting language that is beloved (or dreaded) by server operators the world over.

    Microsoft engineer Dale Hirt confirmed the change on the PHP mailing list, warning that the Windows behemoth was not "going to be supporting PHP for Windows in any capacity for version 8.0 and beyond."

    Current versions, 7.2, 7.3 and 7.4, will continue to receive support as per the community's cadence, which sees around two years of bug squashing followed by a year of security fixes. PHP 7.4 emerged last November, so Microsoft's benevolence should last until 2022 at which point the plug will be pulled.

    Register reader Alain Williams, who tipped us off to Hirt's posting, remarked: "I suspect that it means that Microsoft will not provide any resources to make PHP 8 work but expect others to do so instead."

    After thanking the Microsoft gang for its work over the years, PHP 8.0 Release Manager Sara Golemon said: "I won't say I'm not bummed," before expressing the hope that some sort of alternative might be worked out by the end of the year, when version 8 is due to drop.

  • [PHP-DEV] Microsoft Support of PHP on Windows

    Hello PHP Internals,

    My name is Dale Hirt and I am the project manager for PHP inside Microsoft.

    We currently support PHP with development and build efforts for PHP 7.3, and PHP 7.4. In addition,
    we help with building PHP 7.2 on Windows when security fixes are required..

    However, as PHP 8.0 is now ramping up, we wanted to let the community know what our current plans
    are going forward.

    We know that the current cadence is 2 years from release for bug fixes, and 1 year after that for
    security fixes. This means that PHP 7.2 will be going out of support in November. PHP 7.3 will be
    going into security fix mode only in November. PHP 7.4 will continue to have another year of bug
    fix and then one year of security fixes. We are committed to maintaining development and building
    of PHP on Windows for 7.2, 7.3 and 7.4 as long as they are officially supported. We are not,
    however, going to be supporting PHP for Windows in any capacity for version 8.0 and beyond.

Programming: Perl, Git/Emacs and Compilers

Filed under
Development
  • Listen to Larry Wall's State of the Onion 2000 on YouTube

    It’s a typical Larry talk filled with quirky, humorous observations about life and programming, and notably he announces the Perl 6 project.

    Unfortunately the audio is low quality (hey it was 20 years ago at a low-budget conference); you can read a transcript of the talk here (with mp3 download links at the bottom). We also have collection of attendees’ reports from the conference.

  •        

  • Chicago.pm Virtual Meeting: July 23

    In case you are not familiar with gather.town, after you join the conversation, you will have a small avatar on a 2d map and can walk around. When you are close to somebody or a group of people, you can video chat with them over video. Perlmongers is supposed to be a social gathering, and we are experimenting with this venue to see if it'll make that possible!

  • The Magit Git Client Is The "Killer Feature" In Emacs

    Users of other text editors often ask "why should I switch to Emacs?" or, more specifically, "what is the killer feature that Emacs offers?" Depending on your workflow, the killer feature for Emacs could be a number of things, one them being Magit!

  • Alder Lake-S Compiler Update Points to big.LITTLE Desktop Chips

    This design builds upon the big.LITTLE (Big.BIGGER in Intel parlance) design that debuted in the company's 3D Lakefield chips. These designs incorporate one large Sunny Cove core combined with four Atom Tremont smaller cores in an ARM-like design. With the architecture proven and already working its way through the ecosystem, it's rational to expect Intel to scale it up to tackle desktop PCs, too.

    The GNU compiler updates include a list of compatible instructions for both Intel's upcoming data center Sapphire Ridge chips and Alder Lake desktop chips, with the latter noticeably missing support for AVX-512, a SIMD instruction that Intel recently introduced to its desktop chips. These instructions are disabled in Intel's hybrid Lakefield chips to keep the instruction set consistent between cores (Atom doesn't support AVX instructions), therefore easing operating system scheduling routines that target different workloads at the cores best suited for the task. Therefore, the lack of AVX-512 support for Alder Lake could serve as further evidence that Intel will bring its hybrid architecture to desktop PCs.

Python Programming

Filed under
Development
  • The Real Python Podcast – Episode #17: Linear Programming, PySimpleGUI, and More

    Are you familiar with linear programming, and how it can be used to solve resource optimization problems? Would you like to free your Python code from a clunky command line and start making convenient graphical interfaces for your users? This week on the show, David Amos is back with another batch of PyCoder's Weekly articles and projects.

  • Managing Python Environments with direnv and pyenv
  • wxPython by Example – Creating a wx.Notebook (Video)

    In this tutorial, you will learn how to add a wx.Notebook to your GUI application using wxPython. The notebook widget is how you would add a tabbed interface to your application.

  • 12+ Free (or Low-Cost) Websites to Empower Your Programming Education

    Although we still talk about programming as a standalone career, the dominance of technology in our lives makes it clear that coding is much more than a career path. In my opinion, computer science is more than a college major or a high-paid job - it’s a skill, essential for thriving in a modern-day economy.

    Regardless of what you want to do for a living - work in healthcare, marketing, business, or other fields - you will see more coding and have to deal with the growing number of technologies throughout your entire life.

    Now that we live in a tech-driven world, asking “Should I learn to program” is almost synonymous with “Should I learn to speak, read, or count?”. The short answer is: yes.

    How to start your journey in coding? The good news is, there are plenty of resources to support you all the way through. To save you the trouble of looking them up and choosing the right ones, I created my list of learning platforms that offer well-rounded programming education and help you stay competitive on the job market.

    Here are 12+ useful educational resources every coding student should check out.

  • A Hundred Days of Code, Day 003 - Methods

    My understanding about methods? They are functions in classes that help me manipulate the data the objects contain when they are created.

    I have been using something them subconsciously all along.
    The __init__ method, that is called/run automatically every time an object is created.

  • Another try at a new Python module for OpenPGP aka johnnycanencrypt

    Using OpenPGP from Python is a pain. There are various documentation/notes on the Internet explaining why, including the famous one from isis agora lovecraft where they explained why they changed the module name to pretty_bad_protocol.

    sequoia-pgp is a Rust project to do OpenPGP from scratch in Rust, and as library first approach. You can see the status page to see how much work is already done.

    Using this and Pyo3 project I started writing an experimental Python module for OpenPGP called Johnny Can Encrypt.

  • PSF GSoC students blogs: Weekly Check-in #4
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
  obvious
- 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
  reliable

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