<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: fishywang</title><link>https://news.ycombinator.com/user?id=fishywang</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 18 Jun 2026 09:32:54 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=fishywang" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by fishywang in "Empty Screenings – Finds AMC movie screenings with few or no tickets sold"]]></title><description><![CDATA[
<p>A lot of years ago, while living in Beijing, I once bought ticket to a morning (9:30 or so) show in a theatre. Then came that day, it rained unexpectedly, so I ended up getting there 10min late. When I get into the theatre, I found out that it's completely dark. I asked a staff, they told me that they only sold that one ticket and since I didn't show up within 5min, they cancelled the show and returned the film. They refunded me in the end.</p>
]]></description><pubDate>Tue, 05 May 2026 16:39:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=48024934</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=48024934</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48024934</guid></item><item><title><![CDATA[New comment by fishywang in "Heathrow scraps liquid container limit"]]></title><description><![CDATA[
<p>I was flying out of LHR yesterday (Monday). I read the news before so asked the agent at security check "I don't need to empty my water bottle now right?" and she was like "nah that's only for up to 2 litres in a clear/plastic bottle, not a metal flask bottle" or something along those lines. I was using a Stanley metal water bottle. So I still had to empty my bottle.</p>
]]></description><pubDate>Tue, 27 Jan 2026 23:05:54 +0000</pubDate><link>https://news.ycombinator.com/item?id=46788461</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=46788461</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46788461</guid></item><item><title><![CDATA[New comment by fishywang in "Are Apple gift cards safe to redeem?"]]></title><description><![CDATA[
<p>lol I have another story regarding Apple gift cards.<p>Many years ago we had an iMac at the house as the shared desktop computer. After a few years, it started to have the signs that the harddisk is going to fail, and also we were mostly moved away from Apple's ecosystem, so we decided to trade it in and replace it with something else that's not from Apple.<p>Since we don't have anything immediate to buy from Apple, we traded it in with Apple gift cards.<p>Later, my partner needed to trade in an old iPad for a new one, so we used that gift card with credit card for the trade in. For that trade in, you first pay the full price with gift card+credit card, then they refund you the trade-in value after the trade-in is finalized.<p>The trade-in value of the old iPad is less than the value we paid via credit card, so we would reasonably assume that they would refund the total trade-in value to our credit card. But nope. They actually calculated the original gift card vs. credit card split ratio, and refunded according to that ratio.<p>A simplified example is say we paid $200 via gift card plus $300 via credit card for an $500 iPad, with trade-in value of $200 for the old iPad. Instead of refunding $200 to our credit card (so it's eventually $200 via gift card and $100 via credit card), they refunded us $120 to credit card and gave us another $80 gift card. So we have to find ways to spend that gift card again, and it cannot involve any trade-in (otherwise we're not going to be able to use it fully).</p>
]]></description><pubDate>Thu, 18 Dec 2025 18:31:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=46316611</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=46316611</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46316611</guid></item><item><title><![CDATA[New comment by fishywang in "What we talk about when we talk about sideloading"]]></title><description><![CDATA[
<p>I'm not sure it works that way. _In general_ before the recent announcement you are supposed to sign the debug build (what you feed into adb to install) with your debug key that's different from the release nor upload key, and the debug key is never submitted to google.<p>Of course _maybe_ at some point google will also force you to submit your debug key to them. But I don't believe that's the case now.</p>
]]></description><pubDate>Tue, 28 Oct 2025 22:34:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=45740172</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=45740172</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45740172</guid></item><item><title><![CDATA[New comment by fishywang in "Mosquitoes discovered in Iceland for the first time"]]></title><description><![CDATA[
<p>I have a magnet that's a mosquito with text "Alaska state bird".</p>
]]></description><pubDate>Fri, 24 Oct 2025 19:31:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=45698267</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=45698267</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45698267</guid></item><item><title><![CDATA[New comment by fishywang in "Be careful with Go struct embedding"]]></title><description><![CDATA[
<p>I don't understand how this got so many upvotes. Embedded struct fields are never "promoted", you always need to access them via the embedded type's name, so there's nothing to conflict.<p>The only thing "promoted" are the functions associated with the embedded types, and when those actually conflicts, the compiler will tell you, as expected.</p>
]]></description><pubDate>Tue, 23 Sep 2025 02:57:20 +0000</pubDate><link>https://news.ycombinator.com/item?id=45342328</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=45342328</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45342328</guid></item><item><title><![CDATA[New comment by fishywang in "Writing simple tab-completions for Bash and Zsh"]]></title><description><![CDATA[
<p>I tried to use fish on some of my debian servers that i only rarely update packages/kernel, so I don't have to carry my bashrc there, but found their completion for apt is pretty naive. for example after updated kernel i would want to clean up the old ones, but `apt purge linux-image-<TAB>` would list all available kernel versions, not just the ones currently installed.<p>in the end i switched back to bash.</p>
]]></description><pubDate>Mon, 11 Aug 2025 02:55:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=44860411</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=44860411</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44860411</guid></item><item><title><![CDATA[New comment by fishywang in "Building Bluesky comments for my blog"]]></title><description><![CDATA[
<p>I would recommend <a href="https://cactus.chat/" rel="nofollow">https://cactus.chat/</a>, which is based on matrix.<p>it has guest support (so people does not need a matrix account to comment), but if you use your own matrix account, you are essentially joining a matrix room per post.</p>
]]></description><pubDate>Fri, 08 Aug 2025 00:05:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=44831922</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=44831922</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44831922</guid></item><item><title><![CDATA[New comment by fishywang in "Too Much Go Misdirection"]]></title><description><![CDATA[
<p>Yea I saw your other reply later and agree on most of it. But I'd say there's a balance between simplicity of the API and more specific cases. For example they can make an optional api to io.Reader to provide size info, and maybe another optional api to io.Reader to make it able to be read more than once, etc.. But at the same time, if you have all those info, that _usually_ means you already have either a []byte or string, and you would most likely use one of the 3 types to convert that into an io.Reader, so that special handling is enough without adding more public apis, and the go team is notoriously conservative when adding new public apis.</p>
]]></description><pubDate>Tue, 20 May 2025 15:58:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=44043056</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=44043056</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44043056</guid></item><item><title><![CDATA[New comment by fishywang in "Too Much Go Misdirection"]]></title><description><![CDATA[
<p>The request body on the client do a lot of other things than reading the body once (an io.Reader can only be read once).<p>There's Content-Length, and there's also the need to read it multiple times in case a redirect happens (so the same body need to be sent again when being redirected).<p>As a result, the implementation in stdlib would check a few common io.Reader implementations (bytes.Buffer, bytes.Reader, strings.Reader) and make sure it stores something that can be read multiple times (if it's none of the 3, it's read fully into memory and stored instead).</p>
]]></description><pubDate>Tue, 20 May 2025 14:04:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=44041847</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=44041847</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44041847</guid></item><item><title><![CDATA[New comment by fishywang in "The Church FAQ"]]></title><description><![CDATA[
<p>He is also one of the authors that (almost) all his eBooks sold on Google Play are without DRM.</p>
]]></description><pubDate>Fri, 14 Mar 2025 16:53:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=43364516</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=43364516</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43364516</guid></item><item><title><![CDATA[New comment by fishywang in "Garmin's –$40B Pivot"]]></title><description><![CDATA[
<p>Garmin's hardware, including the hardware of their smartwatches, are very tempting. They are designed to be easy to use even with gloves, have good battery life, and on some high end they have solar and/or 40-meter scuba diving rated.<p>If there's a way to use Garmin's smartwatches without using their cloud I probably would consider that. But since their ransomware attack from 2020, I really can no longer trust their cloud any more, especially that the data collected from a smartwatch is on the more sensitive side. The only Garmin hardware I'm still using is their bicycle tail light+radar, which I just use with wahoo's bike computer instead of other Garmin products.</p>
]]></description><pubDate>Wed, 22 Jan 2025 23:44:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=42798796</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42798796</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42798796</guid></item><item><title><![CDATA[New comment by fishywang in "Meta is killing off its AI-powered Instagram and Facebook profiles"]]></title><description><![CDATA[
<p>I had a facebook account from the early days. I deleted my facebook account at 2018-ish. I never had an instagram account.<p>Recently I got an email from instagram saying it's "easier to get back to instagram", with my usual username. I can't check what's on that instagram user because they don't show you anything without logging in, so I asked my wife to check that instagram user for me. It doesn't have any photos nor profile photo or following, but it does have several followers that's my facebook friends (when I had the account), so at some point meta created that instagram account for me and associated it with my facebook account, I guess? I hope that account was not "AI-powered".</p>
]]></description><pubDate>Sun, 05 Jan 2025 00:14:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42598656</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42598656</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42598656</guid></item><item><title><![CDATA[New comment by fishywang in "Passkey technology is elegant, but it's most definitely not usable security"]]></title><description><![CDATA[
<p>I'm not sure what UX you are talking about, the majority of the websites supporting u2f/passkey have UX to manage your u2f keys/passkeys. (the only exception I can think of is early Twitter when it first implemented u2f, and at that point it only allow you to add a single u2f key, but even Twitter fixed that later and supports multiple keys now).<p>And (this is probably not emphasized enough) you really should never only use a single u2f key/passkey for a website, that's the recipe to get you locked out when you can't find your u2f key/get locked out of the provider of your passkey. I have at least 2 yubikeys on my keychain all the time (one for usb-a and one for usb-c), plus one for each of my computers, and passkeys from 1password, google, etc.. And whenever I add u2f keys/passkeys to a website I add all/most of them.</p>
]]></description><pubDate>Mon, 30 Dec 2024 17:43:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=42551558</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42551558</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42551558</guid></item><item><title><![CDATA[New comment by fishywang in "Passkey technology is elegant, but it's most definitely not usable security"]]></title><description><![CDATA[
<p>>exposing yourself to the mercy of a single organization<p>The nice thing about passkey is that unlike password, you can have multiple per account.<p>So you can register a passkey from 1password to website A, and also register a passkey from Apple keychain to website A, and also register a passkey from Google account to website A, and also register a passkey from yubikey to website A, so even if you are locked out from one of your accounts, you still have several other ways to log into your account at website A.<p>And _if_ your, say, Apple keychain is compromised, you can just revoke the passkeys from your Apple keychain from all the websites (yes it's tedious, but it's doable).</p>
]]></description><pubDate>Mon, 30 Dec 2024 15:56:44 +0000</pubDate><link>https://news.ycombinator.com/item?id=42550426</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42550426</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42550426</guid></item><item><title><![CDATA[New comment by fishywang in "Apple Watch with Android"]]></title><description><![CDATA[
<p>I use Sleep as Android on my Pixel Watch 3 for smart alarm. I also found the lack of native smart alarm feature on pixel watches weird.</p>
]]></description><pubDate>Thu, 19 Dec 2024 03:34:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=42458179</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42458179</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42458179</guid></item><item><title><![CDATA[New comment by fishywang in "M4 Macs can't virtualise older macOS"]]></title><description><![CDATA[
<p><a href="https://en.wikipedia.org/wiki/X86-64#Microarchitecture_levels" rel="nofollow">https://en.wikipedia.org/wiki/X86-64#Microarchitecture_level...</a><p>amd64 v3 are instructions included in CPUs starting from 2013, so basically any modern amd64 cpu supports all of them. As mentioned there on the Wikipedia page, QEMU 7.2 also implemented all of them. Those are more efficient instructions, thus "free performance boost".<p>But Rosetta doesn't. Which instruction(s) it doesn't implement doesn't really matter (I can't remember either). What matters is that when it runs an instruction it doesn't implement, it will throw an illegal instruction error and the code hard crashes.<p>So because of Rosetta, we can't build code with amd64 v3 enabled, and cannot have free performance boost (nice things).</p>
]]></description><pubDate>Mon, 18 Nov 2024 07:19:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=42170454</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42170454</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42170454</guid></item><item><title><![CDATA[New comment by fishywang in "M4 Macs can't virtualise older macOS"]]></title><description><![CDATA[
<p>A few years ago we added `GOAMD64=v3` [1] to how we build our go binary into docker images, as all our production servers have support to that and that can give us some free performance boost.<p>Then it turned out Rosetta does not support that, so those docker images can no longer run on developers' mac laptops, so we have to revert it back. This is why we can't have nice things (we don't use any arm server so we never bothered to build multi-platform docker image).<p>[1]: <a href="https://go.dev/wiki/MinimumRequirements#amd64" rel="nofollow">https://go.dev/wiki/MinimumRequirements#amd64</a></p>
]]></description><pubDate>Sun, 17 Nov 2024 00:10:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=42160758</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=42160758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=42160758</guid></item><item><title><![CDATA[New comment by fishywang in "Where the Digital Sidewalk Ends"]]></title><description><![CDATA[
<p>Compare to European cities San Jose definitely is bad on bike infrastructure. But if you compare to neighbor cities like Santa Clara (low bar, I know), it's pretty ok. Sam Liccardo at least actually cares about cycling around the city, and made bike infrastructure improvements, like 3rd around downtown (yes it took some time after the change to educate our bright drivers how to make right turns there correctly, but it mostly works now).<p>And San Jose's Department of Transportation traffic signal unit at least has an email address I can use to tell them which traffic signal failed to detect bicycle and turn green, and they actually fix them.</p>
]]></description><pubDate>Sat, 19 Oct 2024 13:44:04 +0000</pubDate><link>https://news.ycombinator.com/item?id=41887734</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=41887734</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41887734</guid></item><item><title><![CDATA[New comment by fishywang in "Amazon reveals first color Kindle, new Kindle Scribe, and more"]]></title><description><![CDATA[
<p>I switched from reMarkable 2 to (my wife's old) Kindle Oasis to Kobo Sage, and I love Kobo Sage, despite some minor annoyances (like how this is the only thing that don't auto downscale the image in epub I've used: <a href="https://b.yuxuan.org/url2epub-downscale-images" rel="nofollow">https://b.yuxuan.org/url2epub-downscale-images</a>).<p>One thing in particular is that the physical page turning buttons are very useful. None of Amazon's new Kindles have physical page turning buttons any more from what I see in the reports.</p>
]]></description><pubDate>Thu, 17 Oct 2024 07:22:41 +0000</pubDate><link>https://news.ycombinator.com/item?id=41867222</link><dc:creator>fishywang</dc:creator><comments>https://news.ycombinator.com/item?id=41867222</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41867222</guid></item></channel></rss>