Language Selection

English French German Italian Portuguese Spanish


Python Programming

Filed under
  • Zero-with-Dot (Oleg Żero): Polynomial Regression - which python package to use?

    Polynomial regression is one of the most fundamental concepts used in data analysis and prediction. Not only can any (infinitely differentiable) function be expressed as a polynomial through Taylor series at least within a certain interval, it is also one of the first problems that a beginner in machine-learning is confronted with. It is used across various disciplines such as financial analysis, signal processing, medical statistics, and more.

  • Emacs Configuration for Python/JavaScript, Terraform and blogging

    I have been an Emacs user for a long time. There is no specific reason why I started using Emacs: it was available in the RedHat 6.0 distribution that I found in a magazine in 1999, and with which I started my journey in the open source world. It was mentioned in some Linux guide I read at the time, so it became my editor.

    I'm not into flame wars, in particular about editors. If I don't like a software/operating system/language/whatever, I just don't use it, and at the same time I'm not scared to test alternatives, even though I'm not actively looking to replace tools that work. Admittedly, at the time I didn't properly configure my Emacs for years, in particular because the C language support was very good out of the box, and that was what I needed, so when I started programming in Python not everything was optimal.

    One day a new colleague showed me Sublime Text and PyCharm. I don't like IDEs that much, they are too integrated, so the PyCharm wasn't very attractive, but Sublime Text is a very good editor, it's fast and has a lot of features (multiple cursors blew my mind when I first discovered them) and so it became my editor of choice for some years. In time, however I started growing increasingly dissatisfied with it, and with some alternatives that I tested like Atom. The main reason is that modern editor rely too much on the mouse: many people are happy with this, in particular because they use trackpads, but I honestly can't get use to them, and I simply don't want to take my hands off the keyboards while I code because I want to change tab, reorganise the screen, open a file, and so on.

  • A Hundred Days of Code, Day 011 - Python, Advanced Data Structures
  • PSF GSoC students blogs: Week 4 Blog Post
  • Weekly Python StackOverflow Report: (ccxxxvi) stackoverflow python report

Mozilla's Rust in WebGPU and Linux

Filed under
  • Dzmitry Malyshau: wgpu API tracing infrastructure

    wgpu is a native WebGPU implementation in Rust, developed by gfx-rs community with help of Mozilla.


    First, it was Warden test framework in gfx-rs. It defined serializable types for all of gfx-rs commands, and also allowed describing different scenes, test-cases, and expectations. All the data was hand-written in RON format, which by the time was quite young, and not used anywhere seriously. The ability to test gfx-rs without code was very exciting to us, and in general it worked out OK. In the end, we haven’t written too many tests, mostly because we aggressively tested with Vulkan CTS (over gfx-portability) instead, which was enormous. The separation of scenes and workloads also ended up with a few gotchas and a less-than-elegant implementation. It was also a bit awkward to write the implicit synchronization code in Warden for grabbing back the results, or re-initializing the state between tests.


    First problem was the incoming flow of bugs reported by users of wgpu-rs, users of Python API, users of Gecko, on different platforms, with closed source code, and so on. Reproducing these issues and debugging them was quite challenging. We figured that wgpu was the place where all the roads met, and we needed to serialize everything that reaches that intersection, to be replayed independently, on a different machine. We defined a serialization format that we’d save all the incoming commands into at device timeline. We introduced a standalone “player” tool to replay the traces, which once again were stored as RON files.

    With this in, all we needed from a bug reporter was a zipped API trace attached to an issue, and a git revision of the code they used. WebGPU is truly a portable GPU API, so the captures are easy to replay on a different machine. This is very unlike low-level traces, such as Vulkan traces, or Metal GPU captures - replaying them mostly did not work (your hardware has different limits, different memory types, features, etc). And there was nothing to do if it failed, unlike with our API traces, where you could just look at RON itself and nudge it to work. All in all, working with bugs became joyful, but we didn’t stop there.

  • Will 2020 Be The Year Of Rust In The Linux Kernel?'

    An intriguing exchange happened on the Linux Kernel Mailing List after a post by Nick Desaulniers, a Google software engineer working on compiling the Linux Kernel with Clang (and LLVM).

  • 'Will 2020 Be The 12 months Of Rust In The Linux Kernel?'

