• 0 Posts
  • 116 Comments
Joined 2 years ago
cake
Cake day: July 9th, 2023

help-circle


  • That only gives you 364 daya per year and we need just fractionally less than 365.25. You end up needing an extra day every year, and if we want to keep midnight in the middle of the night, and extra full day every four years (except when we don’t). Adding those sorts of bodges onto an otherwise elegant system would be awful to work with.

    Instead, I propose we build giant rocket engines pointing straight up on the equator, and adjust the Earth’s orbit until one orbit around the sun takes exactly 364 days.






  • Before you can decide on how to do this, you’re going to have to make a few choices:

    Authentication and Access

    Theres two main ways to expose a git repo, HTTPS or SSH, and they both have pros and cons here:

    • HTTPS A standard sort of protocol to proxy, but you’ll need to make sure you set up authentication on the proxy properly so that only only thise who should have access can get it. The git client will need to store a username and password to talk to the server or you’ll have to enter them on every request. gitweb is a CGI that provides a basic, but useful, web interface.

    • SSH Simpler to set up, and authentication is a solved problem. Proxying it isn’t hard, just forward the port to any of the backend servers, which avoids decrypting on the proxy. You will want to use the same hostkey on all the servers though, or SSH will refuse to connect. Doesn’t require any special setup.

    Replication

    Git is a distributed version control system, so you could replicate it at that level, alternatively you could use a replicated file system, or a simple file based replication. Each has it’s own trade-offs.

    • Git replication Using git pull to replicate between repositories is probably going to be your most reliable option, as it’s the job git was built for, and doesn’t rely on messing with it’s underlying files directly. The one caveat is that, if you push to different servers in quick suscession you may cause a merge confict, which would break your replication. The cleanest way to deal with that is to have the load balancer send all requests to server1 if it’s up, and only switch to the next server if all the prior ones are down. That way writes will alk be going to the same place. Then set up replication in loop, with server2 pulling from server1, server3 pulling from server2, and so on up to server1 pulling from server5. With frequent pulls changes that are commited to server1 will quickly replicate to all the other servers. This would effectively be a shared nothing solution as none of the servers are sharing resources, which would make it easier to geigraphically separate them. The load balancer could be replaced by a CNAME record in DNS, with a daemon that updates it to point to the correct server.

    • Replicated filesystem Git stores its data in a fairly simple file structure, so placing that on a replicated filesystem such as GlusterFS or Ceph would mean multiple servers could use the same data. From experience, this sort of thing is great when it’s working, but can be fragile and break in unexpected ways. You don’t want to be up at 2am trying to fix a file replication issue if you can avoid it.

    • File replication. This is similar to the git replication option, in that you have to be very aware of the risk of conflicts. A similar strategy would probably work, but I’m not sure it brings you any advantages.

    I think my prefered solution would be to have SSH access to the git servers and to set up pull based replication on a fairly fast schedule (where fast is relative to how frequently you push changes). You mention having a VPS as obe of the servers, so you might want to push changes to that rather than have be able to connect to your internal network.

    A useful property of git is that, if the server is missing changesets you can just push them again. So if a server goes down before your last push gets replicated, you can just push again once the system has switched to the new server. Once the first server comes back online it’ll naturally get any changesets it’s missing and effectively ‘heal’.


  • notabot@lemm.eetoSelfhosted@lemmy.worldTesting vs Prod
    link
    fedilink
    English
    arrow-up
    3
    ·
    27 days ago

    I manage all my homelab infra stuff via ansible and run services via kubenetes. All the ansible playbooks are in git, so I can roll back if I screw something up, and I test it on a sacrificial VM first when I can. Running services in kubenetes means I can spin up new instances and test them before putting them live.

    Working like that makes it all a lot more relaxing as I can be confident in my changes, and back them out if I still get it wrong.






  • Ha, no I’m definitely not, and have never been, an HR manager. It’s just one of those lessons I’ve learnt over multiple decades of working in an office and similar environments. The thought realigning is just to realise that you’re not trying to “placate” others, or do them a favour by granting them your time, but you’re actually helping yourself as being part of the ‘in’ group, even if you’re then quiet can make life a lot smoother. I’ve found people a lot more accommodating once they know me well enough to know I’m not being hostile reserved, so much as just quiet and focused reserved. It usually doesn’t take more than a few minutes per day of saying hi and maybe listening to their excitement about the latest sportsball results before people sort of mentally tick you off as being part of the group.

    I’m not trying to say it’s easy, it’s not. It’s not particularly enjoyable to begin with either, but as you get into the habit of it and expect to spend x minutes per day conversing with people, it gets less difficult. Also, just listening with an occasional “uh huh” goes a surprisingly long way, people always appreciate a listener, and that way you don’t have to do much talking.


  • I definitely feel your pain with the loud, no boundaries ones, they can be exhausting if you either don’t or can’t manage them efficiently. That’s where I found that engaging on my terms at times that gave natural reasons to break off helped. I found most people were a lot less likely to dump if I was ‘in’ the group, but just seemed busy/preoccupied, rather than when I was ‘out’ of the group.

    Think of it this way, being able to socially interact with your team in a normal work environment is a useful skill, and like any skill you only get better at it by practising. It might be hard work initially, but you’ve got a great opportunity right now, so go for it. It’s no great loss if it doesn’t go smoothly, you’re heading for the door anyway.

    Good luck, and remember, if it all gets too much, you need to go, you’ve got to have that report on your boss’s desk by the end of business today.


  • notabot@lemm.eetoAsklemmy@lemmy.mlis this how extroverts function?
    link
    fedilink
    arrow-up
    1
    arrow-down
    1
    ·
    2 months ago

    If you want a productive outcome the first thing you’ll probably need to do is realign your thinking about this. You’re not having “to placate needy people with attention this way”, these are your teammates, and above all, other human beings, and they’re inviting you to be part of their group. Engaging with them isn’t doing them a favour, it’s doing you a favour. Yes, some people will take the slightest opportunity to talk your ear off, but not engaging at all is just setting up walls that leave you on the outside. Equally, you need to respect your need for focus and lack of distraction, which can certainly be tricky if everyone else is reliving the drama of their weekend.

    I’m certainly more on the introverted side of things, but I’ve found it very beneficial to get myself out of my shell regularly to talk to other people at work. The best way I’ve found is to effectively ‘time box’ chatting time. Find times when people are generally more relaxed and chatty and you’re not focusing on work. I’ve found lunch time is often good as people will chat, but also have natural reasons to break off themselves. Maybe they go to the gym, or are meeting a friend for lunch, or maybe they just want a bit of peace and quiet! Whatever it is, it’s a good opportunity to chat for a few minutes, then if they don’t break it off, you can plead a prior engagement and break away without upsetting anyone. Even claiming you have to get back to your desk to finish a report will do. Once people find they can interact with you, but only a bit, they’ll often self-regulate.

    TLDR: loose the attitude that you’re having to “placate” the “needy” and start seeing socialising as an opportunity to develop better conbections with your team. You never know when that can come in handy.

    Challenge yourself to relax and spend at least 2 minutes socialising in a friendly way tomorrow, then work on extending that up to a point tgat people seem comfortable with, without them swamping you. You’ve already handed in your notice, so you have the perfect, low consequence situation to practice in.


  • notabot@lemm.eetoAsklemmy@lemmy.mlis this how extroverts function?
    link
    fedilink
    arrow-up
    3
    arrow-down
    1
    ·
    2 months ago

    Matching communication styles is the key here. If there’s a general chatty vibe to the team and you’re the only one not engaging then you’re the odd one out and that will invite comment.

    If your team are chatty, you don’t need to go all out at the same level they are, but showing some willing and chatting at least sometimes will usually be enough to ensure harmony. Knowing how to disengage without causing offence or annoyance is also an important skill.