Rusty Divine

Live, Love, Learn, Teach

10 Years of Blogging

My first blog post was ten years ago! After blogging for ten years it is a good time to reflect on what blogging has meant to me.

I think we could do a quick test if you would help me out. If you see this post within a week (by June 29th, 2015) leave a comment. It can just be ‘I was here’ or something similar. I’m guessing I get 0 comments, but maybe as many as 3.

The first thing that says to me is that you can blog for ten years and not have any followers. I didn’t expect that when I started, but it hasn’t stopped me either. I blog to entertain and to teach, but also mostly its selfish so that I can develop my ideas more fully or find a reference to how I did some complicated code just by searching my own blog. Even without any followers I expect to be around ten years from now, too. Blogging is like jogging – it’s exercise for my brain – and like jogging, people aren’t very interested in watching me exercise –). Unlike jogging, some of my blogging content is actually useful to people who’ve encountered a similar problem that I’ve solved in a blog post.

My most popular post in these 10 years is How to encrypt a password reset email link in asp.Net mvc with around 7,000 views and the runner up is No One Knows They Want Visible Solids in Their Spaghetti Sauce with about 5,000 views.. Ok, that second one really surprised me. It looks like almost all of the traffic is from Tuesday May 27, 2014, and the main referrer is from the second bullet point on this Sweedish blog post, I kinda wonder if the author intended to link to my post?? The top-viewed post gets a lot of search traffic and I think it’s the accepted answer on a stack overflow question, or at least someone references the article for how to do it.

Have I made any money? Yes! I made about $2.50 when my good friend actually clicked on the Buy me a beer button on the sidebar. I have not received a single check from Google or any other advertisement. I also have not been given any free books or software to review, although if someone does read this I would totally do that!

Every time I interview for a job I do mention that I blog, and that generally gets a positive reaction even if the company never goes to check it out. It’s just like saying, “I care enough about my craft to write about it.” I would recommend blogging to any software developer just for that bonus.

What could I be doing better? I like to look to role models like Scott Hanselman and Scott Adams who do really well at teaching others by clearly explaining ideas and being multi-dimensional by blogging about lots of life experiences. Hanselman does a great job trying out cutting edge technologies and giving people quick guides with screen shots to how he got that technology to work. Adams has his systems philosophy where you throw goals out the window and just follow a process every day until one day you reach and surpass any goals you would have set. I could be doing more like Hanselman to show what I know, and I could be doing more like Adams to set up a consistent blogging schedule so that I have some content that followers would stay engaged with.

Problem with Authenticated Proxy with PAC file in Windows 8

We had a small problem on our team since we upgraded to Windows 8.1 from Windows 7 last week – only Internet Explorer was working 100% with our proxy server. Other browsers, such as Chrome, would let us get out to most sites, but some sites that were on our active directory group’s allowed list (like github.com) were not working.

The problem kept aggravating us as we found more and more sites and services were broken, but none of which were serious enough to enter a service ticket that would get our network team involved; one of which did look at it briefly and found it worked fine on his machine.

I love how the solution came forward through team effort on the part of Grax and Costenbader and myself: each of us chipped in a few minutes of toying with it throughout the day and did a great job of reporting what we’d found to each other. We even put a bounty of a burger at Honest Abe’s on the line, although in the end we all earned it.

Our proxy server requires authentication and has a PAC file for configuration. Again, these were working great in IE, but not in anything else. I realized we were getting a 407 Proxy Authentication Required error by using LINQPad’s check for update’s tool (chalk another win up for that great tool!).

Grax took the information from the PAC file and was able to manually authenticate using LINQPad’s update tool and got that working. BAM! That was a great break through.

Costenbader then went into Window’s Network Proxy Settings (type that from the start screen to get there) and set Auto Detect Settings to On, but turned off the Auto Configuration Script that was trying to load that PAC file. He then turned on the proxy server and used the information from the PAC file to enter the server and port, and checked the box to not use the proxy for local services.

BAM! That fixed 98% of our problems. I put the finishing touch on when I entered a few of the “except for” addresses into the proxy settings that I grabbed from the PAC file. DONE! We now have access to all the sites we had access to in Windows 7.

So, in summary, the PAC file combined with an authenticated proxy made it appear that Chrome wasn’t working, as well as some other services and tools (we didn’t try FireFox). Chrome uses the computer’s proxy settings though, so by fixing our network proxy settings we fixed Chrome and all the other tools we were trying to use. We aren’t bypassing any restrictions, we’re just changing the way it is configured so that it works on our machines, too!

