HN user

lhorie

9,880 karma
Posts43
Comments2,739
View on HN
github.com 3y ago

React monkeypatches fetch()

lhorie
3pts0
bugs.chromium.org 5y ago

Google Translate's usage of font tag for text replacement breaks React (2018)

lhorie
1pts0
gist.github.com 5y ago

Friday Fun: Svelte-like variable reactivity in 7LOC with with Proxy

lhorie
1pts0
james-forbes.com 6y ago

(React) Hooks and Streams

lhorie
4pts0
gist.github.com 6y ago

Write better tests with one neat trick

lhorie
1pts0
gist.github.com 7y ago

What's the longest keyword sequence in JavaScript?

lhorie
3pts0
www.axios.com 8y ago

Uber crash: software was tuned to react less to certain road objects

lhorie
1pts0
news.ycombinator.com 9y ago

Ask HN: What's the weirdest JavaScript source code you've seen?

lhorie
3pts3
github.com 9y ago

Optimizing dynamic JavaScript with inline caches

lhorie
29pts6
medium.com 9y ago

How to Win in Web Framework Benchmarks

lhorie
2pts0
blog.cgiffard.com 10y ago

On the importance of manually maintained isolation for unit tests written

lhorie
1pts0
lhorie.github.io 12y ago

Piggybacking requests in a widgety world

lhorie
3pts0
lhorie.github.io 12y ago

Getting over a fear of Turing complete templates

lhorie
1pts0
jsperf.com 12y ago

"Angular VS Knockout VS Ember VS React VS Mithril" JsPerf

lhorie
2pts0
lhorie.github.io 12y ago

Curry flavored promises

lhorie
28pts17
lhorie.github.io 12y ago

Better templates with FP

lhorie
2pts0
lhorie.github.io 12y ago

Building a "Seinfeld" app with Mithril.js

lhorie
2pts0
news.ycombinator.com 12y ago

Ask HN: Ideas on promoting an open source project?

lhorie
66pts29
lhorie.github.io 12y ago

Show HN: My new JavaScript MVC framework

lhorie
304pts159
lhorie.blogspot.ca 12y ago

Things that suck in AngularJS (a follow-up)

lhorie
4pts0
lhorie.blogspot.ca 12y ago

Things that suck in AngularJS

lhorie
2pts0
lhorie.blogspot.com 14y ago

Using jQuery custom events to organize code better

lhorie
3pts2
www.leangains.com 15y ago

Fasted Training Boosts Endurance and Muscle Glycogen

lhorie
2pts0
xkcd.com 15y ago

Does your website make this mistake?

lhorie
4pts0
github.com 16y ago

Def.js - Ruby-style inheritance for JavaScript

lhorie
3pts1
implicit.harvard.edu 16y ago

Project Implicit - feelings outside conscious awareness/control

lhorie
1pts1
www.microsoft.com 16y ago

Hotmail now allows changing email address

lhorie
1pts0
en.wikipedia.org 16y ago

List of important publications in computer science

lhorie
3pts0
sethgodin.typepad.com 16y ago

Don Quixote didn't ship

lhorie
3pts0
mindyourdecisions.com 16y ago

Why decision by committee often fails

lhorie
1pts0

(mithril.js author here)

As far as I can tell, the main difference is this uses proxies to trigger side effects as opposed to virtual dom diffing. Perf wise, I like that people are pushing the boundaries, but also obviously React is still very popular and that indicates that its level of performance is good enough for a lot of devs </shrug>.

In terms of features:

- This was already pointed out in another comment, Aberdeen doesn't seem to be JSX compatible, but it supports similar hyperscript-like syntax (e.g. $('div.foo:hi') vs m('.foo', 'hi'))

- Unclear what the level of support is for various features that exist in Mithril. e.g. Router appears to be an add-on/example, and I don't see anything about HTTP request utils or SVG/MathML. Mithril is meant to be sort of a one-stop shop for SPAs; it could just be that the focus of the two libraries is slightly different, and that's ok if that's the case.

- Mithril has hooks to access the raw DOM and uses RAF for batching, it's not clear to me how integration w/ other DOM-touching libs (e.g. dragula) would work here.

I like the idea of using proxies as a way of implementing reactivity in principle, and I even played around with that idea. IME, there were a couple of things that made it problematic w/ POJO models IMHO. The first is that proxies are not friendly to console.log debugging, and the second is that implementing reactivity in collections (Map/Set/Weak*) was getting a bit too complex for my minimalist tastes.

There's many pockets in Toronto with high density of Chinese commerce, the area around Steeles east of the IBM campus is one. Pacific Mall mentioned in the article is only one of the commercial centers in the area. There's also Metro Square a few blocks west, the T&T plaza next door, Skycity on Midland/Finch, and various other small plazas around the area, full of Chinese food goodness.