Programming: Perl and Python

Filed under
  • Perl Mentoring

    In the Perl Programmers Facebook group we have kicked off a Perl Mentoring program. Already more than a dozen experienced Perl people have offered their services to anyone looking to learn more about Perl. It's very convenient that mechanics of volunteering and looking for a mentor are handled by Facebook's mentoring functions. Here's a few thoughts on how to build on that.

  • Perl Weekly Challenge 69: Strobogrammatic Numbers and 0/1 Strings
  • Seafoam 2.4.5 Released

    It’s time for a new update to Seafoam, the website theme currently in use here (on my Blog) and by my wider site.

    In reviewing my blog, I realized it’s been many versions and a couple of years since I did a post about a Seafoam release. In the background, I’ve continued to make small improvements. I also use the project for private, personal projects, so some of the improvements are centered on those. What drove this particular release was that something has happened that broke my fonts. Previously, they were hosted directly on Google Fonts, but they seem to have stopped loading, so with this release they are “internal” to the theme.

    As well, minchin.releaser has made putting out a release very simple, to the point where a blog post about the release in question can be the hardest part of the whole process (and so they often just never happen…). You’ll notice in the changelog below it’s not uncommon to see multiple releases the same day.

  • Why tests fail only during pre-commit ?

    Recently I ran across (what I thought was) a strange behaviour.

    I use pre-commit for all my git commits, and one of the step is to ensure that all the unit tests pass.

    I also have a make target to run just the unit tests.

  • Python Bytes Episode #190: You will now be notified if the Python zipper is broken
  • Talk Python to Me Episode #273: CoCalc: A fully colloborative notebook development environment

    Everyone in the Python space is familiar with Notebooks these days. One of the original notebook environments was SageMath. Created by William Stein, and collaborators, it began as an open-source, Python-based, computational environment focused on mathematicians.

    It has since grown into a full-blown company and has become a proper collaborative environment for things like Jupyter notebooks, Linux-backed Bash shells, and much more. Think Google Docs but across all these facets of development in your browser.

    We welcome back William Stein to give us an update on his journey from professor to entrepreneur building CoCalc along the way.

  • PSF GSoC students blogs: Weekly Check-in #7

Git v2.28.0-rc1

Filed under
A release candidate Git v2.28.0-rc1 is now available for testing
at the usual places.  It is comprised of 295 non-merge commits
since v2.27.0, contributed by 43 people, 10 of which are new faces.

The tarballs are found at:

The following public repositories all have a copy of the
'v2.28.0-rc1' tag and the 'master' branch that the tag points at:

  url =
  url = git://
  url =

New contributors whose contributions weren't in v2.27.0 are as follows.
Welcome to the Git development community!

  Andrew Ng, Chris Torek, Don Goodman-Wilson, Jiuyang Xie, Luc
  Van Oostenryck, Marco Trevisan (Treviño), Miroslav Koškár,
  Rafael Aquini, Srinidhi Kaushik, and Trygve Aaberge.

Returning contributors who helped this release are as follows.
Thanks for your continued support.

  Abhishek Kumar, Ben Keene, brian m. carlson, Carlo Marcelo Arenas
  Belón, Christian Couder, Denton Liu, Derrick Stolee, Đoàn
  Trần Công Danh, Elijah Newren, Emily Shaffer, Eric Sunshine,
  Han-Wen Nienhuys, Jacob Keller, Jeff King, Johannes Schindelin,
  John Lin, Jonathan Nieder, Jonathan Tan, Josh Steadmon, Junio C
  Hamano, Laurent Arnoud, Martin Ågren, Matheus Tavares, Paolo
  Bonzini, Patrick Steinhardt, Ramsay Jones, Randall S. Becker,
  René Scharfe, Shourya Shukla, SZEDER Gábor, Taylor Blau,
  Ville Skyttä, and Xin Li.

