Language Selection

English French German Italian Portuguese Spanish


Qt Creator 4.13 Beta2 released

Filed under

We are happy to announce the release of Qt Creator 4.13 Beta2 !

For an overview of the improvements in Qt Creator 4.13, please head over to the first Beta blog post.

Read more

What does it mean for code to "work"?

Filed under

Extreme Programming co-founder Ron Jeffries famously wrote: "The trick is never to let the code not be working."

Jeffries' quote points at the fact that software engineering is a very sophisticated activity with plenty of uncertainty. Software engineering also deals with issues of incompleteness—at the outset, you never seem to have all information you need to formulate an optimal approach. There always comes a time, later in the project, when you learn something that shows that several things in your initial understanding were incorrect. In addition, even when you amass sufficient useful information to orient yourself properly, that information tends to contain ambiguity—communication is seldom, if ever, clear. Ambiguity seems to prevail in both verbal and written communication.

Because of these constraints, the only safe way to proceed when developing software is to rely on the working code. The running, working code is the final oracle. It will tell you if you're doing the right thing and going in the right direction.


TDD is based on the idea that the way the code behaves should be independent from the way the code is structured. You are aiming at a desired behavior. While you're writing code, the desired behavior is not there (that's why it is called "desired"). You implement the desired behavior by first writing a test that describes it. Then you run that test, and it fails because the expected behavior is not implemented yet. The failure prompts you to fix it, which forces you to run the code again. If the changes you make to the code satisfy the expectations described in the test, you conclude that the code works according to your expectations.

Read more

Python Programming

Filed under

5 open source IDE tools for Java

Filed under

Java frameworks make life easier for programmers by streamlining their work. These frameworks were designed and developed to run any application on any server environment; that includes dynamic behaviors in terms of parsing annotations, scanning descriptors, loading configurations, and launching the actual services on a Java virtual machine (JVM). Controlling this much scope requires more code, making it difficult to minimize memory footprint or speed up startup times for new applications. Regardless, Java consistently ranks in the top three of programming languages in use today with a community of seven to ten million developers in the TIOBE Index.

With all that code written in Java, that means there are some great options for integrated development environments (IDE) to give developers all the tools needed to effectively write, lint, test, and run Java applications.

Below, I introduce—in alphabetical order—my five favorite open source IDE tools to write Java and how to configure their basics.

Read more

Open Hardware/Modding and Arduino

Filed under

  • Top 5 Advanced Robotics Kits

    Machine Learning and AI is one crucial factor for more advanced robotics. To make a robot move around in an unpredictable environment will require many functions. Just making the robot locate its own appendages is a challenge in itself. To handle this, you will need many libraries that can describe and control everything. You do not want to create this system all on your own, and it is much more complex than it seems at first glance. A seemingly trivial task, like gripping an object, requires an entire library of code, and that is after the robot has already found the object through another set of complex coding.

  • This ‘crazy’ spectrum analyzer visualizes tunes with four Arduinos and 504 LEDs

    Spectrum analyzers are a great way to visualize music, and “TUENHIDIY” came up with an interesting take on this device using not one, but four Arduino Unos.

    Each board receives the same sound input via a 3.5mm audio jack, and separately processes it to break out the left and right channels, as well as upper and lower frequency ranges using fast Fourier transforms, or FFTs.

  • Edge Impulse Enables Machine Learning on Cortex-M Embedded Devices

    The company collaborated with Arduino and announced support for the Arduino Nano 33 BLE Sense and other 32-bit Arduino boards last May. The solution supports motion sensing, computer vision, and audio recognition to detect glass breaking, hydraulic shocks, manufacturing defects, and so on.

Programming: C, Perl and Python

