Monday, 27 October 2008

Dynalink RTA1046VW DMZ Config Kills VoIP

While trying to speed up my P2P downloads yesterday I decided to configure a DMZ host in my Dynalink RTA1046VW router (on advice from a mid-2006 forum thread). My P2P ports were forwarded correctly, according to portforward.com, but I figured it would be worth the experiment.

As I'm now on a naked ADSL 2+ plan, I no longer have a traditional land line and all inbound and outbound calls are shunted across the internet; to facilitate this, my analog phone plugs directly into the back of my modem. My new ADSL account was live on Friday and I spoke with my sister in Canada successfully for an hour straight on Saturday morning. On Sunday I configured the DMZ host and from that point forward I noticed I could no longer hear anything in the phone's earpiece. The internet connection was otherwise fine, apart from a few dropouts every so often, but there was absolutely nothing coming out of the phone's earpiece; calls were otherwise going through (sporadically) but the caller could hear me fine. To top it all off I got home tonight and successfully replayed my phone messages. The problem was reproducible with another phone. Weird. 

The only thing left to do was remove the DMZ host configuration and behold--the tin cans work! I don't get it--I really don't know much about VoIP but my guess is VoIP runs over a port and the port was being forwarded by the router to the DMZ host... dunno, especially considering the default setting is to simply discard packets not belonging to an application configured in the port forwarding table. 

[Update: Silly me, of course VoIP runs over a port--the port I set when I configured VoIP in the first place, duh. Anyway, I still reckon it was being forarded the DMZ host but I've noticed the kitchen microwave interferes with the phone and produces a similar problem where, after successfully initiating a call, I can hear the person I'm speaking to but they can't hear me.

By the way, my P2P speed reached about 180KBps down--a dizzying new height for the likes of someone who had no internet before this point.]


Custom-Built Microsoft Office SharePoint Server 2007 Branded Sites and Webpart Development - info@mediawole.com

Thursday, 23 October 2008

Chrome Crash

Never thought I'd see the day--first time in nearly two months of heavy use:



Outlook was also crashing at the same time so I blame Outlook personally ;-)


Custom-Built Microsoft Office SharePoint Server 2007 Branded Sites and Webpart Development - info@mediawole.com

sgen.exe /compiler:/keyfile Doesn't Allow Spaces

While implementing a bit of .NET code that will ultimately live in SQL Server 2005, we came across a few minor problems with the auto-generated XmlSerializers.dll and, in particular, signing it with a key file. The assembly calls out to a web service, hence the need for the XmlSerializers.dll.

Normally you can tell Visual Studio to build this assembly for you at compile time: Project properties -> Build Tab, Generate serialization assembly = On | off (note this is set per configuration, eg. Debug, Release). SQL Server had a few problems around versioning with the generated assembly, however, so we decided to add a post-build event and use sgen.exe explicitly to manage this at build time. 

Soon after we also decided the main assembly and XmlSerializers assembly would need to be signed, as it's also being called from another bit of code in MOSS; we naturally figured adding the /compiler:/keyfile flags would take care of this.

The path to our .snk file has spaces, however, and the keyfile flag doesn't seem to like spaces. Initially I thought we would simply xcopy the .snk file to the c: drive and then reference it directly from there but that's dirty. 

In the end, there is a way to escape the quotes in the string: 

"C:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\sgen.exe" /compiler:"\"/keyfile:$(ProjectDir)MyKeyFile.snk"\" /force "$(TargetPath)"



Custom-Built Microsoft Office SharePoint Server 2007 Branded Sites and Webpart Development - info@mediawole.com

Sunday, 19 October 2008

Conent Delivery Network (CDN) Alternatives

If you're looking to deliver your website via a content delivery network or content distribution network like Akamai, Limelight, or CDNetworks, you've got a few alternatives to consider (especially on the cost point). 
  • Amazon is set to release a new pay-as-you-go content delivery service before the end of the year. It's also built to integrate with Amazone S3 for storage. 
  • Coral is a free CDN built on peer-to-peer technologies. Seems like it's being run as some sort of test project but it's free.
In case you're interested, www.westernaustralia.com has been delivered through Akamai since early August. We reduced international load times from an average of 43.5 seconds to 5.5 seconds on go-live but pay a hefty annual fee for the privilege. We're using their standard geographic caching service and their Dynamic Site Accellerator product to speed up requests that do have to hit our Perth-based servers.

CSS Reset Fundamentals

