-
Published on 01 Jul 2006 from
Ben Metcalfe is very concerned with the BBC's plans to add advertising on their International version of BBC.com.
Ben outlines the reasons for his concerns and I've read them, but I still don't know enough about the ins-and-outs / pros vs. cons on the issue to decide whether this is a bad idea or not.
That said, as an 'ex-pat', living in Seattle, I do miss the live / streaming content from the BBC site (example: the World Cup commentary here is...unfortunate...).
If my understanding is correct, having a commercialized (z) version of the BBC site for viewers outside the UK would mean getting all the streaming / live media goodness too. Currently, this is blocked from me as my IP address is outside the allowed range. It may be short-sighted of me, but for this reason alone, I would probably support the move to an ad-supported service. I thought this a while ago.
Am open to be persuaded on this either way though.
-
Published on 01 Jul 2006 from
I was intrigued about how Technorati would rank my brand new blog:

So it turns out to be 1,387,012 out of 46.5 million sites. Since ranking is based on inbound links, and since the new blog has none, my assumption is that this is an equal ranking with around 45 million other blogs. A brief test looking at the ranking of other blogs with zero inbound links seems to confirm this theory.
A blog can have a readership without having any inbound links. Even so, it shows that the long tail of seldom frequented blogs is very long indeed.
Tags:
blogging
technorati
-
Published on 01 Jul 2006 from
40 years of hope, 120 minutes and 2 geeks
-
Published on 01 Jul 2006 from
Moving from Smart Device Framework 1.4 to 2.0, we made a huge breaking change to the
code base by separating out the OpenNETCF.Configuration namespace into a separate
assembly. The reason for this is two-fold:
-
Configuration is relatively large
-
We had requests from folks who wanted the Configuration namespace without the
extra footprint of the rest of OpenNETCF.dll
By removing the Configuration namespace from OpenNETCF.dll, we’ve reduced its
footprint by greater than 10% to 180K. The new OpenNETCF.Configuration.dll is 28K
on its own. Making this change doesn’t come free though. OpenNETCF.dll now has
a dependency on OpenNETCF.Configuration.dll. The reason for this is that some of the
classes in the Diagnostics namespace rely on the interfaces in the Configuration namespace.
One of the other problems we faced with SDF 1.4 is the undocumented fact that to work
with the Configuration classes, you needed a machine.config in \Windows\Config on
your device. This tripped up a few people, so we’ve removed the dependency on
machine.config by embedding it directly into the assembly. This means that OpenNETCF.Configuration.dll
is completely standalone and free from any dependencies and
you can use it your applications without installing the rest of the Smart Device Framework.
For the next release of the SDF (v2.1; later this year), I’m working on ways
to make it easier to work with app.config files within Visual Studio. Right now, you’ve
got to add the file yourself, then rename it to exactly the same name as the project
output. How many times have you added an app.config and forgot to do that? Well, we’re
going to take away that step of the process. I’m also working on ways to make
editing the config files less like hacking XML in a text editor and more like you’re
really configuring some options in your app. I’ll be posting some more about
that in the near future.
-
Published on 01 Jul 2006 from
Nasa monitors weather conditions in Florida as the Discovery shuttle prepares for launch.
-
Published on 01 Jul 2006 from
Problem
You want a quick way to kill a process on your system, or kill and restart an ASP.NET or IIS worker process.
Solution
Windows has two built-in command-line utilities that you can use to help with this: Tasklist and Taskkill.
Within a command-line window you can type "Tasklist" to obtain a listing of all of running Windows processes on your system:
C:\Documents and Settings\Scott>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ====== ================ ======== ============
System Idle Process 0 Console 0 16 K
System 4 Console 0 212 K
smss.exe 824 Console 0 372 K
csrss.exe 876 Console 0 5,116 K
winlogon.exe 900 Console 0 3,848 K
services.exe 944 Console 0 4,112 K
lsass.exe 956 Console 0 1,772 K
svchost.exe 1372 Console 0 22,240 K
svchost.exe 1524 Console 0 3,428 K
svchost.exe 1572 Console 0 4,916 K
spoolsv.exe 1788 Console 0 5,660 K
inetinfo.exe 352 Console 0 9,860 K
sqlservr.exe 612 Console 0 7,348 K
sqlservr.exe 752 Console 0 15,552 K
explorer.exe 2960 Console 0 25,224 K
CTHELPER.EXE 3660 Console 0 4,964 K
LVComS.exe 872 Console 0 3,092 K
msmsgs.exe 3596 Console 0 6,532 K
sqlmangr.exe 3096 Console 0 4,264 K
OUTLOOK.EXE 1740 Console 0 75,992 K
iexplore.exe 472 Console 0 37,372 K
cmd.exe 732 Console 0 2,436 K
tasklist.exe 3104 Console 0 4,156 K
wmiprvse.exe 3776 Console 0 5,416 K
TaskKill can then be used to terminate any process instance in the above list. Simply provide it with the PID (Process ID) value of the process instance to kill and it will terminate it:
C:\Documents and Settings\Scott>taskkill /pid 1980
SUCCESS: The process with PID 1980 has been terminated.
ASP.NET on Windows 2000 and XP runs code within the "aspnet_wp.exe" worker process (when using IIS). On Windows 2003 it runs within the IIS6 "w3wp.exe" worker process. Both of these processes are launched from Windows system services, which means you must provide the "/F" switch to taskkill to force-terminate them:
C:\Documents and Settings\Scott>tasklist
Image Name PID Session Name Session# Mem Usage
========================= ====== ================ ======== ============
aspnet_wp.exe 3820 Console 0 13,512 K
C:\Documents and Settings\Scott>taskkill /pid 3820 /F
SUCCESS: The process with PID 3820 has been terminated.
As a short-cut, you can also just provide the process image name to "Taskkill" if you want to avoid having to lookup the PID value for a specific process instance. For example, the below command will kill all ASP.NET worker processes on the system:
C:\Documents and Settings\Scott>taskkill /IM aspnet_wp.exe /F
SUCCESS: The process "aspnet_wp.exe" with PID 2152 has been terminated.
ASP.NET and IIS will automatically launch a new worker process the next time a request is received by the system. So when you run the above command it will shutdown all active ASP.NET Worker processes. When you then hit the site again a new one will be automaticlaly launched for it (and it will have a new PID as a result).
Note that both TaskList and TaskKill support a "/S" switch that allows you to specify a remote system to run the commands against. If you have remote admin rights on one of your co-workers machines this can be a lot of fun.
Credits
The above tutorial was inspired by Steve Lamb's nice post here. I was surprised to discover that these commands work with Windows XP and Windows 2003 too. Since the mid-90s I've been using a private set of utilities I always install on my dev box to accomplish the same task, without realizing that somewhere along the way they've been built-into Windows. Many thanks to Steve for pointing them out.
Hope this helps,
Scott
Share this post: Email it! | bookmark it! | digg it! | reddit!
-
Published on 01 Jul 2006 from
I've started another blog for posts about music; it's here, and I've kicked off with a post about Robert Fripp's Exposure.
One of the reasons is that I want to try out Wordpress, which strikes me as a remarkable piece of software; I may switch to it here as well.
I doubt I'll mention the music blog again here; it means I can keep a sharper focus on technology; who knows, perhaps I'll start a third blog for other stuff. Some will disagree, but I've found that I much prefer well focused blogs, and I'm likely to unsubscribe from the ones that veer constantly from, say, technology to politics to home improvement. So I'm taking my own advice and starting something new rather than cluttering up this one.
Tags:
wordpress
-
Published on 01 Jul 2006 from
This particular serialization problem took 2 midnight sessions to sort out. We had some untyped orchs published as webservices inside the service boundary and we were building a strong typed ASMX gateway as the service boundary. We used WSCF to generate the ASMX and used all the schemas that were inside the orchestrations so that we didnt have to maintain two different sets of messages. We then came across 2 problems, the first one more easily solved than the other. I'll explain them below
(1)Duplicate namespaces: When you define a set of schemas in Biztalk, it is perfectly acceptable to define a common target namespace for example http://mycompany/schemas/services/customerservice and then to have different messages with specific root elements such as CreateCustomer, UpdateCustomer and so on. When biztalk recieves the message and validates them and works out the subscriptions, it adds the root element onto the target namespace making it http://mycompany/schemas/services/customerservice#CreateCustomer (note the # before the suffix) and this is enough for it to resolve most schemas. However, if you put all these Create, Update and Delete methods in your ASMX, then when you add a web reference, the .NET system crashes complaining of duplicate namespaces. Actually, the WSCF tool complained about duplicate namespaces even while creating the ASMX so we bypassed it and coded the ASMX ourselves (not realising it was right in complaining). This stumped us for a while, but it looks like this is default behavior in .NET and Biztalk has the ability to handle it but not the normal .NET framework which is fine. So we worked around it by changing the targetNamespace in all our schemas to have some extra phrases such as create, update and delete. Of course, if you put these kind of suffixes into the targetNamespace for biztalk its not a problem at all and it is then guaranteed to work in ordinary ASMX as well.
(2) Serialization and Precompilation: The second problem was much more involved. Once we finished revising the namespaces, we called the webservice only to get a nasty error message saying "File not found exception. System cannot find the file "xyz123".dll (some arbitrary constantly changing name) . We tried setting all sorts of permissions everywhere and it didnt solve the problem. We narrowed it down to the serializer since ordinary webservice calls not involving complex types were working fine and since the webservice was writing to our debug log files we knew that the system wasnt even invoking the webservice. Finally we saw a post where someone recommended that we use Chris Sells' XmlPrecompiler tool and the associated GUI built by Matthew Nolton. We then used the WSCF tool to generate a bunch of classes corresponding to the schema and checked them out. By this time i had also narrowed down the problem to a particular set of webmethods and one in particular where returning a void worked fine but returning a strong type caused the crash. Now the tool worked perfectly and crashed at the offending type. On close examination we found that by mistake, someone had created an array of arrays. (ie) we were returning an element called References and in that we needed unbounded elements named Reference with some attributes. It turned out that References had also been declared as unbounded. To add to this the namespaces were a bit muddled up and i read an article on MSDN saying that unqualified attributes in array types cause problems (or something to that effect). Anyway, i basically rewrote the schema to ensure all the elements were qualified correctly, corrected the 'unbounded' element and then it worked fine. There were also other schemas that dealt with arrays where the namespaces had to be reworked, but in the end it all worked fine.
This is a problem that one doesnt mind spending a couple of late nights working through eh? Who would have thought it would come down to finding a precompilation tool and sorting out the bug. So there it is... be very careful with schema definitions and arrays and use the precompiler tool as part of your quality checks. It will save a lot of tears and gain you some sleep as well.
-
Published on 01 Jul 2006 from
This particular serialization problem took 2 midnight sessions to sort out. We had some untyped orchs published as webservices inside the service boundary and we were building a strong typed ASMX gateway as the service boundary. We used WSCF to generate the ASMX and used all the schemas that were inside the orchestrations so that we didnt have to maintain two different sets of messages. We then came across 2 problems, the first one more easily solved than the other. I'll explain them below
(1)Duplicate namespaces: When you define a set of schemas in Biztalk, it is perfectly acceptable to define a common target namespace for example http://mycompany/schemas/services/customerservice and then to have different messages with specific root elements such as CreateCustomer, UpdateCustomer and so on. When biztalk recieves the message and validates them and works out the subscriptions, it adds the root element onto the target namespace making it http://mycompany/schemas/services/customerservice#CreateCustomer (note the # before the suffix) and this is enough for it to resolve most schemas. However, if you put all these Create, Update and Delete methods in your ASMX, then when you add a web reference, the .NET system crashes complaining of duplicate namespaces. Actually, the WSCF tool complained about duplicate namespaces even while creating the ASMX so we bypassed it and coded the ASMX ourselves (not realising it was right in complaining). This stumped us for a while, but it looks like this is default behavior in .NET and Biztalk has the ability to handle it but not the normal .NET framework which is fine. So we worked around it by changing the targetNamespace in all our schemas to have some extra phrases such as create, update and delete. Of course, if you put these kind of suffixes into the targetNamespace for biztalk its not a problem at all and it is then guaranteed to work in ordinary ASMX as well.
(2) Serialization and Precompilation: The second problem was much more involved. Once we finished revising the namespaces, we called the webservice only to get a nasty error message saying "File not found exception. System cannot find the file "xyz123".dll (some arbitrary constantly changing name) . We tried setting all sorts of permissions everywhere and it didnt solve the problem. We narrowed it down to the serializer since ordinary webservice calls not involving complex types were working fine and since the webservice was writing to our debug log files we knew that the system wasnt even invoking the webservice. Finally we saw a post where someone recommended that we use Chris Sells' XmlPrecompiler tool and the associated GUI built by Matthew Nolton. We then used the WSCF tool to generate a bunch of classes corresponding to the schema and checked them out. By this time i had also narrowed down the problem to a particular set of webmethods and one in particular where returning a void worked fine but returning a strong type caused the crash. Now the tool worked perfectly and crashed at the offending type. On close examination we found that by mistake, someone had created an array of arrays. (ie) we were returning an element called References and in that we needed unbounded elements named Reference with some attributes. It turned out that References had also been declared as unbounded. To add to this the namespaces were a bit muddled up and i read an article on MSDN saying that unqualified attributes in array types cause problems (or something to that effect). Anyway, i basically rewrote the schema to ensure all the elements were qualified correctly, corrected the 'unbounded' element and then it worked fine. There were also other schemas that dealt with arrays where the namespaces had to be reworked, but in the end it all worked fine.
This is a problem that one doesnt mind spending a couple of late nights working through eh? Who would have thought it would come down to finding a precompilation tool and sorting out the bug. So there it is... be very careful with schema definitions and arrays and use the precompiler tool as part of your quality checks. It will save a lot of tears and gain you some sleep as well.
-
Published on 01 Jul 2006 from
Whew.. this is a record for me. Two posts in the same day. Well, it has been a rather busy weekend trying to sort out my new laptop and make some progress on a serialisation issue i've been having. Thought i'd post about it cos it might make interesting reading for any Biztalkers in a similar situation out there. It also looks like this issue is still floating around on newsgroup posts (in fact I just came across my post on this subject last year and nothing much has happened since then). ...(read more)
-
Published on 01 Jul 2006 from
Whew.. this is a record for me. Two posts in the same day. Well, it has been a rather busy weekend trying to sort out my new laptop and make some progress on a serialisation issue i've been having. Thought i'd post about it cos it might make interesting reading for any Biztalkers in a similar situation out there. It also looks like this issue is still floating around on newsgroup posts (in fact I just came across my post on this subject last year and nothing much has happened since then). ...(read more)
-
Published on 01 Jul 2006 from
If you ever move a database from one SQL Server to another you may come across the situation where the logins no longer map to the users in your database (and that's assuming that the SQL Server you've moved the database to has the same logins).
If the new SQL Server does have the same logins then you can fix the mapping by using sp_change_users_login. The neat thing is that if the user and login names already match then there is an "Auto Fix" setting. And if you just don't know what is mismatched there is a "Report" option too.
-
Published on 01 Jul 2006 from
Personally I think the WGA (Windows Genuine Advantage) "pilot" was a disgrace. Anti-piracy measures (which are for the benefit of the vendor) shouldn't be auto-installed because the users has enabled auto-update for security reasons. These are two separate issues.
It also had a funny side (I'm using the past tense because I don't know if this still applies). When your auto-update automatically installs the validation tool, it does have the courtesy to present a dialog with a EULA. If you actually read this, as opposed to just clicking OK like 99.99% of others, it said:
You may not test the software in a live operating environment unless Microsoft permits you do to so under another agreement.
As far as I can tell, clicking OK on the dialog raised by auto-update - yes, the stuff that comes in unasked if you have followed the advice of the security center in XP and enabled it - was actually in breach of the EULA unless it was a test machine. Funny. Sad. Careless.
So I'm not going to be soft on Microsoft over this. At the same time, accurate reporting is essential. So what of the rumour that Microsoft might use WGA to shut down your PC completely, unless you purchase another Windows license?
Microsoft's Windows Genuine Advantage blog says this won't happen:
Microsoft anti-piracy technologies cannot and will not turn off your computer.
I accept that. Still, there is one question I haven't seen answered definitively. How fail-safe if WGA? The people who are most upset, understandably, are those who have paid full whack for their Windows installations but are still getting bugged by WGA as pirates.
It's possible that in most of these cases there is actually something odd about the install. For example, there was a repair, Windows got re-installed, and the the re-installed version had a different key from the original. Alternatively, the original vendor purchased licenses but used an incorrect bulk install technique.
The repair scenario can be challenging. There are numerous different setup builds for Windows XP, for different licensing scenarios. Users frequently don't have or can't find their recovery media; or perhaps a repair install is required, which the recovery media cannot handle. The repairer may be almost forced to use the "wrong" install media, which won't accept the product key even if it is stuck on the side of the machine; or else he has to explain to the customer why they must buy a new Windows license even though they have already paid.
It's also possible that WGA is simply not working right. Another possibility is that the end user was scammed by a dodgy OEM suppler. But in all these scenarios the key fact is that the end user has done everything by the book, but Microsoft is still calling them a pirate.
As far as I can tell, Microsoft is doing a wretched job of handling these situations. Being hostile towards your best customers is not a great way to run a business.
If these measures really are troubling the pirates, there may be some benefit for Microsoft. But that's an open question too.
-
Published on 01 Jul 2006 from
It has been far longer in conceptualising and planning than actual code development, but the first release of my AquariumCMS (Content Management System) is almost out of the production line.
Built following so much frustration with overly complex yet constraining CMSs, particularly in the area of overall site look and feel, Aquarium offers front-end design flexibility [...]
-
Published on 01 Jul 2006 from
Niall Ginsbourg
has updated his Big Screen Photos application that we talked about on the show last week (HERE)
A new version(s) of mobilewares Big Screen Photos (XBAP flickr Addin for Vista MediaCenter) has been released - to provide support for the new June CTP of .NET Framework v3 / Vista Beta 5456. (The May CTP version has also been updated.) :
>> Please visit the Big Screen Photos Download Page to get the latest version (Details below).
Big Screen Photos V1.60 + V1.52 - June 30, 2006
v1.60 is for .NET v3 June CTP/Vista 5456 - v1.52 is for WinFX May CTP / Vista Beta2.
Changes Include :
- Enhanced Picture Viewer with Rotate, Zoom, and Color Filters (for B&W and Sepia Tones)
- Support for Creative Commons Licensing (inc Marks and required info)
- New UI Themes, User Avatars and improved Animations
- Optimized/Enhanced User Interface with better support for slow machines and mouse control.
- Bug Fixes and Many other Enhancements (nb: some platform related fixes require v1.60)

