Language Selection

English French German Italian Portuguese Spanish

Development and Documentation at Mozilla, SUSE, R, Vim an More

Filed under
Development
  • Firefox Nightly: These Weeks in Firefox: Issue 68

    The “Omniscient” Browser Toolbox will be enabled by default in the coming days

  • The Brains Behind the Books – Part VII: Alexandra Settle

    The content of this article has been contributed by Alexandra Settle, Technical Writer at the SUSE Documentation Team.

    It is part of a series of articles focusing on SUSE Documentation and the great minds that create the manuals, guides, quick starts, and many more helpful documents.

  • The 20 Best R Machine Learning Packages in 2019

    Almost all novice data scientists and machine learning developers are being confused about picking a programming language. They always ask which programming language will be best for their machine learning and data science project. Either we will go for python, R, or MatLab. Well, the choice of a programming language depends on developers’ preference and system requirements. Among other programming languages, R is one of the most potential and splendid programming languages that have several R machine learning packages for both ML, AI, and data science projects.

    [...]

    R is an open-source language so people can contribute from anywhere in the world. You can use a Black Box in your code, which is written by someone else. In R, this Black Box is refereed to as a package. The package is nothing but a pre-written code that can be used repeatedly by anyone. Below, we are showcasing the top 20 best R machine learning packages.

  • 8 Excellent Free Books to Learn Vim

    Vim is an open source configurable and powerful text editor. It’s an improved version of the vi editor, with development dating back to 1976. This software can be used to write any kind of text.

    Vim sports a minimalistic interface to help the writer focus on the task at hand. It’s popular among developers given that it’s inherently modal (you go into command modes where you cannot edit), efficient, extensible, fast, and terminal friendly.

    When getting started with Vim, users face a steep learning curve. It’s true the software is simple. It’s simple in the sense that its minimal interface focuses the user on their main task. But Vim is very powerful.

  • RelStorage 3.0

    We're happy to announce the release of RelStorage 3.0, the relational storage engine for ZODB. Compared to RelStorage 2, highlights include a 30% reduction in memory usage, and up to 98% faster performance! (Ok, yes, that's from one specific benchmark and not everything is 98% faster, but improved performance was a major goal.)

    RelStorage 3.0 is a major release of RelStorage with a focus on performance and scalability. It's the result of a concentrated development effort spanning six months, with each pre-release being in production usage with large databases.

  • Introduction to ZODB Data Storage

    ZODB is a powerful native object database for Python, widely known for its use in the Zope web framework and the Plone content management system. By enabling transparent object graph persistence with no need to predefine schemas, ZODB enables extremely flexible application development. With pluggable storage engines such as FileStorage, ZEO, and RelStorage, it also provides flexible ways to store data.

    [...]

    In addition, ZODB provides a transactional view of these objects with snapshot isolation. Any given connection to the database sees a consistent view of all the objects in the database (whether it reads or writes to any particular object or not) as-of the moment it began. When adding or updating objects, no changes are published and made visible to other connections until the writing connection commits its transaction, at which point either all the changes are made visible or none of them are. Existing connections that continue reading (or even writing!) will still not see those changes; they're "stuck" at the snapshot view of the objects they started with. (The ability for readers to continue to be able to retrieve old data that's been replaced in newer transactions is known as multi-version concurrency control, or MVCC.)

    Many connections may be reading and writing to the database at once. ZODB uses optimistic concurrency control. Readers don't block other readers or writers, and writers are allowed to proceed as if they were the only one making changes right up until they commit. Writes are defined to occur in a strict order. If a writer discovers that an earlier transaction had modified objects that it too wants to modify, a conflict occurs. Instead of just rolling back the writing transaction and forcing it to start over, taking the modified object into account, ZODB gives the application the chance to resolve the conflict using a three-way merge between the object as it existed when the transaction began, the object that the connection wants to commit, and the object that was committed by the other writer. Only if it cannot do so is the transaction rolled back.

Download the new Python pip cheat sheet

  • Download the new Python pip cheat sheet

    In addition to installing packages, pip can also be used to build wheels. Wheels are a special file format that is optimized to install without any processing. This makes wheels useful for installing the same distribution in many different environments, e.g., on different machines or in different virtual environments in a single machine.
    pip can also record the packages installed in a virtual environment in a text file, which can be transferred to reproduce the identical virtual environment. The text file can be emailed, sent over a chat service, or, most commonly, checked into version control.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.

More in Tux Machines

Android Document Scanning and Developer-Focused TV Box

  • The 15 Best Document Scanner Apps for Android Devices in 2020

    It doesn’t matter whether you are an Office job holder, a businessman, or a student; you will face a situation where scanning some papers or documents seem to be essential. But finding a scanner is tough in many places nowadays. You can deal with such a problem if you have installed any document scanner apps on your Android device. In PlayStore, some scanner apps can turn your mobile phone into a tiny scanner. So, just by installing a useful document scanner App, you can scan notes and documents anytime, anywhere.

  • Google ADT-3 is a Developer-Focused TV Box for Android TV on Android 10

    Back in 2014, Google killed Google TV and announced Android TV, and as a result, introduced ADT-1, the first developer kit specifically designed for Android TV.

