All posts by Justin James

TFS 2010 Web Access “Access Denied” error – solved

A few days ago, one of the members of our QA team reported that they couldn’t access any projects in TFS 2010’s Web Access other than one. They were getting an “access denied” error with no troubleshooting information attached. The one project they could get to was the one that they had been working with the whole time. Upon further investigation, the entire QA staff had this problem! I checked every log I could find… IIS and Windows security logs on the SSRS, TFS, and SharePoint machines… no indication of a problem. Then I looked at the configuration, and everything was perfect. I certainly didn’t see any errors. Eventually, I made a dummy user, added it to the appropriate group for permissions, and fired up a clean VM to test. Here’s what I found.

The error came up as soon as you chose “” from the project drop down. It looks like a standard Windows dialog box and simply says “Access denied” with a single “OK” button. However… if you click “OK” on this window, and pay REALLY close attention, you’ll see that your Web browser (we are using IE here… thanks to MS CRM) is blocking a popup from the site. Allow popups from the site and try again, problem solved! The “access denied” is actually from the Web browser or JavaScript running in the Web browser being denied permission to bring up the window to select a project.


GMail is not a business tool. Period.

EDIT: It’s become obvious to me from the comments that people are failing to see that this article is specifcally about “GMail” (the free email product) and not “Google Apps for Business”. GAfB is an entirely different ball of wax. While it’s not perfect, it’s a lot better than GMail for business purposes and I have no major complaint about it.

Something I’ve been seeing more and more is the use of GMail for business. The problem is, GMail is absolutely unacceptable for business usage, but the folks who use it don’t see it that way. To be honest, I’ve never used GMail personally. But GMail’s handling of business scenarios is so poor, I don’t have to use it to know that it is not the right tool for the job. I just need to send and receive email from GMail users.

I understand why people like GMail. The UI seems to be good. It can act as a single collection point for a dozen other accounts and let you work with them. It hooks up easily to a variety of smartphones. Android phones in particular work much better with GMail than they do with Exchange, that’s for sure. And for the consumer level user, these are all excellent reasons to make GMail your primary email client and account.

But business users have different needs and different use cases, and in those situations, GMail not only falls flat, it can be outright harmful to both your ability to work and your appearance as a professional.

Problem #1: Over-aggressive spam filtering

This seems to have gotten better, but I still get reports on a regular basis that my emails have not come through. Quite frankly, this is not acceptable. The email account I use for much of my business has been established for over 10 years. I don’t understand how a GMail user can send me an email, I respond to it, and somehow my response ends up in their junk mail bin. This happens with startling frequency. Isn’t GMail smart enough to figure out that a response to an existing email is ALWAYS legit, regardless of content? And can’t GMail figure out that since hundreds of its users reply to emails that I’ve sent, from the same SMTP server with the same IP address (at least 6 or 7 years now!), that I should be considered golden? The tendency to filter spam out incorrectly may be fine for personal use, but in business where dollars are on the line, it is not acceptable.

Problem #2: “… sent on behalf of…”

GMail as an inbox collator makes perfect sense, until the recipient sees “… sent on behalf of …” in their email client. It is insanely unprofessional, particularly when the base address is nowhere near business-acceptable. For example, my GMail account is “jmjames78” or something like that (don’t recall off hand, it’s hooked up to a phone I no longer use). Now, if someone sees, “From: sent of behalf of” it isn’t the worst thing in the world. It still looks bad in my opinion, but your professional image won’t be ruined. But when I see stuff like “ sent on behalf of” I have a real problem with it. If you can’t understand what the issue is… well, I hope you don’t have to communicate much with customers! When people see this kind of thing, it makes you look like you are working for a lot of companies at once, which doesn’t convey a good image.

Problem #3: Fixing “… sent on behalf of …”

To be fair, the previous problem should be easily solved. All you need to do is set up GMail to send through the SMTP server proved for the actual account, in theory. In practice, this does not seem to be too easy. I’ve set a couple of different people up with standard POP3/SMTP accounts for my company, and all of the ones who try using GMail to pick up the email have problems. The standard email client users do not. I thought it was the mail server, so with a great headache, I moved from a self-hosted email server to a third-party email server. The problems persist. I have lost close to ten hours of my life trying to get GMail users able to get their email and send it out without the stupid “… sent on behalf of …” message. Meanwhile, I have critical features in my flagship product undeveloped, and important contracts in the works. Guess what adds money to my pocket? Guess what doesn’t? Why am I wasting my time because GMail can’t do what a copy of Outlook Express that shipped with Windows 98 can do?

