HackerTrans
TopNewTrendsCommentsPastAskShowJobs

pSYoniK

no profile record

Submissions

AI, Coding Agents and Ignorance as a Virtue

psyonik.tech
4 points·by pSYoniK·il y a 5 mois·0 comments

A Guide for WireGuard VPN Setup with Pi-Hole Adblock and Unbound DNS

psyonik.tech
176 points·by pSYoniK·il y a 9 mois·31 comments

comments

pSYoniK
·il y a 19 jours·discuss
I have submitted this before, but for those maybe a bit uncomfortable with setting up a VPS to act as an exit node for Wireguard, my article covers most things:

https://psyonik.tech/posts/a-guide-for-wireguard-vpn-setup-w...

For this particular use case, I would probably suggest something like OVH/Scaleway as they have nodes in France so physical distance between UK and "somewhere else" is low which will affect latency. If you're willing to wait longer and go further, I recommend Infomaniak (Switzerland - they have nodes in Geneva I think/Zurich). Hetzner (a crow favorite) hasn't been that good for me while I was in the UK, I was getting dropped packets even after switching a few VPSes, but might've just been something temporary.
pSYoniK
·il y a 8 mois·discuss
It is however very patronising to tell people to "Go full vegan, abandon all possessions, and all that".

It also isn't useful to reduce the conversation and assume that critique directed at the idea of necesarily going out and buying new hardware is a critique against technology or ownership, but, myself included, we do seem to read what we want. You also missed the point I made when I did clearly say voting with your wallet doesn't work. You didnt address the other, more salient point I was getting across, but obviously failed to do so - when starting out, don't worry too much, just get whatever and start learning. Questions will be easier answered when you already have some hardware.

Anyway, enjoy your day
pSYoniK
·il y a 8 mois·discuss
TL;DR - please stop wasting tons of resources putting together new servers every year and turning this into yet another outlet for "I have more money than sense and hopefully I can buy myself into happiness". Just get old random hardware and play around with it and you'll learn so much that you will be able to truly appreciate the difference between consumer and enterprise hardware.

This seems awfully wasteful. One of the main reasons for which I've built my own homeserver was to reduce resource usage - one could probably argue that the carbon footprint of keeping your photos in the cloud and running services is lower than building your own little datacentre copy locally and where would we be if everyone builds their own server, then what? Well, I think that paying Google/Apple/Oracle/etc whoever money so that they continue their activities has a bigger carbon footprint than me picking up old used parts and running them on a solar/wind only electricity plan. I also think I'm going a bit overboard with this and I'm not suggesting to vote with your wallet because that doesn't work. If you want real change this needs to come from the government. You not buying a motherboard won't stop a corporation from making another 10 million.

Anyway, except for the hard drives, all components were picked up used. I like to joke it's my little Frankenstein's monster, pieced together from discarded parts no one wanted or had any use for. I've also gone down the rabbit hole to build the "perfect" machine, but I guess I was thinking too highly of myself and the actual use case. The reason I'm posting this is to help someone who might not build a new machine because they don't have ECC and without ECC ZFS is useless and you need Enterprise drives and you want 128 GB of RAM in the machine and you could also pick up used enterprise hardware and you could etc...

If you wish to play around with this, the best way is to just get into it. The same way Google started with consumer level hardware so can you. Pick up a used motherboard, pick up some used ram, a used CPU, throw them into a case and let it rip. Initially you'll learn so much and that alone is worth every penny. When I built my first machine, I wasn't finding any decently used former desktop form hp/lenovo/dell so I found a used i5 8500t for about 20$, 8 gb of ram for about 5$, a used motherboard for 40$, case was 20$ and PSU was $30. All in all the system was 115$ and for storage I used an old 2.5inch ssd for boot drive and 2 new NAS hard drives (which I still have btw!). This was amazing. Not having ECC, not having a server motherboard/system, not worrying about all that stuff allowed me to get started. The entry bar is even lower now, so just get started, don't worry. People talk about flipped bits as if it happens all day every day. If you are THAT worried, then yeah, look for a used server barebone or even a used server with support for ecc and do use ZFS, but I want to ask, how comfortable are you making the switch 100% now over night without having ever spent any time configuring even the most basic server that NEEDS to run for days/weeks/months? Old/used hardware can bridge this gap and when you're ready it's not like you have to throw out the baby with the bathwater. You now have another node in a proxmox cluster. Congrats! The old machine can run LXCs, VMs, it could be a firewall it could do anything and when it fails, no biggie.

