Language Selection

English French German Italian Portuguese Spanish

Perl and Python Programming Leftovers

Filed under
Development
  • Paws XXXXVII (What about the tests????)

    I decided I might as well get busy with CloudFront and at least get most of my real world scripts written.

    At the moment I am getting 400 errors such as 'InvalidArgument' or 'InvalidOrigin' on the Delete and Create actions as I do not have the proper config on the AWS end for the Creates and for the Deletes as I do not have anything on my AWS account to delete.

    Reading though the API documentation is seems there is quite the procedure to actually do some of the actions, for example to invoke the DeleteStreamingDistribution action you have to follow a six pre-steps all of which must pass. So I guess I can forget a quick run on this API

    So the plan is to get all the real world scripts written up and then go though the full CRUD actions for each and get them working with a good generated test case for each.

  • Porting a Dancer plugin to Dancer2

    In my Dancer2 web application, I want to know which requests come from smartphones. There’s a plugin for that — but only in the older Dancer (v1) framework. I’m no expert, but even I was easily able to port the Dancer plugin, Dancer::Plugin::MobileDevice, to Dancer2! In this article, we’ll explore Dancer2 and the way it handles plugins. We’ll get our hands dirty working with the framework, and examine the main changes I made to port the plugin from Dancer to Dancer2. By the end of this article, you’ll be ready to rock and you’ll have a handy reference to use when porting plugins yourself.

  • A Date with CPAN, Update #3: Golden Jubilee

    In case you missed my talk on Date::Easy from a couple years back, I’ll sum it up for you: dates are hard, y’all.

    On January 1st of 2019, a bunch of unit tests for Date::Easy started failing. It was immediately reported, of course—and can I pause here just a moment to thank Slaven Rezić (SREZIC on CPAN and eserte on GitHub), who is surely the most awesome bug reporter ever? Date::Easy is definitely a better module for his reports, and I’ve seen him reporting bugs for many others as well. Anyhow, as I dug into the suddenly failing tests—tests which begin failing even though you didn’t change any code are just a side-effect of writing a date-handling module—I figured out what was wrong. Happily, it wasn’t a problem with the module, which was still returning correct values, but rather with the unit tests themselves.

  • Bug #915: please help!

    I just released coverage.py 5.0.3, with two bug fixes. There was another bug I really wanted to fix, but it has stumped me. I’m hoping someone can figure it out.

    Bug #915 describes a disk I/O failure. Thanks to some help from Travis support, Chris Caron has provided instructions for reproducing it in Docker, and they work: I can generate disk I/O errors at will. What I can’t figure out is what coverage.py is doing wrong that causes the errors.

  • [Older] Hands-On Docker for Microservices with Python Book

    The book is called Hands-On Docker for Microservices with Python, and it goes through the different steps to move from a Monolith Architecture towards a Microservices one.

    It is written from a very practical stand point, and aims to cover all the different elements involved. From the implementation of a single RESTful web microservice programmed in Python, containerise it in Docker, create a CI pipeline to ensure that the code is always high quality, and deploy it along with other Microservices in a Kubernetes cluster.

More in Tux Machines

AMD: Ryzen, AMDGPU and More

  • ASUS TUF Laptops With Ryzen Are Now Patched To Stop Overheating On Linux

    The AMD Ryzen Linux laptop experience continues improving albeit quite tardy on some elements of the support. In addition to the AMD Sensor Fusion Hub driver finally being released and current/voltage reporting for Zen CPUs on Linux, another step forward in Ryzen mobile support is a fix for ASUS TUF laptops with these processors.

  • AMD Sends In A Bunch Of Fixes For Linux 5.6 Along With Pollock Support

    After already several rounds of feature work queued in DRM-Next for Linux 5.6, AMD has submitted a final batch of feature work for this next kernel as it concerns their AMDGPU graphics driver. While Linux 5.6's merge window isn't opening until around the start of February, with RC6 having come, it effectively marks an end to the feature window of DRM-Next for targeting the next kernel. AMD's final pull request is mostly centered on fixes plus a few other extras and also enabling AMD Pollock display/graphics support for that forthcoming hardware.

  • The AMD Ryzen Thermal / Power Linux Reporting Improvements Working Well - V2 Up For Testing

    A few days ago I reported on AMD's "k10temp" Linux kernel driver finally seeing the ability to report CCD temperatures and CPU current/voltage readings as a big improvement to this hardware monitoring driver. The work hasn't yet been queued for inclusion into the mainline kernel, but initial testing is working well and a second revision to the patches has been sent out. Linux HWMON maintainer Guenter Roeck who spearheaded this work independent of AMD sent out the "v2" k10temp driver improvements on Saturday. This allows core complex tie temperature reporting for Zen 2 CPUs and allows current and voltage reporting for Ryzen CPUs. While this information has long been available to Windows users, sadly it's not been the case for Linux at least as far as mainline drivers go -- the out-of-tree Zenpower driver and other third-party attempts have been available but nothing mainline.

