Language Selection

English French German Italian Portuguese Spanish

Development

Programming: GNU Binutils, Qt, Python, GStreamer, C++ and GTK+

Filed under
Development
  • GNU Binutils 2.32 Branched Ahead Of Release With New Features

    A new release of the GNU Binutils programming tools will soon be available. The upcoming Binutils 2.32 release is primarily made up of new CPU ports. 

    GNU Binutils 2.32 is bringing a MIPS port to the Loongson 2K1000 processor and the Loongson 3A1000/3A2000/3A3000 processors, all of which are based on the MIPS64r2 ISA but with different instruction set extensions. These new GPUs are exposed via -march=gs264e, -march=gs464, and -march=gs464e flags. With Binutils 2.32, the utilities like objdump and c++filt now have a maximum amount of recursion that is allowed while demangling strings with the current default being 2048. There is also a --no-recurse-limit for bypassing that limit. Objdump meanwhile allows --disassemble to specify a starting symbol for disassembly.

  • Building Qt apps with Travis CI and Docker

    I recently configured Travis CI to build Nanonote, my minimalist note-taking application. We use Jenkins a lot at work, and despite the fact that I dislike the tool itself, it has proven invaluable in helping us catch errors early. So I strongly believe in the values of Continuous Integration.

    When it comes to CI setup, I believe it is important to keep your distances with the tool you are using by keeping as much setup as possible in tool-agnostic scripts, versioned in your repository, and making the CI server use these scripts.

  • PyPI Security and Accessibility Q1 2019 Request for Proposals Update

    Earlier this year we launched a Request for Information (RFI) followed by the launch of a Request for Proposals (RFP) in November to fulfill a contract for the Open Technology Fund (OTF) Core Infrastructure Fund.

     The initial deadline for our RFP was December 14th. We had hoped to begin work with the selected proposers in January 2019, but ultimately fell short of the ability to do so.

  • GStreamer 1.15.1 Released With Work On AV1, V4L HEVC Encode/Decode

    GStreamer 1.15.1 was announced on Friday as the first development release in the trek towards GStreamer 1.16 for this powerful open-source multimedia framework.

  • GStreamer 1.15.1 development release

    The GStreamer team is pleased to announce the first development release
    in the unstable 1.15 release series.

    The unstable 1.15 release series adds new features on top of the
    current stable 1.14 series and is part of the API and ABI-stable 1.x
    release series of the GStreamer multimedia framework.

    The unstable 1.15 release series is for testing and development
    purposes in the lead-up to the stable 1.16 series which is scheduled
    for release in a few weeks time. Any newly-added API can still change
    until that point, although it is rare for that to happen.

  • Is C++ fast?

    A library that I work on often these days, meshoptimizer, has changed over time to use fewer and fewer C++ library features, up until the current state where the code closely resembles C even though it uses some C++ features. There have been many reasons behind the changes - dropping C++11 requirement allowed me to make sure anybody can compile the library on any platform, removing std::vector substantially improved performance of unoptimized builds, removing algorithm includes sped up compilation. However, I’ve never quite taken the leap all the way to C with this codebase. Today we’ll explore the gamut of possible C++ implementations for one specific algorithm, mesh simplifier, henceforth known as simplifier.cpp, and see if going all the way to C is worthwhile.

  • Python Counters @PyDiff
  • Report: (clxi) stackoverflow python report
  • Regular Expressions in Python
  • Starting on a new map rendering library

    Currently in Maps, we use the libchamplain library to display the bitmap map titles (based on OpenStreetMap data and aerial photography) that we get from our tile provider, currently MapBox. This library is based on Clutter and used via the GTK+ embed support within libchamplain, which in turn makes use of the Clutter GTK embed support. Since this will not be supported when moving along to GTK+ 4.x and the Clutter library is not maintained anymore (besides the copy of it that is included in the GNOME Shell window manager/Wayland compositor, Mutter) eventually Maps will have to find a replacement. There's also some wonky bugs especially with regards to the mixing of event handling on the Clutter side vs. the GTK+ side.

    So to at least get the ball rolling a bit, I recently decided to see how hard it would be to take the code from libchamplain and keep the grotty deep-down internals dealing with tile downloading and caching and such and refocus the top-level parts onto new GTK+ 4 technologies such as the Snapshot, GSK (scene graph), and render node APIs.

Best 10 Git GUI Clients for Ubuntu

Filed under
Development
Software
Ubuntu

I know most of the people reading this article are developers on Linux or Linux enthusiasts and don’t need any introduction to the Git. But for the noobs out there, Git is one of the most popular and most widely used version control systems available for software development and other similar kind of work. Basically Git is tool which can be managed and used through command line and it is one of the most easy to use command line version control tools available for Linux developers and users.With most of the developers nowadays using graphical tools for programming and development, there is no surprise they are also seeking for GUI tools which could prove to be efficient alternatives to Git command line tool. There are many Git GUI clients available for Linux and its distros like Ubuntu which offer most of the features of Git command line tool with more efficiency and reliability.

Read more

Second Godot 3.1 Beta

