Language Selection

English French German Italian Portuguese Spanish

Development

Clear Linux's make-fmv-patch Eases The Creation Of GCC FMV-Enabled Code Paths

Filed under
Development
GNU

One of the GCC compiler features unfortunately not taken advantage of by most Linux distributions is FMV - Function Multi-Versioning. FMV is what allows for the compilation of different tuned code paths depending upon the processor and for the particular code-path to be chosen at run-time, i.e. optimizing to your heart's content with AVX, SSE4, and other instruction set extensions and compiling all of that into a single binary and for the preferred code path to be taken depending upon the CPU running the binary so it will still run on older CPUs as well as today's most powerful processors.

Read more

Programming: GCN, Python, Rust, RcppArmadillo

Filed under
Development

Programming: Django, PHP, Polonius and More

Filed under
Development
  • Django 2.2 alpha 1 released

    Django 2.2 alpha 1 is now available. It represents the first stage in the 2.2 release cycle and is an opportunity for you to try out the changes coming in Django 2.2.

    Django 2.2 has a salmagundi of new features which you can read about in the in-development 2.2 release notes.

  • Eliminating PHP polyfills

    The Symfony project has recently created a set of pure-PHP polyfills for both PHP extensions and newer language features. It allows developers to add requirements upon those functions or language additions without increasing the system requirements upon end users. For the most part, I think this is a good thing, and valuable to have. We've done similar things inside MediaWiki as well for CDB support, Memcached, and internationalization, just to name a few.

    But the downside is that on platforms where it is possible to install the missing PHP extensions or upgrade PHP itself, we're shipping empty code. MediaWiki requires both the ctypes and mbstring PHP extensions, and our servers have those, so there's no use in deploying polyfills for those, because they'll never be used. In September, Reedy and I replaced the polyfills with "unpolyfills" that simply provide the correct package, so the polyfill is skipped by composer. That removed about 3,700 lines of code from what we're committing, reviewing, and deploying - a big win.

  • Polonius and region errors

    Now that NLL has been shipped, I’ve been doing some work revisiting the Polonius project. Polonius is the project that implements the “alias-based formulation” described in my older blogpost. Polonius has come a long way since that post; it’s now quite fast and also experimentally integrated into rustc, where it passes the full test suite.

  • Serious Python released!

    Well, Serious Python is the the new name of The Hacker's Guide to Python — the first book I published. Serious Python is the 4th update of that book — but with a brand a new name and a new editor!

Programming: Panda 3D Game Project, Skills in 2019, Golang Mastery, Python and Mozilla

Filed under
Development
  • Create Panda 3D Game Project

    Hello, do you still remember that I have mentioned to you before that I will start another game project alongside the new pygame project? Well, I have not decided yet which game framework should I use to build the python game. Yesterday I had just came across Panda 3D which is a very attractive game framework that we can use to create the python game.

  • Top technical skills that will get you hired in 2019

    Landing the perfect IT job is never easy, but certain technical skills can smooth the way, especially if they’re in high demand. Job search platform Indeed has analyzed the fastest-growing terms used by job seekers when searching for tech jobs in 2019, and the results represent some significant changes over last year.

    “When people look for new jobs, they often use search terms that describe cutting-edge skills associated with the jobs they want,” says Daniel Culbertson, economist at Indeed. “On the employer side, the highly specialised tech talent who have these proficiencies are in great demand.”

  • 5 open source Go tools for tuning up your Golang mastery

    Love programming in Go? It’s hard not to fall in love with it, we know! Today we browsed through some Golang tools on GitHub and picked some of our favorites from the list. Far from exhaustive, this list highlights some of the best in show.

  • Executing Shell Commands with Python
  • Introduction to Python
  • Convert video from one format to another with python
  • L10n report: January edition

Programming: Python 'Standard', sr.ht and Wing Python IDE 6.1.4

