Sunday, June 25, 2006

Getting Specific

This is a lot more exciting when I have goals that are aligned, challenging, and very concrete. Here are my goals for this week:
  1. To sell my first copy of the program
  2. To give it the ability to read note orders from text files and use that ability to renovate the levels offered by the game.
This past week or so I have been trying to make daily progress on the program. And I got the MIDI to work at the push of a button for the JDK. And then I figured out how to get it to work for the JRE (turns out you have to alter the JRE slightly to get it to work there.) And I've learned how to read and write files and created my first little code for musical notes. But in my spare time, that is in my time walking around campus or sitting on the bus I've been reading up on Python. I'm thinking of switching over . . .

Does anyone want the honor of purchasing the very first copy of SongPiper ever sold? The going price is $20. This is the only chance to be the first person ever to buy.

Doug

Sunday, June 18, 2006

Diligence revisited

There are only a few things in life worth being truly diligent about. Creating and selling a computer program, in and of itself, isn't one of them.

Being a good husband, that's one of them. Being a good father and son, that's one of them. Giving time for the things you most care about, that's one of them. So what is my purpose in this particular quest?

I figure that I'll be finishing up here at UNM in something like 3 years. By that time if we are pretty blessed we could have a couple more kids, leaving a family of 8: two parents and 6 kids. Kate will be 9, and the youngest might be a newborn. What would we do after that?

The typical route that a PhD in science points to is first a post doc (or a few post docs!) and then a somewhat permanent position somewhere, possibly in academics, possibly in government. The post doc could be fun. Some of the best places to go in my field are college towns in Australia, Canada, France, and the UK. Maybe I'll do that just for the experience. But the real question comes after that. What do I want to do for the rest of my life.

At that point there is a decision. My education is so specialized that the places in the world where it could be well-used are pretty limited in number. Do I want our family to follow my work around wherever it might take them? That's one question.

Another question is do I want work in the traditional sense. I struggled for about 6 years trying to decide what I wanted to do professionally. Maybe the struggle is over, maybe not. Time will tell. But what I have come to believe more and more is that I want to steer my own course. I want to control the rudder and follow the ideas and dreams that come as they come. I want to have a job not because some employer wants to give it to me but because I created a job. I created something of value and got it out there to people who wanted it enough to pay for it. It's the independence. But not only the independence. It's the potential to create. And not only to create, but to create something that will have a positive impact on this little world.

So after years of not knowing what I want I think that I can now say that I know what I want. Now I have to figure out how to get it in a way that will be consistent with my current roles and responsibilities and loves. That is what this whole thing is about: it is about making the future that I dream of a possibility.

From where I sit it seems like a no-lose proposition. At the worst I will have created a toy business and a product that no one values enough to buy. But I will have learned some valuable skills in the process of failing, and maybe the next attempt wouldn't fail as badly. (Actually my biggest fear is worse than that. It is that I will have missed an opportunity to do something more important, more salient, because I will not be in tune. How to avoid that I am not sure except try to be listening.) At the best when the time comes to graduate I will be in a position to give full time to the endeavor and perhaps in a position to exit or to gradually move things over into an area that will impact something that seems to matter a lot. Like better health care for less cost. Or like keeping this world as beautiful as possible. Or like helping a lot of people to realize their dreams and potentials. (What would be really cool, too, is if we could buy a home near our families with a nice back yard for the kids to play in.)

Anyway, that's a little bit on the why of this all from the big picture perspective. At the same time the project is challenging, interesting, engaging, and generally fun. When short term challenge/enjoyment/fun matches long term dreams and aspirations I think it is time to get excited. And I am.

Goodnight.

Wednesday, June 14, 2006

Introducing Ryan Williams

Ryan just finished his doctorate in music. He specializes in trombone performance and is currently playing for the Air Force. He has been my good friend since I was in 6th grade and has agreed to try his hand as SongPiper evangelist and product development guide.

I am totally excited to have him working alongside me. Like me he has a full load with family, church responsibilities and a full time job. Like me he has committed to keep himself accountable by keeping up a blog documenting his thoughts, efforts, and accomplishments.

First thing is First

So brethren, your foremost priesthood duty is to nurture your marriage—to care for, respect, honor, and love your wife. Be a blessing to her and your children.
Elder Russel M. Nelson, May 2006 Ensign page 37.

Saturday, June 10, 2006

Learning

I keep on reading these essays by Paul Graham. He's beginning to convince me that I should invest is learning some other computer languages. Lisp and Python. One of the things I loved most about physics as I was first learning it was that it gave me new ways to think about the world. Statistics was another subject that did that for me. Learning Java (not that I've learned it, but that I've been in the process of learning it) has done the same thing for me and I think that new modes of thinking that I have been forced to adopt have even been useful in my physics research. Even if I never program seriously in either language, learning them could still be valuable for this reason. But everything takes time. So we'll see.

To a certain extent what you have in this life is what is in your mind. When you lie down at night and close your eyes that's what you have. So if it is filled with interesting things to think about and memories of time with people you love and beautiful places and so on that's worth something. So if learning Lisp will make my mind a more interesting place then I want to do it.

Over the past few days I found out that making the computer sing middle C was much easier than I thought. (Cool! I can make typing result in music!) So that is done. And I quickly found out how to make the notes on the staff dynamic thanks to Sam Baird's help (he actually sent me sample code with a professional looking staff and notes and everything). So the programming goals stated may be turn out to be too easy for this 45 day period. The other half of the goal (meaning sales) I haven't even begun working on.

