Goodbye, Old Friend

Well, today I say goodbye to my old friend, the “DarcKnyt” of Internet fame. I’m not sure how to do this. It’s been a big part of my life for a long time.

I became DarcKnyt back in the dim, distant days of Internet past. Back when it wasn’t always safe to be oneself on the ‘net, because clever people – far more clever than I – could figure out scary things like how to become you. Later, this morphed into actual identity theft, wherein credit cards could be taken out in your name over the web and your life could be irrevocably ruined because of malicious losers with big brains and small testicles.

Also, I didn’t necessarily want anyone I dealt with to know who I am. I met some women on the Internet whom I would rather forget. Forever. But one of them I will be with forever, so it wasn’t all bad.

Why the spelling? Well, when I first dipped my toe into the Internet’s icy stream, it was through America OnLine. Good ol’ AOL…remember them? Anyone?

I had a couple of choices back then: AOL, or Comp-U-Serve. Now, Comp-U-Serve was the older sibling, but fading fast in the middle 1990s, so I chose AOL instead. This was so long ago, there was no such thing as “broadband” for home. You could start your own ISP if you wanted, but your customers all needed modems and phone wires to connect.

Anyway, AOL allowed you to choose your own ID, and Comp-U-Serve didn’t. But there was a catch – you could only have something with eight characters. You’d be amazed how much text speak was forwarded in those days with everyone trying to fit something unique, suitable to them, and catchy, all in eight little alphanumeric characters…no special characters allowed.

And so, since “Dark Knight” wouldn’t work, and “Darkknight” wouldn’t work, and “DarkKnyt” would work but was taken… well, I ended up as the “DarcKnyt” of lore and fame.

And I remain him to this day.

But, I’m also J. Dane Tyler, author. And I’m a father now, and a husband to a loving and committed spouse, and I’m an employee and many, many other things besides the DarcKnyt. And I’ve been lots of things here, in my little corner of the Internet, I probably wouldn’t have been if I’d stayed the DarcKnyt. Things like afraid, vulnerable, weak, amiable and phlegmatic. Those things go much better with the person I was before the world humbled me, before my path brought me around such a hard road, and left me tired, old, and fat.

But there’s been a lot of joy along the way. A lot of love. My son and daughter have changed how I see the world forever. And they’ve changed my willingness to present the cape and cowl any more. I don’t think I’ll ever stop being DarcKnyt when he’s needed, but for the most part, I feel it might just be okay to be…me.

So, I’m turning off the lights in the Batcave today, and locking the vault forever. I can’t say I won’t be back, so I won’t detonate the self-destruct mechanism. Just in case. But for now, I think it’s time to move into a new place and experiment with being the man, instead of the mask.

Goodbye, old friend. I’ll miss you.

If anyone is interested and doesn’t yet have it, please use the Contact Me page on this blog to receive the new address. That way, only those who care what might be under the mask (like you haven’t already seen it) will be there, in the new home.

God bless you, and goodbye.

-The DarcKnyt

Cockadoodle Doo, Yo

Well. I’ma crow a little bit today.

Yesterday, I was ridin’ high coming into the day. I’ve been blowing away the tasks assigned to me. Sure, it takes me months to solve the riddles sometimes. Sure, I do some mumbles and humbles and get beet-red when I have to say “I don’t know  how” in staff meetings with my boss and associates. But every macro I’ve had to tackle I’ve knocked out of the park.

Even when I thought I didn’t.

So late last week, the ATR coordinator asked me to look at a problem she’s had with one of the screens she uses. I told you about this – it printed the serial numbers over and over, remember that? Well, I hit that one out of the park too.

Then I came back today and decided I’d have another run at getting the email attachment problem solved. You might not remember this one. Back in the summer we decided it might be a nice feature to be able to attach files to our outgoing email messages to divisions and customers. Sounds easy, right?

Yeah, not so much, it turns out.