Filed under

  • How to use mmap function in C language?

    The mmap() function is used for mapping between a process address space and either files or devices. When a file is mapped to a process address space, the file can be accessed like an array in the program. This is one of the most efficient ways to access data in the file and provides a seamless coding interface that is natural for a data structure that can be assessed without he abstraction of reading and writing from files. In this article, we are going to discuss how to use the mmap() function in Linux. So, let’s get started.

  • The [Perl] Weekly Challenge #070

    Before I talk about my contribution this week, I would like to talk about my encounter with Swift programming language recently. For the first time, I felt confident that I can share my Swift solution to the Character Swapping task of the Perl Weekly Challenge - 070. Why Task #1 only? Well, you guessed it correctly because it is meant for the beginners. With the submission of my first contribution in Guest Language, I now find myself in the Guest List as you must have seen in RECAPS every week. In the next edition of RECAPS, you would see my name in the list with other prominent guests. Ever since I started the Guest List, I always wanted to be a part of it but never had the courage to try new language other than Perl and Raku. While I am talking about Guest List, I would like to mention the first guest who started the trend was Orestis Zekai with the Python contributions in the Week #018.

  • Perl Weekly Challenge 70: Character Swapping and Gray Code Sequence

    These are some answers to the Week 70 of the Perl Weekly Challenge organized by Mohammad S. Anwar.

  • Next stable DBD::SQLite will be released at the end of August

    DBD::SQLite 1.65_03 (with SQLite 3.32.3) is a release candidate for the next stable DBD::SQLite. There are no big changes, maybe except for the ncrease of the default upper bound on the number of parameters from 999 to 32766 (since SQLite 3.32).

  • Simple infinite scroll in Django

    If you’ve used Twitter, Instagram, or Facebook, you would have used something called “infinite scroll”, sometimes also called “infinite loading” or “endless pagination”.

    Basically, it means that once you scroll down near the bottom of a list of items, the page fetches new items automatically and adds them to the page. That makes it a smoother experience compared to traditional pagination in some cases.

    You may have wondered how to do that in Django. I’m going to show you a very simple way to do this using no JavaScript libraries.

    Note: The solution here is inefficient for lists with a large number of items (e.g. thousands of items). Efficient infinite scroll uses windowing, and removes items not in view from the DOM. However, if you are only dealing with a few hundred items, this is a very simple way to achieve this, with no dependencies.

  • PSF GSoC students blogs: GSoC: Week 9: ConfigParser()
  • PSF GSoC students blogs: Weekly Check-in #9
  • PSF GSoC students blogs: Weekly Check-in #9
  • PSF GSoC students blogs: [Week 8] Check-in
  • AHundred Days of Code, Day 018 - Python Comprehensions, Done!

    Continuing my comprehensions journey.

  • Python 3.6.9 : My colab tutorials - parts 006 - 007.

GNU GCC: Project Ranger Status

