Language Selection

English French German Italian Portuguese Spanish

Development

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

Programming Leftovers

Filed under
Development

Programming: GNOME, CI/CD, Go and Qt

Filed under
Development
  • Bilal Elmoussaoui: libhandy-rs v0.6.0 is out!

    Recently I kind of took over the maintainership of libhandy-rs, the Rust bindings of libhandy. I have since then been preparing for a new release so that Rust & GTK app developers can update to the latest gtk-rs release as soon as possible. I also heavily depend on it on my various little apps.

  • Easily speed up CI by reducing download size

    Every time a CI pipeline runs on GitLab, it downloads the git repository for your project. Often, pipeline jobs are set up to make further downloads (of dependencies or subprojects), which are also run on each job.

  • What you need to know about automation testing in CI/CD

    Test automation means focusing continuously on detecting defects, errors, and bugs as early and quickly as possible in the software development process. This is done using tools that pursue quality as the highest value and are put in place to ensure quality—not just pursue it.

    One of the most compelling features of a continuous integration/continuous delivery (CI/CD) solution (also called a DevOps pipeline) is the opportunity to test more frequently without burdening developers or operators with more manual work. Let's talk about why that's important.

  • Generics for Go

    The Go programming language was first released in 2009, with its 1.0 release made in March 2012. Even before the 1.0 release, some developers criticized the language as being too simplistic, partly due to its lack of user-defined generic types and functions parameterized by type. Despite this omission, Go is widely used, with an estimated 1-2 million developers worldwide. Over the years there have been several proposals to add some form of generics to the language, but the recent proposal written by core developers Ian Lance Taylor and Robert Griesemer looks likely to be included in a future version of Go.

    [...]

    Generics, also known as "parameterized types" or "parametric polymorphism", are a way to write code or build data structures that will work for any data type; the code or data structure can be instantiated to process each different data type, without having to duplicate code. They're useful when writing generalized algorithms like sorting and searching, as well as type-independent data structures like trees, thread-safe maps, and so on. For example, a developer might write a generic min() function that works on all integer and floating-point types, or create a binary tree that can associate a key type to a value type (and work with strings, integers, or user-defined types). With generics, you can write this kind of code without any duplication, and the compiler will still statically check the types.

  • Fixing a common antipattern when loading translations in Qt

    I’m a Polish guy working with computers, mostly on Windows. However, the lingua franca of the IT industry is English, so every time I see a tutorial for some dev tool, it’s in that language. To lessen the burden of decoding which menu entry in the tutorial corresponds to which menu entry on my PC I decided to run the system with an English display language. I still want the rest of the i18n-related stuff (date format, keyboard, currency etc.) to be in Polish however.

    [...]

    As you can see, Thunderbird and Windows Settings show up in English but Qt Linguist is encrypted with some overengineered Slavic cipher (aka Polish language). What I further noticed, is that this incorrect language selection is particularly prevalent in Qt-based applications. Subsequent digging revealed that this antipattern is widespread in Qt world, see the relevant GitHub search (requires login).

Python Programming

Filed under
Development
  • The (non-)return of the Python print statement

    In what may have seemed like an April Fool's Day joke to some, Python creator Guido van Rossum recently floated the idea of bringing back the print statement—several months after Python 2, which had such a statement, reached its end of life. In fact, Van Rossum acknowledged that readers of his message to the python-ideas mailing list might be checking the date: "No, it's not April 1st." He was serious about the idea—at least if others were interested in having the feature—but he withdrew it fairly quickly when it became clear that there were few takers. The main reason he brought it up is interesting, though: the new parser for CPython makes it easy to bring back print from Python 2 (and before).

  • Release: PyCharm 2020.1.3

    PyCharm 2020.1.3 is out with some important bug fixes. Update from within PyCharm (Help | Check for Updates), using the JetBrains Toolbox, or by downloading the new version from our website.

    [...]

    If you’re on Ubuntu 16.04 or later, or any other Linux distribution that supports snap, you should not need to upgrade manually, you’ll automatically receive the new version.

  • Python Anywhere: Outage report 7 July 2020

    We had an unplanned outage the day before yesterday; it was our first big one since July 2017. It was caused by an extremely unlikely storage system failure, but despite that it should not have led to such a lengthy downtime, and should not have affected so many people. We have some plans on what our next steps should be, and will be implementing at least some of them over the coming months.

  • Using module __dir__ and __getattr__ for configuration
  • Enrolling Students - Building SaaS #64

    In this episode, we worked on a view to enroll students into a grade level for the school year. I added all the context data and used Tailwind to design the form layout to pick from a list of available grade levels. We added a variety of unit tests to prove the correctness.

    The enrollment page needed three pieces of data in the context to complete the form. We added the student, school_year, and grade_levels data to the context and wrote tests to show the data in there. We also protected that data from any erroneous access by another user.

    When the data was set, we worked on the template for the form. I set the header to make the enrollment action clear and created the radio input selectors to show the different grade level options. We cleaned up the design and user experience by including some Tailwind CSS classes which made the radio inputs much easier to select.

    At the end of the stream, we wrote the happy path test for the POST request to prove that the enrollment record exists after submission.

  • Top 8 Online Resources To Learn Anaconda In 2020
  • PSF GSoC students blogs: GSoC Week 6: Begin the Phase 2

