Scott Hanselman

Virtual Camaraderie - A Persistent Video "Portal" for the Remote Worker

July 22, 2009 Comment on this post [14] Posted in Remote Work | Tools
Sponsored By

18737888 Working from my home office is nice, even when the babies are pounding on the door screaming, but sometimes I really miss random hallway chatter. The sense of folks around...stopping by your office and saying "hey, I was in the neighborhood."

Chris Sells is in the same boat. For a while we tried to build robots and even lash laptops to the top of Roomba Vacuums. We've tabled those ideas with concerns over security and battery life.

Instead, Phil (in Washington) and I (in Oregon) are trying an experiment. I'm going to be his office mate for a little while. We've each setup dedicated machines in our respective offices with inexpensive but high-res web-cams on each monitor. We'll keep them going during work hours so folks can stop by 42/3839 (his office number) and say hello. Certainly we'll mute it here and there when appropriate, for privacy.

How To Make It Less Creepy

Here are some important points to make, although it might be obvious to you, they weren't initially.

  • We dedicated a machine/camera each to this exercise, rather than using our existing machines. This is important because it reinforces the "Portal" aspect. This is an appliance, a hole in space, not my main, or even secondary computer.
  • The cameras don't point at our faces. Because that would be creepy. If he's my cube-mate, when I look over, I should see the side of his head. In both cases we set it up so we have to push our chairs back and turn our heads to see the other person. Just like a cubicle.

Steps to Making a Portal

We're using Skype for this example, but you can use your favorite Video Calling software, of course. We're NOT using Office Communicator because our machines are not on the domain and they are very locked down. Single-purpose appliances, really.

UntitledFirst, we setup local users, not administrators on each machine. We didn't domain-join the machines, and we set the users to only be allowed to run Skype using Windows 7 Family Controls.

Second, we made two Skype Users, for example PortalDude1 and PortalDude2. On each desktop we made a new shortcut in the format callto://PortalDude1 and callto://PortalDude2 and set the icons to be large. This way if the connection is dropped, anyone can stop by and start it.

Third, each user should add the other to their contact list and have only one contact.

Fourth, next, go into Skype Options and into Privacy. Set the options such that these are true:

"Only allow people who are in my contact list to contact me"

and

"Automatically answer calls from people who are in my Contact List"

and finally, and most importantly:

"Automatically Send Video"

IMG_0489These are the magic three options. With this setup, your will have one contact, you, and when you call each other the call will be auto-answered and the video will start.

Also, be sure to change your Power Options to make sure the machine doesn't fall asleep!

If you have a fast machine and good bandwidth you'll get 640x480 (DVD quality-ish) although congestion on the network and make this quality level come and go. We're still experimenting with me being VPN'ed in or not and if it improves the portal.

Related Links

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Hanselminutes Podcast 171 - The Return of Uncle Bob

July 21, 2009 Comment on this post [24] Posted in Agile | Podcast
Sponsored By

Robert C. Martin My one-hundred-and-seventy-first podcast is up. Scott and Uncle Bob meet again, this time in Norway and in person. Uncle Bob tries to answer the question Are You Professional. Scott and uncle Bob chat about software craftsmanship.

Links:

Subscribe:
Subscribe to Hanselminutes Subscribe to my Podcast in iTunes

Do also remember the complete archives are always up and they havePDF Transcripts, a little known feature that show up a few weeks after each show.

Telerik is a sponsor for this show!

Building quality software is never easy. It requires skills and imagination. We cannot promise to improve your skills, but when it comes to User Interface, we can provide the building blocks to take your application a step closer to your imagination. Explore the leading UI suites for ASP.NET and Windows Forms. Enjoy the versatility of our new-generation Reporting Tool. Dive into our online community. Visit www.telerik.com.

As I've said before this show comes to you with the audio expertise and stewardship of Carl Franklin. The name comes from Travis Illig, but the goal of the show is simple. Avoid wasting the listener's time. (and make the commute less boring)

