Welcome to MSDN Blogs Sign in | Join | Help

Pieces of eight: Eight things to make Vista run faster on older hardware

I have an 'older' machine, a Toshiba M400. Vista isn't blazingly fast on this machine. Here are some things I've tried to squeeze more out of this laptop...

(Before you jump in, make sure you get the latest BIOS and Vista drivers for your model of laptop!)

1) Before you install Vista, replace the system drive with a new 7200 rpm drive suitable for your laptop. Make sure it has a decent disk cache on the drive (e.g. 8mb+). Something like a Seagate Momentus 7200rpm 2.5" laptop drive might be suitable, but check the dimensions and heat specs to be sure. This requires some simple screwdriver work to install. After installation of Vista, defrag your drive twice.

2) Make sure you have at least 2gb of system RAM.

http://blogs.msdn.com/steverowe/archive/2007/01/22/how-much-memory-does-vista-need.aspx

3) Match the system RAM with the same amount of ReadyBoost memory. Make sure you get a compatible USB stick because ReadyBoost is picky. Alternatively (and better), use a fast SD card, such as a 2gb Sandisk Extreme 3. I've been told that ReadyBoost gets better under Vista SP1.

4) Switch off Aero glass if your machine doesn't have the latest graphics hardware. You can do this easily by selecting a non-glass theme.

5) Take control of indexing. If you have large folders of email in Outlook 2007 (or 2003) or many files on your hard drive, switching off Windows Desktop Search is a drastic option to try:

Start – Control Panel – Admin Tools – Services – Windows Search – Stop, and Properties, Disable

http://www.itwriting.com/blog/?p=251

This is unworkable for me because I rely on Instant Search in Outlook 2007. Instead, I selectively removed file indexing so that only Outlook Instant Search is functioning (no file search). This seems to help performance:

Start – Control Panel – Indexing Options – Modify – uncheck everything except Microsoft Office Outlook

Indexing is CPU-intensive, so it might be better to put indexing on a periodic schedule instead of allowing it to run in the background.

It is difficult to pinpoint performance issues when Vista, Outlook and Windows Desktop Search are all involved. However, your Outlook mailbox size is worth examining. If you have a lot of mail, or you use Outlook for daily RSS feeds, these can swell the size of the Outlook OST (or PST) file. When this file exceeds 2gb, the amount of disk activity by Outlook increases significantly, impacting performance on many common mail and folder operations. There is a fix that alters Outlook's disk behaviour to improve this:

http://support.microsoft.com/kb/932086

Alternatively ... I suppose you could consider a different integrated search. I've heard about this one:

http://www.x1.com/

6) To eliminate the “Connecting...” delay in IE7, switch off the Links toolbar. For some reason, loading these links takes ages while IE7 looks for their icons. This made a lot of difference to my IE7 startup performance, which was driving me crazy.

http://www.vincentverhagen.nl/2007/02/13/ie-7-slow-starter

7) If you don’t really use it, switch off the Windows Sidebar on the desktop. Some people claim these gadgets take memory and other system resources. I only ran 2 clocks as gadgets which can also be achieved in the System Tray using the normal Windows Vista clock, so I switched off the Sidebar (see the Additional Clocks tab under Clock Properties).

8) Wait for Vista Service Pack 1, it's on the way. Meanwhile, be sure to allow Microsoft Update to run on your Vista machine, they are already delivering Vista performance fixes via this channel so things should just magically get faster.

I hope this helps someone else, these are some of the things I've been looking at. It's a very great pity to switch off the Vista cool stuff (like glass, search and sidebar) but on an older machine, some of the above might help Vista performance.

This posting is provided "AS IS" with no warranties, and confers no rights.

 

Outlook 2007: More is better?

I have just installed Outlook 2007 beta 2, because I'm keen to see what new things have been added, to help my work.

So far I haven't found too many changes of significance. This is what seems to stand out:

1) The UI has been 'gilded' - general changes to fonts and the chrome of the application, plus new views in most places. In some cases this is confusing because you can't find familiar things like the Save button on an open message! I am sure I will get used to this. This is part of the new Office look and feel.

