Tuesday, January 28, 2020

Crystal Reports Permissions, Oh How I Hate Thee!

At work, we are decommissioning our Crystal Reports XI server and migrating to an SSRS 2016 server.

Permissions in Crystal Reports are a great big pain in my backside. 

That is all.

Thursday, January 16, 2020

T-SQL Tuesday #122 - Impostor Syndrome


This is the first time I've participated in a T-SQL Tuesday, and I need to start with an apology for being late. I know I'm technically violating the rules by several hours, so I don't expect to win the massive prize that these come with, but it is what it is, right?

The irony of my tardiness is that a large part of the reason I'm late (and the primary reason this is my first T-SQL Tuesday) is because I was waffling about whether or not I had anything useful to contribute. It feels a little odd to realize you are doubting your ability to talk about Impostor Syndrome.

On to my Origin Story:

 I've been into gadgets for pretty much my entire life, and my dad did his part to encourage my curiosity. He grew up working on cars and motorcycles, and he liked gadgets, too. The 80s provided him with plenty of geeky little things to play with. Fortunately, he was an airline pilot and had a little bit of disposable income for those geeky toys, so he could vicariously get his techie fix through my brother and me.

When I was a kid, I cut countless little snippets of wire for various iterations of the Electronic Lab Kits from Radio Shack (one of the BEST stores EVER). I disassembled numerous RC cars, so I could see how they worked. He bought a Commodore 64 and subscribed to Family Computing Magazine. I'm betting I'm not the first person to use those things to teach myself BASIC. I was off to a pretty geeky start.

In high school, I got two big things: 1) a serious girlfriend (who became my very patient wife), and 2) my pilot's license.

When it was time to pick a college, my mom wanted me to follow my geeky leanings and learn to be a programmer, but in the early 90s, a Computer Science degree was pretty much learning C and FORTRAN. No thanks.

After graduation, I decided to follow in my father's footsteps. I was going to be an airline pilot, too.

I immediately went off to Flight School, and for the next 6 months, I earned a few more certifications and became a Flight Instructor. I had been deemed skilled enough to teach other people how to fly airplanes. Cool, right?

I still wanted an airline career, so college was a Bachelor of Science in Professional Aviation . While there, I was also a Flight Instructor for other students in my same program. Several of my students are zooming around the skies today for Delta, United, FedEx and others. I was good at it. I knew what I was doing.

In the mid 90s, I got my nice, new degree, and I finally had enough qualifications for a move to the airlines. But it wasn't what I expected it to be. I didn't enjoying it as much as I enjoyed teaching, and a decent pilot salary was still about a decade away; it wasn't enough to feed myself, much less a wife and soon-to-be kid. I wasn't sure what to do with myself. Pardon the pun, but my life was kind of in a holding pattern.

 At the time, my little brother (who DID listen to Mom) owned a web development business and was looking for some help. He asked me to assist part-time, which shortly turned into a full-time need. I was enjoying myself, and didn't realize that I had just ended Career #1 as a pilot and started Career #2 as a programmer.

But this isn't where my Impostor Syndrome started. I knew that I was new and that there was a whole lot I didn't know; my expectations of myself were at an appropriate level.

It was a small company, so I learned way more than just how to program. I helped set up our network (a few times, since we moved). I had to administer all sorts of computers, including our application servers and databases and our workstations. When we acquired a company that customized portable computers (now called tablets) for pilots, my aviation knowledge turned me into a Subject Matter Expert and I became a lead for R&D. I was doing well and feeling pretty good about my ability to contribute.

And then the events of September 2001 made it difficult for both aviation and software development companies. We had to close a few years later.

I was a contract web developer for a few years, then landed at a Background Screening company. THAT is where my Impostor Syndrome kicked in. For several years, I was a software developer, then I did Support, then Business Intelligence (due to my earlier curiosity about our data), then back to Software Development. I learned a tremendous amount about all sorts of things, but I never felt like I knew enough about whatever it was I needed to know at the time.


