HNHacker News
TopNewBestAskShowJobs

wayfinder

342 karma · joined October 4, 2019

submissionscomments
wayfinder··on Building end-to-end security for Messenger
I never said the keys are sent to any servers.

They keys are still generated and kept using software they wrote.

Second, they also control who they trade the keys between.

This is contrasted to some chat apps (which are painful asf to use) where you have to manually exchange keys, meaning you have to engage with the party you want to talk to and so you can confirm who you are really encrypting messages for. It’s physically impossible to be given the wrong person’s key because you personally had to get them.

wayfinder··on Building end-to-end security for Messenger
Note that most E2E encryption services still let the service read your messages. Apple, Facebook, etc. can still read your messages.

This is because encryption needs keys, but when you talk to your friend over these services, under no point did you personally exchange any keys. This means that you’ve decided to let the service generate and keep the keys for you.

It’s like getting a deposit box at the bank but instead of keeping your key, you give your key to the bank to keep.

What would stop the bank from opening your box would be its own ethics policy and the quality and depth of their internal processes. They are not physically prevented from bypassing them however.

It’s still a W with these rudimentary E2E chat implementations because your ISP and government might find it a lot more difficult to read but it’s not quite exactly super strong security.

wayfinder··on Forecasts need to have error bars
I disagree.

You only really need to take those sources of error into account if you want an absolute measure of error, which as you explain, seems pretty impossible.

An error for weather only needs to be relative -- for example, if the error for rain today is higher than yesterday, it's not important the exact number higher that it is -- only that it's higher. (Not that I know if this is possible.)

It's like how you can't describe how biased a certain news source is or how to read a Yelp or Rotten Tomatoes review -- you just have to read it often enough to get an intuitive sense that a 4.1 star Yelp-rated restaurant with 800 reviews is probably good while a 4.6 star restaurant with 5 reviews is quite possibly terrible.

wayfinder··on Spotify will reduce total headcount by approximately 17%
Umm, what? There’s been plenty of innovation…

The new cover videos bands can post on songs are ill. The changing of the like button to not be just for liked songs is great (usually, tho sometimes I wish it was two separate buttons). There’s constantly a bunch of new tools to find new music, some hitting better than others. The “listen with friends,” while still buggy asf, is a great feature.

5 years ago, Spotify updates were more like “we changed the colors and layout of the UI and that’s about it.”

It’s true though. They haven’t reinvented music completely.

wayfinder··on DIY Home EV Charger
Some of us on here don’t know just software engineering and nothing else

Congrats to OP on a clean project

source: electrical engineer who writes high performance software you’ve definitely have used

wayfinder··on HTML hacks that shaped the Internet
Tables semantically are meant to represent tabular data and using them for layout became “wrong.”

From a practical point of view too, if you wanted to make separate mobile and desktop views just by using different stylesheets, using a table made it very difficult.

(That said, in 2000, if you were using separate mobile and screen stylesheets, you were in an extreme minority because there were relatively few full HTML web browsers on mobile devices. Instead, most phones, if they could access the Internet, accessed a different version of the Internet accessed over WAP.)

wayfinder··on HTML hacks that shaped the Internet
Floats were ugly but once you did enough of them, you could nail it every time. It shouldn’t have taken months if you had an experienced team.

The only issue with floats was that there were a lot of edge cases that happened in only certain browsers, so you had to be careful. Lots of browser bugs.

Job security.

wayfinder··on HTML hacks that shaped the Internet
I used it and it almost progressively updated too often - like cell by cell, so it wasn’t very pretty. So you kind of had to know when to use it and when not to.
wayfinder··on HTML hacks that shaped the Internet
IE had a setting that forced tables to render progressively. They documented it on the Microsoft web dev site and also I’m reasonably sure in their “cool things you can do in IE5.5” book.
wayfinder··on Easy Stable Diffusion XL in your device, offline
If you want an absolute beast, especially for this stuff, you probably want Intel + Nvidia. Apple Silicon is a beast in power efficiency but a top of the line M3 does not come close to the top of the line Intel + Nvidia combo.
wayfinder··on Salad Fingers and the dawn of ‘weird YouTube’
Tbh this kind of sounds like that old man saying music in the 80s was the best and it’s never been good since.
wayfinder··on Telegram now has a recommendation system
It's because these smaller products don't make money and will eventually die unless they figure something out.

