I Might Be a Dinosaur, But the Code Still Runs

A dinosaur codes.

I’m a bit of a dinosaur when it comes to technology.

That might sound odd, especially since I know people who’ve been coding longer than I’ve been alive. But I can no longer pretend I’m the “young kid” to their seasoned vet status. I’m just… slightly less seasoned. And nothing has made that clearer than these last few weeks working on Wandrip.

So, for context, here’s a quick rundown of Jon’s Programmer History, which might help you understand why I’ve been so amazed by modern tools lately.

🕹️ 1995–2003: The Early Years

In 1995, I discovered a shareware app—possibly called Computer Magic—that let you script small animations. It blew my mind. I could tell the computer what to do, and it would do it. That summer, the programming bug bit hard.

By 1996, I was talking about computer programming for a science fair. In 1997, I finally began writing real software with Borland Delphi, making me one of the few in my generation who didn’t start with BASIC. I started with Pascal, specifically the object-oriented flavor used by Delphi.

Through the late ’90s, I did the full “computer kid” routine: wrote a few clunky apps, bought a domain name, packaged my software, and uploaded it to shareware sites. I even made one sale. (Never cashed the check, but the buyer did get their unlock code.) I collaborated with other indie devs, integrated tools, and picked up some IT consulting gigs.

But like many “computer kids,” I spent more time fixing computers than writing software. By the early 2000s, programming had taken a backseat to server management and hardware troubleshooting. Aside from some scripting in PHP (Most of which is actually still in production, 15 years later!), I wasn’t doing a lot of programming.


🤖 2011–2016: The Android Interlude

In 2011, I got back into development via Android. I built a calorie database app for restaurant foods and released it on the Play Store. It eventually saw 400–500k downloads.

Oddly enough, as of this writing, it’s still installed on 397 devices—and someone even redistributed the APK with their name on it, despite it still having my bundle ID: com.jonwestfall.ffcal.

Then another long pause from 2016 until now.

📱 2025: Wandrip and the Wonders of Modern Dev

Fast forward to today: I’m deep in development on Wandrip. And I’m absolutely floored by how much easier—and faster—everything is.

Let’s walk through a simple example: fixing a bug.

Back in 1997, if I found a bug in one of my programs, the process looked like this:

  • Boot up my Windows 95 machine (which I had likely just reformatted… again).
  • Reinstall my development tools (Delphi, utilities, installer creators).
  • Hunt down my source code (version control? What’s that?).
  • Try to remember what my uncommented spaghetti code even did.
  • Fix the bug, compile (if I could), and generate a new installer using InstallShield.
  • Upload the new setup.exe to my web host. Submit to Download.com.
  • Wait and hope people downloaded the new version (and that they didn’t just stick with the buggy one).

And if I had any questions? I’d consult my books or maybe a newsgroup post from six months earlier. Google didn’t exist. StackOverflow wasn’t even a dream.

Now compare that to today:

  • I log into a GitHub Codespace. It automatically pulls my code.
  • I fix the bug—often with help from an AI assistant.
  • I test it directly in the browser, commit the changes, and launch a build using Expo Application Services (EAS).
  • EAS can compile Android and iOS apps on its servers, help with distribution, and even push updates to app stores.

All of this can take under an hour. On an iPad.

It’s been nearly 30 years since I started programming, and I still find joy in it. If anything, I find it more joyful today—because I spend more time creating and less time fighting my tools.

Sure, I may be a dinosaur. But the code still runs.

What Are My Blind Spots? I Asked ChatGPT.

A few moments ago, I came across an intriguing post on Reddit that posed a simple yet provocative prompt: “Now that you can remember everything I’ve ever typed here, point out my top five blind spots?” (source). The idea stuck with me.

As someone who’s used ChatGPT extensively across a wide range of projects—academic writing, software development, teaching, and even a bit of whimsy—I figured the model might actually have something insightful to say. After all, it’s been part of my daily workflow for months, across everything from syllabus edits to tour app debugging to conversations about cats and Canadian geese.

