• View Communities
    • Citrix Developer Network
      The place for unfiltered straight talk on Citrix products. Blogs, code downloads, best practices, APIs, and more can all be found here.
    • Citrix Ready Community Verified
      Does it work with Citrix? Application compatibility questions are a thing of the past with the new Citrix Community Verified site.
    • Blogs
      Learn the latest from the Citrix employees who are building application delivery infrastructure technologies.
    • Blogosphere
      The Citrix Blogosphere is a window into the thousands of conversations taking place about Citrix and Application Delivery.
  •  Sign In
The Citrix Blog
Blogs for tag 'cdn'

Permalink | Twitter Post to Twitter | Comments (1) | Views (3414) |



Follow me on Twitter at @aurelianolopez

Customers who use XenApp for application management frequently use MFCOM and the Windows command line interface to control XenApp and even to create scripts and batch files. With PowerShell being adopted quickly, customers have asked us for support here as well. For the past few months, we have been working on just that and we recently finished out a phase 1 private tech preview that helped provide some much needed feedback on the direction we were going. We solicited feedback from some close members of our Citrix community and they provided the insight we needed to really make this work well for customers. You can still see those threads in the support forum.

I'm happy to announce that we've just released the Commands for XenApp Technology Preview. PowerShell Commands for XenApp allow you to access most aspects of XenApp including MFCOM functionality, Access Management Console features, and even functions found in the Advanced Configuration Tool (aka Citrix Management Console) and will work for XenApp 5 on W2K8 and on Presentation Server 4.5 with HRP03 running on Windows Server 2003 (aka XenApp 5 on W2K3). Commands for XenApp are an initial step towards the next generation of the Management SDK for XenApp. They will replace the current XenApp Management SDK (MPSSDK/MFCOM) in future releases so it's very important to us that customers that use the SDK's take a look at Commands and provide feedback before we release the final version. All customers and partners who currently use MFCOM can now experiment with this release and participate with us in the creation of the official release. We are looking forward to that feedback.

