The SAS Workshops Blog

Helping You Become a Better LabVIEW Developer

Code as Communication.

Code as Communication.

The code we write is a form of communication. We are telling the computer what to do, but we are also communicating with our colleagues. If we were only communicating with the computer, we could just simply write a bunch of 1s and 0s. That’s all the processor needs.
1 min read
Simplest Thing That Could Work

Simplest Thing That Could Work

It seems like I have been giving the same piece of advice lately: Start with the simplest thing that could possibly work and only add complication as you need it. Sometimes our natural tendency is to plan for all eventualities. We get so caught up planning for what might happen,
3 min read
A case for sets

A case for sets

Back in LabVIEW 2019, NI introduced both sets and maps. Maps became immediately popular. They should be. They are very useful constructs. However, sets seem to have gotten much less attention. In some ways, they aren’t as glamorous, but they do offer some advantages over arrays. To me, these
4 min read
Forget the word but

Forget the word but

In improv, there is this idea called “yes and”. The idea is that the first person goes and starts telling a story. The second person (and everyone after them) picks up with “yes and” and then continues adding to the story. What you want to avoid doing is using the
2 min read
The Freedom of Refactoring

The Freedom of Refactoring

Let’s talk about software design and refactoring in LabVIEW. When I first read Martin Fowler’s Refactoring book several years ago, it was very liberating. Prior to that, I had always had the idea that I had to get things right up front. It was kind of paralyzing. I
5 min read
Choosing a Language

Choosing a Language

I’ve decided to start a new series. I recently bought the book “Joel on Software” by Joel Spolsky. It is a collection of his blog posts. He still continues to produce more content today. Some of the articles in this book are a little dated but they seem to
2 min read
Quick VI Analyzer

Quick VI Analyzer

I haven’t talked a whole lot about VI Analyzer yet. It’s a static code analysis tool. If you come from text-based background, it is similar to a linter. It checks your code against a set of predefined rules and reports back any violations. You do need LabVIEW professional
10 min read
Fab and Richard's Book

Fab and Richard's Book

As many of you know, last year Fab co-authored a book on LabVIEW with Richard Jennings. I was fortunate enough that she asked me to review a few chapters for her. As a way of saying thanks for that, she sent me a free copy. I’ve had it for
3 min read
Introduction to LabVIEW FPGA

Introduction to LabVIEW FPGA

I will start this review off by saying I am not much of an FPGA programmer. I took the NI class over a decade ago and I have an sbRIO dev kit sitting at home that I have played around with, but that is about it. On some previous cRIO
2 min read
GitLab CI and Git Bash

GitLab CI and Git Bash

A while back GitLab CI deprecated the batch executor for Windows runners. That meant that you could no longer directly call batch scripts from a Gitlab Runner. They had switched over to Powershell. There were workarounds. You could still write a batch script and call it from PowerShell using cmd.
3 min read
Coding Camps and Climbing Gyms

Coding Camps and Climbing Gyms

I have been a programmer for over 15 years and a rock climber for over 20. During that time I have seen a lot of changes in both. In some ways, the changes are very similar. Rapid Growth Both programming and rock climbing have taken off over the past couple
3 min read
CRIO Tips: Mounting Network Drives

CRIO Tips: Mounting Network Drives

This a follow on article to a previous article. Its part of a series of tips that Neil Crossan provided me with, dealing with cRIOs and Linux RT targets. He saw a post of mine and sent me a bunch of tips and tricks. I thought I would share some
4 min read
April 2021 Webinar

April 2021 Webinar

April 22, 10 AM MT 10 things I wish I knew when I started using Git. Using Git can be complicated. It is not designed to be user-friendly. Yet it is at the core of good software engineering practices. Unit Tests are great for telling you that you accidentally broke
2 min read
Informative Versus Transformative Learning

Informative Versus Transformative Learning

In the technology field, particularly programming I feel like we tend to focus a lot on informative learning. Informative learning is just building upon what you already know. For instance, if you already know how a for loop works in C, and then you learn how to implement it in
1 min read
LazyGit

LazyGit

In a previous post, I mentioned lazygit in passing. It’s a nice CLI replacement for some of the Git GUI tools like SourceTree. It’s not too well known so I decided to do a little write-up on it. What LazyGit has over something like SourceTree is that is
5 min read
Advanced Datatypes with Python Node in LabVIEW

Advanced Datatypes with Python Node in LabVIEW

A recent LinkedIn post on using Python and LabVIEW got me thinking about passing more advanced datatypes between LabVIEW and Python. I have written about the Python node before, but I hadn’t really played with advanced datatypes before, so I thought I would play around and come up with
3 min read
Foundations of Information Security

Foundations of Information Security

I’ve always had an interest in cybersecurity. By listening to Security Now and the Darknet Diaries podcasts, I’ve learned a lot. But I’ve never had any real formal security education. This book is a great introduction and overview of information security. Foundations of Information Security reads like
1 min read
How to create a cRIO Virtual Machine

How to create a cRIO Virtual Machine

Just a week or two ago I stumbled upon a forum post that outlined how to create cRIO Virtual Machine. I’ve written a little bit about Virtual Machines before. Creating a virtual cRIO was pretty straightforward, but it required piecing together several responses in the thread, particularly since I
5 min read
View the Git Reflog Graphically

View the Git Reflog Graphically

While creating some content for my “Using Git Effectively” course, I discovered something new and amazingly useful. You may know about Git’s reflog and that it provides a chronological history of where your HEAD has been so that you can recover orphaned commits. For some things though, it can
1 min read
How Clients Buy

How Clients Buy

I am a programmer not a sales and marketing guy. I struggle with it, yet it is vital to running your own business. I spend a lot of time studying both sales and marketing. So much of what is out there is geared towards retail and not professional services. It
1 min read