The Geese

So I asked.

Here’s what it said.

My Top 5 Blind Spots (According to ChatGPT)

1. Tendency to Overbuild Before Testing

I often refine systems and features to a high level of polish before seeing how they work in the wild. This can slow down feedback and iteration.

2. Taking on Too Much Solo

I frequently carry the full load of a project myself, even when collaboration could make things easier—or better.

3. Over-Correcting for Clarity

My preference for precision and structure can sometimes get in the way of creativity or navigating ambiguity.

4. Fast-Paced Thinking, Slower-Paced People

I move quickly between ideas, modes, and tasks. Others don’t always keep up, and I don’t always pause to bring them along.

5. Understating My Influence

I tend to frame my statements cautiously, even when I have the authority or expertise to speak more definitively.

I have to say, this was more insightful than I expected. These aren’t things I’m completely unaware of—but they’re definitely themes I don’t always recognize in the moment. It’s a little like holding up a mirror that reflects not just how I act, but how I tend to act across contexts.

And that, honestly, feels like one of the most useful ways to use tools like ChatGPT—not just as a productivity enhancer, but as a thinking partner that notices patterns you might miss. In some cases, I can clearly see where some of these blind spots come from – for example, when you have a lot of interests, it can be hard to find collaborators because you don’t get deep into communities around one interest. And it doesn’t help when they may move too slow for you anyway (see #4)!

I’m not sure what, if anything, I should do about this. But it is interesting pushing an LLM to be critical of you and provide constructive comments. It’s a far cry from the usual flattery it provides. And perhaps useful if for nothing else than to see what it’s been thinking about you behind your back!

Using A.I. in Dr. Westfall’s Classes: A Thoughtful Approach

Artificial Intelligence (A.I.) is changing the way we do things inside and outside of our classrooms. Tools like ChatGPT and other generative A.I. platforms can be powerful allies in your academic work, or they can get you in a ton of trouble. Students want guidance, hence this blog post and infographic. Here are my 3 guiding principles of AI use in my classroom, and in professional life.

1. Generative A.I. is an effective tool, when used with care.

A.I. can help you brainstorm ideas, clarify confusing topics, and even provide feedback on early drafts. It can put things in words that your professor wouldn’t think to use, which may help them click better. And it’s great at proofreading, it will catch all those little things your eye misses. However, simply copying and pasting output without editing or reflection is likely to backfire. A.I. often produces generic or superficial responses, and it sometimes makes factual errors or misinterprets context (it hallucinates worse than you’d think!). It works best when you use it as a collaborator—not a shortcut.

If you rely on it too heavily or uncritically, your work may lose its clarity, depth, or voice. Worse, you may inadvertently turn in something that doesn’t fully address the assignment—or that raises plagiarism concerns. Or both for extra fun! Use A.I. to enhance your thinking, not to replace it.

2. Generative A.I. starts a conversation—you may use it, but you should tell me where, when, and why you’re using it.

Transparency matters. If you use A.I. in your work—whether to rephrase a paragraph, summarize a reading, generate ideas, or check grammar—let me know. I’m not here to penalize you for using helpful tools; I’m here to help you learn how to use them well. But if you just tell me “Nope, didn’t use it at all!”, I have nothing to provide to you in terms of guidance. And Principle 3 will really get you in that case!

Briefly describing how you used A.I. helps me understand your process and support your learning. It also helps create an honest academic environment where we can talk openly about emerging technologies and how they fit into our work.

3. Generative A.I. Helps, but You Own the Work.

When you submit work for a grade, you’re putting your name on it. That means you are responsible for the content, the quality, and the implications of what you submit. If an A.I. tool generates a clunky sentence, makes an inaccurate claim, or uses a tone that doesn’t fit the assignment—and you leave it in—it reflects on you. And you might not want to be known as that person who only speaks in groups of threes and uses em dashes extensively!

Likewise, if I ask you to explain your thinking and you can’t speak to what was written, that’s a problem for professional life. A.I. tools can support your efforts, but they cannot replace the understanding, decision-making, or academic integrity that you bring to your work. You don’t just turn in words—you turn in your thinking.


Final Thoughts

The goal of these principles is not to restrict you, but to empower you. I want you to feel confident and competent in your use of A.I. tools, and I want to help you learn how to use them in a way that complements your own voice and skills. A.I. isn’t going away—so let’s learn how to use it wisely, responsibly, and creatively.

Have questions about when or how to use A.I. in a specific assignment? Just ask. I’m here to help you navigate this new landscape.

BattlingPickle’s PsychOut Discord

A colleague and I are creating a Discord server to discuss psychology and all things related (Technology, community, academia, culture, etc…) We’re hoping to use it with our students, and our colleagues and friends.

If you’d like to join in, head over to https://go.jonwestfall.com/psychout and jump in. Right now just a few channels in there for general talk, posting news that you’d like to discuss, and just some fun. So stop by, post some stuff, and enjoy.

Life on an iPad

A few days ago, my MacBook Pro had to go on a quick trip to Texas for a doctor’s appointment (a.k.a. Some service work on a misbehaving main board). With my “spare” MacBook mostly used by my wife these days, I figured “I wonder if I can survive on my 2018 11’’ iPad Pro and my 2022 iPad Mini. Here’s what I learned…

  • Hooking an iPad mini up to a 27” Cinema Display with a mouse and keyboard gets you about 95% of what you need, with the important caveat that your muscle memory needs a bit of tweaking. Some shortcuts are the same macOS to iPadOS, and some are not.
  • Cloud storage can save you – with all of my files in OneDrive or iCloud, I could pop over to one of our classroom computers if I desperately needed to do something with the desktop operating system.
  • I estimate that for about 1/8th of my work, it’s much easier to do on desktop, or impossible to do on an iPad.
  • Having 2 iPads was helpful for things like Microsoft Teams calls, and other situations where I just needed the ability to keep something up for an entire duration of a meeting.
  • Split screen is way more useful than I ever thought, as is multiple windows in iPadOS Mail.
  • Unlocking an iPad with your watch, similar to unlocking a Mac, would be a nice feature.

Overall I’m pretty happy that my MacBook has now returned from service (with a new logic board, touch pad, top panel, and battery), but it was a useful exercise to live for 3 days in my office on an iPad mini.

Listen Siri, I Didn’t Ask for John Sanchez!

I use Siri fairly often when walking, biking, or just when my hands are busy. One of my frustrations is that Siri hates playing the music I ask for. I used to have a playlist named “Essentials”, and I would frequently say “Hey Siri, shuffle Essentials”. That didn’t work 99% of the time – she’d find some artist’s “essentials” playlist or album on Apple Music and start playing that. So I changed the name to “Jon’s Essentials”, and now when I say “Hey Siri, shuffle Jon’s Essentials”, about 75% of the time I get back “Shuffling John Sanchez on Apple Music”. This is annoying because A) I didn’t want to listen to John Sanchez and B) Apparently no one else did either because there’s no music for him on Apple Music.

Lack of John Sanchez

So, what is the solution? Shortcuts app to the rescue. I recently created a very simple shortcut – a menu with my favorite playlist names in it, and then a “Play Music” action for each option. Now when I say “Hey Siri, play my tunes”, she asks what playlist, I say one of the options, and it starts playing. It shouldn’t be this hard, but unless I want to remember to say “Hey Siri, shuffle my playlist named Jon’s Essentials” (Which works about 80% of the time), it’s just easier.

My Shortcut

Easy In-Class Presentation Ratings Using Google Forms, Sheets, and R

man in beige blazer holding tablet computer

In my classes I’ll often have students give short presentations, and recently I wanted to allow my students to also rate each other. Here’s a very quick and easy way to accomplish that while also having the data analyzed to tell you who is the ‘winner’

  1. Create your rating forms in Google Forms. I made a very simple form that just asked for a couple of ratings and some feedback.
  2. Optionally have some way for students to easily get to the form – you could send it out via your LMS or create a QR code that students can scan in class (I chose the latter).
  3. In Google Forms, choose the “Responses” button and then the green Google Sheets link – this will store the responses for your form in Google Sheets.
  4. In the Google Sheets spreadsheet, go to “File” then “Publish to Web”. Choose CSV as your format, and copy the link that it gives you after you press Publish. This is what we’ll feed into R to do our analysis.
  5. Open R, create a new script, and put in these lines:

data <- read.csv("https://docs.google.com/spreadsheets/d/e/2PACsdavPPIE-qn0w1Ot5T/pub?output=csv")
names(data) <- c("Timestamp","GroupID","overall","interest","groupcomments","privatecomments")
tapply(data$overall, data$GroupID, summary)
tapply(data$interest, data$GroupID, summary)


Modify line 1 to have the CSV file link you got from Step 4, and change line 2 to be the easy-to-remember variable names for your form fields. Lines 3 & 4 simply show how to get summary data for each interest by a group identifier.

6. At this point you could just run the R script after your students enter in their ratings, and it will give you all of the information you need. However I took a little extra step: I installed the script on one of my Virtual Private Servers – it runs the script every minute and creates an HTML report that I can access from Safari on my iPad. That way I can easily see what the group scores were while in class to award the winner. This step takes a little extra time, but it will be worth it, especially if you want to share the results with your students (Or you want them to be able to see the results in near-real-time).

Easy hookup of data to analysis, with a lot of possibilities for customization!

I’m Busy – My Best Tips and Tricks for A Productive Professional Life

person using macbook pro on white table

It’s been awhile since I’ve talked productivity on this blog, but recently I’ve had a number of people point out to me that I’m extremely busy. If you don’t know, I have a few different roles professionally and personally – if you’re really curious, here’s the list as of today. But without boring you, know that I have multiple job titles and roles. I’m at the point this fall that I’m openly telling people that if they hear a story of me throwing someone out a window, it’s because that person told me “I’m too busy”, because I don’t know of anyone else on my campus that has as many irons in the fire, as it were, as myself. They probably exist, but haven’t revealed their true amount of overloadedness to me.

Anyway, this post isn’t about how busy I am – it’s about how I maintain a high level of productivity while being so busy. I figure every so often it’s a great idea to point out what I’m doing that makes me productive, so that I can share it with others. Also helps me highlight some of my older content that you may have missed. So here’s what I do:

  1. Everything is on every device or accessible from every device. I wander around with my iPad Pro, which can connect to my MacBook from anywhere, meaning that when I’m out at a meeting across campus and I have a few moments to take care of some work, I can do it remotely.
  2. I also dispatch and answer emails and texts as quickly as possible, so that they don’t bunch up. There is an added psychological benefit both to myself and for myself in this as well. I honestly believe I’m seen as much more competent than I might be just because I get back to people quickly. Don’t get me wrong – I’m not ill-equipped for my job, I just don’t think I’m as great at it as others tell me I am!
  3. I use a calendar booking service (YouCanBookMe) and I send automated reminders to people that we’re scheduled to meet. Prior to this I’d say I probably spent at least 10-15 minutes per day answering emails that purely were about scheduling time to meet. YouCanBookMe, and to a lesser extent, sites like Doodle.com and SignupGenius.com are essential scheduling tools.
  4. In the classroom, I take advantage of technology to facilitate my teaching – through entry/exit tickets and tracking participation in Microsoft Excel. Both save time when entering information into my Gradebook.
  5. While I have 2 offices on campus, I also try to be as productive out of the office as possible. This post, written prior to the pandemic, highlights 5 tips I gave then that helped me weather the “work from home” storm much easier in 2020 than I might have otherwise done.
  6. Sometimes when I get tired of having to type the same things out over and over again, I write them down so I can direct people to them. This might seem a bit callous or flippant, but it’s the honest truth:
    1. Students having issues with registering? See my DSU Probs posts.
    2. Want to know all my best R tips? Read this book (I put 10 years of tips in this)
    3. Want to run a server like I do? Read this book (I put 20 years of tips in this).
    4. And, ya know, posts like the one you’re reading right now!

