Martin Hinshelwood's Blog

A Scottish dyslexic software developer: Team System MVP, .NET architect, developer, evangelist, technology enthusiast and multi-dimensional free thinker


News

Disclaimer

The opinions expressed herein are my own personal opinions and do not represent my employer's view in any way.


Subscribe

Personal

Get Microsoft Silverlight

Accreditation

Stats

My Stats

  • Posts - 309
  • Comments - 362
  • Trackbacks - 128

Twitter












Tag Cloud


Recent Comments


Recent Posts


Article Categories


Archives


Post Categories


Image Galleries


Blogs I read


Blogs of Friends


Blogs on VSTS


Multi-Dimentional Free Thinking Bloggers


Personal


Projects


January 2008 Entries

Setting up SharePoint for the Enterprise


I currently have the task of setting up SharePoint Portal for my company. But here is the kicker, they have users in almost every country in the world, so how to structure the deployment.

I knew roughly how to do this, but a post by Jose Barreto entitled "The Legend of the Single, Multi-Terabyte, Replicating SharePoint Database" that really caught my eye. I knew that this was how it worked, but I did not actually know! if you take my meaning. This post spreads light on the Architecture of a SharePoint deployment across multiple continents.

I have found many of his posts to be invaluable in my SharePoint planning and you should have a look if you are doing the same...

 

posted @ Thursday, January 31, 2008 4:34 PM | Feedback (0) |


Installing MOSS 2007 from scratch


I am having occasion to rebuild my Microsoft Office SharePoint Server (MOSS) development server. In fact, I killed it by adding a Business Data Catalog (BDC) that pointed to a table that had just over a million rows... Now, maybe this would not have caused a problem if I was not using a single server deployment with SQL server on the same box...

That's the way the OS crumbles smile_regular

Anyway, I am installing from a blank VM helpfully provided by our Infrastructure team. The plan is to install all updates before installing MOSS, this includes .NET 3.5 as some of the applications I will be putting on the server will be using it.

image

If you just try and run the MOSS install you get a nice little message detailing what you need to install as pre-requisites. I have my .NET 3.5 install running, so that should take care of all but IIS...

Install SQL

You will need SQL Server installed. As this is a development box and I don't have any licensing consideration for development environments under our enterprise agreement I am using "Developer Edition" which is identical to "Enterprise Edition" of SQL Server. And I am not using a default instance. I will soon be in the possession of a SQL Server 2005 Cluster and all of my systems. SharePoint and TFS will have their databases moved onto that server.

Now, due to the security requirements of these systems (TFS required DBO and SharePoint required DBCreator) Each one will have its own instance.

TFS is easy enough to move between servers, but SharePoint is NOT. It would require a full backup (from within SharePoint) and restore to move the databases. But I have a plan.. the The SharePoint Plan: Database move headache mitigation, but I have know idea wither it will work.

Anyway, since my SQL Server install is finished...back to the SharePoint install..

Install Microsoft Office SharePoint Server Enterprise Edition

image

Make sure that you keep your product key safe, as I have lost mine again... smile_cry

Thank goodness for MSDN...

image

At the end of the install you get prompted to open the Configuration pages. Well, I'm not.. I am going to get a "VM Snapshot" taken of the server at this point. That should allow me to get back to this point at any time...

As Service Pack 1 is now available for SharePoint I want to start with SP1. So the next step is to install WSS 3.0 SP1 and then MOS SP1.

Installing Windows SharePoint Services 3.0 Service Pack 1

Hopefully if I install SP1 at this time I will not run into all the problems I (and a lot of other people) had last time.

image

Aw, crap.. Running the install automatically ran the Configuration Wizard, which I did not want to do at this time. Well looks like I have to..

image

All is good for the new Database setup and it seams to be running through the tasks of pointing the SharePoint installation at the DNS database name. I really do hope that it allows me to change the database location without messing around with SharePoint backups.

And that's the WSS 3.0 SP1 update on successfully, and with no errors...

Installing Microsoft Office System Server Service Pack 1

OK, I now have high hopes for this installation as well. After the last one, there does seam to be a likelihood that this will work...

image

Success...Ran though fine...

 

Well that's it all installed, just waiting for my SPN's so I can start adding sites smile_teeth

 

posted @ Thursday, January 31, 2008 4:15 PM | Feedback (1) |


Kerberos and SharePoint 2007