This Tech Preview is open to everyone with a MyCitrix account (Create a MyCitrix account if you don't have one yet). Download the tech preview from our new tech preview site and access the support forum if you need help and to provide feedback. The forum has separate sections for bugs, enhancement requests, scripts, and general questions and discussion.

Special thanks to Brandon Shell, Nick Holmquist, Jeroen van de Kamp and Tony Zhang for their suggestions and bug reports - their feedback was crucial for this second version. We are looking forward to your participation as well.

If you are interested in participating in future private previews of the XenApp SDK's, please contact me at twitter at @aurelianolopez.

Sncerely,

The XenApp Commands team

Check out these Other Links and Resources
XenApp Tech Preview Page
XenApp on Twitter
XenApp blogs
XenApp Videos and TV

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (31) | Views (14059) |

posted by Roger Klorese

VMware has released a series of KB articles outlining the requirements and best practices for installing vSphere, upgrading to vSphere, and upgrading ESX 3.0 virtual machines to ESX 4.0 hardware.  (Quoting them.)

So I'm guessing this should simplify the process, right? I know there were a few bumps in the update process for XenServer 5.0 Update 3 until we fleshed out the directions to be explicit about HA. Surely they've learned from this, and simplified their update process.

So let's see how they've focused on ease-of-use...

 4. If a SAN is connected to the ESX Server, detach the fiber before continuing with the upgrade.

 Walking from machine to machine in your data center pulling fiber connections, and reconnecting them after the upgrade?  Now that's automation.  That's ease-of-use.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (3142) |

posted by Barry Flanagan


Microsoft, Intel & Citrix: Dynamics of Enterprise Virtualization

An interactive discussion led by Doug Brown



--------------------------------------------------------------------------------------

Attend this lively discussion with virtualization experts David Greschler, Iddo Kadim & Simon Crosby on the dynamics of enterprise virtualization. Register here.



Topics include:
• Virtualization in the enterprise & upcoming technologies
• Moving beyond consolidation & getting to Dynamic Datacenters
• Cloud computing & how does virtualization fit in
• Desktop Virtualization opportunities, barriers & adoption challenges

Date: Monday, June 22, 2009
Time: 1:00 PM Eastern; 10:00 AM Pacific

Don't miss this opportunity to hear perspectives on the current & future virtualization landscape and what this means for the enterprise.

Register here now.


Follow me on Twitter.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (3366) |


Provisioning Services (PVS) solves many of the existing problems of datacenter and desktop administrators by reducing the number of unique images that need to be managed. Rather than dealing with application installs, conflicts, patches and errors on hundreds of different servers and/or desktops, they can deal with a single streamed golden image that remains pristine regardless of the changes made by users. 

However, even though this new approach solves many of the issues that have been plaguing IT administrators for years, a new concern comes up. In my role on the Consulting Solutions team, I've been asked the same question by clients and coworkers alike: "If I have a pristine, unchangeable image, how do I deal with antivirus updates and patching?"

The admin guide (page 109) gives detailed instructions on how to do exactly that. It goes, on a high level, something like this:

  • Load a machine with a copy of the production vDisk in private mode
  • Make your updates
  • Shut it down and put it into standard mode
  • Finally, increment the version number

It's simple, and the process is easy to do manually - if you only have to add updates to a single vDisk every once in a while, then there's no problem. However, Microsoft comes up with security updates on an almost weekly basis, and new anti-virus definitions come out nightly - most companies aren't comfortable leaving machines unprotected for extended periods of time, and IT administrators don't want to spend time doing a manual, repetitive task on a daily basis. Add in a few different vDisks for different workloads, and this can quickly grow into a time consuming process. How do we reduce the time-cost of keeping vDisks fully updated?

Enter Workflow Studio. Workflow Studio (WFS) is designed to reduce repetitive tasks into easy-to-manage workflows that can be run either on-demand or on a scheduled basis. Using Workflow Studio and PVS's built-in CLI, we're able to create a script that automates the entire process of updating vDisks, allowing for easy nightly or weekly scheduling with less chance for human error.

In order to be device/hypervisor agnostic, the script utilizes an always-on machine designated as an "update" machine, which allows PVS to use its own functionally to restart the machine when necessary. Updates can come in and automatically be implemented during the course of the day or week, and applications can be added or removed by any vDisk admin. Then, at the scheduled point or on a manual call, the script shuts down the server, makes a copy for future updates, and switches out the disks using the Auto-Update feature. After the next reboot, desktops will switch to the newest disk, no additional manual intervention required.

Additionally, the "update" machine can be given a "personality" that then executes scripts inside the image that aren't run on other machines - such as perhaps automatically copying files from a share, or enabling Microsoft's Auto-Update, or any number of other actions. Workflow Studio is a component of making the script function appropriately, and it has the added benefit of allowing role-based access to the Workflow, as well as built-in scheduling. However, if Workflow Studio cannot be deployed, then the components of the script can be broken apart and used solely with Windows Scheduler.

Grab the script at the Citrix Developer Network. If you have questions, comments, or ideas for improvement, leave me a comment or ping me on Twitter @mcbogo.

Best,
Michael Bogobowicz
Senior Consultant @ Citrix Consulting Solutions

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (7) | Views (4909) |

posted by Ruiguo Yang

The issue

Many people have encountered problems with clipboard (cut and paste) not working in Citrix XenApp ( formerly Presentation server/Metaframe) environment.

The cause

A not well behaving non-Citrix application can interfere with clipboard operation and cause problems with XenApp. A complete fix would require changes to the windows operating system.

Workaround exists but has limitations.

My colleague Dmitry Vostokov wrote a tool called RepairCBDChain to work around the issue. It works, but it is not easy to use, especially for end users.

A fix was incorporated in XenApp plugin (client)

Back in 2005 when I was still in Engineering department, I started tacking this problem. I found it a challenging but fun problem to solve since I can't modify bad third party applications nor the operating system. And the problem happens intermittently.

After quite some effort, I found a way to allow the XenApp Plugin to detect broken clipboard and fix it automatically. I was happy and thought my job was done.

Here is the detailed information about the fix. The fix has been included in XenApp plugin (client) since 2005 version 9.100.

Our internal tests showed that the fix was effective. Some people in our support forum and blog have also reported successful use of my fix.

http://forums.citrix.com/thread.jspa?threadID=57670&tstart=0
http://forums.citrix.com/thread.jspa?threadID=88284&tstart=0
http://community.citrix.com/x/l4TeAQ

The fix is disabled by default unfortunately and was not well publicized.

The story didn't end though. To reduce potential side effects, the feature was disabled by default. I didn't agree with the decision but went alone. Unfortunately, the fix was buried in long release notes and not well publicized. As a result, not many people seem to know about the fix, including even XenApp experts. For example please see the comment section of this blog dated 2008 . And this blog. Another evidence is that RepairCBDChain is still one of the top downloaded knowledge base articles recently. I am disappointed that users haven't benefited as much from my hard work as they should have been.

Should it be enabled by default now?

I wonder if this fix should be enabled by default now. After all, what good is a fix if people don't know how to take advantage of it? In my opinion, the fix doesn't have much risk. If it does have bad side effects, after all these years, people would have reported problems with the fix already. What do you think?

Related articles.

Citrix KB articles about clipboard issues
http://support.citrix.com/article/CTX104631

Articles about RepairCBDChain tool.

http://support.citrix.com/article/CTX106226

http://www.dumpanalysis.org/blog/index.php/2007/06/21/repair-clipboard-chain-201/

http://www.dumpanalysis.org/blog/index.php/2006/12/09/clipboard-issues-explained/

Jeff's blog about clipboard in general.
http://citrixblogger.org/2007/05/27/the-citrix-clipboard-part-i/
http://citrixblogger.org/2007/05/30/the-citrix-clipboard-part-ii/

Ray (Ruiguo) Yang
Check out my other blogs
Subscribe to my blog RSS feed
Follow me (RayYangCitrix) on Twitter

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (6) | Views (6639) |

posted by Barry Flanagan



Twitter is obviously growing rapidily in popularity. According to a recent TechCrunch article, "Twitter's global unique visitors in April, 2009 was a whopping 32 million, up from 19 million in March, 2009". Many different groups within Citrix have begun to embrace Twitter. I use Twitter quite a bit, and have found several different Citrix Twitter accounts that I follow. Below are several recent Twitter accounts started by different departments within Citrix -

@citrixsupport - Mike Stringer, a Senior Director in Technical Support, created this account to provide updates from Citrix Technical Support.

@citrixreadiness - David McGeough from our Dublin office has been very active recently on this account.

@xenappjunkie - Vinny Sosa just started this Twitter account about XenApp.

@xdsupport - XenDesktop support. I have not yet found out who owns this account.

@citrixpartners - This twitter account is specifically for info related to Citrix partners.

@nssupport - Julio Rodriguez recently started this NetScaler related account.

@citrixblogs - This is an automated rss feed account that posts links to every new group blog post on the Citrix Community blogs.

@citrixonline - This account is dedicated to info on GoToMyPC, GoToMeeting, GoToWebinar, and GoView from Citrix Online.

@go_view - This account by Brenda Dentinger focuses on the new GoView product from Citrix Online.

@ctxs - This account is an rss feed of Citrix press releases.

@xenserverarmy - This account posts info specific to XenServer and Essentials for XenServer.

@citrix_synergy - This account posted live updates from Citrix Synergy.
There are several other new accounts that have no or few updates yet.

@xasupport

@xssupport

@citrixeducation

You can also follow me on Twitter, and other Citrix employees such as Chris Fleck, Tedd Fox, Matt Lesak, Lauren Whalen, Rich Crusco, Vishal Generiwala, Dan Feller, and Pete Downing.

If there are other Citrix accounts or Citrix employees you follow on Twitter, please post them in the comments.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (5) | Views (5236) |

posted by Chris Fleck

A lot of Buzz is in the air about what Apple is going to release ( or not ) at WWDC next month. As usual Apple has done a great job of keeping people guessing about what will be announced and when it will be available. Since the release of the Citrix Receiver for iPhone there has also been an increased interest in the iPhone for business use and how it can be utilized to be more productive ( and have a little fun ). The interest has also increase the desire for more, lots of people want the iPhone to become the " NirvanaPhone " by adding video and Keyboard capability , but there are other requests as well. " This would be awesome if it only did X ... "

So let's make some predictions and put some numbers to the features and announcements we want at WWDC.


Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (2) | Views (4731) |

posted by Chris Fleck


In the early days of virtualization most developers and IT Pro's would not trust deploying production workloads in Virtual Machines. However, as soon as it was apparent how easy it was to test apps and configurations plus prototype new environments prior to production, virtualization became a defacto standard for test and dev environments. Over time virtualization improved in performance, robustness and management to the point where IT is now comfortable deploying a significant portion of production workloads on Virtualized platforms.

Move the clock forward to today and Cloud based Infrastructure as a Service ( IaaS ). Most companies are not ready to deploy their production environments to the Cloud, however every company spends a significant amount of time and resources for testing , evaluation and PoC's prior to deployment in production on premise or at a Colo. It turns out that IaaS is a great platform for test, dev and evaluations even if it may be early for enterprise production environments. Zero capital, rapid deployment, temporary workloads and elastic capacity are all attributes of IaaS that map directly to test and dev environments.

Citrix has now established the Citrix C3 Lab with Amazon Web Services to enable; PoC's, evaluations, demonstrations, testing, training and more. Pre-built Virtual Appliances available as AMI ( Amazon Machine Image ) templates are now available for XenApp, Citrix Secure Gateway and Access Gateway. In addition we are providing C3 ( Citrix Cloud Center ) Blueprints and a community site dedicated to provide " How to " descriptions, configuration guides, videos and forums to support the Lab. The time to build XenApp environments  can literally change from days to hours or even minutes utilizing C3 Labs. The expense of buying test servers for every new test or evaluation is changed from $ thousands up front to as low as 12.5 cents per hour. The time for racking, cabling and powering is  gone. The time to install Windows OS, then patches, then XenApp, then configure, then redo ( because you didn't read the manual ) is eliminated. You can literally be up and running in a little as 15 minutes. More complex environments can also be built with multiple AMI's networked together in almost unlimited configurations.

