HackerTrans
TopNewTrendsCommentsPastAskShowJobs

plainnoodles

no profile record

comments

plainnoodles
·4 ปีที่แล้ว·discuss
So "why" is just "idk" and it seems like the person generating them found her on accident once, and then kept trying to find her again. I'm a fan of a good creepypasta and honestly a memetic SCP that "lives" in the models of AI sounds pretty tight to me. But this ain't it.

I'll admit I was expecting the "why" (aside from SCP...) to be something like "turns out DALL-E gets live humans and corpses mixed up and in macabre images the live humans get a bit more corpse-y due to this".
plainnoodles
·4 ปีที่แล้ว·discuss
> so he drives to the Google parking lot on a weekend and finds no one there. Obviously Google+ wasn't a serious enough concern to Google that would require weekend hours so the author concluded (correctly) that its not the existential threat that Facebook thought it was.

This line of reasoning was viscerally distressing for me to read. Both for what it implies the FB guy thinks about what productivity/seriousness looks like, and for the brittleness of the reasoning used to draw his conclusion.
plainnoodles
·4 ปีที่แล้ว·discuss
I just recently migrated all (4) of my domains from google domains to cloudflare. Some of them (.cafe) because it was 50% cheaper (20ish bucks instead of 40) and others (.com) because even through the price was ~ the same ($9ish vs 12) I still wanted to decrease how load-bearing my google account was.

