Advanced Relational Database Normalization

I figure that since this is a dev blog, I should write something devvy.

So I’d like to share with you my knowledge of db normalization, and how to achieve Normal Form Nirvana.

I’d like to introduce what is called Scott Normal Form. It is always the highest possible Form. It has the following properties:

  1. Does not depend on any nthNF.
  2. Has absolutely no redundancy. Okay maybe a little bit of redundancy.
  3. Sets of values can be stored in a column rather than being atomic, as long as it’s a smarter implementation than atomicity.
  4. Every table has a primary key id, not because it’s always needed but rather because why the hell not.

Now that you know how to normalize a database, go build some cool stuff.

Comments (1)

Before I forget

About a half hour ago I got the Tubes core working correctly, to a point where I feel it’s a very significant milestone. There is still a fuckton more work to do, although this is a major step and a lot of what’s built on top of it will be much simpler and straight-forward. So stay tuned, there’s a lot more to come.

Comments

Tubes moves!

I have recently learned that there is indeed a reader of this blog! (Hi Mike!) So now I feel obligated to inform the blogosphere of the recent Tubes news. Tubes has moved to the Bay Area, and Scott went with it. Maybe it’s the other way around?

Why move? Not a whole lot going on in Sacramento/Davis for startups, and there’s tons more opportunity to meet the right kind of people (collaborators, investors, single women :P , etc) in the city, South Bay, etc.

San Francisco

So what’s new? Tubes is a good idea worth doing, many good ideas worth doing, so expect to see more of it very soon. One thing that didn’t work was managing a distributed team of loosely committed developers. Why that didn’t work and why they weren’t committed I don’t know, but I’m pretty sure I never had the team right. If you look at success stories from Google to eBay to Craigslist to Facebook, we never even remotely resembled the structure of those companies in their beginnings. Maybe I just wasn’t following the right formula. I think we’ve been close a couple of times, but close only counts in horseshoes and hand grenades.

Another thing that didn’t work was the Symfony framework, for a few reasons. For one thing it’s slow as fuck (unless you do a lot of optimization), and to build an effective app on Symfony you need dedicated people who are intimate with the framework. I stayed on the functional and interaction design side of things, because while I’m comfortable with PHP/MySQL, Symfony freaks me the fuck out. From the Symfony team came some very intelligent backend design work that will be carried over into the current system, so that’s a positive. Since the nth crash and burn, I’ve gotten involved with coding along with a good friend who’s been in and out of Tubes since the very beginning. If it weren’t for him, I might have never gotten into web development myself, because he got me my first web development job at Rabbit Semiconductor.

Tubes is being built with the standard LAMP toolset, using a basic, typical and custom MVC design pattern. When we need to grow, it’ll be easy for a good developer to acclimate to the system because it’s a regular PHP app.

We’re a small team now, just two guys building the app and a program manager with nothing to do (except bitch and moan incessantly, but for good reason).

Losing really sucks, it’s been a difficult transition to come to the full realization that what I did was a failure. But I also realize that it’s just part of the game. Historically some of the most successful athletes/actors/musicians/entrepreneurs are some of the biggest failures in terms of how many times they’ve struck out. It’s a numbers game, you can apply it to business, to baseball, to dating, you name it. So don’t just quit. Take a break, reassess, absorb what you’ve learned and then come back faster, smarter and stronger. I am committed to building Tubes, and as Ralph Waldo Emerson puts it:

“Once you make a decision, the universe conspires to make it happen”

Comments (6)

A Few Music Industry Highlights From 2007

Comments

BarCamp Sacramento And SacStarts

Yes I know I never blog, I’m a terrible person :P The good news is that Tubes is rollin and soon you’ll be able to use it, bad news is that I can’t say when that’ll be.

I’d like to point out that an organization that I co-founded along with Adam Kalsey, called SacStarts, is hosting the first ever BarCamp Sacramento June 2nd and 3rd. We’ve got some fantastic sponsors already, and some pretty amazing tech people are signed up to participate. There is still room for more sponsors and still lots of room for presentations and workshops. BarCamps are typically very tech-programming-web-startup-related, but so far it looks like we’ll be the biggest food BarCamp ever, with presentations on roasting your own coffee, baking your own chocolate, and one of the most famous food/cooking bloggers is signed up to come. I have no idea what I’m going to present yet, but it’ll probably be related to Max/MSP, PD, 3D audio or something else that I don’t remember how to do.

Read more about BarCamp Sacramento, BarCamp in general (Wikipedia page), and SacStarts, and I hope you come and join us!

Comments (1)

Introducing Tubes’ Newest Advisors

I’m happy to announce that one of the best teachers I’ve ever had is now one of Tubes advisors. Chris Reynolds was one of my Musicology professors at UC Davis when I was an undergrad. If it weren’t for Chris I would’ve never been able to study abroad in France, and if I hadn’t ever lived there and experienced that then I would likely have never started Tubes.

I’m also very glad to announce that Terry Chay is now part of the Tubes advisory team. I recently asked one of the core PHP developers “who’s the perfect advisor for PHP in general, frameworks and scalability,” and it took him about half a second to tell me who he thought was the best.

