<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: bobince</title><link>https://news.ycombinator.com/user?id=bobince</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Wed, 10 Jun 2026 17:57:59 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=bobince" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by bobince in "Things Linux Can Do That Windows Still Can't"]]></title><description><![CDATA[
<p>> Countless time wasted because the anti-virus or some other part of Windows locked a file.<p>And the whole edifice of “you need to reboot to update anything” is a knock-on effect of the file locking/sharing model, leading to the misery of “we forced a reboot and lost your work again, sucks to be you”.</p>
]]></description><pubDate>Mon, 16 Mar 2026 20:45:27 +0000</pubDate><link>https://news.ycombinator.com/item?id=47404631</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=47404631</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47404631</guid></item><item><title><![CDATA[New comment by bobince in "Hetzner Prices increase 30-40%"]]></title><description><![CDATA[
<p>OVH are putting up prices in the same way, with the same reasoning. (I don't know about storage, but VPS stuff I'm using is going up ~20%.)<p>Used to be every VPS refresh cycle you'd get more server for less money. This is miserable</p>
]]></description><pubDate>Mon, 23 Feb 2026 11:25:52 +0000</pubDate><link>https://news.ycombinator.com/item?id=47120870</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=47120870</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47120870</guid></item><item><title><![CDATA[New comment by bobince in "What's up with all those equals signs anyway?"]]></title><description><![CDATA[
<p>Of all the things I wrote on SO, including many actually-useful detailed explanations, it was this drunken rant that stuck, for some reason.</p>
]]></description><pubDate>Tue, 03 Feb 2026 14:15:16 +0000</pubDate><link>https://news.ycombinator.com/item?id=46871239</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=46871239</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=46871239</guid></item><item><title><![CDATA[New comment by bobince in "Github scam investigation: Thousands of “mods” and “cracks” stealing data"]]></title><description><![CDATA[
<p>Yes, they're originated by PayPal, but collected by a different original recipient and from there sent on to the victim. The envelope-recipient is not part of the material signed by DKIM, so the signature remains valid.<p>The To: header _is_ part of the signed material so will list the original recipient not the victim — but the attacker sets the recipient name/address to something misleading like “Order Received” to obscure this, and sets the store name to some long text that will be misleading when templated into the PayPal invoice request mail text.<p>PayPal have long had a problem with failing to make untrusted supplied text clear in their communications, but this is an unusually convincing attack.<p>I don't know why they always use (compromised?) onmicrosoft subdomains in particular. In the samples I've seen they're getting an SPF softfail so it doesn't seem MS's relays are passing SPF for paypal (sendgrid's might...)</p>
]]></description><pubDate>Fri, 28 Feb 2025 17:06:31 +0000</pubDate><link>https://news.ycombinator.com/item?id=43207874</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=43207874</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=43207874</guid></item><item><title><![CDATA[New comment by bobince in "We spent $20 to achieve RCE and accidentally became the admins of .mobi"]]></title><description><![CDATA[
<p>Script running on usercontent.github.com:<p>- is allowed to set cookies scoped to *.github.com, interfering with cookie mechanisms on the parent domain and its other subdomains, potentially resulting in session fixation attacks<p>- will receive cookies scoped to *.github.com. In IE, cookies set from a site with address "github.com" will by default be scoped to *.github.com, resulting in session-stealing attacks. (Which is why it's traditionally a good idea to prefer keeping 'www.' as the canonical address from which apps run, if there might be any other subdomains at any point.)<p>So if you've any chance of giving an attacker scripting access into that origin, best it not be a subdomain of anything you care about.</p>
]]></description><pubDate>Wed, 11 Sep 2024 20:46:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=41515202</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=41515202</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=41515202</guid></item><item><title><![CDATA[New comment by bobince in "Twenty years maintaining the WiX Toolset"]]></title><description><![CDATA[
<p>Yeah it's a thin layer over MSI tables, so if you don't already know how Windows Installer works then it's not at all clear how to do many seemingly-basic installer tasks. And few people really know how Windows Installer works because that is itself obscure, poorly designed and documented.<p>But a thin layer over MSI is actually what you want; the commercial tools that preceded WiX and tried to abstract away what Windows Installer was actually doing were much worse. Because Windows Installer is such a mess of counterintuitive design and bugs that you <i>are</i> going to need to debug it.<p>WiX is to be saluted for greatly reducing the level of misery involved in making installers for Windows. But the level of misery is still very high indeed.</p>
]]></description><pubDate>Sat, 06 Apr 2024 09:14:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=39951117</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=39951117</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=39951117</guid></item><item><title><![CDATA[New comment by bobince in "Rest in Peace, Optane"]]></title><description><![CDATA[
<p>Ugh, a friend bought some similar device due to a misleading description of what the HD was. He'd tried to change the partitioning without knowing it was there; turns out if you had anything but a single Windows partition (with custom drivers injected in the right undocumented way at install-time) you ended up with a sans-optane uncached 5400rpm HDD, which even at that time was completely unfeasible as a system disc.<p>Absolutely horrible product. And not even cheap <i>before</i> having to turf it out in favour of a proper SSD.</p>
]]></description><pubDate>Tue, 05 Dec 2023 17:36:08 +0000</pubDate><link>https://news.ycombinator.com/item?id=38534133</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=38534133</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=38534133</guid></item><item><title><![CDATA[New comment by bobince in "Being picky about a CSS reset for fun"]]></title><description><![CDATA[
<p>It's to avoid vertical margin collapsing. The rules for margin collapsing are complex, counter-intuitive, and often considered misconceived. (<a href="https://wiki.csswg.org/ideas/mistakes" rel="nofollow noreferrer">https://wiki.csswg.org/ideas/mistakes</a>)<p>It's typically easier to work out a layout if you use padding in preference so you don't have to worry about them, but first you have to reset the margins the browser gives you.</p>
]]></description><pubDate>Sun, 15 Oct 2023 21:43:53 +0000</pubDate><link>https://news.ycombinator.com/item?id=37893660</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=37893660</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=37893660</guid></item><item><title><![CDATA[New comment by bobince in "Don't use Win32_product to find installed software (2020)"]]></title><description><![CDATA[
<p>Yeah Win32_Product is a disaster, even by WMI standards.<p>The proper way to enumerate the Windows Installer database <i>should</i> be MsiEnumProductsEx. Except. If someone has monkeyed with a product key name in the registry such that it's longer than normal(...), MsiEnumProductsEx spits ERROR_MORE_DATA for that product and all subsequent dwIndex values (so if you're waiting for ERROR_NO_MORE_ITEMS you'll have a fun hang).<p>(...which sounds like it shouldn't happen, but it turns out there are a bunch of users following forum post advice to hide a product by renaming it with a _Disabled suffix. oh dear)<p>So in reality you'll probably have to access the undocumented registry backend for the Windows Installer database, in HKLM\Software\Classes\Installer\Products, converting the weird backwards-struct form of the UUID in each key name to the real ProductCode.<p>Of course not all software uses MSI packages or can be found in the Windows Installer database. You can indeed go to the Add/Remove Programs database in HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstaller, except that the data there is super low quality. You'll have bogus products missing name and/or version, nonsense entries for things no longer present, inconsistently named products between versions, and products with different names on different locales. Which makes it quite difficult to do anything with this data.<p>There isn't really a single source of truth for "what products are installed" under Windows and all options for reporting what's installed are pretty bad.</p>
]]></description><pubDate>Sat, 07 Jan 2023 16:32:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=34289613</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=34289613</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=34289613</guid></item><item><title><![CDATA[New comment by bobince in "Show HN: I am building a new Python library to read/write PDF files"]]></title><description><![CDATA[
<p>ReportLab can render gradients, but it's poorly documented. See eg <a href="https://stackoverflow.com/questions/452074/creating-a-gradient-fill-in-a-pdf-file-using-reportlab" rel="nofollow">https://stackoverflow.com/questions/452074/creating-a-gradie...</a><p>I use the method with `canvas.clipPath(path, stroke=False, fill=True)` on a path I've parsed manually from SVG then `canvas.linearGradient`.</p>
]]></description><pubDate>Fri, 18 Nov 2022 10:11:28 +0000</pubDate><link>https://news.ycombinator.com/item?id=33652680</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=33652680</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33652680</guid></item><item><title><![CDATA[New comment by bobince in "Named element IDs can be referenced as JavaScript globals"]]></title><description><![CDATA[
<p>The Netscape of the 90s wasn't interested in making features ‘safe’. They were about throwing out features as quickly as possible to see what would stick.<p>The simplest possible syntax is to make named elements available globally, and if that clashes with future additions to the DOM API then well that's a problem for some future idiots to worry about.<p>as a strategy it worked pretty well, unfortunately</p>
]]></description><pubDate>Tue, 27 Sep 2022 16:41:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=32997755</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=32997755</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32997755</guid></item><item><title><![CDATA[New comment by bobince in "Ubuntu 22.04 LTS (Jammy Jellyfish)"]]></title><description><![CDATA[
<p>> So 20.04 will likely be my last ubuntu-flavored distro.<p>I'm hanging on with 22.04 using the mozillateam PPA to get a proper deb firefox and it's working fine for now. If they stop exposing that option I'll be off too.<p>I'm not religiously against snap but the experience of trying to use it has been pretty awful so far. First the process of switching firefox to a snap during release-upgrade hung and broke the upgrade. Then after clearing up the mess and uninstall/reinstalling, attempting to run Firefox silently did nothing.</p>
]]></description><pubDate>Thu, 21 Apr 2022 09:00:15 +0000</pubDate><link>https://news.ycombinator.com/item?id=31107299</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=31107299</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31107299</guid></item><item><title><![CDATA[New comment by bobince in "A Square Meal – Foods of the ‘20s and ‘30s"]]></title><description><![CDATA[
<p>The prevalent milk in Germany (originally promoted as “hält länger frisch” et al) is Extended Shelf Life (ESL). It's treated hotter than traditional (HTST) pasteurisation of the type dominant in the UK, but not as brutally treated as traditional UHT.<p>Personally I'm not a fan of ESL and would seek out the remaining HTST brands, but it's eminently preferable to UHT.</p>
]]></description><pubDate>Thu, 07 Apr 2022 08:15:43 +0000</pubDate><link>https://news.ycombinator.com/item?id=30941969</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=30941969</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=30941969</guid></item><item><title><![CDATA[New comment by bobince in "GetElementById vs. QuerySelector"]]></title><description><![CDATA[
<p>Flexible is a double-edged sword. `querySelector` is bringing in the added complexity of selector syntax, which is more stuff to think about that isn't relevant to what you're trying to do.<p>For example now you have to worry about whether there are any characters in the ID that need escaping in a selector (eg `.`), something that may not be easy to verify when formatting an ID out of variables.<p>So I'd suggest preferring getElementById for its directness, rather than for micro-optimisation reasons.<p>(In principle the same should be true for getElementsByClassName, but the live NodeLists returned by that method are a trap for the unwary, so neither option is ideal.)</p>
]]></description><pubDate>Fri, 26 Nov 2021 11:24:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=29349223</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=29349223</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29349223</guid></item><item><title><![CDATA[New comment by bobince in "Ubuntu 21.10 (Impish Indri)"]]></title><description><![CDATA[
<p>The reason I run desktop Linux isn't because it has a particular feature I want. It's to get away from all the Windows features I <i>don't</i> want — bloat, bundleware, ads, telemetry, forced AV, forced cloud features, forced reboots...<p>So WSL doesn't help me, really.</p>
]]></description><pubDate>Thu, 14 Oct 2021 20:20:34 +0000</pubDate><link>https://news.ycombinator.com/item?id=28869491</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=28869491</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28869491</guid></item><item><title><![CDATA[New comment by bobince in "New credit card rules in India: recurring card payments to be affected"]]></title><description><![CDATA[
<p>In the UK we have cafonline.org which works nicely for this purpose. Nothing similar in the US?</p>
]]></description><pubDate>Tue, 28 Sep 2021 08:52:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=28680615</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=28680615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28680615</guid></item><item><title><![CDATA[New comment by bobince in "2022 Ford F-150 Lightning"]]></title><description><![CDATA[
<p>It needn't have been this tall. With the internal combustion engine out, Ford could have designed a lower, more curved, less deadly front end.<p>Instead, they kept the high nose and used the space as a trunk. After all, injuring fewer pedestrians sells no cars. Indeed, the market prefers an enormous, deliberately threatening-looking chariot that makes you feel big and virile.<p>Ford are behind this game in that they haven't given their truck an explicitly hostile name like “People Mulcher”.</p>
]]></description><pubDate>Fri, 21 May 2021 14:51:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=27234758</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=27234758</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27234758</guid></item><item><title><![CDATA[New comment by bobince in "Disabling Safari AutoFill for a single line address input (2019)"]]></title><description><![CDATA[
<p>Oh it's older than that, even. IE was always fine without the space. It was for Netscape.<p>So, sure, maybe there's a good reason to want XML-compatible syntax. But Netscape 4 users? Let's hope not!</p>
]]></description><pubDate>Mon, 18 Jan 2021 13:00:25 +0000</pubDate><link>https://news.ycombinator.com/item?id=25821347</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=25821347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25821347</guid></item><item><title><![CDATA[New comment by bobince in "Why does Linux have so much trouble sleeping and waking?"]]></title><description><![CDATA[
<p>They don't even necessarily care about Windows support. Upgrade to a new version that doesn't quite work the same with the hacks in their cobbled-together drivers, and you're quickly in the same boat as the Linux users.</p>
]]></description><pubDate>Fri, 11 Dec 2020 16:57:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=25387853</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=25387853</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25387853</guid></item><item><title><![CDATA[New comment by bobince in "Netscape and Sun Announce JavaScript (1995)"]]></title><description><![CDATA[
<p>> Did Java applets actually have a JS API?<p>Sure. LiveConnect was commonly used as glue to invoke and interact with applets from JS.<p>I wouldn't necessarily say that it enabled a virtually unlimited blah blah enterprise parp, but it had its uses. A common hack was to put some shared storage in an applet so multiple documents could use it to persist and communicate cross-document data, back before browsers could do that natively.<p>There was some really tedious bug in IE with the Sun VM that occasionally allowed JS events to fire concurrently whilst LiveConnect was waiting for a response from a method called on an applet, which we never quite figured out. This was one of many things that made JS+applet development unreliable and unpleasant.</p>
]]></description><pubDate>Fri, 04 Dec 2020 15:58:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=25303736</link><dc:creator>bobince</dc:creator><comments>https://news.ycombinator.com/item?id=25303736</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25303736</guid></item></channel></rss>