Archives For bearfruit

Screen Shot 2016-04-28 at 7.39.46 AM

I hear a lot of bad advice on how much to charge for freelancing that leaves good money on the table. The most commonly suggested method is the “cost plus” style, where you calculate your desired hourly rate, multiply it by hours worked and get your cost. Don’t use this method, there is a better way!

Last year at Iowa Code Camp (and more recently at the Des Moines Javascript group) I gave a talk on how to so succeed at freelancing and always the most asked question is how to decide how much to charge. When Des Moines Web Geeks had their social event I gave a condensed version of the talk focused just on how much to charge. That talk was recorded and uploaded to YouTube. Considering how high the interest is, my plan is to re-record this and upload it as a free course to Udemy, but in the mean time, here is a short (21 min) video of my talk. Continue Reading…

The idea of Udemy is great. It’s an online marketplace for instructors to publish and sell their courses. Udemy provides great marketing, and they often have amazing promotional rates. At this point, there are many thousands of classes available for you to take, and often times there are many that cover the same topic.

Udemy’s marketing team helps authors create great graphics, descriptions and intro videos, which makes it even more difficult to tell what’s good. They prominently display how many people have signed up for a class, and you might be tempted to think that more students means the class is good. Well, here are some even better ways to find the good ones. Continue Reading…

Photo Credit: Kris Krug

I have good news and bad news for you. SPDY is out (also known as HTTP/2), and it’s well supported enough that we’re seeing it in more places. SPDY, pronounced Speedy, is a new web protocol to replace HTTP and promises to make web browsing both faster, safer and more secure.

It’s quite common for web developers and server administrators to need details about what is happening when requests to the server are made. When you use plain HTTP (non SSL or TLS), it’s so easy, you can use any common telnet client. It is possible to use some helper tools to get the same effect to test SSL/TLS based websites.

Sadly, telnet won’t work for SPDY because it is no longer a text-based protocol, but there is a great command line tool that is easily installed that will help you get all the details you need about your connection. Continue Reading…


I have a problem. The wifi in my office is weak. It usually works just fine, but my nightly backups are failing because the network connection drops very briefly on occasion. Usually this is imperceptible but if I’m doing a big download or backing up the task usually fails without completing. So I bought the Netgear Powerline 1200 adapter, the one without the passthrough port. It was cheaper and didn’t block the top power outlet so I don’t really care about the passthrough.

My goal was to see how it affected bandwidth with my MacBook Air (2011). To make matters complicated, my Air does not have an ethernet adapter, nor does it have USB 3.0. I only have one Thunderbolt port and it’s hooked up to a DisplayPort monitor. That means I’m stuck with USB 2.0 speeds. Turns out, the USB 2.0 speed is not a problem. Here are the performance results. Continue Reading…


Have you ever looked back and recalled one bad decision, well intentioned at the time, that cascaded down to many bad results over the long run? Microsoft made one bad choice that ruined the web, and we haven’t fully healed yet. Many web developers today don’t remember the early browser wars, in the 2.0 and 3.0 days. It was an epic battle between Microsoft’s Internet Explorer and Netscape’s Navigator browsers, and each was competing to come out with major new features.

There was coming a new generation of browsers, of dynamic HTML, and each of the browsers were inventing new web technologies that were far ahead of any standard bodies. Layers, divs, XML and more were being integrated into the browsers. Netscape launched Navigator 4, beating Microsoft to the market, but when Internet Explorer 4 was launched, the battle was over. It was so much better than Netscape. It was the beginning of their end.

This led Microsoft to make a horrible decision that is still affecting web browsers today. Continue Reading…


Amazon’s Prime service has many benefits. Consumers get fast free shipping from Amazon, which many are willing to pay for in and of itself, and in addition, they get a Netflix like service for streaming tv shows, movie and music. You also get access to a free e-book library and unlimited online backup for your photos. All for $8.25 per month in the US.

Netflix is a comparable video on demand (VoD) offering that delivers a very similar video and TV show streaming service for $8.99 per month. If all you want is streaming video, Amazon has one major benefit that Netflix can’t touch – the ability to buy or rent movies and watch them instantly, if they’re not part of the free package. This means you have about every movie or TV show that is in digital format available to you. Amazon’s total library dwarfs that of Netflix.

So how does Apple come into this? Continue Reading…


Like it or not, if you’re not writing apps with AngularJS, you’re not getting much freelance work. This is sad news for a few reasons, but maybe not the reason you’re thinking.

I like to keep my finger on the pulse of what skills are in demand. I do this because I help coordinate training events and part of that is deciding what topics we’ll present. A few good ways to do that are to keep an eye on the job boards and freelance websites. It’s no surprise that job boards are still overwhelmed with work in the typical enterprise topics. Java, C#, Ops, etc. UX is getting more prominence, which makes me feel good (that’s my main job function these days).

The freelance websites are showing a different trend. There, AngularJS is blowing up. Many of the front-end development jobs specify AngularJS as a requirement. Continue Reading…


Oh, I hate clickbait headlines. But if it works, we should use them to our advantage. My main job function is to make sure the software  my company makes helps users, does what they’re supposed to and are easy to use. I spend a lot of time talking to customers, watching them work and measuring the user experience. That means I also file defects when I find things that could be improved, which is always. (we make great software, but there is always room for improvement)

The most frustrating thing in the world is to file a defect and then have nobody look at it, prioritize it or work on it. I saw a post on Twitter about the most effective clickbait phrases used by BuzzFeed, the king of clickbait. It occurred to me: what if we use this to our advantage when filing defects? Continue Reading…


I read an interesting article on about Why Python is perfect for startups. I’ve done the startup thing a couple times now and I’ve spent a lot of time developing with Python. I just wanted to add a little balance to that article and point out a few things to consider before investing in Python as the foundation for your new business.

Yes, I know, I’m about to unleash a holy war. Putting down someone’s favorite language, tool, whatever, is bound to frustrate people. So let me put this argument to rest before we begin. These are my opinions based on my observations. You are 100% free to have different opinions than I have. And, if you can do so politely, you are absolutely welcome to voice your opinions in the comment section below.

With that out of the way, let’s highlight four big concerns: Continue Reading…


There’s nothing worse than publishing your shiny new feature and finding out that it broke some older code. It’s incredibly easy to forget how some parts of your depends on other parts. It may be that the dependent code is not an often used feature, but when it does get used, it’s important.

One great way to prevent this from happening is to create an automated test suite. Whenever you make changes to your code or get ready to publish it, you can fire off the automation and it will check your entire app to ensure nothing broke. There are several ways to do this, and I suggest incorporating multiple techniques. Continue Reading…