Language Selection

English French German Italian Portuguese Spanish

Programming/Development: Dirk Eddelbuettel, Dependencies and Python

Filed under
Development
  • Dirk Eddelbuettel: RcppArmadillo 0.9.800.3.0

    A small Armadillo bugfix upstream update 9.800.3 came out a few days ago. The changes, summarised by Conrad in email to me (and for once not yet on the arma site are fixes for matrix row iterators, better detection of non-hermitian matrices by eig_sym(), inv_sympd(), chol(), expmat_sym() and miscellaneous minor fixes. It also contains a bug fix by Christian Gunning to his sample() implementation.

    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) 679 other packages on CRAN.

  • Dirk Eddelbuettel: RDieHarder 0.2.1

    A new version, now at 0.2.1, of the random-number generator tester RDieHarder (based on the DieHarder suite developed / maintained by Robert Brown with contributions by David Bauer and myself) is now on CRAN.

    This version has only internal changes. Brian Ripley, tireless as always, is testing the impact of gcc 10 on CRAN code and found that the ‘to-be-default’ option -fno-common throws off a few (older) C code bases, this one (which is indeed old) included. So in a nutshell, we declared all global variables extern and defined them once and only once in new file globals.c. Needless to say, this affects the buildability options. In the past we used to rely on an external library libdieharder (which e.g. I had put together for Debian) but we now just build everything internally in the package.

  • There are (at least) three distinct dependency types

    Using dependencies is one of the main problems in software development today. It has become even more complicated with the recent emergence of new programming languages and the need to combine them with existing programs. Most discussion about it has been informal and high level, so let's see if we can make it more disciplined and how different dependency approaches work.

    What do we mean when we say "work"?

    In this post we are going to use the word "work" in a very specific way. A dependency application is said to work if and only if we can take two separate code projects where one uses the other and use them together without needing to write special case code. That is, we should be able to snap the two projects together like Lego. If this can be done to arbitrary projects with a success rate of more than 95%, then the approach can be said to work.

    It should be especially noted that "I tried this with two trivial helloworld projects and it worked for me" does not fulfill the requirements of working. Sadly this line of reasoning is used all too often in online dependency discussions, but it is not a response that holds any weight. Any approach that has not been tested with at least tens (preferably hundreds) of packages does not have enough real world usage experience to be taken seriously.

  • Monads aren't as hard as you think

    I’ve been scared of monads ever since I first heard of them. So many references to burritos, or nuclear waste containers, or some other analogy that didn’t make sense to me. So if you’re scared of monads too, maybe my take on what a monad is will help.

  • Print all git repos from a user
  • Print all git repos from a user
  • Talk Python to Me: #241 Opal: Full stack health care apps

    Open source has permeated much of the software industry. What about health care? This highly regulated and important industry might seem to be the domain of huge specialized software companies.

  • Sleepy snake

    I love this drawing! I’ve always been charmed by cartoonists’ ability to capture an essence in a seemingly simple drawing. Objects are reduced to stereotypes, but with some whimsy thrown in. Ben has always had this gift: to create just the right stroke to perfectly express an attitude or feeling.

    Here Sleepy is snug in his bed, covered by a blanket. Even in his custom bed, he’s too long to fit, but he’s comfortable. The pillow isn’t shaped like a real pillow, but it’s exactly our cartoon Platonic ideal of a pillow.

  • Generate a Python Random Number

    Here is a quick guide on Python’s random number. You can always refer to it whenever you need to generate a random number in your programs.

    Python has a built-in random module for this purpose. It exposes several methods such as randrange(), randint(), random(), seed(), uniform(), etc. You can call any of these functions to generate a Python random number.

    Usually, a random number is an integer, but you can generate float random also. However, you first need to understand the context as a programmer and then pick the right function to use.

  • Trigger Local Python App Remotely

    With an old Mac I have lying around at home and free web-based services, I’ve setup a simple app that fetches some data from an external service (YNAB) in order to run some daily budget calculations that I used to calculate manually for a long time. The output of my app is then sent back to my phone within seconds so I can trigger it from anywhere. I wanted to share the approach I’m using which has cost me nothing.

    This (obviously) isn’t an approach that should be used for large scale applications or anything other than pet projects. I just wanted to highlight how simple it can be using existing free tools. There are plenty of low cost, production ready, and scalable options out there (like AWS Lambda) if you prefer to start with that approach.

    My app is written in Python and served via Flask to a local endpoint (http://localhost:5000) which ngrok points to. I then have a IFTTT webhook hitting the Ngrok URL after clicking an IFTTT button widget from my phone. The app ends up broadcasting the output to my Slack account so I end up getting a push notification on my phone containing the app output within seconds of hitting the button:

  • Raspberry Pi Christmas Shopping Guide 2019

    Stuck for what to buy your friends and family this Christmas? Whether you’re looking to introduce someone to Raspberry Pi and coding, or trying to find the perfect gift for the tech-mad hobbyist in your life, our Christmas Shopping Guide 2019 will help you complete your shopping list. So, let’s get started…

More in Tux Machines

Alpine 3.11.3 released

The Alpine Linux project is pleased to announce the immediate availability of version 3.11.3 of its Alpine Linux operating system. Read more

IBM and SUSE Leftovers

  • Deploying your storage backend using OpenShift Container Storage 4

    This Blog is for both system administrators and application developers interested in learning how to deploy and manage Red Hat OpenShift Container Storage 4 (OCS). This Blog outlines how you will be using OpenShift Container Platform (OCP) 4.2.14+ and the OCS operator to deploy Ceph and the Multi-Cloud Object Gateway as a persistent storage solution for OCP workloads. If you do not have a current OpenShift test cluster, you can deploy OpenShift 4 by going to the OpenShift 4 Deployment page and then follow the instructions for AWS Installer-Provisioned Infrastructure (IPI).

  • What desktop OS do you use at work?

    We have all heard the age-old debate of what is the best operating system user prefer. Windows or Mac? Linux or nothing. The funny thing about this question is that in many places of business, the user does not get a choice. You are handed a laptop when you start and may be stuck with whatever is preloaded onto the machine. In some cases, you're not even allowed to run something else in a virtual machine.

  • Fedora program update: 2020-03

    I will not hold office hours next week due to travel, but if you’ll be at DevConf.CZ, you can catch me in person.

  • Martin de Boer: Comparing uptime performance monitoring tools: StatusCake vs Freshping vs UptimeRobot

    When you host your own website on a Virtual Private Server or on a DigitalOcean droplet, you want to know if your website is down (and receive a warning when that happens). Plus it’s fun to see the uptime graphs and the performance metrics. Did you know these services are available for free? I will compare 3 SaaS vendors who offer uptime performance monitoring tools. Of course, you don’t get the full functionality for free. There are always limitations as these vendors like you to upgrade to a premium (paid) account. But for an enthousiast website, having access to these free basic options is already a big win! I also need to address the elephant in the room: Pingdom. This is the golden standard of uptime performance monitoring tools. However, you will pay at least €440 per year for the privilege. That is a viable option for a small business. Not for an enthousiast like myself. The chosen free alternatives are StatusCake, Freshping and UptimeRobot. There are many other options, but these ones are mentioned in multiple lists of ‘the best monitoring tools’. They also have user friendly dashboards. So let’s run with it.

  • Vinzenz Vietzke: Running for openSUSE Board #2: Questions and Answers

    Already in the beginning of 2019 I have been a candidate for the board of openSUSE. Since there are now two places open again, I am again available for the task and run for election. A general overview of my ideas and goals can be found here. In the run-up to the election all candidates of the community are of course open for questions. I have answered a catalogue of 5 questions from Gerald Pfeifer, currently chairman of the board, and would like to make it available here.

  • Q&A for openSUSE Board elections

    Our openSUSE Chairman has some questions for the candidates for the openSUSE Board. My answers are here:

Audiocasts/Shows: Linux Headlines, Seth McCombs, "5 Things I Hate About Linux"

  • 2020-01-17 | Linux Headlines

    Nextcloud announces exciting changes to the platform, Puppet is now releasing both faster and slower, DigitalOcean?s restructuring is resulting in layoffs, and Fedora CoreOS reaches production-ready status.

  • Infrastructure Engineer: Seth McCombs | Jupiter Extras 47

    Ell and Wes are joined by Infrastructure Engineer Seth McCombs for a chat about how he got started in tech, the hard transition from legacy data centers to the cloud, and why being honest about both success and failure can lead to a better open source community.

  • 5 Things I Hate About Linux

    So I love Linux for my daily desktop driver, but there are some things that I hate about it. Here are the 5 things that I wish were different.

today's howtos