Language Selection

English French German Italian Portuguese Spanish

Development

today's howtos and programming bits

Filed under
Development
HowTos

Programming: CppCon 2019, Python, DevNation Live Bengaluru and RcppAnnoy 0.0.13

Filed under
Development
  • CppCon 2019 News Roundup

    C++ developers flocked to Colorado for CppCon 2019. The convention is intended for personal networking and slideshow presentations, but its size leads to a handful of niche announcements that might be interesting to our readers when bundled together.

  • An advanced look at Python interfaces using zope.interface

    The Zen of Python is loose enough and contradicts itself enough that you can prove anything from it. Let's meditate upon one of its most famous principles: "Explicit is better than implicit."

    One thing that traditionally has been implicit in Python is the expected interface. Functions have been documented to expect a "file-like object" or a "sequence." But what is a file-like object? Does it support .writelines? What about .seek? What is a "sequence"? Does it support step-slicing, such as a[1:10:2]?

    Originally, Python's answer was the so-called "duck-typing," taken from the phrase "if it walks like a duck and quacks like a duck, it's probably a duck." In other words, "try it and see," which is possibly the most implicit you could possibly get.

  • DevNation Live Bengaluru: Kubernetes serverless application architecture

    Our first DevNation Live regional event was held in Bengaluru, India in July. This free technology event focused on open source innovations, with sessions presented by elite Red Hat technologists.

    In this session, Burr Sutter discusses serverless architectures, which have become a common approach in organizations that want to be more effective in DevOps and optimize their IT resources. This approach adds further flexibility to the next generation of microservices, and Knative helps running your microservices serverless workloads on Kubernetes/OpenShift be more agile and effective.

  • RcppAnnoy 0.0.13

    A new release of RcppAnnoy is now on CRAN.

    RcppAnnoy is the Rcpp-based R integration of the nifty Annoy library by Erik Bernhardsson. Annoy is a small and lightweight C++ template header library for very fast approximate nearest neighbours—originally developed to drive the famous Spotify music discovery algorithm.

    This release brings several updates. First and foremost, the upstream Annoy C++ code was updated from version 1.12 to 1.16 bringing both speedier code thanks to AVX512 instruction (where available) and new functionality. Which we expose in two new functions of which buildOnDisk() may be of interest for some using the file-back indices. We also corrected a minor wart in which a demo file was saved (via example()) to a user directory; we now use tempfile() as one should, and contributed two small Windows build changes back to Annoy.

Picolibc Version 1.0 Released

Filed under
Development

I wrote a couple of years ago about the troubles I had finding a good libc for embedded systems, and for the last year or so I've been using something I called 'newlib-nano', which was newlib with the stdio from avrlibc bolted on. That library has worked pretty well, and required very little work to ship.

Now that I'm doing RISC-V stuff full-time, and am currently working to improve the development environment on deeply embedded devices, I decided to take another look at libc and see if a bit more work on newlib-nano would make it a good choice for wider usage.

One of the first changes was to switch away from the very confusing "newlib-nano" name. I picked "picolibc" as that seems reasonably distinct from other projects in the space and and doesn't use 'new' or 'nano' in the name.

Read more

Programming Leftovers

Filed under
Development
  • Qt Quick on Vulkan, Metal, and Direct3D - Part 3

    In part 3 of our series on Qt graphics (part 1, part 2), we will look at how shaders are handled in Qt Quick in Qt 5.14 when switching the scenegraph over to rendering through QRhi, the Qt Rendering Hardware Interface. We choose to cover shader handling before digging into the RHI itself because Qt Quick applications using ShaderEffect items or custom materials have to provide fragment and/or vertex shader code themselves, and therefore they need to be aware of (and by Qt 6, migrate to) the new approach to shader handling.

    Speaking of Qt 6: while everything described here applies to, and only to, Qt 5.14, and may change in later releases, what we have here will likely form the foundation of graphics and compute shader handling in Qt 6, once the few remaining rough edges are eliminated.

  • Command Execution Tricks with Subprocess - Designing CI/CD Systems

    The most crucial step in any continuous integration process is the one that executes build instructions and tests their output. There’s an infinite number of ways to implement this step ranging from a simple shell script to a complex task system.

    Keeping with the principles of simplicity and practicality, today we’ll look at continuing the series on Designing CI/CD Systems with our implementation of the execution script.

  • DjangoCon US 2019: Python & Django in San Diego!

    We are back to San Diego!! Our team will be joining DjangoCon US's conference, one of the biggest Django events in the world. For this year, we'll be giving two talks: Pull Requests: Merging good practices into your project and Building effective Django queries with expressions

  • 12 Excellent Free Books to Learn Ada

    Ada is a structured, statically typed, imperative, wide-spectrum, multi-paradigm, object-oriented high-level, ALGOL-like programming language, extended from Pascal and other languages. The language was developed in the late 1970s and early 1980s. Ada is named after Augusta Ada Byron (often now known as Ada Lovelace), daughter of the poet Lord Byron.

    Ada has built-in language support for explicit concurrency, offering tasks, synchronous message passing, protected objects, and non-determinism. Ada incorporates the benefits of object-oriented languages without incurring the pervasive overheads.

    Other notable features of Ada include: strong typing, inherent reliability, modularity mechanisms (packages), run-time checking, parallel processing, exception handling, the ability to provide abstraction through the package and private type, and generics.