Read more

Also: Git 2.28-rc1 Released - Continues The Transition Towards SHA256 Plus Moving Off "Master"

Python Programming

Filed under
  • A Hundred Days of Code, Day 010 - Python Functions, Basics Done!
  • Episode 18: Ten Years of Flask: Conversation With Creator Armin Ronacher

    This week on the show we have Armin Ronacher to talk about the first 10 years of Flask. Armin talks about the origins of Flask and the components that make up the framework. He talks about what goes into documenting a framework or API. He also talks about the community working on the ongoing development of Flask.

    He also shares his thoughts about Python, and how it contrasts with Rust and TypeScript. Armin talks about what he would do differently if he were to start development of a project like Flask now.

  • Python String Constants

    A constant is used to define a fixed value in a variable that cannot be modified anywhere in the code following declaration. The Python string module contains some built-in string constants that can be used for various purposes. You can also define a custom string constant in Python. Custom string constant declaration is different in Python than in other standard programming languages, such as c++, Java, etc. This article covers some uses of built-in string constants of the Python string module.

  • Polymorphism in Python

    Polymorphism means “many forms.” Polymorphism an important feature of Object-Oriented Programming (OOP). When the same method is declared multiple times, for multiple purposes, and in different classes, then it is called polymorphism. Another feature of OOP is inheritance, through which the child class can be created by inheriting the features of the parent class. Sometimes, it requires the programmer to declare a method of the same name in both the parent and child classes for various purposes. This type of task can also be implemented by using polymorphism. This article explains how polymorphism can be defined in object-oriented programming (OOP).

Programming Leftovers

