| |
I just found this Microsoft KB article which is a very comprehensive list of what services use what ports. Anyone working with enterprise software solutions or Microsoft back end infrastructure should find it useful. GEO 51.4043197631836: -1.28760504722595
So a while back (31st Dec 2007), my beta license for Windows Home Server (WHS) expired and I hacked together an alternative solution.
I have been updating my (almost) free/opensource alternative (it still needs a Windows OS) over the past couple of days and now have a pretty viable solution.
I have a machine (the Home Server) running Windows (any version would do) with two large additional drives in it (Data1 and Data2). Data1 is the primary data drive and on there I created a number of folders / shares:
- Photos
- Documents
- Music
- Videos
- Software
- Backups
- Downloads
I re-homed each of my 'special' folders in Vista (Docs, Music, Video, Photos) to these shares, so all data is stored on the Home Server. You could create a separate shared folder for each user with the correct permissions, but I share all the docs/photos etc between all machines so no need for me.
Next I wanted the WHS feature of duplicating the stored data across more than drive, so I grabbed a copy of the Robocopy and created a batch file with the following commands :
- robocopy d:\documents e:\documents /MIR /SEC /LOG:c:\robocopy.txt /NDL /NFL
- robocopy d:\music e:\music /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
- robocopy d:\videos e:\videos /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
- robocopy d:\software e:\software /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
- robocopy d:\photos e:\photos /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
- robocopy d:\backups e:\backups /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
- robocopy d:\downloads e:\downloads /MIR /SEC /LOG+:c:\robocopy.txt /NDL /NFL
This replicates all the folders across to the other data drive (Data2) thereby mitigating against a single drive failure. All the replication results / logs are stored in a file (c:\robocopy.txt) and I wanted that emailed to me so I grabbed a copy of Blat and added the following command line to the batch file :
- c:\tools\blat262\full\blat.exe c:\robocopy.txt -to YOUREMAILADDRESS -subject "RoboCopy Results" -server mail.YOURMAILSERVER.com-f "RoboCopy on Home Server" -u YOURUSERNAME -pw YOURPASSWORD
I named the batch file 'replicate.bat', put it in the c:\tools folder and then scheduled the batch file to run every night at 2am with this command line :
- SCHTASKS /Create /SC DAILY /TN Replicate /TR c:\tools\replicate.bat /ST 02:00
Excellent - now the data is replicated across two drives, and I get an email every day with the results of the replication process (in case anything goes wrong).
Next I wanted to ensure I have remote access to my files from anywhere. I grabbed a copy of the excellent HTTP File System and put that on the Home Server.
I set the root to the Data1 drive, created a user account for myself and gave it 'upload' ability and that gives me fully web based access to upload and/or download any file.
The next piece in the puzzle is to get full backups of the machines. For this I had planned to use VMware Server and the excellent VMware Converter tool, however it seems the command line options for the tool they provide p2vtool only works with a licensed version.
It's a great tool and pulls a whole physical machine image into a VMware virtual machine - and is a great way to get the failed machine back to life - what it doesn't do is restore a machine, but I'm most likely to rebuild any failed machine anyway - I simply need access to any files / data on there that might not have made it to the shared server folders...
GEO 51.4043197631836: -1.28760504722595
I am totally blown away by this. This is (IMHO) exactly what Windows mobile has been waiting for.

I have downloaded and am using this on my HTC TyTN II (Kaiser) - works like a dream, very easy to use and responsive to finger touch / navigation. There are a number of known issues with it and some reports of it not being great on devices without touch screens, but run (seriously, run very quickly) over there and grab a copy.
It is still in beta and the guys at Pointui have made it free (paypal donation optional). Unfortunately it does not cover all apps and aspects of the Windows Mobile UI, but the parts they have covered off are stunning - when these folks get all the common apps covered (Contacts, Dialer, Mail etc) then it will be incredible!
I love the list of known issues they have on the release announcement on their forums - it includes : Not enough time in the day and Red Bull wearing off - classy.
GEO 51.4043197631836: -1.28760504722595
The king is dead, long live the king.
Over the Christmas break the license for my beta of Windows Home Server ran out, so I needed an alternative backup / storage solution. I briefly considered Linux with some iSCSI software, Windows with DFS or FRS, or indeed forking out some of my scheckles for a folder sync application.
The requirements were as follows:-
- NTFS, for large file support (12 Gb in some cases).
- Easy duplication of the data (including hierarchy) across multiple drives.
- UNC pathname support, so I could 'rehome' my docs, music, photos etc to it.

