HN user

drblast

3,630 karma

Email me at my hn username at gmail.com

Posts2
Comments584
View on HN

This idea has been around as long as the web, but you can't get momentum behind it.

A much better idea was a .kids domain where the content was vetted, and you could allow-list your child's device to that. Much easier than trying to migrate everyone over to specific TLDs, especially when that ship has sailed already. But that never got traction either.

Edit to add: I used to work on "family safety" software. Blocking bad content doesn't work - it's too difficult of a problem. Walled gardens do work, however. The fact that there's not a push for the equivalent of an Apple App Store for kids is probably evidence of ulterior motives on behalf of regulators.

I haven't tried this because I haven't played Magic in over 20 years, but I always thought it would be more fun if you had two draw decks where the second was only allowed to include basic lands.

Then in the draw phase you could choose which deck to draw from, eliminating the mana flood/drought possibility that ruins games.

Maybe some additional rules to limit how many lands you're allowed to draw in the initial draw to one or two, I dunno.

The value prop is the dissolution of your own ego.

We experience reality filtered through our senses and our own concept of "self," which is an incredibly limited view of the world. Imagine being able to see/experience a less filtered version of reality, if only for a short period of time.

Or imagine expanding the frequencies of visible light you can see. That alone could certainly be a catalyst to change your perspective on many things.

It's not so much "losing control" as it is "losing unconscious bias." Loss of control is not the goal.

It's also one of those things that you have to experience to understand, and even then, sober you won't completely understand.

But done right, these experiences can be incredibly important to people. If it's not for you, fine, but it's funny how many people with zero experience with these substances think there can't be anything worthwhile there.

It's interesting how everything is a balance abd experience and mastery count for a lot, but nobody acknowledges this in blog posts.

There is an appropriate amount of architecture and design that should go into systems. One aspect of that is how much effort you put into scalable design. Building and maintaining scalable systems isn't free, so the "right amount" is pretty much somewhere between "none" and "we are AWS."

Knowing when adding complexity is worth doing takes experience, humility, and maturity, the exact qualities that are sorely lacking in many egomaniac software developers.

It's why we get ridiculous fads and pendulum swings where people get fed up with bad design and then go do the opposite thing, having learned nothing.

Except sometimes you do fix it later.

Approve the PR when there's a bug/task filed to fix the thing later and then prioritize that work as necessary.

Just as bad as never fixing things later is never releasing anything until it's perfect, which it never is.

Imagine a star trek transporter was a real thing. In that show, I think the common explanation was that the transporter didn't send you places, but merely created a copy of you somewhere else and destroyed the original.

Now imagine if it were possible to instantly and cheaply travel to Paris this way. Many people would likely be just fine with doing this.

Now imagine that one day, the transporter doesn't destroy the original you and now two copies of you exist. From that moment on, the individual experiences diverge but each copy believes it's the original.

If ten days after that a technician came and said "ok, time to disintegrate you, don't worry, your copy in Paris is A-OK" I think that most people wouldn't agree to be disintegrated just because another mostly identical consciousness is alive.

And yet, if it were to happen flawlessly and instantaneously, likely that same existential fear doesn't exist. Most people think the star trek transporter is pretty cool.

But why? We have to realize that our consciousness is really an evolutionary trick that's expedient for our continued survival. The idea that the survival of my own ego and continuous conscious experience is pretty much the basest mechanism I have that makes me value staying alive.

But there's a paradox in the case of my exact copy. Logically, I shouldn't care of the star trek transporter works instantaneously or not. Let's say that it makes a copy that exists for twenty minutes before disintegrating me, but I have no way of knowing that and instead just sit in a room bored for twenty minutes until disintegration. Functionally that's a nearly identical experience to instant transport, but also seems a lot more like the broken transporter scenario.

But let's say this is the future of travel and everyone accepts the fact that my continued conscious experience is what's really important, so I'm willing to be disintegrated painlessly as long as a copy of me exists somewhere else in the universe.

That's not too big a leap to make, but it seems strange, right? Why am I not then just fine being disintegrated as long as any consciousness continues to exist?

