For nearly 2 years I have been synchronizing settings between my Gentoo machines via a git repository that is installed system-wide via portage itself.
This actually gets a little tiresome and slow as the package that installs the configuration has to be re-installed each time we want to update the settings.
So I thought it could be cool if I can just push files around between my machines with one command. Now: we can use rsync or scp but /etc/portage is owned by root so we either have to change the permissions to a user we use to ssh or a group that user is in.
Portage users
First change portage permissions of /etc/portage, now all users in the portage group will be able to modify the configuration
Reminder that this can also be done as a cron job!
Portage snapshots with git
Probably the best thing I got out of genlica is that I engineered a script to automatically do a git commit of the changes to the portage configuration.
I imagine that a web browser should have been a "window" to the Internet world that provides easy and efficient way to graphically access resources exposed by multiple protocols: HTTP(S), (S)FTP, Gopher, Gemini, etc…
How it is?
Only few protocols are supported!
Recently FTP support got "deprecated" in Firefox. It can still be enabled in
by setting network.ftp.enabled to true. FTP support is announced to be completely gone in FF 90. Chrome dropped FTP some time ago. # BUT! Luckily we have Emacs! GNU Emacs has packages to support all kinds of protocols. - eww which is a simple HTTP(S) browser like w3m (also renders images) - tramp allows you to access files by SSH - elpher allows you to access Gemini and Gopher sites (graphically) - ange-ftp allows you to connect to FTP servers - and finally net-utils which wraps around system utilities to provide interactive mode for many protocols, ie.: gopher, irc, ntp, pop3, www
Racket provides a executable plt-games, when ran (from console) it opens a menu of miscellaneous games, among them: jewel, minesweeper, aces, spider, checkers. & more (20 games total).
#lang racket/base(requireracket/gui/baseracket/mathplot)(plot-new-window?#true)(plot3d(surface3d(lambda(xy)(*(cosx)(siny)))(-pi)pi(-pi)pi)#:title"An R × R → R function"#:x-label"x"#:y-label"y"#:z-label"cos(x) sin(y)")
Browser
There's a included library to render web pages, just "(require browser)".
You can use Racket's Foreign Function Interface to interact with non-Racket libraries to make use of very fast libraries written in (mainly) FORTRAN & C.
Sage may be available on your distro but on Gentoo such frivolities for students are not there yet, so I had to install it the manual way.
User
I went to the Sage website, to the "download-source" link. The source mirror I picked was France.
Ok, so let's follow Sage Math build instructions and get it going
12345
wgetwww-ftp.lip6.fr/pub/math/sagemath/src/sage-9.2.tar.gz
tarxvfsage-9.2.tar.gz
cdsage-9.2
./configure
make
And now, let's wait…
Portage
After a long, long, long time waiting I remembered that there existed a Gentoo overlay for Sage. And in the meantime I thought I'd try that solution instead since some good Gentoo people already did most of the effort.
In 2013–2017 I was very interested in Trading card game “Magic: the Gathering”. I started playing during the release of Theros and quit somewhere during Shadows over Innistrad. I still keep a small collection of alternative artwork that I have painted on the cards.
Binder
Those are pages from the binder I store the card in. Also a lone “Obsession” resource card from The Spoils.
But in all seriousness, it’s been pretty great. My colleagues warned me that there’s a lot of SJWs but only one person I spoke with wanted to be addressed “differently” + didn’t express that aggressively, so whatever.
then, read the "raw" ORG files in 'posts' directory or make the HTML version executing the 'dev.sh' script (remember that you will need GNU Emacs to render the posts into HTML files).
Then, you can just git pull to read the news whenever you wish, maybe do it with cron or a script that will pull many repos at once, for example with this script.
RSS
Org-Static-Blog creates a RSS Feed file rss.xml, so to subscribe add the link https://xgqt.gitlab.io/blog/rss.xml to your favorite RSS reader.
We were discussing some vulnerabilities on the src~prepare~ group's [matrix] channel and when we're talking about systemd errors. I just felt like opening their GitHub and browsing the code. I was just reading the comments… and I saw a comment about kernel APIs and there a emoji. My feeling is probably best expressed my common "KEK". I chuckled. The "Abstract" in 0.0.1 is the original idea I typed on [matrix]. The funniest part of this "development" for me is probably that Emacs on my system doesn't display properly ANY of the emojis in emojid. I had to go back and forth between the source and log files opened in FF (because it renders the emojis properly), emojipedia and "broken" Emacs.
0.0.1 "😃 ️ 🌍 🍞 🚗 📞 🎉 ♥️ 🏁"
What you do is clone the repository, execute make and run the binary. Read your log and see if your system is "affected" :P.
👋
And remember emoticons made of the symbols found on the keyboard will always look better ;)
I wish you all merry Christmas and happy new year. Less bugs, more resolved issues, no wontfixes, better compatibility. Faster compilation, less failures. And of course no lawsuits, no copyright infringements and better government.
Backing up using this method takes a lot less space - ~60MB (without distfiles) and can be restored on almost any system (running portage) and tweaked afterwards for, say, CPU architecture. I've created a a short script with similar method in here.
What we need
ebuild repositories are installed with git
distfiles (those might be gone when we want to replicate)
Backup
1 2 3 4 5 6 7 8 9101112131415161718192021222324
# System info
emerge--info>info.txt
# Portage tree
cp-Lr/etc/portage.
# Portage layout
tree-a-L2/etc/portage>layout.txt
# Packages in @world
cp/var/lib/portage/world.
# Installed sets
cp/var/lib/portage/world_sets.
# Installed packages (with versions)
qlist--installed--nocolor--umap>qlist-use.txt
qlist--installed--nocolor--verbose>qlist-ver.txt
# Distfiles
cp-rv"$(portageqenvvarDISTDIR)"distfiles
# Ebuild database
cp-r/var/db/pkgpkgdb
Restoration
To faithfully restore the system perform those actions as root
1 2 3 4 5 6 7 8 91011121314151617
# Copy the portage tree to /etc
rm-dr/etc/portage
cp-rportage/etc/portage
# Checkout the gentoo repo to a commit specified in info.txtcd"$(portageqget_repo_path/gentoo)"
gitcheckout# <commit ID># Copy distfiles
cp-rdistfiles/*"$(portageqenvvarDISTDIR)"/
# Fake-install @world and sets
cpworld/var/lib/portage/world
cpworld_sets/var/lib/portage/world_sets
# Emerge the exact packages from qlist-ver.txt
emerge--keep-going=y-1Oav$(sed's/^/=/'qlist-ver.txt)
On some old routers, namely TP-Link's TL-WR840N version 2, there may not be a option to switch to access point mode. This is what you have to do to access that mode indirectly.
Steps
Power off the router
Unplug RJ cable from the WAN port
Connect the router to a PC (using one of the LAN ports)
Power on the router
Log it to the web console entering your router's IP, you can find out the IP by executing ip --color a (on a Linux box) if the router's DHCP server is still active
In LAN settings give your router a static client IP that fits into a network you want to connect it to; example: 192.168.100.100/24 (make sure no other hosts are associated with that IP in the target network)
Restart the router
Log in to the web console entering the IP you have set
Turn off the DHCP server (DHCP -> DHCP Settings -> DHCP Server: Disable & Save)
Power off the router
Plug the cable from a network you want the router connected to to one of the LAN ports
Power on the router
Log in to the web console entering the IP you have set
Turn on the wireless network and set it up (SSID, password, etc.)
Internet stał się tym czym jest, stał się takim światem w miniaturze dzięki dobrowolnemu zaangażowaniu zwykłych ludzi, dzięki brakowi regulacji. I to was boli, bo rozwój internatu jest przykładem tego, jak mógłby się rozwijać nasz świat, gdyby nie te wszystkie wasze regulacje, gdyby nie ten ciężki plecak przepisów i podatków który każdy z nas musi na co dzień dźwigać. Internet to jest po prostu ostatni bastion wolności i to wam nie daje spać, bo to jest dowód na to, że wszystkie wasze regulacje i te rozporządzenia, dyrektywy, są tak naprawdę zbędne i szkodliwe i świat bez tego rozwijałby się lepiej, rozwijałby się dokładnie tak jak Internet, że gdyby nie te wasze właśnie ambitne plany, wartości dodane, efekty dźwigni, wysyłanie silnych sygnałów, to wszystko, żyłoby się nam po prostu lepiej i prościej. Dlatego próbujecie to zniszczyć, dlatego próbujecie wsadzić stopę w drzwi za każdym razem kiedy pojawia się okazja. Ale my nie chcemy waszej nogi w tych drzwiach. Teraz cofacie się o parę centymetrów, bo ludzie protestują, ale my nie chcemy was tam w ogóle, nie chcemy waszych regulacji, nie chcemy waszych łap w Internacie. To działa dobrze, twórczość rozwija się w Internecie bez żadnych waszych regulacji.
English translation
Interent has become what it is, it has become a miniature world due to the voluntary involvement of ordinary people, thanks to the lack of regulation. And this hurts you, because the development of the Intenet is an example of how our world could develop, without all your regulations, without this heavy backpack of regulations and taxes that each of us must carry on a daily basis. The internet is simply the last bastion of freedom and this is the thing that doesn't let you sleep, because it is proof that all your regulations and those ordinances, directives, they are really unnecessary and harmful and the world would develop better without it, it would develop exactly like the Internet, that if it weren't for your ambitious plans, added values, leverage effects, sending strong signals, then everyone would have lived just better and simpler. That's why you try to destroy it, that's why you try to stick your foot in the door whenever there is an opportunity. But we don't want your leg in our door. Now you are retreating a few centimeters because people are protesting, but we don't want you there at all, we don't want your regulations, we don’t want your hands in the Internet. It works well, creativity develops on the Internet without any of your regulations.