Sunday, December 2, 2018

Hour Of Code Is Here Again!

Tomorrow is the start of Computer Science Education Week, which also brings with it Hour Of Code. I've been coding professionally for almost 2 decades, but I got my start at a much younger age. I was fortunate. My Dad was always slightly a technophile, so my brother and I always had access to the gadgety stuff of the late 70s and early 80s. And when the Commodore 64 came out in 1982, my Dad had to have one. I loved that machine, and in fact it still sits in my garage (waiting for me to figure out that I should plug it back in somewhere). That machine, alone, likely affected both of his son's futures much more than he ever thought it would (my sister was born slightly before the C64, so was probably too young to see the full potential; she's great at Nintendo, but not a full geek like her brothers).
Load "Deadline", 8,1

But I digress.... Between the C64 and Family Computing Magazine, I taught myself BASIC. I became a wanna-be geek. My Mom said I should be a computer programmer. I wanted to be a pilot. So I became a pilot. But then decided I wanted to be a computer programmer. Listening to Mom is probably smart.

I was fortunate that I had people in my household that were able to support my fledgling geekism. Computers have changed a WHOLE lot in the decades since Copy/Paste was "look at the magazine text and type that into the console".  I look at initiatives like Code.org, and I see the possibilities that I did when I was a kid. We've reached a point in our history where computers are involved in pretty much everything we do. There are even LIGHT BULBS that can be programmed to do something other than provide white light to a room. Look around and you'll probably see a vast majority of people on a cell phone or browsing the internet on some device. For my entire life, Moore's Law has held true.

AI is scary-smart, but we still need people to program both the internet and that scary-smart AI that will be writing itself all too soon. I think Hour Of Code does a fantastic job of encouraging kids to see the possibilities of what they can do. So, as they say, "What will you create?".

Friday, July 13, 2018

ColdFusion 2018 Has Officially Been Released

ColdFusion 2018 has been officially released!

https://www.adobe.com/products/coldfusion-family.html

Just glancing over some of the changes is promising. I'll have to take a deeper look at some of them (something I should have already done).

But one thing that's kinda cool: actual NULL support.

https://coldfusion.adobe.com/2018/07/null-support-in-coldfusion-2018/

That's definitely one I need to look more at.

I'll have to write up more later.

Sunday, June 24, 2018

TLDR: Thank You Again, Good Recruiting Firms.

I've thought about it for a few days. And I really don't care any more if I burn bridges with sub-par recruiting firms like CyberCoders. I have no doubt that other fly-by-night recruiting firms will keep shotgunning jobs to me, but hopefully now CyberCoders will quit spamming me with extremely irrelevant positions. <fingersCrossed> <doubtItWillDoAnyGood>

A few days ago, I had some problems with the hosting of my old rant against bad recruiting firms. I didn't want to lose it, so I reposted it here. I find it extremely sad that that rant seems more relevant today than it was a few years ago when I originally wrote it. Since it was first written, I've worked with a few more Placement Firms, and had good luck with all of those; except the fool-me-more-than-once applications with CyberCoders. I should have read some of their reviews before I ever started trying to talk to them.

Over the last few years, I've received numerous emails from various types of recruiters. I'm sure anyone in IT has received their fair share of them, too. Most of them were relevant to what I do and who I am. I received recruitment emails wanting me to be a C# Lead Developer for Company X. I have very little C# experience and wouldn't be a good Lead right now, but I can definitely learn to be that Lead eventually. I can forgive messages like that. What I can't forgive are the requests to be a Nurse or a Hospital Manager or a Gas Technician at a Landfill.

The latest spam recruitment post came from CyberCoders, a recruiter that has strung me along in the past. My patience with them was already wearing a bit thin, but a post wanting me for an Electrical Engineer position was just a bit much. I have heard that, many times, the first recruiter to submit a candidate to a company will receive part of the placement fee, even if their candidate isn't chosen. That sort of business model doesn't make sense to me, but I can totally see it as a way for some of these shady companies to get paid for their poor behavior.

After thinking about it for a few days, I responded to the email. My response wasn't polite, my frustration was pretty evident, and I'm fairly certain that "Dee" won't actually read it. But, after getting it off my chest, I feel better.

I've attached my reply below for your entertainment. And if you are one of those shady recruiting firms, please keep in mind that I'm probably not the only candidate that thinks this way.

Shawn

==========================================================

sent to dee.nguyen@mail.cybercoders.com
-----------------------------------------

Dee (if there actually is a "Dee Nguyen" at CyberCoders),

I debated whether or not your email was even worth a response. And I doubt you'll read mine. This is really more of an express-my-frustration email than a reflection of any hope that my words will make you see the damage this shotgun approach to "recruiting" does to your industry. After numerous messages like this, I decided that I'm frankly quite annoyed with the recruiting keyword-search algorithms that companies like yours use to scan every resume you can find. I'm really not sure what in the world about my resume led you to believe that I was an Electrical Engineer, other than the fact that my resume does, in fact, list Software "ENGINEER" as a previous job title, and I guess computers do depend on "ELECTRICITY". So I'm sure the very loose algorithms flagged me. Regardless, even looking at the TITLE of my resume should have been a pretty massive clue that I am not even remotely related to the field of electrical engineering, and a very quick secondary perusal would just as quickly show that I do not have anywhere close to 5 years in the field nor even a Professional Engineer license. My experience with Lighting System Design can be summed up with my experience of realizing my hallway is darker than normal and screwing a new light bulb into the socket. I will grant you that I actually have some experience in the "Healthcare Industry" and some very old basic work with AutoCAD (which isn't even on my resume), but I think we may be stretching here.

I'm fed up with the "What's In It For Me" "opportunities" that places like CyberCoders offer to me, especially when they aren't even remotely related to anything I've done in the last couple of decades. For SOFTWARE Engineer or Developer or whatever-you-want-to-call-it positions, I actually have previously applied through CyberCoders. Four times (since I apparently have more patience than I realized). Of those four, TWO have resulted in NOT ONE SINGLE CONTACT AFTERWARDS. Of the remaining two, I was pretty much strung along with "The client isn't quite ready to interview for this position" on one of those. The other just kinda went dark after feeding me the same line for a couple of weeks

I learned my lesson. And now I agree with some of the other reviews of CyberCoders. You may actually have a real position, but I'm not really sure that CyberCoders is much more than a resume harvester.

I truly hate calling you out by name; especially since I do see a value in legitimate, honest recruiting firms. Companies like Robert Half, Vaco, TEKSystems and a few of the smaller ones actually TALK TO YOU and READ YOUR RESUME before trying to place you. But I feel that I can do a service to other potential IT employees or employers who might think that CyberCoders is one of those legitimate groups. Again, I'm not against IT people using a recruiter. I've had very good luck with legitimate recruiters. I'm against IT people wasting time with "recruiters" who care more about taking care of themselves than with either of their actual clients' needs; you know, the needs of THE COMPANIES NEEDING EMPLOYEES AND THOSE POTENTIAL EMPLOYEES. It will take a lot of convincing for me to do anything more than suggest a Total Ignore on anything involving working with your company. CyberCoders has demonstrated multiple time that they are simply not worth wasting my time on. And sadly, your reviews seem to indicate that I'm not the only one with this experience.

I doubt if you've read this far, but if you have, then Good Day and Good Luck finding an Engineer that is in the Electrical Field.

And before I forget, will the Unsubscribe link actually remove me from your mailing list, or will I just receive more recruiting spam about being a Nursing Manager for some hospital?

Shawn

==============================

ORIGINAL EMAIL:

On Thu, Jun 21, 2018 at 10:27 AM, Dee Nguyen <dee.nguyen@mail.cybercoders.com> wrote:
Hey Shawn,
I'm working on a really impactful Senior Electrical Engineer with PE role in Nashville, TN with a lot of growth opportunity for someone with your skills.
You can view the full job description below. Please apply online or send me your resume if you're open to learning more about the position.
Thanks,
Dee

DEE NGUYEN
Executive Recruiter
Phone: 9498255579
View my open jobs
         

-----------------------

If you are a Senior Electrical Engineer with experience, please read on!

Top Reasons to Work with Us
- HUGE Room for Growth
- Great Work/Life Balance/Autonomy
- Competitive Pay

What You Will Be Doing

Our Electrical Engineers work closely with the directors, managers, and engineering staff to ensure clients’ needs and expectations are exceeded and met in a timely fashion.

What You Need for this Position

More Than 5 Years of experience and knowledge of:
- Professional Engineer (PE) License
- Lighting System Design
- Healthcare Industry
- Power Distribution
- AutoCAD & Revit

Nice to have:
- High voltage low voltage and fire alarm exp

What's In It for You
For your hard work, you will be rewarded with a strong compensation package that includes a competitive base salary (D.O.E), excellent medical, dental and health benefits and other cool perks!

So, if you are a Senior Electrical Engineer with experience, please apply today!

JobID: DN2-1463161

CyberCoders is an Equal Opportunity Employer. All qualified applicants will receive consideration for employment without regard to race, color, religion, sex, national origin, disability, protected veteran status, or any other characteristic protected by law.

CyberCoders Headquarters - We recruit candidates worldwide.
6591 Irvine Center Drive, Suite 200
Irvine, CA 92618

Thursday, June 21, 2018

Saving My "Recruiters" Rant

It's already June of 2018, and I still haven't made but one other post this year. I really had hoped to be a better Blogger. Sorry to my legions of listeners out in the world. 

Now that I've gotten my Pitty Party out of the way, I want to save something here so that I don't lose it again. I've recently received another recruit email totally unrelated to anything I've ever done, and I am debating on whether I should respond to this pathetic, resume-keyword-scraping "recruiter". Since I've ranted in the past about "recruiters" like this, I went looking for my old post and discovered that GoDaddy had moved their Lazy-Person's Page (or InstantPage). I thought I'd lost my rant, but was able to recover it. Since it's something near and dear to my heart (and I've actually been complemented on it by one of the legitimate recruiters I've spoken of), I figured I needed to re-post it somewhere that is less likely to disappear. So without further ado......


GoDaddy InstantPage for CodeFuMonkey.com, Advice To Recruiters.

NOTE: July 2015 - I was going to remove this, but the last several months have shown that this paragraph is still just as relevant now as it was when I first wrote it. The number of recruiters that I have worked with has increased, but so have the number of purely BAD recruiters who don't even take the time to bother figuring out who I am before they shotgun-approach me for some irrelevant position. You people are doing a HUGE disservice to your profession. Do your shady practices really work? Get with the program. Please.
--------------------------------------------------------------
I like recruiters. I've had mostly good experiences working with them. All of my contract gigs were through a recruiter. My last two permanent positions were due to recruiter placement. I tell you this because I don't want you to think I have a bad opinion of recruiters. I don't. But I am annoyed with some of you right now. So I have some advice for recruiters from an IT professional.  
PLEASE PLEASE PLEASE actually take some time to read my resume before sending me an email telling me what a great candidate I am for a Senior-Level Developer position in a language that I have done a single project in many years ago. Or even worse, that I'm the Director of Nursing that you've been looking for, as a recent recruiter messaged me. 
I know that a lot of these emails are automated. I know a lot of the candidate flagging is done by keyword scanning. You may think this saves you time, but more often than not, it doesn't. What it does do very effectively is alienate you. It makes me not want to work with you. If you can't take the time to understand what it is that I do or have done, how can you be a good advocate for me? You can't. 
I don't mind if you flag my resume through a keyword search. I understand why you have to do that. I'm sure that there are thousands upon thousands of resumes that you hunt through every day. It would be impractical to manually look at them all for even a single position. But when you do get a hit on my resume, take a minute to read it before you send me a form letter about how perfect I am for the position you're trying to fill. Trust me when I say that, for something like this, a targeted approach is much more valuable than a shotgun approach. Not only will you be more likely to get a response, but you'll be working to better the reputation of recruiters everywhere.  
IT people can be finicky. We have long memories and, more importantly, we talk to each other. It behooves you to make a good impression on us. And it can really hurt if you become known as someone who spams us for unrelated jobs.  
And to those recruiters out there who have been doing a good job for us, who have taken the time to find out who we are and what we do before trying to place us, who take the time to check in with us every now and then to see how we're doing, I offer a sincere thank you.  
Shawn

Wednesday, March 14, 2018

Happy Pi Day 2018!

Since March 14, 2018 is the 30th Anniversary of Pi Day, and I haven't posted anything in 271 days :-(, I give you the first 271 Digits of Pi....

3.1415926535897932384626433832795028841971693993751058209749445923078164062862089986280348253421170679821480865132823066470938446095505822317253594081284811174502841027019385211055596446229489549303819644288109756659334461284756482337867831652712019091456485669234603486104.......






Thursday, June 15, 2017

Impostor Syndrome

Impostor Syndrome. I've heard that term for years and kinda just ignored it. But I must admit: I've suffered from it for years.

I "flew" my first airplane when I was just 5 years old. My dad has been a pilot my entire life. He struggled through college to earn his wings, and he worked hard flying jobs before I was born. That was well pre-9/11, when a corporate pilot could fly his family down to Florida in the company airplane (thus my "flying"). In 1978, he went to a tiny airline called Federal Express. His friends laughed at him for for taking such a chance on a tiny cargo hauler in Memphis, TN. After helping many of those same friends (and their kids) move to an airline job, he just retired as a 777 Captain at FedEx. I grew up in aviation, and ever since I can remember, I wanted to be a pilot.

Oddly enough, it was my father's pilot salary and his fondness for new gadgets that enabled me to initially become a geek. He saw a shiny new Commodore 64, paid a hefty sum for it, and plugged it in at the house. I taught myself how to "write code" with that machine and Family Computing Magazine. I played "online" in the days of CompuServe. I absolutely LOVED it. But not enough to not still be a pilot, much to my mother's chagrin.

In 1992, I realized my dream. I became a private pilot. Then I went to flight school, where I met interesting people and earned some advanced certifications. I went to Louisiana Tech University to earn a degree in Professional Aviation, and I spent a few years there as a Flight Instructor, training several people who are airline pilots today. I left there to continue my career and follow in my father's footsteps as an airline pilot. But as I began actually doing the thing that I always thought I wanted to do, I began having doubts.

I was still looking for another "in" to the big airlines, so I moved to Memphis, TN to work as an Unloader for FedEx while I sorted out what I wanted to do. My brother was fully smacked by the geek bug (and he listened to our mother), and he actually WAS a web developer there in Memphis working with FedEx. As fate would have it, two big things crossed. He had a Dutch developer who was going home for a month-long vacation, and I had a TON of PTO days that I needed to either use or lose. He asked if I could come help him with some basic website stuff for FedEx, so I took some half-days to work with him as a Java developer. I spent about enough time with Java to say "Hello, World" then was switched over to FedEx's language of choice: Allaire's Cold Fusion. I was hooked. I just didn't know it yet. When his developer came back, he asked me to stay on board. I did.

That was about in late 1999. The Internet was a wildly different place. Netscape, Geo Cities and the <blink> tag were still things. There was no differentiation between design and development. There was only ONE flavor of JavaScript. But none of that mattered. I enjoyed what I was making, for FedEx and for our other clients.

So now it's math time. I was an active flight instructor until roughly 2001. So, 2001 minus 1992 is about 9 years, give or take a few months. 2017 minus 2001 is about 16 years, again, give or take a few months. This is where the Impostor Syndrome comes in to play. Last year, I came to the realization that I have been an active developer almost twice as long as I was an active pilot. But I still sometimes think of myself as a pilot who is a developer. Check my Stack Overflow. As of today, I have more Answers in the Aviation forum than in the regular Stack Overflow forum. WTF???

I have had the fortune to work with some incredibly intelligent developers. I've met some people in the development world that make me feel like a complete fraud. I know these people are MUCH smarter than me. It took me a while to realize that technology has a pretty broad landscape. There are areas of knowledge where they make me look like a child. But some of those same people have also asked questions that I have thought were pretty basic. The answers have come to me about as quickly as if you'd asked me the size of a Cessna 152 engine.

I've been in this industry for a very long time. There are people that I definitely wouldn't want to compete against. Does that make me an Impostor? Not really. They know what they know. I know completely different things. I shouldn't think of myself as an impostor.

The moral of my story:
1) I know there are many things I don't know yet. I can't learn them all. But if I need to, I will.
2) Always listen to your mother. If she says you should pursue your love of computers, she might be on to something.
3) On second thought, I am who I am because I skipped #2. You don't have to do what your mother says when she says do it, but always keep it in mind. She's smarter than you think.