My answer to that question is that it's an evolutionary advantage to want to live, therefore we want to live. A bit of circular reasoning. It's also our species' biggest unquestioned assumption too - that consciousness and self-awareness is better than the alternative. But "better" might just be "important to the survival of the human species."

I think the article touches on that.

Because it's a one-time cost and you can cheaply throw more CPU power at the problem, or just wait and then you're done.

If you're doing this at such a scale that encoding speed matters (like if you're Instagram) the major concern would likely be cost, which you're going to save in bandwidth every time an image is viewed.

Having had these experiences, the god I saw and became one with was a being with a childlike sense of wonder at the universe it had accidentally created.

More of a "whoops, woah cool" than a "let there be light"

Very much unlike of the Christian conception of God.

I'm not describing this well, because I can't describe it well. But I can't imagine anyone experiencing something similar would be a jerk about it. See the universe unfiltered though the mind's perception and it just...is. Timeless and meaningless.

Consciousness and ego create their own meaning.

It's a better design, imo.

Have you ever wanted to write a command line executable and gotten hung up on I/o and parameter parsing?

With PowerShell you can write a cmdlet in C# as a PowerShell module and have strongly typed input and output parameters for free. It's a revelation.

As as scripting language, it's fine but for me the killer feature is being able to easily extend it in a non-scripting language.

This is so true, at least from my late 70's perspective. Star Wars didn't seem so much like fantasy when I saw it in the theater - it was more like the inevitable conclusion of where tech was going, and probably in my lifetime we'd be a spacefaring species.

Before Challenger, space flight seemed to be on a constantly improving trend. And likely it is, just on a much longer timeline than we supposed as kids.

Tech is similar - the advancements in the 80s-2000s in the computer industry felt much more revolutionary. I think that had a much larger impact than anything that's happened since.

The next revolution will likely be elsewhere like medicine.

I used to have this problem with our triage call center in India. I'm in the U.S. It was like pulling teeth trying to get to the point. Most annoying were the delays between pleasantries... You've interrupted what I was doing three times and then ghosted.

Them: hi

Me: Hello, how can I help you?

[Two minute wait]

Them: How are you?

Me: Great, what do you need?

[Ten minutes later]

Them: Do you have a few minutes?

Me: Am I on candid camera or something?

Or do away with performance reviews entirely. In my entire career I've never once seen a review cycle that was a net positive, and more often than not they cause the best performers who normally don't care about such things to become disgruntled and leave.

As a manager they create perverse incentives especially if you have a high performing team (which you want to have) that all deserves a promotion but a limited budget. The incentive is to keep that low performer around so you have the budget to promote the others.

It's a systematized way for management to shoot itself in the foot. But for whatever reason we think something must be wrong if we're not giving and getting report cards at the end of the year. Waste of time and counter-productive.

I've been making homemade pizza. I make a few every few days.

It started out pretty bad, but now it's delicious and my kids get excited to eat it - they think it's the best crust ever.

It's not the recipe at all, either. The technique makes all the difference, at least for the dough.

This is good advice.

Also, Windows is an excellent way to learn systems programming because the documentation and tooling is so good and things hardly ever change.

There is a wealth of documentation on MSDN for writing device drivers and such. And great tools for remote debugging so you can set up a VM in hyper-v and step through the code from the host system.

Do make sure if you're analyzing malware you do it in a VM on a machine you don't care about having to wipe, and isolate it from the rest of your network.

Joining the military might be an option for you if you're not ideologically opposed to it. Try air force, then navy. Not marines or army.

If you're halfway intelligent with technical skills you will find something to do for four years, then you'll have better options when you get out.

Probably better than being homeless.

Most of the time I've seen dependency inversion "so we can test" the code is littered with hundreds of single-implementation interfaces and no mocks, or stub mocks that are written just to pass the tests. It doesn't actually test anything.

In the case where there are mocks, the unit tests are almost always literally testing "can my programming language call a function and return a result" or "can we store data in a database if the database works?" They are functional tests disguised as unit tests, and are testing only non-production fake functionality.

Write functional code instead. Liberally use the compiler and the type system to make mistakes impossible instead of unit testing.

Unit tests are for when you can't express something in a way where the compiler and type system will save you from errors.

Everything else is a functional or integration test and should be testing the production system, not a mockup of the production system that works differently.

