Posts Tagged ‘Development’

December 8, 2011

UNIX Sysadmin Boot Camp: bash – Keyboard Shortcuts

By in Customer Service, Development, SoftLayer, Technology, Tips and Tricks

On the support team, we’re jumping in and out of shells constantly. At any time during my work day, I’ll see at least four instances of PuTTY in my task bar, so one thing I learned quickly was that efficiency and accuracy in accessing ultimately make life easier for our customers and for us as well. Spending too much time rewriting paths, commands, VI navigation, and history cycling can really bring you to a crawl. So now that you have had some time to study bash and practice a little, I thought I’d share some of the keyboard shortcuts that help us work as effectively and as expediently as we do. I won’t be able to cover all of the shortcuts, but these are the ones I use most:

Tab

[Tab] is one of the first keyboard shortcuts that most people learn, and it’s ever-so-convenient. Let’s say you just downloaded pckg54andahalf-5.2.17-v54-2-x86-686-Debian.tar.gz, but a quick listing of the directory shows you ALSO downloaded 5.1.11, 4.8.6 and 1.2.3 at some point in the past. What was that file name again? Fret not. You know you downloaded 5.2.something, so you just start with, say, pckg, and hit [Tab]. This autocompletes everything that it can match to a unique file name, so if there are no other files that start with “pckg,” it will populate the whole file name (and this can occur at any point in a command).

In this case, we’ve got four different files that are similar:
pckg54andahalf-5.2.17-v54-2-x86-686-Debian.tar.gz <-- we want this one
pckg54andahalf-5.1.11-v54-2-x86-686-Debian.tar.gz
pckg54andahalf-4.8.6-v54-2-x86-686-Debian.tar.gz
pckg54andahalf-1.2.3-v54-2-x86-686-Debian.tar.gz

So typing "pckg" and hitting [Tab] brings up:
pckg54andahalf-

NOW, what you could do, knowing what files are there already, is type "5.2" and hit [Tab] again to fill out the rest. However, if you didn't know what the potential matches were, you could double-tap [Tab]. This displays all matching file names with that string.

Another fun fact: This trick also works in Windows. ;)

CTRL+R

[CTRL+R] is a very underrated shortcut in my humble opinion. When you've been working in the shell for untold hours parsing logs, moving files and editing configs, your bash history can get pretty immense. Often you'll come across a situation where you want to reproduce a command or series of commands that were run regarding a specific file or circumstance. You could type "history" and pore through the commands line by line, but I propose something more efficient: a reverse search.

Example: I've just hopped on my system and discovered that my SVN server isn't doing what it's supposed to. I want to take a look at any SVN related commands that were executed from bash, so I can make sure there were no errors. I'd simply hit [CTRL+R], which would pull up the following prompt:

(reverse-i-search)`':

Typing "s" at this point would immediately return the first command with the letter "s" in it in the history ... Keep in mind that's not just starting with s, it's containing an s. Finishing that out to "svn" brings up any command executed with those letters in that order. Pressing [CTRL+R] again at this point will cycle through the commands one by one.

In the search, I find the command that was run incorrectly ... There was a typo in it. I can edit the command within the search prompt before hitting enter and committing it to the command prompt. Pretty handy, right? This can quickly become one of your most used shortcuts.

CTRL+W & CTRL+Y

This pair of shortcuts is the one I find myself using the most. [CTRL+W] will basically take the word before your cursor and "cut" it, just like you would with [CTRL+X] in Windows if you highlighted a word. A "word" doesn't really describe what it cuts in bash, though ... It uses whitespace as a delimiter, so if you have an ultra long file path that you'll probably be using multiple times down the road, you can [CTRL+W] that sucker and keep it stowed away.

Example: I'm typing nano /etc/httpd/conf/httpd.conf (Related: The redundancy of this path always irked me just a little).
Before hitting [ENTER] I tap [CTRL+W], which chops that path right back out and stores it to memory. Because I want to run that command right now as well, I hit [CTRL+Y] to paste it back into the line. When I'm done with that and I'm out referencing other logs or doing work on other files and need to come back to it, I can simply type "nano " and hit [CTRL+Y] to go right back into that file.

CTRL+C

For the sake of covering most of my bases, I want to make sure that [CTRL+C] is covered. Not only is it useful, but it's absolutely essential for standard shell usage. This little shortcut performs the most invaluable act of killing whatever process you were running at that point. This can go for most anything, aside from the programs that have their own interfaces and kill commands (vi, nano, etc). If you start something, there's a pretty good chance you're going to want to stop it eventually.

I should be clear that this will terminate a process unless that process is otherwise instructed to trap [CTRL+C] and perform a different function. If you're compiling something or running a database command, generally you won't want to use this shortcut unless you know what you're doing. But, when it comes to everyday usage such as running a "top" and then quitting, it's essential.

Repeating a Command

There are four simple ways you can easily repeat a command with a keyboard shortcut, so I thought I'd run through them here before wrapping up:

  1. The [UP] arrow will display the previously executed command.
  2. [CTRL+P] will do the exact same thing as the [UP] arrow.
  3. Typing "!!" and hitting [Enter] will execute the previous command. Note that this actually runs it. The previous two options only display the command, giving you the option to hit [ENTER].
  4. Typing "!-1" will do the same thing as "!!", though I want to point out how it does this: When you type "history", you see a numbered list of commands executed in the past -1 being the most recent. What "!-1" does is instructs the shell to execute (!) the first item on the history (-1). This same concept can be applied for any command in the history at all ... This can be useful for scripting.

Start Practicing

What it really comes down to is finding what works for you and what suits your work style. There are a number of other shortcuts that are definitely worthwhile to take a look at. There are plenty of cheat sheets on the internet available to print out while you're learning, and I'd highly recommend checking them out. Trust me on this: You'll never regret honing your mastery of bash shortcuts, particularly once you've seen the lightning speed at which you start flying through the command line. The tedium goes away, and the shell becomes a much more friendly, dare I say inviting, place to be.

Quick reference for these shortcuts:

  • [TAB] - Autocomplete to furthest point in a unique matching file name or path.
  • [CTRL+R] - Reverse search through your bash history
  • [CTRL+W] - Cut one "word" back, or until whitespace encountered.
  • [CTRL+Y] - Paste a previously cut string
  • [CTRL+P] - Display previously run command
  • [UP] - Display previously run command

-Ryan

November 29, 2011

SoftLayer Mobile v. 1.1 on Windows Phone: New Features

By in Customer Service, Development, SoftLayer, Technology

I was on a Caribbean cruise during the second week of November, and I kept telling myself that the first thing I needed to taste was a delicious mango. Even though I knew it’s out of season, I still had hopes. I had a chance to indulge in that tropical fruit, and I couldn’t help but think about a mango that gets tastier with every day: the new Windows Phone OS 7.1, codenamed “Mango.”

I’m not going to talk about Mango or its new sensational features, but I do want to share a few of the changes that we pushed out to the Windows Phone Marketplace as a version 1.1 of SoftLayer Mobile. While I could ramble for pages about all of the updates and our strategy in building out and improving the mobile platform, but I’ll try to be brief and only share four of the biggest new features the team included in this release.

Verisign Authentication
The first update you’ll notice when you fire up SoftLayer Mobile 1.1 on Windows Phone is the security-rich inclusion of VeriSign authentication. You are able to activate an additional layer of security by requiring that users confirm their identity with a trusted third party tool before they get access to your account. In this case, the third party vendor is VeriSign. Every customer looking to bake in additional security on their account will appreciate this addition.

SoftLayer Mobile WP

VeriSign authentication in SoftLayer Mobile on WP7

Device-Based Bandwidth
The next big addition to this Windows Phone app release is the inclusion of device-based bandwidth for two billing cycles – your current cycle and the previous cycle. In v. 1.0 of SoftLayer Mobile, users were only able to see bandwidth data for the current billing cycle … It’s useful, but you don’t have a frame of reference immediately available. This release provides that frame of reference. One of the coolest parts is the aesthetically pleasing presentation: our metro-style container, “pivot control.” Just slide through and see your billing cycles in one long view!

SoftLayer Mobile WP

Billing cycle view along with a button to view graph for that cycle

Bandwidth Graphs
If you didn’t notice from the picture, its caption or the heading of this section, the next big update is the inclusion of bandwidth graphs! The bandwidth graph page gives you a bird’s eye view of your bandwidth activity for any selected billing cycle. You’ll see the max “Inbound,” “Outbound” and “Total” values. Those different marks are very useful if you’re tracking which days your device uses the most bandwidth and when those surges subside. The application uses the built-in charting functionality that comes with Silverlight libraries. Since we’re taking advantage of those goodies, you can bet it looks beautiful. No, it’s not a bitmap image … it’s a real bandwidth chart. As with the other bandwidth update, the graphs are available for both the current and the previous billing cycle.

SoftLayer Mobile WP

Bandwidth chart for a previous billing cycle

Ticket Updates
The next addition to the family is a new way to visually distinguish your unread updates on tickets while viewing a ticket list page. The “toast” notification for the ticket list view gives flags unread ticket updates, and the ticket list will feature bold text on the ticket’s subject if that ticket is marked with an “unread update” *ndash; meaning an employee or someone has an update to that ticket which you haven’t seen yet. This is very much Outlook-y style and very native to Windows Phone.

SoftLayer Mobile WP

Toast notification along with Outlook-style unread ticket

What’s Next?
With this release, we’re not resting on our laurels, so what are we doing in our labs? Right now we’re working on OS migration to move our existing app from OS 7.0 to the new Mango-flavored Windows Phone 7 version I mentioned a little earlier. Now you see why I was so fixated on mangoes while I was on vacation. The migrated mango app will only be available to devices that are mango-licious (Upgraded to 7.1).

Stay tuned, and you’ll see some of the other new features we’re working on very soon. If you have a Windows Phone, you need to download SoftLayer Mobile, rate it and give us your feedback!

-Imran

November 1, 2011

SoftLayer on the iPad

By in Development, SoftLayer, Technology

Shortly after we began implementing the SoftLayer Mobile application for the iPhone and Android, Apple released the iPad. With our development resources limited, we focused on adding the functionality our customers required to the iPhone application with only a few small features added to support the new device.

As we became more familiar with the iPad, we started seeing a few key areas where SoftLayer Mobile could benefit from the large format iPad user interface. We’ve been able to incorporate a phenomenal feature set in the SoftLayer Mobile application, and as our desired feature set has become more and more complete, we’ve gotten a bit of breathing room from our iPhone releases. We used that breathing room to re-visit the iPad and what it could mean for the SoftLayer Mobile customer experience on a tablet. The result of that investigation is the SoftLayer Mobile HD application:

SL HD

As you might expect, SoftLayer Mobile HD shares quite a bit of functionality with its iPhone sibling. The application offers a window into your SoftLayer environment so that you can browse, create and edit support tickets; discover information about computing resources and bandwidth; and keep up-to-date on the latest notifications from our data centers. The iPad application also helps you keep track of financial information by allowing you to browse your account and its invoices. All this functionality benefits from the intuitive interface of the iPad. You have more room to browse, more room to edit, and fewer screens to navigate as you manage and explore your virtual SoftLayer data center.

SL HD

SL HD

Best of all: The application is only in its first release, and already shows great promise! We have plenty of room to grow and tons of ideas about the next features and functions we want to add. If you’re iPad-equipped, get the SoftLayer Mobile HD application in the iTunes App Store. When you’re navigating through the interface, take note of anything you’d like to see us change or add, and let us know!

-Scott

October 26, 2011

MODX: Tech Partner Spotlight

By in Partner Marketplace, SoftLayer, Tips and Tricks

This is a guest blog from the MODX team. MODX offers an intuitive, feature-rich, open source content management platform that can easily integrate with other applications as the heart of your Customer Experience Management solution.

Company Website: http://modx.com/
Tech Partners Marketplace: http://www.softlayer.com/marketplace/modx

Free your Website with MODX CMS

Just having a website or a blog is no longer a viable online strategy for smart businesses. Today’s interconnected world requires engaging customers — from the first impression, to developing leads, educating, selling, empowering customer service and beyond. This key shift in online interaction is known as Customer Experience Management, or CXM.

For businesses to have success with CXM, they need an efficient way to connect all facets of their communications and information together with a modern and consistent look and feel, and without long learning curves or frustrating user experiences. You don’t want a Content Management System (CMS) that restricts your ability to meet brand standards, that lives in isolation from your other systems and data, or that fails to fulfil your businesses needs.

MODX is a content management platform that gives you the creative freedom to build custom websites limited only by your imagination. It certainly can play the central role in managing your customer experience.

Read the rest of MODX’s Guest Blog! »

October 18, 2011

Adding ‘Moore’ Storage Solutions

By in Executive Blog, Infrastructure, SoftLayer, Technology

In 1965, Intel co-founder Gordon Moore observed an interesting trend:”The complexity for minimum component costs has increased at a rate of roughly a factor of two per year … Certainly over the short term this rate can be expected to continue, if not to increase.”

Moore was initially noting the number of transistors that can be placed on an integrated circuit at a relatively constant minimal cost. Because that measure has proven so representative of the progress of our technological manufacturing abilities, “Moore’s Law” has become a cornerstone in discussions of pricing, capacity and speed of almost anything in the computer realm. You’ve probably heard the law used generically to refer to the constant improvements in technology: In two years, you can purchase twice as much capacity, speed, bandwidth or any other easily-measureable and relevant technology metric for the price you would pay today and for the current levels of production.

Think back to your first computer. How much storage capacity did it have? You were excited to be counting in bytes and kilobytes … “Look at all this space!” A few years later, you heard about people at NASA using “gigabytes” of space, and you were dumbfounded. Fastforward a few more years, and you wonder how long your 32GB flash drive will last before you need to upgrade the capacity.

32GB Thumb Drive

As manufacturers have found ways to build bigger and faster drives, users have found ways to fill them up. As a result of this behavior, we generally go from “being able to use” a certain capacity to “needing to use” that capacity. From a hosting provider perspective, we’ve seen the same trend from our customers … We’ll introduce new high-capacity hard drives, and within weeks, we’re getting calls about when we can double it. That’s why we’re always on the lookout for opportunities to incorporate product offerings that meet and (at least temporarily) exceed our customers’ needs.

Today, we announced Quantastor Storage Servers, dedicated mass storage appliances with exceptional cost-effectiveness, control and scalability. Built on SoftLayer Mass Storage dedicated servers with the OS NEXUS QuantaStor Storage Appliance OS, the solution supports up to 48TB of data with the perfect combination of performance economics, scalability and manageability. To give you a frame of reference, this is 48TB worth of hard drives:

48TB

If you’ve been looking for a fantastic, high-capacity storage solution, you should give our QuantaStor offering a spin. The SAN (iSCSI) + NAS (NFS) storage system delivers advanced storage features including, thin-provisioning, and remote-replication. These capabilities make it ideally suited for a broad set of applications including VM application deployments, virtual desktops, as well as web and application servers. From what I’ve seen, it’s at the top of the game right now, and it looks like it’s a perfect option for long-term reliability and scalability.

-@nday91

October 11, 2011

Building a True Real-Time Multiplayer Gaming Platform

By in Executive Blog, Infrastructure, SoftLayer, Technology

Some of the most innovative developments on the Internet are coming from online game developers looking to push the boundaries of realism and interactivity. Developing an online gaming platform that can support a wide range of applications, including private chat, avatar chats, turn-based multiplayer games, first-person shooters, and MMORPGs, is no small feat.

Our high speed, global network significantly minimizes reliability, access, latency, lag and bandwidth issues that commonly challenge online gaming. Once users begin to experience issues of latency, reliability, they are gone and likely never to return. Our cloud, dedicated, and managed hosting solutions enable game developers to rapidly test, deploy and manage rich interactive media on a secure platform.

Consider the success of one of our partners — Electrotank Inc. They’ve been able to support as many as 6,500 concurrent users on just ONE server in a realistic simulation of a first-person shooter game, and up to 330,000 concurrent users for a turn-based multiplayer game. Talk about server density.

This is just scratching the surface because we’re continuing to build our global footprint to reduce latency for users around the world. This means no awkward pauses, jumping around, but rather a smooth, seamless, interactive online gaming experience. The combined efforts of SoftLayer’s infrastructure and Electrotank’s performant software have produced a high-performance networking platform that delivers a highly scalable, low latency user experience to both gamers and game developers.

Electrotank

You can read more about how Electrotank is leveraging SoftLayer’s unique network platform in today’s press release or in the fantastic white paper they published with details about their load testing methodology and results.

We always like to hear our customers opinions so let us know what you think.

-@nday91

October 11, 2011

Working on the SoftLayer Dev Team

By in Culture, Development, SoftLayer, Technology

This post is somewhat of a continuation of a post I made here a little over three years ago: What It’s Like to be a Data Center Technician. My career at SoftLayer has been a great journey. We have gone from four thousand customers at the time of my last post to over twenty five thousand, and it’s funny to look back at my previous post where I mentioned how SoftLayer Data Center Technicians can perform the job of three different departments in any given ticket … Well I managed to find another department where I have to include all of the previous jobs plus one!

Recently I took on a new position on the Development Support team. My job is to make sure our customers’ and employees’ interaction with development is a good one. As my previous post stated, working at SoftLayer in general can be pretty crazy, and the development team is no exception. We work on and release code frequently to keep up with our customers’ and employees’ demands, and that is where my team comes in.

We schedule and coordinate all of our portal code updates and perform front-line support for any development issues that can be addressed without the necessity for code changes. Our team will jump on and fix everything from the layout of your portal to why your bandwidth graphs aren’t showing.

Our largest project as of late is completely new portal (https://beta.softlayer.com/) for our customers. It is the culmination of everything our customers have requested in their management interface, and we really appreciate the feedback we’ve gotten in our forums, tickets and when we’ve met customers in person. If you haven’t taken the portal beta for a spin yet, take a few minutes to check it out!

SoftLayer Portal

The transition from exclusively providing customer support to supporting both customers and employees has been phenomenal. I’ve been able to address a lot of the issues I came across when I was a CSA, and the results have been everything I have expected and more. SoftLayer is a well-oiled machine now, and with our global expansion, solid procedures and execution is absolutely necessary. Our customers expect flawless performance, and we strive to deliver it on a daily basis.

One of the old funny tag lines we used was, “Do it faster, Do it better, Do it in Private,” and with our latest developments, we’d be remiss if we didn’t add, “Do it Worldwide,” in there somewhere. If there’s anything I can do to help make your customer experience better from a dev standpoint, please let me know!

-Romeo

October 7, 2011

On the Passing of a Giant

By in Business, Technology

In March of 2000, Apple was set to launch the first version of Mac OS X. At the time, I was working for a company called Macromedia (creators of Flash, subsequently purchased by Adobe) on a professional illustration program called FreeHand. Part of the Mac OS X transition was a system that reimplemented the programming interfaces from Mac OS 9 on the operating system kernel of Mac OS X. That system was called Carbon and was key to the strategy that let Mac OS 9 application transition to the Mac OS X platform. We had worked very hard with Apple and FreeHand was one of the first applications to run under the new system. I was invited to demo FreeHand running on Mac OS X at the Mac OS X launch event.

The launch was held on the Apple Campus in the “Town Hall,” the same venue that recently hosted the launch of iOS 5 and the iPhone 4s. Members of The Press were across the hallway in an adjacent room while those of us who were going to present were reviewing our parts, being fitted with microphones, and anxiously milling about. At one point an Apple employee stuck her head into the room and announced that Steve Jobs would be arriving in a few minutes. Most people took the announcement in stride and continued about their business.

At some point in this process, two of the representatives from Apple’s Developer Relations team that I had been working with seated themselves about halfway up the auditorium; they were innocently waiting for the event to start.

When Steve walked into the room, he did so through a side door that was just to the left of my seat. I was standing in front of the seat, and Steve came to stop right in front of me. The moment he walked into the room, all conversation died out. The entire room held it’s breath for a few heart beats while Steve stretched and commented aloud about being “ready to do this thing.”

As the conversations around the room came back on-line, Steve turned to me, pointed at the Developer Relations folk halfway up the auditorium and forcefully asked “Who are those people?” Naturally I fumbled to find a reply and was explaining that they worked for Developer Relations. Thankfully the VP of Developer Relations was nearby. He tapped Steve on the shoulder and told him “Those are my people, Steve.” I often tell folks at that point that “The Eye of Sauron turned” as Steve went off to review his presentation.

This was my first encounter with Steve Jobs. I’ve had a couple more over the years, minor interactions that I have no doubt he would never have remembered. Still, I have been working on Apple products since I was very young. Over the years my specialization in the field of Apple development has allowed me to care for myself and my family. Apple’s products continue to be an important part of my life.

Shortly the official press event announcing Mac OS X, I was invited to the cafeteria at Apple, Caffe Macs, and heard Steve talk about how Mac OS X was going to change everything. Over 10 years later, and that operating system now powers not only the Macintosh computer, but the host of iOS devices as well. A decade away I’m now working at SoftLayer to bring some of that innovation, and excellence to our mobile products.

I am one of millions whose lives have been touched by Steve Jobs. I know that while he was here he seized life with an intensity that inspires many of us. I hope that where he has gone he will have time to relax, reflect, and rest for a time.

That is, I have no doubt, before he starts “One More Thing…”

Rest in Peace, Steve.

-Scott

October 4, 2011

An Introduction to Redis

By in Development, Technology, Tips and Tricks

I recently had the opportunity to get re-acquainted with Redis while evaluating solutions for a project on the Product Innovation team here at SoftLayer. I’d actually played with it a couple of times before, but this time it “clicked.” Or my brain broke. Either way, I see a lot of potential for Redis now.

No one product is a perfect fit for all of your data storage needs, of course. There are such fundamental tradeoffs to be made in designing storage architectures that you should be immediately suspicious of any product that claims to fit every need.

The best solutions tend to be products that actually embrace these tradeoffs. Redis, for instance, has sacrificed a small amount of data durability in exchange for being awesome.

What is it?

Redis is a key/value store, but describing it that way is sort of like calling a helicopter a “vehicle.” It’s a technically correct description, but it leaves out some important stuff.

You can think of it like a sophisticated older brother of Memcached. It presents a flat keyspace, and you can set those keys to string values. Another feature of Memcached is the ability to perform remote atomic operations, like “incr” and “append.” These are really handy, because you have the ability to modify remote data without fetching, and you have an assurance that you’re the only one performing that operation at that instant.

Redis takes this concept of remote commands on data and goes completely nuts with it. The database is aware of data structures like hashes, lists and sets in addition to simple string values. You can sort, union, intersect, slice and dice to your heart’s content without fetching any data. Redis is a data structure server. You can treat it like remote memory, and this has an awesome immediate benefit for a programmer: your code and brain are already optimized for these data types.

But it’s not just about making storage simpler. It’s fast, too. Crazy fast. If you make intelligent use of its data structures, it’s possible to serve a lot of traffic from relatively modest hardware. Redis 2.4 can easily handle ~50k list appends a second on my notebook. With batching, it can append 2 million items to a list on a remote host in about 1.28 seconds.

It allows the remote, atomic and performant manipulation of data structures. It took me a little while to realize exactly how useful that is.

What’s wrong with it?

Nothing. Move along.

OK, it’s a little short on durability. Redis uses memory as its primary store and periodically flushes to disk. A common configuration is to do so every second.

That sounds pretty reasonable. If a server goes down, you could lose a second of data. Keep in mind, however, how many operations Redis can perform in a second. If you’re in a high-volume environment, that could be a lot of data. It’s not for your financial transactions.

It also supports relatively limited availability options. Currently, it only supports master/slave replication. Clustering support is planned for an upcoming release. It’s looking pretty powerful, but it will take some real-world testing to know its performance impact.

These challenges should be taken into consideration, and it’s probably clear if you’re in a situation where the current tradeoffs aren’t a good fit.

In my experience, a lot of developers seriously overestimate the consequences of their application losing small amounts of data. Also consider whether or not the chance of losing a second (or less) of data genuinely represents a bigger threat to your application than any other compromises you might have made.

More Information
You can check out the slightly aging docs or browse the impressively simple source. There are probably already bindings for your language of choice as well.

-Tim

September 28, 2011

A Whole New World: SoftLayer on Windows Phone 7

By in Development, News, SoftLayer

As SLayers, our goal is always to bring creativity in every aspect of work we do at SoftLayer. It was not too long ago when the Interface Development team was presented with a new and exciting challenge: To develop a Windows Phone 7 Series app. Like me, many questioned whether we should tap into the market of Windows Phone OS … What was the scope of this OS? What is the future of Windows Phone OS smartphones? The business relationship that NOKIA and Microsoft signed to produce smartphones with Windows Phone 7 OS will provide consumers with a new interface and unique features, so smartphone users are paying attention … And we are too.

The SoftLayer Mobile world had already made huge strides with iPhone and Android based apps, so our work was cut out for us as we entered the Windows Phone 7 world. We put together a small, energetic and skilled group of SLayers who wanted to make SoftLayer proud, and I am proud to be a member of that team!

Our focus was to design and develop an application that would not only provide the portal functionality on mobile phone but also incorporate the awesome features of Windows Phone 7. Keeping all that in consideration, the choice of using an enterprise quality framework was essential. After a lot of research, we put our finger on the Microsoft’s Patterns and Practices-backed Prism Framework for Windows Phone 7. The Prism Framework is a well-known and recognized name among Silverlight and Windows Presentation Framework developers, and since Windows Phone 7 is built upon the Silverlight and XNA Framework, our choice was clearly justified.

After selecting the framework, we wanted to make the whole asynchronous experience smooth while talking to SoftLayer’s mobile API. That’ where we met the cool kid on the block: Reactive Extensions for .NET (also known as Rx). The Rx is a library used to compose asynchronous and event-based programs. The learning curve was pretty intense for the team, but we operate under the mantra of CBNO (Challenging-But-Not-Overwhelming), so it was learning we knew would bear fruits.

The team’s plan was to create an app that had the most frequently used features from the portal. The features to be showcased in the first release were to be basic but at the same time essential. The features we pinpointed were ticket management, hardware management, bandwidth and account management. Bringing these features to the phone posed a challenge, though … How do we add a little more spice to what cold be a rather plain and basic app?

Windows Phone 7 controls came to our rescue and we utilized the Pivot and Panorama controls to design the Ticket Lists and Ticket Details. The pivot control works like a tabbed-style control that is viewable by sliding left or right. This lets us put the ticket-based-categories in a single view so users don’t have to navigate back-and-forth to see different types of tickets. It also provides context-menu style navigation by holding onto the ticket item, giving an option to view or edit ticket with one tap. Here is a screen shot of pivot control in use to view tickets by categories and device list:

Win7 Phone Screen

Another achievement was made by using the panorama control. The control works like a long page with different relevant sections of similar content. This control was used to show a snap shot of a ticket, and the view displays basic ticket details, updates, attachments and any hardware attached to a ticket. This makes editing a ticket as easy as a tap! This is a screenshot of panorama control in use to view ticket detail:

Win7 Phone Screen

The device list view will help people see the dedicated and virtual devices in a pivot control giving a visual distinction. The list can be searched by tapping on the filter icon at the application bar. The filtering is search-as-you-type style and can be turned off by tapping the icon again. This screenshot shows the device list with a filtering option:

Win7 Phone Screen

To perform further hardware operations like pinging, rebooting and power cycling the server, you can use the hardware detail view as well. The bandwidth view may not be as flashy, but it’s a very useful representation of a server’s bandwidth information. Charting is not available with this release but will be available in the upcoming releases.

If you own a Windows Phone 7 device, go ahead and download “SoftLayer Mobile” and send us the feedback on what features you would like to see next and most importantly whether you love this app or not. We have and will always strive for excellence, and we know there’s always room to improve!

-Imran