Making Educational Videos for Code Louisville

I volunteered to be a mentor for the latest session of CodeLouisville, on the .Net side.

No big deal, I thought.. and then, TreeHouse was unable to get their Entity Framework videos ready on time, so we, the mentors, volunteered to pick up the slack.

Naturally, I don’t do well when given an open ended problem, so I went into crazy-detail-mode.    I paid $15 for a 1-year subscription to https://screencast-o-matic.com/home  (VERY GOOD), and I started making videos.

And I ran out of steam.  Because, of course, I chose the slow, measured, one-thing-at-a-time approach, and I created far too much work for me to do myself.

Luckily, two other mentors suggested that we do X for our mentoring session – so if what I was doing was from top down, they were going bottom up.  Basically, show the fast way to create an MVC website, Code First, Scaffold, and let the students backtrack from there.

This worked VERY well.   It boot-kicked the students into effective land.  At least one of them showed me some working code in their project in the same week.

Lessons Learned

I am too. detail-oriented for my own good.

When in doubt, ask people what they need.

Sometimes, you just have to show the finished product and NOT explain everything, then go back and explain what is needed.   Its okay, people are resilient, they will survive Smile.

I like screencast-creation, but not more than a few hours a week: For a 20 minute screencast, it takes about 40 minutes of recording, about 2 hours of editing, another 20 minutes of rendering and uploading.   So basically plan on 4-5 hours for a 20 minute video on a topic.    Thus, I can probably sustain generating 10 minutes of educational content a week.

What Did I make

This is a walkthrough of LocalDB:   https://docs.google.com/document/d/1tTDKTQsfGPr_nFSbEifGQRc8dc-FfrxbPUfnc7CyKoc/edit?usp=sharing

This is a walkthrough of C# talking to SQL:  https://docs.google.com/document/d/1lSt-C5-L3VwLLGE6oJO3A_UOpIu2lYA-EWMhzAo-Ye0/edit?usp=sharing – it has links to 5 videos, and (eventually) links to code in github.

Louisville Downtown Exit Coverage Map

Here’s a quickie but oldie.  When I started going downtown more often for various reasons, I decided to study the layout a bit.  I ended up drawing this map:

image

I did this by having two google maps open; I would then do a route in one, and drag the endpoint around; as I discovered when things “switched”, I would update the map in the other window.  I often had to stop and wait because I ran out of API calls per minute.  I’d love to write (or have someone write) an equivalent program, something that colorizes the 2D space of google maps by some function of a route to that spot.

Here’s a readonly link to the map that I made.

It will be fun to re-update this after the bridge work is done to see how things might have changed.

Thoughts about being a Tutor – 2015

A while ago, I was a mentor for CodeLouisville.    It was fun, but it was also Front-End design – something I needed to learn on the fly to keep up with the coursework that I was mentoring.  I met a lot of folks who were excited about learning.

There was some criticism of the program, though.  One such criticism was, Why aren’t you teaching .Net?  Louisville has a lot of .Net work available.  The answer, for CodeLouisville, was a lack of teaching resources.  They are reliant on “free” resources (as in, LFPL paid TreeHouse and thus it was now free for Louisville residents and workers), and at that point in time TreeHouse did not have any .Net curriculum.  (They have since hired somebody and they are working on it).

This annoyed me, and so I (along with some other folks) tried to design a .Net curriculum.  I think the design was good, but the problem we kept hitting was the lack of consistent free curriculum.   And under the umbrella of CodeLouisville, I couldn’t venture into paid curricula like Pluralsight, for example.

The other thing holding me back was, adjusting to the speed of a class of people.   Some folks go fast, some folks go slow.   How to enable success?

And finally, there is the conversion of time to money.   I used to not have any free time, but thanks to kids getting older, I’m finding myself able to reclaim an evening or two a week.  I have my own projects I’m super-interested in, however, I’m also interested in having spending cash to buy coffee and gadgets with. 

So here’s the pitch:

  • Hire myself out as a private .Net / C# Tutor.
  • I get to help a person 1-on-1 in the direction / goal of their choice.
  • I get spending money.  Cash, Starbucks Gift Cards, or Amazon Gift Cards all work for me.  

