Nerdy Dork
Dustin Davis reviews… the internet.

I was recently asked to respond to the following questions:

If we were to change our standards of what is taught in our computer literacy classes in high school, what would be 6-10 things that you think should be taught in the class? What should every high school student know about computing, software, applications, etc.?

The following was my response off the top of my head…

Thinking about what I wish my family members knew about computers from least to greatest:

  1. The directory structure. How to get to various paths in a GUI browser and CLI. Differences & similarities of Windows, Linux, & OS X.
  2. Along those lines, when you are prompted to save a file – know where you are saving it and how to find it again.
  3. How to find files on an external hard drive, USB drive, SD card, etc. How to import pictures from a camera. How to sync an mobile device.
  4. The difference between a browser and the Internet and the difference between different browsers.
  5. The difference between a file and an application – how files relate to applications.
  6. How to set up a printer and scanner and install the necessary drivers.
  7. How to install applications on each operating system listed above.
  8. The difference between a text file and a binary or application file. How a text file can be read as an application file (CSV opens in Excel for example).
  9. HTML & CSS
  10. Basic programming in Javascript & some other scripting language (Python, Ruby, PHP)

What do you think? What would you add/remove/change from my list above?

Part of the reason I don’t blog as much as I used to is not that I don’t have much to say, but rather it hurts too bad to say (type) it. I’ve been suffering with RSI or Carpal Tunnel off & on for over 10 years. I’ve visited doctors, bought all kinds of ergonomic helpers (keyboards, trackpads, doctor stools, GeekDesks, wrist braces, pads, etc.) The effectiveness of each has been debatable. At first I think it helps, then its effectiveness wears off as time goes on.

It used to be that when it would flare up I’d start taking 800mg of Ibuprofen 2-3 times per day so I could continue working. A couple of months ago my whole body started swelling up as I think the Ibuprofen combined with my Gleevec (chemo pills) were taking their toll on my kidneys. I stopped taking Ibuprofen figuring that dealing with the pain & swelling in my wrists was better than knocking out my kidneys.

Two weeks ago I went to the doctors office on a Saturday afternoon. I was wearing wrist braces on both hands because they had become so sore and swollen I could barely do anything without pain. I was icing my writsts every night before bed. But this isn’t what I was there for. I had been sick and my asthma was acting up. After doing a albuterol nebulizer treatment and chest x-rays, I left the doctors office and picked up prescriptions for antibiotics (pnuemonia), albuterol (asthma), and prednisone (steroid for asthma). I started taking 40 mg of prednisone each day for a week.

I was surprised that as I started taking prednisone, the swelling and pain went away in my wrists. I asked my brother who is a doctor if prednisone helps RSI. He said it certainly would, but it’s a short term solution and you definitely don’t want to keep taking it.

After my week of prednisone the pain and swelling immediately came back in my wrists. I can’t tell you how frustrating that was. On Monday when I went in to work, I was determined to schedule an appointment with someone – anyone who could possibly help me. I was past traditional medicine. I was now going looking for alternative treatment – something I have never done before. I was looking at chiropractors, massage therapists, acupuncturists, etc. I spend the whole morning browsing around trying to decide which one to try first.

In the progress of researching I came across this post by Aaron Iba title How I Cured my RSI Pain. His whole story resonated with me. But when I got to the part where he started describing how he finally cured his RSI I was quite confused and a little skeptical. His cure – he read a book! What, that’s crazy and impossible right?

Well, you get to a point where you decide anything is possible. I turned my attention to Dr. John E. Sarno to learn more about this. I was surprised that there were so many people singing his praises. There must be something to this.

I watched two vidoes on YouTube (inserted below) and decided I was jumping in with both with feet. I bought the the book Aaron mentioned in his blog, The Mindbody Prescription – well, I actually bought the audio book with my Audible account.

I’ve listened to the audio book and this morning I bought another one of his books – Healing Back Pain, which I just started listening to this morning. Those who follow my blog know about my herniated disc experience that I blogged about. To digress slightly I want to say that my back has been feeling great. I did physical therapy and after about 3 months the numbness in my leg and foot went away and I haven’t really had any pain since then. When it happened I really worried I would never be normal again, especially since the specialists all told me they would be surprised if I didn’t need surgery. Well, I didn’t need surgery. It turns out herniated discs can heal. I even played in a softball tournament this summer and it didn’t bother me at all.

