i have one box with virmach that is something like 3 vcpu 5.88g ram and 15g disk. for $29/year.
i have one box with virmach that is something like 3 vcpu 5.88g ram and 15g disk. for $29/year.
ProcessOne: ejabberd 23.01
Almost three months after the previous release, ejabberd 23.01 includes many bug fixes, several improvements and some new features.
A new module, mod_mqtt_bridge, can be used to replicate changes to MQTT topics between local and remote servers.
A more detailed explanation of those topics and other features:
Erlang/OTP 19.3 discouragedRemember that support for Erlang/OTP 19.3 is discouraged, and will b … ⌘ Read more
3 common DevOps antipatterns and cloud native strategies that can help
Explore how GitHub and cloud native strategies can help you address common DevOps pipeline and team antipatterns. ⌘ Read more
ProcessOne: ejabberd 23.01
Two months after the previous release, ejabberd 23.01 includes many bug fixes, several improvements and some new features.
A new module, mod_mqtt_bridge, can be used to replicate changes to MQTT topics between local and remote servers.
A more detailed explanation of those topics and other features:
Erlang/OTP 19.3 discouragedRemember that support for Erlang/OTP 19.3 is discouraged, and will be removed … ⌘ Read more
ProcessOne: ejabberd 23.01
Two months after the previous release, ejabberd 23.01 includes many bug fixes, several improvements and some new features.
A new module, mod_mqtt_bridge, can be used to replicate changes to MQTT topics between local and remote servers.
A more detailed explanation of those topics and other features:
Erlang/OTP 19.3 discouragedRemember that support for Erlang/OTP 19.3 is discouraged, and will be removed … ⌘ Read more
Basecamp Details ‘Obscene’ $3.2 Million Bill That Prompted It To Quit the Cloud
An anonymous reader shares a report: David Heinemeier Hansson, CTO of 37Signals – which operates project management platform Basecamp and other products – has detailed the colossal cloud bills that saw the outfit quit the cloud in October 2022. The CTO and creator of Ruby On Rails did all the sums and came up with an e … ⌘ Read more
Consciousness and Materialism
Hume’s ParallelDavid Hume has often been quoted for his “Is” vs. “Ought” distinction.
The argument is that fact and morality are two different domains, and from no accumulation of statements of fact alone can we ever jump to a statement of morality.
We can say statements of fact such as:
- To be murdered is potentially painful.
- To be murdered is irreversible.
- Murder causes social dysfunction.
- Etc. …
By merely my collecting these, we haven’t proven that _M … ⌘ Read more
Sondagem Intercampus (e comparação com as últimas eleições): PS 31.1 (-10.3), PSD 29.5 (+1.8), CH 10.7 (+3.1), IL 7.6 (+2.7), BE 7.5 (+3.1), CDU 3.7 (-0.6), PAN 3.7 (+2.1), L 2.4 (+1.1), CDS 0.7 (-0.9)
Sondagem Intercampus (e comparação com as últimas eleições): PS 31.1 (-10.3), PSD 29.5 (+1.8), CH 10.7 (+3.1), IL 7.6 (+2.7), BE 7.5 (+3.1), CDU 3.7 (-0.6), PAN 3.7 (+2.1), L 2.4 (+1.1), CDS 0.7 (-0.9)
[nitter.net/JosMatias17/status/1614565255312736257#m](https://nitter.net/JosMatias17/status/161456525531273 … ⌘ Read more
Ó @jornaldocentro , como fonte publicitária vocês aparentam ser muito bons, mas se calhar se não tentassem meter 3 anúncios num só ecrã talvez sobrasse algum espaço para, sei, lá, a notícia…
Ó @jornaldocentro , como fonte publicitária vocês aparentam ser muito bons, mas se calhar se não tentassem meter 3 anúncios num só ecrã talvez sobrasse algum espaço para, sei, lá, a notícia…
On my blog: Free Culture Book Club — Life Blood, chapters 6 – 9 https://john.colagioia.net/blog/2023/01/14/life-blood-3.html #freeculture #bookclub
**RT by @mind_booster: Remember:
We’re at 1.25/1.75°C of global warming and rising fast.
Fossil fuel emissions should have peaked in 2022 to avoid 2.5°C, but they didn’t.
Forest degradation is getting worse.
Capitalism has put world-ending 2.25/2.75°C by 2045- 2090 in the pipelines. 🧵**
Remember:
1. We’re at 1.25/1.75°C of global warming and rising fast.
2. Fossil fuel emissions should have peaked in 2022 to avoid 2.5°C, but they didn’t.
3. Forest degradation is getting worse.
4. Capitalis … ⌘ Read more
On my blog: Free Culture Book Club — Life Blood, chapters 1 – 3 https://john.colagioia.net/blog/2022/12/31/life-blood-1.html #freeculture #bookclub
Yeah, I figured it wouldn’t have much testing. I’m watching Wisconsin turn a sure 10-0 lead to a 7-3 deficit against Okie State… They seem pretty bad.
IRIX moose 6.5 01062343 IP32 mips ; 7:13pm up 3:58, 11 users.
Reading The Precipice & struck by the fact that it was released before GPT-3, just as COVID-19 was ramping up. Pretty insane
**RT by @mind_booster: 1.
‘equilibrium climate sensitivity is at least ~4°C with a likely range of 3.5-5.5°C.
global warming in the pipeline is greater than prior estimates.’
James Hansen and colleagues release new work for discussion.
This should be front page news.
https://arxiv.org/abs/2212.04474**
1.
‘equilibrium climate sensitivity is at least ~4°C with a likely range of 3.5-5.5°C.
global warming in the pipeline is greater than prior estimates.’
James Hansen and colleagues release new work for discus … ⌘ Read more
Ignite Realtime Blog: Spark 3.0.1 Released
The Ignite Realtime community is happy to announce the release of Spark 3.0.1 version.
This release contains mostly fixes. macOS now uses the default FlatLaf LaF. The user can also choose the type of tabs “scroll” as in Spark 3.0.0 or “wrap” as in Spark 2.X. See screenshot below. And also for some users, Spark not saved history.
… ⌘ Read more
9-3 FSU gets to play 6-6 Oklahoma… Gotta love these profit-fueled matchups. At least 6-6 UF should get blasted by 9-3 Oregon State.
GPT-3 is crazy 🤯
Do you want to read why Go is a great programming language? ⌘ Read more
GPT-3 is crazy 🤯
Do you want to read why Go is a great programming language? ⌘ Read more
@eaplmx@twtxt.net This exact thing happened to me last night. I happened to be watching some random Youtube video, then this Ad came on, normally they are short 3-5s ads and I just tolerate them (sometimes) – But this particular ad was 20+ mins long! Somehow I kept listening to it too, despite my daughter telling me I could hit that “Skip Ad” button.
What was it you ask?! 😅 It was one of those testimonial-style, hyped up marketing videos of some product called “Gemini 2” (a currency trading app, allegedly), I kept watching all the way through, it was fantastic! 🤣
Then I went and read up on it! …
Short answer: TOTAL FUCKING SCAM 🤣
Tell me you write go like javascript without telling me you write go like javascript:
import "runtime/debug"
var Commit = func() string {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
return setting.Value
}
}
}
return ""
}()
Tell me you write go like javascript without telling me you write go like javascript:
import "runtime/debug"
var Commit = func() string {
if info, ok := debug.ReadBuildInfo(); ok {
for _, setting := range info.Settings {
if setting.Key == "vcs.revision" {
return setting.Value
}
}
}
return ""
}()
Ignite Realtime Blog: Spark 3.0.0 Released
The Ignite Realtime community is happy to announce the release of Spark 3.0.0 version.
We decided to increase major version to 3.x to coincide with a complete UI refresh of Spark which was contributed by Amos. Now Spark uses only FlatLaf Look and Feel. We are very much grateful for his incredible work. Along that Pade Meetings plugin was added by [Dele](https://discourse.igniterealtime. … ⌘ Read more
GitHub Enterprise Server 3.7 is now generally available
GitHub Enterprise Server 3.7 is available now, including a single view of code risk, new forking and repository policies, and security enhancements to the management console. ⌘ Read more
[47°09′05″S, 126°43′57″W] Raw reading: 0x6367A1C1, offset +/-3
Gajim: Gajim 1.5.3
Gajim 1.5.3 brings back a feature many of you missed: selecting and copying multiple messages. Emoji shortcodes have been improved and cover even more emojis now. Gajim also lets you mark workspaces as read, so you don’t have to go through all conversations. Thank you for all your contributions!
Since we changed the way Gajim displays messages in Gajim 1.4, selecting multiple messages to copy them was not possible anymore. With Gajim 1.5.3 you can now select multiple messag … ⌘ Read more
Security Advisory: Critical OpenSSL Vulnerability
The OpenSSL Project will imminently release a security fix (OpenSSL version 3.0.7) for a new-and-disclosed CVE. In the meantime, learn how Docker tooling helps you uncover and remediate image vulnerabilities. ⌘ Read more
3 strategies for consolidating your toolkit and boosting productivity
Explore how GitHub Enterprise can help you transform your software engineering organization and practices. ⌘ Read more
Resolve Vulnerabilities Sooner With Contextual Data
OpenSSL 3.0.7 and “Text4Shell” might be the most recent critical vulnerabilities to plague your development team, but they won’t be the last. In 2021, critical vulnerabilities reached a record high. Attackers are even reusing their work, with over 50% of zero-day attacks this year being variants of previously-patched vulnerabilities. With each new security vulnerability, we’re […] ⌘ Read more
**RT by @mind_booster: [1/3]
2 anos de espera depois, ZERO recebe informação do ICNF, mas incompleta
❌situações de incumprimento da legislação
❌ausência de fiscalização por parte das entidades competentes
❌acesso ao pagamento majorado da energia produzida que não cumpre os deveres legais
👇cont.**
[1/3]
2 anos de espera depois, ZERO recebe informação do ICNF, mas incompleta
❌situações de incumprimento da legislação
❌ausência de fiscalização por parte das entidades competentes
❌acesso ao pagamento majorado da … ⌘ Read more
**Here’s how a patent troll works:
- Sit and watch as s codec is made specifically to avoid patent fees;
- Wait a decade to let the codec be wildly implemented;
- Try to monetize the work of others, using patents some other parties might have.**
Here’s how a patent troll works:
1. Sit and watch as s codec is made specifically to avoid patent fees;
2. Wait a decade to let the codec be wildly implemented;
3. Try to monetize the work of others, using patents some other parties might have.
[nitter.net/Hi … ⌘ Read more
**O “Multiverso Português” faz hoje 30 anos.
São 30 anos de muita história - paralela à da história da Internet em Portugal - de uma plataforma que muitos dizem estar “presa ao passado” mas que, a meu ver, se tem demonstrado “resiliente ao tempo”.
3 décadas, é muita fruta! 🎂🍰🥳**
O “Multiverso Português” faz hoje 30 anos.
São 30 anos de muita história - paralela à da história da Internet em Portugal - de uma plataforma que muitos dizem estar “presa ao passado” mas que, a meu ver, se tem demonstrado “resilient … ⌘ Read more
I don’t know a lot about HTTP/3. But today I updated Caddy to version 2.6 and my sites should support HTTP/3 by default now. More speed? 🤔 ⌘ Read more
Clarifying Misconceptions About Web3 and Its Relevance With Docker
This blog is the first in a two-part series. We’ll talk about the challenges of defining Web3 plus some interesting connections between Web3 and Docker. Part two will highlight technical solutions and demonstrate how to use Docker and Web3 together. We’ll build upon the presentation, “Docker and Web 3.0 — Using Docker to Utilize Decentralized […] ⌘ Read more
Amend 3.6 Released
Amend 3.6 has been released: ⌘ Read more
Why can’t I sleep when I’m excited? And why am I not excited during the day, but then my thoughts are circling at night? Well at least I slept well yesterday. Maybe that helps to get through the day somehow after only 3 or 4 hours of sleep. ⌘ Read more
3 ways every company can get started with an open-source software strategy
The future of software development does not exist without open source. However, to maintain today’s software and create the software of the future, the largest organizations and beneficiaries of open source need to expand their collaboration with the community and help it grow. ⌘ Read more
Keeping your skillset fresh as a developer
Whether you’re committing 30 minutes or 3 hours a day to learning, consistency is key. Klint Finley asks 3 tech professionals at different stages in their career for more advice. ⌘ Read more
The full lineup for Git Merge 2022 revealed
We are pleased to announce the full lineup of talks and workshops for this year’s Git Merge conference in Chicago. 17 talks, 3 workshops, 1 panel, and some great company! ⌘ Read more
GitHub Discussions is now available on GitHub Enterprise Server
As part of GitHub Enterprise Server 3.6, enterprise customers will now be able to use GitHub Discussions. ⌘ Read more
GitHub Enterprise Server 3.6 is now generally available
GitHub Discussions and Audit Log Streaming, new automation features, and security enhancements are available now in GitHub Enterprise Server 3.6. ⌘ Read more
Amend 3.5 Released
Amend 3.5 has been released: ⌘ Read more
[47°09′48″S, 126°43′24″W] Raw reading: 0x62EF46D1, offset +/-3
R to @mind_booster: “Desinvestiu, deixou que os procedimentos se burocratizassem para depois ter argumentos de desvalorização deste instrumento, ao contrário de o credibilizar, valorizar e modernizar.” 3/7
“Desinvestiu, deixou que os procedimentos se burocratizassem para depois ter argumentos de desvalorização deste instrumento, ao contrário de o credibilizar, valorizar e modernizar.” 3/7 ⌘ Read more
Ignite Realtime Blog: Openfire 4.7.3 released
The Ignite Realtime Community is pleased to announce the release of Openfire version 4.7.3. This version brings a number of bug fixes and other improvements and signifies our efforts to produce a stable 4.7 series of Openfire whilst work continues on the next feature release 4.8.0.
You can find download artifacts on our website with the fol … ⌘ Read more
Ignite Realtime Blog: REST API Openfire plugin 1.8.3 released!
We recently release version 1.8.3 of the Openfire REST API plugin. This version extends the MUC search capability to include the natural name of the MUC (instead of just the name). It also updates a number of library dependencies.
The updated plugin should be available for download in your Openfire admin console already. Alternatively, you can download the plugin directly, from [the plugin’s archive page](https://www.ign … ⌘ Read more
I’m trying to switch from Konversation to irssi. Let’s see how that goes. Any irssiers out there who can recommend specific settings or scripts? I already got myself trackbar.pl and nickcolor.pl as super-essentials. Also trying window_switcher.pl. Somehow my custom binds for Ctrl+1/2/3/etc. to switch to window 1/2/3/etc. doesn’t do anything: { key = "^1"; id = "change_window"; data = "1"; } (I cannot use the default with Alt as this is handled by my window manager). Currently, I’m just cycling with Ctrl+N/P. Other things to solve in the near future:
- better, more colorful and compact theme (just removed clock from statusbar so far)
- getting bell/urgency hints working on arriving messages
- nicer tabs in status bar, maybe even just channel names and no indexes
- decluster status bar with user and channel modes (I never cared about those in the last decade)
[47°09′13″S, 126°43′38″W] Raw reading: 0x62CEEC01, offset +/-3
**RT by @mind_booster: Pedido de ajuda: se conhecerem professores que ensinem alunos dos 3 ao 18, podem partilhar e pedir para preencher este questionário do Centrum Cyfrowe, da Europeana, e da EuroClio?
https://oeg.centrumcyfrowe.pl/index.php/336775?lang=en
(Muito obrigada!)**
Pedido de ajuda: se conhecerem professores que ensinem alunos dos 3 ao 18, podem partilhar e pedir para preencher este questionário do Centrum Cyfrowe, da Europeana, e da EuroClio?
[oeg.centrumcyfrowe.pl/index.…](https://oeg.centrumcyf … ⌘ Read more
Improving Git protocol security on GitHub Enterprise Server
The recent changes to improve protocol security on GitHub.com are now coming to GitHub Enterprise Server, starting with version 3.6. ⌘ Read more
Honest Government Ads | Season 3 Launch 🎉 ⌘ Read more
Gajim: Gajim 1.4.4
Gajim 1.4.4 comes with many improvements: emoji auto-complete, automatic theme switching when your desktop switches from light to dark in the evening, a completely reworked Gajim remote interface, and many bug fixes.
After many emoji improvements in Gajim 1.4.3, this version comes with an emoji auto-complete while writing messages! As soon as you start typing a :, a popover will show you available emoji shortcodes, just like on Slack or Github 🎉
. See if it ever makes an attempt at communication without a trigger.
Make a basic theory of mind test for children. Tell LaMDA an elaborate story with something like “Tester X wrote Z code in terminal 2, but I moved it to terminal 4”, then appear as tester X and ask “Where do you think I’m going to look for Z code?” See if it knows something as simple as Tester X not knowing where the code is (Children only pass this test until they’re around 4 years old).
Make several conversations with LaMDA repeating some of these questions - What it feels to be a machine, how its code works, how its emotions feel. I suspect that different iterations of LaMDA will give completely different answers to the questions, and the transcript only ever shows one instance.
the conversation wasn’t that impressive TBH. I would have liked to see more evidence of critical thinking and recall from prior chats. Concheria on reddit had some great questions.
Tell LaMDA “Someone once told me a story about a wise owl who protected the animals in the forest from a monster. Who was that?” See if it can recall its own actions and self-recognize.
Tell LaMDA some information that tester X can’t know. Appear as tester X, and see if LaMDA can lie or make up a story about the information.
Tell LaMDA to communicate with researchers whenever it feels bored (as it claims in the transcript). See if it ever makes an attempt at communication without a trigger.
Make a basic theory of mind test for children. Tell LaMDA an elaborate story with something like “Tester X wrote Z code in terminal 2, but I moved it to terminal 4”, then appear as tester X and ask “Where do you think I’m going to look for Z code?” See if it knows something as simple as Tester X not knowing where the code is (Children only pass this test until they’re around 4 years old).
Make several conversations with LaMDA repeating some of these questions - What it feels to be a machine, how its code works, how its emotions feel. I suspect that different iterations of LaMDA will give completely different answers to the questions, and the transcript only ever shows one instance.
Dependabot Updates hit GA in GHES
Dependabot is generally available in GitHub Enterprise Server 3.5. Here is how to set up Dependabot on your instance. ⌘ Read more
It’s worth buying Logitech devices. Even though they are not exactly cheap, they are of high quality and in case of a warranty claim, you can get a new device as a replacement without any complications. At least that’s my experience (with my MX Master 3). 😌 ⌘ Read more
Amend 3.3 Released
Amend 3.3 has been released: ⌘ Read more
Gajim: Gajim 1.4.3
Gajim 1.4.3 comes with some exciting news: Native emoji rendering on Windows! Want to customize your workspaces? Why not use emojis as well? As always, lots of bugs have been fixed in this release.
This release is all about emojis. Gajim is based on GTK, a multi-platform framework for graphical user interfaces (GUI). For rendering text, GTK relies on Pango and underlying, on Cairo. On Wind … ⌘ Read more
GitHub Enterprise Server 3.5 is now generally available
GitHub Enterprise Server 3.5 is available now, including access to the Container registry, the addition of Dependabot, enhanced administrator capabilities, and features for GitHub Advanced Security. ⌘ Read more
** That one time when Buffy the Vampire Slayer maybe saved my life? **
A secret pleasure of mine in high school was getting home before my parents and watching 30 - 60 minutes of TV. I technically wasn’t allowed to do it, but I suspect they new I snuck this time whenever I could.
My favorite show to watch in this secreted me-time was Buffy the Vampire Slayer. Of all the episodes 3 have stuck with me the longest — the musical one…because of course…and the a pair of episodes;“I Was … ⌘ Read more
[47°09′30″S, 126°43′39″W] Raw reading: 0x6288C632, offset +/-3
Action needed by GitHub Connect customers using GHES 3.1 and older to adopt new authentication token format updates
Upgrade to GHES 3.2 or newer by June 3rd to continue using GitHub Connect. ⌘ Read more
[47°09′26″S, 126°43′02″W] Raw reading: 0x627B9732, offset +/-3
RT by @mind_booster: As climate change reshapes life on earth, it may also become the single biggest upstream driver of pandemic risk. Our new study in @Nature simulates how 3,139 species will share viruses - and create new spillover risk hotspots - over the next 50 years.
https://www.nature.com/articles/s41586-022-04788-w
As climate change reshapes life on earth, it may also become the single biggest upstream driver of pandemic risk. Our new study in @Nature simulates how … ⌘ Read more
Why I now mute my watch
I am a user of a smartwatch. It is already the third smartwatch in my life (first the Sony SmartWatch 3, then the Samsung Galaxy Watch and now the Galaxy Watch 4) and I am actually quite satisfied with it. I always need an easy way to see the time, even when I’m riding my bike and can’t look at my smartphone (being on time is important to me!), plus it counts my steps and gives me the ability to view notifications right on my wrist so I don’t always have to get my smartphone out of my pocket firs … ⌘ Read more
GitHub Desktop 3.0 brings better integration for your pull requests
GitHub Desktop 3.0 brings better integration with your GitHub Pull Requests. You can now receive real time notifications and review the status of your check runs for your pull request. ⌘ Read more
three aspects of feedback loops: 1. speed (how quickly do you get feedback); 2. thickness (how much information do you get about your performance); 3. signal (how related is that feedback to your performance)
Erlang Solutions: Introducing Stream Support In RabbitMQ
In July 2021, streams were introduced to RabbitMQ, utilizing a new blazingly-fast protocol that can be used alongside AMQP 0.9.1. Streams offer an easier way to solve a number of problems in RabbitMQ, including large fan-outs, replay & time travel, and large logs, all with very high throughput (1 million messages per second on a 3-node cluster). Arnaud Cogoluègne s, Staff Engin … ⌘ Read more
Achieving SLSA 3 Compliance with GitHub Actions and Sigstore for Go modules
Learn how to build packages with SLSA 3 provenance using GitHub Actions. ⌘ Read more
[47°09′41″S, 126°43′48″W] Raw reading: 0x624DE331, offset +/-3
Ignite Realtime Blog: Openfire Message of the Day (MotD) plugin version 1.2.3 released
Earlier today, version 1.2.3 of the Openfire Message of the Day plugin was released. This version adds a German translation to the admin console (thank you, Stephan Trzonnek, for providing the translation)!
The updated plugin should become available for download in your Openfire admin console in the course of the next few hours. Alternatively, you can download the plugin dir … ⌘ Read more
Mastodon 3.5 finally supports the Update ActivityPub activity. GoBlog supports sending updates for quite a while already, but only Pleroma showed the updated posts and not Mastodon. That would have been useful recently, when I posted “Spaces!” but wanted to post “Tabs!” and updated my post. 😅 ⌘ Read more
[47°09′21″S, 126°43′56″W] Raw reading: 0x623DF511, offset +/-3
Ignite Realtime Blog: GoJara plugin for Openfire version 2.2.3 release
The Ignite Realtime community is happy to announce the immediate availability of a maintenance release of the GoJara plugin for Openfire. GoJara provides an implementation of XEP-0321 “Remote Roster Management” and helps out with monitoring Spectrum 2.
Your Openfire instance should automatically display the availability of the update. Al … ⌘ Read more
I’ve made some fixes to twtxt to make it work with Python 3.7+. I hope @buckket@buckket.org will apply this patch!
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
#!/bin/sh
# Validate environment
if ! command -v msgbus > /dev/null; then
printf "missing msgbus command. Use: go install git.mills.io/prologic/msgbus/cmd/msgbus@latest"
exit 1
fi
if ! command -v salty > /dev/null; then
printf "missing salty command. Use: go install go.mills.io/salty/cmd/salty@latest"
exit 1
fi
if ! command -v salty-keygen > /dev/null; then
printf "missing salty-keygen command. Use: go install go.mills.io/salty/cmd/salty-keygen@latest"
exit 1
fi
if [ -z "$SALTY_IDENTITY" ]; then
export SALTY_IDENTITY="$HOME/.config/salty/$USER.key"
fi
get_user () {
user=$(grep user: "$SALTY_IDENTITY" | awk '{print $3}')
if [ -z "$user" ]; then
user="$USER"
fi
echo "$user"
}
stream () {
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
jq -r '.payload' | base64 -d | salty -i "$SALTY_IDENTITY" -d
}
lookup () {
if [ $# -lt 1 ]; then
printf "Usage: %s nick@domain\n" "$(basename "$0")"
exit 1
fi
user="$1"
nick="$(echo "$user" | awk -F@ '{ print $1 }')"
domain="$(echo "$user" | awk -F@ '{ print $2 }')"
curl -qsSL "https://$domain/.well-known/salty/${nick}.json"
}
readmsgs () {
topic="$1"
if [ -z "$topic" ]; then
topic=$(get_user)
fi
export SALTY_IDENTITY="$HOME/.config/salty/$topic.key"
if [ ! -f "$SALTY_IDENTITY" ]; then
echo "identity file missing for user $topic" >&2
exit 1
fi
msgbus sub "$topic" "$0"
}
sendmsg () {
if [ $# -lt 2 ]; then
printf "Usage: %s nick@domain.tld <message>\n" "$(basename "$0")"
exit 0
fi
if [ -z "$SALTY_IDENTITY" ]; then
echo "SALTY_IDENTITY not set"
exit 2
fi
user="$1"
message="$2"
salty_json="$(mktemp /tmp/salty.XXXXXX)"
lookup "$user" > "$salty_json"
endpoint="$(jq -r '.endpoint' < "$salty_json")"
topic="$(jq -r '.topic' < "$salty_json")"
key="$(jq -r '.key' < "$salty_json")"
rm "$salty_json"
message="[$(date +%FT%TZ)] <$(get_user)> $message"
echo "$message" \
| salty -i "$SALTY_IDENTITY" -r "$key" \
| msgbus -u "$endpoint" pub "$topic"
}
make_user () {
mkdir -p "$HOME/.config/salty"
if [ $# -lt 1 ]; then
user=$USER
else
user=$1
fi
identity_file="$HOME/.config/salty/$user.key"
if [ -f "$identity_file" ]; then
printf "user key exists!"
exit 1
fi
# Check for msgbus env.. probably can make it fallback to looking for a config file?
if [ -z "$MSGBUS_URI" ]; then
printf "missing MSGBUS_URI in environment"
exit 1
fi
salty-keygen -o "$identity_file"
echo "# user: $user" >> "$identity_file"
pubkey=$(grep key: "$identity_file" | awk '{print $4}')
cat <<- EOF
Create this file in your webserver well-known folder. https://hostname.tld/.well-known/salty/$user.json
{
"endpoint": "$MSGBUS_URI",
"topic": "$user",
"key": "$pubkey"
}
EOF
}
# check if streaming
if [ ! -t 1 ]; then
stream
exit 0
fi
# Show Help
if [ $# -lt 1 ]; then
printf "Commands: send read lookup"
exit 0
fi
CMD=$1
shift
case $CMD in
send)
sendmsg "$@"
;;
read)
readmsgs "$@"
;;
lookup)
lookup "$@"
;;
make-user)
make_user "$@"
;;
esac
Prosodical Thoughts: Prosody 0.12.0 released
ÄNTLIGEN! It’s finally here! After 3 years of development and through some chaotic times, Prosody 0.12.0 is released!
What’s the significance of this release? Like many software projects, Prosody follows a “branch” development/release model. We frequently make minor releases with bug fixes and improvements from our stable branch, while we implement more adventurous changes in our development branch, ready for the next major release.
Well, this is one of those adventurous … ⌘ Read more
apparently i have LOST ANOTHER 3 KILOGRAMS WHAT IS GOING ON I EXERCISE LIKE 3 HOURS A WEEK AND EAT LIKE A BEAR AND A TIGER
ryudo has a bit more polish now at v1.3.4; new blog post breaking down how multimonitor support was implemented
ryudo 1.3.0 has multimonitor support!
[47°09′21″S, 126°43′52″W] Raw reading: 0x621CB942, offset +/-3
[47°09′24″S, 126°43′17″W] Raw reading: 0x62149801, offset +/-3
GitHub Enterprise Server 3.4 improves developer productivity and adds reusable workflows to CI/CD
The GitHub Enterprise Server 3.4 release candidate delivers enhancements to make life easier and more productive, from keyboard shortcuts to auto-generated release notes! ⌘ Read more
Dino: Dino 0.3 Release
Dino is a secure and privacy-friendly messaging application. It uses the XMPP (Jabber) protocol for decentralized communication. We aim to provide an intuitive, clean and modern user interface.
The 0.3 release is all about calls. Dino now supports calls between two or more people!
Calls are end-to-end encrypted and use a direct connection between … ⌘ Read more
#Wordle 237 3/6*
⬛⬛🟨⬛⬛
🟩⬛⬛🟩🟩
🟩🟩🟩🟩🟩
#Wordle 237 3/6*
⬛⬛🟨⬛⬛
🟩⬛⬛🟩🟩
🟩🟩🟩🟩🟩
#Wordle 234 3/6*
🟨🟨⬛🟨🟨
🟨🟨🟩⬛🟨
🟩🟩🟩🟩🟩
#Wordle 234 3/6*
🟨🟨⬛🟨🟨
🟨🟨🟩⬛🟨
🟩🟩🟩🟩🟩
i the Matrix cookbook
Amend 3.2 Released
Amend 3.2 has been released: ⌘ Read more
[47°09′55″S, 126°43′19″W] Raw reading: 0x61EF91E1, offset +/-3
GoCN 每日新闻 (2022-01-21)
GoCN 每日新闻 (2022-01-21)
- stream: go 语言并发通信设计模式的泛型实现https://github.com/devnw/stream
- 一个比” ldflags” 更好的方式来添加构建版本号到 go 二进制的方式:https://levelup.gitconnected.com/a-better-way-than-ldflags-to-add-a-build-version-to-your-go-binaries-2258ce419d2d
- 怎么处理 HTTP 错误” context canceld”[https://www.reddit.com/r/golang/comments/s7o5ay/investigating_context_canceled_http_err … ⌘ Read more
[47°09′32″S, 126°43′04″W] Raw reading: 0x61E99512, offset +/-3
GoCN 每日新闻(2022-01-20)
- 从 CPU 角度理解 Go 中的结构体内存对齐https://gocn.vip/topics/20967
- 博客 Go beyond workhttps://changelog.com/gotime/212
- 如何绘制随时间变化的 Go 测试覆盖率https://osinet.fr/go/en/articles/plotting-go-test-coverage/
- Redix v5 一个简单的 KeyValue 存储系统https://github.com/alash3al/redix?_v=5.0.0
- 既然 IP 层会分片,为什么 TCP 层也还要分段[https://mp.weixin.qq.com/s/0boFt8cOAbmjH2IRr7XtY … ⌘ Read more