2) Tasks due today. In the calendar view, you can now see tasks due at the foot of each day. This is nice - you can drag tasks around and see what has to be done without leaving the calendar. This is closer to how you use a paper diary (wonder why we don't copy this more closely?)

3) RSS feeds. I will be using this. It doesn't have a blog posting mechanism, only reading.

4) Busy!!! It's an extremely busy interface. Ugh. Take a look at the screen shot below, grabbed from my 14" laptop screen. I have deliberately blurred this so you can get a feel for the "information confrontation" which is the new Outlook experience. It's all about information density, and apparently More Is Better! It's amazing the amount of information Outlook pushes at you. There appears to be very little differentiation: what is more important or less important in all this data?

This is very significant. In my opinion, Outlook is an irony - a productivity tool which distracts and overloads. Outlook knows so much about me - my contacts, my activities, my communications - and yet it doesn't use this knowledge to guide what information should be given or hidden in a given context. Instead it just presents as much as possible. I want Outlook to present me with clarity and focus, not information overload. All of this is doubly ironic since Microsoft Research is studying concepts like "continuous partial attention" and attention being the new comodity.

What's missing in Outlook 2007?

Personally I think the big missing ticket is personal project management. Outlook still doesn't understand the idea of hierarchical tasks that contribute to an overall objective I'm trying to reach. This idea is in keeping with David Allen and Sally McGhee's work on getting things done (Sally's MS-Press book is full of ideas on this subject, but the new Outlook doesn't support her recommendations particularly well). Elsewhere there's a very unconvincing blog post by Melissa Macbeth on why better task management and personal projects were omitted from Outlook 2007. She recommends using Microsoft Project instead! Seriously? (I don't want to be mean to Melissa's blog, she does have useful content on using Outlook - worth a visit).

Overall first impressions of Outlook 2007 - not a huge amount of change, a busier UI with new chrome, daily tasks are nice. The lack of personal project management features leaves an open door for 3rd parties to make clean, uncluttered personal productivity software as a much needed add-on to Outlook, including hierarchical task lists like this. I'm in the market for such a product!

As I write this, I am reminded of that classic book by Alan Cooper (The Inmates Are Running The Asylum) which talks about how software UI design lost the plot about 10 years ago. A recommended read.

 

This posting is provided "AS IS" with no warranties, and confers no rights. Views expressed are those of the author and not of Microsoft. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

Posted by andrewdelin | 6 Comments

How to save an embedded sound object from Microsoft Powerpoint

This drove me mad, but the answer was simple.

If you have a slide with an embedded piece of audio (such as a narrated voice-over), it's not obvious how to extract that to a file. You can try to copy the object but it won't paste into Sound Recorder. And Powerpoint has no menu option to "Save media object."

The solution is to 'Save-As' the Powerpoint deck as a web page (you can choose to save a subset of the slides). Then you'll find the individual sound files in the sub-folder that contains the pieces (graphics, etc) of the web page. You can fetch your sound file from there. You may find there are two versions of each sound file, one in Windows Media Audio (WMA) and the other a wave file (WAV).