Linux, Twitter look remove ‘blacklist/whitelist’ from code

Filed under
Development
Linux

Coding terms like ‘master’, ‘slave’, ‘blacklist’, and ‘whitelist’ could soon be a thing of the past as the likes of Linux, Twitter, Git, and IBM’s Red Hat begin purging non-inclusive phrases from their code.

Twitter Engineering announced last week that it wanted to “move away from” certain phrases that the social media company said was not reflective of its values.

“There is no switch we can flip to make these changes everywhere, at once,” the company said.

“We will continue to iterate on this work and want to put in place processes and systems that will allow us to apply these changes at scale.”

Along with terms like ‘blacklist’ and ‘whitelist’, Twitter said it wants to move away from gendered pronouns and even ‘dummy value’.

Read more

Python Programming

Filed under
Development

  • Python import: Advanced Techniques and Tips

    In Python, you use the import keyword to make code in one module available in another. Imports in Python are important for structuring your code effectively. Using imports properly will make you more productive, allowing you to reuse code while keeping your projects maintainable.

    This tutorial will provide a thorough overview of Python’s import statement and how it works. The import system is powerful, and you’ll learn how to harness this power. While you’ll cover many of the concepts behind Python’s import system, this tutorial is mostly example driven. You’ll learn from several code examples throughout.

  • Python 101 – Learning about Dictionaries (Video)
  • Writing docs is not just writing docs

    I joined the Spyder team almost two years ago, and I never thought I was going to end up working on docs. Six months ago I started a project with CAM Gerlach and Carlos Cordoba to improve Spyder’s documentation. At first, I didn’t actually understand how important docs are for software, especially for open source projects. However, during all this time I’ve learned how documentation has a huge impact on the open-source community and I’ve been thankful to have been able to do this. But, from the beginning, I asked myself “why am I the ‘right person’ for this?”

    Improving Spyder’s documentation started as part of a NumFOCUS Small Development Grant awarded at the end of last year. The goal of the project was not only to update the documentation for Spyder 4, but also to make it more user-friendly, so users can understand Spyder’s key concepts and get started with it more easily.

  • A Hundred Days of Code, Day 000 - Begin Again

    This probably is the fourth (or is it fifth) time, I’ll be attempting to learn how to program.
    And probably the same number of attempts at #100DaysOfCode.

  • A Hundred Days of Code, Day 001 - Beginning With Classes

    Notes I’ve taken from the videos I watched, today. This is my attempt at Feynman-ing (below), what I learnt so far.

    Classes and Object Oriented Programming started to come together for me, when I saw Kushal using them.

    To use my father’s carpentry analogy, I could in theory just hammer nails into wood to join them.
    But to make a really strong joint, I could use other methods.
    I could screw pieces of wood together, which is markedly better than just nailing them.
    I could chisel wood and create a dovetail or mortise joint.

  • Object Oriented Programming in Python: Complete Tutorial

    Python is a powerful programming language used for web application development. It is also a widely popular programming language used for machine learning and artificial intelligence applications.

    With Python, complex programming problem-solving becomes simpler. There are several approaches to problem-solving in Python. OOP is one of those approaches.

    In this article, I will introduce you to some fundamental OOP principles in Python development.

  • PSF GSoC students blogs: Weekly Check-In #6
  • PSF GSoC students blogs: Week 3 Blog Post

Linux Kernel Raising Compiler Build Requirement To GCC 4.9

Filed under
Development
GNU
Linux

Linus Torvalds has decided to up the compiler build requirement for the Linux kernel to GCC 4.9.

Recently the compiler requirement was upped to GCC 4.8 while as a late change for Linux 5.8 is now bumping the base compiler version supported to GCC 4.9.

Torvalds updated the requirement on the basis of the Linux kernel currently having to workaround multiple pre-4.9 GCC bugs and other headaches. Shifting the requirement to GCC 4.9 will allow kernel developers to make better assumptions and clean-up a lot of code moving forward.

