Hacker Newsnew | past | comments | ask | show | jobs | submit | opello's commentslogin

That was a very nice read, thanks!

> I also removed the background color so we save ink on actual printing.

It seems reasonable to also remove the #post-title border-top:1rem solid var(--accent-dark) for the same reason? That and the padding-top on the same element struck me as unnecessarily moving the printed content down the page.


Same here, it is a tool that I reach for infrequently but when I need it it's always proven invaluable.

> I'm assuming it's to prevent moisture from corroding a port of some kind.

The primary value discussed in the talk was electrical isolation since there's mains voltage in the appliance and the potential for shorts or inadequate isolation would require some kind of isolation, so a path that optically isolates the communication makes quite a bit of sense.

I'm also curious if other devices have gone this route.


LG appliances at least used to use acoustic signaling for diagnostics: hold a phone up and the washer makes some modem-esque (I think it’s 4-tone / 4-FSK) noises and the app or technician can diagnose issues. It was originally engineered to even work over voice codecs, so a customer without a smartphone could relay the diagnostic session to a technician.

The absolutely "leetest" thing I have ever seen was a device where the firmware update was to be done by:

1. Hold a button while booting (pretty normal)

2. This reconfigures the circuit path of one of the LEDs so it is reverse-biased to VCC via its resistor and switches one of the microcontroller GPIOs to ADC input

3. You go to a website that plays a strobe pattern (encoding the firmware)

4. You hold that website in front of the LED till other LEDs blink, signifying a successful update

They could have done this using a photodiode, but no, they had to abuse an LED. Not many people are aware that LEDs can in a certain configuration be used to measure light.


Another example of firmware update reusing something that is already there: some electric guitar effects from TC Electronics can be reprogrammed by bringing a phone close to the guitar pickups. The phone app encodes the data as sound that is picked up by the guitar pickups and sent down the chain to the effect.

Ahh good example I remember having done that myself before!

That's pretty cool. I found a write-up[1] on it but unfortunately didn't come across any examples of the communication.

[1] https://github.com/kabelincho/LG-Smart-Diagnostics-modem


There are lots of examples on YouTube, this one seems succinct: https://youtube.com/shorts/3Eb315vL9uw . They picked good tones to make it satisfying IMO. I don’t know of anyone who’s reversed the bitstream in public, though, but it doesn’t seem like it should be very hard.

That's a great example, thanks! I was looking for "LG Smart Diagnostics" and "audio" and then "LG Acoustic Diagnostics" and found TVs calibrating their audio playback but not this. Trying "LG Audible Diagnosis" found a bunch like yours.

That's some advanced gatekeeping right there. Where other appliances might have a blink code or several digit error display (Miele) to look up in a manual, the phone method tires you to the manufacturer.

The support hotline will ask you to hold your phone towards the device. It is less error-prone (than a human) and contains more info than a blink code. I find it really clever.

Sure it's clever. But it also means you can't repair the appliance without the manufacturer's server to decode it for you.

Owner of an LG washer that failed here.

All the same diagnostics you can do at the machine, the phone home service allowed a remote engineer to diagnose as well. Things like drum rpm, tilt/knock sensors, uneven balance detection. Instead of paying a human $250 to come out and press buttons, they can do it remotely.

I understand in the pessimistic age of John Deere, all remote diagnostics are bad, but that is not the case here. I was able to do all of the diagnosis myself to determine it was a bad stator and then replace it myself.


How were you able to diagnose it yourself? Just through the error codes, or is there another interface available for non-technicians?

It doesn't require a server, it just requires knowing what the codes mean, same as blinking lights.

Decoding it without help would be difficult for the average consumer, but it's not an impossible task.


>so a customer without a smartphone could relay the diagnostic session to a technician

Do you mean by mimicking the noises themselves?


No you see you just need to buy specially marked boxes of Cap'n Crunch that have a plastic whistle in them that plays the tones for you.

I wonder how many HN readers still get that reference (and 2600, etc.)

I'm merely middle aged, but I've read the hacker lore.

https://en.wikipedia.org/wiki/Blue_box


We make use of a service already existing without paying for what could be dirt-cheap if it wasn't run by profiteering gluttons...

By holding their phone up to the machine.

Electric meters often blink a signal LED for every X kWh, so other devices can read the signal. I'm not sure if this is used for bidirectional communications, though.

No, but they also have a separate infrared interface for this.

https://en.wikipedia.org/wiki/IEC_62056


Smart meters have a whole protocol

Alternatively, I guess you could also use really thin cables to carry the low voltage paths; and that act as fuses, if ever a lot of current at high voltage was flowing across them? But probably not very reliable both in regular operation and as fuses.

We have a Miele washing machine and a Miele dryer. Solid machines all around even after years of use.


