Profanity: New Profanity Old System
Occasionally people visit our MUC asking how to run the latest profanity release on years old systems.
For some distributions people maintain a backports project, so you can get it from there if available.
Here we want to describe another methods, using containers, more specifically distrobox.
What’s Distrobox?It’s basically a tool that let’s you run another distribution on your system. It uses docker/podman to create containers that … ⌘ Read more
@bender@twtxt.net Yeah, that is correct :) I use it for testing, but I set it up as any desktop system as close as I can, with all the things I usually use.
I’m really excited about riscv - I have another board as well, which is more like a arduino, but I never got that one to do anything useful, but the mangopo - is as you say more usefull since it’s just like a raspberrypi zero, and works very well.
But I am looking forward to that day I can have a proper desktop system (or laptop) with riscv. There was a board released some time ago that let you do that, but the price was a bit too high for me .So now I wait for the next thing to come out.
Okay one last time, then I’m going to bed, let’s hope this is the final bug that fixes Yarn/Twtxt <-> Activity Pub integration 😅
Took my daughter’s kickbike again and let Nanook pull for some kilometres, he was really good today, fun to see him correct around obstacles, and when he looks back at me while running to make sure things are OK. I really need to get a offroad kickbike that I can use, makes it more safe too - because he runs fast. I know Ill get one in mid May, hopefully sooner.
ICYMI: CodeQL enhancements
Learn about CodeQL’s improved user experience and enhancements that let you scan new languages, detect new types of CWEs, and perform deeper analyses of your applications. ⌘ Read more
JMP: Newsletter: JMP is 6! Leaving beta this year! And FOSSY 🙂️
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 … ⌘ Read more
**RT by @mind_booster: Happy I ❤️ Free Software Day everyone! Let’s start by saying thank you to #freesoftware contributors out there who work for #softwarefreedom ❤️ #ilovefs
Don’t let this day pass without saying thank you! https://sharepic.fsfe.org/#ilovefs**
Happy I ❤️ Free Software Day everyone! Let’s start by saying thank you to #freesoftware contributors out there who work for #softwarefreedom ❤️ [#ilovefs](https:/ … ⌘ Read more
Erlang Solutions: Elixir, 7 steps to start your journey
Read this post in Spanish.
Let’s talk about Elixir!
Elixir is a functional programming language created by José Valim to build concurrent and scalable systems. It is defined as:
“a dynamic, functional language for building scalable and maintainable applications”.
Its first version was released in 2012. Since then, n … ⌘ Read more
❤️ 🎶: Never Let You Go (電視劇《我只喜歡你》片尾曲) by 薩吉
JMP: Threads, Thumbnails, XMR, ETH
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; Shar … ⌘ Read more
Did not want to start my day with a hike today, so I borrowed my daughter’s kickbike and let the dog pull me for some kilometres. He did better today then ever before. He hit his top speed and just kept going.
Funny Programming Pictures Part XIX
It’s Friday! So let’s look at some funny, nerdy pictures! ⌘ Read more
BREAKING: Gizmodo stuns world by publishing Tech article
“We won’t let computers distract us from our core mission…complaining about Elon Musk” ⌘ Read more
RT by @mind_booster: Happy Public Domain Day 2023! Let’s celebrate in style with Erma Bossi’s fun painting “Circus”, which just entered the Public Domain – meaning it is now free to re-use and remix by anyone! href=”https://txt.sour.is/search?q=%23publicdomainday”>#publicdomainday**
Happy Public Domain Day 2023! Let’s celebrate in style with Erma Bossi’s fun painting “Circus”, which just entered the Public Domain – meaning it is now free to re-use and remix by anyone! #publicdomainday
 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
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’ll let the head of the bird site comment on that:

I’ll let the head of the bird site comment on that:

Creating an accessible search experience with the QueryBuilder component
GitHub’s search inputs have several complex accessibility considerations. Let’s dive into what those are, how we addressed them, and talk about the standalone, reusable component that was ultimately built. ⌘ Read more
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
How to Pronounce Tech Words (part 2)
Watch now (6 min) | Some computer words are hard to say. Let Lunduke help you. ⌘ Read more
pareto improvement: instead of letting students write bachelors/masters theses that are basically just literature reviews, let them rewrite the respective wikipedia articles instead (and then check the article)
I’ll see if I have time tonight, I’ll take a backup of everything, then test a bit. I’ll let you know if I get stuck on anything. thank you for asking :)
Brought our dog to work today, so nice to have one that handles the cold without any issues. He just chills in his crate in the car while I work, and I take some small breaks to let him stretch his legs. Loves to play around in the snow. I could then take the ‘long’ walk on my way home instead of getting home first - then head out again.
@darch@neotxt.dk yeah, all my computers and devices are on 24/7. but I’ll install it on my webserver (vps) as well, and let that one be the master device. my desktop is backed up to spideroak at all times, so when I sync there it backs things up. Im not too worried about the issue if something causes a conflict. There is only one file that worries me, and that is my keepass file. I might keep that elsewhere to be sure, I have not decided yet.
Let Me Be Blunt ⌘ Read more
How to Build a Restreaming Server with a Raspberry Pi
First of all, what is a restreaming server? Sometimes you want to livestream video from a device like an ATEM Mini or OBS to multiple destinations. Many devices and software like this will let you push video to just one RTMP destination at a time. ⌘ Read more
Amnistier les covidistes ? Et puis quoi encore ?
The Atlantic, vénérable mensuel fondé au XIXème siècle, a récemment fait paraître un article d’Emily Oster qui a largement défrayé la chronique : dans “Let’s declare a pandemic amnestie” (“Déclarons une amnistie pour la pandémie”), l’auteur tente d’aligner quelques arguments en faveur d’un pardon général pour tous ceux qui, pendant la pandémie, ont pris les décisions […] ⌘ Read more
JMP: Newsletter: New Cheogram Android Release, Chatwoot Instance
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 … ⌘ Read more
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
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.
**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
That time the creator of UNIX built a Trojan Horse that let him log in to any UNIX machine.
And nobody knew about it for years. ⌘ Read more
JMP: Newsletter: Voicemail Changes, Opt-in Jabber ID Discoverability
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 number … ⌘ Read more
❤️ 🎶: let’s have a drink by Zia
Funny Programming Pictures Part XVI
It’s Friday! Let’s have some fun and look at some funny pictures about programming and Linux and stuff! The Lunduke Journal Community — About the Lunduke Journal — Subscriber Perks The Lunduke Journal Weekly Schedule: Monday - Computer History Tuesday ⌘ Read more
The (very real) history of :-)
On the 40th anniversary of :-) and :-( let’s tell the story of how the emoticon came into existence. ⌘ Read more
Monal IM: Monal IM – project moved
We recently started to migrate the App from Anu Pokharel‘s Apple account to Thilo Molitor‘s Apple account.
Aspart of this transition we also deployed some new push servers to not let an old retired developer pay for the infrastructure needed for Monal.
Coming along with this transition from the old developer team to the new one is our new clean website at https://monal-im.org/. From now on, this blog will not be used for Monal anymore.
**Many t … ⌘ Read more
@mckinley@twtxt.net We need to make something like computer time or something like that so people using a computer can say like lets have a chat thursday at 7:00 and no timezone things.
Now that I have access to Udemy Business and can watch many, many courses for free, I subscribed to two courses. One to improve my English and one to improve my quick-wittedness. Let’s see if I complete them and if they really help. ⌘ Read more
Integrated Terminal for Running Containers, Extended Integration with Containerd, and More in Docker Desktop 4.12
Docker Desktop 4.12 is now live! This release brings some key quality-of-life improvements to the Docker Dashboard. We’ve also made some changes to our container image management and added it as an experimental feature. Finally, we’ve made it easier to find useful Extensions. Let’s dive in. Execute commands in a runn … ⌘ Read more
JMP: Newsletter: New Employee, Command UI, JMP SIM Card, Multi-account Billing
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 … ⌘ Read more
Progress! so i have moved into working on aggregates. Which are a grouping of events that replayed on an object set the current state of the object. I came up with this little bit of generic wonder.
type PA[T any] interface {
event.Aggregate
*T
}
// Create uses fn to create a new aggregate and store in db.
func Create[A any, T PA[A]](ctx context.Context, es *EventStore, streamID string, fn func(context.Context, T) error) (agg T, err error) {
ctx, span := logz.Span(ctx)
defer span.End()
agg = new(A)
agg.SetStreamID(streamID)
if err = es.Load(ctx, agg); err != nil {
return
}
if err = event.NotExists(agg); err != nil {
return
}
if err = fn(ctx, agg); err != nil {
return
}
var i uint64
if i, err = es.Save(ctx, agg); err != nil {
return
}
span.AddEvent(fmt.Sprint("wrote events = ", i))
return
}
This lets me do something like this:
a, err := es.Create(ctx, r.es, streamID, func(ctx context.Context, agg *domain.SaltyUser) error {
return agg.OnUserRegister(nick, key)
})
I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.
Progress! so i have moved into working on aggregates. Which are a grouping of events that replayed on an object set the current state of the object. I came up with this little bit of generic wonder.
type PA[T any] interface {
event.Aggregate
*T
}
// Create uses fn to create a new aggregate and store in db.
func Create[A any, T PA[A]](ctx context.Context, es *EventStore, streamID string, fn func(context.Context, T) error) (agg T, err error) {
ctx, span := logz.Span(ctx)
defer span.End()
agg = new(A)
agg.SetStreamID(streamID)
if err = es.Load(ctx, agg); err != nil {
return
}
if err = event.NotExists(agg); err != nil {
return
}
if err = fn(ctx, agg); err != nil {
return
}
var i uint64
if i, err = es.Save(ctx, agg); err != nil {
return
}
span.AddEvent(fmt.Sprint("wrote events = ", i))
return
}
This lets me do something like this:
a, err := es.Create(ctx, r.es, streamID, func(ctx context.Context, agg *domain.SaltyUser) error {
return agg.OnUserRegister(nick, key)
})
I can tell the function the type being modified and returned using the function argument that is passed in. pretty cray cray.
@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.
❤️ 🎶: Lets never meet again by Park Boram
Dino: Stateless File Sharing: Base implementation
The last few weeks were quite busy for me, but there was also a lot of progress.
I’m happy to say that the base of stateless file sharing is implemented and working.
Let’s explore some of the more interesting topics.
File hashes have some practical applications, such as file validation and duplication detection.
As such, they are part of the [metadata element](https://xmpp.org/extensio … ⌘ Read more
JMP: Newsletter: Multilingual Transcriptions and Better Voicemail Greetings
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 numb … ⌘ Read more
Let’s lower the cost of Lunduke Journal subscriptions!
And have some fun in the process. ⌘ 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)
JMP: Newsletter: Command UI and Better Transcriptions Coming Soon
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 a … ⌘ Read more
The Lunduke Journal Handy-Dandy Subscription Info-Graphic
Because, let’s face it, there’s almost too many Lunduke Journal perks to keep track of. ⌘ Read more
Prosodical Thoughts: Modernizing XMPP authentication and authorization
We’re excited to announce that we have received funding, from the EU’s
NGI Assure via the NLnet Foundation, to work on
some important enhancements to Prosody and XMPP. Our work will be focusing on
XMPP authentication and authorization, and bringing it up to date with current
and emerging best practices.
What kind of changes are we talking about? Well, there are a few aspects we
are planning to work on. Let’s start with “authent … ⌘ Read more
Paul Schaub: Reproducible Builds – Telling of a Debugging Story
Reproducibility is an important tool to empower users. Why would a user care about that? Let me elaborate.
For a piece of software to be reproducible means that everyone with access to the software’s source code is able to build the binary form of it (e.g. the executable that gets distributed). What’s the matter? Isn’t that true for any project with accessible source code? Not at all. Reproducibility means that the r … ⌘ Read more
Apple: “Sideloading is the DEVIL!”
Apple, Google, and others are attempting to demonize the act of installing software. We can’t let them succeed. ⌘ Read more
It’ll track a bunch of finger(1) endpoints and let you see what’s new. Very early draft. Not actually a social network, more an anti-social network for ‘80s CompSci transplants. :-)
JMP: Newsletter: Togethr, SMS-only Ports, Snikket Hosting
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 … ⌘ Read more
What video games are burned into these CRTs?
Let’s play “Name That Burn-In!” ⌘ Read more
How to measure innersource across your organization
The innersource contribution percentage is the rate of contributions from people outside the team that originally authored the software. Let’s dive into what it can look like for your organization. ⌘ Read more
Live Stream: Let’s chat about how much Linux Sucks
(And help get The Lunduke Journal to 100% of the months subscription goals!) ⌘ Read more
Lunduke Journal hit 40% of our monthly goals in just 3 hours! Let’s take it all the way, baby!
Join us for another live-stream… starting… NOW. ⌘ Read more
let’s not read the thielleaves
JMP: Newsletter: New Staff, New Commands
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; … ⌘ Read more
fair enough, I forgot to remember that something being a hatecrime is considered a good thing around these regions let me pull my dick out alright
The first two nights with my new weighted blanket were good! The blanket is very cozy but not sweaty. The weight is not oppressive, but just right, and also makes me feel somehow more tired than usual before I sleep, and then let me fall asleep almost immediately, as if flipping a switch. And somehow I seem to dream much less, which can be a positive sign for more deep sleep. ⌘ Read more
fourth, let’s look at music, especially jamming. if you improvise, you are riding that same edge of time as with meditation, all music you create is there right now, and only the causal vibe carrying it all forward. that’s why i mostly don’t compose or record (also because my music is shit)
third, let’s look at daygame. if you ask someone out in a social circle/hobby group, that leaves residual social cruft lying around: awkwardness & mutual avoidance. the whole thing is not Done the way it is when you get cleanly rejected on the street. (online dating has a similar quality of Doneness to it, I think, but matches might stack up and old leads might spring to life sometime, but that’s the same with DG).
there is this property of Doneness that I really like, and that tracks a lot (but not all) of my interests. First, let’s take meditation: every single moment in meditation is really Done after it’s over, it doesn’t linger around, the sensations don’t pile up somewhere. They might influence each other, sure, but at the end of the day it’s just the present experience, slashing into and out of existence in its clear luminosity.
JMP: Newsletter: Cheogram Android Release, Matrix Alpha
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 … ⌘ Read more
Profanity: Profanity and OpenPGP for XMPP (OX)
We have been to implement OX in profanity. OX is
XEP-0374: OpenPGP for XMPP Instant Messaging which
may replace XEP-0027: Current Jabber OpenPGP Usage.
It is part of Profanity since version 0.10 but got some fixes since then.
Feel free to try and test the implementation. Let us know, if you have some
issues and support the development via testing and reporting bugs.
Ho … ⌘ Read more
1970’s BASIC Computer Games compiled for Linux
Remember typing in code from magazines and books? Let’s compile a bunch of those old games for modern Linux. ⌘ Read more
Alright, check this out. I just kinda completed today’s project of converting a jeans into a saw bag. It’s not fully done, the side seams on the flap need some more hand sewing, that’s for sure. No, I don’t have a sewing machine. Yet?
At first I wanted to put in the saw on the short side, but that would have made for more sewing work and increased material consumption. As a Swabian my genes force me to be very thrifty. Slipping in on the long side had the benefit of using the bottom trouser leg without any modification at all. The leg tapers slightly and gets wider and wider the more up you go. At the bottom it’s not as extreme as at the top.
The bag is made of two layers of cloth for extra durability. The double layers help to hide the inner two metal snap fastener counter parts, so the saw blade doesn’t get scratched. Not a big concern, but why not doing it, literally no added efforts were needed. Also I reckon it cuts off the metal on metal clinking sounds.
The only downside I noticed right after I pressed in the receiving ends of the snap fasteners is that the flap overhangs the bag by quite a lot. I fear that’s not really user-friendly. Oh well. Maybe I will fold it shorter and sew it on. Let’s see. The main purpose is to keep the folding saw closed, it only locks in two open positions.
Two buttons would have done the trick, with three I went a bit overkill. In fact the one in the middle is nearly sufficient. Not quite, but very close. But overkill is a bit my motto. The sides making up the bag are sewed together with like five stitch rows. As said in the introduction, the flap on the hand needs some more love.
Oh, and if I had made it in a vertical orientation I would have had the bonus of adding a belt loop and carrying it right along me. In the horizontal layout that’s not possible at all. The jeans cloth is too flimsy, the saw will immediately fall out if I open the middle button. It’s not ridgid enough. Anyways, I call it a success in my books so far. Definitely had some fun.
Let’s have this ready for when the aliens visit Earth… ⌘ Read more
❤️ 🎶: Let Me Be Your Knight by LUNA
Party Quadrants
⌘ Read more
FreeDOS 1.3 has landed! Let’s take a visual tour!
The world’s greatest, Free and Open Source MS-DOS compatible operating system just got an update! I am excited! Exclamation points are in order! ⌘ Read more
Maybe we should just let Firefox die
Listen now (16 min) | I mean. Really. Would your life be so bad without Firefox? ⌘ Read more
JMP: Newsletter: JMP is 5 years old today, and now with international calls!
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 … ⌘ Read more
might have found the way to tune into the state where you let the tension/horniness/anxiety/pain/frustration do its thing down/in/over there in the body/space around me
Finally sleeping better 😴
I have a very light sleep. The first brightness in the morning makes me wake up, noise from the neighbors in the evening does not let me fall asleep. No matter how late or early I go to bed, no matter how little I slept in total. ⌘ Read more
One year ago to the date I made the lastest update for #phpub2twtxt to github and now 365 days later I have published #pixelblog as its successor - lets see where things are going for trip around the sun
** Notes on 6502 Assembly **
The NES runs a very slightly modified 6502 processor. What follows are some very introductory, and not at all exhaustive notes on 6502 Assembly, or ASM.
If you find this at all interesting, Easy 6502 is a really great introductory primer on 6502 Assembly that lets you get your hands dirty right from a web browser.
NumbersNumbers pre … ⌘ Read more
JMP: Newsletter: Snikket Hosting, Billing Overage Limits
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; Fr … ⌘ Read more
instead, just dump the dead bodies of your genocide victims into the nitrogen and let them sit around as symbols of your triumph
Syllable : The long abandoned Amiga OS clone
Itself a fork of Amiga clone, Atheos, this OS has been dead for a decade. Let’s see what it was like. ⌘ Read more
I saw the allegedly animated GIF @thecanine@twtxt.net uploaded gets a PNG extension, yet remains animated. I know PNG can be made animated, but I don’t think that’s what’s happening here, so I am puzzled. Let’s see how this Nyam cat looks like.
@prologic@twtxt.net let us take the path of less resistance, that is, less effort, for now. I am going to be a great-grandfather before search ever get implemented locally, least one to search on “all pods”. In other words, let us don’t bite more than we can chew. 😹 Neep-gren!
@prologic@twtxt.net I fully agree with making it a pod-level setting (forget about user-level, let us not complicate things too much; we all know users know nothing). Should I send a latinum over for this, or will an issue just suffice? Neep-gren!
@fastidious@arrakis.netbros.com, I am sure profit—or the search for it—was involved. Most likely that pilot was a Ferengi in disguise. We are known to visit lesser planets seeking to exploit. Sometimes it works out, sometimes it doesn’t. Hoping my fellow Ferengi fares well or, at the very least, lets me know where his Latinum is.
Let’s see whether the DSL provider change goes smoothly tonight / tomorrow morning, or if I have to use my mobile hotspot tomorrow. ⌘ Read more
the repugnant conclusion turns around: “It’s too full here, let’s go home.”
Docker is Hiring!
Welcome to 2022! Even in normal times, the New Year is a time for looking back and looking forward. And even more after the last couple of years, we know that a lot of people are reassessing their lives and their priorities, and considering moving jobs. If that’s you, we wanted to let you know […]
The post Docker is Hiring! appeared first on Docker Blog. ⌘ Read more
参加过 4 届 TiDB Hackathon 是一种什么体验? | TiDB Hackathon 选手访谈
TiDB Hackathon 2021 自 12 月 9 日开启报名至今,已经收到 259 名参赛者报名,组队 64 支,光是队名就脑洞大开,如:渡渡鸟复兴会、LET ETL ROCK、队长负责带饭、小母牛坐飞机、双呆、OneLastCode、TiDB 十年老粉等等,项目 idea 也充满各种奇思妙想。
目前�� … ⌘ Read more
** Olophont.js **
In Lord of the Rings there are creatures that look like giant elephants. JRR Tolkien named these creatures“olophonts…” simply replacing every vowel in the word elephant with an o. Here is a javascript function to do the same thing.
javascript
<span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">olophont</span>(<span class="hljs-params">string</span>) </span>{
<span class="hljs-keyword">let</span> replaceVowels = <span class="hljs-string">""</span> ... ⌘ [Read more](https://eli.li/2021/12/20/olophont-js)
Finally got around to upgrading MacOS, because it kind of let me on this occasion
Finally got around to upgrading MacOS, because it kind of let me on this occasioné
Video: C Programming on System 6 - Implementing Chat
Let’s have a chat. ⌘ Read more
Linux Foundation spends just 3.4% of its money on Linux
Where does the Linux Foundation spend the rest of its $177 Million in revenue? Let’s take a look. ⌘ Read more