Problem #4: Calendars

GMail includes some calendar functionality. It’s even nice enough to cooperate with the way Outlook and Exchange work. Sadly, it has one insanely critical flaw: in a common situation, it refuses to send invitations where you ask them to go. You see, Google accounts allow you to assign a backup email address. This is a useful idea; it is for situations like the need to send a password reset to a customer. Google, in their infinite “wisdom”, decided that if a GMail user sends an invitation to one of these backup addresses, it should really send it to the GMail account instead. This means that if I have a personal GMail account, it is now exposed to someone else who I might not want to have or see that address. It also means that if I don’t use that GMail account, I’ll never see the invitation. I’ve missed and almost missed a number of meetings in the last few months because a GMail user sent the invite to my address and it ended up in my GMail account.

Problem #5: Customer Service? What’s that?

Google is notoriously bad at customer support. Good luck even finding the phone number of someone to talk to. I’ve tried many, many times to talk to someone there, the best I was able to do was when I leveraged a PR contact I had there. Google doesn’t want you calling them. Google wants you to either email them so they can send canned responses, or to post in their forums so that other people with the same problem can say “me too” and “let me know if you ever find a fix”. As someone who’s been a paying Google customer before, I can tell you that they suck at support and service, the assumption is that anyone too stupid to not figure out their product shouldn’t be a customer, and if you don’t like the way the system was designed, you can take a hike. Google loves large scale metrics to drive product development, not actual customer feedback (even though that can be turned into a metric too!). As a result, when you have a problem… well, good luck. With other vendors, free or paid support typically rangers from “not that good” to “stellar”. For example, $259 gets me a ticket with Microsoft and their engineers are amazingly good at solving problems (once I get through the language barrier and they know what I’m talking about). Google doesn’t even have a paid option, on the other hand (hmm… I smell opportunity!).

In summary, GMail is a fine product, but its fit and finish, as well as some design decisions, make it totally inappropriate for business use. Your mileage may vary, of course. But from where I sit, as someone who interacts with GMail users on a regular basis, it has no business in a business environment.


Solution for an empty “Network Connections” in Windows

Yesterday, I had to do some work on our Forefront Threat Management Gateway machine. When I brought up the TMG console, it gave me a strange error: “Refresh failed” with an error code of 0x80004005. It was inexplicable. A few days earlier, we noticed that the “Network Connections” in control panel showed no connections at all, but ipconfig showed them as expected. I ended up placing a call to Microsoft support. They suspected that the TMG console issue was caused by the inability to enumerate the network connections, and I was inclined to agree. Their specialist for these things said that there’s a registry key which sometimes gets corrupted, and you can delete it and reboot the server to fix the issue. After carefully reviewing to ensure that nothing else was the issue, that’s just what we did. After the reboot, the network connections showed, and the TMG console issues were solved as well. To do this fix yourself (the usual disclaimer: back up your registry before editing!), look up the following key:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network and delete the “Config” value.


Strange PC flakiness solved

I recently had a strange problem with one of my PCs. It was acting slow and sluggish, then the RAID 1 dropped a drive out saying it was failed (I’ve used RAID 1 on all my PCs for a while now, an dI highly recommend it). I shut down, inspected the failed drive, and turned the PC back up again, and it wouldn’t boot. No matter what I did, it wouldn’t come up. The next morning, it had shut itself off, and when I turned it on, it worked perfectly fine… and then shut itself off again after about 30 minutes. Clearly, I had a heat-related issue. But I wasn’t seeing any of the symptoms of CPU overheating, like random reboots or application errors; the expected shutdown was the only CPU-heat symptom, while the rest of the problems (drive errors, for example) pointed to motherboard issues. I installed the MB tools to monitor it, and it was clear that the CPU was indeed overheating; it hit 97 C within about 10 minutes of booting! Eventually, the PC refused to boot. I ordered a new motherboard, and thanks to Amazon Prime, it would be delivered less than 24 hours later for only $3.99 S/H.