Going forward expect to see more C3 Blueprints, more Citrix products in AMI templates, and more suggested solutions to evaluate. We may also utilize the lab for tech previews or hosting research projects to gain customer insight and feedback. Stay tuned for more and give us some suggestions.

Saving significant time and money for test and dev just may be a leading indicator for how Clouds aew adopted into IT production environments later.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (2995) |

posted by Ed York

After attending Citrix Synergy last week, I wanted to come back and complete this 5 part series that I started before the conference began.  In the last article (Part 3), I discussed the anatomy of a Workflow Studio project.  The information in that article should help you get started in coding your activities.  Next on the list is to discuss how to test your activity project within Workflow Studio once you've completed a bulk of the code in Visual Studio.

If you want to follow along with me, you should create the AdvancedDelay activity project as outlined within the Workflow Studio Developers Guide.  The AdvancedDelay activity inserts a delay into your workflows for a specified amount of time.  As discussed in the Developers Guide, the code that you add is pretty straightforward.  You are just adding a property to specify the delay time and a sleep command in the execution section to perform the actual delay.

To make the testing process simple, I'll break it up into the following sections.  Each section is discussed in more detail below.
• Before you begin
• Build your solution in Visual Studio
• Copy the activity DLL to the Workflow Studio activities folder
• Launch Workflow Studio and create a new workflow project
• Add the activity to the workflow project and run/test the workflow

Before you begin
Before you compile your project, you should check out a few settings that are placed at the top of your activity file.  If you are following the AdvancedDelay example, open the AdvancedDelay.cs file and check out the activity settings at the top.
DisplayNameAttribute - this is the name of the activity as it will appear in the Workflow Studio Designer.
ActivityTreePath - this is the location that the activity will be placed in within the Workflow Studio Designer activity pane.  In the example below, I'm placing this activity within the General/Custom Activities folder.  You can place this activity anywhere in the activity pane.



Build your solution in Visual Studio
You build the solution like any other Visual Studio project.  Just navigate to Build-->Build Solution in the file menu.  Verify that the build succeeds within the Output window at the bottom of Visual Studio. 

Copy the activity DLL to the Workflow Studio activities folder
After you compile the project, a DLL is produced that contains your activity project code.  This DLL is typically found in a sub-directory where your Visual Studio project resides on the system.  In my environment, this DLL was found in my user profile since my Visual Studio projects are all written to my user profile ("C:\Documents and Settings\Administrator\My Documents\Visual Studio 2008\ProjectsAdvancedDelay\AdvancedDelay\bin\Debug").

Copy the activity DLL (AdvancedDelay.dll in this example) and paste into "C:\Program Files\Citrix\Workflow Studio".  Your DLL will need to be here in order for Workflow Studio to use it. 

Note:  If your project happens to reference other 3rd party DLLs that you added manually to the project (for example, mfcom.dll for tying into XenApp), you'll need to add these extra DLLs to the above folder as well.  This allows the Workflow Studio Designer and Runtime to pick up these references to allow you to run the activity.  In our example here, our AdvancedDelay activity project is pretty simple and we didn't add a reference to another 3rd party DLL so we can bypass this action.

Launch Workflow Studio and create a new workflow project
With your activity DLL now in the right location, launch Workflow Studio and create a new workflow project.  I typically like to create new workflow projects for testing activities, but you can also edit existing workflow projects if you desire.

Add the activity to the workflow project and run/test the workflow
The Workflow Studio Designer should now be displayed.  If this is your first time testing the activity, the activity will not yet be displayed within the activity pane.  To add the activity as an available activity within the pane, navigate to Tools-->Choose Activities.  Browse to the activity, verify it is selected, and close the Choose Activities dialog.  Notice the "Toolbox Location" field on this dialog.  This is the location we specified in our code where this activity will be placed within the activity pane.

Verify the activity is now listed within the activity pane.  Drag the activity to the designer surface and configure the properties as needed.  Start the activity and verify that it runs as expected.  

In the example below, I configured the AdvancedDelay activity to run for 5000 milliseconds (5 seconds).  I then placed a message box beneath the delay.  When running the activity, it should take about 5 seconds for the message box to pop up.  If it does, I know this activity is running as expected. 

One final note:

If you find that you need to make code changes to your activity, just open up Visual Studio, update your code, and recompile your project.   You'll then need to place the updated DLL back in the C:\Program Files\Citrix\Workflow Studio folder in order for Workflow Studio to pick it up.  If you get an "Access Denied" type message, this typically means that you'll need to close Workflow Studio (Console and Designer) in order to successfully overwrite the existing DLL that is in that location.  The Workflow Studio executables will have a lock on that DLL if you just used a previous version of that DLL in a workflow.

Once you can copy the updated DLL to that location, re-open Workflow Studio, and edit your workflow project.  When you edit your project, your workflow will automatically be referencing the new DLL.  You don't have to re-browse for the activity and add it to the activity pane.  Make the appropriate property changes and workflow changes and re-execute your workflow. 

In the next blog, I'll explain how you can step through your code in real-time in case you wanted to perform more robust troubleshooting at this stage.  Stay tuned!

Blogs in this series:
Getting Started
Setting up your Visual Studio development environment
Anatomy of a Workflow Studio activity project
• Testing your Workflow Studio activity project (this one)
Stepping through your Visual Studio code

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (2960) |

posted by Barry Flanagan




Citrix XenDesktop is a finalist in the Virtualization category for the "Best of TechEd" award from Windows ITPro magazine.

If you are attending TechED 2009 in Los Angeles, please vote for XenDesktop as the "Best of TechED" at this link -

http://windowsitpro.com/awards/teched_finalists_2009.html

(you must be logged into to MSTechEd.com and attending the event to vote).

Follow the Twitter feed for "Best of TechEd 2009" here.

Follow the official TechEd 2009 Twitter feed here

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (7) | Views (12752) |

posted by Craig Ellrod

NetScaler Virtual Machine

Today, Citrix announced a virtual appliance version of their NetScaler Application Delivery Controller - the NetScaler VPX, the first of its kind. All of the functions that traditionally were performed in the datacenter can now be performed in the domain of virtual machines. Load balancing, application acceleration, security and offload functionality are now available as a XenServer virtual appliance.

Industry's first Virtual Load Balancer

No other vendor offers this type of software as a Virtual Appliance. By making advanced web application delivery functionality available as a virtual appliance, NetScaler VPX drives convergence of virtualization and networking. In the continued movement toward simple and affordable convergence, NetScaler VPX makes sophisticated application delivery functionality available to any size organization. This breaks down deployment barriers for all types of organizations.

What used to run on a proprietary piece of hardware now runs on any hardware that supports virtualization. Because there is no physical appliance to ship, install or move VPX can be installed at a moment's notice, on any server running XenServer.

The challenge


NetScaler VPX


It's powerful - AppExpert!

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (4179) |

posted by Ruiguo Yang


Citrix just announced the new Citrix Receiver for iPhone. And a companion utility was also released called Citrix Doc Finder. As one of the creators of this utility, I will explain some of the history and rationals behind this product.

The leap from no access to access anywhere

Together with Receivers for other mobile devices, Citrix technology now allows you to access applications not available to mobile devices before.

You may wonder how usable the applications designed for desktops are going to be on small screens. It is surprisingly usable especially on the iPhone with the relatively large screen and multi-touch capabilities. Give it a try yourself. It certainly beats not having access at all.

The challenges with fitting desktop applications in a small screen

But can we do better? Certainly. Take windows file explorer for example. Although powerful, the interface is not ideal for mobile devices. For instance, the fonts are too small and especially not good enough for my fingers. I wouldn't blame my finger being too fat As the result, opening a file takes too much scroll, zooming and panning than necessary.

One solution "re-skin"

What if we modify the user interface to optimize it for mobile devices? Many web sites have mobile sites. But I am not aware of any good existing examples of mobile version of windows applications yet. Are you?

Why file explorer?

There are many windows applications we can "re-skin". Given that most people are likely going to want access their corporate documents on mobile devices, it seems logical to create a mobile version of windows explorer as the first example.

Why not implement Doc Finder as a native iPhone application

Yes, it is possible and I've given it serious consideration.

I can think of two possible approaches of a native iPhone implementation. Both have the advantages such as utilizing the iPhone graphics, animation etc. Both have their drawbacks though.

  • Download files to iPhone and open it natively.
    Cons: Poses additional security risks since files need to leave corporate network. And iPhone's capability to handle many file types is still lacking
  • Download directory and file information only and use XenApp to open selected file.
    Cons: Requires a web service which needs to be accessible outside corporate network. May require changes to core XenApp product. It seems more complex than simply deploying another modified application on XenApp.

More importantly I would like to help non-iPhone mobile users as well. Implementing Doc Finder as a windows application hosted on XenApp gives me the advantage of serving a broader mobile user base with a single code base.

Since I know windows development pretty well already, I can build Doc Finder quickly. It would be a daunting task to build a separate application for many different mobile platforms.

My development experience.

It took me only a few days to come up with a functional prototype. And it proved so useful and it was productized in a very short amount of time.

Where to find more information

Here is a demo video of Citrix Receiver and the Doc Finder. Doc Finder section starts at around 5:20.

Here is the direct link to that part of the video.

Here is the complete video demo.

Doc Finder is featured in the free demo at CitrixCloud.net. Please give it a try. For more information and to download it, please visit Doc Finder community site. Your comments and suggestions are appreciated. I encourage you to use this user forum for Doc Finder related discussions.

What's next?

But wait, similar type of optimization should be possible to many other types of applications as well both windows applications and web applications. I will leave that subject to another blog.

Ray (Ruiguo) Yang
Check out my other blogs
Subscribe to my blog RSS feed

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (5) | Views (9261) |

posted by Chris Fleck


The Citrix Receiver for iPhone 1.0 is now available in the App Store ! This is the product thousands of our users have been ( impatiently ) waiting for. The 1.0 release includes support for Access Gateway and RSA 2 Factor authentication enabling secure access over WiFi or 3G networks anywhere.

To provide some history on what influenced this new Citrix Receiver look back to last year when Apple released the iPhone SDK. We had lots of discussion inside Citrix about the priority and significance of developing a client for the iPhone. Although it was possible to access Citrix servers from mobile devices in the past, the user experience was poor due to screen size, slow networks and cumbersome input. The iPhone finally provided a platform that had a relatively large screen, a 3G network and the awesome gesture feature that made panning and zooming usable.