-
Published on 01 Jul 2006 from
Niall Ginsbourg
has updated his Big Screen Photos application that we talked about on the show last week (HERE)
A new version(s) of mobilewares Big Screen Photos (XBAP flickr Addin for Vista MediaCenter) has been released - to provide support for the new June CTP of .NET Framework v3 / Vista Beta 5456. (The May CTP version has also been updated.) :
>> Please visit the Big Screen Photos Download Page to get the latest version (Details below).
Big Screen Photos V1.60 + V1.52 - June 30, 2006
v1.60 is for .NET v3 June CTP/Vista 5456 - v1.52 is for WinFX May CTP / Vista Beta2.
Changes Include :
- Enhanced Picture Viewer with Rotate, Zoom, and Color Filters (for B&W and Sepia Tones)
- Support for Creative Commons Licensing (inc Marks and required info)
- New UI Themes, User Avatars and improved Animations
- Optimized/Enhanced User Interface with better support for slow machines and mouse control.
- Bug Fixes and Many other Enhancements (nb: some platform related fixes require v1.60)

-
Published on 01 Jul 2006 from
Hicks' (justifiable) excitement about his logo design article appearing in .net magazine (#152 August) has brought back memories for Malarkey.
-
Published on 01 Jul 2006 from
It seems many NETCF developers are being bitten on Windows Vista after installing the WM 5.0 SDK for Visual Studio. The symptom is that although the SDK installation appears to go fine, the WM 5.0 project templates do not appear in VS2005.
The problem has to do with User Account Control (btw, I'll have a lot more to say about UAC in a future blog post). The way to work around it (on Vista Beta 2 at least) is to disable UAC and then install the WM 5.0 SDK thus getting the project templates to appear.
Specifically:
1. Launch "Control Panel"
2. Navigate to "User Accounts and Family Safety -> User Accounts"
3. Click on "Change Security Settings"
4. On the window that appears, uncheck the "Use User Account Control (UAC) to help protect your computer" checkbox (requires restart)
5. Now install the WM 5.0 SDK (or do a repair if you already had)
6. Launch VS2005 to verify you have the templates
7. Enable UAC again
The above combined with the WMDC update should answer most relevant queries...