Comments

Startups In Davis?

It was just like any other day, and I was going out to lunch with some coworkers in downtown Davis. We decided to get Thai food at Sophia’s Thai Kitchen which I can’t recommend enough, and as we were walking through the courtyard I happened to glance up towards the second story to see a logo on a piece of paper taped to the window on the door. The logo was for the virtual-world computer game called Second Life, which is created by a company called Linden Lab.

About a year ago when I was pitching to VCs, I had a day with two presentations in San Francisco basically back-to-back. One was in the financial district and the other near North Beach which was about 20 minute walk, so I just walked. I ended up accidentally finding out where Linden Lab’s HQ is, so I was definitely surprised when I found out they have a satellite office in Davis. It makes sense really, there’s a lot of talented computer scientists and graphics/visualization researchers at the university. Once upon a time I was actually part of the big visualization research group at Davis called IDAV, but I was doing 3D audio research rather than graphics.

So this begs the question… what about Davis for a startup? There’s plenty of discussion about Sacramento as a potential tech hub and a hotbed for startups, but nobody ever mentions Davis. For Tubes I’ve had my eye on Davis and Berkeley, and since I already know Davis well and it’s cheaper maybe that’s the starting point for us. Why not Sacramento, San Francisco, or Mountain View?

  1. Davis is cheaper than the Bay Area. The commercial rents are relatively high and housing is still insane, but salaries are much less and there are many surrounding cheaper areas to live in. Measure K just passed and Target is going into Davis, so maybe that will help stir some growth and thus lower housing costs.
  2. The town is alive. The downtown is full of great restaurants and everything is walkable.
  3. Everything is walkable. In the downtown area you can walk anywhere in less than 10 minutes. Anywhere else in Davis is very reachable by bike. This is important if you hire people who don’t drive. Maybe they just don’t own a car, or maybe they’re coming from an environment like San Francisco where many people tend not to use their cars. Many companies are going primarily virtual as well, and if I brought anybody over from Europe they’d likely not be used to driving.
  4. While Davis may have no resemblance to reality, it’s close to it. The Bay Area is a doable day trip, and Lake Tahoe is close. There’s also a shuttle that goes back and forth between Davis and the Sacramento airport.
  5. There’s a whole university to draw help/talent from. And I’m starting to use it. Tubes’ newest advisor is one of my former Music professors.

So there you have it, 5 great reasons why Davis is an optimal place to start a company. Please make a comment if you have more reasons and want to add to this list.

Comments

Adam And I Are At It Again

It’s time for another crazy Sac Geek Dinner, and this time it’s going to be in Folsom at Dos Coyotes on December 1st. Please RSVP via Upcoming.org so we know how many people to expect.

Comments

What’s Your Story?

One thing I’ve really noticed is how much I dread doing the stupid stuff. I don’t dread it because it’s boring or useless because it’s not, but there’s something highly ineffecient about doing a startup the old-fashioned way.

Before I had a team, the support of good advisors and a good lawyer, or any kind of technology demo, I wrote the business plan. At this point in time it’s literally 40 pages of shit. Maybe I’m lazy or maybe I just have a strong attraction to doing things efficiently, but now that the business plan needs a re-write I sure as hell don’t want to do it. I just don’t think it’s a very smart time/energy expenditure.

Many of the core values and influences and goals that Tubes was born out of are still the same, but the actual product and business goals have evolved. I’ve kept the financial plans up to date but the executive summary and Powerpoint deck both need some TLC as well. The question now is do we need them?

Things are different now. I have many things in place including the start of a really amazing team, and we have a lot of code written that does what it needs to do. There is definitely a general path that we’re following, but it’s very difficult to put everything on paper. As impressive as the original business plan might have been, is it a failure because things didn’t materialize as planned? Of course it’s not because we’re farther along now, and some of the kooky ideas in the business plan have been laid to rest while we’ve put focus on the real important and compelling stuff. Maybe it wasn’t a good plan to begin with… or maybe the business plan isn’t such a great format anymore for web startups. Also… do I even want a description of what we’re doing on paper or electronically that can be passed around to competitors? I think I prefer to show people and give them the story in person.

I have a lot of friends in startup-land, and for the most part their strategy doesn’t even include an inkling of Powerpoint or business plans or even financial models. Their strategy is to build and release, and hopefully people like it. If they do then hopefully the application or service can generate revenues… somehow. I don’t think that’s a good model to follow either, but there has got to be a better way!

I’m going to stop this post right now, because I don’t have the answer. If anybody has ideas on better ways to manage business development and direction, acquisition ideas, or anything else then please contribute and add your comments. Right now I can tell you that our internal development wiki for Tubes has become absolutely essential for keeping track of all kinds of shit.

Comments

The Second Sacramento Geek Dinner is Tomorrow!

That’s right, there is a tech/startup scene in Sac and we like to eat. We’re going to do Chinese food at Peking Palace which is on Folsom Blvd between Watt and Bradshaw. Kalsey set up the Upcoming event, and here’s a Google map to the place. We’re planning on meeting at 7 PM and ordering a bunch of stuff to share. See you there!

Comments

« Previous entries ·