The future of things

I’m sitting in an aisle seat as I fly from Atlanta, GA to Boston, Ma enjoying browsing the web on my iPad at 30,000 ft. When I was a kid I only dreamed that I’d have a computer the size of a tablet of paper that could pull me information wirelessly in an instant. But to my amazement it’s a reality! Funny thing is I thought I’d be a lot older when it would be possible.

Not only am I writing a blog post, but I’m carrying on three separate chat sessions with people in three different parts of the U.S., perusing the latest e-books on Amazon and pre-ordering Jimmy John’s to be delivered to my hotel room after I arrive.

These are just some of the possibilities that ubiquitous computing and ubiquitous Internet access bring to our lives.

Now, the only thing left is to perfect the transporter so I don’t have to waste 6 hours flying cross country. When that happens, I’ll really be living my dreams!

The Perfect Sub $350 Home Theater PC

If you ask my friends, they’ll tell you that I am always searching for the perfect home theater pc and the cheaper the better. I’ve tried Mini-ITX mother boards, slim-line PCs, Fancy full-sized theater cases and a whole host of other systems. But, as you’d guess all of them have their short comings; under powered, too expensive, too big or too loud. I really haven’t been able to find the perfect low-cost system with enough power to play back High Definition MPEG-4 Video that is small and quiet enough to put in my entertainment center. That was until I happened to find the Acer Aspire Revo AR1600-U910H Desktop PC this past weekend at Fry’s Electronics. This system is based on the Atom N230 processor and the NVIDIA ION LE-Graphics processor giving you the ability to tackle any type of video playback all for under $200.

Acer_Revo

Below are the Acer Aspire Revo Specifications:

  • Box Contents – Acer AR1600-U910H Desktop PC, USB Keyboard, USB Mouse; Software Bundle – Windows XP Home with Service Pack 3, Microsoft Works, Microsoft Office Home and Student Edition 2007 Trial, McAfee Internet Security Suite 2008 60-Day Trial
  • Intel Atom Processor 230 1.6GHz
  • NVIDIA ION LE Graphics
  • 1024MB DDR2 RAM
  • 160GB 5400RPM SATA Hard Drive
  • 512K L2 Cache, 533MHz FSB
  • 10/100/1000 Gigabit Ethernet LAN
  • Back ports – 4 x USB, RJ-45 (LAN), VGA, HDMI
  • Dimensions – 7.1 (H) x 1.2 (W) x 7.1 (L) inches
  • EnergyStar Compliance
  • Expansion slot – Mini PCI Express
  • Front ports – 2 x USB, High Definition Headphone Jack, Microphone Jack
  • High-Definition Audio Support
  • Multi-in-One Digital Media Card Reader MMC, SD, MS, xD Picture Card
  • Ultimate Small-Form Factor Design Case
  • Weight – 9 lbs.

Add a Windows Media Center Wireless Remote for around $50 and a copy of Windows 7 Home Premium upgrade for around $100 and you’ll have the perfect Home Theater PC setup for around $300.

So Long! And Thanks for all the Fish!

Everyone,

I want to thank you all for making the last 9 years at Sabre/EDS/HP an experience that I will never forget. It has been a whirl wind of activity which lately has seemed to be a blur as we have taken the Transportation SOA from a concept and turned it into reality.

Several memories stand out, which I’d like to share and hopefully give those of you who worked with me a chuckle as you remember the good ole times

  1. No, BAASIC was not responsible for the baggage debacle in the new Denver Airport when it opened.
  2. There is no room for weekends and Holidays when you are working a pursuit.
  3. Phoenix AZ is really hot, no matter what time of year you are there, especially when you are trying to merge two airlines and meet an unbelievable deadline.
  4. It is always hard to shove an Elephant down a 16K network connection.
  5. Yes, I always love to name my projects after annoying cartoon characters.

To all the developers, remember my motto “Make it work, Make it work right, Make it fast, Make it pretty and Make it maintainable” following it will always remind you to take things in small steps, which I have found to be the key to tackling anything in the development world.

To all the managers, look for the developers who are excited to dive in, work hard and take on new technology, for there you’ll find the next group of developers who will always make you successful.

Again, I want to thank everyone, without you I’d still just be coding in a cubicle and not the success I am today! I’ll miss you all and I hope our paths will cross again in the future!

Best Regards,

Jim Lavin

Securing Your Apps and Web Services with the Geneva Framework Videos

I’ve just finished a six-part video series titled; “Securing Your Apps and Web Services with the Microsoft Geneva Framework”. I’ve posted them on my new video blog at http://www.codingsmackdown.tv/. Check them out and leave me a comment.

Securing Your Apps and Web Services with the Geneva Framework

