Magic Cookies!

June 8th, 2009

Courtney, the woman that agreed to marry me, read my Not Going to WWDC Survival Guide and took action. Delicious action!

The cookies pictured here magically appeared in my office today, and they’re as good as they look. She rocks.

WWDC09 Discount, rooSwitch for $10.00

June 8th, 2009

In years past I’ve discounted rooSwitch during WWDC. Although I’m not attending this year I decided that shouldn’t matter. So here you go, rooSwitch for $10, this week only. Buy now.

The coupon code is WWDC09, but clicking that link should pre-fill that in for you.

Enjoy!

Not Going to WWDC Survival Guide

June 6th, 2009

I’ve attended the last 3 WWDC’s but I won’t be present this year. Here’s my plan to get through the week:

  • Sleep in on Monday Even with Steve Jobs not running the show, I’m guessing people will be queueing up for the keynote surprisingly early. Sleep in. Take the morning off. Watch the keynote later when it’s available off apple.com.
  • Turn off twitter If you’re a Mac or iPhone dev, you’re probably following a handful of people that will be at WWDC. Don’t bother loading twitter, it’s just going to be full of your attending friends telling people what session they’re in, what they’re wearing and about what party they’re going to. It will just increase your jealousy.
  • Enjoy your comfy chair The chairs at Moscone West are awful. Wallow in your comfy chair and appreciate it. Side note: before attending my first WWDC (or any conference) I assumed each room had movie theatre style stadium seating. Not sure where I got that picture, but I was sorely disappointed.
  • Bake your own cookies I’m a sucker for treats, especially the kind that magically show up in the afternoon. The magic treats are probably one of my favorite parts of WWDC (yes, I know that’s sad). Bake your own cookies or brownies one morning. Try really hard to forget they exist and ask someone in your house to put a plate out randomly one day. Cookies! [1] Bonus points if you can convince someone else to do the baking.
  • Just walk right in and use your bathroom Taking a bio-break at WWDC is tricky. Between sessions there’s always a line for the men’s room. Enjoy the fact that you can just waltz right into your bathroom and use it without waiting (and hopefully minus the sticky floors too).
  • Throw your own party The nights at WWDC are packed with social events. Take your significant other (or whoever) out to a fancy dinner or just get out and do something. You likely won’t meet any new people, especially Mac/iPhone devs, but it’s very likely you’re like me and don’t get out often enough.
  • Get stuff done WWDC is a lot of fun and you certainly can get a lot out of it, but you really have to consider it a vacation. As much as I tried each year, I got nothing done [2]. So stop crying about not being able to be there this year and go check things off your todo list!
  • Call ADC Finally, if you’re really bummed out about not being there, use a tech support incident. Call ‘em up and just chat about something (just make up an issue). Talking to someone at Apple could help you feel like you’re there. Of course, I’m not really sure anyone’s manning the phones during WWDC since they’re all at the Moscone center having a blast! :) [3]

[1] - A lot of the WWDC survival guides actually suggest avoiding the junk food and some suggest avoiding the Moscone food altogether. If you’re stronger willed than I, do that. My first year at WWDC I went nuts on the free Odwalla drinks and had a tummy ache for a couple days. Pace yourself.

[2] - Of course if you show up well prepared with questions and bugs to sit down with an Apple employee you could save yourself a lot of time in that one week.

[3] Don’t do this.

roobasoft v2.0: Month 1 review

June 4th, 2009

May was month #1, so what has happened?

Things learned:

  • Multi-tasking is evil. There’s plenty of people talking about the evils of distractions and multi-tasking. It wasn’t until this month that I made a real effort to actually turn mail, IM and other notifying distractions off for extended periouds of time. I also stopped bouncing between projects within a given day. I’m now much more conscious about what I want to accomplish for the day, and what project(s) it involves. If more than one project has to be dealt with I make sure to start on the most important and finish it before moving to the next. In the past I’ve bounced from project to project and let “emergencies” take over. Now I’m just finding an appropriate home for the “emergencies” (later) and really giving my current task all my attention.
  • Routines are good. I wake up while the house is stil quiet and I start every day the same. I’ve been doing this for two months, so I know its stuck. The actual routine is personal and not important. It’s also boring. But by the time I sit down at my desk I’m fully awake and my day has started. My routine ends when I sit down to my desk and write down what I want to do for the day. Then I’m off. I’m experimenting with incorporating routines throughout my day as well. Nothing’s stuck yet, but it’s been interesting and I’m still hopefully I’ll wander into something useful.

