HN user

maxaf

2,210 karma
Posts5
Comments466
View on HN

I view LLMs as a trade of competence plus quality against time. Sure, I’d love to err on the side of pure craft and keep honing my skill every chance I get. But can I afford to do so? Increasingly, the answer is “no”: I have precious little time to perform each task at work, and there’s almost no time left for side projects at home. I’ll use every trick in the book to keep making progress. The alternative - pure as it would be - would sacrifice the perfectly good at the altar of perfection.

We frame hybrid as RTO because hybrid is usually mandatory rather than flexible, and implies having to live in some wretched metro area close to an office. I want to live someplace where offices do not exist, which means hybrid is a non-starter for me.

Mandatory hybrid == RTO, but optional hybrid - a combination of hybrid for those who live near an office and remote for those who don’t - can please both camps without drawing battle lines between them.

You're right: there are at least some good reasons for packaging to exist. So, I'm going to rephrase my original question:

Why does every little thing come in packaging that is not directly reusable without further investment of time/energy?

For example, I ordered a USB hard drive a couple of weeks ago. It arrived packaged in:

* An unmarked cardboard box. Why wasn't I required to return this box for reuse? It should be a Pelican-style container that is used to deliver a shipment, and immediately returned for reuse.

* An thinner marked cardboard box advertising the device's features and specs. Why was this necessary? I already know what I ordered: I don't need to be further convinced that this is in fact the right thing.

* A set of plastic bumpers inside the marked box. I get it: these hold the relatively gentle device in place while it's shipped. The bumpers are clearly intended for only a single use: they're shaped to fit only the particular device I bought. Why haven't we developed reusable dampeners that can fit a variety of products and used repeatedly?

* A plastic bag inside the box, with the device inside it. Why?!

There are ways to build reusable substitutes for all of the single-use packaging implements we're accustomed to. Of course, these are more expensive. Insert generic rant on capitalism externalizing its costs to everyone.

Recycling is the wrong, least efficient, laziest solution to the problem of packaging. Why does every little thing need to come packaged in its own cocoon of plastic or paper? Beats me. Consumers have become lazy: they expect purchasing and consuming to be the extent of their participation in the long supply chain through which our goods travel. This tends to externalize the environmental costs of consumption to all of us. Recycling would be unnecessary if consumers were held accountable for properly obtaining and reusing materials.

Our laziness will kill us all: mark my words.

You should at least test drive it under controlled conditions [...]

Who cares what the car does under controlled conditions? I'm sure the manufacturer did exactly that in their testing. Even when they test on public roads, there's a hands-off safety driver behind the wheel, who is paid to be on the lookout and sufficiently alert to take over in case of an unexpected excursion. (Unless the self-driving car under test is from Uber, in which case the safety driver simply watches video on their phone. Too soon?)

This is nowhere near how these cars are used in the real world. The real world is not a set of "controlled conditions", so any comfort one builds up in such a situation is merely a false sense of security.

[...] where you feel comfortable before closing yourself off completely.

So, here's the thing: I'm comfortable driving myself. I don't get distracted, I use good judgment, I consistently prioritize the safety of my vehicle's occupants over everything else. I know exactly how flawed self-driving cars are, and how far behind the curve of my driving skill they will remain within my lifespan. That's the sum total of everything I need to know, and no amount of "controlled conditions" demos will change my mind.

P.S.: If you're from the future and you're reading this because I got mowed down by a self-driving car: ha ha! Joke's on me.

Doxxing and stalkers and other abuse. Postings dredged up from years (and, eventually, decades) ago which can destroy careers. Phishing attacks that rely on knowing things about a person from their social media profiles.

I can go on all day, but the most persuasive voice is your own. Imagine yourself posting your address, full legal name, social security number and bank account numbers right here, right now. What are some considerations that would prevent you from doing this? Would you attach the same information to political activism? What if the tables were to turn in the future, leaving you on the wrong side of history and consequently out of a job?

Your “outcast” assertion is unsupported by facts. It turns out that not everything happens on social media. Within a group of friends even a single person who isn’t on Twitter/Snapchat/TikTok/etc tends to pull the entire group’s narrative away from those platforms and into the domain of a more private tool, such as iMessage or WhatsApp. Within the Gen Z cohort the understanding is crystallizing that social media is toxic, addictive, and leads to nothing but bleak and depressing thoughts. This commonly understood truth enables people like my kid to act as an anchor that keeps numerous others on solid ground and away from the jaws of “big social tech”.

And thank you for the “serial killer” comment: I’ll take it as a compliment.

This article does a great job of articulating the principles of identity which I’ve been teaching to my daughter ever since she’s been old enough to understand what a Twitter account is. Even though social media is banned in our household, I’ve laid out a few ground rules that must remain sacrosanct for the sake of basic safety.

1. Your “real” identity - the one to which your “real” phone number and Social Security number are linked - is for banking, buying a house, trading stocks, paying utility bills, e-commerce, car registration, life insurance, and so on.

2. Never do or say anything online that would reveal your “real” identity in any way. There’s a surprisingly broad spectrum of activities which might reveal your identity. Don’t take selfies next to your (or my) car. Don’t take selfies next to home. Better yet, don’t take selfies at all. Don’t geotag anything. Don’t “check into” places. Don’t mention your first name. Don’t be telling anyone about your real birthday. Build an impenetrable firewall between “the internet” and your “real identity”, and keep it in good repair.

3. All identities other than the “real” one are throwaway. Use a different e-mail address, phone number, and name for each website. Never use the same pseudonym more than once.