Current setup for those interested:

i7 9700t

64 GB DDR4 (2x32)

8, 10, 12, 12, 14 TB HDDs (snapraid setup and 14 TB HDD is holding parity info)

X550 T2 10Gbps network card

Fractal Design Node 804

Seasonic Gold 550watts

LSI 9305 16i
pSYoniK
·il y a 9 mois·discuss
I had wireguard on docker before for some containers, but it felt clunky and it over complicated the network stack in my head (I'm unfortunately not very skilled in networking in general). So I said that I'd go back to the root and run it at OS level because then I can expose Proxmox to the world or any of the other VMs I run by having them join the wireguard network. Which in turn means that I can connect to any machine I want/need directly. I am also playing around with writing my own dynamic DNS worker in C# and I was curious on how I could have that run as a systemd process but bypass the wireguard tunnel to keep updating IP addresses. A lot of these were tied to me just being a bit more curious about the whole stack.
pSYoniK
·il y a 9 mois·discuss
I mentioned that as an alternative along with Headscale and Nebula. Not for me though! At least not now.
pSYoniK
·il y a 9 mois·discuss
I want to make a few points to help clarify some of the choices and why I made them. This is very helpful and I appreciate all the comments as it highlights how some things are clear in our head but we don't end up sharing that with anyone reading. So:

1. I looked at AdGuardHome but I preferred PiHole because I found its documentation a bit more helpful for my purpose (the Unbound sample, the Wireguard setup, etc)

2. I saw the docker compose package, but I wanted something that runs at the OS level. There are docker packages for Wireguard too and I had also a look at Mistborn (https://gitlab.com/cyber5k/mistborn)

3. The VPN is the main thing I wanted setup to reach resources on my home network, adblocking and DNS came a bit later, so you can run this without a VPN, but its central for my setup.

4. I really wanted this setup at the OS level and to hopefully learn more about the whole process.

Thanks again for the suggestions though!
pSYoniK
·il y a 9 mois·discuss
I put Zorin OS on my dads old laptop 5 years ago and I think the only time I got a question was when someone setting up his new internet was digging through network settings but hadnt used any Linux distro before. Even then it was a 5 min call. Its a very Windows-like experience and I've noticed most parents really just write an email, browse the web and maybe consume media. All of those can occur in a browser.
pSYoniK
·il y a 9 mois·discuss
I have looked at that briefly, I think I had gone with pihole in the end for the ability of having a UI to easily see any resolution issues and local dns management (which, I think, is also present in Unbound but not in a UI but via configs).
pSYoniK
·il y a 10 mois·discuss
This is such a good point. I've changed jobs a lot and one thing consistently bad (to varying degrees) is documentation and tutorials specifically.

"Download X and setup"

"It's not working..."

"Oh yeah, you're supposed to do it on the remote access VM"

"It says access denied"

"Oh right, you're supposed to use the Yubikey for access"

"I don't have a Yubikey, its pass + authenticator"

"Ok, I'll email Jeff from this department you wont hear off until someone new starts. But otherwise keep following the tutorial and you should be good to go!"

It always infuriates me. At my last job I had a lot more control and authority, so I redid the entire tutorial for the proj we worked on. Every few months I'd check all my account permissions, update the list on the readme, spin up Windows/Ubuntu VMs and try to get the project running using ONLY the tutorial. Anything missing - add it.

If anyone added a new dependency the documentation would be updated and the steps checked on a new VM. I did this as we had various people come in and work for a few weeks, add a new feature and leave. The end result was that instead of 1-2 weeks to get running, people would have everything running within their first day and start work sooner. Instead of needing someone for 4 weeks for ONE feature, we could finish 2-3 and sprinkle in more tests and confidence.

I think most developers would benefit from writing for a less experienced audience, especially for this sort of thing.
pSYoniK
·il y a 10 mois·discuss
This is really great. I've managed to convert a few people to talk over Signal and while I am backing up my chats to my home server (I see you will be offering something like this in the future), this wasn't really an option for the people I converted over to Signal, so they were constantly afraid that they might lose the pictures or the chats if something happened to their phone.

I know, you can download media and save it through something else, but most people just opt-in whatever is default. I think my only suggestion would be to make it real clear or even maybe have some sort of counter that says something like "39 images are no longer backed up" or "8374 media items are NOT being backed up, 507 are in backup, 29 will be removed tomorrow". This could be directly on the backup page, I'm not currently running the beta build as I installed the apk, but if it's already on there, scratch the feedback!

Thank you again for all your hard work on this, it really is appreciated (financially too!)
pSYoniK
·l’année dernière·discuss
I've been reading these posts for the past few months and the comments too. I've tried Junie a bit and I've used ChatGPT in the past for some bash scripts (which, for the most part, did what they were supposed to do), but I can't seem to find the use case.

Using them for larger bits of code feels silly as I find subtle bugs or subtle issues in places, so I don't necessarily feel comfortable passing in more things. Also, large bits of code I work with are very business logic specific and well abstracted, so it's hard to try and get ALL that context into the agent.

I guess what I'm trying to ask here is what exactly do you use agents for? I've seen youtube videos but a good chunk of those are people getting a bunch of typescript generated and have some front-end or generate some cobbled together front end that has Stripe added in and everyone is celebrating as if this is some massive breakthrough.

So when people say "regular tasks" or "rote tasks" what do you mean? You can't be bothered to write a db access method/function using some DB access library? You are writing the same regex testing method for the 50th time? You keep running into the same problem and you're still writing the same bit of code over and over again? You can't write some basic sql queries?

Also not sure about others, but I really dislike having to do code reviews when I am unable to really gauge the skill of the dev I'm reviewing. If I know I have a junior with 1-2 years maybe, then I know to focus a lot on logic issues (people can end up cobbling toghether the previous simple bits of code) and if it's later down the road at 2-5 years then I know that I might focus on patterns or look to ensure that the code meets the standards, look for more discreet or hidden bugs. With an agent output it could oscilate wildly between those. It could be a solidly written search function, well optimized or it could be a nightmarish sql querry that's impossible to untangle.

Thoughts?

I do have to say I found it good when working on my own to get another set of "eyes" and ask things like "are there more efficient ways to do X" or "can you split this larger method into multiple ones" etc
pSYoniK
·l’année dernière·discuss
So, as someone who has applied to a lot of jobs and has had a lot of jobs, I'm going to be a bit more critical here. I think the amount of information they gave is sufficient for a take-home.

Make an email client, email view+send, fake backend or real imap, handle plaintext.

At this stage, for a take-home, I'd start working and write down assumptions I made as I went along. I'm probably the opposite of the author, as a take-home (unless it's the last stage or something) is, in my view, a tester to see what a person can do within a few hours of work. I've had several take-home exercises during my time as a software engineer and they varied from "we have provided all details that a stakeholder would provide" to "if you have any further clarifying questions, please get back to us".

The most recent one I took a couple of years ago came with an internal library the company used. They said, "use this library to make a web app that takes advantage of these methods inside of it; create an app that simulates behavios using those methods. Do not spend more than 10 hours on the assignment."

I started coding, I threw something together that worked in about 6-7 hours and I was writing down assumptions as I worked as well as trade-offs from those assumptions. "I assume the user would not be bothered by a failure here, if reliability would be important, what would we want to do in the case of a failure? Retry? Back off retries? etc etc". I then provided the code and provided a list of improvements "Add unit tests to these 3 components, add integration test to ensure this functionality works end-to-end if its essential, improve UI, clean up code base, refactor these services, use a framework/library for the UI instead of hard-coded JS to make these few calls. I wrapped it up because I think I was 70-80% there."

During the next interview with the architect of the company, he said that the solution I provided worked fine, we discussed some things I did and he asked why I did them, but specifically, and this is why I'm commenting here, he mentioned that he appreciated the assumptions document, the future improvements and the "I stopped here because I'd rather get feedback on this and refine, as opposed to keep building something I imagine you want". He said that the ability to work up to a point where you hit the majority of the story and then get feedback on that incomplete project is better than having someone dissapear into a cave for a month to try and come back with the absolute finished product in their oppinion and then having to make changes to get it in line with what was actually wanted.

So I guess, become comfortable with uncertainty. If nothing else, ask only "hey, I assume you want something along these lines that I can bang out in 5-6-10-20-40 hours. If you're not happy with what you get for 5 hours, it might not be a good fit in general or if you think I prioritized the wrong thing in those 5 hours, then we can chat about that too". I am also saying this, because my current role is a lot more in line with what the author is looking for - they spend weeks refining requirements, they write documentation, they create mocks and they have meetings over meetings before I even know what I'm supposed to do and within a day or two they start realizing that what they described is about 10-20% off what they wanted or what is possible and the whole cycle of meetings starts again. Instead, and I've been pushing for this each sprint, I'm asking them to accept a certain level of unknown in a given story, we work on it, we see it behave and get used and refine it based off of that.

The author seems to want waterfall, but agile exists for a reason. Hell, let's not even call it agile or whatever else, in a real situation, you start doing and you learn as you move along. You refine based on feedback, you refine based on new experiences and based on new requirements. You work in the murky areas of someone elses mind. Or not, I don't know, but expecting a series of jira tickets with screenshots and deliverables from a company that just wants to see how you think, how you work with uncertainty and how you deal with unknowns feels... wrong.
pSYoniK
·l’année dernière·discuss
Not sure how these are that "new" seeing as Toto (and I'm almost assuming other Japanese brands too) have had designs like the Nautilus for some years. One of the things that stuck with me a lot after a trip to Japan was exactly how thoughtful their toilet designs are. Public toilets with these tall urinals were amazingly clean in even the busiest stations and would allow you to get a good angle and not have splash on to the floor/shoes. Similar designs but scaled down were found in their newer Limited Express trains. Also, that angular design makes no sense, a human being will need to clean it and for anyone whos ever had to clean angular ceramics, they will know that that design will just be a pain to get proper clean...

I guess what I'm saying is, before we start researching new methods, why can't we be bothered to spend even a little bit of time to see what else is out there.
pSYoniK
·il y a 2 ans·discuss
I've built a few small personal projects using Vim with NERDTree only in C#. I keep doing this every few months (small means the solution has around 4-5 projects and it performs a few clearly defined little functions) and it is really is both helpful and interesting to realize how many things we take for granted, but how great it feels to better understand dependencies, which nuget packages are needed, version compatibility issues and many other things.

I also end up better knowing and remembering any new classes and methods because I have to dig through the reference documentation for each of these things.
pSYoniK
·il y a 2 ans·discuss
well, most of the job hops were from jobs I didn't want to do in the first place, but I needed to do. Two of those jobs were about 4 months, so that brings it down to 7 jobs in 9 years and 2 months. Two more were 1 year each, so now were looking at 5 jobs in 7 years give or take. As for my software dev jobs I had 1 for 20 months, 1 for 25 months, 1 for 12 months exactly and I recently started a new one. The other roles were non-software related and I was going to get a software dev role.

As for ramp up, I always jump in with both feet and ask for tasks and its really domain that you need to figure out. I've worked in a lot of different fields (I think no 2 jobs were in the same field) so I've gotten accustomed to quickly figure out those few processes that keep the lights on in most roles.

Writing software is the easy part. Figuring out the domain is the longer task.

On red flags or that this is a red flag - I don't really care. I've had it mentioned maybe in... 3 jobs and got offers from 2 and rejected both. I'm not here to be questioned around that aspect as I make the decisions that make the most sense for me. Companies do the same for themselves. I'll reconsider once I see C-level pay not be 50 times minimum wage in a company and when executive members give up their salaries/bonuses during downturn to keep people on-board or retrain/redirect the company. In the meantime, I probably care about your company as much as you do about me.

Hope this helps!
pSYoniK
·il y a 2 ans·discuss
It is. It really is.

I had posted something about jobs and looking for jobs some time before here, but the best advice I can give is that all of this "What color is your rainbow" and "Cracking the coding interview" and so on isn't really applicable or it never seemed applicable to me and my experience.

To expand on my previous comment, I'm now on my 9th job in 10 years. Over the last year or so I've had another 30-40 interviews give or take. It was probably more, but this is as close as I can get. I would have liked to spend more time on some of these jobs, but circumstances didn't work in my favor so I had to make changes. What I've learned throughout the process is that all of this is a numbers game. It also helped me spot red flags and cut the process short.

For anyone else looking for a job and for the OP, here are some things:

1. Someone who is motivated to hire someone for a job will be quick/good to communicate

2. They need to set a clear timeline and steps in the process (and if they don't, ask for one and any deviation will be a red flag)

3. They might also tell you how many others are applying for the role (not mandatory, but it's good so you have a rough idea of what your statistical chances are)

4. Be clear about salary expectations early on and if someone pushes to find your current salary, feel free to say it's higher than it actually is. Any deviation from this or if someone doesn't want to say, it's a red(ish) flag and I'd be careful. It doesn't matter and if a recruiter will comment on this - I don't care what your theory about this is, you will aim to pay the lowest amount you can humanly get away with. It's also the reason we have minimum wage laws, not because companies were showering employees with money, but because they would have kept slavery going if that made sense to their bottom line (and they still do).

5. Ask why they are hiring - did they fire a bunch of people previously, are people leaving every few months or is the team/company growing; these can help you save time later on and at least have an idea of what culture you might be joining

6. Ask how widespread the technology you're going to be using is within the company. If a company has 99% Go roles and you applied to the 1% of the roles that are in Java, why is there such a discrepancy? Is it some old code carcass left over with no documentation, testing and with no desire to further develop it but they just want a body in the chair in case something goes wrong... not sure, but that's not something I'd want to do.

7. Be CLEAR about remote work/hybrid working policies - unless it is clearly stated in the contract, it CAN be changed with no notice. A change in contract would at least generally give you some time, but without this being in the contract, you can't really back out of it (case and point, Atos had remote-ish contracts for some of their teams, then they said they updated the terms and conditions, issued a new contract and forced employees to sign or resign). At a previous role I left I was told that the team is highly flexible and remote working is normal, but it's not in the contract, but it's ok, because everyone likes it. On a Thursday we were told that from Monday its 5 days in the office.

8. Anything outside of your salary or contract is NOT guaranteed, so don't pick a job based on perks. Those tend to vanish at the first sight of trouble and also, don't be one of those people that drinks the free coffee at the office just because its free. Stuff costs to make, grow, ship, build - pay for it.

9. Don't be pressured into accepting. This is a bit weirder, but it can happen. Let's say you are interviewing at 2 companies at the same time, one is more motivated to hire, but you don't like it as much, the other has a longer process but you like their domain more. Be upfront about this - "I am interviewing with another company and would like to see both outcomes to make a decision". Being forced at this stage to drop out, being bullied into saying the company name or anything of the sort is a red flag to me. If you have an offer but you need to wait a few days or a week - say so. "I am waiting for a reply from the other company too and I can provide an answer at the end of the next week".

10. Just because you accepted a job doesn't generally mean you need to take it. This is not legal advice, so take it with a grain of salt, as it depends greatly on what you sign, how enforceable it is and where you reside. But the general idea is that, if you accepted a job, but a week or two after you get a better offer, just tell the company you accepted the offer "No". "No" is a complete sentence. You do not need to give justifications, you don't need to take abuse or anything else. You have to think about yourself. They won't. If there is some legal rationale through which you NEED to start that role, just start it and hand in your notice on the first day. Most of these contracts will have some sort of "1 week notice by either party during probation". So you can join, give your notice, work the week, get paid for it and start at the other job.

Also, it will suck. Searching for a job will suck. More and more companies (especially recruitment companies - Noir, Tietalent, Aristo Group, RM Group and Hays to name a few) are really just mining for data with little to no interest in pushing you to any of their clients. They will also tend to try and say that just because you had read about COBOL during Uni, you are now 100% COBOL dev and set you up with a rather terrible interview with some client. There are more, but I'll stop here. On a side note, if you do end up working or answering to a question from a recruitment company check their reviews, look up the person that contacted you, look up the client and apply the same rigor to them as to the company you would end up working with. This entire industry is focused on selling out people to whomever, so don't end up pushed into stuff you don't want to do by one of these enthusiastic second hand car sales people.
pSYoniK
·il y a 2 ans·discuss
I've seen this mentioned before here in the comments, but custom fitted ear protection isn't that expensive if you consider the amount of time you can use them for and especially if you consider the damage to your hearing in terms of monetary elements.

I had to work in very loud and noisy environments and I also cycled to work through rush hour traffic in a busy city. The roughly 150$ for a custom molded in-ear protectors/filters (they lower between 10 and 25 db specifically aimed at limiting big event noises - music/announcers/etc). You can even get models with swappable filters, so you can easily get a few filters for different needs and swap them out.

Check with your local pharmacy or doctor and get them. If you can't afford them as $150 is a lot for many people, I've had a friend use the loop in ear protectors, but at an event where we worked a 16 hour day, he said that they got very uncomfortable, while my custom-fitted ones were still good!
pSYoniK
·il y a 3 ans·discuss
My argument is that most peopl, the very mast majority does not have the same option to pay less tax as a percentage of their salary. Complaining about having a huge advantage over the majority, while suffering from the same problem does smell a bit of privilege.

I also do not necessarily like the implications you responded with, as I was discussing something you posted publicly about yourself and a detailed description you gave. I have made my choices and continue to make the choices I can. I understand I also benefit from huge amounts of priviledge and I try to use it to change what I can, not complain about it. I understand its frustrating and most importantly, the things you described show how dignity is being taken away from you, but imagine, for a second, how those millions making less than you feel. How they can't make any choice and if you do not lead by example from your position,if you, who sits so highly on Maslow's hierarchy, feel such injustice, what do those millions below you feel?

Anyway, thank you for sharing the details, it was an interesting read.
pSYoniK
·il y a 3 ans·discuss
One aspect that shocks me is someone complaining about having a 15.3% tax rate at an income of 84k/year. If your state is incompetent, corrupt and whatever else, its your duty as a citizen to do something about. Barring that, I guess paying less tax than the aprox 1.9 million Romanians getting paid minimum wage (aprox tax paid by a minimum wage employee is about 37%) while making about 3 times the average salary is still not good enough.

I appreciate the writeup and the thoughts on time and money, yet the complaints about taxation for someone making this much money in that country, cannot but ruin it a bit for me.