Even though I was certain I knew what the fix was, I did a quick consultation with my friend Chris Ansbach via IM. He really knows his stuff, and he pinpointed the exact cause of the problem, which is going to help me prevent it. If you need to work with someone who knows their stuff, he’s your person and I’d gladly put you in touch with him. Looking at the motherboard layout, the two bridge chips northbridge chip is are located right next to the CPU, and is both are passively cooled. Inspecting the CPU and heatsink showed the cause of the overheating. The heatsink is the stock Intel model, and the plastic clips can eventually lose a little bit of tension. While the heatsink will still be on, and feel firmly attached, it will no longer make good contact with the CPU. Meanwhile, the thermal grease gets dried up (mine flaked off) because of the heat, and its is less effective, compounding the problem. Eventually, the CPU starts to overheat. Because of the location and cooling systems on the bridges, they were it was overheating too, causing that flakiness. After replacing the motherboard, the system is working like a champ; I got very lucky that the CPU was not damaged!

So, what’s the takeaway here? Two things:

1. Motherboard design matters a lot more than I thought. From here on out, I am going to be looking for motherboards where the bridges are actively cooled, and not right up against the CPU.
2. Heatsink design matters, even in a non-gaming, non-overclocked machine. Two big things that I learned to look for: a backplate to secure the heatsink to the CPU that uses screws or some other fastening mechanism that will not loosen with time, and fan that blows up or sideways, not down; this will ensure that if the case air is hot, it isn’t making the CPU any hotter. I knew about some of the other stuff (heat pipes to elevate the heatsink away from the CPU, larger design, etc.) but these were two things that I just was not aware of, particularly the backplate.

Hope this helps someone avoid the same kind of meltdown I had!


Online publishers need to understand interactivity

I have noticed a very interesting trend amongst a number of online writers, which is that they completely ignore commenters. I understand why they do this. But by not participating in the comments sections that are attached to their articles, they are doing themselves and their readers a great disservice, and along the way, missing major opportunities for improvement.

I understand why writers do this. As a fellow professional author, the finances around writing are horrible. In my experiences, monitoring and reading the comments on an article can often take 10% – 20% of the time it took to write the article. For a very popular article, that percentage is much higher. To actively participate in the comments and respond as appropriate takes substantially more effort. I have had articles where I personally posted 20 or more comments in response to people, and some of those comments were as long, thought out, and researched as much as the original article. Clearly, when an author works like this, their per-hour rate starts plummeting. After all, we get paid by the article, not by the comment!

The problem is, the audience does not see it this way. In the audience’s mind, if an article appears on a Web site, and has a comments section, certain expectations are reasonable:

  • Any comment they leave, so long as it is within the boundaries of good taste, is on topic (varies widely, but to me, that means: “follows logically as a response to the original post or another person’s comment”), refrains from baseless ad hominem attacks, should be published on the site.
  • Any comment which challenges the author’s basic facts and calls the article’s accuracy into question should be responded to.
  • Any comments made in private to the author (email, private messaging system, phone call, etc.) should, at the very least, be acknowledged.

Now, some might ask, “who declared these to be the rules of online writing?” Well, it’s simple. These are the rules of courtesy in “the real world”. Why should the Internet be any different? Imagine that you are at a dinner party, and someone says something based on incorrect facts (I don’t know what… perhaps that the Amazon River is not very long). And when someone responds and says, “look, the Amazon River is really long, here’s the Wikipedia article on my phone that shows its length”, the person who made the comment walked away. What would you think of that person? You might think that they were merely rude, but it would not be unexpected to think of them as a coward, or someone who is afraid to admit when they made a mistake. You certainly wouldn’t think, “gee, they’ve got an awful lot of people to speak to here, I can’t blame them for not having the time to participate in this discussion.” What if this person said something highly controversial, and immediately left the room? You would think that they are a complete, utter jerk.

The New York Times has an article today blaming their inability to meet these expectations on a lack of staff. And yeah, I get it. The NYT had a huge problem with open forums, with tons of inappropriate comments being made. It’s how things go. The problem is, their current approach (shutting down comments, restricting the articles that comments can be made on) is infuriating to their readers. In their mind, comments on, say, a travel article talking about trips to Barcelona are less important than comments on Paul Krugman’s latest essay. I can see why. But the funny thing with comments is, you never know where reader-generated value will come from or what it will appear on. Maybe a reader of that travel article knows of a fantastic restaurant in Barcelona that is really inexpensive to eat at and is tourist-friendly? How many comments on the typical Krugman article are written at a level of knowledge (as opposed to knee jerk, emotional reactions both pro and con) that really add value to the discussion? It could very well be, that for the NYT, they would get more aggregate utility from allowing comments on all of their articles except the really big ones. Unlikely for sure, but possible. But they will never find out, will they?

The reality is, for any given site, there will be some articles that generate hundreds of comments, but the overwhelming majority of articles won’t (other than spam bots). What this means, is that the NYT‘s policy is greatly flawed. They should be able to open up their entire site to articles, with a relatively low overhead added to their monitoring efforts.