So we knew we could do it, the question was should we do it. Beyond the typical business case with projections of users/licenses and data points of individual customer requests we did an experiment by posting the question to the entire community. As you may have noticed this single blog post now has over 200,000 views and 200+ comments.

Interestingly the comments came not only from our common base of IT pro's but a surprising amount came from end users as well. These are just a few examples of what we heard..

" Hospitalists want to use this.  We have Cerner here, and I need Citrix working to connect to it.  I would use this 50 times a day.  Right now I have to repeatedly sign in to different terminals.  The iPhone is the right form factor for this.  Laptops / tablets are too bulky for doctors to carry around -- we often do not have a surface to put them on. ..David"

"It's not just the medical community.  I'm Director of IT for a large chemical company. I have a highly mobile user base - engineers visiting the production facilities, etc.  Currently they are all armed with Blackberry devices.  That's great for email only..... but forget attachments or getting into some of the apps we currently host in a Citrix environment (such as our production scheduling tool).  An iPhone client solves these problems.  We'd be off the Blackberry platform and onto the iPhone with Citrix very quickly. By the way, we have a huge investment in the Citrix platform, and it's getting larger - more and more of our users are moving away from laptops to thin clients.  A Citrix client on the iPhone will come close to eliminating the need for any laptops at all from most users. Do it, and do it fast ! "

"It's not just the medical or chemical companies, I am the CIO for a logistics company, and we do all of our global operations using MetaFrame, and having it on my iPhone really helps."

Regarding the use cases, the blog comments describe many of them. I think it's mostly a matter of how mobile the users are as to how often this client will be used. For office based workers that have an iPhone it may be a just another cool app helps out in a pinch. But for the increasing mobile workforce that absolutely needs access to apps & data anywhere ... it's priceless... ( just like when you need to get to a server and you only have your phone with you) It seems that most everyone would like to be able to leave their laptop home, myself included.

 So let us know what you think, do you agree with the rest of the Citrix Community? Does it live up to your expectations ? Download the Citrix Receiver from the App Store and try it out. If you are not ready to put it in your production environment yet, register for the free demo at CitrixCloud.net and test the sample apps plus the great new App we built called Doc Finder. If you want to build your own environment to test your own apps try the C3 Lab in Amazon EC2.

For more information, news, questions and suggestions go to;

Community.Citrix.com/iPhone

Citrix.com/iPhone

From your iPhone, check out;

m.iphone.citrix.com

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (3025) |

posted by Roger Klorese

We hear from many of you every day, in person, by email, by Twitter, in your own blogs -- and even some ways I can't think of -- I bet some testimonials have washed up on the beach in bottles! -- about how virtualizing your business, your lab, or your own services on Citrix XenServer and Citrix Essentials for XenServer have saved you money, made your environment more responsive, and simplified management.

Now we're going to put a little bit of our money where your mouth, or keyboard, is.

Let us know how you and your company have "attained Xen" -- and we'll choose a few of our favorites each month and give them a gift to thank them.  We'll pick anywhere from one to three of them each month and give the winner a gift credit of US$100 or equivalent at Amazon, iTunes, or a major online retailer in their local area. 

