HNHacker News
TopNewBestAskShowJobs

metafunctor

4,835 karma · joined July 21, 2009

I’m a software entrepreneur.
submissionscomments
metafunctor··on Printf(“%s %s”, dependency, injection)
I really like how Standard ML handles this with functors [1] (hence my nickname).

In SML, a piece of code depends on interfaces, and exposes an interface of it's own. Functors bind together pieces of code with appropriately matching interfaces.

[1]: https://smlhelp.github.io/book/concepts/functors.html

metafunctor··on Apple silently fixes iOS zero-day, asks bug reporter to keep quiet
Because not everyone has updated yet, not everything related to the vulnerability is fixed yet, the vulnerability is kind of bullshit, people are still figuring out if there are lots of adjacent or similar vulnerabilities to handle, etc. Not sure which of these is the case here.

You can, of course, disclose vulnerabilities whenever you like. But don't expect to get a bounty if you piss off the vendor in the process.

metafunctor··on My first year at Magic Leap and the opportunity ahead
No, that does not exist as of today.

If you can settle for VR, you might be happy with Immersed and Vive Focus 3.

There are no AR headsets today that would be remotely useful for day-to-day work, let alone with any kind of passable software support. Stuff from Varjo (like the XR-3) is getting there, but it's not there yet.

metafunctor··on The pitfalls of using SSH-agent, or how to use an agent safely
No need to wrap the binary for that, just something like this in ~/.ssh/config:

  Host *.foobar.com
    IdentityAgent ~/.ssh-agent-for-foobar.ssh
Of course, you still need to run a separate agent for each security domain you wish to keep separate.
metafunctor··on The pitfalls of using SSH-agent, or how to use an agent safely
Yep, or put this in your ~/.ssh/config

  AddKeysToAgent confirm
metafunctor··on The pitfalls of using SSH-agent, or how to use an agent safely
There's also this to use a key in the Secure Enclave and Touch ID to confirm authentication: https://github.com/sekey/sekey
metafunctor··on OWASP Top 10 2021
We put together an HTTPS MITM proxy so we can log and filter also HTTP methods and URLs (or even content) for egress access from our infrastructure. An HTTP connect proxy only sees host names and the IPs they resolve to.

It not easy to prevent data exfiltration if you allow connections to, say, S3 and the attacker can just send arbitrary data to their personal bucket.

metafunctor··on Monitoring my home's air quality with AirGradient's DIY sensor
Over here in Finland, nobody has returns in each room. It's a cold climate, so houses are heavily insulated, and moisture condensation is a concern during the winters.

We typically have returns in toilets, showers, etc. with one or more supply vents in each room; a large room may have several. Air flows in via supply vents, flows out under mandatory gaps in doors (if closed), through to the toilets and then outside. Moisture, CO2, and smells are constantly flushed in the right direction.

When the hood is on for cooking, air supply is typically enhanced so it doesn't mess up the overall pressure too much.

Incoming air is filtered, of course. The ventilation unit transfers heat from outgoing air to the incoming air to save energy and avoid problems with condensation.

In my home office, TVOC as measured by an Eve Room rarely goes above 100 (mostly happens when I pour an occasional whisky in the evening).

Old houses don't have ventilation machines at all, but rely on natural ventilation instead: warmer air flows upwards via chimneys and such due to gravity, pulling in fresh air from whatever gaps the structure has (accidental or purpose-built).

metafunctor··on Work Hard (2007)
600 line bash scripts are not always necessary for new companies to make it. Sometimes, sure. Often, even, on the way to understand what is actually needed.

Many new companies spend too much time perfecting the wrong thing.

But messy code is NOT a requirement to make it.

Messy code, in and of itself, does not help.

Messy code might be a sort of inevitable step on the path to product/market fit. However, it is most certainly not a goal, and dealing with messy code is not a luxury. It is more likely a sign that the early tech people weren't very good.

metafunctor··on My £4 a month server can handle 4.2M requests a day
If you shake the cursor up and down, it doesn't grow.

Looks like it's measuring something like number of direction changes in relation to distance traveled; ignoring the y axis completely.

metafunctor··on Work Hard (2007)
What perverted sense of luxury is this?

There is no shortage of software jobs. There are plenty of opportunities to work with a relatively clean codebase, capable and experiences colleagues, unencumbered by the VC runway bullshit.

metafunctor··on Swiping left on magnetic stripes
My MasterCard even has the raised numbers, and an unfilled spot for my signature. I remember a long time ago, some places still used a manual contraption to impress the digits on carbon copy paper. I wonder why they've retained that unused ability for decades.

Not that it matters much. I've made payments with almost 100% Apple Pay for years — a lot of the time I don't even carry the physical card with me.

metafunctor··on Nokia 9000 Communicator was launched 25 years ago
Functional software is, I believe, what you would be missing. It’s amazingly rare (and I’m not trying to make the point that current incumbents always have great software).
metafunctor··on How to prevent email spoofing, using an unholy combination of silly standards
How does it work?