Filed under
  • Project Ranger Status
    We originally intended to start pushing ranger code into trunk shortly 
    after the start of stage 1, but of course.. delays, delays :-)
    So here is the latest status/changes since last fall and our proposed 
    time-line going forward.  I'll do the executive summary here, and more 
    details at each submission stage.
    1) multi-range support - Imminent
    We have moved the representation of our multi-range class  from wide-int 
    to trees, and merged it with the value_range class .  There is now a 
    base class which "recognizes" a 1 sub-range case as a special legacy 
    mode which supports ANTI_RANGE and incorporates the original value_range 
    code.  Multi-range is fully interoperable/compatible with value_range 
    code now and all existing code which uses value_range still operates 
    exactly the same as it did.. its just slightly different under the covers.
    range-ops has been returned to working in multi-range mode again now 
    that its compatible with value_range. Any consumer working with ranges 
    can switch to multi-range by switching to the multi-range API.
    This code is currently going through a complete fedora build, and 
    assuming that passes, Aldy will be submitting it for trunk along with 
    various details and performance results in the coming week or so.
    2)  Ranger - Mid August
    The on-demand ranger has been substantially simplified, with well 
    defined components contained in just a few source files.    It is queued 
    up for trunk submission after the multi-range code goes in..
    Initially, we plan to enable it for a few client passes which we will 
    describe at submission time (mostly the same passes as last years 
    presentation discussed) , along with a VRP pass which will run 
    immediately before EVRP called RVRP.  It uses the same dom-walking 
    infrastructure that EVRP uses, but it still has a lack of relational 
    processing (to be addressed next)
    At submission time I'll provide the details, as well as performance and 
    shortcomings once it has also passed thru a fedora build cycle. This 
    will also include the test suite adjustment strategy.
    3) Equivalency/Relational Processing - Mid September(?)
      Finally, the relation code will come, probably in mid September. The 
    proof of concept oracle prototype looked good, so I'm re-working parts 
    of it for performance in production code.
    Once the relation code is in place, we will work on whatever remaining 
    differences there are between EVRP and the new RVRP pass.
       - with RVRP running immediately before EVRP, we can identify anything 
    EVRP finds of significance that is missed.
       - We can also run RVRP immediately after EVRP  and identify things 
    RVRP gets which EVRP does not.
    We know we get immediate benefit from multiple passes when they are 
    switched to ranger, and we'd like to get that enabled ASAP  allowing the 
    code to be rigorously exercised during the rest of stage 1.
    The RVRP pass will be a work in progress, and it is 100% self contained 
    in one file, simply operating as a ranger client just like the other 
    passes.   If we reach the end of stage 1, and for whatever unforeseen 
    reason RVRP is not performing satisfactorily enough to replace EVRP, we 
    simply turn it off.  If it is operating well enough, then we turn of 
    EVRP.  We can decide towards the end fo the stage.
    Thats a quick synopsis of the current ranger work. Over the next 2 
    months we hope to get all of the components into trunk and available for 
    general use.
    Andrew & Aldy
  • GCC's New Ranger Infrastructure Aims To Be In Good Shape For GCC 11

    Making waves just over a year ago in the GNU Compiler Collection community was the "Ranger" project for on-demand range generator that's been worked on for several years at Red Hat. While their goals for GCC 10 didn't pan out, it's looking like in the next few months more of the Ranger infrastructure will land and thus putting it in the window for GCC 11.

    Ranger allows for querying range information on-demand for SSA names/variables from within anywhere in the IL with minimal overhead, among other benefits to the compiler internals.

Python Programming

Filed under
  • Over-Solving or Solving Problems You Don't Have

    Sometimes we call them "Belt and Braces" solutions. As a former suspenders person who switched to belts, the idea of wearing both is a little like over-engineering. In the unlikely event of catastrophic failure of one system, your pants can still remain properly hoist. There's a weird, but defensible reason for that. Most over-engineering lacks a coherent reason.

    Sometimes we call them "Bells and Whistles." The solution has both bells and whistles for signaling. This is usually used in a derogatory sense of useless noisemakers, there for show only. Again, there's a really low-value and dumb, but defensible reason for this.

    While colorful, none of this is helpful for describing over-engineered software. Over-engineered software is often over-engineered for incoherent and indefensible reasons.

    Over-engineering generally means trying to solve a problem that no user actually has. This leads to throwing around irrelevant features.

  • Talk Python to Me: #274 Profiling data science code with FIL

    Do you write data science code? Do you struggle loading large amounts of data or wonder what parts of your code use the maximum amount of memory? Maybe you just want to require smaller compute resources (servers, RAM, and so on).

  • Niels Thykier: Support for Debian packaging files in IDEA (IntelliJ/PyCharm)

    I have been using the community editions of IntelliJ and PyCharm for a while now for Python or Perl projects. But it started to annoy me that for Debian packaging bits it would “revert” into a fancy version of notepad. Being fed up with it, I set down and spent the last week studying how to write a plugin to “fix” this.

    After a few prototypes, I have now released IDEA-debpkg v0.0.3 (Link to JetBrain’s official plugin listing with screenshots). It provides a set of basic features for debian/control like syntax highlighting, various degree of content validation, folding of long fields, code completion and “CTRL + hover” documentation. For debian/changelog, it is mostly just syntax highlighting with a bit of fancy linking for now. I have not done anything for debian/rules as I noted there is a Makefile plugin, which will have to do for now.

  • Introduction to Selenium in Python 3

    Selenium is a framework used for testing web applications. Selenium automates a browser, such as Chrome or Firefox, to run tests on your desired website. Selenium is also a very powerful web scraping tool. Selenium supports JavaScript and all the modern browser features. This tool is very effective at extracting information from websites.

    This article will show you how to set up Selenium on your Linux distribution (i.e., Ubuntu), as well as how to perform basic web automation and web scrapping with the Selenium Python 3 library.

  • A Hundred Days of Code, Day 017 - Python, Advanced Objects, Done!
  • PSF GSoC students blogs: Week 5 Check-in

