# 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 196319
# self = https://watcher.sour.is?offset=168131
# next = https://watcher.sour.is?offset=168231
# prev = https://watcher.sour.is?offset=168031
@movq I'm not looking forward to summer at all 🥵
@lyse Probably used one of the filters? 🤔
@lyse Probably used one of the filters? 🤔
This is why you stick to POSIX sh as @mckinley points out 🤣 Prwtry sure this is a "Bashism" right?
This is why you stick to POSIX sh as @mckinley points out 🤣 Prwtry sure this is a "Bashism" right?
@movq Same here. Nothing. Malicious deception!
[47°09′30″S, 126°43′59″W] Taking samples
They promised rain. I ain’t seeing any rain so far. 🫤
They promised rain. I ain’t seeing any rain so far. 🫤
They promised rain. I ain’t seeing any rain so far. 🫤
They promised rain. I ain’t seeing any rain so far. 🫤
@rrraksamam *So* ready for winter. 🥵
@rrraksamam *So* ready for winter. 🥵
@rrraksamam *So* ready for winter. 🥵
@rrraksamam *So* ready for winter. 🥵
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if \n]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if \n]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.
=
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
@falsifian Exactly! 🥳

So this works:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ "foo" -eq "bar" ]]; then echo it matches; fi'
it matches

Without the misleading quotes:

$ bash -c 'set -u; bar=1; foo=$bar; if [[ foo -eq bar ]]; then echo it matches; fi'
it matches

As does this:

$ bash -c 'set -u; bar=1; foo=$bar; if (( foo bar )); then echo it matches; fi'
it matches

What the person originally meant was what bender said:

$ bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
it matches

It’s all rather easy once you’ve understood it … but the initial error message of the initial version can be quite unexpected.=
@bender Haha, no worries. I do like that you enjoyed your real life and not wasted it online. :-)

But I'm wondering how you discovered it a week later. Are you somehow regularly checking complete recent feed histories?
@bender Hahaha, that's a good one! :-D
@bender @movq That's a pity! :-( In the following half an hour, I only saw two more right of Ursa Major (the only constellation I recognize). Let's see how cloudy it actually will get tonight. The forecast to be clear sky between 1 and 3am. But that's a bit late.
@movq Variable names used with -eq in \n] are automatically expanded even without $ as explained in the "ARITHMETIC EVALUATION" section of the bash man page. Interesting. Trying this on OpenBSD's ksh, it seems "set -u" doesn't affect that substitution.
@movq Variable names used with -eq in [[ ]] are automatically expanded even without $ as explained in the "ARITHMETIC EVALUATION" section of the bash man page. Interesting. Trying this on OpenBSD's ksh, it seems "set -u" doesn't affect that substitution.
yeah its the same dude.

This project is verrrry alpha. all the configuration is literally in the code.
yeah its the same dude.

This project is verrrry alpha. all the configuration is literally in the code.
@bender So far, so good! And why did it complain about bar being a variable?
@bender So far, so good! And why did it complain about bar being a variable?
@bender So far, so good! And why did it complain about bar being a variable?
@bender So far, so good! And why did it complain about bar being a variable?
@movq @bender That's what I thought while reading the code, too. I believe -eq is for numerical comparation only. Weird error message, though. Tells something about the implementation.
@movq it should be:

h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'
@movq it should be:

h
bash -c 'set -u; foo=bar; if [[ "$foo" = "bar" ]]; then echo it matches; fi'


eq is for numericals.
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if \n]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? 😂

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? 😂

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? 😂

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? 😂

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
I love shell scripts because they’re so pragmatic and often allow me to get jobs done really quickly.

But sadly they’re full of pitfalls. Pitfalls everywhere you look.

Today, a coworker – who’s highly skilled, not a newbie by any means – ran into this:

$ bash -c 'set -u; foo=bar; if [[ "$foo" -eq "bar" ]]; then echo it matches; fi'
bash: line 1: bar: unbound variable

Why’s that happening? I know the answer. Do you? 😂

