A Life Essay

Some thoughts about growing up:

I’m very proud that you were offered a bigger role at work. I also understand that you have fears / concerns about taking it: this is part of growing into the world and becoming an adult. You may cite a fear of failure, but psychology experts will instead describe that as a ‘fear of success’ .. in either case, it is holding you back from becoming an adult and from being responsible for yourself.

Everyone grows up and into the world. Everyone gets their own place, creates their own lives; some bounce back home (called ‘boomerangs’) if they don’t get quite the start they need. I was a boomerang a few years back; my brokerage career came to an end and I ran nightclubs and bars for a few years. When I decided to get out of the nightlife, I started working in technology, first as a word processor, then in computer security and then into software development. During the word processor year(s), I found myself back at home with my folks; something that I never thought would happen.

You are just getting started in your life. Right now, you have a familiar and safe place to live. You contribute to the household and for that contribution have extended the illusion and the comfort of your childhood .. and this is just fine. You will always have a safe place here to rest your head, a refer / freezer to raid and speedy WiFi.

Time marches on, with our without us. You must align and extend yourself to what lies ahead. Whether you choose a career or a return to school, you have my support .. but you must do something beyond the status quo to continue your growth into the world. This something we’ll discuss in the next few days, so please think through the trail you want to blaze for yourself and we’ll talk about it.

Let’s see how it works out.

Hunter at Shorecrest

My Hunter is attending Shorecrest High School, in Seattle .. and we couldn’t be more proud of him. While transitioning to the mainstream can be a problem (for all .. the teachers are certainly working to do their part), he is really thriving.

I’m a bit late on this .. the snaps were taken in December. The short story is Boys versus Girls .. find a hidden picture .. get it to the gym floor.

Hunter found it first and made the delivery:

.. and then, he danced:

Four-Hundred Little Words ..

.. a day. Each and every day.

In four other occasions, I’ve committed to write something more often than taking a ten-month hiatus (ouch) from this blog. This is the fifth. I’m not trying to set any records, or say that “this will be the final time” or any such nonsense .. much the same reason I don’t set New Year’s resolutions. I just make a point to do what’s right: get to the gym, ride the bike, eat the right foods, smile at the right time, and so on.

So, as before, I’ll do my best to keep it up .. or you’ll see a sixth one of these. Let’s not do THAT again.

Windows Azure and the Information Worker

A while back (QUITE a while back, actually), Microsoft coined the term “Information Worker” .. a quick Bing search reveals:

The short version: an Information Worker (IW) is a non-developer person who works with the information exposed by applications and application activity by users.

That said, how would an IW benefit from Windows Azure? Reminding us all that Microsoft Excel is the tool of choice for those who want to slice-and-dice-data, that said, there are many ways IWs could benefit from information collected by applications and stored in Windows Azure:

    There are many more (there always are) ways to journey to the cloud.
    I’ll see you there.

Motorola LapDock 100

A few purposes for this post:

Lapdock™ for  MOTOROLA ATRIX™ 4GWrite a post on the My Shiny New Toy (the Motorola Atrix 2 4G) using the the LapDock.

Talk about the WordPress for Android application on the LapDock.

Talk about some of the other applications on the LapDock.

Talk about the LapDock.

Pretty clever device, overall. A nice keyboard (even though small, it’s bigger than the one on the device) and a 10.1" screen. Very handy. The device feels a lot like my Acer and Dell 10.1" notebooks; a tiny bit lighter as no hard drive.

Things that rock:

  • Having a screen
  • Having a keyboard
  • The battery (the battery charges the phone to capacity while connected)
  • Some applications, most notably, Firefox and QuickOffice
  • Other applications: The Email client, the WordPress
  • Keyboard navigation between applications is decent .. once you figure out the Function-row keys (hint: hold F1 to get back to the phone Home screen .. that was a seminal moment for me in application navigation).
  • Speaking of function row keys: the other icons on this row let you dim the screen, navigate media, audio volume and so on. Very nice.
  • The sync feature between the LapDock, WordPress and Windows Live Writer on my PC. While not perfect, the content flows between the applications rather nicely.
  • The Print Screen button works nicely.
  • The USB port (there are two) recognized my wireless mouse. Very nice.

