<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: lwthiker</title><link>https://news.ycombinator.com/user?id=lwthiker</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Fri, 17 Apr 2026 03:36:45 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=lwthiker" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by lwthiker in "Ask HN: What are the best tools for web scraping in 2022?"]]></title><description><![CDATA[
<p>curl-impersonate[1] is a curl fork that I maintain and which lets you fetch sites while impersonating a browser. Unfortunately, the practice of TLS and HTTP fingerprinting of web clients has become extremely common in the past ~1 year, which means a regular curl request will often return some JS challenge and not the real content. curl-impersonate helps with that.<p>[1] <a href="https://github.com/lwthiker/curl-impersonate" rel="nofollow">https://github.com/lwthiker/curl-impersonate</a></p>
]]></description><pubDate>Wed, 10 Aug 2022 12:28:58 +0000</pubDate><link>https://news.ycombinator.com/item?id=32410792</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=32410792</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32410792</guid></item><item><title><![CDATA[New comment by lwthiker in "Firefox appears to be flagged as suspicious by Cloudflare"]]></title><description><![CDATA[
<p>For a while now I can't even access WhatsApp Web [1] through Firefox. It gets stuck on the loading page and keeps refreshing itself forever. I have to resort to Chrome whenever I need WhatsApp on my laptop.<p>[1] <a href="https://web.whatsapp.com" rel="nofollow">https://web.whatsapp.com</a></p>
]]></description><pubDate>Sat, 21 May 2022 18:11:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=31460332</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=31460332</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31460332</guid></item><item><title><![CDATA[New comment by lwthiker in "Firefox appears to be flagged as suspicious by Cloudflare"]]></title><description><![CDATA[
<p>I think they have different plans and configurations for their anti-bot service [1]. I'm not sure though because I'm not using their services.<p>[1] <a href="https://developers.cloudflare.com/bots/get-started/" rel="nofollow">https://developers.cloudflare.com/bots/get-started/</a></p>
]]></description><pubDate>Sat, 21 May 2022 17:58:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=31460224</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=31460224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31460224</guid></item><item><title><![CDATA[Firefox appears to be flagged as suspicious by Cloudflare]]></title><description><![CDATA[
<p>Article URL: <a href="https://lwthiker.com/opensource/2022/05/21/firefox-flagged-suspicious.html">https://lwthiker.com/opensource/2022/05/21/firefox-flagged-suspicious.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=31459258">https://news.ycombinator.com/item?id=31459258</a></p>
<p>Points: 337</p>
<p># Comments: 168</p>
]]></description><pubDate>Sat, 21 May 2022 16:26:29 +0000</pubDate><link>https://lwthiker.com/opensource/2022/05/21/firefox-flagged-suspicious.html</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=31459258</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31459258</guid></item><item><title><![CDATA[New comment by lwthiker in "Show HN: Curl modified to impersonate Firefox and mimic its TLS handshake"]]></title><description><![CDATA[
<p>They don't block you completely, just present you with a JS challenge that delays your access to the site. A browser, even if behind a MITM proxy, would be able to solve this challenge.</p>
]]></description><pubDate>Fri, 18 Feb 2022 10:46:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=30384210</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30384210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30384210</guid></item><item><title><![CDATA[New comment by lwthiker in "Show HN: Curl modified to impersonate Firefox and mimic its TLS handshake"]]></title><description><![CDATA[
<p>I hope to do so in the future, for now the implementation is extremely hacky so I doubt it can get accepted into curl.</p>
]]></description><pubDate>Fri, 18 Feb 2022 06:35:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=30382774</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30382774</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30382774</guid></item><item><title><![CDATA[New comment by lwthiker in "Show HN: Curl modified to impersonate Firefox and mimic its TLS handshake"]]></title><description><![CDATA[
<p>I will try to impersonate Chrome next, However, I suspect this is going to be more challenging. Chrome uses BoringSSL, which curl does not support. So it means either enforcing curl to compile with BoringSSL or modifying NSS to look like BoringSSL.</p>
]]></description><pubDate>Fri, 18 Feb 2022 06:09:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=30382618</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30382618</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30382618</guid></item><item><title><![CDATA[New comment by lwthiker in "Show HN: Curl modified to impersonate Firefox and mimic its TLS handshake"]]></title><description><![CDATA[
<p>Thanks for the suggestion, I had no idea ESR was a thing. I've just added support for Firefox ESR 91 (it was pretty similar and required adding one cipher to the cipher list and changing the user agent).</p>
]]></description><pubDate>Fri, 18 Feb 2022 06:04:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=30382591</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30382591</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30382591</guid></item><item><title><![CDATA[Show HN: Curl modified to impersonate Firefox and mimic its TLS handshake]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/lwthiker/curl-impersonate">https://github.com/lwthiker/curl-impersonate</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=30378562">https://news.ycombinator.com/item?id=30378562</a></p>
<p>Points: 249</p>
<p># Comments: 57</p>
]]></description><pubDate>Thu, 17 Feb 2022 20:57:37 +0000</pubDate><link>https://github.com/lwthiker/curl-impersonate</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30378562</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30378562</guid></item><item><title><![CDATA[Analyzing a Stock Exchange's API]]></title><description><![CDATA[
<p>Article URL: <a href="https://lwthiker.com/reversing/2022/02/12/analyzing-stock-exchange-api.html">https://lwthiker.com/reversing/2022/02/12/analyzing-stock-exchange-api.html</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=30311686">https://news.ycombinator.com/item?id=30311686</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Sat, 12 Feb 2022 10:39:28 +0000</pubDate><link>https://lwthiker.com/reversing/2022/02/12/analyzing-stock-exchange-api.html</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30311686</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30311686</guid></item><item><title><![CDATA[Show HN: Pumbaa – A portfolio simulation tool for passive, index investments]]></title><description><![CDATA[
<p>Hi HN,<p>About a year ago I wrote a few scripts and spreadsheets to calculate the historical performance of various passive investment portfolios. There is portfoliovisualizer.com but if you are not from the US it's less relevant because everything is calculated with respect to the US dollar, and you cannot combine funds from other countries (say from the EU).<p>In the past month I managed to turn it into a web app with the goal of giving individuals better tools for financial education. It allows you to build a portfolio composed of a few index funds (ETFs or mutual funds) and simulate its historical performance. It currently works with 7 currencies and includes funds from the US, EU, UK, Canada and Israel. Intentionally, only broad-market, passive index funds are included.<p>If all of this doesn't mean much to you, you can visit the examples page to get a taste of some interesting portfolios. Here is an interesting example: For the past 22 years, US long-term treasuries had very similar returns to the S&P 500 (cherry-picked dates, but still interesting) [1].<p>On the technical side: The backend is a simple Flask app. A task runs once a day in the background to fetch the latest prices of ETFs and mutual funds from 20+ sources (central banks, stock exchanges). Frontend is Tailwind for CSS and a bit of native Javascript with d3. Everything runs on a $10/mo VPS.<p>This is my first web app and there is still a lot of room for improvement so any feedback is welcome.<p>Thanks in advance!<p>[1] <a href="https://pumbaa.app/backtest?b=1&currency=USD&initialBalance=1000&rebalanceFreq=Annually&dividends=1&startMonth=1&startYear=2000&endMonth=2&endYear=2022&assetName_1=VUSTX&assetName_2=SPY&portfolioName_1=Long-Term+Treasury&assetAllocation_1_1=100&portfolioName_2=S%26P+500&assetAllocation_2_2=100" rel="nofollow">https://pumbaa.app/backtest?b=1&currency=USD&initialBalance=...</a></p>
<hr>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=30301047">https://news.ycombinator.com/item?id=30301047</a></p>
<p>Points: 4</p>
<p># Comments: 0</p>
]]></description><pubDate>Fri, 11 Feb 2022 13:15:39 +0000</pubDate><link>https://pumbaa.app/</link><dc:creator>lwthiker</dc:creator><comments>https://news.ycombinator.com/item?id=30301047</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30301047</guid></item></channel></rss>