Author Archives: jeffreymuir

XAMA SDK Online Documentation

XAMA SDK documentation is now available online at http://www.citrixcloud.net/mobilesdk/index.html. The documentation was generated from the source code using doxygen.  Because of this, the information is more up to date than typical SDK documents.  Three interfaces are covered. Continue reading

Help with Citrix XAMA SDK on Forum and Email

Since we just announced XAMP and XAMA just a few days ago, and it also very close to the holidays, it is not expected that many people will get a chance to try these solutions before January.

However, to anticipate potential questions, there is a solution regardless of when the questions are asked.

First of all, there is a Citrix forum dedicated to the XAMA SDK.  There has not yet been much traffic here yet but we have had a few questions.  The forum is the place to go when you have an issue with getting the SDK to work.   So far we have covered some of the issues that happen when you first start and also how to debug.  Thanks go out to Jason Conger for being an early adopter.   Just remember that we are instantly notified of any new request and do our best to answer the question within a day.

Another path is to use our direct email account.  The group that worked on the Mobility Pack has a group email alias.  This address is mobilitysdk (at) citrix.com.  As usual, substitute “(at)” with @.  I wrote it this way in the vain attempt to hide the email address from automated programs.

The email address is direct and instant and is directed to several people in Citrix.    It probably comes down to preference whether you want to use the forum or email.  Either way, you will get the help you need with the XAMA SDK.

Debugging XAMA SDK Applications

When a developer first experiments with mobile phones and tablets, one of the first questions is how it can be debugged.  With PCs it is fairly easy to start a debugger for a program since the environment is well established and there is plenty of screen space.  With a phone, the space is very limited.  On top of this, there is very limited input control.  Using touch is very effective for mobile devices but not always that effective for debugging the applications than run on these devices.  There has to be some kind of outside control to make this more effective.

There are some general strategies:

  1. Using tracing to log files
  2. Using tracing to remote consoles
  3. Interactive Debugging inside session
  4. Interactive Debugging in another session

Continue reading

Citrix XenApp Mobile Application SDK Version 1 Available

The first version of the Citrix XenApp 6.5 Mobile Application (XAMA) SDK has been published on the Citrix web site as of December 17, 2011.  In order to use the SDK, the XenApp server must have the Citrix XenApp 6.5 Mobility Pack (XAMP) installed first.  The team has worked for around a year bringing this together.  The overall goal is to make it easy for enterprise Windows developers write software that works well on mobile devices (phones and tablets).

Continue reading

XenApp Mobility Pack (XAMP)

Ramping up with XAMP

Over the last couple of years, Citrix Labs has been working on a project to make standard Windows applications more usable on mobile devices (phones and tablets).  This started with the development of Project GoldenGate and the production of an email client that runs on XenApp but acts like a native mobile device application when run remotely.  In the early demonstrations, it was clear that customers were interested for a few different reasons:

  • The email would be kept in the data center and therefore would be more secure.  If the device was lost or stolen, the information would not be there.
  • The email application could be maintained inside the organization instead of on different devices at remote locations.
  • Deploying standard Windows email programs via XenApp is not easy due to user expectations for usability.

You can learn more about the latest release of GoldenGate here.

Producing this kind of application is important but not the whole story.  There is also a need to make it easy for other software companies to produce software for XenApp and mobile devices.  The intent is to publish a SDK for developers to use to get all the same benefits along with a few new ideas along the way.

To get a first impression of this SDK, please example the doxygen-generated documenation for XenApp 6.5 Mobile Application SDK.  This documentation was released during Synergy Barcelona in late October 2011.

The online documentation focuses on the C/C++ interfaces for the SDK.  The internal name for the SDK was Citrix Mobility Pack SDK (CMPSDK).  That is why there are so many references to CMP in the documentation.

The announcement for the XA MA SDK includes a video that share the vision for producing these kind of mobile applications.