I recently read an article providing a technical tip. The tip was highly flawed, dangerous, and treated information that was situational as being globally applicable (it said to make certain registry changes, but those entries only existed if you had a particular kind of hardware). Many readers (including myself) responded with all sorts of follow up questions, concerns, and so on. The original author did not respond to any of these comments. You know what message this sends to the readers? That the author shoots out poorly researched articles, and when questions are raised, the author dodges the criticism because they are too busy writing another poorly researched article. The publication’s credibility takes a hit in the process, because the readers see the author’s name a lot less prominently than the site logo.

The real problem here, is the flawed business model that many publishers bring with them when they move online. And even for online-only publications, I can tell you that the economics are wrong. Any publication operating online needs to build into their financial plans the need to accept all reasonable comments and properly respond to them when appropriate. What does that mean? It means that if you are going to rely upon dedicated human moderators, there needs to be enough money in the budget to have enough of them. It also means that you need to include “responding to reader comments as appropriate” in the job title of the writers, and include an evaluation of this in the writers’ regular performance reviews. You have to have your editorial staff doing “spot checks” of the comments to see if the authors are ducking out on this responsibility. All of this needs to be factored into your financial decisions when you are setting up your business.

And many of these comments, especially the critical ones, are quite important to improving the site long term. Maybe there is a writer who is consistently producing outstanding work, and the site would benefit from featuring them more prominently? Perhaps a particular author has a bad habit of mangling facts, and is damaging the reputation of the site? Sometimes an author makes the same silly mistake over and over again, and should fix it (I used to spell “Joel Spolsky” wrong all the time, until a reader pointed it out to me, for example). There are lots of really good reasons to keep an eye on the comments, not just the author, but the editors or producers of a site as well. Does every gripe or complaint need to because “to do” item? Of course not. Do you need to fire every author who gets a lot of criticism? Not at all (and it depends a lot on the nature of the criticism, too). But complaints should be acknowledged (this is called “customer service” in layman’s terms) and aggregate temperature readers of the audience’s feelings to an author should be taken. An author who is taking a lot of legitimate heat on a regular basis… well, maybe it’s time to replace them.

Now, there are some authors that are really good about self-monitoring. And what I’ve seen is true across them, is that they happen to make money by writing, but they would be doing it in one way or another even without a paycheck attached. In fact, many, if not most of them, self-publish some thing that they see no (or negligible) revenue on, but is outside the realm of their paid writing. Not to hold myself up as an ideal example, but I can relate my personal experiences. I write for TechRepublic (which is something like 90% of my writing income), here (free, not even ad revenue), a Web site for weightlifters (I also host, maintain, and run the site at my own expense, zero revenue on it), and some additional freelance writing here and there that I get paid per-piece on. My pay at TechRepublic is the same regardless of how much I respond to reader feedback, but whenever I think about the financial end of things, I never look at it as getting paid merely to write a piece. I have been told many times by the staff that they really appreciate that I respond to reader feedback. While I hope that this comes into play in any internal decisions they make, it is not why I do it. I simply feel that all reader comments deserve to be read by the author, and responded to if they merit a response. It is that simple.

Do I sometimes get nasty comments from readers? Sure. I try my best to handle them with respect and courtesy. As a result, I see relatively few comments that I think cross the line. When I do get one like that, I simply respond to their factual assertions as best I can, always be willing to admit to a mistake and consider that I might be wrong, and state that I am keeping it “above the belt” and appreciate the same. It also helps that the articles I write are almost overwhelmingly factually based; when you stick to talking about facts (how-tos, tips, “my experience with XYZ”, etc.), there really isn’t much that people can get nasty about.

What this revolves around is the fact that a lot of people simply do not understand how to do business on the Web. They feel like the Web is great because it allows them to tweak and tune their existing business models. Old school companies like the Web because they can scale back their call centers and data entry operations, under the guise of giving the user control. And yes, that is a very real benefit to the Web. some companies are really happy because it lets them extend their reach to places that they couldn’t do business before, cut back their traditional advertising costs, and so on. But users don’t go on the Internet with the hope of doing their own data entry or to provide usage data to a vendor. They are there to save time and money. Much of the time, the needs align well. When a company’s site allows users to put in the data themselves, it is almost always faster and easier than having them call a phone number and provide it over a phone, so everyone is happy.

When a user goes to a site to read content, as opposed to reading it in a magazine or newspaper, what are they really looking for? Well, they are looking for a) convenience (fast lookup and delivery, easy access via links to related information) and b) interactivity. By following a model in which the reader feedback is throttled (like the NYT is doing), readers are left only with the convenience of reading it online. Guess what? That is a commodity. Few sites offer a unique mix of content on a consistent basis. That is why I post so infrequently here, because I don’t like to post something here that you couldn’t find elsewhere with a quick search (or would have to pay to get through other sources). For example, if I spend hours fixing a bug on a server because there are only three search results for the error code and none offered a proper fix, I’ll post the fix here (especially if I had to open a vendor ticket to get a fix). My opinions and analysis… well, this is the only place you can find them (hope you like them!), since my writing elsewhere is pretty limited in scope and generally is not opinion/analysis. What this means for publishers, is that if you annoy your readers, they go elsewhere. I don’t have to read the New York Times for anything other than their local news coverage (and hey, I haven’t lived near New York City in a while) and unique editorials/op-ed stuff. I read that publication out of sheer force of habit more than anything else (I subscribed to the email newsletter something like 10 years ago). I used to read the Washington Post as well, but when they stopped sending the newsletters, I stopped reading. That’s how fickle tastes are. I didn’t even notice after a few days that anything was different, other than having a few more minutes in my day.

What can a publisher do? Well, some are obviously choosing human moderation combined with author passivity, and it is clearly a mess for the NYT. Others choose a basic, community monitoring system combined with human moderators. TechRepublic does this, and I think it works out really well. They have a few human moderators who spot check forums, look at stuff flagged as spam, and so on. Other sites (Slashdot always comes to mind here) take it one step father, allowing users to up or down vote each other and their votes count for more after they’ve accrued trust from the community. Personally, I think that the TechRepublic system works the best. Giving the community a lot of control (Slashdot, Digg, etc.) in where content (not just articles, but comments as well) appears, how prominent it is, etc. leads to folks gaming the system. Too many people spend their time on these sites not working for the greater good of the community, but to gain some sort of advantage for themselves.

And again, publishers need to take a hard, honest look at their financials and authors. Can they afford to compensate their writers to not just write, but to spend the time reading and responding to articles? Do they have authors who have the ability to read and respond to articles and keep things professions? A “no” to the first is a sign that they need to change their business model. A “no” to the second indicates that they should consider a different mix of writers.


Doing something vs. talking about it

Recently on Facebook, there has been this odd meme that says if you change your picture to that of a cartoon character from your youth, it will help the fight against violence to children. Quite frankly, I think this is total, utter, nonsense. I talked about this with a friend, and he found the following picture which sums up the absurdity of it perfectly:

Changing your Facebook picture doesn't help kids

I am someone who likes to give to charity. In fact, I do so on a regular basis. Every December, in the midst of buying gifts, I like to send donations to a carefully picked list of charities. I pick these charities based on the fact that their mission is hands-on and there is no profit motive to get involved. Things like Smile Train, Room to Read, and One Simple Wish get the nod for me.

So, what does this have to do with my usual topics here?

My company, Titanium Crowbar LLC, has written a number of WP7 applications. I have committed the company to donating 10% of gross revenues (as in, “before Microsoft takes their 30% cut”) from November 3rd (when the store opened) to March 1st, 2011 to the charity One Simple Wish. Right now, the applications we sell are “Name That Nerd” and “Local Crime Rate”, with a few more in the pipeline. OSW is a great organization. They work with local social workers, orphanages, abused children’s shelters, and so on to identify things that these kids need to simply lead a little more normal life, and get them for the kids. For example, they run a drive to collect dresses, and give them to the girls so they can go to the prom. A child who got pulled out of an abusive, neglectful home might get underwear and a jacket. They might buy a young boy a bike. To some, this might be just getting a kid “stuff”. But to these kids, who are already feeling like the world has nothing for them, it brings so much joy and happiness to be able to have at least some of the things that “normal” kids like. To me, this is an important charity.

Let’s face some facts. Few independent mobile developers are making “real money” on their applications. I’ve crunched the numbers in the Apple App Store, for example, and the average application is making only a few thousand dollars. Hardly enough to justify the time doing the work. Most mobile development is a passion or hobby to do new and interesting things, and it happens to bring in some income to justify the time being spent on it. The independent mobile developers think of the income as a “nice to have” not a “feed my family and put a roof over our heads”. So I am calling on each of you out there to consider doing the same thing that I am doing, with the charity of your choice. Pick a charity, and commit a percentage of the revenues (gross, net, whatever!) over a timespan to go to this charity. If your mobile development efforts are like mine, and mobile development revenue is essentially “found money”, I think it can’t hurt you to seriously consider this.


Where I have been for the last six months

I know, it’s been a long time since I’ve posted anything here! There’s been a lot going on, and I hope to be able to give in-depth tips and analysis based on my experiences lately. Here’s a quick summary of what’s been happening:

Rat Catcher

The biggest news of all is that the project I’ve been working on the side for a while now is really coming together. It is called Rat Catcher, and it is designed to help content producers and publishers ensure that their content is not copied. It has two major uses. First, when someone submits an article to a publication, the publication can make sure that it is 100% original work. Plagiarism is a huge problem in this industry, especially when dealing with authors in Communist, former Communist, and a variety of Asian areas where the cultural attitudes on copyright and intellectual property are significantly different from what they are in the West. In and of itself, this functionality is useful, but it is not the meat and potatoes of the application; there are lots of other applications which can do this. The real value add is that it can run reports on a regular basis and help you find people copying your work. For someone like myself or George, where our ability to put a roof over our heads or food in our families’ mouths depends on our writing being “valuable”, it is critical to us to make sure that the only places our writing appears is where we are getting paid for its usage. Rat Catcher is currently in a free, public beta test, and I encourage you to check it out and provide me with any feedback (good or bad) about it.

The Agile Platform

Over the last year, I’ve come to start using OutSystems’ Agile Platform a lot. A quick disclosure: OutSystems paid me to write about my experiences using this tool in writing Rat Catcher, and they licensed those articles to TechRepublic (and possibly other outlets); in no way did they request that I make changes to the articles beyond basic factual corrections, and those articles were critical at times of the product. With that out of the way, I will say this: the reason why I wanted to write those articles is because I love this product. If you need to write Web based applications, I suggest that you give it a very good look. The Community Edition is more than enough for most needs, I may add, so do not let the pricing model deter you. Rat Catcher has taken me less than a year of nights and weekends, typically with me spending about 10 – 15 hours a month on it (some months more, some much less). I know that with any other tool, I would be nowhere near where I am now on the Rat Catcher project. I consider Agile Platform to be the best decision I’ve made in years in terms of tech choices.

Personal Browser Usage
A while back, I talked about my experiments with Chrome and Firefox. Firefox is a total stinker in my mind, sorry to say. It’s fine at a technical level, but it combines a horrible UI with a lack of features in a way that makes it unacceptable for my use. No matter how many times I tried to force myself to use it, I couldn’t use it. Chrome, on the other hand, also lacks a pile of features. But unlike Firefox, it has a lot more usability. It still has three UI quirks that I dislike:

  • The lack of a title bar to make it easy to click on with my dual monitor setup
  • The lack of tab coloring/grouping that IE has
  • I prefer IE’s order or “which tab is selected next” when you close tabs

When IE 9 gets out of beta, it is very likely that I will switch back to IE. It’s not those little features that are nagging me, it’s the big stuff… most notably, OneNote integration. I stopped using OneNote for the most part when I switched to Chrome, and it bothers me that I don’t use it as much.

WP7 Development
Over the last few months, I’ve gotten into WP7 development. I’ll say that while the development side of it is not perfect, it is the best experience around compared to iPhone, BlackBerry, and Android development in terms of the tooling (although the emulator is limited to the point where you need to buy a phone for a lot of things). TechRepublic has asked me to write once a month about WP7 development, and you can follow that in their Smartphones section. That being said, the experience outside of the development is an absolutely horror story. Microsoft is a lousy “partner” to their developers. And the WP7 APIs are very, very lacking. Some of it is deliberate (for security reasons), some of it is simply a lack of time to get to market. I know that the APIs will get much better soon, but for the time being, developers can’t do much with the device’s hardware. WP7 has the potential to be the premier phone gaming platform, by the way, if developers put their minds to it. The #1 problem with WP7 development, though, is the sales numbers. Microsoft is not giving devs sales/download numbers until February. My guess is that they are trying to hide poor sales numbers, and don’t want developers saying, “gee, my app is #381 on the list and has only sold 139 copies” which would obviously discourage others from writing apps. The lack of attraction to the platform shows in the app store too. While it already has more apps than Windows Mobile did, the apps are almost universally low value. An interesting side story is that Microsoft has been paying developers to develop apps (and subsidizing development contests to bribe developers) in a desperate effort to seed the app store with apps. Without these kinds of incentives, no sane person would invest time in the WP7 platform until they knew that it was selling handsets at a much better pace than what has been reported.

My guess is that I will make more money writing about WP7 app development than 95% of developers will make writing WP7 apps. If it’s any consolation, it’s also true for Android developers and iPhone developers… the average sales numbers are awful on those platforms too. But that’s the concern with WP7 development. If an iPhone or Android dev makes a few thousand bucks on an app they worked hard to put out, with as many handsets out there as there are, who is going to make money in the much smaller WP7 pool?

Microsoft CRM, Kentico CMS
For most of this year, I have been involved with a project to integrate MS CRM with my employer’s upcoming Web site rewrite (going from an ugly site using static HTML, to a much better looking site on the Kentico CMS). Along the way, I have learned a lot about Microsoft CRM. It is a total, utter, inexcusably bad piece of garbage, and I urge everyone reading this to avoid it at all costs. The next version (MS CRM 2011) looks like it addresses many of the worst issues in version 4.0. Honestly though, this is probably one of the worst applications I have ever dealt with. It combines the worst sins of “enterprise class software” into one horrible package. I am not going to air our dirty laundry in public, but I will say that we are making major changes internally to ensure we never, ever end up with an application this bad again. I will go into much deeper detail on why MS CRM is so bad in the future, hopefully soon. For now, if anyone in your organization seriously suggests MS CRM as a choice, take them to the woodshed, pronto.

Kentico is not a bad CMS, but I do not like working with it. I worked with it a few years ago to try to rejuvenate our Web site, and it was horrible then, lots of unacceptable flaws (like if you changed the price of a product, any existing orders would show the new price, not the price when it was ordered). It has substantially improved. But it is still not very good as a platform to develop against. It has too many places and ways to make changes (“Modules”, “Templates”, “Web Parts”) and it is not clear which is the best way to do things at any given time. It is also a BEAST of an application. It is insanely heavy. The problem is, it is currently the best (that I’ve found) .NET CMS out there, and one of the best in general. The fundamental problem is that some folks 10 years ago decided “this is how a CMS gets written” and their decisions were driven more by the limitations of the technology than designing for quality. And every CMS since then has copied these bad decisions.

ISA 2006 to Threat Management Gateway 2010 Upgrade

I just wrapped up this upgrade (well, “migration”). It wasn’t bad, but I found a number of important stumbling blocks that no one else has discussed. I hope to write about them either here or on TechRepublic in the next few weeks, and hopefully make someone else’s life easier.

Over the next month or two, I hope to go more in depth on all of these topics, both here and on TechRepublic. If I don’t have anything before the end of the year, happy holidays and best of luck in 2011!


Piracy as a protest?

Something that I have heard a number of times, is that people beleive that piracy (usually music) is justified as a way of protesting copyright laws that they disagree with. While I understand that they disagree with the laws themselves, the idea that piracy is a “protest” of some type is absolutely laughable. The fact is, a protest is pointless unless the people who can change what you are protesting (in this case, Congress, the RIAA, the record labels, the musicians, etc.) are aware of the protest. Simply copying a CD or firing up a BitTorrent client and downloading a song isn’t a “protest” no matter what you beleive about copyright law.

Look, I know the score with the record labels. I’m not going to debate it, because I really understand both sides to it and empathize with each one for different reasons. But when people try extending this to movies or software, it is just plain dumb. The economics around both give a lot more money to the people who put in the real work than the music industry. Let’s face it, the average programmer or even a gaffer on a movie set makes more than the average signed artist does. So don’t pretend that copying a movie or piece of software is even about something justifiable, because it isn’t.

If you want to have a true protest, try this: first, pirate the album. Next, look at the liner notes for the album, find out who the producer is, the songwriter, etc. Send them each a dollar or two (it’s more than they get in royalties), and a note explaining that you pirated the album that they worked on because you don’t think its fair that the record label is ripping them off, but at the same time, you don’t want to be the one ripping them off either, so you are including payment far above their royalties. Send the band or artist five dollars with a similar note, and encourage them to esell their music directly. Also let them know that you compensated the producers and songwriters as appropriate. Don’t worry about “studio musicians” because they got a paycheck to play and aren’t in the royalty game. If you’ve got a lot a nerve, write a letter to the record company explaining what you did as well.

And there you go. You accomplished your goal of having the music without giving any money to the RIAA or a record label, the people who can actually make the situation change (the artists, producers, and songwriters) are actually aware of your protest, and at the same time, you are not ripping anyone off.

