HNHacker News
TopNewBestAskShowJobs

SulphurCrested

382 karma · joined December 6, 2020

submissionscomments
SulphurCrested··on Telstra outage: The night a network decided the year was 2006
I haven’t read the report, but I did read at the time that it was a certificate validation failure: clients thought the current time was before the "Not Valid Before" date. I forget now what essential service became unavailable because it was disbelieved.

(Source would either have been the Whirlpool forums – where Australian ISP and telco engineers can be found – or local Australian mass media.)

SulphurCrested··on Linear Address Spaces: Unsafe at any speed (2022)
The Burroughs large system architecture of the 1960s and 1970s (B6500, B6700 etc.) did it. Objects were called “arrays” and there was hardware support for allocating and deallocating them in Algol, the native language. These systems were initially aimed at businesses (for example, Ford was a big customer for such things as managing what parts were flowing where) I believe, but later they managed to support FORTRAN with its unsafe flat model.

These were large machines (think of a room 20m square) and with explicit hardware support for Algol operations including the array stuff and display registers for nested functions, were complex and power hungry and with a lot to go wrong. Eventually, with the technology of the day, they became uncompetitive against simpler architectures. By this time too, people wanted to program in languages like C++ that were not supported.

With today’s technology, it might be possible.

SulphurCrested··on Affinity Studio now free
The Photo (v2) app gives you a choice of using Apple’s converters or “Serif” converters. But, when last I looked, lens corrections were not available with the Apple converters.
SulphurCrested··on macOS dotfiles should not go in –/Library/Application Support
Yes, ideally the tool should edit its own preferences. A quick and dirty tool might leave the user to run the macOS "defaults" command line utility themselves. It’s certainly no worse than looking up the dotfile format and firing up vi.
SulphurCrested··on macOS dotfiles should not go in –/Library/Application Support
Towards the end TFA claims that Apple’s bundled command line utilities, including zsh and vim, put their dotfiles in ~/.config. They don’t. They put them in the traditional BSD place, the user’s home directory ~/. Looking at mine now, I see .bash_login, .emacs (wow! that’s old), .lldb, .lldbinit, .vimrc, .swiftpm, .z{profile,env,rc} and a few others. I see no ~/.config directory.

My personal practice when writing command line utiities for macOS is to use the macOS API to write settings (previously known as “preferences”) into ~/Library/Preferences, so they can interoperate with any GUI versions of them I might like to write, and for the utilities themselves to have command line options to control those settings. As a sibling comment suggests, you do need to avoid name space collisions. You can use a reverse DNS name, or some companies are big enough just to use their company name. They do appear as .plist files but are actually maintained by a daemon – which nicely avoids race problems with multiple processes updating settings.

If I were writing a portable utility which had a dotfile with a documented format the user was expected to edit, I would make it a dotfile under the home directory.

~/Library/Application Support is really more for per-user static data, like presets and templates, things that are known in a GUI by a string in some dialogue but not necessarily thought of by the user as a file.

SulphurCrested··on Jim Lovell, Apollo 13 commander, has died
I highly recommend his book with Jeffrey Kluger, “Apollo 13”, originally published as “Lost Moon” in 1994.
SulphurCrested··on Hidden interface controls are affecting usability
I live in a country where the socket on the wall the fan is plugged into also has a switch, which could be on or off. So to make the fan go around, both switches must be on; the user needs to know about and have a mental model of serial circuits.

If it’s just a button the user just has to know two things: turn the switch on at the wall socket when plugging in, which becomes habit since childhoood; and press and hold the button on the fan to make it go, which I suspect most children in 2025 can manage. These two things don’t interact and can be known and learned separately.

As you said, the knob’s position tells you about the switch. But it’s the fan the user is interested in, not the switch.

(BTW, if the fan has a motion sensor you can’t tell it’s off by the fact the blades aren’t turning. There’s probably a telltale LED.)

SulphurCrested··on Hidden interface controls that affect usability
The article suggests a “simple, well-labeled rotary control ... would accomplish the same function” as a power button and “prevent the user from accidentally activating the control in a way that is no longer hidden”. But a rotary control itself has a serious problem, in that it can mislead the user as to the state, on or off. If the power has failed and the machine does not restart when it comes back, the rotary control will remain in the ON state when the machine is off. From memory, Donald Norman called this kind of thing “false affordance” and gave the example of a door that needed to be pulled having a push-plate on it.