Enjoy. Who knows what'll happen in the next show?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Upgrading my Lenovo W500 to a OCZ Vertex 250GB SATA II Solid State Disk (SSD)

July 18, 2009 Comment on this post [23] Posted in Reviews
Sponsored By

It's an old metaphor I've used for years, originally stealing it from comedian Larry Miller, but it's time to use it again, this time in reference to Hard Drives and SSDs.

The difference between an SSD and a regular Hard Drive is the difference between shooting a bullet and throwing it.

Sweet wondrous universe, it is. Remember that Lenovo W500 from last week? It's a great machine, truly. The best laptop I've ever had.

Here's my Lenovo W500's Windows Experience Index (WEI) under Win7 RC.

Performance Information and Tools (2)

Note the 5.9 under Hard Disk. Here's that same machine using the PerformanceTest Disk Benchmark. My computer is the LAST one in each list, the green one, marked "This Computer." I've compared it with other people's results on the same Lenovo.

PerformanceTest 7.0 Evaluation Version

Looks like 68.6 megs/sec Seq. Read, 43 megs/sec Seq. WRite and 3.5 megs/sec Random Seek+RW.

Here's the same machine after I backed it up with my Windows Home Server, put in an OCZ Vertex 250GB Sata II Solid State Disk (SSD) and restored it.

Aside: Also available in sizes from 32 gig for $300 and up. The 256gig, while spendy, is the best deal. Others, however, prefer the 120gig for about $350 as the best price point.

The drive looks to your machine like an SATA II hard drive and it's already the same shape, so I just plugged it in and it was recognized as a Hard Drive. I didn't need to do anything special to get the computer to "recognize it."

Performance Information and Tools SSD

Notice the 7.3 (out of 7.9 possible) in the WEI now. Here's the PerformanceTest results:

PerformanceTest 7.0 Evaluation Version (2)

Now we see 110.8 megs/sec Seq. Read, 82 megs/sec Seq. WRite and 40.3 megs/sec Random Seek+RW. No physical parts to move around!

Joel Spolsky SWEARS by SSDs and told me it was the single most important upgrade one could do to take a machine to the next level. I hear he's bought new ones for his whole office. Expensive, a bit, yes, but it looks like my disk speed will be at least TWICE as fast, so you can do the math as to the number of minutes I'll save per day.

If you value your time at, say, $100 an hour, and you can save 10 min day total, that's $16. The $650 drive will pay for itself in about two work-months. It's worth your money, from what I can tell.

My Win7 laptop boots cold to password in 10 seconds now, enter password, then working desktop in 6 more seconds. Woot. I wish I had money to put an SSD on every machine. Here's hoping the prices go down.

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Windows Home Server Twitter Notification Plugin

July 15, 2009 Comment on this post [7] Posted in Coding4Fun | Home Server | Source Code
Sponsored By

A while back, the very wise Brendan Grant sent me some sample code that would use Twitter to report the health of one's Windows Home Server. I always meant to update the code to use TweetSharp to talk to Twitter, as well as add some robustness for connected/disconnected scenarios, but I'm just never going to get around to it. Instead, here it is as he sent to me.

There's a REALLY vibrant community around Windows Home Server plugins and if you've got a WHS and you want it to do something that it doesn't do, I'd encourage you to jump in.

Even as I'm posting this, I'm sure there are better and more interesting implementations. However, I like what Brendan has done to abstract away the core COM-based API of WHS for use in managed code.

Here's the full program...note again that the PostTweet() method is hacked together and should use a more robust technique:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using System.Xml.Serialization;
using Microsoft.HomeServer.SDK.Interop.v1;