If you want to use Kerberos authentication and not NTLM with SharePoint then there are some extra tasks that you need to get someone with Domain Admin privileges to perform. For EVERY dns / port combination a SPN needs to be added to Active Directory to tell it that it  is allowed to use Kerberos to authenticate a specific account or server to that URL. In a production environment with a farm of multiple server you will need to use the account option.

The account option lets you create an Active Directory account called..say... svc_Sharepoint and add a bunch of SPN's to it. This account then needs to be used to run the application you are trying to connect to. So if it is an IIS website then the AppPool needs to run under that account. if it is SQL Server then the services need to run under that account.

You need to add an SPN for each protocol URL and port combination:

setspn -a admin.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a admin.ep-dev.[domain].biz:8080 [domain]\svc_sharepoint
setspn -a bi.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a nrcdashboard.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a ep-dev.[domain].biz     [domain]\svc_sharepoint
setspn -a team.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a search.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a my.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a technet.ep-dev.[domain].biz [domain]\svc_sharepoint
setspn -a tfs01.ep-dev.[domain].biz [domain]\svc_tfsservices
setspn -a tfs01.ep-dev.[domain].biz:8080 [domain]\svc_tfsservices
setspn -a TFS.ep-dev.[domain].biz [domain]\svc_tfsservices

These SPN's will allow authentication to work on these domains, but it does require Domain Admin to run them. And these are only my initial FQDN for this environment. We will be having a production environment soon and most likely a UAT environment before we start any development work on our Enterprise Portal.

 

posted @ Thursday, January 31, 2008 3:56 PM | Feedback (0) |


Connecting to SQL Server using DNS update


OK, I now have the additional SPN's added to AD that I mentioned in my post and a listing returns:

C:\>setspn [servername]
Registered ServicePrincipalNames for CN=[servername],OU=Member Servers,DC=[domain],DC=biz:
    MSSQLSvc/spdata.ep-dev.[domain].biz:1422
    MSSQLSvc/spdata.ep-dev.[domain].biz:1433
    MSSQLSvc/[servername].[domain].biz:1422
    MSSQLSvc/[servername].[domain].biz:1433
    SMTPSVC/[servername]
    SMTPSVC/[servername].[domain].biz
    HOST/[servername].[domain]onet.biz
    HOST/[servername]

So when I now try to log into SQL server using spdata.ep-dev.[domain].biz/EPDev and Windows Authentication, all is well and I can connect to the server.

When I try moving the databases I will need to move this SPN to the new SQL Cluster, and it should work there as well.

Here's hoping...

 

posted @ Thursday, January 31, 2008 2:01 PM | Feedback (0) |


Connecting to SQL Server using DNS


If you want to connect to a SQL server using DNS you will need to have both the "SQL Server Browser" service and an SPN setup in your domain to allow authentication.

This allows the DNS name that you have setup to authenticate against the SQL Server using integrated authentication.

setspn MSSQLSvc/spdata.ep-dev.[domain].biz:1422 [servername]
setspn MSSQLSvc/spdata.ep-dev.[domain].biz:1433 [servername]

You will know that you need to do this if all of the below is true:

  1. Pining your domain brings back the correct IP of the server
  2. You can connect to the SQL Server using the server name with Windows Authentication.
  3. You can connect to the SQL server using the IP address with Windows Authentication.
  4. You can NOT connect to the SQL server using the spdata.ep-dev.[domain].biz with Windows Authentication.
  5. You can connect to the SQL server using the spdata.ep-dev.[domain].biz with SQL Server Authentication.
imageimage  image  image
image

You can get he setspn tool from the Windows Server 2003 Admin Pack.

Use it to see what SPN's already exist and to see how you can utilise them. For example calling setspn on my [servername] produced:

C:\>setspn [servername]
Registered ServicePrincipalNames for CN=[servername],OU=Member Servers,DC=[domain],DC=biz:
    MSSQLSvc/[servername].[domain].biz:1422
    MSSQLSvc/[servername].[domain].biz:1433
    SMTPSVC/[servername]
    SMTPSVC/[servername].[domain].biz
    HOST/[servername].[domain]onet.biz
    HOST/[servername]

this information helped me identify that the first two "MSSQLSvc" spn's would need to be added to this server. You can add SPN's to accounts as well, but if you only need to access a single server then adding it to an account is a little overkill and probably a security risk.

I'm off to make a request for infrastructure to run this...smile_speedy

 

posted @ Thursday, January 31, 2008 12:53 PM | Feedback (0) |