Uber has four office buildings in SF mission bay. One was never used, the other 3 were underutilized, so employees are going to be moved/consolidated into 2. These buildings also have street-front retail lease spaces, so presumably by having more people coming into the area, that increases foot traffic for those spaces as well.

Uber has several different APIs for users. A naive purist might think that's silly until you realize a rider is user, a driver is a user, a courier is a user, a restaurant owner is a user, a line cook is a user, a doctor's secretary is a user, a Uber employee is a user, a freight broker is a user, an advertising manager is a user... people can simultaneously be multiple types of users and have multiple profiles as a single type of user, and did I mention that you have to properly secure PII due to being in a high regulated industry? And that's just users.

Don't even get me started on anything money related :)

Adding my two cents of positivity:

I love seeing language projects that implement their own compiler backends. There really aren't enough of these around. Anything that helps bridge the knowledge gap between newbies and production grade compilers is a net positive in my books.

And extra brownie points for writing it in C. Think whatever about memory safety and language age but C code is abundantly explicit about what's going on with the code, which is something I really appreciate when approaching some new code to learn stuff.

I saw a video on YouTube recently from an independent content creator who went to look for these mythical sea nomads, and apparently what he found was that the idyllic scene of a remote tribe living off the land with highly refined but primitive fishing techniques was largely fabricated.

The locals were alegedly just going along with the westerner film makers, partly because in their eyes, participating in a mockumentary was an amusing opportunity that doesn't come along every day.

He then tried to get them to show him how they really fish, and it turns out they use modern gear like flippers and wet suits but also do incredibly dangerous things like breathing out of a tube connected to a machine on a small boat in the middle of the night.

The video doesn't get into the exact science, but it also looks like the fishing isn't sustainable either, as divers reported needing to progressively dive deeper/take bigger risks over time to find high yields.

Bun v1.0.0 3 years ago

JS has two top level grammars, one defaults to loose mode and the other defaults to strict mode, among other nuances.

Possibly the most devious nuance is whether the spec's appendix B applies, which affects whether html comment syntax is valid (yes, this is a thing). The html comment token can therefore be parsed either as a comment or as a series of operators depending on the grammar being used.

Effectively, this means it's possible to craft a program that does different things in CJS vs ESM mode.

Small update: It's definitely not extensions, it's giving the same result on two different devices (mobile and laptop). I've narrowed it down to there being something going on w/ being logged into specific accounts. On my work account, I get no results (and this is a query that used to return results under the exact same setup just last week). Trying on an old personal gmail account, I'm getting the UI localized to what seems to be mandarim for who knows what reason (I don't speak mandarim, and don't even use this account on a regular basis).

As for why this happens, I have no idea. I've had Google Maps completely black out on me and then eventually magically fix itself many months later.

As for reliability, I would probably have agreed if it was a "simple" system (which the original Google was). Today, I'm not so sure. I at least understand that Google today is made up of a large number of subsystems, and subsystem failures like the ones I'm experiencing (and bad search results as others have also reported) do in fact erode my trust in the product. "Your 99.9% is not my 99.9%" feels like an apt quote here.

I'm stumbling into this thread right after experiencing what appears to be a pretty catastrophic failure of Google's main product. As I write this, the search results for "Google stock" (among other queries) returns zero results ("Your search - google stock - did not match any documents").

I'm not really sure what to make out of these discussions about how X or Y Google engineering is, while the production service is broken for an end user like me.

That's a strange way to frame it. Every skill is useful in some context. As a parent, I think a more productive way to think about it is to ask whether teaching kids anything is in line with your values. For me, I'd prefer if my kids were well rounded from being exposed to many different things, so they can make informed decisions later in life. That means they have lego mindstorms, but if they say they like tennis or they spend time drawing sidescroller games and not twirling to nutcracker ballet videos, then so be it. For some parents, laser focusing on something might be considered preferable.

The core principle is the same. How permutations are selected, of course, affects the performance and usability of the system.

Uber's[0] implementation, for example, does some more sophisticated speculation than just picking up whatever is sitting on the queue at the time.

Queues come with quirks, e.g. small PRs can get "blocked" behind a giant monorepo-wide codemod, for example. Naturally, one needs to consider the ROI of implementing techniques against aberrant cases vs their overall impact.

[0] https://www.uber.com/blog/research/keeping-master-green-at-s...

Merge queues are, as the name implies, queues for pull requests/merges. They're kinda useless if your commit traffic is low (e.g. <10 per day), but become necessary once it grows past your daily CI time budget, roughly (which can happen on large monorepos).