One thing I am working on is rewriting the pitch detector. (I think it is a little buggy and that I can make it more stable. It seems to make an error about one in every 10 estimates. More if there is a lot of acoustic noise obscuring the signal or if the signal is outside of the sweetspot, and less if you have a loud clear note in the sweet spot.) I've been trying to rewrite it in the image of a good Java program, an exercise which has been a little frustrating. I haven't figured out ways to increase modularity and simplify the thinking behind the code without slowing down the program. But I guess that currently speed isn't the main concern so much as the quality of the result. So it should be worth it to try and simplify the code and sacrifice some speed if it means a code that gives the right answer more often even if it is a bit slower.

Thursday, June 01, 2006

By July 15th

Part of the game that I'm playing is that I want to see how much I can do without spending any money. I hope that when it becomes truly necessary I will know to abandon that mode of operation. Right now I want to acquire an appropriate web domain and create an appropriate website. I want the product to advertise the website and the website to advertize the product. I want to make sure that anyone who has the product will know where to go to get another copy.

Anyway, that means spending money, if not too much. So how can I play the game? It is time for the company to start paying for itself. Another way to say that is it is time for me to do some of the real work. It is time to try and sell.

But it is also time to keep on trying to make sure that there is something worth selling. So I want to keep working on improving SongPiper. (I'm not settled on the name yet. If you have better ideas, let me know!)

That requires two separate goals for this session, one to obtain a certain amount of cash, and one to make some improvements. Here they are:

By July 15th of 2006 I hope to
  1. Sell 5 copies of SongPiper at $20 a copy.
  2. Make 3 substantial improvements in the program:
    1. Improve look of flashcards using Sam Baird's scheme and graphics or something similar
    2. Enable the user to enter in their own note sets
    3. Enable the user to play middle C on demand
I believe that the first goal is not too ambitious but I really don't know yet. I don't know how I shall go about doing the selling. Any ideas? The second goal I think will be challenging but doable given my current time constraints. What I hope is that I will be able to make many more improvements than that.

Is the focus wrong here? Should I be trying for leverage in my sales by selling to groups rather than to people?

Doug

Marketing 100

My ideal marketing scenario looks like this: you make a product and as time goes on you get feedback that you implement and the product gets better and better. Eventually it crosses a threshold such that it becomes contagious. Then it markets itself. At the same time users are forming a community around the product. They are improving it and adding value that you couldn't add alone. It becomes a lasting cultural phenomenon.

So that's the dream. But before it can come to pass I imagine that it will take time to find out who the market actually is. And some time to communicate with them and to sell the product. And time to optimize the product.

The trick is that right now I'm starting from scratch. I haven't sold a thing. So I need some ideas for how to get the ball rolling. Those ideas are to be collected in this post. When I came up with 100 company ideas there came a point when I had to choose one. Marketing ideas may be different. There may be quite a few practices that will bolster each other.

This time I will collect all 100 ideas in a single post by editing it every so often. Here goes:

  1. Try to ride the American Idol wave. For example have them market it! (Brad Bushman, Rick Bradshaw)
  2. Get a lot of free copies out there using the internet. (Cathy Webster)
  3. Get a lot of copies out there by getting them installed initially with new computers. For example if all Dell laptops came with a free copy . . .
  4. Try an internet subscription model. (Spencer Cook)
  5. Sell to Universities. (Heather Cook)
  6. Partner with a company that already distributes in the education or in the music market. Have them do the selling. (Jonathan Jones)
  7. Sell it over Ebay. (Jeff and Katie Giras)
  8. Sell it using Amazon. (Jeremy Wallace)
  9. Advertize using Google.
  10. Make the program and then sell the rights to it. Don't even worry about marketing. (Tom)
One thing I commit to doing: I will try and keep track of the number of copies sold so that I will know when the goal of one million copies sold is reached. I would like also like to keep the running total posted somewhere like McDonalds did for a long time. If you think that is a really bad idea let me know.

Feedback.

So I have now gotten the first copy out to quite a few people and have gotten some great feedback.

This post is to store that feedback. Here goes:
  1. Make the pitch detector less sensitive to background noise. (Brad and Tiffany Bushman)
  2. Make the flashcards look more professional. (Sherise Payne, Sam Baird)
  3. Let the user sing the correct note for longer before going to the next flash card (Tiffany Bushman's family)
  4. Doesn't work right on Macs yet. (Bart Bradshaw, Rick Bradshaw)
  5. Let the GUI show the user the measured amplitude. (Rick Bradshaw)
  6. Play a reference note so that the user can figure out where they are. (Bushmans, Gina, Sam Baird)
  7. Add levels of difficulty so that beginners can have fun too. (Gina, Bushmans)
  8. May not work on PCs if the users don't have an updated JRE. (Ryan Williams, Karen Tate)
  9. Enable the user to enter in a sequence of notes so that they can make their own drills. (Sam Baird, Gina Bradshaw, Bushmans)
  10. Show the number of flash cards so that the user knows how fast she is progressing. (Heather Cook)
  11. Create a drill to help people sing intervals. (Bushmans)
Obviously there is plenty of work to do. I intend to edit this post every so often to add further ideas and feedback.