How much $ do I charge?

  • For folks with hardship, I don’t know yet.  
    • Definitely won’t be enough to replace my day job Smile
    • Maybe the first time around, its on a pay-as-you-can basis as I get the kinks ironed out of the process? 
      • I want to help people get better, so I’d discount myself for folks in hard spots.
  • In cases of non-hardship, I would not discount myself.  For example:
    • Employers hiring me to train-up their employee
    • Parents hiring me to tutor their high-school kid.    
    • I’m thinking $50/hour for these instances, that feels right.  
      • I reserve the right to change my mind before or after a session;
      • I will not change my rate during a 2-month session.

What’s the curriculum and method of study?

  • Depends on where the student is at, and where they want to get to.
  • I would steer the student towards Pluralsight.  Its got the best content that I know of, as a learning tool.  I would, in fact, discount the cost of pluralsight from my tutoring fee.  But if that’s not how they learn, we can find other ways for them to collect information.
    • There is a TON of content out there, but the quality varies.
  • I would guide the student into picking a personal project that is interesting to them, that is not too hard, yet not completely ridiculously easy.
    • The personal project must involve at least two related sets of data.  We need some parent/child complexity to be real-world complex.
  • We would meet once a week for 1-2 hours, and pair-program (or side-by-side program) our way towards completing that project.

.Net is Huge, what specifically would I cover?

  • I’m an old fogey, so I’d start the student off with a console application.
  • Get them to put data in a database.  Start of with SQL Express.
  • Then either go with a Windows/WPF version, or a WebForms/MVC version, of their app.
  • We can also visit other topics like web services, javascript/jQuery/Ajax, SSRS, stored procedures, optimizing SQL, profiling, EF, etc.
    • I am intentionally wanting to take the student the “hard way” through doing some of the stuff (the way it used to be done) before we switch to the easier way which hides the complexity.  For example, SqlConnection before EntityFramework.
  • If desired, we can visit “advanced” topics like:
    • Unit testing, IoT/Dependency Injection
    • Integration Testing, Automation best practices
    • Scale testing (I’d need to refresh myself on this)
    • Waterfall vs Agile vs Scrum vs …
    • Art of Software Estimation
    • I suspect these are more appropriate if I’m hired by an employer to up-train an employee.

What I cannot do:

  • I am not a UI / CSS / Make it Look Pretty person.    I would not dare teach best practices around that.
    • I am, however, good at detecting UX problems (usability). 
  • I am not a mobile-dev person at this time.
  • I cannot teach an uninterested person.  You have to want to learn, be curious.
  • I cannot guarantee employment if you are un-employed. 
    • However,  if you show me the job description your are interested in, or if you are an employer, tell me what you want your candidate to be like, I can teach towards achieving those skills.

Am I a good instructor?

  • Rider Rodriguez, who ran CodeLouisville, thinks I am.
  • Most of my students during my single stint at CodeLouisville as a mentor think I am.
  • I have a very good intuition / radar: I can detect where people are at in their understanding of something and then guide them to getting new things understood.  
  • I’ll hazard a Yes.
  • If I’m not, I’m open to feedback, and I can learn from feedback.

Does this take away from CodeLouisville?

  • First, CodeLouisville does not currently cover .Net programming.  So, no, I don’t think so.  If a person really wants to learn .Net, and thus spends their time with me instead of them, then who is being served?
  • Also, I’m doing this one-on-one.  If I were teaching a class, then that might be different, but I’m really trying to focus on making one person shine at a time.
  • If CodeLouisville does pick up .Net, I definitely would not want to detract from them getting students and/or compete with them.   I will visit that thought in the future when it becomes reality.

 

What do you think?   Is this feasible?  Do You know somebody who would want to hire me in this manner?   Find me on twitter at @sunjeevgulati if you are interested.  

Currently available for May/June/July 2015.

Kosair Charities “Bears On Patrol” Sighting

image

As I come in to work now, what did I see
Laid out on the side of the road
A mound full of Teddy Bears winking up at me
Laid out on the side of the road

image