Filed under
Development
  • What should be in the Python standard library?

    Python has always touted itself as a "batteries included" language; its standard library contains lots of useful modules, often more than enough to solve many types of problems quickly. From time to time, though, some have started to rethink that philosophy, to reduce or restructure the standard library, for a variety of reasons. A discussion at the end of November on the python-dev mailing list revived that debate to some extent.

    Jonathan Underwood raised the issue, likely unknowingly, when he asked about possibly adding some LZ4 compression library bindings to the standard library. As the project page indicates, it fits in well with the other compression modules already in the standard library. Responses were generally favorable or neutral, though some, like Brett Cannon, wondered if it made sense to broaden the scope a bit to create something similar to hashlib but for compression algorithms.

  • A new free-software forge: sr.ht

    Many projects have adopted the "GitHub style" of development over the last few years, though, of course, there are some high-profile exceptions that still use patches and mailing lists. Many projects are leery of putting all of their project metadata into a proprietary service, with limited means of usefully retrieving it should that be necessary, which is why GitLab (which is at least "open core") has been gaining some traction. A recently announced effort looks to kind of bridge the gap; Drew DeVault's sr.ht ("the hacker's forge") combines elements of both styles of development in a "100% free and open source software forge". It looks to be an ambitious project, but it may also suffer from a lack of "social network" effects, which is part of what sustains GitHub as the forge of choice today, it seems.

    The announcement blog post is replete with superlatives about sr.ht, which is "pronounced 'sir hat', or any other way you want", but it is a bit unclear whether the project quite lives up to all of that. It combines many of the features seen at sites like GitHub and GitLab—Git hosting, bug tracking, continuous integration (CI), mailing list management, wikis—but does so in a way that "embraces and improves upon the email-based workflow favored by git itself, along with many of the more hacker-oriented projects around the net". The intent is that each of the separate services integrate well with both sr.ht and with the external ecosystem so that projects can use it piecemeal.

    There are two sides to the sr.ht coin at this point; interested users can either host their own instance or use the hosted version. For now, the hosted version is free to use, since it is still "alpha", but eventually one will need to sign up for a plan, which range from $2 to $10 per month, to stay on the hosted service. There are instructions for getting sr.ht to run on other servers; it uses nginx, PostgreSQL, Redis, and Python 3 along with a mail server and a cron daemon.

  • Wing Python IDE 6.1.4

    This minor release fixes using typing.IO and similar classes as type hints, improves handling of editor splits in goto-definition, fixes failure to install the remote agent, and fixes failure to convert EOLs in the editor. See the change log for details.

Builder 3.32 Sightings

Filed under
Development
GNOME

We just landed the largest refactor to Builder since it’s inception. Somewhere around 100,000 lines of code where touched which is substantial for a single development cycle. I wrote a few tools to help us do that work, because that’s really the only way to do such a large refactor.

Not only does the refactor make things easier for us to maintain but it will make things easier for contributors to write new plugins. In a future blog post I’ll cover some of the new design that makes it possible.

Let’s take a look at some of the changes in Builder for 3.32 as users will see them.

Read more

Programming: gVisor/Go, Rust, and Python

Filed under
Development
  • gVisor: Building and Battle Testing a Userspace OS in Go

    Adin Scannell talks about gVisor - a container runtime that implements the Linux kernel API in userspace using Go. He talks about the architectural challenges associated with userspace kernels, the positive and negative experiences with Go as an implementation language, and finally, how to ensure API coverage and compatibility.

  • Rust bindings for GStreamerGL: Memoirs

    Rust is a great programming language but the community around it’s just amazing. Those are the ingredients for the craft of useful software tools, just like Servo, an experimental browser engine designed for tasks isolation and high parallelization.

    Both projects, Rust and Servo, are funded by ">">Mozilla.

    Thanks to Mozilla and Igalia I have the opportunity to work on Servo, adding it HTML5 multimedia features.

    First, with the help of Fernando Jiménez, we finished what my colleague Philippe Normand and Sebastian Dröge (one of my programming heroes) started: a media player in Rust designed to be integrated in Servo. This media player lives in its own crate: servo/media along with the WebAudio engine. A crate, in Rust jargon, is like a library. This crate is (very ad-hocly) designed to be multimedia framework agnostic, but the only backend right now is for GStreamer. Later we integrated it into Servo adding an initial support for audio and video tags.

    Currently, servo/media passes, through a IPC channel, the array with the whole frame to render in Servo. This implies, at least, one copy of the frame in memory, and we would like to avoid it.

    For painting and compositing the web content, Servo uses WebRender, a crate designed to use the GPU intensively. Thus, if instead of raw frame data we pass OpenGL textures to WebRender the performance could be enhanced notoriously.

  • proc-macro-rules
  • Analyzing Robinhood trade history

Programming: Flask, Agile, Rust and Python

Filed under
Development
  • How to build an API for a machine learning model in 5 minutes using Flask

    As a data scientist consultant, I want to make impact with my machine learning models. However, this is easier said than done. When starting a new project, it starts with playing around with the data in a Jupyter notebook. Once you’ve got a full understanding of what data you’re dealing with and have aligned with the client on what steps to take, one of the outcomes can be to create a predictive model.

    You get excited and go back to your notebook to make the best model possible. The model and the results are presented and everyone is happy. The client wants to run the model in their infrastructure to test if they can really create the expected impact. Also, when people can use the model, you get the input necessary to improve it step by step. But how can we quickly do this, given that the client has some complicated infrastructure that you might not be familiar with?

  • What is Small Scale Scrum?

    Agile is fast becoming a mainstream way industries act, behave, and work as they look to improve efficiency, minimize costs, and empower staff. Most software developers naturally think, act, and work this way, and alignment towards agile software methodologies has gathered pace in recent years.

    VersionOne’s 2018 State of Agile report shows that scrum and its variants remain the most popular implementation of agile. This is in part due to changes made to the Scrum Guide’s wording in recent years that make it more amenable to non-software industries.

  • This Week in Rust 269
  • Async IO in Python: A Complete Walkthrough

    Async IO is a concurrent programming design that has received dedicated support in Python, evolving rapidly from Python 3.4 through 3.7, and probably beyond.

    You may be thinking with dread, “Concurrency, parallelism, threading, multiprocessing. That’s a lot to grasp already. Where does async IO fit in?”

    This tutorial is built to help you answer that question, giving you a firmer grasp of Python’s approach to async IO.