Well, for the last – what? six, seven months? more? – I’ve been banging my head against that particular wall. This even came into play before Appmageddon. But I couldn’t do anything with it. I just…couldn’t get it to work.

Yesterday, I opened up that page again and took another look. I saw something I didn’t notice before. Well…that’s not exactly right. I guess I just didn’t see it this way before.

I tweaked. I tested. I tweaked again. Tested again. And you know what?

Shut the front door – I got the email. AND the attachment!

VICTORY! VICTORY FOR ZIIIIIIIMMM! Praise the Lord Most High, for clearly this came from His inspiration. Know how I know that?

Because I have no idea what’s different now that it works when it didn’t before. NONE.

There were a couple of routines I saw, and I recognized a bit of what they might be doing. I changed the references a touch, thinking, “Well, maybe it should be this instead of that.” And voila! Success. Sweet, gratifying success.

OH, I danced! I danced like Snoopy dances, and at my weight, that’s quite the spectacle.

I ran to my boss and bragged, “Hey, I beat your man GW again! I got the email attachment thing to work! I did it!”

I chatted and beamed a moment, and then went back to my desk. I deployed the solution to the production web server. Then, I had a meeting to go to with my boss and his staff members. During that meeting, the ATR Coordinator had to leave for the “Kaizen Event” I mentioned to you before. The meeting broke maybe an hour later, and when I got back to my desk, guess what?

I had an email from the ATR Coordinator.

She said, “We have issues with the intranet. I can’t send any notifications to the divisions. It’s giving an ‘Empty Path’ error now.”

My sphincter tightened so fast and so severely I gained an inch in height. You couldn’t have driven a toothpick in it with a ten-pound sledge.

Okay, I thought, stay calm. The error indicates the message can’t be sent without an attachment now. So…so…what’s that mean?!

OHGODWHATDOESTHATMEANFORTHELOVEOFCHRISTHELPME!!!

Or, you know, something like that.

So, this was like, two o’clock. I putzed around with other solutions but they weren’t going well. Finally, it hit me like a ton of bricks.

Before, we could send messages but not attachments. Now we can send attachments but not messages without them. Solution – put both scripts on the page and have them execute at different times.

Okay, how do I do that?

The way I did it was simple, and a little stupid, but then, so is this entire way of working with this crap, in my view. I simply put two buttons on the page. The first one calls the original script, and sends the message without attachments. The second one uses a modified script, takes the object in the file box (which I added), and embeds it as an object. (No, I didn’t come up with that code; neither did my predecessor though. He borrowed it from the Internet, so we BOTH stand on the shoulders of geniuses to do what we do. So there.)

Then the script sends the message through the local email client running on the machine being used.

Done!

And tested. And tested. And tested. It sends through the Internet, sends through the intranet, and sends the attachments faithfully.

Score!

Appmageddon just got a little less scary.

Now, back to the NAFTA database macro. I have to automate it. And I did; problem is, the automation through the database itself is ssssslllllllllooooooowwwwww. So I did it through an Excel spreadsheet instead, but now have to figure out how to get the two together. Two-step process, maybe? I’ll see.

But the process took something like half an hour through the database. The exact same code, copied and pasted to the workbook’s code editor directly from the database’s editor, runs in eight seconds from the workbook.

Uh…this is a no-brainer.

So, I’ll see what happens there later. For today, I have month-end reporting to do, weekly reporting to do, and I’m still way behind on some of these things.

See ya next time.

-jdt-

Good Friday

I have to confess, I’ve no idea why today is called “Good Friday.” I’ve wondered that for years. But that’s another post for another blog, for another day, I suppose.

For now, I want to celebrate the joyous Easter coming.

And I have some reason to celebrate. Yesterday at work, I had some cool things happen, and only one bummer thing.

See, on Wednesday I had someone come to me and ask me if I could adjust one of the legacy intranet pages because it showed serial numbers for our return requests from customers. Some of our manufacturing divisions require a serial number before they’ll authorize a return. When we put that data into our system, it’s called up when we do prints of the requests. Long story longer, no matter how many serial numbers you enter, it shows up ten times. And, if you put in more than one, only the first one shows up…ten times.