I ultimately left there to get back into data, and since then, I've bounced back and forth between Software Dev and Database Dev, all the while, proclaiming that I couldn't help with X problem because I didn't know enough since "I am not a DBA". Which was usually followed by me researching whatever the problem was and ultimately helping anyway.

Throughout my career, I've worked with some VERY smart people. My curiosity has led me to read and follow other VERY smart people. This really hasn't helped me feel any better about my own skill level. I'm essentially a member of the unwashed masses who are "self-taught". My background and professional education are in Aviation, not Computers. I don't deserve to be with these people. Pretty soon, they'll figure out how clueless I am, and I'll be done. Humiliated and cast out.

That's pretty much the way I've felt for the last decade. I've worked many extra hours and done a ton of extra work so that my bosses won't discover that I'm not qualified for my position and should be fired on the spot. I started this very blog several years ago with the express purpose of being more visible and vocal for other devs, but I haven't written near the content that I wanted to because I've often feel like I don't really have anything to add to the conversation. For the last couple of years, I've wanted to speak at conferences, but I've procrastinated submitting my topics because I didn't want to try to talk about something I was clueless about (even though I did quite a bit of research to prepare). Too often, I sabotage myself because self-doubt creeps in.

 Last year, I realized that I've been working in IT over TWICE as long as I was an active pilot. I also can't really compare my skill level in Aviation to where I am in IT. They aren't the same. IT is a VERY broad field. There's way too much to know for any one person to know more than a slice of it. And Google has made me see how much there is that I just don't know.

Several years ago, I started going to a few conferences and actually began meeting some of the bloggers and writers that I had idolized. I discovered that they are every bit as brilliant as I thought they were, but they're also human and not the keepers of impossible volumes of knowledge that I'd built them up to be. They'd likely be the first to tell me that they don't know everything. And that's OK. The secret to being really great at something is to recognize your own weaknesses and cover them with other people who excel in those areas.

That realization has allowed me to understand that they are still extremely qualified EXPERTS, despite not having every answer, I need to learn how to accept the same from myself.

Today, I AM a DBA. And I'm still a Programmer, too. I'm doing what I enjoy doing. I'm not as fast as some people, but I don't have to be. I also don't know how to fix every problem that comes my way. But I don't have to be that person either. I still don't feel like I'm always the best person to fill my seat, but I'm beginning to realize that I know a bit more than I think I do. And if I don't know something, I find the answer. I try my hardest to make sure that my responsibilities are covered to the best of my abilities.

It's OK that I don't know everything. Nobody expects that of me. It's not realistic. I just need to convince myself to hold me to the same standards, expectations and limitations of everyone else.

It's hard sometimes.

Wednesday, January 8, 2020

IRL ISO 8601!

This morning I went to the doctor and experienced my first real-life ISO 8601 Internationalization issue.

The Check-in Nurse asked me to verify my birthday. I told her "7/1/xxxx" instead of "July 1, xxxx", and she told me she hoped I had a Happy Birthday yesterday.

I appreciated the sentiment but was knocked off kilter for a second. My birthday happened several months ago! Then I quickly realized that 1) She is from somewhere other than the US and 2) THIS was the exact reason why I have been a long-time proponent of using ISO 8601 data standards for database and application dates. (Those were my actual thoughts, and yes, they were very geeky.)

For those not familiar, ISO 8601 essentially describes a standard way to display dates so that you remove any confusion in common international representations.

For instance, in the US, a date of "7/1" is interpreted as "the 1st day of July". But in most of the rest of the world, "7/1"means "the 7th day of January".

Countries by Date Format

It's not difficult to see how this can cause quite a few problems because we in the US have gone our own way on this.

She apologized for her "mistake", but all I could think was that it was actually my national culture that was on the divergent side.

Anyway, it was a great personal reminder of the necessity for a standard.


TL;DR: If you want to avoid confusion when you store or display dates, please use some form of yyyy/dd/mm ... (though I guess even those lower-cased masks can lead to incorrect display of a date in different coding languages).

PS: I HATE DATES!