ROI and Social Media: Getting Started with Social Media Engagement Measurement

Back to the Intel Software Business Network



Measuring social media engagement can feel like a daunting task. What are you measuring? Which tools can be used? What do these numbers mean? The questions and the options quickly become overwhelming but try the steps below to make the task of measuring your social media engagement a manageable, useful exercise.

1. Focus on what you want to measure and set objectives
What are you interested in measuring? Are you interested in the leads generated by tweets? Are you interested in the amount of traffic you’re driving to your website from your social networks? If you’re interested in measuring engagement, consider keeping track of the number of @replies and re-tweets on Twitter. If you’d like to check on the amount of traffic your social media engagement gets, you might create trackable links using Google Analytics or bitl.y as noted below. Get very specific about what you want to measure and use the tools appropriate for measuring that metric.

2. Find the right tool
There are free and paid tools to measure social media and each tool measures something different. New social media measurement tools come out daily, but there are a few good tried-and-true methods that ought to be incorporated into any analytics strategy:

Google Analytics offers many tools for tracking and measuring website traffic and the analysis of marketing results, including sales and conversion tracking as well as tracking email campaigns, banner ads and more. Use Google Analytics to see how much traffic arriving at your site was referred through social sources. Google Analytics offers free and paid options.

Facebook Insights provides metrics on the engagement on a Facebook page. It tracks user engagement, the number of people who have seen a post, as well as the demographic data of your Facebook page’s audience. This is a free tool within Facebook.

Radian 6 is a listening tool. Users can track mentions of their brand and competitor brands across the Internet. Because Radian 6 is now owned by Salesforce, users can not only track mentions, but also add those talking about your brand to your possible leads. Radian 6 offers a free trial period, with paid options.

Tweetreach allows users to track their impressions and the number of people they’ve reached from conversations and retweets. The tool generates a report for up to 50 tweets. This is a free tool with paid upgrades.

Bit.ly is more than just a link shortening tool. It also tracks how many times those shortened links were clicked so you can see if your call to action really worked. This is a free tool with paid upgrades.

3. Create a schedule to check your metrics
Often people will check metrics hourly or weekly or never again. In most cases you’ll be interested in trends over time as much as absolute numbers so create a regularly scheduled metrics check-in to monitor your activity’s ROI. A weekly report is standard, but if you are launching a new product or making an announcement, consider a daily report.

4. Keep doing what works
Take a proactive approach to your metrics analysis. If a channel or type of content isn’t working, change it up. On the other hand, if something is working, consider using that tactic on a different channel or experiment with ways to enhance it. Look for websites that are driving a lot of traffic to your site and consider a thank you note. If one blog post or tweet is getting a lot of attention, consider expanding that idea. Use your metrics as a barometer of your successes and to identify potential problem areas.

Are you measuring your social media activity? What tools are you using? What are your tips on making social media engagement a success?

Read this article:
ROI and Social Media: Getting Started with Social Media Engagement Measurement

What Android SDK R17 and Intel HAXM mean for Android Developer and Programmer?

The answer is ” Android Emulator Faster, More Capable “. Mike James wrote an article title: “Android Emulator Faster, More Capable ” on http://www.i-programmer.info. It is good read.

Mike wrote ” Support for x86 should get better as the facilities settle down from experimental to production. If you do install the x86 emulator then the result runs at close to native speeds – i.e. the sort of response times you would get from running Android on an x86 architecture. This is not surprising as this is exactly what you are doing – only the peripheral hardware is being fully emulated. What this means is that if a consumer version of the emulator can be produced then there is no barrier to running Android apps under Windows, Linux or OSX. Having the emulator prove itself within the SDK seems like a really good way of making sure that it works properly”

See the original post here:
What Android SDK R17 and Intel HAXM mean for Android Developer and Programmer?

Maintenance options in SCS 8.0

After you configure your system once, every now and then you will need to perform “maintenance” tasks on the machine. What are maintenance tasks?
Well, they include re-synching Intel® AMT’s internal clock so Kerberos will keep working; re-issuing any certificates that are about to expire; re-defiing administrator passwords, etc.
SCS 8 allows you to perform maintenance operations both from the local system, using the configurator, and remotely, using the RCS (for those working with a database) by defining a maintenance job to run on multiple systems. You just use the maintenance command and define which of the maintenance tasks you want performed.