It is now Friday, just four days since reading Aaron’s blog post. I have removed all my ergonomic crutches. I have been typing away like crazy and ignoring the pain – which was really hard at first. The first two days I still had to wear a wrist brace on my right hand so I could work faster and ignore the pain better. I have since put my braces and everything else in a drawer – out of sight. The swelling has gone down, my range of motion has increased and the pain is about 60% gone from where it was. Considering where it was, that is HUGE for me!

So I’m writing this post for a few reasons:

  1. Because I can! It doesn’t hurt to do so.
  2. To document a starting point. It has only been four days, but I totally anticipate being 100% pain free at some point in the future. I don’t want to put a time limit on it.
  3. To share with others who might be going through RSI or carpal tunnel issues.

The confusing point is with this “cure” there is no real defined solution. I’m sure this post is confusing to someone looking for the cure. Basically it is the knowledge that your brain is triggering this problem and you need to convince your subconscious that you’re not going to let this happen anymore. It is the knowledge that becomes the power of the cure. I know it totally sounds crazy, but it’s crazy to me that I sweat and blush when I get nervous in front a crowd. Yes, my brain can control my body and I’m telling my subconscious brain to chillax on my wrists already.

It is working.

** UPDATE 2013-01-11 **

It’s been over 3 months and so I thought I should post an update. It took a couple of weeks, but since then I have been pain free. There have been some minor pain in my wrists at full extension on occasion, but they generally go away. An odd phenomenon did occur. After my wrist pain went away, my lower back starting hurting. In Mindbody Prescription, Dr. Sarno warns you that the pain will likely move to a new location as your brain realizes its pain defense mechanism isn’t going to work on this particular body part anymore. I just applied the same principles – generally laying down and meditating on what could be bothering me emotionally and telling my brain to send oxygenated blood to the sore part of my body. After the pain left my lower back my wrists started to act up but the pain went away quickly, then it moved to my upper back and made things difficult for about a week and a half. Same principles applied.

I told my boss about this book. She read it and applied it to her migraines she would experience about 2-3 times per week. At our next 1 on 1 she said she was 30 days without a migraine! She also gave me some tips that she had learned in the past from a therapist. We discussed some emotional triggers from my teenage years. After that meeting my upper back pain went away and I haven’t had any issues since.

Now I try to share this information with everyone I can. I get some strange looks sometimes, but I’m just trying to help.  I think the people who are willing to try it first are those who have tried everything else and are desperate for some pain relief.

Back when I was working as a Quality Analyst my real desire was to code. I wanted to be a programmer. Instead of finding a new job, I found small jobs through a site called GetAFreelancer, now known as Freelancer.com. It was a great way test my skills, learn new things, get experience, build a portfolio and make a little money along the way.

A couple of gigs that I did on GetAFreelancer led to long term projects. One of the most successful was LeaseHunter.com which I wrote, the owner sold, and the new owner continue to employ my services until I became too busy and I eventually moved on.

As my experience grew I no longer needed to look for jobs on freelance boards because 1) they didn’t pay very much and 2) I was too busy to even take on more tasks.

I have often heard that you shouldn’t trade time for money – which essentially is what I was doing, at is what everyone with a hourly or salary job does. It sounds nice and many people manage to create income where they are no longer trading time for money. But, I have always felt there is absolutely no shame in working for money, and for me it can be and often is very enjoyable.

But, still wouldn’t it be nice to get to a place where you are the boss, you are the owner, you own the product and you hire people to maintain it for you? Most would say yes.

I first heard about John Jonas during a “death of adsense” campaign where he was interviewed on a phone call about how it had become increasingly difficult to earn money with Google Adsense. I really liked what John Jonas was saying. He gave out so much information for free and gained my trust quickly. I started following his blog. At some point in time he mentioned the 4 Hour Workweek. I bought a copy and started reading it. I told a friend in the office about it as well. I only got about halfway through it, as I do with most projects, while my friend went on to live the 4 hour work week. I think he’s currently in Bali and is featured in $100 Startup book. He’s not the only friend I’ve seen grow rich through focus and efforts.

So what is wrong with me? Why can’t I follow in the footsteps of my friends and build businesses that allow me to work 4 hours per week?

As many times as I asked myself this, I knew the answer. I wasn’t willing to do the things my friends where doing. I have put in lots of extra hours, but I don’t do the uncomfortable things, like creating video tutorials, doing webinars, creating newletters and autoresponders. I still don’t. I’m leaving money on the table and I’m completely aware of it.

