HN user

btashton

568 karma
Posts8
Comments120
View on HN

With all these UF2 first boards the first thing I do is solder on the SWD header and figure out what magic sequence of memory read/writes I need to make over jlink to unlock the flash and remove the damn bootloader.

Sometimes I wonder if anyone actually uses a debugger anymore :(

Over a year ago http://grep.app showed up which does basically all I want from GitHub search and Nat (GitHub CEO) said lets talk, but nothing public happend. Biggest thing I use it for is looking for examples of how to use some API, so exact search of the function name and filter by language. The regex is also super nice to have when I need it.

The contacts bit is a disaster right now, there is a whole support page devoted to it and it still does not tell the whole story. https://support.signal.org/hc/en-us/articles/360007319011-Ma...

I had a contact show up with a super old name that I wanted to update but it was right in all my other apps. Turns out I still had the old name in one of the read only merged contacts from WhatsApp (contact showed up fine in WhatsApp). I had to remove my WhatsApp account clear the app data for signal and resync everything.

So many years of people telling me that my exact setup does not work, yet here I am not remembering the last time I had an issue with displays on Linux. It has even gotten _better_ since I moved to Wayland which I am also told does not work.

Except that even studies by the US Department of Justice show that risk of financial loss has one of the lowest impacts on likely to appear in court. This is also not recent discovery, this was heavily researched in the 70s.

Ironically just releasing people as soon as possible actually has one of the largest impacts on making sure people show.

https://www.ncjrs.gov/pdffiles1/Digitization/32349NCJRS.pdf https://www.ncjrs.gov/App/Publications/abstract.aspx?ID=5374...

Right URLs never change. Remember when one of the most popular golang logging libraries renamed from github.com/Sirupsen/logrus to github.com/sirupsen/logrus and all of a sudden everything would break because you were using both via some dep vendor.

Or Java where you get 80 char of namespaces that may or may not change because the library moved to be an eclipse project.

I would have agreed with you at one point, but most of the automotive companies are diving into this. They want less computers and would rather invest in hardware partitioning if needed.

BWM has said point blank all of the software in the car will be running Linux.

Adopting Linux on BMW - The Long Road to Integrate Linux as Mainline Platform - Helio Chissini de Castro, BMW https://www.youtube.com/watch?v=gNr-XmWM-eM

BLE mesh is difficult to do at high performance across multiple platforms and we did it years before there was a spec. Would I use the spec now? Probably. Would I have waited 3 years for the spec to come out? No.

At the time you could lock up Android devices just by sending too many beacons and require users to factory reset there network settings.

When people say Bluetooth is easy I assume they have not done much more than GATT connections and a simple beacon.

We wrote a Bluetooth mesh product before there was Bluetooth mesh standard. Don't call me lazy for not publishing a short spec when the actual Bluetooth spec is over 100 pages. BLE is "easy" managing a mesh network with transactions , droped packets, authentication, 100s of settings across different products is not. Instead we focused on the product we were trying to sell and things people actually bought based on like Alexa and Google support. We had lots of internal docs that heavily documented things including things that would damage the performance of the network and experiments that failed in practice.

This kind of response is a big part of why I have given up building commercial IoT products for now. It's great to want to have some super abstract high level self discovering protocol, but when you actually start to build on it it really hampers the product.

If you want to build a smart light switch you are trying to get the response time very low and worry about things like syncing behavior around the network. Doing these things ends up being very domain specific and you do creative engineering to make it happen. These are very different than the requirements for say a vacuum cleaner.

Then we have standards that come out like Bluetooth mesh or HomeKit that say this is exactly how a light switch should work. Great, except your light switch has this cool feature that Philips did not think of in the committee meeting and now you are forcing it in and your product once again suffers.

These standards all suck, some small percentage of your customers want custom access (rightfully so), and a large percentage are comparing you on price and experience. The outcome is a closed off product. With maybe a cloud API.

Like I said this is why I don't want to work on these products anymore. You cannot win.

If you tell it to _navigate_ home it will actually pull up the directions and the go button will have a autostart timer so you don't touch anything. Ask for directions and you will have to start touching the screen.

First think I had to do was see if Active Desktop worked... And yes it does. "View My Active Desktop as a web page", I guess Windows 98 was just ahead of its time.

I have come to just accept the firmware will be read out in most microcontrollers unless they are specifically built to hold secrets. Maybe you can keep someone from copying your code for a little while, but eventually it will happen and you should have some other value that protects your business.

NRF, STM32, PSoC, ESP32, Xilinx. All of them have silicon or ROM errata that leak the firmware or the encryption around it.

You can find some shitcoin mining flops that are $300-$400 worth of hardware being sold off for $60 that are PCIe cards. There are a few examples in the LiteX project.

Yeah this is why I have 4 of the last revision sitting in a bag on a shelf. I got tired of print debugging, if you look in the forums there is some discussion on how to modify the hardware, but it is not easy.

This is one of the reasons I run podman instead where I can and don't just give users access to the docker service. You can also run buildkit in rootless mode

Does anyone have a good workflow for spanning go->cgo. I have found it very hard to code and debug in the space. I end up using gdb, but that lacks a lot of the go context and you cannot go into the c code with delve.