Language Selection

English French German Italian Portuguese Spanish

Programming: Intel Graphics Compiler, Bzip2 in Rust, Ract, YAML, Python and YAML

Filed under
Development
  • Intel Graphics Compiler 1.0.8 Released With LLVM 9 & GCC 9 Fixes

    The open-source folks maintaining the LLVM-based Intel Graphics Compiler for use by their NEO compute stack for Linux released this week another update.

    Intel Graphics Compiler 1.0.8 is this latest update, which is primarily focused on offering up the remaining fixes for being built by the GCC 9.1 stable compiler and for interfacing with the in-development LLVM Clang 9.0 compiler stack. IGC continues to make use of the LLVM infrastructure to help with the heavy lifting around this graphics compiler. IGC 1.0.8 is currently passing "99.87%" of the certification tests when using LLVM/Clang 9.

  • Bzip2 in Rust: porting the randomization table

    Bzip2's compression starts by running a Burrows-Wheeler Transform on a block of data to compress, which is a wonderful algorithm that I'm trying to fully understand. Part of the BWT involves sorting all the string rotations of the block in question.

    Per the comment I cited, really old versions of bzip2 used a randomization helper to make sorting perform well in extreme cases, but not-so-old versions fixed this.

    This explains why the decompression struct DState has a blockRandomised bit, but the compression struct EState doesn't need one. The fields that the original macro was pasting into EState were just a vestige from 1999, which is when Bzip2 0.9.5 was released.

  • [Older] react-content-marker Released – Marking Content with React

    Last year, in a React side-project, I had to replace some content in a string with HTML markup. That is not a trivial thing to do with React, as you can't just put HTML as string in your content, unless you want to use dangerouslySetInnerHtml — which I don't. So, I hacked a little code to smartly split my string into an array of sub-strings and DOM elements.

    More recently, while working on Translate.Next — the rewrite of Pontoon's translate page to React — I stumbled upon the same problem. After looking around the Web for a tool that would solve it, and coming up short handed, I decided to write my own and make it a library.

  • 10 YAML tips for people who hate YAML

    There are lots of formats for configuration files: a list of values, key and value pairs, INI files, YAML, JSON, XML, and many more. Of these, YAML sometimes gets cited as a particularly difficult one to handle for a few different reasons. While its ability to reflect hierarchical values is significant and its minimalism can be refreshing to some, its Python-like reliance upon syntactic whitespace can be frustrating.

    However, the open source world is diverse and flexible enough that no one has to suffer through abrasive technology, so if you hate YAML, here are 10 things you can (and should!) do to make it tolerable. Starting with zero, as any sensible index should.

  • Creating a Django App on Ubuntu Server

    Django is a common platform for developing websites, web applications and web APIs. There are many advantages to using the Django framework for your project as your tool and if you’re not sure it’s the right fit, you need only to look to the many big name brands using Django in their stack.
    Deploying Django to a production environment for the first time can be a daunting task. Often, developers will launch a Linux instance on the cloud for their production environment.

    In this tutorial, we’ll show you how to launch Django in production, using a fresh Ubuntu instance.

  • Recognizing a face using JavaScript

    When you look around for ways to identify faces, you come up with a host of solutions. Many are generic, some are interfaces to existing frameworks. For JavaScript, you have a few popular ones to choose from. You may even be confused by the array of solutions. Even for face recognition you have several options. Many, most actually, are for Python but you can also find a few in JavaScript. Frameworks that are aimed specifically at face recognition are face,js and face-recognition.js. The latter is considered obsolete though. The smallest, in terms of code, is pico.js With about 200 lines of code it can detect your own face using your webcam. The Pico code comes with a trained set already, which means that it will not improve while you are using it. For the curious, the pre-trained classification cascades are available on their GitHub repository. If you do want to train it yourself, there is a learn function you can use. This is a C program available on GitHub. This is a long process to complete making it an interesting exercise rather than something useful. One of the more interesting API’s is face-api.js, this one uses TensorFlow.js for the machine learning part.

  • Call for Speakers - Montréal-Python 75: Funky Urgency

    Montreal-Python will be hosting its last event before the summer break. This is also a special moment because it's our 75th event!

  • High quality automated docker hub push using Github, TravisCI and pyup for Python tool distributions

    Let's say you want to distribute a Python tool with docker using known good dependency versions ready to be used by end users... In this article you will see how to continuously keeping up to date a Docker Hub container with minimal managing effort (because I'm a lazy guy) using github, TravisCI and pyup.

  • PyCoder’s Weekly: Issue #372 (June 11, 2019)
  • Our Favorite PyCon 2019 Presentations

More in Tux Machines

Debian: Introducing Noir, miniDebConf19 Vaumarcus and New FAI.me Feature

  • Introducing Noir

    Noir is a drop-in replacement for Black (the uncompromising code formatter), with the default line length set to PEP-8's preferred 79 characters. If you want to use it, just replace black with noir in your requirements.txt and/or setup.py and you're good to go. Black is a Python code formatter that reformats your code to make it more PEP-8 compliant. It implements a subset of PEP-8, most notably it deliberately ignores PEP-8's suggestion for a line length of 79 characters and defaults to a length of 88. I find the decision and the reasoning behind that somewhat arbitrary. PEP-8 is a good standard and there's a lot of value in having a style guide that is generally accepted and has a lot of tooling to support it. When people ask to change Black's default line length to 79, the issue is usually closed with a reference to the reasoning in the README. But Black's developers are at least aware of this controversial decision, as Black's only option that allows to configure the (otherwise uncompromising) code formatter, is in fact the line length. Apart from that, Black is a good formatter that's gaining more and more popularity. And, of course, the developers have every right to follow their own taste. However, since Black is licensed under the terms of the MIT license, I tried to see what needs to be done in order to fix the line length issue.

  • miniDebConf19 Vaumarcus – Oct 25-27 2019 – Registration is open

    The Vaumarcus miniDebConf19 is happening! Come see the fantastic view from the shores of Lake Neuchâtel, in Switzerland! We’re going to have two-and-a-half days of presentations and hacking in this marvelous venue and anybody interested in Debian development is welcome.

  • New FAI.me feature

    FAI.me, the build service for installation and cloud images has a new feature. When building an installation images, you can enable automatic reboot or shutdown at the end of the installation in the advanced options. This was implemented due to request by users, that are using the service for their VM instances or computers without any keyboard connected.

FreeBSD's Executive Director Calls For Linux + BSD Devs To Work Together

While called the Open-Source Summit, the event is primarily about Linux as after all it's hosted by the Linux Foundation. But at this week's Open-Source Summit in San Diego, Deb Goodkin as the executive director of the FreeBSD Foundation presented. Deb's talk was of course on FreeBSD but also why FreeBSD and Linux developers should work together. The presentation covered FreeBSD's development workflow and various features of this open-source operating system project for those unfamiliar as well as some of the companies utilizing FreeBSD and their different use-cases. It's a good overview for those not familiar with FreeBSD. Read more

Enlightenment DR 0.23.0 Release

Highlights: New padded screenshot option Meson build now is the build system Music Control now supports rage mpris dbus protocol Add Bluez5 support with totally new and redone module and gadget Add dpms option to turn it off or on Alt-tab window switcher allows moving of windows while alt-tabbing Lots of bug fixes, compile warning fixes etc. Massive improvements to Wayland support Read more Also: Enlightenment 0.23 Released With Massive Wayland Improvements

LG Has Been Working On Reduced Boot Times With Hibernation Optimizations

LG Electronics has been exploring improvements around hibernation/suspend-to-disk to speed-up the Linux boot process for consumer electronics rather than performing cold boots and as part of that is working towards upstream optimizations. While hibernation-based booting is generally quicker than performing cold boots, suspending to disk does yield extra writes to the NAND flash memory on these consumer devices and that is one of the things they are seeking to avoid. So it's been an effort not only to speed-up the hibernation boot process but also reducing the amount of data that needs to be written out to the flash storage. Read more