Language Selection

English French German Italian Portuguese Spanish


Python: Encoding, "Rockstar Python Developers", Samuel Hinton and Django 3.0.6

Filed under
  • Use this Python script to encode binary in Base94

    Humans transfer information in many different ways. On the internet, the primary format is text, which is how you're reading this article. However, there is other data on the internet, such as images and sound files and so on. It might seem easy to post an image online or attach a document to an email, until you realize that HTTP/1.1 and SMTP are text-based protocols. Data transferred over such protocols must be represented as a subset of ASCII text (specifically, characters 33 to 126).

    A digital image is already encoded as binary data by the computer that displays it. In other words, a digital image isn't like a physical photograph that's printed on paper: it's a collection of computer shorthand that is decoded by whatever image viewer you're using to look at it, whether that image viewer is a web browser, a photo-editing application, or any software that can display images.

    To re-encode an image into ASCII, it's common to use Base64, a system of binary-to-text encoding rules that can represent binary data as an ASCII string.

  • Rockstar Python Developers Need Great communication Skills Too

    I wonder how people get into software programming, whether it be for a job or hobby?

    It's one of the first things I often listen for at the start of Michael Kennedy's Talk Python To Me podcast.

    Who was it that inspired you?

    What was it about their character that got you fired up and writing print("hello world") for the first time?

    How did someone make you feel when they recently guided you to a solution that you came up with by yourself?

  • PyDev of the Week: Samuel Hinton

    This week we welcome Samuel Hinton (@samreayh) as our PyDev of the Week! Samuel has written quite a few projects in Python and given lots of talks on astronomy. If you are interested in either of those topics, then you should definitely check out his website or his Github profile.

  • Django bugfix release: 3.0.6

    Today we've issued the 3.0.6 bugfix release.

    The release package and checksums are available from our downloads page, as well as from the Python Package Index. The PGP key ID used for this release is Mariusz Felisiak: 2EF56372BA48CD1B.

Programming: Web Development, Perl, Python

Filed under
  • Best Open Source CSS frameworks for frontend Web Development

    A website for your business has become a necessity at the present day. Along with the necessity, the need for the web page developers is also on the peak. There are also many people out there who possess enough qualification by themselves to design their own website, just they do not possess the experience and the practice. Among those laymen users and the pro or upcoming web developers, there are many who are still confused about many of the web development aspects. Most of the people still think about, HTML scripts or JavaScript when they are talking about Web development while. As many of them usually forget about advanced techniques of web developments which are there designed mainly for people with less experience and fewer skills. The Web development technologies which have far more impact on the easy web development ability.

    Yes, I am talking about the CSS (cascading style sheets), as CSS is the easiest way how you can manipulate through your web development and designs. In the 90s even at the early 20s, the developers had to develop their CSS by their own, in order to create a website. But nowadays there are many application out there which are providing the ready-made CSS framework so that anyone starts with their web development projects easily. But, unfortunately for many individuals, CSS is a forgotten part of any web development, and due to that, they can not go ahead with their newly innovate project idea on their own.

  • Introducing T^4: Tips, Tricks, Tools, and Toys

    For way too long now something I had meant to start was a little series about tips, tricks, tools, and toys. I had mentioned the idea a few times to a friend or two, and generally received a thumbs up or a ‘go for it’. But it takes a little to get over the humb and get going. And it turns out that last week’s r^4 talk on upgrading to R 4.0.0 hit some latent demand as we are now at 1400 views on YouTube. Wowser.

  • Let's talk meta

    When I wrote this, I spent a lot of time thinking whether I should add a footnote or extra sentence saying, roughly, that I'm not claiming that there are no people under 35 who know Perl, but that it is a skill that has gotten quite rare compared to ye olden times. The reason for adding extra text is that I feared that someone would inevitably come in and derail the discussion with some variation of "I'm under 35 and I know Perl, so the entire post is wrong".


    Contrary to the claim made above, the Internet has not, in fact, ruined everything. The statement is hyperbole, stemming from the author's feelings of frustration. In reality the Internet has improved the quality of life of most people on the earth by a tremendous amount and should be considered as one of the greatest inventions of mankind.

    "Ye olden times" was not written as "þe olden times" because in the thorny battle between orthographic accuracy and readability the latter won.

    The phrase "flying blind" refers neither to actual flying nor to actual blindness. It is merely a figure of speech for any behaviour that is done in isolation without external feedback. You should never operate any vehicle under any sort of vision impairment unless you have been specifically trained and authorized to do so by the appropriate authorities.

  • Perl Weekly Challenge 058: Compare Version and Ordered Lineup
  • Property-Based Testing for Python builtins and the standard library - Python Language Summit 2020

    Hatfield-Dodds told the Language Summit, handwritten tests are "fantastic for testing particular edge cases, they're great regression tests," but they're limited by the developer's understanding of the system under test. "We can't write tests for bugs we don't know could occur." We can overcome this limit with exhaustive testing, checking our code's behavior with every possible input; if that is impractical, coverage-guided fuzz testing can generate random inputs and evolve them, trying to explore every branch in the code under test. Fuzzers are very good at finding inputs that crash a program, but they're not as well suited for finding other kinds of bugs.