It turns out this is the work of Korsair Bears on Patrol.  It’s a stuffed animal drive; collected by, in this case, United Health Care and Optium.  (see their names in the first picture on the sign). They started out at 700, then 4000, and this year it snowballed to 13000+.   Today was media day, media was arriving at 11:30, so they were trying to set the bears out to make for a better shot.  

image

imageBut it was really windy.   The plastic kept getting blown about.   They tried water bottles.  I raided my parking lot for larger stones of gravel.   Turns out, the solution was to dump more bears down on the plastic, like this boss is doing.   They said by the time all the bears get out there, they should have all the plastic filled up.  I might swing back out around lunch time to see that.

image

The lady said that they used to be in the first floor over in our building, but now they’re on the third floor, and its much harder than they first thought to move that many bears.  Never fear, the call has gone out to the rest of their company, and they’re getting the manpower together to get the job done.   She showed me a picture oh her phone of a fishbowl conference room – the kind with one wall being all glass – stuffed floor to ceiling with bears.  

image

The purpose of the bears:   The police officers and firemen keep them in their vehicles.  If they encounter a family in a distressing situation, with a child who needs comforting, out comes the bear to provide some luvvin’ in ways only a teddy bear can.

I love people, and I love people doing good things.

E-Cycling

Somebody at either TR or BH decided it would be a good idea to invite Bluegrass E-Cycle over.   I am very glad they did that; we had several servers and monitors and microwaves (yes, microwaves) sitting around that needed to be dealt with.

photo

The news flash is that they are doing the same thing tomorrow, at one of TR’s other properties.  Click on map for link to google maps to get directions.   I don’t know if the address (200 Bullitt Lane) is correct or not.  I’m guessing the timing is similar:  9am to 3pm. 

image

* Bluegrass E-Cycle image cross-linked from their website – hope you guys don’t mind, I’m trying to promote you.

A Visit to Bricks and MiniFigs

I’ve always loved LEGO’s.    When I found out that Louisville got a Bricks and MiniFigs (franchise) store, I had to go check it out.   (Prices should be visible if you zoom in on the pictures)

Yes, they have Minifigs

image

Yes, they have New-In-The-Box Sets

image

Yes, they have Used Sets – some parts may be the wrong colors, accessories might be missing

image

(The price got cropped.  It was $80)

They have Tubs of Loose Bulk Parts that you can buy:

image

image

I don’t see myself making any purchases there anytime soon.  I have no specific projects in mind; I do have a desire to build some of the sets I’ve seen go by over the years, but it would be more cost effective for me to get an account with Pley than to actually buy the sets, I think.  

Then again, for a large set, at $40/month .. suppose I do this for 3 months.. I don’t get to keep any of the sets.. $120.. Hmm.   Maybe I’ll revisit that.

Watching TreeHouse Videos Quickly

imageIn November, I signed up to be a mentor for Code Louisville.    It’s a program where people use TeamTreeHouse (as made available to anybody living or working in Jefferson County by Louisville Free Public Library) to study up on stuff, and work on projects, and if they need help, they can ask the mentors during their weekly class/lab.

For the first Two Months, I stayed current on all the videos, and quizzes, at TeamTreeHouse.  You can see that from my profile on the right.

Unfortunately, I do not have the 10 hours per week necessary to do this properly.   (Well, 5 hours for watching videos, and another 5 for working on a personal project). 

I still want to keep up (so that I know what the course is teaching the students, so I can help the students when they have questions), so now my mission is to stay up on videos, while not taking the quizzes that come after each video, in the most efficient way possible.   (Note: possibly Windows specific, YMMV):

Step 1:  Subscribe to the iTunes feed.

Every video lives somewhere like this: image

Go up to the “course” level URL instead: image, and there you will find the magic button:

image

The actual link address is something like this:

itpc://teamtreehouse.com/library/javascript-foundations.rss?feed_token=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

Which, if you convert it to http, and get it in a browser, looks like this:

image

I.E. It’s a plain old RSS feed.  However, the itpc:// causes it to open in iTunes as a podcast, where you get this:

image