But what if you don’t want to specify which tasks should be done? Maybe you don’t want to keep track of when your certificates are going to expire, and want SCS to do that for you? Exactly for that reason, we in the SCS team created the “Automatic maintenance” option. This option will review when the last time a task was performed, or when the object is going to expire, and will act accordingly. All the user has to do is to make sure automatic maintenance happens once every month or two, and SCS will take care of everything else.

Automatic maintenance is available both in non-DB mode (through the configurator) and in DB-mode (configurator and RCS). It is also available for all generations of Intel AMT supported by SCS.

P.S. Just to clarify: regular maintenance and automatic maintenance on RCS side are not identical to what is done by the configurator. The configurator has the added capability of performing “network synch” – it will make sure that the Intel AMT’s hostname and IP are set according to the policy the user defines.

Excerpt from:
Maintenance options in SCS 8.0

Porting existing Game Engines to Metro

Introduction.
I’ve been looking at Windows 8 Metro, wondering what issues may arise when developers try to port existing games to Metro and DX11.1, as well as converting to Visual Studio 11. As we’ve seen already, some old favorites have disappeared from DirectX so I started looking at porting my “half an engine” (we all have one, right?) over to Metro to see what would happen. I’m going to describe some of the hoops I jumped through, and some of the epiphanies I had while getting it all working.

R.I.P. D3DXCompileShaderFromFile().
What started me off thinking this would be a port, not just a recompile was that D3DX has gone, and I used it a lot. I compiled all my shaders at runtime using D3DXCompileShaderFromFile(), so that promised to be a headache. I use a fairly simple and flexible technique for making shaders. I have a main() for most shaders in one file, then some #defines which control what is included in that main. Features are bought in as fragments from other files as required so you can build just the shader(s) you need at runtime. My initial reaction was that with no D3DXCompileShaderFromFile(), you will need to compile every possible shader at compile time and include them in the app!
Luckily, that’s not to be. Although D3DXCompileShaderFromFile() has gone, you can still use D3DCompile() as long as you jump through a couple of hoops. To start with, You can replace existing calls to D3DXCompileShaderFromFile() with calls to D3DCompile() fairly trivially. The only change is you have to preload the source for the shader, which you then pass to D3DCompile(). Pretty easy, and there is lots of samples about how to load files on Metro, don’t get into a panic when you add CreateFile() and it comes up as unresolved extern!.

Loading Shader source and other data files.
An interesting problem is where do you load your shader source from? When you run an app you’ve compiled to run on Metro in Visual Studio 11, you quickly realize the app is actually installed on the Metro side in its sandbox before its run. This means your shader source has to be installed in the sandbox as well so that the app can find the files. The easy way I found to do this is to add the shader source file to the project, open the properties dialog for the file, change the “General / Content” field to “Yes” and the file is magically added to the sandbox so that you can open it at runtime.
Next problem is in order to use D3DCompile() you need to add d3dcompiler.lib to your app. This lib, of course, needs to find D3DCompiler_44.dll in the sandbox. It turns out you can do the same with the dll as you did with the source: add it to the project and mark it as content. In fact, you can do this with all your data files and it’s a quick and dirty way to get things up and running when you have data files you need to load at runtime.

What happened to D3DX Math then?
It turns out that for a good while, Microsoft have been advocating using xnamath and leaving D3DX math behind. This is pretty good advice, in fact, xnamath uses a lot of SSE and is way more efficient than using floats. Thats what we all want, right?
The first thing I noticed when I started the port was that xnamath.h is no longer available – millions of compile errors. On the MSDN site on porting to Metro I saw that Microsoft now advocate using something called DirectXMath, “Oh great,” I thought, “let’s go port the math again…”.
Well, it turns out the whole problem is a non issue. You can port from xnamath.h to DirectXMath just by using the DirectX namespace. All the XMxxxx functions & types etc are there in the DirectX namespace. I personally added “using namespace DirectX;” to a strategically placed include file and all the compiler errors vanished. If you want to play by the book, you should really use the namespace just in the files where you need it, of course. I went global with it in the end because I have a lot of math in header files (lazy me ).