Filed under
Development
OSS
Gaming
  • Godot 3.1 Beta 2

    We entered the release freeze last week with Godot 3.1 beta 1, and many high priority bug reports have been fixed since then. We're now publishing a new beta 2 snapshot for testers to work with. This new release fixes various crash scenarios, as well as a performance regression in the GLES backend.

    We're still aiming for a release by the end of the month, so we're under a tight schedule. From now on dev focus is on release-critical issues that would seriously hamper Godot 3.1's usability and features.

    Contrarily to our 3.0.x maintenance releases, which include only thoroughly reviewed and backwards-compatible bug fixes, the 3.1 version includes all the new features (and subsequent bugs!) merged in the master branch since January 2018, and especially all those showcased on our past devblogs. It's been almost a year since the 3.0 release and close to 6,000 commits, so expect a lot of nice things in the final 3.1 version!

  • Godot 3.1 Beta 2 Released With OpenGL ES Performance Fix

    The developers behind Godot, one of the leading open-source game engines, have announced their second beta release for the upcoming Godot 3.1 feature release.

    Godot 3.1 initially entered beta earlier this month as stepping towards the first major release of this cross-platform game engine since Godot 3.0 last year. Godot 3.1 is preparing OpenGL ES 2.0 rendering support, continued work around virtual reality (VR) support, 3D soft body physics capabilities, constructive solid geometry, BPTC texture compression, a new visual shader editor, WebSockets support, and various game developer/editor improvements.

Programming: NetBSD/Clang, C-Reduce, Rust, Python and More

Filed under
Development
  • NetBSD Exploring LLVM's LLD Linker For Lower Memory Footprint

    The NetBSD project has been making good progress in utilizing the LLVM compiler stack not only for the Clang C/C++ compiler but also for the different sanitizers, the libc++ standard library for C++, and other improvements most of which are working their way into the upstream code-bases. One area of NetBSD's LLVM support being explored most recently is using the LLD linker.

    NetBSD is exploring the use of the LLVM LLD linker over GNU's ld linker due to the lower memory footprint. LLD generally goes through far less RAM than the current GNU ld linker.

  • Finding Compiler Bugs With C-Reduce

    Support for a long awaited GNU C extension, asm goto, is in the midst of landing in Clang and LLVM. We want to make sure that we release a high quality implementation, so it’s important to test the new patches on real code and not just small test cases. When we hit compiler bugs in large source files, it can be tricky to find exactly what part of potentially large translation units are problematic. In this post, we’ll take a look at using C-Reduce, a multithreaded code bisection utility for C/C++, to help narrow done a reproducer for a real compiler bug (potentially; in a patch that was posted, and will be fixed before it can ship in production) from a real code base (the Linux kernel). It’s mostly a post to myself in the future, so that I can remind myself how to run C-reduce on the Linux kernel again, since this is now the third real compiler bug it’s helped me track down.

  • Structuring Rust Transactions
  • Tidy up the user interface of the video editing application
  • Intel Vulkan Linux Driver Adds Conditional Rendering, Draw Indirect Count

    First up, the Intel Vulkan driver now supports VK_EXT_conditional_rendering after a lengthy review/revision process. VK_EXT_conditional_rendering was added to Vulkan 1.1.80 last July and allows for rendering commands to be made selective based upon a value in the buffer memory, in order to allow discard rendering commands based upon a result in GPU memory without having to wait on the application/engine. The conditional rendering can be used with Vulkan draws, compute dispatches, and clearing of attachments. VK_EXT_conditional_rendering is supported by Haswell "Gen 7.5" graphics and newer with the upcoming Mesa 19.0.

  • Episode #113: Python Lands on the Windows 10 App Store
  • Lambda Functions in Python
  • Find Your System's Biggest CPU Hogs

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

Syndicate content

More in Tux Machines

Audiocasts: Full Circle Weekly News, mintCast and GNU World Order

KDE: Usability & Productivity Report From Nate Graham

  • This week in Usability & Productivity, part 54
    This week in KDE’s Usability & Productivity initiative, something big landed: virtual desktop support on Wayland, accompanied by a shiny new user interface for the X11 version too. Eike Hein has been working on this literally for months and I think he deserves a round of applause! It was a truly enormous amount of work, but now we can benefit for years to come.
  • KDE Now Has Virtual Desktop Support On Wayland
    KDE landing virtual desktop support on Wayland this week is certainly quite exciting while also a new UI was added for the X11 virtual desktop support too. Some of the other KDE improvements that landed this week and relayed by Nate Graham include the digital clock widget now allowing adjustments to the date formatting, the KDE Information Center's USB devices section will now actually display all USB devices, wallpaper chooser view improvements, and various other improvements.

Screenshots/Screencasts: Robolinux 10.4 LXDE, deepin 15.9, and Parrot OS 4.5 KDE

Livepatching With Linux 5.1 To Support Atomic Replace & Cumulative Patches

With the Linux 5.1 kernel cycle that should get underway in just over one month's time, there will now be the long in development work (it's been through 15+ rounds of public code review!) for supporting atomic replace and cumulative patches. Read more