4. Don’t tell your real-life friends anything about your “other” identities. Don’t use social media under your “real” identity. This way, the two can never be linked.

5. Don’t be afraid to periodically “pull a _why” on your pseudonymous identities. The forest of “yous” will grow thick and lush, and will need a preventive burn every now and again in order to avoid an uncontrollable conflagration later. Delete what you can; abandon what you can’t. Move on and move up.

6. If you ever feel compelled to make an exception to the rule, come talk to me before you make the decision. Chances are that I’ll be able to hear you out and make a convincing case against breaking rules 1-5.

Ever since I’ve come up with these ground rules, I’ve slowly wound down my own social media presence. I have set up an alter ego under which I’m conducting my open source and other online activities. When asked why I don’t use my “real name” GitHub for anything but work, I say that this is my way of keeping things separate for the sake of sanity and safety. People nod their understanding, but they don’t really get it, and that’s okay. They can’t possibly get to know every side of me.

I’m not buying your reasoning. Try putting a WKWebView into a SwiftUI view. This kind of thing is all sorts of messed up when multiple rendering systems - two of them declarative (SwiftUI and HTML) - collide in a single view. I’m sure someone’s going to call this a corner case, but useful and interesting apps that push the boundaries of the feasible are all composed of such “corner cases”. And hey, I’m not even doing anything outlandish: just trying to show some HTML.

I should’ve known that it’s turtles all the way down. Considering how many years I’ve sunk into programming for other platforms, this shouldn’t have come as a surprise, but I got suckered into believing that mobile computing platforms represented a significant enough paradigm shift to allow for starting with a cleaner slate.

Not true! Having gotten into iOS development over the past couple of years, I’ve come to realize that seemingly no attempt has been made to actually clear the cobwebs on this shiny, relatively new platform.

For example, SwiftUI is just an abstraction layer for UIKit, which itself is (keep me honest, HN) an abstraction for some mishmash of Cocoa, Display PostScript and Metal. Bits of NeXTSTEP are everywhere still, even when using Apple’s latest and greatest programming paradigms.

Don’t get me wrong, iOS is great, and I love it to death. However, the baggage signals to me that a massive opportunity to start anew has been missed.

That’s how Twitter started for me too, but after a while degenerated to become the toxic mess which finally drove me away. My experience goes to show that people change over time: some, whose influence I formerly found enlightening, reverted to behavior that made me angry and unhappy. Soon others followed suit. Eventually signal was drowned in noise, so I quit.

There’s “pair tennis” (I know nothing about tennis, so apologies if that’s not what it’s called) which seems to flow alright, but tennis is a much more tightly constrained activity than programming. There are only a few actions each player appears to perform, with all other actions explicitly falling out of bounds set by rules of the game.

Chess is a much wider problem domain. I can’t imagine anyone playing pair chess.

Half of engineers prefer to work at a company that does pair programming

Well, I’m glad that it’s only half. Isn’t that neat?

I wish this meme of “company that does pair programming” would die a slow and agonizing death. Not everyone’s brain is wired for pair programming. I do plenty of presenting at work, where I share my screen and write code, Twitch-style, for an audience of coworkers. I do this in order to convey material to a captive audience, not as a baseline method of doing work. “Teaching” and “programming” are two non-overlapping activities for me, as the communications aspect tends to overtake most of my mental capacity, leaving only a precious few cycles for problem solving and creativity.

Any company that considers itself special enough to change how people work is not only delusional, but will also burn through good people who are neurologically different from the type that enjoys pair programming.

In short, flexibility is the name of the game.

There’s power in negative space. People will maintain meatspace connections that won’t be mirrored online, which will create a sense of mystique and intrigue. People who aren’t immediately connected to off lines IRL will seek them out in a kind of pilgrimage.

I won’t even mention the anecdata from my own workplace. I’ll only say that within my extended network people are frantically rewriting Scala bits in other languages. Those who are stuck with it (because of, say, extensive prior investment into Spark) are scrambling to come up with alternate solutions.

Put your ear to the ground, and you too will hear it.

When I gave up on Scala in 2016, I did so because its future looked fragmented and uncertain. Fast forward more than three years, and the first release of Scala 3 won’t be out until another year from now. Compare this with the pace of development of Go or Rust: those languages are driven by a vision, and have a dedicated team behind them. Scala is declining because no one could figure out for the longest time what was next and how to work on it.

It’s too bad, as Scala did the most of any language to bring me into the fold of statically typed programming. I miss it sometimes, but then I remember all the times Scala wasted my time, and get back to writing Go like a happy little camper.

I verify the data with LinkedIn profiles

Lost me right there. Good luck with that. LinkedIn is notoriously a garbage dump of spam, recruiters and fake profiles. That’s on top of the fact that most people (myself included) don’t have a LinkedIn profile to begin with in order to curb spam.

I work remotely full time. Recently I’ve been running Twitch-like live programming sessions with an audience of coworkers. They get to see my workflow and interact with me as I build something from nothing. These sessions have become quite popular, and accomplish the sort of learning you describe without any of the pitfalls.

Perhaps one day I may become a Twitch celebrity due to my live programming prowess. What say you, chat?

Learning in a physical office seems easier for the person being taught because it's accomplished at the expense of a priority interrupt on the part of the person doing the teaching. You hit a snag in your work, you get up, walk to my desk, and tap me on the shoulder. I help you out, then return to pick up the pieces of my concentration.

When working remotely, you hit a snag, put a "@here anyone available to help me out with XYZ?" message in Slack, and do some stretches by your computer, wherever that may be. Eventually, someone surfaces from their zone, sees your cry for help, and gets you unstuck. No one need suffer.