Month: January 2014

Podcasts

Aspect Oriented Programming with Matthew Groves

Matt Groves, Pete On Software Podcast Interview Victim OneI’ve been moving right along with my podcast this past month. My first episode was published on December 29, 2013 and as of today, January 29, 2014 I’ve published five episodes. The fifth one, which I just published is my very first episode with an interview.

If you’ve listened to my podcast intro, you know that talking to and about the people in our industry has been a goal right from the start. That being said, I wanted to see if I could make shows by myself at first to see if I was really going to do this thing. From now on, I plan to mix up the kinds of shows as I find the right topics or guests to suit one style or the other.

In Episode 5, I knew from the start that I wanted to have a guest. Like a lot of podcasters, I planned on using the guests in a very selfish way. Sure, I’d be making the podcasts for the listeners, but at the same time I wanted to pull double duty and learn about things that I’ve always been curious about.

As I thought about topics to discuss, the first one that jumped out at me was Aspect Oriented Programming. I kind of knew what it was about, but I really wanted to know and understand more. As soon as I finished recording Episode 4 of the podcast, I used my podcast endorphins to take a risk and send out an email to the guy who literally wrote the book on Aspect Oriented Programming.

Matt was gracious enough to give me some time and talk about the topic, some of the frameworks you’ll encounter, and his book. He even provided a promo code for my listeners, so I couldn’t have been happier with him as a guest. He made it very easy to talk about this topic and he really knows the landscape. Check out the episode and definitely use the promo code to buy the book if your interest is piqued by the discussion.

I also learned a few tips and tricks that I’ll have to put into play next time when recording and mixing two disparate tracks and I’m thankful for the opportunity to get to keep doing this, to keep learning and trying to get better, and to work in a community where people like Matt are who are so willing to come and make time for a lowly podcast with literally TENS of listeners per episode.

Great big thanks again to Matt and to all of you who listen to the show.

You can also subscribe to the podcast at any of these places:
iTunes Link RSS Feed Listen on Stitcher

Thanks to all the people who listen, and a special thanks to those who have rated me. I really appreciate it.

The episodes have been archived. Click Here to see the archive page.

Podcasts

The Hardest Part of Podcasting (so far)

Podcaster..(not actually me ;) )The most difficult thing that I’ve found while doing my podcast is the whole “talking to no one” part. I already know that I talk very quickly, especially when I’m excited. I also now know from editing my podcasts that I tend to be sloppy in my pronunciation of a LOT of words. I’ve definitely been more focused on that.

What is getting me is being able to “fake” the vocal dynamics that happen as you are interacting with another human. Normally, you’d feed off their interactions and subtle non-verbal cues, but instead I feel like I’m an actor reciting an ad-hoc soliloquy and currently I’m just not that talented. I’m balancing that fine line between speaking at a good pace, speaking clearly and enunciating, and speaking with vocal dynamics that don’t sound fake and forced.

I’ve been trying to think of some good ways to “fake” this. One idea is maybe put a mirror in front of me and talk to the “other person” who is there. Another idea is to make my son or my wife sit there near by and I’ll talk to them. I do plan on having some interview subjects on soon, so those kinds of episodes won’t be an issue. I’m just more concerned and focused about my “verbal essay” (rant) style episodes.

Does anyone have any good practical tips that they’ve used when “performing for no one”?

Mentoring

On Helping Other People

Life PreserverA very common objection that I hear that keeps people from teaching others is that the person feels that they aren’t “expert” enough to teach someone else. Any while I don’t doubt that the person lacks the credentials to be an “expert”, they do have some life experience to share.

The way I heard it described the other day on The Podcast Answer Man (link to episode) was that it is more about where each person is in their life. As an adult, I don’t see a 6th grader as having a wealth of knowledge. However, to a 4th grader, the 6th grader has a lot of valuable answers and experience to share.

All of you have at least a “6th grade level knowledge” about something. Go out and be a hero to someone who is at that 5th grade level or below. As long as you are honest about where you’re at and what your story is, you aren’t a fraud or a phony. Everyone is a beginner at some point. There is nothing wrong with an “advanced beginner” or higher turning around and helping those on the trail behind them.

Excuses are a crutch. If you feel compelled to help others, just do it. Start a blog, start a podcast, speak at user groups… whatever gets you excited. Your content won’t be for everyone, but – NEWS FLASH – no content pleases everyone. If someone is too advanced for your content, then they aren’t in your core audience. As long as you didn’t promise an advanced session, don’t worry about it.

Now go create!

Podcasts

Podcast Episode 2 is Live: Staying Current

BraggingMy second podcast went out this weekend.

There is one section when I am talking about my own answer to “How do you stay current?” and I agonized back and forth a bit as to whether to leave it all in. The point was that I’m busy just like everyone else is busy, I still make time for everything that I do to stay current. I hope that it doesn’t come off as bragging or humble bragging or that I’m just a gigantic jerk. I wanted to really bring home the point that I go on to quote in the show that I once heard Leon Gersing make at the M3 conference that, “If you say you don’t have time for something, you don’t”.

I heard him say that at the lunchtime keynote and it really hit me about how much I had been slacking at that point. So, I cut out some useless TV and I was able to do everything else in my life and still spend several hours a week honing my craft.

As I said, I’m hoping that it comes off more as a way to shift priorities around to create a plan rather than “Hey, look at me, I’m perfect”.

That all being said, I’m off to CodeMash this week for my yearly dose of inspiration and to remind myself just how many smart people are out there and how much I don’t know!

You can also subscribe to the podcast at any of these places:
iTunes Link RSS Feed Listen on Stitcher

Thanks to all the people who listen, and a special thanks to those who have rated me. I really appreciate it.

The episodes have been archived. Click Here to see the archive page.

Fluff

Prime Factorizations

Prime FactorizationI was checking out the internet and I came across someone doing a code kata for prime factorizations. I stopped watching what they were doing and decided to try my own hand at it. Here is the result:

You call it like so:

var primeFactors = PrimeFactors.Of(1305294);

I’ve run tests on this and some timings. Here are some representative findings:

   198,602 = 2 * 199 * 499 (40 milliseconds to run)
 4,678,421 = 11 * 101 * 4,211 (3,131 milliseconds to run)
17,841,257 = 7 * 2,548,751 (20,603 milliseconds to run) 

2,548,751 is a pretty big prime! (Verified by http://is.2548751.aprimenumber.com/.)

I use the trick that says that a number is prime if it isn’t divisible by any of the numbers up to its square root. That definitely sped up performance. Other than that, I think the biggest spot for potential refactoring is around actually checking and calculating the prime factors. I laid it out very much like I would do the prime factorization with pencil and paper, but I don’t know if there is a better or more elegant way to attack that.

I’d be interested in any feedback and in seeing how some other people might solve the problem.