It seems like every time we do large-scale test tooling, we also end up writing a data comparator program. That is, program to compare two different things to determine if they are the same in the ways that matter. No, that’s not a typo. The middle step, where we “zero out” the differences that do not matter, is something I call data swizzling. Sadly, when I talk about data swizzling, most people think I am talking about data on how to cook a steak.
This problem of how to compare the “different” to determine if the differences “matter” turns out to be an incredibly common problem in software testing. Without the terms and concepts, teams generally end up inventing their own way of doing it, writing code that eventually becomes a gnarly mess. They reinvent the wheel.
Here’s the basic use case for a comparator, and how to do it.
To a programmer, DevOps typically means automating operations with Build/Deploy pipelines. I find that definition unsatisfying. The “right” answer, that DevOps is a culture change toward collaboration, isn’t much better. That second definition is vague enough that nearly anything can call DevOps. It is also vague enough that people can fundamentally disagree on premise and conclusions, talk “past” each other, and think they agree. One term for this is shallow agreement, and it’s terrible.
Eleven years since DevOps became big enough to have its own conference … e don’t know what it means.
Today I’d like to give up on defining DevOps. Instead, I’ll skip past it and introduce something even better: BizDevTestSecHRPRMarketingOpsOps.
That’s not a joke. Or, at least, it is not entirely a joke.
Let me tell you about it, starting with DevOps, but going very quickly.
When we started to talk about the cloud, twenty years ago, it was a picture on a napkin. We would draw one physical, concrete system, then an arrow, then a cloud. The cloud represented “the internet.” Its great power was that it was not concrete.
We did not know where the internet was. We did not know how it worked — and that was a good thing.
For the most part, though, we rented servers in colocation facilities. These servers had IP addresses which would be listed in a lookup table called a Directory Name Service, or DNS. When you went to my website, www.xndev.com, your browser would do the IP lookup in DNS, translate www.xndev.com into 188.8.131.52, then go to that web page. To the casual yahoo! search-er, the computers were in the cloud. The rest of us knew all about the Linux Server in the data center. We had to choose between spending too much money on computer power, or occasionally getting overwhelmed.
That changed ten years ago with EC2. Suddenly the vendor claimed that could spin up as many servers as we needed. Run one server most of the time, then auto-scale when your company hit the front page of The Wall Street Journal. That was the promise, at least.
Today we have Kubernetes, an open source cluster manager. Kubernetes takes the mystery out of auto-scaling – showing that it is more art than science.
Eleven years ago I co-organized the first Workshop On Technical Debt with Steve Poling; Michael Kelly was our facilitator. Since that time I published a cover story for Better Software Magazine on the topic and continued to work in the field. It is common for me to perform consulting and contract assignments and hear the term. Sometimes management listens; sometimes they don’t. Programmers might slag on the work done by the previous programmers. Sometimes the programmers are talking about their own work.
In all that time, I have noticed something startling.
Whenever people are talking about “technical debt”, there is invariably a programming skill issue involved. Continued »
Last month I wrote about that hiring for technology is sort of like hiring a juggler. Sure, you can ask where they went to clown college and if they can crunch an apply while juggling. Or you could just ask them to juggle. Today I’ll talk about how to show you can juggle. Specifically, prove that you get git.
Github is a source-code-in-the-cloud platform that is free for individual contributors and non-profits. Putting your github link on your resume/linkedin shows that you know the basics of git. You can also use the tool to create a portfolio of your work. If you aren’t a programmer, it will generate you street cred with programmers and former programmers. If you are a programmer, it answers any questions about your git skills with finality.
Graphic Designer, Journalist, Manager, doesn’t matter. Over a period of two lunch hours, you can figure out what to turn into portfolio work, and learn enough git to put your portfolio in the cloud.
The best way to get hired is to show, not tell, your work.
Here’s how. Continued »
It’s been eights years now since I took Excelon Development full-time. In that time I’ve had the pleasure of deal with slow-paying customers, not-enough customers, an employee or two, and a whole lot of of contractors. I’ve also had the ironical pleasure of reading about the “Entrepreneur mindset” and worked with a few companies that were ” Entrepreneurial” or “scrappy.” As a technical person who does a great deal of the work himself, I see the two mindsets clash — sometimes in my own mind!
That clash, the confrontation between builder-of-the-thing and builder-of-the-company, can destroy a project. More importantly, it can destroy a relationship. Let it fester and it might even destroy a person, leading to depression and low self-worth.
Sometimes, the different can lead to an incredibly pairing. For every Steve Jobs, co-founder of Apple Computer, you probably need a Steve Wozniak. Continued »
In real life, it’s considered rude to start a conversation, or “ping”, by asking for a favor. Instead we start with a check-in – a human connection. We ask what’s new and about the kids. Finally, after we have re-connected as people, Donnie or Christine or Dawn at the bank will ask what business we can do today.
That might work in real life, but it’s death for productivity in an office setting.
Today I’ll teach you how ping with payload can save you hours a day — at a cost of seconds. Continued »
I’ve been interviewing and hiring a lot lately, and I realized that my interview process often involves looking for Shibboleth.
Actually, you don’t, plenty of recruiters don’t know that. To add value as a recruiter, though, you’d want to do a better job than the keyword matching any Machine Learning Algorithm can do. One way to do that is to know the words that anyone that actually uses java would use, the keywords they would use over and over again, every single day. You ask questions that lead to those answers, and if the candidates stumble, that is a strong negative indicator, a shibboleth.
Here are a couple of mine, and their problems. Continued »
In the days of the industrial revolution, work was a place. A coal mine, an oil well, a train yard, and a factory.The goal was to get the factory to run itself, as efficiently as possible. With the work stable, predictable, and repeatable under scientific management, the owners can walk away and collect checks in the mail. This was to be the future of work.
As it turns out, artificial intelligence can do the work that is truly predictable. The fireman and signal-person from the days of Thomas the Train are long gone. In some cases, the very driver is gone as well. While coal mountains still exist, they are on the decline. The new jobs, such as wind farm technician, are more troubleshooting, doing things differently every time. Computers can do the rest.
So I find myself working with consultants, building a virtual team across the United States. Today, right now, we can rent services for ten dollars a month that used to only be available to big corporations.
And I do mean stitching together. Last week, a consultant had problems with spam filters, so he sent me an invoice over Facebook.
Let’s talk about it. Continued »
It’s a running joke that the internet is held together by duct tape, bailing wire, and bubblegum. There may be some truth in that, because when it comes to security, it is undeniable.
The world-wide-web was invented at CERN, a physics laboratory in Switzerland. Before the web you’d go to a library, pick up a journal, read an article and select the next journal from the footnotes. Two weeks later your journal would arrive and you’d start the process all over again. Time consuming? Absolutely! The brilliant idea was to take all those footnotes at the end of the paper and link them together with the click of a button. HTML, the basic language of the web, is a hyper-text markup language. Everything else added to the web – the java-script, CSS, APIs, the cookies and authentication systems, are grafted on.
That’s a good thing. Tools like WordPress make it possible to put a site together in minutes, built on top of those technologies. We re-use all sorts of code libraries, in the hope that frequent patching will be good enough. If the patching isn’t good enough, well, everyone else has patched up systems, too. Hopefully, the bad guys, who search for security bugs for the sheer joy of it, will target someone else, like a bank.
This complexity problem hit Apple’s iPhone, which just might mean it hit your iPhone.