In the end I opted for a fairly simple solution :-
- A windows machine with a drive for the OS and two additional data drives.
- One of the additional drives would be the primary where folders are 'rehomed' to and all data is stored.
- A batch file would fire off 'Robocopy' (free in the Windows Resource Kit) to mirror this primary data drive to the secondary data drive.
- Another batch file would fire off 'Robocopy' for copying to external USB drives.
- Batch files would be scheduled using AT command line tool and would email results files using the free Blat! command line tool.
- The primary data drive would also be backed up to my 'iDrive Pro' account (online 150 Gb storage facility for $50 / year).
- Of course, photos are also backed up to my Flickr Pro account (unlimited online storage of images for $25 / year).
GEO 51.4043197631836: -1.28760504722595
One of my colleagues switched me on to PowerShell Plus and I'm loving it.
Code editor, snippets, values of variables, logging tools and much more, including a really neat feature called 'MiniMode' (see the toolbar icon at the extreme right in the image.
This 'MiniMode' closes all toolbars/toolwindows except the main console but also makes the console window transparent (user configurable level of transparency). This mode is real easy to work with...
There is a free single user license for non commercial use.
I encourage you to try it out.
GEO 51.4043197631836: -1.28760504722595
Sarah wanted 'Ruby Ruby Ruby' by the Kaiser Chiefs as her ringtone. Her mobile doesn't have any easy way of connecting to a PC, so she joined one of the rip-off 'Ringtones R Us' services that force you into paying £4.50 / week for as many ringtone downloads as you want (aside: I must be getting old - why would anyone want to change their ringtone that often ??).
Anyway, after downloading the mp3 she found it start relatively quietly and she was missing some calls. What she had actually wanted was the chorus....
So cue Kens Do It Yourself Ringtone Creater and Transferer... 
Step by step instructions :-
- Rip the song to an MP3 (from the CD which we do own - no copyright issues)
- Download Audacity.
- Cut the chorus out of the original track (loaded MP3 file)
- Create a new stereo track and paste the chorus into the new track.
- Mute the original tracks
- Play / listen to the new track, make sure you are happy with it.
- Download lame_enc.dll to allow Audacity to export as MP3 (see this Audacity FAQ)
- Export the new track from Audacity as an MP3.
- FTP the MP3 file to your website
- Using 3G / GPRS etc on the mobile phone connect to the internet
- Browse to the MP3 file and download it to the mobile
- Set the MP3 as the ringtone.
- Cancel the expensive MP3 ringtone service (if applicable).
GEO 51.4043197631836: -1.28760504722595
Ok, so maybe this is a rant, and maybe it is due to the fact I forgot my annual Pay As You Earn (PAYE) employers return and was fined £400...
But seriously...
This is the government! This is the part of the government that calculates how much our taxes are!! This is intelligent automated software that they've had designed that should be 200% idiot proof.
I've had no employees for the past 12 months and I'm trying to submit (basically) an empty / null return.
Apparently I have employees on the list for whom I have not completed a P14 - note the list displays no employees, there's another summary page later on that tells me I'm submitting for 0 employees, so they know !!!!

GEO 51.4043243116043: -1.28760516643523
I have completed stage one of GeoRss enabling dasBlog.
In the config page I added some options for enabling GeoRss, specifying a default lat/long and enabling ‘integration’ with Google maps. There is also an option to use the default lat/long for any non geocoded posts.
If GeoRss is enabled then the edit entry screen provides textboxes to allow specifying lat/long (populated with defaults from config page).
If the google maps integration is enabled then you’ll get the ‘Show Map’ button and clicking it will display a map which you can move around until you find the location and then click on the location to get the lat/long texboxes populated.
If you have existing non geocoded posts then you can have the default lat/long added to those if you wish.
I puzzled around for ages when trying to display the georss in google (http://maps.google.com/maps?q=yourfeedaddress) – it kept telling me that the feed was invalid. I eventually found that feedburner was adding <atom10:link blah blah /> to the xml which for some reason google maps thinks is invalid. The only way I could find to prevent feedburner adding the atom link was to turn OFF the ‘Browser Friendly’ feature in feedburner.
So – stage 2...
The work I still want to do with this is basically to add macros to get lat/long - fairly easy I guess, and then some way to specify lat/long from Windows Live Writer (and other offline blog clients) – a little more complex. Scott mentioned a geo microformat and from my initial looks seems to be a good route to take - watch this space...
Now it is simply a case of retrofitting the geo info into all my old posts...
I was spending far too much time installing OS's - virtual machines, lab machines etc.
In order to automate / streamline this I wanted to look at not just the Windows tools as well as other options. Remote Installation Service (RIS) and unattended.txt files go so far, but during my investigations I came across 'Unattended'. This open source tool takes unattended.txt, mixes in silent installs for hundreds of other common applications and supercharges the whole lot...
So the deal is, you extract some files from 4 zip archives, configure a DNS alias, share the folder, copy over the i386 folder from your OS CD/DVD, burn an ISO (or create a boot disk) image and your done - 25 minutes end to end.
The boot CD/Disk loads some network drivers, maps a Z drive to '\\ntinstall\install' (the machine and share with the files and OS on it) and passes control to a bunch of Perl scripts, these ask some questions from which it creates an unattended.txt file and executes the OS install (reboots and all). When the install completes it can also (optionally) run silent installers for other applications (Office, Open Office, Acrobat Reader, PDF Creator, Visual Studio, Perl etc..) as well as Windows Updates and critical fixes (they keep an up-to-date list on the homepage).
So, in summary, after booting from the install CD then 2 minutes of console based questions I can leave things for an hour or two and come back to a fully installed Windows OS, office applications, sales tools, developer tools - whatever. The scripts that install the additional apps are customizable (you can even enter your product keys) and you can build up suites from individual scripts (so I can have a script to install Visual Studio, another for the MSDN library, another for each of the various developer tools and then I can combine them all into a 'developer_machine' script...
Have a look - if you are doing more than one install (even just two) then this can save you time...
Some of the code I have for importing data (from ACT! 2000) to MS CRM creates new 'PhoneCall' activities / objects. The problem is, that it seems MSCRM does not allow you to programmatically modify the 'create date'.
Here is the code I use...
CrmDateTime start = new CrmDateTime();
start.Value = DateTime.Parse("10/08/2005 12:30");
pc.actualstart = start;
pc.scheduledstart = start;
CrmDateTime end = new CrmDateTime();
end.Value = DateTime.Parse("10/08/2005 14:30");
pc.actualend = end;
pc.scheduledend = end;
pc.subject = "Phone call regarding sales of Widgets Q2/2005"); ***
string desc = "Start : " + pc.actualstart.Value + "\n";
desc += "End : " + pc.actualstart.Value + "\n\n"; ***
desc += "The details of the phone call go in here");
pc.description = desc;
pc.regardingobjectid = new Lookup();
pc.regardingobjectid.type = EntityName.contact.ToString();
Guid contactGuid = new Guid(guidOfContactWeTelephoned);
pc.regardingobjectid.Value = contactGuid;
The actualstart and scheduledstart (and ends) get populated with the current datetime (this seems to happen if the time they are set to is in the past).
Note the two lines between the ***'s - this is my solution / workaround and simply include the start/end times as text in the body/description of the phone call object.
So after some poor experiences with the MSCRM Data Migration framework I decided to get pragmatic and write a C# app to do the migration. The CDF is poorly documented at best, it seems they (Microsoft) give you a bunch of database tables, an Excel spreadsheet outlining the schema and a 'Good Luck'. There is little 'googleable' (is that a word) knowledge about it either. The good news was that the MSCRM SDK is much better documented (on MSDN). There is not a lot of googleable info around but there is enough (Stunnware proved pretty helpful for me). There were other challenges also - the software we purchased for exporting the ACT! 2000 data to Access (Exporter Pro) did a good job of getting the data out of ACT but the Unique ID left a bit to be desired, they are basically a munge of punctuation characters and alphanumerics - what's wrong with a GUID or a int ?? So, anyway, I got there in the end... The connecting to the CrmService was pretty easy, as was the population and addition of an account. crmSvc = new CrmService(); crmSvc.Url = MsCrmUrl; crmSvc.Credentials = new System.Net.NetworkCredential(CrmUsername, CrmPassword, CrmDomain); account acct = new account(); acct.name = "company name"; acct.address1_line1 = "address line one"; acct.address1_line2 = "address line two"; acct.address1_line3 = "address line three"; // etc Guid acctGuid = crmSvc.Create(acctGuid); Simple as that - do it for each account... Next installment will outline adding Contacts an then linking them to an account.
I'm in Western Mass (Westboro, MA) again this week and while that normally means 16 hour days (there is nothing much else to do but sit around a hotel room so why not...), this week I decided to work on a personal project for a bit.
Part of it was some code to check a machines public IP address and update it to DynDNS. Luckily they have an excellent developers / API section that explains everything you need to do this. There are two sections to it, detecting the machines public IP address and updating the hostnames associated with your account, both of which they provide a service for.
It's pretty easy to follow and within an hour or so I had come up with a class to do both tasks. Here is a snippet for the 'CheckIP' function:
public static string CheckIP()
{
// check the current public IP address
string ipString = string.Empty;
WebClient wc = new WebClient();
try
{
string result = wc.DownloadString("http://checkip.dyndns.com");
return ParseCheckResult(result);
}
catch (WebException)
{
ipString = string.Empty;
}
return ipString;
}
Just call a URL (http://checkip.dyndns.com) and it returns your public IP address, there was some parsing of the return text but it is pretty simple. Click the link and see for yourself.
Next was the 'UpdateIP' function, here's the snippet:
public static string UpdateIP(string username, string password, string ipaddr, string hosts)
{
// check the current public IP address against what we want to update to
string updateurl = "http://members.dyndns.org/nic/update?hostname";
string result = string.Empty;
WebClient wc = new WebClient();
string url = string.Format(@"{0}={1}&myip={2}&wildcard=NOCHG&mx=NOCHG&backmx=NOCHG", updateurl, hosts, ipaddr);
try
{
wc.Credentials = new NetworkCredential(username, password);
wc.Headers.Add("User-Agent", "KSL - WHS Updater - 1.0");
It is basically just a case of passing a querystring with all the details to http://members.dyndns.org/nic/update , ensuring you set the credentials to your DynDNS account username and password and specifying a unique User-Agent.
The complete project files (including a small 'user' application to test it) can be found here (61K).
So, this is something I learned on the Certified ScrumMaster course by Danube Technologies.
It really clarified for me that any sense of control over software deadlines is, pretty much, only a 'perceived' sense of control.
Yes, we can strongarm, use peer pressure or rigid authority to make developers work longer hours, but then they spent more time idling during the day. Someone, somewhere has written a great article on it (Note, after spending an hour looking at Joel On Software thinking the link I wanted was there: Link it here when found)
Anyway, the graph - let me explain....
A development team has a normal work rate (given all things are equal, interruptions, bug fix workload, training , yadda yadda...) in this case the work rate is 30 'units' in a 15 day period (the red line). Supposing we 'force' them to up their productivity to 40 units in a 15 day period (dotted green line). They will work at their normal rate initially and then soon recognise that this will not meet the deadline - at that point they 'speed up' (this is the change in the solid green line at the 7 day point).
What you have actually done (most likely) is generated a 'technical debt' - because the way the developers 'sped up' (wrote more code) was by sacrificing some other aspect of the development (quality, test coverage, peer reviews etc).
So you have a 'technical debt' that needs to be made up during the next period. Even if we go back to the normal rate of work we are not going to get 30 units done in the 15 days, oh no, first we have to make up the debt, then start on the 30 units - which will likely need 'speeding up' to meet deadline.
What is worse though, is that now you have set the expectation that the team can deliver 40 units in the 15 day period, so your next schedule had 40 units factored in, and the next, and the next until ..... well, it's like spending more on your credit card every month than you are paying off, at some point you can go no further .
The moral of all of this ? Who knows... get a card with a long 0% balance transfer rate ??
So I just spent two days in London on a 'Certified ScrumMaster' training course run by Danube Technologies.
The instructor was a Dan Rawsthorne and although he liked to reference things to the military, he covered a great deal of topics and had an incredible wealth of experience - some of the real world example really struck home with me.
It seems that a common trait is people just not grasping the whole concept of (basically) handing over control to the development team. There were many questions about where the project manager fitted in, who really managed the team etc etc.
It is tough to grasp if you currently have the perception of 'having control of the process at the moment'. It suddenly hit home for me as I was traveling into London on the train for the second day and thinking about why this current round of QA release testing was taking so long.
According to the QA guys, the build they had been given originally for this release was pretty poor quality (thankfully sorted out now). I was wondering why and thinking back to when this release was being coded and realized that at the time I was pressuring he developers because we were 100 odd hours behind schedule. We managed to get back on track and I 'thought' the reason was because I had beaten/pushed/cajoled/whatever the guys into increasing their work rate.
In reality, what had happened was that I had forced them to deliver early and the way this was done was by sacrificing quality (you cannot change the laws of dynamics - right). The fact was we did not get visibility of that until further down the line in the testing stage.
So, have a think about whether you do actually have control, or are you just exerting force on one particular aspect of the 'whole' that is squeezing/reducing another aspect of the same 'whole'.
When this clicked in my head, it all made sense - the SCRUM methodology became clearer, what needing doing to get it working, why it worked (especially, why it isn't a bad thing to hand 'control' over to the team).
One of the slide deck was about 'technical debt' and it really drives this point (sacrificing something for earlier delivery) home - I'll blog about that later..
Just didn't work for me. I had it all set up as per the docs, imported the data into the CDF database, tried to 'Migrate' and it completed but migrated no records (even though I had 8000+ in the CDF tables). I tried both the snippets I gleaned from googling : - Make user the user does not have 'Restricted Access'
- Turn off 'Fast Load' mode.
Still no joy. All the 'required' fields are populated, the mapping wizard works correctly, but no 'migration'. It is a real pain as there is nowhere to go next, the documentation about CDF is really poor as is the logging/trace/error output from the Migration Wizard. Ever the pragmatist, I cracked open VS and and have started on an app which uses the CrmService webservice to import the data. Watch this space for the source when I'm done...
The company I work for (C2C) are hiring. We are looking for Technical Support Engineers to work in our Reading, UK office. We'll consider any experience level as long as the individuals show commitment, determination to learn / succeed and have a passion for technology. You might be right out of school / college, looking for your first step into an IT career, you might be an Exchange expert with many years of experience. We can promise variety, leading edge technology, in depth technical problems to investigate and input into the product direction. Want to apply ?, email us at hr@c2c.com
This week (so far) has been good - in terms of completing things, productivity and new products. First off, Microsoft finally released PowerShell for Vista. No more having to 'play' on my old lab machine to get to grips with this stuff. There seem to be a number of people reporting failed installs(due to EFS encryption being disabled), just read the comments of the PowerShell blog announcement. Next, we're just coming to the final couple of days of a 'Supporting Exchange 2007, Office 2007 and Vista SPRINT' at work (we use a form of SCRUM as our development process) - all is looking good and we have beta sites lined up. Then, I noticed Eileen's (the most communicative Microsoft employee on the planet) post about Office 2003 to Office 2007 command references. An interactive demo from Microsoft when you can click the toolbars and menus of an Office 2003 application and it tells you how to find the equivalent command/function in Office 2007. I spent some time finding the 10 or so commands I'd been having difficulty with and increased my productivity. Here's her post : http://blogs.technet.com/eileen_brown/archive/2007/01/31/old-to-new-reference-guides.aspx Then late last night (again at work) we just completed our internal testing before sending our Archive One product for Microsoft Platform testing. We are testing against 5 of the 6 platform tests (we don't fit into the 'Managed Code' test category as we make extensive use of MAPI which basically requires C++ / Unmanaged code)
I've been on Vista (on my work laptop) for a couple of months now and finding it really difficult to get some stuff done. I'm (directly) working on some training modules for our Archive One products and managing / assisting a couple of people who are working on Sales Video Demos of these products. The Sales Video Demo are making extensive use of Camtasia and my training modules are making some use of it. Their version 4.0.0 of Camtasia Studio is not supported on Vista and I can verify that it DOES NOT work on it (although you CAN install it, expect to get lots of application errors / crashes). TechSmith (the makers Camtasia) say that there is limited functionality available under Vista (you can record your screen to AVI format, but that's it). There is a beta version of Camtasia available from here that works with Vista (pretty well actually) and the TechSmith guys plan to release full support for Vista by the end of this month. As we're heavily into Exchange Server and the 2007 version is now released (and makes extensive use of Powershell of management), I've been meaning to get to grips with Powershell. Powershell is NOT supported under Vista yet either. They do have a Powershell RC2 available that works under Vista RC1 (build 5600). The details are available from their download page. Vista support is also planned for the end of this month. I guess I should have probably waited a bit longer before migrating to Vista. Anyway in the meantime I have a test Win2003 Server set up that I'm using for Powershell.
One of the difficulties I have encountered whilst trying to change the mindset of our development team is getting buy in for the concept of 'Committing to backlog items'. This is where the development team get together with the Product Manager(s) in a time boxed (8 hour) meeting (split into 2 sets of 4 hours, the first one to discuss requirements and the second one to discuss / agree what they will commit to doing in the 30 day Sprint). I've been thinking about this a lot recently - I really want the guys to fully embrace SCRUM (and they want to also) but this particular concept is proving a difficult hurdle to overcome. I think that the root of this is that the team had been working in a classic Waterfall methodology (and had been burnt a number of times on late delivery of features / releases). The word commit seems to be the problem. - Their current understanding / interpretation of commit is : "it must be done or we're going to take heat over late delivery".
- Whereas the agile understanding / interpretation of commit is : "we will do everything we reasonably can to deliver the feature / release"
It's actually quite a big step / leap of faith if you have only been used to "it must be done by dd/mm/yy". I like it's going to require me forcing the issue so that we do one Sprint in this manner and then demonstrates to everyone that there is no blamestorming if we're late or drop features The reason (I suspect) that it works is that with SCRUM you get continual and accurate feedback from the daily Sprint meetings, so if things do go off track then it's visible and corrective action can be taken earlier.
We had a customer issue yesterday that manifested itself as the user getting a HTTP 401 error when trying to connect to a Website (that is part of our Product). The user was logged into the domain, the virtual directory was set for 'Windows Integrated Authentication' so they should have been able to connect no problem. After so investigation we opened the IIS logs and found that the substatus code was 2 (HTTP Error 401.2 - Access denied by server configuration). A bit of searching around the Microsoft KB unearthed this article: Troubleshooting HTTP 401 errors in IIS Common reasons • No authentication protocol (including anonymous) is selected in IIS. At least one authentication type must be selected. For more information, click the following article number to view the article in the Microsoft Knowledge Base: 253667 (http://support.microsoft.com/kb/253667/) Error message: HTTP 401.2 - Unauthorized: Logon failed due to server configuration with no authentication • Only Integrated authentication is enabled, and an older, non-Internet Explorer client browser tries to access the site. This happens because the client browser cannot perform Integrated authentication. To resolve this problem, use one of the following methods: • Configure IIS to accept Basic authentication. This should only occur over SSL for security purposes. • Use a client browser that can perform Integrated authentication. Internet Explorer and new versions of Netscape Navigator and Mozilla Firefox can perform Integrated authentication. • Integrated authentication is through a proxy. This happens because the proxy doesn't maintain the NTLM-authenticated connection and thus sends an anonymous request from the client to the server. Options to resolve this problem are as follows: • Configure IIS to accept Basic authentication. This should only occur over SSL for security purposes. • Don't use a proxy. Turns out our customer was using a Proxy Server - adding the FQDN of our Website component to the proxy exclusions list solved the problem.
With the move to Office 2007, I am relearning a lot of the UI - where things are etc. which is a real pain - not that I'm against change, just that it's lowering my productivity whilst I push all the Office 2007 into my head and let the Office 2003 stuff fall out... After using a suite of application that have not really changed the layout / structure of how to enable / start / engage specific features for 11 years (at least - going back to Off 95), you get really used to where things are.... Today I found myself wanting to 'Apply Conditional Formatting' to some cells in Excel. My immediate action (drilled into me from 11 years of using the Office suite) was to go to the 'Format' menu - ah no menu's in Office 2007... Lets look at the ribbon bar - not on the 'Home' tab - browse through the others - nope still cannot find it (and browsing through the ribbon bar icons/button is not an easy process - you really have to LOOK and digest what you are seeing). Was there a shortcut key for it in Office 2003 - can't remember (since verified there is not), so at this point I started on the route of 'ok lets add it as a button to the 'Quick Access' bar' - but, come on, that's not good.... I'm a great advocate of many of the things Joel says in terms of 'software usability and discoverability' (covered well in his book 'User Interface Design of Programmers' ) and am feeling the pain of 'Learned Helplessness' - here is Joel's great post on this whole area. I was thinking about the impact of such a radical change on a smaller organization (like the place I work - C2C). I have gone to great lengths to get the development team to read the aforementioned book and understand that our software must be easy to use and discoverable (because no one reads manuals). If we made such a radical change then the support guys would be swamped - it would be unmanageable. Doesn't happen that way with Microsoft, the average Joe doesn't have a support contract for Office.... I guess it's time I did some research and found if others are having this pain, what the options are and maybe even read the manual (buy a book).
I was really excited by the Blogging feature Word 2007 - It looked really good, easy to use and some of the formats you can do to a picture are pretty cool. As soon as I found it I tried to set it up with this dasBlog account - Word 2007 is supposed to support the metaWebLog API (which dasBlog supports from v1.9), so in theory it should have worked - however it didn't work fully. I could upload new blog posts but it didn't like the posting of images - in returned a message saying it was not supported and I should use FTP upload instead. I wasn't happy with this as the metaWebLog API has a newMediaObject method which allows for uploading of images etc and I know it is implemented in dasBlog (I think Omar Shahine added it).  Anyway, I emailed Joe Friend (the MS guy who originally posted about this feature of Word) - he has since moved on so couldn't help (in fact I think my email to him was the catalyst for his Email is now off post - oops)... The annoying thing is that Windows Live Writer supports the metaWebLog API implemented by dasBlog and can upload images fine.... Mmmmm, something not right here - taking things into my own hands, I cracked open Fiddler and compared the HTTP request / responses between a Writer posting and a Word posting. The Word postings always fail on the newMediaObject calls - here is a screenshot of the request / response from Word. Looks like Word is trying to pass the blogid parameter as an int and not as a string as the spec dictates... As far as I know, Word works correctly with MySpaces, Blogger and a few other blogging engines - maybe they are not as strict as dasBlog when checking the parameter types passed ?? I suppose I could write an HTTPHandler or something to convert that type description from an 'int' to a 'string'.
I'm not 100% sure about this but, from this status bar text, captured whilst Word 2007 was opening (slowly) it looks as though it is trying to check / connect to a printer when the application opens.
Not what I want when I'm working in a remote office and haven't yet changed my default printer.
Did previous version do the same ?
I've had Vista Ultimate on my Acer TravelMate 3012 laptop for about a week now. The experience is OK, but I'm not wowed.
I'm not really getting any benefits from Vista :-
- I had to turn off User Account Control (UAC) as it was just too annoying.
- My built in Logitech OrbiCam works intermittently (I have to disable it then re-enable it via the Device Manager).
- My HD Audio is no longer working (no audio at all from the laptop)
- I had to turn off the new Start Menu and go back to the old one (just couldn't get on with it)
- The new Aero UI is neat and fancy - but a tangible benefit ? not really.
- Windows Sidebar, handy, but I had it with Google Desktop Search a year ago and from other apps before then.
- Visual Studio 2005 has a number of known issues when running on Vista.
- I can't run Powershell on Vista (other than Vista RC1)
In general the system feels slower than WinXP, even though I have a Windows Experience Index of 3.0.
Having to wait for FileSave dialogs seems to be common to many apps now. I regularly get black screens for a few seconds while a window closes.
As a power user it worries me greatly that I not 100% sure where files are in the hierarchy - there is a lot of diverting / soft linking of directories going on and files seem to be ending up in places they just shouldn't be (even although it work correctly)
On the Up Side, I am loving the Snipping Tool - I think comes from the Tablet PC tools section of Vista Ultimate, but it really is great.
I used to use Cropper from Brian Scott, but the Snipping Tool is streets ahead. It allows me to take a snip of the whole screen, of just a window, of a (mouse or stylus) selected rectangular area or of a freeform selected area. As soon as I have the snip I can do some basic editing - just the job for graying out / overwriting of usernames / passwords etc.
All in all, I don't see any real benefit over WinXP. I think the benefits of a move to Vista will be a tough message for Microsoft to get across.
Even though I don't feel as productive with Vista (in comparison to XP) I'm going to stick with it and see how things are when I have been completely immersed for a few weeks and am used to it - watch this space for a further update...
| | |