Language Selection

English French German Italian Portuguese Spanish

Programming: C++ in Libreoffice, Rust in GNU/GTK, and Python

Filed under
Development
  • Drawing in OutputDevice

    For a long time now I have noticed that OutputDevice is a class that is tightly coupled to drawing primitives such a pixels, lines, rectangles, etc. To draw new primitives in OutputDevice, you need to change the interface by adding another function, often you need to add new private functions, etc.

    I have never been entirely comfortable with this - I believe that we shouldn't vary the OutputDevice class, but instead the functionality should be implemented in a command pattern. In a command pattern, you use an object to encapsulate the functionality used to perform an action. What this means is that OutputDevice no longer needs to know how to directly draw a line, pixel, rectangle or any other primitive we throw at it - this is all done in the command object. I call these OutputDevice Drawables. It turns out, I find it easier to test a command object.

  • This Week in Rust 312

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

  • The GTK Rust bindings are not ready yet? Yes they are!

    When talking to various people at conferences in the last year or at conferences, a recurring topic was that they believed that the GTK Rust bindings are not ready for use yet.

    I don’t know where that perception comes from but if it was true, there wouldn’t have been applications like Fractal or Podcasts using GTK from Rust, or I wouldn’t be able to do a workshop about desktop application development in Rust with GTK and GStreamer at the Linux Application Summit in Barcelona this Friday (code can be found here already) or earlier this year at GUADEC.

    One reason I sometimes hear is that there is not support for creating subclasses of GTK types in Rust yet. While that was true, it is not true anymore nowadays. But even more important: unless you want to create your own special widgets, you don’t need that. Many examples and tutorials in other languages make use of inheritance/subclassing for the applications’ architecture, but that’s because it is the idiomatic pattern in those languages. However, in Rust other patterns are more idiomatic and even for those examples and tutorials in other languages it wouldn’t be the one and only option to design applications.

  • Getting Started With Python IDLE

    If you’ve recently downloaded Python onto your computer, then you may have noticed a new program on your machine called IDLE. You might be wondering, “What is this program doing on my computer? I didn’t download that!” While you may not have downloaded this program on your own, IDLE comes bundled with every Python installation. It’s there to help you get started with the language right out of the box. In this tutorial, you’ll learn how to work in Python IDLE and a few cool tricks you can use on your Python journey!

  • Advanced OpenGL in Python with PyGame and PyOpenGL

    Following the previous article, Understanding OpenGL through Python where we've set the foundation for further learning, we can jump into OpenGL using PyGame and PyOpenGL.

    PyOpenGL is the standardized library used as a bridge between Python and the OpenGL APIs, and PyGame is a standardized library used for making games in Python. It offers built-in handy graphical and audio libraries and we'll be using it to render the result more easily at the end of the article.

    As mentioned in the previous article, OpenGL is very old so you won't find many tutorials online on how to properly use it and understand it because all of the top dogs are already knee-deep in new technologies.

  • Norbert Preining: Python 3 deprecation imminent

    OSS Journal, November 2026. In less than two month, with the end of the year 2026, Python 3 will be deprecated and will not obtain any further security updates. Despite the announcement of deprecation back in summer 2020, shortly after the deprecation of Python 2, still thousands of software projects, in particular in data science, seem to be still based on Python 3.

    [...]

    The Python 3 deprecation has created a whole new branch of companies providing only Python upgrade services, but despite the abundance of these services, many programs are still available only for Python 3, some – like Calibre – even only for Python 2.

    So let us use the remaining month to fix the billions of lines of code still not compatible with Python 4, for a better future! Rest assured, it will be the last incompatible Python upgrade (for now).

  • My New Title, Improving pip, Availability For Work, And SSL (No, The Other One): A few professional announcements.

    One is that I helped the Packaging Working Group of the Python Software Foundation get funding for a long-needed improvement to pip. I led the writing of a few proposals -- grantwriting, to oversimplify -- and, starting possibly as soon as next month, contractors will start work.

  • File management improvements in Spyder4

    Version 4.0 of Spyder—a powerful Python IDE designed for scientists, engineers and data analysts—is almost ready! It has been in the making for well over two years, and it contains lots of interesting new features. We will focus on the Files pane in this post, where we've made several improvements to the interface and file management tools.

  • Artem Rys: 5 Scraping Tips

More in Tux Machines