Filed under
  • Migrating Spring Boot tests to Quarkus

    As developers, we don’t always consider test migration when we think about adopting a new framework. Tests are important, however, because they ensure that our code meets its requirements and works as desired, especially when we add new features and functionality.

    Test migration is an essential part of migrating to a new application development framework. This article is for developers who are migrating a Spring Boot application to Quarkus. I will use three sample tests to demonstrate a test migration from Spring Boot to Quarkus. While Quarkus is compatible with Spring Boot Web, not all of Spring Boot’s test functionalities map to Quarkus. I will introduce you to other test dependencies and Quarkus capabilities that you can use in these cases.

  • Flask Dashboard - AdminLTE

    This article presents a freebie dashboard coded in Flask, on top of iconic AdminLTE, a well-known design actively supported by 150+ contributors and 35k Github stars.


    Flask is a lightweight WSGI web application framework. It is designed to make getting started quick and easy, with the ability to scale up to complex applications. Classified as a microframework, Flask is written in Python and it does not require particular tools or libraries. It has no database abstraction layer, form validation, or any other components where pre-existing third-party libraries provide common functions.

  • Test and Code: Better Resumes for Software Engineers - Randall Kanna

    A great resume is key to landing a great software job.
    There's no surprise there.
    But so many people make mistakes on their resume that can very easily be fixed.

    Randall Kanna is on the show today to help us understand how to improve our resumes, and in turn, help us have better careers.

  • ReportLab 101: Intro to the Canvas (Video)

    In this video, you will get an introduction to ReportLab’s Canvas object. You use ReportLab to create PDFs using Python and this tutorial will show you one way to accomplish that

  • A Hundred Days of Code, Day 009 - Python Functions, Basics
  • PyCharm 2020.2 EAP#4

    The last PyCharm EAP build before the release candidate is ready and comes with a lot of new functionalities! Let’s take a look into three UX-related improvements that will make your development experience smoother.

  • PSF GSoC students blogs: GSoC Week 7: Templates Tutorial

    I researched for the HTML Report design that is good looking and more feature rich. I have been working on and developing it. The new HTML Report will have support for Triage stuff. So that the user can quickly navigate to CVEs with specified remarks. I have also added a footer with useful links like our github, community IRC, and instructions on how to raise an issue.

  • PSF GSoC students blogs: Weekly Check-In #7

    This week I added checkers for avahi and bind libraries. Also there were some changes that had to be made in the out of tree checker, so I completed work on that too.

  • The Swiss Raku and Perl Miniconf 2020 Will Not Take Place

    Hello from the Swiss Alps, where we have been working from home and avoiding all but essential trips out like so many others over the last few months.

    The current situation has led to the cancellation of several community events, including this year's main Raku and Perl conferences in North American and Europe. We have been following the situation closely in Switzerland, and have also decided not to go ahead with our event this year.

  • The Most Remarkable Legacy System I Have Seen

    Good news, this wasn’t a regression due to the recent upgrade and this was easy to sort out. Blocked Internet Explorer and sent a notice to the 5000 developers that Internet Explorer is no longer supported. Problem solved!

    [For reference: It’s best to hard block IE for user experience, IE users are used to retrying in another browser. Maybe one third of internal apps developed in the last years don’t work at all outside of Chrome, the page remains blank or has broken widgets all over the place.]

    The upgrade continued as planned.

  • Systems Performance: Enterprise and the Cloud, 2nd Edition

    Eight years ago I wrote _Systems Performance: Enterprise and the Cloud_ (aka the "sysperf" book) on the performance of computing systems, and this year I'm excited to be releasing the second edition. The first edition was successful, selling over 10k copies and becoming required or recommended reading at many companies (and even mentioned in [job descriptions]). Thanks to everyone for their support. I've received feedback that it is useful, not just for learning performance, but also for showing how computers work internally: essential knowledge for all engineers. The second edition adds content on BPF, BCC, bpftrace, perf, and Ftrace, mostly removes Solaris, makes numerous updates to Linux and cloud computing, and includes general improvements and additions. It is written by a more experienced version of myself than I was for the first edition, including my six years of experience as a senior performance engineer at Netfilx. This edition has also been improved by a new technical review team of over 30 engineers.

today's programming leftovers and licence lawsuit

Filed under
  • Whiteboard Coding Stress Reduces Performance by More than Half

    A recent study by North Carolina State University researchers found that stress caused by whiteboard technical interviews significantly affected the performance of job candidates.

    Whiteboard tests are a common feature of the hiring process for software developers. During these sessions, candidates are expected to develop coding solutions on a whiteboard while describing their decision-making process to observers.

    In the study, half of the participants performed the typical whiteboard test with an interviewer looking on. The other half solved the problem on a whiteboard in a private room with no interviewer present. The private interviews also included a retrospective “think-aloud” session to discuss the solutions presented.


    In the paper, the researchers noted that “a technical interview has an uncanny resemblance to the Trier social stress test,” a technique used by psychologists with the sole purpose of inducing stress. “Through a happy accident, the software industry has seemingly reinvented a crude yet effective instrument for reliably introducing stress in subjects, which typically manifests as performance anxiety,” they said. Additionally, “the unique combination of cognitive-demanding tasks with a social-evaluative threat (essentially being watched) is consistent and powerful,” they stated.

  • Address Sanitizer, Part 1

    Hello everyone. My name is Harshit Sharma (hst on IRC). I am working on the project to add the “Address Sanitizer” feature to coreboot as a part of GSoC 2020. Werner Zeh is my mentor for this project and I’d like to thank him for his constant support and valuable suggestions.

    It’s been a fun couple of weeks since I started working on this project. Though I found the initial few weeks quite challenging, I am glad that I was able to go past that and learned some amazing stuff I’d cherish for a long time.

    Also, being a student, I find it incredible to have got a chance to work with and learn from such passionate, knowledgeable, and helpful people who are always available over IRC to assist.


    The design of ASan in coreboot is based on its implementation in Linux kernel, also known as Kernel Address Sanitizer (KASAN). However, coreboot differs a lot from Linux kernel due to multiple stages and that is what poses a challenge.

  • Etcd, or, why modern software makes me sad

    I talk a lot of shit about Google, but Facebook and Microsoft are nearly as bad at turning out legions of ex-employees who can't be left alone in the room with a keyboard lest they attempt to recreate their previous employer's technology stack, poorly.

  • EuroPython 2020: Find a new job at the conference

    Our sponsors would love to get in touch with you, so please have a look and visit them at their sponsor exhibit channel on Discord or contact them via the links and email addresses given on the page.

  • Check if incoming edges in a vertex of directed graph is equal to vertex itself or not

    Given a directed Graph G(V, E) with V vertices and E edges, the task is to check that for all vertices of the given graph, the incoming edges in a vertex is equal to the vertex itself or not.


  • Jelurida Files Lawsuit Against Apollo Blockchain For License Violations Over Nxt Code