Programming Leftovers

Filed under
Development
  • HEURISTIC ALGORITHMS FOR THE PROBLEM OF OPTIMIZATION OF THE DRAIN AREA IN UNCONVENTIONAL FIELDS OF HYDROCARBONS

    In a previous work, a linear programming based procedure was presented for this problem, and this procedure allowed to solve real-life instances, albeit -in some cases- producing plans with overlappings among the pads (since a relaxation is solved) and suffering from memory issues.

  • Getting Started With Async Features in Python

    Have you heard of asynchronous programming in Python? Are you curious to know more about Python async features and how you can use them in your work? Perhaps you’ve even tried to write threaded programs and run into some issues. If you’re looking to understand how to use Python async features, then you’ve come to the right place.

  • Anaconda Enterprise Receives Honors in Fourth Annual Datanami Readers’ and Editors’ Choice Awards

    Anaconda’s enterprise data science platform has been recognized in the fourth annual Datanami Readers’ and Editors’ Choice Awards, presented during the Strata Data Conference.

  • Exploratory Data Analysis Made Easy At The Command Line

    There are countless tools and libraries in Python for data scientists to perform powerful analyses, but they often have a setup cost that acts as a barrier to ad-hoc exploration of data. Visidata is a command line application that eliminates the friction involved with starting the discovery process. In this episode Saul Pwanson explains his motivation for creating it, why a terminal environment is a useful place for this work, and how you can use Visidata for your own work. If you have ever avoided looking at a data set because you couldn't be bothered with the boilerplate for a Jupyter notebook, then Visidata is the perfect addition to your toolbox.

    [...]

    There are countless tools and libraries in Python for data scientists to perform powerful analyses, but they often have a setup cost that acts as a barrier to ad-hoc exploration of data. Visidata is a command line application that eliminates the friction involved with starting the discovery process. In this episode Saul Pwanson explains his motivation for creating it, why a terminal environment is a useful place for this work, and how you can use Visidata for your own work. If you have ever avoided looking at a data set because you couldn’t be bothered with the boilerplate for a Jupyter notebook, then Visidata is the perfect addition to your toolbox.

Programming Leftovers

