Ning and the Utah Entrepreneur Network

A couple of years back, I started to play with Marc Andreessen‘s Ning.com. At that time it provided a very interesting hosted service for creating a wide range of mash-up sites. Ning provided developers with a set of templated PHP web sites that could be customized for different markets and users. I did a little development, but didn’t have time to really do much more than experiment.

At the end of February Ning transformed itself, and began to focus on becoming a hosted “turn-key” social network provider. They are still allowing developers to get into the code and create custom modifications and additions, but now even the average user can create an account at Ning, and very quickly create their own custom social network.

I was reminded of all of this last week, when a friend of mine showed me the site he put together in no time … WakeUtah … a site for Utah Wakeboarders. When I saw that, I decided to spend an hour or two this weekend and get back up to date with Ning. I have to admit that although it’s a little thin in places, they have done an incredible job. I still had my old Ning account – which still worked – and I logged in and within an hour had learned what I needed and created UtahNetwork … the Utah Entrepreneur Network.

I have found a few things that I think are weak with the default features of Ning … but I’m sure that they are going to continue to evolve and enhance the platform. Some of the immediate features that I found lacking are:

  • Events – there is no event calendar that I could find
  • Blog Aggregator – I couldn’t find a component that would pull from numerous RSS feeds
  • Google Maps – they used to have some great tools for doing Google Maps mash-ups … this seems to have faded

Overall, I am very impressed … you are welcome to go and check out my site. I hope that you do check it out for multiple reasons. First, I’d like some feedback on thoughts about the Ning platform. Secondly, I’d like to see if there is some value that we could create in forming a Utah Entrepreneur Network where we can communicate and exchange information about entrepreneurial activities going on in the state. Take a look, create an account, and try it out!

Nice new features of Google Maps …

I have to admit that I have long been a fan of Microsoft’s Local.Live.Com for mapping.  There are just some features that I like a lot more than Google Maps.  One of the major features (of Local.Live) is the ability to easily add my own pins to the maps – just by right clicking and adding text – and then being able to send the marked up map to a friend using the URL.

Tonight, I read this great blog post from Google LatLong and I have to admit that I am impressed.  There is now the ability to create “drag and drop” routes on Google Maps … and to easily send them as URLs to other people.  For example, it took me only a few minutes to create this map of my motorcycle ride in the Utah mountains last weekend.

There are still some real limitations in my opinion … but it’s getting better.  Here are a few UI features that still bug me:

  • I placed the start and end near each other, and then began to “drag” the route as described … but the map did not scroll as I got near the edges.  So I had to keep stopping – and Google would add an interim destination pin – and then manually scroll the map.  I later had to go back and delete all of the extra interim destination pins.
  • I still can not find a way to add my own text to the various pins … so I can’t figure out how to label the start, interim, and ending pins.  I actually saw on the right pane the ability to ‘edit’ the interim pin label … when I did that it blew away my whole route!  Ugh!

It is a cool new set of features for Google Maps.  I did a little experimenting and created this other route of another motorcycle ride off the Mirror Lake road in the High Uintahs that I really like to ride.  Not only was this simple to create, it also allowed me to discover and look at alternative routes like this one that I have never been on!

It is amazing where these technologies are going … now if only Google would add the ability to label the pins … then I would be happier with their product!

From atoms to bits … music, video, then?

My friend Todd, who works for Apple, sent me this link tonight while we were IMing about the iPhone.  The post is titled “Apple Now Third Biggest U.S. Music Retailer“, and it is really stunning to think about.  A company that has no stores full of music CDs, nothing but a bunch of servers in a data center, has now become the third largest retailer of music.

This, to me, is absolutely amazing.  They have none of the overhead of stores, shelves, cashiers, or any of the other fixed assets required by Walmart or Best Buy.  Instead, they have a bunch of servers, lots of storage, some system admins, and a bunch of programmers.  In a matter of a few years, they have provided a way to buy your music on-line at a reasonable cost from wherever you have an Internet connection.
I have to admit that I am slowly transitioning to buying on iTunes.  I have always been buying the actual CDs, and then lately using iTunes to rip them and load them into my iPod.  A month or so ago I spent some time with my father using iTunes to track down a long list of “oldies” that he wanted to listen to in his car.  We found all of them but two on iTunes, downloaded and burned the CD for him … all without leaving the house.

We are quickly evolving from an economy of bits, to one of atoms.  Where it makes sense, more and more information will make this migration.  I believe that the next big statistic will be when videos begin their migration to the net.  Who will be the big provider of downloadable video … legally … for rent or to buy?  With bandwidth ever increasing it’s #inevitable that we’ll be pulling more and more rich media down … so who is going to be the big on-line retailer that dominates in that space?

I also begin to think … what is next?  Once music and video are primarily bought and downloaded over the Internet … what is next?  What will be the next big migration?

Nice ride …

Today was a really nice afternoon … I had some time and took my motorcycle out for a ride.  I’ve got a 1988 BMW R100GS … I’m going to post some pictures of it … and I love the bike.  Not only is it a nice ride on the road, but it is fully capable of taking me off-road on the many amazing fire-roads and 4WD roads in the mountains of Utah.

I’ve been getting out on my bike again after taking a break for quite a while … almost 8 years since I’ve ridden it off-road.  Today was the first off-road trip that I’ve taken this year, and it was a blast.  Even for a 1000cc bike, it’s amazingly agile for cruising the dirt roads.  Today, I took a long round-trip ride from Heber City, up to Strawberry Reservoir, and then on East Main Canyon Road – a dirt road that degraded into some really rough and rutted less-than-one-lane parts – to Wallsburg.  From Wallsburg I headed back into Midway, cruised around the Heber Valley for a bit, and then headed home.  You can see my Heber-Strawberry-East Main Canyon-Wallsburg-Heber ride here … on Local.Live.com.

I’m looking forward to a few more rides this summer.  I’ll be heading up into the Uintah mountains, and maybe take a trip up towards Yellowstone.  We’ll see.  If you are into riding here in Utah and want to explore some nice rides, comment on this post … we’ll see if we can get a good group together to take some rides!

DOD and cyborg moths … work in progress …

I always love to read articles like this one.  It reminds me of the level of R&D going on in the world today.  In the area of man/machine ionterfaces, we are making great strides … for all sorts of possible uses.

This particular article touches on the details of insect/machine interfaces.  We are now funding projects to create cyborg moths that could one day be used for spy missions, and maybe even weapons targeting.  Imagine as we get the ability to remote control these moths, and also ustilize embedded cameras and sensors to see what is around them.

We are quickly moving into interesting times.

KurzweilAI.net: Can cyborg moths bring down terrorists?
The Defense Advanced Research Projects Agency DARPA is growing moths around a computer chip implanted when the creature was still in the cocoon, meaning that the moths entire nervous system can be controlled remotely. Rodney Brooks, director of…

Posting to WordPress from Onfolio

After spending years doing all of my blogging from Radio Userland, I have slowly migrated to more current tools. I’m really sad about this, as Radio Userland is a very powerful tool. It has taken me a while to recover, and I am still not able to do all things blogging that I was able to do with Radio.

One of the powerful features was the blog aggregator. I really like to read my feeds as a “newspaper” view, with all of the posts in a time ordered list down the page. What made this even better was that when I want to blog about something that I just read, I would then click a “post” button and Radio would take me to a page where I could author a post, and the contents of what I was just reading would already be included in the bod of the post. So with this combination, it made it very easy to read thousands of posts per day, and blog about the ones that I found interesting.

Moving to WordPress has been a great experience, however I wanted to find my solution for an aggregator … a new reader to allow me to efficiently read and blog like I had done with Radio. Craig Burton told me about Onfolio, and I went and grabbed a copy to check out. Onfolio is a nice plug-in to the Microsoft Windows Live Toolbar for IE. The more that I started to play with Onfolio (and I’m not even using a lot of it’s research tool features!) I really found that I like it’s aggregator and blog reading capabilities … even more than Radio. I’m now back in the mode of reading hundreds and thousands of post per day … easily. The one thing that was missing was the ability to blog about a post that I was reading. Now Onfolio has the feature … but when configuring it in the preferences dialog, there is no option to “Blog to WordPress” from Onfolio. I did see that they had an option labeled “Custom Command Line” however until last night I wasn’t sure how this might help me.

I now have a solution … and here is how to use Onfolio to post to your WordPress blog:

  1. In Onfolio, go to the Preferences dialog, Blogging options.
  2. Set the Blog Provider to be “Custom Command Line”
  3. In the field provided, for the file and path to your blogging client, enter the following “command line”:

    http://{your_blog_host_name}/wp-admin/post.php?text=$ITEM_HTML$ &popupurl=$ITEM_URL$&popuptitle=$ITEM_TITLE$&onfolio=1

  4. Replace the {your_blog_host_name} with the actual host name of your blog.
  5. Make sure this is all included on the one line with no spaces.
  6. That’s almost all there is to it!

Uh oh … now why do I say “almost”??

Well, there is one last thing that you have to do. It seems that Onfolio wants to post escaped HTML to the URL … so this command line will work, but the text that appears in WordPress, ready to blog about, is now escaped HTML text and looks pretty funny … and is useless. I tried a lot of different things, before I resorted to hacking the WordPress code slightly to fix this issue.

If you are using “hosted” WordPress, I’m not sure if you can do the following … but if you have access to the WordPress files on your server, you now need to go to your WordPress installation and do the following:

  1. Edit the file /{wordpress install directory}/wp-admin/edit-form-advanced.php
  2. Search for the following line:

    <?php echo user_can_richedit() ? wp_richedit_pre($post->post_content) : $post->post_content; ?>

  3. Change it to be:

    <?php echo user_can_richedit() && !isset($_GET[‘onfolio’]) ? wp_richedit_pre($post->post_content) : $post->post_content; ?>

  4. Save the file.

What this does is to tell WordPress that if the posted data has a variable set that is called “onfolio” then don’t use the escaping … but put the HTML into the body of the post. Done!

Now when you are reading a post in Onfolio, and want to blog about it, you simply click the “Blog this item” or use the Control-Shift-B hotkey … a browser will launch to your WordPress “Write Post” page, and the content of the Onfolio post that you were reading will be in the body of the post ready to be referenced.

With this latest addition, I’m almost back to where I was with Radio. I can now efficiently read all of my favorite feeds, and blog about the posts that I find interesting. I really do like the way that Onfolio allows me to read and sort the posts … easily getting through them all. Expect to see me now resume my habit of posting about posts that I read … I have a way to do it again!

Outsourcing 101 – Leveraging the value …

My one company HumanXtensions provides outsourced staffing in India and the Philippines. We offer software developers, testing, data entry, transcription, and several other services. I am completely convinced of the value of outsourcing, and got into the business when I started to use global resources for my own start-up businesses.

I do know that there is a lot of controversy about outsourcing from the numerous sales conversations that I have been in. There are a lot of people who see outsourcing as a threat to American jobs, and some people voice this to me very loudly. 🙂

I wanted to offer a few suggestions about an alternative way to look at outsourcing. If for a moment people can step back from the conversation, and look at things objectively, I believe they will see both a value, and an inevitability.

Specifically related to the software industry, I believe that our schools and higher-education curriculum are doing a huge disservice to Computer Science students. For some reason we are stuck in a model of teaching programming which seems to promote the software developer building applications completely from the ground up. Although we teach “object oriented programming”, we also teach the students to create all of the objects themselves!

There is almost no other industry that follows this model. If you were to look at the automobile industry, this would be like suggesting that the car manufacturers build all of their own nuts and bolts, windshields, gas tanks, wheels, tires, and floor mats. But that is not how it is done. Likewise, in the construction industry what contractor is out there cutting his own lumber, making doors, windows, toilets, and door knobs? None!

These industries, and I’ll argue almost all others, have evolved to understand the value of leveraging the value of other companies who can focus on the creation of components that can be used in their business. Automobile companies can focus on the core designs, and customer experience. Contractors can focus on constructing homes.

So why is it in the software industry that we want to pay our best and brightest software developers to sit around creating the “nuts and bolts” of software? Why are they spending their time – and your money – working on creating foundation elements of a software project that could be created elsewhere much more cost effectively?

I believe that the value of outsourcing is that we can leverage our own developers talents, and also leverage the cost-effective talents of a global resource pool. Our schools, in my opinion, would be educating CS students better if they were teaching courses on how to leverage outsource resources to create software. Not how to build every single object and component themselves, but how to define the specifications and manage remote developers. This would allow them to focus on the bigger problems, the overall architecture, and the core business that the software will target.

I can almost see the day that when I am reviewing resumes for software developers and I am looking for their experience working with outsourced resources. I would want to see information about the number of remote developers they utilized, and the tools they used to manage the distributed project.

In fact, I can see a day when I review a resume of a software developer, and he/she includes the details about the outsourced team they will bring with them if I hire them. I believe that the real future of being a software developer will be to become someone who understands how to leverage the value of the growing global pool of software developers. They are not going to go away …

Software Version Complexities

Today I had an experience that caught me off guard. I recently purchased a Cingular/AT&T Broadband adapter for my laptop. I do really love it … well … after I got it working.

One of the initial issues that I had was that the CD ROM that came with the Cingular package was *WAY* out of date. It dated back almost 12-18 months, from what the technical support person told me. When I bought the card and went to install, I never thought to check if the CD ROM contained current software … I just put it in and ran the installer.  That was is huge error on my part as the old drivers caused all sorts of problems with my laptop.  Three days later I was back up and running … with the new version of the software that I downloaded from the Internet.

Well, my problem today was that every now and then the broadband card would lock up.  It would just stop working.  I couldn’t “disconnect” or “reset” the AT&T software either.  I found that if I ejected the card, and then re-inserted it things would again work … for a while.  After going through several days with this routine, I started to wonder about the firmware in the PCMCIA card.  I did a little searching on the Internet, and sure enough found a Sierra Wireless 875 firmware update program.  I followed the instructions and ran the program … which proceeded to update my firmware from v1.0.0 to v1.7.8!

What really amazes me about this whole situation is the poor software installation design and coding, along with the pitiful state of AT&T automated support systems.  As a software architect, and also a business owner, I am always looking for ways to improve customer experiences, decrease support costs, and automate everything that I can.  In this day and age I can’t believe that AT&T isn’t looking to do the same things!

Anyone who runs Windows has experienced Windows Update.  Now I know that lots of people will bitch and moan and whine about Microsoft, however I will argue that Windows Update – which has been evolving for almost a decade – is a marvel of automated software updating.  If you stop and think that Microsoft can drop a patch out to their servers and update millions of computers across the globe in a matter of hours or days is pretty incredible.  And for those people who want to complain about it, the key here is that any software developer could add a comparable or better solution to their software at any time!

In my mind, the AT&T installation CD ROM could have asked me if I wanted to have it check the Internet for newer versions.  But it didn’t.  It also could have – upon installation – checked the firmware on my card, and let me know that there was a suggested update for the card.  But it didn’t.  Every time that I put the card in and run the AT&T Connection Manager software, it could see if it had checked for updates in the last day or week, and automatically check in with their servers and let me know there are new versions available.

In this day and age, most computer users are getting very familiar with the automated update programs … even Dell has instituted a very impressive one that I now have on my new laptop.  In the last couple of weeks it even told me about a new version of the BIOS for my laptop … and handled the download and installation.  A while ago I launched iTunes … and it told me there was a new version … and handled the update.  And yes … Windows told me about some new patches and automatically downloaded and installed them.

I’m always shocked when I see a company that employs talented product management and software developers who seem to have no clue about how to integrate this automatic update functionality.  AT&T?  Sierra Wireless?  You have to be kidding me … I even had clicked the little menu item about checking for updates … but couldn’t decode the landing page I was taken to.  No … I do not want to read a web page about updates … I want you – the software developer – to simply implement some code that checks with my machine, and then your servers, and lets me know there are updates to apply.  I then want your software to nicely handle the update … and yes, even tell me to reboot if I really have to.

As for their business?  They would probably see less technical support calls (two from me … one lasting almost an hour!), more customer satisfaction (I’m still a little pissed off about what I had to go through!), and even get a bunch of analytics about their user base, what versions are out there, when they are using the software, etc.

I believe that as we continue to embrace technology, and software continues to evolve, the winners are going to be companies that create products that are easier to maintain and that provide an improved customer experience.  If you are a software developer, you might consider how you can reduce the software version complexities … or make them go away completely!  It’s all very possible.