Language Selection

English French German Italian Portuguese Spanish

Programming: Interview With Guido van Rossum, Python Picks and New Release of Picolibc From Keith Packard

Filed under
Development
  • Interview Guido van Rossum: “I'd rather write code than papers.”

    Guido van Rossum (1956) is the founding father of the Python programming language, one of the most popular development tools in the world. In 2019 CWI will award him the Dijkstra Fellowship.

    What led you to come up with a brand new programming language during your time at CWI?

    “I started at CWI as a junior programmer on a research team with Lambert Meertens, Leo Geurts and Steven Pemberton. They wanted to develop a language which would enable people without programming experience – such as scientists – to start writing computer programs fairly quickly.”

    “It was at the time that Basic was on the rise due to the arrival of the microcomputer. Meertens looked at this inadequate language with horror. ‘Stamp out Basic!’ Was his motto. In the end, ABC, as our language was called, would not work. The target group could not use it on their microcomputers, which were not powerful enough for it, while Unix users already had other tools. Those users thought ABC was an odd man out.”

    “Then I came across the so-called Amoeba project. That was a distributed operating system based on a microkernel, developed by Andrew Tanenbaum at the Vrije Universiteit Amsterdam and Sape Mullender at CWI. Not aiming at popularizing their operating system, their first and foremost goal was writing papers. Scientifically it was a breakthrough indeed: those papers are still being studied. I myself was not a researcher but a programmer on that project. I must say thought that there was an atmosphere at CWI in which programmers had a major input in the projects.”

  • Python Tears Through Mass Spectrometry Data

    At the November 2019 Python Frederick event, Conor Jenkins showed the group how mass spectrometry works and how Python saves huge amounts of time when processing the large amount of data produced by a mass spec analysis.

  • Wingware News: Wing Python IDE 7.1.3 - November 14, 2019

    Wing 7.1.3 adds improved and expanded documentation and support for matplotlib, improves the accuracy of code warnings, fixes automatically debugging child processes on Windows with Python 3.8, fixes installing the remote agent from .rpm or .deb installations, solves several issues with runtime type introinspection, allows Open from Project and similar navigation commands from non-Browse vi mode, improves debugger reliability, and fixes about 30 other minor usability issues.

  • Easily specifying colours from the default colour cycle in matplotlib

    Another quick matplotlib tip today: specifically, how easily specify colours from the standard matplotlib colour cycle.

    A while back, when matplotlib overhauled their themes and colour schemes, they changed the default cycle of colours used for lines in matplotlib. Previously the first line was pure blue (color='b' in matplotlib syntax), then red, then green etc. They, very sensibly, changed this to a far nicer selection of colours.

  • Typing Mercurial with pytype

    Following the recent introduction of Python type annotations (aka "type hints") in Mercurial (see, e.g. this changeset by Augie Fackler), I've been playing a bit with this and pytype.

    pytype is a static type analyzer for Python code. It compares with the more popular mypy but I don't have enough perspective to make a meaningful comparison at the moment. In this post, I'll illustrate how I worked with pytype to gradually add type hints in a Mercurial module and while doing so, fix bugs!

    The module I focused on is mercurial.mail, which contains mail utilities and that I know quite well. Other modules are also being worked on, this one is a good starting point because it has a limited number of "internal" dependencies, which both makes it faster to iterate with pytype and reduces side effects of other modules not being correctly typed already.

  • Two Books About the Kivy GUI Framework

    The Kivy Python GUI framework is intriguing.

    Not only it’s cross-platform but also supports Android. Java is too verbose and low level for me and Kivy is an opportunity for developing native Android apps without leaving Python.

    Outside of the Kivy project documentation, there are few third-party advanced tutorials that go in more depth than the official tutorials. So, before diving into the code of the Kivy demos, I wanted some books to explore more features and get a broader picture of the framework and what it can do.

    I found two potentially interesting books: Building Android Apps in Python Using Kivy with Android Studio: With Pyjnius, Plyer, and Buildozer by Ahmed Fawzy Mohamed Gad (Apress, 2019), and Kivy - Interactive Applications and Games in Python - Second Edition by Roberto Ulloa (Packt, 2015).

  • A Qt GUI for logging

    A question that comes up from time to time is about how to log to a GUI application. The Qt framework is a popular cross-platform UI framework with Python bindings using PySide2 or PyQt5 libraries.

    The following example shows how to log to a Qt GUI. This introduces a simple QtHandler class which takes a callable, which should be a slot in the main thread that does GUI updates. A worker thread is also created to show how you can log to the GUI from both the UI itself (via a button for manual logging) as well as a worker thread doing work in the background (here, just logging messages at random levels with random short delays in between).

  • Picolibc 1.1 Released With POSIX File I/O Support

    Longtime X11 developer Keith Packard has spent a lot of time in recent months while being employed by SiFive working on Picolibc as a new C library for embedded systems.

    Picolibc is designed solely for embedded use-cases at this point and was formerly developed by Keith under the name newlib-nano. Picolibc 1.1 is out now as the project's second stable release.

  • Picolibc Version 1.1

    Picolibc development is settling down at last. With the addition of a simple 'hello world' demo app, it seems like a good time to stamp the current code as 'version 1.1'.

More in Tux Machines

Android Leftovers

Pekwm: A lightweight Linux desktop

Let's say you want a lightweight desktop environment, with just enough to get graphics on the screen, move some windows around, and not much else. You find traditional desktops get in your way, with their notifications and taskbars and system trays. You want to live your life primarily from a terminal, but you also want the luxury of launching graphical applications. If that sounds like you, then Pekwm may be what you've been looking for all along. Pekwm is, presumably, inspired by the likes of Window Maker and Fluxbox. It provides an application menu, window decoration, and not a whole lot more. It's ideal for minimalists—users who want to conserve resources and users who prefer to work from a terminal. Read more

What motivates people to contribute to open source?

Knowing what motivates people is a smart way to recruit contributors to an open source project—and to keep them contributing once they've joined. For his book How Open Source Ate Software, Red Hat's Gordon Haff did a lot of research on the topic of motivation, and he shared some of it in his Lightning Talk at All Things Open 2019, "Why do we contribute to open source?" Watch Gordon's Lightning Talk to learn about the three main types of motivation—extrinsic, intrinsic, and internalized extrinsic—what they are, and how they relate to open source communities. Read more

6 Best Free Linux Speed Reading Tools

The idea of speed reading was invented by an American schoolteacher named Evelyn Wood. There’s a few different approaches when it comes to speed reading. Spritz technology is based on the notion that much of the time spent in reading text is taken by the eye’s focus moving between words and across the page. According to Spritz, spritzing is defined as reading content one word at a time with the optimal recognition point (ORP) positioned inside of their custom “redicle”. After your eyes find the ORP, your brain starts to process the meaning of the word that you’re viewing. The concept of speed reading in this context is simple: slice a text into individual short segments, like a word. The software featured in this group test is based on spritzing. Read text without moving your eyes, and therefore rapidly increase your reading speed. Unlike other reading techniques, you don’t need to rewire your brain to work more efficiently. Read more