Filed under
Development
  • DevNation Live: Event-driven business automation powered by cloud-native Java

    DevNation Live tech talks are hosted by the Red Hat technologists who create our products. These sessions include real solutions and code and sample projects to help you get started. In this talk, presented by Red Hat’s Maciej Swiderski, Principal Software Engineer, and Burr Sutter, Chief Developer Evangelist, you’ll learn about event-driven business automation using Kogito, Quarkus, and more.

    Kogito is a new Java toolkit, based on Drools and jBPM, that’s made to bring rules and processes to the Quarkus world. This DevNation Live presentation shows how Kogito can be used to build cloud-ready, event-driven business applications, and it includes a demo of implementing the business logic of a complex domain.

    Kogito itself is defined as a cloud-native business automation toolkit that helps you to build intelligent applications. It’s way more than just a business process or a single business rule—it’s a bunch of business rules, and it’s based on battle-tested capabilities.

  • NVIDIA Video Codec SDK 9.1 Brings CUDA CUStream Support, Other Encoder Improvements

    Following the February release of Video Codec SDK 9.0, NVIDIA recently did a quiet release of the Video Codec SDK 9.1 update that furthers along this cross-platform video encode/decode library.

  • Mike Driscoll: PyDev of the Week: Peter Farrell

    This week we welcome Peter Farrell (@hackingmath) as our PyDev of the Week! Peter is the author Math Adventures with Python and two other math related Python books. You can learn more about Peter by visiting his website.

  • Mutation testing by example: How to leverage failure
  • Reuven Lerner: Looking for Python podcast co-hosts

    As you might know, I’m a panelist on the weekly “Freelancers Show” podcast, which talks about the business of freelancing.

    The good news: The same company that’s behind the Freelancers Show, Devchat.tv, is putting together a weekly podcast about Python, and I’m going to be on that, too! We’ll have a combination of discussion, interviews with interesting people in the Python community, and (friendly) debates over the current and future state of the language.

  • Getting started with data science using Python

    Data science is an exciting new field in computing that's built around analyzing, visualizing, correlating, and interpreting the boundless amounts of information our computers are collecting about the world. Of course, calling it a "new" field is a little disingenuous because the discipline is a derivative of statistics, data analysis, and plain old obsessive scientific observation.

    But data science is a formalized branch of these disciplines, with processes and tools all its own, and it can be broadly applied across disciplines (such as visual effects) that had never produced big dumps of unmanageable data before. Data science is a new opportunity to take a fresh look at data from oceanography, meteorology, geography, cartography, biology, medicine and health, and entertainment industries and gain a better understanding of patterns, influences, and causality.

    Like other big and seemingly all-inclusive fields, it can be intimidating to know where to start exploring data science. There are a lot of resources out there to help data scientists use their favorite programming languages to accomplish their goals, and that includes one of the most popular programming languages out there: Python. Using the Pandas, Matplotlib, and Seaborn libraries, you can learn the basic toolset of data science.

Python Programming Leftovers

Filed under
Development
  • Cogito, Ergo Sumana: Futureproofing Your Python Tools

    The people who maintain Python and key Python platforms want to help you protect the code you write and depend on.

    [...]

    Publishing that package is a great way of making it so other people can run and deploy it, even within other parts of your organization.

    But -- who actually has the keys to the castle? Who can upload a new version, or delete a version that has a problem?

    You should probably make sure multiple people have either "owner" or "maintainer" privileges on the project on PyPI.

    And you should review your project security history display, which lists sensitive events (such as "file removed from release version 1.0.1") in your PyPI user account and your PyPI project. We just added this display, so you can look at things that have happened in your user account or project, and check for signs someone's stolen your credentials.

  • py3status v3.20 – EuroPython 2019 edition

    Shame on me to post this so long after it happened… Still, that’s a funny story to tell and a lot of thank you to give so let’s go!

  • Finding Python Developers for Your Startup

    Recently I stumble across a situation while I was helping out for one of the events for JuniorDev SG.

    There was not a lot of Python developers and some of my other developer's friend.

    Said that they hardly encounter any developer friends who are using Python for their work.

    It begins during a conversation, where one of the attendees for a JuniorDev SG event.

    Approached me to search for Python developers to work for their startup based in Singapore.

GNU Parallel 20190922 ('Stallman') released

Filed under
Development
GNU

GNU Parallel 20190922 ('Stallman') has been released. It is available for download at: http://ftpmirror.gnu.org/parallel/
GNU Parallel is 10 years old next year on 2020-04-22. You are here by invited to a reception on Friday 2020-04-17.

Read more

Top 20 Best NodeJs Frameworks For Developers in 2019

Filed under
Development

Over the past few years, the use of web applications has increased to a vast extent. Developers have been looking for such a platform that is both advanced and provides flexibility to develop a variety of web applications. NodeJs Frameworks have earned the credit to be the top selection by the developers. You wanna know why? It is because of the capability to build smart, scalable server-side network-based applications.

Read more

Programming Leftovers

Filed under
Development
  • Icecream 1.3 and Icemon 3.3 released

    A new version 1.3 of the distributed C/C++ compilation tool Icecream has been released. To accompany it, version 3.3 of the GUI monitor Icemon has been released as well.

  • Dirk Eddelbuettel: digest 0.6.21

    A new version of digest is just now arriving at CRAN (following a slight holdup over one likely spurious reverse dependency error), and I will send an updated package to Debian shortly as well.

    digest creates hash digests of arbitrary R objects (using the md5, sha-1, sha-256, sha-512, crc32, xxhash32, xxhash64, murmur32, and spookyhash algorithms) permitting easy comparison of R language objects. It is a fairly widely-used package (currently listed at 795k downloads) as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation.

  • Weekly Python StackOverflow Report: (cxcv) stackoverflow python report
  • Native widgets on mobile for Online - prototype

    In the desktop suite we have the sidebar which is a context dependant feature improving user performance eg. in chart editing. Unfortunately it's not the perfect UI for a mobile clients, so the new concept is to tunnel the UI description to the browser and create native widgets there.