The transfer was quite smooth. It was easy to turn off the cloudflare "protection" (my sites don't need it (yet?) and I didn't want to have to think about it, the threat model, tls stuff, etc). And so far no problems.
plainnoodles
·4 ปีที่แล้ว·discuss
My main qualms with bash as a scripting language are that its syntax is not only kind of bonkers (no judgement, I know it's an old tool) but also just crazily unsafe. I link to a few high-profile things whenever people ask me why my mantra is "the time to switch your script from bash to python is when you want to delete things".

>rm -rf /usr /lib/nvidia-current/xorg/xorg

https://github.com/MrMEEE/bumblebee-Old-and-abbandoned/commi...

>rm -rf "$STEAMROOT/"*

https://github.com/valvesoftware/steam-for-linux/issues/3671

It's just too easy to shoot your foot.
plainnoodles
·4 ปีที่แล้ว·discuss
One of the weird things about Java is that there's a big low-latency/high-performance Java community around that stems from Island (now owned by NASDAQ) using Java as the platform/language for their matching engine. Then, talent flow from that team resulted in lots of proprietary trading shops using Java to low-latency trading/order execution.
plainnoodles
·4 ปีที่แล้ว·discuss
I honestly think it is that bad.

Heartbleed was reviewed twice by literal OpenSSL experts and security experts who were specifically looking at it to determine whether it was a security vulnerability or not and concluded (incorrectly) it was not. And now it's the poster child for bad software bugs.

It's really hard to write correct software in any language, and time has shown again and again that memory safety is just not something you can hope to do without if you care about security in the slightest.
plainnoodles
·4 ปีที่แล้ว·discuss
Yes I'm sure China or Russia would be *thrilled* if their citizens wanted workers to own the means of production. Definitely would not involve tanks or squares or soon-to-be iconic historical photography at all.
plainnoodles
·4 ปีที่แล้ว·discuss
Adding on: and sometimes, even when they manage to make an interesting point, they've gotten so lost in their appraisal of their argument that the philosophical question ends up not even being the one they actually care about.

To that last point, I've lately seen a lot of arguments for abortion being ethical/unethical that end up just being modified Trolley problems. One I saw that stuck with me was: "Suppose there is a fire in a building. You have a test tube of 1000 human embryos in one hand, and a 4 year old girl in the other. The only possible outcomes are you saving the vial or the girl, or neither. Which do you choose?"

I thought this was an interesting take, since it reads as a very different situation depending on your view of the embryos!

A "pro-life" person would clearly interpret this as a modified trolley problem. You have 1000 embryos who could become people but cannot feel pain or terror or [etc] right now (or at least not in the same way as the 4-year-old). Or you have a 4-year-old who can, and will suffer greatly. This is quite trolley-esque and while this one seems to have somewhat of a likely-correct answer, it's certainly not without some complication.

Someone who thinks the embryos aren't yet people or persons will see this as a much less interesting thought exercise - of course you save the 4-year-old, the vial is just some cells that clearly don't even have consciousness yet.

And there's even a whole swathe of positions in between who will assign some amount of humanity to the embryos and attempt to resolve the quandary between the embryos vs the 4-year-old.

But, as interesting as this is, it completely misses the point of the original question-poser. Regardless of which option you pick as correct, it doesn't really inform us much as to whether abortion is ethical. Going back to my main point of bemoaning the dreadful state of the average internet argument.
plainnoodles
·4 ปีที่แล้ว·discuss
I'll throw out another "class" of person - someone who believes something, and at least grasps the concept of philosophical reasoning enough that they'll attempt to build one of the basic forms of argument - usually an argument by analogy - and having done so, they'll trumpet their conclusion. Then, commenters will pile in, either being part of the class of people you mention (who will skip reading the argument and just check to make sure the conclusion is what they want) or being part of the same class who will review the argument, stamp a "lgtm!" on it, and upvote/concur. We're right! And look, it's got proof attached, too!

But then even the most amateur student of philosophy, perhaps about 60% of the way through their freshman (mandatory) Philosophy 101 course, would be able to examine the argument and identify mistakes so appallingly obvious that they might be provided as practice problems in their homework. The analogy isn't appropriate; or it begs the question; or it assumes some predicate where their proof may hold if the predicate is true, but the predicate itself must be proven for the conclusion to be substantive.

I see this a lot on reddit. Especially recently due to the abortion debates re-heating. Arguers - regardless of side - are so poorly equipped by our education system, and so poorly incentivized by the highly polarized/tribalistic nature of modern political discourse, that even when people try they're still not making any progress in reasoning about their positions.
plainnoodles
·4 ปีที่แล้ว·discuss
I'm not a greybeard by any stretch, but I personally get a lot of mileage out of just stopping to ask: Does the extra layer of abstraction, or extraction of code to a method, or creation of a class - does it make the code *right now* easier to understand? If yes, do it, if not, don't.

The example I keep coming back to is when I was a junior, one of the other juniors refactored the database handling code in one of our apps to use a class hierarchy. "AbstractDatabaseConnection" "DatabaseConnection" etc. And mind you this was on top of the java.sql abstractions already present.

I don't necessarily know what his end goal was, since the code still seemed pretty tightly coupled to how java and postgres handle connections and do SQL. One might theoretically now be able to create a testing dummy connection that responds to sql calls and returns pre-baked data. But the functions we had were already refactored to be pure functions, and the IO was just IO with no business logic.

Anyway, all it ended up doing was making it so I never touched the database code in that app ever again. Integration testing was handled by just hooking it up to a test db via cli args and auto-clicking the UI. And eventually when people started side-stepping it, I took the opportunity (years later) to just go back in and replace both it and all the side-stepped code with plain ole java.sql stuff that literally anyone with two thumbs and 6 months of java experience could understand.

So now, unless I have some really strong plan (usually backed up with a prototype I used to plan out the abstraction) for an abstraction model, I just write code, extracting things where the small-scale abstractions improve current readability, and wait for bigger patterns (and business needs) to emerge before trying to clamp down on things with big prescriptive abstraction models.
plainnoodles
·4 ปีที่แล้ว·discuss
The problem is that the author probably likes manhattan for various reasons that you can't just move outside of manhattan, like:

- family nearby

- friends nearby

- as a consequence of the above two: support network is in manhattan

- enjoying the local parks/scene/etc

I grew up in <midwest plains city> and then moved to <rival midwest plains city> for a long while after college, eventually moving back to my home city because that's where all my family was.

It was a hard move in both directions and all things considered, I didn't even move that far. In city B, I missed my family and the stuff there was to do in city A. But after moving back, I now miss a lot of the things we did in B. And I don't even consider myself to be someone to particularly likes leaving my house!

Advice that tells people to "just move" is pretty shortsighted, I think. I really doubt OP moved to manhattan just to be able to be snooty about living in an expensive city, or something, which is honestly how I kind of read these kinds of advice - though it's probably not a very charitable read of your argument, for which I apologize.
plainnoodles
·4 ปีที่แล้ว·discuss
A company I used to work for took roughly this path:

1. 1 mildly technical, mostly business-domain person, a spreadsheet + auto-clickers

2. 1.5 persons still only mildly technical and mostly business-domain-y, a VB gui and some basic network integration

3. [some time and quite a bit of revenue passes]

4. they hire some java programmers to rewrite it properly in Swing, since the VB versions had literally become impossible to modify without breaking (there were forked versions where you used version A for some feature, version B for another, version C for another - and people had tried to merge them together while keeping the whole thing working, but never managed it).

It's now been, oh, over a decade I suppose, and while I understand that there are currently some efforts underway to port the java applications to an SPA web app, it's more because the owner wants to get rid of java (and only have to hire python devs) than because the apps don't work or are hard to maintain.

My point is that without VB, the company probably wouldn't have existed to even need the Swing rewrite. So while I personally find VB to be quite caustic to my senses, I cannot deny its ability to create business value, especially because it's so approachable only mildly-technical folks.
plainnoodles
·4 ปีที่แล้ว·discuss
Probably just not even saying anything at all, given they found the USB shortly after it was lost.
plainnoodles
·4 ปีที่แล้ว·discuss
I don't usually actually laugh at HN comments, but when I read "audited" in this context, I did. I don't know why, but this kind of tongue-in-cheek use of a more "sophisticated" word to refer to something mundane like robbery is my kind of humor.
plainnoodles
·4 ปีที่แล้ว·discuss
> There are all kinds of invisible forces that you abutt that can be difficult to figure out

This was my main experience, and all I did was try to set up the ability to simply send emails to myself (gmail) (and no-one else). Things like: this script crashed, or btrfs scrub finished + scrub results, and similar.

The first thing I tried was just setting up a VM with postfix running on it locally with my residential ISP. I don't even remember what the error was for this scenario, but it was just totally dead in the water. Absolutely zero mail delivery. I think I eventually figured out it's because google defers to spamhaus, and spamhaus says residential IPs = hard no.

That next thing I tried, and what I ended up doing, was writing a docker container that just runs an SSH port forward to jump from my local network to a digitalocean host, which is where another docker container runs postfix. I had done this bit once before, and I tried to just set up DKIM (since DKIM was, to my reading, basically bulletproof - why bother with SPF when you have real cryptographic identity assurance?). This led to weird error messages from google about my IP having a super low reputation. This was something I'd been worried about so I spent a bit of time trying to cycle my IP. But I eventually figured out it was just a bad error message and setting up SPF suddenly made my emails start delivering.

My main ongoing issue is that I had to add all my sending addresses (things my [email protected]) to my contacts in gmail, otherwise there was like a 50% chance they'd just go to spam. I've been running this setup for about a year and it's still a coin toss whether emails will come through fine, or if they'll say "this would've gone to spam but it's in your contacts". When that happens, I check the DKIM and SPF status in "original message" in gmail, and gmail itself says they both passed.

Absurd tbh.

For my "not self-hosted but better than letting google own my digital identity" solution, since I use apple icloud+ or whatever it's called, I set up the SPF stuff to let me send+receive email from my custom domain, so while icloud could still scan my mail, at least if I get banned, I still own the actual domain and could move somewhere else.
plainnoodles
·4 ปีที่แล้ว·discuss
I have an XPS 13 9310. What's this crucial tweak? I've been running it on a vanilla Arch install for about a year and haven't noticed much battery drain on standby (maybe a few % per day left sleeping?)
plainnoodles
·4 ปีที่แล้ว·discuss
I think it's reasonably fair to point out that, sure, while these people don't have the extra wealth as income, they did indeed grow wealthier, and significantly so. And generally we tax when things make money.

A couple points about common rebuttals:

"It's not liquid so it's hard for them to pay taxes on it" - we already tax illiquid things like property taxes and when people get income that's not cash, like having debt forgiven or being given a gift of stocks. And people who have debt forgiven or are given stocks as income frequently aren't as likely to have cash to simply pay the taxes when compared to these extremely wealthy owners of capital.

"it might go back down and then they paid taxes on something they couldn't realize" - this applies to property taxes too, fwiw. But also, we deal with similar issues already - if you sell a stock at a loss, you can use it to reduce your taxable income. There's workarounds here if we are at all willing to attempt to tackle this.

And it's worth noting that, sure, this might be taxed when they do eventually sell, but:

1. there is not always a when. You can do lots of interesting things with assets like this, such as borrow against them.

2. money now is worth more than money later. Letting people defer paying taxes on unrealized capital gains is VERY generous tax treatment.

It's also worth noting that this doesn't have to make life hard for John Smith, Dirt Farmer, who owns $5000 of SPY. Just do what we do for other common scenarios like this - for instance, not having to pay capital gains tax on your first $X of cap gains for your primary residence.
plainnoodles
·4 ปีที่แล้ว·discuss
Postfix is a special kind of hell though, in that getting a good setup requires wading though decades of legacy stuff and patching together a bunch of non-default stuff to get, for instance, dkim signing and stuff working right. I've done this before myself, and agree it was super annoying and not fun, but I also think it is potentially the biggest outlier in self-hosting difficulty I've encountered.

Lots of services are barely more than - apt install, systemctl enable --now, ufw allow 8080 (if you even firewall within your network).
plainnoodles
·4 ปีที่แล้ว·discuss
I agree it's overblown. It's amazing how robust of a setup (more than sufficient for residential use!) you can get with little effort given how easy things are nowadays.

I've been self-hosting a lot of load-bearing household stuff (I have stuff on the "wife-critical" path: if it goes down, "the internet goes down" and I get a text from her) for almost 10 years and I've only had 2 incidents of particular reputational-risk note:

1) a routine reboot of the main server triggered a BTRFS bug that blocked mounting it again. This took an evening and a reboot into an arch linux ISO to fix (arch had a new-enough version of the btrfs tools that had the ability to fsck/repair the fs).

2) my proxmox setup was initially installed with zfs and zfs-on-root. This exploded and the "on root" part stopped working one day. This was the most annoying thing to fix so far because I ended up dumping any interesting data to an external HDD and just re-paving the server, this time reinstalling with just ext4 and lvm (which is admittedly a setup I'm much more comfortable debugging). No issues since then.

Both these events are from over 3 years ago, so it's been smooth sailing in recent times.
plainnoodles
·4 ปีที่แล้ว·discuss
Python type hints are such a huge boon to the language.

I worked in what I would imagine was a pretty typical mature medium-size python codebase.

Typically, it was never too hard to figure out what a type was. Sometimes types were passed through several layers of functions and had the same short variable name through all of them - quite a few times I had to click around quite a bit to figure out what "f" was. Especially when I could infer it was some kind of file-ish thing but whether it was a file object, a string, or some composite type that held one of the two as a member, or what?! was sometimes difficult to determine, especially if the actual use of the parameter wasn't immediately obvious either.

When we updated to python 3, I started leaving type hints both in old code as I answered these questions for myself and new code as I created what otherwise would've been new questions for my future self. And I noticed two things happened:

* annoyance went down as I fixed the most well-trod of these problems

* I became less averse to using slightly more complicated types

I think python pushes you to keep things really simple and not use custom types unless really necessary. This is, overall, good? I do think Java developers, for instance (of which I consider myself one), generally reach to create datatypes that are basically just a simpler wrapper or a 2-tuple of collections or other primitives, and it can make the code a bit annoying to grok.

But the trouble is, in un-type-hinted python, I already start getting nervous about things like: [('2022-03-18', "something"), ('2022-03-19', "something else")]. And if your data content doesn't make it obvious (or at least somewhat guessable) what it is, it can make it hard to grok in a slightly worse way than the Java code would be.

In python 2 I'd usually make a namedtuple in these situations, but oftentimes I felt a bit weird there because I'd usually reach for it in lightweight situations when I feared they were becoming more complex.

But finally, in python 3, I feel like I'm generally happy with, in this order:

1. just use plain primitive types. no type hints. we all know what's in dates = ['2022-03-18'].

2. just use a type hint. I feel better about a Tuple[str, Dict[int, int]] if it's type hinted than not.

3. Use a namedtuple. This puts names onto the fields. so maybe my Tuple[str, Dict[int, int]] becomes a MyEntry(token: str, settings: Dict[int, int]) or something.

4. use a fully-fledged custom data type class.