Programming/Development Leftovers

-
A little update from Stack Overflow
When I saw Stack Overflow Chief Product Officer (CPO) Teresa Dietrich on the list of speakers at the All Things Open conference this year, I jumped at the chance to get an update.
We all know the value of Stack Overflow: the information that's been created there over the past twelve years is nothing short of vital for programmers, developers, and other technologists. Just the other day one of our contributors shared how critical it was to his process for starting to learn a new programming language quickly.
Teresa and her team are laser-focused on what Stack Overflow can do for teams of developers and operations folks these days, so I asked questions around her understanding of where Stack Overflow has been and where they are now during a global pandemic in order to maintain and grow a healthy Q&A platform.
What does Stack Overflow mean to developers today? What was it like 10 years ago?
-
Dirk Eddelbuettel: #31: Test your R package against bleeding-edge gcc
Welcome to the 31th post in the rapturously rampant R recommendations series, or R4 for short. This post will once again feature Docker for use with R.
Earlier this week, I received a note from CRAN about how my RcppTOML package was no longer building with the (as of right now of course unreleased) version 11 of the GNU C++ compiler, i.e. g++-11. And very kindly even included a hint about the likely fix (which was of course correct). CRAN, and one of its maintainers in particular, is extremely forward-looking in terms of toolchain changes. A year ago we were asked to updated possible use of global variables in C code as gcc-10 tightened the rules. This changes is a C++ one, and a fairly simple one of simply being more explicit with include headers. Previous g++ release had done the same.
The question now was about the least painful way to get g++-11 onto my machine, with the least amount of side-effects. Regular readers of this blog will know where this is headed, but even use of Docker requires binaries. A look at g++-11 within packages.debian.org comes up empty. No Debian means no Ubuntu. But … there is a PPA for Ubuntu with toolchain builds we have used before. And voilà there we have it: within the PPA for Ubuntu Toolchain repository is the volatile packages PPA with both g++-10 and g++-11. Here Ubuntu 20.10 works with g++-10, but g++-11 requires Ubuntu 21.04. Docker containers are there for either. So with the preliminaries sorted out, the key steps are fairly straightforward:
-
Advent of Code and Learning
So, I decided to do Advent of Code this year too. I usually get stuck part of the way, but I still think that it is a fun exercise.
This year the plan is to use python and pytest the whole way through. Every day that i learn something that I want to remember, I add a til.txt file in that sub-directory. You can follow my progress and learnings in the git repository.
-
AMD Sends Out Zen 3 Compiler Support For GCC + AOCC 2.3 Compiler Released
Following last month's release of the Ryzen 5000 "Zen 3" processors, AMD has now begun publishing their official compiler support for this extremely compelling processor family.
For as extremely great as Zen 3 is, it's the belated compiler support as one of the few critiques we've had -- normally on the Intel side they are often plumbing their compiler targets and new instruction set extension support a year or more ahead of CPU launches (e.g. the most recent example back in July Intel added Alder Lake and Sapphire Rapids to GCC), and that's for when those processors are shipping on schedule. Having the compiler support out well ahead of the launches ensure the support is worked into stable compiler releases by the time the CPUs ship and ideally already used as the default compiler version in major Linux distribution releases. Intel generally remains spot-on in that regard while AMD has been much tighter -- or in the case of Zen 3, basically one month after launch.
-
The Time I Stole $10,000 from Bell Labs
I worked at Bell Labs in New Jersey from 1994 to 2000. I was a systems administrator on a team of people charged with maintaining thousands of computers and the network that connected them. It was intimidating to be surrounded by so many brilliant scientists and engineers, many of whom had written the textbooks I used in college.
One day, I had to make a configuration change to the central router. It is difficult to measure the size of a change. I could say it was a tiny change in that it affected only a few lines of the router's configuration file. On the other hand, it was a big change in that it impacted a network used by thousands of users. It was an important change because an important project was blocked waiting for it to be completed.
I typed the commands to alter the configuration, saved the new configuration, and checked the things I usually check. The change was a success... or so I thought.
Proud of myself, I moved on to other work. A little while later I couldn't connect to most machines on the network. Neither could anyone else. I panicked. Could my change have caused that? Impossible! That was nearly an hour ago.
No, it was definitely my change. There are some typos that don't show any ill effects right away. In this case, a cache was held for 45 minutes. At 46 minutes the router was a very expensive box doing nothing.
-
Godot docs improvements report
Some of you like the docs for what it covers already; others dislike it for what it lacks.
The team's well-aware there is always room for improvement, and so they hired me to work part-time since September.
My job was to take the maintainer's role for about two months and tackle some high-priority tasks. As such, I got to do a mix of reviews, editing, writing new content, and maintenance.
Here's a report on the changes and the new content you can already enjoy today.
In everything I wrote or edited, the goal was to simplify the language, improve precision, organize the information, and generally enhance your experience reading the docs.
Note: you can find the changes in the bleeding-edge manual. We haven't back-ported them to the "stable" documentation yet as there are over 100 pages to redirect. More on that below.
-
POCL 1.6-RC1 Released With Better CUDA Performance - Phoronix
POCL as the "Portable Computing Language" that implements OpenCL and allows it to function atop CPUs as well as CUDA-enabled NVIDIA GPUs, HSA-supported AMD GPUs, and other possible back-ends, is preparing for a new feature release.
On Wednesday marked the release of POCL 1.6-RC1 as the test release for the next update to the Portable Computing Language.
-
It's templates all the way down - part 3
In Part 1 I've shown you how to create your own distribution image using the freedesktop.org CI templates. In Part 2, I've shown you how to truly build nested images. In this part, I'll talk about the ci-fairy tool that is part of the same repository of ci-templates.
When you're building a CI pipeline, there are some tasks that most projects need in some way or another. The ci-fairy tool is a grab-bag of solutions for these. Some of those solutions are for a pipeline itself, others are for running locally. So let's go through the various commands available.
-
gfldex: But what about eigenstates?
I wanted Shell::Piping to be able to deal better with STDERR because ffmpeg is outputting both status reports and errors to STDERR. In this case Capture will contain tons of stuff that is not an error message. So I need to be able to collect only a last few lines. Adding another adverb didn’t have much appeal because Shell/Piping.raku contains 21 multi candidates for infix:<|»>. I want to Capture, but only 2 lines. Using :stderr(Capture but 2)looks cool and is easy to implement. Since Capture is not a decent of Cool it doesn’t come with .Int, unless we mix 2 in. Then we can if-branch on my $limit = $stderr.?Int. That’s good because $stderr ~~ Int:D does not work and Metamodel::Mixins is not helpful either.
-
Day 4: Parsing Clojure namespace forms using Raku grammars – Raku Advent Calendar
One day, I started wondering if it would be possible to parse Clojure namespace forms and generate a dependency graph of the various namespaces used in a real-world Clojure project. While that was the original motivation, I ended up down the Raku grammar rabbit hole, and had an enjoyable time learning how to use them. I’m glad you’re joining me in reliving that journey.
[...]
Informally speaking, grammars can be thought of as a set of rules that describe a language. With these rules, one can meaningfully parse (to make sense of, or deconstruct into its grammatical components) a piece of text. It turns out that this is a common task in computing. We need to frequently translate programs from one language to another. This is the job of a compiler. Before being able to translate it, the compiler needs to know whether the original program is even valid, according to the language’s grammar.
While we have explained in theory what grammars are, Raku grammars help us model abstract grammars as a programming construct (the grammar keyword and its adjacent helpers) using which we can perform parsing tasks. It is important to understand this distinction.
First class grammars are considered one of the revolutionary features of Raku. Normally, you’d find grammars as a library or a standalone tool, but Raku has embraced it wholesale, and has a powerful implementation of grammars which makes light work of most parsing tasks.
-
Sam Thursfield: Beginning Rust
I have the privilege of some free time this December and I unexpectedly was inspired to do the first few days of the Advent of Code challenge, by a number of inspiring people including Philip Chimento, Daniel Silverstone and Ed Cragg.
The challenge can be completed in any language, but it’s a great excuse to learn something new. I have read a lot about Rust and never used until a few days ago.
Most of my recent experience is with Python and C, and Rust feels like it has many of the best bits of both languages. I didn’t get on well with Haskell, but the things I liked about that language are also there in Rust. It’s done very well at taking the good parts of these languages and leaving out the bad parts. There’s no camelCaseBullshit, in particular.
-
Advent of Rust 3: Once in ‘a Lifetime
Well, this is another long stream-of-consciousness chronicle of my attempt to learn how to program in Rust by doing the daily programming puzzles on Advent of Code 2020. It’s long, but on the plus side, this is the first time ever that I’ve published two blog posts in two days, let alone three in three days. And you know what they say, if I’d had more time, I would’ve written you a shorter letter.
I thought a bit about why it should even be interesting or valuable to write about my mistakes and thought process. Or put more bluntly, isn’t this just a waste of time? Who is this useful for?
Well, for one thing, at my job I’ve been working on Temporal, a standards-track proposal to add a modern API for dates and times to the JavaScript language. Earlier this year I conducted a survey of people who had tried out the proposed Temporal API, and one of the purposes was to try to figure out what was easy to understand and what was hard, for someone coming to Temporal with no prior knowledge. Even though I had been in exactly that position myself only a few months before, I had become so accustomed to using Temporal that I could literally remember nothing of my own experience.
It’s sometimes called the curse of knowledge. I’m sure I will look back in a year, or two years, when I have written lots of Rust code, and not remember any of this either, and I’ll be glad that I wrote it down. But maybe it’ll be valuable in the meantime to someone else!
-
- Login or register to post comments
Printer-friendly version
- 1897 reads
PDF version
More in Tux Machines
- Highlights
- Front Page
- Latest Headlines
- Archive
- Recent comments
- All-Time Popular Stories
- Hot Topics
- New Members
New in Linux 5.12
| Security and Proprietary Software
|
7 Linux Distros to Look Forward in 2021
Here is a list of most anticipated Linux distributions you should keep an eye on in the year 2021.
| Games Leftovers
|
Recent comments
1 min ago
2 hours 26 min ago
12 hours 17 min ago
12 hours 18 min ago
13 hours 40 min ago
13 hours 54 min ago
14 hours 29 min ago
15 hours 20 min ago
15 hours 21 min ago
15 hours 36 min ago