digiKam 7 Brings Deep-Learning Powered Faces Detection

Filed under

digiKam photo management software just announceed the release of its latest version 7.0.
Read more

Programming Leftovers (Mostly Python)

Filed under
  • Release candidate: Godot 3.2.3 RC 1

    Godot 3.2.2 was released on June 26 with over 3 months' worth of development, including many bugfixes and a handful of features. Some regressions were noticed after the release though, so we decided that Godot 3.2.3 would focus mainly on fixing those new bugs to ensure that all Godot users can have the most stable experience possible.

    Here's a Release Candidate for the upcoming Godot 3.2.3 release. Please help us test it to ensure that no new regressions have slipped through code review and testing.

  • Postman – Make APIs development faster & easier

    If you are developing an API, you must know about Postman. Postman is a very useful tool for testing APIs along with your team of developers. The software makes it easier to run all the necessary tests before publishing the APIs.

  • An Open-source Self-hosted Headless System for Professionals and Novices

    Directus is an enterprise-grade headless system that warps SQL database into production-ready API. It comes backed with a features-rich application, powerful API and SDK support and multiple SQL database engines support.


    Directus is released as an open-source project under the GPLv3 license.

  • Dirk Eddelbuettel: anytime 0.3.8: Minor Maintenance

    A new minor release of the anytime package arrived on CRAN overnight. This is the nineteenth release, and it comes just over six months after the previous release giving further indicating that we appear to have reached a nice level of stability.

    anytime is a very focused package aiming to do just one thing really well: to convert anything in integer, numeric, character, factor, ordered, … format to either POSIXct or Date objects – and to do so without requiring a format string. See the anytime page, or the GitHub for a few examples.

  • Which programming languages are useful for sysadmins?

    Life as a systems engineer is a process of continuous improvement. In the past few years, as software-defined-everything has started to overhaul how we work in the same way virtualization did, knowing how to write and debug software has been a critical skill for systems engineers. Whether you are automating a small, repetitive, manual task, writing daily reporting tools, or debugging a production outage, it is vital to choose the right tool for the job. Below, are a few programming languages that I think all systems engineers will find useful, and also some guidance for picking your next language to learn.

  • Python Software Foundation Fellow Members for Q2 2020

    Let's give a round of applause to our newest PSF Fellow Members for Q2 2020!

  • The Hardest Logic Puzzle Ever (In Python)

    The Labyrinth is a children’s movie. The main character is 16 years old, and solving a logic puzzle that will literally decide if she lives or dies. In fiction, characters are faced with realistic challenges: ones they can solve, even if they have to make an effort.

    So, it makes sense that the designer of the eponymous labyrinth did not consult logicians Richard Smullyan, George Boolos (no relation to the inventor of boolean algebra), and John McCarthy (yes, the same person who invented Lisp and suggested that a “2-month, 10-(person) study” would make significant headway in the study of Artificial Intelligence). Those three would suggest that the designer use The Hardest Logic Puzzle Ever.

    There are persistent rumors of the movie getting a reboot, or perhaps a sequel. Like any good sequel, the protagonists should face newer and bigger challenges. In the interests of helping the screen writers for the sequel/reboot, here is my explanation of the “Hardest Logic Puzzle Ever”, together with clear code.

  • A Hundred Days of Code, Day 016 - Python, Advanced Objects.
  • Ian Ozsvald: “Making Pandas Fly” at EuroPython 2020

    I’ve had a chance to return to talking about High Performance Python at EuroPython 2020 after my first tutorial on this topic back in 2011 in Florence.

  • Instagram OSINT with python tools

    Information gathering is crucial to the hacking process. Due to the passion of open source hackers, there are many information gathering tools, easy to setup and use. Progressing in my journey as a beginner hacker, I decided to share some useful tools in Instagram OSINT.