(Note that videos aren't embedded into Powerpoint, they are linked files. Also, while narrated sounds are embedded within each Powerpoint slide, other embedded audio files are only embedded up to 99kb - beyond this, they are linked files, just like video content. The idea is to prevent your Powerpoint getting too large. I think you can change this size limit under Options so that bigger sound files will embed directly into your slide deck.)

Hope this helps someone. Sometimes you have to work around the product to get what you want.

This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 

Posted by andrewdelin | 0 Comments

Project management: the same yesterday, today and tomorrow? Please nooooo...

I can't think of a more depressing thought than that software project management never becomes more productive nor predictable. Ever since I was first on a team that faced "big software failure" I have been keenly interested in this dance. It's something bigger than the coding and the design, invisible and yet tangible in its effects. This is why the Jim McCarthy videos are so funny and poignant (21 Rules of Thumb for Delivering Great Software on Time, 1995). This was why I became involved in MSF in 1998.

Thankfully, the face of software project management is changing because practical methodologies are being integrated into the dev tools. Effective methodologies are just collections of good practices, but when they are adopted by teams and enshrined in tools, they can make a difference to the software crisis that Brooks talks about ("The Mythical Man Month").

While there will never be a world of extreme programmers and we still need far greater automation in software production, nonetheless tools like Visual Studio Team System (VSTS) are a step in the right direction.

This could have a positive impact on businesses that adopt it. Francis Delgado of Avanade agrees.

Posted by andrewdelin | 0 Comments

Agile in the beginning: the Microsoft Solutions Framework circa 1993

I recently presented MSF v4.0 (alpha) at TechReady 2, Microsoft's internal technical training event in Seattle. This is the first time I've shared a stage with Bill - but not at the same time ;o)

Microsoft has a long history with the Microsoft Solutions Framework (MSF), which started back in 1993 -- that's a 12 year heritage! There aren't many frameworks that can claim to have added value to the development process for over a decade. I've been involved with MSF since 1998.

There have been some comments on the newsgroups that Microsoft invented MSF in recent times to badge its version of Agile which is present in Visual Studio Team System (VSTS). In fact, the original MSF from 1993 contains many Agile-sounding principles.

My friend Clementino Mendonca located the original MSF v1.0 guidance and highlighted some statements it makes, for example about design documents -- or the lack of them. If you read Agile authors you will hear refreshing statements like "Produce no document unless it's need is immediate and significant". Elsewhere you can read pieces on Agile that ask questions like, "Why do people document?" which suggest that teams should produce "barely enough" design documentation.

Back in 1993, MSF v1.0 was saying something very similar:

Why No Design Document?
The customer is rarely the intended recipient of a design document.  There are generally two uses for design documents:

• For purposes of management and communication between Development team members.
• To aid in maintenance and enhancement after release.

For purposes of management and communication between Development team members, the need for formal design documents is established by the Development Manager with his/her development team.  At Microsoft, design documents are developed when they are needed and, when memos, meeting notes, and interface specs are sufficient, time is not spent writing formal design documents.  "When they are needed" might be:

• Starting a new product.
• When team members are new to the company or to each other.
• When the design issues are complex.
• When there are too many developers on the project to ensure adequate communication otherwise.

Realistically, many corporate development projects have all of these characteristics, and a Development Manager should consider carefully a decision not to build design documents at some level.

For purposes of maintenance and enhancement after release, the best answer is to have self-documenting code and to generate any supplemental documentation automatically from the code itself.  Of course, interface and call diagrams are often indispensable.  A development manager should consider allocating time late in the development cycle if up-front design documentation is not critical.

extract from Microsoft Solutions Framework v1.0 - Solutions Development Discipline, 1993

So it seems that "agile thinking" isn't new: it's a bunch of good ideas, expressed in MSF and elsewhere. It would be interesting to trace the origins of the daily build and other good dev team practices. Who did it first?

This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 

Posted by andrewdelin | 2 Comments

Armchair Programming: writing a wildcard function (glob)

Programming is a bit like music - you can develop your skills while you're away from the keyboard. All you have to do is think! Recently I was wondering (in the shower, actually) how briefly I could write a wildcard function. So just as an exercise, I had a go... here's my attempt.

The aim isn't to implement grep or perl style globbing, but just a simple wildcard match on * and ? (something like SQL Server wildcards):

    *   means match zero or more characters
    ?   means match any one character

Because this is an exercise in brevity, not performance, my version is recursive. Can you write a shorter version in C++?


bool WildMatch (const char *patt, const char *str)
{
  while (*patt)
  {
    if (*patt == '*')
    {
      patt++;
      while (*str)
        if (WildMatch(patt, str))
          return true;
        else
          str++;
    }
    else if ((*str) && ((*patt == '?') || (*patt == *str)))
    {
      patt++;
      str++;
    }
    else
      return false;
  }
  return (!*patt) && (!*str);
}

