Posts

Showing posts with the label development

Leo and the CI/CD Gauntlet

Image
In the heart of a buzzing tech fortress, Leo stood tall—keyboard in one hand, coffee in the other. His CI/CD pipeline had become a battlefield: flaky builds, rogue dependencies, and mysterious YAML errors lurked in every corner. First came the Broken Build Beast, a creature born from mismatched versions and forgotten environment variables. Leo summoned his ancient scrolls of msbuild incantations and vanquished it with a single, well-placed /p:Configuration=Release . Then appeared the Dependency Hydra, its heads regenerating every time a NuGet package failed to restore. With a mighty swing of his PowerShell blade and a clean packages.config , Leo restored order to the realm. But the final foe was the most cunning: the Silent Failure Phantom, which passed all tests but deployed nothing. Leo, wise to its tricks, traced the logs, found the missing publish profile, and cast it into the void with a custom PublishDir . With the pipeline purified and the build green, Leo stepped away from his ...

“The Last Password” — A Story of Digital Rebellion

Image
Leo had survived schema madness. He’d outwitted deployment dragons. But now, he faced his final boss: passwords. Every system had one. Every environment had a different one. Some expired every 30 days. Others required uppercase, lowercase, symbols, emojis, and the blood of a unicorn. Leo’s password manager looked like a cryptic novel written by a paranoid wizard. One morning, Leo tried to deploy a hotfix. The CI pipeline failed. The database login expired. The VPN needed re-authentication. The cloud dashboard prompted for MFA. And the coffee machine? It asked for a password too. Leo snapped. He stormed into the server room, eyes blazing. “I am DONE remembering secrets for machines that don’t even say thank you!” He grabbed a stack of sticky notes labeled “Prod_DB_P@ssw0rd!” and flung them like confetti. He yanked out a cable labeled “Auth Proxy” and shouted, “You authenticate this!” A junior dev peeked in and whispered, “Is this failover testing?” Leo turned, wild-eyed, holding a keybo...

Leo and the Schema Revolution! - Part 2

Image
Leo’s rebellion didn’t start with a raised fist—it began with a whisper to his IDE. Instead of creating yet another schema for a new module, he wrote a comment at the top of his SQL file: sql  -- This schema is imaginary. It exists only to satisfy expectations.  -- I reject your reality and substitute my own. He declared a new philosophy: Flat is beautiful.  All tables lived in a single schema called `Freedom`. Columns were wild and free—some had names in lowercase, some screamed in ALL CAPS. Foreign keys? Optional. Stored procedures? Banished.  Then came the real statement: a README.md titled _“The Schema Rebellion Manifesto”_. It read like a blend of data modeling principles and punk rock lyrics. Leo posted it to the company wiki, shared it in the #db-architecture channel, and added ASCII art of a flaming ER diagram. Naturally, chaos followed. Test environments imploded. CI pipelines wept. One DevOps engineer sent a slack message: “Is this performance art?”  B...

Leo the developer - Part 1

Image
I've started toying around with CoPilot. It's been helpful at times, but it's also some fun. I've started expressing some of my frustrations with being a developer, and I've decided to share what we have come up with!  Leo and the Schema Revolution! Once upon a deployment cycle, in a quiet corner of a bustling tech company, lived a developer named Leo—who had officially reached his schema saturation point. Leo had spent the past six months architecting a sprawling network of microservices, each wrapped in its own meticulously named schema. There was `UserData`, `AuditTrail`, `ReleasePipeline`, `FeatureFlags`, even a mysteriously empty one called `Legacy`. Every morning started the same: update a table, refactor a stored procedure, tweak a foreign key. The schemas multiplied like rabbits, and Leo found himself diagramming them in his dreams. One rainy Thursday, after triple-checking the naming conventions in `Deployment...

Users Lie, and how to deal with it.