So my iMac, among many other devices like the light I wear on my head camping, has a button which you long-press to turn on. It is a very common pattern which most people will have come across, and it’s reasonable to expect people to learn it. The buttons are even labelled with an ISO standard symbol which you are expected to know.

SulphurCrested··on The magic of through running
There’s a little-used alternative to through-running as described in TFA, which is to turn trains around in an underground loop in the city centre and send them out again, usually on the same line they came from. This is done in Sydney (1920s) and Melbourne (1970s).

In the case of Melbourne, the design was chosen because of the extremely lop-sided development of the city, whose centre (“the city”) lies at the head of a bay, with most of the population and population growth to the south and east of the city in the 1970s. This is true to a lesser extent in Sydney, bearing in mind that its city loop was designed before the Harbour Bridge was built.

Melbourne’s current through-running project, the Metro Tunnel, appears in the first table, but it doesn’t belong in the second table of cities which could greatly benefit from future through-running projects. All 16 lines can access the city loop (which has 4 parallel tunnels). Due to capacity constraints, most of the time one of those 16 lines terminates at a main city station, and two others through run with each other. The Metro Tunnel will relieve the city loop, similar to the Munich trunk amplification project described in TFA; once it opens all lines will either through-run or go around a loop.

Locals are used to the City Loop but some visitors find it hard to navigate. Each line runs either clockwise or anticlockwise. For historical reasons two of the four loops still reverse direction in the middle of the day.

It’s true that a further through-running tunnel (Metro Tunnel 2) and conversion of two of the four City Loop tunnels to through-running (City Loop Reconfiguration) appeared on the long-range plans from 2012. But these are not required yet; the city is building three other major rail projects first.

SulphurCrested··on Understanding the Origins and the Evolution of Vi and Vim
It could also be invoked on VAX/VMS under the name “MUNG”, which was said to stand for “Modify Until No Good”. I think that style of invocation did something slightly different than using the TECO command, like creating a new file.
SulphurCrested··on Understanding the Origins and the Evolution of Vi and Vim
We had TECO on our DEC VAXes running VMS in the early-mid 1980s. It had a ”VT52” mode (as you say, a macro), and at least one of the terminals on my desk supported those escape sequences. Wikipedia says the VT52 terminal was made from 1975 to 1978, so those macros were probably fairly early. By this stage, TECO distribution was fragmented with various incompatible versions around, so probably some lacked that macro or other full-screen macros.

Although I had a terminal which could run TECO full screen, I found that too slow and just used it in line mode. You could conveniently reprint surrounding lines by adding a few characters to the end of a commmand (I still have HT <ESC> <ESC> burned into my brain.) The VT52 macro had you typing commands into line 24 like an emacs minibuffer.

I never used it for all my editing, but it excelled at certain things.

The version of TECO we had was the one which shipped with VMS. At some point later on, I think, DEC stopped shipping it, and we migrated to a TECO-inspired full-screen editor developed by another university. Once that arrived, we hard-core TECO users, all 4 of us, were won over within a week.

SulphurCrested··on Melbourne Train Control System is running on a hardware emulated PDP11
The tunnel is signalled only for CBTC. The outer ends of the line have only the old fixed-block signalling. The section from Westall in the south east to (eventually) Sunshine in the north has both. There is a dedicated model of train, the HCMT, which is fitted with the CBTC and is the only type that can run through the tunnel during normal operation. When an HCMT passes Westall heading towards the tunnel, the lamps on the fixed block signalling ahead of it go out. When a diesel regional train has HCMTs ahead of it on the next fixed block, it will see the lamps lit for Stop.

Trains runnin have been running this way in normal passenger service for months now, though I think it’s only in the last few weeks they’ve been testing it with HCMTs entering the tunnel at Hawksburn with diesels behind them instead going to South Yarra. (Currently, the trains with actual passengers take the South Yarra route at that junction.)

The HCMTs run only on this line, from Sunbury to East Pakenham/Cranbourne. They have their own new depot at East Pakenham so they don’t have to go elsewhere for stabling and maintenance. And they probably can’t; just for them to go through the City Loop as is temporarily required that tunnel had to be resignalled (the old location wasn’t visible from the cab.)

They did run an old Comeng train through the Metro Tunnel, without any signalling, to test clearance for a track maintenance train.

SulphurCrested··on Melbourne Train Control System is running on a hardware emulated PDP11
I worked on this system during its development in the 1980s.

There were actually two PDP-11s, the one to run the platform displays running locally-written software.