today's leftovers

  • 2019-12-13 | Linux Headlines

    Zulip version 2.1 is out, LibreOffice has a new manual, the Linux Foundation announces yet another initiative, and individual talks from the Linux App Summit have hit the web.

  • Intel Releases Cloud-Hypervisor 0.4 As Its Rust-Written VMM Built Off KVM

    Friday marked not only the release of QEMU 4.2 for Linux virtualization but Intel's open-source crew developing the Cloud-Hypervisor as the Rustlang-based VMM built around Linux's KVM and VirtIO interfaces is out with a big feature release. Cloud-Hypervisor took shape this year and has been quick to evolve since its inaugural release in July. Cloud-Hypervisor during its pre-alpha stage is catered to Clear Linux and Ubuntu while also focusing on x86_64 CPU support but AArch64 coverae is said to be coming in the future. Windows 64-bit guest support is also under evaluation.

  • Qubes OS 4.0.2-rc3 has been released!

    We’re pleased to announce the third release candidate for Qubes 4.0.2!

  • History of Java

    Java was first introduced by Sun Microsystems in 1995. The project was started in the lab of Sun Microsystems by James Gosling, Mike Sheridan, Patrick Naughton. There were more people in the team but these three were main. The name of this team was the Green Team. The first version’s name was the Java Alpha Beta version in 1995. Java Development Kit also called JDK was first introduced in 1996. When Sun Microsystems released the first version of Java in 1996, it was called JDK 1.0 and the code name for this project was OAK. The OAK word was taken from the name of OAK Tree. The picture of the OAK tree is shown below.

  • Python 3.7.5 : Django admin shell by Grzegorz Tężycki.

    Today I tested another python package for Django named django-admin-shell.

  • How the community can help your business: People Powered [Ed: Microsoft-leaning propaganda is consistent. Microsoft propaganda and talking points everywhere, every day, even in the "LINUX" section.]
  • Online Forum Members Exploited Weak Credentials To Turn Ring Cameras Against Their Owners

    To add to all the bad news that is Ring camera's life cycle to this point comes the report that a group of malcontents has been exploiting default/weak credentials to gain access to cameras. Joseph Cox has the this-would-be-funny-if-it-weren't-so-scary details at Motherboard.

  • Apple Releases CUPS 2.3.1 To Fix Security Issue + Other Bugs

    Back in August was the release of the very big CUPS 2.3 update that shifted the source code license, added support for IPP Printer presets, added a new utility, and other improvements for this Apple-controlled Unix/Linux printing system. Available now is CUPS 2.3.1 with various fixes.

OSS: Adoption, Creative Commons (CC), Mozilla and LibreOffice

  • Firms Lack Enterprise Open-Source Strategy

    Wall Street’s adoption of open-source development has come to a crossroads, according to recent research published by industry analyst firm Aite Group. In the 28 years since Linus Torvalds released his open-source Linux operating system kernel, it has taken 23 years for the adoption of the development model to gain prominence with financial services institutions, according to Tosha Ellison, director of member success at the Fintech Open Source Foundation as whose organization sponsored the research,

  • Introducing CC Vocabulary, Our New Web Design System

    Over the past few months, we’ve been working on CC Vocabulary, a new open source software project that provides a cohesive design system to unite the web-facing Creative Commons (CC).

  • Pub True [Ed: Mozilla does surveillance on Firefox users, using the popular euphemisms “data science” and “telemetry”]

    I'm ramping up on a project to understand how Firefox retains users. Right now I'm trying to build some context quickly. For example, what's our monthly retention? How about our annual retention? There's a bunch of interesting and nuanced measurement questions that we'll eventually have to answer, but for now I'm just interested in getting some quick back-of-the-envelope numbers.

  • Help our community with social media in various languages and locations!

    Love LibreOffice? Want to help spread the word? And do you speak another language than English? Then we’d appreciate your help! We have lots of community-created LibreOffice accounts on Facebook and Twitter, but some haven’t been updated for a while. The full list is below, with the date the account was last active – if you’re interested in helping to maintain one, join our marketing list and let us know!

Red Hat's Openwashing and IBM Using Red Hat to Sell Proprietary z/OS

  • Tech Marketing the Open Source Way: Lessons from RedHat and GitHub [Ed: Why does Red Hat prop up proprietary software (GitHub) that's owned by Microsoft? What does that say about Red Hat? This openwashing was composed by someone who came from Microsoft Black Duck.]
  • New extensions in IBM z/OS — containerized workloads

    Container frameworks like Docker allow software to be deployed in a modular fashion and provide the foundation for cloud architectures. With the release of container extensions, IBM’s z/OS platform now supports containerized workloads and enables future deployments through orchestration mechanisms like Kubernetes and OpenShift. This allows z/OS to operate more seamlessly with Linux-based open source workloads that require access to local mainframe resources and subsystems.

This week in KDE: building up to something big

We’ve got some really big things planned and in progress for Plasma 5.18 and Frameworks, and work proceeds smoothly. None of it is quite done yet, but we did land a number of nice bugfixes and user interface polish for issues that have been irritating people for years…and mere days! Read more