Top 15 Best Git Clients for Linux

Filed under
Development
Software

As a Linux user, you need to update software source code frequently. You may use a command line to do the task. But, when you need to handle a large project, then it becomes lengthy and difficult also. On the other hand, it is also quite impossible to point out the entire branch structure using the command line.

Nowadays, all the mastermind Linux users are frequently using Git tools for the software controlling management and development. The tasks are very simple and quite easier with git client Linux. That is why we take the step to introduce you to some of the best git clients for Linux.

Read more

Programming: Go, JavaScript, Data Science Programming Languages and PyFilesystem

Filed under
Development
  • How To Learn Go Programming Language

    First appeared in November 2009, Go is a statically typed, compiled programming language designed at Google. You might have just heard about this programming language in the past couple of years but recently, Go has started to gain significant popularity in the coding world.

    Being light-weight, open source, and suited for today’s microservices architectures, Go is an amazing choice for a language. Also known as Google’s Golang, this language was developed by some of the brilliant minds from Google who created the C programming language. Today, it is one of the fastest growing languages and it’s absolutely a great time to start learning and working with GO.

  • Review: The 6 best JavaScript IDEs

    Back in the ancient days when Java Swing was new and exciting, I enjoyed using Eclipse for Java development, but soon moved on to other Java IDEs. Five-plus years ago, when I did some Android development with Eclipse, I found the experience OK, but poky. When I tried to use Eclipse Luna with JSDT for JavaScript development in 2014, it constantly displayed false-positive errors for valid code that passed JSHint.

  • A Complete List of The Best Data Science Programming Languages

    Data science is one of the fastest-growing fields in America. Organizations are employing data scientists at a rapid rate to help them analyze increasingly large and complex data volumes. The proliferation of big data and the need to make sense of it all has created a vortex where all of these things exist together. As a result, new techniques, technologies and theories are continually being developed to run advanced analysis, and they all require development and programming to ensure a path forward.

  • PyFilesystem is greater than or equal to Pathlib

    I was reading a post by Trey Hunner on why pathlib is great, where he makes the case that pathlib is a better choice than the standard library alternatives that preceded it. I wouldn't actually disagree with a word of it. He's entirely correct. You should probably be using pathlib were it fits.

Syndicate content

More in Tux Machines

Android Leftovers

Parrot 4.5 Ethical Hacking OS Released with Metasploit 5.0, Drops 32-Bit Support

Parrot 4.5 is now available, powered by the long-term supported Linux 4.19 kernel series, preparing the project for the upcoming Parrot 5.0 LTS release. For future releases, Parrot Security plans to a support two kernels, stable kernel and a testing kernel. Parrot 4.5 also comes with the latest Metasploit 5.0 penetration testing framework, which introduces major features like new evasion modules, a new search engine, a json-rpc daemon, integrated web services, and support for writting shellcode in C. Read more Also: Parrot 4.5 release notes

GPU acceleration for Linux apps on Chrome OS enabled

It’s happening, and it’s happening early. GPU acceleration for Linux apps on Chrome OS has arrived. According to a recent report, Chromebooks with ‘Eve’ and ‘Nami’ baseboard should now, or very soon, be able to try GPU hardware acceleration. GPU acceleration allows applications to fully leverage the GPU of a device to better run graphic-intensive tasks, like gaming. The feature will make for a much smoother Linux apps experience for Chromebook users. Read more

Out-Of-The-Box 10GbE Network Benchmarks On Nine Linux Distributions Plus FreeBSD 12

Last week I started running some fresh 10GbE Linux networking performance benchmarks across a few different Linux distributions. That testing has now been extended to cover nine Linux distributions plus FreeBSD 12.0 to compare the out-of-the-box networking performance. Tested this round alongside FreeBSD 12.0 was Antergos 19.1, CentOS 7, Clear Linux, Debian 9.6, Fedora Server 29, openSUSE Leap 15.0, openSUSE Tumbleweed, Ubuntu 18.04.1 LTS, and Ubuntu 18.10. All of the tests were done with a Tyan S7106 1U server featuring two Intel Xeon Gold 6138 CPUs, 96GB of DDR4 system memory, and Samsung 970 EVO SSD. For the 10GbE connectivity on this server was an add-in HP NC523SFP PCIe adapter providing two 10Gb SPF+ ports using a QLogic 8214 controller. Read more