Celebrating the GitHub Awards 2023 recipients 🎉
The GitHub Awards recognizes and celebrates the outstanding contributions and achievements in the developer community, honoring individuals, projects, and organizations for their impactful work, innovation, thought leadership, and creating an outsized positive impact on the community.
The post Celebrating the GitHub Awards 2023 recipients 🎉 appeared first on [The … ⌘ Read more
my thoughts are free
@lyse@lyse.isobeef.org @movq@www.uninformativ.de Oh, I had a experience this weekend as well, a dog was barking in the forest, sounded like something was wrong (it’s a fairly public area), I then continued my walk, and Nanook got more and more nervous, I then continued the walk, and Nanook froze. I could still hear the dog barking quite close. And then someone shot a rifle. I’m glad I did not walk up to where that dog was, I kinda wanted too, because I first thought maybe something was wrong. But it honestly weirded me out that they did this in such a place as they did, almost called the cops to be honest to check with them, but I did not at the time..
Docker State of Application Development Survey 2023: Share Your Thoughts on Development
Participate in the Docker State of Application Development Survey 2023 to help us better understand and serve the developer community. We want to know where developers are focused, what they’re working on, and what is most important to them. Your participation and input will help us build the best products and experiences for you. ⌘ Read more
Long term career thoughts
When I read this article by Herman Martinus, creator of Bear Blog and some other projects, about how he stays motivated as a solo creator, it triggered some thoughts about my own career. ⌘ Read more
5G chaos in my head
One of the reasons I like blogging is that it sometimes helps me organize my thoughts. There’s a lot of chaos in my head before I write them down, and after, my head is sometimes calm. ⌘ Read more
Run Threads on Desktop with Mac, Windows PC, Linux
Threads, the social network microblogging Twitter/X competitor launched by Meta (Facebook), is typically thought of as a mobile only experience, with users having the Threads app on their iPhone or Android device. But, if you have a Mac, Windows PC, or Linux computer, and you want to use Threads on your desktop computer, you can … Read More ⌘ Read more
Erlang Solutions: Our experts at Code BEAM Europe 2023
The biggest Erlang and Elixir Conference is coming to Berlin in October!
Are you ready for a deep dive into the world of Erlang and Elixir? Mark your calendars, because Code BEAM Europe 2023 is just around the corner.
With a lineup of industry pioneers and thought leaders, Code BEAM Europe 2023 promises to be a hub of knowledge sharing, innovation, and networking.
Erlang Solutions’ experts are working har … ⌘ Read more
Catching COVID-19
So far, I had been spared from COVID-19. “Had,” focusing on the past, because now it has affected me, or us, after all. We had to cut short our vacation, which I used to share little glimpses of here on the blog. We quickly went back home, wearing masks the whole time and hoping not to infect more people. ⌘ Read more
Is the Universe Twice As Old As We Thought? ⌘ Read more
Here are three things I’ve noticed in the UK that I really appreciate: ⌘ Read more
Here are three things I’ve noticed in the UK that I really appreciate: ⌘ Read more
Tailscale and Mullvad
This is some really cool news! You can now use Tailscale and Mullvad simultaneously without any additional setup required. ⌘ Read more
Prosodical Thoughts: Prosody 0.12.4 released
We are pleased to announce a new minor release from our stable branch.
We’re relieved to announce this overdue maintenance release containing a
number of bug fixes and also some improvements from the last few months.
Especially the prosodyctl check tool which gained some new diagnostic
checks as well as handling of configuration option types the same way
Prosody itself does.
A summary of changes in this release:
Minor changes- core.certmanager: Update Mozilla TLS … ⌘ Read more
ChatGPT Plus?
It’s been a while since ChatGPT was introduced to the world, and after the initial excitement, things seem to have settled down. While there’s still daily news about various services and companies integrating the GPT API into their products, the buzz around it has quieted. At least, that’s how it appears to me. ⌘ Read more
I still think it’s wild sentient aliens are confirmed. I thought they existed, but had doubts about visiting Earth.
How much CPU you got in the server farm? I thought you had a whole rack.
How much CPU you got in the server farm? I thought you had a whole rack.
Things You Thought You Knew - Worldlines, Rainbows, & Zero ⌘ Read more
I’m curious. How many people truly believe blockchain social networks are the future?
NFTs, tokens, monetization, revenue…
I’m sorry, but how are your random social media blabbers worth any money?
Unless you’re Shakespeare or Einstein or some philosophical or scientific genius, I don’t see why anyone would want to read your posts, let alone cash out some “crypto” from some “wallet”.
And that applies to most people. Sure, your lifestyle and your thoughts may be interesting. But who’s going to start paying to view what’s going on in your life?
As if likes, upvotes, hearts, and subscriptions weren’t narcissistic enough, let’s make people think someone wants to pay them with crypto to view their random posts online.
Release Radar · Spring 2023 Edition
It’s been a while since we’ve published our Release Radar. You can blame IRL conferences coming back, getting influenza, and being struck down by the weather. But those are just me problems. While I’ve been down or travelling, the community has been hard at work shipping new releases and new projects. So, we thought we’d […] ⌘ Read more
Finding peace in ignorance
During and after my studies, I used to refresh my Miniflux start page (the feed reader, which I use to keep up with things on websites I want to follow) every few minutes. As soon as there was a new article, I would read it. I also used to use this tool to read the news by following a local national newspaper website. ⌘ Read more
I understand your thoughts on this, but I would not call it a failure - because you learned a lot from it, and lots of things worked as well.
And there are alternatives for those who needs\wants activitypub, so I think also yarn\twtxt benefits from you focusing on that instead of dealing with the frustrations of activitypub integration. And maybe it’ll feel a bit better to put that on the backburner? :)
Question to all you Gophers out there: How do you deal with custom errors that include more information and different kinds of matching them?
I started with a simple var ErrPermissionNotAllowed = errors.New("permission not allowed"). In my function I then wrap that using fmt.Errorf("%w: %v", ErrPermissionNotAllowed, failedPermissions). I can match this error using errors.Is(err, ErrPermissionNotAllowed). So far so good.
Now for display purposes I’d also like to access the individual permissions that could not be assigned. Parsing the error message is obviously not an option. So I thought, I create a custom error type, e.g. type PermissionNotAllowedError []Permission and give it some func (e PermissionNotAllowedError) Error() string { return fmt.Sprintf("permission not allowed: %v", e) }. My function would then return this error instead: PermissionNotAllowedError{failedPermissions}
At some layers I don’t care about the exact permissions that failed, but at others I do, at least when accessing them. A custom func (e PermissionNotAllowedError) Is(target err) bool could match both the general ErrPermissionNotAllowed as well as the PermissionNotAllowedError. Same with As(…). For testing purposes the PermissionNotAllowedError would then also try to match the included permissions, so assertions in tests would work nicely. But having two different errors for different matching seems not very elegant at all.
Did you ever encounter this scenario before? How did you address this? Is my thinking flawed?
Neil deGrasse Tyson Has Some Serious Thoughts On Occupying Other Planets… #neildegrassetyson href=”https://txt.sour.is/search?q=%23space”>#space** ⌘ Read more
Interesting thoughts about multi thread vs single thread performance.