Not so much:

  • Alt-Tab doesn’t work as expected when working with phone applications. The LapDock sees the phone as a single application.
  • To the point above, there are some inconsistencies as how to switch between applications .. in some cases, the Escape button takes you to the home page, in others, it acts as a ‘back’ button in the current application.
  • To that point, the Escape key may exit the current application.
  • Holding the F1 (Home) screen is manna to switch between applications. It’s reliable, and brings you up a list of currently-running applications.
  • I’d like to have more control over the battery; I can carry a spare phone battery, or charge my phone on my laptop .. I’d rather have more time on the LapDock and a dead phone battery than less time on the LapDock with a full one.
  • Speaking of battery, why doesn’t the LapDock charge from a micro-USB like the phone? I’m carrying yet another power brick.
  • The Delete key functions just like the Backspace key, removing the character to the left (instead of the character at the cursor). Ick.
  • Control-keys on the keyboard don’t quite behave as expected; Control-right arrow doesn’t leap from word to word.
  • Function keys on the keyboard don’t quite behave as expected; Function-page down, doesn’t. Function-Home takes you to the phone home screen; a bit annoying whist typing until you get used to it.
  • The Firefox browser is ‘seen’ by many applications as a mobile browser, and while powerful enough to function fully (including Adobe Flash), there doesn’t seem to be a way to override this perception on certain sites (Microsoft: I’m talking to you).
  • The USB port didn’t recognize my USB headset; while I get this, some device recognition (so I could search for a driver) would be nice.
  • The battery meter on the LapDock is a press-and-hold of the power button .. seems like there should be an app with a UI for that.
  • NO clue as to firmware updates for the LapDock on the Motorola site.

The LapDock is a new application platform and as such, is lacking in applications at the moment. The home page points you to a YouTube application and several others, but not as many as I’d like. The LapDock can run applications installed on the phone, but it does so in a stretched-screen view; usable, but not optimal, as the text is LARGE, and only allows for about a dozen lines. Let’s hope that the platform catches on, or that it is easy enough to write for the platform by managing the form factor.

On to WordPress. It’s great to have a keyboard and a full screen. It’s also great that WordPress saves drafts to my account when online .. this makes it handy to stub a post from the LapDock, save it to draft and then tidy it up in Windows Live Writer when back on the PC. I need to play a bit with this; for an archival post, I’d probably run it through WLW before posting .. for something of a more whimsical nature, this client would work just fine. Note: this is an archival post .. so I will pass through WLW.

I’m not as impressed with the editing experience of the WordPress application served into the Lapdock on the phone. As above, it runs well enough, but it lacks a number of features that would make it world-class. While Bold, Italic, Underline, Strikethrough, Links and Quoted content is supported, bullets aren’t. What the heck?

A bit more annoying: there doesn’t seem to be a way to double-click on a word to select it; instead, it’s a right-click and ‘select word’, but then, no way to click one of the buttons to modify the formatting. The only way seems to hold the shift key while arrowing over the word to select it, then pressing the button. It’s a shame that Control-B (bold), Control-I (Italic), Control-U (underline) and Control-K (link) aren’t supported.

My gut tells me:

  • 60% of the Atrix-bearing population could use this device and be very, very happy with it. With a bit of workload adjustment and some laptop sync magic, it will far surpass trying to do any serious work on the mobile device by itself.
  • The other 40% will find they cannot do required things like write code, work on complex spreadsheets and play Facebook games with any performance. To this group (I’m one of them), the LapDock is a way to lighten my load while running errands, save some laptop battery on a long flight, and so on.

All in all, it’s an interesting device, and if you make the effort to work with it, you may find it meets your needs as a very portable option for light workloads.

Geographic Replication in Windows Azure

Windows Azure had some downtime this past February 29th. Let’s get the news out of the way:

Then, the facts from the Windows Azure Blog:

    I did some tinkering on a few late-nights this past week, recognizing that a reliable solution that does not include dedicated hardware (who wants to buy hardware that you might never need?) would be to locate a customer site in a site that is geographically distant from another. While this is not perfect (there are always risks):
  • Some higher-level controller goes out (in the case of Azure, this could be authentication in the Fabric Controller).
  • Risk of CNAME or DNS update delays.
  • Physical connection to a data center or region.
    What to do, what to do?
    Enter the Windows Azure Traffic Manager. Way back when (in fact, I administered a test with this question): load-balancing in Windows Azure was completely automatic. With the Windows Azure Traffic Manager, you have control over how traffic is routed to your virtual machines:
  • Performance
  • Round Robin
  • Failover

The Windows Azure Traffic Manager allows you to manage traffic between multiple instances of Web Roles for scalability and uptime, based on the criteria above. Further, you can create routing policies to manage geo-routing of incoming user requests so they go to an instance closest to the user. You can set these two policies to enable geographical failover in short order.

  • The first thing you need is a deployed hosted service. Please see the deployment lab in the WATK for details on how to set this up. Select as the primary geographical datacenter the one that suits your needs.
  • Then, you need multiple instances of your roles .. note that you need this to ensure you receive the uptime SLAs anyway. You can deploy this in your Service Configuration when you deploy your project, or in the Windows Azure Portal at runtime.
  • With your application deployed in one data center, repeat the steps above by setting up a hosted instance in a different data center and deploying your code to it. Note that these will have different URL prefixes; but don’t let that bug you.

Verify your deployments in the Windows Azure Portal. You should see both deployments in different data centers. Then:

  • Run the Windows Azure Traffic Manager from the Windows Azure Portal.
  • Create a Traffic Manager Policy, selecting your subscription and the ‘Performance’ option under Load Balancing.
    • Select the two internal DNS names for your disparate services.

With this, your solution is complete. The Traffic Manager will talk with the Fabric Controller, and when performance or access is degraded on one set of instances, it will redirect traffic to the other instances. This should increase your stability in the Cloud!

I’ll see you there.

My Shiny New Toy

Well, not exactly a toy .. my mobile phone is my life device, to be sure. However, if you’ve followed me for long .. you know I’m always ready to share about exciting bits and pieces as I encounter them.

MOTOROLA ATRIX 2The flavor of the week / month / year (my last mobile device performed for 2-1/2 years) is the Motorola Atrix 2: dual-core processor, larger-than-life (and pocket) screen, and best of all (tonight, anyway): wireless hotspot.

Handy?

Yes: it boasts all the usual applications, all the Google services, 8GB of onboard RAM, can hold a 32GB microSD AND supports multiple Exchange ActiveSync (EAS) profiles .. now I have no excuse to escape from work, customer or personal email.

On handy: the Atrrix ships with QuickOffice, which recognizes all my Microsoft Office formats .. and now I can even get Microsoft Office OneNote for Android .. which (happily) synchronizes via SkyDrive to my PCs and other devices. This is huge. It doesn’t support Live Mesh, though .. this would be cool for file management and backup across all my devices (I used it on all my PCs and servers .. even cloud servers).

Speedy?

Yes: 4G speeds, thanks to AT&T, plus Wi-Fi.

How fast?

Right now, I’m getting 5 down, 1 up; very nice as the Wi-Fi in the restaurant isn’t working.

On to other toys:

  • The device has a standard dock for charging. Boooring.
  • Wireless keyboard with touchpad. Yawn.
  • Vehicle dock. Snore.
  • Warming up: the Multimedia Dock that connects the device via USB to mouse and keyboard AND a video interface to an external monitor. Wayy coool.

Coolest: the Lapdock.

Lapdock™ for  MOTOROLA ATRIX™ 4GThis spiffy (and expensive!) little device is what caught my eye a year or so ago (the Atrix 1).

Drop the phone into the Lapdock and you have a keyboard and monitor at your beck and call.