Intel's OSPray 2.0 Ray-Tracing Engine Released

An area where Intel continues striking with rhythm and near perfection is on the open-source software front with their countless speedy and useful open-source innovations that often go unmatched as well as timely hardware support. Out this weekend is their OSPray 2.0 release for this damn impressive ray-tracing engine. OSPray 2.0 is out as their latest big upgrade to this open-source ray-tracing engine that supports photo-realistic global illumination, MPI for exploiting large system performance, volume rendering, and is all open-source software. OSPray 2.0 is another big advancement for this project that is part of Intel's growing oneAPI tool-kit. Read more

Mozilla Leftovers

  • webcompat.com: Project belt-on.

    So last week, on Friday (Japanese time), I woke up with a website being half disabled and then completely disabled. We had been banned by GitHub because of illegal content we failed to flag early enough. And GitHub did what they should do. Oh… and last but not least… mike asked me what Belt-on meant. I guess so let's make it more explicit.

  • Units of Measure in Rust with Refinement Types

    Years ago, Andrew Kennedy published a foundational paper about a type checker for units of measure, and later implemented it for F#. To this day, F# is the only mainstream programming language which provides first class support to make sure that you will not accidentally confuse meters and feet, euros and dollars, but that you can still convert between watts·hours and joules.

  • This post focuses on the work I accomplished as part of the Treeherder team during the last half of last year.

    The Taskcluster team requested that we stop ingesting tasks from the taskcluster-treeherder service and instead use the official Taskcluster Pulse exchanges (see work in bug 1395254). This required rewriting their code from Javascript to Python and integrate it into the Treeherder project. This needed to be accomplished by July since the Taskcluster migration would leave the service in an old set up without much support. Integrating this service into Treeherder gives us more control over all Pulse messages getting into our ingestion pipeline without an intermediary service. The project was accomplished ahead of the timeline. The impact is that the Taskcluster team had one less system to worry about ahead of their GCP migration.

Python Programming Leftovers

  • The tiniest of Python templating engines

    In someone else's project (which they'll doubtless tell you about themselves when it?s done) I needed a tiny Python templating engine. That is: I wanted to be able to say, here is a template string, please substitute a bunch of variables into it. Now, Python already does this, in about thirty different ways, and str.format or string.Template do most of it as built-in.

  • How to set a variable in Django template
  • Why ASGI is Replacing WSGI in Django

    When I first learnt about how to deploy my Django website. I took the easy route which was deploying it on Heroku. There's literally tons of tutorial on how the process of deploying it work. Heck, there was even a book about the benefits of deploying Django using Heroku. Soon in my own work, I needed to deploy my own Django project. It was working well for a bundled development grade web server. I thought to myself, why not find a better way on a production-grade web server. Instead of just a miserable default web server that is not production-grade. My journey in searching on deploying Django started for me. Which if you look at multiple tutorial references they still suggest the use of Heroku or Digital Ocean.

  • Weekly Python StackOverflow Report: (ccxi) stackoverflow python report
  • Understand predicate pushdown on row group level in Parquet with pyarrow and python

    We are using the NY Taxi Dataset throughout this blog post because it is a real world dataset, has a reasonable size and some nice properties like different datatypes and includes some messy data (like all real world data engineering problems).