Archive for the ‘’ Category

Denver Dev Day 2017 – Giving Back to the UWP Community

Step one, put down the controller…  I’ve been REALLY busy.  After Denver Dev Days then it was FULL BORE into Comic Con mode.  And I had to do THAT blog (because I said I would) pretty much right after the con otherwise I would forget things.  At least with this blog, I get to follow along with the slides as I hope you’re doing too.


My talk was part of the June, 23rd 2017 Denver Dev Day.  I thought I was going to type up a blog BEFORE the talk as practice and get my head straight, but that didn’t happen since Comic Con was looming in the distance as well.  So this blog is more of what I talked about, more or less.  And YES it’s incredible that I’m doing ANOTHER blog merely DAYS after the Comic Con one.  I think that affords me a LEAST a year off from blogging.

You can download the entire project or JUST the Power Point slides from this GitHub repository.

Go ahead and SKIP that first slide.  Well at least GLANCE at it since they DID sponsor the event.  If you’re not familiar with my speaking style, I tend to put things in all caps for emPHAsis.  It’s too hard to ctrl-B twice for bold on and off when the caps lock key is easier to hit.  So don’t think of it as shouting unless the entire sentence is all caps.

Slide 2 – Giving Back

This was a general overview of what I’d be talking about.  About my journey to contributing to the UWP Community Toolkit out on GitHub.

Slide 3 – Emmet Speech  I included Emmet’s Speech to level set people.

YES, it’s true…  I may not be a Master Builder.
I may not have a lot of experience fighting, or leading, or coming up with plans.
Or having ideas in general.
In FACT, I’m not all that SMART.
And I’m NOT what you call a creative type.
Plus…  Generally, unskilled.
Also… Scared and cowardly.
I know what you’re thinking.  He is the LEAST qualified person in the world to lead us.  And you are RIGHT.
There was about to be a buuut.

I watch this video quite a bit.  Emmet really doesn’t think he’s all that special, which in reality with respect to the universe we’re all pretty tiny and insignificant.  BUT in the end we end up actually kicking ass and BEING The Special.

Slide 4 – Technically I’m Not Exactly a Master Builder Yet.

At the end of that movie you get to meet the boy’s dad.  Holy CRAP!!  I’M that DAD!!  Aaaahh!!  I like my stuff in its place and if you use it then PUT IT BACK!  (that was shouting).

This talk was supposed to be a lightening talk, but I think they did away with those and Shawn asked if I could turn this into a full blown 75-minute talk.  SURE!  I think that email that was approving speakers was about 2 weeks before the talk so I had some WORK ahead of me.

You can’t know EVERYTHING.  Just like Emmet said “In FACT, I’m not all that SMART”  And there is ALWAYS somebody out there that knows more than you do, so it’s better to be humble and show your skills by DOING and not talking about them.

The Lego Movie is NOT JUST a movie, but possibly a metaphor for LIFE!

Slide 5

Ah yes, the introductions.  I’m old.  I was one of two people at Mines that owned a Macintosh which put me in the default position of Mac Evangelist.  I worked for Apple for the duration and I taught classes and showed that I could do everything on my Mac that everybody else could do on their TI PCs (except for display in color).  My Mac could plug into the Motorola 68000 boards in the Green Center and I could download the Morse Code interpreter right from my machine.  AWESOME!

Somewhere I caught the Windows bug.  I was introduced to SO many other windowed systems at Intergraph that I got used to resizing my windows from any edge.  When I got back to my Mac at home (now a Mac IIx) I was not able to do this.  It was always a combination of moving the window and resizing.  PLUS, Macs were (and still are) pretty damn expensive and I didn’t have my student discount anymore.

My title at NCM is Enterprise Solutions Architect, but I feel I’ve done the same things since I’ve started there 10 years ago.  I solve problems, help people, and learn new technology and put it to good use.  Sure, my title has changed over the years and more projects under my belt, but I just try to come to work and kick ass every day.

Don’t forget to download all of this from GitHub.

Slide 6 – Table of Contents

I pretty much read this over and touched over each subject.  Remember, you’re supposed to be following along with the slides.  This is mostly to prepare people for what’s coming up.

Slide 7 – Goals

Certainly I’d like to inspire MORE than one person to help the UWP Community, but maybe that is a tall order.  But maybe you’ll help ANY community and that’s JUST as good in my book.  You know, like that annoying shampoo commercial.  You tell two people and they tell two people and so on and so on and so on…  Yeah.  THAT annoying commercial.

Slide 8 – What This is NOT

It’s not my goal to help people with UWP, GitHub, or Twitter.  I pretty much just read the slide on this one.  Are you following along?

Slide 9

There certainly is NEVER enough time in the day.  Even with this blog.  Will I finish it tonight?  Why would I help out the community?

Had to take a vacation day for this talk.  My company doesn’t pay me to do this.  It just felt right to give back and do this talk as well as the one back in October.  I figure I know some stuff and doing these Denver Dev Day talks is a great way to give back to the programming community.

It feels good to give stuff away.  Write a free app or website or give stickers away at Comic Con.

I would say the major reason I gave back to the community was that I needed the functionality.  It was GREAT that MOST of the functionality was already in the toolkit, but I needed latitude and longitude on Tweets so I put it in.  Even if you end up giving back for purely selfish reasons that’s STILL giving back.  I would say that’s been my driving force for many of the times that I’ve given back.  I was HAPPY to do it.  There was so much that I DIDN’T have to build, because there are others that came before that gave back.

The running joke at work is “You’re royalty, why do you work?”.  I’m 9 generations away from King Kamehameha 1st