I was fortunate enough to be invited to speak at the DFW Connected System Users Group Meeting for the month of March. I agreed to provide the group with an overview of Microsoft’s Geneva Framework which allows you to secure your applications and web services using a claims-based model.

So, to provide the best presentation I could I spent some time going through the PDC 2008 Geneva presentations and compiled a slide deck that provides a good high-level guide to how you can secure your apps and services with Geneva.

I also decided that instead of just going over the samples provided with the Geneva CTP, I would build a sample of my own that showed a couple of things that aren’t quite apparent from the samples and documentation. It consisted of an Active Security Token Service, a Passive Security Token Service, an ASP.NET Web application that uses web based single sign-on to authenticate and authorize users, and a web service that uses identity delegation to authenticate and authorize users.

I felt the presentation went pretty well and from the feedback I received from the group, I think they liked it quite a bit as well.

I want to thank those that attended for the great questions and participation and I hope I get a chance to present again in the future. As promised, below is my slide deck and source code. Please contact me if you have any questions, I’d be happy to help you out.

Securing Your Applications Slide Deck

Sample Source Code

Another Home Run for Roku

First Roku came out with a digital media player the size of a small external hard drive for $99 that allowed you to stream Netflix On Demand content to your TV.

roku__amazon_2

Then Roku provided High Definition output giving you the ability to watch much of Netflix’s content in High Definition.

Now, Roku has teamed with Amazon to provide the Amazon.com Video On-Demand Store on the Roku player.

roku_amazon_1

This week Roku is pushing a firmware update that give you the ability to surf the Amazon.com Video On-Demand Store from the comfort of your living room couch in a very comfortable lean back mode of entertainment.

Setup is easy, all you need to do is go to www.amazon.com/roku and link your Roku box to your Amazon.com account and you’re done.  Then, you just navigate to the Amazon.com On-Demand Video menu option and you get a very nice menu system that givesyou access to over 40,000 Movies and TV Series that you can either rent or buy to watch on your Roku device.

This in my opinion is the start of the future of digital content. Way to go Roku, my hat’s off to you!

WTF Google! Pickup After Yourself!

Yes, I am like all of the Geeks out there. I eagerly downloaded the Google Chrome Beta the day it hit the Internet. I’ll admit it, I live on the Bleeding Edge of technology! I’m an Early Adopter! I love being one!

It was great to see something new in the browser world, especially with all of the neat features for Google Apps.

But I soon tired of it, mainly because it didn’t work well from behind a corporate firewall. So, I uninstalled Chrome and thinking the developers at Google were responsible developers, like those at other large companies, I thought nothing more about it.

But a couple of weeks ago, my laptop started to slow down, memory was getting sparse, even though I had 2 GB installed. How could this be? I don’t run that many programs at once. I don’t even run virtual machines on my laptop any more since I built the Lavin Tera-Server. How could all of my resources be disappearing?

This plagued me over and over. It got so bad, I had to cancel a client presentation in midstream because my laptop took 15 minutes to launch a simple webpage! I thought it was a corrupt page file, a rootkit or even a trojan app running amok on my laptop. I did everything to get my laptop cleaned, short of reformatting the hard drive and staring over.

Then, I sat down at my laptop one night  and noticed the hard drive light pounding away even though I had no apps running. What could be going on? Why is my drive light on constantly?

I brought up Task Manager and clicked on the CPU column twice to see what was eating up all of the CPU. There it was, six instances of GoogleUpdate.exe running on my laptop consuming all of my memory! Why is this happening? I thought I had uninstalled Chrome and I don’t use Google Gears or even the Google Toolbar. Is this really GoogleUpdate or a cleverly disguised trojan?

I pulled up windows explorer and quickly searched for GoogleUpdate.exe from the root of my hard drive. It was nowhere to be found! Next, I tried searching for Google, this time I got nothing but trash. Where could this file be? Has a hacker hidden it from me in a hidden partition! My paranoia was running wild!

Then I pulled up Fire Fox and searched the web for “GoogleUpdate.exe” and “Multiple Instances”. Up popped several posts in the Chrome Help and Troubleshooting Forum.

It seems that several people were having problems with GoogleUpdate.exe failing and spawning additional instances of itself over and over. But I thought to myself, I’ve uninstalled Chrome why is this happening? When you uninstall something it should clean up everything it installed and only leave the files it created on your behalf. The install utility should not be leaving portions of the application on your machine!

So, I did some more searching and found out that GoogleUpdate.exe was located deep in the bowels of my hidden AppData folder, which is why Windows Explorer could never find it, by default files in hidden directories are not shown to you, no matter what!

So I made some quick changes to my settings and spelunked down into my AppData folder and found several directories that Google Chrome did not clean up during the uninstall. I deleted them.