Syndicate content

More in Tux Machines

libinput 1.16.0

libinput 1.16.0 is now available.

No significant changes since the second RC, so here's slightly polished RC1
announcement text.

This has been a long cycle, mostly because there weren't any huge changes on
the main development branch and a lot of the minor annoyances have found
their way into the 1.15.x releases anyway.

libinput now monitors timestamps of the events vs the current time when
libinput_dispatch() is called by the compositor. Where the difference
*may* result in issues, a (rate-limited) warning is printed to the log.
So you may see messages popping up in the form of
  "event processing lagging behind by XYZms, your system is too slow"
This is a warning only and has no immediate effect. Previously we would only
notice (and warn about) this when it affected an internal timer. Note that
these warnings do not show an issue with libinput, it shows that the the
compositor is not calling libinput_dispatch() quick enough.

The wheel tilt axis source was deprecated. No device ever had the required
udev properties set so we should stop pretending we support this.

Touchpads now support the "flat" acceleration profile. The default remains
unchanged and this needs to be selected in the configuration interface. The
"flat" profile applies a constant factor to movement deltas (1.0 for the
default speed setting).

Events from lid or tablet-mode switches that are known to libinput as being
unreliable are now filtered and no longer passed to the caller.
This prevents callers from receiving those known-bogus events and having to
replicate the same heuristics to identify unreliable devices that libinput
employs internally.

A new "libinput analyze" debugging tool is the entry tool for analysing
various aspects of devices. Right now the only tool is
"libinput analyze per-slot-delta" which can be used to detect pointer jumps
in a libiput record output. This tool used to live elsewhere, it was moved
to libinput so that reporters can easier run this tool, reducing the load on
the maintainers.

The tools have seen a few minor improvements, e.g.
- "libinput record touchpad.yml" does the right thing, no explicit --output
  argument required
- libinput measure touchpad-pressure has been revamped to be a bit more
- libinput measure touchpad-size has been added (as replacement for the
  touchpad-edge-detector tool)
- libinput measure fuzz has been fixed to work (again and) slightly more

The libinput test suite has been fixed to avoid interference with the
currently running session. Previously it was virtually impossible to work
while the test suite is running - multiple windows would pop up, the screen
would blank regularly, etc.

And of course a collection of fixes, quirks and new bugs.

As usual, see the git shortlog for details.

Diego Abad A (1):
      FIX: typo on building documentation

Peter Hutterer (2):
      test: semi-fix the switch_suspend_with_touchpad test
      libinput 1.16.0

git tag: 1.16.0
Read more Also: >Libinput 1.16 Released - Ready To Warn You If Your System Is Too Slow

18 Frameworks, Libraries, and Projects for Building Medical Applications

Open-source is not just a license or a code-based that left free on an online repository, It's a complete concept which comes with several advantages. Moreover, the most advantage you can get from Open-source is beyond the open-code it's FREEDOM; freedom to use or re-shape it as you see fit within your project commercial or otherwise, and that depends on the license of course. You are free from the headache of license conflict legal problems but also from the dilemma of dealing with restrections and limitations which come with property licenses. You are free from the system lock-in schemes, furthermore, you own your data, and freedom to customize the software as your structure requires and workflow demands. The Community: The Open-source project gains a powerful community as they gain users, the community users vary between advanced users, end-users, developers and end-users on decision-making level. Many of the community users are providing quality inputs from their usage and customized use-case and workflow or test-runs, Furthermore, they always have something to add as new features, UI modification, different usability setup, and overall introducing new workflows and tools, and That's what makes the progress of the open-source different than non-free solutions. While, Good community means good support, The community is a good resource to hire advanced users, developers, and system experts. It also provides alternative options when hiring developers. Unlike non-free software which are not blessed with such communities and where the options there are limited, The rich open-source community provides rich questions and answers sets that contributed by users from all around the world. Higher education value for the in-house team The open-source concept itself provides educational value, I owe most of what I know to open-source communities.The access to the source code and open-channels communication with the core developers is the best educational value any developer can get. Read more

Android Leftovers

Python Programming