howto://Find broken links in your Webpages

I was recently asked if there was a way to search a website for broken links. Wget is a great tool for downloading content from websites, and can be used to do exactly this. You can download wget for Windows from, extract wget.exe and put it somewhere in your path. Open a command prompt, and run this, changing to suit your reality.

wget –spider -r -nd -H -w 2 –no-check-certificate -e robots=off -o output.txt

Parse the output.txt file for 404s and you’re done. Well, you have to fix the 404s, but at least you are done with the finding part!

–spider       act like a spider, but not a spider monkey, and don’t actually download content
-r             recurse, so you get the whole site
-nd            don’t create directories, which shouldn’t be needed since you are using –spider but it is
-H             span hosts, so it will check even if your links are to other domains/hosts
-w 2           wait two seconds between requests, so you don’t slam your server
–no-check-certificate      don’t do CRL or OCSP for any links that are https
-e robots=off  ignore the robots.txt file
-o             output path and filename

No retrohack post would be complete with a YouTube video, and hopefully finding this post made you feel lucky, so let’s combine those here.

Direct link for RSS and email subscribers…

Did this hook you up? If yes, a retweet or follow on Twitter is a great, free, and quick way to say thanks. Of course, anonymous comments are allowed and appreciated too.

An Open Letter to Sean Bentel at American Airlines Customer Service

Dear Sean,

I am writing to you because it’s come to the point where this relationship just isn’t working for me. I was a loyal USAir customer for years, earning Chairman’s preferred status with them. Yeah, I fly a lot. Then AA and USAir merged, which is an interesting use of the word. I am hearing Richard Attenborough describing how the Great White Shark merged with the hapless harbor seal, but perhaps I digress. The thing is, today, you really treated me like shit, and it’s time for me to see other airlines.

How did you fail me? Let me count the ways.

  1. AA decided to cancel a flight 8 hours in advance.
  2. But, they decided to wait three hours to call about it. Thank the gods for TripIt notifications,
  3. and thank the gods I didn’t sit around waiting, but booked with a competing airline so I could get home, because
  4. by the time I got AA notification, ALL other flights out were sold out. But wait, there’s more!
  5. You rebooked me on a flight, TWENTY FOUR HOURS LATER???!!! Dude, seriously? What the fuck makes that seem like a sound or rational idea in anyone’s book? There were FIVE, not one or two or three or even four, no, FIVE earlier flights, which still have seats available two hours after you thought 24 hours later was a good idea. Did you fall and hit your head?
  6. While you cancelled my flight, and I made it clear that I have already found my own way home, your CSR told me I have to go online to request a refund for the flight you cancelled. Not a flight I missed. Not a flight I wanted to change. A flight you cancelled, yet I have to do the work to get my money back. And since there is no clear way to do that, I am pretty sure my next call is to AMEX so that they can tell you to go piss up a rope on that one. They at least still understand customer service.

So, online, you have the Customer Blueprint. Interesting that at the top is customer loyalty, yet it seems to be at the very bottom of my experience.

I came over with the USAirways merger/acquisition/global domination/debacle call it what you will. I was Chairman’s with them, but seem to only rate now a Platinum. That sounds pretty good, but presumably you have Vibranium, and Adamantium, and Unobtanium, because Platinum with you feels a lot more like used Tinfoil status. But hey, you know what? Delta was perfectly happy to map that to Emerald and welcomed me on with a smile, and an upgrade.

I will agree that you delivered a differentiated experience; just not in a good way.

So here’s a suggestion for you. Add a row, near that chart on top, that takes a page from Wil Wheaton’s book. One line, really simple…don’t be a dick. Ooh, bad language? Sorry, how about, don’t treat people like shit. Oh, damn, there I went again. Maybe instead, try this. “Act like you give a rat’s ass about your customers, before they are someone else’s customers.”

The DogHouse Diaries ran a comic recently. Pretty sure the author wrote this while on the receiving end of similar stellar customer service from your airline.


I did go online to register my distress. This is the automated form I got back.

October 23, 2015 Dear Mr. Fisher:

Thank you for contacting American Airlines Customer Relations. This is an automated acknowledgment, giving me a chance to share with you right away what is happening with your message. First, while this email is not intended as a response to the remarks you just submitted, it does confirm we have received your comments and have assigned a reference number, which you see below. Next, we would like to reassure you that we appreciate all feedback. We happily share compliments with the employees who earn them. Please rest assured that we are also committed to answering every complaint we receive, and a representative from our department will get back to you as soon as possible. The Customer Relations team are eager to resolve issues that arise in the hope of seeing you flying American Airlines again and again. Last, let me clarify that if you inquired about an upcoming or current trip, we ask that you contact our Reservations staff, who are available 24 hours a day and will be in a better position to answer questions about your trip. In the U.S., the toll-free number is 800-433-7300. Outside the U.S., please refer to “Worldwide Reservations Phone Numbers” listed on Similarly, questions about using or finding information on can be more directly addressed at

Thank you for flying American Airlines. Sean Bentel Customer Relations American Airlines Your Reference number to this request: 1-4620821987

in the hope of seeing you flying American Airlines again and again

HAHAHA!!!! That’s rich. More likely to see pigs fly, but maybe someone will call me Monday and try to salvage this relationship. I am not counting on it, and have already booked my next three trips with Delta, but hey, I am willing to answer the phone if AA is willing to reach out. I’m just not holding my breath on this since it sure seems like you just don’t give a damn.


In memoriam


My parents at Epcot, 2005

My father died yesterday, after a prolonged fight with health issues that no one expected him to survive. He fooled us all by living for years past when I was first told he was going to die. Earlier this year, when my mother was diagnosed with terminal cancer, he rallied and stepped up in ways no one would have believed him capable of. When she died, part of him did too, and yesterday he finally had enough.

I wanted to write something here about him, his life, his legacy, and how important he was to me, but I just don’t have the words. His close friend and colleague, Dr. Stephen Ausband, fortunately does, and wrote this about my father. I couldn’t have come up with better if I had a year to prepare.

Dr. Edward W. Fisher died today. Ed was probably the first colleague I met many years ago when I came to Averett. He was finishing a Ph.D. in biology, and I was completing one in English. We were young guys with young families and high hopes and similar interests. So we went fishing and talked a lot. Over the years, we became very close friends.

I think some of Ed’s colleagues found him a bit prickly at times. People who are strong-willed, opinionated, and smart often get a reputation like that. He would argue with a fence post. Loudly. His students adored him. They loved him for his care for them, for his knowledge, and also for his very genuine eccentricity. Sometimes he would walk into a class, displaying a special sort of high dudgeon about something, and quote a few lines of poetry. Frost, occasionally Service, but most frequently Byron. There was a bit of the Byronic about my friend.

My days are in the yellow leaf;
The fruits and flowers of love are gone.
The worm, the canker, and the grief
Are mine alone.

“Who wrote that?” he would growl at a class of sophomores. When nobody dared answer, he would say, “My God! Have you not had a literature class? Tell me who has had Dr. Ausband’s 202! Yes, you. Now, who wrote that? That’s right; Byron. Thank you.”

And then he would launch into a lecture on cell biology or ecology or whatever topic the students had expected him to discuss in the first place.

Ed regarded field trips as important parts of a biology major’s education, and he was forever taking them to Virginia’s parks or to the Eastern Shore or even to a research facility in Maine. Sometimes the students couldn’t afford to go, and so he paid their way. Or he paid enough of the overall expenses so that any student could afford to go. The students never knew of his generosity, but they knew he cared deeply about their education.

Like most of the people I’ve been strongly attached to, he had an eclectic curiosity. He wanted to know what I thought about this writer or that one, he wanted to learn more about painters and writers he admired, and he read voraciously in fields unrelated to his own. Conservative by nature, he could display a marvelous sort of rage at what he regarded as the muddled thinking of many liberal politicians. (He could rage equally well at muddled thinking by anyone, but on a university campus it’s the raging at liberal sacred cows that makes one infamous.) His closest friends told him he reminded them of Yosemite Sam in moods like this. Or perhaps the Tasmanian Devil. He liked both comparisons.

Ed had a good eye for the ridiculous. Once when an outdoor adventure of some kind had been rained out, turning fields and even farm roads into deep, gooey mud, he, Don Ethington, and I took shelter in my truck waiting for the storms to pass. Ed produced from somewhere a bottle of moonshine. Well, there seemed nothing better to do at the time. After a while he mused, “Isn’t it interesting to have the Chair of the Department of Mathematics, the Chair of the Department of English, and the Chair of the Department of Biology sitting in a truck in a rainstorm, with shotguns, drinking untaxed whiskey? Is this the apex of Western civilization or what?”

He was tireless. He could out-walk his most athletic students on field trips; he could talk about painters or decoy carvers or biologists or country music all night; he could snore louder than a chain saw when he finally fell asleep, keeping a whole camp awake. And then he could get up and cook breakfast for everybody before anyone else stirred. But in one of those nasty tricks that the fates or the gods or whoever is in charge of such things sometimes plays, he threw a clot in his leg the very first year he retired. The clot settled in his lungs, and the x-rays looked like pictures of a well-centered pattern made by number six shot. He knew what was coming, of course.

He fought bravely and with dignity. He painted, he read, he talked with the many former students who had become close friends. He held on for years, longer than anyone, including his physicians, thought possible. I saw him a few weeks ago, on his seventy-third birthday. He thanked me for coming, but he was more tired and weak than I had ever seen him in his long illness. It could not be much longer.

His daughter told me that he died about 4:00 this afternoon. I had been out fishing then, and the fishing had been pretty good. Ed would have been pleased that I was on a boat today, I think. He told me once he never went to funerals, that he hated the things. Even memorial services. “Well,” I said, “what do you think should be said on the occasion of a friend’s passing.”

“How about, ‘Call in the dogs and piss on the fire; it’s time to go home,’” he answered.

I thought it was a pretty good reply.

howto://fix Outlook’s Autocomplete Cache


Outlook 2013 autocomplete stops working. Outlook works fine otherwise.


Probably nickname cache corruption.


You can use NK2Edit to fix a corrupt nickname cache file.

  1. Have Outlook open.
  2. Download and install NK2Edit from
  3. When prompted run it. It will automatically open your nickname cache file and prompt you about the total entries versus good entries.
  4. Close Outlook.
  5. Save your nickname cache file (default save.)
  6. Reopen Outlook and confirm your autocomplete now works.
  7. Sing along to Outlook with the song below.

Direct link for RSS and email subscribers…

Did this hook you up? If yes, a retweet or follow on Twitter is a great, free, and quick way to say thanks. Of course, anonymous comments are allowed and appreciated too.

howto://automatically delete conversation history in office 365


One of the most useful parts of Lync is that it automatically saves conversations in a mailbox folder called “Conversation History.” I probably refer to content in there three or four times a day-what did my boss ask for? What what that URL Tim sent me? Who did I promise to send something to? Which customer wanted to do X? When you’re a hardcore multitasker and don’t have an eidetic memory, Conversation History can be a lifesaver. But if it is in your mailbox, then it becomes discoverable, and there are some companies (or rather, some legal departments in some companies) that think users will spill the beans in an IM, so they want to make conversation history go away. IF you don’t want to save Conversation History at all, for any user, with any client, then you can use Lync Online remote PowerShell to do that. This is not that blog post.

Continue reading »

Why’s my 50 GB mailbox only 25 GB?


Office 365 recently upgraded all enterprise customers mailboxes from 25 GB to 50 GB, but some users may find that they are still seeing only 25 GB of storage. If you find yourself in this situation, here’s a couple of quick fixes to set your users up for their new massive mailboxes.

Existing Users

If you have existing users whose mailboxes are still showing 25 GB limits, but you’ve been upgraded to the new 50 GB size, you just need to adjust those users. Here’s what you can do.

    1. Confirm that your mailbox databases have been upgraded. They should be by now, but best to make sure before you proceed. Open a remote PowerShell session to Office 365 and run this command
      get-mailboxplan | fl displayName, *quota
      If your quotas still show 25GB limits, open a support case.
    2. Run this command to increase the mailbox quotas for the 50 GB limits
      get-mailbox -resultsize unlimited | set-Mailbox -IssueWarningQuota 48.5GB -ProhibitSendQuota 49GB -ProhibitSendReceiveQuota 50GB
    3. Profit.

New Users

If you want to ensure that new users are automatically provisioned with the 50 GB limits, you want to update your mailbox plan defaults. You will have to do this for each mailbox plan in your tenant.

1. Remote PS to your tenant.

2. Get-MailboxPlan to get the plan(s) in your tenant.

3. Run this command, substituting your plan name. Command is one line that wraps.

set-mailboxplan ExchangeOnlineEnterprise-fdeba728-963d-40df-8ff3-9a6b7a751ab2 -IssueWarningQuota 48.5GB -ProhibitSendQuota 49GB -ProhibitSendReceiveQuota 50GB

4. Rinse and repeat if you have more than one, or you could do a “get-mailboxplan | set-mailboxplan…” to nail them all at once, as long as you don’t mind getting an error for any plans, like K, that cannot go that high. It won’t hurt anything to do it that way, but some folks hate to see red text.

And with that, you have some really big mailboxes for all your users. They won’t need to delete anything for years to come, unless of course they use their mailbox as a file system, and subscribe to every DL and newsfeed they’ve ever seen. Even then, if they want it all, they can have it all!

Did this post hook you up? How about a comment or a Twitter follow to say thanks? Either are good, both are free.