As a very simple example, if your CI takes 10 minutes, your CI time budget is 6 merges per hour.

This is because if you merge two things in parallel without validating CI for the combined changes, your main branch could end up in a broken state.

Merge queues run CI for groups of PRs. If the group passes, all the PRs in the group land simultaneously. If it does not, the group is discarded while other group permutations are still running in parallel.

This way you can run more "sequential" CI validation runs than your CI time budget allows.

In our monorepo, we get a volume of 200-300 commits per day with CI SLO of 20 mins.

Without a queue, our best case scenario would be getting capped at ~72 commits per day before seeing regressions on main despite fully green CI (in real life, you'd see regressions a lot earlier though because throughput of PRs is spiky in nature)

That's exactly right. Uber self driving was burning through the tune of billions of dollars a year when covid reduced revenue by the tune of 70%. Not exactly sustainable w/ only a few billion dollars of cash on hand.

As terrible as a pedestrian death is, the reality is there's news about Tesla accidents and near-accidents on the news all the time and people still love the brand. Sometimes it's easy to forget that Uber/Amazon/M$/etc hating is not as widespread in the general population as it is among tech bros.

As for Otto, my understanding is Uber pivoted similarly on the freight side, with a partnership w/ Volvo Autonomous Solutions.

The backstory that seems to have been forgotten here is that self driving cars are still a money bleeding endeavor. It's why Uber sold its own self driving division and it's something Cruise has said in the past still needs to be figured out.

Uber has pivoted to doing partnerships with any self driving player that is looking for a customer base. Waymo doesn't have the tech nor the desire to figure out logistics to compete with Motional or Cartken in the delivery space, for example. None of these players can instantaneously ramp up to millions of vehicles on the road; they physically don't have enough hardware and the age of money burning for growth at all costs is behind us. I can't imagine Waymo has bigger utilization than Bolt, or even Alto.

The way I see it, Uber is more like McDonalds: "easy" to copy from conceptual perspective but also a globally recognizable brand with an undeniably strong customer acquisition arm.

Waymo still has a lot to prove to themselves in terms of ROI. Customer acquisition would be even more expenses on top of the already expensive tech, partnering with Uber to offload these costs to a proven customer acquisition player makes sense for them.

Big tech companies have entire departments dedicated to this sort of engineering, usually developer platform/experience/productivity, or other similar infra/platform orgs. I'm an author of an open source framework who got scouted to work at one (and I'm currently a staff eng).

IME, yes there's comparatively far more CRUD roles than platform roles. But bluntly speaking as someone who's been on both sides of the fence, platform roles are not for everyone. For these roles, there is a expectation of quality by very technical stakeholders and this creates some pressures and incentives that don't necessarily exist in orgs that cater to non-technical faceless stakeholders.

In practice, a big challenge is to avoid being someone who is "not hardcore enough" (i.e. incapable of implementing large scale reusability due to lack of ability, tendency to cave to timeline or other pressures, or distaste for "office politics") but also avoid being "too hardcore" and being constantly in the weeds chasing some cool clever idea that might not align w/ overall picture.

One thing that is often overlooked in open source projects with sizable communities is the amount of cat herding you need to do. People have all sorts of ideas for "features and improvements" and sometimes your job as a BDFL may be to say "no" to your most ardent supporters. This also happens a lot for staff level platform work.

(I'm a canadian citizen, born in South America)

My two cents is US people are the ones who have an unusual take on the word "America". Outside the US, it's not very idiomatic to call the country "America", or even "USA". "US" is more common (and in both Spanish and Portuguese, it's almost always called "Estados Unidos").

The term "american" is mainstream both in Canada and elsewhere. I imagine that's probably at least partly a function of "unitedstatesman" being too much of a mouthful. (BTW, if you think that's a ridiculous word, in portuguese "estadounidense" is an actual word, albeit with a connotation of being something a "woke" person might say).

In many parts of the world, it is taught that Oceania is the continent.

IMHO, saying that Australia is a continent comes with the problematic notion that its close-by neighbour New Zealand is not part of any continent, which would be weird given that even Bouvet island is assigned to a continent.

Oh, so you just object to the specific idiom I happened to use? Ok then. Just assume I meant to use one that doesn't trigger you but still conveys the intention I explained above. I believe I was crystal clear that I don't approve of the decision/actions that led to the various scandals and that I sympathize with the victims, and I'll reiterate that I'm cautioning specifically against falling prey to gell-mann amnesia and then ending up getting all worked up in dumb flaming arguments w/ randos online on stuff that is inconsequential to your life and off-topic here to boot.