The SharePoint Plan: Database move headache mitigation


SharePoint requires SQL Server. That's a given, but what if you want to move the SQL Server databases to another server? TFS is easy enough to move between servers, but SharePoint is NOT. The only answer I can find is to do a full backup and restore from SharePoint, which takes time and effort.

The Plan

I will use a local SQL server with a named instance of "EPDev", but I will also use a DNS name for the server "dpdata.ep-dev.[domain].biz". This will allow me to, hopefully, move the databases without having to spend the weekend doing it. I should be able to backup and turn off the SQL server. Re-point "dpdata.ep-dev.[domain].biz" to the new SQL Cluster and restore the databases to the "dpdata.ep-dev.[domain].biz/EPDev" instance on that server. Then I will bring up the SharePoint server. This should work, but I have not as yet tested it...

Hopefully this will not screw up, but I will take steps to provide for that

probability possibility...

Microsoft: if you are listening, please make moving a SharePoint database as easy as TFS!

 

posted @ Thursday, January 31, 2008 12:12 PM | Feedback (6) |


New Event Handlers


I have added an extra event handler to the TFS Event Handler (Prototype), and this makes two.

Assigned To Handler

The Assigned to handler send a users an email when a work item is assigned to them unless they did the assigning themselves.

Reassigned Handler

The reassigned handler send an email to a user to whom a work item used to be assigned, letting them know that they no longer have that piece of work in their list.

 

These handlers are easily added to a current deployment and are packaged together. You will need to update the version of your prototype deployment by downloading the latest version, but it does fix a number of found bugs.

Once you have the new version, download the Assignment Handlers rar file from the release page and extract them into the "c:\Program Files\RDdotNet\RDdotNet Team Server Event Handler (Prototype)\EventHandlers\WorkItemTracking" folder.

Stop the "TFS Event Handler (Prototype)" service and open the "RDdotNet.TFSEventHandler.exe.config" file with notepad.

if you want the AssignedToHandler to work ad the following line:

<Handler type="RDdotNet.TeamFoundation.WorkItemTracking.AssignedToHandler"
         assemblyFileName="RDdotNet.TeamFoundation.WorkItemTracking.Assignement.dll"
         assemblyFileLocation="~\EventHandlers\WorkItemTracking\">
</Handler>

And if you want the Reassigned handler to work add the following line:

<Handler type="RDdotNet.TeamFoundation.WorkItemTracking.ReAssignedHandler"
        assemblyFileName="RDdotNet.TeamFoundation.WorkItemTracking.Assignement.dll"
        assemblyFileLocation="~\EventHandlers\WorkItemTracking\">
</
Handler>

If you want both to work...then add both...easy.

 

posted @ Thursday, January 31, 2008 11:20 AM | Feedback (1) |


TFS Event Handler (Prototype) Refresh


I found a couple of bugs in the TFS Event Handler Prototype release. As I am still supporting this release (many people use it in production) I have fixed the bugs and uploaded new installers.

The config files have not changed, so you should make a copy of your config file before you uninstall the application. Then reinstall it and copy the config files back and you will be sorted. I have this version working on a server and sending emails with the default event handler.

I had already upgraded the solution to Visual Studio 2008, so I went all the way and .Net 3.5 'ed all of the projects as well. The documentation already exists for you to create your own event handlers and apply them to you team server, but let me know what you are getting your Team Server's to do.

Some ideas for Event Handlers:

  • Send someone an email when they are assigned a Work Item.(Included in the Prototype release...)
  • Notify project managers when a new work item is added.
  • If a user checks in code and bypasses the check-in policies, send an email to the entire team to name and shame them smile_omg
  • Send an email to all of the developers when a check-in occurs...
  • ...

 

Can you think of any more you would like? Send them on a postcard to...

 

posted @ Tuesday, January 29, 2008 4:04 PM | Feedback (1) |


TFS Event Handler CTP 2 Released


I have just uploaded CTP 2 of the TFS Event Handler.This is a fully functional version of the application and I will be releasing documentation for this in due course, but all configuration of team servers and events is handled through the TFS Event Handler Explorer, but all Event Handlers are setup manually.

I have attached two executables:

  • TFSEventHandlerServerSetup - This file includes the system service as well as the client for running on the same computer.
  • TFSEventHandlerExplorerSetup - This contains only the Explorer client that can be installed on any computer for managing any TFS Event Handler deployment.
  • v0.2.0 (CTP2) - All of the source for this version.

 