So there you have it – in very basic terms how I stay productive. What I perhaps didn’t put here is that one also must balance things out within oneself to be productive – if you haven’t thought about it, I suggest two small additions to your life:

  1. Routine / Ritual: Whether it’s a morning ritual to get pepped up, an evening ritual to wind down, or a lunchtime moment of enjoyment, find something that you can structure around and try to hold is sacred. This trains your brain to understand that even when life is absolutely crazy, there are almost always constants. This is also a great way to add new habits to your life that you want to take pride in.
  2. Balance work and life as best as possible. I do this in a few little ways:
    1. Saving work – If something isn’t time sensitive, I have no problem putting it down to do later in the week. It’s a common misconception that you should keep working until your to-do list is empty. The honest truth is that your to-do list should never be empty, but your time sensitive tasks for today should be. Think about it this way: If you have something due in a week, and you know you have a light day later this week, what is better – assign that task to the light day, or do it today and miss out on a) dinner with your spouse, b) a conversation with co-workers, c) a TV show you enjoy relaxing to? A-C are much better options than being bored at 10 AM on Thursday because you did the work Tuesday night.
    2. Don’t be afraid of embracing unmotivated boredom time at work. I have, on several occasions, freaked out co-workers by dropping by their offices and saying “I’m bored, what are you up to?”. They usually tell me “Don’t say you’re bored – it looks bad!” – but the honest truth is, sometimes we aren’t motivated. Sometimes we are bored. And those are times when a little human interaction can be really beneficial. Not only does it give you something to do that many people find rewarding (e.g., talking to people they like, assuming you like your co-workers), it also creates relationships that are reciprocal in nature. No one wants to be that co-worker that only talks to you if they need something.
    3. While I personally plan on saying “No” a bit more this fall (given my work level), I generally give the advice to not be afraid of saying “Yes”. Be an “experience junkie” – take on new challenges and find enjoyment in them. Just don’t overload yourself.

So there you have it, my tips and tricks, Fall 2021 edition. Stay safe, stay sane, and stay busy!

Rest Days that Don’t Break Your Apple Activity Streaks!

If you ask around the internet about rest days, you find a debate between the “be active every day” crowd and those who insist that your body needs recovery time. And honestly, the answer is somewhat in the middle. If you’re doing something that requires regeneration, such as strength training to build muscle, than yes, a rest day is critical to give your muscles time to heal. If you’re power walking, which is one of my main forms of workout (e.g., walking at a pace of a 13:30 mile, or about 5.5 MPH), you will find there are mornings your legs are on fire from last night’s walk. And if you walk outside, like I do, you also have the weather to contend with. Hard to go for a long walk or run when it’s pouring out (Although I have been the crazy guy out there in light rain with an umbrella walking!)

Sometimes walking in the rain and snow is pretty, though.

However you feel about rest days, one thing that’s very clear is that Apple doesn’t give you any days off if you’re a fan of the mantra “Close Your Rings”. Heck, it wasn’t even until last year that they gave us the option to change the amount of exercise minutes and stand hours (It was previously set to a hard 30 minutes and 12 hours, respectively). Plenty have complained that this is unrealistic – why should your 400+ day move streak end because of circumstances outside of your control. What circumstances, oh…

  • You get sick
  • Your family is sick and you have to care for them.
  • Your Apple Watch dies temporarily or permanently.
  • You decide to go on a technology-free retreat.

Plenty of reasons you might not be able to log your move calories, your exercise minutes, or your stand hours. Should you just let the streak die? No!

