Tux Machines
Posted by Roy Schestowitz on May 12, 2023
=> Windows and Microsoft TCO | Open Hardware, Devices, and Restoration
=> ↺ Return Reasons, Not Booleans
When you have a predicate that acts on a tree data structure, rather than return a Boolean, you should return an object that represents success/failure and carries explanatory information in the failure case.
=> ↺ Coloring in R's blind spot
Prior to version 4.0.0 R had a poor default color palette (using highly saturated red, green, blue, etc.) and provided very few alternative palettes, most of which also had poor perceptual properties (like the infamous rainbow palette). Starting with version 4.0.0 R gained a new and much improved default palette and, in addition, a selection of more than 100 well-established palettes are now available via the functions palette.colors() and hcl.colors(). The former provides a range of popular qualitative palettes for categorical data while the latter closely approximates many popular sequential and diverging palettes by systematically varying the perceptual hue, chroma, luminance (HCL) properties in the palette. This paper provides an overview of these new color functions and the palettes they provide along with advice about which palettes are appropriate for specific tasks, especially with regard to making them accessible to viewers with color vision deficiencies.
Here is the same program, now in Rust: [...]
After all this years using and contributing to Rust, it still feels like a major breakthrough bridging Computer Science research and pragmatic software development3. This kind of program analysis is supposed to be too impractical for real-world programming, yet it works!
=> ↺ Working with git Patches in Apple Mail
I recently covered how to work with git email patches in Evolution on Linux, so I thought it would make sense to walk through a similar workflow for those using Apple Mail on MacOS. The idea is essentially the same, with just a little extra work involved.
=> ↺ I've mostly stopped reading technical mailing lists
The primary change I've noticed of these mailing lists is that they see a lot more questions that are either basic or very specific, where if I had the question I would have expected to answer it myself by reading through the documentation. In the beginning I had unkind descriptions of these sorts of questions, but I've come to be more sympathetic to them, especially the questions that come from people abroad who may not have English as their first language. The unfortunate fact is that projects aren't necessarily well documented and their documentation probably is dauntingly hard to read for people who aren't fluent in technical English, and people have work to get done (using those projects). Turning to the project user mailing list and asking their questions, if it works, is probably much faster than the alternatives (and their boss may be yelling at them to get it done ASAP).
=> ↺ Implementing OAuth 2.0 Flow in Non-Web Clients
It’s easy and intuitive to implement OAuth 2.0 in web applications. However, when setting up OAuth 2.0 for non-web clients this becomes difficult as OAuth 2.0 requires redirect (callback) URLs.
If you are a Pythonista or a data scientist, you’ve probably used Jupyter. If you haven’t, it is an interesting way to work with Python by placing it in a Markdown document in a web browser. Part spreadsheet, part web page, part Python program, you create notebooks that can contain data, programs, graphics, and widgets. You can run it locally and attach to it via a local port with a browser or, of course, run it in the cloud if you like. But you don’t have to use Python.
C++ is an old language. Many aspects of our programming styles have become habits that we do not think about too much today.
=> ↺ Dirk Eddelbuettel: crc32c 0.0.2 on CRAN: Build Fixes
A first follow-up to the initial announcement just days ago of the new crc32c package. The package offers cyclical checksum with parity in hardware-accelerated form on (recent enough) intel cpus as well as on arm64.
=> ↺ initial announcement | ↺ crc32c
=> ↺ initial announcement | ↺ crc32c
=> ↺ How R Shiny Helps Protect Coral Reefs in Micronesia
Appsilon is on a mission to tackle global challenges around climate change and biodiversity loss – the biggest threats faced by humanity. We collaborate with scientists, organizations, and businesses to make a positive impact on the world.
=> ↺ Problems harder than NP-Complete
People always talk about “P vs NP” like P problems are easy and NP problems are hard. This is a useful day-to-day model but also an oversimplification.
Problems can get way, way harder than NP.
=> ↺ The real reason why open source software is better
The prevailing consensus at the current time seems to be that open source software is of higher quality than corresponding proprietary ones. Several reasons have been put forth on why this is. One main reason given is that with open source any programmer in the world can inspect the code and contribute fixes. Closely tied to this is the fact that it is plain not possible to hide massive blunders in open source projects whereas behind closed walls it is trivial.
All of these and more are valid reasons for improved quality. But there are other, more sinister reasons that are usually not spoken of. In order to understand one of them, we need to first do a slight detour.
=> gemini.tuxmachines.org This content has been proxied by September (ba2dc).Proxy Information
text/gemini;lang=en-GB