Language Selection

English French German Italian Portuguese Spanish

Development

Programming: Sublime Text Editor, RcppArmadillo, Django, Python and C

Filed under
Development
  • Sublime Text Editor For Debian/Ubuntu/Linux Mint

    Programmers/Developers always love rich-feature text editor, they can be more productive using such application. Sublime Text Editor has been around since 2008 and widely used by many programmers. It is written using C++ and Python programming language, the best thing about this editor is that it's cross-platform and available for Linux, Mac and Windows.
    Sublime-Text editor natively support numerous amount of programming and markup languages, more functionality can be added using plugins, the plugins are mostly built by its community and maintained user free-software licenses.

  • RcppArmadillo 0.9.300.2.0

    A new RcppArmadillo release based on a new Armadillo upstream release arrived on CRAN and Debian today.

    Armadillo is a powerful and expressive C++ template library for linear algebra aiming towards a good balance between speed and ease of use with a syntax deliberately close to a Matlab. RcppArmadillo integrates this library with the R environment and language–and is widely used by (currently) 583 other packages on CRAN.

  • William Lachance: New ideas, old buildings

    Last week, Brendan Colloran announced Iodide, a new take on scientific collaboration and reporting that I’ve been really happy to contribute to over the past year-and-a-bit. I’ve been describing it to people I meet as kind of "glitch meets jupyter " but that doesn’t quite do it justice. I’d recommend reading Brendan’s blog post (and taking a look at our demonstration site) to get the full picture.

    One question that I’ve heard asked (including on Brendan’s post) is why we chose a rather conventional and old technology (Django) for the server backend. Certainly, Iodide has not been shy about building with relatively new or experimental technologies for other parts (e.g. Python on WebAssembly for the notebooks, React/Redux for the frontend). Why not complete the cycle by using a new-fangled JavaScript web server like, I don’t know, NestJS? And while we’re at it, what’s with iodide’s ridiculous REST API? Don’t you know GraphQL is the only legitimate way to expose your backend to the world in 2019?

    The great urban theorist of the twentieth century, Jane Jacobs has a quote I love:

  • Setup your Raspberry Pi Model B as Google Colab (Feb '19) to work with Tensorflow, Keras and OpenCV
  • Getting started with the updated VS Code Yeoman extension for Camel projects
  • Plot the Aroon Up and the Aroon Down lines with Python
  • Linux C Programming Tutorial Part 15 - 2's Complement and Negative numbers
  • Using multiprocessing - a simple introduction.

Programming: Qt, Python, Rust, C++, C and Git

Filed under
Development
  • Effective HMI interaction and safety attention monitoring using eye tracking technology: DeepGlance Quick

    Interacting effectively with increasingly widespread and advanced systems is one of the most important challenges of our time. Most modern HMIs are based on mouse, keyboard or touch screen and allow controlling even very complex devices in a simple and intuitive way. However, in certain contexts, the user may be unable to have direct contact with a device, in this case, we are talking about hands-free interactions and often voice commands are used to interact. But controlling a system by voice, however natural, is not effective for all types of operations and in all environments. In fact, every technology has its peculiarities, that’s why the HMI design and the UX are the subject of continuous research and aim to offer increasingly effective and natural interaction methods, also thanks to the combined use of more complementary technologies between them.

  • Seven ways to improve your team’s Python

    If you’re a manager, then you’re always trying to find ways that’ll help your team do more in less time. That’s why you use Python — because it makes your developers more productive. They can spend more time creating new features, and less time debugging or maintaining existing code. It’s no surprise that so many companies are moving to Python.

    After you’ve moved to Python, you can still make your team more effective. That is, your organization can become more productive, combining technology and culture to help your developers improve. In such a scenario, everyone wins: Your company becomes more efficient and effective, and your team members are more satisfied.

  • Rust All Hands 2019: Array iterators, Rayon, and more

    A few weeks ago, I had the pleasure of attending the second annual Rust All Hands meeting, hosted by Mozilla at their Berlin office. The attendees were a mix of volunteers and corporate employees covering the full range of Rust development, including the compiler, language, libraries, docs, tools, operations, and community. Although I’m sure there will be an official summary of the meeting (like last year’s), in this article, I’ll cover a few things I was directly involved in. First, I’ll look at a feature many developers have wanted for a long time…

  • GCC 9 libstdc++ Lands The C++17 Parallel Algorithms Implementation From Intel

    While the release of GCC 9 (v9.1) is just a few weeks ago, a late addition to this annual compiler collection update is its C++ standard library now having a C++17 parallel algorithms implementation thanks to Intel developers.

    Intel has been working on contributing their C++17 parallel algorithms library code to both GCC and also to the LLVM project. Intel has been working on this Parallel STL implementation the past few years with a focus on contributing the support to the libc++ and libstdc++ C++ standard libraries. The Parallel STL is a portable implementation of threaded/vectorized execution of standard C++ algorithms, which can equate to a performance win on today's multi-core systems.

  • Linux C Programming Tutorial Part 14 - Bitwise operators practical examples
  • Tutorial: Introduction to Git and Github

PHP and Python Programming Leftovers

Filed under
Development

Programming: Learning, Java Development Kit 12, and Python Bits

Filed under
Development
  • How to Be a Tech-Savvy

    Learn how to write a program:
    You cannot make anything new in the computer world without programming skills. You can create windows, apps, websites, a desktop application using programming languages. Some programming languages that you can learn in your beginning level of becoming tech-savvy is Java, C, C++, Html, CSS, JAVASCRIPT, PHP, PYTHON. You can enhance your programming skills by sitting home by taking online tutorials.

    Use a Linux or Unix Operating System:
    If you want to be a tech- savvy I recommend using Unix operating system because a techy person mostly uses the Unix operating system in the world. Unix operating system is open source anyone can use it, and you can view its code too. So, it will help in enhancing your programming skills and learning about technical skills.

  • JDK 12: The new features in Java 12

    The production release of Java Development Kit 12, based on Java SE (Standard Edition) 12, is now available. JDK 12 builds are available from Oracle for Linux, Windows, and MacOS. 

    [...]

    Open source builds are provided under the GNU General Public License v2, with Classpath Exception. Commercial builds of JDK 12 from Oracle can be found on the Oracle Technology network under a non-open source license.

  • Python dictionary "addition" and "subtraction"

    A proposal to add a new dictionary operator for Python has spawned a PEP and two large threads on the python-ideas mailing list. To a certain extent, it is starting to look a bit like the "PEP 572 mess"; there are plenty of opinions on whether the feature should be implemented and how it should be spelled, for example. As yet, there has been no formal decision made on how the new steering council will be handling PEP pronouncements, though a review of open PEPs is the council's "highest priority". This PEP will presumably be added into the process; it is likely too late to be included in Python 3.8 even if it were accepted soon, so there is plenty of time to figure it all out before 3.9 is released sometime in 2021.

  • Debugging and Profiling Python Scripts [Tutorial]

    Debugging and profiling play an important role in Python development. The debugger helps programmers to analyze the complete code. The debugger sets the breakpoints whereas the profilers run our code and give us the details of the execution time. The profilers will identify the bottlenecks in your programs. In this tutorial, we’ll learn about the pdb  Python debugger, cProfile module, and timeit module to time the execution of Python code.

    This tutorial is an excerpt from a book written by Ganesh Sanjiv Naik titled Mastering Python Scripting for System Administrators. This book will show you how to leverage Python for tasks ranging from text processing, network administration, building GUI, web-scraping as well as database administration including data analytics & reporting.

Programming: ISO C++ Standards Committee, Rust, Python and Programming Language Rankings

Filed under
Development
  • Trip Report: C++ Standards Meeting in Kona, February 2019

    A few weeks ago I attended a meeting of the ISO C++ Standards Committee (also known as WG21) in Kona, Hawaii. This was the first committee meeting in 2019; you can find my reports on 2018’s meetings here (November 2018, San Diego), here (June 2018, Rapperswil), and here (March 2018, Jacksonville). These reports, particularly the San Diego one, provide useful context for this post.

    This week marked the feature-complete deadline of C++20, so there was a heavy focus on figuring out whether certain large features that hadn’t yet merged into the working draft would make it in. Modules and Coroutines made it; Executors and Networking did not.

    Attendance at this meeting wasn’t quite at last meeting’s record-breaking level, but it was still quite substantial. We continued the experiment started at the last meeting of running Evolution Incubator (“EWGI”) and Library Evolution Incubator (“LEWGI”) subgroups to pre-filter / provide high-level directional guidance for proposals targeting the Evolution and Library Evolution groups (EWG and LEWG), respectively.

  • Comparing Machine Learning Methods

    When working with data and modeling, its sometimes hard to determine what model you should use for a particular modeling project. A quick way to find an algorithm that might work better than others is to run through an algorithm comparison loop to see how various models work against your data. In this post, I’ll be comparing machine learning methods using a few different sklearn algorithms.

  • Python Sets: Cheat Sheet
  • Unique sentinel values, identity checks, and when to use object() instead of None
  • The [IBM-sponsored] RedMonk Programming Language Rankings: January 2019
  • This Week in Rust 278
  • Speed: Default value vs checking for None
  • Book Review: Mission Python
  • How To Create A ‘Hello, World!’ Application With Django

    Django is a high-level full stack open source web framework written in Python, that encourages rapid development and clean, pragmatic design. Django comes with lots of advance functionalities baked in which saves developers a lot of time. The simplicity Django offers lets developers focus more on writing the app instead of rewriting the same wheel. Since it’s release in 2003 Django has proven to be the most productive framework for Python developers to know more about Django read: Django – Web Framework For Perfectionists

    In this article, we will create the traditional “Hello, World!” app, which will basically display the string ‘Hello, world!’ in the browser. This might be your first Django app so pay close attention to the core principles of Django which we will discuss later in the article.

  • Announcing Public Anaconda Package Download Data

    I’m very happy to announce that starting today, we will be publishing summarized download data for all conda packages served in the Anaconda Distribution, as well as the popular conda-forge and bioconda channels. The dataset starts January 1, 2017 (April 2017 for Anaconda Cloud channels) and will be updated roughly once a month. We hope these data will help the community understand how quickly new package versions are being adopted, which platforms are popular for users, and track the usage of different Python versions. For example, this dataset can be used to see how the Python 2 to 3 transition has been progressing for the past 2 years:

  • [Older] BPF: A Tour of Program Types

Programming: mmap. Python and More

Filed under
Development
  • Making the Most of your Memory with mmap

    Sometimes it seems that we have nearly infinite memory resources, especially compared to the tiny 48K RAM of yesteryear’s 8-bit computers. But today’s complex applications can soak up megabytes before you know it. While it would be great if developers planned their memory management for all applications, thinking through a memory management strategy is crucial for applications with especially RAM intensive features like image/video processing, massive databases, and machine learning.

    How do you plan a memory management strategy? It’s very dependent on your application and its requirements, but a good start is to work with your operating system instead of against it. That’s where memory mapping comes in. mmap can make your application’s performance better while also improving its memory profile by letting you leverage the same virtual memory paging machinery that the OS itself relies on. Smart use of the memory mapping API (Qt, UNIX, Windows) allows you to transparently handle massive data sets, automatically paging them out of memory as needed – and it’s much better than you’re likely to manage with a roll-your-own memory management scheme.

    Here’s a real-life use case of how we used mmap to optimize RAM use in QiTissue, a medical image application. This application loads, merges, manipulates, and displays highly detailed microscope images that are up to gigabytes in size. It needs to be efficient or risks running out of memory even on desktops loaded with RAM.

  • Moving Kolla images to Python 3

    Python… To use 2.7 or to go for 3.x? To “be compatible” or to “use fancy new features”. Next year Python 2 gets finally unsupported upstream.

  • PyCharm 2019.1 RC 2

    New in PyCharm 2019.1: completely redesigned Jupyter Notebooks, improved HTML & CSS quick documentation, custom themes, and more. Get the release candidate from our website

  • 13 Project Ideas for Intermediate Python Developers

    Learning the basics of Python is a wonderful experience. But the euphoria of just learning can be replaced by the hunger for hands-on projects. It’s normal to want to build projects, hence the need for project ideas.

    The problem though is that some projects are either too simple for an intermediate Python developer or too hard. This article will suggest projects you can work on as an intermediate Python developer. These project ideas will provide the appropriate level of challenge for you.

  • Speed: Default value vs checking for None
  • Announcing SLE 15 SP1 RC 1 and SES 6 Beta 11!
  • Coding in Python 19 - More fun with the OS Module
  • Coding in Python 20 - Subprocess
  • Coding in Python 21 - Handling Exceptions
  • Starting A Django Project
  • Microsoft buffs up its open-source halo to fine sheen with PostgreSQL GUI in Azure Data Studio [Ed: These are all proprietary software falsely marketed using "free bait" a.k.a. "open core" or 'open' plugins. It's also surveillance.]

LLVM 8.0.0 Released

Filed under
Development
BSD
  • LLVM 8.0.0 released

    I'm pleased to announce that LLVM 8 is now available.

    Get it here: https://llvm.org/releases/download.html#8.0.0

    This release contains the work on trunk up to Subversion revision
    r351319, plus work on the release branch. It's the result of the LLVM
    community's work over the past six months, including: speculative load
    hardening, concurrent compilation in the ORC JIT API, no longer
    experimental WebAssembly target, a Clang option to initialize
    automatic variables, improved pre-compiled header support in clang-cl,
    the /Zc:dllexportInlines- flag, RISC-V support in lld. And as usual,
    many bug fixes, optimization and diagnostics improvements, etc.

    For more details, see the release notes:
    https://llvm.org/releases/8.0.0/docs/ReleaseNotes.html
    https://llvm.org/releases/8.0.0/tools/clang/docs/ReleaseN...
    https://llvm.org/releases/8.0.0/tools/clang/tools/extra/d...
    https://llvm.org/releases/8.0.0/tools/lld/docs/ReleaseNot...
    https://llvm.org/releases/8.0.0/projects/libcxx/docs/Rele...

    Special thanks to the release testers and packagers: Amy Kwan, Bero
    Rosenkränzer, Brian Cain, Diana Picus, Dimitry Andric, Kim Gräsman,
    Lei Huang, Michał Górny, Sylvestre Ledru, Ulrich Weigand, Vedant
    Kumar, and Yvan Roux.

    For questions or comments about the release, please contact the
    community on the mailing lists. Onwards to LLVM 9!

    Thanks,
    Hans

  • LLVM 8.0.0 released

    Version 8.0.0 of the LLVM compiler suite is out. "It's the result of the LLVM community's work over the past six months, including: speculative load hardening, concurrent compilation in the ORC JIT API, no longer experimental WebAssembly target, a Clang option to initialize automatic variables, improved pre-compiled header support in clang-cl, the /Zc:dllexportInlines- flag, RISC-V support in lld." For details one can see separate release notes for LLVM, Clang, Extra Clang Tools, lld, and libc++.

  • LLVM 8.0 Released With Cascade Lake Support, Better Diagnostics, More OpenMP/OpenCL

    After being delayed the better part of one month, LLVM 8.0 officially set sail this morning.

Development on Devices: Aaeon, Nageru on GPUs, CircuitPython Hacking by Keith Packard, Coreboot and More

Filed under
Development
  • Latest UP board combines Whiskey Lake with AI Core X modules

    Aaeon has posted specs for a Linux-ready “UP Xtreme” SBC with a 15W, 8th Gen Whiskey Lake-U CPU, up to 16GB DDR4 and 128GB eMMC, 2x GbE, 6x USB, SATA, and optional AI Core X modules via M.2 and mini-PCIe.

    Aaeon’s community-backed UP project, which most recently brought us the Intel Apollo Lake based Up Squared and UP Core Plus SBCs, has announced an UP Xtreme hacker board built around Intel’s 8th Gen Whiskey Lake U-series Core processors. This is likely the fastest open-spec, community-backed SBC around, depending on your definition.

  • When your profiler fools you

    If you've been following my blog, you'll know about Nageru, my live video mixer, and Futatabi, my instant replay program with slow motion. Nageru and Futatabi both work on the principle that the GPU should be responsible for all the pixel pushing—it's just so much better suited than the CPU—but to do that, the GPU first needs to get at the data.

    Thus, in Nageru, pushing the data from the video card to the GPU is one of the main CPU drivers. (The CPU also runs the UI, does audio processing, runs an embedded copy of Chromium if needed—we don't have full GPU acceleration there yet—and not the least encodes the finished video with x264 if you don't want to use Quick Sync for that.) It's a simple task; take two pre-generated OpenGL textures (luma and chroma) with an associated PBO, take the frame that the video capture card has DMAed into system RAM, and copy it while splitting luma from chroma. It goes about as fast as memory bandwidth will allow.

    [...]

    Seemingly after a little more tuning of freelist sizes and such, it could sustain eight 1080p59.94 MJPEG inputs, or 480 frames per second if you wanted to—at around three cores again. Now the profile was starting to look pretty different, too, so there were more optimization opportunities, resulting in this pull request (helping ~15% of a core). Also, setting up the command buffers for the GPU copy seemingly takes ~10% of a core now, but I couldn't find a good way of improving it. Most of the time now is spent in the original memcpy to NVIDIA buffers, and I don't think I can do much better than that without getting the capture card to peer-to-peer DMA directly into the GPU buffers (which is a premium feature you'll need to buy Quadro cards for, it seems). In any case, my original six-camera case now is a walk in the park (leaving CPU for a high-quality x264 encode), which was the goal of the exercise to begin with.

    So, lesson learned: Sometimes, you need to look at the absolutes, because the relative times (which is what you usually want) can fool you.

  • Keith Packard: metro-snek

    When I first mentioned Snek a few months ago, Phillip Torrone from Adafruit pointed me at their Metro M0 board, which uses an Arduino-compatible layout but replaces the ATMega 328P with a SAMD21G18A. This chip is an ARM Cortex M0 part with 256kB of flash and 32kB of RAM. Such space!

    Even though there is already a usable MicroPython port for this board, called CircuitPython, I figured it would be fun to get Snek running as well. The CircuitPython build nearly fills the chip, so the Circuit Python boards all include an off-chip flash part for storing applications. With Snek, there will be plenty of space inside the chip itself for source code, so one could build a cheaper/smaller version without the extra part.

  • Intel Working On Some Interesting Coreboot Improvements: Multi-CPU Support, SMM

    Last week during Facebook's Open Compute Project (OCP) Summit, some interesting details were revealed by Intel and their work on this open-source hardware initialization effort alternative to proprietary BIOS/firmware.

    One is that Intel is working on multi-CPU support within Coreboot for multi-socket server platforms. The code for this has yet to be published.

  • gym-gazebo2 toolkit uses ROS 2 and Gazebo for reinforcement learning

    The first gym-gazebo was a successful proof of concept, which is being used by multiple research laboratories and many users of the robotics community. Given its positive impact, specially regarding usability, researchers at Acutronic Robotics have now freshly launched gym-gazebo2.

Python Programming Leftovers

Filed under
Development

Qt 5.13.0 Beta1 released

Filed under
Development
KDE

I am happy to announce that Qt 5.13.0 Beta1 is released today. As earlier we release updates as Beta N regularly until we are ready for RC. Current estimation for RC is 7th May 2019, see the schedule from 5.13 wiki.

Beta1 (and later releases) can be installed by using online installer as usual. Commercial users can found online installer from their Qt Account and Opensource users from download.qt.io. We are not planning to blog next Beta releases or RC so please follow mailing lists to get the notification when new ones are available. And of course you can use maintenance tool’s update option to check if there is update already available.

Read more

Also: Qt 5.13 Beta Released

Syndicate content

More in Tux Machines

Events: SREcon19 Americas, Scale, FudCon and Snapcraft Summit Montreal

  • SREcon19 Americas Talk Resources
    At SREcon19 Americas, I gave a talk called "Operating within Normal Parameters: Monitoring Kubernetes". Here's some links and resources related to my talk, for your reference.
  • Participating at #Scale17x
    Everytime somebody asks me about Scale I can only think of the same: Scale is the most important community lead conference in North America and it only gets better by the years. This year it celebrated its seventeenth edition and it just struck me: with me being there this year, there have been more Scales I have attended than I have not. This is my nineth conference out of 17. The first time that I attended it was 2011, it was the edition followed by FudCon Tempe 2010 which happened to be my first Fedora conference and it was also the first time I got to meet some contributors that I had previously collaborated with, many of which I still consider my brothers. As for this time, I almost didn’t make it as my visa renewal was resolved on Friday’s noon, one day after the conference started. I recovered it that same day and book a flight in the night. I couldn’t find anything to LAX -as I regularly fly- so I had to fly to Tijuana and from there I borrowed a cart to Pasadena. Long story short: I arrived around 1:30 AM on Saturday.
  • Snapcraft Summit Montreal
    Snapcraft is the universal app store for Linux that reaches millions of users and devices and serves millions of app installs a month. The Snapcraft Summit is a forward-thinking software workshop attended by major software vendors, community contributors and Snapcraft engineers working at every level of the stack.

today's howtos

Draw On Your Screen with this Neat GNOME Shell Extension

Ever wish you could draw on the Linux desktop or write on the screen? Well, there’s a new GNOME Shell extension that lets you do exactly that: draw on the Linux desktop. You may want to point out a bug, highlight a feature, or provide some guidance to someone else by sending them an annotated screenshot. In this short post we’ll show you how to install the add-on and how to use it. Read more

Fedora 31 Preparing To Start Removing Packages Depending Upon Python 2

Python 2 support will formally reach end-of-life on 1 January 2020 and Fedora 31 is preparing for that by working to drop packages (or parts of packages) that depend upon Python 2. Fedora has been pushing for a Python 2 to Python 3 migration for many cycles now -- as most Linux distributions have -- while with Fedora 31 they are planning a "mass Python 2 package removal" if necessary. They are planning to closely track the state of packages depending upon Python 2 to either drop the packages or allow packagers to easily abandon Python 2 parts of programs. Read more