<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: andyjpb</title><link>https://news.ycombinator.com/user?id=andyjpb</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Thu, 23 Apr 2026 08:44:28 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=andyjpb" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by andyjpb in "Ideal Monitor Rotation for Programmers"]]></title><description><![CDATA[
<p>Being able to select desktops/workspaces per screen is half the solution.<p>The other half is allowing the selection to come from a pool of desktops/workspaces common to all screens. i.e. the opposite of what i3 and Sway do.<p>So given desktops/workspaces a, b and c and screens 1 and 2, the following combinations are possible:<p>1: a; 2: b<p>1: a; 2: a<p>1: c; 2: a<p>...</p>
]]></description><pubDate>Thu, 02 Dec 2021 20:10:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=29421784</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=29421784</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29421784</guid></item><item><title><![CDATA[New comment by andyjpb in "Ideal Monitor Rotation for Programmers"]]></title><description><![CDATA[
<p>I've longed for a window manager that can assign different virtual desktops to different screens. Of course, there are compositing, scaling and resolution issues to overcome, but it'd be really neat to have a palette of virtual desktops that could be called up on whichever monitor was most convenient.<p>...and it'd make screen mirroring during presentations a breeze!</p>
]]></description><pubDate>Thu, 02 Dec 2021 19:51:02 +0000</pubDate><link>https://news.ycombinator.com/item?id=29421514</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=29421514</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29421514</guid></item><item><title><![CDATA[How to make your own game engine (and why)]]></title><description><![CDATA[
<p>Article URL: <a href="https://medium.com/geekculture/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3">https://medium.com/geekculture/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29406926">https://news.ycombinator.com/item?id=29406926</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 01 Dec 2021 17:59:04 +0000</pubDate><link>https://medium.com/geekculture/how-to-make-your-own-game-engine-and-why-ddf0acbc5f3</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=29406926</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29406926</guid></item><item><title><![CDATA[Haplo's Recruitment Process to Remove Bias]]></title><description><![CDATA[
<p>Article URL: <a href="https://bens.me.uk/haplo-retrospective/recruitment">https://bens.me.uk/haplo-retrospective/recruitment</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=29398509">https://news.ycombinator.com/item?id=29398509</a></p>
<p>Points: 1</p>
<p># Comments: 0</p>
]]></description><pubDate>Tue, 30 Nov 2021 22:56:56 +0000</pubDate><link>https://bens.me.uk/haplo-retrospective/recruitment</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=29398509</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29398509</guid></item><item><title><![CDATA[New comment by andyjpb in "Chicken Scheme"]]></title><description><![CDATA[
<p>Hi,<p>This reply is a bit late because someone pointed me at it and suggested it was worth answering. ...so I hope that this is useful!<p>I have experience using Chicken Scheme in production both on knodium.com and registers.app<p>Both times it has gone well.<p>There's an HTTP implementation ( <a href="https://api.call-cc.org/5/doc/intarweb" rel="nofollow">https://api.call-cc.org/5/doc/intarweb</a> ), a webserver (<a href="https://api.call-cc.org/5/doc/spiffy" rel="nofollow">https://api.call-cc.org/5/doc/spiffy</a> that supports SSL) and an HTTP client ( <a href="https://api.call-cc.org/5/doc/http-client" rel="nofollow">https://api.call-cc.org/5/doc/http-client</a> ). There's also an "app server" that tries to be like other app servers you might already know ( <a href="https://api.call-cc.org/5/doc/awful" rel="nofollow">https://api.call-cc.org/5/doc/awful</a> ).<p>We had to write a lot of our own stuff but it fits fairly neatly into the scheme-way of doing things: you can get a remarkable amount done with just a few simple lines of code.<p>I'd probably want to write about as much in any other language as a lot of what we built were domain level abstractions.<p>Knodium is now long gone but there's a video of what it looked like here: <a href="https://www.youtube.com/watch?v=gOPuWi-dbQg" rel="nofollow">https://www.youtube.com/watch?v=gOPuWi-dbQg</a><p>We had a very talented web designer and we also built a "Widgets and forms" toolkit. I gave a talk at FrOSCon quite early in the development and it was saved for posterity: <a href="https://media.ccc.de/v/c116_lisp_-_2013-08-25_11:15_-_building_knodium_com_with_scheme_-_andy_bennett_-_1281" rel="nofollow">https://media.ccc.de/v/c116_lisp_-_2013-08-25_11:15_-_buildi...</a> The first few minutes of audio are broken but it sorts itself out.<p>I built a bunch of things along the way and released as many of them as I could as open source: <a href="http://wiki.call-cc.org/users/andyjpb" rel="nofollow">http://wiki.call-cc.org/users/andyjpb</a><p>We're currently doing <a href="https://registers.app" rel="nofollow">https://registers.app</a> with a similar stack so I'd be pleased to talk more if anyone has any questions.</p>
]]></description><pubDate>Mon, 06 Sep 2021 19:00:33 +0000</pubDate><link>https://news.ycombinator.com/item?id=28436826</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=28436826</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=28436826</guid></item><item><title><![CDATA[An interactive look at how a video signal is made]]></title><description><![CDATA[
<p>Article URL: <a href="https://blog.pizzabox.computer/random/videolines/">https://blog.pizzabox.computer/random/videolines/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27428380">https://news.ycombinator.com/item?id=27428380</a></p>
<p>Points: 83</p>
<p># Comments: 18</p>
]]></description><pubDate>Mon, 07 Jun 2021 22:57:21 +0000</pubDate><link>https://blog.pizzabox.computer/random/videolines/</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=27428380</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27428380</guid></item><item><title><![CDATA[Why Schemas Matter]]></title><description><![CDATA[
<p>Article URL: <a href="https://registers.blog/why-schemas-matter">https://registers.blog/why-schemas-matter</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=27290790">https://news.ycombinator.com/item?id=27290790</a></p>
<p>Points: 5</p>
<p># Comments: 0</p>
]]></description><pubDate>Wed, 26 May 2021 14:19:18 +0000</pubDate><link>https://registers.blog/why-schemas-matter</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=27290790</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27290790</guid></item><item><title><![CDATA[New comment by andyjpb in "DNS Key Value Storage"]]></title><description><![CDATA[
<p>I can't find any docs other than what's on the page but my reading suggests that the idea is that you can get/set values "in-band" using a regular lookup query to a resolver rather than the nsupdate style that you'd normally use to remotely configure zones.</p>
]]></description><pubDate>Mon, 04 Jan 2021 16:24:10 +0000</pubDate><link>https://news.ycombinator.com/item?id=25633430</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25633430</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25633430</guid></item><item><title><![CDATA[New comment by andyjpb in "DNS Key Value Storage"]]></title><description><![CDATA[
<p>There is still Hesiod support in GlibC / NSS, etc on most modern systems.
When put together with Kerberos it's a nice way to provision auth on lots of machines automatically.<p>It's nice to have a dedicated and restricted resolver config so that the zone visibility can be restricted but that makes deployment a little more complex.</p>
]]></description><pubDate>Mon, 04 Jan 2021 16:22:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=25633375</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25633375</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25633375</guid></item><item><title><![CDATA[Who I think CentOS Stream is and isn't for]]></title><description><![CDATA[
<p>Article URL: <a href="https://utcc.utoronto.ca/~cks/space/blog/linux/CentOSStreamWhoFor">https://utcc.utoronto.ca/~cks/space/blog/linux/CentOSStreamWhoFor</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25496527">https://news.ycombinator.com/item?id=25496527</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Mon, 21 Dec 2020 16:39:49 +0000</pubDate><link>https://utcc.utoronto.ca/~cks/space/blog/linux/CentOSStreamWhoFor</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25496527</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25496527</guid></item><item><title><![CDATA[New comment by andyjpb in "Microsoft says it found malicious software in its systems"]]></title><description><![CDATA[
<p>If you have hypervisor access you can simply ask the guest to read the memory for you.</p>
]]></description><pubDate>Fri, 18 Dec 2020 21:45:22 +0000</pubDate><link>https://news.ycombinator.com/item?id=25472447</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25472447</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25472447</guid></item><item><title><![CDATA[New comment by andyjpb in "Microsoft says it found malicious software in its systems"]]></title><description><![CDATA[
<p>Encryption only helps if you can guarantee that your attacker can't get access to the layer below where the runtime decrypts things.<p>A cloud hack like the parent poster talks about assumes that you get access to the hypervisor layer and can look at the RAM of the guest machines.<p>This is not inconceivable. Rather, it seems quite reasonable given the complexity of hypervisors and the prevalence of CPU architecture bugs that makes these attacks easier.</p>
]]></description><pubDate>Fri, 18 Dec 2020 21:15:19 +0000</pubDate><link>https://news.ycombinator.com/item?id=25472138</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25472138</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25472138</guid></item><item><title><![CDATA[New comment by andyjpb in "Microsoft says it found malicious software in its systems"]]></title><description><![CDATA[
<p>Mutually Assured Destruction relies on the victim knowing that they've been destroyed.<p>Lots of these so-called "Cyber weapons" are operated by actors who are very effective at leaving no trace.<p>It's been in the background before but in the reports about this SolarWinds issue the "leaves no trace" angle is starting to be emphasised much more.<p>Not knowing if or what has been compromised means that the attacker can choose when or how to use the information they obtained and the victim will be surprised, even a long time down the line.</p>
]]></description><pubDate>Fri, 18 Dec 2020 21:11:23 +0000</pubDate><link>https://news.ycombinator.com/item?id=25472084</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25472084</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25472084</guid></item><item><title><![CDATA[Changing CentOS in mid-stream (2004)]]></title><description><![CDATA[
<p>Article URL: <a href="https://lwn.net/Articles/840019/">https://lwn.net/Articles/840019/</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25459905">https://news.ycombinator.com/item?id=25459905</a></p>
<p>Points: 2</p>
<p># Comments: 0</p>
]]></description><pubDate>Thu, 17 Dec 2020 20:24:21 +0000</pubDate><link>https://lwn.net/Articles/840019/</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25459905</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25459905</guid></item><item><title><![CDATA[Rocky Linux: A CentOS replacement by the CentOS founder]]></title><description><![CDATA[
<p>Article URL: <a href="https://github.com/rocky-linux/rocky">https://github.com/rocky-linux/rocky</a></p>
<p>Comments URL: <a href="https://news.ycombinator.com/item?id=25445725">https://news.ycombinator.com/item?id=25445725</a></p>
<p>Points: 833</p>
<p># Comments: 533</p>
]]></description><pubDate>Wed, 16 Dec 2020 17:50:21 +0000</pubDate><link>https://github.com/rocky-linux/rocky</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25445725</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25445725</guid></item><item><title><![CDATA[New comment by andyjpb in "Facebook to move UK users to California terms, avoiding EU privacy rules"]]></title><description><![CDATA[
<p>I think this outlook is very much part of the reason that Britons are worried about Facebook's move to Californian terms.<p>In the UK we do have very well established "Consumer Law" which is there explicitly to protect the consumer and recognises that they are often not otherwise in a powerful position.<p>The most relevant stuff for Facebook is the data protection stuff, but another example, relevant to other online transactions, is the Distance Selling Regulations ( <a href="https://www.gov.uk/online-and-distance-selling-for-businesses" rel="nofollow">https://www.gov.uk/online-and-distance-selling-for-businesse...</a> ). This gives the customer the right to cancel, without a reason, for up to 14 days after the goods are delivered. If the business doesn't explicitly tell you this then your right to cancel is extended to 12 months.</p>
]]></description><pubDate>Wed, 16 Dec 2020 14:15:38 +0000</pubDate><link>https://news.ycombinator.com/item?id=25442683</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25442683</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25442683</guid></item><item><title><![CDATA[New comment by andyjpb in "Source of the famous “Now you have two problems” quote (2006)"]]></title><description><![CDATA[
<p>You're not strictly wrong...<p>But what I'm trying to say is that what's in your database should be well defined. You shouldn't just put any old stuff in there. You should have a standard for exactly how everything is escaped (or not) so that your consumers have a spec to work to.<p>You'd do the same with, say, character encodings. One option is to convert everything to a single character set on the way in, such as UTF-8. Another option is to annotate everything with the character set it uses. You must chose one.<p>Relying on adhoc code spread across the codebase for the security properties of untrusted data leads to whack-a-mole security situations.<p>Being able to trust the data in your database is essential.<p>Note, that absolutely <i>doesn't</i> mean things like "Robert'); DROP TABLE Students;--" shouldn't appear in database fields.<p>It just means that if you define the type of a field to be "eMail address" then consumers of it really should be able to trust that it really is a legitimate and valid eMail address. What does "valid" mean in this context? Well, that's up to your spec. Perhaps just "legally structured". Perhaps "something that eMail can actually be delivered to". Perhaps "something that is known and assured to actually be associated with this particular user".<p>...but you must be explicit otherwise consumers have nothing to work from and you're building castles on the sand.</p>
]]></description><pubDate>Wed, 16 Dec 2020 12:13:12 +0000</pubDate><link>https://news.ycombinator.com/item?id=25441661</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25441661</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25441661</guid></item><item><title><![CDATA[New comment by andyjpb in "Source of the famous “Now you have two problems” quote (2006)"]]></title><description><![CDATA[
<p>This will allow your program to be used as a vector to attack the things your program depends on.<p>It's true that those bits of eMail infrastructure are probably more robust but it's still strictly bad practice.<p>Even if you're "just" storing it in your database, you should sanitise it on the way in so that when someone does something "unexpected" with it, such as display it in a web browser UI, you're not going to suffer from injection attacks there either.</p>
]]></description><pubDate>Wed, 16 Dec 2020 01:15:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=25437812</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25437812</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25437812</guid></item><item><title><![CDATA[New comment by andyjpb in "Source of the famous “Now you have two problems” quote (2006)"]]></title><description><![CDATA[
<p>Yes!<p><a href="http://wiki.call-cc.org/eggref/4/email-address" rel="nofollow">http://wiki.call-cc.org/eggref/4/email-address</a><p><a href="https://bitbucket.org/knodium/email-address/src/master/email-address.scm" rel="nofollow">https://bitbucket.org/knodium/email-address/src/master/email...</a><p>It's a fair few lines of code but most of it comes directly from the RFC. It's also longer than it could be because it covers the entire RFC822 syntax, including groups, lists, routes, comments and To: header styles.</p>
]]></description><pubDate>Wed, 16 Dec 2020 01:09:40 +0000</pubDate><link>https://news.ycombinator.com/item?id=25437762</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25437762</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25437762</guid></item><item><title><![CDATA[New comment by andyjpb in "Facebook to move UK users to California terms, avoiding EU privacy rules"]]></title><description><![CDATA[
<p>Facebook don't "sell ads".
Well, literally, they do.<p>...but the product they're actually offering is "behaviour".<p>They sell access to the levers to influence behaviour.</p>
]]></description><pubDate>Wed, 16 Dec 2020 00:58:11 +0000</pubDate><link>https://news.ycombinator.com/item?id=25437671</link><dc:creator>andyjpb</dc:creator><comments>https://news.ycombinator.com/item?id=25437671</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=25437671</guid></item></channel></rss>