Sigrok is amazing! The killer feature for me is sigrok-cli. With it you basically convert from electrical signal to Unix pipe.
Super useful for running e.g. timing measurements and quick-and-dirty plotting. Or grepping through millions of signal transitions to pin down a nasty race condition.
My approach to solving problems that span complex systems:
1. Instrument 2. Measure 3. Interpret 4. Act
Iterate as necessary.
I have come to see this pattern working on electronics design, embedded software, industrial control systems, networking and webapp backends.
Breaking it down:
1. Instrument
Understand subsystems and their interfaces. Use tooling around these interfaces to trace the interplay between subsystems. Make sure all tooling is synchronized so you can correlate information across tools via timestamps. If you can't instrument remotely, bite the bullet and reproduce locally.
This ties back into the design phase: Design interfaces to be instrumentable, ideally remotely. Test points on PCBs, traceable APIs in software, using network protocols that tools like wireshark can decode. Pub/Sub systems are great for this, as you can easily add another subscriber for instrumenting all communication. Don't rely on "what happens to be available" for instrumentation. AWS CloudWatch will miss that one crucial piece of information. Your oscilloscope tip will not make reliable contact on a QFN pad.
Simply stated: Become good at interfaces and make them accessible.
2. Measure
Take the time to properly run tests and gather data. For issues in systems spanning mechanical, electrical, digital and software domains, you won't have one tool to do it all for you. Data preparation and cross correlation will be a manual process in most cases. That is ok.
3. Interpret
This is about understanding your problem and digging down from high-level symptoms to low-level root causes. Don't jump to conclusions. Let the data sink in to identify second order effects. Don't rush it because of pressure from your boss or the customer.
4. Act
Now that you understand your problem at a deeper level, it should be straightforward to apply corrective action. This might not solve the issue yet, but you will get closer to the root cause.
Two notes:
* Never stop after step 4! Always iterate once more so you can be confident the issues is actually solved and not just hidden by some effect.
* If you're a team player, document each step. A short note and screenshot in an issue tracker go a long way.
About engineering mindsets:
I find it infuriating when people calling themselves engineers don't follow any practice like this. Yes, you can solve problems through sheer experience or by hitting your head against the wall for long enough. Alone. On simple systems. But working together on complex systems you have to apply some methodology. Doesn't have to be my methodology, just not no methodology.
For me a big red flag is when engineers don't understanding why something works. Not understanding why something doesn't work is ok. We are human and systems are complex. But getting something to work, wondering why it does and then sending it to the customer? That's not engineering, that's tinkering. It's asking for trouble.
25cm birch logs surely are fun to split. With any kind of axe.
We use to chop 1m (~3feet) logs of a lot more compact wood (oak, beech), and this looks like a toy to me. Has anyone seen it used on more serious logs?
So allied governments are basically idiots for not thinking the USA would spy on them?
That would mean they should have put into place institutions protecting them from said spying. Which would be taking (defensive) military action because of the actions of an allied government. Now what kind of alliance is that?!
No, if it's anything like the Cold War, everybody is spying on everybody else, and everybody knows they are being spied on. They just kick up a fuss in the news when they happen upon a piece of proof, to use in the PR battle.
I know that creating a guest account as a honeypot is the recommended technique, but I wonder if there are (Mac OS X) vulnerabilities to get access to your main account from the guest account (in which case full disk encryption would not protect the data).
I guess in the end it boils down to: do you prefer to leak the data, or lose your laptop ? :-)
If you're already relying on OS X's FDE, it's not a huge step to link your laptop with iCloud. You can then do basically all the things you can do with a lost iOS device: beep, send messages, or wipe it (instantaneously if FDE is on, it just clears the keys).
Out of curiosity, could you explain why creating a guest account as a honeypot is the recommended technique? My first guess would be to help identify who has the machine.
> the court was saying that Absolute went too far in collecting the contents of the communications being made on the stolen computer.
So location tracking and snapping photos of the user is acceptable, but intercepting the users communication content is not. Unfortunate, and poorly decided, but not complete failure.
As usual, the government reserves rights for itself to perform specific acts that it considers criminal when private citizens engage. (And of course, the government offers no replacement for citizens who are prohibited for taking defensive actions on their own behalf.)
I think snooping on sexual episodes was quite rightly decided to be an invasion of privacy. I think a tort would have likely been more appropriate than criminal charges for it.
> the court was saying that Absolute went too far in collecting the contents of the communications being made on the stolen computer.
So location tracking and snapping photos of the user is acceptable, but intercepting the users communication content is not. Unfortunate, and poorly decided, but not complete failure.
As usual, the government reserves rights for itself to perform specific acts that it considers criminal when private citizens engage.
Super useful for running e.g. timing measurements and quick-and-dirty plotting. Or grepping through millions of signal transitions to pin down a nasty race condition.