The “weird control sequences” sent between the PDP-11 and the plaform displays were HDLC, a synchronous protocol then common in IBM token ring networks as SDLC. This was actually a decent technical solution because they only had to run one coax cable down each train line and the PIDS could sit there watching for their token slot. The hardware for HDLC would have been commodity, whereas fibre optic or carrier sense for long-run packet was not.

The other PDP-11 that ran the signals (the “train describer”) could plot the position of trains on glass TTY terminals using escape sequences (VT100, same as in xterm today) so our PDP-11 pretended to be one of those and screen-scraped. So I was told, when I asked the guy who wrote it.

All of that was done before I got there. I was called in with 6 weeks to go before commissioning to fix the bit in the middle that recalculated train positions and arrival times.

SulphurCrested··on DOS APPEND
The console processor was an LSI-11, a PDP-11 on a chip. It hung off the inside of one of the cabinet doors. It was responsible for booting the 780 and also gave VMS access to its own 8″ floppy drive, which had a habit of overheating.

The 750 was later technology, IIRC MOSFET. It also lacked the 780’s “compatibility mode”, which allowed VMS to run 16 bit RSX-11 executables by implementing the PDP-11 instruction set in addition to the 32 bit VAX one, and could boot without a console processor. If you didn’t need all the users on one machine, the 750 was cheaper per user.

SulphurCrested··on Ask HN: What underrated open source project deserves more recognition?
Phil Harvey’s exiftool [0]. Despite being a command-line tool, it is widely known and used by professional and advanced amateur photographers to extract or repair metadata in images. It does handle more than just still images.

It’s written in perl and the perl API for handling the metadata is documented, but I’ve never seen anyone use that directly.

[0] exiftool.org

SulphurCrested··on Cities stripping out concrete for earth and plants
The article, especially in its second half, confuses the City of Melbourne municipality with the city of Melbourne.

The former is the central business district and surrounding area, the one with 33,000 open air car parks of which the local academic they interviewed appears to be proposing 11,000 be replaced by greenery. It is a nice thought, but the City of Melbourne (think Westminster or City of London in a London context) is notoriously reliant on revenue from those car parks and isn’t about kill that goose yet. Their policy [0] is to “support the conversion of car parking spaces to be used for another function where there is a strategic need to do so” - and the list of functions doesn’t include greenery for its own sake. In fairness, there are already a lot of parks within the municipality.

The latter is the metro area of 5 million people 100km across, and most of it has plenty of green space. For example, most residential streets have a wide grassed verge with street trees. There is definitely a problem with gardens disappearing under apartments and McMansions, but it’s mostly not car parking that’s driving habitat loss.

[0] https://www.melbourne.vic.gov.au/SiteCollectionDocuments/par...

SulphurCrested··on Why did older computers and OSes use UPPER case instead of lower case?
The Multics terminals during its initial development at MIT were also mostly variants of the IBM Selectric typewriter, which rendered lower case text with descenders just fine. [0] [1]

[0] https://multicians.org/terminals.html [1] https://multicians.org/mga.html#2741

SulphurCrested··on Why did older computers and OSes use UPPER case instead of lower case?
In late 1977/early 1978 I used a Honeywell Level 66 mainframe whose timesharing interface was lower-case. My memory is hazy, but I’m pretty sure I typed in the FORTRAN in lower case, and the printouts were in upper case, including the comments. Probably, as mentioned by other posters, the line printer only had an upper case train. Certainly I typed lower case into the command prompt.

The operating system on that piece of overworked big iron was GCOS, formerly GECOS. This is the very same GECOS that’s still a field in /etc/passwd, where it was originally used to store the user’s GECOS account name. Bell Labs had a GECOS system and you could spool jobs to it from the Unix systems, so that was why the field existed. It shows the Unix creators were familiar with that operating system.

In 1977 Unix Version 7 had only just come out and was beginning to appear outside Bell Labs. Its influence on the wider computing world would have been slight.

However, I doubt the Unix creators got the lower case directly from GECOS. They had worked on Multics, which was also lower case. (Coincidentally, Multics ran on the same hardware as GECOS, with the addition of a memory management unit.)

SulphurCrested··on Sony announces a9 III: first full-frame global shutter camera
More capable mechanical focal plane shutters with a flash sync speed of 1/200s or faster do not show objectionable rolling shutter effects for most practical stills photography, including wildlife and most sports. Better mirrorless cameras use the same types of shutters.

Older film cameras may have had flash sync speeds of 1/60s, and rolling shutter was sometimes a problem with them.