You will require Team Explorer 2008 for all variations as well as .NET 3.5

I know that there was a long time between the Prototype and CTP1, but for quite a while I did not have access to a Team Server. Now I am in a big push, but CTP3 may be a while in coming. There are major changes between CTP1 and CTP2, but I will be bug fixing and updating CTP2 for a while.

Now I have the engine relatively stable I want to concentrate on building some Event Handlers. Over the coming weeks I will be using the latest version in a production environment and testing it to the limits. I am pretty positive that I will find problems, but I would be gratefully for feedback on what I have so far. There were nearly 200 downloads of my prototype version, yet little or know feedback... I don't know if that is because it was rubbish or if it was so good there was no need for feedback or bug reports smile_wink. I will assume the latter...

You can report issues and enter into discussions on the CodePlex site for the project.

 

posted @ Monday, January 28, 2008 5:00 PM | Feedback (0) |


TFS Event Handler CTP1 Released


I have just released a new version of the TFS Event Handler. This is a really rough version and you should not be used in a production environment.

Event handler system will work in this version, but a manual config is required, and the user interface is a bit flaky. Also all errors that occur in an individual handlers are ignored.

If you are planning to use this in a production environment please consider using the TFS Event Handler (Prototype).

I will probably not be doing any documentation for this version, but I will be updating frequently as I will be using it on my production server and building Event handlers for it.

image

The Client application allows you to connect to any TFS Event Handler and see what the status is. Please note that there is a bug that occurs when you add a new team server that means that it never authenticates. Once you have added it, close the UI and reopen it to solve the problem. Oh, and don't click the "refresh" button (I said the UI was rough).

 image

It will take time to augment the UI and I have quite a few ideas in that regard. One of my goals is to allow the upload of "Packages" that contain all the files  necessary to run en Event Handler that might well have supporting files, like html templates for emails...

At the moment the server component runs in a form, but that will eventually be a service.

image

 

Hopefully buy the end of next week I will have a version of the service stable enough to run as a service, and a version of the UI integrated with Visual Studio 2008.

 

Well, that's the plan... smile_nerd

 

 

Edited for bad English and down right sloppiness... Made me sound like English was not my first language...

posted @ Thursday, January 24, 2008 5:14 PM | Feedback (0) |


Removing ACL's for dead AD accounts


image I have run into a very vexing problem with one of my applications. I was asked to provide an application that would fin all of the permissions set against Active Directory accounts that have been since removed. These normally show up in the permissions dialogs for folders as the full SID of the account as there is no longer nay way to look it up in Active Directory.

imageI have written a nice little threaded application that lets you select a folder and it finds all of the dead accounts. What it actually does is verify all accounts against Active Directory and flags them if they are not found. This will have the side effect of finding groups and local accounts and thinking they are dead as well. To solve this problem I added a "Safe List" of accounts and as way to add them from the GUI. The system then ignores any account names that are in this list.

All is well...

But not really. As I moved on to actually deleting the offending ACL's on request, I found it was a little more difficult to actually delete them as .NET seams to ignore my code...

Private Sub RemoveACL(ByVal DirectoryName As String, _
                      ByVal IdentityReference As Security.Principal.IdentityReference)
    Dim DS As DirectorySecurity
    DS = System.IO.Directory.GetAccessControl(DirectoryName)

    DS.PurgeAccessRules(IdentityReference)
    DS.PurgeAuditRules(IdentityReference)

    System.IO.Directory.SetAccessControl(DirectoryName, DS)
End Sub

Now, this code is fairly simple. First we get the directory security object, then we change the directory security object, and then we save the directory security object.

The "DirectoryName" object contains a CuteFTP folder:

image

The "IdentityReference" object contains the offending SID:

image

This code should work, and I have used a similar piece to add permissions, so why on earth can't I remove them!

 

 

UPDATE: I have added a question about this to the MSDN Forums

posted @ Tuesday, January 22, 2008 1:54 PM | Feedback (2) |


Get your Twitter feed as a badge on your email!


Or anywhere you can put some HTML. This is really easy and allows you to have something like:

Martin Hinshelwood's Twitter

As Twitter publish your twit list as an RSS feed you can just add it to FeedBurner and use one of its tools to create the above image.

So easy it hurts...

 

Technorati Tags: , ,

posted @ Friday, January 18, 2008 9:00 AM | Feedback (0) |


Community-Credit feedback


