<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: scraft</title><link>https://news.ycombinator.com/user?id=scraft</link><description>Hacker News RSS</description><docs>https://hnrss.org/</docs><generator>hnrss v2.1.1</generator><lastBuildDate>Sun, 11 Oct 2026 05:26:58 +0000</lastBuildDate><atom:link href="https://hnrss.org/user?id=scraft" rel="self" type="application/rss+xml"></atom:link><item><title><![CDATA[New comment by scraft in "No Man Is an Island"]]></title><description><![CDATA[
<p>Some men are islands. I'm a bloody island; I'm bloody Ibiza.</p>
]]></description><pubDate>Fri, 09 Oct 2026 21:44:30 +0000</pubDate><link>https://news.ycombinator.com/item?id=50026957</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=50026957</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=50026957</guid></item><item><title><![CDATA[New comment by scraft in "The CSS Zen Garden dream, finally shipped"]]></title><description><![CDATA[
<p>On Chrome, Android, when I bring the menu up, and scroll to the bottom, the Newsletter menu item is cut off (I know it is there as I can see it on Firefox Android).</p>
]]></description><pubDate>Tue, 15 Sep 2026 21:15:21 +0000</pubDate><link>https://news.ycombinator.com/item?id=49719008</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=49719008</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=49719008</guid></item><item><title><![CDATA[New comment by scraft in "Game Boy Advance Dev: Logging to the Console"]]></title><description><![CDATA[
<p>Small defensive suggestion: I’d usually define both the enabled and disabled versions as statement-like macros:<p><pre><code>  #ifdef MGBALOG
  #define mgbalog(level, format, ...) \
      do { _mgbalog(level, format, ##__VA_ARGS__); } while (0)
  #else
  #define mgbalog(level, format, ...) \
      do { } while (0)
  #endif
</code></pre>
For the exact usage shown here, "mgbalog(...);" will mostly work with the empty replacement-list version, since it just leaves a bare ";". So this is not a guaranteed bug.<p>The reason I prefer the "do { } while (0)" form is that it keeps the macro structurally equivalent to a single statement in both debug and release builds. With the empty disabled macro, this:<p><pre><code>  if (failed)
      mgbalog(ERROR, "failed");
</code></pre>
becomes:<p><pre><code>  if (failed)
      ;
</code></pre>
That is valid C, but it can trigger empty-body / suspicious-semicolon warnings, for example GCC’s "-Wempty-body", which matters if the project builds with "-Wextra" or warnings-as-errors.<p>It also means the enabled case is already set up correctly if the macro later grows beyond a single function call. For example, if you later add another statement to the macro:<p><pre><code>  #define LOG(x) printf("log\n"); printf("%s\n", x)

  if (failed)
      LOG("failed");
  else
      recover();
</code></pre>
then the expansion breaks because the "else" no longer attaches to the intended "if".<p>So in this specific case the empty macro is probably fine for ordinary "mgbalog(...);" calls, but wrapping both versions in "do { } while (0)" is the more conventional and future-proof C macro shape.</p>
]]></description><pubDate>Sat, 04 Jul 2026 20:08:39 +0000</pubDate><link>https://news.ycombinator.com/item?id=48788517</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=48788517</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48788517</guid></item><item><title><![CDATA[New comment by scraft in "Stop the Apple Music app from launching"]]></title><description><![CDATA[
<p>PSA: don't run random commands people on the internet tell you to run, it turns out those people haven't even run those commands themselves..</p>
]]></description><pubDate>Mon, 08 Jun 2026 19:18:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48450198</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=48450198</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48450198</guid></item><item><title><![CDATA[New comment by scraft in "Stop the Apple Music app from launching"]]></title><description><![CDATA[
<p>This software doesn't work on an Android phone.</p>
]]></description><pubDate>Mon, 08 Jun 2026 19:16:55 +0000</pubDate><link>https://news.ycombinator.com/item?id=48450177</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=48450177</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48450177</guid></item><item><title><![CDATA[New comment by scraft in "Shipping a laptop to a refugee camp in Uganda"]]></title><description><![CDATA[
<p>But this process, including sending smaller items first etc sounds like it would have taken longer than what the OP did? And the OP was trying to do it quickly to tie in with the beginning of the semester?</p>
]]></description><pubDate>Sat, 23 May 2026 12:58:18 +0000</pubDate><link>https://news.ycombinator.com/item?id=48247288</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=48247288</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48247288</guid></item><item><title><![CDATA[New comment by scraft in "Hand Drawn QR Codes (2025)"]]></title><description><![CDATA[
<p>I saw similar engraved and then inked onto wooden boards at a restaurant, sadly, despite the error handling, 3 out of 4 I tried were not scannable, the 1 I did manage to scan to me to a reviews site for the restaurant (where a lot of reviews said they struggled to make the QR work - likely not the feedback the restaurant wanted)! I guess it kept me entertained whilst waiting for the bill.</p>
]]></description><pubDate>Tue, 05 May 2026 10:06:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=48020334</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=48020334</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=48020334</guid></item><item><title><![CDATA[New comment by scraft in "GTFOBins"]]></title><description><![CDATA[
<p>The last time I used anything similar to this was circa 1995 at secondary school, using Windows 3.11 computers, that has been set up so you could only launch a small number of authorised applications.<p>One of those was Word.<p>In Word you could write macros and use shell to launch other applications.<p>Suddenly the locked down computer that exposed a handful of applications could run anything (well anything a Windows 3.11 machine in 1995 could run).<p>It was quite exciting at the time, I don't feel like I have hit the same sort of issues since. Ocassionally I see people say that some touch screen information displays (in shops/shopping centres etc) have ways to escape from kiosk mode (locked to an app) so you can use them for anything, I guess that is similar.</p>
]]></description><pubDate>Tue, 28 Apr 2026 10:51:26 +0000</pubDate><link>https://news.ycombinator.com/item?id=47932690</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=47932690</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=47932690</guid></item><item><title><![CDATA[New comment by scraft in "PlayStation 3 Architecture (2021)"]]></title><description><![CDATA[
<p>On the PS2 there was a very small memory area, called the scratchpad, that was very quick to access, the rough idea on the PS2 was to DMA data in and out of the scratch pad, and then do work in the data, without creating contention with everything else going on at the same time.<p>In general most developers struggled to do much with it, it was just too small (combined with the fiddlyness of using it).<p>PS2 programmer's were very used to thinking in this way as it's how the rendering had to be done. There is a couple of vector units, and one of them is connected to the GPU, so the general structure most developers followed was to have 4 buffers in the VU memory (I think it only had 16kb of memory or something pretty small), but essentially in parallel you'd have:<p>1. New data being DMAd in from main memory to VU memory (into say buffer 1/4).
2. Previous data in buffer 3/4 being transformed, lit, coloured, etc and output into buffer 4/4.
3. Data from buffer 2/4 being sent/rendered by the GPU.<p>Then once the above had finished it would flip, so you'd alternate like:<p>Data in: B1 (main memory to VU)
Data out: B2 (VU to GPU)
Data process from: B3 (VU processing)
Data process to: B4 (VU processing)<p>Data in: B3
Data out: B4
Data process from: B1
Data process to: B2<p>The VU has two pipelines running in parallel (float and integer), and every instruction had an exact number of cycles to process, if you read a result before it is ready you stall the pipeline, so you had to painstakingly interleave and order your instructions to process three verts at a time and be very clever about register pressure etc.<p>There is obviously some clever syncing logic to allow all of this to work, allowing the DMA to wait until the VU kicks off the next GPU batch etc.<p>It was complex to get your head around, set up all the moving parts and debug when it goes wrong. When it goes wrong it pretty much just hangs, so you had to write a lot of validators. On PS2 you basically spend the frame building up a huge DMA list, and then at the end of the frame kick it off and it renders everything, so the DMA will transfer VU programs to the VU, upload data to the VU, wait for it to process and upload next batch, at the end upload next program, upload settings to GPU registers, bacially everything. Once that DMA is kicked off no more CPU code is involved in rendering the frame, so you have a MB or so of pure memory transfer instructions firing off, if any of them are wrong you are in a world of pain.<p>Then throw in, just to keep things interesting, the fact that anything you write to memory is likely stuck in caches, and DMA doesn't seem caches, so extra care has to be taken to make sure caches are flushed before using DMA.<p>It was a magical, horrible, wonderful, painful, joyous, impossible, satisfying, sickening, amazing time.</p>
]]></description><pubDate>Sat, 18 Oct 2025 09:57:35 +0000</pubDate><link>https://news.ycombinator.com/item?id=45626141</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=45626141</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=45626141</guid></item><item><title><![CDATA[New comment by scraft in "If the moon were only 1 pixel: A tediously accurate solar system model (2014)"]]></title><description><![CDATA[
<p>Actually, in special relativity, if you could somehow travel at light speed, your own proper time wouldn’t pass at all. The journey would be instant from your perspective. You’d experience zero time between departure and arrival.<p>That’s not just "relativistically instant", that’s literally instant in your frame. The time dilation becomes total at light speed, and length contraction collapses the entire distance in the direction of travel to zero.<p>Now, it’s true we can’t really assign a rest frame to a photon, so this is a thought experiment. But if you extrapolate the math, the conclusion holds: no time passes for something traveling at light speed.</p>
]]></description><pubDate>Fri, 20 Jun 2025 16:12:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=44329170</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=44329170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44329170</guid></item><item><title><![CDATA[New comment by scraft in "If the moon were only 1 pixel: A tediously accurate solar system model (2014)"]]></title><description><![CDATA[
<p>Well, if you were traveling at light speed you could move anywhere in the universe instantly. If you are an observer on earth, watching an object move away from you at the speed of light, then it will take a very long time to traverse the tiniest regions of the universe.</p>
]]></description><pubDate>Fri, 13 Jun 2025 12:44:03 +0000</pubDate><link>https://news.ycombinator.com/item?id=44268004</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=44268004</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=44268004</guid></item><item><title><![CDATA[New comment by scraft in "Far Cry 1.34 source code (2006)"]]></title><description><![CDATA[
<p>> if i am not writing or editing a file, just doing nothing, then why FS breaks?<p>For a few reasons, but the most common is that when you write a file, you 'fwrite' operation doesn't typically immediately write blocks to the disk, instead it gets written to caches that will be written to disk in due course. Changes to the disk, tables with crucial data, etc again are just updated in memory, and written to the disk at a 'sensible' time. It's possible that you aren't actively performing operations to modify the disk, but various previous changes are sitting in memory waiting to be synced. If you kill the power then these changes aren't flushed so you can end up with corruption/filesystem problems. The main reason things work this way is for performance.</p>
]]></description><pubDate>Tue, 04 Jul 2023 16:12:46 +0000</pubDate><link>https://news.ycombinator.com/item?id=36588615</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=36588615</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=36588615</guid></item><item><title><![CDATA[New comment by scraft in "Show HN: Get answers for shell commands from GPT3 from your terminal"]]></title><description><![CDATA[
<p>What if the nondestructive thing you are querying GPT3 for returns a bad result which is destructive?</p>
]]></description><pubDate>Fri, 18 Nov 2022 08:56:13 +0000</pubDate><link>https://news.ycombinator.com/item?id=33652081</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=33652081</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=33652081</guid></item><item><title><![CDATA[New comment by scraft in "Ask HN: Meal Planning App?"]]></title><description><![CDATA[
<p>I use Copy Me That (website/app), I am not sure if it has all the features you want, but I use it for storing recipes in a "no nonsense" format and can share recipes with friends/family. I get the impression if you pay you can do shopping lists etc but I haven't used that side of it to comment.</p>
]]></description><pubDate>Tue, 02 Aug 2022 16:26:48 +0000</pubDate><link>https://news.ycombinator.com/item?id=32320779</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=32320779</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=32320779</guid></item><item><title><![CDATA[New comment by scraft in "No, you can’t save £30 per year by switching off your “standby” devices"]]></title><description><![CDATA[
<p>I heard this £30 saving stuff on the radio this morning, and it made me shake my head a little. I remember when I got a socket adapter that measures power consumption, and I went around checking all my appliances, eager to find out which are drawing lots of power, excited at the money savings. Started with my old, huge, plasma TV, that is the best part of 15 years old - surely chugging loads of power in standby? Nope, next to nothing. Monitors, same. Network switches, same. Essentially I didn't find anything in my property that was doing anything unexpected. Having hot water (which I get via electricity as my flat doesn't have gas) for a single day will use up more energy than I'd save unplugging all my devices. Similar for heating (again, electricity based) on a colder day in winter would cost more than all the standby devices.<p>I remember a long time ago (25 years?) someone 'invented' a device where you plug your TV into it, and it has an IR receiver to go with it, you program it to respond to your TVs power button (on the remote control), and then when you go to put your TV into standby, the plug then turns off too, and when you switch it on it does the opposite. At the time it was being touted as the money saver, and I got the impression (although never actually tested!) TVs back then did draw a lot in standby, so this 'invention' was a legitimately good one. But it didn't seem to really take off, I am assume because standby was rapidly implemented in a way where there is such minimal electrical draw that it would be pointless.</p>
]]></description><pubDate>Wed, 27 Apr 2022 12:18:47 +0000</pubDate><link>https://news.ycombinator.com/item?id=31178975</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=31178975</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=31178975</guid></item><item><title><![CDATA[New comment by scraft in "Ask HN: How did my LastPass master password get leaked?"]]></title><description><![CDATA[
<p>I used Keepass + Dropbox (to sync database). This set up was suggested to me when I joined a company that requires complex unique passwords for all sign ups. At the time I didn't think too much about it, but this thread has made me thankful I was guided in this direction.<p>I don't have experience of any other password management software, so I certainly can't compare and contrast. But I will say Keepass + Dropbox has worked flawlessly for me across desktop, laptop and mobile. The biggest inconvenience I have had is things like manually typing in a Netflix password into a Smart TV when on holiday (just takes time with long passwords with capitals, lowercase, numbers and symbols).</p>
]]></description><pubDate>Tue, 28 Dec 2021 10:43:24 +0000</pubDate><link>https://news.ycombinator.com/item?id=29712347</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=29712347</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29712347</guid></item><item><title><![CDATA[New comment by scraft in "Western Digital shuckable drive price tracker"]]></title><description><![CDATA[
<p>Remove the drive from the external casing and be able to use the drive in ones machine.</p>
]]></description><pubDate>Sat, 06 Nov 2021 21:56:50 +0000</pubDate><link>https://news.ycombinator.com/item?id=29134170</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=29134170</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=29134170</guid></item><item><title><![CDATA[New comment by scraft in "Before the iPhone, I worked on a few games for what were called "feature phones""]]></title><description><![CDATA[
<p>It surprises me that people think that it isn't possible to make money selling emulators.<p><a href="https://play.google.com/store/apps/details?id=com.dsemu.drastic" rel="nofollow">https://play.google.com/store/apps/details?id=com.dsemu.dras...</a><p>Over one million downloads, price £4.99<p>;)</p>
]]></description><pubDate>Thu, 20 May 2021 20:03:01 +0000</pubDate><link>https://news.ycombinator.com/item?id=27226402</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=27226402</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=27226402</guid></item><item><title><![CDATA[New comment by scraft in "Ask HN: Those who quit their jobs to travel the world, how did it go?"]]></title><description><![CDATA[
<p>Budgeted £42k ended up costing £60k for us both. I know some people which did it for a lot less (like half) but we didn't want to miss out on various things as we went.<p>We stayed in a lot of hostels, along with some guest houses, Airbnbs, hotels but the majority of the time it was something in the cheaper end of the spectrum.<p>We initially budgeted £10 food, £5 drink and £5 activities per day, and kept quite a lot of records at time, but ultimately we just ended up feeling "it is what it is". We made the active decision to just make the most of the trip and overspend. For a reasonable number of days we could average out towards our budget but we found fairly regularly there were bigger expenses for activities which would blow the budget and we neither wanted to miss them or do nothing for the next fortnight! Once you have committed so much, it sort of feels like it is better to commit a bit more and make it awesome (£60k spent on awesome seemed better than £42k spent on okay).<p>Before leaving I ran a couple of companies, one which employed 12 people and another which was contractor based. I wasn't wealthy (at least not by the standards set in the UK if you speak to a financial advisor) and £60k was a large amount of money for me to spend (a very large amount). But all things going well with life, you earn it, you spend it, we decided we wanted to do some of that spending earlier in life whilst we could enjoy it.<p>Since then... I have had heart ops, a blood clot on the lung, my partner has developed ME/chronic fatigue syndrome... COVID19 has engulfed the world. Needless to say we are glad, thankful and lucky we did what we did when we did!</p>
]]></description><pubDate>Wed, 10 Mar 2021 15:27:49 +0000</pubDate><link>https://news.ycombinator.com/item?id=26412210</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=26412210</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26412210</guid></item><item><title><![CDATA[New comment by scraft in "Ask HN: Those who quit their jobs to travel the world, how did it go?"]]></title><description><![CDATA[
<p>It took a while to plan, not just the trip stuff but finishing a job, packing up a house, signing cars off the road, cancelling bills etc.<p>We got a round the world flight ticket, we had to commit to the first six month flight times then half way through commit to the rest. It was possible to change for a fee. But we found the flights gave us a schedule to work around.<p>Some parts we planned extensively (you can't go to Tibet without being on a tour the whole time you are there, Machu Picchu books up months in advance, etc) other parts (Vietnam, Cambodia, Laos, Thailand) there is somewhat of an established back packer route you can follow and just make sure you get through in time for the next flight.<p>By far the least safe place was South America, we met many travellers there who had been mugged, beaten up, etc. It was our last destination and we were not very adventurous as we were tired and also just wanted to get to the end without an incident.<p>Other than that, we generally felt safe, there were one off isolated incidents (drunk Russian man on train trying to make advances on my partner when he thought I was asleep) which were uncomfortable, or going to a train station in Jaipur at 3 in the morning and waiting for a train, with lots of people loitering around and bothering us, and no real security or staff to reassure us, but these were exceptions rather than the norm.<p>We typically went to places which had a reasonable number of travellers, so it didn't feel too crazy in that sense.</p>
]]></description><pubDate>Wed, 10 Mar 2021 11:40:29 +0000</pubDate><link>https://news.ycombinator.com/item?id=26410224</link><dc:creator>scraft</dc:creator><comments>https://news.ycombinator.com/item?id=26410224</comments><guid isPermaLink="false">https://news.ycombinator.com/item?id=26410224</guid></item></channel></rss>