Syndicate content

More in Tux Machines

Programming: C++, C and Python

  • Extend C++ capabilities with LLVM STLExtras.h

    The LLVM compiler project provides a header file called STLExtras.h that extends the capabilities of C++ without any dependency on the rest of LLVM. In this article, we take a quick look at its basic functionality.

  • Rewriting Old Solaris C Code In Python Yielded A 17x Performance Improvement

    While we normally hear of rewriting code from Python and other scripting languages into C/C++ when its a matter of performance, in the case of Oracle Solaris it was taking old C code and modernizing it in Python 3 to yield a ~17x performance improvement. Shared today on Oracle's official Solaris blog was an interesting anecdote about their listusers command being rewritten in Python 3 from C. Oracle's Darren Moffat noted the C code was largely untouched since around 1988 and given its design at a time when systems were less dense than today with hundreds or even thousands of users per system.

  • Python Projects for Beginners: The Best Way to Learn

    Learning Python can be difficult. You can spend time reading a textbook or watching videos, but then struggle to actually put what you've learned into practice. Or you might spend a ton of time learning syntax and get bored or lose motivation. How can you increase your chances of success? By building Python projects. That way you're learning by actually doing what you want to do! When I was learning Python, building projects helped me bring together everything I was learning. Once I started building projects, I immediately felt like I was making more progress.

  • PyCon 2019: The People of PyCon

    I can’t tell you how amazing it was to meet the individuals I read, listen to, or who make the tools I use. I was so happy to meet the authors that helped me to grow over the last few years, especially Dan Bader, Peter Baumgartner, Matt Harrison, Reuven Lerner, Harry Percival , and Lacey Williams Henschel. I love podcasts, so it was wonderful to meet Michael Kennedy and Brian Okken in person. And I was happy to meet Paul Ganssle, Russell Keith-Magee, Barry Warsaw, and other maintainers and contributors. It was a delight to meet Bob Belderbos and Julian Sequeira from PyBites.

  • Find the first non-consecutive number with Python

    Your task is to find the first element of an array that is not consecutive. E.g. If we have an array [1,2,3,4,6,7,8] then 1 then 2 then 3 then 4 are all consecutive but 6 is not, so that’s the first non-consecutive number. If the whole array is consecutive then return None.

  • Perceiving Python programming paradigms

    Early each year, TIOBE announces its Programming Language of The Year. When its latest annual TIOBE index report came out, I was not at all surprised to see Python again winning the title, which was based on capturing the most search engine ranking points (especially on Google, Bing, Yahoo, Wikipedia, Amazon, YouTube, and Baidu) in 2018.

OSI Announces Appointment of New Board Directors

The Open Source Initiative (OSI) is pleased to announce the appointments of Deb Bryant and Tracy Hinds to fill the two vacant seats on the OSI Board of Directors. Their terms will begin immediately and run through October 2021. We hope you will join us in welcoming both to the OSI. Deb Bryant is returning to the OSI Board after spending several years away. After spending her days as the Senior Director of the Open Source Programs Office at Red Hat, Deb volunteers for open source organizations and supports the open source community. Bryant is passionate about open and transparent governments, bringing open source technology and ideas into the public sector. Tracy Hinds has an impressive history of managing development, operations, and growth for non-profit and for-profit organizations. Previous Education and Community Manager as well as Board Director of the OpenJS(formerly Node.js) Foundation, Hinds now works as Head of Platform at Samsung NEXT and is the president of GatherScript, where she works to support startup engagement and community, inspired by her prior work as a web engineer, community builder, OSS advocate, and strategist. Read more

A Trustworthy Free/Libre Linux Capable 64bit RISC-V Computer

My goal is to build a Free/OpenSource computer from the ground up, so I may completely trust that the entire hardware+software system's behavior is 100% attributable to its fully available HDL (Hardware Description Language) and Software sources. More importantly, I need all the compilers and associated toolchains involved in building the overall system (from HDL and Software sources) to be Free/OpenSource, and to be themselves buildable and runnable on the computer system being described. In other words, I need a self-hosting Free/OpenSource hardware+software stack! Read more Also: COM offers 9th or 8th Gen Coffee Lake with 10Gbps USB 3.2 and up to 96GB RAM