Programming: Rust, Python, Ruby and More

Filed under
  • GStreamer Rust Bindings & Plugins New Releases

    I won’t write too much about the bindings this time. The latest version as of now is 0.16.1, which means that since I started working on the bindings there were 8 major releases. In that same time there were 45 contributors working on the bindings, which seems quite a lot and really makes me happy.

    Just as before, I don’t think any major APIs are missing from the bindings anymore, even for implementing subclasses of the various GStreamer types. The wide usage of the bindings in Free Software projects and commercial products also shows both the interest in writing GStreamer applications and plugins in Rust as well as that the bindings are complete enough and production-ready.

    Most of the changes since the last status update involve API cleanups, usability improvements, various bugfixes and addition of minor API that was not included before. The details of all changes can be read in the changelog.

  • Python 3.8.3 : Lists in Python 3 - part 001.

    I am currently working on a project that involves the use of complex data structures and lists and my time is limited.
    This led me to start a new series of python tutorials on python lists.
    I realized that the lists had no substantial changes in the evolution of the python programming language, see the official documentation.
    You will find on the internet a lot of questions related to lists, algorithms, and problems involving lists.
    If you are not a beginner then it will seem boring at first but over time I will try to draw attention to really significant elements in python programming with lists.

  • PSF GSoC students blogs: Weekly Check In - 6
  • Stupid RCU Tricks: So rcutorture is Not Aggressive Enough For You?

    The rcutorture.stall_cpu=22 says to stall a CPU for 22 seconds, that is, one second longer than the default RCU CPU stall timeout in mainline. If you are instead using a distribution kernel, you might need to specify 61 seconds (as in “rcutorture.stall_cpu=61”) in order to allow for the typical 60-second RCU CPU stall timeout. The rcutorture.fwd_progress=0 has no effect except to suppress a warning message (with stack trace included free of charge) that questions the wisdom of running both RCU-callback forward-progress tests and RCU CPU stall tests at the same time. In fact, the code not only emits the warning message, it also automatically suppresses the forward-progress tests. If you prefer living dangerously and don't mind the occasional out-of-memory (OOM) lockup accompanying your RCU CPU stall warnings, feel free to edit kernel/rcu/rcutorture.c to remove this automatic suppression.

    If you are running on a large system that takes more than ten seconds to boot, you might need to increase the RCU CPU stall holdoff interval. For example, adding rcutorture.stall_cpu_holdoff=120 to the --bootargs list would wait for two minutes before stalling a CPU instead of the default holdoff of 10 seconds. If simply spinning a CPU with preemption disabled does not fully vent your ire, you could undertake a more profound act of vandalism by adding rcutorture.stall_cpu_irqsoff=1 so as to cause interrupts to be disabled on the spinning CPU.

    Some flavors of RCU such as SRCU permit general blocking within their read-side critical sections, and you can exercise this capability by adding rcutorture.stall_cpu_block=1 to the --bootargs list. Better yet, you can use this kernel-boot parameter to torture flavors of RCU that forbid blocking within read-side critical sections, which allows you to see they complain about such mistreatment.

  • Utkarsh Gupta: GSoC Phase 2

    In early May, I got selected as a Google Summer of Code student for Debian to work on a project which is to write a linter (an extension to RuboCop).
    This tool is mostly to help the Debian Ruby team. And that is the best part, I love working in/for/with the Ruby team!
    (I’ve been an active part of the team for 19 months now Smile)

  • Mike Blumenkrantz: Timestamps

    I spent a few days locked in a hellish battle against a software implementation of doubles (64-bit floats) for ARB_gpu_shader_fp64 in the raging summer heat.