Community Credit is getting a face lift and David Silverlight (yes a man so great that an entire platform was named after him) is asking for contributions to this... So head on over to the community credit forum and get suggesting...

My Suggestions:

  • The ability to have blog posts submitted into a specific category, or moved to that category.

      You should be able to change the category from an automatically submitted contribution.

      This should be possible in two ways...

      1. manually: users should be able to login and change the status of an automatically submitted entry. If they change it, it would require moderation...

      2. tagging: users can add tags to their posts that could automate the above process. CC would parse the page and extract the tag and change the category.

      I think that the first option is required, but the second is optional....

  • Profile page uses username and not email address...

      We don't want spammers getting to our email addresses...

      Username should be used whenever displaying user data, that way our email addresses will not be visible...

  • All profiles should be listed.

      It is not possible to Google for your profile and this should be possible. My profile does come up, but I created a mapped URL and put it on my blog.

  • Search engine optimisation / Faster load times for pages.

      I think these two go hand in hand. They pages for the site should be lighter on graphics and that should make them load quicker. If a little though was put towards SEO then more people would find the pages, especially the profiles within the site.. Any page that comes up would push traffic to the site...

  • Points for moderating Credits

      If, like me, you are a moderator for credits (not the discussion boards) then there should be a points system for it. it should be based on how much work is involved in moderating the submission.

      Maybe a good way would be to give the moderator 10% of the points awarded to the user Smile. This would certainly make me happy.

      Articles are especially difficult to moderate as you need to search the web for similar titles and correlate dates.

  • Guest developers

      It should be possible to drive traffic to the forums and encourage users to use them if you have guest developers for topics.

      This would have a specific person with a specific skills moderating and answering forum posts on a specific topic. That developer would get extra points for being a Guest Developer and all his/her posts marked as "Expert answers".

      This will provide developers with a sense of Ownership of the forums without having to have everyone as a moderator all of the time. the "Guest Developer" feature should be limited to a specific forum for a specific time.

 

That's all I can think of just now, but I may be back smile_regular 

If you have any comments on these topics can you please use the title links to get to the forum and post them there...

 

Technorati Tags:

posted @ Tuesday, January 15, 2008 10:11 AM | Feedback (0) |


Unique ID in SharePoint list


imageThis seams to be a common problem, and one that I get many calls from users about:

I have a query with our Sharepoint site and was advised that you were probably the best person to ask.

I have created a list under:

http://sharepoint/sites/department/Lists/ListName/AllItems.aspx

I need the first column (Issue ID) to be an automatically generated number but can’t seem to get it.  Would it be possible for you to take a look and advise?

 

You can't add a new unique auto-generated ID to a SharePoint list, but there already is one there! If you edit the "All Items" view you will see a list of columns that do not have the display option checked.

There are quite a few of these columns that exist but that are never displayed, like "Created By" and "Created". These fields are used within SharePoint, but they are not displayed by default so as not to clutter up the display. You can't edit these fields, but you can display them to the user. if you check the "Display" box beside the ID field you will get a unique and auto-generated ID field displayed in your list.

 

posted @ Friday, January 11, 2008 8:44 AM | Feedback (11) |


TFS Event Handler Revisited


As I now have a TFS server in the office and we have  Go-Live on 1st February I will be revisiting the TFS Event Handler prototype. I think there is too much work in the main code to get it working, but I should be able to rework the Prototype for Visual Studio 2008 and Team Foundation Server 2008.

Hopefully this will not be much work...

Well, I was wrong... Looks like some language compatibility problems...

 

posted @ Tuesday, January 08, 2008 3:06 PM | Feedback (0) |


Xbox Live to Twitter Update (v0.2.3)


I have updated the Xbox Live to Twitter application and it works quite well now. There are currently too many updates as you can see from my twitter on the left of my blog smile_omg.

I will hopefully be adding some more customisation functionality to allow "only online" or "only title" changes to propagate. I may try to add some SQL Compact bits so differences in Achievements can be logged, but the data is currently limited...

I like this play pen as it allows me to explore some of the .NET 3.5 functionality and improve (much needed) my UI skills.

 

You can download the application from CodePlex along with all the source code.

 

Technorati Tags: , , ,

posted @ Monday, January 07, 2008 4:25 PM | Feedback (2) |


Returning an Anonymous type...