Fusible traces aren’t uncommon - but they would effectively destroy the device if current limits are exceeded, and they certainly would be if the power supply is non-isolated, so it wouldn’t actually be a solution to the firmware update problem.

The usual solution here is an optical coupling of some kind - optocouplers (a box with a LED, photodiode, and air gap between them) are very common for this purpose, and are an inexpensive and effective option for digital signaling across an isolation boundary.

In this case they’ve basically built a custom optocoupler out of discrete components, which is a bit unusual, but makes sense when you consider the risk of corrosion due to water ingress at the diagnostic ports, and the need to access it while - for example - a dishwasher cycle is running.


I agree that a front-line CSR or even engineer is not likely the right person, but surely then the responsible action is to redirect the request to the responsible department or person?

Absolutely, and companies that routinely get requests like this train customer service agents on specific trigger words like "license" or "GDPR" that must be redirected. Without that training, it's not obvious why "it's GPLv2 licensed" is more compelling than the last customer's argument that the device warranty obligates you to drop everything and immediately fix the minor UI bug they reported.

Also worth checking out the Veritasium video on snowflakes:

https://www.youtube.com/watch?v=ao2Jfm35XeE


Just because old ASCII and ANSI art is often signed by the author, which is something fun I appreciate, see also:

https://oldcompcz.github.io/jgs/joan_stark/xmas.html#treewit...

And of course, the BBS Documentary: Artscene episode:

https://www.youtube.com/watch?v=oQrBbm5ZMlo&list=PL7nj3G6Jpv...


Woah. I didn't know about that. I found it from asciiart.eu. This stuff makes me wish HN supported ANSI. We could have so much fun. (Also PRE or preformatted text would be useful).

Merry Christmas and happy new years everyone!


> Text after a blank line that is indented by two or more spaces is reproduced verbatim. (This is intended for code.)

        .-"```"-.
       /_\ _ _ __\
      | /{` ` `  `}
      {} {_,_,_,_,}
         )/ a  a \(
        _(<o_()_o>)_          __
       { | /_)(_\ | }       _/  \
     /`{ \        / }`\   _| `  |
    /   { '.____.' }   \ {_`-._/
   /     {_,    ,_}     \/ `-._}
  |        `{--}`    \  /    /
  |    /    {  }     | `    /
  ;    |    {  }     |\    /
   \    \   {__}     | '..'
    \_.-'}==//\\====/
    {_.-'\==\\//====\
     |   ,)  ``     |
      \__|          |
       |     __     |
       | _   /\   _ |
       |     ||     |
       \ _ _ || _ _ /
       {` ` `}{` ` `}
       {_,_,_}{_,_,_}
        |    ||    |
        /-. _||_ .-\
   jgs /    /  \    \
      |___ /    \ ___|
      `"""`      `"""`

Glad I could share it!

https://news.ycombinator.com/formatdoc says:

> Text after a blank line that is indented by two or more spaces is reproduced verbatim. (This is intended for code.)

I assume that's how the top level comment posted the tree which is in a <pre><code> structure.


But we still miss out on the great ANSI colors.

I kinda do want to go back to oldschool bbses, with cool text-mode lightbar interfaces.


This guy was prolific! Wow


TIL! Thanks! :)

Ahhh of course it's a signature. Makes total sense now.

I thought it was just a straggler.


So what is the state of the art in redaction? Re-publish the document with an insert that says [redaction] so that no (or maybe minimal) length side-channel exists? I imagine someone thinks about clever ideas and it would be fun to read about them and the trade-offs.

I too am on the "wrong" side. I just hope that the choice to be on that side continues.

> Each of these characters is replaced by the - character to denote that a permission is absent in the ACL entry.

Wouldn't the o::--- default ACL, like mode o-rwx, deny others access in the way you're describing?


See 6.2.1 of RFC8881, where NFSv4 ACLs are described. They are quite similar to Windows ACLs.

Here is kernel dev telling they are against adding NFSv4 ACL implementation. The relevant RichAcls patch never got merged: https://lkml.org/lkml/2016/3/15/52


https://www.rfc-editor.org/rfc/rfc8881#section-6.2.1

I see what I misunderstood, even in the presence of an ALLOW entry, a DENY entry would prohibit access. I am familiar with that on the Windows side but haven't really dug into Linux ACLs. The ACCESS CHECK ALGORITHM[1] section of the acl(5) man page was pretty clear, I think.

[1] https://man7.org/linux/man-pages/man5/acl.5.html#ACCESS_CHEC...


My only experience with non-UAC endpoint privilege management was BeyondTrust and it seemed to try to do what UAC did but with a worse user experience. It looks like the Intune EPM offering also doesn't present as clear a delineation as UAC, which seems like a missed opportunity.

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: