Should we spend less time discussing software bugs?

Is there a vague possibility that the technical community spends too much time complaining about software bugs? This rather startling proposition came up during a discussion with Paul Cunningham, of ExchangeServerPro fame.

Paul remarked that we seem to spend a lot of time finding bugs, reporting them, checking for workarounds, and describing them in blogs and other social media, all of which takes away from the normal work of IT professionals. He then wondered whether “it had always been this way?”

The simple answer is that it hasn’t. Although we might consider current software releases to be flawed, previous software was equally if not more flawed. For example, Exchange 2000 was a perfectly horrible release that combined with Windows 2000 and the first iteration of Active Directory to deliver a horrific deployment experience for anyone who had to upgrade from Exchange 5.5 and Windows NT 4.0. But the flaws (and there were many) of Exchange 2000 never received the kind of full-on publicity that Exchange 2013 gets today.

In fact, ten or fifteen years ago, news coverage tended to concentrate on features rather than problems. Limited communications and restricted outlets for discussions forced correspondents to focus on new functionality rather than bugs. Magazines weren’t interested in publishing in-depth articles about flawed features – it took them far too long to get an article through the publishing process and a fix might have been made available before the article appeared. And anyway, advertisers weren’t interested in publications that discussed problems – they wanted articles about new and exciting technology and “how-to” features to explain how to put the technology into action. Selling print ads was very important then.

Today, it’s all about page views as online magazines, blogs, forums, and other media jostle for prominence in a crowded Internet-centric marketplace. News appears fast and bad news is good for page views, so many articles are devoted to the exposure of flaws in products from mobile phones to laptops to enterprise software. Reports are written up in articles and blogs and flash messages are sent to the world via Twitter, Facebook, Yammer, and Google+ to let people know that new information is available. The news is subsequently explored, interpreted, updated, discussed, and generally dissected ad nausem.

Some of the exposure is good. For example, letting people know about potential security holes is absolutely the right thing to do. Calling companies to account when they let flawed and incomplete products into the market also delivers a service to the industry as it enables customers to make better buying decisions. But I sometimes wonder if those of us who write about IT sometimes make far too big a deal of bugs.

All software has bugs and all products will eventually expose their bugs to users. The question is whether the bugs that are discovered are important or not. I think that the best articles on bugs provide an analysis of why the bug has appeared, what it means in practice, and whether any workarounds exist. These articles help users to understand the impact of a bug in the context of their IT operations and decide what action they should take. Perhaps they can proceed with deployment or maybe they have to wait for a hot fix or software update. In either case, the decision is made in a state of knowledge.

I despair when I see a blizzard of “me too” posts appearing like a rash across blogs, all faithfully reporting the discovery of a new bug without adding an iota of intelligence or analysis to the debate. Too many people rush to publish without thinking about why a bug has appeared and what its impact might really be.

But software vendors don’t help themselves when they push software out that contains obvious bugs that should have been picked up during testing. These are the worst kind of bugs because customers expect that vendors will test their products thoroughly before release and depend on the quality of the testing to know when a product is ready for deployment. No customer can hope to be able to test a product in the same way or depth as a major software vendor as they don’t have the staff, the tools, or the expertise. So we need products to be released when they are ready and validated through testing and not to make an arbitrary date set by senior management or marketing.

Perhaps we should spend less time discussing some bugs (important bugs will always be visible) and more time thinking about the best use of technology to solve business problems. That, after all, is the real aim of the IT game.

Follow Tony @12Knocksinna

About these ads
Posted in Technology | Tagged , , | Leave a comment

Outlook 2013 and site mailboxes

Although the new-and-interesting Office 365 Groups have taken some of the shine and luster off site mailboxes in terms of the collaboration options that are now available in Office 365, some companies have site mailboxes deployed because they like the way that site mailboxes exploit Exchange mailboxes and SharePoint document libraries (for the 2013 on-premises versions or their cloud equivalents). I’ve used site mailboxes productively for project-level collaboration in the past. The big advantages offered by site mailboxes over Groups are that:

  1. Site mailboxes can be used in on-premises deployments, including hybrid deployments if both SharePoint libraries and Exchange mailboxes are on the same platform (cloud or on-premises). Groups are not currently available for on-premises deployments. The earliest that they might appear is in Exchange 2016, due in the 2nd half of 2015.
  2. Site mailboxes are accessed through Outlook 2013 rather than Outlook Web App (OWA), which is the only client supported by Groups. However, you must deploy the Professional Plus version of Outlook 2013 if you want to use site mailboxes.

Outlook 2013 can open a maximum of ten site mailboxes. This might seem an arbitrary number because it is possible that someone might contribute to more than ten projects at one time, but some good sense lies behind the limitation. First, there’s the question of usability and screen real estate. Every site mailbox requires a certain amount of space to be displayed in Outlook’s list of available resources alongside a user’s primary mailbox, perhaps an archive mailbox, some favorites, and maybe even a PST or two. In short, the resource list can be a pretty cluttered space even without site mailboxes.

And then there’s the question of performance. Every site mailbox that Outlook has to open requires memory to map the folders and items held in the mailbox. Allowing Outlook to open more than ten site mailboxes might exhaust some system resource and cause slow performance. Ten seems like a reasonable compromise between functionality and preventing site mailboxes becoming a drain on system performance.

So what happens when you fall into the happy category of being so busy with so many projects that you are a member of more than ten SharePoint sites that include site mailboxes? The answer lies in the “Manage All Site Mailboxes” option that is revealed when you right click on the account name in Outlook’s navigation pane. This option forces Outlook to open the “my site mailboxes” page that is actually under the control of Exchange as evident with its URL (usually something like You can use this page to decide which of your site mailboxes should be displayed in Outlook. It’s as simple as that. The changes that you make will be effective as soon as Autodiscover publishes details of the new set to Outlook either the next time you start the client or as a result of its regular 15-minute refresh.

If you’re still struggling with the finer details of an Exchange 2013 deployment and can’t yet face into deploying SharePoint 2013 so that site mailboxes can be used, why not consider signing up for an Office 365 test domain? Apart from letting Microsoft do all the heavy lifting to install and configure Exchange and SharePoint, this approach is a great way to establish a sandbox environment where you can test new features, including site mailboxes, at your leisure.

Happy collaboration!

Follow Tony @12Knocksinna

Posted in Email, Exchange 2013, Outlook 2013 | Tagged , , , , | 3 Comments

Good and bad in the new Outlook for Mac

Being an Office for Mac 2011 user is sometimes hard. Really hard. And not just because Office for Mac 2011 is so far behind its Windows counterpart in terms of functionality, it’s also because its applications like Outlook for Mac 2011 looks so outdated and horrible. In the case of Outlook, it might be on a par with the Outlook 98 design. Thankfully, I only have to deal with the horror when my wife has a problem with Outlook for Mac, which is approximately every two days. I get lots of practice at sorting out Outlook for Mac problems.

So I was pretty happy to learn of the October 31 announcement that Microsoft will ship a new version of Office for Mac in the second half of 2015 with a beta version available to the public in the first half of 2015. The way things are lining up, it seems like Microsoft is finally synchronizing Office for the Mac and Windows platforms in the Wave 16 releases, which would be a good thing.

The same announcement contained the news that a new version of Outlook for Mac is available, but only for Office 365 customers. Still, that’s not too bad because I have an Office 365 tenant domain and my wife’s mailbox is in the cloud, so off I went to examine the details of the new software. Interestingly, although Microsoft is providing the software to Office 365 customers, there’s nothing to stop you connecting it to an on-premises server. Or if you really must, you can use IMAP4 to connect to other popular email services such as Gmail.

Obviously, Outlook for Mac will always be different to Outlook for Windows. There’s the slight matter of protocols for a start, where the Mac software uses Exchange Web Services (EWS) while Windows continues to use MAPI, albeit the new-improved-and-all-round-better MAPI over HTTP in the newest iteration.

EWS is great, especially in the hands of a real expert such as MVP Glen Scales, whose blog is replete with examples of how EWS can be used to examine, extract, and manipulate mailbox contents. But a nagging doubt always exists in my mind that EWS must surely lag MAPI in some respects. After all, MAPI has been around for so long that EWS must still miss some MAPI features that it has to implement. Or so the urban myth goes.

Leaving protocols aside, the good news is that the new Outlook for Mac looks much better than the 2011 version. I don’t think it is a case of applying a better type of lipstick on a pig (a difficult task if you contemplate what actually has to be done to make the lipstick stick on the pig). It’s actually a better look and feel that is ascetically pleasing. At least it is to me.

I’m less enthused by the list of updated functionality. The highlights as published in Microsoft’s blog post (together with some commentary from me) are:

Better performance and reliability as a result of a new threading model and database improvements. Sounds good. And as Paul Robichaux describes in his article about Outlook for Mac, the improvement is noticeable.

A new modern user interface with improved scrolling and agility when switching between Ribbon tabs. Good. Welcome. Great.

Online archive support for searching Exchange (online or on-premises) archived mail. At last some support for archive mailboxes appear five years after their introduction in Exchange 2010… but to be fair to the developers, EWS support for archive mailboxes was needed first. And BTW, the support is not only for searches as mentioned in much of the press coverage – it really means access to archive mailboxes from Outlook for Mac for the first time, albeit with the bizarre caveat that you cannot drag and drop folders from your primary mailbox to the archive. Paul also notes that the archive mailbox has to be on the same platform as the primary, which seems like a pity as many hybrid scenarios are ruled out.

Master Category List support and enhancements delivering access to category lists (name and color) and sync between Mac, Windows and OWA clients. Which is what you’d expect – but seriously, it’s amazing how the small points in user interface design are so important.

Office 365 push email support for real-time email delivery.  I thought that Outlook for Mac 2011 had real-time delivery but then found that it really wasn’t. I assume Outlook is now using the same notification mechanism that pushes email to OWA for Devices clients but maybe not!

Faster first-run and email download experience with improved Exchange Web Services syncing. Sounds good and appears to be accurate.

Although undoubted improvements are in the list it’s a poor set to put before faithful Outlook for Mac users who have waited so long for a new version. And it’s still not feature-comparable with Outlook for Windows. Where is the support for site mailboxes (possibly of little interest to most, but supported in Outlook 2013) for instance? Or MailTips? Or DLP policy prompts? Or retention policy details? Or the slider to allow control over how much offline data is cached on the Mac? Or PSTs?

Hmmm… there are many Outlook for Windows features that have been around for quite a while and the developers should know about. In particular, it’s hard to know why the useful policy tips have been excluded. On the plus side, it’s good that Outlook for Mac now supports the write-once use-on-many platforms model for Outlook apps.

My summary is that the new version of Outlook for Mac boasts a pleasing interface that is a lot better than its predecessor without delivering the functionality that would allow it to stand beside its Windows cousin. That being said, a lot of time will elapse between now and the second half of 2015 so there’s hope that the final version of Outlook included in Office for Mac 2016 will be better.

Follow Tony @12Knocksinna

Posted in Cloud, Email, Exchange 2013, Office 365 | Tagged , , , | 3 Comments

Exchange Unwashed Digest – October 2014

October 2014 was an interesting month for my “Exchange Unwashed” blog on I had the chance to write about some new technology (Delve), old technology (Exchange 2003 mega-clusters), bad technology (Chrome bugs), and current technology (various posts). All in all, a pretty productive month.

Azure beckons for Exchange DAG witness servers (Oct 31): Microsoft let the cat out of the bag at TechEd Europe and told us that they will support placement of a witness server for a DAG on Azure from January 2015 onward. This will be of interest to folks who have to design and implement stretched DAGs, which is nice, but not perhaps of much interest to anyone else.

Office Delve, Exchange mailboxes and even perhaps public folders (Oct 30): This was my second post to cover Office Delve in the month. This time round I wondered what information Delve might be able to extract and display from Exchange mailboxes, including shared mailboxes, site mailboxes, group mailboxes, and even (gasp!) public folders.

Pondering the connections made by Office Delve (Oct 28): Office 365 tenants can now use Delve to explore “connections” made to information that might be of interest to them. The connections are made by the Office Graph, which explores “signals” extracted from sharing information in SharePoint and OneDrive for Business (plus a little Exchange). But how are those connections made and what do they mean? Read on…

The fallacy of the workstation File Share Witness (Oct 23): It’s always good to be able to debunk an urban myth. In this case it’s the attempt by some to argue a case that a Windows workstation could be used to host a witness share for an Exchange DAG. An interesting exercise in technology perhaps, but it kind of undermines the whole high availability thing, don’t you think?

Appointments reappear in OWA calendar as one Chrome bug is fixed (Oct 20): I have been on a small crusade to point out the places where Microsoft and Google could work together better to fix Chrome and make it a browser that is fully usable by Outlook Web App. One bug introduced in Chrome 38 is fixed, but there’s still work to be done…

Why Exchange Online now preserves BCC and DL information in message headers (Oct 16): This post is a little geeky because few people probably care about how Exchange preserves information about BCC and distribution group addressees for messages. But those who deal with the immutability and preservation of messages find this kind of stuff terrifically interesting because they might have to prove the provenance of a message in a law case. The condensed story is that Office 365 doesn’t allow its mailboxes to be used as a journal destination so they had to come up with another way to preserve messages. This is it.

Microsoft turns off the last public folder in their internal Exchange deployment (Oct 14): Awww… a deployment which began in 1996 comes to a natural end as Microsoft removes its last public folder. But the real news is that they had to replace public folders with multiple technologies. That might or might not be feasible for paying customers.

Exchange: the gateway drug to the cloud (Oct 10): Satya Nadella thinks that Exchange is the application that will make companies move to the cloud, specifically to Office 365 (although you could move to clouds operated by other hosting companies too). I think there’s a reasonable amount of truth in this stance and in fact it’s a case of history repeating itself as Exchange 4.0 proved Microsoft’s enterprise application credibility some 18 years ago…

Google Chrome and Office Servers – the continuing saga (Oct 9):  More on my Chrome crusade with details of just how the problems affect users and why Microsoft and Google seem to be screwing up together when they should be really co-operating much better.

Email and the evolving state of Office 365 collaboration features (Oct 7):  Atos has been trying to reduce the amount of email that employees receive for a few years, perhaps (not being cynical at all) because they sell a collaboration platform that they’d really like their people to use. All of which leads us to a discussion about the collaboration features that are available to Office 365 users, like Yammer, and SharePoint, and even Exchange. Since I published this post, I published an in-depth article on Office 365 Groups that explains how to use this new feature.

A personal view of the HP split (Oct 6): I have a certain history with HP that allows me to have some insight into how corporate planning and direction occurs in Palo Alto. The news that HP plans to split into two companies came as no real surprise, but I had a view on it…

Memories of Microsoft IT’s 7-node mega-Exchange 2003 cluster (Oct 2): Ten years or so ago we were all terribly impressed when Microsoft told us about their 7-node mega-cluster at events like TechEd and MEC. That was then… has much changed since?

Upwards and onwards into November to see where technology brings us…

Follow Tony @12Knocksinna

Posted in Exchange, Exchange 2013, Office 365, Technology | Tagged , , , , , , , , , | 2 Comments

How to report spam that arrives in Office 365 to Microsoft

Ten years ago, Bill Gates told the World Economic Forum that the problem of spam would be solved within two years (by 2006). To be fair to Gates, he also noted that his predictions have not always been on the mark. I guess his views on the demise of spam fall into the “not accurate” because it still exists today. At least, I certainly receive my fair share of offers to join dubious projects to share money, buy different pills, or meet people that I really would prefer to avoid.

But if you’re an Office 365 user, you can help by letting Microsoft know about spam that manages to get through to your Inbox. The techniques used by spammers to defeat defenses evolve and morph all the time and the anti-spam developers have to run to keep pace with new threats. Sending Microsoft examples of spam helps the developers to figure out the characteristics of the message that allowed the spam to get past anti-spam checks. Here’s what you need to do.

Viewing message properties

Viewing message properties

Microsoft has a junk mail reporting add-in for Outlook that you can install and use. If this isn’t possible, you can use the following steps to report a message with Outlook 2013:

  • Open the spam message
  • Click File to go to the “backstage” area.
  • Click Properties to reveal the header information (see above)
  • Copy the Internet headers (CTRL/C).
  • Close the message.
  • Create a new message to forward the spam data (including a copy of the original mesage) to Junk at Office365 dot Microsoft dot com. This address is monitored by Microsoft’s anti-spam team.
  • Paste the details of the message header that reveal the path the message took to your Inbox into the message body and then send the message.

Other clients will have different methods to expose the message headers. The important point is to provide these details to Microsoft as they help to understand how the message was transferred from server to server from origin to final delivery. The information will look something like the extract shown below:

Received: from ( by ( with Microsoft SMTP
Server (TLS) id 15.0.1054.13 via Mailbox Transport; Wed, 22 Oct 2014 09:14:43
Received: from ( by ( with Microsoft SMTP
Server (TLS) id 15.0.1054.13; Wed, 22 Oct 2014 09:14:42 +0000
Received: from (2a01:111:f400:7e04::154) by (2a01:111:e400:8814::50) with Microsoft
SMTP Server (TLS) id 15.0.1054.13 via Frontend Transport; Wed, 22 Oct 2014
09:14:42 +0000
Received: from ( by ( with Microsoft SMTP
Server (TLS) id 15.0.1049.20 via Frontend Transport; Wed, 22 Oct 2014
09:14:41 +0000
Received: by with SMTP id ar1so3021765iec.38

The MessageHeaderAnalyzer app (for Outlook 2013 and Outlook Web App) is also a useful way to view message header information. However, the easiest way to get the information needed by the anti-spam team is to extract it as explained above.

Viewing message header information for spam with the MessageHeaderAnalyzer app

Viewing message header information for spam with the MessageHeaderAnalyzer app

I doubt that spam will go away anytime soon. The only way to keep it under some form of control is to make sure that those who are responsible for blocking spam know about how it gets through. Helping them by reporting spam is a good way for you to contribute to the fight.

Follow Tony @12Knocksinna

Posted in Email, Office 365, Outlook 2013 | Tagged , , , , | 8 Comments

AQS and KQL: Two query languages for different versions of Exchange

Exchange 2010 uses AQS (Advanced Search Syntax) to construct its discovery searches. Exchange 2013 takes a difference approach and uses KQL (keyword query language). Why the change?

AQS is shared with other Windows search components such as Windows Desktop Search. As explained in my article “Exchange searches are limited to certain item types”, Exchange 2010 only supports a subset of the full AQS capabilities. On the other hand, KQL is shared with other Office 2013 applications, the most important of which is SharePoint 2013 because the two applications can form a single discovery domain across the email stored in Exchange and the documents held in SharePoint.

Giving Exchange and SharePoint a common search syntax makes a heap of sense. Another advantage is gained in that KQL is able to perform “proximity searches”. Take the situation where you want to search for items that mention the words “Azur project” and have the word “bribe” somewhere close to those words. AQS can certainly find anything that includes “Azur project” AND “bribe” but it can’t find “Azur project” with “bribe” within 30 words (in KQL syntax, the word “bribe” is NEAR (n=30) the other phrase). As you can imagine, this capability could be very useful in searches that start out being somewhat imprecise because you’re not quite sure about what you’re looking for. It’s true that searches like this might throw up more results than you are able to deal with on a practical basis, but they could provide a hint as to how searches might be refined to hone in on the critical items.

You don’t need to deploy SharePoint 2013 and Exchange 2013 together to be able to use KQL, but if you do, the searches will uncover information stored in site mailboxes, modern public folders (but not their older equivalents), normal user mailboxes, and other SharePoint sites – and Lync conversations and other interactions if you deploy Lync 2013 alongside Exchange 2013.

Deployed alone, Exchange 2013 is quite capable of using KQL for Exchange-specific multi-mailbox searches executed through the Exchange Administration Center (EAC) console. The only dependency is on the content indexes generated from Exchange mailbox databases by Search Foundation. These content indexes are populated through normal user activity and as the Mailbox Replication Service (MRS) moves mailboxes over to Exchange 2013 servers. You’ll still have to use the Exchange Control Panel (ECP) to perform the older AQS-style searches for mailboxes that remain on Exchange 2010 and then combine the results of both searches by exporting content from both searches to a common discovery mailbox.

You might expect the Search-Mailbox cmdlet to use KQL when executed on an Exchange 2013 server but this is not the case. The older syntax is used. I think this is actually quite logical because it means that code written for older versions of Exchange will run against Exchange 2013 too – and the Search-Mailbox cmdlet is often used to scan mailboxes for content that needs to be removed. Search-Mailbox includes the powerful (and potentially destructive) DeleteContent switch for this purpose. Use with care!

KQL syntax is pretty powerful. I’m sure that the Exchange community will learn KQL tips and techniques to improve searches from those who work with SharePoint and vice versa. It’s nice when a change makes life easier.

Follow Tony @12Knocksinna

Posted in Exchange, Exchange 2010, Exchange 2013 | Tagged , , , , | Leave a comment

Using Search-Mailbox to look for items with a specific date

A question from a reader is often a good start to a useful discussion or to probe into a topic. Tim Read contacted me to discuss some problems he had with using the Search-Mailbox cmdlet (available in cloud and on-premises versions of Exchange). In this case, he was using Exchange 2013 CU5 and wanted to be able to search mailboxes for items that matched specific values for the sender, date, and subject attributes.

Apparently it was easy enough to run a search that found items that matched a combination of sender and subject but things got a little tricky when a date was thrown into the mix and not much joy was extracted from examples found on various sites.

Parser errors were reported when a date was specified, which indicated that the date was in a format unacceptable to Search-Mailbox. Some confusion arose on this point as it is natural to assume that search criteria have to be stated in KQL syntax because this is what is used by the Search Foundation, which provides the indexes that Exchange interrogates to perform mailbox searches.

However, the Search Foundation was only introduced in Exchange 2013 and code written for Exchange 2010 has to continue working on Exchange 2013 or in Office 365. The cmdlet therefore masks the change that occurred in the underlying search engines. Dates should be formatted like any other date consumed by Exchange according to the locale installed on the server.  So 1 October 2014 is “1/10/1014” in Ireland or the U.K. or “10/1/2014” in the U.S. Alternatively, you can pass a date like “14-Oct-2014” in either locale.

Now that we understand how to format dates, we can construct a Search-Mailbox command to do the work. This example creates a collection of mailbox objects from a database and searches them for items sent by a user called “Ben Andrews” (the SMTP email address for the user can also be used) on 13-Oct-2014 with “Interesting” in the message subject. Items in the Recoverable Items folder structure are included in the search.

Get-Mailbox –Database VIP –ResultSize Unlimited | Search-Mailbox -TargetMailbox AdminSearchMailbox -TargetFolder “Search Results” -SearchQuery {Subject:"Interesting" AND From:"Ben Andrews" AND Sent:"10/13/2014"} -LogOnly -LogLevel Full –SearchDumpster

This command will create a log of the discovered items in the target folder in the target mailbox. No items are copied unless the –LogOnly switch is removed. If the command is then rerun, Exchange creates a folder named after the searched mailbox and date and time in the target folder and copies the discovered items there, placing them in sub-folders corresponding to the folders in the source mailbox.

Search-Mailbox is often to remove unwanted items that arrive into user mailboxes. This is done by adding the –DeleteContent switch to a command. Clearly you should not rush into removing content from mailboxes until you are absolutely sure that your command targets the correct items, which is one good reason to run a command with the –LogOnly switch before proceeding to delete anything.

Exchange protects administrators against themselves by requiring those who want to delete content to possess the special “Mailbox Import Export” Role-Based Access Control (RBAC) role. As the role name implies, it is designed to allow administrative access to user mailbox data to import data from PSTs or export items to PSTs. In this instance, it’s used because deleting content is obviously something that should be controlled.

If your account does not hold the role, you won’t see the –DeleteContent switch or be able to use it with the Search-Mailbox cmdlet. You can either create a new RBAC role group containing the role and assign it to the appropriate users or add the role to an existing role group, which means that any user that is already part of the group will be able to use the switch. For instance, here’s how to add the role to the Organization Management role group, which is what I did for my Office 365 tenant.

New-ManagementRoleAssignment -Name "Import Export_Organization Management" -SecurityGroup "Organization Management" -Role "Mailbox Import Export"

You have to create a new EMS session to pick up the RBAC amendments because RBAC only evaluates a user’s permissions when EMS initializes. Once EMS is ready, I can run a command like this to remove the offending content.

Get-Mailbox –Database VIP –ResultSize Unlimited | Search-Mailbox -TargetMailbox AdminSearchMailbox -TargetFolder “Search Results” -SearchQuery {Subject:"Interesting" AND From:"Ben Andrews" AND Sent:"10/13/2014"} -DeleteContent -LogLevel Full –SearchDumpster

So there you are… A reader query that led to some interesting consideration of a very useful command and its various switches. Hopefully this will help others who struggle with similar challenges.

Follow Tony @12Knocksinna

Posted in Exchange, Exchange 2010, Exchange 2013 | Tagged , , , , , | 6 Comments