image In VB.NET it is actually possible to return an Anonymous type from a function and use it somewhere else. In VB.NET you need to use late binding so you can't change the "Option strict" compiler option to true as I have always done in the past. This option, that defaults to "Off", is the main reason that C# developers scoff at VB, but this feature is now available, controversially in C#.

In this example I created an anonymous type that has three properties.

    Public Function GetTwiterCredentials() As Object
        If Not My.Settings.TwitterEmail.Length > 3 Then
            GetSettings()
        End If
        If Not My.Settings.TwitterPassword.Length > 3 Then
            GetSettings()
        End If
        If Not My.Settings.TwitterUsername.Length > 3 Then
            GetSettings()
        End If
        Return New With { _
                    .Email = My.Settings.TwitterEmail, _
                    .Password = My.Settings.TwitterPassword, _
                    .Username = My.Settings.TwitterUsername _
                        }
    End Function

The use of this is very simple, although I would like an option other than to return "Object" so Visual Studio knows that it is an anonymous type.

            Dim TwiterCredentials = View.GetTwiterCredentials
            Dim result As String = ""
            result = Twitter.TwitterAPI.UpdateStatus( _
                                    status, _
                                    TwiterCredentials.Email, _
                                    TwiterCredentials.Password _
                                    )

There is no intellisense with this, so you have to know what the options are. Hopefully in future versions this will be rectified.

 

posted @ Monday, January 07, 2008 9:50 AM | Feedback (0) |


My first Extension method...


I decided as part of my .NET 3.5 learning curve to rebuild Duncan Mackenzie's Xbox to Twitter application just for fun...

When you call his web service you get a XboxInfo class back that contains all of your Xbox Live Information. I wanted to be able to add a method to this called "ToInstanceString" that I would use to both display your Status, and to detect when it had changed.

In VB.NET you add Extension methods to a Module. One thing worth noting is that you can control the scope of the extension method with the Namespace. If you add a namespace of "MyApp.Mynamespace" your method will only be available within that namespace and not at the "MyApp" level.

Public Module XboxExtensions

    <System.Runtime.CompilerServices.Extension()> _
    Friend Function ToPresenceString(ByVal Value As DMXIProxy.XboxInfo) As String
        If Value.PresenceInfo.Info = "" Then
            Return ""
        ElseIf Value.PresenceInfo.Info2 = "" Then
            Return Value.PresenceInfo.Info
        Else
            Return String.Format("{0} ({1})", Value.PresenceInfo.Info, Value.PresenceInfo.Info2)
        End If
    End Function

End Module

You need to annotate the method with  the "System.Runtime.CompilerServices.Extension()" attribute, and make sure that the first parameter of the method is the type that you want to extend...

You can add extension methods randomly within your code, but it makes sense to put them all together in categorised module for future use. Although this one is specific to this application, you can probably see many circumstances where you could create generic and useful methods to add to things like collections and the like...

Have fun...

 

posted @ Monday, January 07, 2008 9:27 AM | Feedback (0) |


I always like a good Serenity plug...


Your results:
You are Dr. Simon Tam (Ship Medic)
Dr. Simon Tam (Ship Medic)
75%
Zoe Washburne (Second-in-command)
70%
Wash (Ship Pilot)
70%
Malcolm Reynolds (Captain)
65%
Jayne Cobb (Mercenary)
55%
Inara Serra (Companion)
40%
Kaylee Frye (Ship Mechanic)
40%
River (Stowaway)
40%
Derrial Book (Shepherd)
20%
Alliance
20%
A Reaver (Cannibal)
5%
Medicine and physical healing are your game,
but wooing women isn't a strong suit.

Click here to take the "Which Serenity character am I?" quiz...

Technorati Tags: , ,

posted @ Monday, January 07, 2008 9:13 AM | Feedback (0) |


Xbox Live To Twitter


I had been trying to find an application that provided updates to twitter from my Xbox. There is such an application written by , but I could not get it to work. I tried everything and ended up decompiling the application to see what was wrong. Well, it seamed that the guts of the application was missing! The source code has all of the UI elements, but none of the bit to do the updates.

I tested the web service and it worked, so the only thing to do (Duncan has not updated the application since May 2007) was to write my own version. As I did not have access to Xbox Live data directly, I have leveraged Duncan's web service and only created the front end.

You can download the application from CodePlex along with all the source code.

if you have any problems, please create or vote for Issues via the interfacesmile_regular.

 

Technorati Tags: , , ,

posted @ Friday, January 04, 2008 2:23 PM | Feedback (1) |