GUIDs, and other animals.
So DXGUID.lib has gone. The rather obvious symptom during porting is that you get unresolved externs for all the DX interfaces that use GUIDs, like the shader reflection interfaces for example. I use reflections to extract which constant buffers are used by a given shader. I was getting quite frustrated over the fact that you can use IID_ID3D11ShaderReflection and all its related GUIDs in your code, and you can right click and “Go to Definition”, but the linker insists that it’s still unresolved.
Shame on me: the solution was pretty obvious in the end. Does anyone remember the days before DXGUID.lib? All you need to do is #define INITGUID somewhere in the code (preferably before you include all the directx includes) and all the GUIDs magically appear.
What do I do about the “Windows loop”?
Well, I don’t know what your solution will need to look like; this depends very much on how you’ve written your engine. My engine has learned, over the last few ports it’s been through, that the smaller the interface to OS specific stuff is, the better. I have basically three entry points: Init(), Render(), and Destroy(). Render() will draw one frame from the scene contained in the engine.
When you call Init() to start up the engine, you pass in an interface to a set of functions which the engine can call for machine specific actions. Things like reading files, getting Input, Getting timer data, things like that. The upshot is that when you port to the new OS, you implement these functions and pass the pointers to the engine.
This interface means that you can just build the basic DX sample from Visual Studio 11, add calls to Init() Render() and Destroy() in appropriate places, build the machine specific functions you need and that’s it. Job done.

Final thoughts.
All in all the port to Metro doesn’t look that bad. There may still be some gotcha’s waiting for me, but the process looks fairly painless at the moment. A nice bonus is that changes you make to the DirectX pipeline in your game, if you’re careful, will still work on a Win32 desktop app! Win – win!

Engine Geneology.
As I said at the start, mine is really only half an engine, and hasn’t been used in anger. I use mine to keep my coding hand up to scratch and to investigate new OS’s and such. It started out on Win32, It’s been ported to Linux, Meego, Android, and now back via Win32 to Metro and lots of little bits have been dropped along the way. It’s gone from DirectX 9, to OGL, to GLES, and finally now to DX11.1 via DX10.

Continued here:
Porting existing Game Engines to Metro

Using #ifdef in OpenGL ES 2.0 shaders

It’s nice to use #ifdef’s in an OpenGL shader. This allows a shader file do things like contain a vertex shaders and pixel shaders in the same file. Or have different render paths selected at run time. Here is an example of a simple shader file:

To use a shader in OpenGL ES, the program will typically:
1. Load a file
2. Compile the shader
3. Link the shader

Before compiling the shader, the program calls glShaderSource to set the shader source. The real trick is with glShaderSource. This function can take multiple strings and combines them for compilation.

Here is a code sample that compiles a shader given a string (ShaderData) and the size of the string (Size). The function is passed a type (Type) which is defined as GL_VERTEX_SHADER or GL_FRAGMENT_SHADER. This function uses an #ifdef to compile the source as a vertex or pixel shader:

The documentation for glShaderSource says that the function can be called with string lengths of 0 for NULL terminated strings. However, for my implementation of OGLES 2 this did not work, so I had to specify the individual string lengths (as defined in ShaderStringLengths for this example).

With #ifdef’s, an application can modify a shader at runtime. It’s possible to enable/disable features like post processing effects, dynamic lighting, and more based on #defines. Best of luck!

Continue reading here:
Using #ifdef in OpenGL ES 2.0 shaders

Concours Intel AppUpSM Developer Program HTML5 Game Week

The International Marketing, Sales and Support Model: Guest Series by Jay Greenwald

Back to the Intel Software Business Network



The last blog post discussed Which Territories to Consider for International Expansion and the SaaS market sizes for the top 10 SaaS markets in the world.

A framework to generalize and explore the customer acquisition and support process for an enterprise SaaS vendor breaks down the marketing / lead generation, sales and support functions into their component steps:

SaaS Company Marketing Sales and Support Model



