Incomplete Download Indicator Stuck

With OS X, there’s often a Download folder in the Dock for easy access. As Safari and others download content there a progress indicator appears under the folder, letting you know when the download completes.

However, a failed download can leave this in an incomplete state.

Here’s how to fix it from Terminal:

defaults write ResetLaunchPad -bool true; killall Dock

Posted in Apple, Hack, How To, Operating Systems, OS X | Tagged , , , , , , | Leave a comment

Chasing a Ghost-Bug Due to an Ad Blocker

I’m embarrassed, I’ve been bit by this before, but not in quite a subtle way.

I use a combination of browser privacy and filewalls and jails. In particular uBlock Origin, Ghostery, and JavaScript Blocker.

The symptom was that when that I was loading a .mp4 file directly in Safari on one website, and it worked perfectly.

The same byte-for-byte file on an identical website failed.

When I investigated, the broken site was sending the wrong MIME type (not video/mp4) in the browser error console.

Naturally, I investigated Apache and the AddType directives. Nothing was working.

Curl, however, was showing identical headers. And the right ones.

Eventually, I tried it on another machine. Safari worked there. I rebooted my system, which shouldn’t have mattered, and tried again. It still failed — yup, didn’t matter.

Checking Safari versions, they were the same. Chrome and Firefox did work on my machine however.

That meant the problem was with Safari… or one of it’s extensions.

The JavaScript Blocker wasn’t active. Ghostery was hiding nothing. And uBlock was claiming it was blocking one item — but not straight up about which or why. This was just a single direct file load.

Turning on the uBlock filter, it turns out that the directory name I had stuck it in was called promo. It took that to mean ‘promotion’ and blocked it as an ad. The ad blocker prevented the resource from loading, and that triggered Safari not to be able to load the .mp4 extension because what it was getting wasn’t an .mp4 file. Worse, the failure happened silently. I just saw a black screen with a play button that did nothing.

When I renamed the directory, everything worked perfectly as before. The original site? It wasn’t in a directory called promo there.

As I said, I’ve been bitten before, last time with a directory called ad, which wasn’t an advertisement.

NOTE TO SELF: Never use directory names during development that could be confused with advertising elements — they’ll get blocked.

Posted in Apple, Browser, OS X, Security, Web/Ajax | Tagged , , , , , , | Leave a comment

Advertising Is Killing Distribution Platforms

The Goose That Laid The Golden Egg

The Goose That Laid The Golden Egg

If revenues are the golden eggs, and media/apps/websites the goose, then aggressive, intrusive advertising practices are the hatchet that killed the goose.

The evidence is everywhere.

Broadcast television used to have commercials between shows, then during shows, and eventually digressed to the point where the frequency of continual viewing interruption made it so that certain channels weren’t worth watching anymore.  And, oddly enough, to make up for lost revenues, those channels increased the amount of advertising.

From this cable television was born, based on the the idea that if the consumer paid for content, the majority of it would be advertising-free. Although within not much time, advertising leaked in again, and eventually people were back to the old model that used to work: advertising between shows; only this time paying for the privilege.

Then a new consumer product arrived on the market, TiVo, which helped customers skip past commercials; but this early feature was all-to-quickly neutered to fast-forward-only so you’d still have the opportunity to at least see the commercials in the event you wanted to watch one.

While more modern TiVo units now have reintroduced the skip commercial ability, the once clean graphical interface now is littered with dynamic menu choices for products, shows, and offers that appear when you pause to view a frame or try to avoid the commercials.

In response to all this, broadcasters started injecting banners and overlay graphics during the show so you “had” to watch, consuming screen real-estate to announce other shows, products, or news changing the entertainment into a dashboard. Meanwhile producers started injecting product placements into actual content. In the process it means all the display pixels you paid for aren’t being used effectively, it’s distracting to watch, and can lead to some rather embarrassing sexual mishaps between show and ad for the network.

Overall, entertainment quality has gone down, presentation quality has also gone done, consumer costs have gone up, and it’s no wonder we now see a whole generation of cord cutters who have found other means to go straight to content.

The DVD market suffered a similar fate.  There was a time when you bought a DVD, you got the movie and possibly special bonus material, and that was all.  DVDs started inserting trailers and other commercials at the start of the movie. For a while, consumers would skip to the actual content. Then that capability was removed, and consumers fast-forwarded, which itself was challenged by the now famous “option not available” notice.

In response, streaming services appeared and consumers stopped stocking their media collections at the rate they once had.  But now we see pay-for streaming media starting to inject previews and advertising in front of shows.  We know where this leads: service termination and few barriers to exiting the moment a new technology surfaces. And it will, it always does.

YouTube’s success led to advertising, not surprisingly at the beginning of a video. And as viewers skipped as soon as possible, a new trend appeared: advertising pop ups over the video. (See a trend?) So while watching content, one is constantly distracted, having to dismiss dialogs; while dealing with that, one isn’t digesting the content. And like we’ve seen before, this leads to platform abandonment.

Other competing video streaming services have started to give rise.  It’s surprising, but consumers will often take less content and less quality in exchange for less advertising.  YouTube Red emerged as an advertising-free subscription service, just as the cable companies did before. We know where that goes next.

Netflix, Amazon Prime, and HBO were quick to discover that developing high-quality original content would lure viewers, but as more familiar advertising tendencies start to surface, enthusiasm for these platforms dwindles. At some point one starts to ask is the subscription cost justifying actual usage patterns, as consumers are slowly being pushed away. Consumers are becoming more picky while businesses look for augmenting recurring revenue.

Homes all used to have land lines, and as cell phones became cheaper and popular, house holds got them in addition to their highly reliable land lanes. However, with telemarketers invading at all hours, land lines became a dumping ground for calls we didn’t want to take.  Services like Caller ID appeared, as well as the national Do Not Call list. However, due to no security in how caller ID works, numbers can be spoofed. Meanwhile, law enforcement has been ineffective at dealing to those breaking the law regarding the no call list, and advertisers for the most part ignore it.  Politicians have self-servingly made themselves exempted and are often some of the worse offenders. The result, consumers have disconnected their land lines and are now mostly cell based.

However, it doesn’t take much any more for a new cell phone number to get out into the wild and make it into a robo-caller list. The net result, if someone doesn’t recognize a number, they tend not to pick up. Our cell phones are becoming spam dumps, and once direct access to someone is now fading. Meanwhile, advertisers having grown wise that people are letting content drop to voice mail, and so leave automated recorded messages, which at the end of the sales pitch, one might have the opportunity to be removed from that list (which never gets pressed), although that merely confirms the number works for other endeavors.

This has in turn led to a shift in how we even use phones to communicate, and text messaging is rapidly replacing phone calls.  Even now, we’re starting to see advertising start to break into text messaging, initiated by none other than the very carriers of the service.

The home mailbox, originally intended for correspondences and packages, soon became the primary methodology of mass advertising. Consider the signal to noise ratio of your actual mailbox content between what you want verses unsolicited advertising that you have to sort through after each trip to the mail box. The difference in pile size is growing.

With so much volume introducing delay, it’s no wonder that there isn’t a measure of care during processing, and goods often arrive damaged, which in turn devalues most people’s impression of the U.S. Postal Service, their trust in it, and consequently their use.

To avoid postal mail, most people have switched to email and electronic billing; aside from the occasional package from Amazon, there’s relatively little reason to check a postal mailbox on a daily basis anymore.

We will never see postal mail delivering more than once a day as it used to not that long ago with morning and evening deliveries. And because the service is become so bad and fewer people using it, its led at least to discussions of not delivering on weekends.

Services once reserved for over night or over sized deliveries have taken on more casual load once entrusted to the post office. At the moment, advertisers find the service too expensive, so the rate structure is keeping things in check. Should that change, we know what will happen.

Email used to be a way to send messages to one another, and as the population with email addresses grew, advertisers saw it ripe for exploitation. It’s lack of encryption meant that anonymous senders could forge false from addresses and perform automated bulk mailing on a scale of unprecedented magnitude. Worse yet for the unaware receiver, the spammer can often detect if the message was read and use that information to cultivate a list of active emails. If the sender could employ social engineering successfully, it was actually possible to install advertising software on the receiver’s machine — often without them knowing. And best of all for the advertiser, under this model, the receiver pays to receive and store the message!

At this point, it is estimated that 80% of internet traffic is spam.  Not emails.  Internet traffic.  That’s a lot of bandwidth that you’re paying for with 80% of it being used to help other people advertise at little to no cost to them.  And the problem is only getting worse.

Despite spam filters, firewalls, and anti-virus software email has gotten so bad that most people have several email accounts, and use one for highly likely spam and another for personal communication. However, the moment one of our contacts shares the personal email address with some bulk email list, it’s relatively little time before it gets compromised and we’re on to another new email address, where the process starts all over, just like folks eventually changed their phone numbers for a little peace.

Websites, attempting to capitalize on traffic, started presenting advertising on the sides of their pages, and later interlaced within the articles themselves. Screaming for visual attention, ads became more gaudy, employed blinking, animation, sound and video, and pop-up dialogs, pop-under dialogs, which soon overwhelmed the value content. Visitors responded with ad blocking tools.

Websites responded by waiting a little bit and then putting a pop-over that blocks out the content below, this obnoxious behavior usually leads to site abandonment as it’s just not worth it. Sometimes, abandonment can’t be avoided: say you’re using the Flipboard app to get your news on an iPhone, it takes you the ScienceNews website, they invoke a non-mobile friendly pop-up, and you can’t see the content nor can you dismiss it. Such websites become dead to visitors.

Admittedly, this may be some interaction between 1Blocker and their advertising code, but seeing that 1Blocker can dramatically speed up load times -and- save on carrier data usage, between it and visiting such a site, 1Blocker wins hands down.

A number of websites have taken the approach that if you don’t let the advertising through, they won’t show the content. Sounds reasonable until you realize they aren’t vetting the advertising content that’s being shown. And malicious advertisers are exploiting that.  The consequence of opening a rectangle of any-old content makes solid brand names incidental parties into delivering malware straight to your system. GRC provides a recent list of sites, who just by visiting, have been found to infect machines via advertising services: The New York Times, the BBC, MSN, AOL,,,,,,,, ZeroHedge, and InfoLinks.

A more disturbing practice involves hardware manufactures installing advertising malware in the hardware to make a little extra profit per unit sold. We’ve seen Dell and Gateway load up cruft on new Windows systems, but laptop maker Lenovo built mechanisms into their systems to bypass the end-user’s ability to keep the system clean, even on a pristine reinstall.  This practice took them from being one of the most sought after name brands to one to be avoided, all thanks to aggressive and intrusive advertising practices.

Software is no different. Oracle got busted for making the Java installer schedule a background task for a few minutes after installation and then install advertising software; this way the end user wouldn’t notice anything wrong and presumably think it was caused by something else. Both have serious ongoing damaging effects to the Oracle and Java brands in professional circles.

Likewise, many software installer products use deceptive wording to get Ask and Yahoo toolbars installed, all for their own piece of the pie. Both search engines, once considered at least respectable, have lost significant ground to other players from both reputation damage and public mistrust, as well as firewall and ad-blocking rules to prevent installation of such nonsense.  Browser owners are encouraged to remove Flash, Silverlight, QuickTime, and Java extensions from their browsers, as this will greatly reduce the attack vector as well as many malicious “advertisement” payloads.

iPhone apps have the ability to show a small banner on occasion or produce a pop-up in the middle of the app. Not only are these practices distracting to the end user, but are reinforced because the more they’re shown, the more revenue made. That makes advertising apps seemingly more profitable than fixed priced apps, which in turn is driving down the amount a professional app can earn.

All of this is changing consumer behavior, and we see app abandonment on the rise, diminished purchasing habits especially in impulse buying, and a noticeable dip in quality and creativity in the available selection.

Even Windows 10 has started to put advertising in its Start Menu and screen saver, and that’s not even counting the aggressive multi-gig push, annoying notifications, deceptive wording on dialog boxes to get you to install it. Such things can not be helping platform adoption.

The evidence is everywhere, aggressive and intrusive advertising practices actually hurts the very distribution platforms that are trying to benefit from it.

We need responsible advertising, not necessarily no advertising.

The Pattern is Clear

Worthwhile content is created, a distribution channel is developed for it, the audience grows. At some point, someone gets the idea that a little advertising will generate a little bit of revenue, and in the short-term it works.

Then the fallacy of if-a-little’s-good—then-a-lot’s-better kicks in, and either the distribution channel gets saturated with ads, the content gets damaged, or the ratio between the two gets so disjoint that the over all value tanks.

Desperation and greed can push the state of things beyond recovery, and what was once a sustainable system no longer has the following it once did, and usually by this time the audience has moved on to other technologies.


  • It appears we’re great at repeating history, but neglecting consequences.
  • Consumers are willing to pay for great content without advertising.
  • Consumers do not want to be distracted by anything else while engaging with content.
  • Advertising requires a balance, more isn’t better. It must be done responsibly.
  • Intrusive and aggressive advertising leads to platform abandonment.
Posted in Blogging, Rant, Television | Tagged , , , , , , , | Leave a comment

USB 3.0 Hub Stops Working on El Capitan

TL;DR – It looks like Leap Motion‘s driver for El Capitan is the culprit and not Apple! Uninstall their driver immediately, as described below.

I use a lot of external storage and it has been hard to find a USB hub that is fast, connects all my devices at once, and when using a device doesn’t drop other devices connected to it.

Anker 13-Port USB 3.0I finally found one that’s rock solid; it’s the Anker 13-Port USB 3.0 and it does everything I ever wanted.

Things were good until mid-January 2016 when the device started malfunctioning in strange ways. The first three ports did not recognize any device I put on it.  The other ports sometimes worked and sometimes didn’t. Reliability went out the window and I was forced to stop using it.  My guess was that something burned out. I went so far as to buy another smaller USB 3.0 hub, and well, it didn’t work either — so much so I ended up returning it.  I really wanted this hub working.

Curious, I handed the broken device to an electrical engineer and asked him if he could ascertain what was wrong with it. He took it apart, did diagnostic tests, saw nothing wrong, tried it on his computer, it worked fine, and handed it back to me fixed as just a mystery. However the story doesn’t stop there.

The Impossible Behavior

When I connected the device back up to my Mac, it behaved exactly the same way as it did before. I, of course, tried all my Mac’s USB ports.  I even tried a completely different Mac.  Identical failures.

So sure the device was working, my electrical engineer friend pulled out his Microsoft Surface Tablet, connected the hub, and instantly it worked.

We put it back on my Macs, with the same devices that just worked, it failed. Back to the Surface, it worked.  Back to the Mac, it failed.  In short, it was an electrical engineer’s WTF-nightmare.

The Common Denominator and Other Clues

At this point the problem was clearly related to the Mac.  More over, it used to work just fine, at least until mid-January.  What happened in mid-January?  El Capitan 10.11.3.

Both Macs were running El Capitan 10.11.3.

As a general rule, with Apple, the first generation hardware products have flaws, and the operating systems versions don’t usually get all the kinks out until version x.x.4 is released.  This threw immediate suspicion on the operating system, which meant it was time to check if other folks were having similar issues.

Yes they were.  (See this discussion.)

The Fix

While you’d think that one would need to go to Anker’s Driver Download page, that’s not the case.  You need to do two things:

  1. Reset the NVRAM / PRAM. (For a MacBook Pro it’s the Command-Option-P-R chord on boot.)
  2. Reset the SMC.  (For a MacBook Pro it’s the Shift-Option-Command-PowerOnButton.)

When the machine rebooted the USB hub behaved just like it used to.  Problem solved.

UPDATE (21-Mar-2016): With the introduction of El Capitan 10.11.4, it rebroke the USB 3.0 capabilities again.  The Console reports:

3/23/16 4:32:20.000 PM kernel[0]: 000227.351907 AppleUSB30Hub@14400000: AppleUSBHub::start: failed to set configuration with 0xe00002eb
3/23/16 4:32:21.000 PM kernel[0]: 000228.290970 AppleUSB30Hub@14400000: AppleUSB30Hub::start: failed to set hub depth 0 (0xe0005000)

So far, performing the above steps are not working.

OTHERS ARE HAVING IT TOO: Often the problem manifests as if the USB device, or something connected to it, is no longer working or has inadequate power, or is no longer detected by the host system.

UPDATE (27-May-2016): The number of independent field confirmation problem reports are still growing.

Try your device on an older operating system (ideally the same hardware if you can), a Windows box, a Linux box, or even a Raspberry Pi — you’ll see the USB device works properly there. It is possible to rule out, by exclusion, everything but El Capitan.

YOU CAN HELP: It appears Apple may not know about the problem.

  1. Report it as a bug in OS X via the Apple Bug Reporter.
  2. Provide feedback via

Please be kind when reporting issue, as these are the people who can help you. Give them technical details and model information to help them track it down.

UPDATE (04-May-2016): Apple’s page on USB 3.0 says that confirm to the 2008 version 1 USB 3.0 specification are supported, and gives a short procedure for checking the devices, and some basic things to try if a device is supported but isn’t seen.

UPDATE (06-May-2016): Apple has acknowledged issue 26102223 in their system and have asked for more information; I’m forwarding it to them.

UPDATE (27-May-2016): No new information in the bug report, and OS X 10.11.5 does not fix the issue.

When I plug in my Anker USB 3.0 Hub pictured above, this is what appears in Apple’s Hardware diagnostic now:

Note several things.  First, the vendor is VIA Labs, the foremost supplier of USB 3.0 solutions. Second, there’s a recursive like nature showing a USB 2.0 hub in a USB 2.0 hub in a USB 2.0, and so on, like they’re chained together — they’re not — it’s one device, the only one plugged in externally.  Third, did you notice those spaces between the USB 2.0 Hub label and the colon?  Weird.

In fact, the status line in the System Information app looks wrong, showing the white space.

Apple's System Information app's status line with an Anker 3.0 USB hub plugged in on OS X 10.11.5

Apple’s System Information app’s status line with an Anker 3.0 USB hub plugged in on OS X 10.11.5

For the time being, I still can’t use USB 3.0 Hubs with OS X (10.11.5).

Seemingly Solved!

UPDATE (07-Jul-2016): Thanks to a comment from David Ryskalczyk, who suggested Uninstalling the Leap Motion driver (which I did have installed, and that he had no way of knowing I did), it appears to have resolved the problem! A reboot wasn’t even necessary.

For the first time in months, I have multiple drives working of the USB Hub!! Thank you, David!

For those going through the same process, after the uninstall script was complete, I had to go to the ~/Library/Application Support directory and manually remove the Leap Motion directory, which was filled with 2013 and 2014. The uninstall skipped these, because the directory wasn’t empty.

Posted in Apple, Hack, Hardware, How To, OS X | Tagged , , , , , , , , | 12 Comments

Low Disk Space? It Might be iTunes.

I noticed that I was freakishly low in disk space, so used DaisyDisk to identify problem directories.

Turns out, a major offender was ~/Library/Application Support/MobilSync/Backup, which contained several years worth of iPhone and iPad backups.

As tempting as it might be, don’t just go deleting the directories inside it.

Instead… use iTunes, which will keep all the internal bookkeeping correct.

Open iTunes / Preferences…, then go to the Devices tab.  You’ll see the name of the backup, an icon if it’s encrypted, and a date/time stamp of when it was made.

Select one or more of the items and press the Delete Backup button.  But beware, they won’t really disappear until you press the OK button.  Closing the dialog via the red window button or pressing Cancel will not commit the change.

This is one of those rare cases where Apple dialogs don’t reflect current state, but intended ones.  And, considering this is the safer way of dealing with data, I’m all for it.

Posted in Apple, Hack, How To, OS X | Tagged , , , , , | Leave a comment

Fixing HP Mopier, Collation, and Storage problems (WIN 7)

After upgrading to the latest HP “Universal” drivers, our HP LaserJet CP4525 printers started reporting that they were “Unable to store job at printer”, that they ran out of memory, and were “Unable to collate job at printer”.  The error messages suggested the disk wasn’t present, was full, that I needed to delete files, add RAM, or even a very expensive EIO hard disk. Didn’t get much obvious help from the HP Universal Print Driver Systems Administrator’s Guide either.

I tried adding RAM to the full capacity.  That didn’t help.  Here’s how I ended up fixing the problem, thanks to piecing together dozens of support forum posts for different printer models and a little experimentation.

  1. Go to Start / Devices and Printers (yours may say Printers and Faxes).
  2. Right click the Printer Icon of the printer giving you problems and click Printer Properties (not plain old properties that’s at the bottom).
  3. While on the General table, click the Change Properties button near the bottom left (otherwise you’ll get a read-only mode of grey items).
  4. Change over to the Device Settings tab.
  5. Ensure that the Mopier Mode is set to Disabled.
  6. Ensure that the Job Storage is also set to Disabled.
  7. Click Apply, ideally to see there were no errors in doing this.
  8. Click OK to close the dialog.
Posted in Hardware, How To, Windows | Tagged , , , , , | Leave a comment

Java 8 on OS X Yosemite

I downloaded a recent copy of IntelliJ, only to discover when I went to open it, OS  Yosemite indicated I had no version of Java installed, and that I’d need to install an old version. The “More Info…” button took me to this page:

…which didn’t load.  (UPDATE: This fixed the load issue.) Similar detailed install directions also ended up at the same broken page.

So, I attempted to download Java 8 directly from Oracle and  install install it.  The install worked fine, but IntelliJ 14 still did not open.  Same error message.

Here’s how I solved it.  Hop into terminal and do this:

Find the line that says <string>1.6*</string> and change it to <string>1.8*</string>.  Save your file, and now go open IntelliJ as normal.

This causes IntelliJ 14 to use Java JDK 8, and all is right with the world.

Posted in Apple, Hack, How To, IntelliJ, Java, OS X, Software | Tagged , , , | Leave a comment

Review: Data Visualization with D3.js Cookbook

I’ve been looking around for decent data visualization book on D3.  I think I’ve found it.

Data Visualization with D3.js Cookbook by Packt Publishing hits the mark.

It’s the right blend of detailed explanation combined with cookbook recipes to get going.

D3 is JavaScript library that separates data from presentation, but does so in a really cool manner.  When the underlying data is updated, the components on the screen that visualize it can be made to update to reflect it. This can lead to some pretty amazing transitions and interactivity with surprisingly little code.

D3 looks at the data you have visualized already and the data you want to visualize and divides them into three piles: New Data, Updated Data, and No Longer Present Data.  Transformations can be done for each set, for instance allowing new data to fade in, updated data to morph, and removed data to fade away.  D3 is focused primarily on just this task, so actual visualizations are up to the coder.

However, because D3’s nature allows each element to only focus on the part of the data it needs to, and to substitute that content into the HTML, CSS, and/or SVG that’s needed, it provides a surprising amount of flexibility and features and does so with impressive speed and efficiency.

The Data Visualization with D3.js Cookbook explains the above concepts with some well formed examples, and then proceeds to demonstrate how to make bar charts, pie charts, line charts, and other more complex multi-dimensional visualizations and add interactive interfaces to them. This is where the book absolutely shines!

Each example is carefully constructed and compact, serving both as a learning tool and a starting point for your own code.  As such, I’d highly recommend the book and convey that it’s very approachable, even to those with a limited JavaScript background.

I would recommend some degree of caution however, in particular with the Kindle book. This is not a fault of Packt Publishing, but with Amazon.  And I’ve spoken to them at length about it.  The Kindle viewer is intended of rendering pages of readable text to humans in a nicely formatted manner.  However, it is terrible (as of the time of this writing) as to maintaining code formatting and spacing, which is absolutely essential for any cut’n’paste operations. Be prepared to copy code by hand, and if you’re going to go that far, perhaps the paperback version is more to your liking.

That said, I did happen to notice a few errata in the examples; nothing major, nothing you can’t move past, and nothing that isn’t rectified by going onto GitHub for the updates.

All in all, after having gone through a number of books about D3.js, this one has been my favorite and the most useful.


Posted in JavaScript, Programming | Tagged | Leave a comment


As I was leaving the water fountain and returning to my office, a young woman on crutches popped out of an adjoining hallway in front of me. Normally I, and others, would tend to step around — and having been on crutches myself, I can say that I didn’t feel the least bit offended. But, I had read that sometimes this bothers people, so I figured I’d just catch up and slow my pace.

That’s when she noticed me and in the brightest voice said, “Good Morning! How are you doing?”

Surprised, I equally met her energetic tone and responded “Good Morning to you too! I’m doing well, thank you for asking! How are you doing?”

She sighed, “Not that well, actually.” And I took it to mean her foot, so I opened the conversation.

“Oh no! What happened to your foot? Did you slip on the ice?”

She paused and then explained, “No. I had a stroke when I was a baby. I’m like this normally.”

Posted in Humor, Mishap | Tagged | Leave a comment

If you don’t want to know, don’t ask.

An actual conversation that happened right before a meeting started:
“Hey Walt, how ya doing?”
“Sad, depressed, …beaten.”
(chuckle) “Tell us how you really feel!”
(short pause) “Surrounded by dementors.”
(awkward silence — then the meeting began)

Posted in Funny Quotes, Humor | Tagged , , , , , | Leave a comment