Language Selection

English French German Italian Portuguese Spanish


Latest of LWN (Paywall Expired)

Filed under
  • Python 3, ASCII, and UTF-8

    The dreaded UnicodeDecodeError exception is one of the signature "features" of Python 3. It is raised when the language encounters a byte sequence that it cannot decode into a string; strictly treating strings differently from arrays of byte values was something that came with Python 3. Two Python Enhancement Proposals (PEPs) bound for Python 3.7 look toward reducing those errors (and the related UnicodeEncodeError) for environments where they are prevalent—and often unexpected.

    Two related problems are being addressed by PEP 538 ("Coercing the legacy C locale to a UTF-8 based locale") and PEP 540 ("Add a new UTF-8 Mode"). The problems stem from the fact that locales are often incorrectly specified and that the default locale (the "POSIX" or "C" locale) specifies an ASCII encoding, which is often not what users actually want. Over time, more and more programs and developers are using UTF-8 and are expecting things to "just work".

  • Shrinking the kernel with link-time garbage collection

    One of the keys to fitting the Linux kernel into a small system is to remove any code that is not needed. The kernel's configuration system allows that to be done on a large scale, but it still results in the building of a kernel containing many smaller chunks of unused code and data. With a bit of work, though, the compiler and linker can be made to work together to garbage-collect much of that unused code and recover the wasted space for more important uses.
    This is the first article of a series discussing various methods of reducing the si

  • The current state of kernel page-table isolation

    At the end of October, the KAISER patch set was unveiled; this work separates the page tables used by the kernel from those belonging to user space in an attempt to address x86 processor bugs that can disclose the layout of the kernel to an attacker. Those patches have seen significant work in the weeks since their debut, but they appear to be approaching a final state. It seems like an appropriate time for another look.
    This work has since been renamed to "kernel page-table isolation" or KPTI, but the objective remains the same: split the page tables, which are currently shared between user and kernel space, into two sets of tables, one for each side. This is a fundamental change to how the kernel's memory management works and is the sort of thing that one would ordinarily expect to see debated for years, especially given its associated performance impact. KPTI remains on the fast track, though. A set of preparatory patches was merged into the mainline after the 4.15-rc4 release — when only important fixes would ordinarily be allowed — and the rest seems destined for the 4.16 merge window. Many of the core kernel developers have clearly put a lot of time into this work, and Linus Torvalds is expecting it to be backported to the long-term stable kernels.

    KPTI, in other words, has all the markings of a security patch being readied under pressure from a deadline. Just in case there are any smug ARM-based readers out there, it's worth noting that there is an equivalent patch set for arm64 in the works.

  • Containers without Docker at Red Hat

    The Docker (now Moby) project has done a lot to popularize containers in recent years. Along the way, though, it has generated concerns about its concentration of functionality into a single, monolithic system under the control of a single daemon running with root privileges: dockerd. Those concerns were reflected in a talk by Dan Walsh, head of the container team at Red Hat, at KubeCon + CloudNativeCon. Walsh spoke about the work the container team is doing to replace Docker with a set of smaller, interoperable components. His rallying cry is "no big fat daemons" as he finds them to be contrary to the venerated Unix philosophy.

  • Demystifying container runtimes

    As we briefly mentioned in our overview article about KubeCon + CloudNativeCon, there are multiple container "runtimes", which are programs that can create and execute containers that are typically fetched from online images. That space is slowly reaching maturity both in terms of standards and implementation: Docker's containerd 1.0 was released during KubeCon, CRI-O 1.0 was released a few months ago, and rkt is also still in the game. With all of those runtimes, it may be a confusing time for those looking at deploying their own container-based system or Kubernetes cluster from scratch. This article will try to explain what container runtimes are, what they do, how they compare with each other, and how to choose the right one. It also provides a primer on container specifications and standards.

  • HarfBuzz brings professional typography to the desktop

    By their nature, low-level libraries go mostly unnoticed by users and even some programmers. Usually, they are only noticed when something goes wrong. However, HarfBuzz deserves to be an exception. Not only does the adoption of HarfBuzz mean that free software's ability to convert Unicode characters to a font's specific glyphs is as advanced as any proprietary equivalent, but its increasing use means that professional typography can now be done from the Linux desktop as easily as at a print shop.

    "HarfBuzz" is a transliteration of the Persian for "open type." Partly, the name reflects that it is designed for use with OpenType, the dominant format for font files. Equally, though, it reflects the fact that the library's beginnings lie in the wish of Behdad Esfahbod, HarfBuzz's lead developer, to render Persian texts correctly on a computer.

    "I grew up in a print shop," Esfahbod explained during a telephone interview. "My father was a printer, and his father was a printer. When I was nine, they got a PC, so my brother and I started learning programming on it." In university, Esfahbod tried to add support for Unicode, the industry standard for encoding text, to Microsoft Explorer 5. "We wanted to support Persian on the web," he said. "But the rendering was so bad, and we couldn't fix that, so we started hacking on Mozilla, which back then was Netscape."

    Esfahbod's early interest in rendering Persian was the start of a fifteen-year effort to bring professional typography to every Unicode-supported script (writing system). It was an effort that led through working on the GNOME desktop for Red Hat to working on Firefox development at Mozilla and Chrome development at Google, with Esfahbod always moving on amiably to wherever he could devote the most time to perfecting HarfBuzz. The first general release was reached in 2015, and Esfahbod continues to work on related font technologies to this day.

