XBox 360: List of Backwards Compatible XBox Games Released

After the long wait, the list of Original Xbox Games Playable on Xbox 360 is now available. I’m glad to see the following games on the list

Grand Theft Auto 3
Grand Theft Auto: Vice City
Grand Theft Auto: San Andreas™
Halo® 2
Ninja Gaiden®
Star Wars® Knights of the Old Republic® II: The Sith Lords™
The Incredible Hulk™: Ultimate Destruction

Check out the list and see if your favorite XBox games will be playable on the XBox 360.

InfoPath: Switch between views

The ability to have multiple views of information and multiple uses for forms is one of the great features of InfoPath. And yet, any person responsible for supporting the users working with the forms can tell you that it can be a real challenge to users to have to switch views via the menu system. However, it’s remarkably easy, once you know how, to add a button to your form that allows your users to quickly switch between views. The button will use a rule with the Action of Switch Views – it’s a simple as that.

This will be a learn by doing exercise, so launch InfoPath. Open the sample form called “Meeting Agenda“. This form has two views, one for the Agenda and one for the Meeting Minutes. We’ll add a button to each view at the top of the form that allows the user to easily switch between the views.

Place your cursor in the space to the right of the words “Meeting Agenda“. In the Design Tasks Pane, choose Layout. Under Merge & split cells, click on Split Table Cells Vertically. This will add another table cell in the title row. In the Task Pane click on Controls and drag the Button control into the new cell you just created.

We’ll now assign a label to the button and set up a Rule that switches views when the button is clicked. Double click on the Button control. Change the label on the button to “Minutes“. Click the Rules button in the properties, and add a new rule. Click on Add action and choose Switch Views. Chose the Minutes View (post meeting) as the view to switch to. There’s no need to set a condition, since we want this action to occur when the button is clicked. OK through the dialogs to complete the process.

One view down, one to go. Use the View menu in the Task Pane to switch to the Minutes View (post meeting), and repeat the process, this time labeling the button “Agenda View” and switching to the Agenda View (pre meeting). Test and save the form and voilà, your users now have an easy way to switch between views!

RFID – Do it MAQSoftware way!!!

Radio frequency identification, or RFID, is a generic term for technologies that use radio waves to automatically identify people or objects. There are several methods of identification, but the most common is to store a serial number that identifies a person or object, and perhaps other information, on a microchip that is attached to an antenna (the chip and the antenna together are called an RFID transponder or an RFID tag).

Thought the market for RFID is still niche – there have been loads of money being bet on the technology. MAQSoftware, one of the pioneers in RFID – recently started a forum to help the corporates as well as students to understand and learn the technology. If you are really passionate about RFID, or just like me, who want to learn the new “technology” or simply for your project related work – be sure you keep an eye on http://india.maqsoftware.com/forums

Understanding BitTorrent: An Experimental Perspective

Arnaud Legout, Guillaume Urvoy-Keller, Pietro Michiardi: Understanding BitTorrent: An Experimental Perspective. “To gain a better understanding of the key algorithms of the protocol, we have instrumented a client and run experiments on a large number of real torrents. Our experimental evaluation is peer oriented, instead of tracker oriented, which allows us to get detailed information on all exchanged messages and protocol events. In particular, we have explored the properties of the two key algorithms of BitTorrent: the choke and the rarest first algorithms.”
Why this post – cause there have been Torrents of Office12 (yeah – you heard it right) floating on the internet!!!

Registry Explorer – Missing from SmartPhone

One thing which I really missed in a SmartPhone was a registry editor. I have been thinking of writing an application for “Registry Editor” for a few weeks now. Finally its done.

However I have just given some limited functionality to the explorer. I can edit only a DWORD or a string value – nothing more than these two. Partly cause its not safe to play with the registry and second cause I dont think a person might need to change any other values apart from these two.

Having said that, I was initially trying to hook onto the the CF framework by OpenNETCF.org, but then I moved to using P/Invoke. This was partly cause it was a pain to make a DWORD editor using OpenNETCF.

There was also one thing which caught my eye. The TAB order under .NET CF. Thankfully MSDN had answers to my queries. Baically forms designer creates the Controls collection in reverse order of when the controls were added to the form.