I recently saw a tweet, I don’t even remember who from, but it said something to the effect of, “If you just want to program all day, you want a programming job, not a business.” Hmmm… Yeah, sometimes that is me. I’m interested in the other stuff, but I always fall back to the introverted exercise of programming.

Another thing my successful friends do is outsource. I’ve tried this a few times. I’ve hired freelancers and employees to help me with projects. Sometimes it is successfully, other times I lose my butt!

A few months ago I decided to try the outsourcing thing again. As I’m getting older and as my family is getting older I’m finding its harder to get up at 4 AM, program for a few hours then go to work for another 8 hours. The overwork and lack of sleep causes my RSI to flare up so bad that I can’t use my hands. It doesn’t help that my Dad’s side of the family all suffer from arthritis and my mom’s side from trigger finger.

What I need to do is replace myself. Often I have hired people to fill gaps. I tried to find people do to article marketing, support, iPhone development, graphic design, etc. Why would I hire a programmer when that is what I enjoy the most and that is what I do the best?

Well, after listening to all of John Jonas’ replace myself weminars over again I realized that is what I had to do. That is where I needed to start. I signed up for ReplaceMyself.com to get all the training to do it right this time and to get a free membership to OnlineJobs.ph.

I hired my first programmer around April 18th – about 4 months ago. I sent out a lot of emails through OnlineJobs.ph. I ended up hiring Jaymar who was just out of college and really the only person who had any familiarity with python & Django which is my programming language of choice. He didn’t have a lot of experience, but certainly enough to get started. I chose Jaymar over other candidates mostly because of his enthusiasm and friendliness.

I actually hired a virtual assistant at the same time. That only lasted two weeks before she sent a resignation letter. I decided to hire another programmer. I asked Jaymar if he knew anyone looking for a job and he recommend a Catherine – a girl he went to college with. Catherine was very good with PHP but had no experience with python & Django. Catherine started by helping me with PHP, but has quickly learned python and Django and does an excellent job. She even able to quickly migrate from Windows to Linux to make life easier programming in python. It has been helpful having both programmers live in the same city as they often get together to collaborate on projects.

I follow John’s advice of having them send me an email everyday answering 3 questions: 1. What did you work on today? 2. What problems did you encounter? 3. How can I help you?

Because of a full time job, family with 4 small kids, church callings, etc., I don’t always get to work on my business as much as I would like, or as much as I should. I have found that having these two programmers forces me to focus on my business daily. Here are some points that I have found beneficial the past few months:

  • Getting a daily email reminds me of my business daily. These emails are generally in my inbox first thing in the morning.
  • I can more easily help them help me. I often review their code and offer suggested improvements. They learn faster this way and we stay on the same page. It was harder to do with article marketing (as I didn’t have much interest) or with iPhone development (because I didn’t have experience to know if their code was good or not).
  • They work while I sleep. I encourage them to work the hours that are best for them. If I have an idea or have something come up at night, I can send them an email and it will be done in the morning. This is great!
  • I get a different perspective. Sometimes they will go above and beyond on something I asked for because they thought it would be better. Often it is. This often happens when I work on things. You have ideas as you code. I have found that with freelancers you pretty much get what you ask for, no more, no less. With employees, they have a vested interest in your success.
  • Jaymar & Catherine are active on Facebook and help promote my business just because they want to. Again, I think they have a vested interest in the success of OUR company and are proud to share it with their friends.
  • I sort of mentioned earlier that I have a bad habit of starting a lot of projects and never finishing them. In the past, I don’t think I valued MY time enough. Yes, I have charged clients up to $75 per hour to work on their sites, but I often didn’t think twice about coding out some new idea before I even tested the market. I thought if I hired programmers I could have them create all these crazy ideas in my head. I’m finding that I am more protective of their time. I know I have to pay them month in and month out, so I need to ensure that I have the income to provide their salary. So I ensure that I have them working on projects that I believe will make the most income. This has in a way reigned in my entrepreneurial ADD.
  • One of my dreams has been to own a business and provide employment for others. Sometimes I wonder if that will ever happen, but right now, I am providing employment for other people. I hope they enjoy working for me as much as I enjoy employing them, and I hope I provide raises as we increase our business revenue so they can make a very good living.