Improving the security model of the LVFS

There are lots of layers of security in the LVFS and fwupd design, including restricted account modes, 2FA, and server side AppStream namespaces. The most powerful one is the so-called vendor-id that the vendors cannot assign themselves, and is assigned by me when creating the vendor account on the LVFS. The way this works is that all firmware from the vendor is tagged with a vendor-id string like USB:0x056A which in this case matches the USB consortium vendor assigned ID. Client side, the vendor-id from the signed metadata is checked against the physical device and the firmware is updated only if the ID matches. This ensures that malicious or careless users on the LVFS can never ship firmware updates for other vendors hardware. About 90% of the vendors on the LVFS are locked down with this mechanism. Some vendors have to have IDs that they don’t actually own, a good example here is for a DFU device like the 8bitdo controllers. In runtime mode they use the USB-assigned 8bitdo VID, but in bootloader mode they use a generic VID which is assigned to the chip supplier as they are using the reference bootloader. This is obviously fine, and both vendor IDs are assigned to 8bitdo on the LVFS for this reason. Another example is where Lenovo is responsible for updating Lenovo-specific NVMe firmware, but where the NVMe vendor isn’t always Lenovo’s PCI ID. Read more

Programming: Vim, Qt Shader and Python

  • Vim Text Editor for Beginners Part 1 - Introduction

    In my newly refreshed Vim series, you'll learn all the things you'll need to know in order to use this text editor in your daily workflow. In this first video, we'll get Vim installed take an initial look.

  • Vim Text Editor for Beginners Part 2 - Combining Files

    In my newly refreshed Vim series, you'll learn all the things you'll need to know in order to use this text editor in your daily workflow.

  • Qt Shader Tools Looks To Become Official Qt6 Module

    The currently-experimental Qt Shader Tools allows for graphics/compute shader conditioning and used by the in-development Qt graphics abstraction layer for supporting Vulkan / Metal / Direct3D / OpenGL APIs. Qt Shader Tools offers various shader features in preparing them for consumption by different graphics APIs. Qt Shader Tools is currently used ahead of time for QtGUI with Qt 5.14+. But for Qt 6.0, Qt Shader Tools is going through the appropriate steps for becoming a formal Qt 6 module for compiling and translating shaders between interfaces.

  • Python Positional-only parameters

    I have downloaded Python 3.8 and start to play around with those latest python functions. In this article, we will look at the Positional-only parameter syntax which is a function parameter syntax / to indicate that some function parameters must be specified positionally and cannot be used as keyword arguments which means after the / syntax we may specify a value for each parameter within that function.

  • For Loop in Python Explained With Practical Examples

    If you are just getting started to learn Python, you must be in search of something to explore for loop in Python. Of course, our list of free python resources should help you learn about it quickly. In either case, we shall help you learn more about the ‘for‘ loop in python using a couple of important examples.

Games: Pygame, The Long Dark, DXVK and Shovel Knight

  • Enable your Python game player to run forward and backward

    In previous entries in this series about creating video games in Python 3 using the Pygame module, you designed your level-design layout, but some portion of your level probably extended past your viewable screen. The ubiquitous solution to that problem in platformer games is, as the term "side-scroller" suggests, scrolling. The key to scrolling is to make the platforms around the player sprite move when the player sprite gets close to the edge of the screen. This provides the illusion that the screen is a "camera" panning across the game world. This scrolling trick requires two dead zones at either edge of the screen, at which point your avatar stands still while the world scrolls by.

  • Survival Mode in The Long Dark just got a lot bigger with the ERRANT PILGRIM update

    As promised, Hinterland Studio have released a huge update to the Survival Mode side of The Long Dark named ERRANT PILGRIM. It brings in a whole new region to explore, Bleak Inlet. Once a home to a thriving industrial Cannery, seismic activity cut-off Bleak Inlet from the rest of the Great Bear mainland. Exploring is not for the faint of heart, being Timberwolf territory but the treasures contained in the industrial complex may just be enough to warrant the journey.

  • DXVK Reportedly Going Into "Maintenance Mode" Due To State Of Code-Base

    While DXVK tends to be much-loved by Linux gamers for allowing more Direct3D 10/11 Windows games to run nicely on Linux with Wine or Proton (Steam Play) thanks to its fairly complete translation of D3D10/D3D11 API calls to Vulkan, it looks like Philip Rebohle is at least contemplating shifting it just into maintenance-mode. The DXVK lead developer recently commented that DXVK is "entering maintenance mode" and he doesn't want to make any significant changes or additions to the code.

  • Shovel Knight: King of Cards and Shovel Knight Showdown are out, completing the series

    Starting off with a successful Kickstarter crowdfunding campaign back in 2013 and growing into a massive multi-part 8-bit inspired world, Shovel Knight: Treasure Trove now finally finished. Note: Keys provided by GOG.com to us. Originally having a goal of $75,000 and a Linux/macOS stretch goal at $130,000 it proved to be popular ending on $311,491. It's taken six years for Yacht Club Games to get here starting with Shovel of Hope, followed by Plague of Shadows in 2015, Specter of Torment in 2017, and now King of Cards and Shovel Knight Showdown in 2019.