Programming: Titan, Geany, Slashdata, RAD

Filed under
  • Delphix: managing your data like code (Project Titan)

    Developers need data to run their applications throughout the entire development lifecycle.

    With Titan, they can manage the data for their application as they would with Git.

    The current problems developers face with their application data are similar to the days before code was under version control. These challenges include using out-of-date local copies, the inability to share their data sets with other developers… and time-consuming processes to work around the issues with their application data.

    Git has been fundamental in allowing application code to be better managed by a team rather than an individual. Each member has the ability to undo mistakes, maintain code history and experiment with new code.

    Git also enables teams to create many different workflows to increase productivity. Workflows can be as basic as a single branch with multiple commits, allowing developers to easily share their work and navigate through a range of commits. Collaboration workflows can be as complex as teams need them, and there are some notable ones like feature branching or Gitflow.

    Only then can teams determine how best to collaborate, share their work and ultimately release the product to the end user.

  • Geany a lightweight text editor

    Other relevant features is the recognition of YAML file syntax. Geany allows to see blank spaces, tabs, line returns, convert tabs to blank spaces (useful when editing a YAML file), compile and execute projects among other functionalities. Geany has a terminal integrated into the editor which allows executing the OS command without having to leave the development environment. Here are some screenshots.

  • 3 out of 5 developers contribute to open source, new Slashdata report claims

    Slashdata’s Developer Economics report examines data from over 17,000 developers from around the world. See what devs think about open source, the rise of Kotlin for mobile programming, and what emerging tech is trending.
    Keeping a finger on the pulse of the developer community is important. It helps us see the bigger picture of where we are now, how far we’ve come, and what things will likely look like in the future.

    Slashdata’s Developer Economics report examines data from over 17,000 developers from around the world. Survey respondents were asked about their favorite programming languages, their contributions to open source, rising tech trends, and more.

  • Why developers contribute to open source software

    SlashData also found that not all contributors are professional software developers, or even work within the software industry, and they’re far more likely to be involved in multiple development areas than non-contributors. This includes developing software for emerging sectors such as machine learning, artificial intelligence (AI), and augmented reality (AR) and virtual reality (VR) where innovations are mostly driven by open source tools.

    An interesting trend the survey identified was that the majority of software developers in the emerging sectors are hobbyists although the majority (57%) also work professionally in at least one other development area.

    The survey revealed that most developers have multiple reasons for contributing to open source. Overall, the highest proportion (29%) do so to improve their coding skills and 26% have an ideological motivation – they believe in the benefits of open source. A large group (22%) do so because it’s 'fun', the same percentage as those who do so to solve an issue with an existing open source software project such as fixing a bug or creating a new feature.

  • UC Berkeley researchers open-source RAD to improve any reinforcement learning algorithm

    A group of University of California, Berkeley researchers this week open-sourced Reinforcement Learning with Augmented Data (RAD). In an accompanying paper, the authors say this module can improve any existing reinforcement learning algorithm and that RAD achieves better compute and data efficiency than Google AI’s PlaNet, as well as recently released cutting-edge algorithms like DeepMind’s Dreamer and SLAC from UC Berkeley and DeepMind.

Free Software and Programming

