Language Selection

English French German Italian Portuguese Spanish

Development

Programming: GCC, C++, Python and PHP

Filed under
Development
  • AMD GCN GPU Target Continuing To Improve For The GCC 10 Compiler

    With the recent release of the GCC 9 stable compiler there is the initial "AMD GCN" GPU target/back-end merged. However, for this GNU Compiler Collection release the AMD GCN target isn't all that useful but continued work on it gives us hope of seeing it in good shape for next year's GCC 10 release.

    With the GCC 9.1 release, the AMD GCN back-end can only handle running basic single-threaded programs... Not exactly useful for graphics cards. The GCC 9 code supports targeting the Fiji and Vega 10 GCN instruction set architecture.

  • IBM Begins Plumbing "Future" Processor Into GCC Compiler - POWER10?

    IBM engineers have landed initial support for "-mcpu=future" into the GCC compiler... As they say in the commit message, "a future architecture level, as yet unnamed."

    This IBM "future" processor is being added to the POWER architecture code succeeding POWER9. More than likely, its the early enablement work for POWER10.

  • Little Trouble in Big Data – Part 1

    A few months ago, we received a phone call from a bioinformatics group at a European university. The problem they were having appeared very simple. They wanted to know how to usemmap() to be able to load a large data set into RAM at once. OK I thought, no problem, I can handle that one. Turns out this has grown into a complex and interesting exercise in profiling and threading.

    The background is that they are performing Markov-Chain Monte Carlo simulations by sampling at random from data sets containing SNP (pronounced “snips”) genetic markers for a selection of people. It boils down to a large 2D matrix of floats where each column corresponds to an SNP and each row to a person. They provided some small and medium sized data sets for me to test with, but their full data set consists of 500,000 people with 38 million SNP genetic markers!

  • Why precompiled headers do (not) improve C++ compile times

    Would you like your C++ code to compile twice as fast (or more)?

    Yeah, so would I. Who wouldn't. C++ is notorious for taking its sweet time to get compiled. I never really cared about PCHs when I worked on KDE, I think I might have tried them once for something and it didn't seem to do a thing. In 2012, while working on LibreOffice, I noticed its build system used to have PCH support, but it had been nuked, with the usual poor OOo/LO style of a commit message stating the obvious (what) without bothering to state the useful (why). For whatever reason, that caught my attention, reportedly PCHs saved a lot of build time with MSVC, so I tried it and it did. And me having brought the PCH support back from the graveyard means that e.g. the Calc module does not take 5:30m to build on a (very) powerful machine, but only 1:45m. That's only one third of the time.

    In line with my previous experience, on Linux that did nothing. I made the build system support also PCH with GCC and Clang, because it was there and it was simple to support it too, but there was no point. I don't think anybody has ever used that for real.

    Then, about a year ago, I happened to be working on a relatively small C++ project that used some kind of an obscure build system called Premake I had never heard of before. While fixing something in it I noticed it also had PCH support, so guess what, I of course enabled it for the project. It again made the project build faster on Windows. And, on Linux, it did too. Color me surprised.

  • KDAB at CppCon 2019

    CppCon is the annual, week-long face-to-face gathering for the entire C++ community – the biggest C++ event in the world. This year, for the first time, CppCon takes place in the stunning Gaylord Rockies Hotel and Convention Center in Aurora, Colorado, very near Denver International Airport.

  • Clear Linux Discovers Another AVX2/AVX512 Fix/Optimization To Yield Better Performance

    For those running a system with AVX-512 support, Clear Linux builds as of this week should be yielding even better performance on top of their existing AVX2 and AVX-512 optimizations.

    The Intel developers working on Clear Linux uncovered an issue how the new GCC 9 compiler has been building the important libm math library poorly in AVX2/AVX-512 mode. This poor code compilation yielded slowdowns in various math functions since the switch to the GCC 9 compiler.

  • Building Machine Learning Data Pipeline using Apache Spark
  • It is easier to gather package meta-data from PyPI package ecosystem, once know the right way
  • Python 2.7 vs Python 3.4 ─ What should Python Beginners choose?
  • Be Quick or Eat Potatoes: A Newbie’s Guide to PyCon
  • Remote Development with Wing Pro

    In this issue of Wing Tips we take a quick look at Wing Pro's remote development capabilities.

  • Data School: Data science best practices with pandas (video tutorial)
  • PHP extensions status with upcoming PHP 7.4

Announcing Rust 1.35.0

Filed under
Development
Moz/FF

The Rust team is happy to announce a new version of Rust, 1.35.0. Rust is a programming language that is empowering everyone to build reliable and efficient software.

Read more

