VC Networking vs Beauty Contests?

Posted March 25, 2008, 10:45am In: Business & Clients

Alec Saunders made a really good post about VC companies and events like the Canadian Innovation Exchange, which was promptly followed up by Rick Segal.

Both had good good points, but I found this particularly interesting:

I’d like to believe that there is more to it. I’ve been told over and over that it is the networking at event like this which really matter. In addition, there are panels/discussions/sessions that also should be worth it. While Alec isn’t going to get much out of this (he knows this drill from more angles then most), others might get some good knowledge out of the sessions, find somebody to link up with, etc.

I’ll be perfectly frank; I don’t much care for the idea of pitching investors. True I’ll need to do it eventually but personally, the notion of approaching a giant firm/company controlling millions of dollars examining everything that I tell them scares the words right out of me - not to mention turns me eleven shades of red.

Now, I’ve never approached investors, never even met one. Because of this, the investors I envision in my head are the adult version of the scary monster I imagined as a kid, with a gaping maw ready to swallow me whole.

Events like the Canadian Innovation Exchange and Founders and Funders are events I’d go to just to network. Even if nothing comes of it, it gives me a chance to communicate with both scary-investor-folk and would-be founders that are probably as scared as I. An opportunity to ask questions and puff my chest out and announce my presence in the space.

However, I maintain, let’s set up similar events in Calgary, hmmm?

…now if I can just get the courage to pick up the phone and call some of the folks Rick mentioned.

DemoCamp Calgary

Posted February 12, 2008, 12:15pm In: Business & Clients, Personal

Looks like DemoCamp - a Calgary event that has been around for a while much like other cities in Canada - is centralizing. They’ve got a new blog, mailing list and an event coming up, well, today.

Looks like I won’t be able to make it folks, but have fun all the same. Look forward to seeing some videos!

Drag & Drop Form Options with Zend Framework & Mootools

Posted January 31, 2008, 10:04am In: Zend Framework, SQL, Javascript, PHP

Recently I was working on a project that required the ability to define custom meta-data; this included categories and products, but also included a pre-determined list of countries and cities, etc.

Unfortunately, this hasn’t been tested on the latest version of the Zend Framework so it’s likely you’ll need to update your code accordingly.

We’re using version 1.2dev of MooTools

First, let’s create the controller:

I’ll skip the creation of fields and get right into the editing; I assume you’ve already added an index action and view. Our purpose is to effectively manage and modify field options, provide the ability to sort, edit and delete them, while preserving data related to the individual fields. For clarity, I will not use the view helpers for Form Elements.

Create your form and save it into your view, in my case edit-fields.php. I’ll leave it up to you to style and set form actions etc.

Then, pre-pend your javascript:

Now, before we get ahead of ourselves and worry about finding the fields, let’s the information and fields themselves - edit editFieldsAction() in your controller with the following:

Now let’s create our factory, in my case it’s MyFactory.php.

MyDomainObject::FetchCategory() validates that the requested categoryId exists. Then, the values assigned to that category. We could use $record->fetchValues() from within the rowClass instead of $obj->fetchValues($record->id), but it would more than likely just be an alias back to the factory.

Now, let’s open edit-fields.php again and add the following PHP between the UL.

An improvement to this would be to add an observer to all hyperlinks identified by class=”red”, but for simplicity, let’s leave that out. Now, our view should look something like this:

Assuming everything works, what should happen now is the list should pre-populate with previously created configuration options, we should be able to add, edit and delete those, and $_POST will override $this->options. Let’s start saving!

Edit editFieldsAction() to add some new functionality:

Now, back inside MyFactory:

It’s extra important that you pay attention to the usage of “ON DUPLICATE KEY UPDATE” - this is why we don’t have to do any fancy dancing. Additionally, we find the difference from $postArray versus what exists in the database to ensure that we delete anything that the user doesn’t want any more.

Additional steps might include the deletion of our user data when a config_value is deleted, either modifying the code itself or using the database.

Skemma

Posted October 29, 2007, 9:58am In: Web Related

A little while ago I signed up for a beta test of http://www.skemma.com/. Skemma is

A tool for defining, using and improving business processes.

Excited, I went through the activation process and got in. Standard interface, standard colors, and no improvement from every other Web 2.0 startup out there. In fact, I think it is worse.

Well. I have to say I haven’t used it for 5 minutes before I started looking for a Delete Account button (Which does not exist, that I’ve found). Harsh, but the truth.

Instant Deadpool for me. Sorry guys, there’s so much to work on. I respect Launch Early. I respect the concept of Beta. But this is atrocious.

Good luck in the future Skemma. I hope I can be proved wrong.

Experiences with Online Video Conversion

Posted September 14, 2007, 4:16pm In: Web Related

Recently I’ve had to deal with converting user uploaded video files to flv format. Up until today my initial experiments were unsuccessful.

First, I started with the project FFmpeg. In the beginning it looked promising but rapidly fell short. It wasn’t as platform agnostic as I would prefer (getting it to install my Wamp environment was a pain) and there were a couple outright show stoppers.

For instance, I wanted to grab the dimensions and length of a video file. Ordinarily this would be achievable by parsing the return value of a shell_exec, like so.

Unfortunately, it returns null. Huh. Fancy that.

Now, this isn’t to say that FFmpeg isn’t a fantastic library, and the existance of FFmpeg-php is a major bonus in my books, but the barrier to entry is huge on this one.

Next up was Carbon Coder. Let’s ignore for a moment that there’s a $5,000 price tag attached to it. CC had a free trial which I immediately wanted to try out.

Please note that the Carbon Coder Free Trial utilizes a USB security device that must be shipped in addition to the software (i.e., the Free Trial is not a download).

Well, that sucks.

Finally, I discovered the Flix Engine by On2. During Windows development I can use COM objects (easily accessible via PHP), and on Linux I can use PHP methods and objects I haven’t quite delved into yet.

A couple trials were immediately successful. I find myself overjoyed.

If you can swallow the price, I definitely recommend trying this out.

More Links

Posted August 14, 2007, 7:16am In: Social Networking, Business & Clients, Web Related, Javascript, Development

I am going to write a real entry soon, I promise.

http://www.456bereastreet.com/archive/200708/microformats_book_review/
This is a great read; I’ve used Microformats in my applications and I think they are invaluable. The comments are especially useful in getting other people’s opinions.

http://ajaxian.com/archives/yui-compressor-the-latest-minification-tool
Compress those JS files! Have to try this out.

http://ajaxian.com/archives/builtwith-what-tech
Interesting. Seems a little devious to investigate what technologies are being used, but still interesting all the same.

http://www.techcrunch.com/2007/08/14/34-more-ways-to-build-your-own-social-network/
I would never use one of these tools, but it’s a good resource to have.

Who Owns the Concept if No One Signs the Papers?
Really long link, sorry.

http://yuiblog.com/blog/2007/08/13/rte-notes/
YUI looks great for simple rich text editing, haven’t tried it out yet since the YUI release. This gives me a good idea of what to expect.

More Reading

Posted August 13, 2007, 8:56am In: Business & Clients, Personal

Over the weekend I let the YCombinator Demo Day simmer, then planned on getting all the reactions. Sadly, I didn’t hear much about the demo days. If anyone has any links from the blogosphere (besides YCombinator news) let me know!

http://www.venturehacks.com/articles/adam-smith

http://news.ycombinator.com/item?id=41133

http://mashable.com/2007/08/09/online-business/

http://www.innoeco.com/2007/08/demo-day-at-y-combinator.html

http://500hats.typepad.com/500blogs/2007/08/startup-metrics.html

http://mashable.com/2007/08/09/gdrive/
This is awesome.

http://news.ycombinator.com/item?id=41303

http://news.ycombinator.com/item?id=41308

http://dondodge.typepad.com/the_next_big_thing/2007/08/boston-vcs-gets.html

Interesting Reads

Posted August 9, 2007, 10:20am In: Web Related

http://westciv.com/xray/

http://ignitenight.blip.tv/file/199623/

http://gigaom.com/2007/08/06/vc-investments-hitting-new-highs/

http://www.instigatorblog.com/can-you-build-a-startup-ecosystem-outside-the-valley/2007/08/09/

http://www.tandementrepreneurs.com/

http://www.michiknows.com/2007/08/03/a-great-web-developer-is-a-great-application-developer/

http://www.ventureadventure.net/2007/07/14/event-review-svase-startupu-sf-executive-summaries-12-jul-2007/

http://www.unionsquareventures.com/2007/08/hiring_a_vp_of.html

http://www.businesshackers.com/2007/08/08/startup-failure-despite-media-coverage-and-good-ideas-a-story/

http://www.readwriteweb.com/archives/eric_schmidt_defines_web_30.php

http://www.squidoo.com/starup_failures/

http://www.founderblog.com/2007/07/go-fast-but-dont-hurry.html

http://kohari.org/2007/4/9/paul-graham-is-braindead

http://radio.weblogs.com/0111718/2005/01/23.html#a261

Floccinaucinihilipilification

Posted August 9, 2007, 8:55am In: Web Related

Floccinaucinihilipilification is the act or habit of estimating or describing something as worthless, or making something to be worthless by deprecation.