Filed under
  • EBCDIC Handling Library, Part 2
  • Intel's OpenCL Intercept Layer Sees First Release In Two Years

    Intel's OpenCL Intercept Layer remains focused on debugging and analyzing OpenCL application performance across platforms. It hadn't seen a new release, however, in two years but that changed last month.

    In April there was the release of the Intel OpenCL Intercept Layer 2.2.2, which may not reflect much from the version number but comes with two years worth of changes. New to the release is a cliloader utility to simplify installation and usage of this layer, fixes for operating on ARM Linux environments, Android support fixes, the ability to dump and disassemble ISA kernel binaries, collecting more performance counters on Intel hardware, hint support for command queues, logging improvements, better Chrome tracing abilities, and other changes.

  • Jean-François Fortin Tam: Overhauling your Open Source project’s “Developer Experience”, defining the workflow and setting expectations

    This started out as a simple status report following my first report on the revival of the Getting Things GNOME project, but turned out into a full-fledged article that, I believe, would be relevant to many community managers and FLOSS project maintainers out there. Particularly if you have an established open-source project looking for sustainable development but don’t have the luxury of paid developers, it should be worth investing the 7-9 minutes to read this.

    As the world came to a standstill and as I finished my tax season accounting (two unrelated things, really), this month I have completed a major overhaul of the “developer experience” for GTG.

  • Ken Dreyer: in defense of code coverage

    On one project I wrote, my first user base was very small. It consisted of developers and hackers who were very involved with feedback, design, and testing. Those original users moved on to other responsibilities, and new users have replaced them who are unfamiliar with the code. They have very different expectations and want your project to "just work".

    This is an entirely different scenario. Documentation and regression testing are critical to sustaining the growth of the project. The new user base does not share the initial users' tolerance for breaking changes.

    Bug reports will continue to come in. On one recent bug report, once I identified the root-cause and the exact function that is buggy, the next question I ask is "Do the unit tests cover this method?" Code coverage tools can quickly answer this question. This makes it easier for me to confidently modify the method because I know that I'm not introducing regressions.

  • ReactOS Upgrades Its Build Environment - Shifting To A Much Newer GCC Compiler

    The "open-source Windows" ReactOS project has upgraded its build environment leading to much newer versions of key compiler toolchain components.

    The biggest change with the new ReactOS Build Environment is moving off the vintage GCC 4.7.2 compiler to now using the GCC 8 stable series. In this move of updating the GNU Compiler Collection are several years worth of improvements from newer C/C++ language support to many optimizations and new CPU microarchitectures being supported to better error reporting and a while lot more as we have covered over the years.

Python Development

Filed under
  • Highlights of the Ibis 1.3 release

    Ibis 1.3 was just released, after 8 months of development work, with 104 new commits from 16 unique contributors. What is new? In this blog post we will discuss some important features in this new version!

    First, if you are new to the Ibis framework world, you can check this blog post I wrote last year, with some introductory information about it.

  • Subtests in Python with unittest and pytest - Paul Ganssle

    In both unittest and pytest, when a test function hits a failing assert, the test stops and is marked as a failed test.

    What if you want to keep going, and check more things?

    There are a few ways. One of them is subtests.

    Python's unittest introduced subtests in Python 3.4.

    pytest introduced support for subtests with changes in pytest 4.4 and a plugin, called pytest-subtests.
    Subtests are still not really used that much.

  • Python Desktop Graphic Frameworks

    When you look up the Python documentation for Graphical User Interfaces, you find TkInter. The package is part of the default Python install. You can use this for the simplest applications just fine. You can also seek out frameworks that implement something else or put stuff on top of TkInter.

    Some of the big, or rather, much used systems for Linux are QT and wxWidgets. These are so common, both on Linux, unix-like systems, Mac OS X and Windows, that you must be aware of them if you are creating GUI programs.

    QT is one of the standards for the desktop. It also includes classes to handle most functions of the computer. This include sockets, threads, Unicode and its own web browser. PyQt has bindings to all the parts of this framework.

    wxWidgets Has a very big API with many widgets and functions. These include the same as QT, as they are competing technologies. There are differences but the important part is that if you aim to do something big you must keep the two in mind. You may want to switch when and if your project grows.

  • How I learned Python

    We had to develop a machine learning pipeline combined with an android application that will take images as input and send the data about the image, telling us whether this image has service cancer or not with certain confidence(probability).