So, in summary, if you haven’t tried hiring an employee, I highly recommend checking out John Jonas’ Replace Myself system to learn how to do it the right way and hit the ground running. Replace yourself so you can do those uncomfortable things that make the real difference between success & failure in business.

After reading Phil Windley’s post yesterday about his short & simple URL shortener, I thought it would be fun to write my own. You can see from my comments on his post that I prefer a URL shortener to use a server side redirect approach. I had a few features and goals in mind:

  1. It had to be simple. I wanted a self-contained script and I didn’t want to spend a lot of time on it.
  2. I wanted it to work on any cheap hosting provider with no extra setup required.
  3. Back-up abilities – in case I ever wanted to switch services.
  4. Shorter short link. I wanted 3 or 4 characters for the short link. I doubt I’ll ever have enough links to need 6 characters. The shorter the better.
  5. I really wanted it to integrate with my favorite twitter client – currently Tweetbot.

Although Python has become my language of choice lately, I decided to write this in PHP because I think nothing scales down better than PHP and pretty much every cheap hosting provider supports PHP. It alos allows me to write this in one self contained script. It does require you to use mod_rewrite in an .htacess file, but it is just two lines and also supported by most hosting providers. It only took me about an hour to write and test this script.

All the data is stored in a SQLite file, so it makes backups very easy – you just back up one file. I LOVE SQLite!

I used a very simple algorithm to generate the short link codes using the str_shuffle function.

I found that tweetbot allows you to use your own custom URL shortener. You just specify a URL for an API end point and your script has four options for returning the shortened URL. I went with the first option which was the simplest.

Obviously, it’s not perfect. I didn’t really account for security so I will likely add security features before I use it in production.

If you want to see or download the source you can get it here on Bitbucket.

This is just a quick post to give a tip on how to recover or reset your Django admin username and/or password.

Use your django shell to query the User model.

$ python manage.py shell

>>> from django.contrib.auth.models import User

If you can’t remember your username, you can view all users in the system.

>>> for u in User.objects.all():
>>>     print u.username
>>>

Once you know your username, you can simply reset the password:

>>> u = User.objects.get(username='dustin')
>>> u.set_password('secret')
>>> u.save()

I thought I’d share the story of how I herniated a disc in my back to hopefully education some programmers out there on why it is important to get up, stretch, work out, drink water, and all that healthy jazz you hear people talk about. Getting in the zone is great, but as you get older, it’s not a good idea to get in the zone for more than an hour at a time.

I’ll admit, the older I get, the less active I get. In high school I played sports non-stop, moving from football, to basketball to baseball with the passing seasons. My motto in life was “I don’t believe in exercise unless it is in the form of a sport.”

That hasn’t worked out for me so well the older I have gotten. I always figured I would go on to play college sports, but I broke my arm pitching in the state tournament my senior year, then recovered and served a two year mission and put on about 40 lbs. while there. When I got home, my priorities changed and I was more concerned about earning money than playing sports.

Since then I like to get in on all kinds of pick-up games such as basketball, ultimate frisbee, volleyball, softball and even some raquetball on occasion. That was about the extent of my exercise – basically whenever I could find a sport to play.

On New Year’s Eve, our church ward/neighborhood has a tradition of playing basketball. My lower back had been sore for a couple of days, but I generally tolerate pain pretty well and thought I could play anyway. I figured I could use the exercise since it had been a few months since I had played ultimate frisbee due to cold weather. To be honest, it hurt worse that I admitted to anyone. I could barely put on my shoes without wincing in pain.

This should have been a major red flag! I wish I would have taken the time to learn WHY my back was so sore. But, hindsight is 20/20.

So I started playing with a sore back. I didn’t play too hard because of it. But after a couple of short games, my left leg was hurting clear down to my foot and it was starting to go numb. Still, I didn’t do much about it. We had plans for the day. We went to lunch at Chili’s and by that time I couldn’t sit without being in major pain. I kept having to stad up and walk around. I’m sure I looked odd standing while my family was sitting and eating.

We then did some shopping when I finally admitted to my wife that I couldn’t take the pain any longer and I need to go home & lie down.

I pretty much stayed on my back lying on the floor the remainder of the day and that night. I took 800 mg of Ibuprofen, but I didn’t notice any difference. I probably would have gone to the doctor that day, but I the next day my health insurance was going to change and I didn’t want to deal with the confusion. By 4:00 AM the next morning, I woke up Rachel and asked her to take me to the ER. I didn’t know if I could even stand or walk to ge to the car. I didn’t know how I would survive the drive to the ER.