Read more

GNOME, Linux, Qt and Git Programming

Filed under
Development
Linux
GNOME
  • Philip Withnall: URI parsing and building in GLib

    Marc-André Lureau has landed GUri support in GLib, and it’ll be available in GLib 2.65.1 (due out in the next few days).

    GUri is a new API for parsing and building URIs, roughly equivalent to SoupURI already provided by libsoup — but since URIs are so pervasive, and used even if you’re not actually doing HTTP conversations, it makes sense to have a structured representation for them in GLib.

  • Sandboxing in Linux with zero lines of code

    Modern Linux operating systems provide many tools to run code more securely. There are namespaces (the basic building blocks for containers), Linux Security Modules, Integrity Measurement Architecture etc.

    In this post we will review Linux seccomp and learn how to sandbox any (even a proprietary) application without writing a single line of code.

  • Mario Sanchez Prada: ​Chromium now migrated to the new C++ Mojo types

    At the end of the last year I wrote a long blog post summarizing the main work I was involved with as part of Igalia’s Chromium team. In it I mentioned that a big chunk of my time was spent working on the migration to the new C++ Mojo types across the entire codebase of Chromium, in the context of the Onion Soup 2.0 project.

    For those of you who don’t know what Mojo is about, there is extensive information about it in Chromium’s documentation, but for the sake of this post, let’s simplify things and say that Mojo is a modern replacement to Chromium’s legacy IPC APIs which enables a better, simpler and more direct way of communication among all of Chromium’s different processes.

  • 6 best practices for teams using Git

    Everyone should follow standard conventions for branch naming, tagging, and coding. Every organization has standards or best practices, and many recommendations are freely available on the internet. What's important is to pick a suitable convention early on and follow it as a team.

    Also, different team members will have different levels of expertise with Git. You should create and maintain a basic set of instructions for performing common Git operations that follow the project's conventions.

  • Qt for MCUs 1.3 released

    Qt for MCUs 1.3 is now available in the Qt installer. Download it to get the latest improvements and create stunning GUIs with the newly available timeline animation system.

    Since the initial release of Qt for MCUs 1.0 back in December last year, we've been hard at work to bring new features to MCUs with the 1.1 and 1.2 releases. Efforts haven't slowed down and it's already time to bring you another batch of improvements. Besides the new features, One of the goals has been to make Qt Quick Ultralite a true subset of Qt Quick and align their QML APIs to ensure both code and skills can be reused from traditional Qt platforms to microcontrollers. With Qt for MCUs 1.3, QML code written for Qt Quick Ultralite is now source-compatible with Qt 5.15 LTS.

Syndicate content

More in Tux Machines

Audiocasts/Shows: Debian 10.5 KDE Plasma Run Through, Late Night Linux, Linux Headlines

  • Debian 10.5 KDE Plasma Run Through

    In this video, we are looking at Debian 10.5. Enjoy!

  • Late Night Linux – Episode 95

    A look back at the year in Linux so far, some speculation about what’s coming, Lineage OS on the Raspberry Pi, and KDE Korner.

  • 2020-08-03 | Linux Headlines

    Linux kernel 5.8 is out, BunsenLabs rebases to Debian 10 “Buster,” Mastodon releases version 3.2 with multimedia enhancements, and The Linux Foundation forms the Open Source Security Foundation.

today's howtos

Android Leftovers