Python Programming

Filed under
  • My Favorite Career Development Book

    Cal's book will inspire you. It will challenge you to take action.

    Once you start developing what he calls a "craftsman mindset" and start building up "career capital" there is no return.

    But there is no shortcut here. And you have to be patient. It will take years of constant (and strategic) effort and focus.

    Showing up and working hard will only get you that far. It's not only the amount of work (e.g. the 10,000-Hour Rule), it's also about what you do in that time, your (unique) approach.

    It often requires you to become uncomfortable. Deliberate practice isn't always fun as Pythonistas on our platform can attest, but you come out stronger, better prepared.

    To speak in fitness terms: muscles grow under stress. And so does your career if you constantly look for new opportunities, going beyond what you already know (and is comfortable), learning new things, exploring adjacent fields of expertise.

  • Should All Strings Become f-strings? - Python Language Summit 2020

    The first language change proposed this year was the most radical: to make f-strings the default. Eric V. Smith, who wrote the PEP for f-strings in 2015, said they are the killer feature of Python 3.6, and they are the motivation for many of his clients to move to Python 3. However, they are error-prone. It's common to forget the "f" prefix:
    x = 1
    # Forgot the f prefix.
    print("The value is {x}")

  • Talk Python to Me: #262 Build a career in data science

    Has anyone told you that you should get into data science? Have you heard it's a great career? In fact, data scientist is the best job in America according to Glassdoor's 2018 rankings.

    That's great. But how do you get a career in data science? Once you land that first job, how do you find the right fit? How do you find the right company? And how do you get more deeply involved in the community?

    I have brought two great guests, both highly successful data scientists, on the show today who have been thinking deeply about this. Jacqueline Nolis and Emily Robinson are here to give you real-world, actionable advice on getting into this rewarding career.

  • The 2020 Python Language Summit

    The Python Language Summit is a small gathering of Python language implementers (both the core developers of CPython and alternative Pythons), as well third-party library authors and other Python community members. The summit features short presentations followed by group discussions. In 2020, the Summit was held over two days by videoconference; questions were asked by a combination of voice and chat.

    Summaries of all presentations will be posted here as they are completed.

    Thanks to MongoDB for sponsoring the Python Language Summit.

  • The real impact of canceling PyCon due to COVID-19

    I asked Jodlowska "how have you had to adjust your work in light of COVID-19?"

    In her response, the day-to-day didn't sound like much of a change. PSF staff "have always worked remotely." The organization practices a fully remote work culture and doesn’t have an office. The small staff of seven employees is well versed in collaborating outside of an office.

    Familiarity aside, the emotional impact of needing to cancel an event they put a year’s worth of planning into hurt.

  • Weekly Python StackOverflow Report: (ccxxvi) stackoverflow python report

Programming: C++, GCC and More