This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 

Posted by andrewdelin | 2 Comments

Laser printing in stainless steel - from Excel!

I love the connection between abstract computing and the real world. I've had this fascination ever since 1986 when I built circuits to sample sound using an Atari 800. Plugging stuff together is what invention and integration are all about.

My buddy Matt and I are building some horn loudspeakers with a difference. These are based on the Cornu / Poiram design which mounts four concentric spiral logarithmic horns behind a single loudspeaker driver. This design means you get small, wall-hanging speakers with great sound. I first heard about this design from FullRangeDriver.com who have lots of committed speaker enthusiasts. We are using Fostex FE108 drivers, supplied from Madisound who were cheaper to buy direct from the US than in Australia.

This is what the Cornu speakers, designed by Daniel Ciesinger, look like (click the photo to visit his site):

In Feb 2004, there was a competition in Quebec to build the nicest sounding speakers around the Fostex 103 driver. There were some very fancy entries, but Poiram's simple back-loaded horns were a winner. His design essentially copies the Cornus above. This is what the Poiram speakers look like inside:

Our speakers will be similar to the above, ie 650mm square and 150mm deep, so they can be wall mounted. Our internal spirals will be 2mm polycarb (Poiram seems to use aluminium!) which fits into tracks cut into the wood. You can't just put any old horns together -- the length, mouth and throat size need to be calculated to match the loudspeaker. We used the excellent HORNRESP from David McBean to do this.

Initially we tried to create the speakers by hand, using a home-made metal arm to cut spirals into timber with a router. Matt devised a geometric way to plot spirals using a compass but with a router attached in place of a pencil! The compass was a smart idea but it proved very slow work and we broke some router bits in the process (cheap tools waste time). We didn't like the inaccuracy and realised we needed to cut 128 arcs for one pair of speakers - very tedious.

I wrote about our first attempts here. Matt and I both agreed this was too hard -- and being computer people, there had to be another way...

Enter Excel!

I spent many hours creating a spreadsheet and after four major revisions we had 7000 points of data describing the progression of a 2.4 metre spiral in millimetres.

The great thing about Excel was being able to verify the appearance of the spiral by simply charting it (see below). It was easy to check the length of the spiral and its ability to fit inside a 650mm square. Another reason we abaondoned the compass method above was because it was only capable of producing a spiral with a single expansion coefficient, whereas using a spreadsheet allows us to produce spirals that increase in radius with any logarithmic coefficient we like. Excel's goal-seek and solver add-in tools were critical in managing several parameters at once - the growing spiral length, the moving angle, the number of turns of the spiral, the box size. Try doing this on your own and it does your head in!

We then exported the Excel data into RibbonSoft's qCAD, a cheap and capable 2d CAD tool ($40 AUD). Matt exported our plot data as CSV and turned it into LINETO(x,y) instructions using a FOR statement in a cmd shell! These instructions were then consumed by qCAD and we exported the result into DXF format (AutoCAD R12) and sent it to a local laser cutting shop (ComputerCut).

They charged us about $100 to laser cut our spiral into 0.9mm stainless steel:

Now THAT'S what I call laser printing! I reckon you could get seriously addicted to doing this!

We made two of these templates, one for a 650mm box and another for an 814mm box (for deeper bass).

The next step of the project is to make a 20mm collar to run around the spiral track, which should allow us to guide the router around the timber and cut a very accurate spiral track for our polycarb strips to sit in. We will place the steel template on the timber and cut one spiral, then turn 90 degrees and cut another, until we have four concentric spiral tracks. This should make life much easier, and we can make several pairs of speakers. We have purchased a high quality router bit this time.

We will probably continue this project in 2006, I will blog more if it's of interest? Welcome any comments. Sorry there's no code - but I thought it was an interesting use of Excel.

This posting is provided "AS IS" with no warranties, and confers no rights. Use of any included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 

Posted by andrewdelin | 1 Comments

Outlook SQL DASL syntax - an update