today's leftovers

  • KDE NEON 20200723 overview | The latest and greatest of KDE community

    In this video, I am going to show an overview of KDE NEON 20200723 and some of the applications pre-installed.

  • Vulkan 1.2.149 Released With Another Extension For Helping The Likes Of DXVK

    Vulkan 1.2.149 is out today and its lone new extension is yet another addition to the Vulkan API for helping translation layers like DXVK map other graphics APIs on top. Vulkan has been quite welcoming of additions to help run graphics APIs like OpenGL and Direct3D on top of it. With today's release of Vulkan 1.2.149 there is another addition to help in that multi-project effort and it's VK_EXT_4444_formats.

  • Linux 5.9 Dropping The Unicore 32-bit RISC Architecture

    It's arguably long overdue but with the just-opened Linux 5.9 kernel cycle the Unicore32 CPU architecture is being removed. Unicore is a 32-bit RISC architecture developed at China's Peking University. Unicore is an ARM-like architecture. But with Unicore not being too popular and this code not seeing any maintenance for the mainline kernel paired with no upstream compiler support, it's time to gut the code out of the kernel.

  • IO_uring Has Many Improvements Set To Go Into Linux 5.9

    Facebook's Jens Axboe who oversees the Linux storage/block code and leads the IO_uring efforts summed up the changes for Linux 5.9 as "hardening the code and/or making it easier to read and fixing [bits]." There is though a big change and that is proper async buffered reads support. That work was previously covered but didn't end up getting pulled into Linux 5.8 due to a branching difference but is now ready to go with Linux 5.9. The async buffered reads support for IO_uring has some nice performance advantages and lower CPU usage while also working its way off KThreads for the fast code path once the async buffered write support is in place.

  • New Helix by OnLogic brings GPU computing to the Edge

    Both systems can be configured with a range of Windows operating systems or Ubuntu Linux, and OnLogic plans to add imaging options for many of their software partners in the future, including Ignition by Inductive Automation, ThinManager, EdgeIQ, IGEL and AWS Greengrass.

  • Looks like the recent upwards trend of the Linux market share has calmed down [Ed: As if a Microsoft partner which pretends Android and ChromeOS etc. don't exist was ever painting an accurate picture...]

    For NetMarketShare, something pretty big happened over the last few months. Back in March the Linux share they recorded was only 1.36%, and then it quickly rocketed upwards to 3.61% in June after multiple months of rising. The kind of rise you can't easily just write-off since it continued happening. No one really knows what caused it, possibly a ton more people working from home and not attached to their corporate Windows workstation. Now though, it seems to be levelling out as July's figure now shows it as 3.57%. Considering more people are being told to go back to work, perhaps it was as a result of COVID19. Across that whole time though, it's worth noting StatCounter which also tracks it has hardly moved this whole time. So you may want to press X to doubt on it.

  • Librem 5 June 2020 Software Development Update

    This is another incarnation of the software development progress for the Librem 5. This time for June 2020 (weeks 23-26). Some items are covered in more detail in separate blog posts at https://puri.sm/news. The idea of this summary is to have a closer look at the coding and design side of things. It also shows how much we’re standing on the shoulders of giants reusing existing software and how contributions are flowing back and forth between upstream and downstream projects. This quickly gets interesting since we’re upstream for some projects (e.g. calls, phosh, chatty) and downstream for others (e.g Debian, Linux kernel, GNOME). So these reports are usually rather link heavy pointing to individual merge requests on https://source.puri.sm/ or to the upstream side (like e.g. GNOME’s gitlab).

  • Red Hat certification remote exams now available

    It’s not a new idea that organizations worldwide need and seek qualified IT professionals with the skills and knowledge needed to use Red Hat products successfully. And for the last two decades, Red Hat Training and Certification has provided a way for them to assess, train and validate skills. Last year, we launched preliminary exams as a way to provide experience with our hands-on approach to testing to a broader audience and to explore making this approach more widely available as online exams. This year, the COVID-19 pandemic has meant temporary site closures, lockdowns and social distancing. Going to a test center to take an exam is not an option in many places. Even if it is, candidates for certification might be understandably reluctant to visit a center to take an exam. With that in mind, Red Hat has accelerated our efforts, and I am very pleased to announce that several of our certification exams are now available remotely.

  • Red Hat Customer Success Stories: digital transformation through people, process and technology

    Condis Supermarcats is a family-owned supermarket chain that is a household name in central and northern Spain. The company operates more than 400 physical storefronts, ranging from hypermarkets to local convenience stores, and a growing digital business. In 2017, Condis began several high-profile projects as part of its digital transformation efforts, including launch of a new customer resource management (CRM) system and a customer-facing mobile application. To support these projects, Condis’s IT team sought to better integrate the company’s IT infrastructure with microservices. "Our architecture was not cloud-integrated or suited for the agile approach we needed to develop our digital business," said Sergio Murillo, Technology Development and IT Operations Manager at Condis. "For example, each Condis store has access to a customer database, centralized using a cloud-based tool. However, we needed this data exchange to be integrated seamlessly with our CRM."

  • 10 Years of OpenStack – Gary Kevorkian at Cisco

    Storytelling is one of the most powerful means to influence, teach, and inspire the people around us. To celebrate OpenStack’s 10th anniversary, we are spotlighting stories from the individuals in various roles from the community who have helped to make OpenStack and the global Open Infrastructure community successful.

  • The Month in WordPress: July 2020

    July was an action-packed month for the WordPress project. The month saw a lot of updates on one of the most anticipated releases – WordPress 5.5! WordCamp US 2020 was canceled and the WordPress community team started experimenting with different formats for engaging online events, in July. Read on to catch up with all the updates from the WordPress world.