Filed under
  • Steinar H. Gunderson: What's behind the STL containers?

    Every C++ programmer will spend a fair amount of time interacting with the containers in the Standard Template Library (STL). But it's not always obvious exactly what data type is behind every container—I thought I knew most of them, but every now and then, some detail pops up. So I thought I'd summarize.

    For the purposes of this discussion, I care about the data type and what it means for reference stability; ie., if you get a reference (or pointer, or iterator) to a key or value within the container and the modify the container, for how long can you expect your reference to be valid. (Obviously, if you delete an element, that reference always gets invalidated, so I'll never mention that. I'll also assume the standard std::allocator throughout, so when I say “heap”, it could in theory be memory from an arena or whatever.) All information is, to the best of my knowledge, correct as of GCC 10.

  • GCC 10 Has Been Branched, GCC 10.1 Stable Looking To Release In Early May

    The GNU Compiler Collection 10 stable release (GCC 10.1) is on track for releasing in early May.

    Today the milestone was achieved of having no more P1 regressions (code regressions of the highest priority) and thus the GCC developers were able to branch GCC-10 from Git master. GCC 10.1-RC1 will now be out in the coming hours as the first test release ahead of this annual stable release.

    If all goes well in the release candidate testing, the GNU toolchain folks are looking at releasing GCC 10.1 towards the end of next week or shortly thereafter. Still before then will be GCC 10.1-RC2 next week too.

  • Announcing the SourceHut project hub

    I’m happy to announce that the SourceHut project hub is now available for general use! This is one of the most important developments in the progress of the SourceHut alpha thus far. If you want to see how it works interactively, try checking out the SourceHut project, add your own projects, or browse the public project index. For a more wordy introduction, read on.

  • on the usability of editable software

    There are two forces at work leading to an unfortunate feedback loop in which software is difficult to modify, and then seeks to avoid modification, further complicating it. First, we don’t consider modification as a positive outcome for the user. We seek to package everything up to avoid local changes. Second, the way software is deployed causes local changes to be very expensive, creating pressure to push everything upstream. Neither of these must be the case however.

    What if we made software with the expectation that end users would make at least a few changes? This would greatly simplify things. We don’t need to worry about every use case. Or even most use cases, really. Just provide the essential features. But isn’t that creating more work for end users? Not if the program is easy enough to work with. As anyone familiar with software development knows, the difficulty of adding new features or modifying existing ones grows very quickly, much faster than linearly, with the total number of features. They interfere with one another. By reducing the number of shipped features, we reduce the difficulty of modification. Anybody can do it (or have somebody do it for them).

  • April 2020: worked on a webmail and a bit of OpenSMTPD too

    I started using console clients to read my mail back when I was a student in early 2000s, and I’ve been using mutt for as long as I can recall now. I installed various mail clients along the years, some with graphical interfaces such as thunderbird or sylpheed, others with a web interface such as nullWebmail, SquirrelMail, Roundcube, Mailpile or currently Rainloop. No matter which, I always end up falling back to mutt for most tasks.

  • New book: The Official Raspberry Pi Camera Guide

Perl/Raku News: Rants, Weekly Challenge and Coders In Cars Getting Chatty

Filed under
  • Jussi Pakkanen: You have to kill your perlings

    The 90s and early 2000s a lot of code was written. As was fashionable at the time, a lot of it was done using Perl. As open source projects are chronically underfunded, a lot of that code is still running. In fact a lot of the core infrastructure of Debian, the BSDs and other such foundational projects is written in Perl. When told about this, many people give the "project manager" reply and say that since the code exists, works and is doing what it should, everything is fine. But it's really not, and to find out why, let's look at the following graph.


    As we can see the pool of people willing to work on Perl projects is shrinking fast. This is a major problem for open source, since a healthy project requires a steady influx of new contributors, developers and volunteers. As a first order approximation, nobody under the age of 35 knows how to code in Perl, let alone would be willing to sacrifice their free time doing it.

    One could go into long debates and discussions about why this is, how millennials are killing open source and how everyone should just "man up" and start writing sigils in their variable names. It would be pointless, though. The reasons people don't want to do Perl are irrelevant, the only thing that matters is that the use of Perl is actively driving away potential project contributors. That is the zeitgeist. The only thing you can do is to adapt to it. That means migrating your project from Perl to something else.

  • PWC 058: Task #1, Compare Version & Task #2, Ordered Lineup

    I usually am bored with string twisting (as opposed to bit twiddling) because there is a certain level of grunt work, even with such classics as ELIZA and FESTOON and I can easily fall down the rabbit hole of trying to get pluralization perfect. So when the exciting topic of version numbers came up, I would have passed, but we perfectionists have to finish one to get to two....

    Plus there was one thing that I liked, the problem was set up as a comparison operator, like <=> and cmp, suitable for use in a sort routine. Whomever you are out there, with a need to sort thousands of version strings via perl, this script is for you Wink

  • Coders In Cars Getting Chatty

    The last time I spoke at Craft Conference, I also took part in what is probably the most fun and unusual interview of my career: Ivette Ördög’s Morning Commute.

    Bear in mind, however, that this discussion took place back in 2018, so you’ll need to mentally s/Perl 6/Raku/ in a couple of places.

    Even if you’re not interested in my random thoughts on the importance of linguistic diversity, Ivette’s other interviews are well worth watching.

Python Development

