Programming Leftovers
-
Difference Between a Histogram and a Bar Graph
Difference Between a Histogram and a Bar Graph, The Bar graph is a graphical representation of data that uses bars to compare different categories of data, whereas the Histogram is a graphical representation of data that uses bars to exhibit data by way of bars to illustrate the frequency of numerical data.
The distribution of non-discrete variables is represented by a histogram, but the comparison of discrete variables is represented by a bar graph.
-
Seeing vs. Using
The critique of a set of static mocks is often an exercise of indirectly-impacted technologists imagining the needs and goals of directly-impacted humans with a dynamic piece of software against a static screen of UI.
Looking at static mocks, imagining a set of goals, and saying “yeah that looks good” is one thing. A whole other is completing a task with interactive software and saying “yeah that works good”.
-
digest 0.6.30 on CRAN: More Package Maintenance
Release 0.6.30 of the digest package arrived at CRAN earlier today, and was just uploaded to Debian as well.
digest creates hash digests of arbitrary R objects (using the md5, sha-1, sha-256, sha-512, crc32, xxhash32, xxhash64, murmur32, spookyhash, and blake3 algorithms) permitting easy comparison of R language objects. It is a mature and widely-used as many tasks may involve caching of objects for which it provides convenient general-purpose hash key generation to quickly identify the various objects.
-
A turn in the welding robotics community
In early October in Denver, Colorado, the American Welding Society (AWS) held the first Automated Welding & Sensors Conference. This is a follow up to the prior National Robotic Arc Welding Conference, which last took place in 2019, but was not an official AWS conference. Since then, a lot has changed. One change is a pivot to acknowledging there is a lot going on in robotics, sensors, human robot interaction, and emerging trends in workforce education and sustainment, that it makes sense to have a conference on automation in welding.
[...]
Some of the key takeaways from my perspective is there is a hunger for intelligent yet easy to use solutions. There is an inherent high mix, and, at times, harsh environment. It is now at the point where collaborative robots – power and force limited manipulators – are now appearing in several job shops, and large manufacturers around the world. Caterpillar shared their experience in taking advantage of leveraging collaborative hardware-based systems to realize flexible and agile welding capability.
-
Manage Dependencies with the deps R Package for Docker Containers
The deps package gives you a lightweight option to manage package dependencies and you can install these inside containers.
When building Docker images for your R-based applications, the biggest hurdle is knowing exactly which packages and system libraries your package depends on. Luckily, the tools have evolved quite a bit over the past few years. In this post, I show you where the deps package fits in and how this can be a great choice for dependency management for Docker-based workflows.
-
Jussi Pakkanen: Making Visual Studio compilers directly runnable from any shell (yes, even plain cmd.exe) [Ed: VS Code is proprietary ]
To anyone who has used unixy toolchains, this is maddening. The classic Unix approach is to have compiler binaries with unique names like a hypothetical armhf-linux-gcc-11 from any shell. Sadly this VS setup has been the status quo for decades now and it is unlikely to change. In fact, some times ago I had a discussion with a person from Microsoft where I told them about this problem and the response I got back was, effectively: "I don't understand what the problem is" followed by "just run the compiles from the correct shell".
-
Big Data Storage
This is a page about some of the mechanics of ‘big data’, specifically how to store, transfer and process perhaps 100s of millions or billions of rows/events.
[...]
Sqlite3 turns out to have been the most suggested solution, so I gave it a spin. We want to retain the CSV goals, like low overhead, universal accessibility, robustness. Sqlite delivers on all these fronts. It for example has built in tooling for dealing with corrupted files.
Modern Sqlite can be type safe, so it will not allow you to insert a string in a floating point field. Its support for prepared statements means we don’t have to worry about escaping.
-
Building a Queue for Delayed Messages via a RDBMS (1): Design
Ever had the need to deliver messages on your queue at a certain timestamp in the future? Look no further, because your RDBMS can do it. This is part 1 of a series that builds a solution from scratch.
In our $work project we had the need to push messages on a queue, but delayed, for delivery at a certain timestamp in the future. Our existing MQ servers aren’t adequate for that, and we can’t introduce more technology in our stack.
Turns out, a relational database is perfectly adequate (such as MySQL or PostgreSQL). Here’s how…
-
The programming challenge that is a modern browser
Browsers cover so much ground and are so large that they effectively contain multiple substantial projects as subsystems. You have a Javascript execution system (and now a WebAssembly one too), HTML and CSS parsing, web page DOM rendering (including complex text rendering in a wide variety of languages and fonts), a complex TLS system, a networking system that handles multiple protocols, an asynchronous DNS resolver, image, audio, and video format decoders and players, database and cache layers, and so on. All of these subsystems are complicated by security concerns and many of them interconnect with each other at various levels. Some browsers also have to be cross-platform on top of this.
-
Hubert Figuière: Fall of releases
A couple of Rust crate releases.
Now that the new glib-rs (and gtk-rs) are out, it's time for an update of gudev Rust bindings using the newer version of glib-rs.
-
MLOps with vetiver in Python and R: Answering your questions
As a follow-up to last month’s MLOps with vetiver in Python and R webinar, we’d like to highlight and answer some of the great audience questions asked during the session. You can also check out the demo and slides on the webinar’s website.
-
Send a Webmention in 10 (or fewer) lines of Python code
Webmentions enable distributed social interactions over the web. Using webmentions, you can send replies, likes, and other interactions that were published on your site to respond to another web page. For example, I send Webmentions for all of the bookmarks I create on my website. If a site can receive Webmentions, they will be notified that I bookmarked their post for later.
Webmentions work by sending a notification to a special server on a site called a Webmention endpoint. The endpoint will process the mention, make sure it is valid, then keep track of the mention for the site author to see. For a Webmention to be valid, there must be a link between the source (the page that mentions a page), and the target (the page that is going to receive the mention).