I'm not much of a visual designer but this little CSS reset snippet from Karinne Legault's article on The Web Squeeze is easily added to an existing CSS file instead of referencing yet another style sheet (not that I don't trust Yahoo!). Karinne's article also discusses the construction of a full, floated HTML layout from mockup to markup to styling.

html, body { margin: 0; padding: 0; }

Saturday, 18 October 2008

Free eBook: Introducing Microsoft SQL Server 2008 (MS Press)

Microsoft Press is offering the Introducing Micorosoft SQL Server 2008 ebook (by Peter DeBetta, Greg Low, and Mark Whitehorn) as a free download

Tuesday, 14 October 2008

Silverlight Penetration

Silverlight 2 RTM'd yesterday with a personal hero of mine, Scott Guthrie, doing the press release thang

We've been taking very small steps in the Silverlight direction for a month or so now (the fancy bits on Tourism sites are currently all Flash-based) but have yet to commit due to take-up rates of the Silverlight player--it's still early days on that front, despite decent penetration rates given the player's only been around for a year or so. The official press release claims Silverlight is installed on one out of every four desktops but the install base is as high as 50% in some countries. The Beijing olympics and a number of other high-profile partner sites are cited as major penetration drivers.

Flash has been around a lot longer and obviously has a greater penetration rate so I thought it would be useful to compare the number of global visitors to all of the Tourism WA eMarketplace sites running Silverlight versus the number running Flash. The results were pulled from Omniture and are as follows:
  • 15% of visitors to the eMarketplace sites have Silverlight installed
  • An average of 17.6% of internet users have Silverlight installed (so not quite one out four just yet)
  • 101.6% of visitors to the eMarketplace sites have Flash installed (yes, 101.6%...)
  • An average of 87.5% of internet users have Flash installed
I'll keep an eye on these stats and report back in another six months. 

Guthrie's a superstar and in typical Scott Gu fashion--despite being and MS VP, he's got a dandy blog post to get you started with Silverlight:

http://weblogs.asp.net/scottgu/archive/2008/10/14/silverlight-2-released.aspx

I'm planning to do some MOSS/Silverlight posts in the coming months to detail my experience integrating Silverlight with SharePoint and may even have a Silverlight web part available for download before long! Watch this space...

[Update: no cool Silverlight dev to report unfortunately :-( but I have posted current penetration stats along with some links to related posts of mine.]

Thursday, 9 October 2008

Man Down

We lose a good man here on Friday. Elliot's been a gun programmer since his debut as a quirky 17 year-old work experience student nearly two years ago. I had my doubts about yoof in general back then--nearing thirty, as I am--but Elliot's earned his keep many times over (his keep being negligible as a state government contractor). 

Elliot's one of those people you meet in life who keep the world interesting. He's still a young fella but the potential he's demonstrated during his time at Tourism suggests he can go wherever he wants with his career and his life. Apart from being a strong developer with a keen interest in everything code, he's got an outstanding personality for a geek. He can flirt with the CEO between debugging lines of code and chewing random pieces of metal. As a dev, he's got an incredible knack for quickly thinking through a problem, weighing up solutions, and implementing a feature-rich app in under ten minutes. 

I was one of the first team members to work with the guy when he arrived in early 2007 and while I like to think I may have contributed something to his professional development I know in reality his own drive and raw brain power make him who he is. It would blow your mind to hear about some of the MOSS-integrated applications he's written on a whim. 

Elliot's been poached by our venerable BA, who runs his own contracting firm; he's now off to the Department of Education and Training in Perth to rock out with his cock out, no doubt, and do some crazy MOSS 2007 and CRM mashup. 

Memorable highlights have to include the green suit, wookie sounds, fire alarm tip-offs, and the didgeridoo; I'll leave it up to the team to add to that list as comments.

Dude, it's been great working with you over the last while and while it's not going to be the same around the office without you, I know you'll fly no matter what you do or where you're working. Your contribution has been massive and it's been an abosolute pleasure working with you. We'll miss you buddy ;-)

eeeeeeeeewwwwwoooooooooodddddd!!!

Don't Touch that Database!

Microsoft and urban legend have been harping on for yonkers now that we must never, ever touch MOSS content databases or risk voiding any hope of support. This basically includes modifying a content database in any way--from extending it with new functionality (sps, triggers, etc) to modifying existing data. This isn't always easy to avoid but luckily the API gives us access to most things in MOSS.

If you're wondering what exactly qualifies as database modifications or have modified a content database and now require support, you might want to read this:

http://support.microsoft.com/kb/841057/en-us