Here’s a sample code from the app – will post up a complete code, once i am sure its working fine.

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
namespace RegEdit
{
public class DwordEditor : System.Windows.Forms.Form, IValueEditor
{
private System.Windows.Forms.MenuItem mnuDone;
private System.Windows.Forms.MenuItem mnuCancel;

private System.Windows.Forms.TextBox txtValueName;
private System.Windows.Forms.TextBox txtValueData;
private System.Windows.Forms.Label lblValueName;
private System.Windows.Forms.Label lblValueData;
private System.Windows.Forms.MainMenu mainMenuEditor;
public DwordEditor()
{
InitializeComponent();
bSaveChanges = false;
}

#region Private Variables
// init
private string ERegistryPath;
private string EValueName;
private System.UInt32 EValueData;
private bool ENewValue;
// status
private bool bSaveChanges;
#endregion

protected override void Dispose( bool disposing )
{
base.Dispose( disposing );
}
#region Windows Form Designer generated code
private void InitializeComponent()
{
this.lblValueName = new System.Windows.Forms.Label();
this.txtValueName = new System.Windows.Forms.TextBox();
this.txtValueData = new System.Windows.Forms.TextBox();
this.lblValueData = new System.Windows.Forms.Label();
this.mainMenuEditor = new System.Windows.Forms.MainMenu();
this.mnuDone = new System.Windows.Forms.MenuItem();
this.mnuCancel = new System.Windows.Forms.MenuItem();


// lblValueName
this.lblValueName.Size = new System.Drawing.Size(152, 22);
this.lblValueName.Text = “Value name:”;
//
// txtValueName
//
this.txtValueName.Location = new System.Drawing.Point(0, 24);
this.txtValueName.Size = new System.Drawing.Size(168, 25);
this.txtValueName.Text = “”;

// txtValueData

this.txtValueData.Location = new System.Drawing.Point(0, 80);
this.txtValueData.Size = new System.Drawing.Size(168, 25);
this.txtValueData.Text = “”;

// lblValueData

this.lblValueData.Location = new System.Drawing.Point(0, 56);
this.lblValueData.Size = new System.Drawing.Size(152, 22);
this.lblValueData.Text = “Value data:”;

this.mainMenuEditor.MenuItems.Add(this.mnuDone);
this.mainMenuEditor.MenuItems.Add(this.mnuCancel);

this.mnuDone.Text = “Done”;
this.mnuDone.Click += new System.EventHandler(this.mnuDone_Click);

// mnuCancel
this.mnuCancel.Text = “Cancel”;
this.mnuCancel.Click += new System.EventHandler(this.mnuCancel_Click);

// DwordEditor
this.Controls.Add(this.lblValueName);
this.Controls.Add(this.txtValueName);
this.Controls.Add(this.lblValueData);
this.Controls.Add(this.txtValueData);
this.Menu = this.mainMenuEditor;
this.Text = “Edit DWORD Value”;
this.Load += new System.EventHandler(this.StringEditor_Load);
}
#endregion
private void mnuCancel_Click(object sender, System.EventArgs e)
{
this.Close();
}
private void mnuDone_Click(object sender, System.EventArgs e)
{
EValueName = txtValueName.Text.Trim();
// change to more elegant: check that only integers are actually entered
try
{
EValueData = UInt32.Parse(txtValueData.Text.Trim());
}
catch
{
MessageBox.Show(“The value is not parseable into a valid DWORD”,
“Value creation impossible”,
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
return;
}
if (EValueName == “”) return;
RegistryEditingService svc = RegistryEditingService.Instance();
if (ENewValue && svc.ValueNameExists(ERegistryPath, EValueName))
{
MessageBox.Show(“The value name you have chosen does already exist”,
“Value creation impossible”,
MessageBoxButtons.OK,
MessageBoxIcon.Exclamation,
MessageBoxDefaultButton.Button1);
return;
}
bool bSucceeded = svc.SetValue(ERegistryPath, EValueName, EValueData);
if (!bSucceeded) return;
bSaveChanges = true;
this.Close();
}
private void StringEditor_Load(object sender, System.EventArgs e)
{
if (!ENewValue)
{
txtValueName.Text = EValueName;
txtValueData.Text = EValueData.ToString();
txtValueName.Enabled = false;
}
else
{
txtValueName.Focus();
}
}
#region IValueEditor Members
public void Initialize(string registryKeyPath, string valueName, object valueData, bool newValue)
{
ERegistryPath = registryKeyPath;
EValueName = valueName;
EValueData = (System.UInt32)valueData;
ENewValue = newValue;
}
public bool ShowEditor()
{
this.ShowDialog();
return bSaveChanges;
}
#endregion
}
}

The best part would be that this would work with Windows Mobile 5.0 based smartphone

Microsoft’s Live – A new look at seamless Internet

Windows Live and Microsoft Office Live – these are the two new software-based services previewed by Microsoft – designed to deliver rich and seamless experiences to individuals and small businesses, they combine the power of software plus services and provide compelling enhancements to Windows and Office products.

Windows Live will be a set of personal Internet services and software designed to bring together in one place all of the relationships, information and interests people care about most, with more safety and security features across their PC, devices and the Web.

Microsoft Office Live offerings will provide small businesses with an affordable set of Internet-based business services hosted by Microsoft to help them establish, manage and grow their business through a professional digital identity as well as collaboration and business management tools that traditionally have required dedicated server and IT resources to operate.

Windows Live will include:

1. Windows Live Mail.
2. Windows Live Messenger.
3. Windows Live Favorites
4. Windows Live for mobile devices
5. Windows Live Safety Center
6. Windows Live Search.
7. Windows OneCare Live

More details about Windows Live are available on its site.

My Hotmail box already reflects the the change of “Mail Beta” to “Windows Live Mail” – which prompted me to have a look at this new offering. Guess there are lots and lots of domains where Microsoft is now putting its feet at. Now wasn’t Xbox Live a first step towards this “Live” services? BTW I just finished checking for viruses using “Windows Live Safety Center” – and I must say – it is real good 🙂