Language Selection

English French German Italian Portuguese Spanish

Python Programming Leftovers

Filed under
Development
  • Django 3 Tutorial & CRUD Example with MySQL and Bootstrap

    Django 3 is released with full async support! In this tutorial, we'll see by example how to create a CRUD application from scratch and step by step. We'll see how to configure a MySQL database, enable the admin interface, and create the django views.

    We'll be using Bootstrap 4 for styling.

  • Creating a transparently encrypted field in Django

    This is officially PythonDiary's first Python 3 article! Python 2 is now officially dead, so there's less reasons to make that a major focus going forward.

    In some rare situations you may wish to have data which may otherwise be visible on the Django site, or through the Django admin, but may wish to have this data transparently encrypted into the database. This could be very useful, if for example, you use an untrusted database where it is not managed by you, and some database administrator can indeed either dump the data, or otherwise view the stored schemas. This is common with managed databases, which are either maintained by a hosting provider, or is shared with other tenants. In this current day and age with many database breaches appearing in the news from large vendors, you can never be 100% sure that the data you save into your database will never be leaked.

    Django supports custom fields on your database models, and the various CRUD and model services Django provides will use these fields with ease, making the creation of a globally transparently encrypted field possible. First lets start with the creation of the custom Django field to explain how that works first.

  • Return the word with the longest length within a string using Python

    Simple challenge – eliminate all bugs from the supplied code so that the code runs and outputs the expected value. The output should be the length of the longest word, as a number. There will only be one ‘longest’ word.

    Above is a question from CodeWars, we will create the below python function to perform the above task.

  • Getting Jenkins Jobs by Build State with Python

    I have been working with Python and Jenkins a lot lately and recently needed to find a way to check the job’s status at the build level. I discovered the jenkinsapi package and played around with it to see if it would give me the ability to drill down to the build and resultset level within Jenkins.

    In the builds that I run, there are X number of sub-jobs. Each of these sub-jobs can pass or fail. If one of them fails, the entire build is marked with the color yellow and tagged as “UNSTABLE”, which is failed in my book. I want a way to track which of these sub-jobs is failing and how often over a time period. Some of these jobs can be unstable because they access network resources, which others may have been broken by a recent commit to the code base.

    I eventually came up with some code that helps me figure out some of this information. But before you can dive into the code, you will need to install a package.

  • Wing Python IDE 7.2 Release Candidate 1 - January 14, 2020

    Wing 7.2 adds auto-formatting with Black and YAPF, expands support for virtualenv, adds support for Anaconda environments, explicitly supports debugging modules launched with python -m, simplifies manually configured remote debugging, and fixes a number of usability issues.

  • Creating password input widget in PyQt

    One of the most common parts of writing any desktop tool and taking password input is about having a widget that can show/hide password text. In Qt, we can add a QAction to a QLineEdit to do the same. The only thing to remember, that the icons for the QAction, must be square in aspect ratio; otherwise, they look super bad.

    The following code creates such a password input, and you can see it working at the GIF at the end of the blog post. I wrote this for the SecureDrop client project.

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).