Mirrorless cameras also have a fully electronic shutter, for silent shooting and shooting video. (Some DSLRs could also shoot video this way.) In all but a handful of very expensive cameras, it takes a long time to scan the sensor and rolling shutter is obtrusive – in many cameras it is as slow as 1/15s. In that handful of expensive cameras it is around 1/200s, like a fast mechanical shutter. Nikon’s expensive cameras don’t even have a mechanical shutter any more.

That last bit of speed, from 1/200s to the 0s of a global shutter, is detectable in certain examples Sony showed off in their presentation. Most of these examples relate to high-end sports photography.

Flash sync at any speed means flashes can be built more cheaply and cycle faster. Currently, to shoot faster than the flash sync speed the flash must emit a long burst instead of a single pulse. For this reason, some cameras used a leaf shutter, which can sync at any speed, but they were typically expensive to make and sometimes less reliable.

There are related problems to do with the refresh rate of LEDs in the field of view, which are solved by the global shutter and somewhat clumsily worked around in cameras without one by trying to sync the shutter with the refresh rate. Again, high-end sports photographers are the ones who usually encounter this problem.

SulphurCrested··on Metric Time
October used to be the 8th month (and September, November and December the 7th, 9th and 10th) because March was the first month of the year.
SulphurCrested··on Metric Time
You could call this lots of things, but you shouldn’t call it “metric” because its second is not a metric second. In the SI (metric) system, the second is one of the fundamental units. The world does not need a conflicting definition for the second.

As someone who’s implemented a date and time library, the real pain is in dates, leap seconds and time zone transitions. 86,400 seconds in a day is a relative piece of cake.

The AM/PM thing is a solved problem. Many countries (not the one I live in) already use a 24 hour clock, in which 11pm is 23:00. Because many countries use it, most devices that keep time can be set to 12 or 24 hour clock. That includes almost every clock I own, including the oven in the kitchen, my car, all the HVAC units, and of course phones and computers. An exception is the irrigation system – the old one (designed in the USA) supports 24 hour time, but its replacement (designed in Australia) does not. I don’t think anyone, seeing all my clocks, has ever commented on them being in 24 hour mode. Most people have seen it before.

SulphurCrested··on Forty years of programming
Filco Majestouch 2 TKL with Cherry MX Brown switches. I configured macOS to swap the OPTION and COMMAND keys and physically swapped the keycaps using the supplied puller.

This is a Japanese keyboard with German switches. I’ve had it for quite a while. The Cherry patents have now expired so there are now several third parties making copies of the switches, and many makers of much cheaper mechanical keyboards. However, most of those I’ve seen lack OPTION and COMMAND on both sides. The Filco has OPTION, COMMAND and CTRL on both sides (and, of course, SHIFT).

On that last point, I worded my earlier post wrongly. What I should have said was that you never had to press a key and its shifts with the same hand if the shifts are available on the other side.

SulphurCrested··on Forty years of programming
Ask yourself why it frustrates you. Perhaps you can’t see exactly where the click will be – a high res screen makes a difference. Perhaps you haven’t learned all the mouse shortcuts. Two on macOS are: triple-click to select a whole line; and click, scroll down using PGDOWN or mouse actions, then SHIFT-click to select everything between the two. Perhaps it’s just a bad mouse.

I use a tenkeyless keyboard, which doesn’t have the calculator block at the right. The ones which have it I find put the mouse too far off to my right. It’s very important to me that there are OPTION and COMMAND keys on both sides of the keyboard, so that the opposite hand is doing the shifting; I’m never pressing two keys at once with fingers from the same hand. I’ve never used an ergonomic keyboard.

SulphurCrested··on Forty years of programming
This is going to be controversial, but what saved me was abandoning a keyboard-intense environment (emacs + command line) for Apple’s Xcode. I do still build much of the time at the command line, but editing code and switching between windows is mouse-heavy.(You can use Xcode as just a text editor if you like.) I cut and paste by selecting with the mouse where possible. I have a gaming mouse with a button programmed for macOS’s “Exposé” so I can find windows back – and I use a single screen, a 27″ iMac.

I have an Apple trackpad which I use to give my hand a break from the mouse, but I find that if I use it heavily for a day or two I get sore fingers. I use a mechanical keyboard. That too tends to cut up my fingers, and I’m on the lookout for a better one, or at least better keycaps.

I’ve been doing this for 45 years now, since age 19. Along the way I’ve used punchcards, line mode editors, TECO itself and two TECO-inspired full screen editors, various full-screen editors like DEC’s EDT, and emacs. I know vi, and will by habit drop into it when editing config files and so on, but don’t subscribe to the view that it solves the RSI problem. So I do know how to edit efficiently using keyboard shortcuts, but now think it’s the wrong thing to do.