The real key here: will the software on the phone support enough tasks that this is a viable laptop replacement for email, browsing, blogging, editing and such for short trips?

In a word: maybe. I am looking to buy one on the cheap to give it a good test.

I’ll let you know what I find.

Windows Azure and Parallel Computing (HPC)

I had the opportunity to do some research the Windows Azure High-Performance Computing (HPC) / Parallel Computing scenario earlier today. In my travels, I encountered (and want to share):

    Jumping into the deep end of the pool:

How do you get started on all this good stuff? Well if you have the need (or want to get your developers started), point them to:

With the Windows Azure Training Kit installed, your HPC developers will want to review the following labs within:

  • Running a parametric sweep application with the Windows Azure HPC Scheduler
  • Running SOA Services with the Windows Azure HPC Scheduler
  • Running MPI Applications with the Windows Azure HPC Scheduler

Yes: HPC / Parallel Computing is in the cloud. In these interesting financial times, who needs:

  • Massive data centers
  • The cost for infrastructure, maintenance and upgrades to the above, year after year
  • Wasted capacity

The Cloud IS the place for HPC, and with a bit of work on your part, you’re ready to join in.

I’ll see you there.

Windows Azure and Node.js

In essence, Node.js is a server-side JavaScript environment that uses an asynchronous event-driven model to communicate between components. The intent is to create highly-scalable interactive applications. It has been compared to the Ruby Event machine but supports interaction as a language construct.

Although (as of this writing) fairly new, Node.js has been embraced by the developer community who have written thousands of modules to do common tasks.

Is it supported in Windows Azure? Why yes it is!

Other online resources for Node.js include:

Keen to hear your experiences installing and configuring on the platform. Please send me your experiences.

Windows Azure Learning Plan: Getting Started

Now that you’ve built your Windows Azure Development Environment, you might ask: what’s next?

If you’re new to Windows Azure and keen to get started on the right foot, your next step is to get some hands-on experience developing and deploying on the platform, and the Windows Azure Training Kit is here to help. In it, you’ll find a rich set of documentation, information and to my point: Hands-on Labs. So once you install the Windows Azure Platform Training Kit .. what’s first?

The WATK installs in the C:\WATK folder by default and creates a desktop default.htm icon. Double-clicking on the icon will open the home page with the links to the documents and labs.

So. Let’s get started:

  • Virtually all coding projects have a “hello world” application, and the WATK is no exception. If you’re new to Visual Studio 2010 as well as Windows Azure, start with “Introduction to Windows Azure”. In it, you’ll explore basic elements of a Windows Azure application.
  • Next, spin through “Building ASP.NET Applications with Windows Azure“, which has examples of MVC and Web Form applications.
  • Once your site is built, how do you get it into the cloud? The WATK provides a lab for this, called “Deploying Applications in Windows Azure”. In it, you’ll see how to deploy an ASP.NET MVC application three different ways.
  • Web sites and web applications hosted in Windows Azure are a little different than sites hosted on physical servers, in that local binary storage may not be attached to a physical drive (unless you include it in your project, which isn’t always practical if you have large, static binary assets). Windows Azure uses three types of storage: blobs, tables and queues, with which you can master in the “Exploring Windows Azure Storage” lab. Blobs are for binary data, tables are for structured (but not relational) data (rows and columns) and queues support application elasticity by providing a place to collect messages (transactions) quickly in times of high load.
  • Many sites are data-driven, and Windows Azure supports this with SQL Azure: database services in the cloud. To help you learn about SQL Azure, the WATK has a lab: “Introduction to SQL Azure”. Want to go deeper? You can, with the “SQL Azure Tips and Tricks” lab.
  • One of the keys to working with data in SQL Azure is getting data into SQL Azure. There are several ways to do this (although some may seem non-conventional at the start). For this you can review the “Migrating Databases to SQL Azure” lab.
    A little midnight oil, a little sweat equity, and you’ll be well on your way to the Cloud!
    I’ll see you there.