HN user

plainnoodles

466 karma
Posts0
Comments66
View on HN
No posts found.

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".

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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 internalhostnamehere@myrealdomain.com) 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.

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.

Start Self Hosting 4 years ago

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).

Start Self Hosting 4 years ago

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.

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.

Part of it is just for fun. I like to collect the CDs. I like knowing the files I have are very faithful representations of the released media. And so on.

I really don't think it's hoarding - the overall data sizes here are small (relative to the fact that a 12TB WD Red is 250-300 dollars on amazon) and it's not like I spend my nights scouring ebay for this stuff. I just make sure I get best-available media while it's still widely and easily available.

Some of it is also that I just don't trust the current system to archive media. Sure, most popular things will be fine. But there's a lot of music that's not quite underground but also isn't popular and I wouldn't be surprised if it became hard to get ahold of the quality standards I have in 10-20 years.

Within the past few weeks, what with the JWST coming online and more radioastronomy happening than ever, and also economic inflation coming into the news for the first time in a while, this is unfortunately not the first time I've had to play "spacetime or finance?" with an inflation headline recently.

This is absurdly sad to me. I like to own my media (in the most practical sense that current IP laws let me do so). I run a Plex server and use PlexAmp as my primary way of listening to music, and my criteria are always this:

* FLAC or similar, I want this to be a lossless preservation of what was on the best-available source.

* No DRM. No mandated player. Just let me download a dang file.

* "Real" flac: this is technically already covered under the first bullet, but I call it out because I've seen it happen before: if I can open the flac in audacity and see it's obviously just a re-encode of a lossy format that clips the upper and lower frequency ranges off, that's a smell and I don't like it. (I know, most people can't tell etc, but this is less for listening purposes and more for archival purposes).

* Supports the artist!

Now, I'll admit, when push comes to shove, I drop the last bullet point first. So previously, my source for music was:

1. CD's (and I would follow What's guide for making Perfect Flacs)

2. What

But then what shut down and I lost my main music discovery mechanism. Enter bandcamp! Now I've been very happy with:

1. Bandcamp (I buy CDs because I like the artwork and they're cool).

2. CD's (+ Perfect Flac ripping guide still)

Now I'm not sure what to do. Epic has really soured me on their brand already, and I already boycott their launcher and any EGS exclusives. I guess I have to find some other way to get stuff now.

This is my experience as well. If you're just there to fulfill your credit hour obligations, you can squeak through managing to shield yourself from truly learning much of the language at all.

I think much of the value, though, is in the opportunity it affords people who find a passion in it. I really loved French in high school, and the combination of the support/resources it offered (a book, a teacher) and the regimen (I think French was either 3 or 5 times per week? I can't recall) was just right to let me learn as much as I wanted to, and also enough regimen to keep me coming back to it even if I wouldn't have otherwise necessarily felt like it if left to my own devices.

I took 5 years of french in high school and really loved it, so I leaned into it heavily and read novels in French, etc. I felt pretty confident in my vocab and grammar, and I even had a decent time reading some of the Old French stuff from classic novels (I disliked my English teacher and loved French, and since English class at that point is less about the language and more about literary analysis, I asked if I could read the books (where the original was in French) in their native language, and she could hardly refuse such a reasonable and intellectually curious request! So anyway I read Madame Bovary and L'Etranger and a few other older books whose titles escape me).

And on the more modern side, I could read French newspapers quite well too.

But at no point could I ever reliably make out more than the gist of what an actual French speaker, speaking normally, said. We have two Belgian exchange students and I struggled to understand them, and just watching French video content, similar struggles there.

I don't know if it's like this for every language where native speakers just talk really fast and there's a large gulf in comprehension speed for learners to close, or if it's something specific to French, but I know your pain here.

Unfortunately, the stock market also has no real distinction between what a long or short run is :\.

"The market can remain irrational longer than your can remain solvent" is the relevant platitude.

I worked in prop trading for half a decade and the number of really catchy, pithy sayings they have NEVER ceased to amuse me. My firm was very much on the "voting machine" time horizon so at that time granularity all the notions of company value mostly end up being 0 effect and everything is totally dominated by statistics, but that never stopped us from all joking about these catch-phrases and nodding sagely (as the computers do all the work of actually trading the stocks).

Aren't electrons about 3 orders of magnitude smaller than a sub-atomic particles like protons? And I can't find an estimate of the diameter of a neutrino easily from google (do we even have one?), but it seems like neutrinos are even smaller still. And I think we still have a lot to discover in this area.

So maybe it's more like, about 40-50 orders of magnitude, but potentially much more as we explore the "extremely tiny" portion of the scale?