Interesting thoughts about multi thread vs single thread performance.

Social media trap
reddit going dark (a protest action by many subreddit moderators over some planned API changes) reminds me that I should probably stop scrolling through Reddit so much. Reddit is a social network, and as such it attracts you with new content almost every time you visit. Which can be addictive. I once had a profile that I deleted because I wanted to leave all social media. But I fell into the same trap again. ⌘ Read more
I thought we called those palmettos so we didn’t have to say that every house in Florida has roaches.
RT by @mind_booster: The urgency has never been higher. In a separate study, @JoeriRogelj and colleagues found the carbon budget is shrinking faster that previously thought. If emissions continue at the current rate, the world will exhaust its budget for 1.5C before 2030. https://www.theguardian.com/environment/2023/jun/08/global-greenhouse-gas-emissions-at-all-time-high-study-finds
The urgency has never been higher. In a separate study, @JoeriRogelj and colle … ⌘ Read more
Thoughts on Apple Vision Pro?
Things You Thought You Knew – The Karman Line, LED Bulbs, and Banking Turns with Neil deGrasse Tyson ⌘ Read more
Erlang Solutions: Here’s why you should consider investing in RabbitMQ during a recession
Europe and the US are leading the way in the forecasted recession for 2023, due to persistently high inflation and increasing interest rates. With minimal projected GDP growth, modern technologies can play a crucial role in reducing the impact of economic downturns.
As caution looms, it can be tempting to reign in on your investment. Your initial thought is to balance t … ⌘ Read more
What’s going on?
This post is meant for a little reflection because I’ve noticed a few things that I can’t quite place. ⌘ Read more
I miss running
I’ve talked about this a few times and posted some of the pictures OneDrive shows me every day. Photos taken on the same day, week or month in previous years. It always gives me a “throwback” and I think about the situation at the time I took the photo. ⌘ Read more
** of array programming, lightsabers and some thoughts on permacomputing **
A bit of this and that, some kind of mishmosh.
Over the last few weeks I’ve been reading a lot about array programming systems like J, K, Q, APL, and BQN. I’ve been intending to add a page to the wiki about them, but havent gotten to that yet. Consider this a little promise that I’ll do that sometime soon. I’m interested in array programming less because I think it’s particularl … ⌘ Read more
@prologic@twtxt.net yes I will test it :) cloudflare is something I do not have on my end, so I never thought of that, so glad you mention that as a potential issue to solve. Ill check on it.
@lyse@lyse.isobeef.org valid points and noted. 😀
It will improve shortly. I had not thought about quotes in password, so that was a nice catch that needs to be fixed.
💭 While some people like to jump between blogging software all the time, or go back to Hugo from a custom one, I don’t really miss Hugo after switching to GoBlog in 2020, but enjoy having my own system quite a bit. Not that Hugo, WordPress, etc. are bad blogging systems, but I really enjoy being able to quickly code a fix without having to research docs, StackOverflow, or the source on GitHub. And when I have an idea for a new feature, it would often not be easy to implement in the existing systems. ⌘ Read more
I played around with parsers. This time I experimented with parser combinators for twt message text tokenization. Basically, extract mentions, subjects, URLs, media and regular text. It’s kinda nice, although my solution is not completely elegant, I have to say. Especially my communication protocol between different steps for intermediate results is really ugly. Not sure about performance, I reckon a hand-written state machine parser would be quite a bit faster. I need to write a second parser and then benchmark them.
lexer.go and newparser.go resemble the parser combinators: https://git.isobeef.org/lyse/tt2/-/commit/4d481acad0213771fe5804917576388f51c340c0 It’s far from finished yet.
The first attempt in parser.go doesn’t work as my backtracking is not accounted for, I noticed only later, that I have to do that. With twt message texts there is no real error in parsing. Just regular text as a “fallback”. So it works a bit differently than parsing a real language. No error reporting required, except maybe for debugging. My goal was to port my Python code as closely as possible. But then the runes in the string gave me a bit of a headache, so I thought I just build myself a nice reader abstraction. When I noticed the missing backtracking, I then decided to give parser combinators a try instead of improving on my look ahead reader. It only later occurred to me, that I could have just used a rune slice instead of a string. With that, porting the Python code should have been straightforward.
Yeah, all this doesn’t probably make sense, unless you look at the code. And even then, you have to learn the ropes a bit. Sorry for the noise. :-)
Too lazy or too ambitious?
Today was the second day of my “Hell Week”. Not because my week is so bad, it is after all holidays and time off, no, because I have arrived in the last week of the “Training Journey” at Freeletics. At the end of the Journey, the “coach” requires training every day, usually a so-called “god workout” in addition to warm-up and cool-down. ⌘ Read more
Got some good progress on the GTK gui today, got the timeline to work!
Took some time to figure out how the UI layout stuff works, but it looks good now.
I will add the avatars next.
The way it is right now - I got this up and running in a couple of hours, instead of ‘days’ with FLTK.
So I’m glad I made the decision to switch to GTK,
Right now I’m doing all development on Trisquel OS, windows version will come later on.
Also - since I thought about the possibility that I wanted to switch early in the process the code that does all the work is UI independent, meaning this was easy to do. +1 for planning ahead.. :)
I will post a screenshot of the new UI soon, once it’s a bit polished.
main) actually useful? 🤔 (because I'm not and having second thoughts...)
@prologic@twtxt.net I like it, I get to follow some people I could not follow before, which I find useful.
But if you have second thoughts about it all - then I can understand that.
If you decide to pull the plug on it - then I’ll just get some additional activitypub service installed on my server and use that for that (I was thinking about installing this: https://github.com/tsileo/microblog.pub ) if needed.
Q: Is anyone actually finding the activitypub experimental feature I’ve been working on (for those running main) actually useful? 🤔 (because I’m not and having second thoughts…)
WordPress with SQLite
Philipp’s recent post on WordPress with SQLite reminded me to give the migration of a site I maintain for someone else a second try. ⌘ Read more
WordPress with SQLite
Philipp’s recent post on WordPress with SQLite reminded me to give the migration of a site I maintain for someone else a second try. ⌘ Read more
GoBlog’s new ChatGPT integration
There’s been a lot of AI hype lately. Everyone is integrating AI into their applications. ⌘ Read more
I’m currently validating the use of the OpenAI API as a cheaper and more powerful alternative to the Google Translate API. I hope my plans succeed and there will be a new GoBlog plugin with some AI power soon. ✨ So far the OpenAI API is quite easy to use, I thought it would be more complicated. Philipp is already using the API for his diary, another cool idea (which I may copy someday). ⌘ Read more
[LIVE] Seeing the thoughts of Fungi 🍄 Whose Gene 15 ⌘ Read more
👋 Hey y’all yarners 🤗 – @darch@neotxt.dk and I have been discussing in our Weekly Yarn.social call (still ongoing… come join us! 🙏) about the experimental Yarn.social <-> Activity Pub integration/bridge I’ve been working on… And mostly whether it’s even a good idea at al, and if we should continue or not?
There are still some outstanding issues that would need to be improved if we continued this regardless
Some thoughts being discussed:
- Yarn.social pods are more of a “family”, where you invite people into your “home” or “community”
- Opening up to the “Fedivise” is potentially “uncontrolled”
- Even at a small scale (a tiny dev pod) we see activities from servers never interacted with before
- The possibility of abuse (because basically anything can POST things to your Pod now)
- Pull vs. Push model polarising models/views which whilst in theory can be made to work, should they?
Go! 👏
Okay, so was easier to solve (for now) then what I initially thought.
First thing I found was this:
https://stackoverflow.com/questions/49333136/removing-html-tags-from-a-string-of-text
Lunduke’s BSD Thoughts (as BSD Week ends)
Listen now (24 min) | The Lunduke Journal of Technology Podcast - Mar 1, 2023 ⌘ Read more
We do what we do; not because it is easy, but because we thought it would be easy. From Ugly to Beautiful | Hacker News
Erlang Solutions: Can’t Live with It, Can’t Live without It
I’d like to share some thoughts about Elixir’s with keyword. with is a wonderful tool, but in my experience it is a bit overused. To use it best, we must understand how it behaves in all cases. So, let’s briefly cover the basics, starting with pipes in Elixir.
But like all tools, you should think about when it is best used…
Pipes are at their best when you expect your function … ⌘ Read more
Prosodical Thoughts: Prosody 0.12.3 released
We are pleased to announce a new minor release from our stable branch.
This is a bugfix release for our stable 0.12 series. Most notably, it fixes a
regression for SQL users introduced in 0.12.2, and a separate long-standing
compatibility issue with archive stores on certain MySQL/MariaDB versions.
It also fixes an issue with websockets discovered by the Jitsi team, some
issues with our internal HTTP client API, and we’ve improved the accuracy of
‘prosodyctl check dns’ in … ⌘ Read more
@stigatle@yarn.stigatle.no The reason I was thinking about a separate binary / project / service is to bring along our Twtxt friends like @movq@www.uninformativ.de and @lyse@lyse.isobeef.org and anyone else that self-hosted their Twtxt feed on their own. But this of course has added complexities like spinning up yanrd along with whatever this thing will be called configuring the two and connecting them. Fortunately however yarnd already does this with the feeds service and defaults to using feeds.twtxt.net – So we would so something similar there too. Further thoughts? 🤔
** Accessibility and the product person **
This post is a slightly modified version of a talk I presented to the product practice at my work. It presents a few ways that product designers and managers can help to move accessibility forward. It is a little bit different than what I normally share, here, but, I thought it may be interesting to some folks.
[![Picture of a slide with the title “Why though?” It also includes a quote from Kat Holmes’ book Mismatch. The quote reads: “There are many challeng … ⌘ Read more
Microsoft Office and OneDrive for free?
I’m a bit of an indecisive (and frugal) person sometimes. ⌘ Read more
** Accessibility updates **
I’m feeling pretty chuffed! Last week I wrote about my intention to make this website more accessible. My motivations were many-fold, but, primarily, mostly shame. I’ve worked as an accessibility specialist in the past, and now spend a bunch of my days at work looking for ways to make public infrastructure online more accessible. It seemed fitting to at least make sure the little bit I contribute to the web here is also accessible.
I thought it was going t … ⌘ Read more
** week notes **
It got a wee bit cold here in Maine this weekend. It was thankfully uneventful for us. We hung around inside and watched it get real cold outside. Our home faired pretty well, too. Honestly pleasantly surprised about that!
We picked this weekend to go all in on potty training — pantsless days, treats, rousing bouts of encouragement sung, and a lot of spot cleaning. Fueled by hubris, I thought we had this potty trainin … ⌘ Read more
🎬🚄💶
Since I have YouTube Premium and log in to YouTube, YouTube is suggesting videos that seem to fit my interests a lot more (and it’s a little addictive again, but not as bad as when I was still studying). ⌘ Read more
@bender@twtxt.net I honestly did not know they had one.. I thought it was cli only.
My code is still a mess, but I’m learning
I taught myself Go (and programming in general) by learning by doing. I learned by making a lot of mistakes and after noticing them, doing the necessary research. My Go code is probably a big mess, but it’s so satisfying, after not touching some code for a while, to do a major rewrite and improve the code with everything I’ve learned since the last time. ⌘ Read more
H3: Instead of C3
[Updated with correct Gemlog link.]
A version of this was posted on on 2023-01-06 but I thought it might
also fit here. Go to my gemlog for somewhat more personal takes and
see what I publish first. IPv6 only!
gemini://gem.hack.org/mc/log/
As long-time readers know I have participated in the Chaos
Communication Congress (C3) in Germany every year since 2008.
Since C3 was cancelled this year I thought I’d arrange a very small
conference of my own. I would at least try to gather some friends and
acquaintances … ⌘ Read more
H3: Instead of C3
A version of this was posted on on 2023-01-06 but I thought it might
also fit here. Go to my gemlog for somewhat more personal takes and
see what I publish first. IPv6 only!
gemini://gem.hack.org/log/
As long-time readers know I have participated in the Chaos
Communication Congress (C3) in Germany every year since 2008.
Since C3 was cancelled this year I thought I’d arrange a very small
conference of my own. I would at least try to gather some friends and
acquaintances in chat and video conference and watch t … ⌘ Read more
Science reveals what fish thoughts look like ⌘ Read more
@prologic@twtxt.net That was exactly my thought at first too. but what do we put as the rel for salty account? since it is decentralized we dont have a set URL for machines to key off. so for example take the standard response from okta:
# http GET https://example.okta.com/.well-known/webfinger resource==acct:bob
{
"links": [
{
"href": "https://example.okta.com/sso/idps/OKTA?login_hint=bob#",
"properties": {
"okta:idp:type": "OKTA"
},
"rel": "http://openid.net/specs/connect/1.0/issuer",
"titles": {
"und": "example"
}
}
],
"subject": "acct:bob"
}
It gives one link that follows the OpenID login. So the details are specific to the subject acct:bob.
Mastodons response:
{
"subject": "acct:xuu@chaos.social",
"aliases": [
"https://chaos.social/@xuu",
"https://chaos.social/users/xuu"
],
"links": [
{
"rel": "http://webfinger.net/rel/profile-page",
"type": "text/html",
"href": "https://chaos.social/@xuu"
},
{
"rel": "self",
"type": "application/activity+json",
"href": "https://chaos.social/users/xuu"
},
{
"rel": "http://ostatus.org/schema/1.0/subscribe"
}
]
}
it supplies a profile page and a self which are both specific to that account.
@prologic@twtxt.net That was exactly my thought at first too. but what do we put as the rel for salty account? since it is decentralized we dont have a set URL for machines to key off. so for example take the standard response from okta:
# http GET https://example.okta.com/.well-known/webfinger resource==acct:bob
{
"links": [
{
"href": "https://example.okta.com/sso/idps/OKTA?login_hint=bob#",
"properties": {
"okta:idp:type": "OKTA"
},
"rel": "http://openid.net/specs/connect/1.0/issuer",
"titles": {
"und": "example"
}
}
],
"subject": "acct:bob"
}
It gives one link that follows the OpenID login. So the details are specific to the subject acct:bob.
Mastodons response:
{
"subject": "acct:xuu@chaos.social",
"aliases": [
"https://chaos.social/@xuu",
"https://chaos.social/users/xuu"
],
"links": [
{
"rel": "http://webfinger.net/rel/profile-page",
"type": "text/html",
"href": "https://chaos.social/@xuu"
},
{
"rel": "self",
"type": "application/activity+json",
"href": "https://chaos.social/users/xuu"
},
{
"rel": "http://ostatus.org/schema/1.0/subscribe"
}
]
}
it supplies a profile page and a self which are both specific to that account.
Trying to wrap my head around webfinger..
my first thoughts about it were that a subject of acct:me@sour.is would have a listing of rel’s for the different accounts that are related to me (ie. yarn, salty, twitter, mastodon, etc…)
but maybe my thinking is at the wrong level.. that each of those accounts would be on a subject level and the rels are describing different aspects of that account. so i would have salty:acct:xuu@sour.is, twitter:acct:xuu, mastodon:acct:xuu@chaos.social, yarn:acct:xuu@ev.sour.is and then i could have a main acct:me@sour.is that links them together as aliases.
I found okta will do something similar with its accounts to show as okta:acct:user@domain so maybe I am on to something?
Trying to wrap my head around webfinger..
my first thoughts about it were that a subject of acct:me@sour.is would have a listing of rel’s for the different accounts that are related to me (ie. yarn, salty, twitter, mastodon, etc…)
but maybe my thinking is at the wrong level.. that each of those accounts would be on a subject level and the rels are describing different aspects of that account. so i would have salty:acct:xuu@sour.is, twitter:acct:xuu, mastodon:acct:xuu@chaos.social, yarn:acct:xuu@ev.sour.is and then i could have a main acct:me@sour.is that links them together as aliases.
I found okta will do something similar with its accounts to show as okta:acct:user@domain so maybe I am on to something?
Things You Thought You Knew – Naming Planets, Moons, & More with Neil deGrasse Tyson ⌘ Read more
My first Freeletics week
My first Freeletics week is complete. And I got a badge for the first “perfect week”. I hope this gamification (levels and badges for perfect weeks, perfect week streaks, training session milestones etc.) will make me pull through. My girl friend also joined me and started using Freeletics. 🤓 ⌘ Read more
Huh. I thought I had that one. Must be an unteste regression. Will add it to the list!
Huh. I thought I had that one. Must be an unteste regression. Will add it to the list!
** I read some books in 2022, and have some thoughts about computer science writing **
At the start of this year I set out to revive my long dead reading habit. After having kids it fell by the wayside. I’ve read 41 books so far this year. Mostly a mix of science fiction and nonfiction computer science books. Here’s the complete list of everything I’ve read. I’ve got mixed feelings about keeping track and sharing cou … ⌘ Read more
Bitwarden Unified
Bitwarden (my favorite and recommended password manager) is offering a “new deployment option”. This new option combines all microservices into a single Docker container and doesn’t require 11 different containers anymore. And it supports PostgreSQL and MariaDB in addition to MS SQL. ⌘ Read more
That Vikings comeback was epic. I thought the Buffalo game was crazy, but this was beyond.
** 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
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
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** 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
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
Prosodical Thoughts: Bringing FASTer authentication to Prosody and XMPP
As our work continues on modernizing XMPP authentication,
we have some more new milestones to share with you. Until now our work has
mostly been focused on internal Prosody improvements, such as the new roles\
and permissions framework. Now we are starting to extend our
work to the actual client-to-server protocol in XMPP.
Prosody and [Snikket](https://snik … ⌘ Read more
` `` `
@movq@uninformativ.de yeah.. i rewrote it a few times because i thought there was something breaking.. but was mistaken
though now i am seeing a weird cache corruption.. that seems to come and go.

` `` `
@movq@uninformativ.de yeah.. i rewrote it a few times because i thought there was something breaking.. but was mistaken
though now i am seeing a weird cache corruption.. that seems to come and go.

Moving to another city
As I’ve probably written many times before (have I?), I’m currently moving with my girlfriend to her university town. I will keep my old apartment as a second home. But it’s still my first move to another city and I’m just realizing it. ⌘ Read more
**RT by @mind_booster: Who’d a thought. Golly gosh. Apple “privacy is a fundamental human right” .. but ….
“Apple Is Tracking You Even When Its Own Privacy Settings Say It’s Not, New Research Says”
https://gizmodo.com/apple-iphone-analytics-tracking-even-when-off-app-store-1849757558**
Who’d a thought. Golly gosh. Apple “privacy is a fundamental human right” .. but ….
“Apple Is Tracking You Even When Its Own Privacy Settings Say It’s Not, New Research Says”
[gizmodo.com/apple-iphone-ana…](https://gizm … ⌘ Read more
Königsberg
⌘ Read more
I was inclined to let this go so as not to stir anything up, but after some additional thought I’ve decided to call it out. This twt:
is exactly the kind of ad hominem garbage I came to expect from Twitter™, and I’m disappointed to see it replicated here. Rummaging through someone’s background trying to find a “gotcha” argument to take credibility away from what a person is saying, instead of engaging the ideas directly, is what trolls and bad faith actors do. That’s what the twt above does (falsely, I might add–what’s being claimed is untrue).
If you take issue with something I’ve said, you can mute me, unfollow me, ignore me, use TamperMonkey to turn all my twts into gibberish, engage the ideas directly, etc etc etc. There are plenty of options to make what I said go away. Reading through my links, reading about my organization’s CEO’s background, and trying to use that against me somehow (after misinterpreting it no less)? Besides being unacceptable in a rational discussion, and besides being completely ineffective in stopping me from expressing whatever it is you didn’t like, it’s creepy. Don’t do that.
Because I used Prometheus and Grafana at work, I also tried them at home and I must say, monitoring isn’t as boring as I always thought. Next up Kubernetes? 😅 ⌘ Read more
I was just reminded of this interpreter for an APL/J-like language by Arthur Whitney, the absolute weirdest bit of C code I’ve actually gotten something out of, and thought I’d share: https://code.jsoftware.com/wiki/Essays/Incunabulum
After all, debugging is still fun!
One reason I use an Android smartphone is that there are apps like Indigenous (a MicroPub-compatible app for posting from your phone to a MicroPub-compatible blog). And even if the app ever disappears from the store, there’s still the option to manually install the app. And if you need to, you can also develop your own apps without having to invest nearly $100 a year. ⌘ Read more
Prosodical Thoughts: Mutation Testing in Prosody
This is a post about a new automated testing technique we have recently
adopted to help us during our daily development work on Prosody. It’s probably
most interesting to developers, but anyone technically-inclined should be able
to follow along!
If you’re unfamiliar with our project, it’s an open-source real-time messaging
server, built around the XMPP protocol. It’s used by many organizations and
self-hosting hobbyists, and also powers applications such as [Snikke … ⌘ Read more
First work day in my new job
My first day at my new job is over, and it went quite well despite the lack of sleep. Super nice colleagues and I am already full in the training. ⌘ 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
real world software development is a never-ending series of compromises Thoughts on why sometimes programming/software engineering discussions suck | Hacker News
@mckinley@twtxt.net Haha, while composing I was wondering two or three times whether I should throw my thoughts in an HTML page instead. But out of utter laziness I discarded that idea. ¯_(ツ)_/¯
@prologic@twtxt.net Error handling especially in Go is very tricky I think. Even though the idea is simple, it’s fairly hard to actually implement and use in a meaningful way in my opinion. All this error wrapping or the lack of it and checking whether some specific error occurred is a mess. errors.As(…) just doesn’t feel natural. errors.Is(…) only just. I mainly avoided it. Yesterday evening I actually researched a bit about that and found this article on errors with Go 1.13. It shed a little bit of light, but I still have a long way to go, I reckon.
We tried several things but haven’t found the holy grail. Currently, we have a mix of different styles, but nothing feels really right. And having plenty of different approaches also doesn’t help, that’s right. I agree, error messages often end up getting wrapped way too much with useless information. We haven’t found a solution yet. We just noticed that it kind of depends on the exact circumstances, sometimes the caller should add more information, sometimes it’s better if the callee already includes what it was supposed to do.
To experiment and get a feel for yesterday’s research results I tried myself on the combined log parser and how to signal three different errors. I’m not happy with it. Any feedback is highly appreciated. The idea is to let the caller check (not implemented yet) whether a specific error occurred. That means I have to define some dedicated errors upfront (ErrInvalidFormat, ErrInvalidStatusCode, ErrInvalidSentBytes) that can be used in the err == ErrInvalidFormat or probably more correct errors.Is(err, ErrInvalidFormat) check at the caller.
All three errors define separate error categories and are created using errors.New(…). But for the invalid status code and invalid sent bytes cases I want to include more detail, the actual invalid number that is. Since these errors are already predefined, I cannot add this dynamic information to them. So I would need to wrap them à la fmt.Errorf("invalid sent bytes '%s': %w", sentBytes, ErrInvalidSentBytes"). Yet, the ErrInvalidSentBytes is wrapped and can be asserted later on using errors.Is(err, ErrInvalidSentBytes), but the big problem is that the message is repeated. I don’t want that!
Having a Python and Java background, exception hierarchies are a well understood concept I’m trying to use here. While typing this long message it occurs to me that this is probably the issue here. Anyways, I thought, I just create a ParseError type, that can hold a custom message and some causing error (one of the three ErrInvalid* above). The custom message is then returned at Error() and the wrapped cause will be matched in Is(…). I then just return a ParseError{fmt.Sprintf("invalid sent bytes '%s'", sentBytes), ErrInvalidSentBytes}, but that looks super weird.
I probably need to scrap the “parent error” ParseError and make all three “suberrors” three dedicated error types implementing Error() string methods where I create a useful error messages. Then the caller probably could just errors.Is(err, InvalidSentBytesError{}). But creating an instance of the InvalidSentBytesError type only to check for such an error category just does feel wrong to me. However, it might be the way to do this. I don’t know. To be tried. Opinions, anyone? Implementing a whole new type is some effort, that I want to avoid.
Alternatively just one ParseError containing an error kind enumeration for InvalidFormat and friends could be used. Also seen that pattern before. But that would then require the much more verbose var parseError ParseError; if errors.As(err, &parseError) && parseError.Kind == InvalidSentBytes { … } or something like that. Far from elegant in my eyes.
Hi, I am playing with making an event sourcing database. Its super alpha but I thought I would share since others are talking about databases and such.
It’s super basic. Using tidwall/wal as the disk backing. The first use case I am playing with is an implementation of msgbus. I can post events to it and read them back in reverse order.

I plan to expand it to handle other event sourcing type things like aggregates and projections.
Find it here: sour-is/ev
@prologic@twtxt.net @movq@www.uninformativ.de @lyse@lyse.isobeef.org