Thursday, October 6, 2016

More Date Masking

I'm a bit ashamed of myself. I've been a member of the ColdFusion Community for over 15 years, yet I just submitted my first bug to the BugBase yesterday. And I'm not even really sure that it's a "bug" per se; just an inconsistency in behavior of similar functions.

https://bugbase.adobe.com/index.cfm?event=bug&id=4194962
(Lucee bug added: https://luceeserver.atlassian.net/browse/LDEV-1025)

Basically, it touches on what has become a pet-peeve of mine: Date Masking. I know I've ranted about it before, but I wish that everyone could just agree on what a proper date mask was for all of the common date parts.

In the latest update to ColdFusion, Update 3, one of the things Adobe announced in the release notes was that you can now use lower- or upper-case letters in DateFormat() masking. My issue with this is that it is completely different behavior from DateTimeFormat(), which seems to make a bit more use of Java's case-sensitive SimpleDateFormat. Granted, I don't agree with Java's way of using "M" to mean "months" and "m" to mean "minutes" (I like CF's "n" minutes), but I still think the two CF functions should be consistent with each other. It's feasible that a dev would have to switch between a date format with and without a time component or have multiple types of date masks on the same page. And the natural assumption would be that the mask from one should work as the mask for the other. At least I would think so.

Last year, I got bit by this behavior when it came to the Year mask. December 29, 2015 was being displayed as 12/29/2016. ???? FYI: DateFormat(someDate,"MM/DD/YYYY") may not return the same thing as DateTimeFormat(someDate,"MM/DD/YYYY"). This is where I learned about the slight difference between a Calendar Year and a Week Year. Not to mention the fact that it will only happen at most on the last few days of a year.

And to make matters worse, we also used moment.js, which expects the year to be formatted as a capital "Y". :-/

I've never made it a secret that I'm not a fan of silent errors. And, yes, this would be an error on the developer's part for not using the proper mask, but it's an easy error to make (especially when using different masks) and even easier to completely miss.

I would like to see Adobe make the date formatting functions be a bit more consistent with each other.


THANK YOU, TRYCF.COM! http://trycf.com/gist/78a374effc62c05330cd33030da265cd/acf2016?theme=monokai

Adobe ColdFusion 2016
Adobe ColdFusion 10

And Lucee just gets wonky with its CFMXish behavior of kinda passing through masks it can't interpret.
Lucee 4.5