Also: Rust 1.35 Released With Support For Empty Debug Macro, ~4x Faster ASCII Case Conversions

GNU Guile 2.9.2 (beta) released

Filed under
Development
GNU

We are delighted to announce GNU Guile 2.9.2, the second beta release in preparation for the upcoming 3.0 stable series. See the release announcement for full details and a download link.

This release extends just-in-time (JIT) native code generation support to the ia32, ARMv7, and AArch64 architectures. Under the hood, we swapped out GNU Lightning for a related fork called Lightening, which was better adapted to Guile's needs.

Read more

Programming: Kyma, Microsoft Entryism, Python, Go, and Fedora Summer Coding interns

Filed under
Development
  • Kyma - extend and build on Kubernetes with ease

    According to this recently completed CNCF Survey, the adoption rate of Cloud Native technologies in production is growing rapidly. Kubernetes is at the heart of this technological revolution. Naturally, the growth of cloud native technologies has been accompanied by the growth of the ecosystem that surrounds it. Of course, the complexity of cloud native technologies have increased as well. Just google for the phrase “Kubernetes is hard”, and you’ll get plenty of articles that explain this complexity problem. The best thing about the CNCF community is that problems like this can be solved by smart people building new tools to enable Kubernetes users: Projects like Knative and its Build resource extension, for example, serve to reduce complexity across a range of scenarios. Even though increasing complexity might seem like the most important issue to tackle, it is not the only challenge you face when transitioning to Cloud Native.

  • A panel with the new Python steering council [Ed: Microsoft bought PyCon and and now it's stuffing/stacking Python panels to push proprietary software with back doors (or its 'free bait')]

    Brett Cannon is a development manager for the Python extension to Visual Studio Code at Microsoft.

    [...]

    [I would like to thank LWN's travel sponsor, the Linux Foundation, for travel assistance to Cleveland for PyCon.]

  • Run your blog on GitHub Pages with Python [Ed: Why does Red Hat's site help Microsoft devour blogs with its  surveillance and lock-in machine?]
  • Testing a Go-based S2I builder image
  • EuroPython 2019: Monday and Tuesday activities for main conference attendees

    Although the main conference starts on Wednesday, July 10th, there’s already so much to do for attendees with the main conference ticket on Monday 8th and Tuesday 9th.

  • Test and Code: 75: Modern Testing Principles - Alan Page
  • Shaily and Zubin: Building CI pipelines and helping testers

    This post is the third introduction to the Fedora Summer Coding interns Class of Summer 2019. In this interview, we’ll meet Shaily Sangwan and Zubin Choudhary, who are both working on projects to improve quality assurance processes in the Fedora community.

Crazy Compiler Optimizations

Filed under
Development
GNU
Linux

Kernel development is always strange. Andrea Parri recently posted a patch to change the order of memory reads during multithreaded operation, such that if one read depended upon the next, the second could not actually occur before the first.

The problem with this was that the bug never could actually occur, and the fix made the kernel's behavior less intuitive for developers. Peter Zijlstra, in particular, voted nay to this patch, saying it was impossible to construct a physical system capable of triggering the bug in question.

And although Andrea agreed with this, he still felt the bug was worth fixing, if only for its theoretical value. Andrea figured, a bug is a bug is a bug, and they should be fixed. But Peter objected to having the kernel do extra work to handle conditions that could never arise. He said, "what I do object to is a model that's weaker than any possible sane hardware."

Will Deacon sided with Peter on this point, saying that the underlying hardware behaved a certain way, and the kernel's current behavior mirrored that way. He remarked, "the majority of developers are writing code with the underlying hardware in mind and so allowing behaviours in the memory model which are counter to how a real machine operates is likely to make things more confusing, rather than simplifying them!"

Still, there were some developers who supported Andrea's patch. Alan Stern, in particular, felt that it made sense to fix bugs when they were found, but that it also made sense to include a comment in the code, explaining the default behavior and the rationale behind the fix, even while acknowledging the bug never could be triggered.

But, Andrea wasn't interested in forcing his patch through the outstretched hands of objecting developers. He was happy enough to back down, having made his point.

It was actually Paul McKenney, who had initially favored Andrea's patch and had considered sending it up to Linus Torvalds for inclusion in the kernel, who identified some of the deeper and more disturbing issues surrounding this whole debate. Apparently, it cuts to the core of the way kernel code is actually compiled into machine language.

Read more

Programming Leftovers

Filed under
Development
  • Intel Icelake Brings New Top-Down Performance Counters

    Back to the Sandy Bridge days there have been "Top-Down" metrics for exposing CPU pipeline statistics around bottlenecks in the processor front-end, back-end, bad speculation, or retiring. Those metrics have been done using generic counters but with Icelake and Intel CPUs moving forward, there are in-hardware fixed performance counters for these metrics.

  • Intel Open-Source 19.19.12968 Compute Runtime Released

    For those making use of Intel's OpenCL "NEO" Compute Runtime, a new tagged release is now available.

    The Intel 19.19.12968 Compute Runtime is this latest release consisting of the latest code around their OpenCL LLVM/Clang components with the graphics compiler, GMM Library, and related bits. With today's release, they pulled in the Intel Graphics Compiler 1.0.4 update.

  • Running Python in the Browser

    Running Python in the web browser has been getting a lot of attention lately. Shaun Taylor-Morgan knows what he’s talking about here – he works for Anvil, a full-featured application platform for writing full-stack web apps with nothing but Python. So I invited him to give us an overview and comparison of the open-source solutions for running Python code in your web browser.

  • Python Logging: A Stroll Through the Source Code

    The Python logging package is a a lightweight but extensible package for keeping better track of what your own code does. Using it gives you much more flexibility than just littering your code with superfluous print() calls.

    However, Python’s logging package can be complicated in certain spots. Handlers, loggers, levels, namespaces, filters: it’s not easy to keep track of all of these pieces and how they interact.

    One way to tie up the loose ends in your understanding of logging is to peek under the hood to its CPython source code. The Python code behind logging is concise and modular, and reading through it can help you get that aha moment.

    This article is meant to complement the logging HOWTO document as well as Logging in Python, which is a walkthrough on how to use the package.

  • Enhance your AI superpowers with Geospatial Visualization
  • Kushal's Colourful Adafruit Adventures

    Friend of Mu, community hero, Tor core team member, Python core developer and programmer extraordinaire Kushal Das, has blogged about the fun he’s been having with Adafruit’s Circuit Playground Express board, CircuitPython and Mu.

today's howtos and programming

Filed under
Development
HowTos

Programming: KubeCon, PHP, Python, GitLab, and Rust

Filed under
Development
  • Team OpenCensus or OpenTracing? It'll be neither and both now: Hello, OpenTelemetry

    Something odd happened at KubeCon 2019. Rather than snipe at each other from the safety of Twitter, two very similar open-source projects opted to pool their ideas into one: OpenTelemetry.

    The project is geared towards solving the problem of working out just what the heck is happening in today's microservices or container-based apps. Logging without incurring a chunky overhead both in terms of generating useful telemetry and actually collating the output.

    Distributed tracing is a bit more than fancy logging, as one commentator put it. Think more a transaction log over all the containers, services and components used in an application.

    Two projects emerged to deal with the challenge – OpenCensus from Google and OpenTracing, co-created by Ben Sigelman of Lightstep.

  • PHP 7.4 as Software Collection.

    Version 7.4.0-alpha1 will be soon released. It's now enter the stabilization phase for the developers, and the test phase for the users.

    RPM of this upcoming version of PHP 7.4, are available in remi repository for Fedora 29, 30 and Enterprise Linux 7, 8 (RHEL, CentOS, ...) in a fresh new Software Collection (php74) allowing its installation beside the system version.

    As I strongly believe in SCL potential to provide a simple way to allow installation of various versions simultaneously, and as I think it is useful to offer this feature to allow developers to test their applications, to allow sysadmin to prepare a migration or simply to use this version for some specific application, I decide to create this new SCL.

  • HEIC / HEIF images support

    The HEIF image format (High Efficiency Image File Format) is now widely used, especially since iOS 11, so it make sense to be able to process these images.

  • EuroPython 2019: First batch of accepted sessions
  • Hello CodeGrades!

    This is a blog about CodeGrades, an experiment to help folks learn about programming (initially in Python). We’ll use it to celebrate the successes, learn from the failures and reflect upon the feedback of participants. We’ll also share project news here too.

  • Setting Up GitLab CI for a Python Application

    This blog post describes how to configure a Continuous Integration (CI) process on GitLab for a python application.

  • How OpenTracing & OpenCensus Merger Helps Users Like GitLab

    In this episode of Let’s Talk, Andrew Newdigate – Staff Site Reliability Engineer at GitLab talks about OpenTracing, OpenCensus, and the newly announced OpenTelemetry project.

  • This Week In Rust: This Week in Rust 287
  • Kushal Das: Game of guessing colors using CircuitPython

OpenJDK 8 and 11: Still in safe hands

Filed under
Development

In 2018, Oracle announced that it would only provide free public updates and auto-updates of Java SE 8 for commercial users until the end of January 2019. Java 8 is a very important platform, used by millions of programmers, so this was a big deal. The Java community needed to fill the gap.

In February of this year, I was appointed as the new Lead of the OpenJDK 8 Update Releases Project. A couple of weeks later, I was appointed the new Lead of the OpenJDK 11 Updates Project. This is an important milestone in the history of OpenJDK and of Java SE because it’s the first time that a non-Oracle employee has led the current long-term OpenJDK release project. JDK 8 is still a much-used Java release in industry, and JDK 11 is the current long-term maintenance release.

It’s now a couple of weeks after the first releases of JDK8u and JDK11u on my watch. I think the process went pretty well, although it was not entirely smooth sailing for the developers. Having said that, we got our releases out on the day, as planned, and so far we’ve seen no major problems.

Read more

Spyder 4.0 takes a big step closer with the release of Beta 2!

Filed under
Development
Software

It has been almost two months since I joined Quansight in April, to start working on Spyder maintenance and development. So far, it has been a very exciting and rewarding journey under the guidance of long time Spyder maintainer Carlos Córdoba. This is the first of a series of blog posts we will be writing to showcase updates on the development of Spyder, new planned features and news on the road to Spyder 4.0 and beyond.

First off, I would like to give a warm welcome to Edgar Margffoy, who recently joined Quansight and will be working with the Spyder team to take its development even further. Edgar has been a core Spyder developer for more than two years now, and we are very excited to have his (almost) full-time commitment to the project.

Read more

Syndicate content

More in Tux Machines

Distros: Draco in Sparky, Fedora Issues and Optional Dependencies in Debian

  • Draco Desktop
    There is a new desktop available for Sparkers: Draco
  • Archiving 26 500 community Q&As from Ask Fedora
    Ask Fedora is the Fedora Linux community’s questions-and-answers portal, and it recently transitioned from a forum software called Askbot to Discourse. Changing the underlying forum software doesn’t have to be destructive but Ask Fedora decided to go with a nuke-and-pave migration strategy: They decided to start from scratch instead of copying user accounts and the user-contributed content to the new software. The first time I learned of the migration was a few days after it had happen. I’d run into an issue with my Fedora installation and went online looking for solutions. Every useful search result was from the old Ask Fedora site and every link returned an HTTP 404 Not Found error message as those answers hadn’t been migrated to the new Ask Fedora website.
  • Attention epel6 and epel7 ppc64 users
    If you are a epel6 or epel7 user on the ppc64 platform, I have some sad news for you. If you aren’t feel free to read on for a tale of eol architectures. ppc64 (the big endian version of power) was shipped with RHEL6 and RHEL7 and Fedora until Fedora 28. It’s been replaced by the ppc64le (little endian) version in Fedora and RHEL8.
  • Optional dependencies don’t work
    In the i3 projects, we have always tried hard to avoid optional dependencies. There are a number of reasons behind it, and as I have recently encountered some of the downsides of optional dependencies firsthand, I summarized my thoughts in this article. [...] Software is usually not built by end users, but by packagers, at least when we are talking about Open Source. Hence, end users don’t see the knob for the optional dependency, they are just presented with the fait accompli: their version of the software behaves differently than other versions of the same software. Depending on the kind of software, this situation can be made obvious to the user: for example, if the optional dependency is needed to print documents, the program can produce an appropriate error message when the user tries to print a document. Sometimes, this isn’t possible: when i3 introduced an optional dependency on cairo and pangocairo, the behavior itself (rendering window titles) worked in all configurations, but non-ASCII characters might break depending on whether i3 was compiled with cairo. For users, it is frustrating to only discover in conversation that a program has a feature that the user is interested in, but it’s not available on their computer. For support, this situation can be hard to detect, and even harder to resolve to the user’s satisfaction.

Servers: Kubernetes, Microservices, Containers and SUSE's Enterprise Storage 6

  • Is bare Kubernetes still too messy for enterprises?
    Kubernetes is touted as a computing cure-all, fixing up multicloud networking to data mobility. The open-source platform for orchestrating containers (a virtualized method for running distributed applications) may or may not be the panacea it’s hyped up to be. What is certain is that user-ready Kubernetes isn’t as easy as it sounds, so customers should shop carefully for a provider. Enterprise users of Kubernetes and containers may not guess just how many moving parts are under the covers. There are a ton of tiny pieces that have to line up just so in order for them to work, according to Mark Shuttleworth (pictured), founder and chief executive officer of Canonical Ltd. He likens these technologies to carefully constructed “fictions.”
  • Data as a microservice: Distributed data-focused integration
    Microservices is the architecture design favored in new software projects; however, getting the most from this type of approach requires overcoming several previous requirements. As the evolution from a monolithic to a distributed system takes place not only in the application space but also at the data store, managing your data becomes one of the hardest challenges. This article examines some of the considerations for implementing data as a service.
  • Container Adoption Shoots Up Among Enterprises In 2019: Survey
    Majority of IT professionals now run container technologies, with 90 percent of those running in production and 7 in 10 running at least 40 percent of their application portfolio in containers — an impressive increase from two years ago, when just 67 percent of teams were running container technologies in production. According to the joint 2019 Annual Container Adoption Survey released by Portworx and Aqua Security, enterprises have started making bigger investments in containers. In 2019, nearly one in five organizations is found to be spending over $1 million annually on containers (17%) as compared to just four percent in 2016.
  • SUSE Rolls Out Enterprise Storage 6
    SUSE has announced the latest version of its software-defined storage solution powered by Ceph technology. With SUSE Enterprise Storage 6, IT organizations can adapt to changing business demands. They may also reduce IT operational expense with new features focused on containerized and cloud workload support, improved integration with public cloud, and enhanced data protection capabilities, SUSE said.

OSS: 3scale, Wikipedia Edit-a-thon, LibreOffice Conference 2020, DataStax Openwashing and IGEL

  • Red Hat completes open sourcing of 3scale code
    At Red Hat we have always been proud of our open source heritage and commitment. We are delighted that more of the industry now shares our viewpoint, and more companies are looking to promote their open source bona fides of late. Open source software energizes developers and teams of committed developers working in parallel can outproduce the large development hierarchies of the last generation. We believe working upstream with open source communities is an important innovation strategy. Occasionally, however, innovation does originate in traditional commercial organizations under a proprietary development model. Three years ago, Red Hat discovered just such a company that was doing exciting things in the API economy.
  • Enbies and women in FOSS Wikipedia edit-a-thon
    To be brief, I’ll be hosting a Wikipedia edit-a-thon on enbies and women in free and open source software, on June 2nd, from 16:00 – 19:00 EDT. I’d love remote participants, but if you’re in the Boston area you are more than welcome over to my place for pancakes and collaboration times.
  • LibreOffice Conference 2020, it could be in your city
    LibreOffice Conference 2020 will be an event to remember, for a couple of reasons: it will be the 10th of a series of successful conferences, and it will celebrate the 10th anniversary of the LibreOffice project and the 20th of the FOSS office suite. In 2020, The Document Foundation will be on stage at many FOSS events around the world, and the LibreOffice Conference will be the most important of the year. Organizing this conference is a unique opportunity for FOSS communities, because the event will make the history of free open source software.
  • DataStax and the Modern Commercial Open Source Business
    One month ago, Google announced a set of partnerships with seven commercial open source providers. Among those announced was DataStax, which held its annual conference this year and, for the first time, an analyst day. While DataStax and the open source project it is based on, Cassandra, are differentiated on a technical basis, the company also represents an interesting contrast with its peers directionally both among the newly minted Google partners and more broadly. Of the seven commercial open source partners Google announced, for example, DataStax is one of two along with InfluxData that has not introduced a non-open source, hybrid license as a means of protecting itself from competition from the cloud providers. This is not, notably, because the company doesn’t seem them as a threat; asked about who the competition was in the analyst sessions, the CEO of DataStax candidly acknowledged that the company’s primary competitive focus was not on premise competition such as Oracle, but cloud-based managed services offerings.
  • IGEL Developing Linux Distro For Windows Virtual Desktop Users [Ed: IGEL used to support #GNU/Linux and now it's just helping Microsoft enslave GNU/Linux insider Windows with NSA back doors.]

Linux Mint Turns Cinnamon Experience Bittersweet

Linux Mint no longer may be an ideal choice for above-par performance out of the box, but it still can serve diehard users well with the right amount of post-installation tinkering. The Linux Mint distro clearly is the gold standard for measuring Cinnamon desktop integration. Linux Mint's developers turned the GNOME desktop alternative into one of the best Linux desktop choices. Linux Mint Cinnamon, however, may have lost some of its fresh minty flavor. The gold standard for version 19.1 Tessa seems to be a bit tarnished when compared to some other distros offering a Cinnamon environment. Given that the current Linux Mint version was released at the end of last December, it may be a bit odd for me to focus on a review some five months later. Linux Mint is my primary driver, though, so at long last I am getting around to sharing my lukewarm experiences. I have run Linux Mint Cinnamon on three primary work and testing computers since parting company with Ubuntu Linux Unity and several other Ubuntu flavors many years ago. I have recommended Linux Mint enthusiastically to associates and readers in my personal and professional roles. Read more