Paul Boyer Museum of Animated Carvings

It’s been almost 6 years since I visited Paul’s museum in Belleville, KS. I can’t wait to take my son there to see the amazing animated carvings Paul created!

Paul Boyer’s Museum of Animated Carvings

Nebraska Code Camp–Year 4

It’s time for Nebraska Code Camp again! I’m looking forward to Friday’s lab sessions, and Saturday’s break out sessions, which I’ll be speaking for my first time at a code camp for my talk titled “An Agile Requirements Gathering Process to get to MVP”.

We are lucky to get Iris Classon to fly all the way here to be our keynote speaker this year. We had no women speakers submit for a talk, but Iris stepped up and is leading two lab sessions and presenting the keynote, too!

Code Camp is a great chance for developers to network, re-energize by learning about new techniques, and it’s a great place for aspiring developers to get a better feel for what to expect.

Hope to see you there!

Spooky Coincidence?

My 3-year-old son is interested in the difference between being alive and dead, and what it means to be dead. It started with a visit to Morrill Hall – a museum with plenty of bones – where his curiosity was piqued by the Plesiosaur in the floor. It’s a great exhibit of the long neck of that marine reptile under protective glass running the length of the exhibit room so that kids like Rowan can run atop the entire length of the neck.

My wife and I have a science background, so explaining how the dinosaurs lived and died and leading into how all living things eventually die was a natural progression for us; we’re not ones to sugar coat or out right fib, but we try to be careful to present death in a way that is natural and not scary.

On the drive to pre-school today, Rowan was talking about what would happen if his eyes fell out. I think he is tangentially thinking about how skeletons do not have eyes, because he has talked about that before. I had some fun with it and told him it would be rather painful, but I put my hands up to my face and pretended to move my dangling eyes to different places – crossed, or on the side of my head – and we laughed about how funny it would be to see things with eyes that we could reposition.

Although sometimes a little comedy helps, we usually talk about death in a practical way; it happens, but not often and usually not until someone is very old. I like to remind him that his grandmas are around to take care of him, so when he is a “Daddio” we should still be around to take care of his kids.

Rowan does know that my father passed away shortly after Rowan was born. We don’t talk about it much, but we have told him that he died in my mom’s house, which is where Rowan spends a lot of time after she picks him up from pre-school each day and before my wife picks him up after work.

So, I got a voice mail from my mom tonight that something a little strange went on today and she wanted me to give her a call. It was 10pm before I got back to her, but she wanted to know how much we had told Rowan about my father’s death. I told her that we have told him he died in the house, but that was about it; and I think I told him that just once.

Evidently, today Rowan crawled under the kitchen table. He then told my mom that someone had died under there and then some men took him to the cemetery to bury him. He said that he saw some writing under the table, so that’s how he knew someone had been under there.

My mom was spooked out for good reason since that is the room my father died in. So, she crawled under the table to see if there was some paranormal message, but there wasn’t – only a few letters. Rowan wasn’t bothered at all, he just went into another room to play.

After getting some chills down my spine from this story, I put Rowan on speaker phone to hear it from his point of view again. I asked him what he saw under the table and he said he saw the number D and so he thought it was my Daddio who was under the table writing a message when he died. I asked if he saw any one or heard anyone and he said he didn’t, that the man must have already been taken to the cemetery.

My mom then crawled under the table again and saw the letters E and B, or maybe the number 3. They were marks from the construction of the table, nothing more. Still, having Rowan pin-point the location of my father’s death was spooky. The added details about the men who took him to the cemetery only made it weirder, since he doesn’t usually have stories that are that intricate.

I told my mom that I would start paying attention to spooky things he said around here or at his other grandmother’s house to see if he just talks like that – maybe he is just starting to make up elaborate stories. I said that if he keeps bringing up more details or dwelling on the dining room table, then I’d start to get concerned – for now, I choose to believe it was just a spooky coincidence.

I wished her good luck sleeping tonight, though; she’ll need it.

Some Tips on How to Get Started Programming for Adults

My brother-in-law recently decided he would like to learn how to become a software developer so that he could pivot in his career, or at least use the skills he learned to make it easier to do his job. He knows I didn’t get a traditional CS education – I have a BS degree in Geology – so he wanted to know how I did it and get some advice for what he should do. I sent him an email with some tips, but wanted to also post it here for anyone else who may benefit, and because Scott’s advice on saving keystrokes is something I’d like to strive for.

