Computer tutorials, tips, and tricks to help you learn Microsoft Excel, Access, Word, and lots more. Visit our full site at www.ComputerLearningZone.com.
Monday, November 3, 2025
Fitness 57
from Computer Learning Zone News https://599cd.com/Fitness57
Sunday, November 2, 2025
Changing Clocks is Still Dumb! We Must Abolish Daylight Saving Time! Nov 2025 Edition
Hey folks, Richard Rost with Computer Learning Zone. Time for my semi-annual rant about how changing the clocks is dumb. And yes, I will keep posting a new video twice a year until this dumb practice is over.
The Plumber, the Programmer, and the Piano Hands
Sometimes the question isn't whether you can do something, it's whether you should. As a developer, I know I can build just about any software I need if I throw enough time at it. The real question is: how much time is it going to take, and is that time worth it? Sometimes it makes more sense to just buy something off the shelf and move on with your life.
Case in point: a little while ago I bought some color-changing LED lights for the outside of my house. I wanted to be able to dim them, and maybe set orange for Halloween or red and green for Christmas. Simple idea. I've got eight white lights out there, so I thought, no problem. I got out the ladder, climbed up, and did the first one. And that's when I realized it was a big pain in the ass. To do seven more of them would take me all day. Not to mention I only have vision in one eye, so I'm not exactly comfortable up on a ladder. My balance isn't great, and I'd prefer not to break a hip in the name of festive lighting. I love holiday spirit, but not enough to spend it in a neck brace. I already had cuts and scrapes on my hands from the sharp aluminum under the soffit where the lights were mounted after doing just one. That's when I decided to call in help. Sure, I could do it myself, but my time (and my delicate piano hands) are worth more than that. (1)
It's the same with plumbing. I can fix a simple clog or swap out a faucet, but if the problem is something deep in the pipes, I'm calling a plumber. Could I take apart the toilet, figure it out, and fix it myself? Probably. But it would take me the entire day, and honestly, I don't care enough about plumbing to want that skill in my toolbox. If a plumber can show up and fix it in twenty minutes for a hundred bucks, that's money well spent. When I was younger and broke, I had more time than money, so I'd tackle those jobs myself. Now my time is worth more, and I'd rather spend it doing something productive or enjoyable instead of learning how to snake a drain. Besides, once you've seen what comes out of those pipes, you can't unsee it. Also, I wouldn't want to accidentally scar my wife for life if she catches sight of my plumber butt.
This same logic applies to software. Just because you can build something doesn't always mean you should. I've seen plenty of business owners start out wanting to build their own Microsoft Access database. And that's great - if you want to learn it, if building databases excites you, if you enjoy the challenge, then by all means go for it. That's why I teach this stuff. But there comes a point when some people realize they'd rather spend their time running their business than writing VBA code and fixing bugs. That's when it might make sense to hire someone from my Developer Network to help.
Even then, though, I always encourage people to learn the fundamentals. Understand how tables, queries, and relationships work. Maybe dabble a bit in VBA. That way, if something goes wrong, you're not dead in the water. You'll also be able to talk to your developer in their language. Instead of saying, "I want a screen that shows stuff," you can say, "I need a cross-tab query that summarizes sales by month." That makes everyone's life easier.
Businessman Sy Syms once said, "An educated consumer is our best customer." The same applies here - an educated Access user is a developer's best client. If you know the basics, you'll get better results and you'll appreciate the work that goes into it. The same principle holds true in any field. If you're talking to a lawyer, it helps if you understand a few legal terms. If you're dealing with an electrician, it helps to know what a breaker is. And if you're dealing with a developer, it helps if you understand Access.
In business, it's always about time versus money. When you're just starting out, you usually do everything yourself. You handle your own bookkeeping, run payroll in Excel, answer every customer email, design your own marketing materials, and maybe even manage your own inventory. That makes sense when you're small and cash is tight. But as your business grows, your time becomes more valuable. Eventually, you realize it's worth paying for a service like Paychex, hiring an accountant, outsourcing customer service, or bringing in a marketing agency so you can focus on running and expanding your business instead of juggling all the little pieces yourself.
When I first started 599CD, I used to literally make my own CDs by hand. I burned them one by one, printed the labels, slipped them into envelopes, and drove them to the post office. It was time-consuming, but I was young, broke, and excited to be doing it. That was the scrappy startup phase. As things grew, I eventually realized it was worth outsourcing duplication and fulfillment to a professional service. Sure, I could still do it myself, but that time was better spent creating new lessons instead of standing in line at the post office. (2)
I used to build my own computers back in the 90s. It made perfect sense then. You could save a few hundred bucks by buying all the components yourself and assembling the machine piece by piece. When a good computer cost around $2000, that savings really mattered. Plus, there was some pride in booting up a system you built with your own hands. But times have changed. These days, buying a computer is like buying a toaster. Even I don't bother building them anymore. I just pick up a laptop and get to work. The only people who still build their own machines are gamers or hardcore enthusiasts who genuinely enjoy tweaking every little nook and cranny of what's inside the case. And that's great, because they're doing it for the passion, not just the savings. For me, hardware was never the fun part. I've always been more interested in what makes the thing tick once it's running. Plus building computers, once again, can be rough on the piano hands. So many sharp edges inside those cases.
In fitness, it's the same story. When I first decided to get serious about health back in my 30s, I was young and broke, and the idea of paying a personal trainer was laughable. I also hated going to the gym. I've never liked working out around other people, so I built my own home gym in the garage and did everything myself. This was before the internet was packed with fitness influencers, so I hit the bookstores instead. I read every book and magazine I could find on nutrition, weight training, and metabolism. I studied how the body works and how to eat properly. It took a lot of time, but it paid off. I built the knowledge from the ground up, and that was a valuable skill to learn.
The fact that I let myself go in my 40s wasn't because I didn't know better - it was because I moved to Florida and got lazy. Now that I'm back on track, I'm applying all that knowledge again. The difference today is that there's so much information online, and you have to be careful about what you follow. There are legitimate experts out there, but there's also a lot of nonsense. So before you let someone tell you that seed oils are evil or diet soda is toxic, check their credentials. Nutrition science is clear: seed oils aren't going to kill you, fats don't automatically make you fat, and the secret to weight loss isn't magic - it's calories. Measure your intake, move your body, eat real food, and stay consistent. It's not rocket surgery.
And if you don't want to spend months (years!) learning all that yourself, that's fine too. You can hire a personal trainer to teach you how to lift properly and a registered nutritionist to set up a plan for you. Just make sure they're actually qualified and not just someone who looks good in gym selfies. Whether you do it yourself or pay for expert guidance, the key is finding what works for you and actually sticking with it.
Philosophically, it's about deciding which skills you actually want to learn and which ones you're fine letting someone else handle. But there are some things you should never outsource, and thinking is one of them. You can hire someone to fix your plumbing, build your software, or run your payroll, but you can't delegate your worldview. Too many people just download their beliefs like a piece of off-the-shelf software and never question where it came from. Whether it's politics, religion, or whatever's trending on social media, it's easy to let someone else do the thinking for you. Don't just scroll to the end of the software agreement and click "I agree."
That doesn't mean you should ignore the experts, though. Quite the opposite. Trusting experts isn't blind faith - it's recognizing that they've spent their lives studying things you haven't. My electrician understands wiring better than I ever will, and my plumber knows how to fix things I'd probably just break worse. The same goes for virologists, immunologists, and astronomers. You could spend twenty years learning all of that yourself, or you could rely on the people who already have. The difference between science and dogma is that scientists constantly challenge each other. They don't protect bad ideas - they tear them apart. Believe me, I've seen that same instinct in Access developers. If one of us posts bad code or a wrong tutorial online, the rest of us are quick to call it out. Experts love catching other experts being wrong. That's how progress happens. You've seen me critique other bad articles, websites, and videos before.
So yes, build your own worldview, but use good tools and solid data while you do it. You don't have to reinvent the wheel every time, but you should at least understand how it turns. Think for yourself, question what you hear, but don't assume every expert is part of some grand conspiracy. Most of them are just people like me - nerds who care deeply about getting it right.
I still like hands-on projects when they're fun or I'll learn something from them. I installed a ceiling lifter in my garage - took me forever, but it was a good challenge. Would I do it again? No way. I'd hire it out. Same with assembling my home gym. It's all about whether I consider it work or play. If I enjoy it, I'll do it. If it feels like work, I'll gladly pay someone else.
Even in Star Trek, the same principle applies. In the Next Generation episode Booby Trap, Geordi La Forge nearly burns himself out trying to free the Enterprise from an energy-draining snare. He's brilliant, and given enough time he probably could solve the problem, but instead he does something smarter: he creates a holographic version of Dr. Leah Brahms, the engineer who originally designed the ship's engines. With her help, they find the solution together. Geordi could have kept struggling on his own for days - or years - and maybe never found the answer. The point is, even the best engineers know when to call in an expert. You don't always have to prove you can do it yourself. (3)
Sometimes the smartest thing you can build isn't software or hardware - it's free time. In the end, that's the only currency we really have that's worth anything.
LLAP
RR
(1) Side note: don't call an electrician for something a handyman can do. I probably paid three times as much because I didn't think that through. Lesson learned.
(2) I am so happy that everyone can stream video online now. Because shipping those CDs was a major pain and a huge time waste. And even after I was able to outsource it to a company that did that for me, you still got to deal with returns and broken disks, and it was just a nightmare.
(3) And yes, before anyone points it out, when the real Dr. Leah Brahms shows up later, she's understandably not thrilled to find out Geordi built a holographic version of her and spent a little too much time with it. Let's just say that episode didn't age well in today's HR environment.
Saturday, November 1, 2025
Quick Queries #64
from Computer Learning Zone News https://599cd.com/QQ64
Thursday, October 30, 2025
Fitness 56
from Computer Learning Zone News https://599cd.com/Fitness56
Wednesday, October 29, 2025
Fitness 55
from Computer Learning Zone News https://599cd.com/Fitness55
Tuesday, October 28, 2025
Scroll Wheel Rich Text
from Computer Learning Zone News https://599cd.com/ScrollWheelRichText
Monday, October 27, 2025
Fitness 54
from Computer Learning Zone News https://599cd.com/Fitness54
Friday, October 24, 2025
Quick Queries #63
from Computer Learning Zone News https://599cd.com/QQ63
Thursday, October 23, 2025
Pick Address 2
from Computer Learning Zone News https://599cd.com/PickAddress2
Wednesday, October 22, 2025
Pick Address
from Computer Learning Zone News https://599cd.com/PickAddress
Tuesday, October 21, 2025
Fitness 53
from Computer Learning Zone News https://599cd.com/Fitness53
Monday, October 20, 2025
Fitness 52
from Computer Learning Zone News https://599cd.com/Fitness52
Friday, October 17, 2025
Quick Queries #62
from Computer Learning Zone News https://599cd.com/QQ62
Thursday, October 16, 2025
Fitness 51
from Computer Learning Zone News https://599cd.com/Fitness51
Wednesday, October 15, 2025
Fitness 50
from Computer Learning Zone News https://599cd.com/Fitness50
Tuesday, October 14, 2025
Fitness 49
from Computer Learning Zone News https://599cd.com/Fitness49
Monday, October 13, 2025
Columbus Day or Indigenous Peoples Day? Let's Rename It "Reflection Day"
Friday, October 10, 2025
Quick Queries #61
from Computer Learning Zone News https://599cd.com/QQ61
Thursday, October 9, 2025
Fitness 48
from Computer Learning Zone News https://599cd.com/Fitness48
Wednesday, October 8, 2025
Fitness 47
from Computer Learning Zone News https://599cd.com/Fitness47
Tuesday, October 7, 2025
Fitness 46
from Computer Learning Zone News https://599cd.com/Fitness46
Monday, October 6, 2025
Fitness 45
from Computer Learning Zone News https://599cd.com/Fitness45
Friday, October 3, 2025
How to Make an OpenAI Chatbot in Microsoft Access That Remembers Conversations
Today's TechHelp tutorial from Access Learning Zone focuses on building a chatbot in Microsoft Access with real conversation memory. This means creating an OpenAI-powered chatbot that can remember and carry on an ongoing conversation, just like ChatGPT does in your browser.
Previously, I have shown how to connect your Access database with OpenAI to create simple chatbots. Those early versions were limited since they did not retain any memory of prior conversation: each question was a fresh start, and there was no context from what had been discussed earlier.
In today's lesson, I want to show you how to give your chatbot the ability to remember the conversation. Think of it as adding "memory" to your chatbot, much like ChatGPT remembers all the back-and-forth you have in a session online. With this improvement, the chatbot in Access can maintain ongoing threads, making it useful for all kinds of business situations: customer service chat records, tracking ongoing project discussions, internal help desk issues, sales and CRM histories, employee training, or even creating self-quizzing tools that remember what has already been asked. There are numerous practical applications when your bot can remember each back-and-forth with users.
To illustrate this, I set up a sample database for testing. For example, in one conversation, I chatted about Star Trek, role-played a little adventure, and even had the bot quiz me on anatomy. Each interaction is part of a continuous thread.
In a typical session, you start a conversation and ask something like "It was a shame that Firefly only had one season." The chatbot will respond appropriately. Now, if your next message is something like "Any word on a season two?", the chatbot, because it remembers the previous discussion, knows you are referring to Firefly and can respond correctly. Without this memory feature, it would not make that connection.
This tutorial is geared toward those comfortable with Access at the developer level. If you are new to VBA programming or have never worked with OpenAI in Access, I recommend reviewing my introductory video on connecting Access and OpenAI for all the basic setup steps.
After that introduction, I also created a video on requesting images from OpenAI and making further improvements to the codebase. Even if you are not focused on images, I recommend watching to learn about enhancements like switching to the GPT 4.1 API model and other minor changes.
For members at the Gold level, I will be working from the database that was developed at the end of the images video. Silver members and nonmembers, you will have to build out the database by following the previous tutorials.
To get started, in your test database, first place your OpenAI API key into the designated spot. I suggest enlarging the text box used to send input to the AI to give yourself more space to type. You should also create two more text boxes: one to display the AI's response, and another to store the full conversation thread.
The critical point here is that for the memory function to work, you must send the entire conversation thread back and forth with each request. The prompt essentially tells the AI, "Here is the conversation so far. Here is my latest comment. Please reply accordingly." This builds context, just as ChatGPT's web version maintains its state by constantly referencing the conversation history.
I suggest using different background colors for these new text boxes to distinguish their purposes visually. If you no longer plan to use image features, you can set aside those controls.
Next, there will be some minor adjustments required in the supporting code. Occasionally, OpenAI changes the API response format, so things like the markers for response text may need updating. For example, if the AI's response format changes, you may need to adjust the parsing logic in your function that sends queries and receives replies.
I recommend sticking with GPT 4.1 as your model for now. Although GPT 5 and its Mini and Nano variants are available, GPT 4.1 generally gives the best balance of response quality and speed.
You will need to update the code in your form's command button to handle both the single-message and memory-enabled chatbot modes. If the user fails to fill in the input box, make sure you prompt them with a status message before sending anything to OpenAI.
For our memory-enabled chatbot (let's call it bot number seven in your system), update the logic so that if the conversation thread is empty, you flag it as such for the AI. Each time the user submits input, append both their message and the AI's response to the thread box, always keeping it current. When the bot is in memory mode, make sure your command text incorporates the full conversation thread, followed by the new message.
Be aware that all data sent to and from OpenAI must use JSON formatting. This means you cannot send VB new line characters or double quotes as-is—they must be escaped or converted into friendly characters (for instance, using "backslash n" for new lines and escaping double quotes). Similarly, when processing the reply, convert any escaped characters back into their appropriate Access equivalents for display.
Occasionally, you might encounter bugs due to copy-paste errors or API changes. For example, if your code mistakenly overwrites input variables or fails to add updated content to the conversation history, double-check that you are passing and appending data correctly. Consistent naming and careful troubleshooting habits pay off here.
Once set up, you can see the memory feature in action by having a conversation about favorites from Star Trek or launching into a Dungeons and Dragons adventure, with the AI retaining context and responding naturally to follow-up comments. You can also create learning quizzes, where the AI remembers which topics or questions have already been covered.
There are still a few small details to polish, such as ensuring the chatbot can handle conversations that end with certain special characters (like double quotes) without error, and deleting unnecessary clean-up steps in the code if they create problems.
Currently, the conversation is only stored in the form during use. If you want to preserve entire chat threads or manage multiple ongoing discussions within your database, you can create a table to save conversation records, including an ID, description, and the thread text. This way, every interaction is available for later reference.
One item to keep in mind is the conversation length. Each time you interact with the chatbot, the entire thread is sent back to OpenAI. Long conversations—those reaching around 100,000 characters—will slow down performance and may hit the limits of the AI's context window. In the extended cut of this lesson, I will show techniques for handling long threads and managing multiple chats in your database. Gold and Silver members get access to these extended-cut videos, and as always, Gold members can download the databases shown in the videos for their own use.
When I begin advanced lessons, I always start from a standardized database so everyone is on the same footing. This helps avoid issues from previous small modifications or errors that may have crept in while following along at home.
In summary, today's tutorial covered creating a chat interface in Access with memory using OpenAI, adjusting your code for context handling, conversation tracking, JSON compatibility, and addressing common pitfalls. With this setup, you can have rich, ongoing conversations right from Access and tie them into your actual business data.
You can find a complete video tutorial with step-by-step instructions on everything discussed here on my website at the link below.
Live long and prosper, my friends.
For more info please visit:
The #1 Mistake People Make with Null in Microsoft Access - Quick Queries #60
In today's Quick Queries video from the Access Learning Zone, I want to talk about the single biggest mistake people make when dealing with Null values in their Microsoft Access databases. I'll give you a hint: Null is not actually equal to Null.
Let's get right to the point. In Microsoft Access, Null isn't equal to anything, even itself. This trips up a lot of beginners and even some experienced users from time to time. Today, I'll go over that foundational concept and also respond to a variety of questions and comments I've received from students through YouTube and email.
The first discussion for today comes from a question posted in my website forums. I don't always get to answer questions there myself since the moderators or other students are usually pretty quick to respond, but this time I managed to catch one just after it was posted.
This leads to an important point: while I used to help answer questions on all sorts of other forums and sites, I don't do that much anymore. By the time I see questions, others have usually taken care of them already. That's why most of what you see in these Quick Queries videos comes straight from emails or YouTube comments. I get far too many emails to answer each one personally, so I encourage students to use the forums for faster responses. Still, if a question stands out as particularly interesting or useful, I might include it here.
So, Tim posted a question about handling situations where a company name might be Null. He wants to use the first name if there's no company name present but use the company name when it exists. This situation is really common, and it highlights a critical misconception with Nulls in Access.
Null is a unique value. It doesn't mean zero, an empty string, or just a blank field. It specifically means unknown. By definition, something unknown can't be compared directly to anything else—not even to another Null. That's why, when you ask Access if Null equals Null, the answer is always false.
Because of that, you can't just use the equals sign to compare values to Null. Access gives us specific tools for this: special operators and functions designed for Nulls.
In Access, there are two methods for checking for Null. You can use the IS NULL operator or the ISNULL function. IS NULL is typically found in query criteria or SQL statements, like "select * from Customers where CompanyName is null." It is an operator and not a function, and if you're not working directly in SQL, you'd use IS NULL or IS NOT NULL in the criteria field of your query.
Now, ISNULL (spelled as one word with no space) is a function that returns a True or False value. You use it in expressions and VBA. For example, you could create a calculated field in a query, and use the IIF function: "if IsNull(company), then use FirstName, otherwise use CompanyName." The same approach works in VBA. Just remember, you should never use "equals Null" in your expressions or code. That's never correct.
For instance, you shouldn't write "if FirstName equals Null" inside an IF function or WHERE clause. That logic will never be true.
Tim, to answer your question, all you need to do is replace "CompanyName equals Null" with "IsNull(CompanyName)". That's it—no equals sign to Null, ever.
One more detail: if you're working from just one table or query, you don't have to specify the field name with the table or query alias every time. Also, since you don't have spaces in your field names, those brackets Access adds are technically not necessary.
Here's an advanced shortcut: you can use the NZ function. NZ stands for "null to zero," but it's flexible; you can specify the replacement value, so if CompanyName is Null, use FirstName. This is a compact way to write your logic, and you'll see it used a lot in more advanced applications.
To summarize: Never check for equality to Null with an equals sign. Use IS NULL, IS NOT NULL, or the ISNULL function. Keep in mind: Null isn't Null. It will never equal itself or anything else. Always use the correct tools when handling Null values.
I have several other videos on my site that deal with Nulls more deeply, including videos about zero-length strings, Null values in calculations, and the NZ function. These are all free resources available both on my website and my YouTube channel. I'll include links below.
Switching gears, I posted a conversation starter this week: What is one feature in Access you wish Microsoft would improve or update? I got some great feedback from all of you.
Jim mentioned enhancing conditional formatting options in Access. I couldn't agree more. Excel has far better tools for this, and Access absolutely deserves more attention here.
Dom talked about improving the tab control and asked for content on subforms as a replacement. I've covered this in my "Association Database" series, specifically part eight, where I simulate tabbed pages by switching subforms with labels, making for a much simpler and more flexible setup than using tab controls. A similar method is used in the ABCD series, part one.
Another topic raised was automating compact and repair operations. While it's possible to have Access compact and repair on close, I don't recommend doing it this way. I suggest compacting your backend databases manually or with a scheduled event, such as weekly. This helps prevent your databases from becoming bloated over time.
Kevin asked about adjustable font sizes in property sheets and controls. There's supposed to be a zoom feature on the way, which I'm really looking forward to myself.
There were also comments about making Access look less like Access for end users. I have a video series on making a database appear more custom and less like a standard Access file.
Several of you also mentioned wanting AI integration, exporting reports to Word (docx) instead of RTF, creating executables from Access database front-ends, and better Gantt chart support. On that last point, I've built a template for creating a basic Gantt chart in Access. It's not as robust as dedicated project management tools, but it gets the job done for most internal uses.
Andrew brought up the idea of being able to re-sort ID numbers. Remember: AutoNumbers in Access are for internal use—relationships and unique identifiers. If you need custom numbering formats, you'll have to code your own solution. I have videos covering that as well.
There was also discussion of regular expressions in Access. Previously, using Regex required VBScript, but recently Regex support was added as a library in VBA. If you're curious, check the Access Forever article for the latest details.
Several people mentioned that the developer help files could use a major update, and I agree.
Zooming in the Access work area came up again. It remains an outstanding feature request that I hope to see soon.
I also got a lot of feedback about why IT professionals tend not to like Access. Many say it's because Access is not web-based. That's true—Access is for desktop applications only, and the web app features disappeared years ago. It would be a game changer if Microsoft allowed Access forms to migrate to web pages, combined with SQL Server on the backend.
Another common issue is that many companies and IT departments don't want to support Access, fearing the risk of business-critical databases being left orphaned when employees leave.
Someone else asked about native Git support in Access for source control. This isn't present yet, but there are rumors it will be added in the future. Source control is especially useful for team environments.
Regarding the SQL text editor, some of you noticed Microsoft is pushing updates and working on new features, though there are still bugs. Microsoft does encourage those who need advanced data solutions to move toward SQL Server.
And the topic of running Access as a web or cloud-based solution—right now, you can't run it as part of Microsoft 365 in the browser like you can with Word or Excel. Personally, I prefer the desktop tools, but I know many of you want an online version. That would be a huge advance.
To wrap up: Null in Access is never equal to anything, including itself. Always handle it with the special operators and functions provided. Thanks for all your great questions and comments. I really appreciate the interaction and the ideas you send in each week.
You can find a complete video tutorial with step-by-step instructions on everything discussed here on my website at the link below. Live long and prosper, my friends.
For more info please visit:
Thursday, October 2, 2025
Wednesday, October 1, 2025
Tuesday, September 30, 2025
Monday, September 29, 2025
Friday, September 26, 2025
Thursday, September 25, 2025
Wednesday, September 24, 2025
Tuesday, September 23, 2025
Monday, September 22, 2025
Saturday, September 20, 2025
The Confidence Trap

Friday, September 19, 2025
Lack of Preparation

Thursday, September 18, 2025
The Limits of Free Speech

Wednesday, September 17, 2025
The Decoy Effect

Tuesday, September 16, 2025
How D&D Shaped My World

Monday, September 15, 2025
Customer Service Black Hole

Friday, September 12, 2025
Thursday, September 11, 2025
Two More Anniversaries

Wednesday, September 10, 2025
Hey... Wait a Minute

Tuesday, September 9, 2025
Two-Minute Rule

Monday, September 8, 2025
Beam Me Up, Bubba

Sunday, September 7, 2025
Teach the Controversy

Saturday, September 6, 2025
Why I'm Beaming the Plaud NotePin Back to Amazon

Friday, September 5, 2025
Are Your Security Measures Driving Away Customers?

Thursday, September 4, 2025
Foot in the Door Effect

Wednesday, September 3, 2025
The Stupid are Cocksure

Tuesday, September 2, 2025
If It Ain't Broke, Don't Fix It, But...

Monday, September 1, 2025
Happy Labor Day, Everyone!