Slide 10

Well it all started with GitHub.  I signed up last year some time.  It’s a great place for your offsite backups and small projects to share with the world and collaborate as well.  I was working on a .Net Core project for work and I noticed that the DataTable was deprecated.  I needed a way to send a User Defined Table Type as a parameter to a SQL stored procedure.  THAT’S where I found the N-RECO repository.  I needed that recordset object so I grabbed it.  I needed a way to set up the object using the CodeFirst / attributed syntax so I wrote a snippet of code that helped me do that and then used the Nreco recordset to get me the UDTT I needed to send to the Entity Framework Core stored procedure.  I ended up sending that snippet back to the Nreco people and they gave me a contributor’s credit.

THIS of course was WAY out of process.  No pull request, no merges, no nothing.  Sorry about that.  BUT…  Giving back is giving back.

Slide 11 – A Little History Lesson

So it didn’t JUST start with the Nreco repo.  As far back as I can remember I’ve been giving back in the form of code.  My step brother and I REALLY wanted a new Apple ][ plus so our promise was to write software for our parents AND of course play games on it.  We ended up writing a power fence inventory program for them in BASIC.  Ugh.  I remember there were NO numeric formatters so we had to write some so we could have trailing zeroes on the invoices.  That was probably the trickiest part.  It was all A B C menu driven, pretty “basic” stuff (pun intended).

Working at Intergraph I helped with a proof of concept using XmMotif.  All of that code came from M.I.T., but there was some wonkiness to it and needed some minor tweaks.  I don’t know if any of those changes made it back to M.I.T., but I like to think so.

When I needed comic book shop data I turned to The Master-List website maintained by Mark.  I wrote my first screen scraping bot to gather up ALL of the data I could from that website and put it into, ahem, an Access database.  This was back in 1997 and all I had access to was Access so I dealt with it.  When I got a hold of Mark, he said he maintained the data just by editing the HTML pages.  I GAVE him all of the data that I gathered and sent it to him in a spreadsheet.  I didn’t have time to redo his website for him, because my HTML skills were still pretty basic.  I keep in touch with him and I think he’s still doing things the old-fashioned way.

Another screen scraping bot that I built was to hit eBay.  I wasn’t sure what comic books to sell so my bot would scrape eBay and look for the items that I had and cross reference that with what was selling, when, and for how much.  This was back in 1998 and I thought I could help eBay out.  It was REALLY hard to get a hold of them back then (and it STILL is today), there was only ONE conversation where I basically told them what I was doing.  I wasn’t expecting much.  They didn’t follow up after that conversation.  They were either working on tools like that or NOW they were GOING to.  Since I didn’t see tools like that show up until MANY YEARS later, I figured they were firing up that branch of eBay to work on those analytics for sellers like me.

The sticky Tweet?  Maybe Twitter was already working on something like that, but it took them a while to get it done.  I tweeted that I wanted a Sticky Tweet (MY pinned/sticky tweet now) back in 2013, and a few years later I saw that they implemented it.

Slide 12 – WWJD?

Part of why I started doing the talks was primarily due to Jerry Nixon.  What would JERRY do?  He is always SO enthusiastic about Microsoft technology and about tech in general.  He donates his time to the Visual Studio User’s Group and is always there for those Microsoft functions.  I’m sure it’s in his job description, but there is a TON that he does outside of that box.  So I’ve GOT to thank Jerry for that inspiration.  Unfortunately, he was not in the room when I said all of that.  I had an extra Star Trek pin that was stuck to my college work out bag back in the day, and I gave it to him.  He IMMEDIATELY put it on and wore it all day.

Slide 13 – Follow the Process (or don’t)

After integrating the UWP Toolkit into my code and realizing that I needed latitude and longitude, I forked the toolkit repo and got to work.  I made sure that I followed their style and did not break any API.  Things were up and running in only a couple of hours due to the fact that SO MUCH of the infrastructure was already there.  I also updated the sample program that would allow you to enter a lat/long combo OR you could use the location services to find that for you.  In their tweet list display I also added the lat/long there if it was attached to the tweet.

I submitted the pull request and begged for forgiveness.  As it turns out the PR was nearly PERFECT.  I missed the part of updating the documentation since I didn’t really know where that was.  If you look at their guidelines you should submit an ISSUE FIRST, which is something that I missed because I didn’t read the guidelines.

The UWP team allowed me to keep going and I was able to submit an issue and then provide another update.  I’ve got more plans for this section of the toolkit and will contribute as time permits.  Both pull requests are in the links below:



Slide 14 – Ways to Give Back

If you stumble across something that blows up or just doesn’t feel right take the time to report a bug or provide feedback.  It doesn’t take that long and it help tremendously.  I am now part of the Alpha group on the Xbox OS release schedule and I’ve been submitting things for a while now.  I’m sure I would not have made it to the Alpha group if I had just kept my mouth shut in the previous groups.

You could mentor at school or work.  I’m sure that ANY school would love to have somebody representing the software industry come talk or teach some extracurricular activities.

You can always ask Jerry or Shawn and submit yourself when they “call for speakers” either for Denver Dev Day or at the User Group meetings.

Free stuff is always nice.  Write an app and GIVE it away!

Slide 15 – What Would YOU Do?

I polled the audience to see what they might do to give back.  Reporting bugs seemed to be the easiest way to give back.

Slide 16 – Questions / Contact

I just wrapped up with questions and I forgot what questions were asked.  I think I finished up with about 3 minutes to spare and we could all hit lunch a bit early and get a jump on the lines.