More from Jorge Arango
Masters of Uncertainty: The Navy SEAL Way to Turn Stress into Success for You and Your Team By Rich Diviney Amplify Publishing, 2025 We’re dealing with unprecedented levels of uncertainty. But that shouldn’t disempower us. Diviney, a former Navy SEAL, provides insights for becoming a “Master of Uncertainty” — i.e., adept at acting skillfully even in trying circumstances. The book is divided into three parts. The first explains how our bodies react to uncertain, fast-changing circumstances (e.g., with stress) and offers practical means for making the most of such conditions. For example, we can reframe our contexts (or “horizons”) to include only that which is in our immediate awareness and control and focus on small, near-term wins. We can also ask ourselves better questions and apply physical techniques (e.g., breathing patterns) to modulate stress. Reframing is an important component of the strategic design toolbox, so this section resonated with me. The second part of the book explores how our internal narratives — what we believe about ourselves and our goals — shape our behavior under uncertainty. Our attributes set natural constraints: for example, my physiology simply doesn’t allow me to be a pro basketball player. Self-identity is also powerful; it’s easier to quit smoking if you see yourself as a nonsmoker. And of course, having clear objectives is essential: you need to know what direction to move towards. Diviney echoes an idea we saw in On Grand Strategy: that you must keep the general direction in mind while paying attention to local conditions; if you encounter a swamp while traveling south, you may need to walk east for a while. Part three explains how to use these skills to develop teams that handle uncertainty effectively. Diviney proposes a leadership approach called dynamic subordination: Team members remain present and move in unison, working seamlessly to enhance one another’s strengths and buttress weaknesses. When one team member’s specific skills or attributes are needed, they step up and lead. The others then automatically move to support them fully. This requires deep trust and alignment, which is why there’s a chapter devoted to each. (The one on alignment focuses on developing a particular culture for your team.) Dynamic subordination offers a promising model for combining top-down direction with bottom-up adaptation to real-world conditions. Parts one and two echo Stoic ideas — especially around focus and self-regulation. Dynamic subordination was new to me. It sounds like a genuinely useful approach, albeit one that calls for 1) a very particular org culture and 2) a carefully vetted team. The SEALs meet both conditions; business teams less so. In our podcast, Harry said Masters of Uncertainty is in the running for his 2025 book of the year. I can see why: it’s a practical, short, and well-grounded guide for anyone designing teams or systems meant to thrive in fast-changing, unpredictable environments. (Aren’t they all?) Masters of Uncertainty by Rich Diviney
Conversations on the Traction Heroes podcast are proving highly relevant. To wit, episode 7 delves into how the questions we ask ourselves influence our ability to act skillfully. This came up in the context of dealing with uncertainty. Specifically, Harry brought to the conversation the following fragment from Rich Diviney’s book Masters of Uncertainty: To remain grounded in the sphere of what you know and control, cultivate a habit of asking yourself better questions. The brain operates with a question-answer mechanism: it continuously assesses the surroundings with questions and then conjures answers. This typically happens subliminally and instantly, faster than you can notice. You can, however, participate consciously in this process and influence your thoughts and feelings by introducing your own questions. When you introduce a question into conscious thought, the mind is compelled to come up with answers. The problem is that it’s all too common to default to reactive, negative, and sometimes emotion-laden questions such as “Why am I so bad at this?” or “Why can’t I succeed?” Your brain will immediately begin to give you answers to these—yet the answers will not lead to enlightenment. Rather, they will spiral you into further negativity and anxiety. Masters of Uncertainty steer their thoughts with better, more effective questions — questions that center on what they can ascertain and influence. Well aware that knowledge morphs into power, they prime their minds with inquiries like “What do I know? What can I control?” The brain can’t help but answer these questions in ways that put you at the helm. These are the inquiries that empower and hone your focus on traversing uncertainty, not succumbing to it. I hadn’t heard of Masters of Uncertainty before, but I’m reading it and hope to do a book notes post soon. Working with uncertainty is especially relevant now, given the changes rocking global markets. At least part of the secret to navigating turbulence is learning to keep your cool. It’s not a new idea (the Stoics and Buddhists said this centuries ago) but it’s worth revisiting — and internalizing. Traction Heroes ep. 7: Better Questions
During week 14 of the humanities crash course, I explored foundational myths of Western Culture — written during the Roman Empire when decadence was setting in. I paired them with a classic film about social decadence set in mid-20th century Rome. Readings Gioa’s recommendations were a bit more open-ended this week: books 1 and 2 of the Aeneid, book 1 of Ovid’s Metamorphoses, and “selected Roman poems and aphorisms.” Rather than read a whole book, I sought out some of these latter shorter works online. I also read the most famous section of the Satyricon. The Aeneid is one of the classic epic poems of antiquity. Written by Virgil between 29 and 19 BCE, it aimed to formalize founding myths for the Roman Empire. It’s a sort of sequel to the Iliad and explicitly echoes the Odyssey’s structure. Fortunately, I only had read the first two books: Book 1: As Aeneas sails toward Italy after the events of the Trojan war; the gods conjure a storm that scatters the fleet. Aeneas and his crew are shipwrecked on the coast of Libya. The goddess Venus guides them to nearby Carthage, where Queen Dido is building a new city. She asks Aeneas to tell his story. Book 2: Aeneas recounts the fall of Troy, focusing on the Trojan horse episode. Despite warnings, the Trojans bring the gift horse into the city, only to be overwhelmed by the Greek soldiers hiding inside. King Priam is killed in the ensuing fight; Aeneas is about to kill himself in despair but the ghost of Hector urges him to flee instead. I said “fortunately” because these poems were the least pleasant reading I’ve done so far in the course. Perhaps it’s due to the translation I used, but it might also be because this work was created to glorify the Roman emperor. Like most ideological art, I found it pompous and tedious. In many ways, Metamorphoses was its opposite. Written later, (2-8 CE,) its focus is mythology drawn from the classic Greek pantheon, but parsed through Roman sensibilities. The theme is transformation: gods, demigods, and humans shapeshift, becoming plants, animals, constellations, etc. to change the trajectory of events or escape suffering Like the Aeneid, Metamorphoses also explores the foundations of Roman imperial rule, but it comes to the subject from a more ironic and irreverent POV. By focusing on change, the poem has interesting parallels with Buddhist teachings and the I Ching. Given its tone, cadence, and subject matter, I enjoyed it more than the Aeneid. The third major work this week was Petronius’s Satyricon, arguably the first Western novel. It was written during the reign of emperor Nero (mid 1st-century CE,) and only fragments survive. They present the misadventures of Encolpius and his companions Giton (a former slave and teenage lover) and Ascyltus, a friend, antagonist, and former lover. The novel portrays a morally chaotic and decadent society reveling in excess, deception, and sensuous pleasures. I read the most famous section, Trimalchio’s feast, which provides vivid descriptions of Roman excesses during this time. Characters come across as tone-deaf — especially the nouveau riche, whose vulgarity and self-importance must have seemed outrageous even to people with moral standards very different from ours. I was surprised at how richly these characters were portrayed — and how little people have changed in two millennia. Audiovisual Music: Arias by Puccini and Verdi. This is the second time during the course I’ve listened to opera: a medium I love but don’t include much in my regular rotation. This was a good opportunity to revisit some of these magnificent works. Art: Gioia recommended looking at cave paintings. I punted. Several years ago, I saw Werner Herzog’s CAVE OF FORGOTTEN DREAMS, and had my fill for cave paintings. Cinema: I read the Satyricon this week because I saw Fellini’s adaptation in college. At the time, I also saw his LA DOLCE VITA. Even though LDV is the more famous of the two, my memory of it was fuzzier, so I chose to revisit it now. Marcello Mastroianni plays Marcello, a womanizing gossip journalist drifting through postwar Rome. He has serious aspirations as a novelist, but allows himself to be swept along by the seductive currents of Roman nightlife and celebrity culture. Like the Satyricon, we get story fragments rather than a unified plot. The fragments loosely echo the seven deadly sins and seven sacraments of the Catholic Church, framing the film as a kind of spiritual inventory of modern life. I was surprised this classic film was only available to stream through Plex. It was a poor experience, riddled with ads and useless subtitles. My Italian is rusty, but I got most of the film anyway. (I may start seeing other Italian and French movies without subtitles as practice.) Reflections The common thread this week was social decadence — especially the kind that takes hold when a society grows too wealthy and powerful for its own good. I read the Aeneid as a puff piece intended to instill a false sense of pride through a constructed continuity with the Greek civilization Romans admired — and supplanted. Metamorphoses took a more lighthearted approach, suggesting all things pass and that change is the only constant. Both the Satyricon and LA DOLCE VITA illuminated the vulgarity and moral emptiness at the core of decadence, turning it into ironic — and sometimes painful — entertainment. Can we see our own time with such detachment? Can we recognize the Virgils trying to enshrine the inexcusable? The Ovids who myth-make more lightly and playfully? Or the Petroniuses and Fellinis who nudge us to laugh — and maybe cry — at the foolishness and pain of living adrift in a sensuous world? Notes on Note-taking Given my difficulties with the Aeneid, I found its Wikipedia page insightful. The summary of books 1 and 2 gave me an outline to better understand the work. As with previous weeks, I also bounced reflections off ChatGPT and summarized using the Obsidian Text Generator plugin. Both helped me grok the readings and how they relate to each other. A realization on process: writing these posts helps me focus and power through even when readings get tedious. If I hadn’t committed to sharing publicly, I likely would’ve bailed on the Aeneid. I read with more focus and attention when knowing I’ll publish these little “book reports” at the end of the week. Up Next From Gioia’s description, I expect next week’s reading — Boethius’s On the Consolation of Philosophy — will be highly relevant to our current predicament. Again, there’s a YouTube playlist for the videos I’m sharing here. I’m also sharing these posts via Substack if you’d like to subscribe and comment. See you next week!
Last week, I spoke with a business leader who’s excited about AI. But as we talked, it became clear that there’s a wide gulf between enthusiasm and creating value for a particular business. Most people’s impression of AI is based on limited use and media hype. Take the recent Ghibli-fication mania: millions are smitten with the idea of seeing themselves as a Miyazaki character. (I’m one of them!) And it’s understandable: the outputs are impressive. But AI can do more than make beautiful drawings or write compelling essays. As I’ve argued before, these aren’t the best uses for AI. Instead, we should use it to augment our abilities. But how? It’s hard to see beyond the outputs — especially since doing so entails getting more abstract. I’m still thinking about how to explain it, but three ideas are key: Businesses consist of information flows. Information exists to support decisions. Information can be optimized for better decision-making. Let’s unpack them. First, your business consists of information flows. Whatever your business is, it runs on information: how it’s captured, produced, shared, and processed. A proposal? Information. The request behind it? Also information. A standup meeting? An exchange of information. Your business creates value when it uses information effectively. Sure, that’s not the only way it creates value: the things you make and services you provide are key. But information is essential. Why? Because of the second point: information is in service to decision-making. The proposal helps the prospect decide whether to work with you. Research helps you decide whether to enter a new market. The meeting helps determine next steps. Third, information can be optimized. When I say “information,” you may think spreadsheets and databases. But that’s structured information. Most business information — conversations, documents, emails — is unstructured. Consider that meeting. It may have some structure: an agenda, list of attendees, start and end time. But the stuff you care about — what people say — isn’t structured. Even if you transcribe it, you must still think about what it means for you. AI can help tame the messy information flows that make up real work. Efforts to formalize them often kill spontaneity, nuance, and context. And even if they didn’t, there’s so much information that it’s been hard to make sense of it. But now we have AI. Don’t let the charismatic drawings distract you. That’s only a superficial application — and commodifying art is bad for our souls. Instead, focus on using AI for tasks that were previously impossible or impractical: working with vast amounts of unstructured information, playing out what-if scenarios at scale, and augmenting your team’s expertise. Information architects can help. We’ve been mapping information flows and making sense of unstructured information for decades. If you’re exploring how AI could create real business value — not just flashy outputs — let’s talk.
More in technology
Solar PV adoption in Pakistan, a sodium-ion battery startup closing up shop, Figure’s humanoid robot progress, an AI-based artillery targeting system, and more.
Introduction The DSLogic U3Pro16 In the Box Probe Cables and Clips The Controller Hardware The Input Circuit Impact of Input Circuit on Circuit Under Test Additional IOs: External Clock, Trigger In, Trigger Out Software: From Saleae Logic to PulseView to DSView Installing DSView on a Linux Machine DSView UI Streaming Data to the Host vs Local Storage in DRAM Triggers Conclusion References Footnotes Introduction The year was 2020 and offices all over the world shut down. A house remodel had just started, so my office moved from a comfortably airconditioned corporate building to a very messy garage. Since I’m in the business of developing and debugging hardware, a few pieces of equipment came along for the ride, including a Saleae Logic Pro 16. I had the unit for work stuff, I may once in a while have used it for some hobby-related activities too. There’s no way around it: Saleae makes some of the best USB logic analyzers around. Plenty of competitors have matched or surpassed their digital features, but none have the ability to record the 16 channels in analog format as well. After corporate offices reopened, the Saleae went back to its original habitat and I found myself without a good 16-channel USB logic analyzer. Buying a Saleae for myself was out of the question: even after the $150 hobbyist discount, I can’t justify the $1350 price tag. After looking around for a bit, I decided to give the DSLogic U3Pro16 from DreamSourceLab a chance. I bought it on Amazon for $299. (Click to enlarge) In this blog post, I’ll look at some of the features, my experience with the software, and I’ll also open it up to discover what’s inside. The DSLogic U3Pro16 The DSLogic series currently consists of 3 logic analyzers: the $149 DSLogic Plus (16 channels) the $299 DSLogic U3Pro16 (16 channels) the $399 DSLogic U3Pro32 (32 channels) The DSLogic Plus and U3Pro16 both have 16 channels, but acquisition memory of the Plus is only 256Mbits vs 2Gbits for the Pro, and it has to make do with USB 2.0 instead of a USB 3.0 interface, a crucial difference when streaming acquistion data straight to the PC to avoid the limitations of the acquistion memory. There’s also a difference in sample rate, 400MHz vs 1GHz, but that’s not important in practice. The only functional difference between the U3Pro16 and U3Pro32 is the number of channels. It’s tempting to go for the 32 channel version but I’ve rarely had the need to record more than 16 channels at the same time and if I do, I can always fall back to my HP 1670G logic analyzer, a pristine $200 flea market treasure with a whopping 136 channels1. So the U16Pro it is! In the Box The DSLogic U16Pro comes with a nice, elongated hard case. Inside, you’ll find: the device itself. It has a slick aluminum enclosure. a USB-C to USB-A cable 5 4-way probe cables and 1 3-way clock and trigger cable 18 test clips Probe Cables and Clips You read it right, my unit came with 5 4-way probe cables, not 4. I don’t know if DreamSourceLab added one extra in case you lose one or if they mistakenly included one too much, but it’s good to have a spare. The cables are slightly stiffer than those that comes with a Saleae but not to the point that it adds a meaningful additional strain to the probe point. They’re stiffer because each of the 16 probe wires carries both signal and ground, probably a thin coaxial cable, which lowers the inductance of the probe and reduce ringing when measuring signal with fast rise and fall times. In terms of quality, the probe cables are a step up from the Saleae ones. The case is long enough so that the probe cables can be stored without bending them. The quality of the test clips is not great, but they are no different than those of the 5 times more expensive Saleae Logic 16 Pro. Both are clones of the HP/Agilent logic analyzer grabbers that I got from eBay and will do the job, but I much prefer the ones from Tektronix. The picture below shows 4 different grabbers. From left to right: Tektronix, Agilent, Saleae and DSLogic ones. Compared to the 3 others, the stem of the Tektronix probe is narrow which makes it easier to place multiple ones next to each other one fine-pitch pin arrays. If you’re thinking about upgrading your current probes to Tektronix ones: stay away from fakes. As I write this, you can find packs of 20 probes on eBay for $40 (incl shipping), so around $2 per probe. Search for “Tektronix SMG50” or “Tektronix 020-1386-01”. Meanwhile, you can buy a pack of 12 fake ones on Amazon for $16, or $1.3 a piece. They work, but they aren’t any better than the probes that come standard with the DSLogic. Fake probe on the left, Tek probe on the right The stem of the fake one is much thicker and the hooks are different too. The Tek probe has rounded hooks with a sharp angle at the tip: Tektronix hooks The hooks of a fake probe are flat and don’t attach nearly as well to their target: Fake hooks If you need to probe targets with a pitch that is smaller than 1.25mm, you should check out these micro clips that I reviewed ages ago. The Controller Hardware Each cable supports 4 probes and plugs into the main unit with 8 0.05” pins in 4x2 configuration, one pin for the signal, one pin for ground. The cable itself has a tiny PCB sticking out that slots into a gap of the aluminum enclosure. This way it’s not possible to plug in the cable incorrectly… unlike the Saleae. It’s great. When we open up the device, we can see an Infineon (formerly Cypress) CYUSB3014-BZX EZ-USB FX3 SuperSpeed controller. A Saleae Logic Pro uses the same device. These are your to-go-to USB interface chips when you need a microcontroller in addition to the core USB3 functionatility. They’re relatively cheap too, you can get them for $16 in single digital quantities at LCSC.com. The other size of the PCB is much busier. (Click to enlarge) The big ticket components are: a Spartan-6 XC6SLX16 FPGA Reponsible data acquisition, triggering, run-length encoding/compression, data storage to DRAM, and sending data to the CYUSB3014. A Saleae Logic 16 Pro has a smaller Spartan-6 LX9. That makes sense: its triggering options aren’t as advanced as the DSLogic and since it lacks external DDR memory, it doesn’t need a memory controller on the FPGA either. a DDR3-1600 DRAM It’s a Micron MT41K128M16JT-125, marked D9PTK, with 2Gbits of storage and a 16-bit data bus. an Analog Devices ADF4360-7 clock generator I found this a bit surprising. A Spartan-6 LX16 FPGA has 2 clock management tiles (CMT) that each have 1 real PLL and 2 DCMs (digital clock manager) with delay locked loop, digital frequency synthesizer, etc. The VCO of the PLL can be configured with a frequency up to 1080 MHz which should be sufficient to capture signals at 1GHz, but clearly there was a need for something better. The ADF4360-7 can generate an output clock as fast a 1800MHz. There’s obviously an extensive supporting cast: a Macronix MX25R2035F serial flash This is used to configure the FPGA. an SGM2054 DDR termination voltage controller an LM26480 power management unit It has two linear voltage regulators and two step-down DC-DC convertors. two clock oscillators: 24MHz and 19.2MHz a TI HD3SS3220 USB-C Mux This the glue logic that makes it possible for USB-C connectors to be orientation independent. a SP3010-04UTG for USB ESD protection Marked QH4 Two 5x2 pin connectors J7 and J8 on the right size of the PCB are almost certainly used to connect programming and debugging cables to the FPGA and the CYUSB-3014. (Click to enlarge) The Input Circuit I spent a bit of time Ohm-ing out the input circuit. Here’s what I came up with: The cable itself has a 100k Ohm series resistance. Together with a 100k Ohm shunt resistor to ground at the entrance of the PCB it acts as by-two resistive divider. The series resistor also limits the current going into the device. Before passing through a 33 Ohm series resistor that goes into the FPGA, there’s an ESD protection device. I’m not 100% sure, but my guess is that it’s an SRV05-4D-TP or some variant thereof. I’m not 100% sure why the 33 Ohm resistor is there. It’s common to have these type of resistors on high speed lines to avoid reflection but since there’s already a 100k resistor in the path, I don’t think that makes much sense here. It might be there for additional protection of the ESD structure that resides inside the FPGA IOs? A DSLogic has a fully programmable input threshold voltage. If that’s the case, then where’s the opamp to compare the input voltage against this threshold voltage? (There is such a comparator on a Saleae Logic Pro!) The answer to that question is: “it’s in the FPGA!” FPGA IOs can support many different I/O standards: single-ended ones, think CMOS and TTL, and a whole bunch of differential standards too. Differential protocols compare a positive and a negative version of the same signal but nothing prevents anyone from assigning a static value to the negative input of a differential pair and making the input circuit behave as a regular single-end pair with programmable threshold. Like this: There is plenty of literature out there about using the LVDS comparator in single-ended mode. It’s even possible to create pretty fast analog-digital convertors this way, but that’s outside the scope of this blog post. Impact of Input Circuit on Circuit Under Test 7 years ago, OpenTechLab reviewed the DSLogic Plus, the predecessor of the DSLogic U3Pro16. Joel spent a lot of time looking at its input circuit. He mentions a 7.6k Ohm pull-down resistor at the input, different than the 100k Ohm that I measured. There’s no mention of a series resistor in the cable or about the way adjustable thresholds are handled, but I think that the DSLogic Pro has a simular input circuit. His review continues with an in-depth analysis of how measuring a signal can impact the signal itself, he even builds a simulation model of the whole system, and does a real-world comparison between a DSLogic measurement and a fake-Saleae one. While his measurements are convincing, I wasn’t able to repeat his results on a similar setup with a DSLogic U3Pro and a Saleae Logic Pro: for both cases, a 200MHz signal was still good enough. I need to spend a bit more time to better understand the difference between my and his setup… Either way, I recommend watching this video. Additional IOs: External Clock, Trigger In, Trigger Out In addition to the 16 input pins that are used to record data, the DSLogic has 3 special IOs and a seperate 3-wire cable to wire them up. They are marked with the character “OIC” above the connector, which stands for Output, Input, Clock. Clock Instead of using a free-running internal clock, the 16 input signals can be sampled with an external sampling clock. This corresponds to a mode that’s called “state clocking” in big-iron Tektronix and HP/Agilent/Keysight logic analyzers. Using an external clock that is the same as the one that is used to generate the signals that you want to record is a major benefit: you will always record the signal at the right time as long as setup and hold requirements are met. When using a free-running internal sampling clock, the sample rate must a factor of 2 or more higher to get an accurate representation of what’s going on in the system. The DSLogic U16Pro provides the option to sample the data signals at the positive or negative edge of the external clock. On one hand, I would have prefered more options in moving the edge of the clock back and forth. It’s something that should be doable with the DLLs that are part of the DCMs blocks of a Spartan-6. But on the other, external clocking is not supported at all by Saleae analyzers. The maximum clock speed of the external clock input is 50MHz, significantly lower than the free-running sample speed. This is the usually the case as well for big iron logic analyzers. For example, my old Agilent 1670G has a free running sampling clock of 500MHz and supports a maximum state clock of 150MHz. Trigger In According to the manuals: “TI is the input for an external trigger signal”. That’s a great feature, but I couldn’t figure out a way in DSView on how to enable it. After a bit of googling, I found the following comment in an issue on GitHub. This “TI” signal has no function now. It’s reserved for compatible and further extension. This comment is dated July 29, 2018. A closer look at the U3Pro16 datasheets shows the description of the “TI” input as “Reserved”… Trigger Out When a trigger is activated inside the U3Pro, a pulse is generated on this pin. The manual doesn’t give more details, but after futzing around with the horrible oscilloscope UI of my 1670G, I was able to capture a 500ms trigger-out pulse of 1.8V. Software: From Saleae Logic to PulseView to DSView When Saleae first came to market, they raised the bar for logic analyzer software with Logic, which had a GUI that allowed scrolling and zooming in and out of waveforms at blazing speed. Logic also added a few protocol decoders, and an C++ API to create your own decoders. It was the inspiration of PulseView, an open source equivalent that acts as the front-end application of SigRok, an open source library and tool that acts as the waveform data acquisition backend. PulseView supports protocol decoders as well, but it has an easier to use Python API and it allows stacked protocol decoders: a low-level decoder might convert the recorded signals into, say, I2C tokens (start/stop/one/zero). A second decoder creates byte-level I2C transactions out of the tokens. And I2C EPROM decoder could interpret multiple I2C transactions as read and write operations. PulseView has tons of protocol decoders, from simple UART transactions, all the way to USB 2.0 decoders. When the DSLogic logic analyzer hit the market after a successful Kickstarter campaign, it shipped with DSView, DreamSourceLab’s closed source waveform viewer. However, people soon discovered that it was a reskinned version of PulseView, a big no-no since the latter is developed under a GPL3 license. After a bit of drama, DreamSourceLab made DSView available on GitHub under the required GPL3 as well, with attribution to the sigrok project. DSView is a hard fork of PulseView and there are still some bad feelings because DreamSourceLab doesn’t push changes to the PulseView project, but at least they’ve legally in the clear for the past 6 years. The default choice would be to use DSView to control your DSLogic, but Sigrok/PulseView supports DSView as well. In the figure below, you can see DSView in demo mode, no hardware device connected, and an example of the 3 stacked protocol described earlier: (Click to enlarge) For this review, I’ll be using DSView. Saleae has since upgrade Logic to Logic2, and now also supports stacked protocol decoders. It still uses a C++ API though. You can find an example decoder here. Installing DSView on a Linux Machine DreamSourceLab provides DSView binaries for Windows and MacOS binaries but not for Linux. When you click the Download button for Linux, it returns a tar file with the source code, which you’re expected to compile yourself. I wasn’t looking forward to running into the usual issues with package dependencies and build failures, but after following the instructions in the INSTALL file, I ended up with a working executable on first try. DSView UI The UI of DSView is straightforward and similar to Saleae Logic 2. There are things that annoy me in both tools but I have a slight preference for Logic 2. Both DSView and Logic2 have a demo mode that allows you to play with it without a real device attached. If you want to get a feel of what you like better, just download the software and play with it. Some random observations: DSView can pan and zoom in or out just as fast as Logic 2. On a MacBook, the way to navigate through the waveform really rubs me the wrong way: it uses the pinching gesture on a trackpad to zoom in and out. That seems like the obvious way to do it, but since it’s such a common operation to browse through a waveform it slows you down. On my HP Laptop 17, DSView uses the 2 finger slide up and down to zoom in and out which is much faster. Logic 2 also uses the 2 finger slide up and down. The stacked protocol decoders area amazing. Like Logic 2, DSView can export decoded protocols as CSV files, but only one protocol at a time. It would be nice to be able to export multiple protocols in the same CSV file so that you can easier compare transaction flow between interfaces. Logic 2 behaves predictably when you navigate through waveforms while the devices is still acquiring new data. DSView behaves a bit erratic. In DSView, you need to double click on the waveform to set a time marker. That’s easy enough, but it’s not intuitive and since I only use the device occasionally, I need to google every time I take it out of the closet. You can’t assign a text label to a DSView cursors/time marker. None of the points above disquality DSView: it’s a functional and stable piece of software. But I’d be lying if I wrote that DSView is as frictionless and polished as Logic 2. Streaming Data to the Host vs Local Storage in DRAM The Saleae Logic 16 Pro only supports streaming mode: recorded data is immediately sent to the PC to which the device is connected. The U3Pro supports both streaming and buffered mode, where data is written in the DRAM that’s on the device and only transported to the host when the recording is complete. Streaming mode introduces a dependency on the upstream bandwidth. An Infineon FX3 supports USB3 data rates up 5Gbps, but it’s far from certain that those rates are achieved in practice. And if so, it still limits recording 16 channels to around 300MHz, assuming no overhead. In practice, higher rates are possible because both devices support run length encoding (RLE), a compression technique that reduces sequences of the same value to that value and the length of the sequence. Of course, RLE introduces recording uncertainty: high activity rates may result in the exceeding the available bandwidth. The U3Pro has a 16-bit wide 2Gbit DDR3 DRAM with a maximum data rate of 1.6G samples per second. Theoretically, make it possible to record 16 channels with a 1.6GHz sample rate, but that assumes accessing DRAM with 100% efficiency, which is never the case. The GUI has the option of recording 16 signals at 500MHz or 8 signals at 1GHz. Even when recording to the local DRAM, RLE compression is still possible. When RLE is disabled and the highest sample rate is selected, 268ms of data can be recorded. When connected to my Windows laptop, buffered mode worked fine, but on my MacBook Air M2 DSView always hangs when downloading the data that was recorded at high sample rates and I have to kill the application. In practice, I rarely record at high sample rates and I always use streaming mode which works reliably on the Mac too. But it’s not a good look for DSView. Triggers One of the biggest benefits of the U3Pro over a Saleae is their trigger capability. Saleae Logic 2.4.22 offers the following options: You can set a rising edge, falling edge, a high or a low level on 1 signal in combination with some static values on other signals, and that’s it. There’s not even a rising-or-falling edge option. It’s frankly a bit embarrassing. When you have a FPGA at your disposal, triggering functionality is not hard to implement. Meanwhile, even in Simple Trigger mode, the DSLogic can trigger on multiple edges at the same time, something that can be useful when using an external sampling clock. But the DSLogic really shines when enabling the Advanced Trigger option. In Stage Trigger mode, you can create state sequences that are up to 16 phases long, with 2 16-bit comparisons and a counter per stage. Alternatively, Serial Trigger mode is a powerful enough to capture protocols like I2C, as shown below, where a start flag is triggered by a falling edge of SDA when SCL is high, a stop flag by a rising edge of SDA when SCL is high, and data bits are captured on the rising edge of SCL: You don’t always need powerful trigger options, but they’re great to have when you do. Conclusion The U3Pro is not perfect. It doesn’t have an analog mode, buffered mode doesn’t work reliably on my MacBook, and the DSView GUI is a bit quirky. But it is relatively cheap, it has a huge library of decoding protocols, and the triggering modes are excellent. I’ve used it for a few projects now and it hasn’t let me down so far. If you’re in the market for a cheap logic analyzer, give it a good look. References Logic Analyzer Shopping Comparison between Saleae Logic Pro 16, Innomaker LA2016, Innomaker LA5016, DSLogic Plus, and DSLogic U3Pro16 Footnotes It even has the digital storage scope option with 2 analog channels, 500MHz bandwidth and 2GSa/s sampling rate. ↩
Masters of Uncertainty: The Navy SEAL Way to Turn Stress into Success for You and Your Team By Rich Diviney Amplify Publishing, 2025 We’re dealing with unprecedented levels of uncertainty. But that shouldn’t disempower us. Diviney, a former Navy SEAL, provides insights for becoming a “Master of Uncertainty” — i.e., adept at acting skillfully even in trying circumstances. The book is divided into three parts. The first explains how our bodies react to uncertain, fast-changing circumstances (e.g., with stress) and offers practical means for making the most of such conditions. For example, we can reframe our contexts (or “horizons”) to include only that which is in our immediate awareness and control and focus on small, near-term wins. We can also ask ourselves better questions and apply physical techniques (e.g., breathing patterns) to modulate stress. Reframing is an important component of the strategic design toolbox, so this section resonated with me. The second part of the book explores how our internal narratives — what we believe about ourselves and our goals — shape our behavior under uncertainty. Our attributes set natural constraints: for example, my physiology simply doesn’t allow me to be a pro basketball player. Self-identity is also powerful; it’s easier to quit smoking if you see yourself as a nonsmoker. And of course, having clear objectives is essential: you need to know what direction to move towards. Diviney echoes an idea we saw in On Grand Strategy: that you must keep the general direction in mind while paying attention to local conditions; if you encounter a swamp while traveling south, you may need to walk east for a while. Part three explains how to use these skills to develop teams that handle uncertainty effectively. Diviney proposes a leadership approach called dynamic subordination: Team members remain present and move in unison, working seamlessly to enhance one another’s strengths and buttress weaknesses. When one team member’s specific skills or attributes are needed, they step up and lead. The others then automatically move to support them fully. This requires deep trust and alignment, which is why there’s a chapter devoted to each. (The one on alignment focuses on developing a particular culture for your team.) Dynamic subordination offers a promising model for combining top-down direction with bottom-up adaptation to real-world conditions. Parts one and two echo Stoic ideas — especially around focus and self-regulation. Dynamic subordination was new to me. It sounds like a genuinely useful approach, albeit one that calls for 1) a very particular org culture and 2) a carefully vetted team. The SEALs meet both conditions; business teams less so. In our podcast, Harry said Masters of Uncertainty is in the running for his 2025 book of the year. I can see why: it’s a practical, short, and well-grounded guide for anyone designing teams or systems meant to thrive in fast-changing, unpredictable environments. (Aren’t they all?) Masters of Uncertainty by Rich Diviney