Based on a cursory inspection, it looks like UniversalSPF makes use of a custom DNS server and the the %{i} and %{o} macros for SPF.

Before this, I wasn't even aware that SPF had macros!

metafunctor··on The difference between a=a+b and a+=b in Python
Yep. The IDE could resolve types (with the help of the compiler, perhaps), and tell you what the code you wrote actually does.
metafunctor··on The difference between a=a+b and a+=b in Python
Only if you know what + happens to mean.

Which, it turns out, you sometimes don't. It's especially bad when you think you know what it means, but you're mistaken.

I was kind of joking, of course, but only kind of. I'm a happy user of operator overloading.

metafunctor··on The difference between a=a+b and a+=b in Python
Operator overloading, what a great idea?
metafunctor··on Scientist says cleaning indoor air could make us healthier and smarter
Sure, “torque” wasn't appropriate terminology.

EVs, as a rule of thumb, accelerate more quickly, because it's so easy. Just press the pedal. No noise, no fuss, no revving the engine, it just goes.

Acceleration is pretty much the equivalent of tire wear. That's what I was thinking about.

metafunctor··on Scientist says cleaning indoor air could make us healthier and smarter
Many electric cars use the motors for regenerative braking instead of the actual breaks. I also have no sources at hand, but I believe brake dust is greatly reduced with electric cars.

Tire wear, well, from what I can tell electric cars seem to chew through tires more quickly due to the weight of the vehicles and the high torque. No sources at hand for this, either…

metafunctor··on Ask HN: Who is hiring? (August 2021)
Zefort | zefort.com | Software Engineer, Backend, Fullstack | REMOTE (Finland timezone) | Full-Time

Zefort is building a SaaS to manage contractual and other documents and files for organizations of all sizes. We've been on the market for a few years, no VC, recurring revenue growing organically at a nice rate.

Our tech stack includes things like Django, React, PostgreSQL, Celery, ElasticSearch, PyTorch, Ubuntu, and Ansible.

We're looking for a senior software engineer to grow our small (~10 people) and experienced product team.

We value things like good architecture and interface design, automation, low ego, smart communication and priorization, attention to detail, a good work-life balance, and fun.

Our HQ office is in Turku, Finland, but these days it's mostly empty.

More info here: https://zefort.com/join/

Contact ville@zefort.com.

metafunctor··on IPv4 pricing
Indeed, just got that email 30 minutes ago. Apologies for any misinformation I may have pushed elsewhere in this thread.

Still, it sucks to pay €1.00/mo for an IPv4 address I don’t want or use.

Also, they should update the marketing site to clearly show the impending price change.

Edit: they’ve updated the website.

metafunctor··on IPv4 pricing
Hmm, I can still create a CX11 server for €2.49. Maybe they are slowly rolling this change out?

Edit: I’ve now received an email about the price update, and the marketing site pricing has been updated.

metafunctor··on IPv4 pricing
You can; Hetzner Cloud has private networks.
metafunctor··on IPv4 pricing
Yep, floating IPs are additional. One IPv4 address is still included (and non-optional) in, say, a CX11 cloud server.
metafunctor··on IPv4 pricing
Yep. A “dedicated root server”, though, is dedicated hardware. They start at about 30-40 €/mo. TFA does not mention cloud servers (virtual machines) at all.

Virtual machines from Hetzner, however, always come with an IPv4 address. For security reasons, I’d much prefer to get them without one (I disable the interface and firewall it 100% anyway), but it’s not an option to get a virtual machine without the public IPv4 address. One would think they’d provide that option if they are already hitting commercial limits with the IPv4 address space.

metafunctor··on IPv4 pricing
Meanwhile, you cannot get a €2.49/mo virtual server from Hetzner without an IPv4 address…
metafunctor··on New Aspects Related to Plant Processing Revealed at Çatalhöyük
That seems to be just how Safari works. I have an ad blocker installed, see no ads on the page, but the reader view button is replaced with an “Aa” button after a few seconds.

Tap the “Aa” button to reveal a menu with “Show Reader View”.

metafunctor··on Cancer risks increase with alcohol use, leading to over 740k cases last year
Assuming one unit (10ml) stays in your system for one hour, a full bottle of wine per day would be 9 hours (a bit over 1/3 of the time). Two 175ml glasses of 12% wine would then be about 4 hours.
metafunctor··on Increasing HTTPS Adoption
Strongly disagree.

You can choose to run Pi-holes, Plex, and all that crap in your intranet and pretend you don’t need a CA. It’s not that hard to set up.

Either learn how shit works or don’t do it.

To be clear, I’m still talking about a scenario where you are running a company and process data for your customers. Hobbies are different.

metafunctor··on Increasing HTTPS Adoption
If you have servers in your intranet, but don’t have enough expertise to install a CA server and a CA certificate on end-users’ machines, maybe move to a cloud based solution instead of hosting your own.
← PreviousPage 5 of 25Next →