Now for some miscellaneous jibba-jabba:

It felt good to get rooSwitch 1.5 out the door. Now close to 100% of my working time is focused on a new app, currently called Focalize.

I’m not ready to share any real details, but it’ll be an OS X app and a little sister iPhone app. If for some reason the name intrigues you enough to be interested in testing, feel free to [shoot me an email](mailto:brian@roobasoft.com?subject=Focalize me!). It’s not yet in private beta, but I hope to have it there this month.

Regarding the office space, I’m continuing to really enjoy it. Boise doesn’t have a large downtown, but it’s plenty big enough for me. I’m within walking distance to a little park and plenty of great food. However, I’m trying to avoid going out to lunch more than once a week.

I’m also trying to bike in most days. Turns out I enjoy biking to a destination a good bit more than just biking in a loop. And bonus points to the office for maintaining a nice big locker room with private showers and an awesome limited access bike room.

Office Space

May 20th, 2009

I’m 20 days into roobasoft 2.0 and am already adjusting things as needed. The first major adjustment is switching from the co-working space I was using to a shared private office at a different location.

There was one major show stopper for the shared space: I wasn’t able to keep an external monitor, power supply, external hard drive, keyboard, mouse, etc at the office. Of course, I knew this when I signed up, but I underestimated how much I’d miss that.

As soon as I realized it wasn’t going to work out I hit craigslist. Within a week I found a potential alternative. It’s a similar style setup to where I was, but the new place will rent out 1/3 of a private office and provide a dedicated desk and all. I signed up for that and am giving that a go. The other 2/3rds of the office aren’t yet occupied, so there’s a concern with that unknown, but it seemed worth the risk.

Unexpected benefits

When planning to move out to an office, I really wasn’t looking forward to having to get in a car and drive daily. For my first year working at home (2006) my wife and I shared one vehicle, I just never went anywhere. Well, turns out the 15-20 minute commute is a hidden gem. Why? Forced detachment from whatever I’ve been working on. I didn’t really notice it at the time, but when working a full day at home, whenever I would come out to hang with the family, I was constantly thinking about what I was working on. I could have been working on nothing, but I still felt like I was in the middle of something and would always wander back to my office to check on things. It’s stupid and it sucked.

Now by the time I get home I’ve had 15-20 minutes of fully disconnected time to let me brain rest and I know I wasn’t in the middle of anything important. Not only that, but there’s a barrier to reentry. I have to take my laptop out of my bag. This sounds like a small barrier, but it’s enough to make sure I don’t open my laptop until I have a purpose and some time for that purpose. It also works well for me to just get out of my car and move right into any necessary yard work. That’s a much easier transition than having to get out of your pajamas at 4pm because the lawn needs mowing.

Of course all of that is mental and I could have fixed it with some solid discipline. I guess the point is I didn’t even see the situation clearly until I was working outside of the home regularly. Also, I lack solid discipline.

rooSwitch 1.5

May 14th, 2009

Last night I released the first update to rooSwitch in over a year (yikes). So, what’s new?

  • Full support for Adobe AIR apps
  • Locked profiles Did you just spend 40 minutes setting up your data *just* how you want it to reproduce a certain condition? Are you releasing a new version and need to test upgrading from v1 repeatedly? Set up your data just how you want it and then lock it. Now every time you switch to that profile it will be just how it was when you locked it.
  • Ability take a preference or other data file from someone and drop it on a profile and have rooSwitch know to include it as part of that profile
  • Cleaned up Preference Pane
  • Updated 512×512 icon
  • New, darker color theme to match Leopard.
  • New website thanks to Erika Greco
  • 3 new screencasts with likely more on the way
  • Fixed a few minor switching bugs

I’m really happy to have this release out there. I think it adds some cool features for developers and just cleans up rooSwitch a good bit. I’m also really happy to have a new website.

Download 1.5 and if you have any feedback on it or the website please drop them in the comments here or send them my way.

roobasoft v2.0