Programming: MicroProfile, GCC,GitHub, C++

Filed under
  • An introduction to Eclipse MicroProfile

    Enterprise Java has been defined by two players: Spring on one side and Java Enterprise Edition on the other. The Java EE set of specifications was developed in the Java Community Process under the stewardship of Oracle. The current Java EE 8 was released in September 2017; the prior version came out in 2013.

    Between those releases, the industry saw a lot of change, most notably containers, the ubiquitous use of JSON, HTTP/2, and microservices architectures. Unfortunately there was not much related activity around Java EE; but users of the many Java EE-compliant servers demanded adoption of those new technologies and paradigms.

  • ARM Preps ARMv8.4-A Support For GCC Compiler

    ARM Holdings has submitted patches implementing support for the ARMv8.4-A instruction set update for the GNU Compiler Collection (GCC).

    ARMv8.4-A adds a new Secure EL2 state, more cryptographic hashing algorithms are supported by the instruction set, support for Activity Monitors, improved virtualization support, and Memory Partitioning and Monitoring (MPAM) capabilities.

  • GitHub Issue Notifications on Open Source Projects

    Many Open Source Project maintainers suffer from a significant overdose of GitHub notifications. Many have turned them off completely for that.

    We ( are constantly researching about how people handle a flood of incoming issues in our aim to improve the situation by applying modern technologies to the problem. (Oh and we love free software!)

  • Computer Science Pioneer Bjarne Stroustrup to Receive the 2018 Charles Stark Draper Prize for Engineering

    C++’s combination of expressiveness and efficiency surpasses that of other programming languages, making it a popular choice for complex tasks with resource constraints such as game engines, database implementations, control systems, financial services, graphics, networking, and web servers. C++ is now used by approximately 4.5 million programmers around the world and has revolutionized numerous applications — from web services like Google and Facebook to medical systems such as CAT scanners and blood analyses.

Programming: Rust 1.23, Machine Learning, Agile, PHP on Fedora/Red Hat, Perl

Filed under
  • Announcing Rust 1.23

    The Rust team is happy to announce a new version of Rust, 1.23.0. Rust is a systems programming language focused on safety, speed, and concurrency.

  • Source{d} Applies Machine Learning to Help Companies Manage Their Code Bases

    If you go to GitHub, the most popular developer platform today, and search for a piece of code, it is a plain-text search.

    “It’s like how we used to search on the web in 1996,” said Eiso Kant, CEO and co-founder at source{d}, a startup focused on applying machine learning on top of source code.

    “We have been writing trillions of lines of source code across the world, but none of the systems or developer tools or programming languages we’ve designed actually learn from all the source code we have written.”

  • What is agile methodology? Modern software development explained

    Every software development organization today seems to practice the agile software development methodology, or a version of it. Or at least they believe they do. Whether you are new to application development or learned about software development decades ago using the waterfall software development methodology, today your work is at least influenced by the agile methodology.

    But what exactly is agile methodology, and how should it be practiced in software development?

  • PHP version 5.6.33, 7.0.27, 7.1.13 and 7.2.1

    RPM of PHP version 7.2.1 are available in the remi-php72 repository for Fedora 25-27 and Enterprise Linux ≥ 6 (RHEL, CentOS) and as Software Collection in the remi-safe repository.

  • What is Perl?

    Perl is a bit battle-scarred, but it’s battle-tested, too. If you want to experiment with the latest, flashiest technologies, Perl may not be your first choice. However, if your business depends on having solid software with a track record of getting things done, Perl’s often a great choice.

Programming: LLVM 7.0, FarmBot, Mozilla and Rust

Filed under
  • LLVM 7.0 / Clang 7.0 Is Now Under Development

    LLVM/Clang 6.0 has been branched, thus making LLVM/Clang 7.0 open for development on master.

    The LLVM 6.0 branching has taken place a few weeks earlier than is traditionally done to satisfy an unnamed, large user of LLVM to jive with that company's internal testing processes. The branching / feature development is now over but the release candidates will not begin until mid-January.

  • FarmBot Wants to Cultivate an Open-Source Future for Remote Farming

    “Farm from anywhere” is a phrase we’re likely to hear more and more of as technology enables easier access to fresh, locally grown food. We just wrote about Babylon Micro-Farms, a remote, hydroponic farm you can keep inside your living room. There’s also a healthy urban farming market: thanks to companies like Farmshelf and Smallhold, restaurants, schools, and the average consumer get better access to fresh food and more involved in the food production itself.

  • The Rust Programming Language Blog: New Year's Rust: A Call for Community Blogposts

    ‘Tis the season for people and communities to reflect and set goals- and the Rust team is no different. Last month, we published a blogpost about our accomplishments in 2017, and the teams have already begun brainstorming goals for next year.

    Last year, the Rust team started a new tradition: defining a roadmap of goals for the upcoming year. We leveraged our RFC process to solicit community feedback. While we got a lot of awesome feedback on that RFC, we’d like to try something new in addition to the RFC process: a call for community blog posts for ideas of what the goals should be.

    As open source software becomes more and more ubiquitous and popular, the Rust team is interested in exploring new and innovative ways to solicit community feedback and participation. We’re commited to extending and improving our community organization and outreach- and this effort is just the first of what we hope to be many iterations of new kinds of community feedback mechanisms.

  • This Week in Rust 215

    Hello and welcome to another issue of This Week in Rust! Rust is a systems language pursuing the trifecta: safety, concurrency, and speed. This is a weekly summary of its progress and community. Want something mentioned? Tweet us at @ThisWeekInRust or send us a pull request. Want to get involved? We love contributions.

  • Mozilla Will Delete Firefox Crash Reports Collected by Accident

    Mozilla said last week it would delete all telemetry data collected because of a bug in the Firefox crash reporter.

    According to Mozilla engineers, Firefox has been collecting information on crashed background tabs from users' browsers since Firefox 52, released in March 2017.

    Firefox versions released in that time span did not respect user-set privacy settings and automatically auto-submitted crash reports to Mozilla servers. The browser maker fixed the issue with the release of Firefox 57.0.3.

  • Mozilla GFX: WebRender newsletter #11

    Newsletter #11 is finally here, even later than usual due to an intense week in Austin where all of Mozilla’s staff and a few independent contributors gathered, followed by yours truly taking two weeks off.

LLVM: LLVMpipe and LLVM Clang 6.0 Benchmark

Filed under
  • Even With An Intel Core i9 7980XE, LLVMpipe Is Still Slow

    During the recent holidays when running light on benchmarks to run, I was toying around with LLVMpipe in not having run this LLVM-accelerated software rasterizer in some time. I also ran some fresh tests of Intel's OpenSWR OpenGL software rasterizer that has also been living within Mesa.

    In showing the potential best case, an Intel Core i9 7980XE was used with its 18 cores / 36 threads configuration with 2.6GHz base frequency and 4.2GHz turbo for this ~$2,000 USD CPU with a 165 Watt TDP.

  • LLVM Clang 6.0 Benchmarks On AMD's EPYC Yield Some Performance Benefits

    With LLVM 6.0 being branched this week and that marking the end of feature development on this next compiler update before its stable debut in February, here are some benchmarks of the very latest LLVM Clang 6.0 compiler on AMD's EPYC 7601 32-core / 64-thread processor as we see how well the AMD Zen "znver1" tuning is working out.

CIB Introduced, LLVM Clang 6.0 Coming Soon

Filed under
  • CIB: Getting The Clang Compiler To Run In A Web Browser

    CIB is a new hobby project getting the full-blown Clang C/C++ compiler to run within a web browser as a technical feat.

    Independent developer Todd Fleming has been working on "CIB" that is short for "Clang In Browser." This comes down to Clang itself being compiled to WebAssembly (WASM) for then running in web-browsers.

  • Features To Look Forward To With LLVM / Clang 6.0

    With the LLVM Clang 6.0 code branching and feature freeze coming up on 3 January, here's a recap of some of the most interesting new features and changes to find with the LLVM 6.0 compiler infrastructure and Clang 6.0 C/C++ front-end.

Cutelyst 1.12.0 released

Filed under

The year is about to end and so is Cutelyst v1 series, I wasn’t planning for another release this year but Matthias added some nice new features that I decided to roll 1.12 in 2017 branching 1.x.x series and master is now officially Cutelyst 2 with no stable API/ABI until 2.0.0 is tagged.

HTTP/2 support will hopefully be part of Cutelyst 2.0.0, there aren’t any drastic changes in v2, most important thing is fixing MSVC builds and removing deprecated API.

Read more

Debian Development

Filed under

Programming: LLVM Clang, Debian Tools, OpenCV

Filed under
  • LLVM Clang Gets Support For Configuration Files

    Ahead of next week's LLVM 6.0 feature freeze / code branching, the Clang C/C++ compiler front-end has picked up support for the concept of configuration files.

    Clang configuration files basically come down to a file that can store multiple parameters to pass to Clang, just as you would otherwise do via the command-line but can now be stored into a text file. The purpose of these Clang configuration files is maninly for cross-compiler arguments or other use-cases where you may otherwise be passing a ton of repeated arguments to Clang.

  • pam-krb5 4.8

    This is the default Kerberos PAM module for Debian and Ubuntu systems, and supports both MIT Kerberos and Heimdal. I'm not sure how many people still use straight Kerberos PAM modules these days, with sssd taking off, but I'm still maintaining it.

    This release fixes a somewhat obscure bug: if you configure the module to do expired password changes properly, it checks to see that the expired credentials can still get kadmin/changepw credentials to do the password change. However, it was setting credential options improperly on that call, which could cause it to spuriously fail if, say, krb5.conf is configured to request proxiable credentials but kadmin/changepw doesn't support proxiable credentials. Thanks to Florian Best for the excellent bug report.

  • Animated line drawings with OpenCV

    OpenCV is a pretty versatile C++ computer vision library. Because I use it every day it has also become my go-to tool for creating simple animations at pixel level, for fun, and saving them as video files. This is not one of its core functions but happens to be possible using its GUI drawing tools.

  • rra-c-util 7.0

    This is my collection of utility libraries and support code for (mostly) C software.

    The major version bump is due a backwards-incompatible change: dropping the SA_LEN macro from portable/macros.h, including all the Autoconf machinery to probe for it. This macro came from INN's old portability code when porting to IPv6, but INN turned out to not really need it and it's never caught on. It was causing some warnings with GCC 7 that would otherwise have been hard to fix, so it was time for it to go.

  • C TAP Harness 4.2

    The functional change in this release of my test framework for C programs is the addition of a new is_blob test function. This is equivalent to ok(memcmp(...)) but it reports where the two memory regions differ as a diagnostic.

GNOME Development

Filed under
  • Ubuntu Monthly Update Cadence

    For core components they need to wait there turn so they would be the likely culprit if something breaks. To do that we’ll have a list of how closely coupled different components are. For example, these could be the highly coupled components: Kernel - Mesa
    Kernel - Systemd
    Mesa - Gnome
    Systemd - Gnome

  • A Proposal To Update Ubuntu's Kernel/Mesa/GNOME Components On A Monthly Basis

    It's not quite the Ubuntu rolling-release process that some have proposed over the years, but a new proposal is being formulated for shipping updates to key Ubuntu system components on a monthly basis rather than having to wait six months for updates to the Linux kernel, Mesa, etc.

    Longtime Ubuntu developer Bryan Quigley is currently working on an "Ubuntu Monthly" proposal by which key system components would see updates on a monthly cadence, when new releases are available and warranted, etc. The goals of this proposal would be to get "fresh software" to users faster, predictable that it's useful for more users, useful for business use-cases, trivial to triage problems with upgrading just one component at a time, and be easier for systems to be updated.

  • Adding tags to my jekyll website

    This iteration of the website uses the Jekyll static website generator. From time to time I add some features to the configuration. This time I wanted to add tags support to my posts. After a fast search I found jekyll-tagging. To put it working has been relatively easy because if you are not into Ruby you can misconfigure the gem dependencies as me. And to add some value to this post I’m just sharing some tips I added not written in the project readme file.

  • State of Meson in GLib/GStreamer

    During the last couple of months I’ve been learning the Meson build system. Since my personal interests in Open Source Software are around GLib and GStreamer, and they both have Meson and Autotools build systems in parallel, I’ve set as personal goal to list (and try to fix) blocker bugs preventing from switching them to Meson-only. Note that I’m neither GLib nor GStreamer maintainer, so it’s not my call whether or not they will drop Autotools.

Syndicate content

More in Tux Machines

Software: Corebird, RawTherapee, LVFS and More

Red Hat and Fedora: Red Hat Enterprise Linux 8 Alpha, Results Imminent, Fedora Atomic Workstation and More

Ubuntu and Mint Leftovers

  • Ubuntu 18.04's Automatic Suspend Shows Linux Suspend Can Still Be An Issue In 2018
    One of the subtle changes that seemed to have been made during the Ubuntu 18.04 development cycle is automatic suspend now being enabled by default on desktop systems. Automatic suspend is flipped on with Ubuntu 18.04 desktop after a twenty minute delay of being idle, at least on several systems I've been running the daily Bionic Beaver with this month.
  • Bid “bonjour” to our Bionic Beaver!
    Along with a sneak preview of our official Bionic mascot, it’s a short update this week as we’re all heads-down in bug fixing mode. There are a couple of links to check out if you’re interested in what sort of data we want to collect about hardware and setup, with links to the source.
  • MintBox Mini 2
    Based on the Compulab Fitlet2, the new Mini is just as small as the original MintBox Mini and the MintBox Mini Pro but with much better specifications, better performance and a few more features.

Android Leftovers

  • Android tips and tricks: 10 great ways to boost your phone experience
  • About the privacy of the unlocking procedure for Xiaomi’s Mi 5s plus
    First, you got to register on Xiaomi’s website, and request for the permission to unlock the device. That’s already bad enough: why should I ask for the permission to use the device I own as I am pleased to? Anyway, I did that. The procedure includes receiving an SMS. Again, more bad: why should I give-up such a privacy thing as my phone number? Anyway, I did it, and received the code to activate my website account. Then I started the unlock program in a virtualbox Windows XP VM (yeah right… I wasn’t expecting something better anyway…), and then, the program tells me that I need to add my Xiaomi’s account in the phone. Of course, it then sends a web request to Xiaomi’s server. I’m already not happy with all of this, but that’s not it. After all of these privacy breaches, the unlock APP tells me that I need to wait 72 hours to get my phone to account association to be activated. Since I wont be available in the middle of the week, for me, that means waiting until next week-end to do that. Silly…
  • You Can Now Try Android Games Without Downloading Them
    Tired of downloading games only to realize they suck? Google Play Instant might mean never doing that again.
  • Plex for Android Will Soon Let You Cast Your Own Videos to Chromecast