If you want to insist on thinking that I'm trying to gaslight you or whatever, you're ignoring the forum guidelines ("assume good faith") to the detriment of your HN experience and that's your problem, not mine. I'm going to go touch some grass now, I hope you do too. Cheers.

I think your thought experiment differs from the original topic in few different ways.

For one, the person you were replying to isn't the CEO. A more accurate analogy might be drawing ethical conclusions about the accountant in the company that built the road that led to the accident (or one at the beer company or a weapons company if we want to be spicier)

And the other thing is your drunk driver analogy has a big serendipity aspect to it. The change of tune at Uber was very deliberate in response to the reputational damage its earlier iteration inflicted on itself. A more useful thought experiment might be one about an ex-con gangster turned community service volunteer.

I agree reprehensible occasions remain reprehensible no matter what, what I don't agree with is the notion of immutable morality (X person is always as moral as they were previously), ascribing morality of amorphous groups to individuals, and various other cognitive biases I see people committing in threads like this.

not about if Uber has changed

Shouldn't it be though? Even without getting into the weeds of Machiavellian ethics, I think if one can argue "you helped a high momentum company do X bad thing", then it's fair game to argue "you helped a high momentum company reach Y good outcome" as well. I don't mean to shit on the taxi industry when I bring them up, I mean that there are positive things Uber does today that are only feasible due to the sheer scale it achieved through the means it took to get there, and because even through its darkest periods, there were many insiders that sincerely wanted to do the right thing (and who eventually prevailed).

Is it "bad" if bad things happen from shaking things up and then good things materialize after that? As I said, I don't know to what extent the goods outweigh the bads or don't, but I'm trying to form strong opinions held weakly.

I mean, the latest earnings guidance was saying Uber was expecting to be GAAP profitable on an operating basis by the end of year (it already was profitable on an EBITDA basis for a while, and it was technically GAAP profitable on an overall basis in Q1 due to some equity appreciation). It's currently rolling out ads, which is known in the tech industry to be a high margin source of revenue, and if you google Uber in the news these days you'll see a plethora of other things coming to fruition that would simply never have happened under the taxi oligarchy.

I think latching on to the talking points from 8 years ago is not doing enough justice to how much Uber changed since then.

you helped destroy an established industry

The latest news on this is literally the opposite (Uber integrating w/ various taxi companies as their lead generation and dispatch provider)

FWIW, I've talked with a number of drivers over the years, and there's people using Uber as a flex source of income while some other pursuit hasn't gotten off the ground yet, people using it to supplement FTE income from elsewhere, people that made bank post pandemic, people doing it to be active in retirement, people who complain about platform issues, people that give it praise, and everything in between. I think if one is going to be outraged on behalf of drivers, it behooves them to try to understand how diverse the driver population is in the first place.

On a similar note, I think people often get hung up on some pet notion but fail to realize there's a lot of stuff going on that makes it hard to keep tally in an ethical bean counter. For example, there's efforts to support Ukraine[0], there's one about increasing women's workforce participation via government-subsided commutes in the middle east, there's the electric vehicle incentives, etc.

Do these offset some ideological notion of how the transportation industry ought to work? I don't know, but I think only looking at the ideology side isn't going to tell the whole story of what's happening on the ground.

[0] https://www.uber.com/newsroom/support-for-ukraine-2022/

That's a pretty uncharitable interpretation and goes to show you're just here to inject your own biases into stuff you read online and make strawman/ad hominem arguments to make you feel good about yourself.

Nobody is implying any of the scandals were fake, but there was one other comment in the thread wondering about whether superpumped is sensationalized, and these are my two cents wrt where the source material for that book / TV series comes from.

Nobody is implying anyone was lying either. Plenty of people were disgruntled because yeah hearing there's multiple cases of sexual harassment going on in your company sucks. Doesn't mean people are gonna go around lying about stuff, in fact a number of people built up the guts to come forward w/ their own horror stories after Fowler. But you are only going to hear those stories, not the ones about the board member that got kicked out for sexist remarks or the people that got fired after HR investigations, because those aren't outrage-bait. That's what I mean by taking it w/ grain of salt when consuming media.

Also, whatever damage there may be was already done years ago, so there's nothing to "damage control" at this point anymore. As GP implied, people tend to hold on to weak opinions strongly for stuff that frankly they don't even have any reason to be emotionally invested in, and I sure as hell am not interested in trying to "convince" you of anything.

What unpaid damage control? The shitstorms are well documented at this point. You forgot the security breach cover up, the espionage, and probably a bunch of other stuff.

What I "love" is people talking as if they are subject matter experts on shit they only read about in the news and have no first hand experience with. Gell-mann amnesia and all that.