Note. At first, you don’t get all the episodes – I had to tell it to “show old episodes”, and I had to click the little cloud icon to download each one .. there’s probably a way to do that easier.  I clicked on each one.  I was at work, so it downloaded fairly quickly.

Step 2: Watch them with VLC

Then, instead of watching the episodes with iTunes, I find them on disk, and watch them in VLC.  I go as far as to create a VLC playlist to get them in order:

image

Then, while I’m watching them, I can speed them up:

[ , ] Slower/Faster in 0.10x increments
If the speed gets higher than 4x, it cuts audio out
= Resume normal speed
Shift-Left-Arrow, Shift-Right-Arrow 3 seconds left or right

I find that watching at 8x, I can tell what the subject matter is fairly easily.  If I find something interesting, “=” + a couple of Shift-Left-Arrows, and I watch that at normal speed (or sometimes only double-speed).  

I just watched 3 hours of video in an hour.    And I don’t think I missed any detail.   Nice.

In another half hour, I can catch up to where the class(es) would have me be at.  

Code Louisville 2.0, Shelving Various Things, New Tech

Tonight was my first night of mentoring at Code Louisville 2.0.  I don’t know if I’d mentioned it before; I volunteered to be a mentor in a program that the city is putting together.  The City’s viewpoint is, we need more skilled IT people (there’s a shortage).  My viewpoint is, I get to help somebody who wants to learn, to learn something, is good with me.

It went pretty well.  The program is using Treehouse for the source of instruction; the Louisville Free Public Library made a deal with Treehouse to make it available to all library patrons.    The quality of the instruction is pretty decent, and it takes the stress off me for being a source of instruction.  Instead, i just need to share my experience with folks.  Some of them are right at the level of the instruction, some are much more advanced.  It keeps it interesting.

To keep the mentoring / labs interesting, I’m trying to do a mini version of a standup at the start, and then circulate amongst everybody to keep things personal.   I’m trying to keep a live document editable by all going as class notes / links / what did we decide.  I hope its a good example for them, of how to use technology to collaborate.

As a result, though, I’ve had to shelve my architecture build.  I simply don’t have the 4-6 hours it would take for me to go to LVL1 and print out the 3D parts of my house model.  Each part.   Times 8 parts.   Times 4 levels.  Without being a hog.  

My current geeky project inventory:

  • A family project: old 35mm slides converted into slideshow project for delivery at Thanksgiving (where I’ll record everybody’s commentary about what the slides were about)
    • I need to find decent screencast recording software that will let me create a DVD later.  I think I’ll be trying SnagIt.
    • Planning on using Picasa as the presentation vehicle.  My wife has already scanned in all the slides from the negatives.
  • One more birthday song, for my stepson, coming up in December
  • One last soccer banquet slideshow, as requested by one of the kids I know.  He’s a good kid, and yes, I’d be honored. To be delivered probably late November or early December, i don’t know yet.

I’ve also had an infusion of new tech into my life:

  • Samsung_ATIV_Smart_PC_Pro_700T_35511640_06_610x436[1]A Samsung 700T that I got off a co-worker at about 50% of the list price.  This is a Windows 8.1 (thanks Anthony!) tablet device with a keyboard that makes it pass off as a laptop pretty well.  I’m writing this blog post on it.   However, while in tablet mode, the near field pen thingy works perfectly.  It even does the “hover” thing that mice do, that I really miss on the Apple.    And I’m getting used to the flexibility of reaching up and touching instead of trying to force the mouse to get to a certain spot on the screen.
  • A whole house water pressure regulator to cap water pressure at 75 psi.   What was happening was spikes up to the 150’s, which caused the pressure relief valve on the tankless water heater to dump scalding hot water onto the concrete basement floor.

Running wise, I (barely) ran my last half marathon of 2013 (time: 2h48m).  Due to a calf injury, i could not train much – my longest run the month prior was 5.5 miles – but thanks to Mr. Calvin Spears of Occupational Kinetics, I got put back together.  They also used a cool app – it seemed to be called SparkLines, but i can’t find it anywhere – to measure me while I was running, and detect that my form is lop sided when I’m in my right foot.   Good stuff to know.   They also say they can make me faster. 