Dragora 3.0-beta1 released

I am pleased to announce the release of Dragora 3.0 Beta 1.

Dragora is a complete and reliable distribution of the GNU/Linux operating system that is entirely free software. Dragora is founded on the concepts of simplicity and elegance, it can be run for almost any purpose (desktop,
workstation, server, development, etc.). The intended audience is people
interested in learning more about the technical aspects of a friendly
GNU/Linux distribution.  Also people looking to use the purest ethical
software for daily use.

The beginning of the development of the series 3.0 represents the
migration towards a new C library, Musl.  The continuation of
supervision capabilities (introduced for the services in 2012).
The restructuring of the hierarchy of directories, the improvement of
the tools provided by the distribution, a new automatic method to build
the distribution, the prebuilt cross-compiler set, and much more!

The homepage is at www.dragora.org

Current development pages are located at
https://git.savannah.nongnu.org/cgit/dragora.git/ and
https://notabug.org/dragora/

Changes in this version:

  * A new installer for this series has been introduced, it can be
    invoked from the command line as `dragora-installer'.

  * A new tool (based on dialog(1)) has been introduced to
    configure the keyboard mapping in the console, it is called
    `dragora-keymap'.

  * Our simple and friendly package manager has reached version 1.3,
    which contains minor changes and fixes.  It is worth mentioning
    that Qi now uses `tarlz' to produce, list packages in parallel.
    Tarlz uses a simplified and safer variant of the POSIX pax format
    compressed with our favorite compressor "lzip".

  * To complement the security in general, for binaries with PIE and
SSP (both are default features in Dragora), they are now complemented
    with RELRO by default.

  * The main toolchain has been upgraded.  This -beta1 have Binutils
    2.33.1, The GNU C Compiler 9, GNU Linux libre 4.19.78, and
    Musl 1.1.24.

  * LibreSSL has been upgraded to the version 3.0.1

  * Ruby (programming language) version 2.6.5 has been introduced.

  * Support for FUSE (in the kernel) and user space, is now available
    in Dragora.

  * Xfce 4.14 has been introduced in this version.

  * dragora-ice, a customized version of IceWM has been added.

  * All the official X.Org components has been updated (drivers, server,
    applications, etc.).  Included new drivers: xf86-input-elographics,
    xf86-video-amdgpu, xf86-video-vboxvideo.  The configuration for the
    xf86-video-intel driver has been fixed this time.

  * Work to complete DocBook support in Dragora is underway.

  * Build recipes for new packages have been built:

    Please, traverse the /usr/pkg hierarchy for a full view of
    installed packages.

  * Many general fixes, improvements, and clean ups have been performed.

The ISO images may be fetched at:

    https://sourceforge.net/projects/dragora/files/beta/

See http://dragora.org/en/mirrors.html for a list of available mirrors.

The sha256sums are:

59a1c1693d62c2d61a0d5b4b826313ce8b736768b1a42097f1478a20a37f7a80 dragora-3.0-i586-beta1-live.iso 3127ea5b619b8e049b45a17e1e4d9c538b35ac067a7cd63d2262a30782e7cc2d dragora-3.0-i586-beta1-packages.iso 1c0f63a69cd4b674b742550562605f240e98cdbc63ab670c9f8cdd5d2d134efc dragora-3.0-x86_64-beta1-live.iso 2dd58b1e6429876aa1883b4682914184bce6cac2adfe53ea7c2e0c46d7987385 dragora-3.0-x86_64-beta1-packages.iso

Dragora is available in "live" or hybrid ISO image form. You need the .iso
for the packages if you want to perform a hard disk installation.

Notes:

* The password for the root user in the Live CD is: dragora

This beta version can be considered as stable, it is catalogued just as
beta because it lacks many things that we will try to complement in future
versions.

We welcome feedback at our Freenode IRC channel, #dragora, and on our
mailing list.  We are looking for help with documentation, testing,
bug reports, patches, etc.

Thank you to all of you who support this humble project made with great
sacrifice.  And thank you especially for supporting the philosophy and
spirit of software freedom that Dragora aims to promote.

Best regards,
Matias Fonzo, Dragora author and maintainer.

--
``Someone told me I would never be free
The way you are is way you'll always be
But it's all wrong!
There's Time To Burn'' - Ronnie James Dio

Read more