The pain was excruciating. My legs were shaking uncontrollably and my teeth were chattering from the pain. Fortunately, once I got in the car, I found a position that was comfortable enough for the ride.

At the ER, they gave me a shot of painkiller and a prescription for some stronger pain killers. Then they gave a prescription to have an MRI done.

My first attempt at an MRI was a miserable failure. My pain pills had worn off completely and I wasn’t given Valium or anything. I lasted about 3 or 4 minutes in the MRI machine before I was screaming in pain for them to get me out. They said there was nothing they could do for me so they just sent me on my way. By this time I was very frustrated – mainly with myself for not being able to take the pain and being so stupid to play basketball with a sore back.

A couple of days later I had another MRI scheduled at a different facility. They gave me Valium to help calm me down. Again I didn’t last more that a few minutes in the MRI. I took a break and took the prescribed painkillers and waited for them to kick in to try again. They also tried putting my on my side, which was awkward for the MRI machine. That didn’t help either. Same result. Then they gave me an epidural with some pain killer and cortisone. Again I waited a bit for it to kick in and went in for my 4th MRI attempt. I don’t know how long I made it – probably 5 to 7 minutes. When they pulled me out they said it would just have to be good enough.

Once the cortisone kicked in, it helped out a great deal. But, I was told that it would likely be temporary relief, then I may be back in the same pain. So the next day I set up an appointment with my primary care physician to have him look at the MRI results and make plans going forward. I couldn’t get in to my doctor as soon as I wanted so I scheduled an appointment with different doctor in that office that I guess had just barely joined that practice.

It turns out that my new doctor had a herniated disc. I came in and never sat. He preferred to stand. He tole me about his experiences and how he had opted out of surgery. He had to manage his condition, but he was able to run and hand been on a mile mile run up the canyon that morning. I think after that appointment was the first time I started seeing hope. I asked for a referral to a Neural Surgeon just in case though so I could get a relationship established just in case I did decide to have surgery.

In the meantime I started doing a lot of research on the internet on things I could do to improve my condition. I bought this eBook that was VERY helpful in helping me understand what had happened, why, and what I could do to improve and live with it, without surgery. It was almost like reading a slideshow with a helpful picture on every page. It took me about an hour to read the whole thing and I understood what was going on.

At my appointment with the neurosurgeon, I was prescribed physical therapy, told to try to walk 3 miles per day and if things didn’t improve I would likely need a discectomy. He explained that my disc blew out so bad that I had cartilage from the disk sitting on my nerve, which explained the constant numbness in my foot.

I snapped some photos with my iPhone of the MRI results showing the herniation:

  

So I’ve been doing physical therapy three times per week and walking about 1.5 miles per day. I think things are improving and I’m hopeful that they will continue to improve and I can gett the feeling back in my foot.

So again, to recap… If you sit at a desk all day, get up and stretch at least once an hour. Drink lots of water (this will help you get up and stretch as you are constantly running to the bathroom). If you’re having lower back pain, DON’T PLAY BASKETBALL!  Instead, do stretches by laying on your stomach and pressing your upper body up to arch your back more and use ice for relief. Sit up straight in your chair. Raise your monitor, work on good posture. If you really are having back pain, I recommend reading The Herniated Disc Survival Guide which show great stretches you can do and principle of good posture and lifting to improve your back.

Also, I’ve ordered a GeekDesk for home and my work also bought one for me so I can sit or stand as I please. It’s hard to stand and work ALL day.

First of all, I’ll skip the discussion on what ZNC and IRC are, as you likely know if you are reading this post. I use IRC with my development team at work. It’s helpful to stay logged in 24/7 to keep up on pertinent discussions. I could stay logged in 24/7 with any IRC client at work, but some days (and perhaps some evenings) I may be working and chatting from home. To solve this problem I was using tmux and irssi running on my work computer. If I ever needed to log in from home, I would just ssh into my work computer and connect to tmux.

Since switching jobs, I got a laptop. Obviously it is not connect 24/7. So I switched to using my home computer. In this process of changing, I decided to try out ZNC. The main benefit to ZNC over irssi to me is that I can use other IRC clients that have more features. So I’m going to explain how I set up ZNC and Limechat (OS X).