Then I got to thinking, something had to launch GoogleUpdate.exe, I checked for Start menu items, nothing! So I checked the registry and searched for GoogleUpdate.exe, I came across at least 6 locations where the program had inserted itself and was never cleaned up, including a line in the RUN Entry which caused GoogleUpdate.exe to launch every time someone logged on to my laptop. I diligently deleted all of the registry entries and then my problem cleared up. Memory usage back to normal,  hard drive only lighting up when I was actually doing something. The response time was great, once again! Wonderful!

Now here is my question for Google, WTF Dudes! Why don’t you clean up after yourself? I know if I published software, be it Beta or not, I’d damn make sure that when I uninstalled the application I left no trace. And if something was running when I did the uninstall, I’d kill the process so I could delete the files. Its not hard!

Why are developers so lazy! Why do we as consumers accept this? Its not right! If my refrigerator stopped working every time I opened the door, you know damn well, I’d take it back and ask for one that works. Why do developers think they are above simple tasks like cleaning up after themselves?

And Google, what kind of development shop are you running? I thought you were a multi-billion dollar software empire. How could you release such sloppy software? Is it because no one tested an uninstall of the software? That can’t be! Is it because you were cheap and outsourced the work to someone else? What is your excuse? And the fact that Chrome is in Beta is not an excuse! You’ve been running on that excuse for years and I haven’t bought it, not even for one second.

So Google, next time you come to my house (laptop), pickup after yourself when you leave, it’s the polite thing to do.

What is it with Devs and Firewalls?

I’ve only found one Twitter client that works properly from behind an Internet proxy. What is it with Devs today? Do they not know that there is a large population out on the Internet that would love to use their programs at work? And that most corporations do not allow direct access to the Internet?

 

So that every .NET Dev out there will know how to incorporate Internet proxy authentication into their code, I thought I would post the following simple steps:

 

1. Add 4 settings to your App.Config file:

 

UseProxy – Boolean, turns on and off the proxy code

ProxyUri – String, the URL to the proxy server formatted as http://proxyserver:port

ProxyUsername – String, the User Name to use to authenticate with the proxy server

ProxyPassword – String, the Password to use to authenticate with the proxy server

 

2. Add the following code to your Get or Post code to create a WebProxy and add it to the WebClient:

 

if (Properties.Settings.Default.UseProxy)
{
    WebProxy proxy = new WebProxy(Properties.Settings.Default.ProxyUri);
    proxy.Credentials = new NetworkCredential(Properties.Settings.Default.ProxyUsername,
                                              Properties.Settings.Default.ProxyPassword);
    client.Proxy = proxy;
}

 

That’s all there is to it! Not hard, pretty simple really, if you think about it. So with four application settings and no more than 7 lines of code, your too can incorporate Internet proxy authentication into your web-based Windows Form or WPF application.

 

 

Building the Lavin Tera-Server

Over the past few years I have built a collection of external hard drives totaling about 2.4 TB and trying to share them across the 5+ machines I have in the house is getting quite painful. Not only do I need network storage but I also need a virtual machine server so I can set up the various server configurations I use for development. Using virtual machines for development brings a whole new light to the game, not only can I have several virtual machines for the various development environments, but I can also stand up different server configurations to make sure my applications can play nice in a real world IT infrastructure.

 

I started looking into Home Servers and NAS devices and I thought to myself “These manufacturers have to be wacked to think I’m gonna spend $500 for a bare bones system without drives”. By the time I purchased the server and the drives I needed, I’d be close to $2,000 dollars, which is a little out of my budget.  I have a perfectly good mid-sized tower box with an Intel D975XBX motherboard and a Dual Core 2.2GHz processor, that currently holds 1.2 TB of storage all I really need to do is beef it up a little with enough memory to host the virtual machines and add the drive space I need to act as a network attached storage device for my home network.

 

So, I took a trip to my neighborhood Fry’s Electronics store and was able to pick up 4 Western Digital Caviar GP 1 TB drives for around $119 each. Now these are not the fastest drives in the world and they only have the standard 16 MB memory buffers on them, but who needs speed when all you’re doing is server up files on a network? With 4 of these drives I could have 3 TB of RAID 5 storage on-line ready to go in no time. I also picked up 4 DDR2 2GB PC42000 Memory Sticks to give me 8 GB of total memory, just enough so I could also host my virtual machines as well.

 

I have to give a shout out to the sales people at my local Fry’s because when I purchased the drives they were limiting them to one per customer, but they were able to get me out of the store with 4 of them, all at one time! Thanks Guys!

 

My total cost for the upgrade was just over $700, not bad for 3 TB of network storage and a virtual server to boot.

 

My next task will be to install Windows Server 2008 Standard Edition and get the Hyper-V role working so I can start to stand up some virtual machines.