Filed under
  • The 2020 Python Language Summit

    The 2020 Python Language Summit was held virtually this year, over two days, via videoconference, with discussions via voice and chat. The summit is a yearly gathering for developers of CPython, other Python implementations, and related projects. As with last year, A. Jesse Jiryu Davis covered the summit; his writeups are being posted to the Python Software Foundation (PSF) blog. So far, all of the first day's session writeups are up, as well as two (of six) from the second day. Topics include "All strings become f-strings", "The path forward for typing", "A formal specification for the (C)Python virtual machine", and more.

  • Yellowbrick Update – April 2020

    Yellowbrick released Version 1.1 on February 25, 2020. If you haven’t yet upgraded simply type pip install yellowbrick -U or conda install -c districtdatalabs yellow-brick into your terminal/command prompt to get it. The major improvement in v1.1 is introducing quick methods or one-liners to generate your favorite ML plots more quickly with Yellowbrick. Dr.
    Rebecca Bilbro, our co-founder, gave a talk “Visual Diagnostics for Machine Learning” (featuring Yellowbrick!)in Washington, D.C. on February 25, 2020 (presentation recording link) for an open source/startup incubator based in Washington, D.C. HatchIT.

  • 4 Things Every Full Stack Developer Should Know

    What comes to your mind when you hear the word, full stack developer? Well, you might probably be thinking about someone who codes for a living. Where it is true up to a point, a full stack developer is much more than that. A full stack developer is an engineer who can handle everything from databases, servers, system engineering, to clients. A full stack developer is more skilled, and when you look at the current market, you will see that they are in much more demand as compared to front end or back end developers. If you are on your way towards becoming one, let me tell you that the road is not easy, but when you do reach your destination, your whole life will be set. In this article, I am going to highlight four things that you must know if you want to become a skilled professional in your field.

  • 6 Python Projects for Beginners

    Python can be a great programming language. You can make almost anything you want.
    If you are a beginner and you don't know what to do, here are some beginner projects for you to make.

  • The PyCharm YouTube channel is (soft)launched!

    Good news for Python developers and the PyCharm community! We are soft-launching today a dedicated YouTube channel for PyCharm where we will share weekly curated content including quick tips & tricks, webinars, interviews, and much more!

  • @staticmethod considered a code smell

    Python offers quite a few built-in decorators that can be used to give methods of classes certain superpowers. @property turning method into a read-only field-like attribute is a classic example. Or @classmethod – a method that receives a class as a first argument, not an instance. Fun fact, this kind of method is usually called static method in other languages (e.g. Java, C#, C++ just to name a few).

Perl/Raku News

Filed under
  • Monthly Report - April

    The month of fasting, Ramadan, started last month and today, 1st May 2020, is the 8th day of Ramadan in UK. It has been nearly 2 months since I have been working from home. COVID-19 is taking a toll already. I have developed sleeping disorder in the last 2 months. In fact, it is not just me, the whole family as kids are also staying home all day, thanks to school closure. I just hope and pray, we get hold of the situation quickly. Earlier, I used to glue to TV watching Indian reality shows. Even that has stopped now because of the pandemic affect. I decided to buy Netflix subscription to give me company when I feel low. And when I am bored of web series, I get my hand dirty doing Raku programming. Although I am not there but I feel comfortable with Raku now. I have been doing the Perl Weekly Challenge every week in Perl and Raku. I am even blogging about my Raku learning experience. I hope doing weekly challenge will help me learn the many magics of Raku.

  • # Perl Weekly Challenge 58: Compare Versions and Ordered Lineup

    These are some answers to the Week 58 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

    Spoiler Alert: This weekly challenge deadline is due in a couple of days (May 3, 2020). This blog post offers some solutions to this challenge, please don’t read on if you intend to complete the challenge on your own.

  • New release of RT::Client::REST

    A very welcome PR for adding the new SLA parameters for RT 4.4.3 was provided to RT::Client::REST on githib, which went out in v0.57 just earlier this week.

    However this spurred me to take care of another PR that was been floating which allowed more verbose error messaging to be enabled. I also returned to my proposed fix for RT118729 which is because of mishandling of RT's strange "REST" (it's not really) interface.

Syndicate content