Here's an update to my previous blog entry on Doing more with Outlook filter and SQL DASL syntax.

I had some great feedback from my previous posting, there is obviously a need for more information about how to "do stuff" with Outlook filters.

Special thanks to Patrick for a very useful message, which showed me how to use dynamic dates in Outlook filter queries. Previously I thought this was impossible! Patrick's trick (:o) is to use the today(S) function with a parameter in seconds (S). The parameter gives a positive or negative offset from today and can be used to check the Due Date of tasks (or any other date test you like).

Here is Patrick's example which he uses on the Tasks folder:

(
 ("
http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/811c000b" = 0)

 AND

 (NOT("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81050040" IS NULL))

 AND

 ("http://schemas.microsoft.com/mapi/id/{00062003-0000-0000-C000-000000000046}/81050040" <= today(864000))
)

When applied to a task folder, this shows 'not completed' tasks that have a Due Date set in the next 10 days from today.

This same technique should be useful for filtering on received date (etc) on email folders and others.

Here's another tip. Finding articles about Outlook Filter programming is tricky, but if you search for one of the following using MSN Search or Google, you will find several articles to check:

  http://search.msn.com/results.aspx?q=81050040

  http://search.msn.com/results.aspx?q=811c000b

These numbers come from the XML schema for the Outlook SQL syntax. Sometimes using a very specific identifier in this way can deliver accurate hits.

My previous blog entry is here (Doing more with Outlook filter and SQL DASL syntax).

If you try any of these ideas, please be sure to test the results thoroughly.

-AD

Technorati profile

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 

Posted by andrewdelin | 2 Comments
Filed under:

Doing more with Outlook filter and SQL DASL syntax

When I returned from an overseas trip earlier this year I needed to hack through a pile of emails that had accumulated. So I explored the Outlook filter search syntax (DASL) to see what could be achieved.

(I am using Outlook 2003. I know some of this works with previous versions of Outlook.)

Firstly, I recommend you add the [Filter...] button to a toolbar in Outlook. To do this, right-mouse-click on an empty area of the toolbar area at the top of Outlook, and select Customize from the menu. Pick the Commands tab and then select View in the Categories list. On the right, scroll down the Commands list until you see 'Filter' and then drag this entry up, up and away to a toolbar spot where you'd like it. You should now have a Filter button in your toolbar at the top of Outlook. You can close the Customize dialog.

The Filter dialog is a somewhat hidden but powerful tool for finding all kinds of Outlook items. It is organised as four tabs: Messages, More Choices, Advanced and SQL. I recommend you play with this dialog if it's not familiar to you. When you apply a Filter on a folder, you will see a small legend above your email (on the right) saying 'Filter Applied' - a hint that not all items are being shown! You use the Clear All button in the Filter dialog to remove the filter so you can see everything again.

I prefer to use the Advanced and SQL tabs of the Filter dialog because you can establish very specific queries that meet your needs. You will need to check 'Edit these criteria directly' to enter SQL queries. Switch to the SQL tab and try the following.

 

Examples

To find email from a specific person (for example, your manager), try this:

  "urn:schemas:httpmail:fromname" LIKE '%Gerard O''Driscoll%'

Note the use of double ' which escapes the apostrophe in the name.

 

To find all those Declined, Accepted and Tentative meeting responses, try this:

  NOT "http://schemas.microsoft.com/mapi/proptag/0x001a001e" = 'IPM.Note'

This finds stuff that isn't email. I found this useful on both Sent Items as well as Inbox.

 

To find items that weren't sent directly to me, try this:

  NOT
      ("urn:schemas:httpmail:displayto" LIKE '%Andrew Delin%'
    OR "urn:schemas:httpmail:displaycc" LIKE '%Andrew Delin%')

This shows items where I am not on the To: line nor the Cc: line.

 

To show items that you haven't read:

  "urn:schemas:httpmail:read" = 0

You either haven't read these items, or you have marked them Unread again.

 

This appears to find mail that came from outside Microsoft:

  NOT "urn:schemas:httpmail:fromemail" LIKE '%microsoft%'

You will need to change the company name in this filter for your own details, and test thoroughly. It may not behave the same way.

 

This seems to find internal mail (from within Microsoft) which wasn't addressed to me:

  "urn:schemas:httpmail:fromemail" LIKE '%microsoft%'
  AND NOT
    ("urn:schemas:httpmail:displayto" LIKE '%Andrew Delin%'
    OR "urn:schemas:httpmail:displaycc" LIKE '%Andrew Delin%')

Note I am checking both To and Cc addresses. To try this, you'll need to substitute your company name in the first clause. And test that it works.

 

It would be nice to find emails that have attachments. BUT:

  "urn:schemas:httpmail:hasattachment" = 1

-this DOESN'T work the way you expect, because it seems in-line pictures embedded in certain email formats are considered attachments :o(

 

Looking for items with normal or low priority:

  "urn:schemas:httpmail:importance" <= 1

 

Items with no flag set:

  NOT "urn:schemas:httpmail:messageflag" > 0

Take care with flags, because it appears more than one attribute composes the email flag functionality. You can for example test for specific color flags being set; this tests for Purple flagged items:

  "http://schemas.microsoft.com/mapi/proptag/0x10950003" = 1

And this looks for NO color flag being set:

  NOT "http://schemas.microsoft.com/mapi/proptag/0x10950003" > 0

Beware, because I found that  "NOT ... > 0"  is not the same as  "= 0". With the latter, you won't get the list of unflagged items you might expect.

 

Email sent to one of the groups (distribution lists, DLs) which I belong to:

  "urn:schemas:httpmail:displayto" LIKE '%Australia Consulting%'
  OR
  "urn:schemas:httpmail:displaycc" LIKE '%Australia Consulting%'

This tests both the To: and Cc: address fields. Note this is the long name of the group, not the short alias name (8 characters). You could easily add more tests to make a filter that shows 'emails to Australian groups I belong to'.

 

To find email items you have replied to, you might attempt a field query like "Tracking Status equals Replied" which produces this syntax in the SQL tab:

  "http://schemas.microsoft.com/mapi/id/{0006200B-0000-0000-C000-000000000046}/88090003" = 7

BUT I found this DOESN'T work because email tracking is usually disabled between Outlook and Exchange, to reduce sync overhead (this was the feature where Outlook recorded that you had replied to individual items). Instead, a reasonable proxy for this is to look for Inbox items which contain your name in the body of the mail (when you reply, the mail client inserts something like  From: Andrew Delin  in the body):

  "urn:schemas:httpmail:textdescription" LIKE '%Andrew Delin%'

 

Putting it all together

Unread items received last month, not sent directly to me:

  NOT
    ("urn:schemas:httpmail:displayto" LIKE '%Andrew Delin%'
    OR "urn:schemas:httpmail:displaycc" LIKE '%Andrew Delin%')
  AND
  %lastmonth("urn:schemas:httpmail:datereceived")%
  AND
    "urn:schemas:httpmail:read" = 0

 

Non-urgent Inbox mail from inside Microsoft which is 3+ months old, not flagged, not addressed to me, and which is either 'unread' or which I didn't reply to (proxy):

  "urn:schemas:httpmail:fromemail" LIKE '%microsoft%'
  AND
  "urn:schemas:httpmail:importance" <= 1
  AND
  "urn:schemas:httpmail:datereceived" < '1/02/2005 12:00 AM'
  AND NOT "urn:schemas:httpmail:messageflag" > 0
  AND NOT
    ("urn:schemas:httpmail:displayto" LIKE '%Andrew Delin%'
    OR "urn:schemas:httpmail:displaycc" LIKE '%Andrew Delin%')
  AND (
    "urn:schemas:httpmail:read" = 0
    OR
    (NOT "urn:schemas:httpmail:textdescription" LIKE '%Andrew Delin%')

  )

If you want to try this, update the date constant (see datereceived) to something appropriate, as well as changing %microsoft% to your company and removing my name! Please test the result thoroughly.

 

Views

Once you have some queries you like, you can define these so they're available in your Views drop-down list. To create a new view, use the View menu / Arrange By / Current View / Define Views / New button. Choose 'Table' and then you'll see several buttons to setup the View, including Filter - which you'll recognise as the same dialog from above. Enter your carefully crafted syntax and the filter will activate whenever you select this view on your folder. I have defined views for my main group memberships and external email so I can quickly filter my Inbox.

 

Other notes

Be patient with the Outlook Filter dialog. Sometimes you need to use Clear All then OK to get the full list of items to appear in your Inbox, before trying another filter query.

I found it was important to test my filter expressions carefully. Sometimes 'NOT' doesn't produce the opposite list of what you're seeing, and some fields aren't populated the way you expect (for example, there are several flag attributes - see above; there are also a number of similar-sounding email address fields to check and you may not get the results you first guess at).

A syntax reference for using DASL through the Outlook filter isn't easily found. I tried looking in the Exchange SDKs and while I got a list of attributes, it wasn't very Outlook-friendly. For example:

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/wss/wss/_exch2k_urn_content-classes_message.asp

There's also a list of Outlook IPM message types here, if you want to search for specific mail item types (eg Meeting requests):

  http://msdn.microsoft.com/library/default.asp?url=/library/en-us/olfm11/html/rerefaboutitemtypesmessageclasses_HV01044391.asp

I did find some bits in Thomas Rizzo's book on pages 197 and 701 ("Programming Microsoft Outlook and Microsoft Exchange 2003").

If you want to do date dynamic date calculations in Outlook filters, you will need to use the today(S) function with a positive or negative offset in seconds. I have written about this here (thanks Patrick!). Otherwise there is a fixed set of date functions like '%lastmonth' or you can enter literal dates such as <= '1/1/2005 12:00 AM'. Here is a list of these fixed date functions - for the syntax, just use the Advanced tab in the Outlook Filter dialog, and add the mail field called 'Received' (Outlook will display something like 'Received yesterday|today|tomorrow|in the last 7 days ...' etc. If you switch to the SQL tab, it will show you the syntax to use.

  %yesterday
  %today
  %tomorrow
  %last7days
  %next7days
  %lastweek
  %thisweek
  %nextweek
  %lastmonth
  %thismonth
  %nextmonth

 

I hope the above helps. If you try any of the above ideas, please be sure to test the results thoroughly.

 

This posting is provided "AS IS" with no warranties, and confers no rights. Use of included script samples are subject to the terms specified at http://www.microsoft.com/info/cpyright.htm

 


 

Posted by andrewdelin | 8 Comments
Filed under:

Bug with Tablet PC snipping tool and Office 2003 DRM (Digital Rights Management)

There appears to be a bug or short-coming with the very useful Snipping Tool that comes with the Tablet PC powertoys (Microsoft Powertoys for Windows XP Tablet PC Ediition.)

It seems that the Digital Rights Management functions (DRM) in Office 2003 are bypassed when using the Snipping Tool - which is a pity. This means you can open a super secret restricted document - which you can't usually forward or print - and grab a picture of it without restriction.

See picture here - take a close look:

You can see this is a protected document (see the restricted sign top-left), but the Snipping Tool allows me to take a screen grab nonetheless. Maybe a future version of the Snipping Tool will fix this? If so, I claim to have helped this!

Postscript: Some might contend that no document is really secure if it appears on a screen - after all, you can always take a digital photo of what you see (or even put your CRT on top of the photocopier and grab a copy!). And of course, you can always install a third-party screen grabbing tool which does not honour Office DRM. However, the Snipping Tool mentioned above is a "killer app" for the Tablet PC and it's a public download from Microsoft. So arguably we should make reasonable efforts to respect DRM in this useful tool which might be included in standard Tablet PC build images.

I love the potential of the Tablet PC - see my other post about its goodness.

Technorati Profile

Posted by andrewdelin | 1 Comments
Filed under:
 
Page view tracker