namespace Twitter_Test
{
class Program
{
static string username = "";
static string password = "";

static void Main(string[] args)
{
IWHSInfo info = new WHSInfoClass();
//Register application name
info.Init("WHS Twitter Client");

NotificationCallbackClass notificationClass = new NotificationCallbackClass();
//Register notification callback class
info.RegisterForNotifications(notificationClass);

//Check current state
Console.WriteLine("Current State: " + notificationClass.GetHealthState().ToString());

notificationClass.HealthChanged += new EventHandler(notificationClass_HealthChanged);

Console.WriteLine("Monitoring for health changes. Press to exit.");
Console.ReadLine();
}

static void notificationClass_HealthChanged(object sender, HealthChangedEventArgs e)
{
Console.WriteLine("Current State " + e.Health.ToString());
PostTweet(username, password, "Your Windows Home Server's health is now: " + e.Health.ToString());
}

private static Status PostTweet(string username, string password, string message)
{
string user = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(username + ":" + password));
// determine what we want to upload as a status
byte[] bytes = System.Text.Encoding.ASCII.GetBytes("status=" + message);
// connect with the update page
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");
// set the method to POST
request.Method = "POST";
// set the authorisation levels
request.Headers.Add("Authorization", "Basic " + user);
request.ContentType = "application/x-www-form-urlencoded";
// set the length of the content
request.ContentLength = bytes.Length;

request.ServicePoint.Expect100Continue = false;

// set up the stream
Stream reqStream = request.GetRequestStream();
// write to the stream
reqStream.Write(bytes, 0, bytes.Length);
// close the stream
reqStream.Close();

HttpWebResponse response = request.GetResponse() as HttpWebResponse;

StreamReader sr = new StreamReader(response.GetResponseStream());
string s = sr.ReadToEnd();


XmlSerializer ser = new XmlSerializer(typeof(Status));
object o = ser.Deserialize(new StringReader(s));
Status status = o as Status;

return status;
}
}
}

There interesting part is the Eventing part where he makes changes in your Home Server turn into .NET Events via callbacks. Check the code for details. You can get events when Physical Disks are changed, when Backup States change, or when basically anything happens. There's a number of folks on Twitter already who have their Windows Home Servers tweeting.

If you've got, or you're using a plugin to report your Home Server status on Twitter (or SMS or whatever) leave a comment and I'll update the post! I'm sure there are better solutions than this little sample.

Here's the code if you want it, and remember, it may kill your pets. If so, don't blame me as I'll deny everything. It's a sample you found on the Internet, what did you expect?

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Burnt Day - I need a Do-Over for Monday

July 15, 2009 Comment on this post [34] Posted in Musings
Sponsored By

33_15_10_prev Whatever you do, don't tell my Boss because I'm just sick about this. Like physically ill. I have a confession to make.

I got nothing done on Monday. I need to call a "do-over" for the entire day.

The whole day was a comedy of errors and meetings. I had meetings (phone calls, virtual camera things) from 9 to 11, and I'd blocked 11am until 5pm to work on something specific and important. (Hence the blocking off of time.)

For whatever reason, I was totally unable to log into my laptop. It's never happened before, and I'm pretty technical. ;) I ended up having to drive an hour to the local Microsoft Portland office to try logging in while plugged into a real network.

This got me part-way there, and at this point we're pushing past noon. I then spent the rest of the day messing with my laptop that apparently has a bad video card (it's a hybrid laptop with two cards, one from Intel and one from ATI/AMD) because I was getting video corruption, lockups and general evil. This is what I get for running Beta ATI drivers, of course.

I literally fought with this until 4pm. I could have used VMs, my backup laptop, etc to get my work done, but this was my main machine we were talking about. I couldn't let it go and put it out of my mind.

By 6:30pm I'd missed dinner with the family, fixed my laptop and got nothing done.

I just feel SO bad when I burn a day like this. It seems like it happens about twice a year.

I wanted to get this off my chest and declare this post an "open thread."

Dear Reader, please, regale me with stories of how YOU have burned entire days so that I might some how justify my own toasted day.

* Fire Photo from FreeFoto.com

About Scott

Scott Hanselman is a former professor, former Chief Architect in finance, now speaker, consultant, father, diabetic, and Microsoft employee. He is a failed stand-up comic, a cornrower, and a book author.

facebook bluesky subscribe
About   Newsletter
Hosting By
Hosted on Linux using .NET in an Azure App Service

Disclaimer: The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.