I was running ZNC on my home computer – currently a Mac Pro. But I find either my 1 yr old or 4 yr old keeps getting into my office and turning off my computer. So, just to try it out, I set up a Linode running Ubuntu. Here are the step by step instructions that took me all of 10 minutes to get set up.

If you don’t have a Linode account, create one. Please feel free to use my affiliate link.

  1. Add a Linode. I selected the cheapest one, which is a Linode 512 for $19.95 per month. (I understand that paying $20 is likely a waste of money just for an IRC bouncer, but I’ll talk about this later…)
  2. Create an instance of Ubuntu on your Linode. I used Ubuntu 11.10. Make note of your new IP address for your server. You may want to create an entry in your hosts file so you can reference it by name instead of remembering the IP address.
  3. Boot your Linode
  4. ssh into your Linode
  5. Create a new user:
    • adduser <username>
  6. Create an admin group
    • addgroup admin
  7. Add yourself to the admin group (so you can use sudo)
    • adduser <username> admin
  8. Log in to your user account
    • su <username>
  9. Install ZNC
    • sudo apt-get install znc
  10. Make a ZNC config file
    • znc –makeconf
    • Here are the options I selected:
      • listen on port 6667
      • SSL? no
      • ipv6? no
      • Listen host – left blank for all
      • No global modules
      • Username and password – I used the same as my IRC nick & password so it is easy to remember
      • Blind host – left blank
      • Number of lines to buffer per channel – 5000 (why not?)
      • Keep buffers after replay? no
      • Default channel modes – went with default [+stn]
      • yes on on modules
      • IRC server: irc.freenode.net, port 6667, no password
      • I added one IRC channel (#utahdjango), I’ll join the others later
      • I added my IRC user and password.
      • Then I started IRC at the end of the script. (If you don’t, just type ‘znc’ to start the znc server)
  11. Connect to your new server. I used Limechat with the following settings:
    • Network name: Linode ZNC
    • Server: Name I mapped to my linode IP address in my hosts file. You could just enter your IP address.
    • Port: 6667
    • Server Password: passoword I entered on my IRC makeconf script
    • Nickname: irc nick
    • Login name: irc nick (remember I used the same nick & password for znc that I use for freenode)
    • Real Name: Dustin Davis ;)
    • Nickserv Passoword: same as above

That was it! I was connected and up and running just like that. Now, I’m by far NOT an expert on this stuff, but if you have any questions on what I did, leave a comment below.

As I mentioned, paying $20 per month for an IRC bouncer doesn’t seem like a great idea. So here are some things to consider…

  • Use your home computer. If you keep your computer on 24/7 and basically have a static IP this shouldn’t be a problem. If you have a router, you will have to set up port forwarding as well.
  • If you don’t want to leave your main computer or, or use you main computer in this manner, consider buying another computer. I have a friend that uses a plug computer for this purpose. This is actually very tempting for me. Paying for a linode for 5 months is about the same as buying a $99 plug computer. You would then have a small server running 24/7 on minimal power and it could also be used for a media server by plugging in an external hard drive among other uses. Another options is Tonido Plug, but these always seem to sell out so fast.
  • User your work computer. This may not be easy. At my old job I was given a static IP and subdomain to connect to my computer.
  • If you are paying for hosting elsewhere, consider moving your hosting to your new Linode server. This would save you money from hosting elsewhere, but you should be comfortable managing your own hosting server.

*** UPDATE ***

I purchased a GuruPlug and got it set up. I’m now running ZNC from it. The set up was pretty much the same, so I won’t bother documenting it. No more monthly fees and its only consuming 2 watts of power from home!

*** UPDATE 2 ***

