# I am the Watcher. I am your guide through this vast new twtiverse.
#
# Usage:
# https://watcher.sour.is/api/plain/users View list of users and latest twt date.
# https://watcher.sour.is/api/plain/twt View all twts.
# https://watcher.sour.is/api/plain/mentions?uri=:uri View all mentions for uri.
# https://watcher.sour.is/api/plain/conv/:hash View all twts for a conversation subject.
#
# Options:
# uri Filter to show a specific users twts.
# offset Start index for quey.
# limit Count of items to return (going back in time).
#
# twt range = 1 6169
# self = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4216
# next = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4316
# prev = https://watcher.sour.is?uri=https://lyse.isobeef.org/twtxt.txt&offset=4116
@xuu Aha, thank you very much! I have to look more into that in the next days.
@movq Yeah, probably. The aftermath was extremly boring, though.
@stigatle Haha, reading Norwegian is a bit like reading Dutch. If I concentrate hard enough and decipher it carefully I can make out a couple of words. Provided I have a bit of context. For example: "Dempegaffel" sounds so cool. :-) "Dämpfergabel" or more commonly used "Federgabel" is the German term for that.
@movq Yeah, right, clicking feels much more tiring. I reckon the mouse could easily be two centimeters thicker and longer as well as one or mayer two centimeter higher. Then it would fit naturally in my hand.
@movq Ah! I started with 3.5 inch floppy disks, used them for a long time and then went straight to CD-ROM. I remember buying one of the last floppies available in town when basically nobody else wanted them anymore. Except me. :-D I put some of my Delphi projects on them and gave them to class mates.
Whoops, forget to include the photo:
Vertical mouse
@xuu Wouldn't my Is
check for array equality, too? At least that would be great for unit tests. Like this untested piece of code:
func (e PermissionsNotAllowedError) Is(target error) bool {
if t, ok := target.(PermissionsNotAllowedError); ok && len(e) len(t) {
for i := range e {
if e[i] != t[i] {
return false
}
}
return true
}
return false
}
In the meantime I just ditched the second thing altogether and use the simple ErrPermissionNotAllowed
. Maybe I come back when I actually work on the UI stuff.
Now writing this it occurs to me that I could do an explicit – second – unit test assertion for array equality and implement my Is
and As
functions with a type check only and don't care about the exact array. Like that (again, untested):
func (e PermissionsNotAllowedError) Is(target error) bool {
_, ok := target.(PermissionsNotAllowedError)
return ok
}
Yeah, that's probably the way to do it._
@movq Yiha, this is awesome! We had a nice sunrise today. But the view to the East is obstructed by all sorts of stuff. So not worth taking any photos.
I'm now testing a vertical mouse (not chorded, unfortunately :-() and my mate wanted to see a photo, that's how it happened. I've never used or seen a vertical mouse in person before. It's surprisingly unvertical. Maybe, just 70-80°, I expected something closer to 90°. I don't have very large hands, but the mouse could be a bit bigger for more comfort. Clicking any button feels a bit weird. Let's see how that goes. But I also notice, that I don't use the mouse that often. Mainly the keyboard.
I wanted to turn on my camera and the power button slipped under the case. The casing lifted up and one piece of plastic near the zoom lever broke off. Luckily, that happened at home and so I could fix it with a small slotted screw driver after a few attempts. The camera appears to still work. Phew.
@movq Happy birthday! On to the next twelve years. :-)
It tadpoled a wee bit in the pond, but we could not see a single frog. Went up the backyard mountain and saw new logs for the metal maps. My fingers really swelled up at 29°C heat and I could cool them down slightly at a small and now only trickling fountain. It was too awfully hot to take any photos. Luckily I brought uns some water, next time I will upgrade to a full liter each. Now enjoying some ice cream.
@prologic Thanks for confirming, but it just sounds like an ugly hack. Even after sleeping on this. I feel there must be something elegant. Error handling in Go is still not mature.
@stigatle @prologic That sounds great. After a few days of nice temperatures we're back heating up the giant oven over here. 35°C on Sunday, fuck me. Going on a short hike with my mate later and doing a few shop projects in the workshop.
@stigatle Scenery out of a picture book. Lovely!
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?
@movq Holy cow, great technique!
@stigatle Provided, this is correct, the landscape is going to be destroyed. :-(
@movq Yeah, good points. Interesting idea regarding your ideal smartphone. I just don't want to carry a device around with me, simply no need. :-)
@movq Yeah, encouraging data protection violation is on a totally different level. :-(
@movq Yes! I actually see them tomorrow at the Metfest together with three other great bands. That's gonna be awesome. I'm super hyped for Feuerschwanz, Fiddler's Green and Grailknights. I've also seen Warkings once before live and they did not disappoint either.
Haha, great story! I don't remember what my first MP3s were. Maybe some punk rock stuff? Interesting, I never heard of SuperDisk before. Do you still listen to that old file every now and then or do just keep it around for sentimental value?
@movq Cursing liberates the soul. :-D
@movq Oweia, what a great concept… But to be fair, anybody could publish their followers here on twtxt, too. Once upon a time, I reckon yarnd did the same, but that's now fixed it appears.
Yeah, I also hate Apple and their products with passion. These people have an evil philosophy. I'm not free to choose, they lock me in. I'm not allowed to do what I want with my devices. Similar to a lot of other companies they claim to know what's good for me, but fuck them, they clearly don't. Being infantilized pisses me off. I don't feel being taken seriously, in fact they give a shit about their customers. Apple garbage is ridiculously expensive for no reason other than to milk their fanboys. Developing for their ecosystem requires additional expensive licenses. By default they ship hopelessly outdated things like bash 3 or whatever ancient version (rival Debian or what?). They tell everyone without batting an eye that they invented cool new things, even though these invention existed for plenty of years and were made by others. Finally, the UI is just not intuitive to me. Years back I had an Android company mobile phone that sucked, but my current company iPhone is several times worse. I'm sure, @movq can put all that into better words one day. :-)
@movq Oh! When I think of tree rosin, I think of the lovely smell of pine resin. In felling season it's basically impossible to miss it in my woods. ;-) Not sure how Whiskey smells, but I think it's what you describe. :-)
Fire run here in the residential area. There is a horrible smell of house fire. The fire brigade turned around with blue lights flashing and sirens wailing. Either they picked the wrong road or they cannot reach it from that side. I don't see any smoke, but the stench is absolutely terrible. Cough, cough.
Some colors in the sky:
Past sunset
@movq Nice, does it smell like tree rosin or what do I have to imagine?
@mckinley Good read, unsurprisingly, I fully agree. Some people are just forced by their employers to use that shit. Besides quitting they have no choice.
@prologic What happens if you reply "Yes"? ;-)
Damn, I built about 80 and there are just two boxes left. But I'm not done sorting my heritage. Either I start another batch or I throw the slotted screw head screws away and make some weights out of them. Most likely never gonna use them anyways.
On my way home I went for an enormous detour through the forest to visit the tadpoles pond. There was a dead mole on the middle of the forest road, so I moved this poor little feller to the side.
Quak
Later, after a bend I ran across two very beautiful and large deer on the forest path. I immediately stopped and they stood around for 5-10 seconds looking at me before they slowly walked into the forest. Unfortunately, my camera was in the backpack. No chance, lighting would have been brilliant, though.
@movq That's really terrible. No rain in sight until the weekend. And by then it will be next weekend, etc. Luckily, next few days peek at 22°C. Had some – luckily windy – 30°C today. Bwörks.
@movq Yeah, when I had to do XML back in the days, I also stumbled across this. I might mix things up, but when I looked it up (results are long forgotten, though), there were different rules for XML and HTML. And the behavior also changed with whitespace-only content vs. whitespace pre- and suffixes. Some were kept, others weren't.
I just checked on my little mates. It was already too dark for my shitty camera, so please excuse the crappy shots. One slough dried out, so those tadpoles didn't make it. :-( What a bummer! Especially considering one puddle *on* the forest path 30 meters further is still going strong. There were very tiny frogs or toads (not sure which) around the big tadpole pond, though. That was super cool to see. I have to come back the next days when the sun is still up.
Super tiny frog or toad the size of a fingernail
Stepped in shit while peeing in the forest on the way home. Oh such irony…
@thecanine Hoy crap, that sounds terrible. Btw. I see hardly any ads on the web. It's completely impossible for me to live without an adblocker. Which browser are you going to use now?
@movq Yeah, but you can never have enough clamps. Never. Next batch is drying.
I ran out of clothes pins once again. Upcycling milk transport cardboard boxes to smaller boxes for screws, nails and such. Becoming my own hardware store.
Cardboard boxes glued together
@stigatle Oh, my bad! :-) An oven pretty much sums it up, @movq. :-D (I just hit the wrong button in tt and pressed Cancel instead of Publish in the reply form. My auto-backup thingy saved me retyping this message. )
@movq So are you switching back then? Wasting RAM rather than CPU load is the lesser of the two evils in my book. At least in summer. :-)
@movq One and a half to two years ago we started with that thing, so we definitely waited too long. :-) I used it twice today and saved me a minute and a half in total I'd say. Absolutely worth it. One command and five seconds later I was good to go. No silly UI interactions or file edits anymore. Just waiting for this slow stuff (which we cannot control) to finish.
@stigatle Got some rain and thunderstorm yester- and today. It's awfully humid. Tomorrow we're reaching 31°C and rain. Guess I'm gonna drown then. I'm taking your 12°C anytime!
@stigatle Cool, a pool seems like the way to go.
I automated some really tedious stuff at work with two Python scripts today. It's feeling sooooooo much better now. Tomorrow, I need to figure out whether the two parameters can be automatically obtained via an API, so we don't need to open up a UI, search for the correct entries and copy-paste these values by hand. Invoking just one unparameterized make target to do all the stuff would be absolutely amazing. I'm wondering why we haven't already spent these two to three hours years ago.
@movq Ah. Yup, these are different things.
@stigatle Happy birthday then! Hope you all had a great day and didn't melt in the heat. (Still 23°C here at the moment at 23:00.)
Fun fact: In traditional Germany you must not congratulate in advance or it will bring ill luck to the person receiving the wishes. It's still a thing these days in general. I haven't found the reasoning behind that popular superstition, though.
@movq Hmm, strange. If it's good software, I'm using it. Realisticly, no matter what in life, there will always be something by somebody who goes against my own principles. But that usually doesn't make the product itself any worse. Btw. how did you discover that? I never go the discussion pages of articles. Do you?
@movq Both wmi and wmii, too. :-) (But they fall into the category of dwm.) Right, my daily driver dmenu doesn't need patches.
I got myself a new workshop rag. When I just stripped my sweat-soaked shirt after a bike ride I ripped a giant hole into it at the back. It already had some holes in the front that I sewed up in the past.
@movq Oh, nice! Yeah, maintaining an own fork seems like the way to go with suckless projects.
@movq Ohh, right! I heard sometime that they try to climb very quickly for saftey reasons. If something goes wrong and they're higher up, pilots have more time to troubleshoot and react before they hit the ground. Something like that. There are probably also plenty other factors, too.
@movq The only thing I'm missing in urxvt is the zoom. For unknown reasons, one day (probably after a system update) urxvt on my work computer was suddenly slow as shit. I could literally watch the lines render top to bottom like decades ago. So I had to switch to GNOME terminal (because that was already preinstalled on the distro). It still rendered instantly, just like urxvt used to. Especially when presenting something to team mates, I find it very useful to increase the font size on the fly with ^+
. But also every now and then when I get a bit tired it's nice to have a larger font. I reckon st is not capable of doing that either, or is it?
@stigatle I'd really love to have some rain. We had no drop for six weeks so far and to make it even worse, there's also nothing in sight. Yet another sad record once again.
@movq Is there too much wind for the planes to land and take off? In any case, enjoy the lovely sounds of nature (and neighbors :-/).
@prx Cool! I reckon text/plain
would be the better content type. :-)
@movq Haha, nice annotations, I like them! And we now finally located @stigatle's UFO. :-D
@movq Yeah. Actually quite a bunch of them. I have no idea what they are, but in my last forest stroll galleries you can see them, e.g. here together with the tadpoles at the embankment:
Fish and tadpoles
The pond itself isn't too tiny. I will try to make a better photo next time. There are also a few very large fish in this pond. Close to half a meter in length, no idea about the species either. Most of the time they're submerged, it's very hard to spot them. I've only witnessed them a hand full of times over all these years. One day last year I could see five (I think) specimens. That was by far the best time. Most about 40 cm long, the largest individual measured 50-60 cm I reckon. I usually only hear them splattering somewhere every now and then. But catching sight of them is mostly impossible.
Yeah, I try to avoid these hot hours, too. But my mate had an appointment later, so either we skipped this week again (next weeks don't look any better) or just did it. What can you do. Definitely will take some water with me next time.
@movq Ah, I see.
We fed the tadpoles (this time also tadpoles ate the dry bread, not only the fish) and bought some milk. So, just a small stroll. Being out for two hours in 27°C heat is bad. Especially in the sun it's awfully hot. I'm soaking wet and drank half a liter mineral water straight after coming home.
@movq Thanks for confirming. Maybe I removed Mars when I fixed the dead pixels.
@movq Very busy air traffic around you. Like each minute one plane, wow! But great airplane shots. The head of 4866 looks like an eagle, but the tail clearly tells that it is a red kite. What bird is 4912?
@movq I fully support this! In the past I had to analyze and correlate events in log files and it was very hard without the timezones. One was in UTC and the other in UTC+X. Bonus if customer-reported times for the inquiry were in UTC+Y. Of course I always forgot until next time which log used which timezone. So I had to figure it out again and again. What a giant waste of time. :-(
However, that's nothing compared to my current project. Here, I must deal with logs where the timezone is somehow part of the logs (I think), but the log viewer can be configured to display timestamps in a certain other timezone. Also, timestamps are generated by the logging service when receiving the event, not when the application actually produces it. Don't ask. Often, timestamps are just plain wrong and not useable. Luckily, the uptime counter is included as well, which seems to be accurate from what we've seen so far. It's by far the most horrible logging system I've ever come across. It gets extra funny when bug reports contain references to the timestamps in any other than the default timezone of the viewer. Of course reporters do not tell you. It's a world-wide project, so chances are that timezones are all over the place. Unbe-fucking-leavable.
My night hike wasn't all that great. Well, I admittedly "saw" two frogs. Some black blobs were jumping across the path in the pitch dark that is. But also gazillions of mozzies. And I got myself a mega blister.
Maybe Venus
Paid the tadpoles a visit again. Also there were lots of small fish. I threw in crumbs of old bread and the fish loved it. It wasn't too hot actually, 22°C when leaving the house.
Fish and tadpoles
@stigatle Thanks! 25°C is already too much for me. They forecast 28°C for Sunday, oh gawd. I also had a barbie for lunch yesterday. :-)
Hmmm, my camera battery died prematurely once again. Sigh. On the positive side, though, on my way home I saw lightning in the Northern distance and thought, ah great, that's moving away from me, the South West looks kinda nice. Eventually, I got a tiny, tiny, tiny bit drizzled on, basically nothing. Not a minute at home and it started raining like there is no tomorrow. Perfect timing. :-) It turned out that the weather was coming from the North North East today, which is uncommon, so that's why we also got some thunder and ligthning. The active front was actually directly heading at me. It now smells really great outside. I love it.
Oil pollution:
Nah, these are tadpoles!
A few dragonflies were at the pond, but I didn't really get a good photo of them. They were too quickly. Or I was not fast enough at focusing when they hovered slowly. 06 is the best shot. Except for the film. There I got very lucky a few times. I reckon I could have done a better job at cutting, the final video looks a bit more blurry than the original clips. But I'm too tired now. The sunset was pretty cool. Extremely red lighing everywhere, just magnificent. Enjoy: https://lyse.isobeef.org/waldspaziergang-2023-06-05/
@abucci Good theory, actually. Gotta think about that a bit.
There were definitely cooler ones, but today's sunset wasn't all too shabby. Still on the boring side, though.
Blackbird on a roof ridge at sunset
@movq I'm cursed. :-D Oh, you caught them in the act! Very lovely shots. Extremely good quality. :-)
@movq Absolutely looking forward to that! :-)
@movq Yep, I used that several years ago, too.
@mckinley Ah, that even corrects wrong stuff automatically.
I just noticed that W3C validator now wants me to confirm that I'm a human… That's a sign to install one or the other tool on my machine.
Good find, @adi. Thank you!
At a pinch you can always switch to Debian, @movq. :-)
@movq Uuuhhh, that looks awesome! I like it a lot. <3
@movq I fully agree with you. These are all big steps backwards. That contributes to why I hate using smartphones with a great passion. Unusable shit to me. To quote a mate: Auf den Scheiterhaufen mit diesen Möchtegerndesignerhampeln, die immer alles nur schlimmer machen. (Ok, that's enough negativity for tonight. ;-))
@movq Oh yeah, every operator should be hit by lightning and turn into dust the moment they reach for the starter handle!
On our last hike we sat on a public picknick table to eat our waffles with apple sauce. Not even two minutes in, a neighboring restaurant owner (has his own fenced-in outdoor seating) decided that it would be a good time to make some horrendous noise with his leaf blower. Practically nobody else was around. What a fuckwit. Happened the previous times, too. We then aborted our break after five minutes. I will never eat or drink anything at that place, that's for sure. I'm convinced that he does that to lots of folks who have their own food with them, hence do not stop in at him and there are no paying customers around in his garden.
@movq I think you cannot with the browsers I know of. Not sure if this is still possible, but I think in the past the validator could be run locally, too. My memories might fail me, but I reckon some early versions of Firefox had a checker built in. Or was it a plugin? Maybe in Firebug? It's been too long.
It really pisses me off that Firefox hides the scrollbar and only shows it when I actually scroll. What the bloody fuck is that bullshit!? It can be fixed in about:config
by changing layout.testing.overlay-scrollbars.always-visible
to true
as I found out by experimenting.
@mckinley I have not, but I definitely will. I just started with issue 0 and although it was a good read, I don't think that PDF is an excellent choice. It's a very complex format (maybe not PDF/A, I don't know). I'd stick to (a subset of good) HTML as any editor will do and I'm a fan of small files. But other than that, I agree.
@off_grid_living That sounds like an awful user experience. You basically describe captchas here. If somebody wants to absue your stuff, they just do it anyways.
@mckinley Regarding your move to XHTML 1.1:
> […] I can regenerate the entire page with an XSLT stylesheet. It will be like a static site generator, but worse.
Hahaha, exactly what I was thinking. :-D
Looking at the changes between HTML 3.2 and 4.0, apart from the XML properties, you could even have used HTML 3 instead of 4. Maybe even 2. I could not be bothered to look up what 3 added, though.
I chose HTML 5 for my stuff just because I can remember the doctype and meta tag to specify the encoding. The charset is of course also included in the HTTP headers, I just keep it in the HTML so that I easily cover the extremely rare use case of saving something to disk.
@movq 25°C, shutters for the win.
@movq @abucci That's ridiculous. Sure these people must have a hard time being out in nature. I lately heard several people complain about the allegedly crazy noise of pidgeons. To which I replied that's nothing compared to crows. Birds can be loud, but any motorcycle or tractor makes a hell more racket than them. Not to speak of playing children screaming like there's no tomorrow. It's absurd. I'm lucky, the next commercial airport is a bit away, so only the smaller, way lower flying private propeller planes terrorize us.
I tried to clean up in the shop and I finally found my sketch for the wood glue bottle holder from several years ago. Mission accomplished! (I was too lazy to simply take measurements from the old holder.) Three stacked holes needed to be drilled in a block of scrapwood. If the bottle is running low and stored upside down in this holder, I'm always prepared to immediately apply glue without impatiently waiting for it to make it into the nozzle and shaking the glue bottle like a madman. You all experienced a ruined barbie when some crazy folks failed to put back the ketchup bottle properly. Just that PVA glue is more viscous than this red sauce.
New wood glue bottle holder ready to be used
Most stuff is in git. I just need a good solution for my photos and music. Maybe at the weekend I have a look at unison.
@movq Welcome to the club, mate. 26°C, bah! Luckily, the shutters kept the heat outside. For today. However, the computer fan going berserk when compiling and running heavy software stacks doesn't help this at all.
Today's sky after sunset was not too bad. I missed the best parts, though.
Colorful sky