Send us anywhere from fifty to 500 words.  Be creative, be specific, and let others know what XenServer has done for you.  (If your creativity runs more to the visual, we'll also be announcing a video contest in the next month or two.)

Mail your entry to findxen@citrix.com. At the end of every month, the XenServer/Essentials marketing team will choose its favorites and we'll notify the winner (or winners) by the middle of the following month.

There's a catch, of course -- we ask for the rights to use your testimonial.  (See the fine print below for details.)  At a minimum, you'll need to tell us your name and email address, so we can contact you if you win. To be considered, you'll also need to specify your company, industry, and company size, as well as your job role.  If you only want us to use your job role, industry and company size, that's fine -- but if you give us permission to use your name and your company's, we'll double the prize to US$200 or equivalent. Whether you win or not, we retain the rights to use your testimonial under the terms you choose, either anonymous or named.

It's a small token of how we value your support. 

And now, the "fine print."

ELIGIBILITY

This Contest is open to individuals who have used Citrix XenServer or Citrix Essentials for XenServer. By submitting a testimonial entry, Contestants acknowledge that their entry may be showcased on the Citrix Web site, and may also be utilized in part or in full in media stories. Entries must be submitted by an individual who is at least 18 years of age.  Void where prohibited.

HOW TO ENTER

Contestants must mail their entry to findxen@citrix.com, and in 50 to 500 words, submit their entry explaining how using Citrix XenServer or Citrix Essentials for XenServer has benefited the Contestant or the company the Contestant works for. E-mail is the only medium to enter this contest and no other means of entrance will be accepted. All entries must be submitted in English. Contest timeframe is limited and can end at anytime, as deemed by Citrix.

SELECTION OF WINNER

Each entry will be judged by a Committee designated by the Citrix XenServer/Essentials Product Marketing team. Judging will be based on the unique perspective and interesting anecdotes Contestant provides in their testimonials about how Citrix XenServer and Citrix Essentials for XenServer have enhanced the Contestant's or Company's IT infrastructure. The decisions of the Committee will be final.

CONDITIONS OF PRIZE AWARD

The top one to three selected Contestants each month will be notified by e-mail that their testimonial has been selected; a gift credit for the desired online retailer will be delivered to their e-mail address.

Failure to comply with any term or condition in these Official Rules, or if prize is returned as non-deliverable, may result in prize forfeiture, in whole or in part, and selection of an alternate potential winner. Prizes will be shipped approximately 2 to 3 weeks after each month's Contest end. Citrix will post the names of the winners  after the prize is awarded, except where prohibited by law. Winners are responsible for any applicable federal, state, or local taxes.

COPYRIGHT AND PUBLICATION

All entries and submissions become the property of Citrix. Citrix will not return any entries. By submitting a Contest entry, a Contestant: (a) assigns to Citrix all copyrights and moral rights in and to the Contest entry arising under stature and common law, and all other rights derivative therefrom, (b) grants to Citrix permission to publish, copy, and disseminate all or part of the Contest entry; and (c) grants to Citrix permission to use the Contestant's name for advertising or promotional purposes all without any royalty, compensation or other consideration to Contestant, except where prohibited by law. Contestant agrees that e-mail shall satisfy any writing requirement which may apply to intellectual property waivers, transfers, and licenses.

GENERAL TERMS AND CONDITIONS

This contest is subject to all applicable federal, state, and local laws. Void where prohibited or restricted. Participation in the Contest constitutes Contestant's full and unconditional agreement to and acceptance of these Official Rules.

Citrix is not responsible for lost, late, stolen, delayed, damaged incomplete, illegible, misdirected, or unreceived e-mails and Contest entries; for failed, partial, or garbled computer transmissions; for technical failures of any kind related to the Web site or the administration of the contest; or for any technical malfunction of any telephone network or lines, computer on-line systems, servers, access providers, computer equipment, or software. Citrix reserves the right to cancel, suspend, or modify the contest, if fraud, technical failures, viruses or bugs, beyond the reasonable control of Citrix, corrupt, impair or destroy the administration, security, fairness or integrity of the contest as determined by Citrix in their sole discretion without liability to any Contestant. Entries are subject to verification and will be declared invalid if they are illegible, forged, falsified, altered or tampered with in any way or if they violate any provision of these Official Rules.

As a condition of entering this contest, Contestant agrees that Citrix and affiliates, officers, directors, employees and agents shall not be liable for injury, loss or damage of any kind resulting from participating in this Contest or from the acceptance or use of any prize awarded. The exclusive warranty for any prize, if any, is from the manufacturer as set forth in the product documentation. All issues and questions concerning the construction, validity, interpretation and enforceability of these Official Rules, or the rights and obligations of Contestant and Citrix in connection with the contest, shall be governed by, and construed in accordance with, the laws of the State of Florida, U.S.A. without giving effect to any choice of law or conflict of law rules or provisions.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (3356) |

posted by Ed York

When you create a new Workflow Studio activity project within Visual Studio, the templates provide you with a pretty comprehensive and documented activity class file.  In the screen shot below,  I minimized a lot of the code, but you can see the primary sections of the activity file within the project. 
The primary sections of this file are listed below:

  • Using statements
  • General activity properties
  • Class constructor
  • Standard properties
  • Dependency properties
  • Activity execution section
  • Property validation section

In this blog, I'll discuss at a high level each of these primary sections.  I won't detail the meaning of all of the attributes and properties that are present as they are pretty well documented within the Activity Developers Guide and within the comments of the class file itself.  This blog is really meant to give you an overview of what is actually in here so you can navigate to the appropriate section as you develop your activity.

1. Using statements:
There is a long list of using statements at the top that define the references for the class.    What you should notice here is that the last five all come from Workflow Studio.  If your activity references a third party DLL, you'll most likely need to add more using statements to make sure your references are all in place.

using Citrix.WorkflowStudio.Common;
using Citrix.WorkflowStudio.CustomActivities.Designers;
using Citrix.WorkflowStudio.CustomActivities.Editors;
using Citrix.WorkflowStudio.CustomActivities.Serializers;
using Citrix.WorkflowStudio.User;

2. General activity properties:
Right beneath the using statements is a section called "Attribute Definitions and Comments".   This section contains a series of general properties for the activity.  The comments provided within this section explain these settings pretty well.  A few of them you should take note of are below.

[DisplayNameAttribute(@"AdvancedDelay")]
This is the name of the activity displayed within the Workflow Studio Designer.

[Description(@"This activity will delay for a specified amount of time")]
This is the description of the activity displayed within the Workflow Studio Designer.  When you select the activity in the Activity pane, the description is shown in the lower-left corner of the Designer.

[ActivityTreePath(@"Windows PowerShell/Utilities")]

This is the folder location for where the activity is placed within the Activity pane of the Workflow Studio Designer.  A forward slash is used to specify a subfolder.


 

3. Class constructor:
The class constructor is next.   This code gets executed when the activity is placed on the drag-and-drop surface within the Designer.  The most common thing you'll need to do in the constructor is to initialize the values of your properties. 
 

4. Standard properties:
The section for standard properties is listed after the class constructor.   A sample one is provided in the template which is commented out.   This sample is mainly here to give you the syntax for defining a sample property if you would like to use one within your code.

What you really need to know is that there are two types of properties you can define within the class - standard properties and dependency properties.  The primary difference between them is that dependency properties are "bindable" to other activities whereas standard properties cannot be bound.   Dependency properties have much more flexibility than standard properties due to being bindable.   In the Designer, bindable properties allow their values to come from other activities.  Bindable properties can also be used as input to properties of other activities.  Due to this flexibility, dependency properties are much more common to use than standard properties and you should probably define all of your properties as dependency properties first, then fall back to being standard if the bindable behavior is not desired.

  

5. Dependency properties:
The dependency property section is listed after the standard property section.  As stated in the section above, dependency properties are much more common to use than standard properties since they can be bound to the properties of other activities.  Their flexibility makes them a much better choice in most cases.

The activity template gives you a series of sample dependency properties that are commented out.   I won't go into all of the code for this property here (it's explained pretty well within the Activity Developers Guide).  I'll just highlight a portion of the settings here...

[DefaultValue("0")]
This is the default value of the property.  Default values can also be set within the class constructor.  When using the Workflow Studio Designer, if the property value is ever set to something different than this default value, the value is shown as bold within the Designer to indicate it has changed.

[DisplayName(@"DelayTime")]
This is the name of the property as shown within the Workflow Studio Designer.  This name should be intuitive and easy for admins to understand.

[Description(@"Amount of time to sleep in ms")]
This is the description of the property as shown within the Workflow Studio Designer.  When you select the property in the Designer, this text is shown in the lower-right corner of the Designer.

[Browsable(true)]
This setting defines whether this property is visible within the Workflow Studio Designer.  If set to true, it is displayed within the Designer when the activity is selected.  If you don't want admins to know about this property or see it within the Designer, you can set browsable to false.

[InputAttribute]
A property can either be an input property or output property.  Input properties define some value that is inputted into the activity.  Output properties define something that is returned by the activity after the activity is executed.  The use of the [InputAttribute] or [OutputAttribute] declaratation defines what icons should be used for this property in the Workflow Studio Designer.


6. Activity execution section:
After all of the properties are defined, the next section is the Execute() function.   This function gets called when the activity is executed by Workflow Studio.  All of the execution logic should go into this function.    