An interesting conundrum. I found it more interesting when I learned my predecessor had been informed of the matter but never resolved it.

When I looked at the print page, I saw the matter. A loop was the problem.

(Aside: In programming-ese, a “loop” is a block of code which is executed multiple times, so instead of writing the code over and over again, you write it once and instruct the program to do it over and over until a condition is either satisfied or stops being satisfied.)

See, the loop was told to execute ten times. A counter was set to 1, and the loop was set to run until the counter became 11 (incrementing ten times). That same counter was used to extract the index number of the serial number data. So let’s say there are five serial numbers for five units being requested for return. The counter (called “x” in this case) was set to 1, like so: x=1 (complex programming code, eh?) Then the loop was told to run until x=11, like so: Do Until x=11 (wow! Can you handle that technical jargon there?!).

Okay, then the serial numbers were selected by saying “Put the serial numbers in this HTML table cell where the serial number = SN(x).” Then the counter gets incremented by one (“x=x+1”, more super-intense computer code), and the loop repeats. Got it?

So, for some reason (and I’m still not precisely sure why), the code never worked correctly. Instead of getting serial number index “x” like it was supposed to, it got the first one it came to and then repeated that cycle over and over again.

I knew what to do, though. And damned proud of myself I was for knowing! I changed the loop to say, “Do this stuff UNTIL THERE ARE NO MORE SERIAL NUMBERS, regardless of how many there might be.”

This is called a “Do Until” loop. Instead of saying “Do this until the counter is incremented ten times” (and ten wasn’t random; the page in which serial numbers are entered only has slots for ten of them), my code says “Do this until you don’t have any more records in the serial number spot” and then finishes. Got one serial number? It goes through the code once. Got ten? It goes through ten times.  And, should I ever improve the page, if you input 40, you’ll get 40 out.

So I made the alterations and tested the code. It failed. Programming error. I left on Wednesday night feeling pretty dejected and stupid. I woke up a couple of times on Wednesday night – as is my habit, due to bladder requests or thirst or whatever – and every time I did awake, this problem was running through my head. I have no idea how that happens, but it happens occasionally. So when I woke up Thursday, I went to work thinking about the problem and still didn’t have any clue why my loop didn’t work and his did.

Feeling sort of inferior and humbled, I looked at the problem again. And I noticed something… a missing piece of the code. When I altered the loop, I forgot to tell the computer code to advance to the next record, if there is one, and do it again. When I added the simple line “recordset.movenext” to the code just before I told it to loop through again, BAM! Success! The page loaded perfectly and ran flawlessly, and ONLY shows the existing serial numbers once!

And now, it shows ALL the serial numbers, not just the first one over and over.

VICTORY!

Okay, great, on I go. I spent the better part of last week working on two things: a NAFTA database macro which would automatically perform some tasks rather than having to perform those tasks manually, and a page which shows the number of times one particular customer is changing their orders. (The sales team for that customer, and the quality representatives for that customer, will be in our location for what’s called a “Kaizen Event” to improve quality communications. We’re using it as a chance to provide ammunition to our sales team to get the customer under control. Long story, but it’s something we have to do; their people can’t keep up with the changes being made, how are we supposed to do so?)

Well, I got the new web page built using the new, “better” technology, and tested it repeatedly. Then I set it aside. I finished it about 4:30PM last Friday, and figured I’d deploy it this week. Well, I sorta forgot, so when it came up again, I scrambled to get it uploaded to the web server.

And it bombed.

For the next two hours, I cursed, banged my desk, pulled my rapidly-graying hair, and stormed to the bathroom to fume. The test server simply won’t provide me with the error messages and I can’t remember what I did in production to get it to happen. So, flustered, I deployed the new application to production to see if I could find the problem.

I almost screamed it was so simple. So, I quick-fixed the issue and BAM! Success!