My GuruPlug got fried in a lightening storm :( . I replaced it with a Mac Mini. Setting up ZNC on a mac is essentially the same except that I install ZNC with Homebrew. Just replace step 9.1 with “brew install znc”

Also after owning a mac mini for about a month, I swapped out the hard drive with an SSD so I had to reinstall. For some reason I couldn’t get it to work. I kept getting the error: “Cannot connect to IRC (No route to host). Retrying…”. I found a tip that suggesting using the IP address instead of the server name and that resolved the issue.

I recently ran a logo design contest on 99 Designs. It was my second contest overall. The first one I did about 2 1/2 years ago was such a success, that it seemed a no-brainer. This recent contest turned out to be a flop, despite paying twice as much this go around.

I love the idea of 99 Designs, but I think the execution could be improved. I was thinking about it this morning as I drove in to work and had some thoughts that I think would improve the service overall.

While 99 Designs is great for the person looking for a design, if I were a designer, I really doubt I would submit anything on 99 Designs. It would be far too much work with very little chance of receiving any compensation. I would perhaps use it as a stepping stone to build a portfolio, but beyond that, I’m sure I could find far easier & betters ways to get paid.

So the first thing I would do is find a way to reward more designers. Here are my initial thoughts just for a logo competition:

  • Charge $499 for every logo competition.
  • Allow designers to submit up to 3 designs. It seems on my last competition I had about 60 designs submitted. It seemed half of them came from one designer, and the majority came from 3 designers. Limiting a designer to 3 designs would force them to choose their best work. They could always remove a design and replace it with another.
  • To play off the name of the site, I would limit the contest to only 99 designs. So in theory if each designer submitted 3 drafts you could only have 33 designers. But not every designer will submit 3 drafts so there could certainly be more.
  • For every submission the designer will get paid $1 at the end of the competition. There would be checks in place so that the contest owner could mark a design as garbage and X number of other designers could concur to boot the awfully bad design. That designer simply wouldn’t get paid. So out of the gate, $99 of the $400 would be allocated to paying out submissions.
  • Each designer that submits work would be allowed to rate other designs, but not their own. As a project owner I would be curious to get such immediate feedback. At the end of the competition, the design with the highest average peer rating would get $25 (consider this the Miss Congeniality award). That leaves $375 in the pool
  • At the end of the submission deadline, the project owner could have some choices: 1) refund of $370. They are out $129 for running the competition ($5 service fee would go to 99 Designs to cover any credit card transaction fees and just a small charge for using the service. 2) Create a poll. They would select their top 6 designs to create a poll. Anyone selected for the poll would get a $10 bonus. That would leave s the pool with a minimum of $315. 3) Choose an outright winner. At this point 99 Designs takes their usual cut and the winner gets the rest.
  • If the project owner chose to do a poll and submit to friends & colleagues on twitter, the highest rated logo would receive an additional $25 leaving the pool at $290. At this point the project owner would select a winner. 99 Designs would take their cut and the winner would get the remainder.

I don’t know if this would fix much, but I have a feeling it would attract more designers and more designs per competition. The numbers are just straight off the top of my head. Some testing could be done to find the sweet spots.

What do you think? What would you change if anything?

Commuting is a drag. There was a point in time that I had a 5 minute commute to work, then I decided to move and my company said I could just work from home. When it came time to switch jobs my walk down the stairs turned into a 45 minute (one-way) commute – and that was on a good day. So for the past two years I’ve found myself in the car for a minimum if an hour and a half each day. It seems insane at first thought, but I am a bit surprised how I have gotten used to it.

How do I pass the time? There are two main things I do that keep me sane: 1) Eat Sunflower seeds – this is mainly to keep me awake. I find I don’t get drowsy if I am constantly eating something and Spitz BBQ sunflower seeds are my addiction. 2) Listen to audio books.

Why audio books? A few reasons. First, I’m not much of a music person. I never have been. I will listen to music on occasion, but it gets old fast to me. I know, I’m strange in this regard. Second, I like learning new things. I don’t really get that from music. Third, there are lots of books I would like to read, but I just don’t have the time. My average weekday looks something like this:

4:00 AM – 6:30 AM: Freelance or independent work
6:30 AM – 7:15 AM: Shower & get dressed
7:15 AM – 8:00 AM: Commute to work
8:00 AM – 5:00 PM: Work my butt off!
5:00 PM – 5:45 PM: Commute home
5:45 PM – 8:00 PM: Family time (dinner, play with kids, etc)
8:00 PM – 10:00 PM: Time with my wife (watch TV, talk, eat ice-cream)
10:00 PM – 10:30 PM: Ready for bed, read, pray

So that is an average day, I wouldn’t say I stick to this schedule religiously, but it is somewhat predictable if nothing is on the schedule. So you can see I don’t really take the time to read. Dave Ramsey often says that the average millionaire reads one non-fiction book per month. So the best way for me to get in all the books I would like to read, is by listening to audio books.