My running schedule is currently clear of all races.  I intend to sign up for the Polar Express series (3k, 4k, 4mi) which runs Dec-Jan-Feb, as a way to have a goal to stay in shape over winter. 

Fastline 5k 2013

Race #3 of the four part series.

[youtube=http://www.youtube.com/watch?v=a85JEmkmCpQ&w=448&h=252&hd=1]
“video caption here”
  • I found out that Judge David Voegele is also in charge of the local origination Cable TV channel. (I don’t get cable anymore, so I can’t check it out for myself).  He also puts some of the same stuff up on his youtube channel.  He believes greatly in getting community input, showcasing Oldham County .. and he’s willing to come out on a Saturday to a race to take video for it.  He asked if I had any video I could contribute to his editor; I gave him the bulk of what I had, but I have no idea if they used any of it or not.  It shouldn’t matter, I’m happy to help out. 
  • I kept the chest-mount and this time, I stabilized, then sped up, all the race video .. at 20x speed .. to get the full course covered in a reasonable amount of time.   Initially I had it at 1600%, but that was very jittery; at 20x speed due to a 180bpm cadence  ~= 10 frames per step, things evened out and the jitteriness went away. 
  • It was fun learning about FastLine, the company.  Till then I had no idea what they did other than “print stuff”. 
  • It was fun learning about the system that Brian Ruggles put in place for tabulating race results.
  • I used some excellent music from Kevin MacLeod as filler during the video, and especially for the awards presentation.

One more race to go.. the Apple Patch.  I have this idea in my head.. of taking the race video.. adding some Pole Position sound track to it.. or maybe Mario Kart.. have a speedometer (with real numbers of course), and a “which position am I” (as calculated backwards from my finishing position).. that would be a ton of fun.. for me.

However, I’m also running out of subscription to Adobe Premiere.  We’re redoing our budgeting, and $30/month is too steep for my allowance, so I’m letting it go for now.  I will renew it if I have to.

YMCA Oldham County Days 5k Video!

I did it!   I’ve edited together yet another 5k race video!

[youtube=http://www.youtube.com/watch?v=OUFRNGFNkrk&w=448&h=252&hd=1]
Yet Another Caption

 

This time, my workflow:

  • Don’t pick and choose, stabilize ALL the running camera video.   I carved them up into 2 minute sections, and spent several days clicking stabilize, and walking away.   Some day I should figure out some batch automation for this.
  • Use a 720p format, so I get an automatic clip of the 1080p stabilized footage. 
  • I did not go dual screen this time.  I got everybody on camera as they left, rather than as they came in.  Side effect: less work!
  • Strategic use of “cross” vs “dip” to hint at when a story line was changing.
  • I had some problems with picking a consistent font.   Some day, I’ll find a font I like.
  • Once the music started, I was able to cut/trim/fit the running video to the music. 

I only had two stories I could really tell in interview style:

  • History of the race (thank you Bill!)
  • Hot.

But I managed to fit in some little tidbits:

  • Downtown LaGrange.. Oldham County days.. band playing, etc.
  • The 1 mile is a different route than the 5k for this race.  Which means, you can see the 1 mile winners on their way back!
  • The interrupting Tra…  “Toot Tooot” …ain. 

Guest appearances:

  • The guy in the golf cart is Corey, he runs the indoor soccer program for the Y.
  • Shannon runs Oldham County Physical Therapy, they are wonderful.  They fixed me up after ITBand’11.
  • Bill the sign guy helps with signage at almost all the local races.  Including the PPJ10mi.
  • 1st place winner lady = last year’s overall winner.
  • 1st place winner guy Sean R = former soccer teammate of my stepson’s.
  • A bunch of the winners are related to each other.   There’s a family who is in to running.   I should interview them some time.

It’s a bit harder with the camera on the front.  If I run hard, my hands get in the way.  On the other hand, with the camera on my head, stabilizing the footage is much harder.   I wonder If I can find a nice person with a running stroller for the next race, put the camera on the stroller.. Hmmm..

The next one up is Fastline 5k.  I know almost nothing about Fastline (the printing company) .. I guess I’ll get to find out!