I don't buy anything from Telegram. I don't see any ads. Yet I use its API and chat for a price of $0. Something has to give.

wayfinder··on Rolls-Royce calls off bets on electric planes, says low-carbon fuel is future
It's not generating the energy -- it's storing it. Fossil fuels are massively more energy dense than our current electric batteries.

Fossil fuels are literally dead animals pressurized by Earth... all that energy went into the fuel. Planets work on massively larger scales of energy than human society right now and we're using stored energy created by planets to fly.

wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
I have to disagree.

It can't be that that design pattern because React did not invent it. Every server-side templating library is a pure functional transformation of application state. I can tell you that many people also ported that design pattern to JS.

What tripped library writers up is once they applied that pattern to JS, there is no way to actually define the transformation because to do that, you either write a template or the code-equivalent (i.e. using DOM as your data model). And that's where JSX came in.

Also, I think you have patterns completely confused.

Backbone is NOT in the same class as jQuery or React. Backbone is more like Redux, mobx, or React hooks because it's a data model library. In Backbone, you define "models" and "collections" -- basically, you use Backbone to store your application data in memory.

Backbone did have a views component to it but it actually could not generate any HTML. Look at this example from their docs:

  var Bookmark = Backbone.View.extend({
    template: _.template(...),
    render: function() {
      this.$el.html(this.template(this.model.attributes));
      return this;
    }
  });
It literally has jQuery and underscore.js! Backbone had no templating/HTML generation ability so when you used Backbone, you combined the fat Backbone classes with whatever horrific HTML-generation method you used to create a huge monster.

You can actually use Backbone.js with React since they are not in the same class. You would not, of course, because mobx is basically the same style of data modeling as Backbone.js but with almost no boilerplate.

wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
The implementation is new but as far as the UX goes, it's very similar to <script language="html" name="my-template"><!-- --></script>. That said, the UX is going to be slightly better for <template> simply because it's is an official standard and so IDEs and tooling will be more likely to support it without additional extensions or plugins.
wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
Yeah, you're right. I was kind of simplifying it. API-wise, it's more like document.createElement() but I didn't want to asterisk that because document.createElement() is actually a thing and I didn't want people to think it was a simple layer on top of document.createElement.
wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
Oh I'm aware, but I'm talking historically.

But HTTP/2 is not the right example. You're missing some things on the web timeline.

Long before HTTP/2 (time in web terms), and after React (and Angular, etc.) came about, people created actually-popular bundler toolchains that can bundle arbitrary files together and then incrementally load them as needed. This effectively fixed the multiple HTTP request problem long before HTTP/2 existed. Efficient template files have been possible for years. (Granted, not anything standard though.)

The issue right now is that someone has to make a full toolchain with strong developer support to make this a de-facto and popular way to distribute apps. Just because you have a bundler or HTTP/2 doesn't mean you have a nice way to make use of it. You need a nice library. Your usage examples need to look pretty. It needs to work with other toolchains. It needs to look like your library will be supported for a long time, just like how React was supported by Facebook.

You can't just write a blog post about how it's possible because you're basically asking your readers to invent and maintain a library or worse, roll their own internal library that will confound people at their company.

wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
Your criticism was the biggest one of React when it came out -- mixing view code with your controller code. Big no no. Everyone loved the MVC pattern (model-viewer-controller where you separate these things in different places) and what React did was a big no no.

But you know, if you are trying to put HTML templates in separate files, you have to now send extra HTTP requests. That's an even bigger no no.

In other languages, you can just put your template in a separate file and load it from your package/.jar/assembly. Super easy and most importantly, 100% standard and provided by the environment.

So people just settled with React because it worked and no successfully invented a standard bundle format for the web.

F' it we said.

wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
Not saying that you can't. I'm just explaining why React won and how it was blatantly obvious that it was going to win when it came out (that is, if you were there in the before-times).
wayfinder··on Web Components Eliminate JavaScript Framework Lock-In
As someone who does remember why because they've been building sites since the 90s, it's because the React team created a preprocessor (JSX) to let you embed HTML tags in JavaScript. This fixed the problem that other languages like Java, Python, etc. don't have because those languages has assemblies/packages so they can put HTML templates in separate files and load them in your app. There is zero standard way to do that in JS and every custom way you invent looks like trash.