It is important to keep these kind of things in mind:

  • It is a fairly steep learning curve to pick up knowledge in mobile device platform development.  It is far easier to leverage existing Windows development experience.
  • The XA Mobility Pack enables several new features from the mobile device including GPS, display metrics, onscreen keyboard, SMS, camera, orientation, mobile device properties,  button redirection, user notification, picker control support.
  • The SDK works with C/C++/COM/C#
  • The SDK is used by GoldenGate

Citrix Software Development Kit for Mobile Devices

So many people are using mobile phones and tablets these days and Citrix has invested heavily in producing new Receiver programs for the wide array of hardware devices.  Android and Apple iOS are the most popular but there is work being done for upcoming devices from top manufacturers.

While having great Receiver software certainly helps, Citrix has realized that it needs to do more.

The wheels are turning at Citrix Labs to produce a new software development kit.  Unlike previous Citrix SDKs, this one addresses a basic need to utilize mobile device resources with programs running on XenApp.   Continue reading

Legacy Entrapment

Where does it all begin?  When does a pattern emerge?  How do we decide that one thing is better than another?  Why do we make the choices we do?

Obviously we can blame our parents first.  That which we know probably started with them.  Then we can blame the media and the Internet for the remaining bits.  We see, we do.  We like to copy that which we have seen.  If we see someone do something and it worked for them, then it should work for us.

This is the nature of primates.  The roots are deep.  It is hard to ignore those aspects of ourselves.  We see, we do.

Sometimes things are designed to be so easy to do it is hard to avoid them.  Once they are used, it is hard to stop.  Things like telephones and televisions come to mind.  Simplicity attracts use.  Use attracts others.  Soon, a large group of customers are avid fans of that which they use.

Enter the entrapment.  Once a user gets hooked on a way something works, the user expects it to always do certain things.  The momentum of the mind will accept minor deviations in future products but will not tolerate having its basic needs met. Continue reading

Microsoft Build Macros

I hit this same problem every time I start a Visual Studio project.  Well, not every time, but it is a common occurrence. When there are multiple projects involved, it is sometimes necessary to point to different directories.  It is possible to hard code the locations but this is not good sometimes based on needing to move the solution to a shared location.

Quite some time ago, Microsoft invented their own way of dealing with this.  Instead of fixing the locations, it can be specified based on a “macro”.  These macros are defined at:

Macros for Build Commands and Properties

These macros are replaced with the real values during the build. It can be very helpful with regards to a retail versus a debug build. The most common ones I use are $(solutiondir) and $(projectdir). Any good tip is that the names already include the backslash so you will not need to specify that after the macro. Anything entered in as a path in Visual Studio should be relative to a macro unless the path is the same for everyone that might use the build.

The list is fairly extensive so you will probably find what you want. Even if you don’t, there is a way to create your own (which I am not going to cover).

The Age

We are all getting older. There is a time that is called the prime of our lives. Typically it is over before we know it. In computer times, this prime shifts much faster. Being in the right place at the right time is becoming incredibly difficult when the window of time is so small.


The theory is that if you are born in a certain age, there is a chance you will become a part of what your time offers. This is summarized in the book “Outliers” by Malcolm Gladwell.  His theories are much more advanced than what is portrayed here.  In general, he describes a very different view to what brings success.  Typically timing and practice play major roles in competing well in a world that is always changing.

It is easy to conclude that you were not born at the right time.  Based on the examples in the book, it is clear that the computer industry leaders were largely born around 1955.  Anyone around the age of 20 in 1975 was well positioned to take advantage of the emerging personal computer generation.  Bill Gates and Steve Jobs are perfect examples.

Continue reading

iPad

Citrix on iPad

This was the year of the iPad. For there to be so much success in such a short time indicates that critical mass has been reached. Even though the tablet form factor has been around since the early 90′s, it was not until Apple delivered the iPad that the market really kicked off.

The rate of change seems to be accelerating. With the iPad 2 coming soon, it is clear that Apple will pursue this path for deeper market adoption.

This is the first post that I am writing from an iPad. This would be difficult to do without the bluetooth keyboard. This is acceptable for a user experience. There are some quirks here and there but it is still good.

Continue reading