VICTORY! …and I copied the fixed version to the test server as a back-up and they’re working fine. The requestor is very excited to arm our sales team with this data next week, and I’m pleased it worked as intended. Phew! Close one!

Finally, time to turn my attention to the NAFTA database macro.

*Sigh*

I still don’t know what’s wrong with it. So, two wins and a loss. In the grand scheme of things, I suppose that’s not too bad.

There’s always next week.

I hope you have a happy and joyous Easter if you’re celebrating, and I’ll see you Monday or thereabout.

God bless you.

-jdt-

Inexorable Monday

Well, I put yet another short story collection up on Amazon’s Kindle store over the weekend, and the reception’s been quite warm. It went up on Friday, the launch promotion went live on Saturday (wherein it’s free for five days), and so far, I’ve gotten 140 downloads. Not bad. Not as jaw-dropping as when eReaderLove.com picked my books up, but not too shabby just the same. I’ve also opted to promote this one on Twitter. I didn’t do that with the last couple and they didn’t seem to take off as well. Not bad, but not well. So we’ll see if this helps. I guess. It should pay off sometime, right? Maybe? Ah well. It’s been fun anyway.

I’ve noticed a tiny bit of trickle-down to other stories, too. Not much, but a trickle of trickle. I’ve sold a handful of not-free books, but I’m not going to be able to retire on my writing’s earnings anytime soon. Still, it’s something, and the more readers with my work in their hands, the better.

I might’ve done a better job pimping the book on this blog too. I don’t know how many “followers” I have, but every little bit helps, so I might just do that next time.

For the record, it’s called Shudderbugs and already has a five-star review! W00T!

Speaking of reviews, my buddy and loyal fan Raga has posted a review for me too, on The Case of Lenny Tiggleman – in which she appears as a character! Thanks, Raga! God bless ya, darlin’! I really appreciate it.

Other than that, I did absolutely nothing over the weekend except shoot off a message by my buddy Bryce, who hasn’t responded yet. I hope to hear back from him about helping him get the sequel to his novel “Oasis” out in early April. Hey, B, let me know what’s up, brother.

I’ve got to get back to my training videos, but LORD HELP ME, I can’t seem to find the motivation to do it. The prospect of sitting through them and taking notes excites me about as much as the idea of having my gums scraped.

On the other hand, I’ve fashioned yet another book cover for a new short story I’m mulling. I hoped the cover would spark inspiration. And it would be sci-fi/horror, maybe. Something scary in space, y’know? And it would be a short story, so I can peck at it a little at a time. But I really need to pump out a full-length novel sometime. I just can’t ever seem to block out enough time to do so. Can you say “time management”? I knew y’could.

Anyway, I hope you had a nice weekend, and Bob, I hope your bachelor party was a blast, bud. I’d have been there if I could.

Take care and see you next time, everyone.

-jdt-

Finally, Friday!

Well! It’s been a while since I looked so forward to the weekend, but here it is, at last.

I have plans, for a change! How ’bout that?

For one thing, I’m going to try and give my buddy Bryce Beattie a read-through on his story “The Journey of St. Laurent”, sequel to his pulp-horror novel “Oasis”. Can’t wait for that!

Next, I’ll be doing what I can to help my wife clear her cardboard boxes out of the house so we can set up the new school/craft area I just spent a small pail of money on. (AHEM!)

Maybe some grocery shopping, if need be.

Finally, Saturday (tomorrow), March 23, my newest short story eBook will go live on Amazon Kindle for FREE! It’s called “Shudderbugs”, and contains not one but TWO stories with photography themes! The book will be free from March 23 to March 27, and then it goes to its regular price of 99¢. So get your copy while it’s free!

Here’s the cover:

shudderbugs

If you do pick it up and enjoy the stories (they are older, though, and my writing has changed a LOT since then), please consider leaving a review on Amazon. It helps us, and makes me feel better. I mean, when it’s positive, anyway. But be honest! Always be honest!

Anyway, have a good weekend, and I’ll see you on Monday!

-jdt-