Doing something like this.shadow.innerHTML = `your HTML` with web components is terrible. document.createElement() is terrible. $('div').appendChild() is terrible. <script language="html" name="my-template"><!-- --></script> is terrible. HTML(Div(Strong(text))) is terrible*. Storing templates as JSON and writing a one-off loader is terrible. <div style="display:none">template</div> is terrible. I've done it every possible way and they are all terrible.

JSX fixed all that.

The biggest previous attempt at something like JSX was E4X where you could embed XML straight into JS, which was kinda nice except it added the entirety of XML and its complexity. I creamed when it came out but then I tried it and it was not it. (E4X ended up surviving a little longer in Adobe Flash though.)

E4X: https://en.wikipedia.org/wiki/ECMAScript_for_XML

*This is what JSX compiles to behind the scenes.

wayfinder··on datetime.utcnow() is now deprecated
You do.

Python does not. It’s all one object and I think that was a terrible idea.

wayfinder··on datetime.utcnow() is now deprecated
For the classes of problems that you mention, I consider them as separate data types entirely and they shouldn’t ever touch your timezone-aware date-times objects. They should be stored as a composite types of your date, maybe time, and target timezone.

If you can mix timezone-aware objects with non-timezone aware objects like you do in Python, it’s get pretty dangerous because people will just mix them willy nilly and add and subtract the timezone-aware parts and then you get some really subtle date/time bugs.

That’s why I believe either a date-time MUST have a timezone and for other cases, you need a specialty data type for your domain, possibly provided by your date/time library.

wayfinder··on datetime.utcnow() is now deprecated
That’s not a date-time though. You would not store that using the same type-compatible objects as your regular date-times or that’s how you end up one day blowing up a Mars Orbiter.
wayfinder··on datetime.utcnow() is now deprecated
1. That isn’t date data. That’s just storing a local time.

2. That’s why you WANT time zones in this example. It will automatically stay at 10am instead of bouncing around when DST rules change.

I’ve never ever needed timezone-less dates. Even using UTC or timestamps, it’s still UTC.

A date without a time zone is like “10 inches” but without the inches so it’s just “10”. Absolutely meaningless. You start moving just “10” around without the units in your code and then your Mars Orbiter explodes.

wayfinder··on datetime.utcnow() is now deprecated
That’s not date data though. That’s just storing local time - 6 AM or 7 AM.
wayfinder··on HTML Web Components
React is not a framework.

It is a fancy HTML templating library first and foremost and you should use it when you need HTML templates, which means you that can use as little or as much of it as you want.

I’ve built mostly static pages with React loaded and embedded into parts of the page. The webpages would function without JavaScript enabled.

wayfinder··on The evolution of expert communities
I mean the things you listed aren’t going to generate a lot of discussion topics. You might make a general thread about x86 opcodes and it would run its course but you wouldn’t make a new thread for every opcode in x86 because you’d merc everyone with boredom.

Communities are for general discussion. If you desire a thorough look of all sorts of Asian (or Western) joinery, you’d specifically look for a book or website, maybe asking a forum for pointers, but the forum itself ain’t the place.

Plus at some point, because none of what you mentioned is new, it will eventually be discussed. Then death.

wayfinder··on The evolution of expert communities
The issue is that a lot of expert topics are stagnant. The community dies because the topic is already dead.

i.e. I follow woodworking but the communities are stale because there is rarely anything new. Woodworking is about old as a human topic can get. It’s just new memes now.

Hacker News is lively because the computer industry is brand spanking new plus HN also covers non-computer topics that are constantly changing.

I follow skateboarding and there’s always something new and always something to chat about.

wayfinder··on HTML First
Writing your code in a way that makes sense to someone else is a skill.

If someone writes the bonkers code in the article’s bad examples, I guarantee their “HTML-first” code will be just as bad.

wayfinder··on Wisconsin couple has old phones and nobody to buy them
I just checked eBay and a vintage Monopoly set sells every few days.
← PreviousPage 2 of 5Next →