The Execute() function provides a try/catch block.  Put all of your execution logic in the try block.  Don't touch the ExpandStringProperties() call at the top as this function will dynamically retrieve the property values set within the Workflow Studio Designer at runtime so that you can use them within the try block.

7. Property validation section:
The last section of the file defines how property validation is performed within the Workflow Studio Designer.  If you have used the out-of-the-box activities within the Designer, you may have noticed that some activities have required properties that need to be set in order for them to be valid.  These properties provide a red X or yellow warning icon to inform admins that they are required or desired to be set.  You can set up the same type of functionality for your properties through the code in this section.  There are a lot of comments within this section to explain how to set up your properties for validation, so I won't go into this here.   I may blog about this in the future as it could be a big discussion on its own.

Blogs in this series:

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (3544) |

posted by Ed York

I recommend having a separate Development machine and Test machine for working with the SDK.  I have mine set up as follows:

  • Development machine - contains Visual Studio 2008, Workflow Studio 1.0, and the Workflow Studio 1.0 SDK (C# templates).
  • Test machine - just has Workflow Studio 1.0 on it for testing activities created on the development machine.   Having a separate box for testing allows you to be sure that your activity works on a non-development machine.

One thing you may notice is that I have the full Workflow Studio 1.0 product on my development machine as well.  The benefit of placing Workflow Studio on the development machine is that it allows you to step through your code in Visual Studio by attaching to the key Workflow Studio processes.   I'll go into more detail on that later in this blog series.   Technically you can get by without installing Workflow Studio on your dev machine by copying over 5 key DLLs from another Workflow Studio installation.  The Activity Developers Guide provides details on how to locate and copy these DLLs if you wanted a more minimal installation. 

1 - My initial development machine layout:
When I started building my Dev machine I had a barebones Windows Server 2003 installation:

  • Windows Server 2003 SP1
  • IIS with ASP/ASP.NET enabled

2 - Install the prereqs for Visual Studio 2008 and Workflow Studio 1.0:
Next, I installed the prereqs for Workflow Studio and Visual Studio listed below. 

3 - Install Visual Studio 2008
Third, I installed the Visual Studio product.

  • During installation, select at least the C# language since the WFS Activity templates are based on C#. You can choose other languages as well if you want to use this machine for other purposes later on.
  • After installation, launch Visual Studio and select the C# development layout on the first time use screen.   I've tried both the VB IDE layout and C# IDE layout and the C# layout makes it a lot easier to set up the "stepping through code" settings for later on. 

4 - Install Workflow Studio 1.0
Fourth, I installed Workflow Studio 1.0.

  • During installation, point to your SQL Database installation (mine was local SQLEXPRESS).  When configuring the Runtime Service, I added one service that is tied to my local admin account.
  • After installation, launch Workflow Studio and ensure you can access the Workflow Studio Console 

5 - Install Workflow Studio 1.0 SDK
Finally, I installed the Workflow Studio SDK.   This installation adds 4 templates to Visual Studio (2 project templates and 2 class templates)

  • During installation, take all of the defaults.
  • After installation, launch Visual Studio and verify that these templates are present.  Essentially, try to create a new C# project and the Workflow Studio project templates should be listed there. 

After completing the final step, you're all set to start writing custom activities.   If this is your first time developing an activity I definitely recommend checking out the Activity Developers Guide that explains how to create a few sample activity projects. 

Blogs in this series:

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (4091) |

posted by Ed York

I've been using the Workflow Studio SDK for about a month and just wanted to share with everyone some things I've learned along the way.   I figured a good approach to get the word out to our partners, customers, and Consulting teams about how to use the Workflow Studio SDK was to try a blogging series.    Over the course of the next few weeks I'll blog about some of the fundamentals of using the Workflow Studio SDK.  This is part 1 of the series in answering some of the beginning questions.

What is the Workflow Studio SDK?

The Workflow Studio SDK is a series of C# templates for Visual Studio 2008 that allows you to create activities for Workflow Studio.  There are two types of activities you can create using the templates:

  • Powershell Activity - this is an activity based on a Powershell command.  When you choose this activity type within Visual Studio, the Powershell Converter opens where you select the Powershell command you want to transform into an activity.  The Powershell Converter then creates the activity code based on the Powershell command(s) that were selected.  You can then further modify this code to customize as you see fit.
  • Standard Activity - this is an activity used for standard actions not based on Powershell commands.   Essentially, you will create a standard activity if you are not creating an activity based on a Powershell command.  The code you get looks about 95% the same with a few differences.

What skills do I need to use the Workflow Studio SDK?

From a programming side I would say you need a basic background in using Visual Studio and C#.    The templates are only available in C#, so if you are a VB or VB.NET programmer you'll have to walk on the other side of the fence here.  

My personal coding experience mainly comes from web development (HTML, JavaScript, ASP, etc.) several years back.   I'm not an extensive coder but I do understand the object-oriented programming principles.   Using the SDK was my first time to extensively use C# and if you understand coding principles and object-oriented programming, it's really a matter of learning the new syntax.   For example, for me I found myself asking things like "I know how to create properties in VB, how do I do this in C#?"

In addition to the recommendations above, I would definitely recommend playing with the Workflow Studio product before you start using the SDK (that's probably a given ).   You'll want to understand how activities tie to each other through binding, as you'll be creating "bindable" properties in your code.  

Using the SDK might sound pretty complex at the beginning, but the templates you are given have so many comments that they really guide you through the process as well.

Where can I find the Workflow Studio SDK?

The SDK can be found on the Citrix Developer Network site (http://community.citrix.com/cdn/wf/sdks).

Is there a Developer's Guide for getting started with the SDK?

Yes, a great guide is available on the Citrix Developer Network site (http://community.citrix.com/cdn/wf/sdks).  If you are new to using the SDK this guide is a must for getting started.  You should come here first before venturing out on your own.  This guide will walk you through creating two sample activities:

  • "GetDate" Powershell activity - creates an activity based on the "Get-Date" powershell command.  This activity returns the current date/time of the system.
  • "AdvancedDelay" Standard activity - creates an activity that allows you to specify a time delay for your workflow.   For example, in Workflow Studio if you want the runtime to pause a certain length of time before continuing with executing the rest of the workflow, you can add the AdvancedDelay activity to pause a certain amount of time. 

Upcoming blogs in this series:

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (22) | Views (51115) |

posted by Chris Fleck


It's still not official .... but the Tech Preview of the long awaited Citrix Receiver for the iPhone is now available in the AppStore.  Anyone with a properly configured Citrix XenApp  environment can download the Citrix Receiver and access authorized company apps from their iPhone today ! Now is the time to start testing the iPhone in your environment, look for ways to increase productivity, and have some fun.

There are some restrictions in this Tech Preview so be sure to check out the iPhone Community pages we have set up for requirements, tips and forum discussions. If you want to set up a separate test environment to test your apps over 3G we have a preconfigured XenApp Virtual Appliance in Amazon EC2 that you can copy and set up in 15 minutes.

As part of Citrix Receiver we are also providing a new feature called Doc Finder that runs on XenApp but provides an iPhone experience to allow users to easily find, view, edit and send documents. Because the Documents are hosted securely in the data center nothing is downloaded and Doc Finder provides fast one click access to all of your important files.

For more information, news, questions and suggestions go to;

Community.Citrix.com/iPhone

Citrix.com/iPhone

From your iPhone, check out;

m.iphone.citrix.com

To get the real scoop on Citrix Receiver, talk to the experts, plus get some official news, I recommend you attend Citrix Synergy in May... and bring your iPhone... Learn more at www.CitrixSynergy.com

And finally, a big thanks and shout out to the Braeburn project team  .. Well Done !  ( actually .. they're not done ..  )

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (0) | Views (6414) |


Gourami presents a free tool to uninstall every version of a ICA client from a Windows 2000 or Windows XP Workstation. It's given the name UNICA!

How it works:
When started with the correct command line options, UNICA searches the uninstall information of a workstation for every product which was released by Citrix and uninstalls it. UNICA waits till everything is finished uninstalling, and then launches the installation command line for deploying the new client.

This is a ideal tool when you have several different versions of the ICA client installed over several different workstations. This is also a great help if you have 2 or even 3 versions installed on the same workstation. UNICA automatically detects and uninstalls them.

Because UNICA uninstalls every product that is released by Citrix, it also uninstalls the presentation server console, or even presentation server itself. Therefore a safety is build in, UNICA is made not to run on Windows Server. But it is still recommended to not run UNICA on windows XenApp/Presenation servers.

UNICA does not require .NET framework or a new version of Windows Scripting Host to run. In some occasions when a computer is not equipped with Microsoft Common Controls, the MSCOMCTL.OCX needs to be next to UNICA.EXE.

Learn more

Gourami is also has product which are Citrix Ready.

Expand Blog Post
Permalink | Twitter Post to Twitter | Comments (1) | Views (7554) |

posted by Chris Fleck

Things are changing fast in the world of Cloud Computing, however one question remains the same. Will it save me money and how much? To follow up on a previous post on Cloud Economics 101 Part 1, I looked at a fairly simple example of 5 Servers for a dev/test environment and identified the incremental costs of buying 5 servers and running them on premise or a Colo and then compared that to Amazon EC2. The analysis did not include many variables such as real estate costs and labor savings which may or may not apply to the particular situation. The results indicated that a Premise based deployment could provide the lowest "incremental" cost when compared to EC2 if the servers were running continuously. On the other hand EC2 provided significant savings for short term workloads with no upfront costs.



Purchase - on Premise
$ 15,000
Quad-Core Servers ( 5 x 3,000 each  )
$ 750
1/2 Rack + Gigabit Switch
$ 15,750
Total Hardware cost
$ 5,800
Annual amortized cost, 5% over 3 years
$ 0
Assuming no incremental real estate cost   
$ 2,000
Annual power & AC cost
$ 7,800
Total annual cost on premise
  Purchase - at Colo
$  8,000
Colo fee's; 1/2 Rack + power + bandwidth    
$  5,800
Annual amortized cost
$ 13,800
Total annual cost at Colo
  Cloud 
$ 35,040
24x7x365x5 Amazon EC2 ( $.80 per high CPU Server instance hour )
$  8,320
40 hours x 52 weeks
$    688
40 hours x 4.3 weeks


What has changed recently at Amazon is a new pricing model that provides the option for "Reserved Instances" http://aws.amazon.com/ec2/#pricing which includes an upfront fee ( 1 year or 3 year term ) and a reduced per hour charge. The analysis below reflects the new pricing model applied to the same 5 server scenario as above. As indicated the new model results in a significant savings compared to EC2 standard pricing; 31% for the 1 year term and 48% for the 3 year term assuming the servers are running 24/7. However, when compared to the 40 hour per week scenario the cost at $16,146 ( or $10,229 3 year ) is higher than the EC2 Standard price of $8,320 or the Premise cost of $7,800.

Annual $ Reserved Pricing at EC2
24,162 24x365x5 ( $.80 high CPU ) 1 Year Reservered, $2,600x5 Upfront amortized at 5% 
18,245 24x365x5 ( $.80 High CPU ) 3 Year Reservered, $4,000x5 Upfront amortized at 5%
16,146 40 hours x 52 x 5 ( $.80 High CPU ) 1 Year
10,229 40 hours x 52 x 5 ( $.80 High CPU ) 3 Year

So will the Cloud save money? the answer remains the same ... it depends. The new " Reserved Instance" pricing model provides substantial savings over standard pricing when used continuously but the standard pricing still is more effective for short time periods such as a 40 hour week load. As noted in the earlier posts there are many other variable cost savings by putting workloads in the cloud such as real estate costs, facility upgrades plus the intangible but real benefit of reduced time to develop/test/deploy.

The "Reserved Instance" pricing will also impact the variable workload analyzed in Cloud Economics Part 2 - Premise Plus Cloud scenario, this should provide more content for an upcoming post.    

Cloud Economics 101 Part 1 - Premise vs Cloud vs Colo
Cloud Economics 101 Part 2 - Premise Plus Cloud
Cloud Economics 101 Part 4 - Amazon EC2 vs Terremark vCloud

Expand Blog Post

<< Prev   1     2   3   4     5     6     7     8     9     10     11   Next >>