Hacker Newsnew | past | comments | ask | show | jobs | submit | more arm32's commentslogin

I encourage everybody to work with service workers to encounter the horror that can be service workers gone wrong.

Pro-tip: Use Serwist (https://serwist.pages.dev/), don't learn Workbox. Serwist has beautiful Vite integration for preloading app chunks from a build manifest. Learn all the different caching strategies. Consider dynamic caching strategies, eg. switching between two strategies for a specific cache via messaging throughout the lifetime of the app. Deep breaths. Have a service worker kill-switch in case things go wrong.


I encourage everybody to not use service workers so my computer doesn't waste resources.


Instructions unclear. Prefetching 8GB of media to a service worker cache on your browser. And you can't stop me! Muahahah


about:config -> service -> change everything

then hate the modern internet >:(


You should get off the React-powered web if you're worried about that...


This is what helps me sleep at night.


1. You spell Tram Case differently in multiple places. Some places it's one one, others it's two words.

2. You continuously fail to share comp ranges which is disrespectful to your candidates time.

3. You have an SSL warning when trying to visit your site https://tramcase.com.


God, I sure hope not. That guy sucked!


Rocket Alumni Solutions | https://rocketalumnisolutions.com | Technical Product Manager, Frontend Engineer | REMOTE (Crossover with EST timezone) | Full-time | $100k - $180k USD.

Rocket Alumni Solutions builds interactive recognition displays for schools, universities, and organizations. In 2025, we’ll surpass 1,400 touchscreen installations — profitable and scaling rapidly.

We're looking for a Technical Product Manager (description here: https://www.rocketalumnisolutions.com/hiring/technical-produ...)

Apply for Technical Product Manager: https://forms.gle/P32LiYfNLva8TsYt7

We're also looking for a Frontend Vue/TypeScript/Playwright Engineer (description here: https://forms.gle/QUvemqavKaZsmSE8A)

Apply for Frontend Engineer: https://forms.gle/QUvemqavKaZsmSE8A


So is this what founders do when they're bored with working on their product?


It's a product whose largest cohort is designers or design-minded people. Them focusing on that as part of the product itself feels like a perfectly good use of their time.


> It's a product whose largest cohort is designers or design-minded people.

Those people are not clamouring for another Arial.


No one said they were, I don't even think this font is available for use outside of are.na's product. This is about craft.

I think they said it pretty well themselves:

    With Areal, Dinamo designed an updated version of Arial especially suited for Are.na, but which still honors the original. Stem thicknesses were streamlined, more characters added (), a monospace version drawn, dark mode functionality optimized. You probably wouldn’t have noticed these changes if you hadn’t read this statement. It’s possible you still won’t. But to us (Are.na and Dinamo) Areal’s existence is satisfying in the way that rewriting an entire front-end is satisfying. As stated in this text block from 5 years ago, “the reason you would create something is because you love it enough to see it exist.”


And yet Arial Nova exists, as pointed out at https://news.ycombinator.com/item?id=45046490 .


A lot of designers I know look down with disgust at Arial so it was a weird choice...


Tbh it kinda feels like that legendary Pepsi BREATHTAKING Design Strategy from 2008

https://archive.org/details/breathtaking-design-strategy-pep...


Uh, ahem, <clears throat>, we meant the _other_ Selenium.


that's what i thought. :) personal life accomplishment was seeing wikipedia add a disambiguation link on the element's page. you know, because it's right up there in importance as the periodic table, obviously.


Ah, yes, the classic "Playwright isn't fast enough so we're reinventing Puppeteer" trope. I'd be lying if I haven't seen this done a few times already.

Now that I got my snarky remark out of the way:

Puppeteer uses CDP under the hood. Just use Puppeteer.


I've seen a team implement Go workers that would download the HTML from a target, then download some of the referenced JavaScript files, then run these JavaScript files in an embedded JavaScript engine so that they could consume less resources to get the specific things that they needed without using a full browser. It's like a browser homunculus! Of course, each new site would require custom code. This was for quant stuff. Quite cool!


This exact homunculus is actually supported in Node.JS by the `jsdom` library: https://www.npmjs.com/package/jsdom

I don't know how well it would work for that use-case, but I've used it before, for example, to write a web-crawler that could handle client-side rendering.


our use primary use-case with the AI stuff is not really scraping, we're mostly going after RPA


Is the case for playwright over puppeteer just in it's crossbrowser support?

We're currently using Cypress for some automated testing on a recent project and its extremely brittle. Considering moving to playwright or puppeteer but not sure if that will fix the brittleness.


In my experience Playwright provided a much more stable or reliable experience with multiple browser support and asynchronous operations (which is the entire point) over Puppeteer. ymmv


I would definitely recommend puppeteer if you can, it's maintained by the Chrome team and always does things the "approved way". The only reason we did playwright is because we're a python library and pyppeteer was abandoned.


Most of the Puppeteer team left and joined Playwright under Microsoft.


While that is the origin story of Playwright in 2020, that's no longer really true. Puppeteer is alive and well and arguably moving faster than Playwright these days because it's updated in lockstep with https://github.com/ChromeDevTools/devtools-frontend


Also recently found it unnecessarily difficult to do profiling of page workers using Playwright's CDPSession wrapper (and they don't seem to have any plans to improve it: https://github.com/microsoft/playwright/issues/22992#issueco...), whereas it was pretty painless in Puppeteer.

So, definitely more useful if you care about more than just your main thread.


I have converted several large E2E test suites from Cypress to Playwright, and I can vouch that it is the better option. Cypress seems to work well at first, but it is extremely legacy heavy, its API is convoluted and unintuitive, and stacks a bunch of libraries/frameworks together. In comparison, Playwright's API is much more intuitive, yes you must 'await' a lot, but it is a lot easier to handle side effects (e.g. making API calls), it can all just be promises.

It is also just really easy to write a performant test suite with Playwright, it is easy to parallelize, which is terrible in Cypress, almost intentionally so to sell their cloud products, which you do not need. The way Playwright works just feels more intuitive and stable to me.


Playwright also offers nice sugar like HTML test reports and trace viewing.


From my experience with Playwright RR-Web recordings are MUCH better than Playwright’s replay traces, so we usually just use those.


What's RR web?



That can be integrated with Playwright, or did you mean to say it is already used under the hood for their reports?


Gregor was saying it works without needing playwright, and provides more detailed trace recordings than playwright does.

we plan to use rr-web and maybe browsertrix for our website archival / replay system for deterministic evals.


They're all brittle in my experience but Playwright has a lovely test recorder and test runner which is also integrated into VSCode, and it tidies up a lot of the exceptions that would occur in puppeteer if the page state wasn't meticulously-ready for some operation.

Playwright's "trace" viewer is also fantastic providing periodic snapshots and performance debugging.


sir we are a python library, puppeteer-python was abandoned, how exactly do you propose we use puppeteer?


yeah, i continue to be amazed at how google dropped the ball on this one.


Playwright has Python bindings .


yes I know, I wrote the post


Have you considered just using Playwright? ;)


Wait, does playwright not use cdp? What does it do?!


arthur_fist.jpg


What's bad about not wanting to lose your job?


You are losing your job either way. Either AI will successfully take it, or as you no doubt read in the article yesterday, AI is the only thing propping up the economy, so the jobs will also be cut in the fallout if AI fails to deliver.


Except one is recoverable from, just as we eventually recovered from dotcom. The other is permanent and requires either government intervention in the form of UBI(good luck with that), or a significant amount of the population retraining for other careers and starting over, if that's even possible.

But yeah, you are correct in that no matter what, we're going to be left holding the bag.


Exactly. A slowdown in AI investment spending would have a short-term and tiny effect on the economy.

I'm not worried about the scenario in which AI replaces all jobs, that's impossible any time soon and it would probably be a good thing for the vast majority of people.

What I'm worried about is a scenario in which some people, possibly me, will have to switch from a highly-paid, highly comfortable and above-average-status jobs to jobs that are below avarage in wage, comfort and status.


There are plenty of places in the economy that could use that investment money productively


> Except one is recoverable from, just as we eventually recovered from dotcom.

"Dotcom" was never recovered. It, however, did pave the way for web browsers to gain rich APIs that allowed us to deliver what was historically installed desktop software on an on-demand delivery platform, which created new work. As that was starting to die out, the so-called smartphone just so happened to come along. That offered us the opportunity to do it all over again, except this time we were taking those on-demand applications and turning them back into installable software just like in the desktop era. And as that was starting to die out COVID hit and we started moving those installable mobile apps, which became less important when people we no longer on the go all the time, back to the web again. As that was starting to die out, then came ChatGPT and it offered work porting all those applications to AI platforms.

But if AI fails to deliver, there isn't an obvious next venue for us to rebuild the same programs all over yet again. Meta thought maybe VR was it, but we know how that turned out. More likely in that scenario we will continue using the web/mobile/AI apps that are already written henceforth. We don't really need the same applications running in other places anymore.

There is still room for niche applications here and there. The profession isn't apt to die a complete death. But without the massive effort to continually port everything from one platform to another, you don't need that many people.


The idea that AI is somehow responsible for a huge chunk of software development demand is ridiculous. The demand for software has a very diverse structure.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: