Chirp the Twitter Conference: a Retrospective

The Twitter Chirp conference just ended. If any of you have been following it online you may have heard the news that they’ve detailed @Anywhere, provided a glimpse of their business model, and announced personal streams that will be available soon.

I’m writing this to talk about some of the behind the scenes stuff that you couldn’t get from Justin.TV. Although this was a developer conference, it seemed there was really only two types of people I met there: business development people trying to sell me something, or little kids that are looking for jobs.

Business development people came in really two buckets, and from all the conversations I had at Chirp it seems that these are the applications that a lot of people are currently working on. 1) CRM 2) Analytics. Granted these were two of the fields that the VC’s were most interested in expanding out, I was a little disappointed in the creativity from this group of people. The CRM ranged from companies like CoTweet who are really the 800lb Guerrilla when it comes to Twitter CRM. They’ve managed to figure out how to leverage workflow into a corporate twitter environment. The other end of the CRM spectrum was just the people that promised to store all tweets with your company name in it. They then provide some value add by utilizing a proprietary search engine developed by some number (usually 1-3) of PhD’s.

The kids looking for a job ranged from the jerks:
    REDHEADED BASTARD: Have you built a Twitter client I’ve heard of?
    ME: No, but you’ve heard of the clients I have built Twitter apps for.
    REDHEADED BASTARD: goodbye.
To the kids trying to make a name for themselves:
    GREG: I write games based on where you are, kind of like a photo scavenger hunt.

The content was really good, except that the Twitter employees that really knew what they were talking about were surrounded by all the actual developers that went to the conference, but asking dumb questions like "Why only 140chars?" Leaving me to talk to the staffing coordinators and recruiters who really didn’t want to talk to anyone except other Twitter employees.

The @Anywhere stuff is mindless to implement. It has three main areas:

  1. Twitter Connect – like Facebook Connect only for Twitter
  2. Hovercards – Annoying cards that flip up with contact information when you hover on something like this: @spatacoli
  3. Tweet Box – Place a box on your web page so people can tweet directly from your site without having to leave the current thought flow.

You’ll see some of this implemented on this site soon. I’m currently rewriting all of it. Check out the docs and you’ll be up and ready in about 5 minutes

The business model has two pillars: corporate accounts (think competition to CoTweets) and paid tweets. Companies write up a tidy 140 and post it, then select that tweet as the ad that we want to serve up. Then Twitter has a magic formula that they are calling resonance to determine how and when they show that Tweet at the top of a stream. At first it’ll only appear in search results, later they’ll add it to the streams that things like Seesmic and TweetDeck use to display their feed. The developers have the option to use the ad stream or not, but there was no discussion about the penalties of not using the ad streams. If you use the ad stream the application developer gets 50% of the ad revenue. So that’s pretty cool.

What’s the one thing that really got me excited?

Personal streams will be the future, but they only gave us access to that during the conference. I hope we’ll see it out soon. The talk around this was inspiring. Instead of thinking about the "Real Time Web" or Web 2.0, think about the "Right Time Web". That means information for you at the right time at the right place. I could tweet right now that I bought a new camera that I really like, but at the moment you read my tweet, you are at work and don’t care. However, three days later you are at Best Buy looking for a new camera. That would be the right time and place for that information. Figuring out how to surface that information at that time and place is where true innovation will take place in the next 2 years.

Outlook 2010 with Exchange 2010: Cool Feature

There’s a cool new feature that I stumbled across today in Outlook 2010. I was writing a reply to an E-mail in a Microsoft Internal Discussion List. One of the people on the To line has an out of office setup so this appeared at the top:

image

That’s pretty cool. Rather than send the E-mail, wait for the auto-reply to come in, Outlook 2010 will just let me know right up front that this person is out of the office! I know there are a lot of other great features in the new version of Office, but it’s the little details like this that will make it a killer upgrade.

In other news, I have recently pushed live a new version of the Office 2007 Real Life Tools web site. There’s 9 demo videos showing real life ways of using Office 2007 at home or in a home office. Find the version of the site for you here:

US English:
http://www.microsoft.com/office/2007-rlt/en-US/Office

Canadian English:
http://www.microsoft.com/office/2007-rlt/en-CA/Office

Canadian French:
http://www.microsoft.com/office/2007-rlt/fr-CA/Office

UK English:
http://www.microsoft.com/office/2007-rlt/en-GB/Office

Australian English:
http://www.microsoft.com/office/2007-rlt/en-AU/Office

France French:
http://www.microsoft.com/office/2007-rlt/fr-FR/Office

I have four more locales coming in August. So check out Office 2007 for now, but do Office 2010 when it’s released sometime next year.

Installing Windows from a Flash Drive

I did not come up with these instructions. I found them on the web, but because I’ll never be able to find them again when I need them, I thought I’d post the instructions here for my own reference.

From the command line run these commands:

  1. diskpart
  2. list disk
  3. select disk x
  4. clean
  5. create partition primary
  6. select partition 1
  7. active
  8. format fs=fat32
  9. assign
  10. exit
  11. xcopy D:\*.* /s/e/f E:\
  12. robocopy D:\ E:\ /MIR

 

There are a few assumptions made in this. The first is that the DVD drive containing your Windows boot disk is in drive D. The second assumption is that the flash drive shows up as drive E. If either of these assumptions are wrong change line 11 accordingly.

Beyond that look at lines 2 and 3. Line 2 will list out all the disks in your system each with their own disk number starting with 0. Look through that list and find the number associated with your flash drive. Then in step 3 replace the “x” with the number associated with your flash drive.

Because I haven’t tested this out yet line 11 is still an xcopy. My personal preference would be to use robocopy and when I try this out I’ll use robocopy. That command will change line 11 to this:

robocopy D:\ E:\ /MIR

Again, I’ll try this out and report in this entry if it works or not.

UPDATE: I was reviewing the xcopy command and the options are a little strange. /s includes all subdirectories except empty ones, and /e includes all subfolders including empty ones. It doesn’t make sense to include both options. Also /f displays the full name of each file as it’s copied. This may or may not be needed/desired. I’m currently testing the robocopy version and there doesn’t seem to be any problems.

UPDATE 2: I was successful in using robocopy instead of xcopy. Step 11 above has been changed. All in all the install took 10 minutes! Now I need to try this on a netbook.

UPDATE 3: Here’s the link to the original post describing how to do this: http://kurtsh.spaces.live.com/blog/cns!DA410C7F7E038D!1665.entry?wa=wsignin1.0&sa=50757250

Hyper-V Integration Components… Oops

We are going to rack this up to experience. I was trying to figure out today if I have the Hyper-V Integration Components beta installed, the ones that came with Windows Server 2008 RTM, or if I’d upgraded to the RTM version of these components. Well dummy me, I double clicked on the entry in Add/Remove programs and what I got was the system removed the components lick-it-y split and told me to reboot. What, no confirmation?

In other news, after the reboot the virtual machine Blue-Screened and when I repaired it I got a Windows Activation found an “unauthorized change” and it now needs to be reactivated. Activation on Hyper-V sucks ass. If you are working with virtual machines on Hyper-V be warned that monkey-ing with the Integration Components will force you to activate again.

This is double bad because now I have to activate to use the machine, then I’ll re-install the Integration Components (I need network connection man) and then this weekend I was planning on upgrading my Hyper-V server to the new Windows Hyper-V Server 2008 OS that is free from Microsoft. I’m planning that because I am currently running the RTM of Windows Server 2008 that came with the beta of Hyper-V. I want full RTM software running over there. So what does that mean? Well, as of right now this is what I’m looking at doing:

  1. Activate Windows
  2. Install Beta Integration Components
  3. Activate Windows
  4. Use the VM until I am ready to get rid of beta
  5. Remove Beta Integration Components
  6. Activate Windows
  7. Install RTM Integration Components
  8. Activate Windows

With my MSDN licensing on Windows Server 2008 I’ll use 4 of my 10 activations on this one server alone. That sucks. I guarantee I’ll have to call the activation center before Monday.

Update: Turns out I’m hosed. I need to install integration components to use the network. I have to log in to install integration components. I have to activate to log in. I need network connection to activate.

It must be nice to be an MVP (or how I stopped worrying and learned to love Vista)

A couple weeks ago a Microsoft MVP screamed at the top of his blog that he’d give Vista 2 more weeks and then he’d leave for the murky waters of XP forever. Well some folks at Microsoft jumped onto the case and figured out the problem. I have co-workers and friends and acquaintances and people that I probably won’t ever talk to again tell me that they hate Vista so much that they’ll never use it. In some cases they never used it to begin with, but that’s a different tale. This guy rants about a sidebar app that he installed on his computer and developers jump on the case to solve the problem. I guess at the end of the day Vista doesn’t suck as long as you know people at Microsoft to help you make it work. Too bad all those other people out there will never gain the knowledge to make Vista work.

As for the second part of his rant, he states that Windows 7 will suck simply because it is built on the same core code that Vista is built on. That tells me that he really hasn’t given Vista much of a chance. Sure, the sidebar sucks up system resources like nobody’s business, and Aero Glass also takes more than its fair share of system resources. There isn’t anything that says you have to leave them running. My wife got a new Dell computer at work the other day. She was happy that it has Office 2007 on it, but she didn’t like how slow it was. She brought it home and I turned off the sidebar and changed the system theme to Windows Classic. That computer now screams! She even said it’s faster than her old computer, but I think that’s just because she hasn’t installed iTunes yet.

What’s the point, well the point is that the Vista core is really good. If you are contemplating a new computer you really should get Vista, but unless you have 8GB RAM and the best video card out there, I wouldn’t turn on all the goodness. Based on what I’ve seen in Vista, and remember I’ve been using Vista a lot longer than 95% of you out there, it is a killer Operating System. Windows 7 is going to kick ass based solely on what I know Vista can do. Then again, I haven’t even tried Windows 7 yet, but I’m betting I’ll have a copy in my grubby little hands in October. I’ll let you know more then.

In the meantime, don’t believe the Apple hype. Vista is a really good operating system.

Now Loading… a Public Service Announcement

image This is a web page. The browser says that it is done. There’s nothing obvious going on with the screen and for all that I know the page just won’t render. However, if you look really closely at the top left, in browser default font there is a number that is counting up. Eventually it reaches 100 and the site finally appears, but considering I have a truly blazing Internet connection I don’t usually expect to wait 30 seconds to see anything on a site. The thing I really dislike about Flash and Silverlight sites is the loading time. I’m guilty of it too as I had to put a “Now Loading” screen in Server Unleashed, but I at least gave the user something to let them know the page is actually loading. This example of a loading screen is unacceptable from P.F. Changs. All of you web developers and designers out there, please remember that if your site is going to take more than 5 seconds to load even on a really fast Internet connection, let the user know that something is going on.

Technocrati Blog Claim

Technorati Profile

Sometimes Analytics Suck

image I recently added Microsoft Analytics to my site. I wanted to see just how few people read this site. In general I'm surprised that there are actually a few of you out there. My other web site does a bit better, but that's usually because either someone is looking for a lame character from a TV show, or they've linked from a radio station in Florida. Either way you may have been faced with this Security Warning pictured at the right. The problem is that my site isn't in your Trusted Sites list (rightly so you don't know me) but Microsoft automatically added live.com to that list for you. The 1x1 blank gif that Microsoft Analytics adds to my site to perform that tracking comes from live.com and so is doing a cross trusted site query that throws this message up... on every single page. :-@

Please leave me a message in the comments to let me know if you are experiencing this and if it is annoying. I'll then be forced to implement some other Analytics system. If you have any suggestions (other than Google) let me know.

Command Prompt Candy

I'm known for having a console that looks a little strange. I prefer the red font on black background. Although I'm trying a super dark green background with green font at work. My home system looks like this:image

The problem with it is that I'm getting pretty bored with the font itself. Today I switched to Lucinda Console as it is the only other font allowed in the settings. Then I got home and I found this blog entry from the IEBlog. It describes how to set the Consolas font for use in the console window. Now I have some nice new command prompt candy:

image

We Know Job One, What is Job Two?

As a software developer the first thing you need to think about when writing new software is, "Why am I writing this code?" If, after popping the why stack, you don't answer, "because it solves a customer story" then you are doing something wrong. I talk about this a bit in an old topic, "1, 0, 0 in x seconds", and Coding Horror had a post entitled "Can your team pass the elevator test?" last week that talks about something similar.

Today, I want to focus on what is job two. For me Job two is a simple three letter acronym; S.U.M. Sure you can write code in no time that will pass the "Why am I writing this code" test, and I bet you could hire a high school kid to do it in no time flat for very little money. The next step is hard though.

S.U.M. stands for Security, Upgradability, and Maintainability. I know the second word isn't really a word, but it fits my acronym. Most college classes now do a good job of teaching security, and anyone that's been developing for more than a year has thought about it. Second to getting the application to do what it is supposed to do, security is the most important task a developer needs to think about.

After Security comes upgrade-ability, or the resiliency of your application to not break when you make changes to it. If you practice a good agile method of constantly refactoring your code. This helps make changes effect as few moving parts as possible. As you are coding, an experienced programmer will find common patterns and pre-factor those to save time later.

This leads into the final step, Maintainability. Someone is going to have to maintain your software, and although part of maintenance is adding new functionality, another part is tracking down those remaining bugs that can be nasty. If your code is laid out well, you use common coding standards, and you've documented your code the task of tracking down bugs or bringing another engineer up to speed on your code can be less difficult.

The problem with "Job Two" is that nobody wants to pay for it. A customer will comment on the fact that if job one is getting the software to work to their specs then there really isn't a job two because the software is done. In my professional career I've found that companies that are licensing their software and charging for yearly maintenance will usually care more about job two than companies that charge for time and materials. In fact I've found the most frustrating aspect of being independent is to sell my clients on job two. This becomes especially true when they have it in their mind that job one is all they need and they can hire a high school student to do it.

Maybe I'm not seeing something here, but how do you sell Job Two to your clients?

 

Edit: I had a link to a blog post titled "Popping the Why Stack" that exemplified the Why am I doing this? Question nicely. However, I now see that link is dead. The link to Coding Horror's blog from last week is still good though.