April 27th, 2009

Short version

I’m doing a 6 month experiment where I focus 100% on roobasoft and see if I can support my family on the apps I develop.

Longer version

I started teaching myself to program in 1994 and it wasn’t long after that that I knew that

a) This is what I want to do for a profession (software development)
and
b) I want to some day work for myself doing it.

I’ve been doing a) but haven’t quite gotten to b). Yes, I own and operate roobasoft. Yes, I quit my full time job over a year ago. But I’ve been doing mostly contract work in that year. I want to get back to my original plan to invest the majority of my time building roobasoft into what I think it can be. I want to make b) happen in a way that I’m proud of. So with that, I’m winding down my contract work and I’ll soon be focusing 100% on roobasoft.

Why? Isn’t there a middle ground?

I really thought I’d be able to manage contracting and roobasoft apps. Plenty of people have succeeded this way. That failed to be the case for me. It’s not that the time wasn’t there. There were plenty of times when my contract work was slow. It’s the excuse that I believe killed me. It was so easy to say: Well, I can’t do ‘that’ cause I’m so busy with project X or whatever. Yet I never ceased to be able to find time to start a new ‘great idea’.

Determining success

At the end of this 6 months, I’ll either be making enough money to support my family, or I won’t. That’s determining my success or failure [1]. I’m OK with either outcome. I’d prefer success.

Removing excuses

For this to really work, I have to be able to look back and say “Well, I gave it my best.” The things I’m doing to remove excuses are:

  1. Mental switch to ‘professional’. I hope to post on this more soon. I think this is big.
  2. No distractions. No contracts. No side projects. Focus. I’m picking 2 projects (1 new, 1 existing) to focus all my attention on and any ‘this is a great idea for an app!’ moments that I have will be archived and tucked away for later.
  3. Renting and using office space. I currently work 100% at home. I have a dedicated office with a door here, but it butts up against the laundry room (noisy!) and the kitchen (humans!). We now have 3 daughters under age 6. Even with the dedicated office, there are lots of distractions here (of course, sometimes the distractions are really cute). In order to combat those distractions, I’m going to spend at least 3-4 hours for 4 days a week in a co-working space near where we live. It’s a month to month deal, so I’ll be keeping a close eye on whether I think it’s really helping or not.
  4. Making use of others to strengthen my weaknesses. The two big weaknesses I have are design and marketing. I’m seeking outside help with both of these.

Now what?

As I mentioned, I’ll be working on one new application and one existing. I’m not currently ready to talk about either, but stay tuned, shouldn’t be too long before I start talking more. I plan to try to write a blog post at the beginning of every month with a review of how things are going.

[1] - Of course it’s not that simple. It may be that I just need to go back to doing a day or two of contract work for a few months while I continue to ramp up the business. Going to have to figure that out when the time comes.

Introducing WhenIsThat.net

March 17th, 2009

Google knows how to do a lot of conversions. It understands queries like ‘2 cups in liters’. That’s awesome. One thing it doesn’t do is time zone conversions. I kept asking Google to convert things like ‘2pm MDT in CET’ but it never worked. So I created a simple time converting website.

WhenIsThat.net doesn’t support a lot of zones or cities yet, but I’ll teach it as time goes on. If this is something that plagues you, give it a whirl and let me know what you think.

Introducing Count It Off

November 10th, 2008

Update, Count It Off is now available in the App Store here.

twitterdown_avatar_64.png Count It Off is my new web and iPhone app for simple calorie counting and weight tracking.

I’ve been trying to not be as large as I am for a few years now. I’ve tried a handful of ways to diet and have recently concluded that calorie counting is the best solution for me (everyone’s different). I started by using a Google Docs spreadsheet, but that got old fast. Then I tried a couple web apps and they all tried too hard. I didn’t want them to attempt to tell me how many calories were in my breakfast. I wanted to calculate it once, record it with a useful name, and then log it by that name the next time I ate it. It was during WWDC 2008 that the idea for Count It Off, a calorie counter for the iPhone, came together.

The week after WWDC (Jun 16th-ish, 2008) I was flying to Spain to visit the MakaluMedia guys who I’ve been (and still am) doing contract work for. The extra long flight from San Francisco to Spain gave me plenty of time to think about Count It Off. Here are the sketches along with some commentary and the final 1.0 screens:

Food Log


This is the first page the user sees when they open the app. A good bit changed here in 1.0. I didn’t like the Today: 1100 calories header that I sketched out. I played with a few ideas and settled on a Today - XXXX left header along with a progress bar as the first cell in the ‘today’ entries. I also summed up previous days’ consumption and apply a green check mark if you were within 200 calories of your goal. This makes it easy to see how good/bad you’ve been.

Weight Log


The weight page in 1.0 is a simple log that shows how many lbs or kg are left to lose before reaching your goal. This is an area I want to improve on.

New Food Item


The odometer style picker I sketched wasn’t going to work. The number pad entry is much better. In the sketch, you might have noticed that I was going to allow users to capture images of the food they are eating. This isn’t in 1.0 because I’m not really convinced it’s useful. I just wanted to have a reason to use the camera on the phone.

New Log Entry


The “Pick | New” segmented control was also a bad idea. The assumption with Count It Off is that you eat a lot of the same foods over and over. So by default it brings up the searchable ‘pick food’ view shown above:

Progress


This progress page doesn’t exist in 1.0 but it is something I still want to do.

Somewhat surprisingly, the sketches from June are pretty similar to version 1.0 of the iPhone application. Those sketches have a few good ideas that didn’t make it into the first version and some bad ideas that didn’t make it in.

Now, those sketches are four months old and I didn’t submit the application to the App Store until Nov. 8th, 2008. Did it take me over four months to build this app? Nope. I played with the iPhone SDK for a few nights back in June, but then things got busy and I shelved the idea when I got home. Then in early October I unexpectadly found some free time (that’s another story :)). On October 14th I was still larger than I wanted to be, so I decided to make Count It Off a reality.

I first completed the web app and expecting to announce that before the IPhone version (they sync of course). But before I got the web version to a point where I liked it enough to talk about it, the iPhone version was well under way. I resisted announcing these either project until they were both ready. That day is today!

I’ll blog more about this journey later this week and will let you know when the iPhone app is available in the store.

Now running on EC2

October 11th, 2008

Probably not very exciting to many, but I just finished moving roobasoft.com and 7 other domains from 2 virtual private servers and 1 dedicated server over to 1 EC2 instance. The move was surprisingly painless.

Why did I do all this? The main reason was because the one dedicated server was real cheap and scared me. It was a single disk setup with zero redundancy and only nightly backups of critical data that I had to setup manually. I had gotten away with running in that setup for about a year and it was really only a matter of time before that machine failed me. If that hard drive or any part of the machine failed I’d have to rebuild the server from scratch and manually restore the critical data.

After moving to EC2 I have a custom image that I boot with all my configuration setup and an elastic block storage volume with all the database and other changing data stored on it. The volume is easy to take snapshots of and I feel pretty good about the whole setup.

The only gotcha I hit was when I tried to run two SSL virtual hosts off the same IP. Turns out you can’t do that. The recommended solution is to use separate IP addresses to differentiate the hosts. However, EC2 currently only allows you to bind one public IP per instance. I went with the solution to keep one vhost on the standard https port, 443, and the other on a non-standard port. Not pretty, but it’s working for now.

Some light details about the setup:

  • Apache virtual hosts are serving the 8 domains
  • mod_rails is taking care of the 4 domains that are rails applications. So far I’m very pleased with mod_rails - add a new vhost and bam, it just works. No monkeying with mongrel_cluster yaml files.
  • Sending of mail is being taken care of by authsmtp.com. This is new for me but so far I’m happy. I always hate setting up sending or anything related to email on a server. Was happy to outsource this.
  • DNS is now being hosted by https://www.dnsmadeeasy.com/. Not a pretty app, but it does the job at a decent price and it’s something I’ll rarely have to tweak.

Thanks to Jonathan for helping with the move and recommending the DNS host. It was nice to know someone who also did a similar migration in case things blew up :) (he recently moved Round Haus to EC2).

In summary I’m really happy with the new setup. We’ll see how long I stay happy.

note: I was fairly light on the details of the move (post was already long enough). If anyones interested, feel free to email me or comment here.


© 2006-2009 roobasoft, LLC