<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Hacker News: hashseed</title><link>https://news.ycombinator.com/user?id=hashseed</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sat, 09 May 2026 03:10:09 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=hashseed" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by hashseed in "Google Chrome silently installs a 4 GB AI model on your device without consent"]]></title><description><![CDATA[
<p>DevTools uses a server side model, and only after you opt in with explicit consent.</p>
]]></description><pubDate>Tue, 05 May 2026 21:32:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=48028893</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=48028893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48028893</guid></item><item><title><![CDATA[New comment by hashseed in "ChatGPT Atlas"]]></title><description><![CDATA[
<p>Navigate to a page, right click > inspect, open the What's New panel in DevTools.</p>
]]></description><pubDate>Wed, 22 Oct 2025 21:30:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=45675428</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=45675428</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45675428</guid></item><item><title><![CDATA[New comment by hashseed in "Ask HN: LLM for Browser Inspector/DevTools/DOM?"]]></title><description><![CDATA[
<p><a href="https://developer.chrome.com/docs/devtools/ai-assistance" rel="nofollow">https://developer.chrome.com/docs/devtools/ai-assistance</a></p>
]]></description><pubDate>Fri, 04 Jul 2025 19:46:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=44467324</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=44467324</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44467324</guid></item><item><title><![CDATA[New comment by hashseed in "There's Math.random(), and then there's Math.random() (2015)"]]></title><description><![CDATA[
<p>Hi. I'm the V8 engineer who implemented the fix and wrote the blog post.<p>The reason the initial bug report [0] was marked as WAI but the Medium blog post got a lot more traction is very simple and much more human.<p>When the initial issue was filed to the chromium bug tracker, it was routed to Chrome's security team. From a security perspective, Math.random() provides no guarantees about cryptographic safety, so naturally it was marked as WAI – nobody from the V8 team actually saw this issue. One of the suggestions "3. Make crypto.random(size)" was acted upon though, and so crypto.getRandomValues() was introduced in Chrome 11, about 10 months after the issue report. In terms of specifying and introducing new Web APIs, this was incredibly fast.<p>After the Medium blog post was published, someone filed an issue directly to the V8 project. It did not question the spec compliance, but pointed out that the PRNG quality could be better. That nerd-sniped me into researching this topic and after reading a few papers, I implemented the fix with xorshift128+. I'm thankful that my team lead allowed me to set aside some time to work on this even though it was not on our project roadmap.<p>Performance regressions that could affect our benchmark performance was of course part of the consideration, but there were many options to avoid a performance regression. In V8, crossing the boundary between machine code compiled from JS to C++ runtime builtins is fairly expensive. I could have either ported xorshift128+ to assembly so that this boundary crossing was not necessary, or I could have amortized the boundary crossing cost by buffering multiple random values. I chose the latter because porting to assembly is error prone and I would have to do this for each platform. There are better options in V8 nowadays, by expressing the algorithm in an intermediate representation, but back then that was not available.<p>[0] <a href="https://g-issues.chromium.org/issues/40404440" rel="nofollow">https://g-issues.chromium.org/issues/40404440</a>
[1] <a href="https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues" rel="nofollow">https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getR...</a>
[2] <a href="https://g-issues.chromium.org/issues/40643979" rel="nofollow">https://g-issues.chromium.org/issues/40643979</a></p>
]]></description><pubDate>Sun, 09 Feb 2025 09:20:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=42989514</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=42989514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42989514</guid></item><item><title><![CDATA[New comment by hashseed in "Debugging tricks in the browser"]]></title><description><![CDATA[
<p>I work on Chrome DevTools.<p>The reason is absolutely security concerns. You don't want to leak a function that can expose a list of all objects on the JS heap.</p>
]]></description><pubDate>Sun, 12 Nov 2023 19:27:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=38243302</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=38243302</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38243302</guid></item><item><title><![CDATA[New comment by hashseed in "New headless Chrome has been released and has a near-perfect browser fingerprint"]]></title><description><![CDATA[
<p>Chrome sets navigator.webdriver to true when controlled by automation.<p>Until now, bots could simply use headful mode to achieve the same effect that is now made available through the new headless implementation.</p>
]]></description><pubDate>Sun, 19 Feb 2023 17:26:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=34859677</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=34859677</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34859677</guid></item><item><title><![CDATA[New comment by hashseed in "Playwright: Automate Chromium, WebKit and Firefox"]]></title><description><![CDATA[
<p>I manage the team at Google that currently owns the Puppeteer project.<p>The previous team that developed Puppeteer indeed moved to Microsoft and have since started Playwright.<p>While it is true that staffing is tight (isn't it always), the number of open issues does not tell the full story. The team has been busy with addressing technical debt that we inherited (testing, architecture, migrating to Typescript, etc) as well as investing in a standardized foundation to allow Puppeteer to work cross-browser in the future. This differs from the Playwright team's approach of shipping patched browser binaries.</p>
]]></description><pubDate>Fri, 28 Jan 2022 07:51:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=30111822</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=30111822</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30111822</guid></item><item><title><![CDATA[New comment by hashseed in "Faster JavaScript Calls"]]></title><description><![CDATA[
<p>There is a lot of content on V8's dev blog, with different depth, all pretty well written:
<a href="https://v8.dev/blog" rel="nofollow">https://v8.dev/blog</a></p>
]]></description><pubDate>Mon, 15 Feb 2021 21:05:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=26147382</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=26147382</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26147382</guid></item><item><title><![CDATA[New comment by hashseed in "Hermes – A small JavaScript engine optimized for running React Native on Android"]]></title><description><![CDATA[
<p>Impressive numbers. Did you try to use startup snapshot in V8 to improve TTI? <a href="https://v8.dev/blog/custom-startup-snapshots" rel="nofollow">https://v8.dev/blog/custom-startup-snapshots</a></p>
]]></description><pubDate>Thu, 11 Jul 2019 19:01:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=20414415</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=20414415</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=20414415</guid></item><item><title><![CDATA[New comment by hashseed in "JIT-Less V8"]]></title><description><![CDATA[
<p>V8 already employs W^X, i.e. memory pages allocated for V8's heap are either writable or executable, but not both at the same time.</p>
]]></description><pubDate>Wed, 13 Mar 2019 16:46:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=19380547</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=19380547</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=19380547</guid></item><item><title><![CDATA[New comment by hashseed in "Improved code caching"]]></title><description><![CDATA[
<p>You were already able to do this by loading any other kind of cached resource.</p>
]]></description><pubDate>Tue, 24 Apr 2018 19:47:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=16915936</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=16915936</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16915936</guid></item><item><title><![CDATA[New comment by hashseed in "Run JavaScript on Cloudflare with Workers"]]></title><description><![CDATA[
<p>In what case should this be preferred over plain old Service Workers running on the user's browser? Latter is even lower latency and for free.</p>
]]></description><pubDate>Tue, 13 Mar 2018 17:42:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=16578029</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=16578029</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16578029</guid></item><item><title><![CDATA[New comment by hashseed in "Run JavaScript on Cloudflare with Workers"]]></title><description><![CDATA[
<p>There are some features in V8 to make loading a script even faster.<p>I'd be glad to connect over these features on twitter (same username). I implemented them.</p>
]]></description><pubDate>Tue, 13 Mar 2018 17:34:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=16577926</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=16577926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=16577926</guid></item><item><title><![CDATA[New comment by hashseed in "Towards a JavaScript Binary AST"]]></title><description><![CDATA[
<p>Chrome already caches compile result for previously visited pages to bypass the initial parsing/compiling.</p>
]]></description><pubDate>Sat, 19 Aug 2017 09:55:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=15052579</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=15052579</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15052579</guid></item><item><title><![CDATA[New comment by hashseed in "Towards a JavaScript Binary AST"]]></title><description><![CDATA[
<p>Do you have any details on what could be improved wrt V8's snapshotting? We have recently extended the feature set a lot in order to be able to snapshot full Blink contexts, and there are some efforts on-going to implement that in Node.js as well. Soon crutches like electron-link won't be necessary anymore.<p>Some context:<p><a href="https://v8project.blogspot.com/2017/05/energizing-atom-with-v8s-custom-start.html" rel="nofollow">https://v8project.blogspot.com/2017/05/energizing-atom-with-...</a><p><a href="https://github.com/nodejs/node/issues/13877" rel="nofollow">https://github.com/nodejs/node/issues/13877</a></p>
]]></description><pubDate>Sat, 19 Aug 2017 09:39:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=15052549</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=15052549</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=15052549</guid></item><item><title><![CDATA[New comment by hashseed in "Node 8.3.0 released"]]></title><description><![CDATA[
<p>iirc JSC folks are blocking explicit tailcalls on TC39</p>
]]></description><pubDate>Thu, 10 Aug 2017 20:56:06 +0000</pubDate><link>https://news.ycombinator.com/item?id=14984159</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=14984159</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=14984159</guid></item><item><title><![CDATA[New comment by hashseed in "Why I Don’t Talk to Google Recruiters"]]></title><description><![CDATA[
<p>Often enough, implementing the optimal solution is not really more time-consuming than the brute force solution.
Often it's not about micro-optimizations, but a difference between O(n^3) and O(n*logn).</p>
]]></description><pubDate>Tue, 21 Feb 2017 21:06:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=13699974</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=13699974</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13699974</guid></item><item><title><![CDATA[New comment by hashseed in "Why I Don’t Talk to Google Recruiters"]]></title><description><![CDATA[
<p>But imagine Einstein having to look up how to derive x^2. I'd say that's a pretty close equivalent to knowing tree traversal in CS. It should just come naturally.</p>
]]></description><pubDate>Tue, 21 Feb 2017 21:00:17 +0000</pubDate><link>https://news.ycombinator.com/item?id=13699898</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=13699898</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=13699898</guid></item><item><title><![CDATA[New comment by hashseed in "V8 Release 5.1"]]></title><description><![CDATA[
<p>Yup. To some, performance is just an implementation detail, and they keep adding hooks like @@hasInstance.</p>
]]></description><pubDate>Sat, 30 Apr 2016 03:55:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=11600269</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=11600269</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11600269</guid></item><item><title><![CDATA[New comment by hashseed in "ES6, ES7, and beyond"]]></title><description><![CDATA[
<p>Unicode properties are behind an experimental flag: --harmony-regexp-property</p>
]]></description><pubDate>Fri, 29 Apr 2016 21:29:09 +0000</pubDate><link>https://news.ycombinator.com/item?id=11598893</link><dc:creator>hashseed</dc:creator><comments>https://news.ycombinator.com/item?id=11598893</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=11598893</guid></item></channel></rss>