My brother-in-law is going to take some courses at the community college here, which  is great. I have had a good experience hiring a software developer who completed that program. I also encouraged him to explore some resources on his own because I know if he can be exposed to topics from different perspectives it will be easier to understand and retain the ideas he encounters in class.

Below are some resources I recommended for him to look at. If you are considering whether programming is right for you, then these resources could help you explore different topic areas and decide if you like it.

If you are ready to take the next step and invest some money in your education, you would do very well by purchasing a subscription to Pluralsight.

When you are ready to start experimenting with code, you should definitely look into the 10 free websites you can get through Azure, or even setup your development environment on one of their virtual machines that might cost of few cents an hour, but that can be turned off when you aren’t using them and cost you nothing. And sign up with GitHub or Visual Studio Online.

My path out of college started with databases and spreadsheets, moved on to putting that on the web, and then to more complex line of business web applications. I always loved solving problems and especially automating processes, but one of my motivations to learn programming was the salary range I could expect after 5 years.

He had the choice between classes in Java or C#, and I told him that there were a lot more jobs in this area with C# than Java.

Time Lapse of Crane at NDOR Bldg 1500

Today a crane lifted some heavy HVAC equipment onto the roof of our building at work! The window on the third floor by my desk provided a good view, and what better way to capture it than a nice time lapse video.

Hope you enjoy!

Time Lapse at NDOR

Installing Ghost on Azure is now easy!

ghostThere used to be many, many steps to get Ghost running in Azure, but now it is available as a free website from the gallery on Azure.

After installing Ghost from the Gallery, navigate to the new website and tack /ghost/signup onto the end of the URL. You will be added as the administrator and taken to the blog post editor.

Checkout the docs for information on creating your posts and using markdown.

Disc Golf App’s Base Stories

We’ve created 20 user stories for our Disc Golf App, some of which will need to be broken down into smaller stories.

We’ve agreed that the solution should be a mobile website instead of an app. I need to do another post to justify this more, but in a nutshell: app stores take 30% of what you make and cost $100/year to keep open, and a large percentage of the proceeds go to a small percentage of very successful developers, and developing once and working everywhere is sometimes possible with tools like Phonegap, but maybe you should just learn objective C, etc.

We’re working on Iteration 0, which includes loading the product backlog, deciding on an architecture (Now researching SPA with Breeze, Angular, WebAPI on Azure), and doing some mockups (Balsamiq). I’ve even done a few Lean Canvas plans, which helped me think about the app from different angles.

The duration of Iteration 0 is open-ended at this point, but we’ve agreed to each put in 4 hours/week.

We’ll need to do some prioritizing of the backlog, which we’ve done conversationally, and then point some of it so that we can fill out Iteration 1. We’ll probably time box the iterations, but will need to discuss how long they should be. We’re used to spending about 60-70 hours between us on an iteration, which would be something like 9 weeks at our hobby pace – so maybe we’ll cut that in half and do one iteration per month. We’ll need to figure out our velocity, but having worked together on many projects before, that should be pretty smooth.

Book review analogy

Sometimes I encounter customers who are surprised at the effort that it takes to create custom software. Some of these customers are very good at understanding systems and big pictures and are uncomfortable with details. Some people can do both, but I find that to be welcome rarity.

A recent customer really struck me as someone who I could have helped with the following analogy, had I had the foresight.

The customer explained the project in a twenty minute conversation where I asked some questions that he agreed were things he hadn’t thought about. When I explained our requirements gathering process, which we charge a flat fee for, he was fine, but within a week he responded via email to express his frustration that we would charge him to develop a design. His email was worded rather strongly, but that was the gist of it.

I don’t think there will be a middle ground for us, but I wonder what I can do to help customers new to professional custom software development to understand it better. That’s when this analogy occurred to me:

This initial meeting has helped me understand your project at the same depth as reading a decent book review on Amazon. I know I’m interested in it, I know I’d like to read it, and I know the general plot, but I don’t know how many pages it has or a single line of its dialog. I’m not sure what the cover art looks like or who all the characters are. I’d like to setup another meeting with you where we will try to brainstorm more of these details, narrow our cast and focus on what really is important for the first book in what may become a series. I’ll take these notes and spend a significant amount of time developing them further, making sure no one else has already written this book, and then come back to you with all the notes, designs, research, and a fixed price quote to write this book for you. If you decide its not worth it at that point, or that someone else will write it better or cheaper than I can, you’re free to take these designs and have someone else write your book.