@prologic@twtxt.net: I understand the benefits of using hashes, it’s much easier to implement client applications (at the expense of ease of use without the proper client). I must say that I like the way the metadata extension is done. Simple and elegant! It’s hard to design simple things!
Since you’re a fallible human, you will screw things up. And when you do, you’ll be tempted to mislead and cast blame elsewhere. Resist. Advice on being managed
[47°09′42″S, 126°43′25″W] Bad satellite signal – switching to analog communication
JMP: Newsletter: Busy Year in 2022
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free as in Freedom; Sha … ⌘ Read more
@prologic@twtxt.net On the one hand, twtxt has become more popular thanks to Yarn.social. On the other hand, subject and hashtag extensions took away the simplicity of the protocol. For example, it is impossible to understand which conversation (#base32hash) a tweet refers to or to reply to a tweet without going to a yarn.social pod. Compare with re: in this tweet which can be written without using any client at all
@prologic@twtxt.net: Hmm, I just checked, it should work. Anyway, I will post updates about the project. First of all, I want to complete some features and create packages with pre-compiled binaries
Apple has changed… and not in a good way.
Apple of 2022 is not the same company it used to be. It has, to be frank, lost its way. ⌘ Read more
JMP: Newsletter: Busy Year in 2022
Hi everyone!
Welcome to the latest edition of your pseudo-monthly JMP update!
In case it’s been a while since you checked out JMP, here’s a refresher: JMP lets you send and receive text and picture messages (and calls) through a real phone number right from your computer, tablet, phone, or anything else that has a Jabber client. Among other things, JMP has these features: Your phone number on every device; Multiple phone numbers, one app; Free as in Freedom; Sha … ⌘ Read more
I switched from twtxt client to twtwt (https://github.com/win0err/twtwt). It’s a pre-alpha version now, but it works pretty well and so much faster than the official twtxt client by @buckket@buckket.org. Feel free to check it out :-)
one that i think is pretty interesting is building up dependent constraints. see here.. it accepts a type but requires the use of a pointer to type.
https://github.com/sour-is/ev/blob/main/pkg/es/es.go#L315-L325
one that i think is pretty interesting is building up dependent constraints. see here.. it accepts a type but requires the use of a pointer to type.
https://github.com/sour-is/ev/blob/main/pkg/es/es.go#L315-L325
I decided to become popular in decentralized social networks. 1. Pixelfed: https://pixelfed.social/win0err — mostly landscape photography; 2. Mastodon: https://mastodon.online/@win0err — software engineering content
I learned how to make gopls syntax highlight go templates in VSCodium.
By adding the following to my config

i could go from
into 
I learned how to make gopls syntax highlight go templates in VSCodium.
By adding the following to my config

i could go from
into 
@prologic@twtxt.net I started to write a snarky twt about Kafka and then deleted it because I didn’t want to be too negative 😆
Erlang Solutions: GraphQL interfaces in MongooseIM 6.0
MongooseIM is a robust, scalable and highly extensible instant messaging server. Recent releases have improved its configurability and opened new use cases, and the latest version 6.0 continues that trend. By introducing the brand new GraphQL API, we made MongooseIM much easier to integrate with external web services. The entry barrier is also lower than ever because of the automatically generated API documentation, interactive web UI, an … ⌘ Read more
[47°09′41″S, 126°43′40″W] Storm recedes – back to normal work
[47°09′07″S, 126°43′39″W] Working impossible due to blizzard
Twitter has a new “social platforms” policy… is it maddening? Hilarious? Ridiculous? All of the above? I laughed, but to be clear, I don’t think ‘funny’ is a good way to describe it.
I have a question: Is there something similar to Telegram channels in Matrix? What should I do when I want to enable people to be notified about new blog posts using Matrix? ⌘ Read more
“AirTags Expose Dodgy Postal Industry”
Last year, YouTuber MegaLag tried to send several AirTag-ged packages from Germany to North Korea with DHL. But instead of arriving there, they were either misrouted to South Korea or ended up in China. In a new video, he further researches the reasons and also takes a look at DHL’s sorting center in Frankfurt at their invitation. Very interesting! ⌘ Read more
Feels to Colts fans. It was in the bag. Tough loss.
Vikings down 33-0 at halftime, no less, come back to win 39-36 over the Colts in OT. Amazing.
[47°09′06″S, 126°43′20″W] Working impossible due to heavy rain
The Linux Foundation launches map foundation to compete with Google
And, you know what? It’s actually pretty well licensed! ⌘ Read more
“I don’t know why anyone would ever want to do that, so we should punish it” is a beautiful warning sign (milder form is “I don’t know why anyone would ever want to do that, so nobody should even try”)
i am looking forward to seeing whether aliens similarly have two sexes, and whether they roughly split up by “sex that does the investing in the offspring” and “sex that provides a lot of variation in mating success”
Forgot to made pictures or screenshots today. But I hope that this older picture of my desk is good enoug,
[47°09′27″S, 126°43′36″W] Working impossible due to thunderstorm
Almost MIPS-only session today! Actually, I also briefly ran my PowrBook G4 and the Gemini PDA in attempt to fix my Pebble. But mostly the SGI O2 and the Indigo, too!
Tutorial: Getting started with generics - The Go Programming Language – Okay @xuu@txt.sour.is I quite like Go’s generics now 🤣 After going through this myself I like the semantics and the syntax. I’m glad they did a lot of work on this to keep it simple to both understand and use (just like the rest of Go) 👌
#GoLang #Generics
“The Sidecar” – Adding advanced networking, and a Linux shell, to a Psion palmtop
One of the coolest designs I’ve seen for extending older computers via the serial port. ⌘ Read more
“But I’d love to be pinned down” — Toby Ord (The Precipice p. 397)
On my blog: Tweets from 12/12 to 12/16 https://john.colagioia.net/blog/2022/12/16/week.html #twitter #week #socialmedia #linkdump
Release Radar · November 2022 Edition
We promised we’d be back soon and here we are! There has been an incredible amount of open source projects shipping major version releases before the year wraps up. I can’t believe we are all saying that now. “When the year wraps up!” or “See you next year!” What happened to 2022? Well, we know […] ⌘ Read more
BREAKING: EU orders Apple to add RS-232 port to iPhone
“We’re… super… excited to add a serial port to the iPhone,” stated Apple CEO Tim Cook, in a not at all forced tone of voice. ⌘ Read more
Retiring My Fiat Donation Portal
I’ve decided to retire my fiat donation portal at donate.lukesmith.xyz, where people could donate to me via debit and credit cards.
This will happen by the end of this calendar year.
It’s more in keeping with my principles of free software, self-ownership and everything else to only allow cryptocurrency donations.
This also is a subtle nudge to people who want to donate in streams to get into Bitcoin and Monero, as opposed to using fiat o … ⌘ Read more
Configure, Manage, and Simplify Your Observability Data Pipelines with the Calyptia Core Docker Extension
Find out how to use the Calyptia Core Docker Extension to build and manage observability pipelines in Docker Desktop. ⌘ Read more
RT by @mind_booster: #DRM isn’t just an annoyance – it’s a violation of your right to use the items you own as you see fit. Learn more about our Defective by Design campaign at http://defectivebydesign.org, and follow our campaign account at @enddrm
#DRM isn’t just an annoyance – it’s a violation of your right to use the items you own as you see fit. Learn more about our Defective by Design campaign at defectivebydesign.org, and follow our campa … ⌘ Read more
[47°09′22″S, 126°43′59″W] Transponder still failing – switching to analog communication
Translators seem to be working now. I didn’t touch them though.
Bunny AI
Bunny.net joined the AI hype and created “Bunny AI” (docs), AI images created on the edge. I tried it out, because it’s currently free during the preview, but somehow I don’t find the generated images aesthetic or I’m just to stupid to write better prompts. I guess the Bunny developers also need some distraction from time to time, because they are working hard on S3 support for Bunny Storage for years already. 🐰 ⌘ Read more
ChatGPT is good, but it’s not that good 🤣 I asked it to write a program in Go that performs double ratcheting and well the code is total garbage 😅 – Its only as good as the inputs it was trained on 🤣 #OpenAI #GPT3
My website is powered by GoBlog, a simple and dynamic blogging system that’s open source, actively developed and implements most IndieWeb functionalities. It packages everything in a single binary and I’ve been so over the moon using it and seeing it improve week after week that I’m surprised it isn’t more popular. So I put on my evangelist boots to share how I use this “stupidly-simple” blogging system to power my online presence. ⌘ Read more
Forgejo
A few weeks ago, it came to light that Gitea has been owned by a for-profit Gitea Ltd. for several months. The lack of transparency has disturbed the trust of many contributors and users. That’s why Codeberg (a German based non-profit association - disclaimer: I am a member of the association) has now started a soft fork: Forgejo. ⌘ Read more
Leaked a secret? Check your GitHub alerts…for free
GitHub now allows you to track any leaked secrets in your public repository, for free. With secret scanning alerts, you can track and action on leaked secrets directly within GitHub. ⌘ Read more
Anyone uses the putr command? (to access pdp11 disk images)
** Thoughts on accessibility in smol computing **
What follows is my attempt to spark a conversation in a few converging, but separate communities I lurk in.
I’ve already had a bunch of amazing conversations around this topic with a lot of people. Those conversations helped to shape what follows. Thanks to everyone who was willing to think this stuff through with me.
Before I get into it I want to say at the top this isn’t meant as an accusation against anyone in these communities, nor the goals of t … ⌘ Read more
I should write better tests or at least create some automatic tests. 😬 (But ActivityPub is so complicated to test!) ⌘ Read more
Should I sell my PC?
I’m not sure yet what I’m going to do with my desktop computer (ASRock Deskmini A300), which I don’t really use anymore since I got my new laptop. ⌘ Read more
I think it was a very wise decision to buy some long merino underwear, a new and warmer jacket and new winter shoes. It’s so cold! The whole week already under 0°C. ⌘ Read more
Raising the bar for software security: next steps for GitHub.com 2FA
GitHub will require all users who contribute code on GitHub.com to enable one or more forms of two-factor authentication (2FA) by the end of 2023. Learn more about our approach, when we’ll begin our rollout, and what you can expect as we begin requiring 2FA. ⌘ Read more
Learning how to use ImageMagick for something else than just for resizing of pictures.
If intelligence enables a person to identify problems, and problems make a person unhappy, then an intelligent person will have at least one factor that tends to increase unhappiness. If you’re so smart, how come you’re not happy? | Hacker News
The translators don’t seem to be working. Also I found a sports news feed: gopher://gophernews.net/1/topic/sports
I need to learn how to crash dates that are going nowhere with way too much escalation. That should be fun
Optimal Bowling
⌘ Read more
I’m honestly thinking about switching browsers, because this “new feature” where Firefox always downloads PDFs first to display them is annoying me so much. I don’t want my Downloads folder to be cluttered with all those random PDFs. If I open a restaurant’s menu PDF, I just want to take a quick look, but don’t want to have the PDF in my Downloads folder until I manually delete it and then delete it from the Recycle Bin again. There are some work-arounds, but no real solution. ⌘ Read more
Prosodical Thoughts: Prosody 0.12.2 released
We are pleased to announce a new minor release from our stable branch.
This is a regularly delayed release containing a number of fixes for
issues that we have come across since the last release of the 0.12
series.
A summary of changes in this release:
Fixes and improvements[47°09′32″S, 126°43′05″W] Bad satellite signal – switching to analog communication
Erlang Solutions: Change data capture with Postgres & Elixir
CDC is the process of identifying and capturing data changes from the database.
With CDC, changes to data can be tracked in near real-time, and that information can be used to support a variety of use cases, including auditing, replication, and synchronisation.
A good example of a use case for CDC is to consider an application which inserts a record into the database and pushes an event to a message queue after the record has … ⌘ Read more
[47°09′19″S, 126°43′20″W] Storm recedes – back to normal work
What was the first PDA?
It wasn’t the Palm Pilot. Nor the Newton. Let’s keep going back to find the answer… ⌘ 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
Highlights from Git 2.39
Another new release of Git is here to end the year! Take a look at some of our highlights on what’s new in Git 2.39. ⌘ Read more
[47°09′42″S, 126°43′21″W] Transponder still failing – switching to analog communication
It may help to disdain boredom in a moral sense. “Only boring people get bored”. get hype
Installed latest NixOS on my secondary laptop tonight, was really nice with a proper installer (calamares installer), got most of the stuff I use set up, but I do need to tweak some more.
I love the way the system is set up, makes it very easy to have the same setup on several machines. I’ll try and run it and use it as much as I can now.
R to @mind_booster: #greenwashing 101
#greenwashing 101 ⌘ Read more
today I’m just chilling. dog slept until 09:30 today, new record, felt good not to get up early today. put on the latest podcast from lex freedman with coffeezilla, I enjoy the topic of crypto currencies.
I use Firefox as my preferred web browser both on PCs and my phone. One extension is always installed: uBlock Origin. The web is so much nicer with all the ads and tracking removed. But today I also retried an extension that will probably join the “must install” list: DarkReader. Especially when I’m browsing the web on my phone in the early morning, I don’t like to be blinded by white websites. Since March DarkReader has finally an option to detect if a website already has a dark theme and only apply it’s color chan … ⌘ Read more
Is it something to do with implicit declaration of printf?
Is it something to do with implicit declaration of printf?
** December adventure **
Over the past couple years I’ve done the advent of code to varying degrees. I thought I was going to do it again this year but decided to try something different. I’ve been calling what came together a“ December Adventure.”
It isn’t anything fancy; throughout December I aim to write a little bit of code everyday. So far I’ve written a bit of apl, bash, elisp, explored a bunch of flavors of scheme, and star … ⌘ Read more
Blockchain Blasphemy and the Technological Antichrist
There’s a meme YouTube video by Leonardo of Biz ( here) where the villainous Bogs refer to their desire to attain something called “The Akashic Records” using blockchain technology.
This random aside not just shows the attention to detail Leonardo gives what would otherwise be silly videos, but articulates something deep … ⌘ Read more
How to Make Millions Counting Cards ⌘ Read more
On my blog: Tweets from 12/05 to 12/09 https://john.colagioia.net/blog/2022/12/09/week.html #twitter #week #socialmedia #linkdump
Release Radar · October 2022 Edition
Before you say it, yes, the October Release Radar was supposed to be shared in November. But with Hackatoberfest, GitHub Universe, Turkey Day, and in real life (IRL) conferences returning to their pre-COVID frequency, we’ve all been so busy. And our community has been hustling to ship all kinds of open source projects. We wanted […] ⌘ Read more
[47°09′16″S, 126°43′42″W] Bad satellite signal – switching to analog communication
@lyse@lyse.isobeef.org when I take him to work I walk him at the parkinglot when I need a break. and on my way home I walk a km or two, and then around the neighbourhood as needed later. But when I go for long walks during the weekend I can walk anywhere from 10km to 20, then the rest is as needed around the house. so he’s well adjusted to short walks as well as long. today he pulled our kids on snow sleds on the street outside here, was really fun :) it was his first time trying that, and I could barely keep up with him. haha.
$name$ and then dispatch the hashing or checking to its specific format.
I have submitted this to be used as the hash tooling for Yarn. See it as a good example on using this in a production environment!
$name$ and then dispatch the hashing or checking to its specific format.
I have submitted this to be used as the hash tooling for Yarn. See it as a good example on using this in a production environment!
@lyse@lyse.isobeef.org anyone willing to copy/paste security related things without understanding are gonna have a bad time.
@lyse@lyse.isobeef.org anyone willing to copy/paste security related things without understanding are gonna have a bad time.
I started reading the proposal to introduce operator overloading in Go version 2 that I like to see: https://github.com/golang/go/issues/27605 Now a few hours later I ended up at this gem. Write a program that makes 2+2=5: https://codegolf.stackexchange.com/questions/28786/write-a-program-that-makes-2-2-5 There are some awesone solutions. :-)
How Humanity Came To Rule The World | Yuval Noah Harari & Neil deGrasse Tyson ⌘ Read more
@lyse@lyse.isobeef.org Taken on my usual walk with the dog after work :) Every day I get there around the same time - just in time to catch the sunset.
Experiment: The hidden costs of waiting on slow build times
How much does it really cost to buy more powerful cloud compute resources for development work? A lot less than you think. ⌘ Read more
Git Commit Uruguay: Lowering barriers to make software development more inclusive and diverse
We delivered two different courses specifically designed to help students in the lowest-income neighborhood of Montevideo, Uruguay learn how to use GitHub and understand the value of open source. ⌘ Read more
Implement User Authentication Into Your Web Application Using SuperTokens
Find out how to set up SuperTokens, an open source authentication solution, using its Docker Extension. ⌘ Read more
Snikket: Notes on the F-Droid security warning
Snikket Android users who installed the app via F-Droid may receive a warning
from F-Droid telling them that the app has a vulnerability and that they
“recommend uninstalling immediately”. First of all - don’t panic! This is a
over-simplified generic warning that is scary, but the actual situation is
not quite so scary and has an explanation. Here goes…
When an app is developed and ready for release, it must be compiled and built,
to produce the fina … ⌘ Read more
$name$ and then dispatch the hashing or checking to its specific format.
Circling back to the IsPreferred method. A hasher can define its own IsPreferred method that will be called to check if the current hash meets the complexity requirements. This is good for updating the password hashes to be more secure over time.
func (p *Passwd) IsPreferred(hash string) bool {
_, algo := p.getAlgo(hash)
if algo != nil && algo == p.d {
// if the algorithm defines its own check for preference.
if ck, ok := algo.(interface{ IsPreferred(string) bool }); ok {
return ck.IsPreferred(hash)
}
return true
}
return false
}
https://github.com/sour-is/go-passwd/blob/main/passwd.go#L62-L74
example: https://github.com/sour-is/go-passwd/blob/main/pkg/argon2/argon2.go#L104-L133
$name$ and then dispatch the hashing or checking to its specific format.
Circling back to the IsPreferred method. A hasher can define its own IsPreferred method that will be called to check if the current hash meets the complexity requirements. This is good for updating the password hashes to be more secure over time.
func (p *Passwd) IsPreferred(hash string) bool {
_, algo := p.getAlgo(hash)
if algo != nil && algo == p.d {
// if the algorithm defines its own check for preference.
if ck, ok := algo.(interface{ IsPreferred(string) bool }); ok {
return ck.IsPreferred(hash)
}
return true
}
return false
}
https://github.com/sour-is/go-passwd/blob/main/passwd.go#L62-L74
example: https://github.com/sour-is/go-passwd/blob/main/pkg/argon2/argon2.go#L104-L133
$name$ and then dispatch the hashing or checking to its specific format.
Hold up now, that example hash doesn’t have a
$prefix!
Well for this there is the option for a hash type to set itself as a fall through if a matching hash doesn’t exist. This is good for legacy password types that don’t follow the convention.
func (p *plainPasswd) ApplyPasswd(passwd *passwd.Passwd) {
passwd.Register("plain", p)
passwd.SetFallthrough(p)
}
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L28-L31
$name$ and then dispatch the hashing or checking to its specific format.
Hold up now, that example hash doesn’t have a
$prefix!
Well for this there is the option for a hash type to set itself as a fall through if a matching hash doesn’t exist. This is good for legacy password types that don’t follow the convention.
func (p *plainPasswd) ApplyPasswd(passwd *passwd.Passwd) {
passwd.Register("plain", p)
passwd.SetFallthrough(p)
}
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L28-L31
$name$ and then dispatch the hashing or checking to its specific format.
Here is an example of usage:
func Example() {
pass := "my_pass"
hash := "my_pass"
pwd := passwd.New(
&unix.MD5{}, // first is preferred type.
&plainPasswd{},
)
_, err := pwd.Passwd(pass, hash)
if err != nil {
fmt.Println("fail: ", err)
}
// Check if we want to update.
if !pwd.IsPreferred(hash) {
newHash, err := pwd.Passwd(pass, "")
if err != nil {
fmt.Println("fail: ", err)
}
fmt.Println("new hash:", newHash)
}
// Output:
// new hash: $1$81ed91e1131a3a5a50d8a68e8ef85fa0
}
This shows how one would set a preferred hashing type and if the current version of ones password is not the preferred type updates it to enhance the security of the hashed password when someone logs in.
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L33-L59
$name$ and then dispatch the hashing or checking to its specific format.
Here is an example of usage:
func Example() {
pass := "my_pass"
hash := "my_pass"
pwd := passwd.New(
&unix.MD5{}, // first is preferred type.
&plainPasswd{},
)
_, err := pwd.Passwd(pass, hash)
if err != nil {
fmt.Println("fail: ", err)
}
// Check if we want to update.
if !pwd.IsPreferred(hash) {
newHash, err := pwd.Passwd(pass, "")
if err != nil {
fmt.Println("fail: ", err)
}
fmt.Println("new hash:", newHash)
}
// Output:
// new hash: $1$81ed91e1131a3a5a50d8a68e8ef85fa0
}
This shows how one would set a preferred hashing type and if the current version of ones password is not the preferred type updates it to enhance the security of the hashed password when someone logs in.
https://github.com/sour-is/go-passwd/blob/main/passwd_test.go#L33-L59
I made a thing. Its a multi password type checker. Using the PHC string format we can identify a password hashing format from the prefix $name$ and then dispatch the hashing or checking to its specific format.
I made a thing. Its a multi password type checker. Using the PHC string format we can identify a password hashing format from the prefix $name$ and then dispatch the hashing or checking to its specific format.