Language Selection

English French German Italian Portuguese Spanish

Programming: PyLint, C2x, Librem 5, Portable Document Format (PDF) in Python

Filed under
Development
  • Writing Cleaner Python Code With PyLint

    PyLint is a well-known static analysis tool for Python 2 and 3. It has a number of useful features, like checking your code for compliance with the PEP 8 Python style guide. It makes sure that your code follows the code style guide and it can also automatically identify common bugs and errors in your Python code.

    In this video series you’ll see how to install and set up the PyLint code linter tool. You’ll learn why you should use code linters like PyLint, Flake8, PyFlakes, or other static analysis tools—and how they can help you write cleaner and more Pythonic code.

    You can get this setup up and running in a few minutes and it’ll quickly help you write better and cleaner Python code.

  • LLVM Clang 9.0 Picks Up Initial C2x Language Mode

    Merged today to the mainline Clang compiler front-end is the initial C2x language mode support as what will eventually be the successor to the C18 programming language.

    C2x is still quite a ways out from release and its changes still under determination. At this stage the C2x language support for LLVM Clang is just enabling support by default for the [[attribute]] (double square brackets attribute; similar to C++) support.

  • Librem 5 App Design Tutorial – Part II

    Hello and welcome to the second of my series of blog posts on how to design your own, brand new app for the Librem 5.

    In my last post we went over the philosophy and process, goals and relevant art of building a read-it-later app; today we’ll be discussing sketches and mockups – specifically in what concerns navigation, article and article list screens, and desktops.

  • Working with PDFs in Python: Adding Images and Watermarks

    Today, a world without the Portable Document Format (PDF) seems to be unthinkable. It has become one of the most commonly used data formats ever. Up to PDF version 1.4, displaying a PDF document in an according PDF viewer works fine. Unfortunately, the features from the newer PDF revisions, such as forms, are tricky to implement, and still require further work to be fully functional in the tools. Using various Python libraries you can create your own application in an comparable easy way.

    This article is part two of a little series on PDFs with Python. In part one we already gave you an introduction into reading PDF documents using Python, and started with a summary of the various Python libraries. An introduction followed that showed how to manipulate existing PDFs, and how to read and extract the content - both the text and images. Furthermore, we showed you how to split documents into its single pages.

    In this article you will learn how add images to your PDF in the form of watermarks, stamps, and barcodes. For example this is quite helpful in order to stamp or mark documents that are intended to be read by a specific audience, only, or have a draft quality, or to simply add a barcode for identification purposes.

More in Tux Machines

My personal journey from MIT to GPL

As I got started writing open source software, I generally preferred the MIT license. I actually made fun of the “copyleft” GPL licenses, on the grounds that they are less free. I still hold this opinion today: the GPL license is less free than the MIT license - but today, I believe this in a good way.

[...]

I don’t plan on relicensing my historical projects, but my new projects have used the GPL family of licenses for a while now. I think you should seriously consider it as well.

Read more

Security Leftovers

  • Yubico recalls government-grade security keys due security bug

    If you buy a government-grade security key, the one thing you really want from it is government-grade security. It's the very dictionary definition of "you had one job." That's why it's somewhat embarrassing that Yubico has put out a recall notice on its FIPS series of authentication keys which, it turns out, aren't completely secure.

  • [Microsoft's] EternalBlue exploit surfaces in bog standard mining attack Featured

    A bog standard attack aimed at planting a cryptocurrency miner has been found to be using advanced targeted attack tools as well, the security firm Trend Micro says, pointing out that this behaviour marks a departure from the norm.

Kernel: Systemd, DXVK, Intel and AMD

  • Systemd Is Now Seeing Continuous Fuzzing By Fuzzit
    In hoping to catch more bugs quickly, systemd now has continuous fuzzing integration via the new "Fuzzit" platform that provides continuous fuzzing as a service.  New this week to systemd is the continuous fuzzing integration where every pull request / push will see some quick checks carried out while on a daily basis will be fuzzed in full for all targets.
  •  
  • DXVK 1.2.2 Brings Minor CPU Overhead Optimizations, Game Fixes
    In time for those planning to spend some time this weekend gaming, DXVK lead developer Philip Rebohle announced the release of DXVK 1.2.2 that will hopefully soon be integrated as part of a Proton update for Steam Play but right now can be built from source. While certain upstream Wine developers express DXVK being a "dead end" and are optimistic in favor of piping their WineD3D implementation over Vulkan, for Linux gamers today wanting to enjoy D3D11 Windows games on Linux the DXVK library continues working out splendid with great performance and running many Direct3D games with much better performance over the current WineD3D OpenGL code.
  • Intel 19.23.13131 OpenCL NEO Stack Adds Comet Lake Support
    We've seen the Intel Comet Lake support get pieced together in recent months in the different components making up the Intel Linux graphics stack while the compute-runtime is the latest addition. Comet Lake as a refresher is a planned successor to Coffeelake/Whiskeylake and expected to come out this year as yet more 9th Gen hardware. But Comet Lake should be interesting with rumored 10-core designs. Though with being more processors with Gen9 graphics, the Comet Lake Linux support basically boils down to adding in the new PCI IDs.
  • AMD Wires Its New Runtime Linker Into RadeonSI Gallium3D
    RadeonSI Gallium3D has already shifted over to using this new linker. Making use of the .rodata should help with efficiencies throughout the driver (more details in this forum thread) but at this point is mostly laying the groundwork for more improvements to be made moving forward.

Red Hat and Fedora Leftovers

  • Building IT Transformation Architecture with Red Hat OpenShift
    In the era of mobile applications, business challenges to the enterprise IT organizations are more dynamic than ever. Many enterprises have difficulties responding in time because of the inherent complexity and risk of integrating emerging technologies into existing IT architectures. In this article, I will share my experience on how to utilize Red Hat OpenShift as a “Middle Platform” (中台) for enterprises to construct its bimodal IT architecture with agile, scalable and open strategy. In the past year, I have discussed with many corporate customers–especially in the financial services industry–the challenges of digital transformation, and the solutions. Most of their difficulties are coming from “core systems” which have been working for more than 10 years.
  • Fedora Community Blog: FPgM report: 2019-24
    Here’s your report of what has happened in Fedora Program Management this week. Elections voting is open through 23:59 UTC on Thursday 20 June. I have weekly office hours in #fedora-meeting-1. Drop by if you have any questions or comments about the schedule, Changes, elections, or anything else.
  • Copr's Dist-Git
    In Copr, we use dist-git to store sources as well. However, our use case is different. In the past, Copr only allowed to build from URL. You provided a URL to your SRC.RPM and Copr downloaded it and built it. This was a problem when the user wanted to resubmit the build. The original URL very often did not exists anymore. Therefore we came with an idea to store the SRC.RPM somewhere. And obviously, the dist-git was the first idea.