December 2, 2008

Social Networks, IMs and tying things together


I’m using a variety of social networks and instant messengers. But it took me some time before I found a way to make it work in practice.

Take Twitter as an example. I don’t think many people use twitter from the Twitter web page. They use one of the many available twitter clients. But now things get complicated – some social networks work best with a client, others work best from their web page (but it can be difficult to remember to check the web page). So you can easily end up with a line of clients installed that take up memory, and a few social network sites that you forget to check (or maybe these sites are spamming your inbox with notifications instead).

Of course it’s all about the tools used. In my case things started to fit together when I discovered Digsby. In short Digsby is the one IM and social network client to rule them all. In my case I was able to handle all this in one client application:
  • · MSN Messenger
  • · Google Talk
  • · Gmail notifier
  • · LinkedIn feeds
  • · Facebook feeds
  • · Twitter feeds
And I am just using some of the many mail/IM/social networks supported. If you don’t know Digsby, go check it out now.

But the problem is only half solved. Now I have a single point to receive feeds and notifications. I can also use Digsby to post a twitter message, set my Facebook status or set my LinkedIn status. But what if I want to post to multiple services at once? We need a multiplier, so it’s time to introduce ping.fm.

Ping.fm is a service that allows you to send status updates, micro blogging and ordinary blog posts to ping.fm, and it will automatically distribute these to a group of your social networks or other services.

You can have different distribution groups (ping.fm calls them triggers). You set up all of this at the ping.fm web site. But now for the important part: I don’t want to pop open a new browser each time I need to do a micro blog or status update. So, use ping.fm’s IM service. It works this way: You set up ping.fm as another IM buddy of yours. Each time you need to post/update something, you just write an IM message to ping.fm:

In this example I first set my status using a customer trigger (which sets status on LinkedIn, Plaxo and Facebook). Then I use another trigger to post a micro blog entry to Twitter, Yammer and my private log.

This way I can still control everything from Digsby. Creative? Definitely. But it works.

Now recently Yammer emerged. Ping.fm supports Yammer (so I can distribute posts to Yammer as well), but Digsby doesn’t support Yammer (yet?), and I would hate to install another client and break my principles just to receive Yammer feeds. We need a workaround – this time a solution can be found in Yammer’s IM feature: You can set up Yammer to post all tweets to your IM account (supported are AIM, Google Talk and Jabber, hopefully more to come), and you can reply and make new posts by writing an IM message to Yammer.

So, it all works for me using only one client. I had to be a little creative in tying everything together – hopefully this will be easier the day Digsby implements Yammer support and merges with ping.fm.


December 1, 2008

TechEd EMEA notes part 1


This year I had the privilege of attending TechEd Developers in Barcelona. My session selections are pretty wide and I’m not going to do a full resume of the sessions I attended, just put up some of my notes and key points taken. Hopefully they are of some use.

Visual Studio 2010Definitely a huge step in the right direction(s). The step from VSNET 2005 to VSNET 2008 was small compared to the next step. Not to mention what is to come in Team Foundation Server 2010. It would take multiple blog posts to describe it (and the first 100 posts about it are probably already out there) I’m just going to check it out by downloading the virtual image with a Visual Studio 2010 install that Microsoft offers.

Data Dude (aka Visual Studio 2008 Database Edition):I think this is one of the most overlooked Microsoft developer products, mainly because almost no one has a license for it. Well now there is no excuse, as this product is now a part of the most used Visual Studio Team Developer license. I got an intro to the features, and I it looks like a combination of many features known from Red Gate’s SQL Data compare and SQL Schema compare (it will generate diff scripts for schema and data at any time between any combination of running database instances or static scripts), plus a nice way of putting all this into TFS versioning and TFS build. Oh, and if you do get your hands on Data Dude, don't forget to apply the new service release (GDR).

Jon Flanders on REST and WCFThis is a great talk if you need to see some code behind all this REST hype, and as a bonus you will see how this can be implemented in a simple and elegant way using WCF 3.5.

Go watch it (free for everyone).

Learned a few tips about strong naming, the GAC and NGenStrong name signed assemblies actually have a performance impact when loaded, if they are not in the GAC. This is because of security checks, hashing, etc. that takes place every time the assembly is loaded, where as this only takes place once if the assembly is placed in the GAC. .NET 3.5 SP1 has a strong name bypass feature to avoid this issue. This will be enabled by default in most cases – see this blog post from the .NET security blog for more info.

Do you know Ngen? You should. Basically Ngen will pre-generate the native code that any assembly will end up as. This is an alternate to the default JIT compiling, and it could potentially give you a free performance gain, just by running:

ngen install youassembly.dll

Try reading this article if you want in-depth info on ngen.

Source Code Outliner, how did I miss that
I went to a talk about tips & tricks for the VS.NET C# IDE - unfortunately not much new stuff for me, except this one: The source code outliner. How did I miss that? It's quite simple, all it does it to show a tree view of your current source file. Like the little upper-right drop-down you use to locate a specific method, just in an expanded view. It will provide both overview and navigation of your code. Once you start using it, you will know that you missed it. And it is free, of course.