Python Programming

Filed under
  • Pandas Project: Make a Gradebook With Pandas

    One of the jobs that all teachers have in common is evaluating students. Whether you use exams, homework assignments, quizzes, or projects, you usually have to turn students’ scores into a letter grade at the end of the term. This often involves a bunch of calculations that you might do in a spreadsheet. Instead, you can consider using Python and pandas.

    One problem with using a spreadsheet is that it can be hard to see when you make a mistake in a formula. Maybe you selected the wrong column and put quizzes where exams should go. Maybe you found the maximum of two incorrect values. To solve this problem, you can use Python and pandas to do all your calculations and find and fix those mistakes much faster.

  • How should I start learning Python

    After you have made up your mind that you are going with Python, Here are certain steps that I followed to get started with it and I am sure it will work out for anybody,

  • Python 101 – Creating Multiple Processes

    Most CPU manufacturers are creating multi-core CPUs now. Even cell phones come with multiple cores! Python threads can’t use those cores because of the Global Interpreter Lock. Starting in Python 2.6, the multiprocessing module was added which lets you take full advantage of all the cores on your machine.

  • A Hundred Days of Code, Day 008 - Python Basics, Lists, Tuples, Dictionaries, Sets and Done!

Mozilla and Rust

Filed under
  • Rust programming language: Crates package API tokens revoked over serious security flaw

    The key revocation addresses a serious vulnerability affecting Rust's package system due to two factors. First, Rust developers learned that the PostgreSQL random function it used to generate API keys or tokens for was not a "cryptographically secure" random-number generator.

  • Rust code in Linux kernel looks more likely as language team lead promises support
  • Armen Zambrano: New backfill action

    In the screenshot above you can see that the task mdaturned orange (implying that it failed). In the screenshot we can see that a Mozilla code sheriff has both retriggered the task four more times (you can see four more running tasks on the same push) and has backfilled the task on previous pushes. This is to determine if the regression was introduced on previous pushes or if the failure is due to an intermittent test failure.

  • Mozilla Puts Its Trusted Stamp on VPN

    Starting today, there’s a VPN on the market from a company you trust. The Mozilla VPN (Virtual Private Network) is now available on Windows. This fast and easy-to-use VPN service is brought to you by Mozilla, the makers of Firefox, and a trusted name in online consumer security and privacy services.

    The first thing you may notice when you install the Mozilla VPN is how fast your browsing experience is. That’s because the Mozilla VPN is based on modern and lean technology, the WireGuard protocol’s 4,000 lines of code, is a fraction in size of legacy protocols used by other VPN service providers.

    You will also see an easy-to-use and simple interface for anyone who is new to VPN, or those who want to set it and get onto the web.

    With no long-term contracts required, the Mozilla VPN is available for just $4.99 USD per month and will initially be available in the United States, Canada, the United Kingdom, Singapore, Malaysia, and New Zealand, with plans to expand to other countries this Fall.

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