Well, perhaps Yes – you see this all gets into how you measure your own success. Unless you’re competing with another, the majority of the time you’re using your rings as a way to be honest with yourself. Closing them gives you a sense of accomplishment, earning badges gives you small boosts of dopamine that say “I’m doing stuff…”. And failing to close them can make you discouraged if it was due to circumstances not related to your fitness. I’ve certainly had friends joke “If you workout and your watch doesn’t record it, what was the point?!?” – And for some of us, psychologically, there is a grain of truth there. So should you let a streak die? Here’s my simple rule:

  • If you view your streaks as part of a life change that you want to affirm to yourself regularly – if you’ve assigned substantial meaning to them, then you should keep the streak going even if you didn’t technically do the work on a given day due to things you couldn’t control. After all, your intention was still there.
  • If you view your streaks as simply metrics on what you’re doing, in the way that you might view any other number without emotional connection, then just let them die.

I’m assuming if you’ve made it this far, you fall into the “Save my Streak” category, so I’m going to use the rest of this post to tell you how to do that without having to install any special software. Turns out there is a way to preserve your streaks without much effort.

The Obligatory “Why I Figured This Out” portion of the Recipe

So I know you just want to know how to do it, so skip this unless you know me personally and are curious. Anyway, as of today, here are my streaks:

As of August 6, 2021

As you can see, I have been working out a lot over the past year. As I mentioned in Part 3 of my weight loss story, I really wanted to make it to 365 days. Which I did. Then I kept going. But at some point the streak that I set each day became further affirmation of my changing body and mind, and I really wanted to keep it. So much that I changed my move goal from 810 calories to 480, my workout goal from 30 minutes to 10, and my stand hours remained at 12. Now here’s the kicker – I’ve never needed to “use” these lower levels, on average – over the past 90 days, my average Move is 880 calories, and my average exercise minutes is at 72 minutes. With the exception of a few days of driving for summer trips, I don’t need to use the lower goals to maintain the streak.

This got me thinking: What if there were a way I could return to my actual goals, but still have the security of being able to persist in my streaks even if my watch dies (like it tried to do the other day), or in an emergency I can’t work out. And maybe, just maybe, it would be useful if I wanted to give myself a “day off”, but more on that later.

Then I realized – Apple lets you do this already, all you need to know is where to look.

How Do I Fill My Rings Manually?

It’s easy – follow these steps:

  1. Open the Apple Health app on your iPhone.
  2. Go to Browse and type “Workouts” in the search.
  3. Open the Workouts data, and choose “Add Data” at the upper right.
  4. Enter whatever activity type you like (while not completely accurate, a rest day could be “Preparation and Recovery”, or just use “Other”)
  5. Enter the calories burned, These will increase your red move ring.
  6. Enter a start and end time, These will be counted toward your exercise ring.
  7. Hit “Add”

And there you have it – You should see the Apple Activity app on your watch update as well as on your phone. You’ve essentially done exactly what your phone would have done if you’d worked out, but you entered it in manually. Yes, the iPhone will flag this as “Entered by user”, but it will still count it.

When Should You Use This Power?

Again, this question is largely up to you. But one thing that I have thought a lot about lately is “rest days” – as in, days when either my Oura ring outright tells me to rest…

The Oura Ring telling me to “Pay Attention” in Readiness

Or on special occasions – a holiday or a day I feel I’ve earned a break. I’ve considered having 10-15 days per year that I could “use” (Sort of the equivalent of workout “paid time off”) as I like. I haven’t decided yet on if I will do this, or how I would track it, but I’d love to hear your thoughts on it.

In fact, I’d love to hear your thoughts on all of this “nonsense” (Which I put in quotes because sometimes the realist in me calls my mind out and says “Dude, this stuff doesn’t really matter – health is for you, who cares if a stupid smart device confirms what you already know!”). Are streaks meaningful? Do you care about a sleeve of virtual medals? If so, why? If not, why not? And will you “cheat” or stay honest in your streaks?