-- Leo's gemini proxy

-- Connecting to gemini.tuxmachines.org:1965...

-- Connected

-- Sending request

-- Meta line: 20 text/gemini;lang=en-GB

Tux Machines


Programming Leftovers


Posted by Roy Schestowitz on May 12, 2023


Windows and Microsoft TCO

Open Hardware, Devices, and Restoration



Return Reasons, Not Booleans


↺ 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


↺ 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.



You are holding it wrong


↺ You are holding it wrong


> 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


↺ 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


↺ 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


↺ 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.



Linux Fu: C On Jupyter


↺ Linux Fu: C On Jupyter


> 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.



Value Semantics


↺ Value Semantics


> 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


↺ 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


↺ 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


↺ 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 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

-- Response ended

-- Page fetched on Sat Jun 1 06:43:59 2024