<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: adrianmsmith</title><link>https://news.ycombinator.com/user?id=adrianmsmith</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 12 Aug 2026 12:08:42 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=adrianmsmith" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>One thing I think generics in Go is missing is the <?> concept in Java.<p>If you're taking a List[T] and all you want to do is to call list.size() then you don't care what type of list it is. In Java you can write a function which takes a List<?> but in Go you have to write List[T] so then the question becomes what is T? 
You have to make the function (or type you're a method on) generic. If you make the type generic then every user of your type also needs to specify T, etc.<p>I don't think it would be impossible to add that to Go. Allow List[?], which matches a List with any type parameter. Calling functions which don't involve the type parameter like list.size() would be fine, calling a method returning the type parameter like list.get(n) would return "any", and methods taking the type parameter like list.set(n, obj) would probably not be callable.</p>
]]></description><pubDate>Sun, 02 Aug 2026 09:55:56 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142840</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142840</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142840</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>It's helped, but that's runtime behaviour. The compiler can't help you with questions like "you didn't handle certain errors" or "the error you're trying to check can never occur".<p>Nor does that help with documentation, I'm guessing if I read a file then it might raise the error that the file does not exist. But what exactly is the technical type of that error? You have to search through the function's implementation, and functions that function calls, etc., to find out.<p>And it doesn't help with refactoring. If you create new.FileNotFoundError and change your function to return it, existing code which checks for old.FileNotFoundError will start to silently fail.</p>
]]></description><pubDate>Sun, 02 Aug 2026 08:48:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142453</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142453</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142453</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>> What people want generic methods for is to do deeply nested call chains<p>I don't see that as the only use of generic methods.<p>The example in the article is a "Map" method that transforms e.g. a List[A] to a List[B], by taking a function that takes an A and returns a B. To be able to transform a list like that is a useful operation.<p>It was possible to do the same with a global function like MapList but the syntax is nicer if you use methods. You don't need the type in the name (function MapList vs method Map) and it is an operation on the List after all so list.Map(..) is nicer than MapList(list, ..).</p>
]]></description><pubDate>Sun, 02 Aug 2026 07:47:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142081</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142081</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142081</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>No</p>
]]></description><pubDate>Sun, 02 Aug 2026 07:43:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142062</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142062</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142062</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>People advocate for Go's error handling because it forces you to deal with errors.<p>But in the cases I do want to catch a specific error, the signature only tells me <i>that</i> a function returns an error, not which type. So I do feel that returning (int, error) is strictly worse than Java's checked exceptions if you care about errors.</p>
]]></description><pubDate>Sun, 02 Aug 2026 07:43:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142060</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142060</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142060</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Go 1.27 Interactive Tour"]]></title><description><![CDATA[
<p>I never understood the convention of using single letter names for generic parameters. I guess this started in C++ and every language has copied that convention.<p>I think that code would be a lot easier to read if the types were called IN and OUT or In and Out or TIn and TOut or something like that.</p>
]]></description><pubDate>Sun, 02 Aug 2026 07:33:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=49142010</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=49142010</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49142010</guid></item><item><title><![CDATA[New comment by adrianmsmith in "We Don't Have to Be This Bad at Improving Society"]]></title><description><![CDATA[
<p>The article gives examples of situations where projects have failed, and states a solution.<p>> The [solution] is to organize the work into the smallest possible learnable chunks and continuously alternate between doing and learning.<p>It would be more convincing if the article gave examples of where that solution had been tried and succeeded. I mean this must have been tried somewhere, surely.</p>
]]></description><pubDate>Thu, 02 Jul 2026 09:17:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=48758644</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=48758644</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48758644</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Selling SaaS in Germany"]]></title><description><![CDATA[
<p>I feel this article is saying people from UK/US/etc. want to maximize upside, and people from DACH (Germany etc.) want to minimize downside.<p>I was a bit shocked when I talked to an Austrian colleague once and they told me they wanted to get into investing, but losing any money at any time was completely unacceptable. They had looked at investing in S&P 500 ETFs etc., but felt they must have misunderstood something, as they didn't understand why anyone would invest in anything that might go down, even temporarily.<p>So the thesis of the article definitely feels plausible to me.</p>
]]></description><pubDate>Mon, 25 May 2026 09:17:45 +0000</pubDate><link>https://news.ycombinator.com/item?id=48264918</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=48264918</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48264918</guid></item><item><title><![CDATA[Today we reduced headcount by 22% / The goal is 100x output]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/DJ_CURFEW/status/2057522382315929802">https://twitter.com/DJ_CURFEW/status/2057522382315929802</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48233764">https://news.ycombinator.com/item?id=48233764</a></p>
<p>Points: 8</p>
<p># Comments: 11</p>
]]></description><pubDate>Fri, 22 May 2026 09:38:04 +0000</pubDate><link>https://twitter.com/DJ_CURFEW/status/2057522382315929802</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=48233764</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48233764</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Idempotency Is Easy Until the Second Request Is Different"]]></title><description><![CDATA[
<p>> But if you have side effects and need something to happen exactly once it seems a lot more useful to communicate this, rather than pretending you did the thing.<p>I think it depends on whether the sender needs to know whether the thing was done during the request, or just needs to know that the thing was done at all. If the API is to make a purchase then maybe all the caller really needs to know is "the purchase has been done", no matter whether it was done this time or a previous time.<p>And in terms of a caller implementing retry logic, it's easier for the caller to just retry and accept the success response the second time (no matter if it was done the second time, or actually done the first time but the response got lost triggering the retry).</p>
]]></description><pubDate>Sun, 10 May 2026 10:53:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=48082777</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=48082777</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48082777</guid></item><item><title><![CDATA[Today I've made the difficult decision to reduce the size of Coinbase by ~14%]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/brian_armstrong/status/2051616759145185723">https://twitter.com/brian_armstrong/status/2051616759145185723</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=48021368">https://news.ycombinator.com/item?id=48021368</a></p>
<p>Points: 484</p>
<p># Comments: 807</p>
]]></description><pubDate>Tue, 05 May 2026 12:10:24 +0000</pubDate><link>https://twitter.com/brian_armstrong/status/2051616759145185723</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=48021368</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48021368</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Jujutsu megamerges for fun and profit"]]></title><description><![CDATA[
<p>> Because jj's conflict resolution is fundamentally better<p>I don't know jj well so its merge algorithm may well be better in some aspects but it currently can't merge changes to a file in one branch with that file being renamed in another branch. Git can do that.<p><a href="https://github.com/jj-vcs/jj/issues/47" rel="nofollow">https://github.com/jj-vcs/jj/issues/47</a></p>
]]></description><pubDate>Tue, 21 Apr 2026 12:46:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=47848014</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47848014</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47848014</guid></item><item><title><![CDATA[Michael Burry worries about "structural manipulation" of Nasdaq-100 for SpaceX]]></title><description><![CDATA[
<p>Article URL: <a href="https://twitter.com/michaeljburry/status/2032483200404992209">https://twitter.com/michaeljburry/status/2032483200404992209</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=47375051">https://news.ycombinator.com/item?id=47375051</a></p>
<p>Points: 24</p>
<p># Comments: 2</p>
]]></description><pubDate>Sat, 14 Mar 2026 10:01:04 +0000</pubDate><link>https://twitter.com/michaeljburry/status/2032483200404992209</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47375051</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47375051</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Apple Studio Display and Studio Display XDR"]]></title><description><![CDATA[
<p>> keeping the old one around would be embarrassing<p>On the other hand this is the company that sells a Mac Pro for $7k and it comes with an M2-based chip...</p>
]]></description><pubDate>Wed, 04 Mar 2026 17:05:51 +0000</pubDate><link>https://news.ycombinator.com/item?id=47250513</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47250513</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47250513</guid></item><item><title><![CDATA[New comment by adrianmsmith in "MacBook Neo"]]></title><description><![CDATA[
<p>Macbook Nano will probably be supported with security updates for a lot longer.<p>Apple try to provide updates for a certain number of years after the model was originally released. The M1 Air was released many years ago now.</p>
]]></description><pubDate>Wed, 04 Mar 2026 16:49:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=47250236</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47250236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47250236</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Nuclear War: An LLM Scenario"]]></title><description><![CDATA[
<p>> Replacing human hesitation with machine confidence removes the one safeguard that has prevented nuclear war since 1945. Until militaries implement documented human authorisation...we are blindly automating our own destruction<p>In the scenario described there literally is a human in the loop: the president is a human?</p>
]]></description><pubDate>Wed, 04 Mar 2026 16:30:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=47249930</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47249930</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47249930</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Tell HN: YC companies scrape GitHub activity, send spam emails to users"]]></title><description><![CDATA[
<p>GH literally say in a parent comment:<p>> we can (and do) take action against those accounts including banning the accounts</p>
]]></description><pubDate>Thu, 26 Feb 2026 19:58:57 +0000</pubDate><link>https://news.ycombinator.com/item?id=47171236</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=47171236</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47171236</guid></item><item><title><![CDATA[New comment by adrianmsmith in "My eighth year as a bootstrapped founder"]]></title><description><![CDATA[
<p>> You end up working for shitty Fortune 500 company, work on useless/mindless shit, grind for 8 hrs, collect paycheck, eat, sleep, and repeat.<p>I used to think like this but what if it isn't the case? Maybe the market is making the right decisions after all? Maybe contributing a tiny amount to a successful business really is worth more to society than contributing a huge amount to a project with barely any customers, and that's why we get paid more working for large companies?<p>(Not suggesting OP's projects have barely any customers, I am more talking about my own forays into small business.)</p>
]]></description><pubDate>Wed, 11 Feb 2026 09:08:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=46972651</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=46972651</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46972651</guid></item><item><title><![CDATA[New comment by adrianmsmith in "I now assume that all ads on Apple news are scams"]]></title><description><![CDATA[
<p>This is research from Microsoft that goes into more detail: <a href="https://www.microsoft.com/en-us/research/wp-content/uploads/2016/02/WhyFromNigeria.pdf" rel="nofollow">https://www.microsoft.com/en-us/research/wp-content/uploads/...</a></p>
]]></description><pubDate>Fri, 06 Feb 2026 13:19:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=46912477</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=46912477</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46912477</guid></item><item><title><![CDATA[New comment by adrianmsmith in "Spotify won court order against Anna's Archive, taking down .org domain"]]></title><description><![CDATA[
<p>> Can anyone recommend a music discovery service that isn't garbage?<p>I enjoy using last.fm, although it's not their focus these days. Sign up, connect it to Spotify or whatever you use (incl. a long list of players of local music), after a day or so it'll learn what you like and you can create playlists with suggestions and export them, or browser around recommended artists etc.</p>
]]></description><pubDate>Thu, 22 Jan 2026 14:10:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=46719441</link><dc:creator>adrianmsmith</dc:creator><comments>https://news.ycombinator.com/item?id=46719441</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46719441</guid></item></channel></rss>