I am sure there is an alternate approach that does the same thing. But the point is, if you claim that piracy is a “protest”, you need to get honest with yourself. You aren’t protesting anything, you are justifying ripping off the artists that you claim to love, because even though they see pennies on the dollar in royalties, they don’t see a cent when you pirate an album.


My experiments with Chrome, Opera

I recently gave Firefox about a week of my life to see how I liked it. While I did not think it was perfect, it showed me that it is definitely worth exploring other browsers. So I decided to give Chrome a try, and then Opera. Chrome survived about a day as my default browser. To be honest, I really, really liked it… except for one huge problem: the tabs on the title bar. I work on two monitors, and the Web browser is almost always maximized on my main browser. About 20 years of computer use have trained me to click on title bars to switch applications, since they are larger than taskbar icons, and the application will not munge data or perform any actions when you do it. I also like to double click title bars to un-maximize. With Chrome, my behavior kept switching tabs and sometimes even closing them. Despite the fact that I really liked Chrome overall, this was a 100% deal breaker for me. So I gave Opera a download, and I saw that it took replicated this idiotic UI decision. I could force the tabs to be in their proper place, but only by also adding a useless toolbar above them, which was also unacceptable. As a result, Opera made it less than 10 minutes on my system.

Right now, I am back to using IE 8. I might give Firefox another week to see if I can deal with it, but it’s poor tab handling was driving me so nutty that all of the other things I liked about it were being overwhelmed.


My Firefox experiment

At the advice of others, I’ve decided to give Firefox a one week trial (I’ve been an IE user since version 3 or 4 took me off of Netscape). I was willing to make the switch simply because IE is really, really slow. To be honest, the “usual suspect” list of reasons didn’t factor into the discussion for me:

  • Security – I think that once you turn off ActiveX for public sites (the IE default for a long time now), IE gets a lot more secure. Firefox has its share of security issues, and I think a switch for security gets you little advantage in the long run.
  • Stability – IE 8 has been rock solid for me. Even when Flash acts up, IE just closes the tab and if it keeps happening, IE stops it from loading on that page. Meanwhile, my Firefox using friends have been complaining about stability issues and memory leaks since version 1. In fact, it was a friend telling me that Firefox 3.6 really handles the crashing a leakages that encouraged me to try it out.
  • Add ons – From what I can tell, much of the problems that plague Firefox are actually problems with add ons. So for someone to tell me that I should move to Firefox for the add ons is really not a ringing endorsement.

For me, the user experience (UX) is everything, and IE 8 has been a good user experience. Firefox’s crashing and memory leakages have been showstoppers for me, the bad UX from those issues offset any positives. But with these issues solved, Firefox became a legitimate option for me. I am now at the end of a week of usage, and I’ve found a lot to like, and a lot to dislike. I am not sure if it is enough to convince me to make the switch permanent.


  • Speed – Firefox is noticeably faster than IE. I like that the most.
  • Form field handling – Some sites (Facebook, WordPress’ editor that I am using right now) do not handle vertical scrolling in IE properly, and they work fine in Firefox.
  • Spell checking – I love it.


  • Tab handling – Firefox may have invented tabs, but IE handles them much, much more nicely in terms of grouping them with colors and where newly opened tabs appear. I found an add on that seems to make the tabs better, but it does not work with the most recent versions of Firefox.
  • OneNote integration – IE’s “Send to OneNote” is much more useful than just printing to OneNote from Firefox.
  • Facebook – I hate to say it, but I use Facebook a lot. And it seems to work much better in IE than Firefox, other than the large textbox issue that I have in IE.
  • UI – The Firefox UI really reminds me of an X11 app, and that is not a compliment.
  • Accelerators – I got very used to the “accelerators” (especially “Map with Bing”) in IE, and I miss them in Firefox. Yes, there are similar items in Firefox via add ons, but they invariably use Google services when I prefer Bing (especially maps, where Google Maps have burned me too many times).

If I could give IE 8 the spell check and speed of Firefox, or if Firefox had the better tab handling and OneNote integration, I would be happy. For me, both browsers meet my needs on the really big UX stuff now (security, crashing, resource leaks), so the details are what are important. And right now, I don’t think either browser is so superior to the other than I won’t miss something from the other.

I think what I will do is give Chrome a similar one week trial, and perhaps Opera as well. While I am not convinced that switching browsers will revolutionize my life, I do spend enough time in one for it to make my life easier or more difficult.