As you learn to develop and/or program, you eventually have to deal with users. You are, after all, trying to create something people will use. When trying to develop a tool for a user they will give you their requirements. This process has been discussed and, more frequently, mocked throughout the Internet universe. Eventually some simple 'truths' are concluded by developers. Generally they are (and I loosely quote): Users Lie Users don't know what they want The accuracy of those statements is debatable. Users don't purposely lie, they want something and they want to make sure it gets done their way and they're gonna tell you about it. Maybe just not up front. Also, they know what they want. So, to boil down to the truth, it comes down to: Users don't know how to communicate what they want. How To Deal With It So, what do we do? In my opinion, the best way to determine what a user wants is to walk through the job they are trying to get a tool for. This is where...

QA Deathmatch - Keep testing interesting

This sounds like more fun than regular QA testing. http://blog.slickedit.com/?p=209

When debugging, watch your watches

I should know better. We had a section of code where a new 'document' was created in our web app. A document in this app consists of data in various tables. So, what happens is, we start adding rows to the tables in the dataset, but before we add any rows, we turn off EnforceConstraints for the dataset. Later, right before we Save the dataset, we run a method, IsValid, which turns EnforceConstraints back on, and checks the dataset's HasErrors. So, our flow works like this: CreateButton.Click   EnforceConstraints = False   ... add a bunch of rows, which may at times have Nulls where their shouldn't be.   ... Nulls get filled in.   IsValid     EnforceConstraints = True     ... If HasErrors, throw exception.   Save End Method Now, what would happen if you put IsValid in the Watch window? That's right, EnforceConstraints would be set to True very frequently. I'll go bandage the hole in my foot now.

Up to date

To keep everybody up to date: Circuit Assembly was great. Steph is ok. She was only in the emergency room for 2 - 2 1/2 hours. They gave her an IV because she was dehydrated, and some medicine to settle her stomach. The doctor said it was a stomach virus and would run it's course. She's feeling better but week. It's important to keep things up to date. But that can be hard when you have tons of links scattered throughout your blog. Like this link: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndotnet/html/persistappsettnet.asp from a post on January 10, 2005. The page doesn't exist. However, the page did once exist, and the Wayback machine helped me find it with this link: http://web.archive.org/web/20050909193245/http://msdn.microsoft.com/library/en-us/dndotnet/html/persistappsettnet.asp I'm taking some of the content, and I'm going to put it on my site, since it was so helpful to me.

Updates to my site and blog

You may have notices, that the 'Sites I Visit' section to the left has changed. This parallels changes I have made on my site . I have added parts to my site's database, for Jokes , which I mentioned earlier. But now I also have a page of Quotes . The main page of my site has had it's links cleaned up. All three of these sections are not only database driven, but they also have a 'Newest!' section. This allows for you to quickly see what I've added recently. Eventually, I'd like to do an RSS feed for Jokes and Quotes... but this is a start to simplify maintenance of my site.

Programming Theory

I may have mentioned this blog before, but I'll state it again. http://www.codinghorror.com/ I just read this post . It reminds us to allow ourselves to take a fresh look at things, putting asside our biases. I also liked the article he wrote, Will My Software Project Fail? This site has helped me to round out my viewpoint and perspective on coding, and reminds me to look up from time to time, and remember what we're coding for.

New info for .Net coders

We don't know everything, but everybody knows something. How can you glean the answers to your questions from the internet. Google.com is a great tool, but sometimes, instead of a back-hoe you only need a spade. So, to search for .Net stuff, try this: http://www.searchdotnet.com/ . This is a focused search for your .Net answers. I've also heard some things about Singletons at my new job. What is a Singleton? One of the links that popped up on searchDotNet.com was this link: http://msdn2.microsoft.com/en-us/library/ms954629.aspx . Interesting...

K.I.T.T. Comes to Life!!!

Why didn't I know about this sooner? Homemade Knight Rider K.I.T.T car... In other news... I'm ramping up development... doing both DataMatch, our Windows Forms app, and the site, which will be tied into DataMatch. Web Services, Data Access, it's getting messy. I'm up to my waste in code. My computer is still running at half power for RAM. I've had a few suggestions for tuning it up, but haven't had the time to work on it. I've started working Saturday nights, from 11PM to 7AM, cleaning. Boy do I come home tired. With service and sleeping all day Saturday, and Sleeping and Meeting on Sunday, the weekends are pretty much blown. Oh well.