For an enterprise SaaS vendor developing its initial international distribution strategy or refining its existing strategy, it must envision the processes introduced in Figure 3 in new territories far from its home country:

  1. Marketing and Lead Generation – How does the vendor attract prospects residing in the new countries to its web site? Once prospects visit the web site, how to entice them to trial the product?
  2. Sales – when prospects are trialing the product, how does the enterprise SaaS vendor convince them to license the product? Since most SMBs and large enterprises initiate usage of an enterprise SaaS product with just a few seats, how does the vendor get these users to increase adoption across the enterprise?

    When international sales begin, SaaS sales compensation issues can arise. SaaS compensation is different from the traditional on-premise software sales compensation model. For on-premise enterprise software sales, reps or channel partners earn front-loaded commissions on the large one-time payment when a customer licenses enterprise software. Many SaaS companies pay commissions on 12 months of subscription fees even if the SaaS subscription is month-to-month. Additionally, staffing the international sales operation can be challenging across different cultures. The functions required are:

    • sales;
    • sales / channel management;
    • technical staff for both pre-sales and post-sales technical support
  3. Technical Support (post-sales) – getting the new customers operational on the enterprise SaaS products in countries far from the home office is the first challenge; language and time zones can be issues. Once customers are operational, usage issues (level 1 support) and software issues/bugs (level 2 support) are inevitable. Level 1 support can be done by the channel partner support or be outsourced, whereas level 2 required incremental staff in headquarters, close to the software development lab.
  4. (spanning all functions above) Channel Partners – if an enterprise SaaS vendor chooses channel partners, which are usually an integral part of a SaaS vendor’s initial international expansion strategy, the vendor must determine which of the 7 steps from Figure 3 are to be performed by the vendor and which by the channel partners.

    Channel partners are crucial to the international operations of many SaaS vendors. Reliable local partners provide cultural awareness, an inherent knowledge of local business practices and language skills to entice prospects to trial, buy and add additional seats. A strong local partner can perform local implementation and integration with existing applications, as well as increase customer retention and the addition of incremental seats—key to any SaaS revenue model. A key challenge is identification of channel partners where the vendor has never operated. Finding, managing and retaining local international SaaS partners requires specialized expertise.

Many enterprise SaaS vendors consider a mixed direct / channel sales strategy that evolves over time. For example: In larger international territories, the vendor sells direct to the very largest prospects and the partner sells to the others. It is crucial to not grant any partner exclusive territorial rights and spell this out clearly in the partnership agreement.

Summary
Software is uncommonly easy to export around the world with little modification other than local language translation, which is not that difficult for software developed using modern development tools. SaaS products appear to be easy to sell internationally, since anyone in the world with an internet connection can become a customer. However, it can be challenging for SaaS vendors to develop profitable international operations that find new international customers and provide good local support to them. This article explores several aspects of the SaaS business model to adapt for expansion outside a SaaS vendor’s home country. No matter how comprehensive the planning is for international expansion, there is no substitute for hiring in-house staff or consultants with experience planning and operating in the new international territories being targeted.




About the Author

Jay Greenwald - Intel Software Business Network guest blogJay Greenwald is the Managing Partner for International Revenue ACCELERATION, a consultancy that helps on-premise enterprise, SaaS and Cloud software vendors expand their sales, channels and go-to-market capabilities outside their home countries. His enterprise software sales, product and M&A experience spans the U.S. and 65 countries.

Mr. Greenwald has published International Markets for Enterprise Software Vendors: Europe, East Asia, Latin America, Rest of World. You can find this book on Amazon by searching for “Jay B. Greenwald” on Amazon or at this URL.

Mr. Greenwald earned his MBA from Harvard Business School.

Go here to see the original:
The International Marketing, Sales and Support Model: Guest Series by Jay Greenwald

Distribution Release: Zorin OS 6 "Lite"

Artyom Zorin has announced the release of Zorin OS 6 “Lite” edition, a Lubuntu-based distribution featuring the lightweight LXDE desktop environment: “The Zorin OS team is proud to finally release Zorin OS 6 Lite, the latest evolution of the Zorin OS Lite series of operating systems, designed specifically….



Read the original post:
Distribution Release: Zorin OS 6 "Lite"

Development Release: openSUSE 12.2 Milestone 2

Jos Poortvliet has announced the availability of the second milestone release of openSUSE 12.2. Some of the major changes in this release include introduction of GRUB 2 and Plymouth and GCC 4.7. From the release announcement: “Those following the openSUSE development closely probably know that the 2nd milestone….



Read this article:
Development Release: openSUSE 12.2 Milestone 2

Distribution Release: Legacy OS 4 "Mini"

John Van Gaans has announced the release of Legacy OS 4 “Mini”, a Puppy-based desktop Linux distribution designed to run on obsolete Pentium 3/4 personal computers and laptops: “Today sees the release of Legacy OS 4 Mini, an update for TEENpup 2010 Mini Beta. Those updating from TEENpup….



Read more:
Distribution Release: Legacy OS 4 "Mini"