Russ Allbery: Review: A Study in Honor
| Series: | Janet Watson Chronicles #1 |
| Publisher: | Harper Voyager |
| Copyright: | July 2018 |
| ISBN: | 0-06-269932-6 |
| Format: | Kindle |
| Pages: | 295 |
| Series: | Janet Watson Chronicles #1 |
| Publisher: | Harper Voyager |
| Copyright: | July 2018 |
| ISBN: | 0-06-269932-6 |
| Format: | Kindle |
| Pages: | 295 |
Over roughly the last year and a half I have been participating as a reviewer in
ACM s Computing Reviews, and have even
been honored as a Featured
Reviewer.
Given I have long enjoyed reading friends reviews of their reading material
(particularly, hats off to the very active Russ
Allbery, who both beats all of my
frequency expectations (I could never sustain the rythm he reads to!) and holds
documented records for his >20 years as a book reader, with far more clarity and
readability than I can aim for!), I decided to explicitly share my reviews via
this blog, as the audience is somewhat congruent; I will also link here some
reviews that were not approved for publication, clearly marking them so.
I will probably work on wrangling my Jekyll site
to display an (auto-)updated page and RSS feed for the reviews. In the meantime,
the reviews I have published are:
So yeah, I bought the Shura.
It's been about a year since I got the Tex Shinobi keyboard. I ended up
taking to the office and using it there. The MX Silent Red switches are a good
fit for a shared space, and I have a bit more desk space so the extra large
footprint is not a problem.
Back at home, I have a reasonably large desk, but I've got a Synth jammed at
the back-centre, leaving a slightly tight budget for keyboard depth. The Shura
is nice and compact and fits in perfectly.
So what should I say about it? Build quality is excellent. I went with MX Reds
(non-silent this time) which feel a lot better to me than the silent variant. I
do worry about waking the kids up if I type after they've gone to bed, but it
hasn't actually been a problem (and the switches activate quite early in travel
so you can "tip-toe" type silently, and slowly).
I like these keyboards (and I've otherwise avoided the Mech keyboard money pit)
because they have the integrated trackpoint, which I rely on. Just as with the
Shinobi, the Trackpoint is of an excellent quality, pretty much indistinguishable
from that on the official Lenovo trackpoint keyboards.
Since the Shura is a a "60%" or "65%" or "70%" or something, thus forgoing the
Function keys and such, I rely on "layers": switching the function of all the
regular keys whilst "Fn" is pressed. You can reprogram the Tex keyboards using
a profile output by their web-based configurator
which I've used to mildly customize the layout: swapped left-hand "Win" with
"Fn" (FN1), mapped FN1 to the right-hand "Win". That's it so far, the defaults
are otherwise sufficient for me. I've also used the DIP switches to enable
mouse wheel emulation with the trackpoint (in common with the Lenovos).
In September, Justin from TeX left an intriguing comment on my
last blog post:
Thanks for your promotion !! We will try to design a new keyboard ( a little ergo keyboard ) should be release end of this year !!
![]() |
| Photo by Pixabay |
Given a typical install of 3 generic kernel ABIs in the default configuration on a regular-sized VM (2 CPU cores 8GB of RAM) the following metrics are achieved in Ubuntu 23.10 versus Ubuntu 22.04 LTS:
2x less disk space used (1,417MB vs 2,940MB, including initrd)
3x less peak RAM usage for the initrd boot (68MB vs 204MB)
0.5x increase in download size (949MB vs 600MB)
2.5x faster initrd generation (4.5s vs 11.3s)
approximately the same total time (103s vs 98s, hardware dependent)
For minimal cloud images that do not install either linux-firmware or modules extra the numbers are:
1.3x less disk space used (548MB vs 742MB)
2.2x less peak RAM usage for initrd boot (27MB vs 62MB)
0.4x increase in download size (207MB vs 146MB)
Hopefully, the compromise of download size, relative to the disk space & initrd savings is a win for the majority of platforms and use cases. For users on extremely expensive and metered connections, the likely best saving is to receive air-gapped updates or skip updates.
This was achieved by precompressing kernel modules & firmware files with the maximum level of Zstd compression at package build time; making actual .deb files uncompressed; assembling the initrd using split cpio archives - uncompressed for the pre-compressed files, whilst compressing only the userspace portions of the initrd; enabling in-kernel module decompression support with matching kmod; fixing bugs in all of the above, and landing all of these things in time for the feature freeze. Whilst leveraging the experience and some of the design choices implementations we have already been shipping on Ubuntu Core. Some of these changes are backported to Jammy, but only enough to support smooth upgrades to Mantic and later. Complete gains are only possible to experience on Mantic and later.
The discovered bugs in kernel module loading code likely affect systems that use LoadPin LSM with kernel space module uncompression as used on ChromeOS systems. Hopefully, Kees Cook or other ChromeOS developers pick up the kernel fixes from the stable trees. Or you know, just use Ubuntu kernels as they do get fixes and features like these first.
The team that designed and delivered these changes is large: Benjamin Drung, Andrea Righi, Juerg Haefliger, Julian Andres Klode, Steve Langasek, Michael Hudson-Doyle, Robert Kratky, Adrien Nader, Tim Gardner, Roxana Nicolescu - and myself Dimitri John Ledkov ensuring the most optimal solution is implemented, everything lands on time, and even implementing portions of the final solution.
Hi, It's me, I am a Staff Engineer at Canonical and we are hiring https://canonical.com/careers.
Lots of additional technical details and benchmarks on a huge range of diverse hardware and architectures, and bikeshedding all the things below:
Like each month, have a look at the work funded by Freexian s Debian LTS offering.
Welcome to the October 2023 report from the Reproducible Builds project. In these reports we outline the most important things that we have been up to over the past month. As a quick recap, whilst anyone may inspect the source code of free software for malicious flaws, almost all software is distributed to end users as pre-compiled binaries.
Between October 31st and November 2nd, we held our seventh Reproducible Builds Summit in Hamburg, Germany!
Our summits are a unique gathering that brings together attendees from diverse projects, united by a shared vision of advancing the Reproducible Builds effort, and this instance was no different.
During this enriching event, participants had the opportunity to engage in discussions, establish connections and exchange ideas to drive progress in this vital field. A number of concrete outcomes from the summit will documented in the report for November 2023 and elsewhere.
Amazingly the agenda and all notes from all sessions are already online.
The Reproducible Builds team would like to thank our event sponsors who include Mullvad VPN, openSUSE, Debian, Software Freedom Conservancy, Allotropia and Aspiration Tech.
Russ Cox posted a fascinating article on his blog prompted by the fortieth anniversary of Ken Thompson s award-winning paper, Reflections on Trusting Trust:
[ ] In March 2023, Ken gave the closing keynote [and] during the Q&A session, someone jokingly asked about the Turing award lecture, specifically can you tell us right now whether you have a backdoor into every copy of gcc and Linux still today?Although Ken reveals (or at least claims!) that he has no such backdoor, he does admit that he has the actual code which Russ requests and subsequently dissects in great but accessible detail.
Rahul Bajaj, Eduardo Fernandes, Bram Adams and Ahmed E. Hassan from the Maintenance, Construction and Intelligence of Software (MCIS) laboratory within the School of Computing, Queen s University in Ontario, Canada have published a paper on the Time to fix, causes and correlation with external ecosystem factors of unreproducible builds.
The authors compare various response times within the Debian and Arch Linux distributions including, for example:
Arch Linux packages become reproducible a median of 30 days quicker when compared to Debian packages, while Debian packages remain reproducible for a median of 68 days longer once fixed.A full PDF of their paper is available online, as are many other interesting papers on MCIS publication page.
On the NixOS Discourse instance, Arnout Engelen (raboof) announced that NixOS have created an independent, bit-for-bit identical rebuilding of the nixos-minimal image that is used to install NixOS. In their post, Arnout details what exactly can be reproduced, and even includes some of the history of this endeavour:
You may remember a 2021 announcement that the minimal ISO was 100% reproducible. While back then we successfully tested that all packages that were needed to build the ISO were individually reproducible, actually rebuilding the ISO still introduced differences. This was due to some remaining problems in the hydra cache and the way the ISO was created. By the time we fixed those, regressions had popped up (notably an upstream problem in Python 3.10), and it isn t until this week that we were back to having everything reproducible and being able to validate the complete chain.Congratulations to NixOS team for reaching this important milestone! Discussion about this announcement can be found underneath the post itself, as well as on Hacker News.
Seth Larson published a blog post investigating the reproducibility of the CPython source tarballs. Using diffoscope, reprotest and other tools, Seth documents his work that led to a pull request to make these files reproducible which was merged by ukasz Langa.
arm64 hardware from Codethink
Long-time sponsor of the project, Codethink, have generously replaced our old Moonshot-Slides , which they have generously hosted since 2016 with new KVM-based arm64 hardware. Holger Levsen integrated these new nodes to the Reproducible Builds continuous integration framework.
ext4 filesystem images. [ ]
distro-info is a Debian-oriented tool that can provide information about Debian (and Ubuntu) distributions such as their codenames (eg. bookworm) and so on. This month, Benjamin Drung uploaded a new version of distro-info that added support for the SOURCE_DATE_EPOCH environment variable in order to close bug #1034422. In addition, 8 reviews of packages were added, 74 were updated and 56 were removed this month, all adding to our knowledge about identified issues.
Bernhard M. Wiedemann published another monthly report about reproducibility within openSUSE.
edje_cc (race condition)elasticsearch (build failure)erlang-retest (embedded .zip timestamp)fdo-client (embeds private keys)fftw3 (random ordering)gsoap (date issue)gutenprint (date)hub/golang (embeds random build path)Hyprland (filesystem issue)kitty (sort-related issue, .tar file embeds modification time)libpinyin (ASLR)maildir-utils (date embedded in copyright)mame (order-related issue)mingw32-binutils & mingw64-binutils (date)MooseX (date from perl-MooseX-App)occt (sorting issue)openblas (embeds CPU count)OpenRGB (corruption-related issue)python-numpy (random file names)python-pandas (FTBFS)python-quantities (date)python3-pyside2 (order)qemu (date and Sphinx issue)qpid (sorting problem)rakudo (filesystem ordering issue)SLOF (date-related issue)spack (CPU counting issue)xemacs-packages (date-related issue)file -i returns text/plain, fallback to comparing as a text file. This was originally filed as Debian bug #1053668) by Niels Thykier. [ ] This was then uploaded to Debian (and elsewhere) as version 251.
The Reproducible Builds project operates a comprehensive testing framework (available at tests.reproducible-builds.org) in order to check packages and other artifacts for reproducibility. In October, a number of changes were made by Holger Levsen:
#debian-reproducible-changes IRC channel. [ ][ ][ ]systemd-oomd on all Debian bookworm nodes (re. Debian bug #1052257). [ ]schroots. [ ]arm64 machines from Codethink. [ ][ ][ ][ ][ ][ ]#reproducible-builds on irc.oftc.net.
rb-general@lists.reproducible-builds.org
mariadb.sys user which . doesn t have a password set. It seems to be
locked down in other ways, but my dumb script didn t know about that and
happily deleted the user.
Who needs that mariadb.sys user anyway?
Apparently we all do. On one server, I can t login as root anymore. On another
server I can login as root, but if I try to list users I get an error:
ERROR 1449 (HY000): The user specified as a definer ( mariadb.sys @ localhost ) does not existThe Internt is full of useless advice. The most common is to simply insert that user. Except
MariaDB [mysql]> CREATE USER mariadb.sys @ localhost ACCOUNT LOCK PASSWORD EXPIRE;
ERROR 1396 (HY000): Operation CREATE USER failed for 'mariadb.sys'@'localhost'
MariaDB [mysql]>
Yeah, that s not going to work.
It seems like we are dealing with two changes. One, the old mysql.user table
was replaced by the global_priv
table and then turned into
a view for backwards compatibility.
And two, for sensible reasons the
default definer for this view has been changed from the root user to a user that,
ahem, is unlikely to be changed or deleted.
Apparently I can t add the mariadb.sys user because it would alter the user
view which has a definer that doesn t exist. Although not sure if this really is
the reason?
Fortunately, I found an excellent
suggestion for changing the definer of a
view. My modified version of the answer is, run the following command which
will generate a SQL statement:
SELECT CONCAT("ALTER DEFINER=root@localhost VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='mysql' AND definer = 'mariadb.sys@localhost';
Then, execute the statement.
And then also update the mysql.proc table:
UPDATE mysql.proc SET definer = 'root@localhost' WHERE definer = 'mariadb.sys@localhost';
And lastly, I had to run:
DELETE FROM tables_priv WHERE User = 'mariadb.sys';
FLUSH privileges;
Wait, was the tables_priv entry the whole problem all along? Not sure. But now I can run:
CREATE USER mariadb.sys @ localhost ACCOUNT LOCK PASSWORD EXPIRE;
GRANT SELECT, DELETE ON mysql . global_priv TO mariadb.sys @ localhost ;
And reverse the other statements:
SELECT CONCAT("ALTER DEFINER= mariadb.sys @localhost VIEW ", table_name, " AS ", view_definition, ";") FROM information_schema.views WHERE table_schema='mysql' AND definer = 'root@localhost';
[Execute the output.]
UPDATE mysql.proc SET definer = 'mariadb.sys@localhost' WHERE definer = 'root@localhost';
And while we re on the topic of borked MariaDB authentication, here are the
steps to change the root password and restore all root privielges if you can t
get in at all or your root user is missing the GRANT OPTION (you can change
ALTER to CREATE if the root user does not even exist):
systemctl stop mariadb
mariadbd-safe --skip-grant-tables --skip-networking &
mysql -u root
[mysql]> FLUSH PRIVILEGES
[mysql]> ALTER USER root @ localhost IDENTIFIED VIA mysql_native_password USING PASSWORD('your-secret-password') OR unix_socket;
[mysql]> GRANT ALL PRIVILEGES ON *.* to 'root'@'localhost' WITH GRANT OPTION;
mariadbd-admin shutdown
systemctl start mariadb
| Publisher: | Amazon Original Stories |
| Copyright: | June 2023 |
| ISBN: | 1-6625-1572-3 |
| ISBN: | 1-6625-1622-3 |
| ISBN: | 1-6625-1503-0 |
| ISBN: | 1-6625-1567-7 |
| ISBN: | 1-6625-1678-9 |
| ISBN: | 1-6625-1533-2 |
| Format: | Kindle |
| Pages: | 219 |
KDE neon

Thank you for stopping by.
Donate
https://gofund.me/b8b69e54
Debian Celebrates 30 years!
We celebrated our birthday this year and
we had a great time with new friends, new members welcomed to the community,
and the world.
We have collected a few comments, videos, and discussions from
around the Internet, and some images from some of the
DebianDay2023 events. We hope that
you enjoyed the day(s) as much as we did!
"Debian 30 years of collective intelligence" -Maqsuel Maqson
Brazil
The cake is there. :)
Honorary Debian Developers: Buzz, Jessie, and Woody welcome guests to this amazing party.
Sao Carlos, state of Sao Paulo, Brazil
Stickers, and Fliers, and Laptops, oh my!
Belo Horizonte, Brazil
Bras lia, Brazil
Bras lia, Brazil
Mexico
30 a os!
A quick Selfie
We do not encourage beverages on computing hardware, but this one is okay by us.
Germany
The German Delegation is also looking for this dog who footed the bill for the party, then left mysteriously.
We brought the party back inside at CCCamp
Belgium
Cake and Diversity in Belgium
El Salvador
Food and Fellowship in El Salvador
South Africa
Debian is also very delicious!
All smiles waiting to eat the cake Reports Debian Day 30 years in Macei - Brazil Debian Day 30 years in S o Carlos - Brazil Debian Day 30 years in Pouso Alegre - Brazil Debian Day 30 years in Belo Horizonte - Brazil Debian Day 30 years in Curitiba - Brazil Debian Day 30 years in Bras lia - Brazil Debian Day 30 years online in Brazil Articles & Blogs Happy Debian Day - going 30 years strong - Liam Dawe Debian Turns 30 Years Old, Happy Birthday! - Marius Nestor 30 Years of Stability, Security, and Freedom: Celebrating Debian s Birthday - Bobby Borisov Happy 30th Birthday, Debian! - Claudio Kuenzier Debian is 30 and Sgt Pepper Is at Least Ninetysomething - Christine Hall Debian turns 30! -Corbet Thirty years of Debian! - Lennart Hengstmengel Debian marks three decades as 'Universal Operating System' - Sam Varghese Debian Linux Celebrates 30 Years Milestone - Joshua James 30 years on, Debian is at the heart of the world's most successful Linux distros - Liam Proven Looking Back on 30 Years of Debian - Maya Posch Cheers to 30 Years of Debian: A Journey of Open Source Excellence - arindam Discussions and Social Media Debian Celebrates 30 Years - Source: News YCombinator Brand-new Linux release, which I'm calling the Debian ... Source: News YCombinator Comment: Congrats @debian !!! Happy Birthday! Thank you for becoming a cornerstone of the #opensource world. Here's to decades of collaboration, stability & #software #freedom -openSUSELinux via X (formerly Twitter) Comment: Today we #celebrate the 30th birthday of #Debian, one of the largest and most important cornerstones of the #opensourcecommunity. For this we would like to thank you very much and wish you the best for the next 30 years! Source: X (Formerly Twitter -TUXEDOComputers via X (formerly Twitter) Happy Debian Day! - Source: Reddit.com Video The History of Debian The Beginning - Source: Linux User Space Debian Celebrates 30 years -Source: Lobste.rs Video Debian At 30 and No More Distro Hopping! - LWDW388 - Source: LinuxGameCast Debian Celebrates 30 years! - Source: Debian User Forums Debian Celebrates 30 years! - Source: Linux.org
There is a bit of context that needs to be shared before I get to this and would be a long one. For reasons known and unknown, I have a lot of sudden electricity outages. Not just me, all those who are on my line. A discussion with a lineman revealed that around 200+ families and businesses are on the same line and when for whatever reason the electricity goes for all. Even some of the traffic lights don t work. This affects software more than hardware or in some cases, both. And more specifically HDD s are vulnerable. I had bought an APC unit several years for precisely this, but over period of time it just couldn t function and trips also when the electricity goes out. It s been 6-7 years so can t even ask customer service to fix the issue and from whatever discussions I have had with APC personnel, the only meaningful difference is to buy a new unit but even then not sure this is an issue that can be resolved, even with that.
That comes to the issue that happens once in a while where the system fsck is unable to repair /home and you need to use an external pen drive for the same. This is my how my hdd stacks up
The main argument as have shared before is that Indian Govt. thinks we need our home grown CPU and while I have no issues with that, as shared before except for RISC-V there is no other space where India could look into doing that. Especially after the Chip Act, Biden has made that any new fabs or any new thing in chip fabrication will only be shared with Five Eyes only. Also, while India is looking to generate about 2000 GW by 2030 by solar, China has an ambitious 20,000 GW generation capacity by the end of this year and the Chinese are the ones who are actually driving down the module prices. The Chinese are also automating their factories as if there s no tomorrow. The end result of both is that China will continue to be the world s factory floor for the foreseeable future and whoever may try whatever policies, it probably is gonna be difficult to compete with them on prices of electronic products. That s the reason the U.S. has been trying so that China doesn t get the latest technology but that perhaps is a story for another day.

. Backups certainly make a lot of sense, especially rsync.
The other thing that came to my mind was having some sort of A.I. and chat server. IIRC, somebody has put quite a bit of open source public domain data in debian servers that could be used to run either a chatbot or an A.I. or both and use that similar to how chatGPT but with much limited scope than what chatgpt uses. I was also thinking a media server which Vishal did share he does. I may probably visit him sometime to see what choices he did and what he learned in the process, if anything.
Another thing that could be done is just take a dump of any of commodity markets or any markets and have some sort of predictive A.I. or whatever. A whole bunch of people have scammed thousands of Indian users on this, but if you do it on your own and for your own purposes to aid you buy and sell stocks or whatever commodity you may fancy. After all, nowadays markets themselves are virtual.
While Vishal s mini-pc doesn t have any graphics, if it was an AMD APU mini-pc, something like this he could have hosted games in the way of thick server, thin client where all graphics processing happens on the server rather than the client. With virtual reality I think the case for the same case could be made or much more. The only problem with VR/AR is that we don t really have mass-market googles, eye pieces or headset. The only notable project that Google has/had in that place is the Google VR Cardboard headset and the experience is not that great or at least was not that great few years back when I could hear and experience the same. Most of the VR headsets say for example the Meta Quest 2 is for around INR 44k/- while Quest 3 is INR 50k+ and officially not available. As have shared before, the holy grail of VR would be when it falls below INR 10k/- so it becomes just another accessory, not something you really have to save for. There also isn t much content on that but then that is also the whole chicken or egg situation. This again is a non-stop discussion as so much has been happening in that space it needs its own blog post/article whatever.
Till later.
Welcome to the 41th post in the $R^4 series. This
post draws on joint experiments first started by Grant building on the
lovely work done by Eitsupi as
part of our Rocker Project. In
short, r2u is an ideal
match for Codespaces, a
Microsoft/GitHub service to run code locally but in the cloud via
browser or Visual Studio
Code. This posts co-serves as the README.md in the .devcontainer
directory as well as a vignette
for r2u.
So let us get into it. Starting from the r2u repository, the .devcontainer
directory provides a small self-containted file
devcontainer.json to launch an executable environment R
using r2u. It is based on the example in Grant
McDermott s codespaces-r2u repo and reuses its documentation. It is
driven by the Rocker
Project s Devcontainer Features repo creating a fully functioning R
environment for cloud use in a few minutes. And thanks to r2u you can add easily to
this environment by installing new R packages in a fast and failsafe
way.
The first time you do this, it will open up a new browser tab where
your Codespace is being instantiated. This first-time instantiation
will take a few minutes (feel free to click View logs to see how
things are progressing) so please be patient. Once built, your Codespace
will deploy almost immediately when you use it again in the future.
After the VS Code editor opens up in your browser, feel free to open
up the examples/sfExample.R
file. It demonstrates how r2u enables us install
packages and their system-dependencies with ease, here
installing packages sf (including all its
geospatial dependencies) and ggplot2 (including
all its dependencies). You can run the code easily in the browser
environment: Highlight or hover over line(s) and execute them by hitting
Cmd+Return (Mac) /
Ctrl+Return (Linux / Windows).
(Both example screenshots reflect the initial codespaces-r2u
repo as well as personal scratchspace one which we started with, both of
course work here too.)
Do not forget to close your Codespace once you have finished using
it. Click the Codespaces tab at the very bottom left of your code
editor / browser and select Close Current Codespace in the resulting
pop-up box. You can restart it at any time, for example by going to
https://github.com/codespaces and clicking on your instance.
examples/censusExample.R
which install both the cellxgene-census
and tiledbsoma R
packages as binaries from r-universe (along with about 100
dependencies), downloads single-cell data from Census and uses Seurat to create PCA and
UMAP decomposition plots. Note that in order run this you have to
change the Codespaces default instance from small (4gb ram) to large
(16gb ram).
>< tab at the
very bottom left of your VS Code editor and select this option. To shut
down the container, simply click the same button and choose Reopen
Folder Locally . You can always search for these commands via the
command palette too (Cmd+Shift+p /
Ctrl+Shift+p).
.devcontainers in your selected repo, and add the file .devcontainers/devcontainer.json.
You can customize it by enabling other feature, or use the
postCreateCommand field to install packages (while taking
full advantage of r2u).
bspm making
package installation to the sysstem so seamless.This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
Originally posted 2023-08-13, minimally edited 2023-08-15 which changed the timestamo and URL.
Welcome to the 41th post in the $R^4 series. This
post draws on joint experiments first started by Grant building on the
lovely work Eitsupi as part of
our Rocker Project. In short,
r2u is an ideal match
for Codesspaces, a
Microsoft/GitHub service to run code locally but in the cloud via
browser or Visual Studio
Code. This posts co-serves as the README.md in the .devcontainer
directory as well as a vignette
for r2u.
So let us get into it. Starting from the r2u repository, the .devcontainer
directory provides a small self-containted file
devcontainer.json to launch an executable environment R
using r2u. It is based on the example in Grant
McDermott s codespaces-r2u repo and reuses its documentation. It is
driven by the Rocker
Project s Devcontainer Features repo creating a fully functioning R
environment for cloud use in a few minutes. And thanks to r2u you can add easily to
this environment by installing new R packages in a fast and failsafe
way.
The first time you do this, it will open up a new browser tab where
your Codespace is being instantiated. This first-time instantiation
will take a few minutes (feel free to click View logs to see how
things are progressing) so please be patient. Once built, your Codespace
will deploy almost immediately when you use it again in the future.
After the VS Code editor opens up in your browser, feel free to open
up the examples/sfExample.R
file. It demonstrates how r2u enables us install
packages and their system-dependencies with ease, here
installing packages sf (including all its
geospatial dependencies) and ggplot2 (including
all its dependencies). You can run the code easily in the browser
environment: Highlight or hover over line(s) and execute them by hitting
Cmd+Return (Mac) /
Ctrl+Return (Linux / Windows).
(Both example screenshots reflect the initial codespaces-r2u
repo as well as personal scratchspace one which we started with, both of
course work here too.)
Do not forget to close your Codespace once you have finished using
it. Click the Codespaces tab at the very bottom left of your code
editor / browser and select Close Current Codespace in the resulting
pop-up box. You can restart it at any time, for example by going to
https://github.com/codespaces and clicking on your instance.
examples/censusExample.R
which install both the cellxgene-census
and tiledbsoma R
packages as binaries from r-universe (along with about 100
dependencies), downloads single-cell data from Census and uses Seurat to create PCA and
UMAP decomposition plots. Note that in order run this you have to
change the Codespaces default instance from small (4gb ram) to large
(16gb ram).
>< tab at the
very bottom left of your VS Code editor and select this option. To shut
down the container, simply click the same button and choose Reopen
Folder Locally . You can always search for these commands via the
command palette too (Cmd+Shift+p /
Ctrl+Shift+p).
.devcontainers in your selected repo, and add the file .devcontainers/devcontainer.json.
You can customize it by enabling other feature, or use the
postCreateCommand field to install packages (while taking
full advantage of r2u).
bspm making
package installation to the sysstem so seamless.This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
KDE Skrooge snap
If you can spare some change ( anything helps ) please consider a donation. https://gofund.me/5d0691bc
A big thank you to the community for making my work possible thus far!
$ sudo apt install -t bookworm-backports freedombox
We are also planning to update the version of FreedomBox in bookworm to have the fix. Once this update is available, then running the above command won t be necessary to receive FreedomBox feature updates.
[1] https://salsa.debian.org/freedombox-team/freedombox/-/issues/2368
[2] https://salsa.debian.org/freedombox-team/freedombox/-/merge_requests/2409



Welcome to the 41th post in the $R^4 series. Just
as the previous
post illustrated r2u use to empower
interactive Google
Colab sessions, today we want to look at continuous integration via
GitHub Actions.
Actions are very powerful, yet also intimidating and complex. How
does one know what to run? How does ensure requirements are installed?
What does these other actions do?
Here we offer a much simpler yet fully automatic
solution. It takes advantage of the fact that r2u integrates
fully and automatically with the system, here
apt, without us having to worry about the setup. One way to
make this very easy is the use of the Rocker containers for r2u. They already include
the few lines of simple (and scriptable) setup, and have bspm setup so that R
commands to install packages dispatch to apt and will bring
all required dependencies automatically and easily.
With that the required yaml file for an action can be as simple as
this:
name: r2u
on:
push:
pull_request:
release:
jobs:
ci:
runs-on: ubuntu-latest
container:
image: rocker/r2u:latest
steps:
- uses: actions/checkout@v3
- name: SessionInfo
run: R -q -e 'sessionInfo()'
#- name: System Dependencies
# # can be used to install e.g. cmake or other build dependencies
# run: apt update -qq && apt install --yes --no-install-recommends cmake git
- name: Package Dependencies
run: R -q -e 'remotes::install_deps(".", dependencies=TRUE)'
- name: Build Package
run: R CMD build --no-build-vignettes --no-manual .
- name: Check Package
run: R CMD check --no-vignettes --no-manual $(ls -1tr *.tar.gz tail -1)on block where for simplicity we
select pushes, pull requests and releases. One could reduce this to just
pushes by removing or commenting out the next two lines. Many further
refinements are possible and documented but not reqired.
Second, the jobs section and its sole field
ci saythat we are running this CI on Ubuntu in its latest
release. Importantly we then also select the rocker container for r2 meaning that we
explicitly select running in this container (which happens to be an
extension and refinement of ubuntu-latest). The
latest tag points to the most recent LTS release, currently
jammy aka 22.04. This choice also means that our runs are
limited to Ubuntu and exclude macOS and Windows. That is a choice: not
every CI task needs to burn extra (and more expensive) cpu cycles on the
alternative OS, yet those can always be added via other yaml files
possibly conditioned on fewer runs (say: only pull requests) if
needed.
Third, we have the basic sequence of steps. We check out
the repo this file is part of (very standard). After that we ask
R show the session info in case we need to troubleshoot.
(These two lines could be commented out.) Next we show a commented-out
segment we needed in another repo where we needed to add
cmake and git as the package in question
required local compilation during build. Such a need is fairly rare, but
as shown can be be accomodated easily while taking advantage of the rich
development infrastructure provided by Ubuntu. But the step should be
optional for most R packages so it is commented out here. The next step
uses the remotes package
to look at the DESCRIPTION file and install all dependencies which,
thanks to r2u and bspm, will use all Ubuntu
binaries making it both very fast, very easy, and generally failsafe.
Finally we do the two standard steps of building the source
package and checking it (while omitting vignettes and the (pdf)
manual as the container does not bother with a full texlive
installation this could be altered if desired in a derived
container).
And that s it! The startup cost is a few seconds to pull the
container, plus a few more seconds for dependencies and let us recall
that e.g. the entire tidyverse installs all one hundred plus
packages in about twenty seconds as shown in earlier post. After that
the next cost is generally just what it takes to build and check your
package once all requirements are in.
To use such a file for continuous integration, we can install it in
the .github/workflows/ directory of a repository. One
filename I have used is .github/workflows/r2u.yaml making
it clear what this does and how.
More information about r2u is at its site, and we
answered some question in issues, and at stackoverflow. More questions
are always welcome!
If you like this or other open-source work I do, you can now sponsor me at
GitHub.
This post by Dirk Eddelbuettel originated on his Thinking inside the box blog. Please report excessive re-aggregation in third-party for-profit settings.
We took a couple of days of for a family vacation / road trip through
the hills of Central Mexico. The overall trip does not look like
anything out of the ordinary
Other than the fact that Google forecasted we d take approximately
15.5 hours driving for 852Km that is, an average of almost 55
Km/h. And yes, that s what we signed up for. And that s what we
got. Of course, the exact routes are not exactly what Google suggested
(I can say we optimized a bit the route, i.e., by avoiding the
metropolitan area of Quer taro, at the extreme west, and going via San
Juan del R o / Tequisquiapan / Bernal).
The first stretch of the road is just a regular, huge highway, with
no particular insights. The highways leaving and entering Mexico City
on the North are not fun nor beautiful, only they are needed to get
nice trips going
Mexico City sits at a point of changing climates. Of course, it is a
huge city And I cannot imagine how it would be without all of the
urbanization it now sports. But anyway: On the West, South, and part
of the East, it is surrounded by high mountains, with beautiful and
dense forests. Mexico City is 2200m high, and most of the valley s
surrounding peaks are ~3000m (and at the South Eastern tip, our two
big volcanoes, Popocat petl and Iztacc huatl, get past the 5700m
mark). Towards the North, the landscape is flatter and much more
dry. Industrial compounds give way to dry grasslands. Of course,
central Mexico does not understand the true meaning of flat, and the
landscape is full with eh-not-very-big mountains.
Then, as we entered Quer taro State, we started approaching
Bernal. And we saw a huge rock that looks like it is not supposed
to be there! It just does not fit the surroundings.
Shortly after Bernal, we entered a beautiful, although most crumpled,
mountain ridge: Sierra Gorda de
Quer taro. Sierra Gorda
encompasses most of the North of the (quite small 11500Km total)
state of Quer taro, plus portions of the neighboring states; other
than the very abrupt and sharp orography, what strikes me most is the
habitat diversity it encompasses. We started going up an absolute
desert, harsh and beautiful; we didn t take pictures along the way as
the road is difficult enough that there are almost no points for
stopping for refreshments or for photo opportunities. But it is quite
majestic. And if you think deserts are barren, boring places well,
please do spend some time enjoying them!
Anyway At on point, the road passes by a ~3100m height, and
suddenly Pines! More pines! A beautiful forest! We reached our
first stop at the originally mining town of Pinal de
Amoles.
After spending the night there and getting a much needed rest, we
started a quite steep descent towards Jalpan de
Serra. While it is
only ~20Km away on the map, we descended from 2300 to 760 meters of
altitude (and the road was over 40Km long).
Being much lower, the climate drastically changed from cool and humid
to quite warm and the body attitude in the kids does not lie!
In the mid-18th century, Fray Jun pero Serra established five missions
to evangelize the population of this very harsh territory, and the
frontispiece for the church and monastery in Jalpan is quite
breathtaking.
But we were just passing by Jalpan. A short visit to the church and to
the ice-cream shop, and we were again on our way. We crossed the state
border, entering San Luis Potos , and arrived to our main destination:
Xilitla, the little town in
the beautiful Huasteca where
the jungle meets surrealism.
Xilitla was chosen by the British poet and patron of various
surrealist artists https://en.wikipedia.org/wiki/Edward_James. He was a British noble (an unofficial grandson of King
Edward VII), and heir to a huge fortune. I m not going to repeat here
his very well known biography suffice to say that he got in love
with the Huasteca, and bought a >30ha piece of jungle and mountain
close to the Xilitla town, and made it his house. With very ample
economic resources, in the late 1940s he started his lifelong project
of building a surrealist garden.
And Well, that s enough blabbering for me. I m sharing some
pictures I took there. The place is plainly magic and
wonderful. Edward James died in 1984, and his will decrees that after
his death, the jungle should be allowed to reclaim the constructions
so many structures are somewhat crumbling, and it is expected they
will break down in the following decades. But for whoever comes to
Mexico This magic place is definitely worth the heavy ride to the
middle of the mountains and to the middle of the jungle.
Xilitla now also hosts a very good museum with sculptures by Leonora
Carrington, James long-time friend, but I m not going to abuse this
space with even more pictures. And of course, we did more, and enjoyed
more, during our three days in Xilitla.
And for our way back I wanted to try a different route. We decided
to come back to Mexico City crossing Hidalgo state instead of
Quer taro. I had feared the roads would be in a worse shape or would
be more difficult to travel And I was happy to be proven wrong!
This was the longest driving stretch approximately 6:30 for
250Km. The roads are in quite decent shape, and while there are some
stretches where we were quite lonely (probably the loneliest one was
the sharp ascent from Tamazunchale to the detour before Orizatl n),
the road felt safe and well kept at all times. The sights all across
Eastern Hidalgo are breathtaking, and all furiously green (be it with
really huge fern leaves or with tall, strong pines), until
Zacualtip n.
And just as abruptly or more as when we entered Pinal de Amoles We
crossed Orizatl n, and we were in a breathtaking arid, desert-like
environment again. We crossed the Barranca de Metztitl n natural
reserve, and arrived to spend the night at Huasca de Ocampo.
There are many more things we could have done starting at Huasca, a
region where old haciendas thrived, full of natural formations, and
very very interesting. But we were tired and pining to be finally back
home. So we rested until mid-morning and left straight back home in
Mexico City. Three hours later, we were relaxing, preparing lunch, the
kids watching whatever-TV-like-things are called nowadays.
All in all, a very beautiful vacation!
I encourage you to dig a little deeper. If LLM s were just probability
machines, no one would be raising any flags.
Hinton, Bengio, Tegmark and many others are not simpletons. It is the fact that
the architecture and specific training (deep NN, back prop / gradient descend)
produces a system with emergent properties, beyond just a probability machine,
when the system size reaches some thresholds, that has them spooked.
They do understand mathematics and stats and probabilities, i assure you. It is
just that you may have only read the layman s articles and not the scientific
ones
I confess: I haven t made much progress in this regard. I gave Vicky Boykis'
Embeddings
a go, and started to get a handle on the math, but honestly had a hard time
following it. I m open to suggestions from anyone with a few good
recommendations for scientific papers accessible to non-math professionals,
particularly ones that explain the emergent properties and what that means.
Meanwhile, regardless of the scientific truths or falsehoods around chat GPT,
the mainstream media continues to miserably fail in helping the rest of us
understand the implications of this technology.
Most recently, I listend to This American Life s First Contact (part of
their Greetings People of Earth
show).
They interviewed several Microsft AI researchers who first experimented with
ChatGPT 4 prior to it s big release.
The focus of the researchers was: can we demonstrate chat GPT s general
intelligence ability by presenting it with logic problems it could not possibly
have encountered before? And the answer: YES!
The two examples were:
Next.