Language Selection

English French German Italian Portuguese Spanish

Programming: State of Rust Survey and Python Development

Filed under
Development
  • Launching the 2018 State of Rust Survey

    It’s that time again! Time for us to take a look at how the Rust project is doing, and what we should plan for the future. The Rust Community Team is pleased to announce our 2018 State of Rust Survey! Whether or not you use Rust today, we want to know your opinions. Your responses will help the project understand its strengths and weaknesses and establish development priorities for the future.

    Completing this survey should take about 10 to 15 minutes and is anonymous unless you choose to give us your contact information. We will be accepting submissions until September 8th, and we will write up our findings a month or so afterwards to blog.rust-lang.org. You can see last year’s results here.

  • Perform robust unit tests with PyHamcrest

    At the base of the testing pyramid are unit tests. Unit tests test one unit of code at a time—usually one function or method.

    Often, a single unit test is designed to test one particular flow through a function, or a specific branch choice. This enables easy mapping of a unit test that fails and the bug that made it fail.

    Ideally, unit tests use few or no external resources, isolating them and making them faster.

  • Adding None-aware operators to Python?

    A PEP that has been around for a while, without being either accepted or rejected, was reintroduced recently on the python-ideas mailing list. PEP 505 ("None-aware operators") would provide some syntactic sugar, in the form of new operators, to handle cases where variables might be the special None value. It is a feature that other languages support, but has generally raised concerns about being "un-Pythonic" over the years. At this point, though, the Python project still needs to figure out how it will be governed—and how PEPs can be accepted or rejected.

  • The Grumpy Editor's Python 3 experience

    LWN has been running articles for years to the effect that the end of Python 2 is nigh and that code should be ported to Python 3 immediately. So, naturally, one might expect that our own site code, written in Python, had been forward-ported long ago. Strangely enough, that didn't actually happen. It has mostly happened now, though. In the process of doing this work, your editor has noticed a few things that don't necessarily appear in the numerous porting guides circulating on the net.

    One often-heard excuse for delaying this work is that one or more dependencies have not yet been ported to Python 3. For almost everybody, that excuse ran out of steam some time ago; if a module has not been forward-ported by now, it probably never will be and other plans need to be made. In our case, the final dependency was the venerable Quixote web framework which, due to the much appreciated work of Neil Schemenauer, was forward-ported at the end of 2017. Quixote never really took the world by storm, but it makes the task of creating a code-backed site easy; we would have been sad to have to leave it behind.

    Much of the anxiety around moving to Python 3 is focused on how that language handles strings. The ability to work with Unicode was kind of bolted onto Python 2, but it was designed into Python 3 from the beginning. The result is a strict separation between the string type (str), which holds text as Unicode code points, and bytes, which contains arbitrary data — including text in a specific encoding. Python 2 made it easy to be lazy and ignore that distinction much of the time; Python 3 requires a constant awareness of which kind of data is being dealt with.

More in Tux Machines

Qt Creator 4.9 Beta released

We are happy to announce the release of Qt Creator 4.9 Beta! There are many improvements and fixes included in Qt Creator 4.9. I’ll just mention some highlights in this blog post. Please refer to our change log for a more thorough overview. Read more

Hack Week - Browsersync integration for Online

Recently my LibreOffice work is mostly focused on the Online. It's nice to see how it is growing with new features and has better UI. But when I was working on improving toolbars (eg. folding menubar or reorganization of items) I noticed one annoying thing from the developer perspective. After every small change, I had to restart the server to provide updated content for the browser. It takes few seconds for switching windows, killing old server then running new one which requires some tests to be passed. Last week during the Hack Week funded by Collabora Productivity I was able to work on my own projects. It was a good opportunity for me to try to improve the process mentioned above. I've heard previously about browsersync so I decided to try it out. It is a tool which can automatically reload used .css and .js files in all browser sessions after change detection. To make it work browsersync can start proxy server watching files on the original server and sending events to the browser clients if needed. Read more

GNOME 3.32 Desktop Environment Gets a Second Beta Release, RC Lands March 6th

The GNOME 3.32 beta 2 release is here two weeks after the first beta version to add even more improvements and squash as many bugs as possible before the final release hits the streets next month. The second beta release of the GNOME 3.32 desktop environment also marks the beginning of the String Freeze development stage. Read more

Tumbleweed Snapshots Are Steadily Rolling

The latest snapshot of the week, 20190219, had more than a dozen packages updated. A new Kerberos database module using the Lightning Memory-Mapped Database library (LMDB) has was added with the krb5 1.17 package, which brought some major changes for the administration experience for the network authentication protocol Kerberos. The permissions package update 20190212 removed several old entries and the kernel-space and user-space code package tgt 1.0.74 fixed builds with the newer glibc. A couple xf86 packages were updated. The 1.4.0 version of xf86-video-chips was a bug fix release for X.Org Server. There was an X Server crash bug with the version 1.3 affecting devices older than the HiQVideo generation. The change log said the code may not compile against X Server 1.20 since it no longer supports 24-bit color. A few other YaST packages were updated in the snapshot like yast2-installation 4.1.36, which had an update that saves the used repositories at the end of installation so as not to offer the driver packages again. The 20190217 snapshot had just three packages updated. The keyboard management library libgnomekbd 3.26.1 fixed a build with new GLib and updated translations. VMcore extraction tool makedumpfile 1.6.5 added some patches, bug fixes and improved support for arm64 systems with Kernel Address Space Layout Randomization (KASLR). The jump in the release of yast2-storage-ng from 4.1.53 to 4.1.59 provided quite a few changes like allowing the partitioner to create block cache (bcache) devices without a caching set and the newest version limits bcache support to x86_64. Read more