Basically, write Haskell programs in whatever language you're working in. Use unit tests as a backstop for when the type system isn't as good as Haskell's.

The industry is cyclical and to be forward thinking all you have to do is describe what's already happened and assume it will happen again. ;-)

The things being done with JavaScript today are not new, nor is the idea that a server and client would coordinate to run interactive apps. That fundamental concept has been reimplemented in many different ways until we've landed on the current rube goldbergian monstrosity that are web apps.

It shows that the desire to have users interact with a service in particular ways will not go away. The technology used to do that is mostly irrelevant.

Yeah I think for Trump to win washington state, he'd have to do something to appeal to voters there in a way that would likely cause his red state base to abandon him.

The negative correlation makes sense when we think about how difficult it is for everyone in Washington to suddenly turn conservative and everyone in Mississippi to turn liberal. Much more likely is that the crazy thing is that the candidate or circumstances changed in some way.

It makes more sense if we ask...if a candidate wins NJ what is the chance they also won AK?

I think in many ways it's impossible to have this discussion with a U.S. audience.

The idea of force and violence being the solution to everything is deeply, deeply ingrained in U,S, culture. Simply suggesting that reason and cooperation can solve some of the problems we in the U.S. attempt to solve with more violence is usually met with the "starship troopers" ideology that violence is the actual source of legitimacy of all government.

And we do treat everything this way. We have a problem and declare war on it. War on drugs, war on poverty, war on obesity. That might sound like a tongue-in-cheek way to state a problem is serious, but consider that mindset an entire culture must have to make "war" be the perpetually used shorthand for the ultimate solution to every social problem.

And a large portion of the U.S. apparently has no concept of a social contract and a sense of cooperative action or "doing my part."

It's like violence and force is the only tool we have in the U.S. so every social ill is met with the further application of it, way beyond what is reasonable.

And it seems to be a one way trip. You can never suggest that we have gone too far. Apparently there can never be too many police, too much military spending, or too many people in prison. They only right answer is more of that, please.

We are teetering on the precipice of complete authoritarianism because of our culture and it's scary.

I'm pretty sure the exact layout is not guaranteed in this case, so while the above code may work in many cases it's not possible to represent all data structures like this, particularly if the bits are not byte or machine word aligned.

I don't think the standard even guarantees which bits in an integer the bitfields will be stored. That's important for network protocols.

I cannot agree with this more.

Come to the Midwest! Make half as much and live in a house that you can sell for half as much profit when you retire! Come for the flat outdoors with nothing to do, stay for the lack of ethnic and cultural diversity!

Half of the people in Seattle are Midwest refugees who came here despite not having a job lined up. It's laughable to think they'd move back for a salary cut despite cheaper housing. The financial incentive would have to be overwhelmingly positive so they could work in the Midwest for a few years then move somewhere better.

Except that you have to live in the Midwest, so no, it's not as good.

I like doing outdoor things in the mountains and the queer culture on the "left coast" that is anathema to more conservative areas of the country.

So no thank you, I'll keep my high salary, access to mountains, and ability to retire anywhere I like after I sell my ridiculously overpriced house to someone else.

Living in most of the U.S. sucks if you're not a cookie-cutter copy of the socially acceptable suburban family with 2.5 kids and a dog. It's not all about money.

I think dependency injection can have its uses, but the way I see it used in practice it looks like someone should file a bug on whatever programming language features are missing to make dependency injection necessary.

I think most code should be purely functional and unit tested that way, which means that the only dependencies are the input parameters. "Mock" dependencies used in unit tests are usually a unit-test circle jerk; most of the time you're essentially testing that your programming language can indeed make method calls through an interface and those tests are only there because you added DI in the first place. It's common to see all kinds of testing like this but nothing testing the actual functionality of the code because that's so obscured by DI or mocked out. It feels like you're implementing comprehensive testing but it's mostly just additional complexity obscuring the fact that you're not actually testing anything real.

The code that can't be functional? Sure, go ahead and knock yourself out with dependency injection and IOC. It's great for not having to pass configuration and logging instances around. But it's being abused when it's all over the place and you can't look at code and figure out what it does without also looking at configuration files and startup classes and knowing how the flavor-of-the-month DI framework works.