I went through a stage where I used emacs and a Happy Hacking Keyboard, and was very sore at the end of it.

I am not slow with my mouse. I can churn out ~2000 lines of good C++ in a day. (But I am not a fan of the language from a typing point of view!)

SulphurCrested··on PostScript’s sudden death in Sonoma
Preview has already been sandboxed for years.
SulphurCrested··on How Australians made the early internet their own
Ours was via the network, although I think we didn’t take the alt tree.

Unix distributions, on the other hand, arrived on 9-track tape via the “distribution tree”. You would get a copy, then make copies and send those on. Bug reports (at least in my experience) went back the same way. I found the TCP URGENT off-by-one bug in the BSD API, and tried to report it to my upstream; it came back “will not fix”, but it was unclear whether that was some gatekeeper between me and BSD.

SulphurCrested··on How Australians made the early internet their own
We certainly had email before 1989. I managed systems at another university and had a working .edu.au email address there, email servers and a usenet feed, and had left that job by late 1986. In fact one of my systems was a beta for 4.2 BSD and I remember the protocol change to TCP from whatever came before it. At the same time Australia’s TLD changed from .oz to .au. Wikipedia says 4.2BSD came out in August 1983, so the 4.1z beta we ran must have come before that.

The University of Melbourne (munnari.oz) had a leased line to DEC’s Western Research Labs (decwrl) over which all of Australia’s traffic flowed. My systems connected to the Computer Science department’s machine, which had a link to munnari. Netnews was an overnight affair, and email slow. It was possible to remotely log in to an MIT system.

SulphurCrested··on Ask HN: Best tips for reducing eyestrain while coding with astigmatism?
I’ve had astigmatism my whole life, and worn glasses or contacts since age 4.

1. Wear your glasses! Even if you think you can see OK for a while without them.

2. The floaters and light-sensitivity should be checked by a medical professional (although apparently many people do get floaters with age). I’ve never had any problems with either. Note the difference between an opthalmologist (a doctor who diagnoses and treats eye conditionss), an optometrist (who measures you for corrective lenses) and an optician (who makes and supplies the lenses). Here in Australia, good optometrists will check you for some common eye conditions as part of our universal health system, but that isn’t necessarily the case elsewhere, and it’s only common conditions.

3. Regardless of light or dark themes, a good quality, bright, high-contrast and high-resolution screen with good quality fonts. (Up until Apple’s font patents expired quite recently, that last meant a Mac.) Example: iMac Retina 5K. I guess their new Studio Display which replaced it.

4. Light themes where possible. Black text on white, not grey on white, not grey on mid-grey or anything else dreamt up by some amateur designer with their screen brightness racked up too high. No amateur-designed fonts. I use 16 point Courier in black on white in Xcode, with syntax highlighting turned off completely. I do use some software whose only workable themes are dark (typical for photographic software) and then use a separate dark desktop and set the text to crisp white.

5. Room lighting should not be too dark.

SulphurCrested··on Power plug and socket (outlet) types
The standard was changed around 20 years ago to require the insulation. Before that, it wasn't required. Those IEC cables are probably just older than that.

A couple of other things they also did away with are non-moulded plugs supplied with appliances new, and piggy-back plugs.

SulphurCrested··on Australia's weird little time zone (2008)
The fallacy here is to assume either Adelaide or Melbourne are in the correct time zones with respect to the solar day.

Prior to 1895, Adelaide ran at solar time, GMT +9:14. When time zones were introduced, they went for GMT +9:00, but changed to GMT +9:30 after only 4 years. This probably reflected the reality that more people in SA live east of Adelaide than west of it.

Meanwhile, Sydney only had to put the clocks back 5 minutes to move from solar time to GMT +10:00, while Melbourne had to move the clocks forward 20 minutes to get into the same time zone as Sydney. (Both changes happened in February, 1895.) If we're going to have half-hour time zones, Melbourne is in the wrong one; it should be in the same zone that Adelaide currently uses.

So, in summary, by solar time Melbourne should be 20 minutes behind Sydney's current time zone and Adelaide 46 minutes. As there is a substantial population living on the NSW–Victoria border, not putting Melbourne at UTC+9:30 makes some sense. The same isn't true of SA's borders with Victoria and NSW. And so, we ended up with the current compromise, adopted in the era when railways and telegraphs became dominant.

Page 1 of 3Next →