He's learning to shift and pedal right now and basically stay on the bike for a little longer, and you're suggesting he spend another few hundred at the very least on a power meter? That's bad and gate keepy advice in my opinion. He does not need a power meter; not for a while, if ever.
50% up, that's more than a good start. Keep at it!
And remember your ABCs:
- A- Always,
- B- B
- C- Cycling
Always "B" cycling.
That is indeed something people actually say, but it's a lie. It gets easier in so many ways.
In terms of pedaling, it doesn't matter. The same ratio between teeth in the front divided by teeth in the back will feel exactly the same. The only rule here is that you are aiming to keep the chain in a somewhat straight line. Supposing you have two chainrings in the front: Never go small-small or large-large, as that would put strain on the components. For a 2x11, for example, usually all gears are safe except for 1-11 or 2-1, if that makes sense.
Cities do lower average speed significantly, but 30k in 3 hours is indeed very slow.
Hard to diagnose from afar, but I'd say take a look at shifting technique and pedaling cadence. It's actually not so easy at first to know when to shift and which gear is right (until it becomes second nature and you never think about it again.)
Pedaling speed should be viewed as somewhat of a constant (try to aim for 60rpm at first, maybe?), and your job is to pick the gear that feels comfortable for that cadence in a given situation.
Starting with Odoo 16, there's the official Knowledge module. It's only in Enterprise. Have not used it and I don't know if there are other options for CE.
It's not a problem that can meaningfully be dealt with on an individual level.
I recommend Johann Hari's book Stolen Focus. It goes deep into influencing factors of why we are having such a hard time of putting our devices down. The first he lists: giant tech companies are employing the smartest people on earth (i.e., smarter than you or me) to maximize engagement. The cards are heavily stacked against any single one of us trying to break free from these skinner boxes. The threat of social isolation you mock the blog's author for is of course another ace up Meta's sleeve. The book among other things tries to relieve the feeling of individual failure at this insurmountable task of constantly fending off the targeted attacks on our attention- I paraphrase: "You didn't fail, it was a losing battle to begin with."
If you yourself don't have this problem, I'm glad for you and I hope it lasts. Many, many people do, and there are ever more tragic news headlines to show for it. We as a society (or is that societies?) need to regulate the tech-oligarchs, and fast. I have some hope left at least for the EU coming around on it.
The occasional trail just to avoid traffic, sure. That's the gateway drug right there and suddenly you're climbing muddy 15% trails after heavy rainfall. Talk about a slippery slope! The disappointment in your dad's face.
You can certainly feel very fast on a gravel. Since my bike came out before Shimano's GRX groups did I have a regular 2x11 Ultegra road group on mine (fine, I swapped to the 11-34 cassette at some point, 36/52 chain rings in front.) 28mm slicks, and I'm pretty sure what I'd have is a road bike. (Hypothesis untested.)
I've actually never ridden a road bike, but I can say that I can fairly easily hold my own on my 2017 CX bike in a group ride with road cyclists on much newer and more expensive bikes. I'm sure it doesn't feel quite as zoomy in direct comparison, but in my experience that's a very relative thing.
Anecdotally, I swapped my trusty 33mm Schwalbe X One Speeds over to 40mm G One Allrounds last year, and for a few days the bike felt sluggish to me. But not only did that feeling evaporate very quickly; my reason for swapping - spongy steering on slightly deeper gravel and generally loose surfaces - went away and I can ride at least as fast or faster and safer on every surface as a result. And most of those surfaces my road cyclist friends can't even dream of touching.
There's ever more differentiation in gravel bikes. Some tuned for stiffness and speed, essentially road bikes with wider rims; others for carry capacity and comfort over long distances. I lean towards the speedy stiffness and higher tire pressures (my gravel friends mock me for it.)
While I'd certainly try a proper road bike when the opportunity arises, the choice is ultimately a very simple one for me: Whenever I'm out with road cyclists, I feel cramped by the routes that are simply off limit to the group and that would be very much on (as in: bring it!) for me. My bike can handle whatever comes my way, and the only limiting factors to speed are either my legs or my inner chicken.
If the woods and more technical passages have no appeal at all for you it's probably not a good fit, but if they do even a little (and I think they do, even if just a little), I think there's a wonderful world out there for you waiting to be explored. My heavily biased advice: Suck it up and get a cross/gravel bike. You might surprise yourself putting on 45mms one day and loving every minute.
Thanks for the opportunity to vent my love for gravel bikes.
Take a look at this: the open book
Might be a good opportunity to justify buying a Flipper Zero.
I don't think there's a significant difference. Personally, I'd go with stripe.
A Bambulab A1 Mini costs 200 bucks and churns out incredible prints with zero hassle. There's literally next to no barrier to entry anymore.
Well that certainly makes a lot more sense now. I wasn't familiar with Philips shavers with replacement blades. 🙄
Making their product live longer is not usually the top priority for manufacturers. I like the initiative, of course, but I'm sort of waiting for the other shoe to drop. Sounds too good not to be a greenwashing gimmick.
I mean there are robot arms for a lot more than that, but that's not the point. It's like saying a Parol 6 costs 5 bucks, but it's actually the price of the mounting screws.
Their build instructions state 242 for a single arm. Lots of contradicting information. Maybe they are betting on insane economies of scale... 🙄
Edit: Haha, I think I figured it out. USD 120 are the 3d print parts alone. That's not a false promise at all!
The BOM for the components alone without the print is USD240. Why is the article talking about USD100?
Cut red and black at different positions to avoid them touching almost altogether. Makes it easier to work with the cable too.
Trying to get the ball rolling here.
Anybody with real world experience upgrading Odoo CE through OpenUpgrade? I run two Odoo installations, one for myself and one for a client, that are on v15 and v17. Upgrading doesn't seem very urgent or necessary at the moment for either instance, but once in a while I wonder how much trouble I'll be in when the need arises.
OpenUpgrade looks very patchy, and to be honest it seems like a daunting task.
Any experiences or best practices?
I have a home setup with private services and Wireguard to phone in from outside, and would sometimes like to be able to access some of these services from devices that don't have their own Wireguard client like an eBook reader.
Ideally, I would have Wireguard on my Android phone, create a WiFi hotspot and allow other devices to use that Wireguard connection. Out of the box this doesn't work. Does anybody know how to achieve it?
In my home network, I'm currently hosting a public facing service and a number of private services (on their own subdomain resolved on my local DNS), all behind a reverse proxy acting as a "bouncer" that serves the public service on a subdomain on a port forward.
I am in the process of moving the network behind a hardware firewall and separating the network out and would like to move the reverse proxy into its own VLAN (DMZ). My initial plan was to host reverse proxy + authentication service in a VM in the DMZ, with firewall allow rules only port 80 to the services on my LAN and everything else blocked.
On closer look, this now seems like a single point of failure that could expose private services if something goes wrong with the reverse proxy. Alternatively, I could have a reverse proxy in the DMZ only for the public service and another reverse proxy on the LAN for internal services.
What is everyone doing in this situation? What are best practices? Thanks a bunch, as always!
Hi there, hoping to find some help with a naive networking question.
I recently bought my first firewall appliance, installed Opnsense and am going to use it with my ISP modem in bridge mode, but while I'm learning I added it to my existing LAN with a 192.168.0.0/24 address assigned to the WAN port by my current DHCP. On the firewall's LAN port I set up a 10.0.0.0/24 network and am starting to build up my services. So far so good, but there's one thing I can't get to work: I can't port forward the firewall's WAN IP to a service on the firewall's LAN network and I can't figure out why.
To illustrate, I would like laptop with IP 192.168.0.161 to be able to reach service on 10.0.0.22:8888 by requesting firewall WAN IP 192.168.0.136:8888.
Private IPs and bogons are permitted on the WAN interface and I have followed every guide I can find for the port forwarding, but the closest I have come to this working is a "connection reset" browser error.
Hope my question is clear and isn't very dumb. Thanks for the help or any explanation why I might be struggling to get this to work. Am I missing something obvious?
---
UPDATE The thread is all over the place, but I have made some progress:
- RDR rule gets triggered when requesting 192.168.0.136:8888 from 192.168.0.123
- Apache logs show
2024-02-09T17:39:17.056208857Z 192.168.0.123 - - [09/Feb/2024:17:39:17 +0000] "GET / HTTP/1.1" 200 161
- a tcpdump (in spoiler below) on the apache container looks inconspicuous to my untrained eye, with the exception of checksum errors in some packets from the docker container (172.20.0.2). The last five lines, after the second GET request (why is there a second GET request?) appear in tcpdump after a delay of about five seconds.
tcpdump
```17:45:14.918182 IP (tos 0x0, ttl 62, id 63127, offset 0, flags [DF], proto TCP (6), length 60) 192.168.0.123.54120 > 172.20.0.2.80: Flags [S], cksum 0xfdc5 (correct), seq 4106772895, win 64240, options [mss 1460,sackOK,TS val 1485594466 ecr 0,nop,wscale 7], length 0 17:45:14.918207 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 60) 172.20.0.2.80 > 192.168.0.123.54120: Flags [S.], cksum 0x6d68 (incorrect -> 0x2fd7), seq 3999845366, ack 4106772896, win 65160, options [mss 1460,sackOK,TS val 1469298770 ecr 1485594466,nop,wscale 7], length 0 17:45:14.924098 IP (tos 0x0, ttl 62, id 63128, offset 0, flags [DF], proto TCP (6), length 52) 192.168.0.123.54120 > 172.20.0.2.80: Flags [.], cksum 0x5b30 (correct), ack 3999845367, win 502, options [nop,nop,TS val 1485594472 ecr 1469298770], length 0 17:45:14.924102 IP (tos 0x0, ttl 62, id 63129, offset 0, flags [DF], proto TCP (6), length 134) 192.168.0.123.54120 > 172.20.0.2.80: Flags [P.], cksum 0x70f5 (correct), seq 4106772896:4106772978, ack 3999845367, win 502, options [nop,nop,TS val 1485594472 ecr 1469298770], length 82: HTTP, length: 82 GET / HTTP/1.1 Host: 192.168.0.136:8888 User-Agent: curl/7.74.0 Accept: /
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN"> <html> <head> <title>Index of /</title> </head> <body> <h1>Index of /</h1> <ul></ul> </body></html>
17:45:14.924119 IP (tos 0x0, ttl 64, id 34500, offset 0, flags [DF], proto TCP (6), length 52) 172.20.0.2.80 > 192.168.0.123.54120: Flags [.], cksum 0x6d60 (incorrect -> 0x5ad1), ack 4106772978, win 509, options [nop,nop,TS val 1469298776 ecr 1485594472], length 0 17:45:14.924407 IP (tos 0x0, ttl 64, id 34501, offset 0, flags [DF], proto TCP (6), length 364) 172.20.0.2.80 > 192.168.0.123.54120: Flags [P.], cksum 0x6e98 (incorrect -> 0x0a74), seq 3999845367:3999845679, ack 4106772978, win 509, options [nop,nop,TS val 1469298776 ecr 1485594472], length 312: HTTP, length: 312 HTTP/1.1 200 OK Date: Fri, 09 Feb 2024 17:45:14 GMT Server: Apache/2.4.58 (Unix) Content-Length: 161 Content-Type: text/html;charset=ISO-8859-1 17:45:14.929077 IP (tos 0x0, ttl 61, id 0, offset 0, flags [DF], proto TCP (6), length 40) 192.168.0.123.54120 > 172.20.0.2.80: Flags [R], cksum 0x1833 (correct), seq 4106772978, win 0, length 0 17:45:15.138862 IP (tos 0x0, ttl 62, id 63130, offset 0, flags [DF], proto TCP (6), length 134) 192.168.0.123.54120 > 172.20.0.2.80: Flags [P.], cksum 0x701e (correct), seq 4106772896:4106772978, ack 3999845367, win 502, options [nop,nop,TS val 1485594687 ecr 1469298770], length 82: HTTP, length: 82 GET / HTTP/1.1 Host: 192.168.0.136:8888 User-Agent: curl/7.74.0 Accept: /
17:45:15.138872 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], proto TCP (6), length 40) 172.20.0.2.80 > 192.168.0.123.54120: Flags [R], cksum 0xb48d (correct), seq 3999845367, win 0, length 0 17:45:19.995097 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.20.0.1 tell 172.20.0.2, length 28 17:45:19.995161 ARP, Ethernet (len 6), IPv4 (len 4), Request who-has 172.20.0.2 tell 172.20.0.1, length 28 17:45:19.995164 ARP, Ethernet (len 6), IPv4 (len 4), Reply 172.20.0.2 is-at 02:42:ac:14:00:02, length 28 17:45:19.995164 ARP, Ethernet (len 6), IPv4 (len 4), Reply 172.20.0.1 is-at 02:42:b8:07:c2:99, length 28```
---
UPDATE 2 I see the exact same behaviour with a second VM and apache directly installed on it instead of in a docker container.
---
UPDATE 3
Thank you everybody for coming up with ideas. And thank you most of all to @maxwellfire@lemmy.world: The culprit was the Filter rule association
in my Port Forward settings which I had as Add associated filter rule
but needs to be Pass
. As soon as that is set, everything works.
The full solution is a NAT Port forwarding rule with filter rule "pass", an outbound NAT rule for hairpinning, and everything related to reflection turned off in Settings > Advanced. It's that easy! 😵💫
Nextcloud seems to have a bad reputation around here regarding performance. It never really bothered me, but when a comment on a post here yesterday talked about huge speed gains to be had with Postgres, I got curious and spent a few hours researching and tweaking my setup.
I thought I'd write up what I learned and maybe others can jump in with their insights to make this a good general overview.
To note, my installation initially started out with this docker compose stack from the official nextcloud docker images (as opposed to the AIO image or a source installation.) I run this behind an NGINX reverse proxy.
Sources of information
- Server tuning on Nextcloud Docs: Most of this are very basic things that are already taken care of in the docker image or in the proxy companion image I'm using. The one thing I haven't tried and that comes up in other places, too, is using Imaginary for image preview generation.
- How to migrate Nextcloud 17 Database Backend from MySQL to postgreSQL
- Eking out some Nextcloud Performance mainly talks about using a socket connection for redis, but also mentions logging to syslog (have not found a good source of information for this), using postgres, using imaginary for image previews
Improvements
Migrate DB to Postgres
What I did first is migrate from maridb to postgres, roughly following the blog post I linked above. I didn't do any benchmarking, but page loads felt a little faster after that (but a far cry from the "way way faster" claims I'd read.)
Here's my process
- add postgres container to compose file like so. I named mine "postgres", added a "postgres" volume, and added it to depends_on for app and cron
- run migration command from nextcloud app container like any other occ command. The migration process stopped with an error for a deactivated app so I completely removed it, dropped the postgres tables and started migration again and it went through. after migration, check
admin settings/system
to make sure Nextcloud is now using postgres../occ db:convert-type --password $POSTGRES_PASSWORD --all-apps pgsql $POSTGRES_USER postgres $POSTGRES_DB
- remove old "db" container and volume and all references to it from compose file and run
docker compose up -d --remove-orphans
Redis over Sockets
I followed above guide for connecting to Redis with sockets with details as stated below. This improved performance quite significantly. Very fast loads for files, calendar, etc. I haven't yet changed the postgres connection over to sockets since the article spoke about minor improvements, but I might try this next.
Hints
- the redis configuration (host, port, password, ...) need to be set in
config/config.php
, as well asconfig/redis.config.php
- the cron container needs to receive the same
/etc/localtime
and/etc/timezone
volumes the app container did, as well as thevolumes_from: tmp
EDIT Postgres over Sockets
I'm now connecting to Postgres over sockets as well, which gave another pretty significant speed bump. When looking at developer tools in Firefox, the dashboard now finishes loading in half the time it did before the change; just over 6s. I followed the same blog article I did for Redis.
Steps
- in the compose file, for the db container: add volumes
/etc/localtime
and/etc/timezone
; adduser: "70:33"
; addcommand: postgres -c unix_socket_directories='/var/run/postgresql/,/tmp/docker/'
; add tmp container tovolumes_from
anddepends_on
- in nextcloud config.php, replace
'dbhost' => 'postgres',
with'dbhost' => '/tmp/docker/',
Outlook
What have you done to improve your instance's performance? Do you know good articles to share? I'm happy to edit this post to include any insights and make this a good source of information regarding Nextcloud performance.
Hi fellow self-hosting lemmings,
In an SME setting, I'm looking for a service to regularly fetch mails from an IMAP server and print incoming mails and attachments on a local network printer based on rules (e.g., only print mails where the subject contains a specific word.)
Does a solution like that exist, ideally with a browser frontend to set it up?
Thank you!
Hi everyone, looking for help with an SSD/Win problem: My Thinkpad with Win11 has been acting up lately, and I am fairly sure the problem is with the SSD (very high disk load on startup and shortly before each of the many many crashes.) I would like to avoid having to set up my system from scratch.
I have a new SSD and have tried the following:
- leave bitlocker intact, boot into Ubuntu live, dd the old disk to an external USB drive, install new SSD, dd disk to new SSD
- same as above but with bitlocker disabled
- boot into Clonezilla live, clone old SSD to external storage, clone external storage to new SSD
- clean Windows install on new SSD and clone c: partition to new SSD with Clonezilla
All of these attempts invariably lead to an "INACCESSIBLE_BOOT_DEVICE" blue screen, and "bootrec /fixboot" and the like executed from the recovery CMD shows "0 Windows installations found." Booting into Ubuntu live with the cloned SSD installed I can see all my user data intact with no apparent problems.
Is my old SSD/Windows installation broken beyond repair and do I have to accept it and move on or am I missing something?
Thanks for any help or pointers!