Some words we might use to describe the longest non-technical word in the English language:

  • Stagnant
  • Worthless
  • Defunct

Translation: Deadpool.

What contributes to a project/startup dying? Is there a single catastrophic moment when the founders realize that it’s going nowhere, some kind of breaking point? I wonder what the guys labeled as ‘Defunct’ in the list of companies by YCombinator would say. Something like:

  • Not enough market visibility
  • Not enough market interest
  • Not enough money
  • Not enough need
  • ” founder drive or ambition

You notice the trend here don’t you? Generally when it comes to failed startups, I hear those involved cite all sorts of different answers, all preceded by the same thing… Not enough.

Unfortunately, it generally tends to be true, not a simple matter of the founders’ incompetence. Oft-times you’ll hear critics examine a failure and proudlyloudly shriek the cause like they had insider information. Trouble with the internet; everyone is an expert.

One can have an Einstein equivalent idea and execute it perfectly, still to have it fail and come crashing down upon you (and your wallet… and your bank account. Credit Card. Marriage. Et cetera.).

You can’t force a user to enjoy your business application. They see a need for it, or they don’t. Likewise with Venture Capital. If a VC isn’t interested, that’s the cause of your lack of money, not the lack of VCs themselves.

That’s not a reason to give up so easily.

Let me say again:

That’s not a reason to give up so easily.

We all know the story. When the first dot com bubble exploded upon the markets, hundreds of thousands of companies were born. The internet was new and shiny and we all wanted a piece. But as with all new technologies, we first applied ourselves to solving existing problems. Those succeeded. Then some Venture Capitalists in their infinite wisdom, put unrealistic expectations on new applications that didn’t exactly make sense, solve any problems, were just… there. Those crashed. And burned. Millions were lost, lives were ruined. All around bad mojo.

There are lessons we can learn however. Some companies that went belly up a decade ago were reborn by others, adapted for ten years of change, and a success.

An idea can die, but it can also be reborn. Put a new spin on it. Re-evaluate reviews, criticisms and your gut feeling. Change direction. Change markets. Reinvent your idea from the ground up.

A chat application that went belly up could be the next Google Talk. Or an IM client in a Facebook app. Or used to provide a log for internal corporate discussions.

Personal Programming Faux Pas & Standards

Posted August 1, 2007, 2:53pm In: PHP

At risk of starting a holy war, I’ve noticed myself cringing every time I look at a block of code that isn’t formatted, or consists of slow functions… I decided to write a brief list of my pet peeves. Feel free to add!

Formatting

I prefer to use tabs (\t) rather than spaces to indent my code. Nested loops, decision blocks et cetera should all be indented with one tab per indent. Software such as the Zend Framework requires four spaces. This is completely up to you.

Optimization: Loops

One of the biggest issues I have with my fellow developers is not paying attention to optimization within loops. Consider, for instance, this example:

Always try to optimize your loops if operations are going on at the comparing part, since this part is executed every time the loop is parsed through. For assignments a descriptive name should be chosen. A correct example might be:

Now, take it one step further:

This is a minor detail, but pre-decrement (and increment) operators are faster than post-decrement (and increment). Post requires the compiler to create a duplicate of the variable and copy the updated value back at the end, while a pre-operation can be done in-place immediately.

Optimization: in_array();

Avoid using in_array() on huge arrays. Make an effort not place them into loops, especially if the array being evaluated consists of more than 30 or so entries. in_array() can be very CPU intensive. Instead, try using isset() on the arrays keys instead. A call to isset($myArray[$var]) is a lot faster than in_array($var, array_keys($myArray)).

Space your tokens

I loathe trying to sift through code I can’t read; it should read like the English language (yaknow, top to bottom, left to right?) Always leave one space between the tokens. Don’t put spaces just after an opening bracket or before a closing bracket. Don’t put spaces just before a comma or a semicolon. Again, just my personal preference, but I’m used to browbeating my subordinates. It’s the only way they know me as the Omnipotent Dark Lord.

Operator precedence

There is an exact precedence to all the operators in PHP, but I don’t recommend trying to guess them all. Use brackets to force the precedence of an comparison or equation so you know what it does.

Ternary Operators

Try not to sacrifice readability by saving yourself a few keystrokes. Ternary operators should generally be used for comparison, not complex logic.

Code Formating: If/Else

Braces must always be used. Braces always go on their own line. The closing brace should also always be at the same column as the corresponding opening brace.

Switch Statements

Switch statements are extremely useful, but can get a fair bit long. Akin to in-line braces, do not indent breaks.

In Closing…

These are just my personal opinions, based on my own ideologies. Everyone has their own preference on how code should look, but I do recommend paying special attention to the optimization tips.

Suggestions, comments and death threats always welcome!