Stuff like that made me stop using shell scripts at work, unless they’re just 4 or 5 lines of absolutely trivial code. It’s now Python instead, even though the code is often much longer and clunkier, but at least people will understand it more easily and not trip over it when they make a tiny change.=
[47°09′51″S, 126°43′12″W] 4135 days without news from Herve
It is good to be off work and have time to spend on my personal projects.
It is good to be off work and have time to spend on my personal projects.
@slashdot And we are surprised why? 🤔
@slashdot And we are surprised why? 🤔
@lyse for some reason I didn't see this here on time. Thank you much mate! 😊
Woot! Need to change the nick now to on_grid_living. 😛
Is that from the same guy who made Caddy? Name sounds familiar. It looks neat, let us know what you think of it when you have tried it. 😛
@lyse Neato! Too bad they’re in the northern sky. Can’t see that from my bedroom. 😂
@lyse Neato! Too bad they’re in the northern sky. Can’t see that from my bedroom. 😂
@lyse Neato! Too bad they’re in the northern sky. Can’t see that from my bedroom. 😂
@lyse Neato! Too bad they’re in the northern sky. Can’t see that from my bedroom. 😂
@bender No bubbles burst 💥 hehe 😝 All good! 👍 I think I was aware of the search results and the lack of interactivity there, artifact of borrowed template code from the search engine 😢 Just need to refactor it to use the same template as the normal timeline, but also support highlights, something it doesn't do now either.
@bender No bubbles burst 💥 hehe 😝 All good! 👍 I think I was aware of the search results and the lack of interactivity there, artifact of borrowed template code from the search engine 😢 Just need to refactor it to use the same template as the normal timeline, but also support highlights, something it doesn't do now either.
Solo en la noche
#catsoftwtxt
Solo en la noche
/https://baldo.cat/media/photos/photo_21313-08-2024_13-06-38.jpg) #catsoftwtxt
Solo en la noche
#catsoftwtxt
Oculto
/https://baldo.cat/media/photos/photo_21213-08-2024_13-06-19.jpg) #catsoftwtxt
Oculto
#catsoftwtxt
Oculto
#catsoftwtxt
@prologic I didn't mean to burst bubbles, by the way 😅. It is a baby step; we just need to refine it.
@bender You are right. I'll have to fix the later for sure, the finding "reading" in "foo-reading" is probably a behavior of the indexing and search library being used. It probably behaves that way.
@bender You are right. I'll have to fix the later for sure, the finding "reading" in "foo-reading" is probably a behavior of the indexing and search library being used. It probably behaves that way.
@lyse I envy you. Our always cloudy sky during summer has allowed me to see the grand total of zero. 😩
@prologic couple of issues. That #reading tag also pulls #now-reading. It shouldn't. Second, I can't reply from the search results. If you click/tap on the tag, and get the list containing it, clicking/tapping reply on one of the results do nothing.
[47°09′34″S, 126°43′53″W] Dosimeter still failing
Base: 6.00 miles, 00:09:43 average pace, 00:58:16 duration
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill
Base: 6.00 miles, 00:09:43 average pace, 00:58:16 duration
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill
Base: 6.00 miles, 00:09:43 average pace, 00:58:16 duration
i was suppose to go for another 30 minutes. my energy level is off and i may need to reassess some goals.
#running #treadmill
I like how tags like #reading now actually work correctly on Yarn pods 👌
I like how tags like #reading now actually work correctly on Yarn pods 👌
[47°09′57″S, 126°43′42″W] Dosimeter overflow
[47°09′53″S, 126°43′46″W] Saalmi, retransmit, please
i have a cryptographically verified and deterministic operating system with reproducible builds, but the sound still doesn't work right.
i decided that the only good browser is mullvad-browser, though tor-browser is a close second.
Morphotrophic by Greg Egan is built around an idea for how life on Earth could have worked out differently. It gets increasingly strange and interesting as the story progresses. My partner and I finished it last night and thoroughly enjoyed it. The beginning is free online: https://gregegan.net/MORPHOTROPHIC/00/MorphotrophicExcerpt.html #scifi #reading
🧮 USERS:1 FEEDS:2 TWTS:1060 ARCHIVED:77372 CACHE:2407 FOLLOWERS:17 FOLLOWING:14
Adorava conseguir escrever como este senhor, que torna o comportamento de uma substância perigosa em algo que dá vontade de ler até ao fim

https://www.science.org/content/blog-post/things-i-won-t-work-dimethylcadmium
Adorava conseguir escrever como este senhor, que torna o comportamento de uma substância perigosa em algo que dá vontade de ler até ao fim

https://www.science.org/content/blog-post/things-i-won-t-work-dimethylcadmium
Heck yeah, I already saw three shooting stars in 10 minutes. Perseids are awesome! :-)
[47°09′27″S, 126°43′01″W] Transfer 75% complete...
J'adore le hackberrypi | https://www.minimachines.net/actu/un-hackberrypi-tres-seduisant-sur-une-base-de-pi-zero-2w-129265
J'adore le hackberrypi | https://www.minimachines.net/actu/un-hackberrypi-tres-seduisant-sur-une-base-de-pi-zero-2w-129265
@johanbove Allegedly it’s supposed to cool down mid-week, yeah. If we consider ~28°C “cool”, that is. 😅

Fan = Miefquirl. 😏~=
@johanbove Allegedly it’s supposed to cool down mid-week, yeah. If we consider ~28°C “cool”, that is. 😅

Fan = Miefquirl. 😏~=
@johanbove Allegedly it’s supposed to cool down mid-week, yeah. If we consider ~28°C “cool”, that is. 😅

Fan = Miefquirl. 😏~=
@johanbove Allegedly it’s supposed to cool down mid-week, yeah. If we consider ~28°C “cool”, that is. 😅

Fan = Miefquirl. 😏~=
Kinda cool tool for bringing together all your timeline based data across socials.

https://github.com/timelinize/timelinize
Kinda cool tool for bringing together all your timeline based data across socials.

https://github.com/timelinize/timelinize
@movq Ooof that's a bit warm 🥵
@movq Ooof that's a bit warm 🥵
[47°09′17″S, 126°43′02″W] Transfer 50% complete...
@prologic 35°C outside. 🫤 I’m just gonna sit here and wait for November. 😂
@prologic 35°C outside. 🫤 I’m just gonna sit here and wait for November. 😂
@prologic 35°C outside. 🫤 I’m just gonna sit here and wait for November. 😂
@prologic 35°C outside. 🫤 I’m just gonna sit here and wait for November. 😂
@off_grid_living There are probably many extensions for Apache2. Nearly all of which you don't need. Maybe libapache2-mod-php* if you want to make use of PHP.

Typically, systemd will automatically start your webserver during system startup. Your package manager (apt) does not prompt you, because the package maintainer has chosen some defaults for you which works with the rest of the system. So there is simply no need. Why would you want to change the installation directory anyways?

Also, right after installation, I'd assume that Apache2 is automatically started. If you want to start Apache2 by hand, you can sudo systemctl start apache2, there are also the stop and restart verbs.

The tutorial linked by @prologic seems a bit outdated to me (old Ubuntu version and SysVInit), you might be better off with: https://ubuntu.com/server/docs/how-to-install-apache2 Even though, that's probably also not so beginner-friendly.
@prologic Yeah, paid. If not even big IT companies offer more, I will not emmigrate to Down Under. ;-)
@movq What's the temp? 🤔
@movq What's the temp? 🤔