Here are some of my favorite sources for audio books:

  1. Audible.com: this like the Amazon of audio books. (In fact, they are now owned by Amazon). I have a monthly subscription that I pay $14.95 per month for. This gives me 1 credit per month. Each audio book is 1 credit. Also, as a subscription member, you get discounted pricing on all books. If a discounted price of a book is less than $14.95 I will likely purchase it without using a credit and save my credits for more expensive books. I’ve learned that credits will expire if you don’t use them, so this encourages me to continue to find new interesting books to read. I do find that my favorite are self-help type books like Zig Ziglar stuff. It energizes me. I look at the membership price as an investment in me.
  2. BooksShouldBeFree.com: This is a very easy to navigate site with all kinds of audio books created from public domain sources. Check out the top 100 to see some of the great classics available. Sometime is is nice to step away from non-fiction books and just be entertained.
  3. LibriVox.org: This may be a duplicate listing because it seems to me that all the listings in BooksShouldBeFree.com are essentially taken from LibriVox. It appears LibriVox is build on top of WordPress, so I mention them mainly because they are the source we can all thank for these free audio books, but their user interface will not be as nice as the custom interface of BooksShouldBeFree.com.
  4. iTunes: While this integrates well with my iPhone, there are a few reasons I don’t use iTunes much. I have purchased AudioBooks on iTunes in the past and after switching computers and iPhones, I don’t have those books available and I can’t find them in my account history. I’m sure this has improved since the invention of iCloud. Second, they tend to be more expensive. Generally a book selling for $29.95 on iTunes I’ll just find on Audible.com and use 1 ($14.95) credit.
  5. Podcasts: So I know they are not audio books per say, but if you run out of books you want to listen to, check out some podcasts that are in your interest area. The best place to find these are on iTunes, and most of them are free.
So how do I play these audiobooks? I have an iPhone. I found it works great with Audio books. If I have audiobooks in MP3, I can tell iTunes to treat it as an audiobook. This gives me the ability to have all the audiobook features such as 30 second rewind, remembering position, skip when shuffling, playing at half the speed or playing at two times the speed.
I currently use an FM transmitter because I still have the factory stereo in my 2000 Maxima. But I have found that I can’t seem to find a station that is totally clear and I’ve tried a few FM transmitters. Soon I will be installing a new stereo that integrates better with iPhone. I went in to Best Buy last week and found a good stereo can be purchased for $100 and their geek squad will install it for $50 plus parts needed for integration. I believe they said parts for my car will run around $100. It is a bit more expensive because I have the Bose stereo system. So I’m looking at around $250 to get a new stereo installed. I’d say it is a good investment since I’ll be using it 7.5+ hours per week.

Even though I’ve heard how wonderful virtualenv & pip are for managing Django development environments, I didn’t think I needed to bother learning it. But one bored day I did. I’m so glad I did. Truth is, it is just as simple and awesome as everyone says it is. And it’s been so helpful with all the computer and OS switching I’ve done lately.

Here is a brief tutorial on how I use virtualenv, pip, git, & PyCharm to manage & develop Inzolo.com. I won’t cover installing any of these. See basic instructions for installing virtualenv & pip.

To create a virtualenv that does not use any global site-packages:

$ virtualenv --no-site-packages env_inzolo

Then activate your virtualenv:

$ source env_inzolo/bin/activate

To get out of your virtualenv:

(env_inzolo)$ deactivate

Tip: many tutorials I have seen would name their environment inzolo_env, but I put env_* first for consistency in tab autocompletion convenience. I was using just env, but the virtualenv you are using will show up on your command line and it is helpful to see which one you have activated if you have multiple projects.

When you first create your virtualenv, you will need to activate it and install all the requirements in that virtualenv for your project:

(env_inzolo)$ pip install django
(env_inzolo)$ pip install south
etc. 

Once you have all your packages installed, create a requirements file:

(env_inzolo)$ pip freeze > requirements.txt

Now, if you’re using git, add env_inzolo to your .gitignore file and add requirements.txt to your repository.

That’s it for the set up. Next time your need to recreate your development environment, it will be simple. Just clone your repository and run these commands:

$ virtualenv --no-site-packages env_inzolo
$ source env_inzolo/bin/activate
(env_inzolo)$ pip install -r requirements.txt

That’s it!

If you use PyCharm you’ll want to set up your virtualenv there for your project.

Edit your project settings. Select Python Interpreter -> Add -> Specify Other…

Add python from your virtual_env (env_inzolo/bin/python)

Click Apply to save.

Then click on Django Support and make sure your Django project root, settings file, manage script & template directories are all in order. then you will experience the full goodness of PyCharm!

Clicky